Cardbus suspend/resume of 3ccfe575bt card fails

From: Russell King (rmk@arm.linux.org.uk)
Date: Wed Aug 06 2003 - 17:27:35 EST


Hi akpm,

Yes, I should've reported this sooner.

2.4 and 2.6 kernels exhibit the same problem - upon resume, the card
indicates that it has a 10base link to the hub, but the hub indicates
it has a 100base link. No traffic is possible.

Unplugging and replugging the card restores the link correctly (100base).

The following is from 2.6.0-test2:

0000:05:00.0: 3Com PCI 3CCFE575BT Cyclone CardBus at 0x1800. Vers LK1.1.19

Before suspend, mii-diag reports:

Basic registers of MII PHY #0: 3000 282d 0300 e54b 00a1 45e1 0001 0000.
 The autonegotiated capability is 00a0.
The autonegotiated media type is 100baseTx.
 Basic mode control register 0x3000: Auto-negotiation enabled.
 You have link beat, and everything is working OK.
 Your link partner advertised 45e1: Flow-control 100baseTx-FD 100baseTx 10baseT-FD 10baseT, w/ 802.3X flow control.
   End of basic transceiver information.

After resume, it reports:

Basic registers of MII PHY #0: ffff ffff ffff ffff ffff ffff ffff ffff.
  No MII transceiver present!.

I suspect this may be caused by the device not being restored correctly:

05:00.0 Class 0200: 10b7:5157 (rev 01)
        Subsystem: 10b7:5b57
        Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Interrupt: pin A routed to IRQ 11
        Region 0: I/O ports at 1800 [disabled] [size=128]
        Region 1: [virtual] Memory at 10c00000 (32-bit, non-prefetchable) [disabled] [size=128]
        Region 2: [virtual] Memory at 10c00080 (32-bit, non-prefetchable) [disabled] [size=128]
        Expansion ROM at 10800000 [disabled] [size=128K]
        Capabilities: [50] Power Management version 1
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1+,D2+,D3hot+,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

It looks like 3c59x only saves the PCI config space and restores it if
you have WOL enabled - this is obviously wrong if you're suspending/
resuming a CardBus device.

-- 
Russell King (rmk@arm.linux.org.uk)                The developer of ARM Linux
             http://www.arm.linux.org.uk/personal/aboutme.html

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Aug 07 2003 - 22:00:35 EST