72 lines
2.0 KiB
Diff
72 lines
2.0 KiB
Diff
diff -Nur linux-2.6.21/drivers/net/ibm_emac/ibm_emac_phy.c linux-2.6.21-owrt/drivers/net/ibm_emac/ibm_emac_phy.c
|
|
--- linux-2.6.21/drivers/net/ibm_emac/ibm_emac_phy.c 2007-04-27 23:49:26.000000000 +0200
|
|
+++ linux-2.6.21-owrt/drivers/net/ibm_emac/ibm_emac_phy.c 2007-05-28 16:27:15.000000000 +0200
|
|
@@ -299,11 +299,50 @@
|
|
.ops = &cis8201_phy_ops
|
|
};
|
|
|
|
+#if defined(CONFIG_TAISHAN)
|
|
+static int et1011c_init(struct mii_phy *phy)
|
|
+{
|
|
+ u16 reg_short;
|
|
+
|
|
+ reg_short = (u16)(phy_read(phy,0x16));
|
|
+ reg_short &= ~(0x7);
|
|
+ reg_short |= 0x6; /* RGMII Trace Delay*/
|
|
+ phy_write(phy, 0x16, reg_short);
|
|
+
|
|
+ reg_short = (u16)(phy_read(phy, 0x17));
|
|
+ reg_short &= ~(0x40);
|
|
+ phy_write(phy, 0x17, reg_short);
|
|
+
|
|
+ phy_write(phy,0x1c,0x74f0);
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+static struct mii_phy_ops et1011c_phy_ops = {
|
|
+ .init = et1011c_init,
|
|
+ .setup_aneg = genmii_setup_aneg,
|
|
+ .setup_forced = genmii_setup_forced,
|
|
+ .poll_link = genmii_poll_link,
|
|
+ .read_link = genmii_read_link
|
|
+};
|
|
+
|
|
+static struct mii_phy_def et1011c_phy_def = {
|
|
+ .phy_id = 0x0282f000,
|
|
+ .phy_id_mask = 0x0fffff00,
|
|
+ .name = "ET1011C Gigabit Ethernet",
|
|
+ .ops = &et1011c_phy_ops
|
|
+};
|
|
+
|
|
+static struct mii_phy_def *mii_phy_table[] = {
|
|
+ &et1011c_phy_def,
|
|
+ NULL
|
|
+};
|
|
+#else
|
|
static struct mii_phy_def *mii_phy_table[] = {
|
|
&cis8201_phy_def,
|
|
&genmii_phy_def,
|
|
NULL
|
|
};
|
|
+#endif
|
|
|
|
int mii_phy_probe(struct mii_phy *phy, int address)
|
|
{
|
|
diff -Nur linux-2.6.21/drivers/net/ibm_emac/ibm_emac_zmii.c linux-2.6.21-owrt/drivers/net/ibm_emac/ibm_emac_zmii.c
|
|
--- linux-2.6.21/drivers/net/ibm_emac/ibm_emac_zmii.c 2007-04-27 23:49:26.000000000 +0200
|
|
+++ linux-2.6.21-owrt/drivers/net/ibm_emac/ibm_emac_zmii.c 2007-05-28 16:26:48.000000000 +0200
|
|
@@ -170,6 +170,13 @@
|
|
struct ocp_func_emac_data *emacdata = dev->def->additions;
|
|
|
|
if (emacdata->zmii_idx >= 0) {
|
|
+#if defined(CONFIG_TAISHAN)
|
|
+ /* don't attach emac0 and emac1 */
|
|
+ if( dev->def->index < 2 )
|
|
+ {
|
|
+ return -ENODEV;
|
|
+ }
|
|
+#endif
|
|
dev->zmii_input = emacdata->zmii_mux;
|
|
dev->zmii_dev =
|
|
ocp_find_device(OCP_VENDOR_IBM, OCP_FUNC_ZMII,
|