aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/dnet.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/dnet.c')
-rw-r--r--drivers/net/dnet.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/drivers/net/dnet.c b/drivers/net/dnet.c
index 234685213f1a..9d8a20b72fa9 100644
--- a/drivers/net/dnet.c
+++ b/drivers/net/dnet.c
@@ -27,7 +27,7 @@
27#undef DEBUG 27#undef DEBUG
28 28
29/* function for reading internal MAC register */ 29/* function for reading internal MAC register */
30u16 dnet_readw_mac(struct dnet *bp, u16 reg) 30static u16 dnet_readw_mac(struct dnet *bp, u16 reg)
31{ 31{
32 u16 data_read; 32 u16 data_read;
33 33
@@ -46,7 +46,7 @@ u16 dnet_readw_mac(struct dnet *bp, u16 reg)
46} 46}
47 47
48/* function for writing internal MAC register */ 48/* function for writing internal MAC register */
49void dnet_writew_mac(struct dnet *bp, u16 reg, u16 val) 49static void dnet_writew_mac(struct dnet *bp, u16 reg, u16 val)
50{ 50{
51 /* load data to write */ 51 /* load data to write */
52 dnet_writel(bp, val, MACREG_DATA); 52 dnet_writel(bp, val, MACREG_DATA);
@@ -63,11 +63,11 @@ static void __dnet_set_hwaddr(struct dnet *bp)
63{ 63{
64 u16 tmp; 64 u16 tmp;
65 65
66 tmp = cpu_to_be16(*((u16 *) bp->dev->dev_addr)); 66 tmp = be16_to_cpup((__be16 *)bp->dev->dev_addr);
67 dnet_writew_mac(bp, DNET_INTERNAL_MAC_ADDR_0_REG, tmp); 67 dnet_writew_mac(bp, DNET_INTERNAL_MAC_ADDR_0_REG, tmp);
68 tmp = cpu_to_be16(*((u16 *) (bp->dev->dev_addr + 2))); 68 tmp = be16_to_cpup((__be16 *)(bp->dev->dev_addr + 2));
69 dnet_writew_mac(bp, DNET_INTERNAL_MAC_ADDR_1_REG, tmp); 69 dnet_writew_mac(bp, DNET_INTERNAL_MAC_ADDR_1_REG, tmp);
70 tmp = cpu_to_be16(*((u16 *) (bp->dev->dev_addr + 4))); 70 tmp = be16_to_cpup((__be16 *)(bp->dev->dev_addr + 4));
71 dnet_writew_mac(bp, DNET_INTERNAL_MAC_ADDR_2_REG, tmp); 71 dnet_writew_mac(bp, DNET_INTERNAL_MAC_ADDR_2_REG, tmp);
72} 72}
73 73
@@ -89,11 +89,11 @@ static void __devinit dnet_get_hwaddr(struct dnet *bp)
89 * Mac_addr[15:0]). 89 * Mac_addr[15:0]).
90 */ 90 */
91 tmp = dnet_readw_mac(bp, DNET_INTERNAL_MAC_ADDR_0_REG); 91 tmp = dnet_readw_mac(bp, DNET_INTERNAL_MAC_ADDR_0_REG);
92 *((u16 *) addr) = be16_to_cpu(tmp); 92 *((__be16 *)addr) = cpu_to_be16(tmp);
93 tmp = dnet_readw_mac(bp, DNET_INTERNAL_MAC_ADDR_1_REG); 93 tmp = dnet_readw_mac(bp, DNET_INTERNAL_MAC_ADDR_1_REG);
94 *((u16 *) (addr + 2)) = be16_to_cpu(tmp); 94 *((__be16 *)(addr + 2)) = cpu_to_be16(tmp);
95 tmp = dnet_readw_mac(bp, DNET_INTERNAL_MAC_ADDR_2_REG); 95 tmp = dnet_readw_mac(bp, DNET_INTERNAL_MAC_ADDR_2_REG);
96 *((u16 *) (addr + 4)) = be16_to_cpu(tmp); 96 *((__be16 *)(addr + 4)) = cpu_to_be16(tmp);
97 97
98 if (is_valid_ether_addr(addr)) 98 if (is_valid_ether_addr(addr))
99 memcpy(bp->dev->dev_addr, addr, sizeof(addr)); 99 memcpy(bp->dev->dev_addr, addr, sizeof(addr));
@@ -361,7 +361,7 @@ err_out:
361} 361}
362 362
363/* For Neptune board: LINK1000 as Link LED and TX as activity LED */ 363/* For Neptune board: LINK1000 as Link LED and TX as activity LED */
364int dnet_phy_marvell_fixup(struct phy_device *phydev) 364static int dnet_phy_marvell_fixup(struct phy_device *phydev)
365{ 365{
366 return phy_write(phydev, 0x18, 0x4148); 366 return phy_write(phydev, 0x18, 0x4148);
367} 367}
@@ -594,8 +594,6 @@ static netdev_tx_t dnet_start_xmit(struct sk_buff *skb, struct net_device *dev)
594 594
595 spin_unlock_irqrestore(&bp->lock, flags); 595 spin_unlock_irqrestore(&bp->lock, flags);
596 596
597 dev->trans_start = jiffies;
598
599 return NETDEV_TX_OK; 597 return NETDEV_TX_OK;
600} 598}
601 599
@@ -799,7 +797,7 @@ static int dnet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
799 if (!phydev) 797 if (!phydev)
800 return -ENODEV; 798 return -ENODEV;
801 799
802 return phy_mii_ioctl(phydev, if_mii(rq), cmd); 800 return phy_mii_ioctl(phydev, rq, cmd);
803} 801}
804 802
805static void dnet_get_drvinfo(struct net_device *dev, 803static void dnet_get_drvinfo(struct net_device *dev,
@@ -856,7 +854,7 @@ static int __devinit dnet_probe(struct platform_device *pdev)
856 dev = alloc_etherdev(sizeof(*bp)); 854 dev = alloc_etherdev(sizeof(*bp));
857 if (!dev) { 855 if (!dev) {
858 dev_err(&pdev->dev, "etherdev alloc failed, aborting.\n"); 856 dev_err(&pdev->dev, "etherdev alloc failed, aborting.\n");
859 goto err_out; 857 goto err_out_release_mem;
860 } 858 }
861 859
862 /* TODO: Actually, we have some interesting features... */ 860 /* TODO: Actually, we have some interesting features... */
@@ -913,12 +911,13 @@ static int __devinit dnet_probe(struct platform_device *pdev)
913 if (err) 911 if (err)
914 dev_warn(&pdev->dev, "Cannot register PHY board fixup.\n"); 912 dev_warn(&pdev->dev, "Cannot register PHY board fixup.\n");
915 913
916 if (dnet_mii_init(bp) != 0) 914 err = dnet_mii_init(bp);
915 if (err)
917 goto err_out_unregister_netdev; 916 goto err_out_unregister_netdev;
918 917
919 dev_info(&pdev->dev, "Dave DNET at 0x%p (0x%08x) irq %d %pM\n", 918 dev_info(&pdev->dev, "Dave DNET at 0x%p (0x%08x) irq %d %pM\n",
920 bp->regs, mem_base, dev->irq, dev->dev_addr); 919 bp->regs, mem_base, dev->irq, dev->dev_addr);
921 dev_info(&pdev->dev, "has %smdio, %sirq, %sgigabit, %sdma \n", 920 dev_info(&pdev->dev, "has %smdio, %sirq, %sgigabit, %sdma\n",
922 (bp->capabilities & DNET_HAS_MDIO) ? "" : "no ", 921 (bp->capabilities & DNET_HAS_MDIO) ? "" : "no ",
923 (bp->capabilities & DNET_HAS_IRQ) ? "" : "no ", 922 (bp->capabilities & DNET_HAS_IRQ) ? "" : "no ",
924 (bp->capabilities & DNET_HAS_GIGABIT) ? "" : "no ", 923 (bp->capabilities & DNET_HAS_GIGABIT) ? "" : "no ",
@@ -938,6 +937,8 @@ err_out_iounmap:
938 iounmap(bp->regs); 937 iounmap(bp->regs);
939err_out_free_dev: 938err_out_free_dev:
940 free_netdev(dev); 939 free_netdev(dev);
940err_out_release_mem:
941 release_mem_region(mem_base, mem_size);
941err_out: 942err_out:
942 return err; 943 return err;
943} 944}