[alsa-devel] notifying userspace of hwparams change

Takashi Iwai tiwai at suse.de
Thu Oct 5 15:19:56 CEST 2017


On Tue, 03 Oct 2017 18:11:50 +0200,
Tim Harvey wrote:
> 
> Greetings,
> 
> I've got an HDMI receiver chip I'm working on a driver for which
> provides the audio signal from the HDMI source. An HDMI source can be
> a variety of sample-rates, channels, widths, and formats. If I
> understand correctly I need to register the device as supporting all
> the possible rates/channels/formats then constrain these to what is
> actually available at the time in the startup callback with
> snd_pcm_hw_contstraint_minmax and snd_pcm_hw_constraint_mask.
> 
> How do I notify userspace when the chip tells me that the HDMI audio
> source rate/channels/format has changed?
> 
> I know on the Video side the driver sends a V4L2_EVENT_SOURCE_CHANGE
> event to userspace when input format/resolution has changed so that
> userspace can stop streaming, call VIDIOC_QUERY_DV_TIMINGS and then
> VIDIOC_S_DV_TIMINGS with new timings.

This is one thing we need to address, but currently there is no
notification mechanism for such changes.  Or, better to say, we don't
expect that the hw_constraint may change during the PCM operation.

When HDMI/DP is concerned, usually they have disconnect/reconnect
before such hw_constraint change happens, so we can expect user-space
doing re-opening the device in anyway.

But, the device disconnection is another issue to be improved.
We're currently allowing the disconnection of the whole card,
triggered by snd_card_disconnect(), but not in each component level.
So it depends on the driver / device whether the current
implementation works well or not.


thanks,

Takashi


More information about the Alsa-devel mailing list