Baseline update from LYNQ_SDK_ASR_T108_V05.03.01.00(kernel build error.)

Change-Id: I56fc72cd096e82c589920026553170e5cb9692eb
diff --git a/marvell/linux/drivers/net/phy/phy_device.c b/marvell/linux/drivers/net/phy/phy_device.c
old mode 100644
new mode 100755
index 76a68bb..bfc2e14
--- a/marvell/linux/drivers/net/phy/phy_device.c
+++ b/marvell/linux/drivers/net/phy/phy_device.c
@@ -809,6 +809,68 @@
 }
 
 /**
+ * get_phy_c22_id - reads the specified addr for its clause 22 ID.
+ * @bus: the target MII bus
+ * @addr: PHY address on the MII bus
+ * @phy_id: where to store the ID retrieved.
+ *
+ * Read the 802.3 clause 22 PHY ID from the PHY at @addr on the @bus,
+ * placing it in @phy_id. Return zero on successful read and the ID is
+ * valid, %-EIO on bus access error, or %-ENODEV if no device responds
+ * or invalid ID.
+ */
+
+static int get_phy_c22_id(struct mii_bus *bus, int addr, u32 *phy_id)
+{
+	int phy_reg;
+
+	/* Grab the bits from PHYIR1, and put them in the upper half */
+//	phy_reg = mdiobus_read(bus, addr, MII_PHYSID1);
+#ifdef CONFIG_JLSEMI_PHY
+    mdiobus_write(bus, addr, 0x0d, 1);
+    mdiobus_write(bus, addr, 0x0e, 2);
+    mdiobus_write(bus, addr, 0x0d, 0x4000 | 1);
+    phy_reg = mdiobus_read(bus, addr, 0x0e);
+#else 
+	phy_reg = mdiobus_read(bus, addr, MII_PHYSID1);
+#endif
+    if (phy_reg < 0) {
+		/* returning -ENODEV doesn't stop bus scanning */
+		return (phy_reg == -EIO || phy_reg == -ENODEV) ? -ENODEV : -EIO;
+	}
+
+	*phy_id = phy_reg << 16;
+
+	/* Grab the bits from PHYIR2, and put them in the lower half */
+//	phy_reg = mdiobus_read(bus, addr, MII_PHYSID2);
+#ifdef CONFIG_JLSEMI_PHY
+    mdiobus_write(bus, addr, 0x0d, 1);
+    mdiobus_write(bus, addr, 0x0e, 3);
+    mdiobus_write(bus, addr, 0x0d, 0x4000 | 1);
+    phy_reg = mdiobus_read(bus, addr, 0x0e);
+#else 
+	phy_reg = mdiobus_read(bus, addr, MII_PHYSID2);
+#endif
+	if (phy_reg < 0) {
+		/* returning -ENODEV doesn't stop bus scanning */
+		return (phy_reg == -EIO || phy_reg == -ENODEV) ? -ENODEV : -EIO;
+	}
+
+	*phy_id |= phy_reg;
+
+#ifdef CONFIG_JLSEMI_PHY
+    printk("[%s] read with c45 phy id:0x%x addr:0x%x\n", __func__, *phy_id, addr);
+#else
+    printk("[%s] read with c22 phy id:0x%x\n", __func__, *phy_id);
+#endif
+	/* If the phy_id is mostly Fs, there is no device there */
+	if ((*phy_id & 0x1fffffff) == 0x1fffffff)
+		return -ENODEV;
+
+	return 0;
+}
+
+/**
  * get_phy_device - reads the specified PHY device and returns its @phy_device
  *		    struct
  * @bus: the target MII bus
@@ -827,7 +889,8 @@
 	c45_ids.devices_in_package = 0;
 	memset(c45_ids.device_ids, 0xff, sizeof(c45_ids.device_ids));
 
-	r = get_phy_id(bus, addr, &phy_id, is_c45, &c45_ids);
+	//r = get_phy_id(bus, addr, &phy_id, is_c45, &c45_ids);
+	r = get_phy_c22_id(bus, addr, &phy_id);
 	if (r)
 		return ERR_PTR(r);