[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <ZwA63q40ZQYAz+Sf@lizhi-Precision-Tower-5810>
Date: Fri, 4 Oct 2024 14:58:38 -0400
From: Frank Li <Frank.li@....com>
To: Miquel Raynal <miquel.raynal@...tlin.com>
Cc: Alexandre Belloni <alexandre.belloni@...tlin.com>,
linux-i3c@...ts.infradead.org, linux-kernel@...r.kernel.org,
arnd@...db.de, bbrezillon@...nel.org, boris.brezillon@...labora.com,
conor.culhane@...vaco.com, gregkh@...uxfoundation.org,
imx@...ts.linux.dev, pthombar@...ence.com,
ravindra.yashvant.shinde@....com
Subject: Re: [PATCH v6 2/3] i3c: master: Extend address status bit to 4 and
add I3C_ADDR_SLOT_EXT_DESIRED
On Fri, Oct 04, 2024 at 06:22:29PM +0200, Miquel Raynal wrote:
> Hi Frank,
>
> > > > @@ -1918,9 +1959,10 @@ static int i3c_master_bus_init(struct i3c_master_controller *master)
> > > > goto err_rstdaa;
> > > > }
> > > >
> > > > - i3c_bus_set_addr_slot_status(&master->bus,
> > > > - i3cboardinfo->init_dyn_addr,
> > > > - I3C_ADDR_SLOT_I3C_DEV);
> > > > + i3c_bus_set_addr_slot_status_mask(&master->bus,
> > > > + i3cboardinfo->init_dyn_addr,
> > > > + I3C_ADDR_SLOT_I3C_DEV | I3C_ADDR_SLOT_EXT_DESIRED,
> > > > + I3C_ADDR_SLOT_EXT_STATUS_MASK);
> > >
> > > However I'm not sure I understand the use of the
> > > set_addr_slot_status_mask() function. Can't we just use the normal
> > > function and just extend the mask in the fist place?
> >
> > The major purpose of set_addr_slot_status_mask() is that reduce code
> > change. There are already address alloc/free by using I3C_ADDR_SLOT_FREE.
> >
> > we don't want i3c_bus_set_addr_slot_status() touch bit
> > I3C_ADDR_SLOT_EXT_DESIRED since it was init at scan dts.
>
> I agree, but in general you will never remove any "desired" slot, so
> the "set status", besides at init time, should never touch these extra
> bits?
I am not sure I understand what your means exactly.
Yes, it is first and only place to set I3C_ADDR_SLOT_EXT_DESIRED.
Other place's i3c_bus_set_addr_slot_status() will not touch these bits.
Frank
>
> > There are 18 place, using i3c_bus_set_addr_slot_status(), but we only need
> > touch I3C_ADDR_SLOT_EXT_DESIRED bit when scan dts.
> >
>
> Thanks,
> Miquèl
Powered by blists - more mailing lists