Alsa-devel
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2022
- 134 participants
- 281 discussions
Hi Uwe,
u.kleine-koenig(a)pengutronix.de wrote on Sun, 23 Jan 2022 18:52:01 +0100:
> The value returned by an spi driver's remove function is mostly ignored.
> (Only an error message is printed if the value is non-zero that the
> error is ignored.)
>
> So change the prototype of the remove function to return no value. This
> way driver authors are not tempted to assume that passing an error to
> the upper layer is a good idea. All drivers are adapted accordingly.
> There is no intended change of behaviour, all callbacks were prepared to
> return 0 before.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
> ---
[...]
> drivers/mtd/devices/mchp23k256.c | 4 +---
> drivers/mtd/devices/mchp48l640.c | 4 +---
> drivers/mtd/devices/mtd_dataflash.c | 4 +---
> drivers/mtd/devices/sst25l.c | 4 +---
For MTD devices:
Acked-by: Miquel Raynal <miquel.raynal(a)bootlin.com>
Thanks,
Miquèl
1
0
Hello.
On 23.01.22 18:52, Uwe Kleine-König wrote:
> The value returned by an spi driver's remove function is mostly ignored.
> (Only an error message is printed if the value is non-zero that the
> error is ignored.)
>
> So change the prototype of the remove function to return no value. This
> way driver authors are not tempted to assume that passing an error to
> the upper layer is a good idea. All drivers are adapted accordingly.
> There is no intended change of behaviour, all callbacks were prepared to
> return 0 before.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
> ---
[...]
> drivers/net/ieee802154/adf7242.c | 4 +---
> drivers/net/ieee802154/at86rf230.c | 4 +---
> drivers/net/ieee802154/ca8210.c | 6 ++----
> drivers/net/ieee802154/cc2520.c | 4 +---
> drivers/net/ieee802154/mcr20a.c | 4 +---
> drivers/net/ieee802154/mrf24j40.c | 4 +---
[...]
For the ieee802154 drivers:
Acked-by: Stefan Schmidt <stefan(a)datenfreihafen.org>
regards
Stefan Schmidt
1
0
25 Jan '22
On 23/01/2022 18:52:01+0100, Uwe Kleine-König wrote:
> The value returned by an spi driver's remove function is mostly ignored.
> (Only an error message is printed if the value is non-zero that the
> error is ignored.)
>
> So change the prototype of the remove function to return no value. This
> way driver authors are not tempted to assume that passing an error to
> the upper layer is a good idea. All drivers are adapted accordingly.
> There is no intended change of behaviour, all callbacks were prepared to
> return 0 before.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
Acked-by: Alexandre Belloni <alexandre.belloni(a)bootlin.com>
> ---
> drivers/bus/moxtet.c | 4 +---
> drivers/char/tpm/st33zp24/spi.c | 4 +---
> drivers/char/tpm/tpm_tis_spi_main.c | 3 +--
> drivers/clk/clk-lmk04832.c | 4 +---
> drivers/gpio/gpio-74x164.c | 4 +---
> drivers/gpio/gpio-max3191x.c | 4 +---
> drivers/gpio/gpio-max7301.c | 4 +---
> drivers/gpio/gpio-mc33880.c | 4 +---
> drivers/gpio/gpio-pisosr.c | 4 +---
> drivers/gpu/drm/panel/panel-abt-y030xx067a.c | 4 +---
> drivers/gpu/drm/panel/panel-ilitek-ili9322.c | 4 +---
> drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 3 +--
> drivers/gpu/drm/panel/panel-innolux-ej030na.c | 4 +---
> drivers/gpu/drm/panel/panel-lg-lb035q02.c | 4 +---
> drivers/gpu/drm/panel/panel-lg-lg4573.c | 4 +---
> drivers/gpu/drm/panel/panel-nec-nl8048hl11.c | 4 +---
> drivers/gpu/drm/panel/panel-novatek-nt39016.c | 4 +---
> drivers/gpu/drm/panel/panel-samsung-db7430.c | 3 +--
> drivers/gpu/drm/panel/panel-samsung-ld9040.c | 4 +---
> drivers/gpu/drm/panel/panel-samsung-s6d27a1.c | 3 +--
> drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c | 3 +--
> drivers/gpu/drm/panel/panel-sitronix-st7789v.c | 4 +---
> drivers/gpu/drm/panel/panel-sony-acx565akm.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-td028ttec1.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-td043mtea1.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-tpg110.c | 3 +--
> drivers/gpu/drm/panel/panel-widechips-ws2401.c | 3 +--
> drivers/gpu/drm/tiny/hx8357d.c | 4 +---
> drivers/gpu/drm/tiny/ili9163.c | 4 +---
> drivers/gpu/drm/tiny/ili9225.c | 4 +---
> drivers/gpu/drm/tiny/ili9341.c | 4 +---
> drivers/gpu/drm/tiny/ili9486.c | 4 +---
> drivers/gpu/drm/tiny/mi0283qt.c | 4 +---
> drivers/gpu/drm/tiny/repaper.c | 4 +---
> drivers/gpu/drm/tiny/st7586.c | 4 +---
> drivers/gpu/drm/tiny/st7735r.c | 4 +---
> drivers/hwmon/adcxx.c | 4 +---
> drivers/hwmon/adt7310.c | 3 +--
> drivers/hwmon/max1111.c | 3 +--
> drivers/hwmon/max31722.c | 4 +---
> drivers/iio/accel/bma400_spi.c | 4 +---
> drivers/iio/accel/bmc150-accel-spi.c | 4 +---
> drivers/iio/accel/bmi088-accel-spi.c | 4 +---
> drivers/iio/accel/kxsd9-spi.c | 4 +---
> drivers/iio/accel/mma7455_spi.c | 4 +---
> drivers/iio/accel/sca3000.c | 4 +---
> drivers/iio/adc/ad7266.c | 4 +---
> drivers/iio/adc/ltc2496.c | 4 +---
> drivers/iio/adc/mcp320x.c | 4 +---
> drivers/iio/adc/mcp3911.c | 4 +---
> drivers/iio/adc/ti-adc12138.c | 4 +---
> drivers/iio/adc/ti-ads7950.c | 4 +---
> drivers/iio/adc/ti-ads8688.c | 4 +---
> drivers/iio/adc/ti-tlc4541.c | 4 +---
> drivers/iio/amplifiers/ad8366.c | 4 +---
> drivers/iio/common/ssp_sensors/ssp_dev.c | 4 +---
> drivers/iio/dac/ad5360.c | 4 +---
> drivers/iio/dac/ad5380.c | 4 +---
> drivers/iio/dac/ad5446.c | 4 +---
> drivers/iio/dac/ad5449.c | 4 +---
> drivers/iio/dac/ad5504.c | 4 +---
> drivers/iio/dac/ad5592r.c | 4 +---
> drivers/iio/dac/ad5624r_spi.c | 4 +---
> drivers/iio/dac/ad5686-spi.c | 4 +---
> drivers/iio/dac/ad5761.c | 4 +---
> drivers/iio/dac/ad5764.c | 4 +---
> drivers/iio/dac/ad5791.c | 4 +---
> drivers/iio/dac/ad8801.c | 4 +---
> drivers/iio/dac/ltc1660.c | 4 +---
> drivers/iio/dac/ltc2632.c | 4 +---
> drivers/iio/dac/mcp4922.c | 4 +---
> drivers/iio/dac/ti-dac082s085.c | 4 +---
> drivers/iio/dac/ti-dac7311.c | 3 +--
> drivers/iio/frequency/adf4350.c | 4 +---
> drivers/iio/gyro/bmg160_spi.c | 4 +---
> drivers/iio/gyro/fxas21002c_spi.c | 4 +---
> drivers/iio/health/afe4403.c | 4 +---
> drivers/iio/magnetometer/bmc150_magn_spi.c | 4 +---
> drivers/iio/magnetometer/hmc5843_spi.c | 4 +---
> drivers/iio/potentiometer/max5487.c | 4 +---
> drivers/iio/pressure/ms5611_spi.c | 4 +---
> drivers/iio/pressure/zpa2326_spi.c | 4 +---
> drivers/input/keyboard/applespi.c | 4 +---
> drivers/input/misc/adxl34x-spi.c | 4 +---
> drivers/input/touchscreen/ads7846.c | 4 +---
> drivers/input/touchscreen/cyttsp4_spi.c | 4 +---
> drivers/input/touchscreen/tsc2005.c | 4 +---
> drivers/leds/leds-cr0014114.c | 4 +---
> drivers/leds/leds-dac124s085.c | 4 +---
> drivers/leds/leds-el15203000.c | 4 +---
> drivers/leds/leds-spi-byte.c | 4 +---
> drivers/media/spi/cxd2880-spi.c | 4 +---
> drivers/media/spi/gs1662.c | 4 +---
> drivers/media/tuners/msi001.c | 3 +--
> drivers/mfd/arizona-spi.c | 4 +---
> drivers/mfd/da9052-spi.c | 3 +--
> drivers/mfd/ezx-pcap.c | 4 +---
> drivers/mfd/madera-spi.c | 4 +---
> drivers/mfd/mc13xxx-spi.c | 3 +--
> drivers/mfd/rsmu_spi.c | 4 +---
> drivers/mfd/stmpe-spi.c | 4 +---
> drivers/mfd/tps65912-spi.c | 4 +---
> drivers/misc/ad525x_dpot-spi.c | 3 +--
> drivers/misc/eeprom/eeprom_93xx46.c | 4 +---
> drivers/misc/lattice-ecp3-config.c | 4 +---
> drivers/misc/lis3lv02d/lis3lv02d_spi.c | 4 +---
> drivers/mmc/host/mmc_spi.c | 3 +--
> drivers/mtd/devices/mchp23k256.c | 4 +---
> drivers/mtd/devices/mchp48l640.c | 4 +---
> drivers/mtd/devices/mtd_dataflash.c | 4 +---
> drivers/mtd/devices/sst25l.c | 4 +---
> drivers/net/can/m_can/tcan4x5x-core.c | 4 +---
> drivers/net/can/spi/hi311x.c | 4 +---
> drivers/net/can/spi/mcp251x.c | 4 +---
> drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 4 +---
> drivers/net/dsa/b53/b53_spi.c | 4 +---
> drivers/net/dsa/microchip/ksz8795_spi.c | 4 +---
> drivers/net/dsa/microchip/ksz9477_spi.c | 4 +---
> drivers/net/dsa/sja1105/sja1105_main.c | 6 ++----
> drivers/net/dsa/vitesse-vsc73xx-spi.c | 6 ++----
> drivers/net/ethernet/asix/ax88796c_main.c | 4 +---
> drivers/net/ethernet/micrel/ks8851_spi.c | 4 +---
> drivers/net/ethernet/microchip/enc28j60.c | 4 +---
> drivers/net/ethernet/microchip/encx24j600.c | 4 +---
> drivers/net/ethernet/qualcomm/qca_spi.c | 4 +---
> drivers/net/ethernet/vertexcom/mse102x.c | 4 +---
> drivers/net/ethernet/wiznet/w5100-spi.c | 4 +---
> drivers/net/ieee802154/adf7242.c | 4 +---
> drivers/net/ieee802154/at86rf230.c | 4 +---
> drivers/net/ieee802154/ca8210.c | 6 ++----
> drivers/net/ieee802154/cc2520.c | 4 +---
> drivers/net/ieee802154/mcr20a.c | 4 +---
> drivers/net/ieee802154/mrf24j40.c | 4 +---
> drivers/net/phy/spi_ks8995.c | 4 +---
> drivers/net/wan/slic_ds26522.c | 3 +--
> drivers/net/wireless/intersil/p54/p54spi.c | 4 +---
> drivers/net/wireless/marvell/libertas/if_spi.c | 4 +---
> drivers/net/wireless/microchip/wilc1000/spi.c | 4 +---
> drivers/net/wireless/st/cw1200/cw1200_spi.c | 4 +---
> drivers/net/wireless/ti/wl1251/spi.c | 4 +---
> drivers/net/wireless/ti/wlcore/spi.c | 4 +---
> drivers/nfc/nfcmrvl/spi.c | 3 +--
> drivers/nfc/st-nci/spi.c | 4 +---
> drivers/nfc/st95hf/core.c | 4 +---
> drivers/nfc/trf7970a.c | 4 +---
> drivers/platform/chrome/cros_ec_spi.c | 4 +---
> drivers/platform/olpc/olpc-xo175-ec.c | 4 +---
> drivers/rtc/rtc-ds1302.c | 3 +--
> drivers/rtc/rtc-ds1305.c | 4 +---
> drivers/rtc/rtc-ds1343.c | 4 +---
> drivers/spi/spi-mem.c | 6 ++----
> drivers/spi/spi-slave-system-control.c | 3 +--
> drivers/spi/spi-slave-time.c | 3 +--
> drivers/spi/spi-tle62x0.c | 3 +--
> drivers/spi/spi.c | 11 ++---------
> drivers/spi/spidev.c | 4 +---
> drivers/staging/fbtft/fbtft.h | 3 +--
> drivers/staging/pi433/pi433_if.c | 4 +---
> drivers/staging/wfx/bus_spi.c | 3 +--
> drivers/tty/serial/max3100.c | 5 ++---
> drivers/tty/serial/max310x.c | 3 +--
> drivers/tty/serial/sc16is7xx.c | 4 +---
> drivers/usb/gadget/udc/max3420_udc.c | 4 +---
> drivers/usb/host/max3421-hcd.c | 3 +--
> drivers/video/backlight/ams369fg06.c | 3 +--
> drivers/video/backlight/corgi_lcd.c | 3 +--
> drivers/video/backlight/ili922x.c | 3 +--
> drivers/video/backlight/l4f00242t03.c | 3 +--
> drivers/video/backlight/lms501kf03.c | 3 +--
> drivers/video/backlight/ltv350qv.c | 3 +--
> drivers/video/backlight/tdo24m.c | 3 +--
> drivers/video/backlight/tosa_lcd.c | 4 +---
> drivers/video/backlight/vgg2432a4.c | 4 +---
> drivers/video/fbdev/omap/lcd_mipid.c | 4 +---
> .../omap2/omapfb/displays/panel-lgphilips-lb035q02.c | 4 +---
> .../omap2/omapfb/displays/panel-nec-nl8048hl11.c | 4 +---
> .../omap2/omapfb/displays/panel-sony-acx565akm.c | 4 +---
> .../omap2/omapfb/displays/panel-tpo-td028ttec1.c | 4 +---
> .../omap2/omapfb/displays/panel-tpo-td043mtea1.c | 4 +---
> include/linux/spi/spi.h | 2 +-
> sound/pci/hda/cs35l41_hda_spi.c | 4 +---
> sound/soc/codecs/adau1761-spi.c | 3 +--
> sound/soc/codecs/adau1781-spi.c | 3 +--
> sound/soc/codecs/cs35l41-spi.c | 4 +---
> sound/soc/codecs/pcm3168a-spi.c | 4 +---
> sound/soc/codecs/pcm512x-spi.c | 3 +--
> sound/soc/codecs/tlv320aic32x4-spi.c | 4 +---
> sound/soc/codecs/tlv320aic3x-spi.c | 4 +---
> sound/soc/codecs/wm0010.c | 4 +---
> sound/soc/codecs/wm8804-spi.c | 3 +--
> sound/spi/at73c213.c | 4 +---
> 191 files changed, 197 insertions(+), 545 deletions(-)
>
> diff --git a/drivers/bus/moxtet.c b/drivers/bus/moxtet.c
> index fd87a59837fa..5eb0fe73ddc4 100644
> --- a/drivers/bus/moxtet.c
> +++ b/drivers/bus/moxtet.c
> @@ -815,7 +815,7 @@ static int moxtet_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int moxtet_remove(struct spi_device *spi)
> +static void moxtet_remove(struct spi_device *spi)
> {
> struct moxtet *moxtet = spi_get_drvdata(spi);
>
> @@ -828,8 +828,6 @@ static int moxtet_remove(struct spi_device *spi)
> device_for_each_child(moxtet->dev, NULL, __unregister);
>
> mutex_destroy(&moxtet->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id moxtet_dt_ids[] = {
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index ccd9e42b8eab..22d184884694 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -381,13 +381,11 @@ static int st33zp24_spi_probe(struct spi_device *dev)
> * @param: client, the spi_device description (TPM SPI description).
> * @return: 0 in case of success.
> */
> -static int st33zp24_spi_remove(struct spi_device *dev)
> +static void st33zp24_spi_remove(struct spi_device *dev)
> {
> struct tpm_chip *chip = spi_get_drvdata(dev);
>
> st33zp24_remove(chip);
> -
> - return 0;
> }
>
> static const struct spi_device_id st33zp24_spi_id[] = {
> diff --git a/drivers/char/tpm/tpm_tis_spi_main.c b/drivers/char/tpm/tpm_tis_spi_main.c
> index aaa59a00eeae..184396b3af50 100644
> --- a/drivers/char/tpm/tpm_tis_spi_main.c
> +++ b/drivers/char/tpm/tpm_tis_spi_main.c
> @@ -254,13 +254,12 @@ static int tpm_tis_spi_driver_probe(struct spi_device *spi)
>
> static SIMPLE_DEV_PM_OPS(tpm_tis_pm, tpm_pm_suspend, tpm_tis_spi_resume);
>
> -static int tpm_tis_spi_remove(struct spi_device *dev)
> +static void tpm_tis_spi_remove(struct spi_device *dev)
> {
> struct tpm_chip *chip = spi_get_drvdata(dev);
>
> tpm_chip_unregister(chip);
> tpm_tis_remove(chip);
> - return 0;
> }
>
> static const struct spi_device_id tpm_tis_spi_id[] = {
> diff --git a/drivers/clk/clk-lmk04832.c b/drivers/clk/clk-lmk04832.c
> index 8f02c0b88000..f416f8bc2898 100644
> --- a/drivers/clk/clk-lmk04832.c
> +++ b/drivers/clk/clk-lmk04832.c
> @@ -1544,14 +1544,12 @@ static int lmk04832_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int lmk04832_remove(struct spi_device *spi)
> +static void lmk04832_remove(struct spi_device *spi)
> {
> struct lmk04832 *lmk = spi_get_drvdata(spi);
>
> clk_disable_unprepare(lmk->oscin);
> of_clk_del_provider(spi->dev.of_node);
> -
> - return 0;
> }
> static const struct spi_device_id lmk04832_id[] = {
> { "lmk04832", LMK04832 },
> diff --git a/drivers/gpio/gpio-74x164.c b/drivers/gpio/gpio-74x164.c
> index 4a55cdf089d6..e00c33310517 100644
> --- a/drivers/gpio/gpio-74x164.c
> +++ b/drivers/gpio/gpio-74x164.c
> @@ -163,15 +163,13 @@ static int gen_74x164_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int gen_74x164_remove(struct spi_device *spi)
> +static void gen_74x164_remove(struct spi_device *spi)
> {
> struct gen_74x164_chip *chip = spi_get_drvdata(spi);
>
> gpiod_set_value_cansleep(chip->gpiod_oe, 0);
> gpiochip_remove(&chip->gpio_chip);
> mutex_destroy(&chip->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id gen_74x164_spi_ids[] = {
> diff --git a/drivers/gpio/gpio-max3191x.c b/drivers/gpio/gpio-max3191x.c
> index 51cd6f98d1c7..161c4751c5f7 100644
> --- a/drivers/gpio/gpio-max3191x.c
> +++ b/drivers/gpio/gpio-max3191x.c
> @@ -443,14 +443,12 @@ static int max3191x_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max3191x_remove(struct spi_device *spi)
> +static void max3191x_remove(struct spi_device *spi)
> {
> struct max3191x_chip *max3191x = spi_get_drvdata(spi);
>
> gpiochip_remove(&max3191x->gpio);
> mutex_destroy(&max3191x->lock);
> -
> - return 0;
> }
>
> static int __init max3191x_register_driver(struct spi_driver *sdrv)
> diff --git a/drivers/gpio/gpio-max7301.c b/drivers/gpio/gpio-max7301.c
> index 5862d73bf325..11813f41d460 100644
> --- a/drivers/gpio/gpio-max7301.c
> +++ b/drivers/gpio/gpio-max7301.c
> @@ -64,11 +64,9 @@ static int max7301_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int max7301_remove(struct spi_device *spi)
> +static void max7301_remove(struct spi_device *spi)
> {
> __max730x_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id max7301_id[] = {
> diff --git a/drivers/gpio/gpio-mc33880.c b/drivers/gpio/gpio-mc33880.c
> index 31d2be1bebc8..cd9b16dbe1a9 100644
> --- a/drivers/gpio/gpio-mc33880.c
> +++ b/drivers/gpio/gpio-mc33880.c
> @@ -134,7 +134,7 @@ static int mc33880_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mc33880_remove(struct spi_device *spi)
> +static void mc33880_remove(struct spi_device *spi)
> {
> struct mc33880 *mc;
>
> @@ -142,8 +142,6 @@ static int mc33880_remove(struct spi_device *spi)
>
> gpiochip_remove(&mc->chip);
> mutex_destroy(&mc->lock);
> -
> - return 0;
> }
>
> static struct spi_driver mc33880_driver = {
> diff --git a/drivers/gpio/gpio-pisosr.c b/drivers/gpio/gpio-pisosr.c
> index 8e04054cf07e..81a47ae09ff8 100644
> --- a/drivers/gpio/gpio-pisosr.c
> +++ b/drivers/gpio/gpio-pisosr.c
> @@ -163,15 +163,13 @@ static int pisosr_gpio_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int pisosr_gpio_remove(struct spi_device *spi)
> +static void pisosr_gpio_remove(struct spi_device *spi)
> {
> struct pisosr_gpio *gpio = spi_get_drvdata(spi);
>
> gpiochip_remove(&gpio->chip);
>
> mutex_destroy(&gpio->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id pisosr_gpio_id_table[] = {
> diff --git a/drivers/gpu/drm/panel/panel-abt-y030xx067a.c b/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> index f043b484055b..ed626fdc08e8 100644
> --- a/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> +++ b/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> @@ -293,15 +293,13 @@ static int y030xx067a_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int y030xx067a_remove(struct spi_device *spi)
> +static void y030xx067a_remove(struct spi_device *spi)
> {
> struct y030xx067a *priv = spi_get_drvdata(spi);
>
> drm_panel_remove(&priv->panel);
> drm_panel_disable(&priv->panel);
> drm_panel_unprepare(&priv->panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode y030xx067a_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> index 8e84df9a0033..3dfafa585127 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> @@ -896,14 +896,12 @@ static int ili9322_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9322_remove(struct spi_device *spi)
> +static void ili9322_remove(struct spi_device *spi)
> {
> struct ili9322 *ili = spi_get_drvdata(spi);
>
> ili9322_power_off(ili);
> drm_panel_remove(&ili->panel);
> -
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> index 2c3378a259b1..a07ef26234e5 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> @@ -728,7 +728,7 @@ static int ili9341_probe(struct spi_device *spi)
> return -1;
> }
>
> -static int ili9341_remove(struct spi_device *spi)
> +static void ili9341_remove(struct spi_device *spi)
> {
> const struct spi_device_id *id = spi_get_device_id(spi);
> struct ili9341 *ili = spi_get_drvdata(spi);
> @@ -741,7 +741,6 @@ static int ili9341_remove(struct spi_device *spi)
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> }
> - return 0;
> }
>
> static void ili9341_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-innolux-ej030na.c b/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> index c558de3f99be..e3b1daa0cb72 100644
> --- a/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> +++ b/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> @@ -219,15 +219,13 @@ static int ej030na_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ej030na_remove(struct spi_device *spi)
> +static void ej030na_remove(struct spi_device *spi)
> {
> struct ej030na *priv = spi_get_drvdata(spi);
>
> drm_panel_remove(&priv->panel);
> drm_panel_disable(&priv->panel);
> drm_panel_unprepare(&priv->panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode ej030na_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> index f3183b68704f..9d0d4faa3f58 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> @@ -203,14 +203,12 @@ static int lb035q02_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lb035q02_remove(struct spi_device *spi)
> +static void lb035q02_remove(struct spi_device *spi)
> {
> struct lb035q02_device *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id lb035q02_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> index 8e5160af1de5..cf246d15b7b6 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> @@ -266,14 +266,12 @@ static int lg4573_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lg4573_remove(struct spi_device *spi)
> +static void lg4573_remove(struct spi_device *spi)
> {
> struct lg4573 *ctx = spi_get_drvdata(spi);
>
> lg4573_display_off(ctx);
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id lg4573_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> index 6e5ab1debc8b..81c5c541a351 100644
> --- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> +++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> @@ -212,15 +212,13 @@ static int nl8048_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nl8048_remove(struct spi_device *spi)
> +static void nl8048_remove(struct spi_device *spi)
> {
> struct nl8048_panel *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id nl8048_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> index d036853db865..f58cfb10b58a 100644
> --- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> +++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> @@ -292,7 +292,7 @@ static int nt39016_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nt39016_remove(struct spi_device *spi)
> +static void nt39016_remove(struct spi_device *spi)
> {
> struct nt39016 *panel = spi_get_drvdata(spi);
>
> @@ -300,8 +300,6 @@ static int nt39016_remove(struct spi_device *spi)
>
> nt39016_disable(&panel->drm_panel);
> nt39016_unprepare(&panel->drm_panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode kd035g6_display_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-db7430.c b/drivers/gpu/drm/panel/panel-samsung-db7430.c
> index ead479719f00..04640c5256a8 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-db7430.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-db7430.c
> @@ -314,12 +314,11 @@ static int db7430_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int db7430_remove(struct spi_device *spi)
> +static void db7430_remove(struct spi_device *spi)
> {
> struct db7430 *db = spi_get_drvdata(spi);
>
> drm_panel_remove(&db->panel);
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> index c4b388850a13..01eb211f32f7 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> @@ -358,14 +358,12 @@ static int ld9040_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ld9040_remove(struct spi_device *spi)
> +static void ld9040_remove(struct spi_device *spi)
> {
> struct ld9040 *ctx = spi_get_drvdata(spi);
>
> ld9040_power_off(ctx);
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id ld9040_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c b/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> index 1696ceb36aa0..2adb223a895c 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> @@ -291,12 +291,11 @@ static int s6d27a1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int s6d27a1_remove(struct spi_device *spi)
> +static void s6d27a1_remove(struct spi_device *spi)
> {
> struct s6d27a1 *ctx = spi_get_drvdata(spi);
>
> drm_panel_remove(&ctx->panel);
> - return 0;
> }
>
> static const struct of_device_id s6d27a1_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> index c178d962b0d5..d99afcc672ca 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> @@ -62,10 +62,9 @@ static int s6e63m0_spi_probe(struct spi_device *spi)
> s6e63m0_spi_dcs_write, false);
> }
>
> -static int s6e63m0_spi_remove(struct spi_device *spi)
> +static void s6e63m0_spi_remove(struct spi_device *spi)
> {
> s6e63m0_remove(&spi->dev);
> - return 0;
> }
>
> static const struct of_device_id s6e63m0_spi_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> index 61e565524542..bbc4569cbcdc 100644
> --- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> +++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> @@ -387,13 +387,11 @@ static int st7789v_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7789v_remove(struct spi_device *spi)
> +static void st7789v_remove(struct spi_device *spi)
> {
> struct st7789v *ctx = spi_get_drvdata(spi);
>
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id st7789v_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> index ba0b3ead150f..0d7541a33f87 100644
> --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> @@ -655,7 +655,7 @@ static int acx565akm_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int acx565akm_remove(struct spi_device *spi)
> +static void acx565akm_remove(struct spi_device *spi)
> {
> struct acx565akm_panel *lcd = spi_get_drvdata(spi);
>
> @@ -666,8 +666,6 @@ static int acx565akm_remove(struct spi_device *spi)
>
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id acx565akm_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> index ba0c00d1a001..4dbf8b88f264 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> @@ -350,15 +350,13 @@ static int td028ttec1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int td028ttec1_remove(struct spi_device *spi)
> +static void td028ttec1_remove(struct spi_device *spi)
> {
> struct td028ttec1_panel *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id td028ttec1_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> index 1866cdb8f9c1..cf4609bb9b1d 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> @@ -463,7 +463,7 @@ static int td043mtea1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int td043mtea1_remove(struct spi_device *spi)
> +static void td043mtea1_remove(struct spi_device *spi)
> {
> struct td043mtea1_panel *lcd = spi_get_drvdata(spi);
>
> @@ -472,8 +472,6 @@ static int td043mtea1_remove(struct spi_device *spi)
> drm_panel_unprepare(&lcd->panel);
>
> sysfs_remove_group(&spi->dev.kobj, &td043mtea1_attr_group);
> -
> - return 0;
> }
>
> static const struct of_device_id td043mtea1_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> index e3791dad6830..0b1f5a11a055 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> @@ -450,12 +450,11 @@ static int tpg110_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int tpg110_remove(struct spi_device *spi)
> +static void tpg110_remove(struct spi_device *spi)
> {
> struct tpg110 *tpg = spi_get_drvdata(spi);
>
> drm_panel_remove(&tpg->panel);
> - return 0;
> }
>
> static const struct of_device_id tpg110_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-widechips-ws2401.c b/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> index 8bc976f54b80..236f3cb2b594 100644
> --- a/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> +++ b/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> @@ -407,12 +407,11 @@ static int ws2401_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ws2401_remove(struct spi_device *spi)
> +static void ws2401_remove(struct spi_device *spi)
> {
> struct ws2401 *ws = spi_get_drvdata(spi);
>
> drm_panel_remove(&ws->panel);
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/tiny/hx8357d.c b/drivers/gpu/drm/tiny/hx8357d.c
> index 9b33c05732aa..ebb025543f8d 100644
> --- a/drivers/gpu/drm/tiny/hx8357d.c
> +++ b/drivers/gpu/drm/tiny/hx8357d.c
> @@ -263,14 +263,12 @@ static int hx8357d_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int hx8357d_remove(struct spi_device *spi)
> +static void hx8357d_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void hx8357d_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9163.c b/drivers/gpu/drm/tiny/ili9163.c
> index bcc181351236..fc8ed245b0bc 100644
> --- a/drivers/gpu/drm/tiny/ili9163.c
> +++ b/drivers/gpu/drm/tiny/ili9163.c
> @@ -193,14 +193,12 @@ static int ili9163_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9163_remove(struct spi_device *spi)
> +static void ili9163_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9163_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9225.c b/drivers/gpu/drm/tiny/ili9225.c
> index 976d3209f164..cc92eb9f2a07 100644
> --- a/drivers/gpu/drm/tiny/ili9225.c
> +++ b/drivers/gpu/drm/tiny/ili9225.c
> @@ -411,14 +411,12 @@ static int ili9225_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9225_remove(struct spi_device *spi)
> +static void ili9225_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9225_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9341.c b/drivers/gpu/drm/tiny/ili9341.c
> index 37e0c33399c8..5b8cc770ee7b 100644
> --- a/drivers/gpu/drm/tiny/ili9341.c
> +++ b/drivers/gpu/drm/tiny/ili9341.c
> @@ -225,14 +225,12 @@ static int ili9341_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9341_remove(struct spi_device *spi)
> +static void ili9341_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9341_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9486.c b/drivers/gpu/drm/tiny/ili9486.c
> index e9a63f4b2993..6d655e18e0aa 100644
> --- a/drivers/gpu/drm/tiny/ili9486.c
> +++ b/drivers/gpu/drm/tiny/ili9486.c
> @@ -243,14 +243,12 @@ static int ili9486_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9486_remove(struct spi_device *spi)
> +static void ili9486_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9486_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/mi0283qt.c b/drivers/gpu/drm/tiny/mi0283qt.c
> index 023de49e7a8e..5e060f6910bb 100644
> --- a/drivers/gpu/drm/tiny/mi0283qt.c
> +++ b/drivers/gpu/drm/tiny/mi0283qt.c
> @@ -233,14 +233,12 @@ static int mi0283qt_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mi0283qt_remove(struct spi_device *spi)
> +static void mi0283qt_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void mi0283qt_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/repaper.c b/drivers/gpu/drm/tiny/repaper.c
> index 97a775c48cea..beeeb170d0b1 100644
> --- a/drivers/gpu/drm/tiny/repaper.c
> +++ b/drivers/gpu/drm/tiny/repaper.c
> @@ -1140,14 +1140,12 @@ static int repaper_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int repaper_remove(struct spi_device *spi)
> +static void repaper_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void repaper_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/st7586.c b/drivers/gpu/drm/tiny/st7586.c
> index 51b9b9fb3ead..3f38faa1cd8c 100644
> --- a/drivers/gpu/drm/tiny/st7586.c
> +++ b/drivers/gpu/drm/tiny/st7586.c
> @@ -360,14 +360,12 @@ static int st7586_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7586_remove(struct spi_device *spi)
> +static void st7586_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void st7586_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/st7735r.c b/drivers/gpu/drm/tiny/st7735r.c
> index fc40dd10efa8..29d618093e94 100644
> --- a/drivers/gpu/drm/tiny/st7735r.c
> +++ b/drivers/gpu/drm/tiny/st7735r.c
> @@ -247,14 +247,12 @@ static int st7735r_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7735r_remove(struct spi_device *spi)
> +static void st7735r_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void st7735r_shutdown(struct spi_device *spi)
> diff --git a/drivers/hwmon/adcxx.c b/drivers/hwmon/adcxx.c
> index e5bc5ce09f4e..de37bce24fa6 100644
> --- a/drivers/hwmon/adcxx.c
> +++ b/drivers/hwmon/adcxx.c
> @@ -194,7 +194,7 @@ static int adcxx_probe(struct spi_device *spi)
> return status;
> }
>
> -static int adcxx_remove(struct spi_device *spi)
> +static void adcxx_remove(struct spi_device *spi)
> {
> struct adcxx *adc = spi_get_drvdata(spi);
> int i;
> @@ -205,8 +205,6 @@ static int adcxx_remove(struct spi_device *spi)
> device_remove_file(&spi->dev, &ad_input[i].dev_attr);
>
> mutex_unlock(&adc->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id adcxx_ids[] = {
> diff --git a/drivers/hwmon/adt7310.c b/drivers/hwmon/adt7310.c
> index c40cac16af68..832d9ec64934 100644
> --- a/drivers/hwmon/adt7310.c
> +++ b/drivers/hwmon/adt7310.c
> @@ -88,10 +88,9 @@ static int adt7310_spi_probe(struct spi_device *spi)
> &adt7310_spi_ops);
> }
>
> -static int adt7310_spi_remove(struct spi_device *spi)
> +static void adt7310_spi_remove(struct spi_device *spi)
> {
> adt7x10_remove(&spi->dev, spi->irq);
> - return 0;
> }
>
> static const struct spi_device_id adt7310_id[] = {
> diff --git a/drivers/hwmon/max1111.c b/drivers/hwmon/max1111.c
> index 5fcfd57df61e..4c5487aeb3cf 100644
> --- a/drivers/hwmon/max1111.c
> +++ b/drivers/hwmon/max1111.c
> @@ -254,7 +254,7 @@ static int max1111_probe(struct spi_device *spi)
> return err;
> }
>
> -static int max1111_remove(struct spi_device *spi)
> +static void max1111_remove(struct spi_device *spi)
> {
> struct max1111_data *data = spi_get_drvdata(spi);
>
> @@ -265,7 +265,6 @@ static int max1111_remove(struct spi_device *spi)
> sysfs_remove_group(&spi->dev.kobj, &max1110_attr_group);
> sysfs_remove_group(&spi->dev.kobj, &max1111_attr_group);
> mutex_destroy(&data->drvdata_lock);
> - return 0;
> }
>
> static const struct spi_device_id max1111_ids[] = {
> diff --git a/drivers/hwmon/max31722.c b/drivers/hwmon/max31722.c
> index 4cf4fe6809a3..93e048ee4955 100644
> --- a/drivers/hwmon/max31722.c
> +++ b/drivers/hwmon/max31722.c
> @@ -100,7 +100,7 @@ static int max31722_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max31722_remove(struct spi_device *spi)
> +static void max31722_remove(struct spi_device *spi)
> {
> struct max31722_data *data = spi_get_drvdata(spi);
> int ret;
> @@ -111,8 +111,6 @@ static int max31722_remove(struct spi_device *spi)
> if (ret)
> /* There is nothing we can do about this ... */
> dev_warn(&spi->dev, "Failed to put device in stand-by mode\n");
> -
> - return 0;
> }
>
> static int __maybe_unused max31722_suspend(struct device *dev)
> diff --git a/drivers/iio/accel/bma400_spi.c b/drivers/iio/accel/bma400_spi.c
> index 9f622e37477b..9040a717b247 100644
> --- a/drivers/iio/accel/bma400_spi.c
> +++ b/drivers/iio/accel/bma400_spi.c
> @@ -87,11 +87,9 @@ static int bma400_spi_probe(struct spi_device *spi)
> return bma400_probe(&spi->dev, regmap, id->name);
> }
>
> -static int bma400_spi_remove(struct spi_device *spi)
> +static void bma400_spi_remove(struct spi_device *spi)
> {
> bma400_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bma400_spi_ids[] = {
> diff --git a/drivers/iio/accel/bmc150-accel-spi.c b/drivers/iio/accel/bmc150-accel-spi.c
> index 11559567cb39..80007cc2d044 100644
> --- a/drivers/iio/accel/bmc150-accel-spi.c
> +++ b/drivers/iio/accel/bmc150-accel-spi.c
> @@ -35,11 +35,9 @@ static int bmc150_accel_probe(struct spi_device *spi)
> true);
> }
>
> -static int bmc150_accel_remove(struct spi_device *spi)
> +static void bmc150_accel_remove(struct spi_device *spi)
> {
> bmc150_accel_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct acpi_device_id bmc150_accel_acpi_match[] = {
> diff --git a/drivers/iio/accel/bmi088-accel-spi.c b/drivers/iio/accel/bmi088-accel-spi.c
> index 758ad2f12896..06d99d9949f3 100644
> --- a/drivers/iio/accel/bmi088-accel-spi.c
> +++ b/drivers/iio/accel/bmi088-accel-spi.c
> @@ -56,11 +56,9 @@ static int bmi088_accel_probe(struct spi_device *spi)
> true);
> }
>
> -static int bmi088_accel_remove(struct spi_device *spi)
> +static void bmi088_accel_remove(struct spi_device *spi)
> {
> bmi088_accel_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmi088_accel_id[] = {
> diff --git a/drivers/iio/accel/kxsd9-spi.c b/drivers/iio/accel/kxsd9-spi.c
> index 441e6b764281..57c451cfb9e5 100644
> --- a/drivers/iio/accel/kxsd9-spi.c
> +++ b/drivers/iio/accel/kxsd9-spi.c
> @@ -32,11 +32,9 @@ static int kxsd9_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->name);
> }
>
> -static int kxsd9_spi_remove(struct spi_device *spi)
> +static void kxsd9_spi_remove(struct spi_device *spi)
> {
> kxsd9_common_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id kxsd9_spi_id[] = {
> diff --git a/drivers/iio/accel/mma7455_spi.c b/drivers/iio/accel/mma7455_spi.c
> index ecf690692dcc..b746031551a3 100644
> --- a/drivers/iio/accel/mma7455_spi.c
> +++ b/drivers/iio/accel/mma7455_spi.c
> @@ -22,11 +22,9 @@ static int mma7455_spi_probe(struct spi_device *spi)
> return mma7455_core_probe(&spi->dev, regmap, id->name);
> }
>
> -static int mma7455_spi_remove(struct spi_device *spi)
> +static void mma7455_spi_remove(struct spi_device *spi)
> {
> mma7455_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id mma7455_spi_ids[] = {
> diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
> index 43ecacbdc95a..83c81072511e 100644
> --- a/drivers/iio/accel/sca3000.c
> +++ b/drivers/iio/accel/sca3000.c
> @@ -1524,7 +1524,7 @@ static int sca3000_stop_all_interrupts(struct sca3000_state *st)
> return ret;
> }
>
> -static int sca3000_remove(struct spi_device *spi)
> +static void sca3000_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct sca3000_state *st = iio_priv(indio_dev);
> @@ -1535,8 +1535,6 @@ static int sca3000_remove(struct spi_device *spi)
> sca3000_stop_all_interrupts(st);
> if (spi->irq)
> free_irq(spi->irq, indio_dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id sca3000_id[] = {
> diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c
> index 1d345d66742d..c17d9b5fbaf6 100644
> --- a/drivers/iio/adc/ad7266.c
> +++ b/drivers/iio/adc/ad7266.c
> @@ -479,7 +479,7 @@ static int ad7266_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad7266_remove(struct spi_device *spi)
> +static void ad7266_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad7266_state *st = iio_priv(indio_dev);
> @@ -488,8 +488,6 @@ static int ad7266_remove(struct spi_device *spi)
> iio_triggered_buffer_cleanup(indio_dev);
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad7266_id[] = {
> diff --git a/drivers/iio/adc/ltc2496.c b/drivers/iio/adc/ltc2496.c
> index dd956a7c216e..5a55f79f2574 100644
> --- a/drivers/iio/adc/ltc2496.c
> +++ b/drivers/iio/adc/ltc2496.c
> @@ -78,13 +78,11 @@ static int ltc2496_probe(struct spi_device *spi)
> return ltc2497core_probe(dev, indio_dev);
> }
>
> -static int ltc2496_remove(struct spi_device *spi)
> +static void ltc2496_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
>
> ltc2497core_remove(indio_dev);
> -
> - return 0;
> }
>
> static const struct of_device_id ltc2496_of_match[] = {
> diff --git a/drivers/iio/adc/mcp320x.c b/drivers/iio/adc/mcp320x.c
> index 8d1cff28cae0..b4c69acb33e3 100644
> --- a/drivers/iio/adc/mcp320x.c
> +++ b/drivers/iio/adc/mcp320x.c
> @@ -459,15 +459,13 @@ static int mcp320x_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp320x_remove(struct spi_device *spi)
> +static void mcp320x_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp320x *adc = iio_priv(indio_dev);
>
> iio_device_unregister(indio_dev);
> regulator_disable(adc->reg);
> -
> - return 0;
> }
>
> static const struct of_device_id mcp320x_dt_ids[] = {
> diff --git a/drivers/iio/adc/mcp3911.c b/drivers/iio/adc/mcp3911.c
> index 13535f148c4c..1cb4590fe412 100644
> --- a/drivers/iio/adc/mcp3911.c
> +++ b/drivers/iio/adc/mcp3911.c
> @@ -321,7 +321,7 @@ static int mcp3911_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp3911_remove(struct spi_device *spi)
> +static void mcp3911_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp3911 *adc = iio_priv(indio_dev);
> @@ -331,8 +331,6 @@ static int mcp3911_remove(struct spi_device *spi)
> clk_disable_unprepare(adc->clki);
> if (adc->vref)
> regulator_disable(adc->vref);
> -
> - return 0;
> }
>
> static const struct of_device_id mcp3911_dt_ids[] = {
> diff --git a/drivers/iio/adc/ti-adc12138.c b/drivers/iio/adc/ti-adc12138.c
> index 6eb62b564dae..59d75d09604f 100644
> --- a/drivers/iio/adc/ti-adc12138.c
> +++ b/drivers/iio/adc/ti-adc12138.c
> @@ -503,7 +503,7 @@ static int adc12138_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adc12138_remove(struct spi_device *spi)
> +static void adc12138_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct adc12138 *adc = iio_priv(indio_dev);
> @@ -514,8 +514,6 @@ static int adc12138_remove(struct spi_device *spi)
> regulator_disable(adc->vref_n);
> regulator_disable(adc->vref_p);
> clk_disable_unprepare(adc->cclk);
> -
> - return 0;
> }
>
> static const struct of_device_id adc12138_dt_ids[] = {
> diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c
> index a7efa3eada2c..e3658b969c5b 100644
> --- a/drivers/iio/adc/ti-ads7950.c
> +++ b/drivers/iio/adc/ti-ads7950.c
> @@ -662,7 +662,7 @@ static int ti_ads7950_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_ads7950_remove(struct spi_device *spi)
> +static void ti_ads7950_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_ads7950_state *st = iio_priv(indio_dev);
> @@ -672,8 +672,6 @@ static int ti_ads7950_remove(struct spi_device *spi)
> iio_triggered_buffer_cleanup(indio_dev);
> regulator_disable(st->reg);
> mutex_destroy(&st->slock);
> -
> - return 0;
> }
>
> static const struct spi_device_id ti_ads7950_id[] = {
> diff --git a/drivers/iio/adc/ti-ads8688.c b/drivers/iio/adc/ti-ads8688.c
> index 2e24717d7f55..22c2583eedd0 100644
> --- a/drivers/iio/adc/ti-ads8688.c
> +++ b/drivers/iio/adc/ti-ads8688.c
> @@ -479,7 +479,7 @@ static int ads8688_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ads8688_remove(struct spi_device *spi)
> +static void ads8688_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ads8688_state *st = iio_priv(indio_dev);
> @@ -489,8 +489,6 @@ static int ads8688_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ads8688_id[] = {
> diff --git a/drivers/iio/adc/ti-tlc4541.c b/drivers/iio/adc/ti-tlc4541.c
> index 403b787f9f7e..2406eda9dfc6 100644
> --- a/drivers/iio/adc/ti-tlc4541.c
> +++ b/drivers/iio/adc/ti-tlc4541.c
> @@ -224,7 +224,7 @@ static int tlc4541_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tlc4541_remove(struct spi_device *spi)
> +static void tlc4541_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct tlc4541_state *st = iio_priv(indio_dev);
> @@ -232,8 +232,6 @@ static int tlc4541_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> iio_triggered_buffer_cleanup(indio_dev);
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct of_device_id tlc4541_dt_ids[] = {
> diff --git a/drivers/iio/amplifiers/ad8366.c b/drivers/iio/amplifiers/ad8366.c
> index cfcf18a0bce8..1134ae12e531 100644
> --- a/drivers/iio/amplifiers/ad8366.c
> +++ b/drivers/iio/amplifiers/ad8366.c
> @@ -298,7 +298,7 @@ static int ad8366_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad8366_remove(struct spi_device *spi)
> +static void ad8366_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad8366_state *st = iio_priv(indio_dev);
> @@ -308,8 +308,6 @@ static int ad8366_remove(struct spi_device *spi)
>
> if (!IS_ERR(reg))
> regulator_disable(reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad8366_id[] = {
> diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/ssp_sensors/ssp_dev.c
> index 1aee87100038..eafaf4529df5 100644
> --- a/drivers/iio/common/ssp_sensors/ssp_dev.c
> +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c
> @@ -586,7 +586,7 @@ static int ssp_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ssp_remove(struct spi_device *spi)
> +static void ssp_remove(struct spi_device *spi)
> {
> struct ssp_data *data = spi_get_drvdata(spi);
>
> @@ -608,8 +608,6 @@ static int ssp_remove(struct spi_device *spi)
> mutex_destroy(&data->pending_lock);
>
> mfd_remove_devices(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/iio/dac/ad5360.c b/drivers/iio/dac/ad5360.c
> index 2d3b14c407d8..ecbc6a51d60f 100644
> --- a/drivers/iio/dac/ad5360.c
> +++ b/drivers/iio/dac/ad5360.c
> @@ -521,7 +521,7 @@ static int ad5360_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5360_remove(struct spi_device *spi)
> +static void ad5360_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5360_state *st = iio_priv(indio_dev);
> @@ -531,8 +531,6 @@ static int ad5360_remove(struct spi_device *spi)
> kfree(indio_dev->channels);
>
> regulator_bulk_disable(st->chip_info->num_vrefs, st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5360_ids[] = {
> diff --git a/drivers/iio/dac/ad5380.c b/drivers/iio/dac/ad5380.c
> index e38860a6a9f3..82e1d9bd773e 100644
> --- a/drivers/iio/dac/ad5380.c
> +++ b/drivers/iio/dac/ad5380.c
> @@ -488,11 +488,9 @@ static int ad5380_spi_probe(struct spi_device *spi)
> return ad5380_probe(&spi->dev, regmap, id->driver_data, id->name);
> }
>
> -static int ad5380_spi_remove(struct spi_device *spi)
> +static void ad5380_spi_remove(struct spi_device *spi)
> {
> ad5380_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5380_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5446.c b/drivers/iio/dac/ad5446.c
> index 1c9b54c012a7..14cfabacbea5 100644
> --- a/drivers/iio/dac/ad5446.c
> +++ b/drivers/iio/dac/ad5446.c
> @@ -491,11 +491,9 @@ static int ad5446_spi_probe(struct spi_device *spi)
> &ad5446_spi_chip_info[id->driver_data]);
> }
>
> -static int ad5446_spi_remove(struct spi_device *spi)
> +static void ad5446_spi_remove(struct spi_device *spi)
> {
> ad5446_remove(&spi->dev);
> -
> - return 0;
> }
>
> static struct spi_driver ad5446_spi_driver = {
> diff --git a/drivers/iio/dac/ad5449.c b/drivers/iio/dac/ad5449.c
> index f5e93c6acc9d..bad9bdaafa94 100644
> --- a/drivers/iio/dac/ad5449.c
> +++ b/drivers/iio/dac/ad5449.c
> @@ -330,7 +330,7 @@ static int ad5449_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5449_spi_remove(struct spi_device *spi)
> +static void ad5449_spi_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5449 *st = iio_priv(indio_dev);
> @@ -338,8 +338,6 @@ static int ad5449_spi_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
>
> regulator_bulk_disable(st->chip_info->num_channels, st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5449_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c
> index b631261efa97..8507573aa13e 100644
> --- a/drivers/iio/dac/ad5504.c
> +++ b/drivers/iio/dac/ad5504.c
> @@ -336,7 +336,7 @@ static int ad5504_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5504_remove(struct spi_device *spi)
> +static void ad5504_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5504_state *st = iio_priv(indio_dev);
> @@ -345,8 +345,6 @@ static int ad5504_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5504_id[] = {
> diff --git a/drivers/iio/dac/ad5592r.c b/drivers/iio/dac/ad5592r.c
> index 6bfd7951e18c..0f7abfa75bec 100644
> --- a/drivers/iio/dac/ad5592r.c
> +++ b/drivers/iio/dac/ad5592r.c
> @@ -130,11 +130,9 @@ static int ad5592r_spi_probe(struct spi_device *spi)
> return ad5592r_probe(&spi->dev, id->name, &ad5592r_rw_ops);
> }
>
> -static int ad5592r_spi_remove(struct spi_device *spi)
> +static void ad5592r_spi_remove(struct spi_device *spi)
> {
> ad5592r_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5592r_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5624r_spi.c b/drivers/iio/dac/ad5624r_spi.c
> index 3c98941b9f99..371e812850eb 100644
> --- a/drivers/iio/dac/ad5624r_spi.c
> +++ b/drivers/iio/dac/ad5624r_spi.c
> @@ -293,7 +293,7 @@ static int ad5624r_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5624r_remove(struct spi_device *spi)
> +static void ad5624r_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5624r_state *st = iio_priv(indio_dev);
> @@ -301,8 +301,6 @@ static int ad5624r_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5624r_id[] = {
> diff --git a/drivers/iio/dac/ad5686-spi.c b/drivers/iio/dac/ad5686-spi.c
> index 2628810fdbb1..d26fb29b6b04 100644
> --- a/drivers/iio/dac/ad5686-spi.c
> +++ b/drivers/iio/dac/ad5686-spi.c
> @@ -95,11 +95,9 @@ static int ad5686_spi_probe(struct spi_device *spi)
> ad5686_spi_write, ad5686_spi_read);
> }
>
> -static int ad5686_spi_remove(struct spi_device *spi)
> +static void ad5686_spi_remove(struct spi_device *spi)
> {
> ad5686_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5686_spi_id[] = {
> diff --git a/drivers/iio/dac/ad5761.c b/drivers/iio/dac/ad5761.c
> index e37e095e94fc..4cb8471db81e 100644
> --- a/drivers/iio/dac/ad5761.c
> +++ b/drivers/iio/dac/ad5761.c
> @@ -394,7 +394,7 @@ static int ad5761_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5761_remove(struct spi_device *spi)
> +static void ad5761_remove(struct spi_device *spi)
> {
> struct iio_dev *iio_dev = spi_get_drvdata(spi);
> struct ad5761_state *st = iio_priv(iio_dev);
> @@ -403,8 +403,6 @@ static int ad5761_remove(struct spi_device *spi)
>
> if (!IS_ERR_OR_NULL(st->vref_reg))
> regulator_disable(st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5761_id[] = {
> diff --git a/drivers/iio/dac/ad5764.c b/drivers/iio/dac/ad5764.c
> index ae089b9145cb..d235a8047ba0 100644
> --- a/drivers/iio/dac/ad5764.c
> +++ b/drivers/iio/dac/ad5764.c
> @@ -332,7 +332,7 @@ static int ad5764_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5764_remove(struct spi_device *spi)
> +static void ad5764_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5764_state *st = iio_priv(indio_dev);
> @@ -341,8 +341,6 @@ static int ad5764_remove(struct spi_device *spi)
>
> if (st->chip_info->int_vref == 0)
> regulator_bulk_disable(ARRAY_SIZE(st->vref_reg), st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5764_ids[] = {
> diff --git a/drivers/iio/dac/ad5791.c b/drivers/iio/dac/ad5791.c
> index 7b4579d73d18..2b14914b4050 100644
> --- a/drivers/iio/dac/ad5791.c
> +++ b/drivers/iio/dac/ad5791.c
> @@ -428,7 +428,7 @@ static int ad5791_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5791_remove(struct spi_device *spi)
> +static void ad5791_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5791_state *st = iio_priv(indio_dev);
> @@ -439,8 +439,6 @@ static int ad5791_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg_vss))
> regulator_disable(st->reg_vss);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5791_id[] = {
> diff --git a/drivers/iio/dac/ad8801.c b/drivers/iio/dac/ad8801.c
> index 5ecfdad54dec..6be35c92d435 100644
> --- a/drivers/iio/dac/ad8801.c
> +++ b/drivers/iio/dac/ad8801.c
> @@ -193,7 +193,7 @@ static int ad8801_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad8801_remove(struct spi_device *spi)
> +static void ad8801_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad8801_state *state = iio_priv(indio_dev);
> @@ -202,8 +202,6 @@ static int ad8801_remove(struct spi_device *spi)
> if (state->vrefl_reg)
> regulator_disable(state->vrefl_reg);
> regulator_disable(state->vrefh_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad8801_ids[] = {
> diff --git a/drivers/iio/dac/ltc1660.c b/drivers/iio/dac/ltc1660.c
> index f6ec9bf5815e..c76233c9bb72 100644
> --- a/drivers/iio/dac/ltc1660.c
> +++ b/drivers/iio/dac/ltc1660.c
> @@ -206,15 +206,13 @@ static int ltc1660_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ltc1660_remove(struct spi_device *spi)
> +static void ltc1660_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ltc1660_priv *priv = iio_priv(indio_dev);
>
> iio_device_unregister(indio_dev);
> regulator_disable(priv->vref_reg);
> -
> - return 0;
> }
>
> static const struct of_device_id ltc1660_dt_ids[] = {
> diff --git a/drivers/iio/dac/ltc2632.c b/drivers/iio/dac/ltc2632.c
> index 53e4b887d372..aed46c80757e 100644
> --- a/drivers/iio/dac/ltc2632.c
> +++ b/drivers/iio/dac/ltc2632.c
> @@ -372,7 +372,7 @@ static int ltc2632_probe(struct spi_device *spi)
> return iio_device_register(indio_dev);
> }
>
> -static int ltc2632_remove(struct spi_device *spi)
> +static void ltc2632_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ltc2632_state *st = iio_priv(indio_dev);
> @@ -381,8 +381,6 @@ static int ltc2632_remove(struct spi_device *spi)
>
> if (st->vref_reg)
> regulator_disable(st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ltc2632_id[] = {
> diff --git a/drivers/iio/dac/mcp4922.c b/drivers/iio/dac/mcp4922.c
> index 0ae414ee1716..cb9e60e71b91 100644
> --- a/drivers/iio/dac/mcp4922.c
> +++ b/drivers/iio/dac/mcp4922.c
> @@ -172,7 +172,7 @@ static int mcp4922_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp4922_remove(struct spi_device *spi)
> +static void mcp4922_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp4922_state *state;
> @@ -180,8 +180,6 @@ static int mcp4922_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> state = iio_priv(indio_dev);
> regulator_disable(state->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id mcp4922_id[] = {
> diff --git a/drivers/iio/dac/ti-dac082s085.c b/drivers/iio/dac/ti-dac082s085.c
> index 6beda2193683..4e1156e6deb2 100644
> --- a/drivers/iio/dac/ti-dac082s085.c
> +++ b/drivers/iio/dac/ti-dac082s085.c
> @@ -313,7 +313,7 @@ static int ti_dac_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_dac_remove(struct spi_device *spi)
> +static void ti_dac_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_dac_chip *ti_dac = iio_priv(indio_dev);
> @@ -321,8 +321,6 @@ static int ti_dac_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> mutex_destroy(&ti_dac->lock);
> regulator_disable(ti_dac->vref);
> -
> - return 0;
> }
>
> static const struct of_device_id ti_dac_of_id[] = {
> diff --git a/drivers/iio/dac/ti-dac7311.c b/drivers/iio/dac/ti-dac7311.c
> index 99f275829ec2..e10d17e60ed3 100644
> --- a/drivers/iio/dac/ti-dac7311.c
> +++ b/drivers/iio/dac/ti-dac7311.c
> @@ -292,7 +292,7 @@ static int ti_dac_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_dac_remove(struct spi_device *spi)
> +static void ti_dac_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_dac_chip *ti_dac = iio_priv(indio_dev);
> @@ -300,7 +300,6 @@ static int ti_dac_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> mutex_destroy(&ti_dac->lock);
> regulator_disable(ti_dac->vref);
> - return 0;
> }
>
> static const struct of_device_id ti_dac_of_id[] = {
> diff --git a/drivers/iio/frequency/adf4350.c b/drivers/iio/frequency/adf4350.c
> index 3d9eba716b69..f3521330f6fb 100644
> --- a/drivers/iio/frequency/adf4350.c
> +++ b/drivers/iio/frequency/adf4350.c
> @@ -589,7 +589,7 @@ static int adf4350_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adf4350_remove(struct spi_device *spi)
> +static void adf4350_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct adf4350_state *st = iio_priv(indio_dev);
> @@ -604,8 +604,6 @@ static int adf4350_remove(struct spi_device *spi)
>
> if (!IS_ERR(reg))
> regulator_disable(reg);
> -
> - return 0;
> }
>
> static const struct of_device_id adf4350_of_match[] = {
> diff --git a/drivers/iio/gyro/bmg160_spi.c b/drivers/iio/gyro/bmg160_spi.c
> index 745962e1e423..fc2e453527b9 100644
> --- a/drivers/iio/gyro/bmg160_spi.c
> +++ b/drivers/iio/gyro/bmg160_spi.c
> @@ -27,11 +27,9 @@ static int bmg160_spi_probe(struct spi_device *spi)
> return bmg160_core_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int bmg160_spi_remove(struct spi_device *spi)
> +static void bmg160_spi_remove(struct spi_device *spi)
> {
> bmg160_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmg160_spi_id[] = {
> diff --git a/drivers/iio/gyro/fxas21002c_spi.c b/drivers/iio/gyro/fxas21002c_spi.c
> index 77ceebef4e34..c3ac169facf9 100644
> --- a/drivers/iio/gyro/fxas21002c_spi.c
> +++ b/drivers/iio/gyro/fxas21002c_spi.c
> @@ -34,11 +34,9 @@ static int fxas21002c_spi_probe(struct spi_device *spi)
> return fxas21002c_core_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int fxas21002c_spi_remove(struct spi_device *spi)
> +static void fxas21002c_spi_remove(struct spi_device *spi)
> {
> fxas21002c_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id fxas21002c_spi_id[] = {
> diff --git a/drivers/iio/health/afe4403.c b/drivers/iio/health/afe4403.c
> index 273f16dcaff8..856ec901b091 100644
> --- a/drivers/iio/health/afe4403.c
> +++ b/drivers/iio/health/afe4403.c
> @@ -570,7 +570,7 @@ static int afe4403_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int afe4403_remove(struct spi_device *spi)
> +static void afe4403_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct afe4403_data *afe = iio_priv(indio_dev);
> @@ -586,8 +586,6 @@ static int afe4403_remove(struct spi_device *spi)
> ret = regulator_disable(afe->regulator);
> if (ret)
> dev_warn(afe->dev, "Unable to disable regulator\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id afe4403_ids[] = {
> diff --git a/drivers/iio/magnetometer/bmc150_magn_spi.c b/drivers/iio/magnetometer/bmc150_magn_spi.c
> index c6ed3ea8460a..4c570412d65c 100644
> --- a/drivers/iio/magnetometer/bmc150_magn_spi.c
> +++ b/drivers/iio/magnetometer/bmc150_magn_spi.c
> @@ -29,11 +29,9 @@ static int bmc150_magn_spi_probe(struct spi_device *spi)
> return bmc150_magn_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int bmc150_magn_spi_remove(struct spi_device *spi)
> +static void bmc150_magn_spi_remove(struct spi_device *spi)
> {
> bmc150_magn_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmc150_magn_spi_id[] = {
> diff --git a/drivers/iio/magnetometer/hmc5843_spi.c b/drivers/iio/magnetometer/hmc5843_spi.c
> index 89cf59a62c28..a99dd9b33e95 100644
> --- a/drivers/iio/magnetometer/hmc5843_spi.c
> +++ b/drivers/iio/magnetometer/hmc5843_spi.c
> @@ -74,11 +74,9 @@ static int hmc5843_spi_probe(struct spi_device *spi)
> id->driver_data, id->name);
> }
>
> -static int hmc5843_spi_remove(struct spi_device *spi)
> +static void hmc5843_spi_remove(struct spi_device *spi)
> {
> hmc5843_common_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id hmc5843_id[] = {
> diff --git a/drivers/iio/potentiometer/max5487.c b/drivers/iio/potentiometer/max5487.c
> index 007c2bd324cb..42723c996c9f 100644
> --- a/drivers/iio/potentiometer/max5487.c
> +++ b/drivers/iio/potentiometer/max5487.c
> @@ -112,7 +112,7 @@ static int max5487_spi_probe(struct spi_device *spi)
> return iio_device_register(indio_dev);
> }
>
> -static int max5487_spi_remove(struct spi_device *spi)
> +static void max5487_spi_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> int ret;
> @@ -123,8 +123,6 @@ static int max5487_spi_remove(struct spi_device *spi)
> ret = max5487_write_cmd(spi, MAX5487_COPY_AB_TO_NV);
> if (ret)
> dev_warn(&spi->dev, "Failed to save wiper regs to NV regs\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id max5487_id[] = {
> diff --git a/drivers/iio/pressure/ms5611_spi.c b/drivers/iio/pressure/ms5611_spi.c
> index 9fa2dcd71760..7ccd960ced5d 100644
> --- a/drivers/iio/pressure/ms5611_spi.c
> +++ b/drivers/iio/pressure/ms5611_spi.c
> @@ -107,11 +107,9 @@ static int ms5611_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->driver_data);
> }
>
> -static int ms5611_spi_remove(struct spi_device *spi)
> +static void ms5611_spi_remove(struct spi_device *spi)
> {
> ms5611_remove(spi_get_drvdata(spi));
> -
> - return 0;
> }
>
> static const struct of_device_id ms5611_spi_matches[] = {
> diff --git a/drivers/iio/pressure/zpa2326_spi.c b/drivers/iio/pressure/zpa2326_spi.c
> index 85201a4bae44..ee8ed77536ca 100644
> --- a/drivers/iio/pressure/zpa2326_spi.c
> +++ b/drivers/iio/pressure/zpa2326_spi.c
> @@ -57,11 +57,9 @@ static int zpa2326_probe_spi(struct spi_device *spi)
> spi->irq, ZPA2326_DEVICE_ID, regmap);
> }
>
> -static int zpa2326_remove_spi(struct spi_device *spi)
> +static void zpa2326_remove_spi(struct spi_device *spi)
> {
> zpa2326_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id zpa2326_spi_ids[] = {
> diff --git a/drivers/input/keyboard/applespi.c b/drivers/input/keyboard/applespi.c
> index eda1b23002b5..d1f5354d5ea2 100644
> --- a/drivers/input/keyboard/applespi.c
> +++ b/drivers/input/keyboard/applespi.c
> @@ -1858,7 +1858,7 @@ static void applespi_drain_reads(struct applespi_data *applespi)
> spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags);
> }
>
> -static int applespi_remove(struct spi_device *spi)
> +static void applespi_remove(struct spi_device *spi)
> {
> struct applespi_data *applespi = spi_get_drvdata(spi);
>
> @@ -1871,8 +1871,6 @@ static int applespi_remove(struct spi_device *spi)
> applespi_drain_reads(applespi);
>
> debugfs_remove_recursive(applespi->debugfs_root);
> -
> - return 0;
> }
>
> static void applespi_shutdown(struct spi_device *spi)
> diff --git a/drivers/input/misc/adxl34x-spi.c b/drivers/input/misc/adxl34x-spi.c
> index 6e51c9bc619f..91e44d4c66f7 100644
> --- a/drivers/input/misc/adxl34x-spi.c
> +++ b/drivers/input/misc/adxl34x-spi.c
> @@ -87,13 +87,11 @@ static int adxl34x_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int adxl34x_spi_remove(struct spi_device *spi)
> +static void adxl34x_spi_remove(struct spi_device *spi)
> {
> struct adxl34x *ac = spi_get_drvdata(spi);
>
> adxl34x_remove(ac);
> -
> - return 0;
> }
>
> static int __maybe_unused adxl34x_spi_suspend(struct device *dev)
> diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
> index a25a77dd9a32..bed68a68f330 100644
> --- a/drivers/input/touchscreen/ads7846.c
> +++ b/drivers/input/touchscreen/ads7846.c
> @@ -1411,13 +1411,11 @@ static int ads7846_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ads7846_remove(struct spi_device *spi)
> +static void ads7846_remove(struct spi_device *spi)
> {
> struct ads7846 *ts = spi_get_drvdata(spi);
>
> ads7846_stop(ts);
> -
> - return 0;
> }
>
> static struct spi_driver ads7846_driver = {
> diff --git a/drivers/input/touchscreen/cyttsp4_spi.c b/drivers/input/touchscreen/cyttsp4_spi.c
> index 2aec41eb76b7..5d7db84f2749 100644
> --- a/drivers/input/touchscreen/cyttsp4_spi.c
> +++ b/drivers/input/touchscreen/cyttsp4_spi.c
> @@ -164,12 +164,10 @@ static int cyttsp4_spi_probe(struct spi_device *spi)
> return PTR_ERR_OR_ZERO(ts);
> }
>
> -static int cyttsp4_spi_remove(struct spi_device *spi)
> +static void cyttsp4_spi_remove(struct spi_device *spi)
> {
> struct cyttsp4 *ts = spi_get_drvdata(spi);
> cyttsp4_remove(ts);
> -
> - return 0;
> }
>
> static struct spi_driver cyttsp4_spi_driver = {
> diff --git a/drivers/input/touchscreen/tsc2005.c b/drivers/input/touchscreen/tsc2005.c
> index a2f55920b9b2..555dfe98b3c4 100644
> --- a/drivers/input/touchscreen/tsc2005.c
> +++ b/drivers/input/touchscreen/tsc2005.c
> @@ -64,11 +64,9 @@ static int tsc2005_probe(struct spi_device *spi)
> tsc2005_cmd);
> }
>
> -static int tsc2005_remove(struct spi_device *spi)
> +static void tsc2005_remove(struct spi_device *spi)
> {
> tsc200x_remove(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/leds/leds-cr0014114.c b/drivers/leds/leds-cr0014114.c
> index d03cfd3c0bfb..c87686bd7c18 100644
> --- a/drivers/leds/leds-cr0014114.c
> +++ b/drivers/leds/leds-cr0014114.c
> @@ -266,14 +266,12 @@ static int cr0014114_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int cr0014114_remove(struct spi_device *spi)
> +static void cr0014114_remove(struct spi_device *spi)
> {
> struct cr0014114 *priv = spi_get_drvdata(spi);
>
> cancel_delayed_work_sync(&priv->work);
> mutex_destroy(&priv->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id cr0014114_dt_ids[] = {
> diff --git a/drivers/leds/leds-dac124s085.c b/drivers/leds/leds-dac124s085.c
> index 20dc9b9d7dea..cf5fb1195f87 100644
> --- a/drivers/leds/leds-dac124s085.c
> +++ b/drivers/leds/leds-dac124s085.c
> @@ -85,15 +85,13 @@ static int dac124s085_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int dac124s085_remove(struct spi_device *spi)
> +static void dac124s085_remove(struct spi_device *spi)
> {
> struct dac124s085 *dac = spi_get_drvdata(spi);
> int i;
>
> for (i = 0; i < ARRAY_SIZE(dac->leds); i++)
> led_classdev_unregister(&dac->leds[i].ldev);
> -
> - return 0;
> }
>
> static struct spi_driver dac124s085_driver = {
> diff --git a/drivers/leds/leds-el15203000.c b/drivers/leds/leds-el15203000.c
> index f9eb59a25570..7e7b617bcd56 100644
> --- a/drivers/leds/leds-el15203000.c
> +++ b/drivers/leds/leds-el15203000.c
> @@ -315,13 +315,11 @@ static int el15203000_probe(struct spi_device *spi)
> return el15203000_probe_dt(priv);
> }
>
> -static int el15203000_remove(struct spi_device *spi)
> +static void el15203000_remove(struct spi_device *spi)
> {
> struct el15203000 *priv = spi_get_drvdata(spi);
>
> mutex_destroy(&priv->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id el15203000_dt_ids[] = {
> diff --git a/drivers/leds/leds-spi-byte.c b/drivers/leds/leds-spi-byte.c
> index f1964c96fb15..2bc5c99daf51 100644
> --- a/drivers/leds/leds-spi-byte.c
> +++ b/drivers/leds/leds-spi-byte.c
> @@ -130,13 +130,11 @@ static int spi_byte_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_byte_remove(struct spi_device *spi)
> +static void spi_byte_remove(struct spi_device *spi)
> {
> struct spi_byte_led *led = spi_get_drvdata(spi);
>
> mutex_destroy(&led->mutex);
> -
> - return 0;
> }
>
> static struct spi_driver spi_byte_driver = {
> diff --git a/drivers/media/spi/cxd2880-spi.c b/drivers/media/spi/cxd2880-spi.c
> index 6f2a66bc87fb..6be4e5528879 100644
> --- a/drivers/media/spi/cxd2880-spi.c
> +++ b/drivers/media/spi/cxd2880-spi.c
> @@ -625,7 +625,7 @@ cxd2880_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int
> +static void
> cxd2880_spi_remove(struct spi_device *spi)
> {
> struct cxd2880_dvb_spi *dvb_spi = spi_get_drvdata(spi);
> @@ -643,8 +643,6 @@ cxd2880_spi_remove(struct spi_device *spi)
>
> kfree(dvb_spi);
> pr_info("cxd2880_spi remove ok.\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id cxd2880_spi_id[] = {
> diff --git a/drivers/media/spi/gs1662.c b/drivers/media/spi/gs1662.c
> index f86ef1ca1288..75c21a93e6d0 100644
> --- a/drivers/media/spi/gs1662.c
> +++ b/drivers/media/spi/gs1662.c
> @@ -458,13 +458,11 @@ static int gs_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int gs_remove(struct spi_device *spi)
> +static void gs_remove(struct spi_device *spi)
> {
> struct v4l2_subdev *sd = spi_get_drvdata(spi);
>
> v4l2_device_unregister_subdev(sd);
> -
> - return 0;
> }
>
> static struct spi_driver gs_driver = {
> diff --git a/drivers/media/tuners/msi001.c b/drivers/media/tuners/msi001.c
> index 44247049a319..ad6c72c1ed04 100644
> --- a/drivers/media/tuners/msi001.c
> +++ b/drivers/media/tuners/msi001.c
> @@ -472,7 +472,7 @@ static int msi001_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int msi001_remove(struct spi_device *spi)
> +static void msi001_remove(struct spi_device *spi)
> {
> struct v4l2_subdev *sd = spi_get_drvdata(spi);
> struct msi001_dev *dev = sd_to_msi001_dev(sd);
> @@ -486,7 +486,6 @@ static int msi001_remove(struct spi_device *spi)
> v4l2_device_unregister_subdev(&dev->sd);
> v4l2_ctrl_handler_free(&dev->hdl);
> kfree(dev);
> - return 0;
> }
>
> static const struct spi_device_id msi001_id_table[] = {
> diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c
> index 9fe06dda3782..03620c8efe34 100644
> --- a/drivers/mfd/arizona-spi.c
> +++ b/drivers/mfd/arizona-spi.c
> @@ -206,13 +206,11 @@ static int arizona_spi_probe(struct spi_device *spi)
> return arizona_dev_init(arizona);
> }
>
> -static int arizona_spi_remove(struct spi_device *spi)
> +static void arizona_spi_remove(struct spi_device *spi)
> {
> struct arizona *arizona = spi_get_drvdata(spi);
>
> arizona_dev_exit(arizona);
> -
> - return 0;
> }
>
> static const struct spi_device_id arizona_spi_ids[] = {
> diff --git a/drivers/mfd/da9052-spi.c b/drivers/mfd/da9052-spi.c
> index 5faf3766a5e2..b79a57b45c1e 100644
> --- a/drivers/mfd/da9052-spi.c
> +++ b/drivers/mfd/da9052-spi.c
> @@ -55,12 +55,11 @@ static int da9052_spi_probe(struct spi_device *spi)
> return da9052_device_init(da9052, id->driver_data);
> }
>
> -static int da9052_spi_remove(struct spi_device *spi)
> +static void da9052_spi_remove(struct spi_device *spi)
> {
> struct da9052 *da9052 = spi_get_drvdata(spi);
>
> da9052_device_exit(da9052);
> - return 0;
> }
>
> static const struct spi_device_id da9052_spi_id[] = {
> diff --git a/drivers/mfd/ezx-pcap.c b/drivers/mfd/ezx-pcap.c
> index 70fa18b04ad2..2280f756f422 100644
> --- a/drivers/mfd/ezx-pcap.c
> +++ b/drivers/mfd/ezx-pcap.c
> @@ -392,7 +392,7 @@ static int pcap_add_subdev(struct pcap_chip *pcap,
> return ret;
> }
>
> -static int ezx_pcap_remove(struct spi_device *spi)
> +static void ezx_pcap_remove(struct spi_device *spi)
> {
> struct pcap_chip *pcap = spi_get_drvdata(spi);
> unsigned long flags;
> @@ -412,8 +412,6 @@ static int ezx_pcap_remove(struct spi_device *spi)
> irq_set_chip_and_handler(i, NULL, NULL);
>
> destroy_workqueue(pcap->workqueue);
> -
> - return 0;
> }
>
> static int ezx_pcap_probe(struct spi_device *spi)
> diff --git a/drivers/mfd/madera-spi.c b/drivers/mfd/madera-spi.c
> index e860f5ff0933..da84eb50e53a 100644
> --- a/drivers/mfd/madera-spi.c
> +++ b/drivers/mfd/madera-spi.c
> @@ -112,13 +112,11 @@ static int madera_spi_probe(struct spi_device *spi)
> return madera_dev_init(madera);
> }
>
> -static int madera_spi_remove(struct spi_device *spi)
> +static void madera_spi_remove(struct spi_device *spi)
> {
> struct madera *madera = spi_get_drvdata(spi);
>
> madera_dev_exit(madera);
> -
> - return 0;
> }
>
> static const struct spi_device_id madera_spi_ids[] = {
> diff --git a/drivers/mfd/mc13xxx-spi.c b/drivers/mfd/mc13xxx-spi.c
> index 4d8913d647e6..f803527e5819 100644
> --- a/drivers/mfd/mc13xxx-spi.c
> +++ b/drivers/mfd/mc13xxx-spi.c
> @@ -166,10 +166,9 @@ static int mc13xxx_spi_probe(struct spi_device *spi)
> return mc13xxx_common_init(&spi->dev);
> }
>
> -static int mc13xxx_spi_remove(struct spi_device *spi)
> +static void mc13xxx_spi_remove(struct spi_device *spi)
> {
> mc13xxx_common_exit(&spi->dev);
> - return 0;
> }
>
> static struct spi_driver mc13xxx_spi_driver = {
> diff --git a/drivers/mfd/rsmu_spi.c b/drivers/mfd/rsmu_spi.c
> index fec2b4ec477c..d2f3d8f1e05a 100644
> --- a/drivers/mfd/rsmu_spi.c
> +++ b/drivers/mfd/rsmu_spi.c
> @@ -220,13 +220,11 @@ static int rsmu_spi_probe(struct spi_device *client)
> return rsmu_core_init(rsmu);
> }
>
> -static int rsmu_spi_remove(struct spi_device *client)
> +static void rsmu_spi_remove(struct spi_device *client)
> {
> struct rsmu_ddata *rsmu = spi_get_drvdata(client);
>
> rsmu_core_exit(rsmu);
> -
> - return 0;
> }
>
> static const struct spi_device_id rsmu_spi_id[] = {
> diff --git a/drivers/mfd/stmpe-spi.c b/drivers/mfd/stmpe-spi.c
> index 6c5915016be5..ad8055a0e286 100644
> --- a/drivers/mfd/stmpe-spi.c
> +++ b/drivers/mfd/stmpe-spi.c
> @@ -102,13 +102,11 @@ stmpe_spi_probe(struct spi_device *spi)
> return stmpe_probe(&spi_ci, id->driver_data);
> }
>
> -static int stmpe_spi_remove(struct spi_device *spi)
> +static void stmpe_spi_remove(struct spi_device *spi)
> {
> struct stmpe *stmpe = spi_get_drvdata(spi);
>
> stmpe_remove(stmpe);
> -
> - return 0;
> }
>
> static const struct of_device_id stmpe_spi_of_match[] = {
> diff --git a/drivers/mfd/tps65912-spi.c b/drivers/mfd/tps65912-spi.c
> index d701926aa46e..bba38fbc781d 100644
> --- a/drivers/mfd/tps65912-spi.c
> +++ b/drivers/mfd/tps65912-spi.c
> @@ -50,13 +50,11 @@ static int tps65912_spi_probe(struct spi_device *spi)
> return tps65912_device_init(tps);
> }
>
> -static int tps65912_spi_remove(struct spi_device *spi)
> +static void tps65912_spi_remove(struct spi_device *spi)
> {
> struct tps65912 *tps = spi_get_drvdata(spi);
>
> tps65912_device_exit(tps);
> -
> - return 0;
> }
>
> static const struct spi_device_id tps65912_spi_id_table[] = {
> diff --git a/drivers/misc/ad525x_dpot-spi.c b/drivers/misc/ad525x_dpot-spi.c
> index a9e75d80ad36..263055bda48b 100644
> --- a/drivers/misc/ad525x_dpot-spi.c
> +++ b/drivers/misc/ad525x_dpot-spi.c
> @@ -90,10 +90,9 @@ static int ad_dpot_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->name);
> }
>
> -static int ad_dpot_spi_remove(struct spi_device *spi)
> +static void ad_dpot_spi_remove(struct spi_device *spi)
> {
> ad_dpot_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id ad_dpot_spi_id[] = {
> diff --git a/drivers/misc/eeprom/eeprom_93xx46.c b/drivers/misc/eeprom/eeprom_93xx46.c
> index 1f15399e5cb4..b630625b3024 100644
> --- a/drivers/misc/eeprom/eeprom_93xx46.c
> +++ b/drivers/misc/eeprom/eeprom_93xx46.c
> @@ -555,14 +555,12 @@ static int eeprom_93xx46_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int eeprom_93xx46_remove(struct spi_device *spi)
> +static void eeprom_93xx46_remove(struct spi_device *spi)
> {
> struct eeprom_93xx46_dev *edev = spi_get_drvdata(spi);
>
> if (!(edev->pdata->flags & EE_READONLY))
> device_remove_file(&spi->dev, &dev_attr_erase);
> -
> - return 0;
> }
>
> static struct spi_driver eeprom_93xx46_driver = {
> diff --git a/drivers/misc/lattice-ecp3-config.c b/drivers/misc/lattice-ecp3-config.c
> index 98828030b5a4..bac4df2e5231 100644
> --- a/drivers/misc/lattice-ecp3-config.c
> +++ b/drivers/misc/lattice-ecp3-config.c
> @@ -211,13 +211,11 @@ static int lattice_ecp3_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lattice_ecp3_remove(struct spi_device *spi)
> +static void lattice_ecp3_remove(struct spi_device *spi)
> {
> struct fpga_data *data = spi_get_drvdata(spi);
>
> wait_for_completion(&data->fw_loaded);
> -
> - return 0;
> }
>
> static const struct spi_device_id lattice_ecp3_id[] = {
> diff --git a/drivers/misc/lis3lv02d/lis3lv02d_spi.c b/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> index 9e40dfb60742..203a108b8883 100644
> --- a/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> +++ b/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> @@ -96,15 +96,13 @@ static int lis302dl_spi_probe(struct spi_device *spi)
> return lis3lv02d_init_device(&lis3_dev);
> }
>
> -static int lis302dl_spi_remove(struct spi_device *spi)
> +static void lis302dl_spi_remove(struct spi_device *spi)
> {
> struct lis3lv02d *lis3 = spi_get_drvdata(spi);
> lis3lv02d_joystick_disable(lis3);
> lis3lv02d_poweroff(lis3);
>
> lis3lv02d_remove_fs(&lis3_dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c
> index a576181e9db0..106dd204b1a7 100644
> --- a/drivers/mmc/host/mmc_spi.c
> +++ b/drivers/mmc/host/mmc_spi.c
> @@ -1489,7 +1489,7 @@ static int mmc_spi_probe(struct spi_device *spi)
> }
>
>
> -static int mmc_spi_remove(struct spi_device *spi)
> +static void mmc_spi_remove(struct spi_device *spi)
> {
> struct mmc_host *mmc = dev_get_drvdata(&spi->dev);
> struct mmc_spi_host *host = mmc_priv(mmc);
> @@ -1507,7 +1507,6 @@ static int mmc_spi_remove(struct spi_device *spi)
> spi->max_speed_hz = mmc->f_max;
> mmc_spi_put_pdata(spi);
> mmc_free_host(mmc);
> - return 0;
> }
>
> static const struct spi_device_id mmc_spi_dev_ids[] = {
> diff --git a/drivers/mtd/devices/mchp23k256.c b/drivers/mtd/devices/mchp23k256.c
> index a8b31bddf14b..008df9d8898d 100644
> --- a/drivers/mtd/devices/mchp23k256.c
> +++ b/drivers/mtd/devices/mchp23k256.c
> @@ -209,13 +209,11 @@ static int mchp23k256_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mchp23k256_remove(struct spi_device *spi)
> +static void mchp23k256_remove(struct spi_device *spi)
> {
> struct mchp23k256_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static const struct of_device_id mchp23k256_of_table[] = {
> diff --git a/drivers/mtd/devices/mchp48l640.c b/drivers/mtd/devices/mchp48l640.c
> index 231a10790196..a3fd426df74b 100644
> --- a/drivers/mtd/devices/mchp48l640.c
> +++ b/drivers/mtd/devices/mchp48l640.c
> @@ -341,13 +341,11 @@ static int mchp48l640_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mchp48l640_remove(struct spi_device *spi)
> +static void mchp48l640_remove(struct spi_device *spi)
> {
> struct mchp48l640_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static const struct of_device_id mchp48l640_of_table[] = {
> diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c
> index 734878abaa23..134e27328597 100644
> --- a/drivers/mtd/devices/mtd_dataflash.c
> +++ b/drivers/mtd/devices/mtd_dataflash.c
> @@ -916,7 +916,7 @@ static int dataflash_probe(struct spi_device *spi)
> return status;
> }
>
> -static int dataflash_remove(struct spi_device *spi)
> +static void dataflash_remove(struct spi_device *spi)
> {
> struct dataflash *flash = spi_get_drvdata(spi);
>
> @@ -925,8 +925,6 @@ static int dataflash_remove(struct spi_device *spi)
> WARN_ON(mtd_device_unregister(&flash->mtd));
>
> kfree(flash);
> -
> - return 0;
> }
>
> static struct spi_driver dataflash_driver = {
> diff --git a/drivers/mtd/devices/sst25l.c b/drivers/mtd/devices/sst25l.c
> index 7f124c1bfa40..8813994ce9f4 100644
> --- a/drivers/mtd/devices/sst25l.c
> +++ b/drivers/mtd/devices/sst25l.c
> @@ -398,13 +398,11 @@ static int sst25l_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int sst25l_remove(struct spi_device *spi)
> +static void sst25l_remove(struct spi_device *spi)
> {
> struct sst25l_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static struct spi_driver sst25l_driver = {
> diff --git a/drivers/net/can/m_can/tcan4x5x-core.c b/drivers/net/can/m_can/tcan4x5x-core.c
> index 04687b15b250..41645a24384c 100644
> --- a/drivers/net/can/m_can/tcan4x5x-core.c
> +++ b/drivers/net/can/m_can/tcan4x5x-core.c
> @@ -388,7 +388,7 @@ static int tcan4x5x_can_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tcan4x5x_can_remove(struct spi_device *spi)
> +static void tcan4x5x_can_remove(struct spi_device *spi)
> {
> struct tcan4x5x_priv *priv = spi_get_drvdata(spi);
>
> @@ -397,8 +397,6 @@ static int tcan4x5x_can_remove(struct spi_device *spi)
> tcan4x5x_power_enable(priv->power, 0);
>
> m_can_class_free_dev(priv->cdev.net);
> -
> - return 0;
> }
>
> static const struct of_device_id tcan4x5x_of_match[] = {
> diff --git a/drivers/net/can/spi/hi311x.c b/drivers/net/can/spi/hi311x.c
> index cfcc14fe3e42..664b8f14d7b0 100644
> --- a/drivers/net/can/spi/hi311x.c
> +++ b/drivers/net/can/spi/hi311x.c
> @@ -948,7 +948,7 @@ static int hi3110_can_probe(struct spi_device *spi)
> return dev_err_probe(dev, ret, "Probe failed\n");
> }
>
> -static int hi3110_can_remove(struct spi_device *spi)
> +static void hi3110_can_remove(struct spi_device *spi)
> {
> struct hi3110_priv *priv = spi_get_drvdata(spi);
> struct net_device *net = priv->net;
> @@ -960,8 +960,6 @@ static int hi3110_can_remove(struct spi_device *spi)
> clk_disable_unprepare(priv->clk);
>
> free_candev(net);
> -
> - return 0;
> }
>
> static int __maybe_unused hi3110_can_suspend(struct device *dev)
> diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c
> index 025e07cb7439..d23edaf22420 100644
> --- a/drivers/net/can/spi/mcp251x.c
> +++ b/drivers/net/can/spi/mcp251x.c
> @@ -1427,7 +1427,7 @@ static int mcp251x_can_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp251x_can_remove(struct spi_device *spi)
> +static void mcp251x_can_remove(struct spi_device *spi)
> {
> struct mcp251x_priv *priv = spi_get_drvdata(spi);
> struct net_device *net = priv->net;
> @@ -1442,8 +1442,6 @@ static int mcp251x_can_remove(struct spi_device *spi)
> clk_disable_unprepare(priv->clk);
>
> free_candev(net);
> -
> - return 0;
> }
>
> static int __maybe_unused mcp251x_can_suspend(struct device *dev)
> diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> index b5986df6eca0..65c9b31666a6 100644
> --- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> +++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> @@ -1966,7 +1966,7 @@ static int mcp251xfd_probe(struct spi_device *spi)
> return err;
> }
>
> -static int mcp251xfd_remove(struct spi_device *spi)
> +static void mcp251xfd_remove(struct spi_device *spi)
> {
> struct mcp251xfd_priv *priv = spi_get_drvdata(spi);
> struct net_device *ndev = priv->ndev;
> @@ -1975,8 +1975,6 @@ static int mcp251xfd_remove(struct spi_device *spi)
> mcp251xfd_unregister(priv);
> spi->max_speed_hz = priv->spi_max_speed_hz_orig;
> free_candev(ndev);
> -
> - return 0;
> }
>
> static int __maybe_unused mcp251xfd_runtime_suspend(struct device *device)
> diff --git a/drivers/net/dsa/b53/b53_spi.c b/drivers/net/dsa/b53/b53_spi.c
> index 2b88f03e5252..0e54b2a0c211 100644
> --- a/drivers/net/dsa/b53/b53_spi.c
> +++ b/drivers/net/dsa/b53/b53_spi.c
> @@ -314,7 +314,7 @@ static int b53_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int b53_spi_remove(struct spi_device *spi)
> +static void b53_spi_remove(struct spi_device *spi)
> {
> struct b53_device *dev = spi_get_drvdata(spi);
>
> @@ -322,8 +322,6 @@ static int b53_spi_remove(struct spi_device *spi)
> b53_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void b53_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/microchip/ksz8795_spi.c b/drivers/net/dsa/microchip/ksz8795_spi.c
> index 866767b70d65..673589dc88ab 100644
> --- a/drivers/net/dsa/microchip/ksz8795_spi.c
> +++ b/drivers/net/dsa/microchip/ksz8795_spi.c
> @@ -87,7 +87,7 @@ static int ksz8795_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ksz8795_spi_remove(struct spi_device *spi)
> +static void ksz8795_spi_remove(struct spi_device *spi)
> {
> struct ksz_device *dev = spi_get_drvdata(spi);
>
> @@ -95,8 +95,6 @@ static int ksz8795_spi_remove(struct spi_device *spi)
> ksz_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void ksz8795_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/microchip/ksz9477_spi.c b/drivers/net/dsa/microchip/ksz9477_spi.c
> index e3cb0e6c9f6f..940bb9665f15 100644
> --- a/drivers/net/dsa/microchip/ksz9477_spi.c
> +++ b/drivers/net/dsa/microchip/ksz9477_spi.c
> @@ -65,7 +65,7 @@ static int ksz9477_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ksz9477_spi_remove(struct spi_device *spi)
> +static void ksz9477_spi_remove(struct spi_device *spi)
> {
> struct ksz_device *dev = spi_get_drvdata(spi);
>
> @@ -73,8 +73,6 @@ static int ksz9477_spi_remove(struct spi_device *spi)
> ksz_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void ksz9477_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c
> index b513713be610..c2a47c6693b8 100644
> --- a/drivers/net/dsa/sja1105/sja1105_main.c
> +++ b/drivers/net/dsa/sja1105/sja1105_main.c
> @@ -3346,18 +3346,16 @@ static int sja1105_probe(struct spi_device *spi)
> return dsa_register_switch(priv->ds);
> }
>
> -static int sja1105_remove(struct spi_device *spi)
> +static void sja1105_remove(struct spi_device *spi)
> {
> struct sja1105_private *priv = spi_get_drvdata(spi);
>
> if (!priv)
> - return 0;
> + return;
>
> dsa_unregister_switch(priv->ds);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void sja1105_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/vitesse-vsc73xx-spi.c b/drivers/net/dsa/vitesse-vsc73xx-spi.c
> index 645398901e05..3110895358d8 100644
> --- a/drivers/net/dsa/vitesse-vsc73xx-spi.c
> +++ b/drivers/net/dsa/vitesse-vsc73xx-spi.c
> @@ -159,18 +159,16 @@ static int vsc73xx_spi_probe(struct spi_device *spi)
> return vsc73xx_probe(&vsc_spi->vsc);
> }
>
> -static int vsc73xx_spi_remove(struct spi_device *spi)
> +static void vsc73xx_spi_remove(struct spi_device *spi)
> {
> struct vsc73xx_spi *vsc_spi = spi_get_drvdata(spi);
>
> if (!vsc_spi)
> - return 0;
> + return;
>
> vsc73xx_remove(&vsc_spi->vsc);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void vsc73xx_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/ethernet/asix/ax88796c_main.c b/drivers/net/ethernet/asix/ax88796c_main.c
> index e7a9f9863258..bf70481bb1ca 100644
> --- a/drivers/net/ethernet/asix/ax88796c_main.c
> +++ b/drivers/net/ethernet/asix/ax88796c_main.c
> @@ -1102,7 +1102,7 @@ static int ax88796c_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ax88796c_remove(struct spi_device *spi)
> +static void ax88796c_remove(struct spi_device *spi)
> {
> struct ax88796c_device *ax_local = dev_get_drvdata(&spi->dev);
> struct net_device *ndev = ax_local->ndev;
> @@ -1112,8 +1112,6 @@ static int ax88796c_remove(struct spi_device *spi)
> netif_info(ax_local, probe, ndev, "removing network device %s %s\n",
> dev_driver_string(&spi->dev),
> dev_name(&spi->dev));
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/net/ethernet/micrel/ks8851_spi.c b/drivers/net/ethernet/micrel/ks8851_spi.c
> index 0303e727e99f..d167d93e4c12 100644
> --- a/drivers/net/ethernet/micrel/ks8851_spi.c
> +++ b/drivers/net/ethernet/micrel/ks8851_spi.c
> @@ -452,11 +452,9 @@ static int ks8851_probe_spi(struct spi_device *spi)
> return ks8851_probe_common(netdev, dev, msg_enable);
> }
>
> -static int ks8851_remove_spi(struct spi_device *spi)
> +static void ks8851_remove_spi(struct spi_device *spi)
> {
> ks8851_remove_common(&spi->dev);
> -
> - return 0;
> }
>
> static const struct of_device_id ks8851_match_table[] = {
> diff --git a/drivers/net/ethernet/microchip/enc28j60.c b/drivers/net/ethernet/microchip/enc28j60.c
> index 634ac7649c43..db5a3edb4c3c 100644
> --- a/drivers/net/ethernet/microchip/enc28j60.c
> +++ b/drivers/net/ethernet/microchip/enc28j60.c
> @@ -1612,15 +1612,13 @@ static int enc28j60_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int enc28j60_remove(struct spi_device *spi)
> +static void enc28j60_remove(struct spi_device *spi)
> {
> struct enc28j60_net *priv = spi_get_drvdata(spi);
>
> unregister_netdev(priv->netdev);
> free_irq(spi->irq, priv);
> free_netdev(priv->netdev);
> -
> - return 0;
> }
>
> static const struct of_device_id enc28j60_dt_ids[] = {
> diff --git a/drivers/net/ethernet/microchip/encx24j600.c b/drivers/net/ethernet/microchip/encx24j600.c
> index b90efc80fb59..dc1840cb5b10 100644
> --- a/drivers/net/ethernet/microchip/encx24j600.c
> +++ b/drivers/net/ethernet/microchip/encx24j600.c
> @@ -1093,7 +1093,7 @@ static int encx24j600_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int encx24j600_spi_remove(struct spi_device *spi)
> +static void encx24j600_spi_remove(struct spi_device *spi)
> {
> struct encx24j600_priv *priv = dev_get_drvdata(&spi->dev);
>
> @@ -1101,8 +1101,6 @@ static int encx24j600_spi_remove(struct spi_device *spi)
> kthread_stop(priv->kworker_task);
>
> free_netdev(priv->ndev);
> -
> - return 0;
> }
>
> static const struct spi_device_id encx24j600_spi_id_table[] = {
> diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c b/drivers/net/ethernet/qualcomm/qca_spi.c
> index 955cce644392..3c5494afd3c0 100644
> --- a/drivers/net/ethernet/qualcomm/qca_spi.c
> +++ b/drivers/net/ethernet/qualcomm/qca_spi.c
> @@ -1001,7 +1001,7 @@ qca_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int
> +static void
> qca_spi_remove(struct spi_device *spi)
> {
> struct net_device *qcaspi_devs = spi_get_drvdata(spi);
> @@ -1011,8 +1011,6 @@ qca_spi_remove(struct spi_device *spi)
>
> unregister_netdev(qcaspi_devs);
> free_netdev(qcaspi_devs);
> -
> - return 0;
> }
>
> static const struct spi_device_id qca_spi_id[] = {
> diff --git a/drivers/net/ethernet/vertexcom/mse102x.c b/drivers/net/ethernet/vertexcom/mse102x.c
> index 89a31783fbb4..25739b182ac7 100644
> --- a/drivers/net/ethernet/vertexcom/mse102x.c
> +++ b/drivers/net/ethernet/vertexcom/mse102x.c
> @@ -731,7 +731,7 @@ static int mse102x_probe_spi(struct spi_device *spi)
> return 0;
> }
>
> -static int mse102x_remove_spi(struct spi_device *spi)
> +static void mse102x_remove_spi(struct spi_device *spi)
> {
> struct mse102x_net *mse = dev_get_drvdata(&spi->dev);
> struct mse102x_net_spi *mses = to_mse102x_spi(mse);
> @@ -741,8 +741,6 @@ static int mse102x_remove_spi(struct spi_device *spi)
>
> mse102x_remove_device_debugfs(mses);
> unregister_netdev(mse->ndev);
> -
> - return 0;
> }
>
> static const struct of_device_id mse102x_match_table[] = {
> diff --git a/drivers/net/ethernet/wiznet/w5100-spi.c b/drivers/net/ethernet/wiznet/w5100-spi.c
> index 7779a36da3c8..7c52796273a4 100644
> --- a/drivers/net/ethernet/wiznet/w5100-spi.c
> +++ b/drivers/net/ethernet/wiznet/w5100-spi.c
> @@ -461,11 +461,9 @@ static int w5100_spi_probe(struct spi_device *spi)
> return w5100_probe(&spi->dev, ops, priv_size, mac, spi->irq, -EINVAL);
> }
>
> -static int w5100_spi_remove(struct spi_device *spi)
> +static void w5100_spi_remove(struct spi_device *spi)
> {
> w5100_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id w5100_spi_ids[] = {
> diff --git a/drivers/net/ieee802154/adf7242.c b/drivers/net/ieee802154/adf7242.c
> index 7db9cbd0f5de..6afdf1622944 100644
> --- a/drivers/net/ieee802154/adf7242.c
> +++ b/drivers/net/ieee802154/adf7242.c
> @@ -1304,7 +1304,7 @@ static int adf7242_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adf7242_remove(struct spi_device *spi)
> +static void adf7242_remove(struct spi_device *spi)
> {
> struct adf7242_local *lp = spi_get_drvdata(spi);
>
> @@ -1316,8 +1316,6 @@ static int adf7242_remove(struct spi_device *spi)
> ieee802154_unregister_hw(lp->hw);
> mutex_destroy(&lp->bmux);
> ieee802154_free_hw(lp->hw);
> -
> - return 0;
> }
>
> static const struct of_device_id adf7242_of_match[] = {
> diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c
> index 7d67f41387f5..a4734323dc29 100644
> --- a/drivers/net/ieee802154/at86rf230.c
> +++ b/drivers/net/ieee802154/at86rf230.c
> @@ -1759,7 +1759,7 @@ static int at86rf230_probe(struct spi_device *spi)
> return rc;
> }
>
> -static int at86rf230_remove(struct spi_device *spi)
> +static void at86rf230_remove(struct spi_device *spi)
> {
> struct at86rf230_local *lp = spi_get_drvdata(spi);
>
> @@ -1769,8 +1769,6 @@ static int at86rf230_remove(struct spi_device *spi)
> ieee802154_free_hw(lp->hw);
> at86rf230_debugfs_remove();
> dev_dbg(&spi->dev, "unregistered at86rf230\n");
> -
> - return 0;
> }
>
> static const struct of_device_id at86rf230_of_match[] = {
> diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca8210.c
> index ece6ff6049f6..b499bbe4d48f 100644
> --- a/drivers/net/ieee802154/ca8210.c
> +++ b/drivers/net/ieee802154/ca8210.c
> @@ -831,7 +831,7 @@ static void ca8210_rx_done(struct cas_control *cas_ctl)
> finish:;
> }
>
> -static int ca8210_remove(struct spi_device *spi_device);
> +static void ca8210_remove(struct spi_device *spi_device);
>
> /**
> * ca8210_spi_transfer_complete() - Called when a single spi transfer has
> @@ -3048,7 +3048,7 @@ static void ca8210_test_interface_clear(struct ca8210_priv *priv)
> *
> * Return: 0 or linux error code
> */
> -static int ca8210_remove(struct spi_device *spi_device)
> +static void ca8210_remove(struct spi_device *spi_device)
> {
> struct ca8210_priv *priv;
> struct ca8210_platform_data *pdata;
> @@ -3088,8 +3088,6 @@ static int ca8210_remove(struct spi_device *spi_device)
> if (IS_ENABLED(CONFIG_IEEE802154_CA8210_DEBUGFS))
> ca8210_test_interface_clear(priv);
> }
> -
> - return 0;
> }
>
> /**
> diff --git a/drivers/net/ieee802154/cc2520.c b/drivers/net/ieee802154/cc2520.c
> index 89c046b204e0..1e1f40f628a0 100644
> --- a/drivers/net/ieee802154/cc2520.c
> +++ b/drivers/net/ieee802154/cc2520.c
> @@ -1213,7 +1213,7 @@ static int cc2520_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int cc2520_remove(struct spi_device *spi)
> +static void cc2520_remove(struct spi_device *spi)
> {
> struct cc2520_private *priv = spi_get_drvdata(spi);
>
> @@ -1222,8 +1222,6 @@ static int cc2520_remove(struct spi_device *spi)
>
> ieee802154_unregister_hw(priv->hw);
> ieee802154_free_hw(priv->hw);
> -
> - return 0;
> }
>
> static const struct spi_device_id cc2520_ids[] = {
> diff --git a/drivers/net/ieee802154/mcr20a.c b/drivers/net/ieee802154/mcr20a.c
> index 8dc04e2590b1..a3af52a8e6dd 100644
> --- a/drivers/net/ieee802154/mcr20a.c
> +++ b/drivers/net/ieee802154/mcr20a.c
> @@ -1335,7 +1335,7 @@ mcr20a_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcr20a_remove(struct spi_device *spi)
> +static void mcr20a_remove(struct spi_device *spi)
> {
> struct mcr20a_local *lp = spi_get_drvdata(spi);
>
> @@ -1343,8 +1343,6 @@ static int mcr20a_remove(struct spi_device *spi)
>
> ieee802154_unregister_hw(lp->hw);
> ieee802154_free_hw(lp->hw);
> -
> - return 0;
> }
>
> static const struct of_device_id mcr20a_of_match[] = {
> diff --git a/drivers/net/ieee802154/mrf24j40.c b/drivers/net/ieee802154/mrf24j40.c
> index ff83e00b77af..ee4cfbf2c5cc 100644
> --- a/drivers/net/ieee802154/mrf24j40.c
> +++ b/drivers/net/ieee802154/mrf24j40.c
> @@ -1356,7 +1356,7 @@ static int mrf24j40_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mrf24j40_remove(struct spi_device *spi)
> +static void mrf24j40_remove(struct spi_device *spi)
> {
> struct mrf24j40 *devrec = spi_get_drvdata(spi);
>
> @@ -1366,8 +1366,6 @@ static int mrf24j40_remove(struct spi_device *spi)
> ieee802154_free_hw(devrec->hw);
> /* TODO: Will ieee802154_free_device() wait until ->xmit() is
> * complete? */
> -
> - return 0;
> }
>
> static const struct of_device_id mrf24j40_of_match[] = {
> diff --git a/drivers/net/phy/spi_ks8995.c b/drivers/net/phy/spi_ks8995.c
> index 8b5445a724ce..ff37f8ba6758 100644
> --- a/drivers/net/phy/spi_ks8995.c
> +++ b/drivers/net/phy/spi_ks8995.c
> @@ -517,7 +517,7 @@ static int ks8995_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ks8995_remove(struct spi_device *spi)
> +static void ks8995_remove(struct spi_device *spi)
> {
> struct ks8995_switch *ks = spi_get_drvdata(spi);
>
> @@ -526,8 +526,6 @@ static int ks8995_remove(struct spi_device *spi)
> /* assert reset */
> if (ks->pdata && gpio_is_valid(ks->pdata->reset_gpio))
> gpiod_set_value(gpio_to_desc(ks->pdata->reset_gpio), 1);
> -
> - return 0;
> }
>
> /* ------------------------------------------------------------------------ */
> diff --git a/drivers/net/wan/slic_ds26522.c b/drivers/net/wan/slic_ds26522.c
> index 8e3b1c717c10..6063552cea9b 100644
> --- a/drivers/net/wan/slic_ds26522.c
> +++ b/drivers/net/wan/slic_ds26522.c
> @@ -194,10 +194,9 @@ static int slic_ds26522_init_configure(struct spi_device *spi)
> return 0;
> }
>
> -static int slic_ds26522_remove(struct spi_device *spi)
> +static void slic_ds26522_remove(struct spi_device *spi)
> {
> pr_info("DS26522 module uninstalled\n");
> - return 0;
> }
>
> static int slic_ds26522_probe(struct spi_device *spi)
> diff --git a/drivers/net/wireless/intersil/p54/p54spi.c b/drivers/net/wireless/intersil/p54/p54spi.c
> index ab0fe8565851..f99b7ba69fc3 100644
> --- a/drivers/net/wireless/intersil/p54/p54spi.c
> +++ b/drivers/net/wireless/intersil/p54/p54spi.c
> @@ -669,7 +669,7 @@ static int p54spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int p54spi_remove(struct spi_device *spi)
> +static void p54spi_remove(struct spi_device *spi)
> {
> struct p54s_priv *priv = spi_get_drvdata(spi);
>
> @@ -684,8 +684,6 @@ static int p54spi_remove(struct spi_device *spi)
> mutex_destroy(&priv->mutex);
>
> p54_free_common(priv->hw);
> -
> - return 0;
> }
>
>
> diff --git a/drivers/net/wireless/marvell/libertas/if_spi.c b/drivers/net/wireless/marvell/libertas/if_spi.c
> index cd9f8ecf171f..ff1c7ec8c450 100644
> --- a/drivers/net/wireless/marvell/libertas/if_spi.c
> +++ b/drivers/net/wireless/marvell/libertas/if_spi.c
> @@ -1195,7 +1195,7 @@ static int if_spi_probe(struct spi_device *spi)
> return err;
> }
>
> -static int libertas_spi_remove(struct spi_device *spi)
> +static void libertas_spi_remove(struct spi_device *spi)
> {
> struct if_spi_card *card = spi_get_drvdata(spi);
> struct lbs_private *priv = card->priv;
> @@ -1212,8 +1212,6 @@ static int libertas_spi_remove(struct spi_device *spi)
> if (card->pdata->teardown)
> card->pdata->teardown(spi);
> free_if_spi_card(card);
> -
> - return 0;
> }
>
> static int if_spi_suspend(struct device *dev)
> diff --git a/drivers/net/wireless/microchip/wilc1000/spi.c b/drivers/net/wireless/microchip/wilc1000/spi.c
> index 2c2ed4b09efd..d2db52289399 100644
> --- a/drivers/net/wireless/microchip/wilc1000/spi.c
> +++ b/drivers/net/wireless/microchip/wilc1000/spi.c
> @@ -240,7 +240,7 @@ static int wilc_bus_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wilc_bus_remove(struct spi_device *spi)
> +static void wilc_bus_remove(struct spi_device *spi)
> {
> struct wilc *wilc = spi_get_drvdata(spi);
> struct wilc_spi *spi_priv = wilc->bus_data;
> @@ -248,8 +248,6 @@ static int wilc_bus_remove(struct spi_device *spi)
> clk_disable_unprepare(wilc->rtc_clk);
> wilc_netdev_cleanup(wilc);
> kfree(spi_priv);
> -
> - return 0;
> }
>
> static const struct of_device_id wilc_of_match[] = {
> diff --git a/drivers/net/wireless/st/cw1200/cw1200_spi.c b/drivers/net/wireless/st/cw1200/cw1200_spi.c
> index 271ed2ce2d7f..fe0d220da44d 100644
> --- a/drivers/net/wireless/st/cw1200/cw1200_spi.c
> +++ b/drivers/net/wireless/st/cw1200/cw1200_spi.c
> @@ -423,7 +423,7 @@ static int cw1200_spi_probe(struct spi_device *func)
> }
>
> /* Disconnect Function to be called by SPI stack when device is disconnected */
> -static int cw1200_spi_disconnect(struct spi_device *func)
> +static void cw1200_spi_disconnect(struct spi_device *func)
> {
> struct hwbus_priv *self = spi_get_drvdata(func);
>
> @@ -435,8 +435,6 @@ static int cw1200_spi_disconnect(struct spi_device *func)
> }
> }
> cw1200_spi_off(dev_get_platdata(&func->dev));
> -
> - return 0;
> }
>
> static int __maybe_unused cw1200_spi_suspend(struct device *dev)
> diff --git a/drivers/net/wireless/ti/wl1251/spi.c b/drivers/net/wireless/ti/wl1251/spi.c
> index 5b894bd6237e..9df38726e8b0 100644
> --- a/drivers/net/wireless/ti/wl1251/spi.c
> +++ b/drivers/net/wireless/ti/wl1251/spi.c
> @@ -327,14 +327,12 @@ static int wl1251_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wl1251_spi_remove(struct spi_device *spi)
> +static void wl1251_spi_remove(struct spi_device *spi)
> {
> struct wl1251 *wl = spi_get_drvdata(spi);
>
> wl1251_free_hw(wl);
> regulator_disable(wl->vio);
> -
> - return 0;
> }
>
> static struct spi_driver wl1251_spi_driver = {
> diff --git a/drivers/net/wireless/ti/wlcore/spi.c b/drivers/net/wireless/ti/wlcore/spi.c
> index 354a7e1c3315..7eae1ec2eb2b 100644
> --- a/drivers/net/wireless/ti/wlcore/spi.c
> +++ b/drivers/net/wireless/ti/wlcore/spi.c
> @@ -546,13 +546,11 @@ static int wl1271_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wl1271_remove(struct spi_device *spi)
> +static void wl1271_remove(struct spi_device *spi)
> {
> struct wl12xx_spi_glue *glue = spi_get_drvdata(spi);
>
> platform_device_unregister(glue->core);
> -
> - return 0;
> }
>
> static struct spi_driver wl1271_spi_driver = {
> diff --git a/drivers/nfc/nfcmrvl/spi.c b/drivers/nfc/nfcmrvl/spi.c
> index 5b833a9a83f8..a38e2fcdfd39 100644
> --- a/drivers/nfc/nfcmrvl/spi.c
> +++ b/drivers/nfc/nfcmrvl/spi.c
> @@ -174,12 +174,11 @@ static int nfcmrvl_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nfcmrvl_spi_remove(struct spi_device *spi)
> +static void nfcmrvl_spi_remove(struct spi_device *spi)
> {
> struct nfcmrvl_spi_drv_data *drv_data = spi_get_drvdata(spi);
>
> nfcmrvl_nci_unregister_dev(drv_data->priv);
> - return 0;
> }
>
> static const struct of_device_id of_nfcmrvl_spi_match[] __maybe_unused = {
> diff --git a/drivers/nfc/st-nci/spi.c b/drivers/nfc/st-nci/spi.c
> index 4e723992e74c..169eacc0a32a 100644
> --- a/drivers/nfc/st-nci/spi.c
> +++ b/drivers/nfc/st-nci/spi.c
> @@ -263,13 +263,11 @@ static int st_nci_spi_probe(struct spi_device *dev)
> return r;
> }
>
> -static int st_nci_spi_remove(struct spi_device *dev)
> +static void st_nci_spi_remove(struct spi_device *dev)
> {
> struct st_nci_spi_phy *phy = spi_get_drvdata(dev);
>
> ndlc_remove(phy->ndlc);
> -
> - return 0;
> }
>
> static struct spi_device_id st_nci_spi_id_table[] = {
> diff --git a/drivers/nfc/st95hf/core.c b/drivers/nfc/st95hf/core.c
> index b23f47936473..ed704bb77226 100644
> --- a/drivers/nfc/st95hf/core.c
> +++ b/drivers/nfc/st95hf/core.c
> @@ -1198,7 +1198,7 @@ static int st95hf_probe(struct spi_device *nfc_spi_dev)
> return ret;
> }
>
> -static int st95hf_remove(struct spi_device *nfc_spi_dev)
> +static void st95hf_remove(struct spi_device *nfc_spi_dev)
> {
> int result = 0;
> unsigned char reset_cmd = ST95HF_COMMAND_RESET;
> @@ -1236,8 +1236,6 @@ static int st95hf_remove(struct spi_device *nfc_spi_dev)
> /* disable regulator */
> if (stcontext->st95hf_supply)
> regulator_disable(stcontext->st95hf_supply);
> -
> - return 0;
> }
>
> /* Register as SPI protocol driver */
> diff --git a/drivers/nfc/trf7970a.c b/drivers/nfc/trf7970a.c
> index 29ca9c328df2..21d68664fe08 100644
> --- a/drivers/nfc/trf7970a.c
> +++ b/drivers/nfc/trf7970a.c
> @@ -2144,7 +2144,7 @@ static int trf7970a_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int trf7970a_remove(struct spi_device *spi)
> +static void trf7970a_remove(struct spi_device *spi)
> {
> struct trf7970a *trf = spi_get_drvdata(spi);
>
> @@ -2160,8 +2160,6 @@ static int trf7970a_remove(struct spi_device *spi)
> regulator_disable(trf->regulator);
>
> mutex_destroy(&trf->lock);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/platform/chrome/cros_ec_spi.c b/drivers/platform/chrome/cros_ec_spi.c
> index 713c58687721..8493af0f680e 100644
> --- a/drivers/platform/chrome/cros_ec_spi.c
> +++ b/drivers/platform/chrome/cros_ec_spi.c
> @@ -786,13 +786,11 @@ static int cros_ec_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int cros_ec_spi_remove(struct spi_device *spi)
> +static void cros_ec_spi_remove(struct spi_device *spi)
> {
> struct cros_ec_device *ec_dev = spi_get_drvdata(spi);
>
> cros_ec_unregister(ec_dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/platform/olpc/olpc-xo175-ec.c b/drivers/platform/olpc/olpc-xo175-ec.c
> index 0d46706afd2d..4823bd2819f6 100644
> --- a/drivers/platform/olpc/olpc-xo175-ec.c
> +++ b/drivers/platform/olpc/olpc-xo175-ec.c
> @@ -648,7 +648,7 @@ static struct olpc_ec_driver olpc_xo175_ec_driver = {
> .ec_cmd = olpc_xo175_ec_cmd,
> };
>
> -static int olpc_xo175_ec_remove(struct spi_device *spi)
> +static void olpc_xo175_ec_remove(struct spi_device *spi)
> {
> if (pm_power_off == olpc_xo175_ec_power_off)
> pm_power_off = NULL;
> @@ -657,8 +657,6 @@ static int olpc_xo175_ec_remove(struct spi_device *spi)
>
> platform_device_unregister(olpc_ec);
> olpc_ec = NULL;
> -
> - return 0;
> }
>
> static int olpc_xo175_ec_probe(struct spi_device *spi)
> diff --git a/drivers/rtc/rtc-ds1302.c b/drivers/rtc/rtc-ds1302.c
> index 2f83adef966e..6d66ab5a8b17 100644
> --- a/drivers/rtc/rtc-ds1302.c
> +++ b/drivers/rtc/rtc-ds1302.c
> @@ -185,10 +185,9 @@ static int ds1302_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1302_remove(struct spi_device *spi)
> +static void ds1302_remove(struct spi_device *spi)
> {
> spi_set_drvdata(spi, NULL);
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/rtc/rtc-ds1305.c b/drivers/rtc/rtc-ds1305.c
> index 9ef107b99b65..ed9360486953 100644
> --- a/drivers/rtc/rtc-ds1305.c
> +++ b/drivers/rtc/rtc-ds1305.c
> @@ -720,7 +720,7 @@ static int ds1305_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1305_remove(struct spi_device *spi)
> +static void ds1305_remove(struct spi_device *spi)
> {
> struct ds1305 *ds1305 = spi_get_drvdata(spi);
>
> @@ -730,8 +730,6 @@ static int ds1305_remove(struct spi_device *spi)
> devm_free_irq(&spi->dev, spi->irq, ds1305);
> cancel_work_sync(&ds1305->work);
> }
> -
> - return 0;
> }
>
> static struct spi_driver ds1305_driver = {
> diff --git a/drivers/rtc/rtc-ds1343.c b/drivers/rtc/rtc-ds1343.c
> index f14ed6c96437..ed5a6ba89a3e 100644
> --- a/drivers/rtc/rtc-ds1343.c
> +++ b/drivers/rtc/rtc-ds1343.c
> @@ -434,11 +434,9 @@ static int ds1343_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1343_remove(struct spi_device *spi)
> +static void ds1343_remove(struct spi_device *spi)
> {
> dev_pm_clear_wake_irq(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c
> index 37f4443ce9a0..e9d83d65873b 100644
> --- a/drivers/spi/spi-mem.c
> +++ b/drivers/spi/spi-mem.c
> @@ -854,15 +854,13 @@ static int spi_mem_probe(struct spi_device *spi)
> return memdrv->probe(mem);
> }
>
> -static int spi_mem_remove(struct spi_device *spi)
> +static void spi_mem_remove(struct spi_device *spi)
> {
> struct spi_mem_driver *memdrv = to_spi_mem_drv(spi->dev.driver);
> struct spi_mem *mem = spi_get_drvdata(spi);
>
> if (memdrv->remove)
> - return memdrv->remove(mem);
> -
> - return 0;
> + memdrv->remove(mem);
> }
>
> static void spi_mem_shutdown(struct spi_device *spi)
> diff --git a/drivers/spi/spi-slave-system-control.c b/drivers/spi/spi-slave-system-control.c
> index 169f3d595f60..d37cfe995a63 100644
> --- a/drivers/spi/spi-slave-system-control.c
> +++ b/drivers/spi/spi-slave-system-control.c
> @@ -132,13 +132,12 @@ static int spi_slave_system_control_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_slave_system_control_remove(struct spi_device *spi)
> +static void spi_slave_system_control_remove(struct spi_device *spi)
> {
> struct spi_slave_system_control_priv *priv = spi_get_drvdata(spi);
>
> spi_slave_abort(spi);
> wait_for_completion(&priv->finished);
> - return 0;
> }
>
> static struct spi_driver spi_slave_system_control_driver = {
> diff --git a/drivers/spi/spi-slave-time.c b/drivers/spi/spi-slave-time.c
> index f2e07a392d68..f56c1afb8534 100644
> --- a/drivers/spi/spi-slave-time.c
> +++ b/drivers/spi/spi-slave-time.c
> @@ -106,13 +106,12 @@ static int spi_slave_time_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_slave_time_remove(struct spi_device *spi)
> +static void spi_slave_time_remove(struct spi_device *spi)
> {
> struct spi_slave_time_priv *priv = spi_get_drvdata(spi);
>
> spi_slave_abort(spi);
> wait_for_completion(&priv->finished);
> - return 0;
> }
>
> static struct spi_driver spi_slave_time_driver = {
> diff --git a/drivers/spi/spi-tle62x0.c b/drivers/spi/spi-tle62x0.c
> index f8ad0709d015..a565352f6381 100644
> --- a/drivers/spi/spi-tle62x0.c
> +++ b/drivers/spi/spi-tle62x0.c
> @@ -288,7 +288,7 @@ static int tle62x0_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tle62x0_remove(struct spi_device *spi)
> +static void tle62x0_remove(struct spi_device *spi)
> {
> struct tle62x0_state *st = spi_get_drvdata(spi);
> int ptr;
> @@ -298,7 +298,6 @@ static int tle62x0_remove(struct spi_device *spi)
>
> device_remove_file(&spi->dev, &dev_attr_status_show);
> kfree(st);
> - return 0;
> }
>
> static struct spi_driver tle62x0_driver = {
> diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
> index 4599b121d744..ead9a132dcb9 100644
> --- a/drivers/spi/spi.c
> +++ b/drivers/spi/spi.c
> @@ -404,15 +404,8 @@ static void spi_remove(struct device *dev)
> {
> const struct spi_driver *sdrv = to_spi_driver(dev->driver);
>
> - if (sdrv->remove) {
> - int ret;
> -
> - ret = sdrv->remove(to_spi_device(dev));
> - if (ret)
> - dev_warn(dev,
> - "Failed to unbind driver (%pe), ignoring\n",
> - ERR_PTR(ret));
> - }
> + if (sdrv->remove)
> + sdrv->remove(to_spi_device(dev));
>
> dev_pm_domain_detach(dev, true);
> }
> diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
> index a5cceca8b82b..9468f74308bd 100644
> --- a/drivers/spi/spidev.c
> +++ b/drivers/spi/spidev.c
> @@ -803,7 +803,7 @@ static int spidev_probe(struct spi_device *spi)
> return status;
> }
>
> -static int spidev_remove(struct spi_device *spi)
> +static void spidev_remove(struct spi_device *spi)
> {
> struct spidev_data *spidev = spi_get_drvdata(spi);
>
> @@ -820,8 +820,6 @@ static int spidev_remove(struct spi_device *spi)
> if (spidev->users == 0)
> kfree(spidev);
> mutex_unlock(&device_list_lock);
> -
> - return 0;
> }
>
> static struct spi_driver spidev_spi_driver = {
> diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h
> index 6a7545b5bcd2..b68f5f9b7c78 100644
> --- a/drivers/staging/fbtft/fbtft.h
> +++ b/drivers/staging/fbtft/fbtft.h
> @@ -286,12 +286,11 @@ static int fbtft_driver_probe_spi(struct spi_device *spi) \
> return fbtft_probe_common(_display, spi, NULL); \
> } \
> \
> -static int fbtft_driver_remove_spi(struct spi_device *spi) \
> +static void fbtft_driver_remove_spi(struct spi_device *spi) \
> { \
> struct fb_info *info = spi_get_drvdata(spi); \
> \
> fbtft_remove_common(&spi->dev, info); \
> - return 0; \
> } \
> \
> static struct spi_driver fbtft_driver_spi_driver = { \
> diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c
> index 68c09fa016ed..1d31c35875e3 100644
> --- a/drivers/staging/pi433/pi433_if.c
> +++ b/drivers/staging/pi433/pi433_if.c
> @@ -1264,7 +1264,7 @@ static int pi433_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int pi433_remove(struct spi_device *spi)
> +static void pi433_remove(struct spi_device *spi)
> {
> struct pi433_device *device = spi_get_drvdata(spi);
>
> @@ -1284,8 +1284,6 @@ static int pi433_remove(struct spi_device *spi)
>
> kfree(device->rx_buffer);
> kfree(device);
> -
> - return 0;
> }
>
> static const struct of_device_id pi433_dt_ids[] = {
> diff --git a/drivers/staging/wfx/bus_spi.c b/drivers/staging/wfx/bus_spi.c
> index 55ffcd7c42e2..fa0ff66a457d 100644
> --- a/drivers/staging/wfx/bus_spi.c
> +++ b/drivers/staging/wfx/bus_spi.c
> @@ -232,12 +232,11 @@ static int wfx_spi_probe(struct spi_device *func)
> return wfx_probe(bus->core);
> }
>
> -static int wfx_spi_remove(struct spi_device *func)
> +static void wfx_spi_remove(struct spi_device *func)
> {
> struct wfx_spi_priv *bus = spi_get_drvdata(func);
>
> wfx_release(bus->core);
> - return 0;
> }
>
> /* For dynamic driver binding, kernel does not use OF to match driver. It only
> diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c
> index 3c92d4e01488..516cff362434 100644
> --- a/drivers/tty/serial/max3100.c
> +++ b/drivers/tty/serial/max3100.c
> @@ -805,7 +805,7 @@ static int max3100_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max3100_remove(struct spi_device *spi)
> +static void max3100_remove(struct spi_device *spi)
> {
> struct max3100_port *s = spi_get_drvdata(spi);
> int i;
> @@ -828,13 +828,12 @@ static int max3100_remove(struct spi_device *spi)
> for (i = 0; i < MAX_MAX3100; i++)
> if (max3100s[i]) {
> mutex_unlock(&max3100s_lock);
> - return 0;
> + return;
> }
> pr_debug("removing max3100 driver\n");
> uart_unregister_driver(&max3100_uart_driver);
>
> mutex_unlock(&max3100s_lock);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c
> index dde0824b2fa5..3112b4a05448 100644
> --- a/drivers/tty/serial/max310x.c
> +++ b/drivers/tty/serial/max310x.c
> @@ -1487,10 +1487,9 @@ static int max310x_spi_probe(struct spi_device *spi)
> return max310x_probe(&spi->dev, devtype, regmap, spi->irq);
> }
>
> -static int max310x_spi_remove(struct spi_device *spi)
> +static void max310x_spi_remove(struct spi_device *spi)
> {
> max310x_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id max310x_id_table[] = {
> diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c
> index 64e7e6c8145f..25d67b8c4db7 100644
> --- a/drivers/tty/serial/sc16is7xx.c
> +++ b/drivers/tty/serial/sc16is7xx.c
> @@ -1440,11 +1440,9 @@ static int sc16is7xx_spi_probe(struct spi_device *spi)
> return sc16is7xx_probe(&spi->dev, devtype, regmap, spi->irq);
> }
>
> -static int sc16is7xx_spi_remove(struct spi_device *spi)
> +static void sc16is7xx_spi_remove(struct spi_device *spi)
> {
> sc16is7xx_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id sc16is7xx_spi_id_table[] = {
> diff --git a/drivers/usb/gadget/udc/max3420_udc.c b/drivers/usb/gadget/udc/max3420_udc.c
> index d2a2b20cc1ad..7d9bd16190c0 100644
> --- a/drivers/usb/gadget/udc/max3420_udc.c
> +++ b/drivers/usb/gadget/udc/max3420_udc.c
> @@ -1292,7 +1292,7 @@ static int max3420_probe(struct spi_device *spi)
> return err;
> }
>
> -static int max3420_remove(struct spi_device *spi)
> +static void max3420_remove(struct spi_device *spi)
> {
> struct max3420_udc *udc = spi_get_drvdata(spi);
> unsigned long flags;
> @@ -1304,8 +1304,6 @@ static int max3420_remove(struct spi_device *spi)
> kthread_stop(udc->thread_task);
>
> spin_unlock_irqrestore(&udc->lock, flags);
> -
> - return 0;
> }
>
> static const struct of_device_id max3420_udc_of_match[] = {
> diff --git a/drivers/usb/host/max3421-hcd.c b/drivers/usb/host/max3421-hcd.c
> index 30de85a707fe..99a5523a79fb 100644
> --- a/drivers/usb/host/max3421-hcd.c
> +++ b/drivers/usb/host/max3421-hcd.c
> @@ -1926,7 +1926,7 @@ max3421_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int
> +static void
> max3421_remove(struct spi_device *spi)
> {
> struct max3421_hcd *max3421_hcd;
> @@ -1947,7 +1947,6 @@ max3421_remove(struct spi_device *spi)
> free_irq(spi->irq, hcd);
>
> usb_put_hcd(hcd);
> - return 0;
> }
>
> static const struct of_device_id max3421_of_match_table[] = {
> diff --git a/drivers/video/backlight/ams369fg06.c b/drivers/video/backlight/ams369fg06.c
> index 8a4361e95a11..522dd81110b8 100644
> --- a/drivers/video/backlight/ams369fg06.c
> +++ b/drivers/video/backlight/ams369fg06.c
> @@ -506,12 +506,11 @@ static int ams369fg06_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ams369fg06_remove(struct spi_device *spi)
> +static void ams369fg06_remove(struct spi_device *spi)
> {
> struct ams369fg06 *lcd = spi_get_drvdata(spi);
>
> ams369fg06_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c
> index 33f5d80495e6..0a57033ae31d 100644
> --- a/drivers/video/backlight/corgi_lcd.c
> +++ b/drivers/video/backlight/corgi_lcd.c
> @@ -542,7 +542,7 @@ static int corgi_lcd_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int corgi_lcd_remove(struct spi_device *spi)
> +static void corgi_lcd_remove(struct spi_device *spi)
> {
> struct corgi_lcd *lcd = spi_get_drvdata(spi);
>
> @@ -550,7 +550,6 @@ static int corgi_lcd_remove(struct spi_device *spi)
> lcd->bl_dev->props.brightness = 0;
> backlight_update_status(lcd->bl_dev);
> corgi_lcd_set_power(lcd->lcd_dev, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> static struct spi_driver corgi_lcd_driver = {
> diff --git a/drivers/video/backlight/ili922x.c b/drivers/video/backlight/ili922x.c
> index 328aba9cddad..e7b6bd827986 100644
> --- a/drivers/video/backlight/ili922x.c
> +++ b/drivers/video/backlight/ili922x.c
> @@ -526,10 +526,9 @@ static int ili922x_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili922x_remove(struct spi_device *spi)
> +static void ili922x_remove(struct spi_device *spi)
> {
> ili922x_poweroff(spi);
> - return 0;
> }
>
> static struct spi_driver ili922x_driver = {
> diff --git a/drivers/video/backlight/l4f00242t03.c b/drivers/video/backlight/l4f00242t03.c
> index 46f97d1c3d21..cc763cf15f53 100644
> --- a/drivers/video/backlight/l4f00242t03.c
> +++ b/drivers/video/backlight/l4f00242t03.c
> @@ -223,12 +223,11 @@ static int l4f00242t03_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int l4f00242t03_remove(struct spi_device *spi)
> +static void l4f00242t03_remove(struct spi_device *spi)
> {
> struct l4f00242t03_priv *priv = spi_get_drvdata(spi);
>
> l4f00242t03_lcd_power_set(priv->ld, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> static void l4f00242t03_shutdown(struct spi_device *spi)
> diff --git a/drivers/video/backlight/lms501kf03.c b/drivers/video/backlight/lms501kf03.c
> index f949b66dce1b..5c46df8022bf 100644
> --- a/drivers/video/backlight/lms501kf03.c
> +++ b/drivers/video/backlight/lms501kf03.c
> @@ -364,12 +364,11 @@ static int lms501kf03_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lms501kf03_remove(struct spi_device *spi)
> +static void lms501kf03_remove(struct spi_device *spi)
> {
> struct lms501kf03 *lcd = spi_get_drvdata(spi);
>
> lms501kf03_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/ltv350qv.c b/drivers/video/backlight/ltv350qv.c
> index 5cbf621e48bd..b6d373af6e3f 100644
> --- a/drivers/video/backlight/ltv350qv.c
> +++ b/drivers/video/backlight/ltv350qv.c
> @@ -255,12 +255,11 @@ static int ltv350qv_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ltv350qv_remove(struct spi_device *spi)
> +static void ltv350qv_remove(struct spi_device *spi)
> {
> struct ltv350qv *lcd = spi_get_drvdata(spi);
>
> ltv350qv_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/tdo24m.c b/drivers/video/backlight/tdo24m.c
> index 0de044dcafd5..fc6fbaf85594 100644
> --- a/drivers/video/backlight/tdo24m.c
> +++ b/drivers/video/backlight/tdo24m.c
> @@ -397,12 +397,11 @@ static int tdo24m_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int tdo24m_remove(struct spi_device *spi)
> +static void tdo24m_remove(struct spi_device *spi)
> {
> struct tdo24m *lcd = spi_get_drvdata(spi);
>
> tdo24m_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/tosa_lcd.c b/drivers/video/backlight/tosa_lcd.c
> index 38765544345b..23d6c6bf0f54 100644
> --- a/drivers/video/backlight/tosa_lcd.c
> +++ b/drivers/video/backlight/tosa_lcd.c
> @@ -232,15 +232,13 @@ static int tosa_lcd_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tosa_lcd_remove(struct spi_device *spi)
> +static void tosa_lcd_remove(struct spi_device *spi)
> {
> struct tosa_lcd_data *data = spi_get_drvdata(spi);
>
> i2c_unregister_device(data->i2c);
>
> tosa_lcd_tg_off(data);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/vgg2432a4.c b/drivers/video/backlight/vgg2432a4.c
> index 3567b45f9ba9..bfc1913e8b55 100644
> --- a/drivers/video/backlight/vgg2432a4.c
> +++ b/drivers/video/backlight/vgg2432a4.c
> @@ -233,11 +233,9 @@ static int vgg2432a4_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int vgg2432a4_remove(struct spi_device *spi)
> +static void vgg2432a4_remove(struct spi_device *spi)
> {
> ili9320_remove(spi_get_drvdata(spi));
> -
> - return 0;
> }
>
> static void vgg2432a4_shutdown(struct spi_device *spi)
> diff --git a/drivers/video/fbdev/omap/lcd_mipid.c b/drivers/video/fbdev/omap/lcd_mipid.c
> index a75ae0c9b14c..03cff39d392d 100644
> --- a/drivers/video/fbdev/omap/lcd_mipid.c
> +++ b/drivers/video/fbdev/omap/lcd_mipid.c
> @@ -570,14 +570,12 @@ static int mipid_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mipid_spi_remove(struct spi_device *spi)
> +static void mipid_spi_remove(struct spi_device *spi)
> {
> struct mipid_device *md = dev_get_drvdata(&spi->dev);
>
> mipid_disable(&md->panel);
> kfree(md);
> -
> - return 0;
> }
>
> static struct spi_driver mipid_spi_driver = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> index 1bec7a4422e8..aab67721263d 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> @@ -316,7 +316,7 @@ static int lb035q02_panel_spi_probe(struct spi_device *spi)
> return r;
> }
>
> -static int lb035q02_panel_spi_remove(struct spi_device *spi)
> +static void lb035q02_panel_spi_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = spi_get_drvdata(spi);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -328,8 +328,6 @@ static int lb035q02_panel_spi_remove(struct spi_device *spi)
> lb035q02_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id lb035q02_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> index dff9ebbadfc0..be9910ff6e62 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> @@ -327,7 +327,7 @@ static int nec_8048_probe(struct spi_device *spi)
> return r;
> }
>
> -static int nec_8048_remove(struct spi_device *spi)
> +static void nec_8048_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -341,8 +341,6 @@ static int nec_8048_remove(struct spi_device *spi)
> nec_8048_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> index 8d8b5ff7d43c..a909b5385ca5 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> @@ -857,7 +857,7 @@ static int acx565akm_probe(struct spi_device *spi)
> return r;
> }
>
> -static int acx565akm_remove(struct spi_device *spi)
> +static void acx565akm_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -874,8 +874,6 @@ static int acx565akm_remove(struct spi_device *spi)
> acx565akm_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id acx565akm_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> index 595ebd8bd5dc..3c0f887d3092 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> @@ -425,7 +425,7 @@ static int td028ttec1_panel_probe(struct spi_device *spi)
> return r;
> }
>
> -static int td028ttec1_panel_remove(struct spi_device *spi)
> +static void td028ttec1_panel_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -439,8 +439,6 @@ static int td028ttec1_panel_remove(struct spi_device *spi)
> td028ttec1_panel_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id td028ttec1_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> index afac1d9445aa..58bbba7c037f 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> @@ -564,7 +564,7 @@ static int tpo_td043_probe(struct spi_device *spi)
> return r;
> }
>
> -static int tpo_td043_remove(struct spi_device *spi)
> +static void tpo_td043_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -580,8 +580,6 @@ static int tpo_td043_remove(struct spi_device *spi)
> omap_dss_put_device(in);
>
> sysfs_remove_group(&spi->dev.kobj, &tpo_td043_attr_group);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
> index 7ab3fed7b804..c84e61b99c7b 100644
> --- a/include/linux/spi/spi.h
> +++ b/include/linux/spi/spi.h
> @@ -280,7 +280,7 @@ struct spi_message;
> struct spi_driver {
> const struct spi_device_id *id_table;
> int (*probe)(struct spi_device *spi);
> - int (*remove)(struct spi_device *spi);
> + void (*remove)(struct spi_device *spi);
> void (*shutdown)(struct spi_device *spi);
> struct device_driver driver;
> };
> diff --git a/sound/pci/hda/cs35l41_hda_spi.c b/sound/pci/hda/cs35l41_hda_spi.c
> index 9f8123893cc8..50eb6c0e6658 100644
> --- a/sound/pci/hda/cs35l41_hda_spi.c
> +++ b/sound/pci/hda/cs35l41_hda_spi.c
> @@ -28,11 +28,9 @@ static int cs35l41_hda_spi_probe(struct spi_device *spi)
> devm_regmap_init_spi(spi, &cs35l41_regmap_spi));
> }
>
> -static int cs35l41_hda_spi_remove(struct spi_device *spi)
> +static void cs35l41_hda_spi_remove(struct spi_device *spi)
> {
> cs35l41_hda_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id cs35l41_hda_spi_id[] = {
> diff --git a/sound/soc/codecs/adau1761-spi.c b/sound/soc/codecs/adau1761-spi.c
> index 655689c9778a..7c9242c2ff94 100644
> --- a/sound/soc/codecs/adau1761-spi.c
> +++ b/sound/soc/codecs/adau1761-spi.c
> @@ -45,10 +45,9 @@ static int adau1761_spi_probe(struct spi_device *spi)
> id->driver_data, adau1761_spi_switch_mode);
> }
>
> -static int adau1761_spi_remove(struct spi_device *spi)
> +static void adau1761_spi_remove(struct spi_device *spi)
> {
> adau17x1_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id adau1761_spi_id[] = {
> diff --git a/sound/soc/codecs/adau1781-spi.c b/sound/soc/codecs/adau1781-spi.c
> index bb5613574786..1a09633d5a88 100644
> --- a/sound/soc/codecs/adau1781-spi.c
> +++ b/sound/soc/codecs/adau1781-spi.c
> @@ -45,10 +45,9 @@ static int adau1781_spi_probe(struct spi_device *spi)
> id->driver_data, adau1781_spi_switch_mode);
> }
>
> -static int adau1781_spi_remove(struct spi_device *spi)
> +static void adau1781_spi_remove(struct spi_device *spi)
> {
> adau17x1_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id adau1781_spi_id[] = {
> diff --git a/sound/soc/codecs/cs35l41-spi.c b/sound/soc/codecs/cs35l41-spi.c
> index 6dfd5459aa20..169221a5b09f 100644
> --- a/sound/soc/codecs/cs35l41-spi.c
> +++ b/sound/soc/codecs/cs35l41-spi.c
> @@ -55,13 +55,11 @@ static int cs35l41_spi_probe(struct spi_device *spi)
> return cs35l41_probe(cs35l41, pdata);
> }
>
> -static int cs35l41_spi_remove(struct spi_device *spi)
> +static void cs35l41_spi_remove(struct spi_device *spi)
> {
> struct cs35l41_private *cs35l41 = spi_get_drvdata(spi);
>
> cs35l41_remove(cs35l41);
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/sound/soc/codecs/pcm3168a-spi.c b/sound/soc/codecs/pcm3168a-spi.c
> index ecd379f308e6..b5b08046f545 100644
> --- a/sound/soc/codecs/pcm3168a-spi.c
> +++ b/sound/soc/codecs/pcm3168a-spi.c
> @@ -26,11 +26,9 @@ static int pcm3168a_spi_probe(struct spi_device *spi)
> return pcm3168a_probe(&spi->dev, regmap);
> }
>
> -static int pcm3168a_spi_remove(struct spi_device *spi)
> +static void pcm3168a_spi_remove(struct spi_device *spi)
> {
> pcm3168a_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id pcm3168a_spi_id[] = {
> diff --git a/sound/soc/codecs/pcm512x-spi.c b/sound/soc/codecs/pcm512x-spi.c
> index 7cf559b47e1c..4d29e7196380 100644
> --- a/sound/soc/codecs/pcm512x-spi.c
> +++ b/sound/soc/codecs/pcm512x-spi.c
> @@ -26,10 +26,9 @@ static int pcm512x_spi_probe(struct spi_device *spi)
> return pcm512x_probe(&spi->dev, regmap);
> }
>
> -static int pcm512x_spi_remove(struct spi_device *spi)
> +static void pcm512x_spi_remove(struct spi_device *spi)
> {
> pcm512x_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id pcm512x_spi_id[] = {
> diff --git a/sound/soc/codecs/tlv320aic32x4-spi.c b/sound/soc/codecs/tlv320aic32x4-spi.c
> index a8958cd1c692..03cce8d6404f 100644
> --- a/sound/soc/codecs/tlv320aic32x4-spi.c
> +++ b/sound/soc/codecs/tlv320aic32x4-spi.c
> @@ -46,11 +46,9 @@ static int aic32x4_spi_probe(struct spi_device *spi)
> return aic32x4_probe(&spi->dev, regmap);
> }
>
> -static int aic32x4_spi_remove(struct spi_device *spi)
> +static void aic32x4_spi_remove(struct spi_device *spi)
> {
> aic32x4_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id aic32x4_spi_id[] = {
> diff --git a/sound/soc/codecs/tlv320aic3x-spi.c b/sound/soc/codecs/tlv320aic3x-spi.c
> index 494e84402232..deed6ec7e081 100644
> --- a/sound/soc/codecs/tlv320aic3x-spi.c
> +++ b/sound/soc/codecs/tlv320aic3x-spi.c
> @@ -35,11 +35,9 @@ static int aic3x_spi_probe(struct spi_device *spi)
> return aic3x_probe(&spi->dev, regmap, id->driver_data);
> }
>
> -static int aic3x_spi_remove(struct spi_device *spi)
> +static void aic3x_spi_remove(struct spi_device *spi)
> {
> aic3x_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id aic3x_spi_id[] = {
> diff --git a/sound/soc/codecs/wm0010.c b/sound/soc/codecs/wm0010.c
> index 28b4656c4e14..1bef1c500c8e 100644
> --- a/sound/soc/codecs/wm0010.c
> +++ b/sound/soc/codecs/wm0010.c
> @@ -969,7 +969,7 @@ static int wm0010_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int wm0010_spi_remove(struct spi_device *spi)
> +static void wm0010_spi_remove(struct spi_device *spi)
> {
> struct wm0010_priv *wm0010 = spi_get_drvdata(spi);
>
> @@ -980,8 +980,6 @@ static int wm0010_spi_remove(struct spi_device *spi)
>
> if (wm0010->irq)
> free_irq(wm0010->irq, wm0010);
> -
> - return 0;
> }
>
> static struct spi_driver wm0010_spi_driver = {
> diff --git a/sound/soc/codecs/wm8804-spi.c b/sound/soc/codecs/wm8804-spi.c
> index 9a8da1511c34..628568724c20 100644
> --- a/sound/soc/codecs/wm8804-spi.c
> +++ b/sound/soc/codecs/wm8804-spi.c
> @@ -24,10 +24,9 @@ static int wm8804_spi_probe(struct spi_device *spi)
> return wm8804_probe(&spi->dev, regmap);
> }
>
> -static int wm8804_spi_remove(struct spi_device *spi)
> +static void wm8804_spi_remove(struct spi_device *spi)
> {
> wm8804_remove(&spi->dev);
> - return 0;
> }
>
> static const struct of_device_id wm8804_of_match[] = {
> diff --git a/sound/spi/at73c213.c b/sound/spi/at73c213.c
> index 76c0e37a838c..56d2c712e257 100644
> --- a/sound/spi/at73c213.c
> +++ b/sound/spi/at73c213.c
> @@ -1001,7 +1001,7 @@ static int snd_at73c213_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int snd_at73c213_remove(struct spi_device *spi)
> +static void snd_at73c213_remove(struct spi_device *spi)
> {
> struct snd_card *card = dev_get_drvdata(&spi->dev);
> struct snd_at73c213 *chip = card->private_data;
> @@ -1066,8 +1066,6 @@ static int snd_at73c213_remove(struct spi_device *spi)
>
> ssc_free(chip->ssc);
> snd_card_free(card);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> --
> 2.34.1
>
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
1
0
My usual mailer won't let me reply to this many people, so I'm using Gmail.
No idea what chaos this will cause, but here goes ...
> The value returned by an spi driver's remove function is mostly ignored.
> (Only an error message is printed if the value is non-zero that the
> error is ignored.)
>
> So change the prototype of the remove function to return no value. This
> way driver authors are not tempted to assume that passing an error to
> the upper layer is a good idea. All drivers are adapted accordingly.
> There is no intended change of behaviour, all callbacks were prepared to
> return 0 before.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
> ---
[...]
> drivers/mfd/arizona-spi.c | 4 +---
> drivers/mfd/da9052-spi.c | 3 +--
> drivers/mfd/ezx-pcap.c | 4 +---
> drivers/mfd/madera-spi.c | 4 +---
> drivers/mfd/mc13xxx-spi.c | 3 +--
> drivers/mfd/rsmu_spi.c | 4 +---
> drivers/mfd/stmpe-spi.c | 4 +---
> drivers/mfd/tps65912-spi.c | 4 +---
> drivers/video/backlight/ams369fg06.c | 3 +--
> drivers/video/backlight/corgi_lcd.c | 3 +--
> drivers/video/backlight/ili922x.c | 3 +--
> drivers/video/backlight/l4f00242t03.c | 3 +--
> drivers/video/backlight/lms501kf03.c | 3 +--
> drivers/video/backlight/ltv350qv.c | 3 +--
> drivers/video/backlight/tdo24m.c | 3 +--
> drivers/video/backlight/tosa_lcd.c | 4 +---
> drivers/video/backlight/vgg2432a4.c | 4 +---
If it's okay with Mark, it's okay with me.
Acked-by: Lee Jones <lee.jones(a)linaro.org>
--
Lee Jones [李琼斯]
Linaro Services Principle Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
1
0
[PATCH 1/6] ASoC: dt-bindings: samsung, aries-wm8994: require sound-dai property
by Krzysztof Kozlowski 25 Jan '22
by Krzysztof Kozlowski 25 Jan '22
25 Jan '22
The cpu and codec nodes must provide sound-dai property.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski(a)canonical.com>
---
.../devicetree/bindings/sound/samsung,aries-wm8994.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml b/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml
index eb487ed3ca3b..d5cc221787cf 100644
--- a/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml
+++ b/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml
@@ -33,6 +33,8 @@ properties:
description: |
phandles to the I2S controller and bluetooth codec,
in that order
+ required:
+ - sound-dai
codec:
type: object
@@ -40,6 +42,8 @@ properties:
sound-dai:
$ref: /schemas/types.yaml#/definitions/phandle-array
description: phandle to the WM8994 CODEC
+ required:
+ - sound-dai
samsung,audio-routing:
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
--
2.32.0
2
6
The 'phandle-array' type is a bit ambiguous. It can be either just an
array of phandles or an array of phandles plus args. Many schemas for
phandle-array properties aren't clear in the schema which case applies
though the description usually describes it.
The array of phandles case boils down to needing:
items:
maxItems: 1
The phandle plus args cases should typically take this form:
items:
- items:
- description: A phandle
- description: 1st arg cell
- description: 2nd arg cell
With this change, some examples need updating so that the bracketing of
property values matches the schema.
Cc: Damien Le Moal <damien.lemoal(a)opensource.wdc.com>
Cc: Herbert Xu <herbert(a)gondor.apana.org.au>
Cc: "David S. Miller" <davem(a)davemloft.net>
Cc: Chun-Kuang Hu <chunkuang.hu(a)kernel.org>
Cc: Philipp Zabel <p.zabel(a)pengutronix.de>
Cc: Laurent Pinchart <laurent.pinchart(a)ideasonboard.com>
Cc: Kieran Bingham <kieran.bingham+renesas(a)ideasonboard.com>
Cc: Vinod Koul <vkoul(a)kernel.org>
Cc: Georgi Djakov <djakov(a)kernel.org>
Cc: Thomas Gleixner <tglx(a)linutronix.de>
Cc: Marc Zyngier <maz(a)kernel.org>
Cc: Joerg Roedel <joro(a)8bytes.org>
Cc: Lee Jones <lee.jones(a)linaro.org>
Cc: Daniel Thompson <daniel.thompson(a)linaro.org>
Cc: Jingoo Han <jingoohan1(a)gmail.com>
Cc: Pavel Machek <pavel(a)ucw.cz>
Cc: Mauro Carvalho Chehab <mchehab(a)kernel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski(a)canonical.com>
Cc: Jakub Kicinski <kuba(a)kernel.org>
Cc: Wolfgang Grandegger <wg(a)grandegger.com>
Cc: Marc Kleine-Budde <mkl(a)pengutronix.de>
Cc: Andrew Lunn <andrew(a)lunn.ch>
Cc: Vivien Didelot <vivien.didelot(a)gmail.com>
Cc: Florian Fainelli <f.fainelli(a)gmail.com>
Cc: Vladimir Oltean <olteanv(a)gmail.com>
Cc: Kalle Valo <kvalo(a)kernel.org>
Cc: Viresh Kumar <vireshk(a)kernel.org>
Cc: Stephen Boyd <sboyd(a)kernel.org>
Cc: Kishon Vijay Abraham I <kishon(a)ti.com>
Cc: Linus Walleij <linus.walleij(a)linaro.org>
Cc: "Rafael J. Wysocki" <rafael(a)kernel.org>
Cc: Kevin Hilman <khilman(a)kernel.org>
Cc: Ulf Hansson <ulf.hansson(a)linaro.org>
Cc: Sebastian Reichel <sre(a)kernel.org>
Cc: Mark Brown <broonie(a)kernel.org>
Cc: Mathieu Poirier <mathieu.poirier(a)linaro.org>
Cc: Daniel Lezcano <daniel.lezcano(a)linaro.org>
Cc: Zhang Rui <rui.zhang(a)intel.com>
Cc: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Cc: Thierry Reding <thierry.reding(a)gmail.com>
Cc: Jonathan Hunter <jonathanh(a)nvidia.com>
Cc: Sudeep Holla <sudeep.holla(a)arm.com>
Cc: Geert Uytterhoeven <geert+renesas(a)glider.be>
Cc: linux-ide(a)vger.kernel.org
Cc: linux-crypto(a)vger.kernel.org
Cc: dri-devel(a)lists.freedesktop.org
Cc: dmaengine(a)vger.kernel.org
Cc: linux-pm(a)vger.kernel.org
Cc: iommu(a)lists.linux-foundation.org
Cc: linux-leds(a)vger.kernel.org
Cc: linux-media(a)vger.kernel.org
Cc: netdev(a)vger.kernel.org
Cc: linux-can(a)vger.kernel.org
Cc: linux-wireless(a)vger.kernel.org
Cc: linux-phy(a)lists.infradead.org
Cc: linux-gpio(a)vger.kernel.org
Cc: linux-riscv(a)lists.infradead.org
Cc: linux-remoteproc(a)vger.kernel.org
Cc: alsa-devel(a)alsa-project.org
Cc: linux-usb(a)vger.kernel.org
Signed-off-by: Rob Herring <robh(a)kernel.org>
---
.../devicetree/bindings/arm/cpus.yaml | 2 +
.../devicetree/bindings/arm/idle-states.yaml | 80 +++++++++----------
.../devicetree/bindings/arm/pmu.yaml | 2 +
.../bindings/ata/sata_highbank.yaml | 3 +
.../bus/allwinner,sun50i-a64-de2.yaml | 5 +-
.../bindings/crypto/intel,ixp4xx-crypto.yaml | 15 +++-
.../allwinner,sun4i-a10-display-engine.yaml | 2 +
.../display/mediatek/mediatek,hdmi.yaml | 5 +-
.../devicetree/bindings/display/msm/gpu.yaml | 2 +
.../bindings/display/renesas,du.yaml | 10 ++-
.../display/rockchip/rockchip-drm.yaml | 2 +
.../display/sprd/sprd,display-subsystem.yaml | 2 +
.../bindings/display/ti/ti,am65x-dss.yaml | 3 +-
.../devicetree/bindings/dma/dma-router.yaml | 2 +
.../bindings/dma/st,stm32-dmamux.yaml | 2 +-
.../bindings/dvfs/performance-domain.yaml | 1 -
.../bindings/interconnect/qcom,rpmh.yaml | 2 +
.../interrupt-controller/arm,gic-v3.yaml | 6 +-
.../interrupt-controller/ti,sci-inta.yaml | 2 +
.../bindings/iommu/mediatek,iommu.yaml | 6 +-
.../bindings/iommu/renesas,ipmmu-vmsa.yaml | 6 ++
.../leds/backlight/led-backlight.yaml | 2 +
.../allwinner,sun4i-a10-video-engine.yaml | 4 +
.../bindings/media/nxp,imx8mq-mipi-csi2.yaml | 10 +--
.../devicetree/bindings/media/ti,cal.yaml | 4 +
.../memory-controllers/mediatek,smi-larb.yaml | 2 +-
.../samsung,exynos5422-dmc.yaml | 2 +
.../net/allwinner,sun4i-a10-emac.yaml | 4 +
.../bindings/net/can/bosch,c_can.yaml | 8 +-
.../bindings/net/can/fsl,flexcan.yaml | 12 +--
.../devicetree/bindings/net/dsa/dsa-port.yaml | 2 +
.../devicetree/bindings/net/fsl,fec.yaml | 8 +-
.../bindings/net/intel,ixp4xx-ethernet.yaml | 15 +++-
.../bindings/net/intel,ixp4xx-hss.yaml | 33 ++++++--
.../bindings/net/nxp,dwmac-imx.yaml | 4 +
.../bindings/net/socionext,uniphier-ave4.yaml | 4 +
.../devicetree/bindings/net/stm32-dwmac.yaml | 4 +
.../bindings/net/ti,k3-am654-cpsw-nuss.yaml | 5 ++
.../bindings/net/wireless/mediatek,mt76.yaml | 4 +
.../devicetree/bindings/opp/opp-v2-base.yaml | 2 +
.../devicetree/bindings/perf/arm,dsu-pmu.yaml | 2 +
.../bindings/phy/intel,combo-phy.yaml | 8 ++
.../devicetree/bindings/phy/ti,omap-usb2.yaml | 4 +
.../pinctrl/aspeed,ast2500-pinctrl.yaml | 2 +
.../bindings/pinctrl/canaan,k210-fpioa.yaml | 4 +
.../pinctrl/mediatek,mt65xx-pinctrl.yaml | 2 +
.../bindings/pinctrl/st,stm32-pinctrl.yaml | 10 ++-
.../bindings/power/power-domain.yaml | 4 +
.../bindings/power/renesas,apmu.yaml | 2 +
.../power/rockchip,power-controller.yaml | 2 +
.../bindings/power/supply/cw2015_battery.yaml | 6 +-
.../bindings/power/supply/power-supply.yaml | 2 +
.../bindings/regulator/regulator.yaml | 2 +
.../bindings/regulator/st,stm32-booster.yaml | 2 +-
.../bindings/remoteproc/qcom,adsp.yaml | 6 ++
.../bindings/remoteproc/st,stm32-rproc.yaml | 33 ++++++--
.../bindings/remoteproc/ti,k3-dsp-rproc.yaml | 2 +
.../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 2 +
.../remoteproc/ti,omap-remoteproc.yaml | 19 +++--
.../bindings/soc/samsung/exynos-usi.yaml | 4 +
.../bindings/sound/samsung,aries-wm8994.yaml | 2 +
.../bindings/sound/samsung,midas-audio.yaml | 3 +-
.../bindings/sound/st,stm32-sai.yaml | 8 +-
.../thermal/thermal-cooling-devices.yaml | 6 +-
.../bindings/thermal/thermal-idle.yaml | 8 +-
.../bindings/usb/nvidia,tegra-xudc.yaml | 2 +-
66 files changed, 317 insertions(+), 119 deletions(-)
diff --git a/Documentation/devicetree/bindings/arm/cpus.yaml b/Documentation/devicetree/bindings/arm/cpus.yaml
index 0dcebc48ea22..916a5aebefff 100644
--- a/Documentation/devicetree/bindings/arm/cpus.yaml
+++ b/Documentation/devicetree/bindings/arm/cpus.yaml
@@ -243,6 +243,8 @@ properties:
cpu-idle-states:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
+ items:
+ maxItems: 1
description: |
List of phandles to idle state nodes supported
by this cpu (see ./idle-states.yaml).
diff --git a/Documentation/devicetree/bindings/arm/idle-states.yaml b/Documentation/devicetree/bindings/arm/idle-states.yaml
index 52bce5dbb11f..4d381fa1ee57 100644
--- a/Documentation/devicetree/bindings/arm/idle-states.yaml
+++ b/Documentation/devicetree/bindings/arm/idle-states.yaml
@@ -337,8 +337,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x0>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@1 {
@@ -346,8 +346,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x1>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@100 {
@@ -355,8 +355,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x100>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@101 {
@@ -364,8 +364,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x101>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@10000 {
@@ -373,8 +373,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x10000>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@10001 {
@@ -382,8 +382,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x10001>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@10100 {
@@ -391,8 +391,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x10100>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@10101 {
@@ -400,8 +400,8 @@ examples:
compatible = "arm,cortex-a57";
reg = <0x0 0x10101>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_0_0 &CPU_SLEEP_0_0
- &CLUSTER_RETENTION_0 &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&CPU_RETENTION_0_0>, <&CPU_SLEEP_0_0>,
+ <&CLUSTER_RETENTION_0>, <&CLUSTER_SLEEP_0>;
};
cpu@100000000 {
@@ -409,8 +409,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x0>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
cpu@100000001 {
@@ -418,8 +418,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x1>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
cpu@100000100 {
@@ -427,8 +427,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x100>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
cpu@100000101 {
@@ -436,8 +436,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x101>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
cpu@100010000 {
@@ -445,8 +445,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x10000>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
cpu@100010001 {
@@ -454,8 +454,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x10001>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
cpu@100010100 {
@@ -463,8 +463,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x10100>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
cpu@100010101 {
@@ -472,8 +472,8 @@ examples:
compatible = "arm,cortex-a53";
reg = <0x1 0x10101>;
enable-method = "psci";
- cpu-idle-states = <&CPU_RETENTION_1_0 &CPU_SLEEP_1_0
- &CLUSTER_RETENTION_1 &CLUSTER_SLEEP_1>;
+ cpu-idle-states = <&CPU_RETENTION_1_0>, <&CPU_SLEEP_1_0>,
+ <&CLUSTER_RETENTION_1>, <&CLUSTER_SLEEP_1>;
};
idle-states {
@@ -567,56 +567,56 @@ examples:
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0x0>;
- cpu-idle-states = <&cpu_sleep_0_0 &cluster_sleep_0>;
+ cpu-idle-states = <&cpu_sleep_0_0>, <&cluster_sleep_0>;
};
cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0x1>;
- cpu-idle-states = <&cpu_sleep_0_0 &cluster_sleep_0>;
+ cpu-idle-states = <&cpu_sleep_0_0>, <&cluster_sleep_0>;
};
cpu@2 {
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0x2>;
- cpu-idle-states = <&cpu_sleep_0_0 &cluster_sleep_0>;
+ cpu-idle-states = <&cpu_sleep_0_0>, <&cluster_sleep_0>;
};
cpu@3 {
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0x3>;
- cpu-idle-states = <&cpu_sleep_0_0 &cluster_sleep_0>;
+ cpu-idle-states = <&cpu_sleep_0_0>, <&cluster_sleep_0>;
};
cpu@100 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x100>;
- cpu-idle-states = <&cpu_sleep_1_0 &cluster_sleep_1>;
+ cpu-idle-states = <&cpu_sleep_1_0>, <&cluster_sleep_1>;
};
cpu@101 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x101>;
- cpu-idle-states = <&cpu_sleep_1_0 &cluster_sleep_1>;
+ cpu-idle-states = <&cpu_sleep_1_0>, <&cluster_sleep_1>;
};
cpu@102 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x102>;
- cpu-idle-states = <&cpu_sleep_1_0 &cluster_sleep_1>;
+ cpu-idle-states = <&cpu_sleep_1_0>, <&cluster_sleep_1>;
};
cpu@103 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x103>;
- cpu-idle-states = <&cpu_sleep_1_0 &cluster_sleep_1>;
+ cpu-idle-states = <&cpu_sleep_1_0>, <&cluster_sleep_1>;
};
idle-states {
diff --git a/Documentation/devicetree/bindings/arm/pmu.yaml b/Documentation/devicetree/bindings/arm/pmu.yaml
index 981bac451698..2e2308d73408 100644
--- a/Documentation/devicetree/bindings/arm/pmu.yaml
+++ b/Documentation/devicetree/bindings/arm/pmu.yaml
@@ -66,6 +66,8 @@ properties:
interrupt-affinity:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description:
When using SPIs, specifies a list of phandles to CPU
nodes corresponding directly to the affinity of
diff --git a/Documentation/devicetree/bindings/ata/sata_highbank.yaml b/Documentation/devicetree/bindings/ata/sata_highbank.yaml
index ce75d77e9289..49679b58041c 100644
--- a/Documentation/devicetree/bindings/ata/sata_highbank.yaml
+++ b/Documentation/devicetree/bindings/ata/sata_highbank.yaml
@@ -51,6 +51,9 @@ properties:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 8
+ items:
+ minItems: 2
+ maxItems: 2
calxeda,tx-atten:
description: |
diff --git a/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml b/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml
index 863a287ebc7e..ad313ccaaaef 100644
--- a/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml
+++ b/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml
@@ -35,7 +35,10 @@ properties:
The SRAM that needs to be claimed to access the display engine
bus.
$ref: /schemas/types.yaml#/definitions/phandle-array
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to SRAM
+ - description: register value for device
ranges: true
diff --git a/Documentation/devicetree/bindings/crypto/intel,ixp4xx-crypto.yaml b/Documentation/devicetree/bindings/crypto/intel,ixp4xx-crypto.yaml
index 9c53c27bd20a..e0fe63957888 100644
--- a/Documentation/devicetree/bindings/crypto/intel,ixp4xx-crypto.yaml
+++ b/Documentation/devicetree/bindings/crypto/intel,ixp4xx-crypto.yaml
@@ -22,19 +22,28 @@ properties:
intel,npe-handle:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the NPE this crypto engine
+ - description: the NPE instance number
description: phandle to the NPE this crypto engine is using, the cell
describing the NPE instance to be used.
queue-rx:
$ref: /schemas/types.yaml#/definitions/phandle-array
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the RX queue on the NPE
+ - description: the queue instance number
description: phandle to the RX queue on the NPE, the cell describing
the queue instance to be used.
queue-txready:
$ref: /schemas/types.yaml#/definitions/phandle-array
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the TX READY queue on the NPE
+ - description: the queue instance number
description: phandle to the TX READY queue on the NPE, the cell describing
the queue instance to be used.
diff --git a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-engine.yaml b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-engine.yaml
index e77523b02fad..d4412aea7b73 100644
--- a/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-engine.yaml
+++ b/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-display-engine.yaml
@@ -69,6 +69,8 @@ properties:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 2
+ items:
+ maxItems: 1
description: |
Available display engine frontends (DE 1.0) or mixers (DE
2.0/3.0) available.
diff --git a/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml b/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml
index 111967efa999..bdaf0b51e68c 100644
--- a/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml
+++ b/Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.yaml
@@ -51,7 +51,10 @@ properties:
mediatek,syscon-hdmi:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to system configuration registers
+ - description: register offset in the system configuration registers
description: |
phandle link and register offset to the system configuration registers.
diff --git a/Documentation/devicetree/bindings/display/msm/gpu.yaml b/Documentation/devicetree/bindings/display/msm/gpu.yaml
index 99a1ba3ada56..3397bc31d087 100644
--- a/Documentation/devicetree/bindings/display/msm/gpu.yaml
+++ b/Documentation/devicetree/bindings/display/msm/gpu.yaml
@@ -64,6 +64,8 @@ properties:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 4
+ items:
+ maxItems: 1
description: |
phandles to one or more reserved on-chip SRAM regions.
phandle to the On Chip Memory (OCMEM) that's present on some a3xx and
diff --git a/Documentation/devicetree/bindings/display/renesas,du.yaml b/Documentation/devicetree/bindings/display/renesas,du.yaml
index 13efea574584..56cedcd6d576 100644
--- a/Documentation/devicetree/bindings/display/renesas,du.yaml
+++ b/Documentation/devicetree/bindings/display/renesas,du.yaml
@@ -76,17 +76,21 @@ properties:
renesas,cmms:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
+ items:
+ maxItems: 1
description:
A list of phandles to the CMM instances present in the SoC, one for each
available DU channel.
renesas,vsps:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
+ items:
+ items:
+ - description: phandle to VSP instance that serves the DU channel
+ - description: Channel index identifying the LIF instance in that VSP
description:
A list of phandle and channel index tuples to the VSPs that handle the
- memory interfaces for the DU channels. The phandle identifies the VSP
- instance that serves the DU channel, and the channel index identifies
- the LIF instance in that VSP.
+ memory interfaces for the DU channels.
required:
- compatible
diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip-drm.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip-drm.yaml
index 7204da5eb4c5..a8d18a37cb23 100644
--- a/Documentation/devicetree/bindings/display/rockchip/rockchip-drm.yaml
+++ b/Documentation/devicetree/bindings/display/rockchip/rockchip-drm.yaml
@@ -21,6 +21,8 @@ properties:
ports:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description: |
Should contain a list of phandles pointing to display interface port
of vop devices. vop definitions as defined in
diff --git a/Documentation/devicetree/bindings/display/sprd/sprd,display-subsystem.yaml b/Documentation/devicetree/bindings/display/sprd/sprd,display-subsystem.yaml
index 3d107e9434be..d0a5592bd89d 100644
--- a/Documentation/devicetree/bindings/display/sprd/sprd,display-subsystem.yaml
+++ b/Documentation/devicetree/bindings/display/sprd/sprd,display-subsystem.yaml
@@ -45,6 +45,8 @@ properties:
ports:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description:
Should contain a list of phandles pointing to display interface port
of DPU devices.
diff --git a/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml b/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
index 781c1868b0b8..5c7d2cbc4aac 100644
--- a/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
+++ b/Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
@@ -88,8 +88,7 @@ properties:
The DSS DPI output port node from video port 2
ti,am65x-oldi-io-ctrl:
- $ref: "/schemas/types.yaml#/definitions/phandle-array"
- maxItems: 1
+ $ref: "/schemas/types.yaml#/definitions/phandle"
description:
phandle to syscon device node mapping OLDI IO_CTRL registers.
The mapped range should point to OLDI_DAT0_IO_CTRL, map it and
diff --git a/Documentation/devicetree/bindings/dma/dma-router.yaml b/Documentation/devicetree/bindings/dma/dma-router.yaml
index e72748496fd9..4b817f5dc30e 100644
--- a/Documentation/devicetree/bindings/dma/dma-router.yaml
+++ b/Documentation/devicetree/bindings/dma/dma-router.yaml
@@ -24,6 +24,8 @@ properties:
dma-masters:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description:
Array of phandles to the DMA controllers the router can direct
the signal to.
diff --git a/Documentation/devicetree/bindings/dma/st,stm32-dmamux.yaml b/Documentation/devicetree/bindings/dma/st,stm32-dmamux.yaml
index f751796531c9..7b1833d6caa2 100644
--- a/Documentation/devicetree/bindings/dma/st,stm32-dmamux.yaml
+++ b/Documentation/devicetree/bindings/dma/st,stm32-dmamux.yaml
@@ -46,7 +46,7 @@ examples:
#dma-cells = <3>;
dma-requests = <128>;
dma-channels = <16>;
- dma-masters = <&dma1 &dma2>;
+ dma-masters = <&dma1>, <&dma2>;
clocks = <&timer_clk>;
};
diff --git a/Documentation/devicetree/bindings/dvfs/performance-domain.yaml b/Documentation/devicetree/bindings/dvfs/performance-domain.yaml
index c8b91207f34d..7959d40ded5a 100644
--- a/Documentation/devicetree/bindings/dvfs/performance-domain.yaml
+++ b/Documentation/devicetree/bindings/dvfs/performance-domain.yaml
@@ -43,7 +43,6 @@ properties:
performance-domains:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
description:
A phandle and performance domain specifier as defined by bindings of the
performance controller/provider specified by phandle.
diff --git a/Documentation/devicetree/bindings/interconnect/qcom,rpmh.yaml b/Documentation/devicetree/bindings/interconnect/qcom,rpmh.yaml
index cbb24f9bb609..5a911be0c2ea 100644
--- a/Documentation/devicetree/bindings/interconnect/qcom,rpmh.yaml
+++ b/Documentation/devicetree/bindings/interconnect/qcom,rpmh.yaml
@@ -121,6 +121,8 @@ properties:
qcom,bcm-voters:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description: |
List of phandles to qcom,bcm-voter nodes that are required by
this interconnect to send RPMh commands.
diff --git a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
index cfb3ec27bd2b..b7197f78e158 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
@@ -138,6 +138,8 @@ properties:
properties:
affinity:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description:
Should be a list of phandles to CPU nodes (as described in
Documentation/devicetree/bindings/arm/cpus.yaml).
@@ -273,11 +275,11 @@ examples:
ppi-partitions {
part0: interrupt-partition-0 {
- affinity = <&cpu0 &cpu2>;
+ affinity = <&cpu0>, <&cpu2>;
};
part1: interrupt-partition-1 {
- affinity = <&cpu1 &cpu3>;
+ affinity = <&cpu1>, <&cpu3>;
};
};
};
diff --git a/Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml b/Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml
index 3d89668573e8..88c46e61732e 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml
@@ -77,6 +77,8 @@ properties:
ti,unmapped-event-sources:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description:
Array of phandles to DMA controllers where the unmapped events originate.
diff --git a/Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml b/Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml
index 0f26fe14c8e2..97e8c471a5e8 100644
--- a/Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml
+++ b/Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml
@@ -101,6 +101,8 @@ properties:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 32
+ items:
+ maxItems: 1
description: |
List of phandle to the local arbiters in the current Socs.
Refer to bindings/memory-controllers/mediatek,smi-larb.yaml. It must sort
@@ -167,8 +169,8 @@ examples:
interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_LOW>;
clocks = <&infracfg CLK_INFRA_M4U>;
clock-names = "bclk";
- mediatek,larbs = <&larb0 &larb1 &larb2
- &larb3 &larb4 &larb5>;
+ mediatek,larbs = <&larb0>, <&larb1>, <&larb2>,
+ <&larb3>, <&larb4>, <&larb5>;
#iommu-cells = <1>;
};
diff --git a/Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml b/Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml
index ce0c715205c6..507853fcc746 100644
--- a/Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml
+++ b/Documentation/devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml
@@ -66,6 +66,12 @@ properties:
renesas,ipmmu-main:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to main IPMMU
+ - description: the interrupt bit number associated with the particular
+ cache IPMMU device. The interrupt bit number needs to match the main
+ IPMMU IMSSTR register. Only used by cache IPMMU instances.
description:
Reference to the main IPMMU phandle plus 1 cell. The cell is
the interrupt bit number associated with the particular cache IPMMU
diff --git a/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
index 625082bf3892..f5822f4ea667 100644
--- a/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
+++ b/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
@@ -23,6 +23,8 @@ properties:
leds:
description: A list of LED nodes
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
brightness-levels:
description:
diff --git a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
index c3de96d10396..ee7fc3515d89 100644
--- a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
+++ b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
@@ -48,6 +48,10 @@ properties:
allwinner,sram:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to SRAM
+ - description: register value for device
description: Phandle to the device SRAM
iommus:
diff --git a/Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml b/Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml
index 9c04fa85ee5c..d13c9233a7c8 100644
--- a/Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml
+++ b/Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml
@@ -58,11 +58,11 @@ properties:
req_gpr is the gpr register offset of RX_ENABLE for the mipi phy.
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- - description: The 'gpr' is the phandle to general purpose register node.
- - description: The 'req_gpr' is the gpr register offset containing
- CSI2_1_RX_ENABLE or CSI2_2_RX_ENABLE respectively.
- maximum: 0xff
+ - items:
+ - description: The 'gpr' is the phandle to general purpose register node.
+ - description: The 'req_gpr' is the gpr register offset containing
+ CSI2_1_RX_ENABLE or CSI2_2_RX_ENABLE respectively.
+ maximum: 0xff
interconnects:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/media/ti,cal.yaml b/Documentation/devicetree/bindings/media/ti,cal.yaml
index 66c5d392fa75..7e078424ca4d 100644
--- a/Documentation/devicetree/bindings/media/ti,cal.yaml
+++ b/Documentation/devicetree/bindings/media/ti,cal.yaml
@@ -48,6 +48,10 @@ properties:
ti,camerrx-control:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
+ items:
+ - items:
+ - description: phandle to device control module
+ - description: offset to the control_camerarx_core register
description:
phandle to the device control module and offset to the
control_camerarx_core register
diff --git a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
index eaeff1ada7f8..822ade9e9bab 100644
--- a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
@@ -52,7 +52,7 @@ properties:
maxItems: 1
mediatek,smi:
- $ref: /schemas/types.yaml#/definitions/phandle-array
+ $ref: /schemas/types.yaml#/definitions/phandle
description: a phandle to the smi_common node.
mediatek,larb-id:
diff --git a/Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml b/Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml
index fe8639dcffab..895c3b5c9aaa 100644
--- a/Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml
@@ -45,6 +45,8 @@ properties:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
minItems: 1
maxItems: 16
+ items:
+ maxItems: 1
description: phandles of the PPMU events used by the controller.
device-handle:
diff --git a/Documentation/devicetree/bindings/net/allwinner,sun4i-a10-emac.yaml b/Documentation/devicetree/bindings/net/allwinner,sun4i-a10-emac.yaml
index 8d8560a67abf..098b2bf7d976 100644
--- a/Documentation/devicetree/bindings/net/allwinner,sun4i-a10-emac.yaml
+++ b/Documentation/devicetree/bindings/net/allwinner,sun4i-a10-emac.yaml
@@ -29,6 +29,10 @@ properties:
allwinner,sram:
description: Phandle to the device SRAM
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to SRAM
+ - description: register value for device
required:
- compatible
diff --git a/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml b/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml
index 2cd145a642f1..8bad328b184d 100644
--- a/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml
+++ b/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml
@@ -56,10 +56,10 @@ properties:
offset).
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- - description: The phandle to the system control region.
- - description: The register offset.
- - description: The CAN instance number.
+ - items:
+ - description: The phandle to the system control region.
+ - description: The register offset.
+ - description: The CAN instance number.
resets:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/net/can/fsl,flexcan.yaml b/Documentation/devicetree/bindings/net/can/fsl,flexcan.yaml
index 3f0ee17c1461..e52db841bb8c 100644
--- a/Documentation/devicetree/bindings/net/can/fsl,flexcan.yaml
+++ b/Documentation/devicetree/bindings/net/can/fsl,flexcan.yaml
@@ -84,12 +84,12 @@ properties:
req_bit is the bit offset of CAN stop request.
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- - description: The 'gpr' is the phandle to general purpose register node.
- - description: The 'req_gpr' is the gpr register offset of CAN stop request.
- maximum: 0xff
- - description: The 'req_bit' is the bit offset of CAN stop request.
- maximum: 0x1f
+ - items:
+ - description: The 'gpr' is the phandle to general purpose register node.
+ - description: The 'req_gpr' is the gpr register offset of CAN stop request.
+ maximum: 0xff
+ - description: The 'req_bit' is the bit offset of CAN stop request.
+ maximum: 0x1f
fsl,clk-source:
description: |
diff --git a/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml b/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
index 702df848a71d..c504feeec6db 100644
--- a/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
@@ -34,6 +34,8 @@ properties:
full routing information must be given, not just the one hop
routes to neighbouring switches
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
ethernet:
description:
diff --git a/Documentation/devicetree/bindings/net/fsl,fec.yaml b/Documentation/devicetree/bindings/net/fsl,fec.yaml
index fd8371e31867..daa2f79a294f 100644
--- a/Documentation/devicetree/bindings/net/fsl,fec.yaml
+++ b/Documentation/devicetree/bindings/net/fsl,fec.yaml
@@ -158,11 +158,13 @@ properties:
fsl,stop-mode:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to general purpose register node
+ - description: the gpr register offset for ENET stop request
+ - description: the gpr bit offset for ENET stop request
description:
Register bits of stop mode control, the format is <&gpr req_gpr req_bit>.
- gpr is the phandle to general purpose register node.
- req_gpr is the gpr register offset for ENET stop request.
- req_bit is the gpr bit offset for ENET stop request.
mdio:
$ref: mdio.yaml#
diff --git a/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml b/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
index 67eaf02dda80..4e1b79818aff 100644
--- a/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
+++ b/Documentation/devicetree/bindings/net/intel,ixp4xx-ethernet.yaml
@@ -29,12 +29,18 @@ properties:
queue-rx:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the RX queue node
+ - description: RX queue instance to use
description: phandle to the RX queue on the NPE
queue-txready:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the TX READY queue node
+ - description: TX READY queue instance to use
description: phandle to the TX READY queue on the NPE
phy-mode: true
@@ -43,7 +49,10 @@ properties:
intel,npe-handle:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the NPE this ethernet instance is using
+ - description: the NPE instance to use
description: phandle to the NPE this ethernet instance is using
and the instance to use in the second cell
diff --git a/Documentation/devicetree/bindings/net/intel,ixp4xx-hss.yaml b/Documentation/devicetree/bindings/net/intel,ixp4xx-hss.yaml
index 4dcd53c3e0b4..e6329febb60c 100644
--- a/Documentation/devicetree/bindings/net/intel,ixp4xx-hss.yaml
+++ b/Documentation/devicetree/bindings/net/intel,ixp4xx-hss.yaml
@@ -25,39 +25,62 @@ properties:
intel,npe-handle:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ items:
+ - description: phandle to the NPE this HSS instance is using
+ - description: the NPE instance number
description: phandle to the NPE this HSS instance is using
and the instance to use in the second cell
intel,queue-chl-rxtrig:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the RX trigger queue on the NPE
+ - description: the queue instance number
description: phandle to the RX trigger queue on the NPE
intel,queue-chl-txready:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the TX ready queue on the NPE
+ - description: the queue instance number
description: phandle to the TX ready queue on the NPE
intel,queue-pkt-rx:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the RX queue on the NPE
+ - description: the queue instance number
description: phandle to the packet RX queue on the NPE
intel,queue-pkt-tx:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
maxItems: 4
+ items:
+ items:
+ - description: phandle to the TX queue on the NPE
+ - description: the queue instance number
description: phandle to the packet TX0, TX1, TX2 and TX3 queues on the NPE
intel,queue-pkt-rxfree:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
maxItems: 4
+ items:
+ items:
+ - description: phandle to the RXFREE queue on the NPE
+ - description: the queue instance number
description: phandle to the packet RXFREE0, RXFREE1, RXFREE2 and
RXFREE3 queues on the NPE
intel,queue-pkt-txdone:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
- maxItems: 1
+ items:
+ - items:
+ - description: phandle to the TXDONE queue on the NPE
+ - description: the queue instance number
description: phandle to the packet TXDONE queue on the NPE
cts-gpios:
diff --git a/Documentation/devicetree/bindings/net/nxp,dwmac-imx.yaml b/Documentation/devicetree/bindings/net/nxp,dwmac-imx.yaml
index ee4afe361fac..011363166789 100644
--- a/Documentation/devicetree/bindings/net/nxp,dwmac-imx.yaml
+++ b/Documentation/devicetree/bindings/net/nxp,dwmac-imx.yaml
@@ -54,6 +54,10 @@ properties:
intf_mode:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to the GPR syscon
+ - description: the offset of the GPR register
description:
Should be phandle/offset pair. The phandle to the syscon node which
encompases the GPR register, and the offset of the GPR register.
diff --git a/Documentation/devicetree/bindings/net/socionext,uniphier-ave4.yaml b/Documentation/devicetree/bindings/net/socionext,uniphier-ave4.yaml
index aad5a9f3f962..1ab41cfdb865 100644
--- a/Documentation/devicetree/bindings/net/socionext,uniphier-ave4.yaml
+++ b/Documentation/devicetree/bindings/net/socionext,uniphier-ave4.yaml
@@ -66,6 +66,10 @@ properties:
socionext,syscon-phy-mode:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to syscon that configures phy mode
+ - description: ID of MAC instance
description:
A phandle to syscon with one argument that configures phy mode.
The argument is the ID of MAC instance.
diff --git a/Documentation/devicetree/bindings/net/stm32-dwmac.yaml b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
index 3d8a3b763ae6..89a858de68af 100644
--- a/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
@@ -74,6 +74,10 @@ properties:
st,syscon:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
+ items:
+ - items:
+ - description: phandle to the syscon node which encompases the glue register
+ - description: offset of the control register
description:
Should be phandle/offset pair. The phandle to the syscon node which
encompases the glue register, and the offset of the control register
diff --git a/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml b/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
index 4b97a0f1175b..c6596fad5b20 100644
--- a/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
+++ b/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
@@ -136,6 +136,11 @@ properties:
ti,syscon-efuse:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: Phandle to the system control device node which
+ provides access to efuse
+ - description: offset to efuse registers???
description:
Phandle to the system control device node which provides access
to efuse IO range with MAC addresses
diff --git a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml
index 269cd63fb544..42e1f4dddca8 100644
--- a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml
@@ -54,6 +54,10 @@ properties:
mediatek,mtd-eeprom:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to MTD partition
+ - description: offset containing EEPROM data
description:
Phandle to a MTD partition + offset containing EEPROM data
diff --git a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
index 15a76bcd6d42..da0f09eedc0c 100644
--- a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
+++ b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
@@ -177,6 +177,8 @@ patternProperties:
for the functioning of the current device at the current OPP (where
this property is present).
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
patternProperties:
'^opp-microvolt-':
diff --git a/Documentation/devicetree/bindings/perf/arm,dsu-pmu.yaml b/Documentation/devicetree/bindings/perf/arm,dsu-pmu.yaml
index aef63a542f34..c87821be158b 100644
--- a/Documentation/devicetree/bindings/perf/arm,dsu-pmu.yaml
+++ b/Documentation/devicetree/bindings/perf/arm,dsu-pmu.yaml
@@ -35,6 +35,8 @@ properties:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 12
+ items:
+ maxItems: 1
description: List of phandles for the CPUs connected to this DSU instance.
required:
diff --git a/Documentation/devicetree/bindings/phy/intel,combo-phy.yaml b/Documentation/devicetree/bindings/phy/intel,combo-phy.yaml
index 347d0cdfb80d..5d54b0a0e873 100644
--- a/Documentation/devicetree/bindings/phy/intel,combo-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/intel,combo-phy.yaml
@@ -47,10 +47,18 @@ properties:
intel,syscfg:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to Chip configuration registers
+ - description: ComboPhy instance id
description: Chip configuration registers handle and ComboPhy instance id
intel,hsio:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to HSIO registers
+ - description: ComboPhy instance id
description: HSIO registers handle and ComboPhy instance id on NOC
intel,aggregation:
diff --git a/Documentation/devicetree/bindings/phy/ti,omap-usb2.yaml b/Documentation/devicetree/bindings/phy/ti,omap-usb2.yaml
index cbbf5e8b1197..51c8a36e61f0 100644
--- a/Documentation/devicetree/bindings/phy/ti,omap-usb2.yaml
+++ b/Documentation/devicetree/bindings/phy/ti,omap-usb2.yaml
@@ -45,6 +45,10 @@ properties:
syscon-phy-power:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to the system control module
+ - description: register offset to power on/off the PHY
description:
phandle/offset pair. Phandle to the system control module and
register offset to power on/off the PHY.
diff --git a/Documentation/devicetree/bindings/pinctrl/aspeed,ast2500-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/aspeed,ast2500-pinctrl.yaml
index d316cc082107..acd60c85b4cc 100644
--- a/Documentation/devicetree/bindings/pinctrl/aspeed,ast2500-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/aspeed,ast2500-pinctrl.yaml
@@ -29,6 +29,8 @@ properties:
aspeed,external-nodes:
minItems: 2
maxItems: 2
+ items:
+ maxItems: 1
$ref: /schemas/types.yaml#/definitions/phandle-array
description: |
A cell of phandles to external controller nodes:
diff --git a/Documentation/devicetree/bindings/pinctrl/canaan,k210-fpioa.yaml b/Documentation/devicetree/bindings/pinctrl/canaan,k210-fpioa.yaml
index a44691d9c57d..53e963e090f2 100644
--- a/Documentation/devicetree/bindings/pinctrl/canaan,k210-fpioa.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/canaan,k210-fpioa.yaml
@@ -39,6 +39,10 @@ properties:
canaan,k210-sysctl-power:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle of the K210 system controller node
+ - description: offset of its power domain control register
description: |
phandle of the K210 system controller node and offset of its
power domain control register.
diff --git a/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml
index 6953c958ff7c..161088a8be33 100644
--- a/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml
@@ -44,6 +44,8 @@ properties:
mediatek,pctl-regmap:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
minItems: 1
maxItems: 2
description: |
diff --git a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml
index 83a18d0331b1..335ffc1353b5 100644
--- a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml
@@ -41,11 +41,13 @@ properties:
maxItems: 1
st,syscfg:
- description: Should be phandle/offset/mask
- - Phandle to the syscon node which includes IRQ mux selection.
- - The offset of the IRQ mux selection register.
- - The field mask of IRQ mux, needed if different of 0xf.
+ description: Phandle+args to the syscon node which includes IRQ mux selection.
$ref: "/schemas/types.yaml#/definitions/phandle-array"
+ items:
+ - items:
+ - description: syscon node which includes IRQ mux selection
+ - description: The offset of the IRQ mux selection register
+ - description: The field mask of IRQ mux, needed if different of 0xf
st,package:
description:
diff --git a/Documentation/devicetree/bindings/power/power-domain.yaml b/Documentation/devicetree/bindings/power/power-domain.yaml
index 3143ed9a3313..889091b9814f 100644
--- a/Documentation/devicetree/bindings/power/power-domain.yaml
+++ b/Documentation/devicetree/bindings/power/power-domain.yaml
@@ -29,6 +29,8 @@ properties:
domain-idle-states:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description: |
Phandles of idle states that defines the available states for the
power-domain provider. The idle state definitions are compatible with the
@@ -42,6 +44,8 @@ properties:
operating-points-v2:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description:
Phandles to the OPP tables of power domains provided by a power domain
provider. If the provider provides a single power domain only or all
diff --git a/Documentation/devicetree/bindings/power/renesas,apmu.yaml b/Documentation/devicetree/bindings/power/renesas,apmu.yaml
index 391897d897f2..4d293b2b2f84 100644
--- a/Documentation/devicetree/bindings/power/renesas,apmu.yaml
+++ b/Documentation/devicetree/bindings/power/renesas,apmu.yaml
@@ -35,6 +35,8 @@ properties:
cpus:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description: |
Array of phandles pointing to CPU cores, which should match the order of
CPU cores used by the WUPCR and PSTR registers in the Advanced Power
diff --git a/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml b/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml
index 9b9d71087466..3deb0fc8dfd3 100644
--- a/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml
+++ b/Documentation/devicetree/bindings/power/rockchip,power-controller.yaml
@@ -129,6 +129,8 @@ $defs:
pm_qos:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description: |
A number of phandles to qos blocks which need to be saved and restored
while power domain switches state.
diff --git a/Documentation/devicetree/bindings/power/supply/cw2015_battery.yaml b/Documentation/devicetree/bindings/power/supply/cw2015_battery.yaml
index c73abb2ff513..2dda91587dc3 100644
--- a/Documentation/devicetree/bindings/power/supply/cw2015_battery.yaml
+++ b/Documentation/devicetree/bindings/power/supply/cw2015_battery.yaml
@@ -14,6 +14,9 @@ description: |
phandle in monitored-battery. If specified the driver uses the
charge-full-design-microamp-hours property of the battery.
+allOf:
+ - $ref: power-supply.yaml#
+
properties:
compatible:
const: cellwise,cw2015
@@ -37,9 +40,6 @@ properties:
minimum: 250
power-supplies:
- description:
- Specifies supplies used for charging the battery connected to this gauge
- $ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 8 # Should be enough
diff --git a/Documentation/devicetree/bindings/power/supply/power-supply.yaml b/Documentation/devicetree/bindings/power/supply/power-supply.yaml
index 259760167759..531b67225c74 100644
--- a/Documentation/devicetree/bindings/power/supply/power-supply.yaml
+++ b/Documentation/devicetree/bindings/power/supply/power-supply.yaml
@@ -12,6 +12,8 @@ maintainers:
properties:
power-supplies:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description:
This property is added to a supply in order to list the devices which
supply it power, referenced by their phandles.
diff --git a/Documentation/devicetree/bindings/regulator/regulator.yaml b/Documentation/devicetree/bindings/regulator/regulator.yaml
index ed560ee8714e..a9b66ececccf 100644
--- a/Documentation/devicetree/bindings/regulator/regulator.yaml
+++ b/Documentation/devicetree/bindings/regulator/regulator.yaml
@@ -213,6 +213,8 @@ properties:
is 2-way - all coupled regulators should be linked with each other.
A regulator should not be coupled with its supplier.
$ref: "/schemas/types.yaml#/definitions/phandle-array"
+ items:
+ maxItems: 1
regulator-coupled-max-spread:
description: Array of maximum spread between voltages of coupled regulators
diff --git a/Documentation/devicetree/bindings/regulator/st,stm32-booster.yaml b/Documentation/devicetree/bindings/regulator/st,stm32-booster.yaml
index df0191b1ceba..38bdaef4fa39 100644
--- a/Documentation/devicetree/bindings/regulator/st,stm32-booster.yaml
+++ b/Documentation/devicetree/bindings/regulator/st,stm32-booster.yaml
@@ -23,7 +23,7 @@ properties:
- st,stm32mp1-booster
st,syscfg:
- $ref: "/schemas/types.yaml#/definitions/phandle-array"
+ $ref: "/schemas/types.yaml#/definitions/phandle"
description: phandle to system configuration controller.
vdda-supply:
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
index c635c181d2c2..bcad8f4080d4 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.yaml
@@ -115,6 +115,12 @@ properties:
qcom,halt-regs:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: Phandle reference to a syscon representing TCSR
+ - description: offsets within syscon for q6 halt registers
+ - description: offsets within syscon for modem halt registers
+ - description: offsets within syscon for nc halt registers
description:
Phandle reference to a syscon representing TCSR followed by the
three offsets within syscon for q6, modem and nc halt registers.
diff --git a/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml
index b587c97c282b..be3d9b0e876b 100644
--- a/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml
@@ -29,17 +29,22 @@ properties:
st,syscfg-holdboot:
description: remote processor reset hold boot
- - Phandle of syscon block.
- - The offset of the hold boot setting register.
- - The field mask of the hold boot.
$ref: "/schemas/types.yaml#/definitions/phandle-array"
- maxItems: 1
+ items:
+ - items:
+ - description: Phandle of syscon block
+ - description: The offset of the hold boot setting register
+ - description: The field mask of the hold boot
st,syscfg-tz:
description:
Reference to the system configuration which holds the RCC trust zone mode
$ref: "/schemas/types.yaml#/definitions/phandle-array"
- maxItems: 1
+ items:
+ - items:
+ - description: Phandle of syscon block
+ - description: FIXME
+ - description: FIXME
interrupts:
description: Should contain the WWDG1 watchdog reset interrupt
@@ -93,20 +98,32 @@ properties:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
description: |
Reference to the system configuration which holds the remote
- maxItems: 1
+ items:
+ - items:
+ - description: Phandle of syscon block
+ - description: FIXME
+ - description: FIXME
st,syscfg-m4-state:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
description: |
Reference to the tamp register which exposes the Cortex-M4 state.
- maxItems: 1
+ items:
+ - items:
+ - description: Phandle of syscon block with the tamp register
+ - description: FIXME
+ - description: FIXME
st,syscfg-rsc-tbl:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
description: |
Reference to the tamp register which references the Cortex-M4
resource table address.
- maxItems: 1
+ items:
+ - items:
+ - description: Phandle of syscon block with the tamp register
+ - description: FIXME
+ - description: FIXME
st,auto-boot:
$ref: /schemas/types.yaml#/definitions/flag
diff --git a/Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml
index 7b56497eec4d..4323cefdf19b 100644
--- a/Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml
@@ -79,6 +79,8 @@ properties:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 4
+ items:
+ maxItems: 1
description: |
phandles to one or more reserved on-chip SRAM regions. The regions
should be defined as child nodes of the respective SRAM node, and
diff --git a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml
index d9c7e8c2b268..0f2bb06cb7b4 100644
--- a/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml
@@ -189,6 +189,8 @@ patternProperties:
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 1
maxItems: 4
+ items:
+ maxItems: 1
description: |
phandles to one or more reserved on-chip SRAM regions. The regions
should be defined as child nodes of the respective SRAM node, and
diff --git a/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml
index c6c12129d6b7..1fdc2741c36e 100644
--- a/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml
@@ -123,13 +123,14 @@ properties:
ti,bootreg:
$ref: /schemas/types.yaml#/definitions/phandle-array
- description: |
- Should be a triple of the phandle to the System Control
- Configuration region that contains the boot address
- register, the register offset of the boot address
- register within the System Control module, and the bit
- shift within the register. This property is required for
- all the DSP instances on OMAP4, OMAP5 and DRA7xx SoCs.
+ items:
+ - items:
+ - description: phandle to the System Control Configuration region
+ - description: register offset of the boot address register
+ - description: the bit shift within the register
+ description:
+ This property is required for all the DSP instances on OMAP4, OMAP5
+ and DRA7xx SoCs.
ti,autosuspend-delay-ms:
description: |
@@ -140,6 +141,8 @@ properties:
ti,timers:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description: |
One or more phandles to OMAP DMTimer nodes, that serve
as System/Tick timers for the OS running on the remote
@@ -156,6 +159,8 @@ properties:
ti,watchdog-timers:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ maxItems: 1
description: |
One or more phandles to OMAP DMTimer nodes, used to
serve as Watchdog timers for the processor cores. This
diff --git a/Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml b/Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml
index 273f2d95a043..58f2e9d8bb0e 100644
--- a/Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml
+++ b/Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml
@@ -48,6 +48,10 @@ properties:
samsung,sysreg:
$ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle to System Register syscon node
+ - description: offset of SW_CONF register for this USI controller
description:
Should be phandle/offset pair. The phandle to System Register syscon node
(for the same domain where this USI controller resides) and the offset
diff --git a/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml b/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml
index 5fff586dc802..eb487ed3ca3b 100644
--- a/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml
+++ b/Documentation/devicetree/bindings/sound/samsung,aries-wm8994.yaml
@@ -27,6 +27,8 @@ properties:
sound-dai:
minItems: 2
maxItems: 2
+ items:
+ maxItems: 1
$ref: /schemas/types.yaml#/definitions/phandle-array
description: |
phandles to the I2S controller and bluetooth codec,
diff --git a/Documentation/devicetree/bindings/sound/samsung,midas-audio.yaml b/Documentation/devicetree/bindings/sound/samsung,midas-audio.yaml
index 095775c598fa..3a4df2ce1728 100644
--- a/Documentation/devicetree/bindings/sound/samsung,midas-audio.yaml
+++ b/Documentation/devicetree/bindings/sound/samsung,midas-audio.yaml
@@ -21,8 +21,7 @@ properties:
type: object
properties:
sound-dai:
- $ref: /schemas/types.yaml#/definitions/phandle-array
- maxItems: 1
+ $ref: /schemas/types.yaml#/definitions/phandle
description: phandle to the I2S controller
required:
- sound-dai
diff --git a/Documentation/devicetree/bindings/sound/st,stm32-sai.yaml b/Documentation/devicetree/bindings/sound/st,stm32-sai.yaml
index 1538d11ce9a8..d4fc8fdcb72f 100644
--- a/Documentation/devicetree/bindings/sound/st,stm32-sai.yaml
+++ b/Documentation/devicetree/bindings/sound/st,stm32-sai.yaml
@@ -102,9 +102,11 @@ patternProperties:
By default SAI sub-block is in asynchronous mode.
Must contain the phandle and index of the SAI sub-block providing
the synchronization.
- allOf:
- - $ref: /schemas/types.yaml#/definitions/phandle-array
- - maxItems: 1
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ items:
+ - items:
+ - description: phandle of the SAI sub-block
+ - description: index of the SAI sub-block
st,iec60958:
description:
diff --git a/Documentation/devicetree/bindings/thermal/thermal-cooling-devices.yaml b/Documentation/devicetree/bindings/thermal/thermal-cooling-devices.yaml
index f004779ba9b3..850a9841b110 100644
--- a/Documentation/devicetree/bindings/thermal/thermal-cooling-devices.yaml
+++ b/Documentation/devicetree/bindings/thermal/thermal-cooling-devices.yaml
@@ -66,9 +66,9 @@ examples:
compatible = "qcom,kryo385";
reg = <0x0 0x0>;
enable-method = "psci";
- cpu-idle-states = <&LITTLE_CPU_SLEEP_0
- &LITTLE_CPU_SLEEP_1
- &CLUSTER_SLEEP_0>;
+ cpu-idle-states = <&LITTLE_CPU_SLEEP_0>,
+ <&LITTLE_CPU_SLEEP_1>,
+ <&CLUSTER_SLEEP_0>;
capacity-dmips-mhz = <607>;
dynamic-power-coefficient = <100>;
qcom,freq-domain = <&cpufreq_hw 0>;
diff --git a/Documentation/devicetree/bindings/thermal/thermal-idle.yaml b/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
index 6278ccf16f3f..cc938d7ad1f3 100644
--- a/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
+++ b/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
@@ -37,8 +37,8 @@ properties:
exit-latency-us:
description: |
- The exit latency constraint in microsecond for the injected idle state
- for the device. It is the latency constraint to apply when selecting an
+ The exit latency constraint in microsecond for the injected idle state
+ for the device. It is the latency constraint to apply when selecting an
idle state from among all the present ones.
required:
@@ -65,7 +65,7 @@ examples:
capacity-dmips-mhz = <1024>;
dynamic-power-coefficient = <436>;
#cooling-cells = <2>; /* min followed by max */
- cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
+ cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
thermal-idle {
#cooling-cells = <2>;
duration-us = <10000>;
@@ -81,7 +81,7 @@ examples:
capacity-dmips-mhz = <1024>;
dynamic-power-coefficient = <436>;
#cooling-cells = <2>; /* min followed by max */
- cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
+ cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
thermal-idle {
#cooling-cells = <2>;
duration-us = <10000>;
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml b/Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml
index a39c76b89484..fd6e7c81426e 100644
--- a/Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml
+++ b/Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml
@@ -83,7 +83,7 @@ properties:
- const: ss
nvidia,xusb-padctl:
- $ref: /schemas/types.yaml#/definitions/phandle-array
+ $ref: /schemas/types.yaml#/definitions/phandle
description:
phandle to the XUSB pad controller that is used to configure the USB pads
used by the XUDC controller.
--
2.32.0
12
15
Hello,
I have a problem I guess related to sof... I already asked on the irc
#alsa(a)libera.chat and gnarface advised me to come and ask on this
mailing list!
I am struggling to make the sound of my gpd pocket 3 to work on linux
(archlinux to be precise)! In fact, the sound is not supposed to work
out of the box as other users tested it before me! but they all had
the solution to set the dsp_driver and this didn't worked for me!
I checked several times to see if the module was loaded properly and
yes it is (as you can also check in the alsa-info at the end of the mail)!
If I do aplay -l I get a bunch of hdmi connection that is not working
at all! I'm really lost here and I don't even know what to look for
anymore
The sound works great on windows so This doens't seems to be hardware problem ?!
and I tried to plug an usb headset which give me sound so I doesn't
seems to be config related either ?! (tho the jack doesn't work)
I asked on several places already. I post the different links here in
case you want to check but I don't have any response to any post
unfortunately!
- Post on Archlinux BBS: https://bbs.archlinux.org/viewtopic.php?id=273044
- Post on subreddit GPDPocket:
https://www.reddit.com/r/GPDPocket/comments/s31qi8/gpd_p3_no_sound_linux/
- Screenshot and bios picture of maybe relevant informations:
- https://imgur.com/a/DouSB3m
- https://imgur.com/a/K232PLJ
I hope there is enough informations to help me debug this but if you
need anything I can provide it! this is a small pc and I'm usualy
quarrying it around!
I know this is better to send mail but if you need me to chat for any
reason (it would be easier for instance) I'm usually hanging on the
libera.chat irc as tonitch you can pm or tag me on #alsa
Here is the alsa-info.sh :
http://alsa-project.org/db/?f=6ddb669a19086cebdb121c97c25bbdccb98e856d
Thanks a lot for your help!
PS: Ubuntu mate have released their official pocket 3 distribution and
I tried it but the sound didn't worked either, here is the alsa-info
In case this help ?! :
http://alsa-project.org/db/?f=df4c183fd00cec224006ec8caa228705399ad873
2
1
[PATCH v1 1/1] ASoC: madera: Replace kernel.h with the necessary inclusions
by Andy Shevchenko 24 Jan '22
by Andy Shevchenko 24 Jan '22
24 Jan '22
When kernel.h is used in the headers it adds a lot into dependency hell,
especially when there are circular dependencies are involved.
Replace kernel.h inclusion with the list of what is really being used.
Signed-off-by: Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
---
include/sound/madera-pdata.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/sound/madera-pdata.h b/include/sound/madera-pdata.h
index e3060f48f108..58398d80c3de 100644
--- a/include/sound/madera-pdata.h
+++ b/include/sound/madera-pdata.h
@@ -9,7 +9,7 @@
#ifndef MADERA_CODEC_PDATA_H
#define MADERA_CODEC_PDATA_H
-#include <linux/kernel.h>
+#include <linux/types.h>
#define MADERA_MAX_INPUT 6
#define MADERA_MAX_MUXED_CHANNELS 4
--
2.34.1
2
2
On Sun, Jan 23, 2022 at 06:52:01PM +0100, Uwe Kleine-König wrote:
> The value returned by an spi driver's remove function is mostly ignored.
> (Only an error message is printed if the value is non-zero that the
> error is ignored.)
>
> So change the prototype of the remove function to return no value. This
> way driver authors are not tempted to assume that passing an error to
> the upper layer is a good idea. All drivers are adapted accordingly.
> There is no intended change of behaviour, all callbacks were prepared to
> return 0 before.
Acked-by: Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
for whatever I have involved in as a maintainer, reviewer, or
valuable developer :).
Thanks for doing this!
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de>
> ---
> drivers/bus/moxtet.c | 4 +---
> drivers/char/tpm/st33zp24/spi.c | 4 +---
> drivers/char/tpm/tpm_tis_spi_main.c | 3 +--
> drivers/clk/clk-lmk04832.c | 4 +---
> drivers/gpio/gpio-74x164.c | 4 +---
> drivers/gpio/gpio-max3191x.c | 4 +---
> drivers/gpio/gpio-max7301.c | 4 +---
> drivers/gpio/gpio-mc33880.c | 4 +---
> drivers/gpio/gpio-pisosr.c | 4 +---
> drivers/gpu/drm/panel/panel-abt-y030xx067a.c | 4 +---
> drivers/gpu/drm/panel/panel-ilitek-ili9322.c | 4 +---
> drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 3 +--
> drivers/gpu/drm/panel/panel-innolux-ej030na.c | 4 +---
> drivers/gpu/drm/panel/panel-lg-lb035q02.c | 4 +---
> drivers/gpu/drm/panel/panel-lg-lg4573.c | 4 +---
> drivers/gpu/drm/panel/panel-nec-nl8048hl11.c | 4 +---
> drivers/gpu/drm/panel/panel-novatek-nt39016.c | 4 +---
> drivers/gpu/drm/panel/panel-samsung-db7430.c | 3 +--
> drivers/gpu/drm/panel/panel-samsung-ld9040.c | 4 +---
> drivers/gpu/drm/panel/panel-samsung-s6d27a1.c | 3 +--
> drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c | 3 +--
> drivers/gpu/drm/panel/panel-sitronix-st7789v.c | 4 +---
> drivers/gpu/drm/panel/panel-sony-acx565akm.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-td028ttec1.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-td043mtea1.c | 4 +---
> drivers/gpu/drm/panel/panel-tpo-tpg110.c | 3 +--
> drivers/gpu/drm/panel/panel-widechips-ws2401.c | 3 +--
> drivers/gpu/drm/tiny/hx8357d.c | 4 +---
> drivers/gpu/drm/tiny/ili9163.c | 4 +---
> drivers/gpu/drm/tiny/ili9225.c | 4 +---
> drivers/gpu/drm/tiny/ili9341.c | 4 +---
> drivers/gpu/drm/tiny/ili9486.c | 4 +---
> drivers/gpu/drm/tiny/mi0283qt.c | 4 +---
> drivers/gpu/drm/tiny/repaper.c | 4 +---
> drivers/gpu/drm/tiny/st7586.c | 4 +---
> drivers/gpu/drm/tiny/st7735r.c | 4 +---
> drivers/hwmon/adcxx.c | 4 +---
> drivers/hwmon/adt7310.c | 3 +--
> drivers/hwmon/max1111.c | 3 +--
> drivers/hwmon/max31722.c | 4 +---
> drivers/iio/accel/bma400_spi.c | 4 +---
> drivers/iio/accel/bmc150-accel-spi.c | 4 +---
> drivers/iio/accel/bmi088-accel-spi.c | 4 +---
> drivers/iio/accel/kxsd9-spi.c | 4 +---
> drivers/iio/accel/mma7455_spi.c | 4 +---
> drivers/iio/accel/sca3000.c | 4 +---
> drivers/iio/adc/ad7266.c | 4 +---
> drivers/iio/adc/ltc2496.c | 4 +---
> drivers/iio/adc/mcp320x.c | 4 +---
> drivers/iio/adc/mcp3911.c | 4 +---
> drivers/iio/adc/ti-adc12138.c | 4 +---
> drivers/iio/adc/ti-ads7950.c | 4 +---
> drivers/iio/adc/ti-ads8688.c | 4 +---
> drivers/iio/adc/ti-tlc4541.c | 4 +---
> drivers/iio/amplifiers/ad8366.c | 4 +---
> drivers/iio/common/ssp_sensors/ssp_dev.c | 4 +---
> drivers/iio/dac/ad5360.c | 4 +---
> drivers/iio/dac/ad5380.c | 4 +---
> drivers/iio/dac/ad5446.c | 4 +---
> drivers/iio/dac/ad5449.c | 4 +---
> drivers/iio/dac/ad5504.c | 4 +---
> drivers/iio/dac/ad5592r.c | 4 +---
> drivers/iio/dac/ad5624r_spi.c | 4 +---
> drivers/iio/dac/ad5686-spi.c | 4 +---
> drivers/iio/dac/ad5761.c | 4 +---
> drivers/iio/dac/ad5764.c | 4 +---
> drivers/iio/dac/ad5791.c | 4 +---
> drivers/iio/dac/ad8801.c | 4 +---
> drivers/iio/dac/ltc1660.c | 4 +---
> drivers/iio/dac/ltc2632.c | 4 +---
> drivers/iio/dac/mcp4922.c | 4 +---
> drivers/iio/dac/ti-dac082s085.c | 4 +---
> drivers/iio/dac/ti-dac7311.c | 3 +--
> drivers/iio/frequency/adf4350.c | 4 +---
> drivers/iio/gyro/bmg160_spi.c | 4 +---
> drivers/iio/gyro/fxas21002c_spi.c | 4 +---
> drivers/iio/health/afe4403.c | 4 +---
> drivers/iio/magnetometer/bmc150_magn_spi.c | 4 +---
> drivers/iio/magnetometer/hmc5843_spi.c | 4 +---
> drivers/iio/potentiometer/max5487.c | 4 +---
> drivers/iio/pressure/ms5611_spi.c | 4 +---
> drivers/iio/pressure/zpa2326_spi.c | 4 +---
> drivers/input/keyboard/applespi.c | 4 +---
> drivers/input/misc/adxl34x-spi.c | 4 +---
> drivers/input/touchscreen/ads7846.c | 4 +---
> drivers/input/touchscreen/cyttsp4_spi.c | 4 +---
> drivers/input/touchscreen/tsc2005.c | 4 +---
> drivers/leds/leds-cr0014114.c | 4 +---
> drivers/leds/leds-dac124s085.c | 4 +---
> drivers/leds/leds-el15203000.c | 4 +---
> drivers/leds/leds-spi-byte.c | 4 +---
> drivers/media/spi/cxd2880-spi.c | 4 +---
> drivers/media/spi/gs1662.c | 4 +---
> drivers/media/tuners/msi001.c | 3 +--
> drivers/mfd/arizona-spi.c | 4 +---
> drivers/mfd/da9052-spi.c | 3 +--
> drivers/mfd/ezx-pcap.c | 4 +---
> drivers/mfd/madera-spi.c | 4 +---
> drivers/mfd/mc13xxx-spi.c | 3 +--
> drivers/mfd/rsmu_spi.c | 4 +---
> drivers/mfd/stmpe-spi.c | 4 +---
> drivers/mfd/tps65912-spi.c | 4 +---
> drivers/misc/ad525x_dpot-spi.c | 3 +--
> drivers/misc/eeprom/eeprom_93xx46.c | 4 +---
> drivers/misc/lattice-ecp3-config.c | 4 +---
> drivers/misc/lis3lv02d/lis3lv02d_spi.c | 4 +---
> drivers/mmc/host/mmc_spi.c | 3 +--
> drivers/mtd/devices/mchp23k256.c | 4 +---
> drivers/mtd/devices/mchp48l640.c | 4 +---
> drivers/mtd/devices/mtd_dataflash.c | 4 +---
> drivers/mtd/devices/sst25l.c | 4 +---
> drivers/net/can/m_can/tcan4x5x-core.c | 4 +---
> drivers/net/can/spi/hi311x.c | 4 +---
> drivers/net/can/spi/mcp251x.c | 4 +---
> drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 4 +---
> drivers/net/dsa/b53/b53_spi.c | 4 +---
> drivers/net/dsa/microchip/ksz8795_spi.c | 4 +---
> drivers/net/dsa/microchip/ksz9477_spi.c | 4 +---
> drivers/net/dsa/sja1105/sja1105_main.c | 6 ++----
> drivers/net/dsa/vitesse-vsc73xx-spi.c | 6 ++----
> drivers/net/ethernet/asix/ax88796c_main.c | 4 +---
> drivers/net/ethernet/micrel/ks8851_spi.c | 4 +---
> drivers/net/ethernet/microchip/enc28j60.c | 4 +---
> drivers/net/ethernet/microchip/encx24j600.c | 4 +---
> drivers/net/ethernet/qualcomm/qca_spi.c | 4 +---
> drivers/net/ethernet/vertexcom/mse102x.c | 4 +---
> drivers/net/ethernet/wiznet/w5100-spi.c | 4 +---
> drivers/net/ieee802154/adf7242.c | 4 +---
> drivers/net/ieee802154/at86rf230.c | 4 +---
> drivers/net/ieee802154/ca8210.c | 6 ++----
> drivers/net/ieee802154/cc2520.c | 4 +---
> drivers/net/ieee802154/mcr20a.c | 4 +---
> drivers/net/ieee802154/mrf24j40.c | 4 +---
> drivers/net/phy/spi_ks8995.c | 4 +---
> drivers/net/wan/slic_ds26522.c | 3 +--
> drivers/net/wireless/intersil/p54/p54spi.c | 4 +---
> drivers/net/wireless/marvell/libertas/if_spi.c | 4 +---
> drivers/net/wireless/microchip/wilc1000/spi.c | 4 +---
> drivers/net/wireless/st/cw1200/cw1200_spi.c | 4 +---
> drivers/net/wireless/ti/wl1251/spi.c | 4 +---
> drivers/net/wireless/ti/wlcore/spi.c | 4 +---
> drivers/nfc/nfcmrvl/spi.c | 3 +--
> drivers/nfc/st-nci/spi.c | 4 +---
> drivers/nfc/st95hf/core.c | 4 +---
> drivers/nfc/trf7970a.c | 4 +---
> drivers/platform/chrome/cros_ec_spi.c | 4 +---
> drivers/platform/olpc/olpc-xo175-ec.c | 4 +---
> drivers/rtc/rtc-ds1302.c | 3 +--
> drivers/rtc/rtc-ds1305.c | 4 +---
> drivers/rtc/rtc-ds1343.c | 4 +---
> drivers/spi/spi-mem.c | 6 ++----
> drivers/spi/spi-slave-system-control.c | 3 +--
> drivers/spi/spi-slave-time.c | 3 +--
> drivers/spi/spi-tle62x0.c | 3 +--
> drivers/spi/spi.c | 11 ++---------
> drivers/spi/spidev.c | 4 +---
> drivers/staging/fbtft/fbtft.h | 3 +--
> drivers/staging/pi433/pi433_if.c | 4 +---
> drivers/staging/wfx/bus_spi.c | 3 +--
> drivers/tty/serial/max3100.c | 5 ++---
> drivers/tty/serial/max310x.c | 3 +--
> drivers/tty/serial/sc16is7xx.c | 4 +---
> drivers/usb/gadget/udc/max3420_udc.c | 4 +---
> drivers/usb/host/max3421-hcd.c | 3 +--
> drivers/video/backlight/ams369fg06.c | 3 +--
> drivers/video/backlight/corgi_lcd.c | 3 +--
> drivers/video/backlight/ili922x.c | 3 +--
> drivers/video/backlight/l4f00242t03.c | 3 +--
> drivers/video/backlight/lms501kf03.c | 3 +--
> drivers/video/backlight/ltv350qv.c | 3 +--
> drivers/video/backlight/tdo24m.c | 3 +--
> drivers/video/backlight/tosa_lcd.c | 4 +---
> drivers/video/backlight/vgg2432a4.c | 4 +---
> drivers/video/fbdev/omap/lcd_mipid.c | 4 +---
> .../omap2/omapfb/displays/panel-lgphilips-lb035q02.c | 4 +---
> .../omap2/omapfb/displays/panel-nec-nl8048hl11.c | 4 +---
> .../omap2/omapfb/displays/panel-sony-acx565akm.c | 4 +---
> .../omap2/omapfb/displays/panel-tpo-td028ttec1.c | 4 +---
> .../omap2/omapfb/displays/panel-tpo-td043mtea1.c | 4 +---
> include/linux/spi/spi.h | 2 +-
> sound/pci/hda/cs35l41_hda_spi.c | 4 +---
> sound/soc/codecs/adau1761-spi.c | 3 +--
> sound/soc/codecs/adau1781-spi.c | 3 +--
> sound/soc/codecs/cs35l41-spi.c | 4 +---
> sound/soc/codecs/pcm3168a-spi.c | 4 +---
> sound/soc/codecs/pcm512x-spi.c | 3 +--
> sound/soc/codecs/tlv320aic32x4-spi.c | 4 +---
> sound/soc/codecs/tlv320aic3x-spi.c | 4 +---
> sound/soc/codecs/wm0010.c | 4 +---
> sound/soc/codecs/wm8804-spi.c | 3 +--
> sound/spi/at73c213.c | 4 +---
> 191 files changed, 197 insertions(+), 545 deletions(-)
>
> diff --git a/drivers/bus/moxtet.c b/drivers/bus/moxtet.c
> index fd87a59837fa..5eb0fe73ddc4 100644
> --- a/drivers/bus/moxtet.c
> +++ b/drivers/bus/moxtet.c
> @@ -815,7 +815,7 @@ static int moxtet_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int moxtet_remove(struct spi_device *spi)
> +static void moxtet_remove(struct spi_device *spi)
> {
> struct moxtet *moxtet = spi_get_drvdata(spi);
>
> @@ -828,8 +828,6 @@ static int moxtet_remove(struct spi_device *spi)
> device_for_each_child(moxtet->dev, NULL, __unregister);
>
> mutex_destroy(&moxtet->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id moxtet_dt_ids[] = {
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index ccd9e42b8eab..22d184884694 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -381,13 +381,11 @@ static int st33zp24_spi_probe(struct spi_device *dev)
> * @param: client, the spi_device description (TPM SPI description).
> * @return: 0 in case of success.
> */
> -static int st33zp24_spi_remove(struct spi_device *dev)
> +static void st33zp24_spi_remove(struct spi_device *dev)
> {
> struct tpm_chip *chip = spi_get_drvdata(dev);
>
> st33zp24_remove(chip);
> -
> - return 0;
> }
>
> static const struct spi_device_id st33zp24_spi_id[] = {
> diff --git a/drivers/char/tpm/tpm_tis_spi_main.c b/drivers/char/tpm/tpm_tis_spi_main.c
> index aaa59a00eeae..184396b3af50 100644
> --- a/drivers/char/tpm/tpm_tis_spi_main.c
> +++ b/drivers/char/tpm/tpm_tis_spi_main.c
> @@ -254,13 +254,12 @@ static int tpm_tis_spi_driver_probe(struct spi_device *spi)
>
> static SIMPLE_DEV_PM_OPS(tpm_tis_pm, tpm_pm_suspend, tpm_tis_spi_resume);
>
> -static int tpm_tis_spi_remove(struct spi_device *dev)
> +static void tpm_tis_spi_remove(struct spi_device *dev)
> {
> struct tpm_chip *chip = spi_get_drvdata(dev);
>
> tpm_chip_unregister(chip);
> tpm_tis_remove(chip);
> - return 0;
> }
>
> static const struct spi_device_id tpm_tis_spi_id[] = {
> diff --git a/drivers/clk/clk-lmk04832.c b/drivers/clk/clk-lmk04832.c
> index 8f02c0b88000..f416f8bc2898 100644
> --- a/drivers/clk/clk-lmk04832.c
> +++ b/drivers/clk/clk-lmk04832.c
> @@ -1544,14 +1544,12 @@ static int lmk04832_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int lmk04832_remove(struct spi_device *spi)
> +static void lmk04832_remove(struct spi_device *spi)
> {
> struct lmk04832 *lmk = spi_get_drvdata(spi);
>
> clk_disable_unprepare(lmk->oscin);
> of_clk_del_provider(spi->dev.of_node);
> -
> - return 0;
> }
> static const struct spi_device_id lmk04832_id[] = {
> { "lmk04832", LMK04832 },
> diff --git a/drivers/gpio/gpio-74x164.c b/drivers/gpio/gpio-74x164.c
> index 4a55cdf089d6..e00c33310517 100644
> --- a/drivers/gpio/gpio-74x164.c
> +++ b/drivers/gpio/gpio-74x164.c
> @@ -163,15 +163,13 @@ static int gen_74x164_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int gen_74x164_remove(struct spi_device *spi)
> +static void gen_74x164_remove(struct spi_device *spi)
> {
> struct gen_74x164_chip *chip = spi_get_drvdata(spi);
>
> gpiod_set_value_cansleep(chip->gpiod_oe, 0);
> gpiochip_remove(&chip->gpio_chip);
> mutex_destroy(&chip->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id gen_74x164_spi_ids[] = {
> diff --git a/drivers/gpio/gpio-max3191x.c b/drivers/gpio/gpio-max3191x.c
> index 51cd6f98d1c7..161c4751c5f7 100644
> --- a/drivers/gpio/gpio-max3191x.c
> +++ b/drivers/gpio/gpio-max3191x.c
> @@ -443,14 +443,12 @@ static int max3191x_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max3191x_remove(struct spi_device *spi)
> +static void max3191x_remove(struct spi_device *spi)
> {
> struct max3191x_chip *max3191x = spi_get_drvdata(spi);
>
> gpiochip_remove(&max3191x->gpio);
> mutex_destroy(&max3191x->lock);
> -
> - return 0;
> }
>
> static int __init max3191x_register_driver(struct spi_driver *sdrv)
> diff --git a/drivers/gpio/gpio-max7301.c b/drivers/gpio/gpio-max7301.c
> index 5862d73bf325..11813f41d460 100644
> --- a/drivers/gpio/gpio-max7301.c
> +++ b/drivers/gpio/gpio-max7301.c
> @@ -64,11 +64,9 @@ static int max7301_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int max7301_remove(struct spi_device *spi)
> +static void max7301_remove(struct spi_device *spi)
> {
> __max730x_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id max7301_id[] = {
> diff --git a/drivers/gpio/gpio-mc33880.c b/drivers/gpio/gpio-mc33880.c
> index 31d2be1bebc8..cd9b16dbe1a9 100644
> --- a/drivers/gpio/gpio-mc33880.c
> +++ b/drivers/gpio/gpio-mc33880.c
> @@ -134,7 +134,7 @@ static int mc33880_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mc33880_remove(struct spi_device *spi)
> +static void mc33880_remove(struct spi_device *spi)
> {
> struct mc33880 *mc;
>
> @@ -142,8 +142,6 @@ static int mc33880_remove(struct spi_device *spi)
>
> gpiochip_remove(&mc->chip);
> mutex_destroy(&mc->lock);
> -
> - return 0;
> }
>
> static struct spi_driver mc33880_driver = {
> diff --git a/drivers/gpio/gpio-pisosr.c b/drivers/gpio/gpio-pisosr.c
> index 8e04054cf07e..81a47ae09ff8 100644
> --- a/drivers/gpio/gpio-pisosr.c
> +++ b/drivers/gpio/gpio-pisosr.c
> @@ -163,15 +163,13 @@ static int pisosr_gpio_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int pisosr_gpio_remove(struct spi_device *spi)
> +static void pisosr_gpio_remove(struct spi_device *spi)
> {
> struct pisosr_gpio *gpio = spi_get_drvdata(spi);
>
> gpiochip_remove(&gpio->chip);
>
> mutex_destroy(&gpio->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id pisosr_gpio_id_table[] = {
> diff --git a/drivers/gpu/drm/panel/panel-abt-y030xx067a.c b/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> index f043b484055b..ed626fdc08e8 100644
> --- a/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> +++ b/drivers/gpu/drm/panel/panel-abt-y030xx067a.c
> @@ -293,15 +293,13 @@ static int y030xx067a_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int y030xx067a_remove(struct spi_device *spi)
> +static void y030xx067a_remove(struct spi_device *spi)
> {
> struct y030xx067a *priv = spi_get_drvdata(spi);
>
> drm_panel_remove(&priv->panel);
> drm_panel_disable(&priv->panel);
> drm_panel_unprepare(&priv->panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode y030xx067a_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> index 8e84df9a0033..3dfafa585127 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
> @@ -896,14 +896,12 @@ static int ili9322_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9322_remove(struct spi_device *spi)
> +static void ili9322_remove(struct spi_device *spi)
> {
> struct ili9322 *ili = spi_get_drvdata(spi);
>
> ili9322_power_off(ili);
> drm_panel_remove(&ili->panel);
> -
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> index 2c3378a259b1..a07ef26234e5 100644
> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
> @@ -728,7 +728,7 @@ static int ili9341_probe(struct spi_device *spi)
> return -1;
> }
>
> -static int ili9341_remove(struct spi_device *spi)
> +static void ili9341_remove(struct spi_device *spi)
> {
> const struct spi_device_id *id = spi_get_device_id(spi);
> struct ili9341 *ili = spi_get_drvdata(spi);
> @@ -741,7 +741,6 @@ static int ili9341_remove(struct spi_device *spi)
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> }
> - return 0;
> }
>
> static void ili9341_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/panel/panel-innolux-ej030na.c b/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> index c558de3f99be..e3b1daa0cb72 100644
> --- a/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> +++ b/drivers/gpu/drm/panel/panel-innolux-ej030na.c
> @@ -219,15 +219,13 @@ static int ej030na_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ej030na_remove(struct spi_device *spi)
> +static void ej030na_remove(struct spi_device *spi)
> {
> struct ej030na *priv = spi_get_drvdata(spi);
>
> drm_panel_remove(&priv->panel);
> drm_panel_disable(&priv->panel);
> drm_panel_unprepare(&priv->panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode ej030na_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> index f3183b68704f..9d0d4faa3f58 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
> @@ -203,14 +203,12 @@ static int lb035q02_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lb035q02_remove(struct spi_device *spi)
> +static void lb035q02_remove(struct spi_device *spi)
> {
> struct lb035q02_device *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id lb035q02_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> index 8e5160af1de5..cf246d15b7b6 100644
> --- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
> +++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
> @@ -266,14 +266,12 @@ static int lg4573_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lg4573_remove(struct spi_device *spi)
> +static void lg4573_remove(struct spi_device *spi)
> {
> struct lg4573 *ctx = spi_get_drvdata(spi);
>
> lg4573_display_off(ctx);
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id lg4573_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> index 6e5ab1debc8b..81c5c541a351 100644
> --- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> +++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
> @@ -212,15 +212,13 @@ static int nl8048_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nl8048_remove(struct spi_device *spi)
> +static void nl8048_remove(struct spi_device *spi)
> {
> struct nl8048_panel *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id nl8048_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> index d036853db865..f58cfb10b58a 100644
> --- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> +++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
> @@ -292,7 +292,7 @@ static int nt39016_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nt39016_remove(struct spi_device *spi)
> +static void nt39016_remove(struct spi_device *spi)
> {
> struct nt39016 *panel = spi_get_drvdata(spi);
>
> @@ -300,8 +300,6 @@ static int nt39016_remove(struct spi_device *spi)
>
> nt39016_disable(&panel->drm_panel);
> nt39016_unprepare(&panel->drm_panel);
> -
> - return 0;
> }
>
> static const struct drm_display_mode kd035g6_display_modes[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-db7430.c b/drivers/gpu/drm/panel/panel-samsung-db7430.c
> index ead479719f00..04640c5256a8 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-db7430.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-db7430.c
> @@ -314,12 +314,11 @@ static int db7430_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int db7430_remove(struct spi_device *spi)
> +static void db7430_remove(struct spi_device *spi)
> {
> struct db7430 *db = spi_get_drvdata(spi);
>
> drm_panel_remove(&db->panel);
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/panel/panel-samsung-ld9040.c b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> index c4b388850a13..01eb211f32f7 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-ld9040.c
> @@ -358,14 +358,12 @@ static int ld9040_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ld9040_remove(struct spi_device *spi)
> +static void ld9040_remove(struct spi_device *spi)
> {
> struct ld9040 *ctx = spi_get_drvdata(spi);
>
> ld9040_power_off(ctx);
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id ld9040_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c b/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> index 1696ceb36aa0..2adb223a895c 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6d27a1.c
> @@ -291,12 +291,11 @@ static int s6d27a1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int s6d27a1_remove(struct spi_device *spi)
> +static void s6d27a1_remove(struct spi_device *spi)
> {
> struct s6d27a1 *ctx = spi_get_drvdata(spi);
>
> drm_panel_remove(&ctx->panel);
> - return 0;
> }
>
> static const struct of_device_id s6d27a1_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> index c178d962b0d5..d99afcc672ca 100644
> --- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0-spi.c
> @@ -62,10 +62,9 @@ static int s6e63m0_spi_probe(struct spi_device *spi)
> s6e63m0_spi_dcs_write, false);
> }
>
> -static int s6e63m0_spi_remove(struct spi_device *spi)
> +static void s6e63m0_spi_remove(struct spi_device *spi)
> {
> s6e63m0_remove(&spi->dev);
> - return 0;
> }
>
> static const struct of_device_id s6e63m0_spi_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> index 61e565524542..bbc4569cbcdc 100644
> --- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> +++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
> @@ -387,13 +387,11 @@ static int st7789v_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7789v_remove(struct spi_device *spi)
> +static void st7789v_remove(struct spi_device *spi)
> {
> struct st7789v *ctx = spi_get_drvdata(spi);
>
> drm_panel_remove(&ctx->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id st7789v_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> index ba0b3ead150f..0d7541a33f87 100644
> --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
> @@ -655,7 +655,7 @@ static int acx565akm_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int acx565akm_remove(struct spi_device *spi)
> +static void acx565akm_remove(struct spi_device *spi)
> {
> struct acx565akm_panel *lcd = spi_get_drvdata(spi);
>
> @@ -666,8 +666,6 @@ static int acx565akm_remove(struct spi_device *spi)
>
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id acx565akm_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> index ba0c00d1a001..4dbf8b88f264 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
> @@ -350,15 +350,13 @@ static int td028ttec1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int td028ttec1_remove(struct spi_device *spi)
> +static void td028ttec1_remove(struct spi_device *spi)
> {
> struct td028ttec1_panel *lcd = spi_get_drvdata(spi);
>
> drm_panel_remove(&lcd->panel);
> drm_panel_disable(&lcd->panel);
> drm_panel_unprepare(&lcd->panel);
> -
> - return 0;
> }
>
> static const struct of_device_id td028ttec1_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> index 1866cdb8f9c1..cf4609bb9b1d 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
> @@ -463,7 +463,7 @@ static int td043mtea1_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int td043mtea1_remove(struct spi_device *spi)
> +static void td043mtea1_remove(struct spi_device *spi)
> {
> struct td043mtea1_panel *lcd = spi_get_drvdata(spi);
>
> @@ -472,8 +472,6 @@ static int td043mtea1_remove(struct spi_device *spi)
> drm_panel_unprepare(&lcd->panel);
>
> sysfs_remove_group(&spi->dev.kobj, &td043mtea1_attr_group);
> -
> - return 0;
> }
>
> static const struct of_device_id td043mtea1_of_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> index e3791dad6830..0b1f5a11a055 100644
> --- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> +++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
> @@ -450,12 +450,11 @@ static int tpg110_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int tpg110_remove(struct spi_device *spi)
> +static void tpg110_remove(struct spi_device *spi)
> {
> struct tpg110 *tpg = spi_get_drvdata(spi);
>
> drm_panel_remove(&tpg->panel);
> - return 0;
> }
>
> static const struct of_device_id tpg110_match[] = {
> diff --git a/drivers/gpu/drm/panel/panel-widechips-ws2401.c b/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> index 8bc976f54b80..236f3cb2b594 100644
> --- a/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> +++ b/drivers/gpu/drm/panel/panel-widechips-ws2401.c
> @@ -407,12 +407,11 @@ static int ws2401_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ws2401_remove(struct spi_device *spi)
> +static void ws2401_remove(struct spi_device *spi)
> {
> struct ws2401 *ws = spi_get_drvdata(spi);
>
> drm_panel_remove(&ws->panel);
> - return 0;
> }
>
> /*
> diff --git a/drivers/gpu/drm/tiny/hx8357d.c b/drivers/gpu/drm/tiny/hx8357d.c
> index 9b33c05732aa..ebb025543f8d 100644
> --- a/drivers/gpu/drm/tiny/hx8357d.c
> +++ b/drivers/gpu/drm/tiny/hx8357d.c
> @@ -263,14 +263,12 @@ static int hx8357d_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int hx8357d_remove(struct spi_device *spi)
> +static void hx8357d_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void hx8357d_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9163.c b/drivers/gpu/drm/tiny/ili9163.c
> index bcc181351236..fc8ed245b0bc 100644
> --- a/drivers/gpu/drm/tiny/ili9163.c
> +++ b/drivers/gpu/drm/tiny/ili9163.c
> @@ -193,14 +193,12 @@ static int ili9163_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9163_remove(struct spi_device *spi)
> +static void ili9163_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9163_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9225.c b/drivers/gpu/drm/tiny/ili9225.c
> index 976d3209f164..cc92eb9f2a07 100644
> --- a/drivers/gpu/drm/tiny/ili9225.c
> +++ b/drivers/gpu/drm/tiny/ili9225.c
> @@ -411,14 +411,12 @@ static int ili9225_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9225_remove(struct spi_device *spi)
> +static void ili9225_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9225_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9341.c b/drivers/gpu/drm/tiny/ili9341.c
> index 37e0c33399c8..5b8cc770ee7b 100644
> --- a/drivers/gpu/drm/tiny/ili9341.c
> +++ b/drivers/gpu/drm/tiny/ili9341.c
> @@ -225,14 +225,12 @@ static int ili9341_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9341_remove(struct spi_device *spi)
> +static void ili9341_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9341_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/ili9486.c b/drivers/gpu/drm/tiny/ili9486.c
> index e9a63f4b2993..6d655e18e0aa 100644
> --- a/drivers/gpu/drm/tiny/ili9486.c
> +++ b/drivers/gpu/drm/tiny/ili9486.c
> @@ -243,14 +243,12 @@ static int ili9486_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili9486_remove(struct spi_device *spi)
> +static void ili9486_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void ili9486_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/mi0283qt.c b/drivers/gpu/drm/tiny/mi0283qt.c
> index 023de49e7a8e..5e060f6910bb 100644
> --- a/drivers/gpu/drm/tiny/mi0283qt.c
> +++ b/drivers/gpu/drm/tiny/mi0283qt.c
> @@ -233,14 +233,12 @@ static int mi0283qt_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mi0283qt_remove(struct spi_device *spi)
> +static void mi0283qt_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void mi0283qt_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/repaper.c b/drivers/gpu/drm/tiny/repaper.c
> index 97a775c48cea..beeeb170d0b1 100644
> --- a/drivers/gpu/drm/tiny/repaper.c
> +++ b/drivers/gpu/drm/tiny/repaper.c
> @@ -1140,14 +1140,12 @@ static int repaper_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int repaper_remove(struct spi_device *spi)
> +static void repaper_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void repaper_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/st7586.c b/drivers/gpu/drm/tiny/st7586.c
> index 51b9b9fb3ead..3f38faa1cd8c 100644
> --- a/drivers/gpu/drm/tiny/st7586.c
> +++ b/drivers/gpu/drm/tiny/st7586.c
> @@ -360,14 +360,12 @@ static int st7586_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7586_remove(struct spi_device *spi)
> +static void st7586_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void st7586_shutdown(struct spi_device *spi)
> diff --git a/drivers/gpu/drm/tiny/st7735r.c b/drivers/gpu/drm/tiny/st7735r.c
> index fc40dd10efa8..29d618093e94 100644
> --- a/drivers/gpu/drm/tiny/st7735r.c
> +++ b/drivers/gpu/drm/tiny/st7735r.c
> @@ -247,14 +247,12 @@ static int st7735r_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int st7735r_remove(struct spi_device *spi)
> +static void st7735r_remove(struct spi_device *spi)
> {
> struct drm_device *drm = spi_get_drvdata(spi);
>
> drm_dev_unplug(drm);
> drm_atomic_helper_shutdown(drm);
> -
> - return 0;
> }
>
> static void st7735r_shutdown(struct spi_device *spi)
> diff --git a/drivers/hwmon/adcxx.c b/drivers/hwmon/adcxx.c
> index e5bc5ce09f4e..de37bce24fa6 100644
> --- a/drivers/hwmon/adcxx.c
> +++ b/drivers/hwmon/adcxx.c
> @@ -194,7 +194,7 @@ static int adcxx_probe(struct spi_device *spi)
> return status;
> }
>
> -static int adcxx_remove(struct spi_device *spi)
> +static void adcxx_remove(struct spi_device *spi)
> {
> struct adcxx *adc = spi_get_drvdata(spi);
> int i;
> @@ -205,8 +205,6 @@ static int adcxx_remove(struct spi_device *spi)
> device_remove_file(&spi->dev, &ad_input[i].dev_attr);
>
> mutex_unlock(&adc->lock);
> -
> - return 0;
> }
>
> static const struct spi_device_id adcxx_ids[] = {
> diff --git a/drivers/hwmon/adt7310.c b/drivers/hwmon/adt7310.c
> index c40cac16af68..832d9ec64934 100644
> --- a/drivers/hwmon/adt7310.c
> +++ b/drivers/hwmon/adt7310.c
> @@ -88,10 +88,9 @@ static int adt7310_spi_probe(struct spi_device *spi)
> &adt7310_spi_ops);
> }
>
> -static int adt7310_spi_remove(struct spi_device *spi)
> +static void adt7310_spi_remove(struct spi_device *spi)
> {
> adt7x10_remove(&spi->dev, spi->irq);
> - return 0;
> }
>
> static const struct spi_device_id adt7310_id[] = {
> diff --git a/drivers/hwmon/max1111.c b/drivers/hwmon/max1111.c
> index 5fcfd57df61e..4c5487aeb3cf 100644
> --- a/drivers/hwmon/max1111.c
> +++ b/drivers/hwmon/max1111.c
> @@ -254,7 +254,7 @@ static int max1111_probe(struct spi_device *spi)
> return err;
> }
>
> -static int max1111_remove(struct spi_device *spi)
> +static void max1111_remove(struct spi_device *spi)
> {
> struct max1111_data *data = spi_get_drvdata(spi);
>
> @@ -265,7 +265,6 @@ static int max1111_remove(struct spi_device *spi)
> sysfs_remove_group(&spi->dev.kobj, &max1110_attr_group);
> sysfs_remove_group(&spi->dev.kobj, &max1111_attr_group);
> mutex_destroy(&data->drvdata_lock);
> - return 0;
> }
>
> static const struct spi_device_id max1111_ids[] = {
> diff --git a/drivers/hwmon/max31722.c b/drivers/hwmon/max31722.c
> index 4cf4fe6809a3..93e048ee4955 100644
> --- a/drivers/hwmon/max31722.c
> +++ b/drivers/hwmon/max31722.c
> @@ -100,7 +100,7 @@ static int max31722_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max31722_remove(struct spi_device *spi)
> +static void max31722_remove(struct spi_device *spi)
> {
> struct max31722_data *data = spi_get_drvdata(spi);
> int ret;
> @@ -111,8 +111,6 @@ static int max31722_remove(struct spi_device *spi)
> if (ret)
> /* There is nothing we can do about this ... */
> dev_warn(&spi->dev, "Failed to put device in stand-by mode\n");
> -
> - return 0;
> }
>
> static int __maybe_unused max31722_suspend(struct device *dev)
> diff --git a/drivers/iio/accel/bma400_spi.c b/drivers/iio/accel/bma400_spi.c
> index 9f622e37477b..9040a717b247 100644
> --- a/drivers/iio/accel/bma400_spi.c
> +++ b/drivers/iio/accel/bma400_spi.c
> @@ -87,11 +87,9 @@ static int bma400_spi_probe(struct spi_device *spi)
> return bma400_probe(&spi->dev, regmap, id->name);
> }
>
> -static int bma400_spi_remove(struct spi_device *spi)
> +static void bma400_spi_remove(struct spi_device *spi)
> {
> bma400_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bma400_spi_ids[] = {
> diff --git a/drivers/iio/accel/bmc150-accel-spi.c b/drivers/iio/accel/bmc150-accel-spi.c
> index 11559567cb39..80007cc2d044 100644
> --- a/drivers/iio/accel/bmc150-accel-spi.c
> +++ b/drivers/iio/accel/bmc150-accel-spi.c
> @@ -35,11 +35,9 @@ static int bmc150_accel_probe(struct spi_device *spi)
> true);
> }
>
> -static int bmc150_accel_remove(struct spi_device *spi)
> +static void bmc150_accel_remove(struct spi_device *spi)
> {
> bmc150_accel_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct acpi_device_id bmc150_accel_acpi_match[] = {
> diff --git a/drivers/iio/accel/bmi088-accel-spi.c b/drivers/iio/accel/bmi088-accel-spi.c
> index 758ad2f12896..06d99d9949f3 100644
> --- a/drivers/iio/accel/bmi088-accel-spi.c
> +++ b/drivers/iio/accel/bmi088-accel-spi.c
> @@ -56,11 +56,9 @@ static int bmi088_accel_probe(struct spi_device *spi)
> true);
> }
>
> -static int bmi088_accel_remove(struct spi_device *spi)
> +static void bmi088_accel_remove(struct spi_device *spi)
> {
> bmi088_accel_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmi088_accel_id[] = {
> diff --git a/drivers/iio/accel/kxsd9-spi.c b/drivers/iio/accel/kxsd9-spi.c
> index 441e6b764281..57c451cfb9e5 100644
> --- a/drivers/iio/accel/kxsd9-spi.c
> +++ b/drivers/iio/accel/kxsd9-spi.c
> @@ -32,11 +32,9 @@ static int kxsd9_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->name);
> }
>
> -static int kxsd9_spi_remove(struct spi_device *spi)
> +static void kxsd9_spi_remove(struct spi_device *spi)
> {
> kxsd9_common_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id kxsd9_spi_id[] = {
> diff --git a/drivers/iio/accel/mma7455_spi.c b/drivers/iio/accel/mma7455_spi.c
> index ecf690692dcc..b746031551a3 100644
> --- a/drivers/iio/accel/mma7455_spi.c
> +++ b/drivers/iio/accel/mma7455_spi.c
> @@ -22,11 +22,9 @@ static int mma7455_spi_probe(struct spi_device *spi)
> return mma7455_core_probe(&spi->dev, regmap, id->name);
> }
>
> -static int mma7455_spi_remove(struct spi_device *spi)
> +static void mma7455_spi_remove(struct spi_device *spi)
> {
> mma7455_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id mma7455_spi_ids[] = {
> diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
> index 43ecacbdc95a..83c81072511e 100644
> --- a/drivers/iio/accel/sca3000.c
> +++ b/drivers/iio/accel/sca3000.c
> @@ -1524,7 +1524,7 @@ static int sca3000_stop_all_interrupts(struct sca3000_state *st)
> return ret;
> }
>
> -static int sca3000_remove(struct spi_device *spi)
> +static void sca3000_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct sca3000_state *st = iio_priv(indio_dev);
> @@ -1535,8 +1535,6 @@ static int sca3000_remove(struct spi_device *spi)
> sca3000_stop_all_interrupts(st);
> if (spi->irq)
> free_irq(spi->irq, indio_dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id sca3000_id[] = {
> diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c
> index 1d345d66742d..c17d9b5fbaf6 100644
> --- a/drivers/iio/adc/ad7266.c
> +++ b/drivers/iio/adc/ad7266.c
> @@ -479,7 +479,7 @@ static int ad7266_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad7266_remove(struct spi_device *spi)
> +static void ad7266_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad7266_state *st = iio_priv(indio_dev);
> @@ -488,8 +488,6 @@ static int ad7266_remove(struct spi_device *spi)
> iio_triggered_buffer_cleanup(indio_dev);
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad7266_id[] = {
> diff --git a/drivers/iio/adc/ltc2496.c b/drivers/iio/adc/ltc2496.c
> index dd956a7c216e..5a55f79f2574 100644
> --- a/drivers/iio/adc/ltc2496.c
> +++ b/drivers/iio/adc/ltc2496.c
> @@ -78,13 +78,11 @@ static int ltc2496_probe(struct spi_device *spi)
> return ltc2497core_probe(dev, indio_dev);
> }
>
> -static int ltc2496_remove(struct spi_device *spi)
> +static void ltc2496_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
>
> ltc2497core_remove(indio_dev);
> -
> - return 0;
> }
>
> static const struct of_device_id ltc2496_of_match[] = {
> diff --git a/drivers/iio/adc/mcp320x.c b/drivers/iio/adc/mcp320x.c
> index 8d1cff28cae0..b4c69acb33e3 100644
> --- a/drivers/iio/adc/mcp320x.c
> +++ b/drivers/iio/adc/mcp320x.c
> @@ -459,15 +459,13 @@ static int mcp320x_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp320x_remove(struct spi_device *spi)
> +static void mcp320x_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp320x *adc = iio_priv(indio_dev);
>
> iio_device_unregister(indio_dev);
> regulator_disable(adc->reg);
> -
> - return 0;
> }
>
> static const struct of_device_id mcp320x_dt_ids[] = {
> diff --git a/drivers/iio/adc/mcp3911.c b/drivers/iio/adc/mcp3911.c
> index 13535f148c4c..1cb4590fe412 100644
> --- a/drivers/iio/adc/mcp3911.c
> +++ b/drivers/iio/adc/mcp3911.c
> @@ -321,7 +321,7 @@ static int mcp3911_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp3911_remove(struct spi_device *spi)
> +static void mcp3911_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp3911 *adc = iio_priv(indio_dev);
> @@ -331,8 +331,6 @@ static int mcp3911_remove(struct spi_device *spi)
> clk_disable_unprepare(adc->clki);
> if (adc->vref)
> regulator_disable(adc->vref);
> -
> - return 0;
> }
>
> static const struct of_device_id mcp3911_dt_ids[] = {
> diff --git a/drivers/iio/adc/ti-adc12138.c b/drivers/iio/adc/ti-adc12138.c
> index 6eb62b564dae..59d75d09604f 100644
> --- a/drivers/iio/adc/ti-adc12138.c
> +++ b/drivers/iio/adc/ti-adc12138.c
> @@ -503,7 +503,7 @@ static int adc12138_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adc12138_remove(struct spi_device *spi)
> +static void adc12138_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct adc12138 *adc = iio_priv(indio_dev);
> @@ -514,8 +514,6 @@ static int adc12138_remove(struct spi_device *spi)
> regulator_disable(adc->vref_n);
> regulator_disable(adc->vref_p);
> clk_disable_unprepare(adc->cclk);
> -
> - return 0;
> }
>
> static const struct of_device_id adc12138_dt_ids[] = {
> diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c
> index a7efa3eada2c..e3658b969c5b 100644
> --- a/drivers/iio/adc/ti-ads7950.c
> +++ b/drivers/iio/adc/ti-ads7950.c
> @@ -662,7 +662,7 @@ static int ti_ads7950_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_ads7950_remove(struct spi_device *spi)
> +static void ti_ads7950_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_ads7950_state *st = iio_priv(indio_dev);
> @@ -672,8 +672,6 @@ static int ti_ads7950_remove(struct spi_device *spi)
> iio_triggered_buffer_cleanup(indio_dev);
> regulator_disable(st->reg);
> mutex_destroy(&st->slock);
> -
> - return 0;
> }
>
> static const struct spi_device_id ti_ads7950_id[] = {
> diff --git a/drivers/iio/adc/ti-ads8688.c b/drivers/iio/adc/ti-ads8688.c
> index 2e24717d7f55..22c2583eedd0 100644
> --- a/drivers/iio/adc/ti-ads8688.c
> +++ b/drivers/iio/adc/ti-ads8688.c
> @@ -479,7 +479,7 @@ static int ads8688_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ads8688_remove(struct spi_device *spi)
> +static void ads8688_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ads8688_state *st = iio_priv(indio_dev);
> @@ -489,8 +489,6 @@ static int ads8688_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ads8688_id[] = {
> diff --git a/drivers/iio/adc/ti-tlc4541.c b/drivers/iio/adc/ti-tlc4541.c
> index 403b787f9f7e..2406eda9dfc6 100644
> --- a/drivers/iio/adc/ti-tlc4541.c
> +++ b/drivers/iio/adc/ti-tlc4541.c
> @@ -224,7 +224,7 @@ static int tlc4541_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tlc4541_remove(struct spi_device *spi)
> +static void tlc4541_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct tlc4541_state *st = iio_priv(indio_dev);
> @@ -232,8 +232,6 @@ static int tlc4541_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> iio_triggered_buffer_cleanup(indio_dev);
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct of_device_id tlc4541_dt_ids[] = {
> diff --git a/drivers/iio/amplifiers/ad8366.c b/drivers/iio/amplifiers/ad8366.c
> index cfcf18a0bce8..1134ae12e531 100644
> --- a/drivers/iio/amplifiers/ad8366.c
> +++ b/drivers/iio/amplifiers/ad8366.c
> @@ -298,7 +298,7 @@ static int ad8366_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad8366_remove(struct spi_device *spi)
> +static void ad8366_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad8366_state *st = iio_priv(indio_dev);
> @@ -308,8 +308,6 @@ static int ad8366_remove(struct spi_device *spi)
>
> if (!IS_ERR(reg))
> regulator_disable(reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad8366_id[] = {
> diff --git a/drivers/iio/common/ssp_sensors/ssp_dev.c b/drivers/iio/common/ssp_sensors/ssp_dev.c
> index 1aee87100038..eafaf4529df5 100644
> --- a/drivers/iio/common/ssp_sensors/ssp_dev.c
> +++ b/drivers/iio/common/ssp_sensors/ssp_dev.c
> @@ -586,7 +586,7 @@ static int ssp_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ssp_remove(struct spi_device *spi)
> +static void ssp_remove(struct spi_device *spi)
> {
> struct ssp_data *data = spi_get_drvdata(spi);
>
> @@ -608,8 +608,6 @@ static int ssp_remove(struct spi_device *spi)
> mutex_destroy(&data->pending_lock);
>
> mfd_remove_devices(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/iio/dac/ad5360.c b/drivers/iio/dac/ad5360.c
> index 2d3b14c407d8..ecbc6a51d60f 100644
> --- a/drivers/iio/dac/ad5360.c
> +++ b/drivers/iio/dac/ad5360.c
> @@ -521,7 +521,7 @@ static int ad5360_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5360_remove(struct spi_device *spi)
> +static void ad5360_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5360_state *st = iio_priv(indio_dev);
> @@ -531,8 +531,6 @@ static int ad5360_remove(struct spi_device *spi)
> kfree(indio_dev->channels);
>
> regulator_bulk_disable(st->chip_info->num_vrefs, st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5360_ids[] = {
> diff --git a/drivers/iio/dac/ad5380.c b/drivers/iio/dac/ad5380.c
> index e38860a6a9f3..82e1d9bd773e 100644
> --- a/drivers/iio/dac/ad5380.c
> +++ b/drivers/iio/dac/ad5380.c
> @@ -488,11 +488,9 @@ static int ad5380_spi_probe(struct spi_device *spi)
> return ad5380_probe(&spi->dev, regmap, id->driver_data, id->name);
> }
>
> -static int ad5380_spi_remove(struct spi_device *spi)
> +static void ad5380_spi_remove(struct spi_device *spi)
> {
> ad5380_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5380_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5446.c b/drivers/iio/dac/ad5446.c
> index 1c9b54c012a7..14cfabacbea5 100644
> --- a/drivers/iio/dac/ad5446.c
> +++ b/drivers/iio/dac/ad5446.c
> @@ -491,11 +491,9 @@ static int ad5446_spi_probe(struct spi_device *spi)
> &ad5446_spi_chip_info[id->driver_data]);
> }
>
> -static int ad5446_spi_remove(struct spi_device *spi)
> +static void ad5446_spi_remove(struct spi_device *spi)
> {
> ad5446_remove(&spi->dev);
> -
> - return 0;
> }
>
> static struct spi_driver ad5446_spi_driver = {
> diff --git a/drivers/iio/dac/ad5449.c b/drivers/iio/dac/ad5449.c
> index f5e93c6acc9d..bad9bdaafa94 100644
> --- a/drivers/iio/dac/ad5449.c
> +++ b/drivers/iio/dac/ad5449.c
> @@ -330,7 +330,7 @@ static int ad5449_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5449_spi_remove(struct spi_device *spi)
> +static void ad5449_spi_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5449 *st = iio_priv(indio_dev);
> @@ -338,8 +338,6 @@ static int ad5449_spi_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
>
> regulator_bulk_disable(st->chip_info->num_channels, st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5449_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5504.c b/drivers/iio/dac/ad5504.c
> index b631261efa97..8507573aa13e 100644
> --- a/drivers/iio/dac/ad5504.c
> +++ b/drivers/iio/dac/ad5504.c
> @@ -336,7 +336,7 @@ static int ad5504_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5504_remove(struct spi_device *spi)
> +static void ad5504_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5504_state *st = iio_priv(indio_dev);
> @@ -345,8 +345,6 @@ static int ad5504_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5504_id[] = {
> diff --git a/drivers/iio/dac/ad5592r.c b/drivers/iio/dac/ad5592r.c
> index 6bfd7951e18c..0f7abfa75bec 100644
> --- a/drivers/iio/dac/ad5592r.c
> +++ b/drivers/iio/dac/ad5592r.c
> @@ -130,11 +130,9 @@ static int ad5592r_spi_probe(struct spi_device *spi)
> return ad5592r_probe(&spi->dev, id->name, &ad5592r_rw_ops);
> }
>
> -static int ad5592r_spi_remove(struct spi_device *spi)
> +static void ad5592r_spi_remove(struct spi_device *spi)
> {
> ad5592r_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5592r_spi_ids[] = {
> diff --git a/drivers/iio/dac/ad5624r_spi.c b/drivers/iio/dac/ad5624r_spi.c
> index 3c98941b9f99..371e812850eb 100644
> --- a/drivers/iio/dac/ad5624r_spi.c
> +++ b/drivers/iio/dac/ad5624r_spi.c
> @@ -293,7 +293,7 @@ static int ad5624r_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5624r_remove(struct spi_device *spi)
> +static void ad5624r_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5624r_state *st = iio_priv(indio_dev);
> @@ -301,8 +301,6 @@ static int ad5624r_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> if (!IS_ERR(st->reg))
> regulator_disable(st->reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5624r_id[] = {
> diff --git a/drivers/iio/dac/ad5686-spi.c b/drivers/iio/dac/ad5686-spi.c
> index 2628810fdbb1..d26fb29b6b04 100644
> --- a/drivers/iio/dac/ad5686-spi.c
> +++ b/drivers/iio/dac/ad5686-spi.c
> @@ -95,11 +95,9 @@ static int ad5686_spi_probe(struct spi_device *spi)
> ad5686_spi_write, ad5686_spi_read);
> }
>
> -static int ad5686_spi_remove(struct spi_device *spi)
> +static void ad5686_spi_remove(struct spi_device *spi)
> {
> ad5686_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5686_spi_id[] = {
> diff --git a/drivers/iio/dac/ad5761.c b/drivers/iio/dac/ad5761.c
> index e37e095e94fc..4cb8471db81e 100644
> --- a/drivers/iio/dac/ad5761.c
> +++ b/drivers/iio/dac/ad5761.c
> @@ -394,7 +394,7 @@ static int ad5761_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5761_remove(struct spi_device *spi)
> +static void ad5761_remove(struct spi_device *spi)
> {
> struct iio_dev *iio_dev = spi_get_drvdata(spi);
> struct ad5761_state *st = iio_priv(iio_dev);
> @@ -403,8 +403,6 @@ static int ad5761_remove(struct spi_device *spi)
>
> if (!IS_ERR_OR_NULL(st->vref_reg))
> regulator_disable(st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5761_id[] = {
> diff --git a/drivers/iio/dac/ad5764.c b/drivers/iio/dac/ad5764.c
> index ae089b9145cb..d235a8047ba0 100644
> --- a/drivers/iio/dac/ad5764.c
> +++ b/drivers/iio/dac/ad5764.c
> @@ -332,7 +332,7 @@ static int ad5764_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5764_remove(struct spi_device *spi)
> +static void ad5764_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5764_state *st = iio_priv(indio_dev);
> @@ -341,8 +341,6 @@ static int ad5764_remove(struct spi_device *spi)
>
> if (st->chip_info->int_vref == 0)
> regulator_bulk_disable(ARRAY_SIZE(st->vref_reg), st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5764_ids[] = {
> diff --git a/drivers/iio/dac/ad5791.c b/drivers/iio/dac/ad5791.c
> index 7b4579d73d18..2b14914b4050 100644
> --- a/drivers/iio/dac/ad5791.c
> +++ b/drivers/iio/dac/ad5791.c
> @@ -428,7 +428,7 @@ static int ad5791_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad5791_remove(struct spi_device *spi)
> +static void ad5791_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad5791_state *st = iio_priv(indio_dev);
> @@ -439,8 +439,6 @@ static int ad5791_remove(struct spi_device *spi)
>
> if (!IS_ERR(st->reg_vss))
> regulator_disable(st->reg_vss);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad5791_id[] = {
> diff --git a/drivers/iio/dac/ad8801.c b/drivers/iio/dac/ad8801.c
> index 5ecfdad54dec..6be35c92d435 100644
> --- a/drivers/iio/dac/ad8801.c
> +++ b/drivers/iio/dac/ad8801.c
> @@ -193,7 +193,7 @@ static int ad8801_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ad8801_remove(struct spi_device *spi)
> +static void ad8801_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ad8801_state *state = iio_priv(indio_dev);
> @@ -202,8 +202,6 @@ static int ad8801_remove(struct spi_device *spi)
> if (state->vrefl_reg)
> regulator_disable(state->vrefl_reg);
> regulator_disable(state->vrefh_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ad8801_ids[] = {
> diff --git a/drivers/iio/dac/ltc1660.c b/drivers/iio/dac/ltc1660.c
> index f6ec9bf5815e..c76233c9bb72 100644
> --- a/drivers/iio/dac/ltc1660.c
> +++ b/drivers/iio/dac/ltc1660.c
> @@ -206,15 +206,13 @@ static int ltc1660_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ltc1660_remove(struct spi_device *spi)
> +static void ltc1660_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ltc1660_priv *priv = iio_priv(indio_dev);
>
> iio_device_unregister(indio_dev);
> regulator_disable(priv->vref_reg);
> -
> - return 0;
> }
>
> static const struct of_device_id ltc1660_dt_ids[] = {
> diff --git a/drivers/iio/dac/ltc2632.c b/drivers/iio/dac/ltc2632.c
> index 53e4b887d372..aed46c80757e 100644
> --- a/drivers/iio/dac/ltc2632.c
> +++ b/drivers/iio/dac/ltc2632.c
> @@ -372,7 +372,7 @@ static int ltc2632_probe(struct spi_device *spi)
> return iio_device_register(indio_dev);
> }
>
> -static int ltc2632_remove(struct spi_device *spi)
> +static void ltc2632_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ltc2632_state *st = iio_priv(indio_dev);
> @@ -381,8 +381,6 @@ static int ltc2632_remove(struct spi_device *spi)
>
> if (st->vref_reg)
> regulator_disable(st->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id ltc2632_id[] = {
> diff --git a/drivers/iio/dac/mcp4922.c b/drivers/iio/dac/mcp4922.c
> index 0ae414ee1716..cb9e60e71b91 100644
> --- a/drivers/iio/dac/mcp4922.c
> +++ b/drivers/iio/dac/mcp4922.c
> @@ -172,7 +172,7 @@ static int mcp4922_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp4922_remove(struct spi_device *spi)
> +static void mcp4922_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct mcp4922_state *state;
> @@ -180,8 +180,6 @@ static int mcp4922_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> state = iio_priv(indio_dev);
> regulator_disable(state->vref_reg);
> -
> - return 0;
> }
>
> static const struct spi_device_id mcp4922_id[] = {
> diff --git a/drivers/iio/dac/ti-dac082s085.c b/drivers/iio/dac/ti-dac082s085.c
> index 6beda2193683..4e1156e6deb2 100644
> --- a/drivers/iio/dac/ti-dac082s085.c
> +++ b/drivers/iio/dac/ti-dac082s085.c
> @@ -313,7 +313,7 @@ static int ti_dac_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_dac_remove(struct spi_device *spi)
> +static void ti_dac_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_dac_chip *ti_dac = iio_priv(indio_dev);
> @@ -321,8 +321,6 @@ static int ti_dac_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> mutex_destroy(&ti_dac->lock);
> regulator_disable(ti_dac->vref);
> -
> - return 0;
> }
>
> static const struct of_device_id ti_dac_of_id[] = {
> diff --git a/drivers/iio/dac/ti-dac7311.c b/drivers/iio/dac/ti-dac7311.c
> index 99f275829ec2..e10d17e60ed3 100644
> --- a/drivers/iio/dac/ti-dac7311.c
> +++ b/drivers/iio/dac/ti-dac7311.c
> @@ -292,7 +292,7 @@ static int ti_dac_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ti_dac_remove(struct spi_device *spi)
> +static void ti_dac_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct ti_dac_chip *ti_dac = iio_priv(indio_dev);
> @@ -300,7 +300,6 @@ static int ti_dac_remove(struct spi_device *spi)
> iio_device_unregister(indio_dev);
> mutex_destroy(&ti_dac->lock);
> regulator_disable(ti_dac->vref);
> - return 0;
> }
>
> static const struct of_device_id ti_dac_of_id[] = {
> diff --git a/drivers/iio/frequency/adf4350.c b/drivers/iio/frequency/adf4350.c
> index 3d9eba716b69..f3521330f6fb 100644
> --- a/drivers/iio/frequency/adf4350.c
> +++ b/drivers/iio/frequency/adf4350.c
> @@ -589,7 +589,7 @@ static int adf4350_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adf4350_remove(struct spi_device *spi)
> +static void adf4350_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct adf4350_state *st = iio_priv(indio_dev);
> @@ -604,8 +604,6 @@ static int adf4350_remove(struct spi_device *spi)
>
> if (!IS_ERR(reg))
> regulator_disable(reg);
> -
> - return 0;
> }
>
> static const struct of_device_id adf4350_of_match[] = {
> diff --git a/drivers/iio/gyro/bmg160_spi.c b/drivers/iio/gyro/bmg160_spi.c
> index 745962e1e423..fc2e453527b9 100644
> --- a/drivers/iio/gyro/bmg160_spi.c
> +++ b/drivers/iio/gyro/bmg160_spi.c
> @@ -27,11 +27,9 @@ static int bmg160_spi_probe(struct spi_device *spi)
> return bmg160_core_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int bmg160_spi_remove(struct spi_device *spi)
> +static void bmg160_spi_remove(struct spi_device *spi)
> {
> bmg160_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmg160_spi_id[] = {
> diff --git a/drivers/iio/gyro/fxas21002c_spi.c b/drivers/iio/gyro/fxas21002c_spi.c
> index 77ceebef4e34..c3ac169facf9 100644
> --- a/drivers/iio/gyro/fxas21002c_spi.c
> +++ b/drivers/iio/gyro/fxas21002c_spi.c
> @@ -34,11 +34,9 @@ static int fxas21002c_spi_probe(struct spi_device *spi)
> return fxas21002c_core_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int fxas21002c_spi_remove(struct spi_device *spi)
> +static void fxas21002c_spi_remove(struct spi_device *spi)
> {
> fxas21002c_core_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id fxas21002c_spi_id[] = {
> diff --git a/drivers/iio/health/afe4403.c b/drivers/iio/health/afe4403.c
> index 273f16dcaff8..856ec901b091 100644
> --- a/drivers/iio/health/afe4403.c
> +++ b/drivers/iio/health/afe4403.c
> @@ -570,7 +570,7 @@ static int afe4403_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int afe4403_remove(struct spi_device *spi)
> +static void afe4403_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> struct afe4403_data *afe = iio_priv(indio_dev);
> @@ -586,8 +586,6 @@ static int afe4403_remove(struct spi_device *spi)
> ret = regulator_disable(afe->regulator);
> if (ret)
> dev_warn(afe->dev, "Unable to disable regulator\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id afe4403_ids[] = {
> diff --git a/drivers/iio/magnetometer/bmc150_magn_spi.c b/drivers/iio/magnetometer/bmc150_magn_spi.c
> index c6ed3ea8460a..4c570412d65c 100644
> --- a/drivers/iio/magnetometer/bmc150_magn_spi.c
> +++ b/drivers/iio/magnetometer/bmc150_magn_spi.c
> @@ -29,11 +29,9 @@ static int bmc150_magn_spi_probe(struct spi_device *spi)
> return bmc150_magn_probe(&spi->dev, regmap, spi->irq, id->name);
> }
>
> -static int bmc150_magn_spi_remove(struct spi_device *spi)
> +static void bmc150_magn_spi_remove(struct spi_device *spi)
> {
> bmc150_magn_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id bmc150_magn_spi_id[] = {
> diff --git a/drivers/iio/magnetometer/hmc5843_spi.c b/drivers/iio/magnetometer/hmc5843_spi.c
> index 89cf59a62c28..a99dd9b33e95 100644
> --- a/drivers/iio/magnetometer/hmc5843_spi.c
> +++ b/drivers/iio/magnetometer/hmc5843_spi.c
> @@ -74,11 +74,9 @@ static int hmc5843_spi_probe(struct spi_device *spi)
> id->driver_data, id->name);
> }
>
> -static int hmc5843_spi_remove(struct spi_device *spi)
> +static void hmc5843_spi_remove(struct spi_device *spi)
> {
> hmc5843_common_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id hmc5843_id[] = {
> diff --git a/drivers/iio/potentiometer/max5487.c b/drivers/iio/potentiometer/max5487.c
> index 007c2bd324cb..42723c996c9f 100644
> --- a/drivers/iio/potentiometer/max5487.c
> +++ b/drivers/iio/potentiometer/max5487.c
> @@ -112,7 +112,7 @@ static int max5487_spi_probe(struct spi_device *spi)
> return iio_device_register(indio_dev);
> }
>
> -static int max5487_spi_remove(struct spi_device *spi)
> +static void max5487_spi_remove(struct spi_device *spi)
> {
> struct iio_dev *indio_dev = spi_get_drvdata(spi);
> int ret;
> @@ -123,8 +123,6 @@ static int max5487_spi_remove(struct spi_device *spi)
> ret = max5487_write_cmd(spi, MAX5487_COPY_AB_TO_NV);
> if (ret)
> dev_warn(&spi->dev, "Failed to save wiper regs to NV regs\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id max5487_id[] = {
> diff --git a/drivers/iio/pressure/ms5611_spi.c b/drivers/iio/pressure/ms5611_spi.c
> index 9fa2dcd71760..7ccd960ced5d 100644
> --- a/drivers/iio/pressure/ms5611_spi.c
> +++ b/drivers/iio/pressure/ms5611_spi.c
> @@ -107,11 +107,9 @@ static int ms5611_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->driver_data);
> }
>
> -static int ms5611_spi_remove(struct spi_device *spi)
> +static void ms5611_spi_remove(struct spi_device *spi)
> {
> ms5611_remove(spi_get_drvdata(spi));
> -
> - return 0;
> }
>
> static const struct of_device_id ms5611_spi_matches[] = {
> diff --git a/drivers/iio/pressure/zpa2326_spi.c b/drivers/iio/pressure/zpa2326_spi.c
> index 85201a4bae44..ee8ed77536ca 100644
> --- a/drivers/iio/pressure/zpa2326_spi.c
> +++ b/drivers/iio/pressure/zpa2326_spi.c
> @@ -57,11 +57,9 @@ static int zpa2326_probe_spi(struct spi_device *spi)
> spi->irq, ZPA2326_DEVICE_ID, regmap);
> }
>
> -static int zpa2326_remove_spi(struct spi_device *spi)
> +static void zpa2326_remove_spi(struct spi_device *spi)
> {
> zpa2326_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id zpa2326_spi_ids[] = {
> diff --git a/drivers/input/keyboard/applespi.c b/drivers/input/keyboard/applespi.c
> index eda1b23002b5..d1f5354d5ea2 100644
> --- a/drivers/input/keyboard/applespi.c
> +++ b/drivers/input/keyboard/applespi.c
> @@ -1858,7 +1858,7 @@ static void applespi_drain_reads(struct applespi_data *applespi)
> spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags);
> }
>
> -static int applespi_remove(struct spi_device *spi)
> +static void applespi_remove(struct spi_device *spi)
> {
> struct applespi_data *applespi = spi_get_drvdata(spi);
>
> @@ -1871,8 +1871,6 @@ static int applespi_remove(struct spi_device *spi)
> applespi_drain_reads(applespi);
>
> debugfs_remove_recursive(applespi->debugfs_root);
> -
> - return 0;
> }
>
> static void applespi_shutdown(struct spi_device *spi)
> diff --git a/drivers/input/misc/adxl34x-spi.c b/drivers/input/misc/adxl34x-spi.c
> index 6e51c9bc619f..91e44d4c66f7 100644
> --- a/drivers/input/misc/adxl34x-spi.c
> +++ b/drivers/input/misc/adxl34x-spi.c
> @@ -87,13 +87,11 @@ static int adxl34x_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int adxl34x_spi_remove(struct spi_device *spi)
> +static void adxl34x_spi_remove(struct spi_device *spi)
> {
> struct adxl34x *ac = spi_get_drvdata(spi);
>
> adxl34x_remove(ac);
> -
> - return 0;
> }
>
> static int __maybe_unused adxl34x_spi_suspend(struct device *dev)
> diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
> index a25a77dd9a32..bed68a68f330 100644
> --- a/drivers/input/touchscreen/ads7846.c
> +++ b/drivers/input/touchscreen/ads7846.c
> @@ -1411,13 +1411,11 @@ static int ads7846_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ads7846_remove(struct spi_device *spi)
> +static void ads7846_remove(struct spi_device *spi)
> {
> struct ads7846 *ts = spi_get_drvdata(spi);
>
> ads7846_stop(ts);
> -
> - return 0;
> }
>
> static struct spi_driver ads7846_driver = {
> diff --git a/drivers/input/touchscreen/cyttsp4_spi.c b/drivers/input/touchscreen/cyttsp4_spi.c
> index 2aec41eb76b7..5d7db84f2749 100644
> --- a/drivers/input/touchscreen/cyttsp4_spi.c
> +++ b/drivers/input/touchscreen/cyttsp4_spi.c
> @@ -164,12 +164,10 @@ static int cyttsp4_spi_probe(struct spi_device *spi)
> return PTR_ERR_OR_ZERO(ts);
> }
>
> -static int cyttsp4_spi_remove(struct spi_device *spi)
> +static void cyttsp4_spi_remove(struct spi_device *spi)
> {
> struct cyttsp4 *ts = spi_get_drvdata(spi);
> cyttsp4_remove(ts);
> -
> - return 0;
> }
>
> static struct spi_driver cyttsp4_spi_driver = {
> diff --git a/drivers/input/touchscreen/tsc2005.c b/drivers/input/touchscreen/tsc2005.c
> index a2f55920b9b2..555dfe98b3c4 100644
> --- a/drivers/input/touchscreen/tsc2005.c
> +++ b/drivers/input/touchscreen/tsc2005.c
> @@ -64,11 +64,9 @@ static int tsc2005_probe(struct spi_device *spi)
> tsc2005_cmd);
> }
>
> -static int tsc2005_remove(struct spi_device *spi)
> +static void tsc2005_remove(struct spi_device *spi)
> {
> tsc200x_remove(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/leds/leds-cr0014114.c b/drivers/leds/leds-cr0014114.c
> index d03cfd3c0bfb..c87686bd7c18 100644
> --- a/drivers/leds/leds-cr0014114.c
> +++ b/drivers/leds/leds-cr0014114.c
> @@ -266,14 +266,12 @@ static int cr0014114_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int cr0014114_remove(struct spi_device *spi)
> +static void cr0014114_remove(struct spi_device *spi)
> {
> struct cr0014114 *priv = spi_get_drvdata(spi);
>
> cancel_delayed_work_sync(&priv->work);
> mutex_destroy(&priv->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id cr0014114_dt_ids[] = {
> diff --git a/drivers/leds/leds-dac124s085.c b/drivers/leds/leds-dac124s085.c
> index 20dc9b9d7dea..cf5fb1195f87 100644
> --- a/drivers/leds/leds-dac124s085.c
> +++ b/drivers/leds/leds-dac124s085.c
> @@ -85,15 +85,13 @@ static int dac124s085_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int dac124s085_remove(struct spi_device *spi)
> +static void dac124s085_remove(struct spi_device *spi)
> {
> struct dac124s085 *dac = spi_get_drvdata(spi);
> int i;
>
> for (i = 0; i < ARRAY_SIZE(dac->leds); i++)
> led_classdev_unregister(&dac->leds[i].ldev);
> -
> - return 0;
> }
>
> static struct spi_driver dac124s085_driver = {
> diff --git a/drivers/leds/leds-el15203000.c b/drivers/leds/leds-el15203000.c
> index f9eb59a25570..7e7b617bcd56 100644
> --- a/drivers/leds/leds-el15203000.c
> +++ b/drivers/leds/leds-el15203000.c
> @@ -315,13 +315,11 @@ static int el15203000_probe(struct spi_device *spi)
> return el15203000_probe_dt(priv);
> }
>
> -static int el15203000_remove(struct spi_device *spi)
> +static void el15203000_remove(struct spi_device *spi)
> {
> struct el15203000 *priv = spi_get_drvdata(spi);
>
> mutex_destroy(&priv->lock);
> -
> - return 0;
> }
>
> static const struct of_device_id el15203000_dt_ids[] = {
> diff --git a/drivers/leds/leds-spi-byte.c b/drivers/leds/leds-spi-byte.c
> index f1964c96fb15..2bc5c99daf51 100644
> --- a/drivers/leds/leds-spi-byte.c
> +++ b/drivers/leds/leds-spi-byte.c
> @@ -130,13 +130,11 @@ static int spi_byte_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_byte_remove(struct spi_device *spi)
> +static void spi_byte_remove(struct spi_device *spi)
> {
> struct spi_byte_led *led = spi_get_drvdata(spi);
>
> mutex_destroy(&led->mutex);
> -
> - return 0;
> }
>
> static struct spi_driver spi_byte_driver = {
> diff --git a/drivers/media/spi/cxd2880-spi.c b/drivers/media/spi/cxd2880-spi.c
> index 6f2a66bc87fb..6be4e5528879 100644
> --- a/drivers/media/spi/cxd2880-spi.c
> +++ b/drivers/media/spi/cxd2880-spi.c
> @@ -625,7 +625,7 @@ cxd2880_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int
> +static void
> cxd2880_spi_remove(struct spi_device *spi)
> {
> struct cxd2880_dvb_spi *dvb_spi = spi_get_drvdata(spi);
> @@ -643,8 +643,6 @@ cxd2880_spi_remove(struct spi_device *spi)
>
> kfree(dvb_spi);
> pr_info("cxd2880_spi remove ok.\n");
> -
> - return 0;
> }
>
> static const struct spi_device_id cxd2880_spi_id[] = {
> diff --git a/drivers/media/spi/gs1662.c b/drivers/media/spi/gs1662.c
> index f86ef1ca1288..75c21a93e6d0 100644
> --- a/drivers/media/spi/gs1662.c
> +++ b/drivers/media/spi/gs1662.c
> @@ -458,13 +458,11 @@ static int gs_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int gs_remove(struct spi_device *spi)
> +static void gs_remove(struct spi_device *spi)
> {
> struct v4l2_subdev *sd = spi_get_drvdata(spi);
>
> v4l2_device_unregister_subdev(sd);
> -
> - return 0;
> }
>
> static struct spi_driver gs_driver = {
> diff --git a/drivers/media/tuners/msi001.c b/drivers/media/tuners/msi001.c
> index 44247049a319..ad6c72c1ed04 100644
> --- a/drivers/media/tuners/msi001.c
> +++ b/drivers/media/tuners/msi001.c
> @@ -472,7 +472,7 @@ static int msi001_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int msi001_remove(struct spi_device *spi)
> +static void msi001_remove(struct spi_device *spi)
> {
> struct v4l2_subdev *sd = spi_get_drvdata(spi);
> struct msi001_dev *dev = sd_to_msi001_dev(sd);
> @@ -486,7 +486,6 @@ static int msi001_remove(struct spi_device *spi)
> v4l2_device_unregister_subdev(&dev->sd);
> v4l2_ctrl_handler_free(&dev->hdl);
> kfree(dev);
> - return 0;
> }
>
> static const struct spi_device_id msi001_id_table[] = {
> diff --git a/drivers/mfd/arizona-spi.c b/drivers/mfd/arizona-spi.c
> index 9fe06dda3782..03620c8efe34 100644
> --- a/drivers/mfd/arizona-spi.c
> +++ b/drivers/mfd/arizona-spi.c
> @@ -206,13 +206,11 @@ static int arizona_spi_probe(struct spi_device *spi)
> return arizona_dev_init(arizona);
> }
>
> -static int arizona_spi_remove(struct spi_device *spi)
> +static void arizona_spi_remove(struct spi_device *spi)
> {
> struct arizona *arizona = spi_get_drvdata(spi);
>
> arizona_dev_exit(arizona);
> -
> - return 0;
> }
>
> static const struct spi_device_id arizona_spi_ids[] = {
> diff --git a/drivers/mfd/da9052-spi.c b/drivers/mfd/da9052-spi.c
> index 5faf3766a5e2..b79a57b45c1e 100644
> --- a/drivers/mfd/da9052-spi.c
> +++ b/drivers/mfd/da9052-spi.c
> @@ -55,12 +55,11 @@ static int da9052_spi_probe(struct spi_device *spi)
> return da9052_device_init(da9052, id->driver_data);
> }
>
> -static int da9052_spi_remove(struct spi_device *spi)
> +static void da9052_spi_remove(struct spi_device *spi)
> {
> struct da9052 *da9052 = spi_get_drvdata(spi);
>
> da9052_device_exit(da9052);
> - return 0;
> }
>
> static const struct spi_device_id da9052_spi_id[] = {
> diff --git a/drivers/mfd/ezx-pcap.c b/drivers/mfd/ezx-pcap.c
> index 70fa18b04ad2..2280f756f422 100644
> --- a/drivers/mfd/ezx-pcap.c
> +++ b/drivers/mfd/ezx-pcap.c
> @@ -392,7 +392,7 @@ static int pcap_add_subdev(struct pcap_chip *pcap,
> return ret;
> }
>
> -static int ezx_pcap_remove(struct spi_device *spi)
> +static void ezx_pcap_remove(struct spi_device *spi)
> {
> struct pcap_chip *pcap = spi_get_drvdata(spi);
> unsigned long flags;
> @@ -412,8 +412,6 @@ static int ezx_pcap_remove(struct spi_device *spi)
> irq_set_chip_and_handler(i, NULL, NULL);
>
> destroy_workqueue(pcap->workqueue);
> -
> - return 0;
> }
>
> static int ezx_pcap_probe(struct spi_device *spi)
> diff --git a/drivers/mfd/madera-spi.c b/drivers/mfd/madera-spi.c
> index e860f5ff0933..da84eb50e53a 100644
> --- a/drivers/mfd/madera-spi.c
> +++ b/drivers/mfd/madera-spi.c
> @@ -112,13 +112,11 @@ static int madera_spi_probe(struct spi_device *spi)
> return madera_dev_init(madera);
> }
>
> -static int madera_spi_remove(struct spi_device *spi)
> +static void madera_spi_remove(struct spi_device *spi)
> {
> struct madera *madera = spi_get_drvdata(spi);
>
> madera_dev_exit(madera);
> -
> - return 0;
> }
>
> static const struct spi_device_id madera_spi_ids[] = {
> diff --git a/drivers/mfd/mc13xxx-spi.c b/drivers/mfd/mc13xxx-spi.c
> index 4d8913d647e6..f803527e5819 100644
> --- a/drivers/mfd/mc13xxx-spi.c
> +++ b/drivers/mfd/mc13xxx-spi.c
> @@ -166,10 +166,9 @@ static int mc13xxx_spi_probe(struct spi_device *spi)
> return mc13xxx_common_init(&spi->dev);
> }
>
> -static int mc13xxx_spi_remove(struct spi_device *spi)
> +static void mc13xxx_spi_remove(struct spi_device *spi)
> {
> mc13xxx_common_exit(&spi->dev);
> - return 0;
> }
>
> static struct spi_driver mc13xxx_spi_driver = {
> diff --git a/drivers/mfd/rsmu_spi.c b/drivers/mfd/rsmu_spi.c
> index fec2b4ec477c..d2f3d8f1e05a 100644
> --- a/drivers/mfd/rsmu_spi.c
> +++ b/drivers/mfd/rsmu_spi.c
> @@ -220,13 +220,11 @@ static int rsmu_spi_probe(struct spi_device *client)
> return rsmu_core_init(rsmu);
> }
>
> -static int rsmu_spi_remove(struct spi_device *client)
> +static void rsmu_spi_remove(struct spi_device *client)
> {
> struct rsmu_ddata *rsmu = spi_get_drvdata(client);
>
> rsmu_core_exit(rsmu);
> -
> - return 0;
> }
>
> static const struct spi_device_id rsmu_spi_id[] = {
> diff --git a/drivers/mfd/stmpe-spi.c b/drivers/mfd/stmpe-spi.c
> index 6c5915016be5..ad8055a0e286 100644
> --- a/drivers/mfd/stmpe-spi.c
> +++ b/drivers/mfd/stmpe-spi.c
> @@ -102,13 +102,11 @@ stmpe_spi_probe(struct spi_device *spi)
> return stmpe_probe(&spi_ci, id->driver_data);
> }
>
> -static int stmpe_spi_remove(struct spi_device *spi)
> +static void stmpe_spi_remove(struct spi_device *spi)
> {
> struct stmpe *stmpe = spi_get_drvdata(spi);
>
> stmpe_remove(stmpe);
> -
> - return 0;
> }
>
> static const struct of_device_id stmpe_spi_of_match[] = {
> diff --git a/drivers/mfd/tps65912-spi.c b/drivers/mfd/tps65912-spi.c
> index d701926aa46e..bba38fbc781d 100644
> --- a/drivers/mfd/tps65912-spi.c
> +++ b/drivers/mfd/tps65912-spi.c
> @@ -50,13 +50,11 @@ static int tps65912_spi_probe(struct spi_device *spi)
> return tps65912_device_init(tps);
> }
>
> -static int tps65912_spi_remove(struct spi_device *spi)
> +static void tps65912_spi_remove(struct spi_device *spi)
> {
> struct tps65912 *tps = spi_get_drvdata(spi);
>
> tps65912_device_exit(tps);
> -
> - return 0;
> }
>
> static const struct spi_device_id tps65912_spi_id_table[] = {
> diff --git a/drivers/misc/ad525x_dpot-spi.c b/drivers/misc/ad525x_dpot-spi.c
> index a9e75d80ad36..263055bda48b 100644
> --- a/drivers/misc/ad525x_dpot-spi.c
> +++ b/drivers/misc/ad525x_dpot-spi.c
> @@ -90,10 +90,9 @@ static int ad_dpot_spi_probe(struct spi_device *spi)
> spi_get_device_id(spi)->name);
> }
>
> -static int ad_dpot_spi_remove(struct spi_device *spi)
> +static void ad_dpot_spi_remove(struct spi_device *spi)
> {
> ad_dpot_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id ad_dpot_spi_id[] = {
> diff --git a/drivers/misc/eeprom/eeprom_93xx46.c b/drivers/misc/eeprom/eeprom_93xx46.c
> index 1f15399e5cb4..b630625b3024 100644
> --- a/drivers/misc/eeprom/eeprom_93xx46.c
> +++ b/drivers/misc/eeprom/eeprom_93xx46.c
> @@ -555,14 +555,12 @@ static int eeprom_93xx46_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int eeprom_93xx46_remove(struct spi_device *spi)
> +static void eeprom_93xx46_remove(struct spi_device *spi)
> {
> struct eeprom_93xx46_dev *edev = spi_get_drvdata(spi);
>
> if (!(edev->pdata->flags & EE_READONLY))
> device_remove_file(&spi->dev, &dev_attr_erase);
> -
> - return 0;
> }
>
> static struct spi_driver eeprom_93xx46_driver = {
> diff --git a/drivers/misc/lattice-ecp3-config.c b/drivers/misc/lattice-ecp3-config.c
> index 98828030b5a4..bac4df2e5231 100644
> --- a/drivers/misc/lattice-ecp3-config.c
> +++ b/drivers/misc/lattice-ecp3-config.c
> @@ -211,13 +211,11 @@ static int lattice_ecp3_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lattice_ecp3_remove(struct spi_device *spi)
> +static void lattice_ecp3_remove(struct spi_device *spi)
> {
> struct fpga_data *data = spi_get_drvdata(spi);
>
> wait_for_completion(&data->fw_loaded);
> -
> - return 0;
> }
>
> static const struct spi_device_id lattice_ecp3_id[] = {
> diff --git a/drivers/misc/lis3lv02d/lis3lv02d_spi.c b/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> index 9e40dfb60742..203a108b8883 100644
> --- a/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> +++ b/drivers/misc/lis3lv02d/lis3lv02d_spi.c
> @@ -96,15 +96,13 @@ static int lis302dl_spi_probe(struct spi_device *spi)
> return lis3lv02d_init_device(&lis3_dev);
> }
>
> -static int lis302dl_spi_remove(struct spi_device *spi)
> +static void lis302dl_spi_remove(struct spi_device *spi)
> {
> struct lis3lv02d *lis3 = spi_get_drvdata(spi);
> lis3lv02d_joystick_disable(lis3);
> lis3lv02d_poweroff(lis3);
>
> lis3lv02d_remove_fs(&lis3_dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c
> index a576181e9db0..106dd204b1a7 100644
> --- a/drivers/mmc/host/mmc_spi.c
> +++ b/drivers/mmc/host/mmc_spi.c
> @@ -1489,7 +1489,7 @@ static int mmc_spi_probe(struct spi_device *spi)
> }
>
>
> -static int mmc_spi_remove(struct spi_device *spi)
> +static void mmc_spi_remove(struct spi_device *spi)
> {
> struct mmc_host *mmc = dev_get_drvdata(&spi->dev);
> struct mmc_spi_host *host = mmc_priv(mmc);
> @@ -1507,7 +1507,6 @@ static int mmc_spi_remove(struct spi_device *spi)
> spi->max_speed_hz = mmc->f_max;
> mmc_spi_put_pdata(spi);
> mmc_free_host(mmc);
> - return 0;
> }
>
> static const struct spi_device_id mmc_spi_dev_ids[] = {
> diff --git a/drivers/mtd/devices/mchp23k256.c b/drivers/mtd/devices/mchp23k256.c
> index a8b31bddf14b..008df9d8898d 100644
> --- a/drivers/mtd/devices/mchp23k256.c
> +++ b/drivers/mtd/devices/mchp23k256.c
> @@ -209,13 +209,11 @@ static int mchp23k256_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mchp23k256_remove(struct spi_device *spi)
> +static void mchp23k256_remove(struct spi_device *spi)
> {
> struct mchp23k256_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static const struct of_device_id mchp23k256_of_table[] = {
> diff --git a/drivers/mtd/devices/mchp48l640.c b/drivers/mtd/devices/mchp48l640.c
> index 231a10790196..a3fd426df74b 100644
> --- a/drivers/mtd/devices/mchp48l640.c
> +++ b/drivers/mtd/devices/mchp48l640.c
> @@ -341,13 +341,11 @@ static int mchp48l640_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mchp48l640_remove(struct spi_device *spi)
> +static void mchp48l640_remove(struct spi_device *spi)
> {
> struct mchp48l640_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static const struct of_device_id mchp48l640_of_table[] = {
> diff --git a/drivers/mtd/devices/mtd_dataflash.c b/drivers/mtd/devices/mtd_dataflash.c
> index 734878abaa23..134e27328597 100644
> --- a/drivers/mtd/devices/mtd_dataflash.c
> +++ b/drivers/mtd/devices/mtd_dataflash.c
> @@ -916,7 +916,7 @@ static int dataflash_probe(struct spi_device *spi)
> return status;
> }
>
> -static int dataflash_remove(struct spi_device *spi)
> +static void dataflash_remove(struct spi_device *spi)
> {
> struct dataflash *flash = spi_get_drvdata(spi);
>
> @@ -925,8 +925,6 @@ static int dataflash_remove(struct spi_device *spi)
> WARN_ON(mtd_device_unregister(&flash->mtd));
>
> kfree(flash);
> -
> - return 0;
> }
>
> static struct spi_driver dataflash_driver = {
> diff --git a/drivers/mtd/devices/sst25l.c b/drivers/mtd/devices/sst25l.c
> index 7f124c1bfa40..8813994ce9f4 100644
> --- a/drivers/mtd/devices/sst25l.c
> +++ b/drivers/mtd/devices/sst25l.c
> @@ -398,13 +398,11 @@ static int sst25l_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int sst25l_remove(struct spi_device *spi)
> +static void sst25l_remove(struct spi_device *spi)
> {
> struct sst25l_flash *flash = spi_get_drvdata(spi);
>
> WARN_ON(mtd_device_unregister(&flash->mtd));
> -
> - return 0;
> }
>
> static struct spi_driver sst25l_driver = {
> diff --git a/drivers/net/can/m_can/tcan4x5x-core.c b/drivers/net/can/m_can/tcan4x5x-core.c
> index 04687b15b250..41645a24384c 100644
> --- a/drivers/net/can/m_can/tcan4x5x-core.c
> +++ b/drivers/net/can/m_can/tcan4x5x-core.c
> @@ -388,7 +388,7 @@ static int tcan4x5x_can_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tcan4x5x_can_remove(struct spi_device *spi)
> +static void tcan4x5x_can_remove(struct spi_device *spi)
> {
> struct tcan4x5x_priv *priv = spi_get_drvdata(spi);
>
> @@ -397,8 +397,6 @@ static int tcan4x5x_can_remove(struct spi_device *spi)
> tcan4x5x_power_enable(priv->power, 0);
>
> m_can_class_free_dev(priv->cdev.net);
> -
> - return 0;
> }
>
> static const struct of_device_id tcan4x5x_of_match[] = {
> diff --git a/drivers/net/can/spi/hi311x.c b/drivers/net/can/spi/hi311x.c
> index cfcc14fe3e42..664b8f14d7b0 100644
> --- a/drivers/net/can/spi/hi311x.c
> +++ b/drivers/net/can/spi/hi311x.c
> @@ -948,7 +948,7 @@ static int hi3110_can_probe(struct spi_device *spi)
> return dev_err_probe(dev, ret, "Probe failed\n");
> }
>
> -static int hi3110_can_remove(struct spi_device *spi)
> +static void hi3110_can_remove(struct spi_device *spi)
> {
> struct hi3110_priv *priv = spi_get_drvdata(spi);
> struct net_device *net = priv->net;
> @@ -960,8 +960,6 @@ static int hi3110_can_remove(struct spi_device *spi)
> clk_disable_unprepare(priv->clk);
>
> free_candev(net);
> -
> - return 0;
> }
>
> static int __maybe_unused hi3110_can_suspend(struct device *dev)
> diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c
> index 025e07cb7439..d23edaf22420 100644
> --- a/drivers/net/can/spi/mcp251x.c
> +++ b/drivers/net/can/spi/mcp251x.c
> @@ -1427,7 +1427,7 @@ static int mcp251x_can_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcp251x_can_remove(struct spi_device *spi)
> +static void mcp251x_can_remove(struct spi_device *spi)
> {
> struct mcp251x_priv *priv = spi_get_drvdata(spi);
> struct net_device *net = priv->net;
> @@ -1442,8 +1442,6 @@ static int mcp251x_can_remove(struct spi_device *spi)
> clk_disable_unprepare(priv->clk);
>
> free_candev(net);
> -
> - return 0;
> }
>
> static int __maybe_unused mcp251x_can_suspend(struct device *dev)
> diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> index b5986df6eca0..65c9b31666a6 100644
> --- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> +++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> @@ -1966,7 +1966,7 @@ static int mcp251xfd_probe(struct spi_device *spi)
> return err;
> }
>
> -static int mcp251xfd_remove(struct spi_device *spi)
> +static void mcp251xfd_remove(struct spi_device *spi)
> {
> struct mcp251xfd_priv *priv = spi_get_drvdata(spi);
> struct net_device *ndev = priv->ndev;
> @@ -1975,8 +1975,6 @@ static int mcp251xfd_remove(struct spi_device *spi)
> mcp251xfd_unregister(priv);
> spi->max_speed_hz = priv->spi_max_speed_hz_orig;
> free_candev(ndev);
> -
> - return 0;
> }
>
> static int __maybe_unused mcp251xfd_runtime_suspend(struct device *device)
> diff --git a/drivers/net/dsa/b53/b53_spi.c b/drivers/net/dsa/b53/b53_spi.c
> index 2b88f03e5252..0e54b2a0c211 100644
> --- a/drivers/net/dsa/b53/b53_spi.c
> +++ b/drivers/net/dsa/b53/b53_spi.c
> @@ -314,7 +314,7 @@ static int b53_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int b53_spi_remove(struct spi_device *spi)
> +static void b53_spi_remove(struct spi_device *spi)
> {
> struct b53_device *dev = spi_get_drvdata(spi);
>
> @@ -322,8 +322,6 @@ static int b53_spi_remove(struct spi_device *spi)
> b53_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void b53_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/microchip/ksz8795_spi.c b/drivers/net/dsa/microchip/ksz8795_spi.c
> index 866767b70d65..673589dc88ab 100644
> --- a/drivers/net/dsa/microchip/ksz8795_spi.c
> +++ b/drivers/net/dsa/microchip/ksz8795_spi.c
> @@ -87,7 +87,7 @@ static int ksz8795_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ksz8795_spi_remove(struct spi_device *spi)
> +static void ksz8795_spi_remove(struct spi_device *spi)
> {
> struct ksz_device *dev = spi_get_drvdata(spi);
>
> @@ -95,8 +95,6 @@ static int ksz8795_spi_remove(struct spi_device *spi)
> ksz_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void ksz8795_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/microchip/ksz9477_spi.c b/drivers/net/dsa/microchip/ksz9477_spi.c
> index e3cb0e6c9f6f..940bb9665f15 100644
> --- a/drivers/net/dsa/microchip/ksz9477_spi.c
> +++ b/drivers/net/dsa/microchip/ksz9477_spi.c
> @@ -65,7 +65,7 @@ static int ksz9477_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ksz9477_spi_remove(struct spi_device *spi)
> +static void ksz9477_spi_remove(struct spi_device *spi)
> {
> struct ksz_device *dev = spi_get_drvdata(spi);
>
> @@ -73,8 +73,6 @@ static int ksz9477_spi_remove(struct spi_device *spi)
> ksz_switch_remove(dev);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void ksz9477_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c
> index b513713be610..c2a47c6693b8 100644
> --- a/drivers/net/dsa/sja1105/sja1105_main.c
> +++ b/drivers/net/dsa/sja1105/sja1105_main.c
> @@ -3346,18 +3346,16 @@ static int sja1105_probe(struct spi_device *spi)
> return dsa_register_switch(priv->ds);
> }
>
> -static int sja1105_remove(struct spi_device *spi)
> +static void sja1105_remove(struct spi_device *spi)
> {
> struct sja1105_private *priv = spi_get_drvdata(spi);
>
> if (!priv)
> - return 0;
> + return;
>
> dsa_unregister_switch(priv->ds);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void sja1105_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/dsa/vitesse-vsc73xx-spi.c b/drivers/net/dsa/vitesse-vsc73xx-spi.c
> index 645398901e05..3110895358d8 100644
> --- a/drivers/net/dsa/vitesse-vsc73xx-spi.c
> +++ b/drivers/net/dsa/vitesse-vsc73xx-spi.c
> @@ -159,18 +159,16 @@ static int vsc73xx_spi_probe(struct spi_device *spi)
> return vsc73xx_probe(&vsc_spi->vsc);
> }
>
> -static int vsc73xx_spi_remove(struct spi_device *spi)
> +static void vsc73xx_spi_remove(struct spi_device *spi)
> {
> struct vsc73xx_spi *vsc_spi = spi_get_drvdata(spi);
>
> if (!vsc_spi)
> - return 0;
> + return;
>
> vsc73xx_remove(&vsc_spi->vsc);
>
> spi_set_drvdata(spi, NULL);
> -
> - return 0;
> }
>
> static void vsc73xx_spi_shutdown(struct spi_device *spi)
> diff --git a/drivers/net/ethernet/asix/ax88796c_main.c b/drivers/net/ethernet/asix/ax88796c_main.c
> index e7a9f9863258..bf70481bb1ca 100644
> --- a/drivers/net/ethernet/asix/ax88796c_main.c
> +++ b/drivers/net/ethernet/asix/ax88796c_main.c
> @@ -1102,7 +1102,7 @@ static int ax88796c_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int ax88796c_remove(struct spi_device *spi)
> +static void ax88796c_remove(struct spi_device *spi)
> {
> struct ax88796c_device *ax_local = dev_get_drvdata(&spi->dev);
> struct net_device *ndev = ax_local->ndev;
> @@ -1112,8 +1112,6 @@ static int ax88796c_remove(struct spi_device *spi)
> netif_info(ax_local, probe, ndev, "removing network device %s %s\n",
> dev_driver_string(&spi->dev),
> dev_name(&spi->dev));
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/net/ethernet/micrel/ks8851_spi.c b/drivers/net/ethernet/micrel/ks8851_spi.c
> index 0303e727e99f..d167d93e4c12 100644
> --- a/drivers/net/ethernet/micrel/ks8851_spi.c
> +++ b/drivers/net/ethernet/micrel/ks8851_spi.c
> @@ -452,11 +452,9 @@ static int ks8851_probe_spi(struct spi_device *spi)
> return ks8851_probe_common(netdev, dev, msg_enable);
> }
>
> -static int ks8851_remove_spi(struct spi_device *spi)
> +static void ks8851_remove_spi(struct spi_device *spi)
> {
> ks8851_remove_common(&spi->dev);
> -
> - return 0;
> }
>
> static const struct of_device_id ks8851_match_table[] = {
> diff --git a/drivers/net/ethernet/microchip/enc28j60.c b/drivers/net/ethernet/microchip/enc28j60.c
> index 634ac7649c43..db5a3edb4c3c 100644
> --- a/drivers/net/ethernet/microchip/enc28j60.c
> +++ b/drivers/net/ethernet/microchip/enc28j60.c
> @@ -1612,15 +1612,13 @@ static int enc28j60_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int enc28j60_remove(struct spi_device *spi)
> +static void enc28j60_remove(struct spi_device *spi)
> {
> struct enc28j60_net *priv = spi_get_drvdata(spi);
>
> unregister_netdev(priv->netdev);
> free_irq(spi->irq, priv);
> free_netdev(priv->netdev);
> -
> - return 0;
> }
>
> static const struct of_device_id enc28j60_dt_ids[] = {
> diff --git a/drivers/net/ethernet/microchip/encx24j600.c b/drivers/net/ethernet/microchip/encx24j600.c
> index b90efc80fb59..dc1840cb5b10 100644
> --- a/drivers/net/ethernet/microchip/encx24j600.c
> +++ b/drivers/net/ethernet/microchip/encx24j600.c
> @@ -1093,7 +1093,7 @@ static int encx24j600_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int encx24j600_spi_remove(struct spi_device *spi)
> +static void encx24j600_spi_remove(struct spi_device *spi)
> {
> struct encx24j600_priv *priv = dev_get_drvdata(&spi->dev);
>
> @@ -1101,8 +1101,6 @@ static int encx24j600_spi_remove(struct spi_device *spi)
> kthread_stop(priv->kworker_task);
>
> free_netdev(priv->ndev);
> -
> - return 0;
> }
>
> static const struct spi_device_id encx24j600_spi_id_table[] = {
> diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c b/drivers/net/ethernet/qualcomm/qca_spi.c
> index 955cce644392..3c5494afd3c0 100644
> --- a/drivers/net/ethernet/qualcomm/qca_spi.c
> +++ b/drivers/net/ethernet/qualcomm/qca_spi.c
> @@ -1001,7 +1001,7 @@ qca_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int
> +static void
> qca_spi_remove(struct spi_device *spi)
> {
> struct net_device *qcaspi_devs = spi_get_drvdata(spi);
> @@ -1011,8 +1011,6 @@ qca_spi_remove(struct spi_device *spi)
>
> unregister_netdev(qcaspi_devs);
> free_netdev(qcaspi_devs);
> -
> - return 0;
> }
>
> static const struct spi_device_id qca_spi_id[] = {
> diff --git a/drivers/net/ethernet/vertexcom/mse102x.c b/drivers/net/ethernet/vertexcom/mse102x.c
> index 89a31783fbb4..25739b182ac7 100644
> --- a/drivers/net/ethernet/vertexcom/mse102x.c
> +++ b/drivers/net/ethernet/vertexcom/mse102x.c
> @@ -731,7 +731,7 @@ static int mse102x_probe_spi(struct spi_device *spi)
> return 0;
> }
>
> -static int mse102x_remove_spi(struct spi_device *spi)
> +static void mse102x_remove_spi(struct spi_device *spi)
> {
> struct mse102x_net *mse = dev_get_drvdata(&spi->dev);
> struct mse102x_net_spi *mses = to_mse102x_spi(mse);
> @@ -741,8 +741,6 @@ static int mse102x_remove_spi(struct spi_device *spi)
>
> mse102x_remove_device_debugfs(mses);
> unregister_netdev(mse->ndev);
> -
> - return 0;
> }
>
> static const struct of_device_id mse102x_match_table[] = {
> diff --git a/drivers/net/ethernet/wiznet/w5100-spi.c b/drivers/net/ethernet/wiznet/w5100-spi.c
> index 7779a36da3c8..7c52796273a4 100644
> --- a/drivers/net/ethernet/wiznet/w5100-spi.c
> +++ b/drivers/net/ethernet/wiznet/w5100-spi.c
> @@ -461,11 +461,9 @@ static int w5100_spi_probe(struct spi_device *spi)
> return w5100_probe(&spi->dev, ops, priv_size, mac, spi->irq, -EINVAL);
> }
>
> -static int w5100_spi_remove(struct spi_device *spi)
> +static void w5100_spi_remove(struct spi_device *spi)
> {
> w5100_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id w5100_spi_ids[] = {
> diff --git a/drivers/net/ieee802154/adf7242.c b/drivers/net/ieee802154/adf7242.c
> index 7db9cbd0f5de..6afdf1622944 100644
> --- a/drivers/net/ieee802154/adf7242.c
> +++ b/drivers/net/ieee802154/adf7242.c
> @@ -1304,7 +1304,7 @@ static int adf7242_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int adf7242_remove(struct spi_device *spi)
> +static void adf7242_remove(struct spi_device *spi)
> {
> struct adf7242_local *lp = spi_get_drvdata(spi);
>
> @@ -1316,8 +1316,6 @@ static int adf7242_remove(struct spi_device *spi)
> ieee802154_unregister_hw(lp->hw);
> mutex_destroy(&lp->bmux);
> ieee802154_free_hw(lp->hw);
> -
> - return 0;
> }
>
> static const struct of_device_id adf7242_of_match[] = {
> diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c
> index 7d67f41387f5..a4734323dc29 100644
> --- a/drivers/net/ieee802154/at86rf230.c
> +++ b/drivers/net/ieee802154/at86rf230.c
> @@ -1759,7 +1759,7 @@ static int at86rf230_probe(struct spi_device *spi)
> return rc;
> }
>
> -static int at86rf230_remove(struct spi_device *spi)
> +static void at86rf230_remove(struct spi_device *spi)
> {
> struct at86rf230_local *lp = spi_get_drvdata(spi);
>
> @@ -1769,8 +1769,6 @@ static int at86rf230_remove(struct spi_device *spi)
> ieee802154_free_hw(lp->hw);
> at86rf230_debugfs_remove();
> dev_dbg(&spi->dev, "unregistered at86rf230\n");
> -
> - return 0;
> }
>
> static const struct of_device_id at86rf230_of_match[] = {
> diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca8210.c
> index ece6ff6049f6..b499bbe4d48f 100644
> --- a/drivers/net/ieee802154/ca8210.c
> +++ b/drivers/net/ieee802154/ca8210.c
> @@ -831,7 +831,7 @@ static void ca8210_rx_done(struct cas_control *cas_ctl)
> finish:;
> }
>
> -static int ca8210_remove(struct spi_device *spi_device);
> +static void ca8210_remove(struct spi_device *spi_device);
>
> /**
> * ca8210_spi_transfer_complete() - Called when a single spi transfer has
> @@ -3048,7 +3048,7 @@ static void ca8210_test_interface_clear(struct ca8210_priv *priv)
> *
> * Return: 0 or linux error code
> */
> -static int ca8210_remove(struct spi_device *spi_device)
> +static void ca8210_remove(struct spi_device *spi_device)
> {
> struct ca8210_priv *priv;
> struct ca8210_platform_data *pdata;
> @@ -3088,8 +3088,6 @@ static int ca8210_remove(struct spi_device *spi_device)
> if (IS_ENABLED(CONFIG_IEEE802154_CA8210_DEBUGFS))
> ca8210_test_interface_clear(priv);
> }
> -
> - return 0;
> }
>
> /**
> diff --git a/drivers/net/ieee802154/cc2520.c b/drivers/net/ieee802154/cc2520.c
> index 89c046b204e0..1e1f40f628a0 100644
> --- a/drivers/net/ieee802154/cc2520.c
> +++ b/drivers/net/ieee802154/cc2520.c
> @@ -1213,7 +1213,7 @@ static int cc2520_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int cc2520_remove(struct spi_device *spi)
> +static void cc2520_remove(struct spi_device *spi)
> {
> struct cc2520_private *priv = spi_get_drvdata(spi);
>
> @@ -1222,8 +1222,6 @@ static int cc2520_remove(struct spi_device *spi)
>
> ieee802154_unregister_hw(priv->hw);
> ieee802154_free_hw(priv->hw);
> -
> - return 0;
> }
>
> static const struct spi_device_id cc2520_ids[] = {
> diff --git a/drivers/net/ieee802154/mcr20a.c b/drivers/net/ieee802154/mcr20a.c
> index 8dc04e2590b1..a3af52a8e6dd 100644
> --- a/drivers/net/ieee802154/mcr20a.c
> +++ b/drivers/net/ieee802154/mcr20a.c
> @@ -1335,7 +1335,7 @@ mcr20a_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mcr20a_remove(struct spi_device *spi)
> +static void mcr20a_remove(struct spi_device *spi)
> {
> struct mcr20a_local *lp = spi_get_drvdata(spi);
>
> @@ -1343,8 +1343,6 @@ static int mcr20a_remove(struct spi_device *spi)
>
> ieee802154_unregister_hw(lp->hw);
> ieee802154_free_hw(lp->hw);
> -
> - return 0;
> }
>
> static const struct of_device_id mcr20a_of_match[] = {
> diff --git a/drivers/net/ieee802154/mrf24j40.c b/drivers/net/ieee802154/mrf24j40.c
> index ff83e00b77af..ee4cfbf2c5cc 100644
> --- a/drivers/net/ieee802154/mrf24j40.c
> +++ b/drivers/net/ieee802154/mrf24j40.c
> @@ -1356,7 +1356,7 @@ static int mrf24j40_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int mrf24j40_remove(struct spi_device *spi)
> +static void mrf24j40_remove(struct spi_device *spi)
> {
> struct mrf24j40 *devrec = spi_get_drvdata(spi);
>
> @@ -1366,8 +1366,6 @@ static int mrf24j40_remove(struct spi_device *spi)
> ieee802154_free_hw(devrec->hw);
> /* TODO: Will ieee802154_free_device() wait until ->xmit() is
> * complete? */
> -
> - return 0;
> }
>
> static const struct of_device_id mrf24j40_of_match[] = {
> diff --git a/drivers/net/phy/spi_ks8995.c b/drivers/net/phy/spi_ks8995.c
> index 8b5445a724ce..ff37f8ba6758 100644
> --- a/drivers/net/phy/spi_ks8995.c
> +++ b/drivers/net/phy/spi_ks8995.c
> @@ -517,7 +517,7 @@ static int ks8995_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ks8995_remove(struct spi_device *spi)
> +static void ks8995_remove(struct spi_device *spi)
> {
> struct ks8995_switch *ks = spi_get_drvdata(spi);
>
> @@ -526,8 +526,6 @@ static int ks8995_remove(struct spi_device *spi)
> /* assert reset */
> if (ks->pdata && gpio_is_valid(ks->pdata->reset_gpio))
> gpiod_set_value(gpio_to_desc(ks->pdata->reset_gpio), 1);
> -
> - return 0;
> }
>
> /* ------------------------------------------------------------------------ */
> diff --git a/drivers/net/wan/slic_ds26522.c b/drivers/net/wan/slic_ds26522.c
> index 8e3b1c717c10..6063552cea9b 100644
> --- a/drivers/net/wan/slic_ds26522.c
> +++ b/drivers/net/wan/slic_ds26522.c
> @@ -194,10 +194,9 @@ static int slic_ds26522_init_configure(struct spi_device *spi)
> return 0;
> }
>
> -static int slic_ds26522_remove(struct spi_device *spi)
> +static void slic_ds26522_remove(struct spi_device *spi)
> {
> pr_info("DS26522 module uninstalled\n");
> - return 0;
> }
>
> static int slic_ds26522_probe(struct spi_device *spi)
> diff --git a/drivers/net/wireless/intersil/p54/p54spi.c b/drivers/net/wireless/intersil/p54/p54spi.c
> index ab0fe8565851..f99b7ba69fc3 100644
> --- a/drivers/net/wireless/intersil/p54/p54spi.c
> +++ b/drivers/net/wireless/intersil/p54/p54spi.c
> @@ -669,7 +669,7 @@ static int p54spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int p54spi_remove(struct spi_device *spi)
> +static void p54spi_remove(struct spi_device *spi)
> {
> struct p54s_priv *priv = spi_get_drvdata(spi);
>
> @@ -684,8 +684,6 @@ static int p54spi_remove(struct spi_device *spi)
> mutex_destroy(&priv->mutex);
>
> p54_free_common(priv->hw);
> -
> - return 0;
> }
>
>
> diff --git a/drivers/net/wireless/marvell/libertas/if_spi.c b/drivers/net/wireless/marvell/libertas/if_spi.c
> index cd9f8ecf171f..ff1c7ec8c450 100644
> --- a/drivers/net/wireless/marvell/libertas/if_spi.c
> +++ b/drivers/net/wireless/marvell/libertas/if_spi.c
> @@ -1195,7 +1195,7 @@ static int if_spi_probe(struct spi_device *spi)
> return err;
> }
>
> -static int libertas_spi_remove(struct spi_device *spi)
> +static void libertas_spi_remove(struct spi_device *spi)
> {
> struct if_spi_card *card = spi_get_drvdata(spi);
> struct lbs_private *priv = card->priv;
> @@ -1212,8 +1212,6 @@ static int libertas_spi_remove(struct spi_device *spi)
> if (card->pdata->teardown)
> card->pdata->teardown(spi);
> free_if_spi_card(card);
> -
> - return 0;
> }
>
> static int if_spi_suspend(struct device *dev)
> diff --git a/drivers/net/wireless/microchip/wilc1000/spi.c b/drivers/net/wireless/microchip/wilc1000/spi.c
> index 2c2ed4b09efd..d2db52289399 100644
> --- a/drivers/net/wireless/microchip/wilc1000/spi.c
> +++ b/drivers/net/wireless/microchip/wilc1000/spi.c
> @@ -240,7 +240,7 @@ static int wilc_bus_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wilc_bus_remove(struct spi_device *spi)
> +static void wilc_bus_remove(struct spi_device *spi)
> {
> struct wilc *wilc = spi_get_drvdata(spi);
> struct wilc_spi *spi_priv = wilc->bus_data;
> @@ -248,8 +248,6 @@ static int wilc_bus_remove(struct spi_device *spi)
> clk_disable_unprepare(wilc->rtc_clk);
> wilc_netdev_cleanup(wilc);
> kfree(spi_priv);
> -
> - return 0;
> }
>
> static const struct of_device_id wilc_of_match[] = {
> diff --git a/drivers/net/wireless/st/cw1200/cw1200_spi.c b/drivers/net/wireless/st/cw1200/cw1200_spi.c
> index 271ed2ce2d7f..fe0d220da44d 100644
> --- a/drivers/net/wireless/st/cw1200/cw1200_spi.c
> +++ b/drivers/net/wireless/st/cw1200/cw1200_spi.c
> @@ -423,7 +423,7 @@ static int cw1200_spi_probe(struct spi_device *func)
> }
>
> /* Disconnect Function to be called by SPI stack when device is disconnected */
> -static int cw1200_spi_disconnect(struct spi_device *func)
> +static void cw1200_spi_disconnect(struct spi_device *func)
> {
> struct hwbus_priv *self = spi_get_drvdata(func);
>
> @@ -435,8 +435,6 @@ static int cw1200_spi_disconnect(struct spi_device *func)
> }
> }
> cw1200_spi_off(dev_get_platdata(&func->dev));
> -
> - return 0;
> }
>
> static int __maybe_unused cw1200_spi_suspend(struct device *dev)
> diff --git a/drivers/net/wireless/ti/wl1251/spi.c b/drivers/net/wireless/ti/wl1251/spi.c
> index 5b894bd6237e..9df38726e8b0 100644
> --- a/drivers/net/wireless/ti/wl1251/spi.c
> +++ b/drivers/net/wireless/ti/wl1251/spi.c
> @@ -327,14 +327,12 @@ static int wl1251_spi_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wl1251_spi_remove(struct spi_device *spi)
> +static void wl1251_spi_remove(struct spi_device *spi)
> {
> struct wl1251 *wl = spi_get_drvdata(spi);
>
> wl1251_free_hw(wl);
> regulator_disable(wl->vio);
> -
> - return 0;
> }
>
> static struct spi_driver wl1251_spi_driver = {
> diff --git a/drivers/net/wireless/ti/wlcore/spi.c b/drivers/net/wireless/ti/wlcore/spi.c
> index 354a7e1c3315..7eae1ec2eb2b 100644
> --- a/drivers/net/wireless/ti/wlcore/spi.c
> +++ b/drivers/net/wireless/ti/wlcore/spi.c
> @@ -546,13 +546,11 @@ static int wl1271_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int wl1271_remove(struct spi_device *spi)
> +static void wl1271_remove(struct spi_device *spi)
> {
> struct wl12xx_spi_glue *glue = spi_get_drvdata(spi);
>
> platform_device_unregister(glue->core);
> -
> - return 0;
> }
>
> static struct spi_driver wl1271_spi_driver = {
> diff --git a/drivers/nfc/nfcmrvl/spi.c b/drivers/nfc/nfcmrvl/spi.c
> index 5b833a9a83f8..a38e2fcdfd39 100644
> --- a/drivers/nfc/nfcmrvl/spi.c
> +++ b/drivers/nfc/nfcmrvl/spi.c
> @@ -174,12 +174,11 @@ static int nfcmrvl_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int nfcmrvl_spi_remove(struct spi_device *spi)
> +static void nfcmrvl_spi_remove(struct spi_device *spi)
> {
> struct nfcmrvl_spi_drv_data *drv_data = spi_get_drvdata(spi);
>
> nfcmrvl_nci_unregister_dev(drv_data->priv);
> - return 0;
> }
>
> static const struct of_device_id of_nfcmrvl_spi_match[] __maybe_unused = {
> diff --git a/drivers/nfc/st-nci/spi.c b/drivers/nfc/st-nci/spi.c
> index 4e723992e74c..169eacc0a32a 100644
> --- a/drivers/nfc/st-nci/spi.c
> +++ b/drivers/nfc/st-nci/spi.c
> @@ -263,13 +263,11 @@ static int st_nci_spi_probe(struct spi_device *dev)
> return r;
> }
>
> -static int st_nci_spi_remove(struct spi_device *dev)
> +static void st_nci_spi_remove(struct spi_device *dev)
> {
> struct st_nci_spi_phy *phy = spi_get_drvdata(dev);
>
> ndlc_remove(phy->ndlc);
> -
> - return 0;
> }
>
> static struct spi_device_id st_nci_spi_id_table[] = {
> diff --git a/drivers/nfc/st95hf/core.c b/drivers/nfc/st95hf/core.c
> index b23f47936473..ed704bb77226 100644
> --- a/drivers/nfc/st95hf/core.c
> +++ b/drivers/nfc/st95hf/core.c
> @@ -1198,7 +1198,7 @@ static int st95hf_probe(struct spi_device *nfc_spi_dev)
> return ret;
> }
>
> -static int st95hf_remove(struct spi_device *nfc_spi_dev)
> +static void st95hf_remove(struct spi_device *nfc_spi_dev)
> {
> int result = 0;
> unsigned char reset_cmd = ST95HF_COMMAND_RESET;
> @@ -1236,8 +1236,6 @@ static int st95hf_remove(struct spi_device *nfc_spi_dev)
> /* disable regulator */
> if (stcontext->st95hf_supply)
> regulator_disable(stcontext->st95hf_supply);
> -
> - return 0;
> }
>
> /* Register as SPI protocol driver */
> diff --git a/drivers/nfc/trf7970a.c b/drivers/nfc/trf7970a.c
> index 29ca9c328df2..21d68664fe08 100644
> --- a/drivers/nfc/trf7970a.c
> +++ b/drivers/nfc/trf7970a.c
> @@ -2144,7 +2144,7 @@ static int trf7970a_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int trf7970a_remove(struct spi_device *spi)
> +static void trf7970a_remove(struct spi_device *spi)
> {
> struct trf7970a *trf = spi_get_drvdata(spi);
>
> @@ -2160,8 +2160,6 @@ static int trf7970a_remove(struct spi_device *spi)
> regulator_disable(trf->regulator);
>
> mutex_destroy(&trf->lock);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/platform/chrome/cros_ec_spi.c b/drivers/platform/chrome/cros_ec_spi.c
> index 713c58687721..8493af0f680e 100644
> --- a/drivers/platform/chrome/cros_ec_spi.c
> +++ b/drivers/platform/chrome/cros_ec_spi.c
> @@ -786,13 +786,11 @@ static int cros_ec_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int cros_ec_spi_remove(struct spi_device *spi)
> +static void cros_ec_spi_remove(struct spi_device *spi)
> {
> struct cros_ec_device *ec_dev = spi_get_drvdata(spi);
>
> cros_ec_unregister(ec_dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/platform/olpc/olpc-xo175-ec.c b/drivers/platform/olpc/olpc-xo175-ec.c
> index 0d46706afd2d..4823bd2819f6 100644
> --- a/drivers/platform/olpc/olpc-xo175-ec.c
> +++ b/drivers/platform/olpc/olpc-xo175-ec.c
> @@ -648,7 +648,7 @@ static struct olpc_ec_driver olpc_xo175_ec_driver = {
> .ec_cmd = olpc_xo175_ec_cmd,
> };
>
> -static int olpc_xo175_ec_remove(struct spi_device *spi)
> +static void olpc_xo175_ec_remove(struct spi_device *spi)
> {
> if (pm_power_off == olpc_xo175_ec_power_off)
> pm_power_off = NULL;
> @@ -657,8 +657,6 @@ static int olpc_xo175_ec_remove(struct spi_device *spi)
>
> platform_device_unregister(olpc_ec);
> olpc_ec = NULL;
> -
> - return 0;
> }
>
> static int olpc_xo175_ec_probe(struct spi_device *spi)
> diff --git a/drivers/rtc/rtc-ds1302.c b/drivers/rtc/rtc-ds1302.c
> index 2f83adef966e..6d66ab5a8b17 100644
> --- a/drivers/rtc/rtc-ds1302.c
> +++ b/drivers/rtc/rtc-ds1302.c
> @@ -185,10 +185,9 @@ static int ds1302_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1302_remove(struct spi_device *spi)
> +static void ds1302_remove(struct spi_device *spi)
> {
> spi_set_drvdata(spi, NULL);
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/drivers/rtc/rtc-ds1305.c b/drivers/rtc/rtc-ds1305.c
> index 9ef107b99b65..ed9360486953 100644
> --- a/drivers/rtc/rtc-ds1305.c
> +++ b/drivers/rtc/rtc-ds1305.c
> @@ -720,7 +720,7 @@ static int ds1305_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1305_remove(struct spi_device *spi)
> +static void ds1305_remove(struct spi_device *spi)
> {
> struct ds1305 *ds1305 = spi_get_drvdata(spi);
>
> @@ -730,8 +730,6 @@ static int ds1305_remove(struct spi_device *spi)
> devm_free_irq(&spi->dev, spi->irq, ds1305);
> cancel_work_sync(&ds1305->work);
> }
> -
> - return 0;
> }
>
> static struct spi_driver ds1305_driver = {
> diff --git a/drivers/rtc/rtc-ds1343.c b/drivers/rtc/rtc-ds1343.c
> index f14ed6c96437..ed5a6ba89a3e 100644
> --- a/drivers/rtc/rtc-ds1343.c
> +++ b/drivers/rtc/rtc-ds1343.c
> @@ -434,11 +434,9 @@ static int ds1343_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ds1343_remove(struct spi_device *spi)
> +static void ds1343_remove(struct spi_device *spi)
> {
> dev_pm_clear_wake_irq(&spi->dev);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c
> index 37f4443ce9a0..e9d83d65873b 100644
> --- a/drivers/spi/spi-mem.c
> +++ b/drivers/spi/spi-mem.c
> @@ -854,15 +854,13 @@ static int spi_mem_probe(struct spi_device *spi)
> return memdrv->probe(mem);
> }
>
> -static int spi_mem_remove(struct spi_device *spi)
> +static void spi_mem_remove(struct spi_device *spi)
> {
> struct spi_mem_driver *memdrv = to_spi_mem_drv(spi->dev.driver);
> struct spi_mem *mem = spi_get_drvdata(spi);
>
> if (memdrv->remove)
> - return memdrv->remove(mem);
> -
> - return 0;
> + memdrv->remove(mem);
> }
>
> static void spi_mem_shutdown(struct spi_device *spi)
> diff --git a/drivers/spi/spi-slave-system-control.c b/drivers/spi/spi-slave-system-control.c
> index 169f3d595f60..d37cfe995a63 100644
> --- a/drivers/spi/spi-slave-system-control.c
> +++ b/drivers/spi/spi-slave-system-control.c
> @@ -132,13 +132,12 @@ static int spi_slave_system_control_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_slave_system_control_remove(struct spi_device *spi)
> +static void spi_slave_system_control_remove(struct spi_device *spi)
> {
> struct spi_slave_system_control_priv *priv = spi_get_drvdata(spi);
>
> spi_slave_abort(spi);
> wait_for_completion(&priv->finished);
> - return 0;
> }
>
> static struct spi_driver spi_slave_system_control_driver = {
> diff --git a/drivers/spi/spi-slave-time.c b/drivers/spi/spi-slave-time.c
> index f2e07a392d68..f56c1afb8534 100644
> --- a/drivers/spi/spi-slave-time.c
> +++ b/drivers/spi/spi-slave-time.c
> @@ -106,13 +106,12 @@ static int spi_slave_time_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int spi_slave_time_remove(struct spi_device *spi)
> +static void spi_slave_time_remove(struct spi_device *spi)
> {
> struct spi_slave_time_priv *priv = spi_get_drvdata(spi);
>
> spi_slave_abort(spi);
> wait_for_completion(&priv->finished);
> - return 0;
> }
>
> static struct spi_driver spi_slave_time_driver = {
> diff --git a/drivers/spi/spi-tle62x0.c b/drivers/spi/spi-tle62x0.c
> index f8ad0709d015..a565352f6381 100644
> --- a/drivers/spi/spi-tle62x0.c
> +++ b/drivers/spi/spi-tle62x0.c
> @@ -288,7 +288,7 @@ static int tle62x0_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tle62x0_remove(struct spi_device *spi)
> +static void tle62x0_remove(struct spi_device *spi)
> {
> struct tle62x0_state *st = spi_get_drvdata(spi);
> int ptr;
> @@ -298,7 +298,6 @@ static int tle62x0_remove(struct spi_device *spi)
>
> device_remove_file(&spi->dev, &dev_attr_status_show);
> kfree(st);
> - return 0;
> }
>
> static struct spi_driver tle62x0_driver = {
> diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
> index 4599b121d744..ead9a132dcb9 100644
> --- a/drivers/spi/spi.c
> +++ b/drivers/spi/spi.c
> @@ -404,15 +404,8 @@ static void spi_remove(struct device *dev)
> {
> const struct spi_driver *sdrv = to_spi_driver(dev->driver);
>
> - if (sdrv->remove) {
> - int ret;
> -
> - ret = sdrv->remove(to_spi_device(dev));
> - if (ret)
> - dev_warn(dev,
> - "Failed to unbind driver (%pe), ignoring\n",
> - ERR_PTR(ret));
> - }
> + if (sdrv->remove)
> + sdrv->remove(to_spi_device(dev));
>
> dev_pm_domain_detach(dev, true);
> }
> diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
> index a5cceca8b82b..9468f74308bd 100644
> --- a/drivers/spi/spidev.c
> +++ b/drivers/spi/spidev.c
> @@ -803,7 +803,7 @@ static int spidev_probe(struct spi_device *spi)
> return status;
> }
>
> -static int spidev_remove(struct spi_device *spi)
> +static void spidev_remove(struct spi_device *spi)
> {
> struct spidev_data *spidev = spi_get_drvdata(spi);
>
> @@ -820,8 +820,6 @@ static int spidev_remove(struct spi_device *spi)
> if (spidev->users == 0)
> kfree(spidev);
> mutex_unlock(&device_list_lock);
> -
> - return 0;
> }
>
> static struct spi_driver spidev_spi_driver = {
> diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h
> index 6a7545b5bcd2..b68f5f9b7c78 100644
> --- a/drivers/staging/fbtft/fbtft.h
> +++ b/drivers/staging/fbtft/fbtft.h
> @@ -286,12 +286,11 @@ static int fbtft_driver_probe_spi(struct spi_device *spi) \
> return fbtft_probe_common(_display, spi, NULL); \
> } \
> \
> -static int fbtft_driver_remove_spi(struct spi_device *spi) \
> +static void fbtft_driver_remove_spi(struct spi_device *spi) \
> { \
> struct fb_info *info = spi_get_drvdata(spi); \
> \
> fbtft_remove_common(&spi->dev, info); \
> - return 0; \
> } \
> \
> static struct spi_driver fbtft_driver_spi_driver = { \
> diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c
> index 68c09fa016ed..1d31c35875e3 100644
> --- a/drivers/staging/pi433/pi433_if.c
> +++ b/drivers/staging/pi433/pi433_if.c
> @@ -1264,7 +1264,7 @@ static int pi433_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int pi433_remove(struct spi_device *spi)
> +static void pi433_remove(struct spi_device *spi)
> {
> struct pi433_device *device = spi_get_drvdata(spi);
>
> @@ -1284,8 +1284,6 @@ static int pi433_remove(struct spi_device *spi)
>
> kfree(device->rx_buffer);
> kfree(device);
> -
> - return 0;
> }
>
> static const struct of_device_id pi433_dt_ids[] = {
> diff --git a/drivers/staging/wfx/bus_spi.c b/drivers/staging/wfx/bus_spi.c
> index 55ffcd7c42e2..fa0ff66a457d 100644
> --- a/drivers/staging/wfx/bus_spi.c
> +++ b/drivers/staging/wfx/bus_spi.c
> @@ -232,12 +232,11 @@ static int wfx_spi_probe(struct spi_device *func)
> return wfx_probe(bus->core);
> }
>
> -static int wfx_spi_remove(struct spi_device *func)
> +static void wfx_spi_remove(struct spi_device *func)
> {
> struct wfx_spi_priv *bus = spi_get_drvdata(func);
>
> wfx_release(bus->core);
> - return 0;
> }
>
> /* For dynamic driver binding, kernel does not use OF to match driver. It only
> diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c
> index 3c92d4e01488..516cff362434 100644
> --- a/drivers/tty/serial/max3100.c
> +++ b/drivers/tty/serial/max3100.c
> @@ -805,7 +805,7 @@ static int max3100_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int max3100_remove(struct spi_device *spi)
> +static void max3100_remove(struct spi_device *spi)
> {
> struct max3100_port *s = spi_get_drvdata(spi);
> int i;
> @@ -828,13 +828,12 @@ static int max3100_remove(struct spi_device *spi)
> for (i = 0; i < MAX_MAX3100; i++)
> if (max3100s[i]) {
> mutex_unlock(&max3100s_lock);
> - return 0;
> + return;
> }
> pr_debug("removing max3100 driver\n");
> uart_unregister_driver(&max3100_uart_driver);
>
> mutex_unlock(&max3100s_lock);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c
> index dde0824b2fa5..3112b4a05448 100644
> --- a/drivers/tty/serial/max310x.c
> +++ b/drivers/tty/serial/max310x.c
> @@ -1487,10 +1487,9 @@ static int max310x_spi_probe(struct spi_device *spi)
> return max310x_probe(&spi->dev, devtype, regmap, spi->irq);
> }
>
> -static int max310x_spi_remove(struct spi_device *spi)
> +static void max310x_spi_remove(struct spi_device *spi)
> {
> max310x_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id max310x_id_table[] = {
> diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c
> index 64e7e6c8145f..25d67b8c4db7 100644
> --- a/drivers/tty/serial/sc16is7xx.c
> +++ b/drivers/tty/serial/sc16is7xx.c
> @@ -1440,11 +1440,9 @@ static int sc16is7xx_spi_probe(struct spi_device *spi)
> return sc16is7xx_probe(&spi->dev, devtype, regmap, spi->irq);
> }
>
> -static int sc16is7xx_spi_remove(struct spi_device *spi)
> +static void sc16is7xx_spi_remove(struct spi_device *spi)
> {
> sc16is7xx_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id sc16is7xx_spi_id_table[] = {
> diff --git a/drivers/usb/gadget/udc/max3420_udc.c b/drivers/usb/gadget/udc/max3420_udc.c
> index d2a2b20cc1ad..7d9bd16190c0 100644
> --- a/drivers/usb/gadget/udc/max3420_udc.c
> +++ b/drivers/usb/gadget/udc/max3420_udc.c
> @@ -1292,7 +1292,7 @@ static int max3420_probe(struct spi_device *spi)
> return err;
> }
>
> -static int max3420_remove(struct spi_device *spi)
> +static void max3420_remove(struct spi_device *spi)
> {
> struct max3420_udc *udc = spi_get_drvdata(spi);
> unsigned long flags;
> @@ -1304,8 +1304,6 @@ static int max3420_remove(struct spi_device *spi)
> kthread_stop(udc->thread_task);
>
> spin_unlock_irqrestore(&udc->lock, flags);
> -
> - return 0;
> }
>
> static const struct of_device_id max3420_udc_of_match[] = {
> diff --git a/drivers/usb/host/max3421-hcd.c b/drivers/usb/host/max3421-hcd.c
> index 30de85a707fe..99a5523a79fb 100644
> --- a/drivers/usb/host/max3421-hcd.c
> +++ b/drivers/usb/host/max3421-hcd.c
> @@ -1926,7 +1926,7 @@ max3421_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int
> +static void
> max3421_remove(struct spi_device *spi)
> {
> struct max3421_hcd *max3421_hcd;
> @@ -1947,7 +1947,6 @@ max3421_remove(struct spi_device *spi)
> free_irq(spi->irq, hcd);
>
> usb_put_hcd(hcd);
> - return 0;
> }
>
> static const struct of_device_id max3421_of_match_table[] = {
> diff --git a/drivers/video/backlight/ams369fg06.c b/drivers/video/backlight/ams369fg06.c
> index 8a4361e95a11..522dd81110b8 100644
> --- a/drivers/video/backlight/ams369fg06.c
> +++ b/drivers/video/backlight/ams369fg06.c
> @@ -506,12 +506,11 @@ static int ams369fg06_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ams369fg06_remove(struct spi_device *spi)
> +static void ams369fg06_remove(struct spi_device *spi)
> {
> struct ams369fg06 *lcd = spi_get_drvdata(spi);
>
> ams369fg06_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c
> index 33f5d80495e6..0a57033ae31d 100644
> --- a/drivers/video/backlight/corgi_lcd.c
> +++ b/drivers/video/backlight/corgi_lcd.c
> @@ -542,7 +542,7 @@ static int corgi_lcd_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int corgi_lcd_remove(struct spi_device *spi)
> +static void corgi_lcd_remove(struct spi_device *spi)
> {
> struct corgi_lcd *lcd = spi_get_drvdata(spi);
>
> @@ -550,7 +550,6 @@ static int corgi_lcd_remove(struct spi_device *spi)
> lcd->bl_dev->props.brightness = 0;
> backlight_update_status(lcd->bl_dev);
> corgi_lcd_set_power(lcd->lcd_dev, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> static struct spi_driver corgi_lcd_driver = {
> diff --git a/drivers/video/backlight/ili922x.c b/drivers/video/backlight/ili922x.c
> index 328aba9cddad..e7b6bd827986 100644
> --- a/drivers/video/backlight/ili922x.c
> +++ b/drivers/video/backlight/ili922x.c
> @@ -526,10 +526,9 @@ static int ili922x_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ili922x_remove(struct spi_device *spi)
> +static void ili922x_remove(struct spi_device *spi)
> {
> ili922x_poweroff(spi);
> - return 0;
> }
>
> static struct spi_driver ili922x_driver = {
> diff --git a/drivers/video/backlight/l4f00242t03.c b/drivers/video/backlight/l4f00242t03.c
> index 46f97d1c3d21..cc763cf15f53 100644
> --- a/drivers/video/backlight/l4f00242t03.c
> +++ b/drivers/video/backlight/l4f00242t03.c
> @@ -223,12 +223,11 @@ static int l4f00242t03_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int l4f00242t03_remove(struct spi_device *spi)
> +static void l4f00242t03_remove(struct spi_device *spi)
> {
> struct l4f00242t03_priv *priv = spi_get_drvdata(spi);
>
> l4f00242t03_lcd_power_set(priv->ld, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> static void l4f00242t03_shutdown(struct spi_device *spi)
> diff --git a/drivers/video/backlight/lms501kf03.c b/drivers/video/backlight/lms501kf03.c
> index f949b66dce1b..5c46df8022bf 100644
> --- a/drivers/video/backlight/lms501kf03.c
> +++ b/drivers/video/backlight/lms501kf03.c
> @@ -364,12 +364,11 @@ static int lms501kf03_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int lms501kf03_remove(struct spi_device *spi)
> +static void lms501kf03_remove(struct spi_device *spi)
> {
> struct lms501kf03 *lcd = spi_get_drvdata(spi);
>
> lms501kf03_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/ltv350qv.c b/drivers/video/backlight/ltv350qv.c
> index 5cbf621e48bd..b6d373af6e3f 100644
> --- a/drivers/video/backlight/ltv350qv.c
> +++ b/drivers/video/backlight/ltv350qv.c
> @@ -255,12 +255,11 @@ static int ltv350qv_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int ltv350qv_remove(struct spi_device *spi)
> +static void ltv350qv_remove(struct spi_device *spi)
> {
> struct ltv350qv *lcd = spi_get_drvdata(spi);
>
> ltv350qv_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/tdo24m.c b/drivers/video/backlight/tdo24m.c
> index 0de044dcafd5..fc6fbaf85594 100644
> --- a/drivers/video/backlight/tdo24m.c
> +++ b/drivers/video/backlight/tdo24m.c
> @@ -397,12 +397,11 @@ static int tdo24m_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int tdo24m_remove(struct spi_device *spi)
> +static void tdo24m_remove(struct spi_device *spi)
> {
> struct tdo24m *lcd = spi_get_drvdata(spi);
>
> tdo24m_power(lcd, FB_BLANK_POWERDOWN);
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/tosa_lcd.c b/drivers/video/backlight/tosa_lcd.c
> index 38765544345b..23d6c6bf0f54 100644
> --- a/drivers/video/backlight/tosa_lcd.c
> +++ b/drivers/video/backlight/tosa_lcd.c
> @@ -232,15 +232,13 @@ static int tosa_lcd_probe(struct spi_device *spi)
> return ret;
> }
>
> -static int tosa_lcd_remove(struct spi_device *spi)
> +static void tosa_lcd_remove(struct spi_device *spi)
> {
> struct tosa_lcd_data *data = spi_get_drvdata(spi);
>
> i2c_unregister_device(data->i2c);
>
> tosa_lcd_tg_off(data);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/backlight/vgg2432a4.c b/drivers/video/backlight/vgg2432a4.c
> index 3567b45f9ba9..bfc1913e8b55 100644
> --- a/drivers/video/backlight/vgg2432a4.c
> +++ b/drivers/video/backlight/vgg2432a4.c
> @@ -233,11 +233,9 @@ static int vgg2432a4_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int vgg2432a4_remove(struct spi_device *spi)
> +static void vgg2432a4_remove(struct spi_device *spi)
> {
> ili9320_remove(spi_get_drvdata(spi));
> -
> - return 0;
> }
>
> static void vgg2432a4_shutdown(struct spi_device *spi)
> diff --git a/drivers/video/fbdev/omap/lcd_mipid.c b/drivers/video/fbdev/omap/lcd_mipid.c
> index a75ae0c9b14c..03cff39d392d 100644
> --- a/drivers/video/fbdev/omap/lcd_mipid.c
> +++ b/drivers/video/fbdev/omap/lcd_mipid.c
> @@ -570,14 +570,12 @@ static int mipid_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int mipid_spi_remove(struct spi_device *spi)
> +static void mipid_spi_remove(struct spi_device *spi)
> {
> struct mipid_device *md = dev_get_drvdata(&spi->dev);
>
> mipid_disable(&md->panel);
> kfree(md);
> -
> - return 0;
> }
>
> static struct spi_driver mipid_spi_driver = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> index 1bec7a4422e8..aab67721263d 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02.c
> @@ -316,7 +316,7 @@ static int lb035q02_panel_spi_probe(struct spi_device *spi)
> return r;
> }
>
> -static int lb035q02_panel_spi_remove(struct spi_device *spi)
> +static void lb035q02_panel_spi_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = spi_get_drvdata(spi);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -328,8 +328,6 @@ static int lb035q02_panel_spi_remove(struct spi_device *spi)
> lb035q02_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id lb035q02_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> index dff9ebbadfc0..be9910ff6e62 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-nec-nl8048hl11.c
> @@ -327,7 +327,7 @@ static int nec_8048_probe(struct spi_device *spi)
> return r;
> }
>
> -static int nec_8048_remove(struct spi_device *spi)
> +static void nec_8048_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -341,8 +341,6 @@ static int nec_8048_remove(struct spi_device *spi)
> nec_8048_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> index 8d8b5ff7d43c..a909b5385ca5 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c
> @@ -857,7 +857,7 @@ static int acx565akm_probe(struct spi_device *spi)
> return r;
> }
>
> -static int acx565akm_remove(struct spi_device *spi)
> +static void acx565akm_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -874,8 +874,6 @@ static int acx565akm_remove(struct spi_device *spi)
> acx565akm_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id acx565akm_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> index 595ebd8bd5dc..3c0f887d3092 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td028ttec1.c
> @@ -425,7 +425,7 @@ static int td028ttec1_panel_probe(struct spi_device *spi)
> return r;
> }
>
> -static int td028ttec1_panel_remove(struct spi_device *spi)
> +static void td028ttec1_panel_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -439,8 +439,6 @@ static int td028ttec1_panel_remove(struct spi_device *spi)
> td028ttec1_panel_disconnect(dssdev);
>
> omap_dss_put_device(in);
> -
> - return 0;
> }
>
> static const struct of_device_id td028ttec1_of_match[] = {
> diff --git a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> index afac1d9445aa..58bbba7c037f 100644
> --- a/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> +++ b/drivers/video/fbdev/omap2/omapfb/displays/panel-tpo-td043mtea1.c
> @@ -564,7 +564,7 @@ static int tpo_td043_probe(struct spi_device *spi)
> return r;
> }
>
> -static int tpo_td043_remove(struct spi_device *spi)
> +static void tpo_td043_remove(struct spi_device *spi)
> {
> struct panel_drv_data *ddata = dev_get_drvdata(&spi->dev);
> struct omap_dss_device *dssdev = &ddata->dssdev;
> @@ -580,8 +580,6 @@ static int tpo_td043_remove(struct spi_device *spi)
> omap_dss_put_device(in);
>
> sysfs_remove_group(&spi->dev.kobj, &tpo_td043_attr_group);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
> index 7ab3fed7b804..c84e61b99c7b 100644
> --- a/include/linux/spi/spi.h
> +++ b/include/linux/spi/spi.h
> @@ -280,7 +280,7 @@ struct spi_message;
> struct spi_driver {
> const struct spi_device_id *id_table;
> int (*probe)(struct spi_device *spi);
> - int (*remove)(struct spi_device *spi);
> + void (*remove)(struct spi_device *spi);
> void (*shutdown)(struct spi_device *spi);
> struct device_driver driver;
> };
> diff --git a/sound/pci/hda/cs35l41_hda_spi.c b/sound/pci/hda/cs35l41_hda_spi.c
> index 9f8123893cc8..50eb6c0e6658 100644
> --- a/sound/pci/hda/cs35l41_hda_spi.c
> +++ b/sound/pci/hda/cs35l41_hda_spi.c
> @@ -28,11 +28,9 @@ static int cs35l41_hda_spi_probe(struct spi_device *spi)
> devm_regmap_init_spi(spi, &cs35l41_regmap_spi));
> }
>
> -static int cs35l41_hda_spi_remove(struct spi_device *spi)
> +static void cs35l41_hda_spi_remove(struct spi_device *spi)
> {
> cs35l41_hda_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id cs35l41_hda_spi_id[] = {
> diff --git a/sound/soc/codecs/adau1761-spi.c b/sound/soc/codecs/adau1761-spi.c
> index 655689c9778a..7c9242c2ff94 100644
> --- a/sound/soc/codecs/adau1761-spi.c
> +++ b/sound/soc/codecs/adau1761-spi.c
> @@ -45,10 +45,9 @@ static int adau1761_spi_probe(struct spi_device *spi)
> id->driver_data, adau1761_spi_switch_mode);
> }
>
> -static int adau1761_spi_remove(struct spi_device *spi)
> +static void adau1761_spi_remove(struct spi_device *spi)
> {
> adau17x1_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id adau1761_spi_id[] = {
> diff --git a/sound/soc/codecs/adau1781-spi.c b/sound/soc/codecs/adau1781-spi.c
> index bb5613574786..1a09633d5a88 100644
> --- a/sound/soc/codecs/adau1781-spi.c
> +++ b/sound/soc/codecs/adau1781-spi.c
> @@ -45,10 +45,9 @@ static int adau1781_spi_probe(struct spi_device *spi)
> id->driver_data, adau1781_spi_switch_mode);
> }
>
> -static int adau1781_spi_remove(struct spi_device *spi)
> +static void adau1781_spi_remove(struct spi_device *spi)
> {
> adau17x1_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id adau1781_spi_id[] = {
> diff --git a/sound/soc/codecs/cs35l41-spi.c b/sound/soc/codecs/cs35l41-spi.c
> index 6dfd5459aa20..169221a5b09f 100644
> --- a/sound/soc/codecs/cs35l41-spi.c
> +++ b/sound/soc/codecs/cs35l41-spi.c
> @@ -55,13 +55,11 @@ static int cs35l41_spi_probe(struct spi_device *spi)
> return cs35l41_probe(cs35l41, pdata);
> }
>
> -static int cs35l41_spi_remove(struct spi_device *spi)
> +static void cs35l41_spi_remove(struct spi_device *spi)
> {
> struct cs35l41_private *cs35l41 = spi_get_drvdata(spi);
>
> cs35l41_remove(cs35l41);
> -
> - return 0;
> }
>
> #ifdef CONFIG_OF
> diff --git a/sound/soc/codecs/pcm3168a-spi.c b/sound/soc/codecs/pcm3168a-spi.c
> index ecd379f308e6..b5b08046f545 100644
> --- a/sound/soc/codecs/pcm3168a-spi.c
> +++ b/sound/soc/codecs/pcm3168a-spi.c
> @@ -26,11 +26,9 @@ static int pcm3168a_spi_probe(struct spi_device *spi)
> return pcm3168a_probe(&spi->dev, regmap);
> }
>
> -static int pcm3168a_spi_remove(struct spi_device *spi)
> +static void pcm3168a_spi_remove(struct spi_device *spi)
> {
> pcm3168a_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id pcm3168a_spi_id[] = {
> diff --git a/sound/soc/codecs/pcm512x-spi.c b/sound/soc/codecs/pcm512x-spi.c
> index 7cf559b47e1c..4d29e7196380 100644
> --- a/sound/soc/codecs/pcm512x-spi.c
> +++ b/sound/soc/codecs/pcm512x-spi.c
> @@ -26,10 +26,9 @@ static int pcm512x_spi_probe(struct spi_device *spi)
> return pcm512x_probe(&spi->dev, regmap);
> }
>
> -static int pcm512x_spi_remove(struct spi_device *spi)
> +static void pcm512x_spi_remove(struct spi_device *spi)
> {
> pcm512x_remove(&spi->dev);
> - return 0;
> }
>
> static const struct spi_device_id pcm512x_spi_id[] = {
> diff --git a/sound/soc/codecs/tlv320aic32x4-spi.c b/sound/soc/codecs/tlv320aic32x4-spi.c
> index a8958cd1c692..03cce8d6404f 100644
> --- a/sound/soc/codecs/tlv320aic32x4-spi.c
> +++ b/sound/soc/codecs/tlv320aic32x4-spi.c
> @@ -46,11 +46,9 @@ static int aic32x4_spi_probe(struct spi_device *spi)
> return aic32x4_probe(&spi->dev, regmap);
> }
>
> -static int aic32x4_spi_remove(struct spi_device *spi)
> +static void aic32x4_spi_remove(struct spi_device *spi)
> {
> aic32x4_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id aic32x4_spi_id[] = {
> diff --git a/sound/soc/codecs/tlv320aic3x-spi.c b/sound/soc/codecs/tlv320aic3x-spi.c
> index 494e84402232..deed6ec7e081 100644
> --- a/sound/soc/codecs/tlv320aic3x-spi.c
> +++ b/sound/soc/codecs/tlv320aic3x-spi.c
> @@ -35,11 +35,9 @@ static int aic3x_spi_probe(struct spi_device *spi)
> return aic3x_probe(&spi->dev, regmap, id->driver_data);
> }
>
> -static int aic3x_spi_remove(struct spi_device *spi)
> +static void aic3x_spi_remove(struct spi_device *spi)
> {
> aic3x_remove(&spi->dev);
> -
> - return 0;
> }
>
> static const struct spi_device_id aic3x_spi_id[] = {
> diff --git a/sound/soc/codecs/wm0010.c b/sound/soc/codecs/wm0010.c
> index 28b4656c4e14..1bef1c500c8e 100644
> --- a/sound/soc/codecs/wm0010.c
> +++ b/sound/soc/codecs/wm0010.c
> @@ -969,7 +969,7 @@ static int wm0010_spi_probe(struct spi_device *spi)
> return 0;
> }
>
> -static int wm0010_spi_remove(struct spi_device *spi)
> +static void wm0010_spi_remove(struct spi_device *spi)
> {
> struct wm0010_priv *wm0010 = spi_get_drvdata(spi);
>
> @@ -980,8 +980,6 @@ static int wm0010_spi_remove(struct spi_device *spi)
>
> if (wm0010->irq)
> free_irq(wm0010->irq, wm0010);
> -
> - return 0;
> }
>
> static struct spi_driver wm0010_spi_driver = {
> diff --git a/sound/soc/codecs/wm8804-spi.c b/sound/soc/codecs/wm8804-spi.c
> index 9a8da1511c34..628568724c20 100644
> --- a/sound/soc/codecs/wm8804-spi.c
> +++ b/sound/soc/codecs/wm8804-spi.c
> @@ -24,10 +24,9 @@ static int wm8804_spi_probe(struct spi_device *spi)
> return wm8804_probe(&spi->dev, regmap);
> }
>
> -static int wm8804_spi_remove(struct spi_device *spi)
> +static void wm8804_spi_remove(struct spi_device *spi)
> {
> wm8804_remove(&spi->dev);
> - return 0;
> }
>
> static const struct of_device_id wm8804_of_match[] = {
> diff --git a/sound/spi/at73c213.c b/sound/spi/at73c213.c
> index 76c0e37a838c..56d2c712e257 100644
> --- a/sound/spi/at73c213.c
> +++ b/sound/spi/at73c213.c
> @@ -1001,7 +1001,7 @@ static int snd_at73c213_probe(struct spi_device *spi)
> return retval;
> }
>
> -static int snd_at73c213_remove(struct spi_device *spi)
> +static void snd_at73c213_remove(struct spi_device *spi)
> {
> struct snd_card *card = dev_get_drvdata(&spi->dev);
> struct snd_at73c213 *chip = card->private_data;
> @@ -1066,8 +1066,6 @@ static int snd_at73c213_remove(struct spi_device *spi)
>
> ssc_free(chip->ssc);
> snd_card_free(card);
> -
> - return 0;
> }
>
> #ifdef CONFIG_PM_SLEEP
> --
> 2.34.1
>
--
With Best Regards,
Andy Shevchenko
1
0
On Fri, Jan 21, 2022 at 11:16:44PM +0000, Will McVicker wrote:
> From: KaiChieh Chuang <kaichieh.chuang(a)mediatek.com>
>
> [ Upstream commit a9764869779081e8bf24da07ac040e8f3efcf13a ]
>
> The dpcm get from fe_clients/be_clients
> may be free before use
>
> Add a spin lock at snd_soc_card level,
> to protect the dpcm instance.
> The lock may be used in atomic context, so use spin lock.
>
> Use irq spin lock version,
> since the lock may be used in interrupts.
>
> possible race condition between
> void dpcm_be_disconnect(
> ...
> list_del(&dpcm->list_be);
> list_del(&dpcm->list_fe);
> kfree(dpcm);
> ...
>
> and
> for_each_dpcm_fe()
> for_each_dpcm_be*()
>
> race condition example
> Thread 1:
> snd_soc_dapm_mixer_update_power()
> -> soc_dpcm_runtime_update()
> -> dpcm_be_disconnect()
> -> kfree(dpcm);
> Thread 2:
> dpcm_fe_dai_trigger()
> -> dpcm_be_dai_trigger()
> -> snd_soc_dpcm_can_be_free_stop()
> -> if (dpcm->fe == fe)
>
> Excpetion Scenario:
> two FE link to same BE
> FE1 -> BE
> FE2 ->
>
> Thread 1: switch of mixer between FE2 -> BE
> Thread 2: pcm_stop FE1
>
> Exception:
>
> Unable to handle kernel paging request at virtual address dead0000000000e0
>
> pc=<> [<ffffff8960e2cd10>] dpcm_be_dai_trigger+0x29c/0x47c
> sound/soc/soc-pcm.c:3226
> if (dpcm->fe == fe)
> lr=<> [<ffffff8960e2f694>] dpcm_fe_dai_do_trigger+0x94/0x26c
>
> Backtrace:
> [<ffffff89602dba80>] notify_die+0x68/0xb8
> [<ffffff896028c7dc>] die+0x118/0x2a8
> [<ffffff89602a2f84>] __do_kernel_fault+0x13c/0x14c
> [<ffffff89602a27f4>] do_translation_fault+0x64/0xa0
> [<ffffff8960280cf8>] do_mem_abort+0x4c/0xd0
> [<ffffff8960282ad0>] el1_da+0x24/0x40
> [<ffffff8960e2cd10>] dpcm_be_dai_trigger+0x29c/0x47c
> [<ffffff8960e2f694>] dpcm_fe_dai_do_trigger+0x94/0x26c
> [<ffffff8960e2edec>] dpcm_fe_dai_trigger+0x3c/0x44
> [<ffffff8960de5588>] snd_pcm_do_stop+0x50/0x5c
> [<ffffff8960dded24>] snd_pcm_action+0xb4/0x13c
> [<ffffff8960ddfdb4>] snd_pcm_drop+0xa0/0x128
> [<ffffff8960de69bc>] snd_pcm_common_ioctl+0x9d8/0x30f0
> [<ffffff8960de1cac>] snd_pcm_ioctl_compat+0x29c/0x2f14
> [<ffffff89604c9d60>] compat_SyS_ioctl+0x128/0x244
> [<ffffff8960283740>] el0_svc_naked+0x34/0x38
> [<ffffffffffffffff>] 0xffffffffffffffff
>
> Signed-off-by: KaiChieh Chuang <kaichieh.chuang(a)mediatek.com>
> Signed-off-by: Mark Brown <broonie(a)kernel.org>
> [willmcvicker: move spinlock to bottom of struct snd_soc_card]
> Signed-off-by: Will McVicker <willmcvicker(a)google.com>
> Cc: stable(a)vger.kernel.org # 4.19+
> ---
> include/sound/soc.h | 2 ++
> sound/soc/soc-core.c | 1 +
> sound/soc/soc-pcm.c | 40 +++++++++++++++++++++++++++++++++-------
> 3 files changed, 36 insertions(+), 7 deletions(-)
Now queued up, thanks.
greg k-h
1
0