summaryrefslogtreecommitdiff
path: root/drivers/net/ipa/ipa_reg.c
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2022-09-26 17:09:21 -0500
committerJakub Kicinski <kuba@kernel.org>2022-09-27 18:42:50 -0700
commit6a244b75cfab95ddd505fc9a80af76bf36071784 (patch)
tree3f036c90ca167cf8de45250aedb139d19f58f121 /drivers/net/ipa/ipa_reg.c
parent82a06807453a6c0c282b3238f28164970100ffcd (diff)
net: ipa: introduce ipa_reg()
Create a new function that returns a register descriptor given its ID. Change ipa_reg_offset() and ipa_reg_n_offset() so they take a register descriptor argument rather than an IPA pointer and register ID. Have them accept null pointers (and return an invalid 0 offset), to avoid the need for excessive error checking. (A warning is issued whenever ipa_reg() returns 0). Call ipa_reg() or ipa_reg_n() to look up information about the register before calls to ipa_reg_offset() and ipa_reg_n_offset(). Delay looking up offsets until they're needed to read or write registers. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ipa/ipa_reg.c')
-rw-r--r--drivers/net/ipa/ipa_reg.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/net/ipa/ipa_reg.c b/drivers/net/ipa/ipa_reg.c
index 67c01c6973ff..fb4663bcf14b 100644
--- a/drivers/net/ipa/ipa_reg.c
+++ b/drivers/net/ipa/ipa_reg.c
@@ -67,17 +67,12 @@ static bool ipa_reg_valid(struct ipa *ipa, enum ipa_reg_id reg_id)
return valid && ipa->regs->reg[reg_id];
}
-/* Assumes the endpoint transfer direction is valid; 0 is a bad offset */
-u32 __ipa_reg_offset(struct ipa *ipa, enum ipa_reg_id reg_id, u32 n)
+const struct ipa_reg *ipa_reg(struct ipa *ipa, enum ipa_reg_id reg_id)
{
- const struct ipa_reg *reg;
-
if (WARN_ON(!ipa_reg_valid(ipa, reg_id)))
- return 0;
-
- reg = ipa->regs->reg[reg_id];
+ return NULL;
- return reg->offset + n * reg->stride;
+ return ipa->regs->reg[reg_id];
}
static const struct ipa_regs *ipa_regs(enum ipa_version version)