Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 62406 Details for
Bug 94263
ppc64 sungem patch to support imacG5
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch for network device of a brand new iMacG5
vanilla-sources-2.6.12_rc6-ppc64.patch (text/plain), 4.16 KB, created by
Yuta SATOH (RETIRED)
on 2005-07-01 07:17:14 UTC
(
hide
)
Description:
patch for network device of a brand new iMacG5
Filename:
MIME Type:
Creator:
Yuta SATOH (RETIRED)
Created:
2005-07-01 07:17:14 UTC
Size:
4.16 KB
patch
obsolete
>Index: linux-work/drivers/net/sungem.c >=================================================================== >--- linux-work.orig/drivers/net/sungem.c 2005-05-02 10:48:28.000000000 +1000 >+++ linux-work/drivers/net/sungem.c 2005-06-14 10:17:38.000000000 +1000 >@@ -3078,7 +3078,9 @@ > gp->phy_mii.dev = dev; > gp->phy_mii.mdio_read = _phy_read; > gp->phy_mii.mdio_write = _phy_write; >- >+#ifdef CONFIG_PPC_PMAC >+ gp->phy_mii.platform_data = gp->of_node; >+#endif > /* By default, we start with autoneg */ > gp->want_autoneg = 1; > >Index: linux-work/drivers/net/sungem_phy.c >=================================================================== >--- linux-work.orig/drivers/net/sungem_phy.c 2005-05-02 10:48:28.000000000 +1000 >+++ linux-work/drivers/net/sungem_phy.c 2005-06-16 07:38:37.000000000 +1000 >@@ -32,6 +32,10 @@ > #include <linux/ethtool.h> > #include <linux/delay.h> > >+#ifdef CONFIG_PPC_PMAC >+#include <asm/prom.h> >+#endif >+ > #include "sungem_phy.h" > > /* Link modes of the BCM5400 PHY */ >@@ -281,10 +285,12 @@ > static int bcm5421_init(struct mii_phy* phy) > { > u16 data; >- int rev; >+ unsigned int id; > >- rev = phy_read(phy, MII_PHYSID2) & 0x000f; >- if (rev == 0) { >+ id = (phy_read(phy, MII_PHYSID1) << 16 | phy_read(phy, MII_PHYSID2)); >+ >+ /* Revision 0 of 5421 needs some fixups */ >+ if (id == 0x002060e0) { > /* This is borrowed from MacOS > */ > phy_write(phy, 0x18, 0x1007); >@@ -297,21 +303,28 @@ > data = phy_read(phy, 0x15); > phy_write(phy, 0x15, data | 0x0200); > } >-#if 0 >- /* This has to be verified before I enable it */ >- /* Enable automatic low-power */ >- phy_write(phy, 0x1c, 0x9002); >- phy_write(phy, 0x1c, 0xa821); >- phy_write(phy, 0x1c, 0x941d); >-#endif >- return 0; >-} > >-static int bcm5421k2_init(struct mii_phy* phy) >-{ >- /* Init code borrowed from OF */ >- phy_write(phy, 4, 0x01e1); >- phy_write(phy, 9, 0x0300); >+ /* Pick up some init code from OF for K2 version */ >+ if ((id & 0xfffffff0) == 0x002062e0) { >+ phy_write(phy, 4, 0x01e1); >+ phy_write(phy, 9, 0x0300); >+ } >+ >+ /* Check if we can enable automatic low power */ >+#ifdef CONFIG_PPC_PMAC >+ if (phy->platform_data) { >+ struct device_node *np = of_get_parent(phy->platform_data); >+ int can_low_power = 1; >+ if (np == NULL || get_property(np, "no-autolowpower", NULL)) >+ can_low_power = 0; >+ if (can_low_power) { >+ /* Enable automatic low-power */ >+ phy_write(phy, 0x1c, 0x9002); >+ phy_write(phy, 0x1c, 0xa821); >+ phy_write(phy, 0x1c, 0x941d); >+ } >+ } >+#endif /* CONFIG_PPC_PMAC */ > > return 0; > } >@@ -762,7 +775,7 @@ > > /* Broadcom BCM 5421 built-in K2 */ > static struct mii_phy_ops bcm5421k2_phy_ops = { >- .init = bcm5421k2_init, >+ .init = bcm5421_init, > .suspend = bcm5411_suspend, > .setup_aneg = bcm54xx_setup_aneg, > .setup_forced = bcm54xx_setup_forced, >@@ -779,6 +792,25 @@ > .ops = &bcm5421k2_phy_ops > }; > >+/* Broadcom BCM 5462 built-in Vesta */ >+static struct mii_phy_ops bcm5462V_phy_ops = { >+ .init = bcm5421_init, >+ .suspend = bcm5411_suspend, >+ .setup_aneg = bcm54xx_setup_aneg, >+ .setup_forced = bcm54xx_setup_forced, >+ .poll_link = genmii_poll_link, >+ .read_link = bcm54xx_read_link, >+}; >+ >+static struct mii_phy_def bcm5462V_phy_def = { >+ .phy_id = 0x002060d0, >+ .phy_id_mask = 0xfffffff0, >+ .name = "BCM5462-Vesta", >+ .features = MII_GBIT_FEATURES, >+ .magic_aneg = 1, >+ .ops = &bcm5462V_phy_ops >+}; >+ > /* Marvell 88E1101 (Apple seem to deal with 2 different revs, > * I masked out the 8 last bits to get both, but some specs > * would be useful here) --BenH. >@@ -824,6 +856,7 @@ > &bcm5411_phy_def, > &bcm5421_phy_def, > &bcm5421k2_phy_def, >+ &bcm5462V_phy_def, > &marvell_phy_def, > &genmii_phy_def, > NULL >Index: linux-work/drivers/net/sungem_phy.h >=================================================================== >--- linux-work.orig/drivers/net/sungem_phy.h 2005-05-02 10:48:28.000000000 +1000 >+++ linux-work/drivers/net/sungem_phy.h 2005-06-14 10:16:14.000000000 +1000 >@@ -43,9 +43,10 @@ > int pause; > > /* Provided by host chip */ >- struct net_device* dev; >+ struct net_device *dev; > int (*mdio_read) (struct net_device *dev, int mii_id, int reg); > void (*mdio_write) (struct net_device *dev, int mii_id, int reg, int val); >+ void *platform_data; > }; > > /* Pass in a struct mii_phy with dev, mdio_read and mdio_write
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 94263
:
61003
| 62406