net: phy: at803x: move specific at8031 config_intr to dedicated function
Move specific at8031 config_intr bits to dedicated function to make at803x_config_initr more generic. This is needed in preparation for PHY driver split as qca8081 share the same function to setup interrupts. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
27b89c9dc1
commit
30dd62191d
@ -990,7 +990,6 @@ static int at803x_ack_interrupt(struct phy_device *phydev)
|
||||
|
||||
static int at803x_config_intr(struct phy_device *phydev)
|
||||
{
|
||||
struct at803x_priv *priv = phydev->priv;
|
||||
int err;
|
||||
int value;
|
||||
|
||||
@ -1007,10 +1006,6 @@ static int at803x_config_intr(struct phy_device *phydev)
|
||||
value |= AT803X_INTR_ENABLE_DUPLEX_CHANGED;
|
||||
value |= AT803X_INTR_ENABLE_LINK_FAIL;
|
||||
value |= AT803X_INTR_ENABLE_LINK_SUCCESS;
|
||||
if (priv->is_fiber) {
|
||||
value |= AT803X_INTR_ENABLE_LINK_FAIL_BX;
|
||||
value |= AT803X_INTR_ENABLE_LINK_SUCCESS_BX;
|
||||
}
|
||||
|
||||
err = phy_write(phydev, AT803X_INTR_ENABLE, value);
|
||||
} else {
|
||||
@ -1617,6 +1612,29 @@ static int at8031_set_wol(struct phy_device *phydev,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int at8031_config_intr(struct phy_device *phydev)
|
||||
{
|
||||
struct at803x_priv *priv = phydev->priv;
|
||||
int err, value = 0;
|
||||
|
||||
if (phydev->interrupts == PHY_INTERRUPT_ENABLED &&
|
||||
priv->is_fiber) {
|
||||
/* Clear any pending interrupts */
|
||||
err = at803x_ack_interrupt(phydev);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
value |= AT803X_INTR_ENABLE_LINK_FAIL_BX;
|
||||
value |= AT803X_INTR_ENABLE_LINK_SUCCESS_BX;
|
||||
|
||||
err = phy_set_bits(phydev, AT803X_INTR_ENABLE, value);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
return at803x_config_intr(phydev);
|
||||
}
|
||||
|
||||
static int qca83xx_config_init(struct phy_device *phydev)
|
||||
{
|
||||
u8 switch_revision;
|
||||
@ -2137,7 +2155,7 @@ static struct phy_driver at803x_driver[] = {
|
||||
.write_page = at803x_write_page,
|
||||
.get_features = at803x_get_features,
|
||||
.read_status = at803x_read_status,
|
||||
.config_intr = at803x_config_intr,
|
||||
.config_intr = at8031_config_intr,
|
||||
.handle_interrupt = at803x_handle_interrupt,
|
||||
.get_tunable = at803x_get_tunable,
|
||||
.set_tunable = at803x_set_tunable,
|
||||
|
Loading…
x
Reference in New Issue
Block a user