linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 7/7] drm: Complete remove drm_mode_object dependency
@ 2018-12-18 13:38 Shayenne Moura
  2018-12-19 13:15 ` Daniel Vetter
  0 siblings, 1 reply; 5+ messages in thread
From: Shayenne Moura @ 2018-12-18 13:38 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Sean Paul, David Airlie
  Cc: dri-devel, linux-kernel

This patch finalizes the KMS cleanup task dependency from drm_display_mode
It removes the use of drm_mode_object from drm_display_mode struct
and it removes the use of base.id and base.type.

Signed-off-by: Shayenne Moura <shayenneluzmoura@gmail.com>
---
 include/drm/drm_modes.h | 21 +++------------------
 1 file changed, 3 insertions(+), 18 deletions(-)

diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h
index baded6514456..9ecc1e835565 100644
--- a/include/drm/drm_modes.h
+++ b/include/drm/drm_modes.h
@@ -136,8 +136,7 @@ enum drm_mode_status {
        .hdisplay = (hd), .hsync_start = (hss), .hsync_end = (hse), \
        .htotal = (ht), .hskew = (hsk), .vdisplay = (vd), \
        .vsync_start = (vss), .vsync_end = (vse), .vtotal = (vt), \
-       .vscan = (vs), .flags = (f), \
-       .base.type = DRM_MODE_OBJECT_MODE
+       .vscan = (vs), .flags = (f)
 
 #define CRTC_INTERLACE_HALVE_V (1 << 0) /* halve V values for interlacing */
 #define CRTC_STEREO_DOUBLE     (1 << 1) /* adjust timings for stereo modes */
@@ -213,20 +212,6 @@ struct drm_display_mode {
         */
        struct list_head head;
 
-       /**
-        * @base:
-        *
-        * A display mode is a normal modeset object, possibly including public
-        * userspace id.
-        *
-        * FIXME:
-        *
-        * This can probably be removed since the entire concept of userspace
-        * managing modes explicitly has never landed in upstream kernel mode
-        * setting support.
-        */
-       struct drm_mode_object base;
-
        /**
         * @name:
         *
@@ -429,14 +414,14 @@ struct drm_display_mode {
 /**
  * DRM_MODE_FMT - printf string for &struct drm_display_mode
  */
-#define DRM_MODE_FMT    "%d:\"%s\" %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x"
+#define DRM_MODE_FMT    "\"%s\" %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x"
 
 /**
  * DRM_MODE_ARG - printf arguments for &struct drm_display_mode
  * @m: display mode
  */
 #define DRM_MODE_ARG(m) \
-       (m)->base.id, (m)->name, (m)->vrefresh, (m)->clock, \
+       (m)->name, (m)->vrefresh, (m)->clock, \
        (m)->hdisplay, (m)->hsync_start, (m)->hsync_end, (m)->htotal, \
        (m)->vdisplay, (m)->vsync_start, (m)->vsync_end, (m)->vtotal, \
        (m)->type, (m)->flags
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 7/7] drm: Complete remove drm_mode_object dependency
  2018-12-18 13:38 [PATCH 7/7] drm: Complete remove drm_mode_object dependency Shayenne Moura
@ 2018-12-19 13:15 ` Daniel Vetter
  2018-12-19 17:33   ` Shayenne Moura
  0 siblings, 1 reply; 5+ messages in thread
From: Daniel Vetter @ 2018-12-19 13:15 UTC (permalink / raw)
  To: Shayenne Moura
  Cc: Maarten Lankhorst, Maxime Ripard, Sean Paul, David Airlie,
	linux-kernel, dri-devel

On Tue, Dec 18, 2018 at 11:38:36AM -0200, Shayenne Moura wrote:
> This patch finalizes the KMS cleanup task dependency from drm_display_mode
> It removes the use of drm_mode_object from drm_display_mode struct
> and it removes the use of base.id and base.type.
> 
> Signed-off-by: Shayenne Moura <shayenneluzmoura@gmail.com>

I didn't yet compile-test all the drivers, but aside from that this looks
all good.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  include/drm/drm_modes.h | 21 +++------------------
>  1 file changed, 3 insertions(+), 18 deletions(-)
> 
> diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h
> index baded6514456..9ecc1e835565 100644
> --- a/include/drm/drm_modes.h
> +++ b/include/drm/drm_modes.h
> @@ -136,8 +136,7 @@ enum drm_mode_status {
>         .hdisplay = (hd), .hsync_start = (hss), .hsync_end = (hse), \
>         .htotal = (ht), .hskew = (hsk), .vdisplay = (vd), \
>         .vsync_start = (vss), .vsync_end = (vse), .vtotal = (vt), \
> -       .vscan = (vs), .flags = (f), \
> -       .base.type = DRM_MODE_OBJECT_MODE
> +       .vscan = (vs), .flags = (f)
>  
>  #define CRTC_INTERLACE_HALVE_V (1 << 0) /* halve V values for interlacing */
>  #define CRTC_STEREO_DOUBLE     (1 << 1) /* adjust timings for stereo modes */
> @@ -213,20 +212,6 @@ struct drm_display_mode {
>          */
>         struct list_head head;
>  
> -       /**
> -        * @base:
> -        *
> -        * A display mode is a normal modeset object, possibly including public
> -        * userspace id.
> -        *
> -        * FIXME:
> -        *
> -        * This can probably be removed since the entire concept of userspace
> -        * managing modes explicitly has never landed in upstream kernel mode
> -        * setting support.
> -        */
> -       struct drm_mode_object base;
> -
>         /**
>          * @name:
>          *
> @@ -429,14 +414,14 @@ struct drm_display_mode {
>  /**
>   * DRM_MODE_FMT - printf string for &struct drm_display_mode
>   */
> -#define DRM_MODE_FMT    "%d:\"%s\" %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x"
> +#define DRM_MODE_FMT    "\"%s\" %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x"
>  
>  /**
>   * DRM_MODE_ARG - printf arguments for &struct drm_display_mode
>   * @m: display mode
>   */
>  #define DRM_MODE_ARG(m) \
> -       (m)->base.id, (m)->name, (m)->vrefresh, (m)->clock, \
> +       (m)->name, (m)->vrefresh, (m)->clock, \
>         (m)->hdisplay, (m)->hsync_start, (m)->hsync_end, (m)->htotal, \
>         (m)->vdisplay, (m)->vsync_start, (m)->vsync_end, (m)->vtotal, \
>         (m)->type, (m)->flags
> -- 
> 2.17.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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 7/7] drm: Complete remove drm_mode_object dependency
  2018-12-19 13:15 ` Daniel Vetter
