Re: [PATCH v2 01/12] ALSA: doc: Clarify IEC958 controls iface
From: Takashi Iwai
Date: Tue May 25 2021 - 11:58:40 EST
On Tue, 25 May 2021 15:23:43 +0200,
Maxime Ripard wrote:
>
> The doc currently mentions that the IEC958 Playback Default should be
> exposed on the PCM iface, and the Playback Mask on the mixer iface.
>
> It's a bit confusing to advise to have two related controls on two
> separate ifaces, and it looks like the drivers that currently expose
> those controls use any combination of the mixer and PCM ifaces.
>
> Let's try to clarify the situation a bit, and encourage to at least have
> the controls on the same iface.
>
> Signed-off-by: Maxime Ripard <maxime@xxxxxxxxxx>
Reviewed-by: Takashi Iwai <tiwai@xxxxxxx>
thanks,
Takashi
> ---
> .../sound/kernel-api/writing-an-alsa-driver.rst | 13 +++++++------
> 1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/Documentation/sound/kernel-api/writing-an-alsa-driver.rst b/Documentation/sound/kernel-api/writing-an-alsa-driver.rst
> index e6365836fa8b..01d59b8aea92 100644
> --- a/Documentation/sound/kernel-api/writing-an-alsa-driver.rst
> +++ b/Documentation/sound/kernel-api/writing-an-alsa-driver.rst
> @@ -3508,14 +3508,15 @@ field must be set, though).
>
> “IEC958 Playback Con Mask” is used to return the bit-mask for the IEC958
> status bits of consumer mode. Similarly, “IEC958 Playback Pro Mask”
> -returns the bitmask for professional mode. They are read-only controls,
> -and are defined as MIXER controls (iface =
> -``SNDRV_CTL_ELEM_IFACE_MIXER``).
> +returns the bitmask for professional mode. They are read-only controls.
>
> Meanwhile, “IEC958 Playback Default” control is defined for getting and
> -setting the current default IEC958 bits. Note that this one is usually
> -defined as a PCM control (iface = ``SNDRV_CTL_ELEM_IFACE_PCM``),
> -although in some places it's defined as a MIXER control.
> +setting the current default IEC958 bits.
> +
> +Due to historical reasons, both variants of the Playback Mask and the
> +Playback Default controls can be implemented on either a
> +``SNDRV_CTL_ELEM_IFACE_PCM`` or a ``SNDRV_CTL_ELEM_IFACE_MIXER`` iface.
> +Drivers should expose the mask and default on the same iface though.
>
> In addition, you can define the control switches to enable/disable or to
> set the raw bit mode. The implementation will depend on the chip, but
> --
> 2.31.1
>