net: macb: Clean 64b dma addresses if they are not detected
[linux-2.6-microblaze.git] / drivers / net / ethernet / cadence / macb_main.c
index 16e4ef7..0acaef3 100644 (file)
@@ -544,14 +544,13 @@ static int macb_mii_probe(struct net_device *dev)
 
        /* mask with MAC supported features */
        if (macb_is_gem(bp) && bp->caps & MACB_CAPS_GIGABIT_MODE_AVAILABLE)
-               phydev->supported &= PHY_GBIT_FEATURES;
+               phy_set_max_speed(phydev, SPEED_1000);
        else
-               phydev->supported &= PHY_BASIC_FEATURES;
+               phy_set_max_speed(phydev, SPEED_100);
 
        if (bp->caps & MACB_CAPS_NO_GIGABIT_HALF)
-               phydev->supported &= ~SUPPORTED_1000baseT_Half;
-
-       phydev->advertising = phydev->supported;
+               phy_remove_link_mode(phydev,
+                                    ETHTOOL_LINK_MODE_1000baseT_Half_BIT);
 
        bp->link = 0;
        bp->speed = 0;
@@ -2160,6 +2159,7 @@ static void macb_configure_dma(struct macb *bp)
                else
                        dmacfg &= ~GEM_BIT(TXCOEN);
 
+               dmacfg &= ~GEM_BIT(ADDR64);
 #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
                if (bp->hw_dma_cap & HW_DMA_CAP_64B)
                        dmacfg |= GEM_BIT(ADDR64);
@@ -3837,6 +3837,13 @@ static const struct macb_config at91sam9260_config = {
        .init = macb_init,
 };
 
+static const struct macb_config sama5d3macb_config = {
+       .caps = MACB_CAPS_SG_DISABLED
+             | MACB_CAPS_USRIO_HAS_CLKEN | MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII,
+       .clk_init = macb_clk_init,
+       .init = macb_init,
+};
+
 static const struct macb_config pc302gem_config = {
        .caps = MACB_CAPS_SG_DISABLED | MACB_CAPS_GIGABIT_MODE_AVAILABLE,
        .dma_burst_length = 16,
@@ -3904,6 +3911,7 @@ static const struct of_device_id macb_dt_ids[] = {
        { .compatible = "cdns,gem", .data = &pc302gem_config },
        { .compatible = "atmel,sama5d2-gem", .data = &sama5d2_config },
        { .compatible = "atmel,sama5d3-gem", .data = &sama5d3_config },
+       { .compatible = "atmel,sama5d3-macb", .data = &sama5d3macb_config },
        { .compatible = "atmel,sama5d4-gem", .data = &sama5d4_config },
        { .compatible = "cdns,at91rm9200-emac", .data = &emac_config },
        { .compatible = "cdns,emac", .data = &emac_config },