int rtl8192E_resume(struct pci_dev *pdev) { struct net_device *dev = pci_get_drvdata(pdev); struct r8192_priv *priv = rtllib_priv(dev); int err; u32 val; netdev_info(dev, "================>r8192E resume call.\n"); pci_set_power_state(pdev, PCI_D0); err = pci_enable_device(pdev); if (err) { netdev_err(dev, "pci_enable_device failed on resume\n"); return err; } pci_restore_state(pdev); pci_read_config_dword(pdev, 0x40, &val); if ((val & 0x0000ff00) != 0) pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); pci_enable_wake(pdev, PCI_D0, 0); if (priv->polling_timer_on == 0) check_rfctrl_gpio_timer((unsigned long)dev); if (!netif_running(dev)) { netdev_info(dev, "RTL819XE:UI is open out of resume function\n"); goto out; } netif_device_attach(dev); if (dev->netdev_ops->ndo_open) dev->netdev_ops->ndo_open(dev); if (!priv->rtllib->bSupportRemoteWakeUp) MgntActSet_RF_State(dev, eRfOn, RF_CHANGE_BY_INIT, true); out: RT_TRACE(COMP_POWER, "<================r8192E resume call.\n"); return 0; }
int rtl8192E_resume (struct pci_dev *pdev) { struct net_device *dev = pci_get_drvdata(pdev); struct r8192_priv *priv = rtllib_priv(dev); #ifdef _RTL8192_EXT_PATCH_ struct net_device *meshdev = priv->rtllib->meshdev; #endif int err; u32 val; RT_TRACE(COMP_POWER, "================>r8192E resume call."); printk("================>r8192E resume call.\n"); pci_set_power_state(pdev, PCI_D0); err = pci_enable_device(pdev); if(err) { printk(KERN_ERR "%s: pci_enable_device failed on resume\n", dev->name); return err; } #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)) pci_restore_state(pdev,&(priv->pci_state)); #else pci_restore_state(pdev); #endif pci_read_config_dword(pdev, 0x40, &val); if ((val & 0x0000ff00) != 0) { pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); } pci_enable_wake(pdev, PCI_D0, 0); #ifdef ENABLE_GPIO_RADIO_CTL if(priv->polling_timer_on == 0){ check_rfctrl_gpio_timer((unsigned long)dev); } #endif #ifdef _RTL8192_EXT_PATCH_ if ((!netif_running(dev)) && (!netif_running(meshdev))) #else if(!netif_running(dev)) #endif { printk("RTL819XE:UI is open out of resume function\n"); goto out; } netif_device_attach(dev); #ifdef HAVE_NET_DEVICE_OPS if (priv->rtllib->wlan_up_before_suspend) { if (dev->netdev_ops->ndo_open) dev->netdev_ops->ndo_open(dev); } #ifdef _RTL8192_EXT_PATCH_ if (priv->rtllib->mesh_up_before_suspend) { if (meshdev->netdev_ops->ndo_open) meshdev->netdev_ops->ndo_open(meshdev); netif_carrier_on(meshdev); } #endif #else if (priv->rtllib->wlan_up_before_suspend) { dev->open(dev); } #ifdef _RTL8192_EXT_PATCH_ if (priv->rtllib->mesh_up_before_suspend) { meshdev->open(meshdev); netif_carrier_on(meshdev); } #endif #endif #if !(defined RTL8192SE || defined RTL8192CE) if(!priv->rtllib->bSupportRemoteWakeUp) { MgntActSet_RF_State(dev, eRfOn, RF_CHANGE_BY_INIT,true); } #endif out: RT_TRACE(COMP_POWER, "<================r8192E resume call.\n"); return 0; }