On Tue, Mar 05, 2019 at 05:24:13PM +0200, Ville Syrjälä wrote: > On Tue, Mar 05, 2019 at 10:12:40AM +0100, Maxime Ripard wrote: > > On Mon, Mar 04, 2019 at 03:05:31PM -0500, Alex Deucher wrote: > > > On Mon, Mar 4, 2019 at 2:53 PM Eric Anholt <eric@xxxxxxxxxx> wrote: > > > > > > > > Maxime Ripard <maxime.ripard@xxxxxxxxxxx> writes: > > > > > > > > > In some cases, in order to accomodate with displays with poor EDIDs, we > > > > > need to ignore that the monitor alledgedly supports audio output and > > > > > disable the audio output. > > > > > > > > > > Signed-off-by: Maxime Ripard <maxime.ripard@xxxxxxxxxxx> > > > > > --- > > > > > drivers/gpu/drm/drm_edid.c | 8 ++++++++ > > > > > 1 file changed, 8 insertions(+) > > > > > > > > > > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > > > > > index 990b1909f9d7..c0258b011bb2 100644 > > > > > --- a/drivers/gpu/drm/drm_edid.c > > > > > +++ b/drivers/gpu/drm/drm_edid.c > > > > > @@ -4190,6 +4190,11 @@ bool drm_detect_hdmi_monitor(struct edid *edid) > > > > > } > > > > > EXPORT_SYMBOL(drm_detect_hdmi_monitor); > > > > > > > > > > +static bool ignore_edid_audio = false; > > > > > +module_param(ignore_edid_audio, bool, 0644); > > > > > +MODULE_PARM_DESC(ignore_edid_audio, > > > > > + "Ignore the EDID and always consider that a monitor doesn't have audio capabilities"); > > > > > + > > > > > /** > > > > > * drm_detect_monitor_audio - check monitor audio capability > > > > > * @edid: EDID block to scan > > > > > @@ -4209,6 +4214,9 @@ bool drm_detect_monitor_audio(struct edid *edid) > > > > > bool has_audio = false; > > > > > int start_offset, end_offset; > > > > > > > > > > + if (ignore_edid_audio) > > > > > + goto end; > > > > > + > > > > > edid_ext = drm_find_cea_extension(edid); > > > > > if (!edid_ext) > > > > > goto end; > > > > > > > > It looks like the motivation for the original flag on Raspberry Pi was > > > > "I've got a non-audio monitor, but the system comes up trying to play > > > > audio to HDMI instead of the analog jack". Do we have some way for DRM > > > > to communicate to ALSA that this is not the right place to try to play > > > > audio by default? > > > > > > Apparently not. We have users using debug knobs in our drivers to > > > disable display audio because ALSA defaults to that rather than other > > > audio. > > > > I guess one way to do this would be to register the card only when an > > audio-capable monitor is connected instead of doing this at probe > > time. I'm not sure how convenient it is for userspace though. > > We already provide the ELD to alsa. I'm pretty sure pulseaudio uses > that stuff somehow to figure out whether to play audio over HDMI. > But since I don't use pulseaudio myself I can't be 100% sure. > > Cc:ing Takashi/alsa folks for confirmation. I forgot that the .pin_eld_notify() stuff is i915 specific. But I see some kind of hdmi_codec_ops thing used by some other drivers. I guess that is supposed to achieve the same thing more or less? I'm not immediately seeing any kind of drm->alsa notification hook in there though. -- Ville Syrjälä Intel _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel