yenta_socket broken on Acer Travelmate 505 series

AndersB anders.bogild at gmail.com
Mon Feb 19 18:50:44 EST 2007


Hi
I havnt been able to use my D-Link DUB-C2 usb 2.0 pcmcia card on my Acer 
Travelmate 506t since kernel 2.6.12 and i have finally tracked down the 
error to the message "Yenta O2: old bridge, disabling read 
prefetch/write burst" apearing in dmesg.

I removed the case for the O2_6812 and everything works for me now.

Here is the patch:

*** drivers/pcmcia/o2micro.h    Tue Feb 20 00:26:05 2007
--- ../linux-2.6.19-gentoo-r5-acer_tm505/drivers/pcmcia/o2micro.h       
Tue Feb 20 00:26:30 2007
***************
*** 133,173 ****
         * working. for some bridges it is at 0x94, for others at 0xD4. it's
         * ok to write to both registers on all O2 bridges.
         * from Eric Still, 02Micro.
         */
        u8 a, b;

        if (PCI_FUNC(socket->dev->devfn) == 0) {
                a = config_readb(socket, O2_RESERVED1);
                b = config_readb(socket, O2_RESERVED2);

                printk(KERN_INFO "Yenta O2: res at 0x94/0xD4: 
%02x/%02x\n", a, b);

                switch (socket->dev->device) {
                /*
                 * older bridges have problems with both read prefetch 
and write
                 * bursting depending on the combination of the chipset, 
bridge
                 * and the cardbus card. so disable them to be on the 
safe side.
                 */
                case PCI_DEVICE_ID_O2_6729:
                case PCI_DEVICE_ID_O2_6730:
-               case PCI_DEVICE_ID_O2_6812:
                case PCI_DEVICE_ID_O2_6832:
                case PCI_DEVICE_ID_O2_6836:
                        printk(KERN_INFO "Yenta O2: old bridge, 
disabling read prefetch/write burst\n");
                        config_writeb(socket, O2_RESERVED1,
                                      a & ~(O2_RES_READ_PREFETCH | 
O2_RES_WRITE_BURST));
                        config_writeb(socket, O2_RESERVED2,
                                      b & ~(O2_RES_READ_PREFETCH | 
O2_RES_WRITE_BURST));
                        break;

                default:
                        printk(KERN_INFO "Yenta O2: enabling read 
prefetch/write burst\n");
                        config_writeb(socket, O2_RESERVED1,
                                      a | O2_RES_READ_PREFETCH | 
O2_RES_WRITE_BURST);
                        config_writeb(socket, O2_RESERVED2,
                                      b | O2_RES_READ_PREFETCH | 
O2_RES_WRITE_BURST);
                }
        }

        return 0;
  }
--- 133,172 ----

Before the patch lspci gives

00:06.0 CardBus bridge: O2 Micro, Inc. OZ6812 CardBus Controller (rev 05)
        Subsystem: Acer Incorporated [ALI] Unknown device 100b
        Flags: bus master, stepping, slow devsel, latency 168, IRQ 11
        Memory at 14000000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=00, secondary=01, subordinate=04, sec-latency=176
        Memory window 0: 10000000-11fff000 (prefetchable)
        Memory window 1: 12000000-13fff000
        I/O window 0: 00001800-000018ff
        I/O window 1: 00001c00-00001cff
        16-bit legacy interface ports at 0001

01:00.0 USB Controller: NEC Corporation USB (rev 41) (prog-if 10 [OHCI])
        Subsystem: D-Link System Inc Unknown device 0035
        Flags: bus master, medium devsel, latency 64, IRQ 11
        Memory at 12000000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [40] Power Management version 2

01:00.1 USB Controller: NEC Corporation USB (rev 41) (prog-if 10 [OHCI])
        Subsystem: D-Link System Inc Unknown device 0035
        Flags: bus master, medium devsel, latency 64, IRQ 11
        Memory at 12001000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [40] Power Management version 2

01:00.2 USB Controller: NEC Corporation USB 2.0 (rev 02) (prog-if 20 [EHCI])
        Subsystem: D-Link System Inc Unknown device f100
        Flags: bus master, medium devsel, latency 68, IRQ 11
        Memory at 12002000 (32-bit, non-prefetchable) [size=256]
        Capabilities: [40] Power Management version 2



_after_ the patch things work, but there is some funky stuff happening 
with info for the pcmcia card (the last lines):

00:06.0 CardBus bridge: O2 Micro, Inc. OZ6812 CardBus Controller (rev 05)
        Subsystem: Acer Incorporated [ALI] Unknown device 100b
        Flags: bus master, stepping, slow devsel, latency 168, IRQ 11
        Memory at 14000000 (32-bit, non-prefetchable) [size=4K]
        Bus: primary=00, secondary=01, subordinate=04, sec-latency=176
        Memory window 0: 10000000-11fff000 (prefetchable)
        Memory window 1: 12000000-13fff000
        I/O window 0: 00001800-000018ff
        I/O window 1: 00001c00-00001cff
        16-bit legacy interface ports at 0001

01:00.0 USB Controller: NEC Corporation USB (rev 41) (prog-if 10 [OHCI])
        Subsystem: D-Link System Inc Unknown device 0035
        Flags: bus master, VGA palette snoop, stepping, fast Back2Back, 
66MHz, user-definable features, ?? devsel, latency 8, IRQ 11
        Memory at 12000000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [40] Power Management version 2

01:00.1 USB Controller: NEC Corporation USB (rev 41) (prog-if 10 [OHCI])
        Subsystem: D-Link System Inc Unknown device 0035
        Flags: medium devsel, IRQ 11
        Memory at 12001000 (32-bit, non-prefetchable) [disabled] [size=4K]
        Capabilities: [40] Power Management version 2

01:00.2 Class ffff: Illegal Vendor ID Unknown device ffff (rev ff) 
(prog-if ff)
        Subsystem: D-Link System Inc Unknown device f100
        Flags: bus master, medium devsel, latency 68, IRQ 11
        Memory at 12002000 (32-bit, non-prefetchable) [size=256]
        Capabilities: [40] Power Management version 2

Should i just ignore this ?

Cheers!
    Anders B



More information about the linux-pcmcia mailing list