Re: [Spice-devel] [PATCH 27/59] drm/qxl: Don't use drm_device->dev_private

2020-04-24 Thread Sam Ravnborg
On Wed, Apr 15, 2020 at 09:40:02AM +0200, Daniel Vetter wrote:
> Upcasting using a container_of macro is more typesafe, faster and
> easier for the compiler to optimize.
> 
> Acked-by: Gerd Hoffmann 
> Signed-off-by: Daniel Vetter 
> Cc: Dave Airlie 
> Cc: Gerd Hoffmann 
> Cc: virtualizat...@lists.linux-foundation.org
> Cc: spice-devel@lists.freedesktop.org
Acked-by: Sam Ravnborg 

> ---
>  drivers/gpu/drm/qxl/qxl_debugfs.c |  7 +++
>  drivers/gpu/drm/qxl/qxl_display.c | 32 +++
>  drivers/gpu/drm/qxl/qxl_drv.c |  8 
>  drivers/gpu/drm/qxl/qxl_drv.h |  4 ++--
>  drivers/gpu/drm/qxl/qxl_dumb.c|  2 +-
>  drivers/gpu/drm/qxl/qxl_gem.c |  2 +-
>  drivers/gpu/drm/qxl/qxl_ioctl.c   | 14 +++---
>  drivers/gpu/drm/qxl/qxl_irq.c |  2 +-
>  drivers/gpu/drm/qxl/qxl_kms.c |  1 -
>  drivers/gpu/drm/qxl/qxl_object.c  |  2 +-
>  drivers/gpu/drm/qxl/qxl_release.c |  2 +-
>  drivers/gpu/drm/qxl/qxl_ttm.c |  2 +-
>  12 files changed, 38 insertions(+), 40 deletions(-)
> 
> diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c 
> b/drivers/gpu/drm/qxl/qxl_debugfs.c
> index 88123047fdd4..524d35b648d8 100644
> --- a/drivers/gpu/drm/qxl/qxl_debugfs.c
> +++ b/drivers/gpu/drm/qxl/qxl_debugfs.c
> @@ -39,7 +39,7 @@ static int
>  qxl_debugfs_irq_received(struct seq_file *m, void *data)
>  {
>   struct drm_info_node *node = (struct drm_info_node *) m->private;
> - struct qxl_device *qdev = node->minor->dev->dev_private;
> + struct qxl_device *qdev = to_qxl(node->minor->dev);
>  
>   seq_printf(m, "%d\n", atomic_read(>irq_received));
>   seq_printf(m, "%d\n", atomic_read(>irq_received_display));
> @@ -53,7 +53,7 @@ static int
>  qxl_debugfs_buffers_info(struct seq_file *m, void *data)
>  {
>   struct drm_info_node *node = (struct drm_info_node *) m->private;
> - struct qxl_device *qdev = node->minor->dev->dev_private;
> + struct qxl_device *qdev = to_qxl(node->minor->dev);
>   struct qxl_bo *bo;
>  
>   list_for_each_entry(bo, >gem.objects, list) {
> @@ -83,8 +83,7 @@ void
>  qxl_debugfs_init(struct drm_minor *minor)
>  {
>  #if defined(CONFIG_DEBUG_FS)
> - struct qxl_device *dev =
> - (struct qxl_device *) minor->dev->dev_private;
> + struct qxl_device *dev = to_qxl(minor->dev);
>  
>   drm_debugfs_create_files(qxl_debugfs_list, QXL_DEBUGFS_ENTRIES,
>minor->debugfs_root, minor);
> diff --git a/drivers/gpu/drm/qxl/qxl_display.c 
> b/drivers/gpu/drm/qxl/qxl_display.c
> index 09583a08e141..1082cd5d2fd4 100644
> --- a/drivers/gpu/drm/qxl/qxl_display.c
> +++ b/drivers/gpu/drm/qxl/qxl_display.c
> @@ -221,7 +221,7 @@ static int qxl_add_mode(struct drm_connector *connector,
>   bool preferred)
>  {
>   struct drm_device *dev = connector->dev;
> - struct qxl_device *qdev = dev->dev_private;
> + struct qxl_device *qdev = to_qxl(dev);
>   struct drm_display_mode *mode = NULL;
>   int rc;
>  
> @@ -242,7 +242,7 @@ static int qxl_add_mode(struct drm_connector *connector,
>  static int qxl_add_monitors_config_modes(struct drm_connector *connector)
>  {
>   struct drm_device *dev = connector->dev;
> - struct qxl_device *qdev = dev->dev_private;
> + struct qxl_device *qdev = to_qxl(dev);
>   struct qxl_output *output = drm_connector_to_qxl_output(connector);
>   int h = output->index;
>   struct qxl_head *head;
> @@ -310,7 +310,7 @@ static void qxl_crtc_update_monitors_config(struct 
> drm_crtc *crtc,
>   const char *reason)
>  {
>   struct drm_device *dev = crtc->dev;
> - struct qxl_device *qdev = dev->dev_private;
> + struct qxl_device *qdev = to_qxl(dev);
>   struct qxl_crtc *qcrtc = to_qxl_crtc(crtc);
>   struct qxl_head head;
>   int oldcount, i = qcrtc->index;
> @@ -400,7 +400,7 @@ static int qxl_framebuffer_surface_dirty(struct 
> drm_framebuffer *fb,
>unsigned int num_clips)
>  {
>   /* TODO: vmwgfx where this was cribbed from had locking. Why? */
> - struct qxl_device *qdev = fb->dev->dev_private;
> + struct qxl_device *qdev = to_qxl(fb->dev);
>   struct drm_clip_rect norect;
>   struct qxl_bo *qobj;
>   bool is_primary;
> @@ -462,7 +462,7 @@ static const struct drm_crtc_helper_funcs 
> qxl_crtc_helper_funcs = {
>  static int qxl_primary_atomic_check(struct drm_plane *plane,
>   struct drm_plane_state *state)
>  {
> - struct qxl_device *qdev = plane->dev->dev_private;
> + struct qxl_device *qdev = to_qxl(plane->dev);
>   struct qxl_bo *bo;
>  
>   if (!state->crtc || !state->fb)
> @@ -476,7 +476,7 @@ static int qxl_primary_atomic_check(struct drm_plane 
> *plane,
>  static int qxl_primary_apply_cursor(struct drm_plane *plane)
>  {
>   struct drm_device *dev = plane->dev;
> - struct qxl_device *qdev = dev->dev_private;
> + struct 

[Spice-devel] [PATCH 27/59] drm/qxl: Don't use drm_device->dev_private

2020-04-15 Thread Daniel Vetter
Upcasting using a container_of macro is more typesafe, faster and
easier for the compiler to optimize.

Acked-by: Gerd Hoffmann 
Signed-off-by: Daniel Vetter 
Cc: Dave Airlie 
Cc: Gerd Hoffmann 
Cc: virtualizat...@lists.linux-foundation.org
Cc: spice-devel@lists.freedesktop.org
---
 drivers/gpu/drm/qxl/qxl_debugfs.c |  7 +++
 drivers/gpu/drm/qxl/qxl_display.c | 32 +++
 drivers/gpu/drm/qxl/qxl_drv.c |  8 
 drivers/gpu/drm/qxl/qxl_drv.h |  4 ++--
 drivers/gpu/drm/qxl/qxl_dumb.c|  2 +-
 drivers/gpu/drm/qxl/qxl_gem.c |  2 +-
 drivers/gpu/drm/qxl/qxl_ioctl.c   | 14 +++---
 drivers/gpu/drm/qxl/qxl_irq.c |  2 +-
 drivers/gpu/drm/qxl/qxl_kms.c |  1 -
 drivers/gpu/drm/qxl/qxl_object.c  |  2 +-
 drivers/gpu/drm/qxl/qxl_release.c |  2 +-
 drivers/gpu/drm/qxl/qxl_ttm.c |  2 +-
 12 files changed, 38 insertions(+), 40 deletions(-)

diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c 
b/drivers/gpu/drm/qxl/qxl_debugfs.c
index 88123047fdd4..524d35b648d8 100644
--- a/drivers/gpu/drm/qxl/qxl_debugfs.c
+++ b/drivers/gpu/drm/qxl/qxl_debugfs.c
@@ -39,7 +39,7 @@ static int
 qxl_debugfs_irq_received(struct seq_file *m, void *data)
 {
struct drm_info_node *node = (struct drm_info_node *) m->private;
-   struct qxl_device *qdev = node->minor->dev->dev_private;
+   struct qxl_device *qdev = to_qxl(node->minor->dev);
 
seq_printf(m, "%d\n", atomic_read(>irq_received));
seq_printf(m, "%d\n", atomic_read(>irq_received_display));
@@ -53,7 +53,7 @@ static int
 qxl_debugfs_buffers_info(struct seq_file *m, void *data)
 {
struct drm_info_node *node = (struct drm_info_node *) m->private;
-   struct qxl_device *qdev = node->minor->dev->dev_private;
+   struct qxl_device *qdev = to_qxl(node->minor->dev);
struct qxl_bo *bo;
 
list_for_each_entry(bo, >gem.objects, list) {
@@ -83,8 +83,7 @@ void
 qxl_debugfs_init(struct drm_minor *minor)
 {
 #if defined(CONFIG_DEBUG_FS)
-   struct qxl_device *dev =
-   (struct qxl_device *) minor->dev->dev_private;
+   struct qxl_device *dev = to_qxl(minor->dev);
 
drm_debugfs_create_files(qxl_debugfs_list, QXL_DEBUGFS_ENTRIES,
 minor->debugfs_root, minor);
diff --git a/drivers/gpu/drm/qxl/qxl_display.c 
b/drivers/gpu/drm/qxl/qxl_display.c
index 09583a08e141..1082cd5d2fd4 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -221,7 +221,7 @@ static int qxl_add_mode(struct drm_connector *connector,
bool preferred)
 {
struct drm_device *dev = connector->dev;
-   struct qxl_device *qdev = dev->dev_private;
+   struct qxl_device *qdev = to_qxl(dev);
struct drm_display_mode *mode = NULL;
int rc;
 
@@ -242,7 +242,7 @@ static int qxl_add_mode(struct drm_connector *connector,
 static int qxl_add_monitors_config_modes(struct drm_connector *connector)
 {
struct drm_device *dev = connector->dev;
-   struct qxl_device *qdev = dev->dev_private;
+   struct qxl_device *qdev = to_qxl(dev);
struct qxl_output *output = drm_connector_to_qxl_output(connector);
int h = output->index;
struct qxl_head *head;
@@ -310,7 +310,7 @@ static void qxl_crtc_update_monitors_config(struct drm_crtc 
*crtc,
const char *reason)
 {
struct drm_device *dev = crtc->dev;
-   struct qxl_device *qdev = dev->dev_private;
+   struct qxl_device *qdev = to_qxl(dev);
struct qxl_crtc *qcrtc = to_qxl_crtc(crtc);
struct qxl_head head;
int oldcount, i = qcrtc->index;
@@ -400,7 +400,7 @@ static int qxl_framebuffer_surface_dirty(struct 
drm_framebuffer *fb,
 unsigned int num_clips)
 {
/* TODO: vmwgfx where this was cribbed from had locking. Why? */
-   struct qxl_device *qdev = fb->dev->dev_private;
+   struct qxl_device *qdev = to_qxl(fb->dev);
struct drm_clip_rect norect;
struct qxl_bo *qobj;
bool is_primary;
@@ -462,7 +462,7 @@ static const struct drm_crtc_helper_funcs 
qxl_crtc_helper_funcs = {
 static int qxl_primary_atomic_check(struct drm_plane *plane,
struct drm_plane_state *state)
 {
-   struct qxl_device *qdev = plane->dev->dev_private;
+   struct qxl_device *qdev = to_qxl(plane->dev);
struct qxl_bo *bo;
 
if (!state->crtc || !state->fb)
@@ -476,7 +476,7 @@ static int qxl_primary_atomic_check(struct drm_plane *plane,
 static int qxl_primary_apply_cursor(struct drm_plane *plane)
 {
struct drm_device *dev = plane->dev;
-   struct qxl_device *qdev = dev->dev_private;
+   struct qxl_device *qdev = to_qxl(dev);
struct drm_framebuffer *fb = plane->state->fb;
struct qxl_crtc *qcrtc = to_qxl_crtc(plane->state->crtc);
struct qxl_cursor_cmd *cmd;
@@ -523,7 +523,7 @@ static int