[PATCH 0/5] spi: make remove callback a void function

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Sun Jan 23 17:51:56 UTC 2022


Hello,

this series goal is to change the spi remove callback's return value to void.
After numerous patches nearly all drivers already return 0 unconditionally.
The four first patches in this series convert the remaining three drivers to
return 0, the final patch changes the remove prototype and converts all
implementers.

The driver core doesn't support error handling on remove, the spi core issues
only a very generic warning when a remove callback returns an error. If there
is really the need for a function call that can fail, the driver can issue a
more helpful error message. I didn't find a single driver where returning
an error code and error handling in the spi core would have been helpful.

So change the prototype of the remove function to make it obvious for driver
authors that there is no error handling in the spi core.

The four preparatory patches were already send out, but not yet taken into
next.

Assuming Mark is fine with this change I'd like to have this go in during the
next merge window. I guess we need a tag that can be pulled into trees that add
a new driver in the next cycle. I can provide such a tag, but I'm open to
alternatives.

The patch set survived an allmodconfig build on various archs (arm64 m68k
powerpc riscv s390 sparc64 x86_64) after the following two commits from
next-20220121 were added to fix an unrelated build problem:

        be973481daaa ("pinctrl: thunderbay: rework loops looking for groups names")
        8687999e47d4 ("pinctrl: thunderbay: comment process of building functions a bit")

Best regards
Uwe

Uwe Kleine-König (5):
  staging: fbtft: Fix error path in fbtft_driver_module_init()
  staging: fbtft: Deduplicate driver registration macros
  tpm: st33zp24: Make st33zp24_remove() a void function
  platform/chrome: cros_ec: Make cros_ec_unregister() return void
  spi: make remove callback a void function

 drivers/bus/moxtet.c                          |  4 +-
 drivers/char/tpm/st33zp24/i2c.c               |  5 +-
 drivers/char/tpm/st33zp24/spi.c               |  9 +-
 drivers/char/tpm/st33zp24/st33zp24.c          |  3 +-
 drivers/char/tpm/st33zp24/st33zp24.h          |  2 +-
 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 +-
 .../gpu/drm/panel/panel-samsung-s6e63m0-spi.c |  3 +-
 .../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 +-
 .../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 +-
 .../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 +-
 .../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.c             |  4 +-
 drivers/platform/chrome/cros_ec.h             |  2 +-
 drivers/platform/chrome/cros_ec_i2c.c         |  4 +-
 drivers/platform/chrome/cros_ec_lpc.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                 | 97 ++++++++-----------
 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 +-
 .../displays/panel-lgphilips-lb035q02.c       |  4 +-
 .../omapfb/displays/panel-nec-nl8048hl11.c    |  4 +-
 .../omapfb/displays/panel-sony-acx565akm.c    |  4 +-
 .../omapfb/displays/panel-tpo-td028ttec1.c    |  4 +-
 .../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 +-
 198 files changed, 248 insertions(+), 617 deletions(-)


base-commit: e783362eb54cd99b2cac8b3a9aeac942e6f6ac07
-- 
2.34.1



More information about the dri-devel mailing list