Hello,
According to comments in airo.c the flag FLAG_RADIO_DOWN means:
Radio disabled via "ifconfig ethX down".
airo_pci_resume clears this flag.
This causes a little problem I can reproduce on my IBM ThinkPad R40 with
Cisco Aironet mini-PCI card (MPI350) with these steps:
1) ifup eth0 => card works OK, radio status LED indicator is on
2) ifdown eth0 => LED turns off
3) hibernate using swsuspend
4) resume from swsuspend
Result: interface eth0 is down, but the LED indicates that radio is on.
Expected result: interface eth0 is down, so the radio should be off.
I think that airo_pci_resume shouldn't mess with FLAG_RADIO_DOWN. I have
removed the line and now everything works as expected. One-line patch
attached.
Michal Schmidt
--- linux-2.6.8-rc4-bk2/drivers/net/wireless/airo.c 2004-08-12
22:00:42.000000000 +0200
+++ linux-2.6.8-rc4-bk2-mich/drivers/net/wireless/airo.c 2004-08-12
22:09:15.000000000 +0200
@@ -5520,7 +5520,6 @@ static int airo_pci_resume(struct pci_de
mpi_init_descriptors(ai);
setup_card(ai, dev->dev_addr, 0);
clear_bit(FLAG_RADIO_OFF, &ai->flags);
- clear_bit(FLAG_RADIO_DOWN, &ai->flags);
clear_bit(FLAG_PENDING_XMIT, &ai->flags);
} else {
OUT4500(ai, EVACK, EV_AWAKEN);
|