[PATCH] drm/vc4: use platform_register_drivers
Emil Velikov
emil.l.velikov at gmail.com
Sun Mar 19 11:28:41 UTC 2017
Hi Philipp,
I think you patch is OK, just a small question about the existing code.
It might be better suited for Eric... not sure.
On 17 March 2017 at 17:00, Philipp Zabel <p.zabel at pengutronix.de> wrote:
> Use platform_register_drivers instead of open coding the iteration over
> component platform drivers in the vc4_drv module.
>
> Signed-off-by: Philipp Zabel <p.zabel at pengutronix.de>
> ---
> drivers/gpu/drm/vc4/vc4_drv.c | 22 ++++++++--------------
> 1 file changed, 8 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
> index 205c1961ffb4c..61e674baf3a6f 100644
> --- a/drivers/gpu/drm/vc4/vc4_drv.c
> +++ b/drivers/gpu/drm/vc4/vc4_drv.c
> @@ -349,26 +349,20 @@ static struct platform_driver vc4_platform_driver = {
>
> static int __init vc4_drm_register(void)
> {
> - int i, ret;
> + int ret;
> +
> + ret = platform_register_drivers(component_drivers,
> + ARRAY_SIZE(component_drivers));
> + if (ret)
> + return ret;
>
> - for (i = 0; i < ARRAY_SIZE(component_drivers); i++) {
> - ret = platform_driver_register(component_drivers[i]);
> - if (ret) {
> - while (--i >= 0)
> - platform_driver_unregister(component_drivers[i]);
> - return ret;
> - }
> - }
> return platform_driver_register(&vc4_platform_driver);
Is there any reason why vc4_platform_driver isn't part of the
component_drivers array ?
> }
>
> static void __exit vc4_drm_unregister(void)
> {
> - int i;
> -
> - for (i = ARRAY_SIZE(component_drivers) - 1; i >= 0; i--)
> - platform_driver_unregister(component_drivers[i]);
> -
> + platform_unregister_drivers(component_drivers,
> + ARRAY_SIZE(component_drivers));
> platform_driver_unregister(&vc4_platform_driver);
Order seems wrong here - shouldn't one unregister vc4_platform_driver
first here ?
Perhaps that 's the reason why it is handled separately in vc4_drm_register.
There's [seemingly] no comment that covers this so it seems like a
copy/paste mistake.
Thanks
Emil
More information about the dri-devel
mailing list