On Thu, Apr 18, 2019 at 01:15:17PM +0000, Mun, Gwan-gyeong wrote: > On Thu, 2019-04-18 at 10:28 +0200, Daniel Vetter wrote: > > On Thu, Apr 18, 2019 at 11:09:29AM +0300, Gwan-gyeong Mun 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 > > > > > > Suggested-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > > > > This isn't at all what I suggested. > > -Daniel > Because the code modification was followed by your comments, so I added > suggested-by line. I will remove this line and will resend it. Apologies for not being clear: I don't think this here is what we want really, and it's not what I suggested. I'm not exactly sure why you think this will work, essentially it just always generates a hotplug uevent for irq, but totally ignores polling. I guess it works, but that's a hack, not something we should merge. -Daniel > Br, > G.G. > > > > > Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@xxxxxxxxx> > > > 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(-) > > > > > > 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); > > > -- > > > 2.21.0 > > > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx