[alsa-devel] [PATCH] ALSA: hda - Do not assign streams in reverse order

Takashi Iwai tiwai at suse.de
Tue Apr 8 11:47:38 CEST 2014


At Tue,  8 Apr 2014 12:36:42 +0300,
Anssi Hannula wrote:
> 
> Currently stream numbers are assigned in reverse order.
> 
> Unfortunately commit 7546abfb8e1f9933b5 ("ALSA: hda - Increment
> default stream numbers for AMD HDMI controllers") assumed this was not
> the case (specifically, it had the "old cards had single device only"
> => "extra unused stream numbers do not matter" assumption), causing
> non-working audio regressions for AMD Radeon HDMI users.
> 
> Change the stream numbers to be assigned in forward order.
> 
> The benefit is that regular audio playback will still work even if the
> assumed stream count is too high, downside is that a too high stream
> count may remain hidden.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77002
> Reported-by: Christian Güdel <cg at dmesg.ch>
> Signed-off-by: Anssi Hannula <anssi.hannula at iki.fi>
> Tested-by: Christian Güdel <cg at dmesg.ch> # 3.14
> Cc: Alex Deucher <alexander.deucher at amd.com>

Thanks, applied.

> ---
> 
> Rebased for v3.14.

It's for 3.15 :)


Takashi

> 
>  sound/pci/hda/hda_controller.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/sound/pci/hda/hda_controller.c b/sound/pci/hda/hda_controller.c
> index 97993e17f46a..3e005e509131 100644
> --- a/sound/pci/hda/hda_controller.c
> +++ b/sound/pci/hda/hda_controller.c
> @@ -187,13 +187,14 @@ azx_assign_device(struct azx *chip, struct snd_pcm_substream *substream)
>  		struct azx_dev *azx_dev = &chip->azx_dev[dev];
>  		dsp_lock(azx_dev);
>  		if (!azx_dev->opened && !dsp_is_locked(azx_dev)) {
> -			res = azx_dev;
> -			if (res->assigned_key == key) {
> -				res->opened = 1;
> -				res->assigned_key = key;
> +			if (azx_dev->assigned_key == key) {
> +				azx_dev->opened = 1;
> +				azx_dev->assigned_key = key;
>  				dsp_unlock(azx_dev);
>  				return azx_dev;
>  			}
> +			if (!res)
> +				res = azx_dev;
>  		}
>  		dsp_unlock(azx_dev);
>  	}
> -- 
> 1.8.4.5
> 


More information about the Alsa-devel mailing list