generic: ar8216: don't use platform_data in ar8327_init_port
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
This commit is contained in:
parent
9d3f70d503
commit
d88f66ae21
1 changed files with 16 additions and 5 deletions
|
@ -77,6 +77,11 @@ struct ar8xxx_chip {
|
||||||
unsigned num_mibs;
|
unsigned num_mibs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct ar8327_data {
|
||||||
|
u32 port0_status;
|
||||||
|
u32 port6_status;
|
||||||
|
};
|
||||||
|
|
||||||
struct ar8xxx_priv {
|
struct ar8xxx_priv {
|
||||||
struct switch_dev dev;
|
struct switch_dev dev;
|
||||||
struct mii_bus *mii_bus;
|
struct mii_bus *mii_bus;
|
||||||
|
@ -89,6 +94,9 @@ struct ar8xxx_priv {
|
||||||
u8 chip_ver;
|
u8 chip_ver;
|
||||||
u8 chip_rev;
|
u8 chip_rev;
|
||||||
const struct ar8xxx_chip *chip;
|
const struct ar8xxx_chip *chip;
|
||||||
|
union {
|
||||||
|
struct ar8327_data ar8327;
|
||||||
|
} chip_data;
|
||||||
bool initialized;
|
bool initialized;
|
||||||
bool port4_phy;
|
bool port4_phy;
|
||||||
char buf[2048];
|
char buf[2048];
|
||||||
|
@ -1035,6 +1043,7 @@ ar8327_hw_init(struct ar8xxx_priv *priv)
|
||||||
{
|
{
|
||||||
struct ar8327_platform_data *pdata;
|
struct ar8327_platform_data *pdata;
|
||||||
struct ar8327_led_cfg *led_cfg;
|
struct ar8327_led_cfg *led_cfg;
|
||||||
|
struct ar8327_data *data;
|
||||||
struct mii_bus *bus;
|
struct mii_bus *bus;
|
||||||
u32 pos, new_pos;
|
u32 pos, new_pos;
|
||||||
u32 t;
|
u32 t;
|
||||||
|
@ -1044,6 +1053,11 @@ ar8327_hw_init(struct ar8xxx_priv *priv)
|
||||||
if (!pdata)
|
if (!pdata)
|
||||||
return -EINVAL;
|
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);
|
t = ar8327_get_pad_cfg(pdata->pad0_cfg);
|
||||||
priv->write(priv, AR8327_REG_PAD0_MODE, t);
|
priv->write(priv, AR8327_REG_PAD0_MODE, t);
|
||||||
t = ar8327_get_pad_cfg(pdata->pad5_cfg);
|
t = ar8327_get_pad_cfg(pdata->pad5_cfg);
|
||||||
|
@ -1117,15 +1131,12 @@ ar8327_init_globals(struct ar8xxx_priv *priv)
|
||||||
static void
|
static void
|
||||||
ar8327_init_port(struct ar8xxx_priv *priv, int port)
|
ar8327_init_port(struct ar8xxx_priv *priv, int port)
|
||||||
{
|
{
|
||||||
struct ar8327_platform_data *pdata;
|
|
||||||
u32 t;
|
u32 t;
|
||||||
|
|
||||||
pdata = priv->phy->dev.platform_data;
|
|
||||||
|
|
||||||
if (port == AR8216_PORT_CPU)
|
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)
|
else if (port == 6)
|
||||||
t = ar8327_get_port_init_status(&pdata->port6_cfg);
|
t = priv->chip_data.ar8327.port6_status;
|
||||||
else
|
else
|
||||||
t = AR8216_PORT_STATUS_LINK_AUTO;
|
t = AR8216_PORT_STATUS_LINK_AUTO;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue