From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Anholt Subject: Re: [PATCH 2/7] drm/edid: Allow to ignore the audio EDID data Date: Wed, 06 Mar 2019 09:51:35 -0800 Message-ID: <875zsvki1k.fsf@anholt.net> References: <4914bea9fc3ef3deaffa39ab691dbd9a76461e97.1551711042.git-series.maxime.ripard@bootlin.com> <87wole76ws.fsf@anholt.net> <20190305091240.sbkvdwosocaytx22@flea> <87woldm1s5.fsf@anholt.net> <20190306132219.fghl47wdqgecgndo@flea> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1222460950==" Return-path: Received: from anholt.net (anholt.net [50.246.234.109]) by gabe.freedesktop.org (Postfix) with ESMTP id 85E7F89D46 for ; Wed, 6 Mar 2019 17:51:40 +0000 (UTC) In-Reply-To: <20190306132219.fghl47wdqgecgndo@flea> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maxime Ripard Cc: eben@raspberrypi.org, David Airlie , Maling list - DRI developers , Paul Kocialkowski , Sean Paul , Thomas Petazzoni , Daniel Vetter , linux-arm-kernel List-Id: dri-devel@lists.freedesktop.org --===============1222460950== Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Maxime Ripard writes: > [ Unknown signature status ] > On Tue, Mar 05, 2019 at 01:47:38PM -0800, Eric Anholt wrote: >> Maxime Ripard writes: >>=20 >> > [ Unknown signature status ] >> > On Mon, Mar 04, 2019 at 03:05:31PM -0500, Alex Deucher wrote: >> >> On Mon, Mar 4, 2019 at 2:53 PM Eric Anholt wrote: >> >> > >> >> > Maxime Ripard writes: >> >> > >> >> > > In some cases, in order to accomodate with displays with poor EDI= Ds, we >> >> > > need to ignore that the monitor alledgedly supports audio output = and >> >> > > disable the audio output. >> >> > > >> >> > > Signed-off-by: Maxime Ripard >> >> > > --- >> >> > > 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_edi= d.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 =3D false; >> >> > > +module_param(ignore_edid_audio, bool, 0644); >> >> > > +MODULE_PARM_DESC(ignore_edid_audio, >> >> > > + "Ignore the EDID and always consider that a monito= r 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 =3D false; >> >> > > int start_offset, end_offset; >> >> > > >> >> > > + if (ignore_edid_audio) >> >> > > + goto end; >> >> > > + >> >> > > edid_ext =3D 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 pl= ay >> >> > 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 p= lay >> >> > audio by default? >> >>=20 >> >> 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. >>=20 >> Oh, right, the HDMI encoder passes the ELD to ALSA, and userspace gets >> to use that. So, open source is already doing the right thing, and the >> problem was that the old driver talking to the firmware wouldn't, thus >> the need for a flag. > > I started to look into this, and while on my laptop, the ELD seems to > be exposed as part of /proc/asound/card0/eld*, there's no such file on > the RPi with a 5.0 kernel (and an HDMI monitor with audio support, > obviously). Is it something that used to work at some point? I don't know, personally. Sounds like it's worth investigating. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE/JuuFDWp9/ZkuCBXtdYpNtH8nugFAlyACKcACgkQtdYpNtH8 nuioGA/+Olq09xYv7Q2u3iPy0Ud4YY3SypAAuZQqvqpzg/iV8SG2uELtedmrQ7ON fy6hyI7xHy8tWOoQ0tvMaYkB3KCgGoUJTMzE1rPJ7Ckbfe4NZzhBZbqnKbzSR1cL 8GtFFrRmYf/HoruoNfB/C5j/tLPyplZNo4GhLkOsGrpOgguQLoqrWCjHw0XMZ7R3 7AUY22/s+OedjbGwEzRhlmZBsB42ooNEMnCUWCLzxvN5wq9aCiA/CJi0yx5rUEGf mhLhZ0BphEu072W3VafLVR0cjIQCTGITLsewt5Ky3PqonFWBrmLaRNNZIzk4Jr2O 5kSzke/xunBzqN13vJN8qOKse9XB2u5ptn82CDHjVPYEUaGW8xcs6tgeBigzzg9l Ize+R90nJnNX3km5c/ESm6ENIrVQHFTPmCNIaMZNLVyzSKR+RG4c/El1SK/Sb80T hQ8f4oGMCICEZaVtjbRcGcVWGo4re6eEmTdYxwJXufT1cNHPbF40qSkx1fblZ2JH Pv6iAw/J8//ULr+9INmb9mC5k/yXQFbgyAHNxDHnbIKK6KJTRZ4ZMbV5rzA5L+6x nc7r4W5H0yA2+8ql1F1XcYBMaUdPuQObvShN8HRXqWfZUSSPkaQZaQVVEqzV6id8 D/E9elzNITg10MlVM4EnJSuJD4H3OwqiWZSBNmHfErS+0KhcpmM= =/DnO -----END PGP SIGNATURE----- --=-=-=-- --===============1222460950== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs --===============1222460950==--