@ 2018-12-19 17:33   ` Shayenne Moura
  0 siblings, 0 replies; 5+ messages in thread
From: Shayenne Moura @ 2018-12-19 17:33 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Sean Paul, David Airlie,
	linux-kernel, dri-devel

On 12/19, Daniel Vetter wrote:
> On Tue, Dec 18, 2018 at 11:38:36AM -0200, Shayenne Moura wrote:
> > This patch finalizes the KMS cleanup task dependency from drm_display_mode
> > It removes the use of drm_mode_object from drm_display_mode struct
> > and it removes the use of base.id and base.type.
> > 
> > Signed-off-by: Shayenne Moura <shayenneluzmoura@gmail.com>
> 
> I didn't yet compile-test all the drivers, but aside from that this looks
> all good.
> 
Thank you for your reviews! :)

Shayenne

> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > ---
> >  include/drm/drm_modes.h | 21 +++------------------
> >  1 file changed, 3 insertions(+), 18 deletions(-)
> > 
> > diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h
> > index baded6514456..9ecc1e835565 100644
> > --- a/include/drm/drm_modes.h
> > +++ b/include/drm/drm_modes.h
> > @@ -136,8 +136,7 @@ enum drm_mode_status {
> >         .hdisplay = (hd), .hsync_start = (hss), .hsync_end = (hse), \
> >         .htotal = (ht), .hskew = (hsk), .vdisplay = (vd), \
> >         .vsync_start = (vss), .vsync_end = (vse), .vtotal = (vt), \
> > -       .vscan = (vs), .flags = (f), \
> > -       .base.type = DRM_MODE_OBJECT_MODE
> > +       .vscan = (vs), .flags = (f)
> >  
> >  #define CRTC_INTERLACE_HALVE_V (1 << 0) /* halve V values for interlacing */
> >  #define CRTC_STEREO_DOUBLE     (1 << 1) /* adjust timings for stereo modes */
> > @@ -213,20 +212,6 @@ struct drm_display_mode {
> >          */
> >         struct list_head head;
> >  
> > -       /**
> > -        * @base:
> > -        *
> > -        * A display mode is a normal modeset object, possibly including public
> > -        * userspace id.
> > -        *
> > -        * FIXME:
> > -        *
> > -        * This can probably be removed since the entire concept of userspace
> > -        * managing modes explicitly has never landed in upstream kernel mode
> > -        * setting support.
> > -        */
> > -       struct drm_mode_object base;
> > -
> >         /**
> >          * @name:
> >          *
> > @@ -429,14 +414,14 @@ struct drm_display_mode {
> >  /**
> >   * DRM_MODE_FMT - printf string for &struct drm_display_mode
> >   */
> > -#define DRM_MODE_FMT    "%d:\"%s\" %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x"
> > +#define DRM_MODE_FMT    "\"%s\" %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x"
> >  
> >  /**
> >   * DRM_MODE_ARG - printf arguments for &struct drm_display_mode
> >   * @m: display mode
> >   */
> >  #define DRM_MODE_ARG(m) \
> > -       (m)->base.id, (m)->name, (m)->vrefresh, (m)->clock, \
> > +       (m)->name, (m)->vrefresh, (m)->clock, \
> >         (m)->hdisplay, (m)->hsync_start, (m)->hsync_end, (m)->htotal, \
> >         (m)->vdisplay, (m)->vsync_start, (m)->vsync_end, (m)->vtotal, \
> >         (m)->type, (m)->flags
> > -- 
> > 2.17.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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 7/7] drm: Complete remove drm_mode_object dependency
  2018-12-19 21:29 ` [PATCH 7/7] drm: Complete remove drm_mode_object dependency Shayenne Moura
