Skip to content

Commit

Permalink
[ALSA] sparc dbri: fixed setting of burst size after reset
Browse files Browse the repository at this point in the history
A proper way to set DBRI's burst size. The size must be set after
each chip reset.

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
  • Loading branch information
Krzysztof Helt authored and Jaroslav Kysela committed Sep 23, 2006
1 parent 470f1f1 commit d1fdf07
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions sound/sparc/dbri.c
Original file line number Diff line number Diff line change
Expand Up @@ -690,6 +690,7 @@ static void dbri_cmdsend(struct snd_dbri * dbri, volatile s32 * cmd)
static void dbri_reset(struct snd_dbri * dbri)
{
int i;
u32 tmp;

dprintk(D_GEN, "reset 0:%x 2:%x 8:%x 9:%x\n",
sbus_readl(dbri->regs + REG0),
Expand All @@ -699,13 +700,20 @@ static void dbri_reset(struct snd_dbri * dbri)
sbus_writel(D_R, dbri->regs + REG0); /* Soft Reset */
for (i = 0; (sbus_readl(dbri->regs + REG0) & D_R) && i < 64; i++)
udelay(10);

/* A brute approach - DBRI falls back to working burst size by itself
* On SS20 D_S does not work, so do not try so high. */
tmp = sbus_readl(dbri->regs + REG0);
tmp |= D_G | D_E;
tmp &= ~D_S;
sbus_writel(tmp, dbri->regs + REG0);
}

/* Lock must not be held before calling this */
static void dbri_initialize(struct snd_dbri * dbri)
{
volatile s32 *cmd;
u32 dma_addr, tmp;
u32 dma_addr;
unsigned long flags;
int n;

Expand All @@ -721,13 +729,6 @@ static void dbri_initialize(struct snd_dbri * dbri)
for (n = 0; n < DBRI_NO_PIPES; n++)
dbri->pipes[n].desc = dbri->pipes[n].first_desc = -1;

/* A brute approach - DBRI falls back to working burst size by itself
* On SS20 D_S does not work, so do not try so high. */
tmp = sbus_readl(dbri->regs + REG0);
tmp |= D_G | D_E;
tmp &= ~D_S;
sbus_writel(tmp, dbri->regs + REG0);

/*
* Initialize the interrupt ringbuffer.
*/
Expand Down

0 comments on commit d1fdf07

Please sign in to comment.