git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[WATCHDOG] davinci: use clock framework for timer frequency
[safe/jmp/linux-2.6]
/
drivers
/
net
/
smsc911x.c
diff --git
a/drivers/net/smsc911x.c
b/drivers/net/smsc911x.c
index
66067f9
..
ccdd196
100644
(file)
--- a/
drivers/net/smsc911x.c
+++ b/
drivers/net/smsc911x.c
@@
-50,6
+50,7
@@
#include <linux/swab.h>
#include <linux/phy.h>
#include <linux/smsc911x.h>
#include <linux/swab.h>
#include <linux/phy.h>
#include <linux/smsc911x.h>
+#include <linux/device.h>
#include "smsc911x.h"
#define SMSC_CHIPNAME "smsc911x"
#include "smsc911x.h"
#define SMSC_CHIPNAME "smsc911x"
@@
-1046,7
+1047,6
@@
static int smsc911x_poll(struct napi_struct *napi, int budget)
/* Update counters */
dev->stats.rx_packets++;
dev->stats.rx_bytes += (pktlength - 4);
/* Update counters */
dev->stats.rx_packets++;
dev->stats.rx_bytes += (pktlength - 4);
- dev->last_rx = jiffies;
}
/* Return total received packets */
}
/* Return total received packets */
@@
-1779,6
+1779,7
@@
static const struct net_device_ops smsc911x_netdev_ops = {
.ndo_get_stats = smsc911x_get_stats,
.ndo_set_multicast_list = smsc911x_set_multicast_list,
.ndo_do_ioctl = smsc911x_do_ioctl,
.ndo_get_stats = smsc911x_get_stats,
.ndo_set_multicast_list = smsc911x_set_multicast_list,
.ndo_do_ioctl = smsc911x_do_ioctl,
+ .ndo_change_mtu = eth_change_mtu,
.ndo_validate_addr = eth_validate_addr,
.ndo_set_mac_address = smsc911x_set_mac_address,
#ifdef CONFIG_NET_POLL_CONTROLLER
.ndo_validate_addr = eth_validate_addr,
.ndo_set_mac_address = smsc911x_set_mac_address,
#ifdef CONFIG_NET_POLL_CONTROLLER
@@
-2113,10
+2114,12
@@
out_0:
/* This implementation assumes the devices remains powered on its VDDVARIO
* pins during suspend. */
/* This implementation assumes the devices remains powered on its VDDVARIO
* pins during suspend. */
-static int smsc911x_suspend(struct platform_device *pdev, pm_message_t state)
+/* TODO: implement freeze/thaw callbacks for hibernation.*/
+
+static int smsc911x_suspend(struct device *dev)
{
{
- struct net_device *
dev = platform_get_drvdata(p
dev);
- struct smsc911x_data *pdata = netdev_priv(dev);
+ struct net_device *
ndev = dev_get_drvdata(
dev);
+ struct smsc911x_data *pdata = netdev_priv(
n
dev);
/* enable wake on LAN, energy detection and the external PME
* signal. */
/* enable wake on LAN, energy detection and the external PME
* signal. */
@@
-2127,10
+2130,10
@@
static int smsc911x_suspend(struct platform_device *pdev, pm_message_t state)
return 0;
}
return 0;
}
-static int smsc911x_resume(struct
platform_device *p
dev)
+static int smsc911x_resume(struct
device *
dev)
{
{
- struct net_device *
dev = platform_get_drvdata(p
dev);
- struct smsc911x_data *pdata = netdev_priv(dev);
+ struct net_device *
ndev = dev_get_drvdata(
dev);
+ struct smsc911x_data *pdata = netdev_priv(
n
dev);
unsigned int to = 100;
/* Note 3.11 from the datasheet:
unsigned int to = 100;
/* Note 3.11 from the datasheet:
@@
-2148,19
+2151,25
@@
static int smsc911x_resume(struct platform_device *pdev)
return (to == 0) ? -EIO : 0;
}
return (to == 0) ? -EIO : 0;
}
+static struct dev_pm_ops smsc911x_pm_ops = {
+ .suspend = smsc911x_suspend,
+ .resume = smsc911x_resume,
+};
+
+#define SMSC911X_PM_OPS (&smsc911x_pm_ops)
+
#else
#else
-#define smsc911x_suspend NULL
-#define smsc911x_resume NULL
+#define SMSC911X_PM_OPS NULL
#endif
static struct platform_driver smsc911x_driver = {
.probe = smsc911x_drv_probe,
.remove = __devexit_p(smsc911x_drv_remove),
.driver = {
#endif
static struct platform_driver smsc911x_driver = {
.probe = smsc911x_drv_probe,
.remove = __devexit_p(smsc911x_drv_remove),
.driver = {
- .name = SMSC_CHIPNAME,
+ .name = SMSC_CHIPNAME,
+ .owner = THIS_MODULE,
+ .pm = SMSC911X_PM_OPS,
},
},
- .suspend = smsc911x_suspend,
- .resume = smsc911x_resume,
};
/* Entry point for loading the module */
};
/* Entry point for loading the module */