Re: [PATCH 11/59] drm/udl: Use devm_drm_dev_alloc

2020-04-28 Thread Daniel Vetter
On Fri, Apr 24, 2020 at 04:55:56PM +0200, Sam Ravnborg wrote:
> Hi Daniel.
> 
> On Wed, Apr 15, 2020 at 09:39:46AM +0200, Daniel Vetter wrote:
> > Also init the fbdev emulation before we register the device, that way
> > we can rely on the auto-cleanup and simplify the probe error code even
> > more.
> > 
> > v2: Rebase on top of Thomas' patches to remove the return value from
> > drm_fbdev_generic_setup()
> 
> with the rebase the changelog in confusing as this patch does nothing of
> what is described in the changelog.
> Only the title (that is in convinently not available when replying to
> email) describes what this patch does.

Good point, I fixed that up while applying, thanks for taking a look.
-Daniel

> 
> With the changelog properly adjusted:
> Acked-by: Sam Ravnborg 
> 
> > 
> > Signed-off-by: Daniel Vetter 
> > Cc: Noralf Trønnes 
> > Cc: Dave Airlie 
> > Cc: Sean Paul 
> > Cc: Thomas Zimmermann 
> > Cc: Daniel Vetter 
> > Cc: Emil Velikov 
> > Cc: Sam Ravnborg 
> > Cc: Thomas Gleixner 
> > ---
> >  drivers/gpu/drm/udl/udl_drv.c | 26 +++---
> >  1 file changed, 7 insertions(+), 19 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c
> > index 9cc6d075cb40..523f60e02a85 100644
> > --- a/drivers/gpu/drm/udl/udl_drv.c
> > +++ b/drivers/gpu/drm/udl/udl_drv.c
> > @@ -57,27 +57,20 @@ static struct udl_device *udl_driver_create(struct 
> > usb_interface *interface)
> > struct udl_device *udl;
> > int r;
> >  
> > -   udl = kzalloc(sizeof(*udl), GFP_KERNEL);
> > -   if (!udl)
> > -   return ERR_PTR(-ENOMEM);
> > -
> > -   r = drm_dev_init(>drm, , >dev);
> > -   if (r) {
> > -   kfree(udl);
> > -   return ERR_PTR(r);
> > -   }
> > +   udl = devm_drm_dev_alloc(>dev, ,
> > +struct udl_device, drm);
> > +   if (IS_ERR(udl))
> > +   return udl;
> >  
> > udl->udev = udev;
> > udl->drm.dev_private = udl;
> > -   drmm_add_final_kfree(>drm, udl);
> >  
> > r = udl_init(udl);
> > -   if (r) {
> > -   drm_dev_put(>drm);
> > +   if (r)
> > return ERR_PTR(r);
> > -   }
> >  
> > usb_set_intfdata(interface, udl);
> > +
> > return udl;
> >  }
> >  
> > @@ -93,17 +86,13 @@ static int udl_usb_probe(struct usb_interface 
> > *interface,
> >  
> > r = drm_dev_register(>drm, 0);
> > if (r)
> > -   goto err_free;
> > +   return r;
> >  
> > DRM_INFO("Initialized udl on minor %d\n", udl->drm.primary->index);
> >  
> > drm_fbdev_generic_setup(>drm, 0);
> >  
> > return 0;
> > -
> > -err_free:
> > -   drm_dev_put(>drm);
> > -   return r;
> >  }
> >  
> >  static void udl_usb_disconnect(struct usb_interface *interface)
> > @@ -113,7 +102,6 @@ static void udl_usb_disconnect(struct usb_interface 
> > *interface)
> > drm_kms_helper_poll_fini(dev);
> > udl_drop_usb(dev);
> > drm_dev_unplug(dev);
> > -   drm_dev_put(dev);
> >  }
> >  
> >  /*
> > -- 
> > 2.25.1
> > 
> > ___
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 11/59] drm/udl: Use devm_drm_dev_alloc

2020-04-24 Thread Sam Ravnborg
Hi Daniel.

On Wed, Apr 15, 2020 at 09:39:46AM +0200, Daniel Vetter wrote:
> Also init the fbdev emulation before we register the device, that way
> we can rely on the auto-cleanup and simplify the probe error code even
> more.
> 
> v2: Rebase on top of Thomas' patches to remove the return value from
> drm_fbdev_generic_setup()

with the rebase the changelog in confusing as this patch does nothing of
what is described in the changelog.
Only the title (that is in convinently not available when replying to
email) describes what this patch does.

With the changelog properly adjusted:
Acked-by: Sam Ravnborg 

> 
> Signed-off-by: Daniel Vetter 
> Cc: Noralf Trønnes 
> Cc: Dave Airlie 
> Cc: Sean Paul 
> Cc: Thomas Zimmermann 
> Cc: Daniel Vetter 
> Cc: Emil Velikov 
> Cc: Sam Ravnborg 
> Cc: Thomas Gleixner 
> ---
>  drivers/gpu/drm/udl/udl_drv.c | 26 +++---
>  1 file changed, 7 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c
> index 9cc6d075cb40..523f60e02a85 100644
> --- a/drivers/gpu/drm/udl/udl_drv.c
> +++ b/drivers/gpu/drm/udl/udl_drv.c
> @@ -57,27 +57,20 @@ static struct udl_device *udl_driver_create(struct 
> usb_interface *interface)
>   struct udl_device *udl;
>   int r;
>  
> - udl = kzalloc(sizeof(*udl), GFP_KERNEL);
> - if (!udl)
> - return ERR_PTR(-ENOMEM);
> -
> - r = drm_dev_init(>drm, , >dev);
> - if (r) {
> - kfree(udl);
> - return ERR_PTR(r);
> - }
> + udl = devm_drm_dev_alloc(>dev, ,
> +  struct udl_device, drm);
> + if (IS_ERR(udl))
> + return udl;
>  
>   udl->udev = udev;
>   udl->drm.dev_private = udl;
> - drmm_add_final_kfree(>drm, udl);
>  
>   r = udl_init(udl);
> - if (r) {
> - drm_dev_put(>drm);
> + if (r)
>   return ERR_PTR(r);
> - }
>  
>   usb_set_intfdata(interface, udl);
> +
>   return udl;
>  }
>  
> @@ -93,17 +86,13 @@ static int udl_usb_probe(struct usb_interface *interface,
>  
>   r = drm_dev_register(>drm, 0);
>   if (r)
> - goto err_free;
> + return r;
>  
>   DRM_INFO("Initialized udl on minor %d\n", udl->drm.primary->index);
>  
>   drm_fbdev_generic_setup(>drm, 0);
>  
>   return 0;
> -
> -err_free:
> - drm_dev_put(>drm);
> - return r;
>  }
>  
>  static void udl_usb_disconnect(struct usb_interface *interface)
> @@ -113,7 +102,6 @@ static void udl_usb_disconnect(struct usb_interface 
> *interface)
>   drm_kms_helper_poll_fini(dev);
>   udl_drop_usb(dev);
>   drm_dev_unplug(dev);
> - drm_dev_put(dev);
>  }
>  
>  /*
> -- 
> 2.25.1
> 
> ___
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 11/59] drm/udl: Use devm_drm_dev_alloc

2020-04-15 Thread Thomas Zimmermann


Am 15.04.20 um 09:39 schrieb Daniel Vetter:
> Also init the fbdev emulation before we register the device, that way
> we can rely on the auto-cleanup and simplify the probe error code even
> more.
> 
> v2: Rebase on top of Thomas' patches to remove the return value from
> drm_fbdev_generic_setup()
> 
> Signed-off-by: Daniel Vetter 
> Cc: Noralf Trønnes 
> Cc: Dave Airlie 
> Cc: Sean Paul 
> Cc: Thomas Zimmermann 
> Cc: Daniel Vetter 
> Cc: Emil Velikov 
> Cc: Sam Ravnborg 
> Cc: Thomas Gleixner 

Reviewed-by: Thomas Zimmermann 

> ---
>  drivers/gpu/drm/udl/udl_drv.c | 26 +++---
>  1 file changed, 7 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c
> index 9cc6d075cb40..523f60e02a85 100644
> --- a/drivers/gpu/drm/udl/udl_drv.c
> +++ b/drivers/gpu/drm/udl/udl_drv.c
> @@ -57,27 +57,20 @@ static struct udl_device *udl_driver_create(struct 
> usb_interface *interface)
>   struct udl_device *udl;
>   int r;
>  
> - udl = kzalloc(sizeof(*udl), GFP_KERNEL);
> - if (!udl)
> - return ERR_PTR(-ENOMEM);
> -
> - r = drm_dev_init(>drm, , >dev);
> - if (r) {
> - kfree(udl);
> - return ERR_PTR(r);
> - }
> + udl = devm_drm_dev_alloc(>dev, ,
> +  struct udl_device, drm);
> + if (IS_ERR(udl))
> + return udl;
>  
>   udl->udev = udev;
>   udl->drm.dev_private = udl;
> - drmm_add_final_kfree(>drm, udl);
>  
>   r = udl_init(udl);
> - if (r) {
> - drm_dev_put(>drm);
> + if (r)
>   return ERR_PTR(r);
> - }
>  
>   usb_set_intfdata(interface, udl);
> +
>   return udl;
>  }
>  
> @@ -93,17 +86,13 @@ static int udl_usb_probe(struct usb_interface *interface,
>  
>   r = drm_dev_register(>drm, 0);
>   if (r)
> - goto err_free;
> + return r;
>  
>   DRM_INFO("Initialized udl on minor %d\n", udl->drm.primary->index);
>  
>   drm_fbdev_generic_setup(>drm, 0);
>  
>   return 0;
> -
> -err_free:
> - drm_dev_put(>drm);
> - return r;
>  }
>  
>  static void udl_usb_disconnect(struct usb_interface *interface)
> @@ -113,7 +102,6 @@ static void udl_usb_disconnect(struct usb_interface 
> *interface)
>   drm_kms_helper_poll_fini(dev);
>   udl_drop_usb(dev);
>   drm_dev_unplug(dev);
> - drm_dev_put(dev);
>  }
>  
>  /*
> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer



signature.asc
Description: OpenPGP digital signature
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 11/59] drm/udl: Use devm_drm_dev_alloc

2020-04-15 Thread Daniel Vetter
Also init the fbdev emulation before we register the device, that way
we can rely on the auto-cleanup and simplify the probe error code even
more.

v2: Rebase on top of Thomas' patches to remove the return value from
drm_fbdev_generic_setup()

Signed-off-by: Daniel Vetter 
Cc: Noralf Trønnes 
Cc: Dave Airlie 
Cc: Sean Paul 
Cc: Thomas Zimmermann 
Cc: Daniel Vetter 
Cc: Emil Velikov 
Cc: Sam Ravnborg 
Cc: Thomas Gleixner 
---
 drivers/gpu/drm/udl/udl_drv.c | 26 +++---
 1 file changed, 7 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c
index 9cc6d075cb40..523f60e02a85 100644
--- a/drivers/gpu/drm/udl/udl_drv.c
+++ b/drivers/gpu/drm/udl/udl_drv.c
@@ -57,27 +57,20 @@ static struct udl_device *udl_driver_create(struct 
usb_interface *interface)
struct udl_device *udl;
int r;
 
-   udl = kzalloc(sizeof(*udl), GFP_KERNEL);
-   if (!udl)
-   return ERR_PTR(-ENOMEM);
-
-   r = drm_dev_init(>drm, , >dev);
-   if (r) {
-   kfree(udl);
-   return ERR_PTR(r);
-   }
+   udl = devm_drm_dev_alloc(>dev, ,
+struct udl_device, drm);
+   if (IS_ERR(udl))
+   return udl;
 
udl->udev = udev;
udl->drm.dev_private = udl;
-   drmm_add_final_kfree(>drm, udl);
 
r = udl_init(udl);
-   if (r) {
-   drm_dev_put(>drm);
+   if (r)
return ERR_PTR(r);
-   }
 
usb_set_intfdata(interface, udl);
+
return udl;
 }
 
@@ -93,17 +86,13 @@ static int udl_usb_probe(struct usb_interface *interface,
 
r = drm_dev_register(>drm, 0);
if (r)
-   goto err_free;
+   return r;
 
DRM_INFO("Initialized udl on minor %d\n", udl->drm.primary->index);
 
drm_fbdev_generic_setup(>drm, 0);
 
return 0;
-
-err_free:
-   drm_dev_put(>drm);
-   return r;
 }
 
 static void udl_usb_disconnect(struct usb_interface *interface)
@@ -113,7 +102,6 @@ static void udl_usb_disconnect(struct usb_interface 
*interface)
drm_kms_helper_poll_fini(dev);
udl_drop_usb(dev);
drm_dev_unplug(dev);
-   drm_dev_put(dev);
 }
 
 /*
-- 
2.25.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel