firmware: turris-mox-rwtm: Convert rest to devm_* and get rid of driver .remove()
Use devm resource management for driver's mailbox. This allows us to get rid of the driver's .remove() method and the gotos in .probe(). Signed-off-by: Marek Behún <kabel@kernel.org> Reviewed-by: Andy Shevchenko <andy@kernel.org> Link: https://lore.kernel.org/r/20240831092050.23093-10-kabel@kernel.org Signed-off-by: Arnd Bergmann <arnd@arndb.de>pull/958/head
parent
1b649ec180
commit
fbd48bd8cf
|
|
@ -424,6 +424,11 @@ static inline void rwtm_register_debugfs(struct mox_rwtm *rwtm)
|
|||
}
|
||||
#endif
|
||||
|
||||
static void rwtm_devm_mbox_release(void *mbox)
|
||||
{
|
||||
mbox_free_channel(mbox);
|
||||
}
|
||||
|
||||
static void rwtm_firmware_symlink_drop(void *parent)
|
||||
{
|
||||
sysfs_remove_link(parent, DRIVER_NAME);
|
||||
|
|
@ -462,6 +467,10 @@ static int turris_mox_rwtm_probe(struct platform_device *pdev)
|
|||
return ret;
|
||||
}
|
||||
|
||||
ret = devm_add_action_or_reset(dev, rwtm_devm_mbox_release, rwtm->mbox);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = mox_get_board_info(rwtm);
|
||||
if (ret < 0)
|
||||
dev_warn(dev, "Cannot read board information: %i\n", ret);
|
||||
|
|
@ -470,7 +479,7 @@ static int turris_mox_rwtm_probe(struct platform_device *pdev)
|
|||
if (ret < 0) {
|
||||
dev_notice(dev,
|
||||
"Firmware does not support the GET_RANDOM command\n");
|
||||
goto free_channel;
|
||||
return ret;
|
||||
}
|
||||
|
||||
rwtm->hwrng.name = DRIVER_NAME "_hwrng";
|
||||
|
|
@ -480,7 +489,7 @@ static int turris_mox_rwtm_probe(struct platform_device *pdev)
|
|||
ret = devm_hwrng_register(dev, &rwtm->hwrng);
|
||||
if (ret < 0) {
|
||||
dev_err(dev, "Cannot register HWRNG: %i\n", ret);
|
||||
goto free_channel;
|
||||
return ret;
|
||||
}
|
||||
|
||||
rwtm_register_debugfs(rwtm);
|
||||
|
|
@ -497,17 +506,6 @@ static int turris_mox_rwtm_probe(struct platform_device *pdev)
|
|||
firmware_kobj);
|
||||
|
||||
return 0;
|
||||
|
||||
free_channel:
|
||||
mbox_free_channel(rwtm->mbox);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void turris_mox_rwtm_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct mox_rwtm *rwtm = platform_get_drvdata(pdev);
|
||||
|
||||
mbox_free_channel(rwtm->mbox);
|
||||
}
|
||||
|
||||
static const struct of_device_id turris_mox_rwtm_match[] = {
|
||||
|
|
@ -520,7 +518,6 @@ MODULE_DEVICE_TABLE(of, turris_mox_rwtm_match);
|
|||
|
||||
static struct platform_driver turris_mox_rwtm_driver = {
|
||||
.probe = turris_mox_rwtm_probe,
|
||||
.remove_new = turris_mox_rwtm_remove,
|
||||
.driver = {
|
||||
.name = DRIVER_NAME,
|
||||
.of_match_table = turris_mox_rwtm_match,
|
||||
|
|
|
|||
Loading…
Reference in New Issue