Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1604234 > unrolled thread

[PATCH net 0/2] r8152: fix the rx settings of RTL8153

Started byHayes Wang <hayeswang@realtek.com>
First post2017-03-20 09:20 +0100
Last post2017-03-22 19:00 +0100
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [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

#1604234 — [PATCH net 0/2] r8152: fix the rx settings of RTL8153

FromHayes Wang <hayeswang@realtek.com>
Date2017-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]


#1604236 — [PATCH net 1/2] r8152: set the RMS of RTL8153 according to the mtu

FromHayes Wang <hayeswang@realtek.com>
Date2017-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]


#1606860

FromDavid Miller <davem@davemloft.net>
Date2017-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