b44 -- Re: No network after S3

Len Brown
2004-02-24T22:00:24Z

On Tue, 2004-02-24 at 11:41, Peter Meier wrote:
> <snip>
>
> I'm having the same problem that my network is dead after I resume
> from
> S3, but I'm getting some kind of (maybe?) helpfull error message:
>
> b44: eth0: BUG! Timeout waiting for bit 80000000 of register 428 to
> clear.
> b44: eth0: BUG! Timeout waiting for bit 80000000 of register 428 to
> clear.

from b44.h:

#define B44_CAM_CTRL 0x0428UL /* EMAC CAM Control */
#define CAM_CTRL_BUSY 0x80000000 /* CAM Busy */

looks like this bit is polled after writing to the CAM.
I have no idea what would cause the CAM busy bit to stay set forever.

> I can rmmod b44 then, and modprobe it again, which leads to the
> following:
>
> b44.c:v0.92 (Nov 4, 2003)
> PCI: Enabling device 0000:02:02.0 (0000 -> 0002)
> PCI: Setting latency timer of device 0000:02:02.0 to 64
> eh0: Broadcom 4400 10/100BaseT Ethernet ff:ff:ff:ff:ff:ff
> eth0: PHY Reset would not complete.
> b44: eth0: BUG! Timeout waiting for bit 80000000 of register 428 to
> clear. (several times)
>
> So, somehow, the MAC address is incorrect. I can ping my local IP
> address, but nothing else. There is no way to get the network card
> back
> to live, except rebooting. If I rmmod b44 *before* going to sleep, and
> modprobing it after I resume, I'm getting the same faulty MAC address
> and no network.

apparently, the hardware is in a broken state, and re-loading the driver
doesn't seem to clear it.

It would be interesting to know if you can unload the driver before
going to S3, and then load it after resuming from S3. ie. can the b44
hardware survive the S3 transition if it is quiescent?

> Kernel is 2.6.3-mm3; I have IO-APIC enabled. cat /proc/interrupts
> gives
> me the idea that the network card uses PIC.

system will be in XT-PIC mode or IO-APIC mode -- can't be both. I
assume that /proc/interrupts shows this device receiving no interrupts
after the S3 resume?

thanks,
-Len