mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-16 17:23:55 +08:00
uwb: convert devices to net_device_ops
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: David Vrabel <david.vrabel@csr.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5ec38f3023
commit
c4a80d7e67
@ -221,7 +221,6 @@ struct i1480u {
|
|||||||
struct net_device *net_dev;
|
struct net_device *net_dev;
|
||||||
|
|
||||||
spinlock_t lock;
|
spinlock_t lock;
|
||||||
struct net_device_stats stats;
|
|
||||||
|
|
||||||
/* RX context handling */
|
/* RX context handling */
|
||||||
struct sk_buff *rx_skb;
|
struct sk_buff *rx_skb;
|
||||||
@ -271,7 +270,6 @@ extern int i1480u_stop(struct net_device *);
|
|||||||
extern int i1480u_hard_start_xmit(struct sk_buff *, struct net_device *);
|
extern int i1480u_hard_start_xmit(struct sk_buff *, struct net_device *);
|
||||||
extern void i1480u_tx_timeout(struct net_device *);
|
extern void i1480u_tx_timeout(struct net_device *);
|
||||||
extern int i1480u_set_config(struct net_device *, struct ifmap *);
|
extern int i1480u_set_config(struct net_device *, struct ifmap *);
|
||||||
extern struct net_device_stats *i1480u_get_stats(struct net_device *);
|
|
||||||
extern int i1480u_change_mtu(struct net_device *, int);
|
extern int i1480u_change_mtu(struct net_device *, int);
|
||||||
extern void i1480u_uwb_notifs_cb(void *, struct uwb_dev *, enum uwb_notifs);
|
extern void i1480u_uwb_notifs_cb(void *, struct uwb_dev *, enum uwb_notifs);
|
||||||
|
|
||||||
|
@ -181,6 +181,15 @@ error:
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static const struct net_device_ops i1480u_netdev_ops = {
|
||||||
|
.ndo_open = i1480u_open,
|
||||||
|
.ndo_stop = i1480u_stop,
|
||||||
|
.ndo_start_xmit = i1480u_hard_start_xmit,
|
||||||
|
.ndo_tx_timeout = i1480u_tx_timeout,
|
||||||
|
.ndo_set_config = i1480u_set_config,
|
||||||
|
.ndo_change_mtu = i1480u_change_mtu,
|
||||||
|
};
|
||||||
|
|
||||||
static
|
static
|
||||||
int i1480u_add(struct i1480u *i1480u, struct usb_interface *iface)
|
int i1480u_add(struct i1480u *i1480u, struct usb_interface *iface)
|
||||||
{
|
{
|
||||||
@ -235,13 +244,7 @@ int i1480u_add(struct i1480u *i1480u, struct usb_interface *iface)
|
|||||||
net_dev->features |= NETIF_F_HIGHDMA;
|
net_dev->features |= NETIF_F_HIGHDMA;
|
||||||
net_dev->watchdog_timeo = 5*HZ; /* FIXME: a better default? */
|
net_dev->watchdog_timeo = 5*HZ; /* FIXME: a better default? */
|
||||||
|
|
||||||
net_dev->open = i1480u_open;
|
net_dev->netdev_ops = &i1480u_netdev_ops;
|
||||||
net_dev->stop = i1480u_stop;
|
|
||||||
net_dev->hard_start_xmit = i1480u_hard_start_xmit;
|
|
||||||
net_dev->tx_timeout = i1480u_tx_timeout;
|
|
||||||
net_dev->get_stats = i1480u_get_stats;
|
|
||||||
net_dev->set_config = i1480u_set_config;
|
|
||||||
net_dev->change_mtu = i1480u_change_mtu;
|
|
||||||
|
|
||||||
#ifdef i1480u_FLOW_CONTROL
|
#ifdef i1480u_FLOW_CONTROL
|
||||||
/* Notification endpoint setup (submitted when we open the device) */
|
/* Notification endpoint setup (submitted when we open the device) */
|
||||||
|
@ -262,15 +262,6 @@ int i1480u_stop(struct net_device *net_dev)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Report statistics */
|
|
||||||
struct net_device_stats *i1480u_get_stats(struct net_device *net_dev)
|
|
||||||
{
|
|
||||||
struct i1480u *i1480u = netdev_priv(net_dev);
|
|
||||||
return &i1480u->stats;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Change the interface config--we probably don't have to do anything.
|
* Change the interface config--we probably don't have to do anything.
|
||||||
|
@ -167,7 +167,7 @@ do { \
|
|||||||
do { \
|
do { \
|
||||||
if (printk_ratelimit()) \
|
if (printk_ratelimit()) \
|
||||||
dev_err(&i1480u->usb_iface->dev, msg); \
|
dev_err(&i1480u->usb_iface->dev, msg); \
|
||||||
i1480u->stats.rx_dropped++; \
|
i1480u->net_dev->stats.rx_dropped++; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
@ -193,10 +193,8 @@ void i1480u_skb_deliver(struct i1480u *i1480u)
|
|||||||
if (!should_parse)
|
if (!should_parse)
|
||||||
goto out;
|
goto out;
|
||||||
i1480u->rx_skb->protocol = eth_type_trans(i1480u->rx_skb, net_dev);
|
i1480u->rx_skb->protocol = eth_type_trans(i1480u->rx_skb, net_dev);
|
||||||
i1480u->stats.rx_packets++;
|
net_dev->stats.rx_packets++;
|
||||||
i1480u->stats.rx_bytes += i1480u->rx_untd_pkt_size;
|
net_dev->stats.rx_bytes += i1480u->rx_untd_pkt_size;
|
||||||
net_dev->last_rx = jiffies;
|
|
||||||
/* FIXME: flow control: check netif_rx() retval */
|
|
||||||
|
|
||||||
netif_rx(i1480u->rx_skb); /* deliver */
|
netif_rx(i1480u->rx_skb); /* deliver */
|
||||||
out:
|
out:
|
||||||
|
@ -117,8 +117,8 @@ void i1480u_tx_cb(struct urb *urb)
|
|||||||
switch (urb->status) {
|
switch (urb->status) {
|
||||||
case 0:
|
case 0:
|
||||||
spin_lock_irqsave(&i1480u->lock, flags);
|
spin_lock_irqsave(&i1480u->lock, flags);
|
||||||
i1480u->stats.tx_packets++;
|
net_dev->stats.tx_packets++;
|
||||||
i1480u->stats.tx_bytes += urb->actual_length;
|
net_dev->stats.tx_bytes += urb->actual_length;
|
||||||
spin_unlock_irqrestore(&i1480u->lock, flags);
|
spin_unlock_irqrestore(&i1480u->lock, flags);
|
||||||
break;
|
break;
|
||||||
case -ECONNRESET: /* Not an error, but a controlled situation; */
|
case -ECONNRESET: /* Not an error, but a controlled situation; */
|
||||||
@ -530,7 +530,7 @@ int i1480u_hard_start_xmit(struct sk_buff *skb, struct net_device *net_dev)
|
|||||||
return NETDEV_TX_OK;
|
return NETDEV_TX_OK;
|
||||||
error:
|
error:
|
||||||
dev_kfree_skb_any(skb);
|
dev_kfree_skb_any(skb);
|
||||||
i1480u->stats.tx_dropped++;
|
net_dev->stats.tx_dropped++;
|
||||||
out:
|
out:
|
||||||
return NETDEV_TX_OK;
|
return NETDEV_TX_OK;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user