Staging: rtl8187se: merge r8180_pm.c with r8180_core.c
* merge r8180_pm.c with r8180_core.c * make functions static Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
b72490a5f9
commit
b6d11c07e5
@@ -25,7 +25,6 @@ rtl8187se-objs := \
|
|||||||
r8180_rtl8225z2.o \
|
r8180_rtl8225z2.o \
|
||||||
r8185b_init.o \
|
r8185b_init.o \
|
||||||
r8180_dm.o \
|
r8180_dm.o \
|
||||||
r8180_pm.o \
|
|
||||||
ieee80211/dot11d.o \
|
ieee80211/dot11d.o \
|
||||||
ieee80211/ieee80211_softmac.o \
|
ieee80211/ieee80211_softmac.o \
|
||||||
ieee80211/ieee80211_rx.o \
|
ieee80211/ieee80211_rx.o \
|
||||||
|
@@ -22,6 +22,9 @@
|
|||||||
|
|
||||||
A big big thanks goes also to Realtek corp. for their help in my attempt to
|
A big big thanks goes also to Realtek corp. for their help in my attempt to
|
||||||
add RTL8185 and RTL8225 support, and to David Young also.
|
add RTL8185 and RTL8225 support, and to David Young also.
|
||||||
|
|
||||||
|
Power management interface routines.
|
||||||
|
Written by Mariusz Matuszek.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#undef RX_DONT_PASS_UL
|
#undef RX_DONT_PASS_UL
|
||||||
@@ -37,8 +40,6 @@
|
|||||||
#include "r8180_wx.h"
|
#include "r8180_wx.h"
|
||||||
#include "r8180_dm.h"
|
#include "r8180_dm.h"
|
||||||
|
|
||||||
#include "r8180_pm.h"
|
|
||||||
|
|
||||||
#include "ieee80211/dot11d.h"
|
#include "ieee80211/dot11d.h"
|
||||||
|
|
||||||
#ifndef PCI_VENDOR_ID_BELKIN
|
#ifndef PCI_VENDOR_ID_BELKIN
|
||||||
@@ -121,6 +122,64 @@ static void rtl8180_shutdown (struct pci_dev *pdev)
|
|||||||
pci_disable_device(pdev);
|
pci_disable_device(pdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int rtl8180_suspend(struct pci_dev *pdev, pm_message_t state)
|
||||||
|
{
|
||||||
|
struct net_device *dev = pci_get_drvdata(pdev);
|
||||||
|
|
||||||
|
if (!netif_running(dev))
|
||||||
|
goto out_pci_suspend;
|
||||||
|
|
||||||
|
if (dev->netdev_ops->ndo_stop)
|
||||||
|
dev->netdev_ops->ndo_stop(dev);
|
||||||
|
|
||||||
|
netif_device_detach(dev);
|
||||||
|
|
||||||
|
out_pci_suspend:
|
||||||
|
pci_save_state(pdev);
|
||||||
|
pci_disable_device(pdev);
|
||||||
|
pci_set_power_state(pdev, pci_choose_state(pdev, state));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int rtl8180_resume(struct pci_dev *pdev)
|
||||||
|
{
|
||||||
|
struct net_device *dev = pci_get_drvdata(pdev);
|
||||||
|
int err;
|
||||||
|
u32 val;
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
pci_restore_state(pdev);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Suspend/Resume resets the PCI configuration space, so we have to
|
||||||
|
* re-disable the RETRY_TIMEOUT register (0x41) to keep PCI Tx retries
|
||||||
|
* from interfering with C3 CPU state. pci_restore_state won't help
|
||||||
|
* here since it only restores the first 64 bytes pci config header.
|
||||||
|
*/
|
||||||
|
pci_read_config_dword(pdev, 0x40, &val);
|
||||||
|
if ((val & 0x0000ff00) != 0)
|
||||||
|
pci_write_config_dword(pdev, 0x40, val & 0xffff00ff);
|
||||||
|
|
||||||
|
if (!netif_running(dev))
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
if (dev->netdev_ops->ndo_open)
|
||||||
|
dev->netdev_ops->ndo_open(dev);
|
||||||
|
|
||||||
|
netif_device_attach(dev);
|
||||||
|
out:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static struct pci_driver rtl8180_pci_driver = {
|
static struct pci_driver rtl8180_pci_driver = {
|
||||||
.name = RTL8180_MODULE_NAME, /* Driver name */
|
.name = RTL8180_MODULE_NAME, /* Driver name */
|
||||||
.id_table = rtl8180_pci_id_tbl, /* PCI_ID table */
|
.id_table = rtl8180_pci_id_tbl, /* PCI_ID table */
|
||||||
|
@@ -1,74 +0,0 @@
|
|||||||
/*
|
|
||||||
Power management interface routines.
|
|
||||||
Written by Mariusz Matuszek.
|
|
||||||
This code is currently just a placeholder for later work and
|
|
||||||
does not do anything useful.
|
|
||||||
|
|
||||||
This is part of rtl8180 OpenSource driver.
|
|
||||||
Copyright (C) Andrea Merello 2004 <andreamrl@tiscali.it>
|
|
||||||
Released under the terms of GPL (General Public Licence)
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "r8180_hw.h"
|
|
||||||
#include "r8180_pm.h"
|
|
||||||
#include "r8180.h"
|
|
||||||
|
|
||||||
int rtl8180_suspend(struct pci_dev *pdev, pm_message_t state)
|
|
||||||
{
|
|
||||||
struct net_device *dev = pci_get_drvdata(pdev);
|
|
||||||
|
|
||||||
if (!netif_running(dev))
|
|
||||||
goto out_pci_suspend;
|
|
||||||
|
|
||||||
if (dev->netdev_ops->ndo_stop)
|
|
||||||
dev->netdev_ops->ndo_stop(dev);
|
|
||||||
|
|
||||||
netif_device_detach(dev);
|
|
||||||
|
|
||||||
out_pci_suspend:
|
|
||||||
pci_save_state(pdev);
|
|
||||||
pci_disable_device(pdev);
|
|
||||||
pci_set_power_state(pdev, pci_choose_state(pdev, state));
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int rtl8180_resume(struct pci_dev *pdev)
|
|
||||||
{
|
|
||||||
struct net_device *dev = pci_get_drvdata(pdev);
|
|
||||||
int err;
|
|
||||||
u32 val;
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
pci_restore_state(pdev);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Suspend/Resume resets the PCI configuration space, so we have to
|
|
||||||
* re-disable the RETRY_TIMEOUT register (0x41) to keep PCI Tx retries
|
|
||||||
* from interfering with C3 CPU state. pci_restore_state won't help
|
|
||||||
* here since it only restores the first 64 bytes pci config header.
|
|
||||||
*/
|
|
||||||
pci_read_config_dword(pdev, 0x40, &val);
|
|
||||||
if ((val & 0x0000ff00) != 0)
|
|
||||||
pci_write_config_dword(pdev, 0x40, val & 0xffff00ff);
|
|
||||||
|
|
||||||
if (!netif_running(dev))
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
if (dev->netdev_ops->ndo_open)
|
|
||||||
dev->netdev_ops->ndo_open(dev);
|
|
||||||
|
|
||||||
netif_device_attach(dev);
|
|
||||||
out:
|
|
||||||
return 0;
|
|
||||||
}
|
|
@@ -1,24 +0,0 @@
|
|||||||
/*
|
|
||||||
Power management interface routines.
|
|
||||||
Written by Mariusz Matuszek.
|
|
||||||
This code is currently just a placeholder for later work and
|
|
||||||
does not do anything useful.
|
|
||||||
|
|
||||||
This is part of rtl8180 OpenSource driver.
|
|
||||||
Copyright (C) Andrea Merello 2004 <andreamrl@tiscali.it>
|
|
||||||
Released under the terms of GPL (General Public Licence)
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef R8180_PM_H
|
|
||||||
#define R8180_PM_H
|
|
||||||
|
|
||||||
#include <linux/types.h>
|
|
||||||
#include <linux/pci.h>
|
|
||||||
|
|
||||||
int rtl8180_suspend (struct pci_dev *pdev, pm_message_t state);
|
|
||||||
int rtl8180_resume (struct pci_dev *pdev);
|
|
||||||
|
|
||||||
#endif //R8180_PM_H
|
|
||||||
|
|
@@ -26,8 +26,6 @@ Notes:
|
|||||||
#include "r8180_93cx6.h" /* Card EEPROM */
|
#include "r8180_93cx6.h" /* Card EEPROM */
|
||||||
#include "r8180_wx.h"
|
#include "r8180_wx.h"
|
||||||
|
|
||||||
#include "r8180_pm.h"
|
|
||||||
|
|
||||||
#include "ieee80211/dot11d.h"
|
#include "ieee80211/dot11d.h"
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user