From: William Breathitt Gray <william.gray@linaro.org>
To: Andy Shevchenko <andriy.shevchenko@intel.com>
Cc: brgl@bgdev.pl, linus.walleij@linaro.org,
linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org
Subject: Re: [PATCH 1/3] gpio: idio-16: Introduce the ACCES IDIO-16 GPIO library module
Date: Thu, 15 Sep 2022 11:46:13 -0400 [thread overview]
Message-ID: <YyNIxWS0sneUKas0@fedora> (raw)
In-Reply-To: <YyCs1/HgOG31MX1N@smile.fi.intel.com>
[-- Attachment #1: Type: text/plain, Size: 1803 bytes --]
On Tue, Sep 13, 2022 at 07:16:23PM +0300, Andy Shevchenko wrote:
> On Sun, Sep 11, 2022 at 04:34:38PM -0400, William Breathitt Gray wrote:
> > + if (*mask & GENMASK(7, 0))
> > + bitmap_set_value8(bits, ioread8(®->out0_7), 0);
> > + if (*mask & GENMASK(15, 8))
> > + bitmap_set_value8(bits, ioread8(®->out8_15), 8);
> > + if (*mask & GENMASK(23, 16))
> > + bitmap_set_value8(bits, ioread8(®->in0_7), 16);
> > + if (*mask & GENMASK(31, 24))
> > + bitmap_set_value8(bits, ioread8(®->in8_15), 24);
>
> So, the addresses of the ports are not expected to be continuous?
No, unfortunately the IDIO-16 devices allocate the FET outputs to byte
offsets 0 and 4 while the isolated inputs are allocated to byte offsets
1 and 5. I don't know the design reason for the split but that's the
reason I'm reading these addresses by byte rather than by word.
> > + return;
> > +
> > + spin_lock_irqsave(&state->lock, flags);
>
> > + if (value)
> > + set_bit(offset, state->out_state);
> > + else
> > + clear_bit(offset, state->out_state);
>
> assign_bit()
>
> But I'm wondering why do you need the atomic bitops under the lock?
I don't think atomic bitops are necessary in this case because of the
lock as you pointedly out, but I felt using these made the intention of
the code clearer. Is there a non-atomic version of assign_bit(), or do
you recommend I use bitwise operations directly here instead?
> > +static inline int idio_16_get_direction(const unsigned long offset)
> > +{
> > + return (offset < IDIO_16_NOUT) ? 0 : 1;
>
> return (offset >= IDIO_16_NOUT) ? 1 : 0;
>
> ?
I have no particular preference in this case, so I can switch this to
the >= version for consistency with the rest of the code.
Thanks,
William Breathitt Gray
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2022-09-15 15:46 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-11 20:34 [PATCH 0/3] Introduce the ACCES IDIO-16 GPIO library module William Breathitt Gray
2022-09-11 20:34 ` [PATCH 1/3] gpio: idio-16: " William Breathitt Gray
2022-09-13 16:16 ` Andy Shevchenko
2022-09-15 15:46 ` William Breathitt Gray [this message]
2022-09-17 8:59 ` andy.shevchenko
2022-09-11 20:34 ` [PATCH 2/3] gpio: 104-idio-16: Utilize the idio-16 GPIO library William Breathitt Gray
2022-09-13 16:19 ` Andy Shevchenko
2022-09-13 16:25 ` William Breathitt Gray
2022-09-11 20:34 ` [PATCH 3/3] gpio: pci-idio-16: " William Breathitt Gray
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=YyNIxWS0sneUKas0@fedora \
--to=william.gray@linaro.org \
--cc=andriy.shevchenko@intel.com \
--cc=brgl@bgdev.pl \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/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.