bgmac.c (e24bce8fb4c26bd0d8eca74cbbee1ad049246be3) | bgmac.c (f3537b3494c06a98a8636c375b6d7a5060c5ac2d) |
---|---|
1/* 2 * Driver for (BCM4706)? GBit MAC core on BCMA bus. 3 * 4 * Copyright (C) 2012 Rafał Miłecki <zajec5@gmail.com> 5 * 6 * Licensed under the GNU/GPL. See COPYING for details. 7 */ 8 --- 1466 unchanged lines hidden (view full) --- 1475 1476int bgmac_enet_probe(struct bgmac *bgmac) 1477{ 1478 struct net_device *net_dev = bgmac->net_dev; 1479 int err; 1480 1481 net_dev->irq = bgmac->irq; 1482 SET_NETDEV_DEV(net_dev, bgmac->dev); | 1/* 2 * Driver for (BCM4706)? GBit MAC core on BCMA bus. 3 * 4 * Copyright (C) 2012 Rafał Miłecki <zajec5@gmail.com> 5 * 6 * Licensed under the GNU/GPL. See COPYING for details. 7 */ 8 --- 1466 unchanged lines hidden (view full) --- 1475 1476int bgmac_enet_probe(struct bgmac *bgmac) 1477{ 1478 struct net_device *net_dev = bgmac->net_dev; 1479 int err; 1480 1481 net_dev->irq = bgmac->irq; 1482 SET_NETDEV_DEV(net_dev, bgmac->dev); |
1483 dev_set_drvdata(bgmac->dev, bgmac); |
|
1483 1484 if (!is_valid_ether_addr(net_dev->dev_addr)) { 1485 dev_err(bgmac->dev, "Invalid MAC addr: %pM\n", 1486 net_dev->dev_addr); 1487 eth_hw_addr_random(net_dev); 1488 dev_warn(bgmac->dev, "Using random MAC: %pM\n", 1489 net_dev->dev_addr); 1490 } --- 56 unchanged lines hidden (view full) --- 1547 unregister_netdev(bgmac->net_dev); 1548 phy_disconnect(bgmac->net_dev->phydev); 1549 netif_napi_del(&bgmac->napi); 1550 bgmac_dma_free(bgmac); 1551 free_netdev(bgmac->net_dev); 1552} 1553EXPORT_SYMBOL_GPL(bgmac_enet_remove); 1554 | 1484 1485 if (!is_valid_ether_addr(net_dev->dev_addr)) { 1486 dev_err(bgmac->dev, "Invalid MAC addr: %pM\n", 1487 net_dev->dev_addr); 1488 eth_hw_addr_random(net_dev); 1489 dev_warn(bgmac->dev, "Using random MAC: %pM\n", 1490 net_dev->dev_addr); 1491 } --- 56 unchanged lines hidden (view full) --- 1548 unregister_netdev(bgmac->net_dev); 1549 phy_disconnect(bgmac->net_dev->phydev); 1550 netif_napi_del(&bgmac->napi); 1551 bgmac_dma_free(bgmac); 1552 free_netdev(bgmac->net_dev); 1553} 1554EXPORT_SYMBOL_GPL(bgmac_enet_remove); 1555 |
1556int bgmac_enet_suspend(struct bgmac *bgmac) 1557{ 1558 if (!netif_running(bgmac->net_dev)) 1559 return 0; 1560 1561 phy_stop(bgmac->net_dev->phydev); 1562 1563 netif_stop_queue(bgmac->net_dev); 1564 1565 napi_disable(&bgmac->napi); 1566 1567 netif_tx_lock(bgmac->net_dev); 1568 netif_device_detach(bgmac->net_dev); 1569 netif_tx_unlock(bgmac->net_dev); 1570 1571 bgmac_chip_intrs_off(bgmac); 1572 bgmac_chip_reset(bgmac); 1573 bgmac_dma_cleanup(bgmac); 1574 1575 return 0; 1576} 1577EXPORT_SYMBOL_GPL(bgmac_enet_suspend); 1578 1579int bgmac_enet_resume(struct bgmac *bgmac) 1580{ 1581 int rc; 1582 1583 if (!netif_running(bgmac->net_dev)) 1584 return 0; 1585 1586 rc = bgmac_dma_init(bgmac); 1587 if (rc) 1588 return rc; 1589 1590 bgmac_chip_init(bgmac); 1591 1592 napi_enable(&bgmac->napi); 1593 1594 netif_tx_lock(bgmac->net_dev); 1595 netif_device_attach(bgmac->net_dev); 1596 netif_tx_unlock(bgmac->net_dev); 1597 1598 netif_start_queue(bgmac->net_dev); 1599 1600 phy_start(bgmac->net_dev->phydev); 1601 1602 return 0; 1603} 1604EXPORT_SYMBOL_GPL(bgmac_enet_resume); 1605 |
|
1555MODULE_AUTHOR("Rafał Miłecki"); 1556MODULE_LICENSE("GPL"); | 1606MODULE_AUTHOR("Rafał Miłecki"); 1607MODULE_LICENSE("GPL"); |