amba: Make the remove callback return void

All amba drivers return 0 in their remove callback. Together with the
driver core ignoring the return value anyhow, it doesn't make sense to
return a value here.

Change the remove prototype to return void, which makes it explicit that
returning an error value doesn't work as expected. This simplifies changing
the core remove callback to return void, too.

Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: Krzysztof Kozlowski <krzk@kernel.org> # for drivers/memory
Acked-by: Mark Brown <broonie@kernel.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Suzuki K Poulose <suzuki.poulose@arm.com> # for hwtracing/coresight
Acked-By: Vinod Koul <vkoul@kernel.org> # for dmaengine
Acked-by: Guenter Roeck <linux@roeck-us.net> # for watchdog
Acked-by: Wolfram Sang <wsa@kernel.org> # for I2C
Acked-by: Takashi Iwai <tiwai@suse.de> # for sound
Acked-by: Vladimir Zapolskiy <vz@mleia.com> # for memory/pl172
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20210126165835.687514-5-u.kleine-koenig@pengutronix.de
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
This commit is contained in:
Uwe Kleine-König 2021-01-26 17:58:34 +01:00 committed by Uwe Kleine-König
parent 5b495ac8fe
commit 3fd269e74f
30 changed files with 34 additions and 80 deletions

View File

@ -300,11 +300,10 @@ static int amba_remove(struct device *dev)
{ {
struct amba_device *pcdev = to_amba_device(dev); struct amba_device *pcdev = to_amba_device(dev);
struct amba_driver *drv = to_amba_driver(dev->driver); struct amba_driver *drv = to_amba_driver(dev->driver);
int ret = 0;
pm_runtime_get_sync(dev); pm_runtime_get_sync(dev);
if (drv->remove) if (drv->remove)
ret = drv->remove(pcdev); drv->remove(pcdev);
pm_runtime_put_noidle(dev); pm_runtime_put_noidle(dev);
/* Undo the runtime PM settings in amba_probe() */ /* Undo the runtime PM settings in amba_probe() */
@ -315,7 +314,7 @@ static int amba_remove(struct device *dev)
amba_put_disable_pclk(pcdev); amba_put_disable_pclk(pcdev);
dev_pm_domain_detach(dev, true); dev_pm_domain_detach(dev, true);
return ret; return 0;
} }
static void amba_shutdown(struct device *dev) static void amba_shutdown(struct device *dev)

View File

@ -69,11 +69,10 @@ out_clk:
return ret; return ret;
} }
static int nmk_rng_remove(struct amba_device *dev) static void nmk_rng_remove(struct amba_device *dev)
{ {
amba_release_regions(dev); amba_release_regions(dev);
clk_disable(rng_clk); clk_disable(rng_clk);
return 0;
} }
static const struct amba_id nmk_rng_ids[] = { static const struct amba_id nmk_rng_ids[] = {

View File

@ -3195,7 +3195,7 @@ probe_err2:
return ret; return ret;
} }
static int pl330_remove(struct amba_device *adev) static void pl330_remove(struct amba_device *adev)
{ {
struct pl330_dmac *pl330 = amba_get_drvdata(adev); struct pl330_dmac *pl330 = amba_get_drvdata(adev);
struct dma_pl330_chan *pch, *_p; struct dma_pl330_chan *pch, *_p;
@ -3235,7 +3235,6 @@ static int pl330_remove(struct amba_device *adev)
if (pl330->rstc) if (pl330->rstc)
reset_control_assert(pl330->rstc); reset_control_assert(pl330->rstc);
return 0;
} }
static const struct amba_id pl330_ids[] = { static const struct amba_id pl330_ids[] = {

View File

@ -320,7 +320,7 @@ dev_put:
return ret; return ret;
} }
static int pl111_amba_remove(struct amba_device *amba_dev) static void pl111_amba_remove(struct amba_device *amba_dev)
{ {
struct device *dev = &amba_dev->dev; struct device *dev = &amba_dev->dev;
struct drm_device *drm = amba_get_drvdata(amba_dev); struct drm_device *drm = amba_get_drvdata(amba_dev);
@ -331,8 +331,6 @@ static int pl111_amba_remove(struct amba_device *amba_dev)
drm_panel_bridge_remove(priv->bridge); drm_panel_bridge_remove(priv->bridge);
drm_dev_put(drm); drm_dev_put(drm);
of_reserved_mem_device_release(dev); of_reserved_mem_device_release(dev);
return 0;
} }
/* /*

View File

@ -567,12 +567,11 @@ out:
return ret; return ret;
} }
static int catu_remove(struct amba_device *adev) static void catu_remove(struct amba_device *adev)
{ {
struct catu_drvdata *drvdata = dev_get_drvdata(&adev->dev); struct catu_drvdata *drvdata = dev_get_drvdata(&adev->dev);
coresight_unregister(drvdata->csdev); coresight_unregister(drvdata->csdev);
return 0;
} }
static struct amba_id catu_ids[] = { static struct amba_id catu_ids[] = {

View File

@ -627,7 +627,7 @@ err:
return ret; return ret;
} }
static int debug_remove(struct amba_device *adev) static void debug_remove(struct amba_device *adev)
{ {
struct device *dev = &adev->dev; struct device *dev = &adev->dev;
struct debug_drvdata *drvdata = amba_get_drvdata(adev); struct debug_drvdata *drvdata = amba_get_drvdata(adev);
@ -642,8 +642,6 @@ static int debug_remove(struct amba_device *adev)
if (!--debug_count) if (!--debug_count)
debug_func_exit(); debug_func_exit();
return 0;
} }
static const struct amba_cs_uci_id uci_id_debug[] = { static const struct amba_cs_uci_id uci_id_debug[] = {

View File

@ -836,7 +836,7 @@ static void cti_device_release(struct device *dev)
if (drvdata->csdev_release) if (drvdata->csdev_release)
drvdata->csdev_release(dev); drvdata->csdev_release(dev);
} }
static int cti_remove(struct amba_device *adev) static void cti_remove(struct amba_device *adev)
{ {
struct cti_drvdata *drvdata = dev_get_drvdata(&adev->dev); struct cti_drvdata *drvdata = dev_get_drvdata(&adev->dev);
@ -845,8 +845,6 @@ static int cti_remove(struct amba_device *adev)
mutex_unlock(&ect_mutex); mutex_unlock(&ect_mutex);
coresight_unregister(drvdata->csdev); coresight_unregister(drvdata->csdev);
return 0;
} }
static int cti_probe(struct amba_device *adev, const struct amba_id *id) static int cti_probe(struct amba_device *adev, const struct amba_id *id)

View File

@ -803,7 +803,7 @@ err_misc_register:
return ret; return ret;
} }
static int etb_remove(struct amba_device *adev) static void etb_remove(struct amba_device *adev)
{ {
struct etb_drvdata *drvdata = dev_get_drvdata(&adev->dev); struct etb_drvdata *drvdata = dev_get_drvdata(&adev->dev);
@ -814,8 +814,6 @@ static int etb_remove(struct amba_device *adev)
*/ */
misc_deregister(&drvdata->miscdev); misc_deregister(&drvdata->miscdev);
coresight_unregister(drvdata->csdev); coresight_unregister(drvdata->csdev);
return 0;
} }
#ifdef CONFIG_PM #ifdef CONFIG_PM

View File

@ -909,7 +909,7 @@ static void clear_etmdrvdata(void *info)
etmdrvdata[cpu] = NULL; etmdrvdata[cpu] = NULL;
} }
static int etm_remove(struct amba_device *adev) static void etm_remove(struct amba_device *adev)
{ {
struct etm_drvdata *drvdata = dev_get_drvdata(&adev->dev); struct etm_drvdata *drvdata = dev_get_drvdata(&adev->dev);
@ -932,8 +932,6 @@ static int etm_remove(struct amba_device *adev)
cpus_read_unlock(); cpus_read_unlock();
coresight_unregister(drvdata->csdev); coresight_unregister(drvdata->csdev);
return 0;
} }
#ifdef CONFIG_PM #ifdef CONFIG_PM

View File

@ -1680,7 +1680,7 @@ static void clear_etmdrvdata(void *info)
etmdrvdata[cpu] = NULL; etmdrvdata[cpu] = NULL;
} }
static int etm4_remove(struct amba_device *adev) static void etm4_remove(struct amba_device *adev)
{ {
struct etmv4_drvdata *drvdata = dev_get_drvdata(&adev->dev); struct etmv4_drvdata *drvdata = dev_get_drvdata(&adev->dev);
@ -1703,8 +1703,6 @@ static int etm4_remove(struct amba_device *adev)
cpus_read_unlock(); cpus_read_unlock();
coresight_unregister(drvdata->csdev); coresight_unregister(drvdata->csdev);
return 0;
} }
static const struct amba_id etm4_ids[] = { static const struct amba_id etm4_ids[] = {

View File

@ -370,9 +370,9 @@ static int dynamic_funnel_probe(struct amba_device *adev,
return funnel_probe(&adev->dev, &adev->res); return funnel_probe(&adev->dev, &adev->res);
} }
static int dynamic_funnel_remove(struct amba_device *adev) static void dynamic_funnel_remove(struct amba_device *adev)
{ {
return funnel_remove(&adev->dev); funnel_remove(&adev->dev);
} }
static const struct amba_id dynamic_funnel_ids[] = { static const struct amba_id dynamic_funnel_ids[] = {

View File

@ -388,9 +388,9 @@ static int dynamic_replicator_probe(struct amba_device *adev,
return replicator_probe(&adev->dev, &adev->res); return replicator_probe(&adev->dev, &adev->res);
} }
static int dynamic_replicator_remove(struct amba_device *adev) static void dynamic_replicator_remove(struct amba_device *adev)
{ {
return replicator_remove(&adev->dev); replicator_remove(&adev->dev);
} }
static const struct amba_id dynamic_replicator_ids[] = { static const struct amba_id dynamic_replicator_ids[] = {

View File

@ -951,15 +951,13 @@ stm_unregister:
return ret; return ret;
} }
static int stm_remove(struct amba_device *adev) static void stm_remove(struct amba_device *adev)
{ {
struct stm_drvdata *drvdata = dev_get_drvdata(&adev->dev); struct stm_drvdata *drvdata = dev_get_drvdata(&adev->dev);
coresight_unregister(drvdata->csdev); coresight_unregister(drvdata->csdev);
stm_unregister_device(&drvdata->stm); stm_unregister_device(&drvdata->stm);
return 0;
} }
#ifdef CONFIG_PM #ifdef CONFIG_PM

View File

@ -559,7 +559,7 @@ out:
spin_unlock_irqrestore(&drvdata->spinlock, flags); spin_unlock_irqrestore(&drvdata->spinlock, flags);
} }
static int tmc_remove(struct amba_device *adev) static void tmc_remove(struct amba_device *adev)
{ {
struct tmc_drvdata *drvdata = dev_get_drvdata(&adev->dev); struct tmc_drvdata *drvdata = dev_get_drvdata(&adev->dev);
@ -570,8 +570,6 @@ static int tmc_remove(struct amba_device *adev)
*/ */
misc_deregister(&drvdata->miscdev); misc_deregister(&drvdata->miscdev);
coresight_unregister(drvdata->csdev); coresight_unregister(drvdata->csdev);
return 0;
} }
static const struct amba_id tmc_ids[] = { static const struct amba_id tmc_ids[] = {

View File

@ -173,13 +173,11 @@ static int tpiu_probe(struct amba_device *adev, const struct amba_id *id)
return PTR_ERR(drvdata->csdev); return PTR_ERR(drvdata->csdev);
} }
static int tpiu_remove(struct amba_device *adev) static void tpiu_remove(struct amba_device *adev)
{ {
struct tpiu_drvdata *drvdata = dev_get_drvdata(&adev->dev); struct tpiu_drvdata *drvdata = dev_get_drvdata(&adev->dev);
coresight_unregister(drvdata->csdev); coresight_unregister(drvdata->csdev);
return 0;
} }
#ifdef CONFIG_PM #ifdef CONFIG_PM

View File

@ -1055,7 +1055,7 @@ static int nmk_i2c_probe(struct amba_device *adev, const struct amba_id *id)
return ret; return ret;
} }
static int nmk_i2c_remove(struct amba_device *adev) static void nmk_i2c_remove(struct amba_device *adev)
{ {
struct resource *res = &adev->res; struct resource *res = &adev->res;
struct nmk_i2c_dev *dev = amba_get_drvdata(adev); struct nmk_i2c_dev *dev = amba_get_drvdata(adev);
@ -1068,8 +1068,6 @@ static int nmk_i2c_remove(struct amba_device *adev)
i2c_clr_bit(dev->virtbase + I2C_CR, I2C_CR_PE); i2c_clr_bit(dev->virtbase + I2C_CR, I2C_CR_PE);
clk_disable_unprepare(dev->clk); clk_disable_unprepare(dev->clk);
release_mem_region(res->start, resource_size(res)); release_mem_region(res->start, resource_size(res));
return 0;
} }
static struct i2c_vendor_data vendor_stn8815 = { static struct i2c_vendor_data vendor_stn8815 = {

View File

@ -159,7 +159,7 @@ static int amba_kmi_probe(struct amba_device *dev,
return ret; return ret;
} }
static int amba_kmi_remove(struct amba_device *dev) static void amba_kmi_remove(struct amba_device *dev)
{ {
struct amba_kmi_port *kmi = amba_get_drvdata(dev); struct amba_kmi_port *kmi = amba_get_drvdata(dev);
@ -168,7 +168,6 @@ static int amba_kmi_remove(struct amba_device *dev)
iounmap(kmi->base); iounmap(kmi->base);
kfree(kmi); kfree(kmi);
amba_release_regions(dev); amba_release_regions(dev);
return 0;
} }
static int __maybe_unused amba_kmi_resume(struct device *dev) static int __maybe_unused amba_kmi_resume(struct device *dev)

View File

@ -273,14 +273,12 @@ err_clk_enable:
return ret; return ret;
} }
static int pl172_remove(struct amba_device *adev) static void pl172_remove(struct amba_device *adev)
{ {
struct pl172_data *pl172 = amba_get_drvdata(adev); struct pl172_data *pl172 = amba_get_drvdata(adev);
clk_disable_unprepare(pl172->clk); clk_disable_unprepare(pl172->clk);
amba_release_regions(adev); amba_release_regions(adev);
return 0;
} }
static const struct amba_id pl172_ids[] = { static const struct amba_id pl172_ids[] = {

View File

@ -426,14 +426,12 @@ out_clk_dis_aper:
return err; return err;
} }
static int pl353_smc_remove(struct amba_device *adev) static void pl353_smc_remove(struct amba_device *adev)
{ {
struct pl353_smc_data *pl353_smc = amba_get_drvdata(adev); struct pl353_smc_data *pl353_smc = amba_get_drvdata(adev);
clk_disable_unprepare(pl353_smc->memclk); clk_disable_unprepare(pl353_smc->memclk);
clk_disable_unprepare(pl353_smc->aclk); clk_disable_unprepare(pl353_smc->aclk);
return 0;
} }
static const struct amba_id pl353_ids[] = { static const struct amba_id pl353_ids[] = {

View File

@ -2195,7 +2195,7 @@ static int mmci_probe(struct amba_device *dev,
return ret; return ret;
} }
static int mmci_remove(struct amba_device *dev) static void mmci_remove(struct amba_device *dev)
{ {
struct mmc_host *mmc = amba_get_drvdata(dev); struct mmc_host *mmc = amba_get_drvdata(dev);
@ -2223,8 +2223,6 @@ static int mmci_remove(struct amba_device *dev)
clk_disable_unprepare(host->clk); clk_disable_unprepare(host->clk);
mmc_free_host(mmc); mmc_free_host(mmc);
} }
return 0;
} }
#ifdef CONFIG_PM #ifdef CONFIG_PM

