ba6096d04b
OpenWRT's developer guide prefers having actual patches so they an be sent upstream more easily. However, in this case, Adding proper fields also allows for `git am` to properly function. Some of these patches are quite old, and lack much traceable history. This commit tries to rectify that, by digging in the history to find where and how it was first added. It is by no means perfect and also shows some patches that should have been long gone. Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
45 lines
1.3 KiB
Diff
45 lines
1.3 KiB
Diff
From: Jonas Gorski <jogo@openwrt.org>
|
|
Subject: ar71xx: add a workaround for ar8316 not always driving the TA bit to low
|
|
|
|
AR8316 behind a GPIO bitbanged MDIO bus fails to drive the turnaround bit
|
|
to low despite returning a valid value. Ignore it and just use the
|
|
returned value anyway.
|
|
|
|
SVN-Revision: 28422
|
|
---
|
|
drivers/net/mdio/mdio-bitbang.c | 16 ++-----------------
|
|
1 file changed, 2 insertions(+), 14 deletions(-)
|
|
|
|
--- a/drivers/net/mdio/mdio-bitbang.c
|
|
+++ b/drivers/net/mdio/mdio-bitbang.c
|
|
@@ -152,7 +152,7 @@ static int mdiobb_cmd_addr(struct mdiobb
|
|
static int mdiobb_read(struct mii_bus *bus, int phy, int reg)
|
|
{
|
|
struct mdiobb_ctrl *ctrl = bus->priv;
|
|
- int ret, i;
|
|
+ int ret;
|
|
|
|
if (reg & MII_ADDR_C45) {
|
|
reg = mdiobb_cmd_addr(ctrl, phy, reg);
|
|
@@ -162,19 +162,7 @@ static int mdiobb_read(struct mii_bus *b
|
|
|
|
ctrl->ops->set_mdio_dir(ctrl, 0);
|
|
|
|
- /* check the turnaround bit: the PHY should be driving it to zero, if this
|
|
- * PHY is listed in phy_ignore_ta_mask as having broken TA, skip that
|
|
- */
|
|
- if (mdiobb_get_bit(ctrl) != 0 &&
|
|
- !(bus->phy_ignore_ta_mask & (1 << phy))) {
|
|
- /* PHY didn't drive TA low -- flush any bits it
|
|
- * may be trying to send.
|
|
- */
|
|
- for (i = 0; i < 32; i++)
|
|
- mdiobb_get_bit(ctrl);
|
|
-
|
|
- return 0xffff;
|
|
- }
|
|
+ mdiobb_get_bit(ctrl);
|
|
|
|
ret = mdiobb_get_num(ctrl, 16);
|
|
mdiobb_get_bit(ctrl);
|