Subject: gianfar generic PHY assumptions.

From: David Updegraff <[email-masked]>
Date: Thu, 17 Nov 2005 15:50:59 -0600

Hi.

This patch lets gianfar work on 83xx (or 85xx??) boards that have 
Generic PHYs on them that do _NOT_ happen to have an IRQ line wired to 
external_15.  Surely reasonable that if we can't ID the PHY that its 
probably not irq-wired the Freescale-ADS "way"...

It was critical for us; perhaps usefull for others.

-dbu.
diff --git a/drivers/net/gianfar_phy.c b/drivers/net/gianfar_phy.c
index 7c965f2..1c08bd0 100644
--- a/drivers/net/gianfar_phy.c
+++ b/drivers/net/gianfar_phy.c
@@ -234,6 +234,19 @@ static int marvell_config_aneg(struct gf
 
 	return 0;
 }
+/* Init for GENERIC: just here to make sure the gainfar driver does not assume
+ * that it has an interrupt. Since don't even know what model it is, seems 
+ * unlikely that they have bothered to wire in an IRQ line exactly like the 
+ * the platform/ files have assumed.
+ */
+static int genmii_init(struct gfar_mii_info *mii_info)
+{
+	struct gfar_private *priv = netdev_priv(mii_info->dev);
+	if (priv)
+		priv->einfo->board_flags &= ~FSL_GIANFAR_BRD_HAS_PHY_INTR;
+	return 0;
+}
+
 static int genmii_config_aneg(struct gfar_mii_info *mii_info)
 {
 	if (mii_info->autoneg) {
@@ -585,6 +598,7 @@ static struct phy_info phy_info_genmii= 
 	.phy_id_mask	= 0x00000000,
 	.name		= "Generic MII",
 	.features	= MII_BASIC_FEATURES,
+	.init		= genmii_init,
 	.config_aneg	= genmii_config_aneg,
 	.read_status	= genmii_read_status,
 };