summaryrefslogtreecommitdiff
path: root/drivers/net/ipa/gsi.c
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2023-02-15 22:53:48 +0300
committerPaolo Abeni <pabeni@redhat.com>2023-02-20 10:14:20 +0300
commit59b12b1d27f3f82e56462f0da6413e1849a06d3a (patch)
tree8364fb7dfcfba693c0dc9911bb04346c93134228 /drivers/net/ipa/gsi.c
parentecfa80ce3b8740d0760f44cbd9e60f446682b3fa (diff)
downloadlinux-59b12b1d27f3f82e56462f0da6413e1849a06d3a.tar.xz
net: ipa: kill gsi->virt_raw
Starting at IPA v4.5, almost all GSI registers had their offsets changed by a fixed amount (shifted downward by 0xd000). Rather than defining offsets for all those registers dependent on version, an adjustment was applied for most register accesses. This was implemented in commit cdeee49f3ef7f ("net: ipa: adjust GSI register addresses"). It was later modified to be a bit more obvious about the adjusment, in commit 571b1e7e58ad3 ("net: ipa: use a separate pointer for adjusted GSI memory"). We now are able to define every GSI register with its own offset, so there's no need to implement this special adjustment. So get rid of the "virt_raw" pointer, and just maintain "virt" as the (non-adjusted) base address of I/O mapped GSI register memory. Redefine the offsets of all GSI registers (other than the INTER_EE ones, which were not subject to the adjustment) for IPA v4.5+, subtracting 0xd000 from their defined offsets instead. Move the ERROR_LOG and ERROR_LOG_CLR definitions further down in the register definition files so all registers are defined in order of their offset. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'drivers/net/ipa/gsi.c')
-rw-r--r--drivers/net/ipa/gsi.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c
index 05ea2502201d..2ef5509e3c83 100644
--- a/drivers/net/ipa/gsi.c
+++ b/drivers/net/ipa/gsi.c
@@ -1999,12 +1999,11 @@ static int gsi_irq_setup(struct gsi *gsi)
/* The inter-EE interrupts are not supported for IPA v3.0-v3.1 */
if (gsi->version > IPA_VERSION_3_1) {
- /* These registers are in the non-adjusted address range */
reg = gsi_reg(gsi, INTER_EE_SRC_CH_IRQ_MSK);
- iowrite32(0, gsi->virt_raw + reg_offset(reg));
+ iowrite32(0, gsi->virt + reg_offset(reg));
reg = gsi_reg(gsi, INTER_EE_SRC_EV_CH_IRQ_MSK);
- iowrite32(0, gsi->virt_raw + reg_offset(reg));
+ iowrite32(0, gsi->virt + reg_offset(reg));
}
reg = gsi_reg(gsi, CNTXT_GSI_IRQ_EN);