Lines Matching full:netdev
42 * @work: Work structure used to wake the modem netdev TX queue
52 static int ipa_open(struct net_device *netdev)
54 struct ipa_priv *priv = netdev_priv(netdev);
72 netif_start_queue(netdev);
87 static int ipa_stop(struct net_device *netdev)
89 struct ipa_priv *priv = netdev_priv(netdev);
99 netif_stop_queue(netdev);
111 * @netdev: Network device
121 ipa_start_xmit(struct sk_buff *skb, struct net_device *netdev)
123 struct net_device_stats *stats = &netdev->stats;
124 struct ipa_priv *priv = netdev_priv(netdev);
155 netif_stop_queue(netdev);
162 netif_wake_queue(netdev);
172 netif_wake_queue(netdev);
196 void ipa_modem_skb_rx(struct net_device *netdev, struct sk_buff *skb)
198 struct net_device_stats *stats = &netdev->stats;
201 skb->dev = netdev;
218 /** ipa_modem_netdev_setup() - netdev setup function for the modem */
219 static void ipa_modem_netdev_setup(struct net_device *netdev)
221 netdev->netdev_ops = &ipa_modem_ops;
223 netdev->header_ops = NULL;
224 netdev->type = ARPHRD_RAWIP;
225 netdev->hard_header_len = 0;
226 netdev->min_header_len = ETH_HLEN;
227 netdev->min_mtu = ETH_MIN_MTU;
228 netdev->max_mtu = IPA_MTU;
229 netdev->mtu = netdev->max_mtu;
230 netdev->addr_len = 0;
231 netdev->tx_queue_len = DEFAULT_TX_QUEUE_LEN;
232 netdev->flags &= ~(IFF_BROADCAST | IFF_MULTICAST);
233 netdev->priv_flags |= IFF_TX_SKB_SHARING;
234 eth_broadcast_addr(netdev->broadcast);
237 netdev->needed_headroom = sizeof(struct rmnet_map_header);
238 netdev->needed_tailroom = IPA_NETDEV_TAILROOM;
239 netdev->watchdog_timeo = IPA_NETDEV_TIMEOUT * HZ;
240 netdev->hw_features = NETIF_F_SG;
244 * @netdev: Network device
248 void ipa_modem_suspend(struct net_device *netdev)
252 if (!(netdev->flags & IFF_UP))
255 priv = netdev_priv(netdev);
261 * ipa_modem_wake_queue_work() - enable modem netdev queue
275 netif_wake_queue(priv->tx->netdev);
283 void ipa_modem_resume(struct net_device *netdev)
287 if (!(netdev->flags & IFF_UP))
290 priv = netdev_priv(netdev);
301 struct net_device *netdev;
313 netdev = alloc_netdev(sizeof(struct ipa_priv), IPA_NETDEV_NAME,
315 if (!netdev) {
320 SET_NETDEV_DEV(netdev, ipa->dev);
321 priv = netdev_priv(netdev);
327 priv->tx->netdev = netdev;
328 priv->rx->netdev = netdev;
330 ipa->modem_netdev = netdev;
332 ret = register_netdev(netdev);
335 priv->rx->netdev = NULL;
336 priv->tx->netdev = NULL;
338 free_netdev(netdev);
353 struct net_device *netdev = ipa->modem_netdev;
368 /* Clean up the netdev and endpoints if it was started */
369 if (netdev) {
370 struct ipa_priv *priv = netdev_priv(netdev);
374 if (netdev->flags & IFF_UP)
375 (void)ipa_stop(netdev);
376 unregister_netdev(netdev);
379 priv->rx->netdev = NULL;
380 priv->tx->netdev = NULL;
382 free_netdev(netdev);