View File

@ -137,7 +137,7 @@ static int pl030_probe(struct amba_device *dev, const struct amba_id *id)
return ret; return ret;
} }
static int pl030_remove(struct amba_device *dev) static void pl030_remove(struct amba_device *dev)
{ {
struct pl030_rtc *rtc = amba_get_drvdata(dev); struct pl030_rtc *rtc = amba_get_drvdata(dev);
@ -146,8 +146,6 @@ static int pl030_remove(struct amba_device *dev)
free_irq(dev->irq[0], rtc); free_irq(dev->irq[0], rtc);
iounmap(rtc->base); iounmap(rtc->base);
amba_release_regions(dev); amba_release_regions(dev);
return 0;
} }
static struct amba_id pl030_ids[] = { static struct amba_id pl030_ids[] = {

View File

@ -280,7 +280,7 @@ static int pl031_set_alarm(struct device *dev, struct rtc_wkalrm *alarm)
return 0; return 0;
} }
static int pl031_remove(struct amba_device *adev) static void pl031_remove(struct amba_device *adev)
{ {
struct pl031_local *ldata = dev_get_drvdata(&adev->dev); struct pl031_local *ldata = dev_get_drvdata(&adev->dev);
@ -289,8 +289,6 @@ static int pl031_remove(struct amba_device *adev)
if (adev->irq[0]) if (adev->irq[0])
free_irq(adev->irq[0], ldata); free_irq(adev->irq[0], ldata);
amba_release_regions(adev); amba_release_regions(adev);
return 0;
} }
static int pl031_probe(struct amba_device *adev, const struct amba_id *id) static int pl031_probe(struct amba_device *adev, const struct amba_id *id)

View File

@ -2314,13 +2314,13 @@ static int pl022_probe(struct amba_device *adev, const struct amba_id *id)
return status; return status;
} }
static int static void
pl022_remove(struct amba_device *adev) pl022_remove(struct amba_device *adev)
{ {
struct pl022 *pl022 = amba_get_drvdata(adev); struct pl022 *pl022 = amba_get_drvdata(adev);
if (!pl022) if (!pl022)
return 0; return;
/* /*
* undo pm_runtime_put() in probe. I assume that we're not * undo pm_runtime_put() in probe. I assume that we're not
@ -2335,7 +2335,6 @@ pl022_remove(struct amba_device *adev)
clk_disable_unprepare(pl022->clk); clk_disable_unprepare(pl022->clk);
amba_release_regions(adev); amba_release_regions(adev);
tasklet_disable(&pl022->pump_transfers); tasklet_disable(&pl022->pump_transfers);
return 0;
} }
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP

View File

@ -754,7 +754,7 @@ static int pl010_probe(struct amba_device *dev, const struct amba_id *id)
return ret; return ret;
} }
static int pl010_remove(struct amba_device *dev) static void pl010_remove(struct amba_device *dev)
{ {
struct uart_amba_port *uap = amba_get_drvdata(dev); struct uart_amba_port *uap = amba_get_drvdata(dev);
int i; int i;
@ -770,8 +770,6 @@ static int pl010_remove(struct amba_device *dev)
if (!busy) if (!busy)
uart_unregister_driver(&amba_reg); uart_unregister_driver(&amba_reg);
return 0;
} }
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP

View File

@ -2679,13 +2679,12 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
return pl011_register_port(uap); return pl011_register_port(uap);
} }
static int pl011_remove(struct amba_device *dev) static void pl011_remove(struct amba_device *dev)
{ {
struct uart_amba_port *uap = amba_get_drvdata(dev); struct uart_amba_port *uap = amba_get_drvdata(dev);
uart_remove_one_port(&amba_reg, &uap->port); uart_remove_one_port(&amba_reg, &uap->port);
pl011_unregister_port(uap); pl011_unregister_port(uap);
return 0;
} }
#ifdef CONFIG_PM_SLEEP #ifdef CONFIG_PM_SLEEP

View File

@ -71,14 +71,13 @@ static int vfio_amba_probe(struct amba_device *adev, const struct amba_id *id)
return ret; return ret;
} }
static int vfio_amba_remove(struct amba_device *adev) static void vfio_amba_remove(struct amba_device *adev)
{ {
struct vfio_platform_device *vdev = struct vfio_platform_device *vdev =
vfio_platform_remove_common(&adev->dev); vfio_platform_remove_common(&adev->dev);
kfree(vdev->name); kfree(vdev->name);
kfree(vdev); kfree(vdev);
return 0;
} }
static const struct amba_id pl330_ids[] = { static const struct amba_id pl330_ids[] = {

View File

@ -925,7 +925,7 @@ static int clcdfb_probe(struct amba_device *dev, const struct amba_id *id)
return ret; return ret;
} }
static int clcdfb_remove(struct amba_device *dev) static void clcdfb_remove(struct amba_device *dev)
{ {
struct clcd_fb *fb = amba_get_drvdata(dev); struct clcd_fb *fb = amba_get_drvdata(dev);
@ -942,8 +942,6 @@ static int clcdfb_remove(struct amba_device *dev)
kfree(fb); kfree(fb);
amba_release_regions(dev); amba_release_regions(dev);
return 0;
} }
static const struct amba_id clcdfb_id_table[] = { static const struct amba_id clcdfb_id_table[] = {

View File

@ -305,14 +305,12 @@ err:
return ret; return ret;
} }
static int sp805_wdt_remove(struct amba_device *adev) static void sp805_wdt_remove(struct amba_device *adev)
{ {
struct sp805_wdt *wdt = amba_get_drvdata(adev); struct sp805_wdt *wdt = amba_get_drvdata(adev);
watchdog_unregister_device(&wdt->wdd); watchdog_unregister_device(&wdt->wdd);
watchdog_set_drvdata(&wdt->wdd, NULL); watchdog_set_drvdata(&wdt->wdd, NULL);
return 0;
} }
static int __maybe_unused sp805_wdt_suspend(struct device *dev) static int __maybe_unused sp805_wdt_suspend(struct device *dev)

View File

@ -76,7 +76,7 @@ struct amba_device {
struct amba_driver { struct amba_driver {
struct device_driver drv; struct device_driver drv;
int (*probe)(struct amba_device *, const struct amba_id *); int (*probe)(struct amba_device *, const struct amba_id *);
int (*remove)(struct amba_device *); void (*remove)(struct amba_device *);
void (*shutdown)(struct amba_device *); void (*shutdown)(struct amba_device *);
const struct amba_id *id_table; const struct amba_id *id_table;
}; };

View File

@ -1055,7 +1055,7 @@ static int aaci_probe(struct amba_device *dev,
return ret; return ret;
} }
static int aaci_remove(struct amba_device *dev) static void aaci_remove(struct amba_device *dev)
{ {
struct snd_card *card = amba_get_drvdata(dev); struct snd_card *card = amba_get_drvdata(dev);
@ -1066,8 +1066,6 @@ static int aaci_remove(struct amba_device *dev)
snd_card_free(card); snd_card_free(card);
amba_release_regions(dev); amba_release_regions(dev);
} }
return 0;
} }
static struct amba_id aaci_ids[] = { static struct amba_id aaci_ids[] = {