OpenWrt – Blame information for rev 4
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
4 | office | 1 | From 8e6f31baba7e2c13ab7e954fe6179420a7545a8b Mon Sep 17 00:00:00 2001 |
2 | From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl> |
||
3 | Date: Tue, 31 Jan 2017 19:37:56 +0100 |
||
4 | Subject: [PATCH 3/3] net: bgmac: use PHY subsystem for initializing PHY |
||
5 | MIME-Version: 1.0 |
||
6 | Content-Type: text/plain; charset=UTF-8 |
||
7 | Content-Transfer-Encoding: 8bit |
||
8 | |||
9 | This adds support for using bgmac with PHYs supported by standalone PHY |
||
10 | drivers. Having any PHY initialization in bgmac is hacky and shouldn't |
||
11 | be extended but rather removed if anyone has hardware to test it. |
||
12 | |||
13 | Signed-off-by: Rafał Miłecki <rafal@milecki.pl> |
||
14 | Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> |
||
15 | Signed-off-by: David S. Miller <davem@davemloft.net> |
||
16 | --- |
||
17 | drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c | 10 ++++++++++ |
||
18 | 1 file changed, 10 insertions(+) |
||
19 | |||
20 | --- a/drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c |
||
21 | +++ b/drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c |
||
22 | @@ -132,6 +132,10 @@ static void bcma_mdio_phy_init(struct bg |
||
23 | struct bcma_chipinfo *ci = &bgmac->bcma.core->bus->chipinfo; |
||
24 | u8 i; |
||
25 | |||
26 | + /* For some legacy hardware we do chipset-based PHY initialization here |
||
27 | + * without even detecting PHY ID. It's hacky and should be cleaned as |
||
28 | + * soon as someone can test it. |
||
29 | + */ |
||
30 | if (ci->id == BCMA_CHIP_ID_BCM5356) { |
||
31 | for (i = 0; i < 5; i++) { |
||
32 | bcma_mdio_phy_write(bgmac, i, 0x1f, 0x008b); |
||
33 | @@ -140,6 +144,7 @@ static void bcma_mdio_phy_init(struct bg |
||
34 | bcma_mdio_phy_write(bgmac, i, 0x12, 0x2aaa); |
||
35 | bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000b); |
||
36 | } |
||
37 | + return; |
||
38 | } |
||
39 | if ((ci->id == BCMA_CHIP_ID_BCM5357 && ci->pkg != 10) || |
||
40 | (ci->id == BCMA_CHIP_ID_BCM4749 && ci->pkg != 10) || |
||
41 | @@ -161,7 +166,12 @@ static void bcma_mdio_phy_init(struct bg |
||
42 | bcma_mdio_phy_write(bgmac, i, 0x17, 0x9273); |
||
43 | bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000b); |
||
44 | } |
||
45 | + return; |
||
46 | } |
||
47 | + |
||
48 | + /* For all other hw do initialization using PHY subsystem. */ |
||
49 | + if (bgmac->net_dev && bgmac->net_dev->phydev) |
||
50 | + phy_init_hw(bgmac->net_dev->phydev); |
||
51 | } |
||
52 | |||
53 | /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipphyreset */ |