Received: by 10.213.65.68 with SMTP id h4csp1576990imn; Mon, 19 Mar 2018 07:53:52 -0700 (PDT) X-Google-Smtp-Source: AG47ELvUJdWaNRZm22UJ5bTn0232mSgixtkR0S0YN6nfeKR8x60vzwGt3eRunrgcbqlW2Nu6nxSb X-Received: by 10.98.1.196 with SMTP id 187mr10350216pfb.152.1521471232328; Mon, 19 Mar 2018 07:53:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521471232; cv=none; d=google.com; s=arc-20160816; b=MxnrLPxpWE4LmOzHiHrX6CzhjFqXiKkZ8wAd1jZNQTWJBLwX8U9wHjQXLU0YLFMO7W VLDaZr2u0BkfbGoRI6CMIs7ytWTnU/bPzGNmUgGyY/OJiYdibVMRWwfLTi3UBxPhamQI 3ACO5FLva5t69t42mwJDepA11b3cOReWNCszzR7VKgJHFkcbZY6trS5p+bqApnmZK6yJ 7bs5hqVorVnFsubdndyUWsTZSgYer2X7UsZZtKqfYwoNmKNFr0vggL1UTpXhXWXuNbsR qC5LwUBP7ZiiOXTlli6hoMDOrNEzU78mT6axlfL4WeDjfqUaNk3hZfBOLZz6ORuS+Bbd nF5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=sSZ+33Z1JiS/kCSptn6jrfxBWW6gTIfIuEPtrdflB8k=; b=NTz2ZJj1LspGEuXY9/MIN31Jnle0+lzdxogi5AihBL7lO1O0z+agesnmMLo41St+lL xx8eVzdVwpTACjuO73zj5jZzSRCM2vePLp0PMfbx3m6izRaKSfWdxjrGnaEuGt13K11/ vYmaQGjw/mSjbs/gt4QIICJc8SNQTRQ4iiCwUr0VOBE64BnPUBgzQmrceIH53CvrwI9+ ac89FotHVDbuijzfC5zSiPST/89WgPHYGtN9VCWnFmJayFXS1K0uVcBv08fDUQNr7Lf4 5tsj8134WdKpGPQKKRwdnyY0ISZJPQPZ/KiHGugT1aezWAuk/mDIReW2bptxq+GHhtOQ y6yw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s19si98941pgv.479.2018.03.19.07.53.38; Mon, 19 Mar 2018 07:53:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933631AbeCSOWV (ORCPT + 99 others); Mon, 19 Mar 2018 10:22:21 -0400 Received: from stargate.chelsio.com ([12.32.117.8]:26549 "EHLO stargate.chelsio.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755588AbeCSOWR (ORCPT ); Mon, 19 Mar 2018 10:22:17 -0400 Received: from localhost (scalar.blr.asicdesigners.com [10.193.185.94]) by stargate.chelsio.com (8.13.8/8.13.8) with ESMTP id w2JELw7o018021; Mon, 19 Mar 2018 07:21:59 -0700 From: Rahul Lakkireddy To: x86@kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, davem@davemloft.net, akpm@linux-foundation.org, torvalds@linux-foundation.org, ganeshgr@chelsio.com, nirranjan@chelsio.com, indranil@chelsio.com, Rahul Lakkireddy Subject: [RFC PATCH 3/3] cxgb4: read on-chip memory 256-bits at a time Date: Mon, 19 Mar 2018 19:50:36 +0530 Message-Id: X-Mailer: git-send-email 2.5.3 In-Reply-To: References: In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use readqq() to read on-chip memory 256-bits at a time. Signed-off-by: Rahul Lakkireddy Signed-off-by: Ganesh Goudar --- drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c | 16 ++++++++-------- drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 6 ++++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c b/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c index 9da6f57901a9..3a319b16c8a3 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c @@ -885,7 +885,7 @@ static int cudbg_memory_read(struct cudbg_init *pdbg_init, int win, struct adapter *adap = pdbg_init->adap; u32 pos, offset, resid; u32 *res_buf; - u64 *buf; + u256 *buf; int ret; /* Argument sanity checks ... @@ -893,10 +893,10 @@ static int cudbg_memory_read(struct cudbg_init *pdbg_init, int win, if (addr & 0x3 || (uintptr_t)hbuf & 0x3) return -EINVAL; - buf = (u64 *)hbuf; + buf = (u256 *)hbuf; - /* Try to do 64-bit reads. Residual will be handled later. */ - resid = len & 0x7; + /* Try to do 256-bit reads. Residual will be handled later. */ + resid = len & 0x1f; len -= resid; ret = t4_memory_rw_init(adap, win, mtype, &memoffset, &mem_base, @@ -917,10 +917,10 @@ static int cudbg_memory_read(struct cudbg_init *pdbg_init, int win, /* Transfer data from the adapter */ while (len > 0) { - *buf++ = le64_to_cpu((__force __le64) - t4_read_reg64(adap, mem_base + offset)); - offset += sizeof(u64); - len -= sizeof(u64); + *buf++ = le256_to_cpu((__force __le256) + t4_read_reg256(adap, mem_base + offset)); + offset += sizeof(u256); + len -= sizeof(u256); /* If we've reached the end of our current window aperture, * move the PCI-E Memory Window on to the next. diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h b/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h index a5c0a649f3c7..0035ed0a2ec9 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h @@ -51,6 +51,7 @@ #include #include #include +#include #include "t4_chip_type.h" #include "cxgb4_uld.h" @@ -1234,6 +1235,11 @@ static inline u64 t4_read_reg64(struct adapter *adap, u32 reg_addr) return readq(adap->regs + reg_addr); } +static inline u256 t4_read_reg256(struct adapter *adap, u32 reg_addr) +{ + return readqq(adap->regs + reg_addr); +} + static inline void t4_write_reg64(struct adapter *adap, u32 reg_addr, u64 val) { writeq(val, adap->regs + reg_addr); -- 2.14.1