drm/qxl: use qxl_num_crtc directly
Subsystems (4)
Gerd Hoffmann
maintainerPATCH 1/1 drm/qxl: use qxl_num_crtc directly
Just use qxl_num_crtc directly everywhere instead of using qdev->monitors_config->max_allowed. Drops pointless indirection and also is less confusing.
--- drivers/gpu/drm/qxl/qxl_display.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-)
drivers/gpu/drm/qxl/qxl_display.c +9 -12
@@ -80,10 +80,10 @@ static int qxl_display_copy_rom_client_monitors_config(struct qxl_device *qdev)DRM_DEBUG_KMS ("no client monitors configured\n" );return status; } -if (num_monitors > qdev->monitors_config->max_allowed) { +if (num_monitors > qxl_num_crtc) {DRM_DEBUG_KMS ("client monitors list will be truncated: %d < %d\n" , - qdev->monitors_config->max_allowed, num_monitors); - num_monitors = qdev->monitors_config->max_allowed; + qxl_num_crtc, num_monitors); + num_monitors = qxl_num_crtc; }else { num_monitors = qdev->rom->client_monitors_config.count; }
@@ -96,8 +96,7 @@ static int qxl_display_copy_rom_client_monitors_config(struct qxl_device *qdev)return status; }/* we copy max from the client but it isn't used */ - qdev->client_monitors_config->max_allowed = - qdev->monitors_config->max_allowed; + qdev->client_monitors_config->max_allowed = qxl_num_crtc;for (i =0 ; i < qdev->client_monitors_config->count ; ++i) {struct qxl_urect *c_rect = &qdev->rom->client_monitors_config.heads[i];
@@ -204,7 +203,7 @@ static int qxl_add_monitors_config_modes(struct drm_connector *connector,if (!qdev->monitors_config)return 0 ; -if (h >= qdev->monitors_config->max_allowed) +if (h >= qxl_num_crtc)return 0 ;if (!qdev->client_monitors_config)return 0 ;
@@ -307,8 +306,7 @@ static void qxl_crtc_update_monitors_config(struct drm_crtc *crtc,return ; } -if (!qdev->monitors_config || - qdev->monitors_config->max_allowed <= i) +if (!qdev->monitors_config || qxl_num_crtc <= i)return ; head.id = i;
@@ -348,9 +346,10 @@ static void qxl_crtc_update_monitors_config(struct drm_crtc *crtc,if (oldcount != qdev->monitors_config->count)DRM_DEBUG_KMS ("active heads %d -> %d (%d total)\n" , oldcount, qdev->monitors_config->count, - qdev->monitors_config->max_allowed); + qxl_num_crtc); qdev->monitors_config->heads[i] = head; + qdev->monitors_config->max_allowed = qxl_num_crtc;qxl_send_monitors_config (qdev); }
@@ -1097,9 +1096,8 @@ int qxl_create_monitors_object(struct qxl_device *qdev) {int ret;struct drm_gem_object *gobj; -int max_allowed = qxl_num_crtc;int monitors_config_size =sizeof (struct qxl_monitors_config ) + - max_allowed *sizeof (struct qxl_head ); + qxl_num_crtc *sizeof (struct qxl_head ); ret = qxl_gem_object_create(qdev, monitors_config_size, 0, QXL_GEM_DOMAIN_VRAM,
@@ -1121,7 +1119,6 @@ int qxl_create_monitors_object(struct qxl_device *qdev)qxl_bo_physical_address (qdev, qdev->monitors_config_bo,0 );memset (qdev->monitors_config,0 , monitors_config_size); - qdev->monitors_config->max_allowed = max_allowed;return 0 ; }
Signature · 1 line
2.9.3
Quoted 5 lines
Just use
qxl_num_crtcdirectly everywhere instead of usingqdev->monitors_config->max_allowed. Drops pointless indirection and also is less confusing.
To me is MORE confusing, why comparing number of something with another number? Previously code was comparing number of monitors with number of monitors, not number of CRTs with number of monitors.
Why we are optimizing code that, as yours same saying, we are not much actively improving?
Quoted 82 lines
Signed-off-by Gerd Hoffmann <[email protected]>--- drivers/gpu/drm/qxl/qxl_display.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-)drivers/gpu/drm/qxl/qxl_display.c +3
-3@@ -80,10 +80,10 @@ static int qxl_display_copy_rom_client_monitors_config(struct qxl_device *qdev) DRM_DEBUG_KMS("no client monitors configured\n");return status; } -if (num_monitors > qdev->monitors_config->max_allowed) { +if (num_monitors > qxl_num_crtc) {DRM_DEBUG_KMS ("client monitors list will be truncated: %d < %d\n" , - qdev->monitors_config->max_allowed, num_monitors); - num_monitors = qdev->monitors_config->max_allowed; + qxl_num_crtc, num_monitors); + num_monitors = qxl_num_crtc; }else { num_monitors = qdev->rom->client_monitors_config.count;drivers/gpu/drm/qxl/qxl_display.c +1
-2}@@ -96,8 +96,7 @@ static int qxl_display_copy_rom_client_monitors_config(struct qxl_device *qdev) return status; }/* we copy max from the client but it isn't used */ - qdev->client_monitors_config->max_allowed = - qdev->monitors_config->max_allowed; + qdev->client_monitors_config->max_allowed = qxl_num_crtc;for (i =0 ; i < qdev->client_monitors_config->count ; ++i) { struct qxl_urect *c_rect =drivers/gpu/drm/qxl/qxl_display.c +1
-1&qdev->rom->client_monitors_config.heads[i];@@ -204,7 +203,7 @@ static int qxl_add_monitors_config_modes(struct drm_connector *connector, if (!qdev->monitors_config)return 0 ; -if (h >= qdev->monitors_config->max_allowed) +if (h >= qxl_num_crtc)return 0 ;if (!qdev->client_monitors_config)drivers/gpu/drm/qxl/qxl_display.c +1
-2return 0 ;@@ -307,8 +306,7 @@ static void qxl_crtc_update_monitors_config(structdrm_crtc *crtc, return; } -if (!qdev->monitors_config || - qdev->monitors_config->max_allowed <= i) +if (!qdev->monitors_config || qxl_num_crtc <= i)return ;drivers/gpu/drm/qxl/qxl_display.c +3
-3head.id = i;@@ -348,9 +346,10 @@ static void qxl_crtc_update_monitors_config(struct drm_crtc *crtc, if (oldcount != qdev->monitors_config->count)DRM_DEBUG_KMS ("active heads %d -> %d (%d total)\n" , oldcount, qdev->monitors_config->count, - qdev->monitors_config->max_allowed); + qxl_num_crtc); qdev->monitors_config->heads[i] = head; + qdev->monitors_config->max_allowed = qxl_num_crtc;qxl_send_monitors_config (qdev); }@@ -1097,9 +1096,8 @@ int qxl_create_monitors_object(struct qxl_device *qdev) {int ret;struct drm_gem_object *gobj; -int max_allowed = qxl_num_crtc;int monitors_config_size =sizeof (struct qxl_monitors_config ) + - max_allowed *sizeof (struct qxl_head ); + qxl_num_crtc *sizeof (struct qxl_head ); ret = qxl_gem_object_create(qdev, monitors_config_size, 0, QXL_GEM_DOMAIN_VRAM,
drivers/gpu/drm/qxl/qxl_display.c int qxl_create_monitors_object(struct qxl_device *qdev) · line 1124
Quoted 7 lines
drivers/gpu/drm/qxl/qxl_display.c +0
-1@@ -1121,7 +1119,6 @@ int qxl_create_monitors_object(struct qxl_device *qdev)qxl_bo_physical_address (qdev, qdev->monitors_config_bo,0 );memset (qdev->monitors_config,0 , monitors_config_size); - qdev->monitors_config->max_allowed = max_allowed;return 0 ; }
Frediano
Gerd Hoffmann
maintainerQuoted 10 lines · Frediano Ziglio
Quoted 5 lines
Just use
qxl_num_crtcdirectly everywhere instead of usingqdev->monitors_config->max_allowed. Drops pointless indirection and also is less confusing.To me is MORE confusing, why comparing number of something with another number? Previously code was comparing number of monitors with number of monitors, not number of CRTs with number of monitors.
Yes, spice/qxl and drm/kms use slightly different terminology.
drm crtc == qxl monitor.
drm framebuffer == qxl surface.
You need to know that anyway when looking at the qxl ksm code. We have function names like qxl_crtc_update_monitors_config(). I fail to see why that is a problem ...
cheers,
Gerd
Quoted 18 lines · Frediano Ziglio
Quoted 10 lines
Quoted 5 lines
Just use
qxl_num_crtcdirectly everywhere instead of usingqdev->monitors_config->max_allowed. Drops pointless indirection and also is less confusing.To me is MORE confusing, why comparing number of something with another number? Previously code was comparing number of monitors with number of monitors, not number of CRTs with number of monitors.
Yes, spice/qxl and drm/kms use slightly different terminology.
drm crtc == qxl monitor.
drm framebuffer == qxl surface.
Quoted 8 lines
You need to know that anyway when looking at the qxl ksm code. We have function names like
qxl_crtc_update_monitors_config(). I fail to see why that is a problem ...cheers,
Gerd
I don't see any problem too but you are explaining to me why your rationale "and also is less confusing" does not stand.
Frediano
Gerd Hoffmann
maintainerQuoted 22 lines · Frediano Ziglio
Quoted 22 lines · Frediano Ziglio
Quoted 10 lines
Quoted 5 lines
Just use
qxl_num_crtcdirectly everywhere instead of usingqdev->monitors_config->max_allowed. Drops pointless indirection and also is less confusing.To me is MORE confusing, why comparing number of something with another number? Previously code was comparing number of monitors with number of monitors, not number of CRTs with number of monitors.
Yes, spice/qxl and drm/kms use slightly different terminology.
drm crtc == qxl monitor.
drm framebuffer == qxl surface.You need to know that anyway when looking at the qxl ksm code. We have function names like
qxl_crtc_update_monitors_config(). I fail to see why that is a problem ...
Quoted 6 lines
Quoted 2 lines
cheers,
GerdI don't see any problem too but you are explaining to me why your rationale "and also is less confusing" does not stand.
Well, it's less confusing because it takes away an indirection (not because of the naming).
qdev->monitors_config->max_allowed is effectively set by a module parameter. So using the module parameter variable qxl_num_crtc directly is better IMO. The kernel doesn't need to dereference pointers each time it needs the value, and when reading the code you don't have to trace where and why qdev->monitors_config->max_allowed is set.
cheers,
Gerd
Quoted 27 lines · Frediano Ziglio
Quoted 25 lines
Quoted 24 lines · Frediano Ziglio
Quoted 10 lines
Quoted 5 lines
Just use
qxl_num_crtcdirectly everywhere instead of usingqdev->monitors_config->max_allowed. Drops pointless indirection and also is less confusing.To me is MORE confusing, why comparing number of something with another number? Previously code was comparing number of monitors with number of monitors, not number of CRTs with number of monitors.
Yes, spice/qxl and drm/kms use slightly different terminology.
drm crtc == qxl monitor.
drm framebuffer == qxl surface.You need to know that anyway when looking at the qxl ksm code. We have function names like
qxl_crtc_update_monitors_config(). I fail to see why that is a problem ...cheers,
Gerd
Quoted 7 lines
Quoted 3 lines
I don't see any problem too but you are explaining to me why your rationale "and also is less confusing" does not stand.
Well, it's less confusing because it takes away an indirection (not because of the naming).
It does not confuse me.
Quoted 6 lines
qdev->monitors_config->max_allowedis effectively set by a module parameter. So using the module parameter variableqxl_num_crtcdirectly is better IMO. The kernel doesn't need to dereference pointers each time it needs the value, and when reading the code you don't have to trace where and whyqdev->monitors_config->max_allowedis set.
That should go to the commit message!
With that the patch is fine for me.
Maybe there's no much point on reusing the same structure used inside QXLRom/QXLRam but this is OT for this patch.
Quoted 4 lines
cheers,
Gerd
Frediano
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Gerd Hoffmann
maintainerQuoted 8 lines
Quoted 5 lines
qdev->monitors_config->max_allowedis effectively set by a module parameter. So using the module parameter variableqxl_num_crtcdirectly is better IMO. The kernel doesn't need to dereference pointers each time it needs the value, and when reading the code you don't have to trace where and whyqdev->monitors_config->max_allowedis set.That should go to the commit message!
With that the patch is fine for me.
ok, I'll improve the message.
Quoted 2 lines
Maybe there's no much point on reusing the same structure used inside QXLRom/QXLRam but this is OT for this patch.
It's part of the qxl device ABI, the same structure is used for both host->guest (config hint from spice-client) and guest->host (actual configuration).
cheers,
Gerd
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Gerd Hoffmann
maintainerQuoted 8 lines
Quoted 5 lines
qdev->monitors_config->max_allowedis effectively set by a module parameter. So using the module parameter variableqxl_num_crtcdirectly is better IMO. The kernel doesn't need to dereference pointers each time it needs the value, and when reading the code you don't have to trace where and whyqdev->monitors_config->max_allowedis set.That should go to the commit message!
With that the patch is fine for me.
ok, I'll improve the message.
Quoted 2 lines
Maybe there's no much point on reusing the same structure used inside QXLRom/QXLRam but this is OT for this patch.
It's part of the qxl device ABI, the same structure is used for both host->guest (config hint from spice-client) and guest->host (actual configuration).
cheers,
Gerd
Gerd Hoffmann
maintainerQuoted 22 lines · Frediano Ziglio
Quoted 22 lines · Frediano Ziglio
Quoted 10 lines
Quoted 5 lines
Just use
qxl_num_crtcdirectly everywhere instead of usingqdev->monitors_config->max_allowed. Drops pointless indirection and also is less confusing.To me is MORE confusing, why comparing number of something with another number? Previously code was comparing number of monitors with number of monitors, not number of CRTs with number of monitors.
Yes, spice/qxl and drm/kms use slightly different terminology.
drm crtc == qxl monitor.
drm framebuffer == qxl surface.You need to know that anyway when looking at the qxl ksm code. We have function names like
qxl_crtc_update_monitors_config(). I fail to see why that is a problem ...
Quoted 6 lines
Quoted 2 lines
cheers,
GerdI don't see any problem too but you are explaining to me why your rationale "and also is less confusing" does not stand.
Well, it's less confusing because it takes away an indirection (not because of the naming).
qdev->monitors_config->max_allowed is effectively set by a module parameter. So using the module parameter variable qxl_num_crtc directly is better IMO. The kernel doesn't need to dereference pointers each time it needs the value, and when reading the code you don't have to trace where and why qdev->monitors_config->max_allowed is set.
cheers,
Gerd
Gerd Hoffmann
maintainerQuoted 10 lines · Frediano Ziglio
Quoted 5 lines
Just use
qxl_num_crtcdirectly everywhere instead of usingqdev->monitors_config->max_allowed. Drops pointless indirection and also is less confusing.To me is MORE confusing, why comparing number of something with another number? Previously code was comparing number of monitors with number of monitors, not number of CRTs with number of monitors.
Yes, spice/qxl and drm/kms use slightly different terminology.
drm crtc == qxl monitor.
drm framebuffer == qxl surface.
You need to know that anyway when looking at the qxl ksm code. We have function names like qxl_crtc_update_monitors_config(). I fail to see why that is a problem ...
cheers,
Gerd