ALSA: hda - Add support for more the 8 streams
In azx_stream_start() and azx_stream_stop(), it use azx_readb/azx_writeb to read/write SIE, it just enable/disable 8 streams. But according to the HDA spec, it support 30 streams, and the new HDA controller will support more then 8 streams. So we should use azx_readl/azx_writel to read/write SIE. Signed-off-by: Wei Ni <wni@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Родитель
0aea778efa
Коммит
ccc5df058d
|
@ -954,8 +954,8 @@ static void azx_stream_start(struct azx *chip, struct azx_dev *azx_dev)
|
|||
azx_dev->insufficient = 1;
|
||||
|
||||
/* enable SIE */
|
||||
azx_writeb(chip, INTCTL,
|
||||
azx_readb(chip, INTCTL) | (1 << azx_dev->index));
|
||||
azx_writel(chip, INTCTL,
|
||||
azx_readl(chip, INTCTL) | (1 << azx_dev->index));
|
||||
/* set DMA start and interrupt mask */
|
||||
azx_sd_writeb(azx_dev, SD_CTL, azx_sd_readb(azx_dev, SD_CTL) |
|
||||
SD_CTL_DMA_START | SD_INT_MASK);
|
||||
|
@ -974,8 +974,8 @@ static void azx_stream_stop(struct azx *chip, struct azx_dev *azx_dev)
|
|||
{
|
||||
azx_stream_clear(chip, azx_dev);
|
||||
/* disable SIE */
|
||||
azx_writeb(chip, INTCTL,
|
||||
azx_readb(chip, INTCTL) & ~(1 << azx_dev->index));
|
||||
azx_writel(chip, INTCTL,
|
||||
azx_readl(chip, INTCTL) & ~(1 << azx_dev->index));
|
||||
}
|
||||
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче