patch "iio: adc: stm32-adc: skip adc-diff-channels setup if none is present" added to char-misc-linus
Subsystems (3)
This is a note to let you know that I've just added the patch titled
iio: adc: stm32-adc: skip adc-diff-channels setup if none is present
to my char-misc git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
in the char-misc-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
From 9c0d6ccd7d6bbd275e390b55a3390b4274291d95 Mon Sep 17 00:00:00 2001
From: Sean Nyekjaer <[email protected]>
Date: Wed, 3 May 2023 18:20:28 +0200
Subject: iio: adc: stm32-adc: skip adc-diff-channels setup if none is present
If no adc differential channels are defined driver will fail with EINVAL:
stm32-adc: probe of 48003000.adc:adc@0 failed with error -22
Fix this by skipping the initialization if no channels are defined.
This applies only to the legacy way of initializing adc channels.
--- drivers/iio/adc/stm32-adc.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-)
drivers/iio/adc/stm32-adc.c +9 -10
@@ -2006,16 +2006,15 @@ static int stm32_adc_get_legacy_chan_count(struct iio_dev *indio_dev, struct stm* to get the *real* number of channels. */ ret =device_property_count_u32 (dev,"st,adc-diff-channels" ); -if (ret <0 ) -return ret; - - ret /= (int )(sizeof (struct stm32_adc_diff_channel ) /sizeof (u32)); -if (ret > adc_info->max_channels) { -dev_err (&indio_dev->dev,"Bad st,adc-diff-channels?\n" ); -return -EINVAL ; - }else if (ret >0 ) { - adc->num_diff = ret; - num_channels += ret; +if (ret >0 ) { + ret /= (int )(sizeof (struct stm32_adc_diff_channel ) /sizeof (u32)); +if (ret > adc_info->max_channels) { +dev_err (&indio_dev->dev,"Bad st,adc-diff-channels?\n" ); +return -EINVAL ; + }else if (ret >0 ) { + adc->num_diff = ret; + num_channels += ret; + } }/* Optional sample time is provided either for each, or all channels */
Signature · 1 line
2.40.1