Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1604234 > unrolled thread
| Started by | Hayes Wang <hayeswang@realtek.com> |
|---|---|
| First post | 2017-03-20 09:20 +0100 |
| Last post | 2017-03-22 19:00 +0100 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH net 0/2] r8152: fix the rx settings of RTL8153 Hayes Wang <hayeswang@realtek.com> - 2017-03-20 09:20 +0100
[PATCH net 1/2] r8152: set the RMS of RTL8153 according to the mtu Hayes Wang <hayeswang@realtek.com> - 2017-03-20 09:20 +0100
Re: [PATCH net 0/2] r8152: fix the rx settings of RTL8153 David Miller <davem@davemloft.net> - 2017-03-22 19:00 +0100
| From | Hayes Wang <hayeswang@realtek.com> |
|---|---|
| Date | 2017-03-20 09:20 +0100 |
| Subject | [PATCH net 0/2] r8152: fix the rx settings of RTL8153 |
| Message-ID | <tn0HL-1Xo-5@gated-at.bofh.it> |
The RMS and the rx early size should base on the same rx size. However, the RMS is set to 9K bytes now and the rx early depends on mtu. For using the rx buffer effectively, sync the two settings according to the mtu. Hayes Wang (2): r8152: set the RMS of RTL8153 according to the mtu r8152: fix the rx early size of RTL8153 drivers/net/usb/r8152.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) -- 2.7.4
[toc] | [next] | [standalone]
| From | Hayes Wang <hayeswang@realtek.com> |
|---|---|
| Date | 2017-03-20 09:20 +0100 |
| Subject | [PATCH net 1/2] r8152: set the RMS of RTL8153 according to the mtu |
| Message-ID | <tn0HM-1Xo-13@gated-at.bofh.it> |
| In reply to | #1604234 |
Set the received maximum size (RMS) according to the mtu size. It is
unnecessary to receive a packet which is more than the size we could
transmit. Besides, this could let the rx buffer be used effectively.
Signed-off-by: Hayes Wang <hayeswang@realtek.com>
---
drivers/net/usb/r8152.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
index 986243c..3a892fa 100644
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
@@ -2898,7 +2898,8 @@ static void r8153_first_init(struct r8152 *tp)
rtl_rx_vlan_en(tp, tp->netdev->features & NETIF_F_HW_VLAN_CTAG_RX);
- ocp_write_word(tp, MCU_TYPE_PLA, PLA_RMS, RTL8153_RMS);
+ ocp_data = tp->netdev->mtu + VLAN_ETH_HLEN + CRC_SIZE;
+ ocp_write_word(tp, MCU_TYPE_PLA, PLA_RMS, ocp_data);
ocp_write_byte(tp, MCU_TYPE_PLA, PLA_MTPS, MTPS_JUMBO);
ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_TCR0);
@@ -2950,7 +2951,8 @@ static void r8153_enter_oob(struct r8152 *tp)
usleep_range(1000, 2000);
}
- ocp_write_word(tp, MCU_TYPE_PLA, PLA_RMS, RTL8153_RMS);
+ ocp_data = tp->netdev->mtu + VLAN_ETH_HLEN + CRC_SIZE;
+ ocp_write_word(tp, MCU_TYPE_PLA, PLA_RMS, ocp_data);
ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_TEREDO_CFG);
ocp_data &= ~TEREDO_WAKE_MASK;
@@ -4200,8 +4202,14 @@ static int rtl8152_change_mtu(struct net_device *dev, int new_mtu)
dev->mtu = new_mtu;
- if (netif_running(dev) && netif_carrier_ok(dev))
- r8153_set_rx_early_size(tp);
+ if (netif_running(dev)) {
+ u32 rms = new_mtu + VLAN_ETH_HLEN + CRC_SIZE;
+
+ ocp_write_word(tp, MCU_TYPE_PLA, PLA_RMS, rms);
+
+ if (netif_carrier_ok(dev))
+ r8153_set_rx_early_size(tp);
+ }
mutex_unlock(&tp->control);
--
2.7.4
[toc] | [prev] | [next] | [standalone]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2017-03-22 19:00 +0100 |
| Message-ID | <tnSIb-6gL-43@gated-at.bofh.it> |
| In reply to | #1604234 |
From: Hayes Wang <hayeswang@realtek.com> Date: Mon, 20 Mar 2017 16:13:43 +0800 > The RMS and the rx early size should base on the same rx size. However, > the RMS is set to 9K bytes now and the rx early depends on mtu. For using > the rx buffer effectively, sync the two settings according to the mtu. Series applied.
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web