media: coda: Convert the driver to DT-only
Commit Message
Since 5.10-rc1 i.MX is a devicetree-only platform, so simplify the code
by removing the unused non-DT support.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
---
drivers/media/platform/coda/coda-common.c | 21 +--------------------
1 file changed, 1 insertion(+), 20 deletions(-)
Comments
On 24/11/2020 12:28, Fabio Estevam wrote:
> Since 5.10-rc1 i.MX is a devicetree-only platform, so simplify the code
> by removing the unused non-DT support.
>
> Signed-off-by: Fabio Estevam <festevam@gmail.com>
> ---
> drivers/media/platform/coda/coda-common.c | 21 +--------------------
> 1 file changed, 1 insertion(+), 20 deletions(-)
>
> diff --git a/drivers/media/platform/coda/coda-common.c b/drivers/media/platform/coda/coda-common.c
> index d30eafea701d..b1b29c13dba3 100644
> --- a/drivers/media/platform/coda/coda-common.c
> +++ b/drivers/media/platform/coda/coda-common.c
> @@ -3102,13 +3102,6 @@ static const struct coda_devtype coda_devdata[] = {
> },
> };
>
> -static const struct platform_device_id coda_platform_ids[] = {
> - { .name = "coda-imx27", .driver_data = CODA_IMX27 },
> - { /* sentinel */ }
> -};
> -MODULE_DEVICE_TABLE(platform, coda_platform_ids);
> -
> -#ifdef CONFIG_OF
> static const struct of_device_id coda_dt_ids[] = {
> { .compatible = "fsl,imx27-vpu", .data = &coda_devdata[CODA_IMX27] },
> { .compatible = "fsl,imx51-vpu", .data = &coda_devdata[CODA_IMX51] },
> @@ -3118,13 +3111,9 @@ static const struct of_device_id coda_dt_ids[] = {
> { /* sentinel */ }
> };
> MODULE_DEVICE_TABLE(of, coda_dt_ids);
> -#endif
>
> static int coda_probe(struct platform_device *pdev)
> {
> - const struct of_device_id *of_id =
> - of_match_device(of_match_ptr(coda_dt_ids), &pdev->dev);
> - const struct platform_device_id *pdev_id;
> struct coda_platform_data *pdata = pdev->dev.platform_data;
So this can be dropped as well (and all related code), right?
> struct device_node *np = pdev->dev.of_node;
> struct gen_pool *pool;
> @@ -3135,14 +3124,7 @@ static int coda_probe(struct platform_device *pdev)
> if (!dev)
> return -ENOMEM;
>
> - pdev_id = of_id ? of_id->data : platform_get_device_id(pdev);
> -
> - if (of_id)
> - dev->devtype = of_id->data;
> - else if (pdev_id)
> - dev->devtype = &coda_devdata[pdev_id->driver_data];
> - else
> - return -EINVAL;
> + dev->devtype = of_device_get_match_data(&pdev->dev);
>
> dev->dev = &pdev->dev;
> dev->clk_per = devm_clk_get(&pdev->dev, "per");
> @@ -3342,7 +3324,6 @@ static struct platform_driver coda_driver = {
> .of_match_table = of_match_ptr(coda_dt_ids),
> .pm = &coda_pm_ops,
> },
> - .id_table = coda_platform_ids,
> };
>
> module_platform_driver(coda_driver);
>
And you can also remove include/linux/platform_data/media/coda.h.
Regards,
Hans
Hi Hans,
On Wed, Dec 2, 2020 at 5:50 AM Hans Verkuil <hverkuil-cisco@xs4all.nl> wrote:
> > struct coda_platform_data *pdata = pdev->dev.platform_data;
>
> So this can be dropped as well (and all related code), right?
Yes, you are right.
> And you can also remove include/linux/platform_data/media/coda.h.
Yes, thanks for the review. I have sent v2 with your suggestions.
Cheers
@@ -3102,13 +3102,6 @@ static const struct coda_devtype coda_devdata[] = {
},
};
-static const struct platform_device_id coda_platform_ids[] = {
- { .name = "coda-imx27", .driver_data = CODA_IMX27 },
- { /* sentinel */ }
-};
-MODULE_DEVICE_TABLE(platform, coda_platform_ids);
-
-#ifdef CONFIG_OF
static const struct of_device_id coda_dt_ids[] = {
{ .compatible = "fsl,imx27-vpu", .data = &coda_devdata[CODA_IMX27] },
{ .compatible = "fsl,imx51-vpu", .data = &coda_devdata[CODA_IMX51] },
@@ -3118,13 +3111,9 @@ static const struct of_device_id coda_dt_ids[] = {
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, coda_dt_ids);
-#endif
static int coda_probe(struct platform_device *pdev)
{
- const struct of_device_id *of_id =
- of_match_device(of_match_ptr(coda_dt_ids), &pdev->dev);
- const struct platform_device_id *pdev_id;
struct coda_platform_data *pdata = pdev->dev.platform_data;
struct device_node *np = pdev->dev.of_node;
struct gen_pool *pool;
@@ -3135,14 +3124,7 @@ static int coda_probe(struct platform_device *pdev)
if (!dev)
return -ENOMEM;
- pdev_id = of_id ? of_id->data : platform_get_device_id(pdev);
-
- if (of_id)
- dev->devtype = of_id->data;
- else if (pdev_id)
- dev->devtype = &coda_devdata[pdev_id->driver_data];
- else
- return -EINVAL;
+ dev->devtype = of_device_get_match_data(&pdev->dev);
dev->dev = &pdev->dev;
dev->clk_per = devm_clk_get(&pdev->dev, "per");
@@ -3342,7 +3324,6 @@ static struct platform_driver coda_driver = {
.of_match_table = of_match_ptr(coda_dt_ids),
.pm = &coda_pm_ops,
},
- .id_table = coda_platform_ids,
};
module_platform_driver(coda_driver);