diff options
author | David S. Miller <davem@davemloft.net> | 2016-06-30 05:03:36 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-06-30 05:03:36 -0400 |
commit | ee58b57100ca953da7320c285315a95db2f7053d (patch) | |
tree | 77b815a31240adc4d6326346908137fc6c2c3a96 /drivers/net/usb/r8152.c | |
parent | 6f30e8b022c8e3a722928ddb1a2ae0be852fcc0e (diff) | |
parent | e7bdea7750eb2a64aea4a08fa5c0a31719c8155d (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Several cases of overlapping changes, except the packet scheduler
conflicts which deal with the addition of the free list parameter
to qdisc_enqueue().
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/usb/r8152.c')
-rw-r--r-- | drivers/net/usb/r8152.c | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index 11178f9dc838..24d367280ecf 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c | |||
@@ -31,7 +31,7 @@ | |||
31 | #define NETNEXT_VERSION "08" | 31 | #define NETNEXT_VERSION "08" |
32 | 32 | ||
33 | /* Information for net */ | 33 | /* Information for net */ |
34 | #define NET_VERSION "3" | 34 | #define NET_VERSION "4" |
35 | 35 | ||
36 | #define DRIVER_VERSION "v1." NETNEXT_VERSION "." NET_VERSION | 36 | #define DRIVER_VERSION "v1." NETNEXT_VERSION "." NET_VERSION |
37 | #define DRIVER_AUTHOR "Realtek linux nic maintainers <nic_swsd@realtek.com>" | 37 | #define DRIVER_AUTHOR "Realtek linux nic maintainers <nic_swsd@realtek.com>" |
@@ -116,6 +116,7 @@ | |||
116 | #define USB_TX_DMA 0xd434 | 116 | #define USB_TX_DMA 0xd434 |
117 | #define USB_TOLERANCE 0xd490 | 117 | #define USB_TOLERANCE 0xd490 |
118 | #define USB_LPM_CTRL 0xd41a | 118 | #define USB_LPM_CTRL 0xd41a |
119 | #define USB_BMU_RESET 0xd4b0 | ||
119 | #define USB_UPS_CTRL 0xd800 | 120 | #define USB_UPS_CTRL 0xd800 |
120 | #define USB_MISC_0 0xd81a | 121 | #define USB_MISC_0 0xd81a |
121 | #define USB_POWER_CUT 0xd80a | 122 | #define USB_POWER_CUT 0xd80a |
@@ -338,6 +339,10 @@ | |||
338 | #define TEST_MODE_DISABLE 0x00000001 | 339 | #define TEST_MODE_DISABLE 0x00000001 |
339 | #define TX_SIZE_ADJUST1 0x00000100 | 340 | #define TX_SIZE_ADJUST1 0x00000100 |
340 | 341 | ||
342 | /* USB_BMU_RESET */ | ||
343 | #define BMU_RESET_EP_IN 0x01 | ||
344 | #define BMU_RESET_EP_OUT 0x02 | ||
345 | |||
341 | /* USB_UPS_CTRL */ | 346 | /* USB_UPS_CTRL */ |
342 | #define POWER_CUT 0x0100 | 347 | #define POWER_CUT 0x0100 |
343 | 348 | ||
@@ -2173,7 +2178,7 @@ static void r8153_set_rx_early_timeout(struct r8152 *tp) | |||
2173 | static void r8153_set_rx_early_size(struct r8152 *tp) | 2178 | static void r8153_set_rx_early_size(struct r8152 *tp) |
2174 | { | 2179 | { |
2175 | u32 mtu = tp->netdev->mtu; | 2180 | u32 mtu = tp->netdev->mtu; |
2176 | u32 ocp_data = (agg_buf_sz - mtu - VLAN_ETH_HLEN - VLAN_HLEN) / 4; | 2181 | u32 ocp_data = (agg_buf_sz - mtu - VLAN_ETH_HLEN - VLAN_HLEN) / 8; |
2177 | 2182 | ||
2178 | ocp_write_word(tp, MCU_TYPE_USB, USB_RX_EARLY_SIZE, ocp_data); | 2183 | ocp_write_word(tp, MCU_TYPE_USB, USB_RX_EARLY_SIZE, ocp_data); |
2179 | } | 2184 | } |
@@ -2460,6 +2465,17 @@ static void r8153_teredo_off(struct r8152 *tp) | |||
2460 | ocp_write_dword(tp, MCU_TYPE_PLA, PLA_TEREDO_TIMER, 0); | 2465 | ocp_write_dword(tp, MCU_TYPE_PLA, PLA_TEREDO_TIMER, 0); |
2461 | } | 2466 | } |
2462 | 2467 | ||
2468 | static void rtl_reset_bmu(struct r8152 *tp) | ||
2469 | { | ||
2470 | u32 ocp_data; | ||
2471 | |||
2472 | ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_BMU_RESET); | ||
2473 | ocp_data &= ~(BMU_RESET_EP_IN | BMU_RESET_EP_OUT); | ||
2474 | ocp_write_byte(tp, MCU_TYPE_USB, USB_BMU_RESET, ocp_data); | ||
2475 | ocp_data |= BMU_RESET_EP_IN | BMU_RESET_EP_OUT; | ||
2476 | ocp_write_byte(tp, MCU_TYPE_USB, USB_BMU_RESET, ocp_data); | ||
2477 | } | ||
2478 | |||
2463 | static void r8152_aldps_en(struct r8152 *tp, bool enable) | 2479 | static void r8152_aldps_en(struct r8152 *tp, bool enable) |
2464 | { | 2480 | { |
2465 | if (enable) { | 2481 | if (enable) { |
@@ -2681,6 +2697,7 @@ static void r8153_first_init(struct r8152 *tp) | |||
2681 | ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RCR, ocp_data); | 2697 | ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RCR, ocp_data); |
2682 | 2698 | ||
2683 | rtl8152_nic_reset(tp); | 2699 | rtl8152_nic_reset(tp); |
2700 | rtl_reset_bmu(tp); | ||
2684 | 2701 | ||
2685 | ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL); | 2702 | ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL); |
2686 | ocp_data &= ~NOW_IS_OOB; | 2703 | ocp_data &= ~NOW_IS_OOB; |
@@ -2742,6 +2759,7 @@ static void r8153_enter_oob(struct r8152 *tp) | |||
2742 | ocp_write_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL, ocp_data); | 2759 | ocp_write_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL, ocp_data); |
2743 | 2760 | ||
2744 | rtl_disable(tp); | 2761 | rtl_disable(tp); |
2762 | rtl_reset_bmu(tp); | ||
2745 | 2763 | ||
2746 | for (i = 0; i < 1000; i++) { | 2764 | for (i = 0; i < 1000; i++) { |
2747 | ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL); | 2765 | ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL); |
@@ -2803,6 +2821,7 @@ static void rtl8153_disable(struct r8152 *tp) | |||
2803 | { | 2821 | { |
2804 | r8153_aldps_en(tp, false); | 2822 | r8153_aldps_en(tp, false); |
2805 | rtl_disable(tp); | 2823 | rtl_disable(tp); |
2824 | rtl_reset_bmu(tp); | ||
2806 | r8153_aldps_en(tp, true); | 2825 | r8153_aldps_en(tp, true); |
2807 | usb_enable_lpm(tp->udev); | 2826 | usb_enable_lpm(tp->udev); |
2808 | } | 2827 | } |
@@ -3400,15 +3419,11 @@ static void r8153_init(struct r8152 *tp) | |||
3400 | r8153_power_cut_en(tp, false); | 3419 | r8153_power_cut_en(tp, false); |
3401 | r8153_u1u2en(tp, true); | 3420 | r8153_u1u2en(tp, true); |
3402 | 3421 | ||
3403 | ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL, ALDPS_SPDWN_RATIO); | 3422 | /* MAC clock speed down */ |
3404 | ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL2, EEE_SPDWN_RATIO); | 3423 | ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL, 0); |
3405 | ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3, | 3424 | ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL2, 0); |
3406 | PKT_AVAIL_SPDWN_EN | SUSPEND_SPDWN_EN | | 3425 | ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3, 0); |
3407 | U1U2_SPDWN_EN | L1_SPDWN_EN); | 3426 | ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL4, 0); |
3408 | ocp_write_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL4, | ||
3409 | PWRSAVE_SPDWN_EN | RXDV_SPDWN_EN | TX10MIDLE_EN | | ||
3410 | TP100_SPDWN_EN | TP500_SPDWN_EN | TP1000_SPDWN_EN | | ||
3411 | EEE_SPDWN_EN); | ||
3412 | 3427 | ||
3413 | r8153_enable_eee(tp); | 3428 | r8153_enable_eee(tp); |
3414 | r8153_aldps_en(tp, true); | 3429 | r8153_aldps_en(tp, true); |