diff options
Diffstat (limited to 'target/linux/leon/patches/017-greth_no_gbit.patch')
-rw-r--r-- | target/linux/leon/patches/017-greth_no_gbit.patch | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/target/linux/leon/patches/017-greth_no_gbit.patch b/target/linux/leon/patches/017-greth_no_gbit.patch new file mode 100644 index 0000000000..5e3ee3d6a0 --- /dev/null +++ b/target/linux/leon/patches/017-greth_no_gbit.patch @@ -0,0 +1,66 @@ +From 2e864d18c31d4e0255269f9e9cfccc09512676c6 Mon Sep 17 00:00:00 2001 +From: Daniel Hellstrom <daniel@gaisler.com> +Date: Wed, 1 Dec 2010 16:51:38 +0100 +Subject: [PATCH] GRETH: added greth_no_gbit option + +Signed-off-by: Daniel Hellstrom <daniel@gaisler.com> +--- + drivers/net/greth.c | 15 +++++++++++++-- + drivers/net/greth.h | 1 + + 2 files changed, 14 insertions(+), 2 deletions(-) + +--- a/drivers/net/greth.c ++++ b/drivers/net/greth.c +@@ -66,6 +66,10 @@ static int greth_edcl = 1; + module_param(greth_edcl, int, 0); + MODULE_PARM_DESC(greth_edcl, "GRETH EDCL usage indicator. Set to 1 if EDCL is used."); + ++static int no_gbit = 0; ++module_param(no_gbit, int, S_IRUGO); ++MODULE_PARM_DESC(no_gbit, "GRETH report GBit not supported by MAC enable. Only affects GRETH GBit MAC, default 0 (off)."); ++ + static int greth_open(struct net_device *dev); + static netdev_tx_t greth_start_xmit(struct sk_buff *skb, + struct net_device *dev); +@@ -1284,7 +1288,7 @@ static int greth_mdio_probe(struct net_d + } + + ret = phy_connect_direct(dev, phy, &greth_link_change, +- 0, greth->gbit_mac ? ++ 0, greth->gbit_phy_support ? + PHY_INTERFACE_MODE_GMII : + PHY_INTERFACE_MODE_MII); + if (ret) { +@@ -1293,7 +1297,7 @@ static int greth_mdio_probe(struct net_d + return ret; + } + +- if (greth->gbit_mac) ++ if (greth->gbit_phy_support) + phy->supported &= PHY_GBIT_FEATURES; + else + phy->supported &= PHY_BASIC_FEATURES; +@@ -1441,6 +1445,13 @@ static int __devinit greth_of_probe(stru + tmp = GRETH_REGLOAD(regs->control); + greth->gbit_mac = (tmp >> 27) & 1; + ++ /* Let user skip GBit link mode by telling MDIO layer that MAC does ++ * not support GBIT (for debug) */ ++ if (greth->gbit_mac && !no_gbit) ++ greth->gbit_phy_support = 1; ++ else ++ greth->gbit_phy_support = 0; ++ + /* Check for multicast capability */ + greth->multicast = (tmp >> 25) & 1; + +--- a/drivers/net/greth.h ++++ b/drivers/net/greth.h +@@ -138,6 +138,7 @@ struct greth_private { + u8 gbit_mac; + u8 mdio_int_en; + u8 edcl; ++ u8 gbit_phy_support; + }; + + #endif |