2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-23 12:43:55 +08:00
linux-next/drivers/iio/adc
Linus Torvalds e0f0ae838a iio: adc: fix warning in Qualcomm PM8xxx HK/XOADC driver
The pm8xxx_get_channel() implementation is unclear, and causes gcc to
suddenly generate odd warnings.  The trigger for the warning (at least
for me) was the entirely unrelated commit 79a4e91d1b ("device.h: Add
__cold to dev_<level> logging functions"), which apparently changes gcc
code generation in the caller function enough to cause this:

  drivers/iio/adc/qcom-pm8xxx-xoadc.c: In function ‘pm8xxx_xoadc_probe’:
  drivers/iio/adc/qcom-pm8xxx-xoadc.c:633:8: warning: ‘ch’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    ret = pm8xxx_read_channel_rsv(adc, ch, AMUX_RSV4,
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             &read_nomux_rsv4, true);
             ~~~~~~~~~~~~~~~~~~~~~~~
  drivers/iio/adc/qcom-pm8xxx-xoadc.c:426:27: note: ‘ch’ was declared here
    struct pm8xxx_chan_info *ch;
                             ^~

because gcc for some reason then isn't able to see that the termination
condition for the "for( )" loop in that function is also the condition
for returning NULL.

So it's not _actually_ uninitialized, but the function is admittedly
just unnecessarily oddly written.

Simplify and clarify the function, making gcc also see that it always
returns a valid initialized value.

Cc: Joe Perches <joe@perches.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Andy Gross <andy.gross@linaro.org>
Cc: David Brown <david.brown@linaro.org>
Cc: Jonathan Cameron <jic23@kernel.org>
Cc: Hartmut Knaack <knaack.h@gmx.de>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-03-06 15:41:29 -08:00
..
ad799x.c drivers: iio: Update MODULE AUTHOR email address 2018-08-19 17:23:39 +01:00
ad7124.c iio: adc: Add ad7124 support 2018-11-17 16:41:09 +00:00
ad7266.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
ad7291.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
ad7298.c drivers: iio: Update MODULE AUTHOR email address 2018-08-19 17:23:39 +01:00
ad7476.c drivers: iio: Update MODULE AUTHOR email address 2018-08-19 17:23:39 +01:00
ad7766.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
ad7791.c iio: adc: ad7791: implement IIO_CHAN_INFO_SAMP_FREQ 2018-03-17 20:47:21 +00:00
ad7793.c drivers: iio: Update MODULE AUTHOR email address 2018-08-19 17:23:39 +01:00
ad7887.c drivers: iio: Update MODULE AUTHOR email address 2018-08-19 17:23:39 +01:00
ad7923.c drivers: iio: Update MODULE AUTHOR email address 2018-08-19 17:23:39 +01:00
ad7949.c iio:adc:ad7949: Add AD7949 ADC driver family 2018-11-03 09:44:34 +00:00
ad_sigma_delta.c iio: ad_sigma_delta: Allow to provide custom data register address 2018-11-17 16:30:00 +00:00
aspeed_adc.c iio: adc: aspeed: Fix error handling path 2018-01-14 11:01:13 +00:00
at91_adc.c iio: adc: at91: fix wrong channel number in triggered buffer mode 2018-09-29 12:30:24 +01:00
at91-sama5d2_adc.c iio: adc: at91-sama5d2_adc: fix up casting in at91_adc_read_info_raw() 2018-07-23 19:18:12 +01:00
axp20x_adc.c iio: adc: axp20x_adc: remove !! in favor of ternary condition 2018-02-24 12:19:45 +00:00
axp288_adc.c iio: adc: axp288: Fix TS-pin handling 2019-01-12 17:09:55 +00:00
bcm_iproc_adc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
berlin2-adc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
cc10001_adc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
cpcap-adc.c iio: adc: cpcap: fix incorrect validation 2017-12-02 11:15:13 +00:00
da9150-gpadc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
dln2-adc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
envelope-detector.c iio: envelope-detector: switch to SPDX license identifier 2018-08-20 19:27:05 +01:00
ep93xx_adc.c iio: ep93xx: remove redundant return value check of platform_get_resource() 2018-01-30 18:33:20 +00:00
exynos_adc.c iio: adc: exynos-adc: Add S5PV210 variant 2018-12-12 17:15:05 +00:00
fsl-imx25-gcq.c iio: adc: imx25-gcq: Fix leak of device_node in mx25_gcq_setup_cfgs() 2018-09-22 10:19:51 +01:00
hi8435.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
hx711.c iio: hx711: add delay until DOUT is ready 2018-07-15 09:36:38 +01:00
imx7d_adc.c iio: adc: fix spelling mistake: "Freeacale" -> "Freescale" 2018-05-22 18:17:57 +01:00
ina2xx-adc.c iio: adc: ina2xx: add in early -EINVAL returns in case statements 2018-10-21 15:43:11 +01:00
Kconfig iio: adc: Allow selection of Exynos ADC on S5PV210 2018-12-12 17:19:32 +00:00
lp8788_adc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
lpc18xx_adc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
lpc32xx_adc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
ltc2471.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
ltc2485.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
ltc2497.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
Makefile iio: adc: Add ad7124 support 2018-11-17 16:41:09 +00:00
max1027.c treewide: devm_kmalloc() -> devm_kmalloc_array() 2018-06-12 16:19:22 -07:00
max1118.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
max1363.c iio: adc: max1363: merge calls to of_match_device and of_device_get_match_data 2018-07-08 10:35:17 +01:00
max9611.c iio: adc: max9611: convert to SPDX identifiers 2018-11-16 18:32:27 +00:00
max11100.c iio: adc: max11100: convert to SPDX identifiers 2018-11-16 18:32:27 +00:00
mcp320x.c iio: adc: mcp320x: Add support for mcp3550/1/3 2017-10-09 21:01:36 +01:00
mcp3422.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
mcp3911.c iio: adc: add support for mcp3911 2018-08-19 20:02:48 +01:00
men_z188_adc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
meson_saradc.c iio: adc: meson-saradc: fix internal clock names 2018-11-25 10:41:36 +00:00
mt6577_auxadc.c iio: adc: mt2712: Add compatible node for mt2712. 2017-09-24 16:45:38 +01:00
mxs-lradc-adc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
nau7802.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
palmas_gpadc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
qcom-pm8xxx-xoadc.c iio: adc: fix warning in Qualcomm PM8xxx HK/XOADC driver 2019-03-06 15:41:29 -08:00
qcom-spmi-adc5.c iio: adc: qcom-spmi-adc5: Initialize prescale properly 2018-12-12 17:45:30 +00:00
qcom-spmi-iadc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
qcom-spmi-vadc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
qcom-vadc-common.c iio: adc: Add QCOM SPMI PMIC5 ADC driver 2018-08-18 18:11:43 +01:00
qcom-vadc-common.h iio: adc: Add QCOM SPMI PMIC5 ADC driver 2018-08-18 18:11:43 +01:00
rcar-gyroadc.c iio: adc: rcar-gyroadc: convert to SPDX identifiers 2018-11-16 18:32:28 +00:00
rockchip_saradc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
sc27xx_adc.c iio: adc: sc27xx: Add ADC data conversion timeout 2018-11-16 18:32:32 +00:00
sd_adc_modulator.c IIO: ADC: add sigma delta modulator support 2018-01-10 10:30:09 +00:00
spear_adc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
stm32-adc-core.c iio: adc: stm32-adc: add power management support 2018-11-25 13:15:24 +00:00
stm32-adc-core.h iio: stm32: Adopt SPDX identifier 2018-01-08 16:03:41 +01:00
stm32-adc.c iio: adc: stm32-adc: switch off running adc when going to low power 2018-11-25 13:16:38 +00:00
stm32-dfsdm-adc.c Staging/IIO patches for 4.18-rc1 2018-06-09 10:32:39 -07:00
stm32-dfsdm-core.c iio: adc: stm32-dfsdm: Add support for stm32mp1 2018-05-12 10:22:17 +01:00
stm32-dfsdm.h IIO: ADC: add stm32 DFSDM core support 2018-01-10 10:30:11 +00:00
stx104.c iio: stx104: Implement get_multiple callback 2018-03-17 16:21:27 +00:00
sun4i-gpadc-iio.c iio: adc: sun4i-gpadc: use of_device_get_match_data 2017-10-21 18:48:00 +01:00
ti_am335x_adc.c iio: adc: ti_am335x_tscadc: Improve accuracy of measurement 2018-12-03 11:33:20 +00:00
ti-adc081c.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
ti-adc084s021.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
ti-adc108s102.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
ti-adc128s052.c iio: adc128s052: use SPDX-License-Identifier 2018-11-03 09:44:33 +00:00
ti-adc161s626.c iio: add SPDX identifier for various drivers 2018-02-18 11:55:19 +00:00
ti-adc0832.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
ti-adc12138.c iio: adc: adc12138: make array ch_to_mux static, makes object code smaller 2017-10-21 17:56:09 +01:00
ti-ads1015.c Merge 4.14-rc4 into staging-next 2017-10-09 09:02:35 +02:00
ti-ads7950.c iio: adc: ti-ads7950: use SPI_CS_WORD to reduce CPU usage 2018-09-22 10:09:47 +01:00
ti-ads8688.c iio: ti-ads8688: Update buffer allocation for timestamps 2019-01-12 18:32:28 +00:00
ti-tlc4541.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
twl4030-madc.c Merge 4.14-rc4 into staging-next 2017-10-09 09:02:35 +02:00
twl6030-gpadc.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
vf610_adc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
viperboard_adc.c iio:adc: drop assign iio_info.driver_module and iio_trigger_ops.owner 2017-08-22 21:22:25 +01:00
xilinx-xadc-core.c iio: adc: xilinx: Move request_irq before enabling interrupts 2018-07-29 13:30:35 +01:00
xilinx-xadc-events.c iio: adc: xadc: Fix coding style violations 2017-08-12 13:10:30 +01:00
xilinx-xadc.h iio: adc: xilinx: Remove platform_get_irq from xadc_remove function 2018-07-29 12:52:21 +01:00