diff options
| author | David S. Miller <davem@davemloft.net> | 2015-01-19 16:16:36 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2015-01-19 16:16:36 -0500 |
| commit | ef5a1ba145b95aafab823f833ad9b77d2ccc39bf (patch) | |
| tree | 6f2c6e93ea7863afa5ab4ea19d9ab74db1184816 | |
| parent | e60bf80615e1b61e8de988d693478788628fa56a (diff) | |
| parent | b4d99def09389ab696a5c85db58124fe0f16d590 (diff) | |
Merge branch 'r8152'
Hayes Wang says:
====================
r8152: couldn't read OCP_SRAM_DATA
Read OCP_SRAM_DATA would read additional bytes and may let
the hw abnormal.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | drivers/net/usb/r8152.c | 30 |
1 files changed, 6 insertions, 24 deletions
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index 57ec23e8ccfa..bf405f134d3a 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c | |||
| @@ -833,9 +833,6 @@ static void ocp_write_word(struct r8152 *tp, u16 type, u16 index, u32 data) | |||
| 833 | index &= ~3; | 833 | index &= ~3; |
| 834 | } | 834 | } |
| 835 | 835 | ||
| 836 | generic_ocp_read(tp, index, sizeof(tmp), &tmp, type); | ||
| 837 | |||
| 838 | data |= __le32_to_cpu(tmp) & ~mask; | ||
| 839 | tmp = __cpu_to_le32(data); | 836 | tmp = __cpu_to_le32(data); |
| 840 | 837 | ||
| 841 | generic_ocp_write(tp, index, byen, sizeof(tmp), &tmp, type); | 838 | generic_ocp_write(tp, index, byen, sizeof(tmp), &tmp, type); |
| @@ -874,9 +871,6 @@ static void ocp_write_byte(struct r8152 *tp, u16 type, u16 index, u32 data) | |||
| 874 | index &= ~3; | 871 | index &= ~3; |
| 875 | } | 872 | } |
| 876 | 873 | ||
| 877 | generic_ocp_read(tp, index, sizeof(tmp), &tmp, type); | ||
| 878 | |||
| 879 | data |= __le32_to_cpu(tmp) & ~mask; | ||
| 880 | tmp = __cpu_to_le32(data); | 874 | tmp = __cpu_to_le32(data); |
| 881 | 875 | ||
| 882 | generic_ocp_write(tp, index, byen, sizeof(tmp), &tmp, type); | 876 | generic_ocp_write(tp, index, byen, sizeof(tmp), &tmp, type); |
| @@ -926,12 +920,6 @@ static void sram_write(struct r8152 *tp, u16 addr, u16 data) | |||
| 926 | ocp_reg_write(tp, OCP_SRAM_DATA, data); | 920 | ocp_reg_write(tp, OCP_SRAM_DATA, data); |
| 927 | } | 921 | } |
| 928 | 922 | ||
| 929 | static u16 sram_read(struct r8152 *tp, u16 addr) | ||
| 930 | { | ||
| 931 | ocp_reg_write(tp, OCP_SRAM_ADDR, addr); | ||
| 932 | return ocp_reg_read(tp, OCP_SRAM_DATA); | ||
| 933 | } | ||
| 934 | |||
| 935 | static int read_mii_word(struct net_device *netdev, int phy_id, int reg) | 923 | static int read_mii_word(struct net_device *netdev, int phy_id, int reg) |
| 936 | { | 924 | { |
| 937 | struct r8152 *tp = netdev_priv(netdev); | 925 | struct r8152 *tp = netdev_priv(netdev); |
| @@ -2518,24 +2506,18 @@ static void r8153_hw_phy_cfg(struct r8152 *tp) | |||
| 2518 | data = ocp_reg_read(tp, OCP_POWER_CFG); | 2506 | data = ocp_reg_read(tp, OCP_POWER_CFG); |
| 2519 | data |= EN_10M_PLLOFF; | 2507 | data |= EN_10M_PLLOFF; |
| 2520 | ocp_reg_write(tp, OCP_POWER_CFG, data); | 2508 | ocp_reg_write(tp, OCP_POWER_CFG, data); |
| 2521 | data = sram_read(tp, SRAM_IMPEDANCE); | 2509 | sram_write(tp, SRAM_IMPEDANCE, 0x0b13); |
| 2522 | data &= ~RX_DRIVING_MASK; | ||
| 2523 | sram_write(tp, SRAM_IMPEDANCE, data); | ||
| 2524 | 2510 | ||
| 2525 | ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR); | 2511 | ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR); |
| 2526 | ocp_data |= PFM_PWM_SWITCH; | 2512 | ocp_data |= PFM_PWM_SWITCH; |
| 2527 | ocp_write_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR, ocp_data); | 2513 | ocp_write_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR, ocp_data); |
| 2528 | 2514 | ||
| 2529 | data = sram_read(tp, SRAM_LPF_CFG); | 2515 | /* Enable LPF corner auto tune */ |
| 2530 | data |= LPF_AUTO_TUNE; | 2516 | sram_write(tp, SRAM_LPF_CFG, 0xf70f); |
| 2531 | sram_write(tp, SRAM_LPF_CFG, data); | ||
| 2532 | 2517 | ||
| 2533 | data = sram_read(tp, SRAM_10M_AMP1); | 2518 | /* Adjust 10M Amplitude */ |
| 2534 | data |= GDAC_IB_UPALL; | 2519 | sram_write(tp, SRAM_10M_AMP1, 0x00af); |
| 2535 | sram_write(tp, SRAM_10M_AMP1, data); | 2520 | sram_write(tp, SRAM_10M_AMP2, 0x0208); |
| 2536 | data = sram_read(tp, SRAM_10M_AMP2); | ||
| 2537 | data |= AMP_DN; | ||
| 2538 | sram_write(tp, SRAM_10M_AMP2, data); | ||
| 2539 | 2521 | ||
| 2540 | set_bit(PHY_RESET, &tp->flags); | 2522 | set_bit(PHY_RESET, &tp->flags); |
| 2541 | } | 2523 | } |
