drivers/iio/adc/nxp-sar-adc.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
The driver uses FIELD_GET() for constant-mask fields but falls back
to a raw bit test for the per-channel EOC bit, as the mask depends
on the runtime channel index. A TODO notes that this should switch
to field_get() when available.
Use field_get() here now that runtime-mask support exists, and drop
the obsolete TODO. Since NXP_SAR_ADC_EOC_CH(c) is BIT(c), the
resulting !-test is semantically identical.
No functional change.
Signed-off-by: Piyush Patle <piyushpatle228@gmail.com>
---
drivers/iio/adc/nxp-sar-adc.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/drivers/iio/adc/nxp-sar-adc.c b/drivers/iio/adc/nxp-sar-adc.c
index 58103bf16aff..d6c2a0d50bb4 100644
--- a/drivers/iio/adc/nxp-sar-adc.c
+++ b/drivers/iio/adc/nxp-sar-adc.c
@@ -316,11 +316,7 @@ static int nxp_sar_adc_read_data(struct nxp_sar_adc *info, unsigned int chan)
ceocfr = readl(NXP_SAR_ADC_CEOCFR0(info->regs));
- /*
- * FIELD_GET() can not be used here because EOC_CH is not constant.
- * TODO: Switch to field_get() when it will be available.
- */
- if (!(NXP_SAR_ADC_EOC_CH(chan) & ceocfr))
+ if (!field_get(NXP_SAR_ADC_EOC_CH(chan), ceocfr))
return -EIO;
cdr = readl(NXP_SAR_ADC_CDR(info->regs, chan));
--
2.43.0
On 4/10/26 4:13 PM, Piyush Patle wrote: > The driver uses FIELD_GET() for constant-mask fields but falls back > to a raw bit test for the per-channel EOC bit, as the mask depends > on the runtime channel index. A TODO notes that this should switch > to field_get() when available. Could drop this first paragraph, it is a bit redundant. > > Use field_get() here now that runtime-mask support exists, and drop We like for commit messages to start with the verb like this, so this would be ideal for the first paragraph of the commit message. > the obsolete TODO. Since NXP_SAR_ADC_EOC_CH(c) is BIT(c), the > resulting !-test is semantically identical. > > No functional change. > > Signed-off-by: Piyush Patle <piyushpatle228@gmail.com> > --- Reviewed-by: David Lechner <dlechner@baylibre.com> And if you are interested in doing more like this, search the IIO subsystem for __ffs. If it is used with << or >> then there is a good chance it could be replaced with field_get() or field_prep().
On Fri, 10 Apr 2026 16:26:05 -0500 David Lechner <dlechner@baylibre.com> wrote: > On 4/10/26 4:13 PM, Piyush Patle wrote: > > The driver uses FIELD_GET() for constant-mask fields but falls back > > to a raw bit test for the per-channel EOC bit, as the mask depends > > on the runtime channel index. A TODO notes that this should switch > > to field_get() when available. > > Could drop this first paragraph, it is a bit redundant. > > > > > Use field_get() here now that runtime-mask support exists, and drop > > We like for commit messages to start with the verb like this, so > this would be ideal for the first paragraph of the commit message. > > > the obsolete TODO. Since NXP_SAR_ADC_EOC_CH(c) is BIT(c), the > > resulting !-test is semantically identical. > > > > No functional change. > > > > Signed-off-by: Piyush Patle <piyushpatle228@gmail.com> > > --- > Reviewed-by: David Lechner <dlechner@baylibre.com> > > > And if you are interested in doing more like this, search the IIO > subsystem for __ffs. If it is used with << or >> then there is a > good chance it could be replaced with field_get() or field_prep(). > > And likely make the code larger and slower :-) At least run the bloat-o-meter. David
> On 4/10/26 4:13 PM, Piyush Patle wrote: > > The driver uses FIELD_GET() for constant-mask fields but falls back > > to a raw bit test for the per-channel EOC bit, as the mask depends > > on the runtime channel index. A TODO notes that this should switch > > to field_get() when available. > > Could drop this first paragraph, it is a bit redundant. > > > > > Use field_get() here now that runtime-mask support exists, and drop > > We like for commit messages to start with the verb like this, so > this would be ideal for the first paragraph of the commit message. I have addressed all your comments. > > > the obsolete TODO. Since NXP_SAR_ADC_EOC_CH(c) is BIT(c), the > > resulting !-test is semantically identical. > > > > No functional change. > > > > Signed-off-by: Piyush Patle <piyushpatle228@gmail.com> > > --- > Reviewed-by: David Lechner <dlechner@baylibre.com> > Thanks for the review. Sent v2! > > And if you are interested in doing more like this, search the IIO > subsystem for __ffs. If it is used with << or >> then there is a > good chance it could be replaced with field_get() or field_prep(). > I'll also look for similar __ffs() patterns in IIO and convert them to field_get()/field_prep() where appropriate.
© 2016 - 2026 Red Hat, Inc.