[PATCH] drm/vc4: use platform_register_drivers
Philipp Zabel
p.zabel at pengutronix.de
Mon Mar 20 10:10:02 UTC 2017
On Sun, 2017-03-19 at 11:28 +0000, Emil Velikov wrote:
> 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 ?
It is separate from the array because the same array is also used to set
up the matches for the component_master_add_with_match call from the
vc4_platform_driver's probe function.
> > }
> >
> > 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.
I think it would make sense to unregister the vc4_platform_driver first,
but since this was there from the start I don't know if this was done
differently on purpose.
regards
Philipp
More information about the dri-devel
mailing list