equal
deleted
inserted
replaced
318 priv->kfree_skb_any = ecdev_kfree_skb_any; |
318 priv->kfree_skb_any = ecdev_kfree_skb_any; |
319 priv->start_queue = ecdev_nop; |
319 priv->start_queue = ecdev_nop; |
320 priv->stop_queue = ecdev_nop; |
320 priv->stop_queue = ecdev_nop; |
321 priv->tx_fifo_full = ecdev_tx_fifo_full; |
321 priv->tx_fifo_full = ecdev_tx_fifo_full; |
322 priv->unregister = unregister_ecdev; |
322 priv->unregister = unregister_ecdev; |
|
323 |
|
324 priv->carrier_off(netdev); |
323 if (ecdev_open(priv->ecdev)) { |
325 if (ecdev_open(priv->ecdev)) { |
324 pr_info("unable to register network device.\n"); |
326 pr_info("unable to register network device.\n"); |
325 ecdev_withdraw(priv->ecdev); |
327 ecdev_withdraw(priv->ecdev); |
326 ccat_eth_priv_free_dma(priv); |
328 ccat_eth_priv_free_dma(priv); |
327 free_netdev(netdev); |
329 free_netdev(netdev); |
337 priv->kfree_skb_any = dev_kfree_skb_any; |
339 priv->kfree_skb_any = dev_kfree_skb_any; |
338 priv->start_queue = netif_start_queue; |
340 priv->start_queue = netif_start_queue; |
339 priv->stop_queue = netif_stop_queue; |
341 priv->stop_queue = netif_stop_queue; |
340 priv->tx_fifo_full = ccat_eth_tx_fifo_full; |
342 priv->tx_fifo_full = ccat_eth_tx_fifo_full; |
341 priv->unregister = unregister_netdev; |
343 priv->unregister = unregister_netdev; |
|
344 |
|
345 priv->carrier_off(netdev); |
342 if (register_netdev(netdev)) { |
346 if (register_netdev(netdev)) { |
343 pr_info("unable to register network device.\n"); |
347 pr_info("unable to register network device.\n"); |
344 ccat_eth_priv_free_dma(priv); |
348 ccat_eth_priv_free_dma(priv); |
345 free_netdev(netdev); |
349 free_netdev(netdev); |
346 return NULL; |
350 return NULL; |
359 |
363 |
360 static int ccat_eth_open(struct net_device *dev) |
364 static int ccat_eth_open(struct net_device *dev) |
361 { |
365 { |
362 struct ccat_eth_priv *const priv = netdev_priv(dev); |
366 struct ccat_eth_priv *const priv = netdev_priv(dev); |
363 |
367 |
364 priv->carrier_off(dev); |
|
365 hrtimer_init(&priv->poll_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); |
368 hrtimer_init(&priv->poll_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); |
366 priv->poll_timer.function = poll_timer_callback; |
369 priv->poll_timer.function = poll_timer_callback; |
367 hrtimer_start(&priv->poll_timer, ktime_set(0, 100000), |
370 hrtimer_start(&priv->poll_timer, ktime_set(0, 100000), |
368 HRTIMER_MODE_REL); |
371 HRTIMER_MODE_REL); |
369 return 0; |
372 return 0; |