@ 2018-12-22 20:18   ` kbuild test robot
  0 siblings, 0 replies; 5+ messages in thread
From: kbuild test robot @ 2018-12-22 20:18 UTC (permalink / raw)
  To: Shayenne Moura
  Cc: kbuild-all, Maarten Lankhorst, Maxime Ripard, Sean Paul,
	David Airlie, linux-kernel, dri-devel

[-- Attachment #1: Type: text/plain, Size: 2866 bytes --]

Hi Shayenne,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on robclark/msm-next]
[also build test ERROR on v4.20-rc7 next-20181221]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Shayenne-Moura/drm-Remove-drm_mode_object-dependency-from-drm_display_mode/20181222-065838
base:   git://people.freedesktop.org/~robclark/linux msm-next
config: i386-randconfig-a3-12211242 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   drivers/gpu/drm/drm_modes.c: In function 'drm_mode_destroy':
>> drivers/gpu/drm/drm_modes.c:90:39: error: 'struct drm_display_mode' has no member named 'base'
     drm_mode_object_unregister(dev, &mode->base);
                                          ^
   drivers/gpu/drm/drm_modes.c: In function 'drm_mode_copy':
   drivers/gpu/drm/drm_modes.c:909:14: error: 'struct drm_display_mode' has no member named 'base'
     int id = dst->base.id;
                 ^
   drivers/gpu/drm/drm_modes.c:913:5: error: 'struct drm_display_mode' has no member named 'base'
     dst->base.id = id;
        ^

vim +90 drivers/gpu/drm/drm_modes.c

8bd441b2 Daniel Vetter 2014-01-23  77  
8bd441b2 Daniel Vetter 2014-01-23  78  /**
8bd441b2 Daniel Vetter 2014-01-23  79   * drm_mode_destroy - remove a mode
8bd441b2 Daniel Vetter 2014-01-23  80   * @dev: DRM device
8bd441b2 Daniel Vetter 2014-01-23  81   * @mode: mode to remove
8bd441b2 Daniel Vetter 2014-01-23  82   *
f5aabb97 Daniel Vetter 2014-01-23  83   * Release @mode's unique ID, then free it @mode structure itself using kfree.
8bd441b2 Daniel Vetter 2014-01-23  84   */
8bd441b2 Daniel Vetter 2014-01-23  85  void drm_mode_destroy(struct drm_device *dev, struct drm_display_mode *mode)
8bd441b2 Daniel Vetter 2014-01-23  86  {
8bd441b2 Daniel Vetter 2014-01-23  87  	if (!mode)
8bd441b2 Daniel Vetter 2014-01-23  88  		return;
8bd441b2 Daniel Vetter 2014-01-23  89  
7c8f6d25 Dave Airlie   2016-04-15 @90  	drm_mode_object_unregister(dev, &mode->base);
8bd441b2 Daniel Vetter 2014-01-23  91  
8bd441b2 Daniel Vetter 2014-01-23  92  	kfree(mode);
8bd441b2 Daniel Vetter 2014-01-23  93  }
8bd441b2 Daniel Vetter 2014-01-23  94  EXPORT_SYMBOL(drm_mode_destroy);
8bd441b2 Daniel Vetter 2014-01-23  95  

:::::: The code at line 90 was first introduced by commit
:::::: 7c8f6d2577c7565f67ba3f6b9b76f7422710d66e drm/mode: rework drm_mode_object_put to drm_mode_object_unregister.

:::::: TO: Dave Airlie <airlied@redhat.com>
:::::: CC: Dave Airlie <airlied@redhat.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 30542 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 7/7] drm: Complete remove drm_mode_object dependency
  2018-12-19 21:21 [PATCH 0/7] drm: Remove drm_mode_object dependency from drm_display_mode Shayenne Moura
@ 2018-12-19 21:29 ` Shayenne Moura
  2018-12-22 20:18   ` kbuild test robot
  0 siblings, 1 reply; 5+ messages in thread
From: Shayenne Moura @ 2018-12-19 21:29 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Sean Paul, David Airlie
  Cc: dri-devel, linux-kernel

This patch finalizes the KMS cleanup task dependency from
drm_display_mode. It removes the use of drm_mode_object
from drm_display_mode struct and it removes the use of
base.id and base.type from drm_display_mode struct
print string.

Signed-off-by: Shayenne Moura <shayenneluzmoura@gmail.com>
---
 include/drm/drm_modes.h | 21 +++------------------
 1 file changed, 3 insertions(+), 18 deletions(-)

diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h
index baded6514456..be4fed97e727 100644
--- a/include/drm/drm_modes.h
+++ b/include/drm/drm_modes.h
@@ -136,8 +136,7 @@ enum drm_mode_status {
 	.hdisplay = (hd), .hsync_start = (hss), .hsync_end = (hse), \
 	.htotal = (ht), .hskew = (hsk), .vdisplay = (vd), \
 	.vsync_start = (vss), .vsync_end = (vse), .vtotal = (vt), \
-	.vscan = (vs), .flags = (f), \
-	.base.type = DRM_MODE_OBJECT_MODE
+	.vscan = (vs), .flags = (f)
 
 #define CRTC_INTERLACE_HALVE_V	(1 << 0) /* halve V values for interlacing */
 #define CRTC_STEREO_DOUBLE	(1 << 1) /* adjust timings for stereo modes */
@@ -213,20 +212,6 @@ struct drm_display_mode {
 	 */
 	struct list_head head;
 
-	/**
-	 * @base:
-	 *
-	 * A display mode is a normal modeset object, possibly including public
-	 * userspace id.
-	 *
-	 * FIXME:
-	 *
-	 * This can probably be removed since the entire concept of userspace
-	 * managing modes explicitly has never landed in upstream kernel mode
-	 * setting support.
-	 */
-	struct drm_mode_object base;
-
 	/**
 	 * @name:
 	 *
@@ -429,14 +414,14 @@ struct drm_display_mode {
 /**
  * DRM_MODE_FMT - printf string for &struct drm_display_mode
  */
-#define DRM_MODE_FMT    "%d:\"%s\" %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x"
+#define DRM_MODE_FMT    "\"%s\": %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x"
 
 /**
  * DRM_MODE_ARG - printf arguments for &struct drm_display_mode
  * @m: display mode
  */
 #define DRM_MODE_ARG(m) \
-	(m)->base.id, (m)->name, (m)->vrefresh, (m)->clock, \
+	(m)->name, (m)->vrefresh, (m)->clock, \
 	(m)->hdisplay, (m)->hsync_start, (m)->hsync_end, (m)->htotal, \
 	(m)->vdisplay, (m)->vsync_start, (m)->vsync_end, (m)->vtotal, \
 	(m)->type, (m)->flags
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-12-22 20:18 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-18 13:38 [PATCH 7/7] drm: Complete remove drm_mode_object dependency Shayenne Moura
2018-12-19 13:15 ` Daniel Vetter
2018-12-19 17:33   ` Shayenne Moura
2018-12-19 21:21 [PATCH 0/7] drm: Remove drm_mode_object dependency from drm_display_mode Shayenne Moura
2018-12-19 21:29 ` [PATCH 7/7] drm: Complete remove drm_mode_object dependency Shayenne Moura
2018-12-22 20:18   ` kbuild test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).