From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Frank Li <Frank.li@nxp.com>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>,
linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org,
arnd@arndb.de, bbrezillon@kernel.org,
boris.brezillon@collabora.com, conor.culhane@silvaco.com,
gregkh@linuxfoundation.org, imx@lists.linux.dev,
pthombar@cadence.com, ravindra.yashvant.shinde@nxp.com
Subject: Re: [PATCH 2/3] i3c: master: Extend address status bit to 4 and add I3C_ADDR_SLOT_EXT_INIT
Date: Thu, 3 Oct 2024 10:29:21 +0200 [thread overview]
Message-ID: <20241003102921.771b2bc1@xps-13> (raw)
In-Reply-To: <Zv15UjD9yvJb43MF@lizhi-Precision-Tower-5810>
Hi Frank,
> > >
> > > -static void i3c_bus_set_addr_slot_status(struct i3c_bus *bus, u16 addr,
> > > - enum i3c_addr_slot_status status)
> > > +static enum i3c_addr_slot_status
> > > +i3c_bus_get_addr_slot_status(struct i3c_bus *bus, u16 addr)
> > > +{
> > > + return i3c_bus_get_addr_slot_status_ext(bus, addr) & I3C_ADDR_SLOT_STATUS_MASK;
> > > +}
> > > +
> > > +static void i3c_bus_set_addr_slot_status_mask(struct i3c_bus *bus, u16 addr,
> > > + enum i3c_addr_slot_status status, int mask)
> > > {
> > > int bitpos = addr * I3C_ADDR_SLOT_STATUS_BITS;
> > > unsigned long *ptr;
> > > @@ -369,11 +375,22 @@ static void i3c_bus_set_addr_slot_status(struct i3c_bus *bus, u16 addr,
> > > return;
> > >
> > > ptr = bus->addrslots + (bitpos / BITS_PER_LONG);
> > > - *ptr &= ~((unsigned long)I3C_ADDR_SLOT_STATUS_MASK <<
> > > - (bitpos % BITS_PER_LONG));
> > > + *ptr &= ~((unsigned long)mask << (bitpos % BITS_PER_LONG));
> > > *ptr |= (unsigned long)status << (bitpos % BITS_PER_LONG);
> > > }
> > >
> > > +static void i3c_bus_set_addr_slot_status(struct i3c_bus *bus, u16 addr,
> > > + enum i3c_addr_slot_status status)
> > > +{
> > > + i3c_bus_set_addr_slot_status_mask(bus, addr, status, I3C_ADDR_SLOT_STATUS_MASK);
> > > +}
> > > +
> > > +static void i3c_bus_set_addr_slot_status_ext(struct i3c_bus *bus, u16 addr,
> > > + enum i3c_addr_slot_status status)
> > > +{
> > > + i3c_bus_set_addr_slot_status_mask(bus, addr, status, I3C_ADDR_SLOT_EXT_STATUS_MASK);
> > > +}
> >
> > Can we drop this helper and instead modify the
> > i3c_bus_set_addr_slot_status() prototype to get the mask from its
> > parameters?
>
> git grep "i3c_bus_set_addr_slot_status(" drivers/i3c/ | wc
>
> There are 18 places need be modified without this helper function.
> are you sue what you want?
>
> Maybe drop i3c_bus_set_addr_slot_status_ext() is good idea by direct use
> i3c_bus_set_addr_slot_status_mask().
Ok fine for _mask.
Thanks,
Miquèl
WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Frank Li <Frank.li@nxp.com>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>,
linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org,
arnd@arndb.de, bbrezillon@kernel.org,
boris.brezillon@collabora.com, conor.culhane@silvaco.com,
gregkh@linuxfoundation.org, imx@lists.linux.dev,
pthombar@cadence.com, ravindra.yashvant.shinde@nxp.com
Subject: Re: [PATCH 2/3] i3c: master: Extend address status bit to 4 and add I3C_ADDR_SLOT_EXT_INIT
Date: Thu, 3 Oct 2024 10:29:21 +0200 [thread overview]
Message-ID: <20241003102921.771b2bc1@xps-13> (raw)
In-Reply-To: <Zv15UjD9yvJb43MF@lizhi-Precision-Tower-5810>
Hi Frank,
> > >
> > > -static void i3c_bus_set_addr_slot_status(struct i3c_bus *bus, u16 addr,
> > > - enum i3c_addr_slot_status status)
> > > +static enum i3c_addr_slot_status
> > > +i3c_bus_get_addr_slot_status(struct i3c_bus *bus, u16 addr)
> > > +{
> > > + return i3c_bus_get_addr_slot_status_ext(bus, addr) & I3C_ADDR_SLOT_STATUS_MASK;
> > > +}
> > > +
> > > +static void i3c_bus_set_addr_slot_status_mask(struct i3c_bus *bus, u16 addr,
> > > + enum i3c_addr_slot_status status, int mask)
> > > {
> > > int bitpos = addr * I3C_ADDR_SLOT_STATUS_BITS;
> > > unsigned long *ptr;
> > > @@ -369,11 +375,22 @@ static void i3c_bus_set_addr_slot_status(struct i3c_bus *bus, u16 addr,
> > > return;
> > >
> > > ptr = bus->addrslots + (bitpos / BITS_PER_LONG);
> > > - *ptr &= ~((unsigned long)I3C_ADDR_SLOT_STATUS_MASK <<
> > > - (bitpos % BITS_PER_LONG));
> > > + *ptr &= ~((unsigned long)mask << (bitpos % BITS_PER_LONG));
> > > *ptr |= (unsigned long)status << (bitpos % BITS_PER_LONG);
> > > }
> > >
> > > +static void i3c_bus_set_addr_slot_status(struct i3c_bus *bus, u16 addr,
> > > + enum i3c_addr_slot_status status)
> > > +{
> > > + i3c_bus_set_addr_slot_status_mask(bus, addr, status, I3C_ADDR_SLOT_STATUS_MASK);
> > > +}
> > > +
> > > +static void i3c_bus_set_addr_slot_status_ext(struct i3c_bus *bus, u16 addr,
> > > + enum i3c_addr_slot_status status)
> > > +{
> > > + i3c_bus_set_addr_slot_status_mask(bus, addr, status, I3C_ADDR_SLOT_EXT_STATUS_MASK);
> > > +}
> >
> > Can we drop this helper and instead modify the
> > i3c_bus_set_addr_slot_status() prototype to get the mask from its
> > parameters?
>
> git grep "i3c_bus_set_addr_slot_status(" drivers/i3c/ | wc
>
> There are 18 places need be modified without this helper function.
> are you sue what you want?
>
> Maybe drop i3c_bus_set_addr_slot_status_ext() is good idea by direct use
> i3c_bus_set_addr_slot_status_mask().
Ok fine for _mask.
Thanks,
Miquèl
--
linux-i3c mailing list
linux-i3c@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-i3c
next prev parent reply other threads:[~2024-10-03 8:29 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-01 17:08 [PATCH 0/3] I3C: master: fix the address assign issue if assign-address is exist in dts Frank Li
2024-10-01 17:08 ` Frank Li
2024-10-01 17:08 ` [PATCH 1/3] i3c: master: Replace hard code 2 with macro I3C_ADDR_SLOT_STATUS_BITS Frank Li
2024-10-01 17:08 ` Frank Li
2024-10-02 7:18 ` Miquel Raynal
2024-10-02 7:18 ` Miquel Raynal
2024-10-01 17:08 ` [PATCH 2/3] i3c: master: Extend address status bit to 4 and add I3C_ADDR_SLOT_EXT_INIT Frank Li
2024-10-01 17:08 ` Frank Li
2024-10-02 7:49 ` Miquel Raynal
2024-10-02 7:49 ` Miquel Raynal
2024-10-02 16:48 ` Frank Li
2024-10-02 16:48 ` Frank Li
2024-10-03 8:29 ` Miquel Raynal [this message]
2024-10-03 8:29 ` Miquel Raynal
2024-10-01 17:08 ` [PATCH 3/3] i3c: master: Fix dynamic address leak when 'assigned-address' is present Frank Li
2024-10-01 17:08 ` Frank Li
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241003102921.771b2bc1@xps-13 \
--to=miquel.raynal@bootlin.com \
--cc=Frank.li@nxp.com \
--cc=alexandre.belloni@bootlin.com \
--cc=arnd@arndb.de \
--cc=bbrezillon@kernel.org \
--cc=boris.brezillon@collabora.com \
--cc=conor.culhane@silvaco.com \
--cc=gregkh@linuxfoundation.org \
--cc=imx@lists.linux.dev \
--cc=linux-i3c@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pthombar@cadence.com \
--cc=ravindra.yashvant.shinde@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.