diff mbox series

[v3,02/11] i3c: master: Replace hard code 2 with macro I3C_ADDR_SLOT_BITS

Message ID 20240819-i3c_fix-v3-2-7d69f7b0a05e@nxp.com (mailing list archive)
State Superseded
Headers show
Series i3c: master: some fix and improvemnt for hotjoin | expand

Commit Message

Frank Li Aug. 19, 2024, 4:01 p.m. UTC
Replace the hardcoded value 2, which indicates 2 bits for I3C address
status, with the predefined macro I3C_ADDR_SLOT_BITS.

Improve maintainability and extensibility of the code.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
 drivers/i3c/master.c       | 4 ++--
 include/linux/i3c/master.h | 4 +++-
 2 files changed, 5 insertions(+), 3 deletions(-)

Comments

Miquel Raynal Aug. 23, 2024, 3:55 p.m. UTC | #1
Hi Frank,

Frank.Li@nxp.com wrote on Mon, 19 Aug 2024 12:01:56 -0400:

> Replace the hardcoded value 2, which indicates 2 bits for I3C address
> status, with the predefined macro I3C_ADDR_SLOT_BITS.

I'm fine with the idea but I don't understand the macro name. You're
talking about status bits and yet the macro is named addr_slot?

> Improve maintainability and extensibility of the code.

Thanks,
Miquèl
Frank Li Aug. 23, 2024, 5:57 p.m. UTC | #2
On Fri, Aug 23, 2024 at 05:55:02PM +0200, Miquel Raynal wrote:
> Hi Frank,
>
> Frank.Li@nxp.com wrote on Mon, 19 Aug 2024 12:01:56 -0400:
>
> > Replace the hardcoded value 2, which indicates 2 bits for I3C address
> > status, with the predefined macro I3C_ADDR_SLOT_BITS.
>
> I'm fine with the idea but I don't understand the macro name. You're
> talking about status bits and yet the macro is named addr_slot?
>

How about I3C_ADDR_SLOT_STATUS_BITS ?

> > Improve maintainability and extensibility of the code.
>
> Thanks,
> Miquèl
Miquel Raynal Aug. 26, 2024, 8:05 a.m. UTC | #3
Hi Frank,

Frank.li@nxp.com wrote on Fri, 23 Aug 2024 13:57:31 -0400:

> On Fri, Aug 23, 2024 at 05:55:02PM +0200, Miquel Raynal wrote:
> > Hi Frank,
> >
> > Frank.Li@nxp.com wrote on Mon, 19 Aug 2024 12:01:56 -0400:
> >  
> > > Replace the hardcoded value 2, which indicates 2 bits for I3C address
> > > status, with the predefined macro I3C_ADDR_SLOT_BITS.  
> >
> > I'm fine with the idea but I don't understand the macro name. You're
> > talking about status bits and yet the macro is named addr_slot?
> >  
> 
> How about I3C_ADDR_SLOT_STATUS_BITS ?
> 
> > > Improve maintainability and extensibility of the code.  

I'm a bit flaky on this concept, but let's try that. Perhaps with all
the changes requested (esp. rephrasing) it might become clearer in next
version.

Thanks,
Miquèl
diff mbox series

Patch

diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
index 852b32178b722..85c737554c940 100644
--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -348,7 +348,7 @@  static enum i3c_addr_slot_status
 i3c_bus_get_addr_slot_status(struct i3c_bus *bus, u16 addr)
 {
 	unsigned long status;
-	int bitpos = addr * 2;
+	int bitpos = addr * I3C_ADDR_SLOT_BITS;
 
 	if (addr > I2C_MAX_ADDR)
 		return I3C_ADDR_SLOT_RSVD;
@@ -362,7 +362,7 @@  i3c_bus_get_addr_slot_status(struct i3c_bus *bus, u16 addr)
 static void i3c_bus_set_addr_slot_status(struct i3c_bus *bus, u16 addr,
 					 enum i3c_addr_slot_status status)
 {
-	int bitpos = addr * 2;
+	int bitpos = addr * I3C_ADDR_SLOT_BITS;
 	unsigned long *ptr;
 
 	if (addr > I2C_MAX_ADDR)
diff --git a/include/linux/i3c/master.h b/include/linux/i3c/master.h
index 074f632868d98..4601b6957f799 100644
--- a/include/linux/i3c/master.h
+++ b/include/linux/i3c/master.h
@@ -299,6 +299,8 @@  enum i3c_addr_slot_status {
 	I3C_ADDR_SLOT_STATUS_MASK = 3,
 };
 
+#define I3C_ADDR_SLOT_BITS 2
+
 /**
  * struct i3c_bus - I3C bus object
  * @cur_master: I3C master currently driving the bus. Since I3C is multi-master
@@ -340,7 +342,7 @@  enum i3c_addr_slot_status {
 struct i3c_bus {
 	struct i3c_dev_desc *cur_master;
 	int id;
-	unsigned long addrslots[((I2C_MAX_ADDR + 1) * 2) / BITS_PER_LONG];
+	unsigned long addrslots[((I2C_MAX_ADDR + 1) * I3C_ADDR_SLOT_BITS) / BITS_PER_LONG];
 	enum i3c_bus_mode mode;
 	struct {
 		unsigned long i3c;