Skip to content

Commit

Permalink
drm/qxl: fix disabling extra monitors from client
Browse files Browse the repository at this point in the history
To disable a monitor, a Spice client sends a monitor config with the
monitor resolution to 0x0.

However, before qxl_crtc_disable() is reached after the hotplug event,
it can happen that another monitor is reconfigured, and
qxl_send_monitors_config() is called with the old config, which will
re-enable the monitor on the client.

Reset config if monitor is found disconnected, during
drm_helper_hpd_irq_event().

Signed-off-by: Marc-André Lureau <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
  • Loading branch information
elmarco authored and airlied committed Oct 23, 2013
1 parent a40a60d commit 5cab51c
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion drivers/gpu/drm/qxl/qxl_display.c
Original file line number Diff line number Diff line change
Expand Up @@ -803,7 +803,10 @@ static enum drm_connector_status qxl_conn_detect(
qdev->client_monitors_config->count > output->index &&
qxl_head_enabled(&qdev->client_monitors_config->heads[output->index]));

DRM_DEBUG("\n");
DRM_DEBUG("#%d connected: %d\n", output->index, connected);
if (!connected)
qxl_monitors_config_set(qdev, output->index, 0, 0, 0, 0, 0);

return connected ? connector_status_connected
: connector_status_disconnected;
}
Expand Down

0 comments on commit 5cab51c

Please sign in to comment.