Skip to content

Commit a4d2b85

Browse files
Yanteng Sitiwai
authored andcommitted
ALSA: hda/intel: Workaround for WALLCLK register for loongson controller
On loongson controller, the value of WALLCLK register is always 0, which is meaningless, so we return directly. Signed-off-by: Yanteng Si <siyanteng@loongson.cn> Signed-off-by: Yingkun Meng <mengyingkun@loongson.cn> Acked-by: Huacai Chen <chenhuacai@loongson.cn> Link: https://lore.kernel.org/r/185df71ef413ab190460eb377703214ee7288aeb.1686128807.git.siyanteng@loongson.cn Signed-off-by: Takashi Iwai <tiwai@suse.de>
1 parent 942ccdd commit a4d2b85

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

sound/pci/hda/hda_intel.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -655,6 +655,13 @@ static int azx_position_ok(struct azx *chip, struct azx_dev *azx_dev)
655655
unsigned int pos;
656656
snd_pcm_uframes_t hwptr, target;
657657

658+
/*
659+
* The value of the WALLCLK register is always 0
660+
* on the Loongson controller, so we return directly.
661+
*/
662+
if (chip->driver_type == AZX_DRIVER_LOONGSON)
663+
return 1;
664+
658665
wallclk = azx_readl(chip, WALLCLK) - azx_dev->core.start_wallclk;
659666
if (wallclk < (azx_dev->core.period_wallclk * 2) / 3)
660667
return -1; /* bogus (too early) interrupt */

0 commit comments

Comments
 (0)