tms380tr: convert to net_device_ops
authorStephen Hemminger <shemminger@linux-foundation.org>
Fri, 9 Jan 2009 13:01:25 +0000 (13:01 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 21 Jan 2009 22:02:30 +0000 (14:02 -0800)
Conver this related group of drivers to new API

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tokenring/abyss.c
drivers/net/tokenring/tms380tr.c
drivers/net/tokenring/tms380tr.h
drivers/net/tokenring/tmspci.c

index b566d6d79ecdbe7ce0a5f58f7546f50e77600ec5..b9db1b5a58a3db04af268a0c5148ac147aa40c89 100644 (file)
@@ -92,6 +92,8 @@ static void abyss_sifwritew(struct net_device *dev, unsigned short val, unsigned
        outw(val, dev->base_addr + reg);
 }
 
+static struct net_device_ops abyss_netdev_ops;
+
 static int __devinit abyss_attach(struct pci_dev *pdev, const struct pci_device_id *ent)
 {      
        static int versionprinted;
@@ -157,8 +159,7 @@ static int __devinit abyss_attach(struct pci_dev *pdev, const struct pci_device_
 
        memcpy(tp->ProductID, "Madge PCI 16/4 Mk2", PROD_ID_SIZE + 1);
                
-       dev->open = abyss_open;
-       dev->stop = abyss_close;
+       dev->netdev_ops = &abyss_netdev_ops;
 
        pci_set_drvdata(pdev, dev);
        SET_NETDEV_DEV(dev, &pdev->dev);
@@ -450,6 +451,11 @@ static struct pci_driver abyss_driver = {
 
 static int __init abyss_init (void)
 {
+       abyss_netdev_ops = tms380tr_netdev_ops;
+
+       abyss_netdev_ops.ndo_open = abyss_open;
+       abyss_netdev_ops.ndo_stop = abyss_close;
+
        return pci_register_driver(&abyss_driver);
 }
 
index 5be34c2fd48385751844d82dc0c12b1e6d5390d4..b11bb72dc7abae085326c605351cd92f52c6f70d 100644 (file)
@@ -2330,6 +2330,17 @@ void tmsdev_term(struct net_device *dev)
                DMA_BIDIRECTIONAL);
 }
 
+const struct net_device_ops tms380tr_netdev_ops = {
+       .ndo_open               = tms380tr_open,
+       .ndo_stop               = tms380tr_close,
+       .ndo_start_xmit         = tms380tr_send_packet,
+       .ndo_tx_timeout         = tms380tr_timeout,
+       .ndo_get_stats          = tms380tr_get_stats,
+       .ndo_set_multicast_list = tms380tr_set_multicast_list,
+       .ndo_set_mac_address    = tms380tr_set_mac_address,
+};
+EXPORT_SYMBOL(tms380tr_netdev_ops);
+
 int tmsdev_init(struct net_device *dev, struct device *pdev)
 {
        struct net_local *tms_local;
@@ -2353,16 +2364,8 @@ int tmsdev_init(struct net_device *dev, struct device *pdev)
                return -ENOMEM;
        }
        
-       /* These can be overridden by the card driver if needed */
-       dev->open               = tms380tr_open;
-       dev->stop               = tms380tr_close;
-       dev->do_ioctl           = NULL; 
-       dev->hard_start_xmit    = tms380tr_send_packet;
-       dev->tx_timeout         = tms380tr_timeout;
+       dev->netdev_ops         = &tms380tr_netdev_ops;
        dev->watchdog_timeo     = HZ;
-       dev->get_stats          = tms380tr_get_stats;
-       dev->set_multicast_list = &tms380tr_set_multicast_list;
-       dev->set_mac_address    = tms380tr_set_mac_address;
 
        return 0;
 }
index 7af76d7088490f61b57af4adcf832c7b16a018f7..60b30ee38dcbea0dd7d1c116eff56834ec32ec8d 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/interrupt.h>
 
 /* module prototypes */
+extern const struct net_device_ops tms380tr_netdev_ops;
 int tms380tr_open(struct net_device *dev);
 int tms380tr_close(struct net_device *dev);
 irqreturn_t tms380tr_interrupt(int irq, void *dev_id);
index 5f601773c26064e7962e6bc5026018f5f1c666af..b397e8785d6d3e5c3f7eb9ba8e3683214dddf9e1 100644 (file)
@@ -157,8 +157,8 @@ static int __devinit tms_pci_attach(struct pci_dev *pdev, const struct pci_devic
 
        tp->tmspriv = cardinfo;
 
-       dev->open = tms380tr_open;
-       dev->stop = tms380tr_close;
+       dev->netdev_ops = &tms380tr_netdev_ops;
+
        pci_set_drvdata(pdev, dev);
        SET_NETDEV_DEV(dev, &pdev->dev);