aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/renesas
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2013-03-20 12:46:26 -0400
committerDavid S. Miller <davem@davemloft.net>2013-03-20 12:46:26 -0400
commit61816596d1c9026d0ecb20c44f90452c41596ffe (patch)
tree3027ed6dc62f71e14b9d525405747fa0eb8f074d /drivers/net/ethernet/renesas
parent23a9072e3af0d9538e25837fb2b56bb94e4a8e67 (diff)
parentda2191e31409d1058dcbed44e8f53e39a40e86b3 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull in the 'net' tree to get Daniel Borkmann's flow dissector infrastructure change. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/renesas')
-rw-r--r--drivers/net/ethernet/renesas/sh_eth.c10
-rw-r--r--drivers/net/ethernet/renesas/sh_eth.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c
index 7a6471d87300..56884c4cd90b 100644
--- a/drivers/net/ethernet/renesas/sh_eth.c
+++ b/drivers/net/ethernet/renesas/sh_eth.c
@@ -2215,6 +2215,7 @@ static void sh_eth_tsu_init(struct sh_eth_private *mdp)
2215/* MDIO bus release function */ 2215/* MDIO bus release function */
2216static int sh_mdio_release(struct net_device *ndev) 2216static int sh_mdio_release(struct net_device *ndev)
2217{ 2217{
2218 struct sh_eth_private *mdp = netdev_priv(ndev);
2218 struct mii_bus *bus = dev_get_drvdata(&ndev->dev); 2219 struct mii_bus *bus = dev_get_drvdata(&ndev->dev);
2219 2220
2220 /* unregister mdio bus */ 2221 /* unregister mdio bus */
@@ -2229,6 +2230,9 @@ static int sh_mdio_release(struct net_device *ndev)
2229 /* free bitbang info */ 2230 /* free bitbang info */
2230 free_mdio_bitbang(bus); 2231 free_mdio_bitbang(bus);
2231 2232
2233 /* free bitbang memory */
2234 kfree(mdp->bitbang);
2235
2232 return 0; 2236 return 0;
2233} 2237}
2234 2238
@@ -2257,6 +2261,7 @@ static int sh_mdio_init(struct net_device *ndev, int id,
2257 bitbang->ctrl.ops = &bb_ops; 2261 bitbang->ctrl.ops = &bb_ops;
2258 2262
2259 /* MII controller setting */ 2263 /* MII controller setting */
2264 mdp->bitbang = bitbang;
2260 mdp->mii_bus = alloc_mdio_bitbang(&bitbang->ctrl); 2265 mdp->mii_bus = alloc_mdio_bitbang(&bitbang->ctrl);
2261 if (!mdp->mii_bus) { 2266 if (!mdp->mii_bus) {
2262 ret = -ENOMEM; 2267 ret = -ENOMEM;
@@ -2436,6 +2441,11 @@ static int sh_eth_drv_probe(struct platform_device *pdev)
2436 } 2441 }
2437 mdp->tsu_addr = ioremap(rtsu->start, 2442 mdp->tsu_addr = ioremap(rtsu->start,
2438 resource_size(rtsu)); 2443 resource_size(rtsu));
2444 if (mdp->tsu_addr == NULL) {
2445 ret = -ENOMEM;
2446 dev_err(&pdev->dev, "TSU ioremap failed.\n");
2447 goto out_release;
2448 }
2439 mdp->port = devno % 2; 2449 mdp->port = devno % 2;
2440 ndev->features = NETIF_F_HW_VLAN_FILTER; 2450 ndev->features = NETIF_F_HW_VLAN_FILTER;
2441 } 2451 }
diff --git a/drivers/net/ethernet/renesas/sh_eth.h b/drivers/net/ethernet/renesas/sh_eth.h
index bae84fd2e73a..e6655678458e 100644
--- a/drivers/net/ethernet/renesas/sh_eth.h
+++ b/drivers/net/ethernet/renesas/sh_eth.h
@@ -705,6 +705,7 @@ struct sh_eth_private {
705 const u16 *reg_offset; 705 const u16 *reg_offset;
706 void __iomem *addr; 706 void __iomem *addr;
707 void __iomem *tsu_addr; 707 void __iomem *tsu_addr;
708 struct bb_info *bitbang;
708 u32 num_rx_ring; 709 u32 num_rx_ring;
709 u32 num_tx_ring; 710 u32 num_tx_ring;
710 dma_addr_t rx_desc_dma; 711 dma_addr_t rx_desc_dma;