From: Takashi Iwai <tiwai@suse.de> To: Russell King - ARM Linux <linux@arm.linux.org.uk> Cc: Fabio Estevam <fabio.estevam@freescale.com>, alsa-devel@alsa-project.org, dri-devel@lists.freedesktop.org, Mark Brown <broonie@kernel.org>, Yakir Yang <ykk@rock-chips.com>, linux-arm-kernel@lists.infradead.org Subject: Re: [alsa-devel] [PATCH 13/13] drm: bridge/dw_hdmi-ahb-audio: parse ELD from HDMI driver Date: Thu, 28 May 2015 06:56:28 +0200 [thread overview] Message-ID: <s5hh9qxcnb7.wl-tiwai@suse.de> (raw) In-Reply-To: <20150527173125.GS2067@n2100.arm.linux.org.uk> At Wed, 27 May 2015 18:31:25 +0100, Russell King - ARM Linux wrote: > > On Wed, May 27, 2015 at 12:43:08PM +0200, Daniel Vetter wrote: > > On Sat, May 09, 2015 at 11:26:57AM +0100, Russell King wrote: > > > Parse the ELD (EDID like data) stored from the HDMI driver to restrict > > > the sample rates and channels which are available to ALSA. This causes > > > the ALSA device to reflect the capabilities of the overall audio path, > > > not just what is supported at the HDMI source interface level. > > > > > > Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> > > > > I completely missed the new eld helpers in this series, so fairly late > > with a few questions here. > > > > In x86/desktop gpus we pass around the eld in hw, and there's an interrupt > > on the snd side every time that materially changes. Same goes for other > > state changes like the display pipe getting lit up/disabled again. > > > > How is hotplug handling done here? You update the eld in get_modes, but I > > don't see any notification from hdmi->audio (it only seems to get updated > > at open time, no idea whether that's enough). And it looks like there's a > > potential use-after-free when the drm side updates the eld and frees the > > old one, while the snd side tries to access this. > > It doesn't handle hotplug at all, per se. > > The problem with hotplug is that (afaik) ALSA has no way to notify > userspace that something has changed: if I were to add such a > notification from the DRM side of the driver to the audio side, I > wouldn't know what to do with it when the audio side received it. The notification itself is present. For HD-audio HDMI/DP, the driver creates jack kctl for each port for notifying the monitor/ELD change. The recent PA actually listens to it and handles accordingly. But it doesn't mean that the PCM and other state changes are proactively dealt inside the driver. Rather it gives the notification, keeps running and waits for the further action from user-space. > In any case, I tend to think of unplugging the display as being much > like unplugging the 3.5mm line out jack to your hifi system - just > because you've disconnected the speakers does not stop the audio > playing - the audio continues despite you not being able to hear it. Ditto for HD-audio. The interface is still present, even playable, without the connection. Maybe we should return an error explicitly when played during unconnected? The handling of HDMI/DP hotplug has been discussed many times, and I vaguely remember of pros/cons with the above shown in past threads. Takashi _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
WARNING: multiple messages have this Message-ID (diff)
From: tiwai@suse.de (Takashi Iwai) To: linux-arm-kernel@lists.infradead.org Subject: [alsa-devel] [PATCH 13/13] drm: bridge/dw_hdmi-ahb-audio: parse ELD from HDMI driver Date: Thu, 28 May 2015 06:56:28 +0200 [thread overview] Message-ID: <s5hh9qxcnb7.wl-tiwai@suse.de> (raw) In-Reply-To: <20150527173125.GS2067@n2100.arm.linux.org.uk> At Wed, 27 May 2015 18:31:25 +0100, Russell King - ARM Linux wrote: > > On Wed, May 27, 2015 at 12:43:08PM +0200, Daniel Vetter wrote: > > On Sat, May 09, 2015 at 11:26:57AM +0100, Russell King wrote: > > > Parse the ELD (EDID like data) stored from the HDMI driver to restrict > > > the sample rates and channels which are available to ALSA. This causes > > > the ALSA device to reflect the capabilities of the overall audio path, > > > not just what is supported at the HDMI source interface level. > > > > > > Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> > > > > I completely missed the new eld helpers in this series, so fairly late > > with a few questions here. > > > > In x86/desktop gpus we pass around the eld in hw, and there's an interrupt > > on the snd side every time that materially changes. Same goes for other > > state changes like the display pipe getting lit up/disabled again. > > > > How is hotplug handling done here? You update the eld in get_modes, but I > > don't see any notification from hdmi->audio (it only seems to get updated > > at open time, no idea whether that's enough). And it looks like there's a > > potential use-after-free when the drm side updates the eld and frees the > > old one, while the snd side tries to access this. > > It doesn't handle hotplug at all, per se. > > The problem with hotplug is that (afaik) ALSA has no way to notify > userspace that something has changed: if I were to add such a > notification from the DRM side of the driver to the audio side, I > wouldn't know what to do with it when the audio side received it. The notification itself is present. For HD-audio HDMI/DP, the driver creates jack kctl for each port for notifying the monitor/ELD change. The recent PA actually listens to it and handles accordingly. But it doesn't mean that the PCM and other state changes are proactively dealt inside the driver. Rather it gives the notification, keeps running and waits for the further action from user-space. > In any case, I tend to think of unplugging the display as being much > like unplugging the 3.5mm line out jack to your hifi system - just > because you've disconnected the speakers does not stop the audio > playing - the audio continues despite you not being able to hear it. Ditto for HD-audio. The interface is still present, even playable, without the connection. Maybe we should return an error explicitly when played during unconnected? The handling of HDMI/DP hotplug has been discussed many times, and I vaguely remember of pros/cons with the above shown in past threads. Takashi
next prev parent reply other threads:[~2015-05-28 4:56 UTC|newest] Thread overview: 148+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-04-02 9:20 [RFC v2 0/13] dw_hdmi cleanups, audio preparation, helpers and ahb audio support Russell King - ARM Linux 2015-04-02 9:20 ` Russell King - ARM Linux 2015-04-02 9:21 ` [PATCH RFC v2 01/13] drm: imx/dw_hdmi: move phy comments Russell King 2015-04-02 9:21 ` Russell King 2015-04-02 9:21 ` [PATCH RFC v2 02/13] drm: bridge/dw_hdmi: clean up phy configuration Russell King 2015-04-02 9:21 ` Russell King 2015-04-02 9:21 ` [PATCH RFC v2 03/13] drm: bridge/dw_hdmi: clean up hdmi_set_clk_regenerator() Russell King 2015-04-02 9:21 ` Russell King 2015-04-02 9:21 ` [PATCH RFC v2 04/13] drm: bridge/dw_hdmi: use drm_hdmi_avi_infoframe_from_display_mode() Russell King 2015-04-02 9:21 ` Russell King 2015-04-02 9:21 ` [PATCH RFC v2 05/13] drm: bridge/dw_hdmi: simplify hdmi_config_AVI() a little Russell King 2015-04-02 9:21 ` Russell King 2015-04-02 9:21 ` [PATCH RFC v2 06/13] drm: bridge/dw_hdmi: remove mhsyncpolarity/mvsyncpolarity/minterlaced Russell King 2015-04-02 9:21 ` Russell King 2015-04-02 9:21 ` [PATCH RFC v2 07/13] drm: bridge/dw_hdmi: introduce interface to setting sample rate Russell King 2015-04-02 9:21 ` Russell King 2015-04-02 9:21 ` [PATCH RFC v2 08/13] drm: bridge/dw_hdmi: introduce interfaces to enable and disable audio Russell King 2015-04-02 9:21 ` Russell King 2015-04-02 9:22 ` [PATCH RFC v2 09/13] drm/edid: add function to help find SADs Russell King 2015-04-02 9:22 ` Russell King 2015-04-02 9:22 ` [PATCH RFC v2 10/13] sound/core: add DRM ELD helper Russell King 2015-04-02 9:22 ` Russell King 2015-04-05 15:57 ` Takashi Iwai 2015-04-05 15:57 ` Takashi Iwai 2015-04-05 16:20 ` Russell King - ARM Linux 2015-04-05 16:20 ` Russell King - ARM Linux 2015-04-05 16:46 ` Takashi Iwai 2015-04-05 16:46 ` Takashi Iwai 2015-04-05 17:26 ` Russell King - ARM Linux 2015-04-05 17:26 ` Russell King - ARM Linux 2015-05-06 17:02 ` Anssi Hannula 2015-05-06 17:02 ` Anssi Hannula 2015-05-07 10:41 ` Russell King - ARM Linux 2015-05-07 10:41 ` Russell King - ARM Linux 2015-05-07 11:11 ` Lars-Peter Clausen 2015-05-07 11:11 ` [alsa-devel] " Lars-Peter Clausen 2015-05-08 10:56 ` Jyri Sarha 2015-05-08 10:56 ` Jyri Sarha 2015-05-08 11:42 ` Russell King - ARM Linux 2015-05-08 11:42 ` Russell King - ARM Linux 2015-05-05 22:35 ` Mark Brown 2015-05-05 22:35 ` Mark Brown 2015-05-06 8:58 ` Liam Girdwood 2015-05-06 8:58 ` [alsa-devel] " Liam Girdwood 2015-05-08 13:16 ` Jyri Sarha 2015-05-08 13:16 ` Jyri Sarha 2015-05-08 13:27 ` Russell King - ARM Linux 2015-05-08 13:27 ` Russell King - ARM Linux 2015-05-08 13:37 ` Jyri Sarha 2015-05-08 13:37 ` [alsa-devel] " Jyri Sarha 2015-04-02 9:22 ` [PATCH RFC v2 11/13] sound/core: add IEC958 channel status helper Russell King 2015-04-02 9:22 ` Russell King 2015-04-02 9:22 ` [PATCH RFC v2 12/13] drm: bridge/dw_hdmi-ahb-audio: add audio driver Russell King 2015-04-02 9:22 ` Russell King 2015-04-02 9:22 ` [PATCH RFC v2 13/13] drm: bridge/dw_hdmi-ahb-audio: parse ELD from HDMI driver Russell King 2015-04-02 9:22 ` Russell King 2015-05-09 10:25 ` [PATCH v3 0/13] dw_hdmi cleanups, audio preparation, helpers and ahb audio support Russell King - ARM Linux 2015-05-09 10:25 ` Russell King - ARM Linux 2015-05-09 10:25 ` [PATCH 01/13] drm: imx/dw_hdmi: move phy comments Russell King 2015-05-09 10:25 ` Russell King 2015-05-09 10:26 ` [PATCH 02/13] drm: bridge/dw_hdmi: clean up phy configuration Russell King 2015-05-09 10:26 ` Russell King 2015-05-22 15:19 ` Yakir 2015-05-22 15:19 ` Yakir 2015-05-09 10:26 ` [PATCH 03/13] drm: bridge/dw_hdmi: clean up hdmi_set_clk_regenerator() Russell King 2015-05-09 10:26 ` Russell King 2015-05-22 15:22 ` Yakir 2015-05-22 15:22 ` Yakir 2015-05-09 10:26 ` [PATCH 04/13] drm: bridge/dw_hdmi: use drm_hdmi_avi_infoframe_from_display_mode() Russell King 2015-05-09 10:26 ` Russell King 2015-05-09 10:26 ` [PATCH 05/13] drm: bridge/dw_hdmi: simplify hdmi_config_AVI() a little Russell King 2015-05-09 10:26 ` Russell King 2015-05-09 10:26 ` [PATCH 06/13] drm: bridge/dw_hdmi: remove mhsyncpolarity/mvsyncpolarity/minterlaced Russell King 2015-05-09 10:26 ` Russell King 2015-05-09 10:26 ` [PATCH 07/13] drm: bridge/dw_hdmi: introduce interface to setting sample rate Russell King 2015-05-09 10:26 ` Russell King 2015-05-22 15:26 ` Yakir 2015-05-22 15:26 ` Yakir 2015-05-09 10:26 ` [PATCH 08/13] drm: bridge/dw_hdmi: introduce interfaces to enable and disable audio Russell King 2015-05-09 10:26 ` Russell King 2015-05-22 15:28 ` Yakir 2015-05-22 15:28 ` Yakir 2015-05-09 10:26 ` [PATCH 09/13] drm/edid: add function to help find SADs Russell King 2015-05-09 10:26 ` Russell King 2015-05-09 10:26 ` [PATCH 10/13] sound/core: add DRM ELD helper Russell King 2015-05-09 10:26 ` Russell King 2015-05-22 12:20 ` [alsa-devel] " Mark Brown 2015-05-22 12:20 ` Mark Brown 2015-05-22 13:15 ` Russell King - ARM Linux 2015-05-22 13:15 ` Russell King - ARM Linux 2015-05-22 13:30 ` Takashi Iwai 2015-05-22 13:30 ` Takashi Iwai 2015-05-22 13:53 ` Russell King - ARM Linux 2015-05-22 13:53 ` Russell King - ARM Linux 2015-05-22 13:54 ` Takashi Iwai 2015-05-22 13:54 ` Takashi Iwai 2015-05-22 14:00 ` Russell King - ARM Linux 2015-05-22 14:00 ` Russell King - ARM Linux 2015-05-22 14:02 ` Takashi Iwai 2015-05-22 14:02 ` Takashi Iwai 2015-05-22 14:05 ` Takashi Iwai 2015-05-22 14:05 ` Takashi Iwai 2015-05-22 16:12 ` Russell King - ARM Linux 2015-05-22 16:12 ` Russell King - ARM Linux 2015-05-09 10:26 ` [PATCH 11/13] sound/core: add IEC958 channel status helper Russell King 2015-05-09 10:26 ` Russell King 2015-05-22 12:40 ` Mark Brown 2015-05-22 12:40 ` Mark Brown 2015-05-09 10:26 ` [PATCH 12/13] drm: bridge/dw_hdmi-ahb-audio: add audio driver Russell King 2015-05-09 10:26 ` Russell King 2015-05-09 16:49 ` [alsa-devel] " Anssi Hannula 2015-05-09 16:49 ` Anssi Hannula 2015-05-09 16:55 ` Russell King - ARM Linux 2015-05-09 16:55 ` Russell King - ARM Linux 2015-05-09 17:07 ` Anssi Hannula 2015-05-09 17:07 ` Anssi Hannula 2015-05-09 17:40 ` Russell King - ARM Linux 2015-05-09 17:40 ` Russell King - ARM Linux 2015-05-09 17:53 ` Russell King - ARM Linux 2015-05-09 17:53 ` Russell King - ARM Linux 2015-05-09 17:55 ` Anssi Hannula 2015-05-09 17:55 ` Anssi Hannula 2015-05-09 18:11 ` Russell King - ARM Linux 2015-05-09 18:11 ` Russell King - ARM Linux 2015-05-10 18:59 ` Anssi Hannula 2015-05-10 18:59 ` Anssi Hannula 2015-05-10 19:33 ` Russell King - ARM Linux 2015-05-10 19:33 ` Russell King - ARM Linux 2015-05-10 20:47 ` Anssi Hannula 2015-05-10 20:47 ` Anssi Hannula 2015-05-11 15:58 ` Mark Brown 2015-05-11 15:58 ` [alsa-devel] " Mark Brown 2015-05-09 10:26 ` [PATCH 13/13] drm: bridge/dw_hdmi-ahb-audio: parse ELD from HDMI driver Russell King 2015-05-09 10:26 ` Russell King 2015-05-27 10:43 ` Daniel Vetter 2015-05-27 10:43 ` Daniel Vetter 2015-05-27 11:43 ` Mark Brown 2015-05-27 11:43 ` Mark Brown 2015-05-27 17:31 ` Russell King - ARM Linux 2015-05-27 17:31 ` Russell King - ARM Linux 2015-05-27 21:29 ` Daniel Vetter 2015-05-27 21:29 ` Daniel Vetter 2015-05-27 21:44 ` Russell King - ARM Linux 2015-05-27 21:44 ` Russell King - ARM Linux 2015-05-28 6:43 ` Daniel Vetter 2015-05-28 6:43 ` Daniel Vetter 2015-05-28 4:56 ` Takashi Iwai [this message] 2015-05-28 4:56 ` [alsa-devel] " Takashi Iwai
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=s5hh9qxcnb7.wl-tiwai@suse.de \ --to=tiwai@suse.de \ --cc=alsa-devel@alsa-project.org \ --cc=broonie@kernel.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=fabio.estevam@freescale.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux@arm.linux.org.uk \ --cc=ykk@rock-chips.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.