* [PATCH v6] staging: iio: adc: ad7816: Use modern IIO attribute macros
@ 2026-08-27 21:47 Md. Mahmudul Hasan Mabud
2026-08-28 10:01 ` Joshua Crofts
2026-08-30 23:09 ` Jonathan Cameron
0 siblings, 2 replies; 4+ messages in thread
From: Md. Mahmudul Hasan Mabud @ 2026-08-27 21:47 UTC (permalink / raw)
To: jic23, nuno.sa, Michael.Hennerich, gregkh
Cc: andy, dlechner, linux, linux-iio, linux-staging, linux-kernel,
Md. Mahmudul Hasan Mabud, Andy Shevchenko
Replace the legacy IIO_DEVICE_ATTR() macros with the modern
IIO_DEVICE_ATTR_RW() and IIO_DEVICE_ATTR_RO() macros.
This includes renaming driver-specific callback functions to
standard <name>_show() and <name>_store() formats.
Signed-off-by: Md. Mahmudul Hasan Mabud <mdmahmudulhasan1511@gmail.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
---
v6:
-Dropped extra blank lines based on Andy Shevchenko's feedback.
v5:
- Converted to a standalone single patch (previously part of the v3/v4 series).
- Updated commit message and fixed function header line lengths and wrapping based on Andy Shevchenko's feedback on v3.
Link: https://lore.kernel.org/linux-iio/act9ovNVsJvWO6Cx@ashevche-desk.local/
v4:
- Sent by mistake without updates.
v3:
- Initial version (as patch 4/4 of the series).
drivers/staging/iio/adc/ad7816.c | 69 +++++++++++---------------------
1 file changed, 24 insertions(+), 45 deletions(-)
diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c
index 30644d2d7..e8c2c1bfe 100644
--- a/drivers/staging/iio/adc/ad7816.c
+++ b/drivers/staging/iio/adc/ad7816.c
@@ -116,9 +116,8 @@ static int ad7816_spi_write(struct ad7816_chip_info *chip, u8 data)
return ret;
}
-static ssize_t ad7816_show_mode(struct device *dev,
- struct device_attribute *attr,
- char *buf)
+static ssize_t mode_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
{
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
struct ad7816_chip_info *chip = iio_priv(indio_dev);
@@ -128,10 +127,8 @@ static ssize_t ad7816_show_mode(struct device *dev,
return sysfs_emit(buf, "full\n");
}
-static ssize_t ad7816_store_mode(struct device *dev,
- struct device_attribute *attr,
- const char *buf,
- size_t len)
+static ssize_t mode_store(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t len)
{
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
struct ad7816_chip_info *chip = iio_priv(indio_dev);
@@ -146,25 +143,18 @@ static ssize_t ad7816_store_mode(struct device *dev,
return len;
}
+static IIO_DEVICE_ATTR_RW(mode, 0);
-static IIO_DEVICE_ATTR(mode, 0644,
- ad7816_show_mode,
- ad7816_store_mode,
- 0);
-
-static ssize_t ad7816_show_available_modes(struct device *dev,
- struct device_attribute *attr,
- char *buf)
+static ssize_t available_modes_show(struct device *dev,
+ struct device_attribute *attr,
+ char *buf)
{
return sysfs_emit(buf, "full\npower-save\n");
}
+static IIO_DEVICE_ATTR_RO(available_modes, 0);
-static IIO_DEVICE_ATTR(available_modes, 0444, ad7816_show_available_modes,
- NULL, 0);
-
-static ssize_t ad7816_show_channel(struct device *dev,
- struct device_attribute *attr,
- char *buf)
+static ssize_t channel_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
{
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
struct ad7816_chip_info *chip = iio_priv(indio_dev);
@@ -172,10 +162,8 @@ static ssize_t ad7816_show_channel(struct device *dev,
return sysfs_emit(buf, "%d\n", chip->channel_id);
}
-static ssize_t ad7816_store_channel(struct device *dev,
- struct device_attribute *attr,
- const char *buf,
- size_t len)
+static ssize_t channel_store(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t len)
{
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
struct ad7816_chip_info *chip = iio_priv(indio_dev);
@@ -204,15 +192,10 @@ static ssize_t ad7816_store_channel(struct device *dev,
return len;
}
+static IIO_DEVICE_ATTR_RW(channel, 0);
-static IIO_DEVICE_ATTR(channel, 0644,
- ad7816_show_channel,
- ad7816_store_channel,
- 0);
-
-static ssize_t ad7816_show_value(struct device *dev,
- struct device_attribute *attr,
- char *buf)
+static ssize_t value_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
{
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
struct ad7816_chip_info *chip = iio_priv(indio_dev);
@@ -235,8 +218,7 @@ static ssize_t ad7816_show_value(struct device *dev,
}
return sysfs_emit(buf, "%u\n", data);
}
-
-static IIO_DEVICE_ATTR(value, 0444, ad7816_show_value, NULL, 0);
+static IIO_DEVICE_ATTR_RO(value, 0);
static struct attribute *ad7816_attributes[] = {
&iio_dev_attr_available_modes.dev_attr.attr,
@@ -266,9 +248,8 @@ static irqreturn_t ad7816_event_handler(int irq, void *private)
return IRQ_HANDLED;
}
-static ssize_t ad7816_show_oti(struct device *dev,
- struct device_attribute *attr,
- char *buf)
+static ssize_t oti_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
{
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
struct ad7816_chip_info *chip = iio_priv(indio_dev);
@@ -286,10 +267,10 @@ static ssize_t ad7816_show_oti(struct device *dev,
return sysfs_emit(buf, "%u\n", chip->oti_data[chip->channel_id]);
}
-static inline ssize_t ad7816_set_oti(struct device *dev,
- struct device_attribute *attr,
- const char *buf,
- size_t len)
+static inline ssize_t oti_store(struct device *dev,
+ struct device_attribute *attr,
+ const char *buf,
+ size_t len)
{
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
struct ad7816_chip_info *chip = iio_priv(indio_dev);
@@ -326,9 +307,7 @@ static inline ssize_t ad7816_set_oti(struct device *dev,
return len;
}
-
-static IIO_DEVICE_ATTR(oti, 0644,
- ad7816_show_oti, ad7816_set_oti, 0);
+static IIO_DEVICE_ATTR_RW(oti, 0);
static struct attribute *ad7816_event_attributes[] = {
&iio_dev_attr_oti.dev_attr.attr,
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v6] staging: iio: adc: ad7816: Use modern IIO attribute macros
2026-08-27 21:47 [PATCH v6] staging: iio: adc: ad7816: Use modern IIO attribute macros Md. Mahmudul Hasan Mabud
@ 2026-08-28 10:01 ` Joshua Crofts
2026-08-30 23:09 ` Jonathan Cameron
1 sibling, 0 replies; 4+ messages in thread
From: Joshua Crofts @ 2026-08-28 10:01 UTC (permalink / raw)
To: Md. Mahmudul Hasan Mabud
Cc: jic23, nuno.sa, Michael.Hennerich, gregkh, andy, dlechner, linux,
linux-iio, linux-staging, linux-kernel, Andy Shevchenko
On Fri, 28 Aug 2026 03:47:21 +0600
"Md. Mahmudul Hasan Mabud" <mdmahmudulhasan1511@gmail.com> wrote:
> Replace the legacy IIO_DEVICE_ATTR() macros with the modern
> IIO_DEVICE_ATTR_RW() and IIO_DEVICE_ATTR_RO() macros.
>
> This includes renaming driver-specific callback functions to
> standard <name>_show() and <name>_store() formats.
>
> Signed-off-by: Md. Mahmudul Hasan Mabud <mdmahmudulhasan1511@gmail.com>
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
> ---
Also, as trivial as the requested change was, please wait at least
24 hours before resubmitting, let others review the code as well.
--
Kind regards,
Joshua Crofts
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v6] staging: iio: adc: ad7816: Use modern IIO attribute macros
2026-08-27 21:47 [PATCH v6] staging: iio: adc: ad7816: Use modern IIO attribute macros Md. Mahmudul Hasan Mabud
2026-08-28 10:01 ` Joshua Crofts
@ 2026-08-30 23:09 ` Jonathan Cameron
2026-08-31 7:07 ` Andy Shevchenko
1 sibling, 1 reply; 4+ messages in thread
From: Jonathan Cameron @ 2026-08-30 23:09 UTC (permalink / raw)
To: Md. Mahmudul Hasan Mabud
Cc: nuno.sa, Michael.Hennerich, gregkh, andy, dlechner, linux,
linux-iio, linux-staging, linux-kernel, Andy Shevchenko
On Fri, 28 Aug 2026 03:47:21 +0600
"Md. Mahmudul Hasan Mabud" <mdmahmudulhasan1511@gmail.com> wrote:
> Replace the legacy IIO_DEVICE_ATTR() macros with the modern
> IIO_DEVICE_ATTR_RW() and IIO_DEVICE_ATTR_RO() macros.
>
> This includes renaming driver-specific callback functions to
> standard <name>_show() and <name>_store() formats.
>
> Signed-off-by: Md. Mahmudul Hasan Mabud <mdmahmudulhasan1511@gmail.com>
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
How did we end up even looking at these? This is converting attributes
that would most likely go away in any attempt to bring this driver out of staging.
I'd much rather see the major surgery needed than tidying up around the edges.
I'm not particularly keen on any effort being expended in this direction
without substantially more justification.
So as this stands I'm going to ignore this one.
Jonathan
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v6] staging: iio: adc: ad7816: Use modern IIO attribute macros
2026-08-30 23:09 ` Jonathan Cameron
@ 2026-08-31 7:07 ` Andy Shevchenko
0 siblings, 0 replies; 4+ messages in thread
From: Andy Shevchenko @ 2026-08-31 7:07 UTC (permalink / raw)
To: Jonathan Cameron
Cc: Md. Mahmudul Hasan Mabud, nuno.sa, Michael.Hennerich, gregkh,
andy, dlechner, linux, linux-iio, linux-staging, linux-kernel
On Mon, Aug 31, 2026 at 12:09:54AM +0100, Jonathan Cameron wrote:
> On Fri, 28 Aug 2026 03:47:21 +0600
> "Md. Mahmudul Hasan Mabud" <mdmahmudulhasan1511@gmail.com> wrote:
>
> > Replace the legacy IIO_DEVICE_ATTR() macros with the modern
> > IIO_DEVICE_ATTR_RW() and IIO_DEVICE_ATTR_RO() macros.
> >
> > This includes renaming driver-specific callback functions to
> > standard <name>_show() and <name>_store() formats.
> >
> > Signed-off-by: Md. Mahmudul Hasan Mabud <mdmahmudulhasan1511@gmail.com>
> > Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
>
> How did we end up even looking at these? This is converting attributes
> that would most likely go away in any attempt to bring this driver out of staging.
> I'd much rather see the major surgery needed than tidying up around the edges.
>
> I'm not particularly keen on any effort being expended in this direction
> without substantially more justification.
Even though, I would consider this as a good cleanup from two perspectives:
- reducing the current code base, id est makes easier to get current state
of affairs
- educating people to use better alternatives (in case that's unavoidable)
in their code
> So as this stands I'm going to ignore this one.
This is fine!
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-08-31 7:07 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-27 21:47 [PATCH v6] staging: iio: adc: ad7816: Use modern IIO attribute macros Md. Mahmudul Hasan Mabud
2026-08-28 10:01 ` Joshua Crofts
2026-08-30 23:09 ` Jonathan Cameron
2026-08-31 7:07 ` Andy Shevchenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox