| From c1c6c877b0c79fd7e05c931435aa42211eaeebaf Mon Sep 17 00:00:00 2001 |
| From: Takashi Iwai <tiwai@suse.de> |
| Date: Tue, 6 Aug 2019 14:03:56 +0200 |
| Subject: ALSA: hda - Don't override global PCM hw info flag |
| |
| From: Takashi Iwai <tiwai@suse.de> |
| |
| commit c1c6c877b0c79fd7e05c931435aa42211eaeebaf upstream. |
| |
| The commit bfcba288b97f ("ALSA - hda: Add support for link audio time |
| reporting") introduced the conditional PCM hw info setup, but it |
| overwrites the global azx_pcm_hw object. This will cause a problem if |
| any other HD-audio controller, as it'll inherit the same bit flag |
| although another controller doesn't support that feature. |
| |
| Fix the bug by setting the PCM hw info flag locally. |
| |
| Fixes: bfcba288b97f ("ALSA - hda: Add support for link audio time reporting") |
| Cc: <stable@vger.kernel.org> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/pci/hda/hda_controller.c | 6 ++---- |
| 1 file changed, 2 insertions(+), 4 deletions(-) |
| |
| --- a/sound/pci/hda/hda_controller.c |
| +++ b/sound/pci/hda/hda_controller.c |
| @@ -609,11 +609,9 @@ static int azx_pcm_open(struct snd_pcm_s |
| } |
| runtime->private_data = azx_dev; |
| |
| - if (chip->gts_present) |
| - azx_pcm_hw.info = azx_pcm_hw.info | |
| - SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME; |
| - |
| runtime->hw = azx_pcm_hw; |
| + if (chip->gts_present) |
| + runtime->hw.info |= SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME; |
| runtime->hw.channels_min = hinfo->channels_min; |
| runtime->hw.channels_max = hinfo->channels_max; |
| runtime->hw.formats = hinfo->formats; |