* [PATCH v1 1/1] gpio: mmio: Support 64-bit BE access
@ 2024-02-20 23:23 andy.shevchenko
2024-02-21 8:02 ` Linus Walleij
2024-02-22 9:07 ` Bartosz Golaszewski
0 siblings, 2 replies; 3+ messages in thread
From: andy.shevchenko @ 2024-02-20 23:23 UTC (permalink / raw)
To: Andy Shevchenko, linux-gpio, linux-kernel
Cc: Linus Walleij, Bartosz Golaszewski
Use ioread64be()/iowrite64be() for 64-bit BE access.
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
---
drivers/gpio/gpio-mmio.c | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/drivers/gpio/gpio-mmio.c b/drivers/gpio/gpio-mmio.c
index 71e1af7c2184..cd5ef9233152 100644
--- a/drivers/gpio/gpio-mmio.c
+++ b/drivers/gpio/gpio-mmio.c
@@ -92,12 +92,12 @@ static unsigned long bgpio_read32(void __iomem *reg)
#if BITS_PER_LONG >= 64
static void bgpio_write64(void __iomem *reg, unsigned long data)
{
- writeq(data, reg);
+ iowrite64(data, reg);
}
static unsigned long bgpio_read64(void __iomem *reg)
{
- return readq(reg);
+ return ioread64(reg);
}
#endif /* BITS_PER_LONG >= 64 */
@@ -121,6 +121,18 @@ static unsigned long bgpio_read32be(void __iomem *reg)
return ioread32be(reg);
}
+#if BITS_PER_LONG >= 64
+static void bgpio_write64be(void __iomem *reg, unsigned long data)
+{
+ iowrite64be(data, reg);
+}
+
+static unsigned long bgpio_read64be(void __iomem *reg)
+{
+ return ioread64be(reg);
+}
+#endif /* BITS_PER_LONG >= 64 */
+
static unsigned long bgpio_line2mask(struct gpio_chip *gc, unsigned int line)
{
if (gc->be_bits)
@@ -445,9 +457,8 @@ static int bgpio_setup_accessors(struct device *dev,
#if BITS_PER_LONG >= 64
case 64:
if (byte_be) {
- dev_err(dev,
- "64 bit big endian byte order unsupported\n");
- return -EINVAL;
+ gc->read_reg = bgpio_read64be;
+ gc->write_reg = bgpio_write64be;
} else {
gc->read_reg = bgpio_read64;
gc->write_reg = bgpio_write64;
--
2.43.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v1 1/1] gpio: mmio: Support 64-bit BE access
2024-02-20 23:23 [PATCH v1 1/1] gpio: mmio: Support 64-bit BE access andy.shevchenko
@ 2024-02-21 8:02 ` Linus Walleij
2024-02-22 9:07 ` Bartosz Golaszewski
1 sibling, 0 replies; 3+ messages in thread
From: Linus Walleij @ 2024-02-21 8:02 UTC (permalink / raw)
To: andy.shevchenko; +Cc: linux-gpio, linux-kernel, Bartosz Golaszewski
On Wed, Feb 21, 2024 at 12:23 AM <andy.shevchenko@gmail.com> wrote:
> Use ioread64be()/iowrite64be() for 64-bit BE access.
>
> Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Obviously correct, thanks for fixing this!
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v1 1/1] gpio: mmio: Support 64-bit BE access
2024-02-20 23:23 [PATCH v1 1/1] gpio: mmio: Support 64-bit BE access andy.shevchenko
2024-02-21 8:02 ` Linus Walleij
@ 2024-02-22 9:07 ` Bartosz Golaszewski
1 sibling, 0 replies; 3+ messages in thread
From: Bartosz Golaszewski @ 2024-02-22 9:07 UTC (permalink / raw)
To: andy.shevchenko; +Cc: linux-gpio, linux-kernel, Linus Walleij
On Wed, Feb 21, 2024 at 12:23 AM <andy.shevchenko@gmail.com> wrote:
>
> Use ioread64be()/iowrite64be() for 64-bit BE access.
>
> Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> ---
Applied, thanks!
Bart
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-02-22 9:07 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-20 23:23 [PATCH v1 1/1] gpio: mmio: Support 64-bit BE access andy.shevchenko
2024-02-21 8:02 ` Linus Walleij
2024-02-22 9:07 ` Bartosz Golaszewski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).