On Fri, 26 Nov 2010 10:45:59 -0800 Keith Packard keithp@keithp.com wrote:
In order to correctly report monitor connected status changes, the previous monitor status must be recorded in the connector->status value instead of being discarded.
Signed-off-by: Keith Packard keithp@keithp.com
Keith, am I right to assume that these address https://bugzilla.kernel.org/show_bug.cgi?id=22672 and probably: https://bugzilla.kernel.org/show_bug.cgi?id=23472
Regards, Flo
drivers/gpu/drm/drm_crtc_helper.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c index 232ee93..7ca5935 100644 --- a/drivers/gpu/drm/drm_crtc_helper.c +++ b/drivers/gpu/drm/drm_crtc_helper.c @@ -848,7 +848,7 @@ static void output_poll_execute(struct work_struct *work) struct delayed_work *delayed_work = to_delayed_work(work); struct drm_device *dev = container_of(delayed_work, struct drm_device, mode_config.output_poll_work); struct drm_connector *connector;
- enum drm_connector_status old_status, status;
enum drm_connector_status old_status; bool repoll = false, changed = false;
if (!drm_kms_helper_poll)
@@ -873,8 +873,9 @@ static void output_poll_execute(struct work_struct *work) !(connector->polled & DRM_CONNECTOR_POLL_HPD)) continue;
status = connector->funcs->detect(connector, false);
if (old_status != status)
connector->status = connector->funcs->detect(connector, false);
DRM_DEBUG_KMS("connector status updated to %d\n", connector->status);
}if (old_status != connector->status) changed = true;