mailbox: tegra-hsp: Use device-managed registration API
In order to get rid of a lot of cleanup boilerplate code, use the device-managed registration API. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
This commit is contained in:
parent
a54d03ed01
commit
d69e11648e
1 changed files with 6 additions and 24 deletions
|
@ -721,7 +721,7 @@ static int tegra_hsp_probe(struct platform_device *pdev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = mbox_controller_register(&hsp->mbox_db);
|
err = devm_mbox_controller_register(&pdev->dev, &hsp->mbox_db);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(&pdev->dev, "failed to register doorbell mailbox: %d\n",
|
dev_err(&pdev->dev, "failed to register doorbell mailbox: %d\n",
|
||||||
err);
|
err);
|
||||||
|
@ -745,15 +745,15 @@ static int tegra_hsp_probe(struct platform_device *pdev)
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(&pdev->dev, "failed to add mailboxes: %d\n",
|
dev_err(&pdev->dev, "failed to add mailboxes: %d\n",
|
||||||
err);
|
err);
|
||||||
goto unregister_mbox_db;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = mbox_controller_register(&hsp->mbox_sm);
|
err = devm_mbox_controller_register(&pdev->dev, &hsp->mbox_sm);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(&pdev->dev, "failed to register shared mailbox: %d\n",
|
dev_err(&pdev->dev, "failed to register shared mailbox: %d\n",
|
||||||
err);
|
err);
|
||||||
goto unregister_mbox_db;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
platform_set_drvdata(pdev, hsp);
|
platform_set_drvdata(pdev, hsp);
|
||||||
|
@ -766,32 +766,15 @@ static int tegra_hsp_probe(struct platform_device *pdev)
|
||||||
dev_err(&pdev->dev,
|
dev_err(&pdev->dev,
|
||||||
"failed to request doorbell IRQ#%u: %d\n",
|
"failed to request doorbell IRQ#%u: %d\n",
|
||||||
hsp->doorbell_irq, err);
|
hsp->doorbell_irq, err);
|
||||||
goto unregister_mbox_sm;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hsp->shared_irqs) {
|
if (hsp->shared_irqs) {
|
||||||
err = tegra_hsp_request_shared_irq(hsp);
|
err = tegra_hsp_request_shared_irq(hsp);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto unregister_mbox_sm;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
unregister_mbox_sm:
|
|
||||||
mbox_controller_unregister(&hsp->mbox_sm);
|
|
||||||
unregister_mbox_db:
|
|
||||||
mbox_controller_unregister(&hsp->mbox_db);
|
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tegra_hsp_remove(struct platform_device *pdev)
|
|
||||||
{
|
|
||||||
struct tegra_hsp *hsp = platform_get_drvdata(pdev);
|
|
||||||
|
|
||||||
mbox_controller_unregister(&hsp->mbox_sm);
|
|
||||||
mbox_controller_unregister(&hsp->mbox_db);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -842,7 +825,6 @@ static struct platform_driver tegra_hsp_driver = {
|
||||||
.pm = &tegra_hsp_pm_ops,
|
.pm = &tegra_hsp_pm_ops,
|
||||||
},
|
},
|
||||||
.probe = tegra_hsp_probe,
|
.probe = tegra_hsp_probe,
|
||||||
.remove = tegra_hsp_remove,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init tegra_hsp_init(void)
|
static int __init tegra_hsp_init(void)
|
||||||
|
|
Loading…
Reference in a new issue