generic: ar8216: don't use platform_data in ar8327_init_port
authorGabor Juhos <juhosg@openwrt.org>
Fri, 15 Mar 2013 15:50:02 +0000 (15:50 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Fri, 15 Mar 2013 15:50:02 +0000 (15:50 +0000)
Fetch the PORT_STATUS values in ar8327_hw_init and
store those in a private data stucture for later use.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
SVN-Revision: 36045

target/linux/generic/files/drivers/net/phy/ar8216.c

index 47067c9e67919ea12aacaa0d086e41a85ee877af..74fecd6f854cde6ba119ff16e3733d0e38c67029 100644 (file)
@@ -77,6 +77,11 @@ struct ar8xxx_chip {
        unsigned num_mibs;
 };
 
+struct ar8327_data {
+       u32 port0_status;
+       u32 port6_status;
+};
+
 struct ar8xxx_priv {
        struct switch_dev dev;
        struct mii_bus *mii_bus;
@@ -89,6 +94,9 @@ struct ar8xxx_priv {
        u8 chip_ver;
        u8 chip_rev;
        const struct ar8xxx_chip *chip;
+       union {
+               struct ar8327_data ar8327;
+       } chip_data;
        bool initialized;
        bool port4_phy;
        char buf[2048];
@@ -1035,6 +1043,7 @@ ar8327_hw_init(struct ar8xxx_priv *priv)
 {
        struct ar8327_platform_data *pdata;
        struct ar8327_led_cfg *led_cfg;
+       struct ar8327_data *data;
        struct mii_bus *bus;
        u32 pos, new_pos;
        u32 t;
@@ -1044,6 +1053,11 @@ ar8327_hw_init(struct ar8xxx_priv *priv)
        if (!pdata)
                return -EINVAL;
 
+       data = &priv->chip_data.ar8327;
+
+       data->port0_status = ar8327_get_port_init_status(&pdata->port0_cfg);
+       data->port6_status = ar8327_get_port_init_status(&pdata->port6_cfg);
+
        t = ar8327_get_pad_cfg(pdata->pad0_cfg);
        priv->write(priv, AR8327_REG_PAD0_MODE, t);
        t = ar8327_get_pad_cfg(pdata->pad5_cfg);
@@ -1117,15 +1131,12 @@ ar8327_init_globals(struct ar8xxx_priv *priv)
 static void
 ar8327_init_port(struct ar8xxx_priv *priv, int port)
 {
-       struct ar8327_platform_data *pdata;
        u32 t;
 
-       pdata = priv->phy->dev.platform_data;
-
        if (port == AR8216_PORT_CPU)
-               t = ar8327_get_port_init_status(&pdata->port0_cfg);
+               t = priv->chip_data.ar8327.port0_status;
        else if (port == 6)
-               t = ar8327_get_port_init_status(&pdata->port6_cfg);
+               t = priv->chip_data.ar8327.port6_status;
        else
                t = AR8216_PORT_STATUS_LINK_AUTO;