ar8216: rework/fix AR8337 MAC swap handling
[openwrt/openwrt.git] / target / linux / generic / files / drivers / net / phy / ar8327.c
index 1802b9ead7e8e16bfb37e0d24491f9ea5ceed7e4..90ee4115c02e337d067ad0d4292a03cab122e999 100644 (file)
@@ -124,9 +124,6 @@ ar8327_get_pad_cfg(struct ar8327_pad_cfg *cfg)
                break;
        }
 
-       if (cfg->mac06_exchange_en)
-               t |= AR8337_PAD_MAC06_EXCHANGE_EN;
-
        return t;
 }
 
@@ -511,7 +508,10 @@ ar8327_hw_config_pdata(struct ar8xxx_priv *priv,
        data->port6_status = ar8327_get_port_init_status(&pdata->port6_cfg);
 
        t = ar8327_get_pad_cfg(pdata->pad0_cfg);
+       if (chip_is_ar8337(priv) && !pdata->pad0_cfg->mac06_exchange_dis)
+           t |= AR8337_PAD_MAC06_EXCHANGE_EN;
        ar8xxx_write(priv, AR8327_REG_PAD0_MODE, t);
+
        t = ar8327_get_pad_cfg(pdata->pad5_cfg);
        ar8xxx_write(priv, AR8327_REG_PAD5_MODE, t);
        t = ar8327_get_pad_cfg(pdata->pad6_cfg);