[alsa-devel] [PATCH 5/5] ALSA: hda: program stripe control for codec

Takashi Iwai tiwai at suse.de
Fri Jan 11 12:21:18 CET 2019


On Thu, 10 Jan 2019 18:03:25 +0100,
Sameer Pujar wrote:
> 
> Program codec stripe through AC_VERB_SET_STRIPE_CONTROL to use multiple
> sdo lines if supported. Audio needs to be striped across number of sdo
> lines for simultaneous playbacks of higher resolutions to work.
> 
> Signed-off-by: Sameer Pujar <spujar at nvidia.com>
> Reviewed-by: Mohan Kumar D <mkumard at nvidia.com>
> Reviewed-by: Ravindra Lokhande <rlokhande at nvidia.com>
> ---
>  sound/pci/hda/patch_hdmi.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
> index 46f88dc..855e526 100644
> --- a/sound/pci/hda/patch_hdmi.c
> +++ b/sound/pci/hda/patch_hdmi.c
> @@ -1865,7 +1865,7 @@ static int generic_hdmi_playback_pcm_prepare(struct hda_pcm_stream *hinfo,
>  	hda_nid_t pin_nid;
>  	struct snd_pcm_runtime *runtime = substream->runtime;
>  	bool non_pcm;
> -	int pinctl;
> +	int pinctl, stripe;
>  	int err = 0;
>  
>  	mutex_lock(&spec->pcm_lock);
> @@ -1909,6 +1909,10 @@ static int generic_hdmi_playback_pcm_prepare(struct hda_pcm_stream *hinfo,
>  	per_pin->channels = substream->runtime->channels;
>  	per_pin->setup = true;
>  
> +	stripe = snd_hdac_get_stream_stripe_ctl(&codec->bus->core, substream);
> +	snd_hda_codec_write(codec, cvt_nid, 0, AC_VERB_SET_STRIPE_CONTROL,
> +			    stripe);

This verb is supposed to be optional, hence it'd be safer to check the
widget capability before issuing.  I doubt whether all HDMI codecs
including the very old one support this verb.


thanks,

Takashi


More information about the Alsa-devel mailing list