Re: [patch 43/50] SOUND: Sparc CS4231: Fix IRQ return value and initialization.
>Subject: [patch 43/50] SOUND: Sparc CS4231: Fix IRQ return value and >initialization. > >--- linux-2.6.19.1.orig/sound/sparc/cs4231.c >+++ linux-2.6.19.1/sound/sparc/cs4231.c >@@ -1268,7 +1268,7 @@ static struct snd_pcm_hardware snd_cs423 > .channels_min = 1, > .channels_max = 2, > .buffer_bytes_max = (32*1024), >- .period_bytes_min = 4096, >+ .period_bytes_min = 256, > .period_bytes_max = (32*1024), > .periods_min= 1, > .periods_max= 1024, >Subject: [patch 44/50] SOUND: Sparc CS4231: Use 64 for period_bytes_min >--- linux-2.6.19.1.orig/sound/sparc/cs4231.c >+++ linux-2.6.19.1/sound/sparc/cs4231.c >@@ -1268,7 +1268,7 @@ static struct snd_pcm_hardware snd_cs423 > .channels_min = 1, > .channels_max = 2, > .buffer_bytes_max = (32*1024), >- .period_bytes_min = 256, >+ .period_bytes_min = 64, > .period_bytes_max = (32*1024), > .periods_min= 1, > .periods_max= 1024, Can't 44 be folded into 43? -`J' -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [patch 43/50] SOUND: Sparc CS4231: Fix IRQ return value and initialization.
Subject: [patch 43/50] SOUND: Sparc CS4231: Fix IRQ return value and initialization. --- linux-2.6.19.1.orig/sound/sparc/cs4231.c +++ linux-2.6.19.1/sound/sparc/cs4231.c @@ -1268,7 +1268,7 @@ static struct snd_pcm_hardware snd_cs423 .channels_min = 1, .channels_max = 2, .buffer_bytes_max = (32*1024), - .period_bytes_min = 4096, + .period_bytes_min = 256, .period_bytes_max = (32*1024), .periods_min= 1, .periods_max= 1024, Subject: [patch 44/50] SOUND: Sparc CS4231: Use 64 for period_bytes_min --- linux-2.6.19.1.orig/sound/sparc/cs4231.c +++ linux-2.6.19.1/sound/sparc/cs4231.c @@ -1268,7 +1268,7 @@ static struct snd_pcm_hardware snd_cs423 .channels_min = 1, .channels_max = 2, .buffer_bytes_max = (32*1024), - .period_bytes_min = 256, + .period_bytes_min = 64, .period_bytes_max = (32*1024), .periods_min= 1, .periods_max= 1024, Can't 44 be folded into 43? -`J' -- - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[patch 43/50] SOUND: Sparc CS4231: Fix IRQ return value and initialization.
-stable review patch. If anyone has any objections, please let us know. -- From: Georg Chini <[EMAIL PROTECTED]> fix some initialisation problems. Change period_bytes_min from 4096 to 256 to allow driver to work with low latency (VOIP) applications. Hope this does not break EBUS. Signed-off-by: Georg Chini <[EMAIL PROTECTED]> Signed-off-by: David S. Miller <[EMAIL PROTECTED]> Signed-off-by: Chris Wright <[EMAIL PROTECTED]> --- commit d35a1b9e10481c9f1d3b87e778a0f1f6a0a2dd48 sound/sparc/cs4231.c | 26 -- 1 file changed, 12 insertions(+), 14 deletions(-) --- linux-2.6.19.1.orig/sound/sparc/cs4231.c +++ linux-2.6.19.1/sound/sparc/cs4231.c @@ -1268,7 +1268,7 @@ static struct snd_pcm_hardware snd_cs423 .channels_min = 1, .channels_max = 2, .buffer_bytes_max = (32*1024), - .period_bytes_min = 4096, + .period_bytes_min = 256, .period_bytes_max = (32*1024), .periods_min= 1, .periods_max= 1024, @@ -1288,7 +1288,7 @@ static struct snd_pcm_hardware snd_cs423 .channels_min = 1, .channels_max = 2, .buffer_bytes_max = (32*1024), - .period_bytes_min = 4096, + .period_bytes_min = 256, .period_bytes_max = (32*1024), .periods_min= 1, .periods_max= 1024, @@ -1796,7 +1796,7 @@ static irqreturn_t snd_cs4231_sbus_inter snd_cs4231_outm(chip, CS4231_IRQ_STATUS, ~CS4231_ALL_IRQS | ~status, 0); spin_unlock_irqrestore(>lock, flags); - return 0; + return IRQ_HANDLED; } /* @@ -1821,7 +1821,6 @@ static int sbus_dma_request(struct cs423 if (!(csr & test)) goto out; err = -EBUSY; - csr = sbus_readl(base->regs + APCCSR); test = APC_XINT_CNVA; if ( base->dir == APC_PLAY ) test = APC_XINT_PNVA; @@ -1862,17 +1861,16 @@ static void sbus_dma_enable(struct cs423 spin_lock_irqsave(>lock, flags); if (!on) { - if (base->dir == APC_PLAY) { - sbus_writel(0, base->regs + base->dir + APCNVA); - sbus_writel(1, base->regs + base->dir + APCC); - } - else - { - sbus_writel(0, base->regs + base->dir + APCNC); - sbus_writel(0, base->regs + base->dir + APCVA); - } + sbus_writel(0, base->regs + base->dir + APCNC); + sbus_writel(0, base->regs + base->dir + APCNVA); + sbus_writel(0, base->regs + base->dir + APCC); + sbus_writel(0, base->regs + base->dir + APCVA); + + /* ACK any APC interrupts. */ + csr = sbus_readl(base->regs + APCCSR); + sbus_writel(csr, base->regs + APCCSR); } - udelay(600); + udelay(1000); csr = sbus_readl(base->regs + APCCSR); shift = 0; if ( base->dir == APC_PLAY ) -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[patch 43/50] SOUND: Sparc CS4231: Fix IRQ return value and initialization.
-stable review patch. If anyone has any objections, please let us know. -- From: Georg Chini [EMAIL PROTECTED] fix some initialisation problems. Change period_bytes_min from 4096 to 256 to allow driver to work with low latency (VOIP) applications. Hope this does not break EBUS. Signed-off-by: Georg Chini [EMAIL PROTECTED] Signed-off-by: David S. Miller [EMAIL PROTECTED] Signed-off-by: Chris Wright [EMAIL PROTECTED] --- commit d35a1b9e10481c9f1d3b87e778a0f1f6a0a2dd48 sound/sparc/cs4231.c | 26 -- 1 file changed, 12 insertions(+), 14 deletions(-) --- linux-2.6.19.1.orig/sound/sparc/cs4231.c +++ linux-2.6.19.1/sound/sparc/cs4231.c @@ -1268,7 +1268,7 @@ static struct snd_pcm_hardware snd_cs423 .channels_min = 1, .channels_max = 2, .buffer_bytes_max = (32*1024), - .period_bytes_min = 4096, + .period_bytes_min = 256, .period_bytes_max = (32*1024), .periods_min= 1, .periods_max= 1024, @@ -1288,7 +1288,7 @@ static struct snd_pcm_hardware snd_cs423 .channels_min = 1, .channels_max = 2, .buffer_bytes_max = (32*1024), - .period_bytes_min = 4096, + .period_bytes_min = 256, .period_bytes_max = (32*1024), .periods_min= 1, .periods_max= 1024, @@ -1796,7 +1796,7 @@ static irqreturn_t snd_cs4231_sbus_inter snd_cs4231_outm(chip, CS4231_IRQ_STATUS, ~CS4231_ALL_IRQS | ~status, 0); spin_unlock_irqrestore(chip-lock, flags); - return 0; + return IRQ_HANDLED; } /* @@ -1821,7 +1821,6 @@ static int sbus_dma_request(struct cs423 if (!(csr test)) goto out; err = -EBUSY; - csr = sbus_readl(base-regs + APCCSR); test = APC_XINT_CNVA; if ( base-dir == APC_PLAY ) test = APC_XINT_PNVA; @@ -1862,17 +1861,16 @@ static void sbus_dma_enable(struct cs423 spin_lock_irqsave(base-lock, flags); if (!on) { - if (base-dir == APC_PLAY) { - sbus_writel(0, base-regs + base-dir + APCNVA); - sbus_writel(1, base-regs + base-dir + APCC); - } - else - { - sbus_writel(0, base-regs + base-dir + APCNC); - sbus_writel(0, base-regs + base-dir + APCVA); - } + sbus_writel(0, base-regs + base-dir + APCNC); + sbus_writel(0, base-regs + base-dir + APCNVA); + sbus_writel(0, base-regs + base-dir + APCC); + sbus_writel(0, base-regs + base-dir + APCVA); + + /* ACK any APC interrupts. */ + csr = sbus_readl(base-regs + APCCSR); + sbus_writel(csr, base-regs + APCCSR); } - udelay(600); + udelay(1000); csr = sbus_readl(base-regs + APCCSR); shift = 0; if ( base-dir == APC_PLAY ) -- - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/