gianfar generic PHY assumptions.
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.
drivers/net/gianfar_phy.c +14 -0
@@ -234,6 +234,19 @@ static int marvell_config_aneg(struct gfreturn 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, };
Quoted 8 lines · David Updegraff
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.
The way PHYs are handle in 2.6.15 is completely different and the patch is not valid against the current tree.
- kumar
Quoted 8 lines · David Updegraff
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.
Aside from the fact that the patch doesn't apply against the current kernel due to the change of gianfar to use the phy layer...why wouldn't you just set the board_flags field appropriately in your board port? If you don't use a phy interrupt then don't set the flag claiming that you do. stx_gp3.c doesn't make use of the phy interrupt functionality, as an example.
I looked at an older kernel and I'm not sure where you see external 15 being used. It seems to be EXT5 on all the Fscale boards.
-Matt