Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 34873
b: refs/heads/master
c: 6fb9828
h: refs/heads/master
i:
  34871: 3552a9e
v: v3
  • Loading branch information
Krzysztof Helt authored and Jaroslav Kysela committed Sep 23, 2006
1 parent 11a0d63 commit 2ee11dd
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 24 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 42fe7647911d0bcaf81aac46db73a3b24387df6d
refs/heads/master: 6fb982803522bc86ca61774c6edf317f77165453
31 changes: 8 additions & 23 deletions trunk/sound/sparc/dbri.c
Original file line number Diff line number Diff line change
Expand Up @@ -238,12 +238,6 @@ static struct {
#define REG9 0x24UL /* Interrupt Queue Pointer */

#define DBRI_NO_CMDS 64
#define DBRI_NO_INTS 1 /* Note: the value of this define was
* originally 2. The ringbuffer to store
* interrupts in dma is currently broken.
* This is a temporary fix until the ringbuffer
* is fixed.
*/
#define DBRI_INT_BLK 64
#define DBRI_NO_DESCS 64
#define DBRI_NO_PIPES 32
Expand All @@ -268,7 +262,7 @@ struct dbri_mem {
*/
struct dbri_dma {
volatile s32 cmd[DBRI_NO_CMDS]; /* Place for commands */
volatile s32 intr[DBRI_NO_INTS * DBRI_INT_BLK]; /* Interrupt field */
volatile s32 intr[DBRI_INT_BLK]; /* Interrupt field */
struct dbri_mem desc[DBRI_NO_DESCS]; /* Xmit/receive descriptors */
};

Expand Down Expand Up @@ -741,18 +735,6 @@ static void dbri_initialize(struct snd_dbri * dbri)
dprintk(D_GEN, "init: cmd: %p, int: %p\n",
&dbri->dma->cmd[0], &dbri->dma->intr[0]);

/*
* Initialize the interrupt ringbuffer.
*/
for (n = 0; n < DBRI_NO_INTS - 1; n++) {
dma_addr = dbri->dma_dvma;
dma_addr += dbri_dma_off(intr, ((n + 1) * DBRI_INT_BLK));
dbri->dma->intr[n * DBRI_INT_BLK] = dma_addr;
}
dma_addr = dbri->dma_dvma + dbri_dma_off(intr, 0);
dbri->dma->intr[n * DBRI_INT_BLK] = dma_addr;
dbri->dbri_irqp = 1;

/* Initialize pipes */
for (n = 0; n < DBRI_NO_PIPES; n++)
dbri->pipes[n].desc = dbri->pipes[n].first_desc = -1;
Expand All @@ -765,9 +747,14 @@ static void dbri_initialize(struct snd_dbri * dbri)
sbus_writel(tmp, dbri->regs + REG0);

/*
* Set up the interrupt queue
* Initialize the interrupt ringbuffer.
*/
dma_addr = dbri->dma_dvma + dbri_dma_off(intr, 0);
dbri->dma->intr[0] = dma_addr;
dbri->dbri_irqp = 1;
/*
* Set up the interrupt queue
*/
*(cmd++) = DBRI_CMD(D_IIQ, 0, 0);
*(cmd++) = dma_addr;

Expand Down Expand Up @@ -1951,10 +1938,8 @@ static void dbri_process_interrupt_buffer(struct snd_dbri * dbri)
while ((x = dbri->dma->intr[dbri->dbri_irqp]) != 0) {
dbri->dma->intr[dbri->dbri_irqp] = 0;
dbri->dbri_irqp++;
if (dbri->dbri_irqp == (DBRI_NO_INTS * DBRI_INT_BLK))
if (dbri->dbri_irqp == DBRI_INT_BLK)
dbri->dbri_irqp = 1;
else if ((dbri->dbri_irqp & (DBRI_INT_BLK - 1)) == 0)
dbri->dbri_irqp++;

dbri_process_one_interrupt(dbri, x);
}
Expand Down

0 comments on commit 2ee11dd

Please sign in to comment.