diff options
| author | Krzysztof Hałasa <khc@pm.waw.pl> | 2009-01-08 16:52:11 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2009-01-21 17:03:37 -0500 |
| commit | 991990a12de42281f81b4e3a6471586d2d0caf6a (patch) | |
| tree | 7b7ad34cf8218dab2ddd882a87b7c7a687b7d2ee /drivers/net/wan/lmc | |
| parent | dff3fde7be8f08c78914fca3d25e1cffe7625faa (diff) | |
WAN: Convert generic HDLC drivers to netdev_ops.
Also remove unneeded last_rx update from Synclink drivers.
Synclink part mostly by Stephen Hemminger.
Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wan/lmc')
| -rw-r--r-- | drivers/net/wan/lmc/lmc_main.c | 19 | ||||
| -rw-r--r-- | drivers/net/wan/lmc/lmc_proto.c | 17 |
2 files changed, 12 insertions, 24 deletions
diff --git a/drivers/net/wan/lmc/lmc_main.c b/drivers/net/wan/lmc/lmc_main.c index feac3b99f8fe..45b1822c962d 100644 --- a/drivers/net/wan/lmc/lmc_main.c +++ b/drivers/net/wan/lmc/lmc_main.c | |||
| @@ -806,6 +806,16 @@ static int lmc_attach(struct net_device *dev, unsigned short encoding, | |||
| 806 | return -EINVAL; | 806 | return -EINVAL; |
| 807 | } | 807 | } |
| 808 | 808 | ||
| 809 | static const struct net_device_ops lmc_ops = { | ||
| 810 | .ndo_open = lmc_open, | ||
| 811 | .ndo_stop = lmc_close, | ||
| 812 | .ndo_change_mtu = hdlc_change_mtu, | ||
| 813 | .ndo_start_xmit = hdlc_start_xmit, | ||
| 814 | .ndo_do_ioctl = lmc_ioctl, | ||
| 815 | .ndo_tx_timeout = lmc_driver_timeout, | ||
| 816 | .ndo_get_stats = lmc_get_stats, | ||
| 817 | }; | ||
| 818 | |||
| 809 | static int __devinit lmc_init_one(struct pci_dev *pdev, | 819 | static int __devinit lmc_init_one(struct pci_dev *pdev, |
| 810 | const struct pci_device_id *ent) | 820 | const struct pci_device_id *ent) |
| 811 | { | 821 | { |
| @@ -849,11 +859,7 @@ static int __devinit lmc_init_one(struct pci_dev *pdev, | |||
| 849 | dev->type = ARPHRD_HDLC; | 859 | dev->type = ARPHRD_HDLC; |
| 850 | dev_to_hdlc(dev)->xmit = lmc_start_xmit; | 860 | dev_to_hdlc(dev)->xmit = lmc_start_xmit; |
| 851 | dev_to_hdlc(dev)->attach = lmc_attach; | 861 | dev_to_hdlc(dev)->attach = lmc_attach; |
| 852 | dev->open = lmc_open; | 862 | dev->netdev_ops = &lmc_ops; |
| 853 | dev->stop = lmc_close; | ||
| 854 | dev->get_stats = lmc_get_stats; | ||
| 855 | dev->do_ioctl = lmc_ioctl; | ||
| 856 | dev->tx_timeout = lmc_driver_timeout; | ||
| 857 | dev->watchdog_timeo = HZ; /* 1 second */ | 863 | dev->watchdog_timeo = HZ; /* 1 second */ |
| 858 | dev->tx_queue_len = 100; | 864 | dev->tx_queue_len = 100; |
| 859 | sc->lmc_device = dev; | 865 | sc->lmc_device = dev; |
| @@ -1059,9 +1065,6 @@ static int lmc_open(struct net_device *dev) | |||
| 1059 | if ((err = lmc_proto_open(sc)) != 0) | 1065 | if ((err = lmc_proto_open(sc)) != 0) |
| 1060 | return err; | 1066 | return err; |
| 1061 | 1067 | ||
| 1062 | dev->do_ioctl = lmc_ioctl; | ||
| 1063 | |||
| 1064 | |||
| 1065 | netif_start_queue(dev); | 1068 | netif_start_queue(dev); |
| 1066 | sc->extra_stats.tx_tbusy0++; | 1069 | sc->extra_stats.tx_tbusy0++; |
| 1067 | 1070 | ||
diff --git a/drivers/net/wan/lmc/lmc_proto.c b/drivers/net/wan/lmc/lmc_proto.c index 94b4c208b013..044a48175c42 100644 --- a/drivers/net/wan/lmc/lmc_proto.c +++ b/drivers/net/wan/lmc/lmc_proto.c | |||
| @@ -51,30 +51,15 @@ | |||
| 51 | void lmc_proto_attach(lmc_softc_t *sc) /*FOLD00*/ | 51 | void lmc_proto_attach(lmc_softc_t *sc) /*FOLD00*/ |
| 52 | { | 52 | { |
| 53 | lmc_trace(sc->lmc_device, "lmc_proto_attach in"); | 53 | lmc_trace(sc->lmc_device, "lmc_proto_attach in"); |
| 54 | switch(sc->if_type){ | 54 | if (sc->if_type == LMC_NET) { |
| 55 | case LMC_PPP: | ||
| 56 | { | ||
| 57 | struct net_device *dev = sc->lmc_device; | ||
| 58 | dev->do_ioctl = lmc_ioctl; | ||
| 59 | } | ||
| 60 | break; | ||
| 61 | case LMC_NET: | ||
| 62 | { | ||
| 63 | struct net_device *dev = sc->lmc_device; | 55 | struct net_device *dev = sc->lmc_device; |
| 64 | /* | 56 | /* |
| 65 | * They set a few basics because they don't use HDLC | 57 | * They set a few basics because they don't use HDLC |
| 66 | */ | 58 | */ |
| 67 | dev->flags |= IFF_POINTOPOINT; | 59 | dev->flags |= IFF_POINTOPOINT; |
| 68 | |||
| 69 | dev->hard_header_len = 0; | 60 | dev->hard_header_len = 0; |
| 70 | dev->addr_len = 0; | 61 | dev->addr_len = 0; |
| 71 | } | 62 | } |
| 72 | case LMC_RAW: /* Setup the task queue, maybe we should notify someone? */ | ||
| 73 | { | ||
| 74 | } | ||
| 75 | default: | ||
| 76 | break; | ||
| 77 | } | ||
| 78 | lmc_trace(sc->lmc_device, "lmc_proto_attach out"); | 63 | lmc_trace(sc->lmc_device, "lmc_proto_attach out"); |
| 79 | } | 64 | } |
| 80 | 65 | ||
