net: usb: asix: unify ax88772_resume code
The only difference is the reset code, so remove not needed duplicates. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
625788b584
commit
d57da85dc4
|
@ -177,6 +177,7 @@ struct asix_rx_fixup_info {
|
||||||
struct asix_common_private {
|
struct asix_common_private {
|
||||||
void (*resume)(struct usbnet *dev);
|
void (*resume)(struct usbnet *dev);
|
||||||
void (*suspend)(struct usbnet *dev);
|
void (*suspend)(struct usbnet *dev);
|
||||||
|
int (*reset)(struct usbnet *dev, int in_pm);
|
||||||
u16 presvd_phy_advertise;
|
u16 presvd_phy_advertise;
|
||||||
u16 presvd_phy_bmcr;
|
u16 presvd_phy_bmcr;
|
||||||
struct asix_rx_fixup_info rx_fixup_info;
|
struct asix_rx_fixup_info rx_fixup_info;
|
||||||
|
|
|
@ -625,27 +625,13 @@ static void ax88772_resume(struct usbnet *dev)
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
if (!ax88772_hw_reset(dev, 1))
|
if (!priv->reset(dev, 1))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (netif_running(dev->net))
|
if (netif_running(dev->net))
|
||||||
phy_start(priv->phydev);
|
phy_start(priv->phydev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ax88772a_resume(struct usbnet *dev)
|
|
||||||
{
|
|
||||||
struct asix_common_private *priv = dev->driver_priv;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < 3; i++) {
|
|
||||||
if (!ax88772a_hw_reset(dev, 1))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (netif_running(dev->net))
|
|
||||||
phy_start(priv->phydev);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int asix_resume(struct usb_interface *intf)
|
static int asix_resume(struct usb_interface *intf)
|
||||||
{
|
{
|
||||||
struct usbnet *dev = usb_get_intfdata(intf);
|
struct usbnet *dev = usb_get_intfdata(intf);
|
||||||
|
@ -763,9 +749,14 @@ static int ax88772_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||||
|
|
||||||
chipcode &= AX_CHIPCODE_MASK;
|
chipcode &= AX_CHIPCODE_MASK;
|
||||||
|
|
||||||
ret = (chipcode == AX_AX88772_CHIPCODE) ? ax88772_hw_reset(dev, 0) :
|
priv->resume = ax88772_resume;
|
||||||
ax88772a_hw_reset(dev, 0);
|
priv->suspend = ax88772_suspend;
|
||||||
|
if (chipcode == AX_AX88772_CHIPCODE)
|
||||||
|
priv->reset = ax88772_hw_reset;
|
||||||
|
else
|
||||||
|
priv->reset = ax88772a_hw_reset;
|
||||||
|
|
||||||
|
ret = priv->reset(dev, 0);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
netdev_dbg(dev->net, "Failed to reset AX88772: %d\n", ret);
|
netdev_dbg(dev->net, "Failed to reset AX88772: %d\n", ret);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -780,13 +771,6 @@ static int ax88772_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||||
|
|
||||||
priv->presvd_phy_bmcr = 0;
|
priv->presvd_phy_bmcr = 0;
|
||||||
priv->presvd_phy_advertise = 0;
|
priv->presvd_phy_advertise = 0;
|
||||||
if (chipcode == AX_AX88772_CHIPCODE) {
|
|
||||||
priv->resume = ax88772_resume;
|
|
||||||
priv->suspend = ax88772_suspend;
|
|
||||||
} else {
|
|
||||||
priv->resume = ax88772a_resume;
|
|
||||||
priv->suspend = ax88772_suspend;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = ax88772_init_mdio(dev);
|
ret = ax88772_init_mdio(dev);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
|
Loading…
Reference in New Issue