From: Michal Schmidt Date: Tue, 4 Oct 2005 11:46:21 +0000 (-0400) Subject: airo: fix resume X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=53232803241ae0f26b39897a4d4b37775837de00;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git 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. Signed-off-by: Michal Schmidt --- diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c index 746456c34df8..cb429e783749 100644 --- a/drivers/net/wireless/airo.c +++ b/drivers/net/wireless/airo.c @@ -5504,12 +5504,13 @@ static int airo_pci_resume(struct pci_dev *pdev) 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);