soundwire: amd: Improve error message in remove callback
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Thu, 18 May 2023 20:08:23 +0000 (22:08 +0200)
committerVinod Koul <vkoul@kernel.org>
Mon, 29 May 2023 05:19:46 +0000 (10:49 +0530)
Returning an error code in the remove callback yields to an error
message

remove callback returned a non-zero value. This will be ignored.

After that the device is removed anyhow. Improve the error message to at
least say what the actual problem is. While touching that code, convert
the driver to the .remove_new() callback which returns no value with the
same effect as returning zero in a .remove() callback.

As the return value is ignored by the core the only effect of this patch
is to improve the error message. (And the motivating effect is that
there is one less driver using .remove().)

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/20230518200823.249795-1-u.kleine-koenig@pengutronix.de
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/amd_manager.c

index 9fb7f91ca182790ccb096e662d2a3292793a8bdc..08aeb7ed00e1ff4581e880ffba5000bb4a6306b4 100644 (file)
@@ -972,15 +972,18 @@ static int amd_sdw_manager_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int amd_sdw_manager_remove(struct platform_device *pdev)
+static void amd_sdw_manager_remove(struct platform_device *pdev)
 {
        struct amd_sdw_manager *amd_manager = dev_get_drvdata(&pdev->dev);
+       int ret;
 
        pm_runtime_disable(&pdev->dev);
        cancel_work_sync(&amd_manager->probe_work);
        amd_disable_sdw_interrupts(amd_manager);
        sdw_bus_master_delete(&amd_manager->bus);
-       return amd_disable_sdw_manager(amd_manager);
+       ret = amd_disable_sdw_manager(amd_manager);
+       if (ret)
+               dev_err(&pdev->dev, "Failed to disable device (%pe)\n", ERR_PTR(ret));
 }
 
 static int amd_sdw_clock_stop(struct amd_sdw_manager *amd_manager)
@@ -1194,7 +1197,7 @@ static const struct dev_pm_ops amd_pm = {
 
 static struct platform_driver amd_sdw_driver = {
        .probe  = &amd_sdw_manager_probe,
-       .remove = &amd_sdw_manager_remove,
+       .remove_new = &amd_sdw_manager_remove,
        .driver = {
                .name   = "amd_sdw_manager",
                .pm = &amd_pm,