From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jose Abreu Subject: Re: [PATCH 3/3 v3] drm: bridge/dw-hdmi: Move edid reading to .detect() callback Date: Thu, 4 Aug 2016 15:57:21 +0100 Message-ID: <57A357D1.1070900@synopsys.com> References: <1bbffb944fb9ce0363f5544db31baf2a911c1c55.1470306826.git.joabreu@synopsys.com> <20160804104738.GR1041@n2100.armlinux.org.uk> <57A349E8.5040400@synopsys.com> <20160804143102.GU1041@n2100.armlinux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20160804143102.GU1041@n2100.armlinux.org.uk> Sender: linux-kernel-owner@vger.kernel.org To: Russell King - ARM Linux , Jose Abreu Cc: dri-devel@lists.freedesktop.org, Carlos Palminha , Archit Taneja , David Airlie , Fabio Estevam , Daniel Vetter , Takashi Iwai , Vladimir Zapolskiy , Thierry Reding , linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org Hi Russell, On 04-08-2016 15:31, Russell King - ARM Linux wrote: > On Thu, Aug 04, 2016 at 02:58:00PM +0100, Jose Abreu wrote: >> Hi Russell, >> >> I am not sure if this is a bug in DRM or a bad implementation of >> dw-hdmi. I've seen at least two more drivers that do the edid >> reading at the .detect() callback: nouveau and gma500. This is >> noticeable if while sending video the edid changes like in a >> compliance environment. In the environment that I tested I was >> sending video and swapped an edid that had support for AI packets >> to another one without support and I noticed that although the >> hotplug is generated the edid was not being updated. > The path should be: > > - HPD interrupt > - drm_helper_hpd_irq_event() > - generates uevent to userspace > - output_poll_changed() called > - drm_fb_helper_hotplug_event() > - drm_fb_helper_probe_connector_modes() > - connector->fill_modes() > - drm_helper_probe_single_connector_modes() > - connector_funcs->get_modes() > > Now, if we don't have fbdev emulation, then things won't get much > fruther than output_poll_changed(), and the responsibility for > reading the EDID falls onto userspace. However, as soon as userspace > or the kernel reads the new EDID, that is when any changes in it > should become visible. > > Of course, that should occur in a timely fashion. > Hmm, I am not debugging it right now but I remember that drm_fb_helper_probe_connector_modes() was not being called at the time I set the new EDID but only after I stopped sending video (I was using modetest). Best regards, Jose Miguel Abreu