OSDN Git Service

stmmac: dwmac-sti: move st, gmac_en parsing to sti_dwmac_parse_data
authorJoachim Eastwood <manabian@gmail.com>
Fri, 4 Nov 2016 17:54:08 +0000 (18:54 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 7 Nov 2016 03:00:15 +0000 (22:00 -0500)
The sti_dwmac_init() function is called both from probe and resume.
Since DT properties doesn't change between suspend/resume cycles move
parsing of this parameter into sti_dwmac_parse_data() where it belongs.

Signed-off-by: Joachim Eastwood <manabian@gmail.com>
Acked-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Tested-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c

index bd6db22..269c7a5 100644 (file)
@@ -128,6 +128,7 @@ struct sti_dwmac {
        int clk_sel_reg;        /* GMAC ext clk selection register */
        struct device *dev;
        struct regmap *regmap;
+       bool gmac_en;
        u32 speed;
        void (*fix_retime_src)(void *priv, unsigned int speed);
 };
@@ -233,14 +234,12 @@ static int sti_dwmac_init(struct platform_device *pdev, void *priv)
        struct sti_dwmac *dwmac = priv;
        struct regmap *regmap = dwmac->regmap;
        int iface = dwmac->interface;
-       struct device *dev = dwmac->dev;
-       struct device_node *np = dev->of_node;
        u32 reg = dwmac->ctrl_reg;
        u32 val;
 
        clk_prepare_enable(dwmac->clk);
 
-       if (of_property_read_bool(np, "st,gmac_en"))
+       if (dwmac->gmac_en)
                regmap_update_bits(regmap, reg, EN_MASK, EN);
 
        regmap_update_bits(regmap, reg, MII_PHY_SEL_MASK, phy_intf_sels[iface]);
@@ -281,6 +280,7 @@ static int sti_dwmac_parse_data(struct sti_dwmac *dwmac,
        dwmac->dev = dev;
        dwmac->interface = of_get_phy_mode(np);
        dwmac->regmap = regmap;
+       dwmac->gmac_en = of_property_read_bool(np, "st,gmac_en");
        dwmac->ext_phyclk = of_property_read_bool(np, "st,ext-phyclk");
        dwmac->tx_retime_src = TX_RETIME_SRC_NA;
        dwmac->speed = SPEED_100;