Skip to contentSkip to conversation

airo: fix resume

PATCH Applied Michal Schmidt 2 participants 2 messages Oct 3, 2005 – Oct 4, 2005

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 airo: fix resume

Cisco Aironet doesn't resume properly from swsusp, because the resume method confuses a PM_EVENT_* for a PCI power state. It thinks that it is resuming from PCI_D1 and doesn't do the necessary initialization of the card.

drivers/net/wireless/airo.c +4 -3
@@ -5515,12 +5515,13 @@ static int airo_pci_resume(struct pci_de
 	struct net_device *dev = pci_get_drvdata(pdev);
 	struct airo_info *ai = dev->priv;
 	Resp rsp;
+	pci_power_t prev_state = pdev->current_state;
 
-	pci_set_power_state(pdev, 0);
+	pci_set_power_state(pdev, PCI_D0);
 	pci_restore_state(pdev);
-	pci_enable_wake(pdev, pci_choose_state(pdev, ai->power), 0);
+	pci_enable_wake(pdev, PCI_D0, 0);
 
-	if (ai->power.event > 1) {
+	if (prev_state != PCI_D1) {
 		reset_card(dev, 0);
 		mpi_init_descriptors(ai);
 		setup_card(ai, dev->dev_addr, 0);