|
@@ -138,33 +138,27 @@ static int qt202x_reset_phy(struct efx_nic *efx)
|
|
|
static int qt202x_phy_init(struct efx_nic *efx)
|
|
|
{
|
|
|
struct qt202x_phy_data *phy_data;
|
|
|
- u32 devid = efx_mdio_read_id(efx, MDIO_MMD_PHYXS);
|
|
|
+ u32 devid;
|
|
|
int rc;
|
|
|
|
|
|
+ rc = qt202x_reset_phy(efx);
|
|
|
+ if (rc) {
|
|
|
+ EFX_ERR(efx, "PHY init failed\n");
|
|
|
+ return rc;
|
|
|
+ }
|
|
|
+
|
|
|
phy_data = kzalloc(sizeof(struct qt202x_phy_data), GFP_KERNEL);
|
|
|
if (!phy_data)
|
|
|
return -ENOMEM;
|
|
|
efx->phy_data = phy_data;
|
|
|
|
|
|
+ devid = efx_mdio_read_id(efx, MDIO_MMD_PHYXS);
|
|
|
EFX_INFO(efx, "PHY ID reg %x (OUI %06x model %02x revision %x)\n",
|
|
|
devid, efx_mdio_id_oui(devid), efx_mdio_id_model(devid),
|
|
|
efx_mdio_id_rev(devid));
|
|
|
|
|
|
phy_data->phy_mode = efx->phy_mode;
|
|
|
-
|
|
|
- rc = qt202x_reset_phy(efx);
|
|
|
-
|
|
|
- EFX_INFO(efx, "PHY init %s.\n",
|
|
|
- rc ? "failed" : "successful");
|
|
|
- if (rc < 0)
|
|
|
- goto fail;
|
|
|
-
|
|
|
return 0;
|
|
|
-
|
|
|
- fail:
|
|
|
- kfree(efx->phy_data);
|
|
|
- efx->phy_data = NULL;
|
|
|
- return rc;
|
|
|
}
|
|
|
|
|
|
static int qt202x_link_ok(struct efx_nic *efx)
|