Message ID | 20190418132508.29727-1-gwan-gyeong.mun@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] drm: Fire off KMS hotplug events if probe detect says the connector is connected | expand |
On Thu, 18 Apr 2019, Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> wrote: > The hotplug detection routine of drm_helper_hpd_irq_event() can detect > changing of status of connector, but it can not detect changing of > properties of the connector. > e.g. changing of edid while suspend/resume, changing of dp lanes in dp aux. > > Following scenario explains one of them; A detection of changing of edid. > > 1) plug display device to a connector > 2) system suspend > 3) unplug 1)'s display device and plug the other display device to a > connector > 4) system resume > > To solve explained cases, It fires off KMS hotplug events if > drm_helper_probe_detect() says the connector is connected. > > Testcase: igt/kms_chamelium/hdmi-edid-change-during-hibernate > Testcase: igt/kms_chamelium/hdmi-edid-change-during-suspend > Testcase: igt/kms_chamelium/dp-edid-change-during-hibernate > Testcase: igt/kms_chamelium/dp-edid-change-during-suspend > > v2: Remove suggested-by line (danvet) > Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> > Link: https://lists.freedesktop.org/archives/dri-devel/2019-April/214572.html Link: is something added by our tooling (dim), not to be added yourself. It points at the patch at patchwork using the message-id of the patch email. If you want to refer to some other work, please use References: tag. BR, Jani. > --- > drivers/gpu/drm/drm_probe_helper.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c > index 6fd08e04b323..081a849104f2 100644 > --- a/drivers/gpu/drm/drm_probe_helper.c > +++ b/drivers/gpu/drm/drm_probe_helper.c > @@ -780,7 +780,8 @@ bool drm_helper_hpd_irq_event(struct drm_device *dev) > connector->name, > drm_get_connector_status_name(old_status), > drm_get_connector_status_name(connector->status)); > - if (old_status != connector->status) > + if (old_status != connector->status || > + connector->status == connector_status_connected) > changed = true; > } > drm_connector_list_iter_end(&conn_iter);
On Thu, Apr 18, 2019 at 7:33 PM Jani Nikula <jani.nikula@linux.intel.com> wrote: > > On Thu, 18 Apr 2019, Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> wrote: > > The hotplug detection routine of drm_helper_hpd_irq_event() can detect > > changing of status of connector, but it can not detect changing of > > properties of the connector. > > e.g. changing of edid while suspend/resume, changing of dp lanes in dp aux. > > > > Following scenario explains one of them; A detection of changing of edid. > > > > 1) plug display device to a connector > > 2) system suspend > > 3) unplug 1)'s display device and plug the other display device to a > > connector > > 4) system resume > > > > To solve explained cases, It fires off KMS hotplug events if > > drm_helper_probe_detect() says the connector is connected. > > > > Testcase: igt/kms_chamelium/hdmi-edid-change-during-hibernate > > Testcase: igt/kms_chamelium/hdmi-edid-change-during-suspend > > Testcase: igt/kms_chamelium/dp-edid-change-during-hibernate > > Testcase: igt/kms_chamelium/dp-edid-change-during-suspend > > > > v2: Remove suggested-by line (danvet) > > Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> > > Link: https://lists.freedesktop.org/archives/dri-devel/2019-April/214572.html > > Link: is something added by our tooling (dim), not to be added > yourself. It points at the patch at patchwork using the message-id of > the patch email. > > If you want to refer to some other work, please use References: tag. > > BR, > Jani. > > Hi, Sorry for misusing of that. I didn't know that. I'll replace Link to References and resend the patch as soon as possible. Thank you for letting me know that. Br, G.G. > > --- > > drivers/gpu/drm/drm_probe_helper.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c > > index 6fd08e04b323..081a849104f2 100644 > > --- a/drivers/gpu/drm/drm_probe_helper.c > > +++ b/drivers/gpu/drm/drm_probe_helper.c > > @@ -780,7 +780,8 @@ bool drm_helper_hpd_irq_event(struct drm_device *dev) > > connector->name, > > drm_get_connector_status_name(old_status), > > drm_get_connector_status_name(connector->status)); > > - if (old_status != connector->status) > > + if (old_status != connector->status || > > + connector->status == connector_status_connected) > > changed = true; > > } > > drm_connector_list_iter_end(&conn_iter); > > -- > Jani Nikula, Intel Open Source Graphics Center > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c index 6fd08e04b323..081a849104f2 100644 --- a/drivers/gpu/drm/drm_probe_helper.c +++ b/drivers/gpu/drm/drm_probe_helper.c @@ -780,7 +780,8 @@ bool drm_helper_hpd_irq_event(struct drm_device *dev) connector->name, drm_get_connector_status_name(old_status), drm_get_connector_status_name(connector->status)); - if (old_status != connector->status) + if (old_status != connector->status || + connector->status == connector_status_connected) changed = true; } drm_connector_list_iter_end(&conn_iter);
The hotplug detection routine of drm_helper_hpd_irq_event() can detect changing of status of connector, but it can not detect changing of properties of the connector. e.g. changing of edid while suspend/resume, changing of dp lanes in dp aux. Following scenario explains one of them; A detection of changing of edid. 1) plug display device to a connector 2) system suspend 3) unplug 1)'s display device and plug the other display device to a connector 4) system resume To solve explained cases, It fires off KMS hotplug events if drm_helper_probe_detect() says the connector is connected. Testcase: igt/kms_chamelium/hdmi-edid-change-during-hibernate Testcase: igt/kms_chamelium/hdmi-edid-change-during-suspend Testcase: igt/kms_chamelium/dp-edid-change-during-hibernate Testcase: igt/kms_chamelium/dp-edid-change-during-suspend v2: Remove suggested-by line (danvet) Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> Link: https://lists.freedesktop.org/archives/dri-devel/2019-April/214572.html --- drivers/gpu/drm/drm_probe_helper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)