Commit 0c90466a authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Miquel Raynal
Browse files

mtd: hyperbus: Make hyperbus_unregister_device() return void



The only thing that could theoretically fail in that function is
mtd_device_unregister(). However it's not supposed to fail and when
used correctly it doesn't. So wail loudly if it does anyhow.

This matches how other drivers (e.g. nand/raw/nandsim.c) use
mtd_device_unregister().

This is a preparation for making platform remove callbacks return void.

Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20220603210758.148493-2-u.kleine-koenig@pengutronix.de
parent 83208e10
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -233,16 +233,16 @@ static int am654_hbmc_remove(struct platform_device *pdev)
{
	struct am654_hbmc_priv *priv = platform_get_drvdata(pdev);
	struct am654_hbmc_device_priv *dev_priv = priv->hbdev.priv;
	int ret;

	ret = hyperbus_unregister_device(&priv->hbdev);
	hyperbus_unregister_device(&priv->hbdev);

	if (priv->mux_ctrl)
		mux_control_deselect(priv->mux_ctrl);

	if (dev_priv->rx_chan)
		dma_release_channel(dev_priv->rx_chan);

	return ret;
	return 0;
}

static const struct of_device_id am654_hbmc_dt_ids[] = {
+2 −6
Original line number Diff line number Diff line
@@ -126,16 +126,12 @@ int hyperbus_register_device(struct hyperbus_device *hbdev)
}
EXPORT_SYMBOL_GPL(hyperbus_register_device);

int hyperbus_unregister_device(struct hyperbus_device *hbdev)
void hyperbus_unregister_device(struct hyperbus_device *hbdev)
{
	int ret = 0;

	if (hbdev && hbdev->mtd) {
		ret = mtd_device_unregister(hbdev->mtd);
		WARN_ON(mtd_device_unregister(hbdev->mtd));
		map_destroy(hbdev->mtd);
	}

	return ret;
}
EXPORT_SYMBOL_GPL(hyperbus_unregister_device);

+3 −2
Original line number Diff line number Diff line
@@ -153,11 +153,12 @@ static int rpcif_hb_probe(struct platform_device *pdev)
static int rpcif_hb_remove(struct platform_device *pdev)
{
	struct rpcif_hyperbus *hyperbus = platform_get_drvdata(pdev);
	int error = hyperbus_unregister_device(&hyperbus->hbdev);

	hyperbus_unregister_device(&hyperbus->hbdev);

	rpcif_disable_rpm(&hyperbus->rpc);

	return error;
	return 0;
}

static struct platform_driver rpcif_platform_driver = {
+1 −3
Original line number Diff line number Diff line
@@ -89,9 +89,7 @@ int hyperbus_register_device(struct hyperbus_device *hbdev);
/**
 * hyperbus_unregister_device - deregister HyperBus slave memory device
 * @hbdev: hyperbus_device to be unregistered
 *
 * Return: 0 for success, others for failure.
 */
int hyperbus_unregister_device(struct hyperbus_device *hbdev);
void hyperbus_unregister_device(struct hyperbus_device *hbdev);

#endif /* __LINUX_MTD_HYPERBUS_H__ */