lkml.org 
[lkml]   [2008]   [Mar]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [alsa-devel] [regression] 2.6.25-rc4 snd-es18xx broken on Alpha
    On 13-03-08 05:24, Bob Tracy wrote:

    > Rene Herman wrote:
    >> Okay, and applying the attached just makes your sound completely dead in the
    >> water?
    >> (patch to delete es1888_init function)
    >
    > Oddly enough, the patch had no effect whatsoever (at least with the
    > ALSA drivers: I didn't try building a kernel with the OSS "sb" driver).
    > Just to make sure I wasn't "benefiting" from initialization inherited
    > from a prior boot, I even powered-down the machine for 30 seconds
    > before booting on the new kernel. snd-sb8 still works, and snd-es18xx
    > is still broken (in exactly the same way as before).

    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-17 23:03    [W:0.025 / U:22.748 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site