lkml.org 
[lkml]   [2008]   [Mar]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [alsa-devel] [regression] 2.6.25-rc4 snd-es18xx broken on Alpha
Date
From
I'll try the below when I get back from my business trip (in approx.
two weeks). Apologies for the inconvenience, but the Alpha hardly
qualifies as a laptop :-). If someone else with a Miata (or other
Alpha with the ES1888 sound device) cares to give this a try, I *will*
be keeping up with my e-mail.

--Bob

Rene Herman wrote:
> Okay, thought I'd stare at this thing a bit -- there's no specific 1888
> documentation available it seems but I did notice something in the 1878
> datasheet which might mean something. The docs says that bits 0-1 are don't
> care for DMA but don't for IRQ, so could it possibly be as simple as the
> attached?
>
> 1878 sheet doesn't document register 0x7f, it seems...
>
> Assuming it's not just this, this thing is going to require quite a bit of
> trial and error and without the hardware this will be troublesome. I expect
> this is not it, since the arch init code also doesn't care about bit 0 when
> setting that same register for IRQ 5.
>
> If this is not it -- I'd try s/0x50/0x10/ in that line, even completely
> commenting out the IRQ setting line (with the arch code built in) and just
> generally frolic around 'till something blows up...
>
> Rene.
>

> diff --git a/sound/isa/es18xx.c b/sound/isa/es18xx.c
> index 90498e4..71d1b96 100644
> --- a/sound/isa/es18xx.c
> +++ b/sound/isa/es18xx.c
> @@ -1449,16 +1449,16 @@ static int __devinit snd_es18xx_initialize(struct snd_es18xx *chip)
> switch (chip->irq) {
> case 2:
> case 9:
> - irqmask = 0;
> + irqmask = 0x0;
> break;
> case 5:
> - irqmask = 1;
> + irqmask = 0x5;
> break;
> case 7:
> - irqmask = 2;
> + irqmask = 0xa;
> break;
> case 10:
> - irqmask = 3;
> + irqmask = 0xf;
> break;
> default:
> snd_printk(KERN_ERR "invalid irq %d\n", chip->irq);
> @@ -1497,7 +1497,7 @@ static int __devinit snd_es18xx_initialize(struct snd_es18xx *chip)
> }
>
> /* Enable and set Audio 1 IRQ */
> - snd_es18xx_write(chip, 0xB1, 0x50 | (irqmask << 2));
> + snd_es18xx_write(chip, 0xB1, 0x50 | irqmask);
> /* Enable and set Audio 1 DMA */
> snd_es18xx_write(chip, 0xB2, 0x50 | (dma1mask << 2));
> /* Set Audio 2 DMA */
> @@ -1513,7 +1513,9 @@ static int __devinit snd_es18xx_initialize(struct snd_es18xx *chip)
> FM enabled */
> snd_es18xx_mixer_write(chip, 0x40, 0x43 | (chip->mpu_port & 0xf0) >> 1);
> }
> +#if 0
> snd_es18xx_mixer_write(chip, 0x7f, ((irqmask + 1) << 1) | 0x01);
> +#endif
> }
> if (chip->caps & ES18XX_NEW_RATE) {
> /* Change behaviour of register A1


\
 
 \ /
  Last update: 2008-03-18 04:27    [W:1.363 / U:1.672 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site