drm: record monitor status in output_poll_execute
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> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
bf9dc102e2
commit
c5027dec02
1 changed files with 4 additions and 3 deletions
|
@ -848,7 +848,7 @@ static void output_poll_execute(struct work_struct *work)
|
||||||
struct delayed_work *delayed_work = to_delayed_work(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_device *dev = container_of(delayed_work, struct drm_device, mode_config.output_poll_work);
|
||||||
struct drm_connector *connector;
|
struct drm_connector *connector;
|
||||||
enum drm_connector_status old_status, status;
|
enum drm_connector_status old_status;
|
||||||
bool repoll = false, changed = false;
|
bool repoll = false, changed = false;
|
||||||
|
|
||||||
if (!drm_kms_helper_poll)
|
if (!drm_kms_helper_poll)
|
||||||
|
@ -873,8 +873,9 @@ static void output_poll_execute(struct work_struct *work)
|
||||||
!(connector->polled & DRM_CONNECTOR_POLL_HPD))
|
!(connector->polled & DRM_CONNECTOR_POLL_HPD))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
status = connector->funcs->detect(connector, false);
|
connector->status = connector->funcs->detect(connector, false);
|
||||||
if (old_status != status)
|
DRM_DEBUG_KMS("connector status updated to %d\n", connector->status);
|
||||||
|
if (old_status != connector->status)
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue