linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
diff for duplicates of <1394712342-15778-367-Taiwan-albertk@realtek.com>

diff --git a/a/1.txt b/N1/1.txt
index 0e2c935..67387de 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,53 +1,82 @@
-When enabling this, the device would wait an internal signal which
-wouldn't be triggered. Then, the device couldn't enter P3 mode, so
-the power consumption is increased.
+Store the information of the pipes to avoid calling usb_rcvctrlpipe(),
+usb_sndctrlpipe(), usb_rcvbulkpipe(), usb_sndbulkpipe(), and
+usb_rcvintpipe() frequently.
 
 Signed-off-by: Hayes Wang <hayeswang@realtek.com>
 ---
- drivers/net/usb/r8152.c | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
+ drivers/net/usb/r8152.c | 18 +++++++++++++-----
+ 1 file changed, 13 insertions(+), 5 deletions(-)
 
 diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
-index c037fc7adcea..3f425f974d03 100644
+index 85039e17f4cd..62cd48dc2878 100644
 --- a/drivers/net/usb/r8152.c
 +++ b/drivers/net/usb/r8152.c
-@@ -31,7 +31,7 @@
- #define NETNEXT_VERSION		"11"
- 
- /* Information for net */
--#define NET_VERSION		"10"
-+#define NET_VERSION		"11"
- 
- #define DRIVER_VERSION		"v1." NETNEXT_VERSION "." NET_VERSION
- #define DRIVER_AUTHOR "Realtek linux nic maintainers <nic_swsd@realtek.com>"
-@@ -109,6 +109,7 @@
- #define PLA_BP_EN		0xfc38
- 
- #define USB_USB2PHY		0xb41e
-+#define USB_SSPHYLINK1		0xb426
- #define USB_SSPHYLINK2		0xb428
- #define USB_U2P3_CTRL		0xb460
- #define USB_CSR_DUMMY1		0xb464
-@@ -384,6 +385,9 @@
- #define USB2PHY_SUSPEND		0x0001
- #define USB2PHY_L1		0x0002
- 
-+/* USB_SSPHYLINK1 */
-+#define DELAY_PHY_PWR_CHG	BIT(1)
-+
- /* USB_SSPHYLINK2 */
- #define pwd_dn_scale_mask	0x3ffe
- #define pwd_dn_scale(x)		((x) << 1)
-@@ -4994,6 +4998,10 @@ static void rtl8153_up(struct r8152 *tp)
- 	ocp_data &= ~LANWAKE_PIN;
- 	ocp_write_byte(tp, MCU_TYPE_PLA, PLA_LWAKE_CTRL_REG, ocp_data);
- 
-+	ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_SSPHYLINK1);
-+	ocp_data &= ~DELAY_PHY_PWR_CHG;
-+	ocp_write_word(tp, MCU_TYPE_USB, USB_SSPHYLINK1, ocp_data);
+@@ -931,6 +931,8 @@ struct r8152 {
+ 	u32 rx_pending;
+ 	u32 fc_pause_on, fc_pause_off;
+ 
++	unsigned int pipe_in, pipe_out, pipe_intr, pipe_ctrl_in, pipe_ctrl_out;
 +
- 	r8153_aldps_en(tp, true);
+ 	u32 support_2500full:1;
+ 	u32 lenovo_macpassthru:1;
+ 	u32 dell_tb_rx_agg_bug:1;
+@@ -1198,7 +1200,7 @@ int get_registers(struct r8152 *tp, u16 value, u16 index, u16 size, void *data)
+ 	if (!tmp)
+ 		return -ENOMEM;
+ 
+-	ret = usb_control_msg(tp->udev, usb_rcvctrlpipe(tp->udev, 0),
++	ret = usb_control_msg(tp->udev, tp->pipe_ctrl_in,
+ 			      RTL8152_REQ_GET_REGS, RTL8152_REQT_READ,
+ 			      value, index, tmp, size, 500);
+ 	if (ret < 0)
+@@ -1221,7 +1223,7 @@ int set_registers(struct r8152 *tp, u16 value, u16 index, u16 size, void *data)
+ 	if (!tmp)
+ 		return -ENOMEM;
+ 
+-	ret = usb_control_msg(tp->udev, usb_sndctrlpipe(tp->udev, 0),
++	ret = usb_control_msg(tp->udev, tp->pipe_ctrl_out,
+ 			      RTL8152_REQ_SET_REGS, RTL8152_REQT_WRITE,
+ 			      value, index, tmp, size, 500);
+ 
+@@ -2041,7 +2043,7 @@ static int alloc_all_mem(struct r8152 *tp)
+ 		goto err1;
+ 
+ 	tp->intr_interval = (int)ep_intr->desc.bInterval;
+-	usb_fill_int_urb(tp->intr_urb, tp->udev, usb_rcvintpipe(tp->udev, 3),
++	usb_fill_int_urb(tp->intr_urb, tp->udev, tp->pipe_intr,
+ 			 tp->intr_buff, INTBUFSIZE, intr_callback,
+ 			 tp, tp->intr_interval);
  
- 	switch (tp->version) {
+@@ -2305,7 +2307,7 @@ static int r8152_tx_agg_fill(struct r8152 *tp, struct tx_agg *agg)
+ 	if (ret < 0)
+ 		goto out_tx_fill;
+ 
+-	usb_fill_bulk_urb(agg->urb, tp->udev, usb_sndbulkpipe(tp->udev, 2),
++	usb_fill_bulk_urb(agg->urb, tp->udev, tp->pipe_out,
+ 			  agg->head, (int)(tx_data - (u8 *)agg->head),
+ 			  (usb_complete_t)write_bulk_callback, agg);
+ 
+@@ -2620,7 +2622,7 @@ int r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags)
+ 	    !test_bit(WORK_ENABLE, &tp->flags) || !netif_carrier_ok(tp->netdev))
+ 		return 0;
+ 
+-	usb_fill_bulk_urb(agg->urb, tp->udev, usb_rcvbulkpipe(tp->udev, 1),
++	usb_fill_bulk_urb(agg->urb, tp->udev, tp->pipe_in,
+ 			  agg->buffer, tp->rx_buf_sz,
+ 			  (usb_complete_t)read_bulk_callback, agg);
+ 
+@@ -9507,6 +9509,12 @@ static int rtl8152_probe(struct usb_interface *intf,
+ 	tp->intf = intf;
+ 	tp->version = version;
+ 
++	tp->pipe_ctrl_in = usb_rcvctrlpipe(udev, 0);
++	tp->pipe_ctrl_out = usb_sndctrlpipe(udev, 0);
++	tp->pipe_in = usb_rcvbulkpipe(udev, 1);
++	tp->pipe_out = usb_sndbulkpipe(udev, 2);
++	tp->pipe_intr = usb_rcvintpipe(udev, 3);
++
+ 	switch (version) {
+ 	case RTL_VER_01:
+ 	case RTL_VER_02:
 -- 
-2.21.0
\ No newline at end of file
+2.26.3
\ No newline at end of file
diff --git a/a/content_digest b/N1/content_digest
index f7d14d7..4ce2ac8 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,27 +1,21 @@
-[
-  "ref\0001394712342-15778-338-Taiwan-albertk\@realtek.com\0"
-]
-[
-  "ref\0001394712342-15778-358-Taiwan-albertk\@realtek.com\0"
-]
 [
   "From\0Hayes Wang <hayeswang\@realtek.com>\0"
 ]
 [
-  "Subject\0[PATCH net v3 9/9] r8152: disable DelayPhyPwrChg\0"
+  "Subject\0[PATCH net-next] r8152: store the information of the pipes\0"
 ]
 [
-  "Date\0Wed, 22 Jan 2020 16:02:13 +0800\0"
+  "Date\0Thu, 17 Jun 2021 18:00:15 +0800\0"
 ]
 [
-  "To\0<netdev\@vger.kernel.org>\0"
+  "To\0<kuba\@kernel.org>",
+  " <davem\@davemloft.net>\0"
 ]
 [
-  "Cc\0<nic_swsd\@realtek.com>",
+  "Cc\0<netdev\@vger.kernel.org>",
+  " <nic_swsd\@realtek.com>",
   " <linux-kernel\@vger.kernel.org>",
   " <linux-usb\@vger.kernel.org>",
-  " <pmalani\@chromium.org>",
-  " <grundler\@chromium.org>",
   " Hayes Wang <hayeswang\@realtek.com>\0"
 ]
 [
@@ -31,59 +25,88 @@
   "b\0"
 ]
 [
-  "When enabling this, the device would wait an internal signal which\n",
-  "wouldn't be triggered. Then, the device couldn't enter P3 mode, so\n",
-  "the power consumption is increased.\n",
+  "Store the information of the pipes to avoid calling usb_rcvctrlpipe(),\n",
+  "usb_sndctrlpipe(), usb_rcvbulkpipe(), usb_sndbulkpipe(), and\n",
+  "usb_rcvintpipe() frequently.\n",
   "\n",
   "Signed-off-by: Hayes Wang <hayeswang\@realtek.com>\n",
   "---\n",
-  " drivers/net/usb/r8152.c | 10 +++++++++-\n",
-  " 1 file changed, 9 insertions(+), 1 deletion(-)\n",
+  " drivers/net/usb/r8152.c | 18 +++++++++++++-----\n",
+  " 1 file changed, 13 insertions(+), 5 deletions(-)\n",
   "\n",
   "diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c\n",
-  "index c037fc7adcea..3f425f974d03 100644\n",
+  "index 85039e17f4cd..62cd48dc2878 100644\n",
   "--- a/drivers/net/usb/r8152.c\n",
   "+++ b/drivers/net/usb/r8152.c\n",
-  "\@\@ -31,7 +31,7 \@\@\n",
-  " #define NETNEXT_VERSION\t\t\"11\"\n",
+  "\@\@ -931,6 +931,8 \@\@ struct r8152 {\n",
+  " \tu32 rx_pending;\n",
+  " \tu32 fc_pause_on, fc_pause_off;\n",
   " \n",
-  " /* Information for net */\n",
-  "-#define NET_VERSION\t\t\"10\"\n",
-  "+#define NET_VERSION\t\t\"11\"\n",
+  "+\tunsigned int pipe_in, pipe_out, pipe_intr, pipe_ctrl_in, pipe_ctrl_out;\n",
+  "+\n",
+  " \tu32 support_2500full:1;\n",
+  " \tu32 lenovo_macpassthru:1;\n",
+  " \tu32 dell_tb_rx_agg_bug:1;\n",
+  "\@\@ -1198,7 +1200,7 \@\@ int get_registers(struct r8152 *tp, u16 value, u16 index, u16 size, void *data)\n",
+  " \tif (!tmp)\n",
+  " \t\treturn -ENOMEM;\n",
   " \n",
-  " #define DRIVER_VERSION\t\t\"v1.\" NETNEXT_VERSION \".\" NET_VERSION\n",
-  " #define DRIVER_AUTHOR \"Realtek linux nic maintainers <nic_swsd\@realtek.com>\"\n",
-  "\@\@ -109,6 +109,7 \@\@\n",
-  " #define PLA_BP_EN\t\t0xfc38\n",
+  "-\tret = usb_control_msg(tp->udev, usb_rcvctrlpipe(tp->udev, 0),\n",
+  "+\tret = usb_control_msg(tp->udev, tp->pipe_ctrl_in,\n",
+  " \t\t\t      RTL8152_REQ_GET_REGS, RTL8152_REQT_READ,\n",
+  " \t\t\t      value, index, tmp, size, 500);\n",
+  " \tif (ret < 0)\n",
+  "\@\@ -1221,7 +1223,7 \@\@ int set_registers(struct r8152 *tp, u16 value, u16 index, u16 size, void *data)\n",
+  " \tif (!tmp)\n",
+  " \t\treturn -ENOMEM;\n",
   " \n",
-  " #define USB_USB2PHY\t\t0xb41e\n",
-  "+#define USB_SSPHYLINK1\t\t0xb426\n",
-  " #define USB_SSPHYLINK2\t\t0xb428\n",
-  " #define USB_U2P3_CTRL\t\t0xb460\n",
-  " #define USB_CSR_DUMMY1\t\t0xb464\n",
-  "\@\@ -384,6 +385,9 \@\@\n",
-  " #define USB2PHY_SUSPEND\t\t0x0001\n",
-  " #define USB2PHY_L1\t\t0x0002\n",
+  "-\tret = usb_control_msg(tp->udev, usb_sndctrlpipe(tp->udev, 0),\n",
+  "+\tret = usb_control_msg(tp->udev, tp->pipe_ctrl_out,\n",
+  " \t\t\t      RTL8152_REQ_SET_REGS, RTL8152_REQT_WRITE,\n",
+  " \t\t\t      value, index, tmp, size, 500);\n",
   " \n",
-  "+/* USB_SSPHYLINK1 */\n",
-  "+#define DELAY_PHY_PWR_CHG\tBIT(1)\n",
-  "+\n",
-  " /* USB_SSPHYLINK2 */\n",
-  " #define pwd_dn_scale_mask\t0x3ffe\n",
-  " #define pwd_dn_scale(x)\t\t((x) << 1)\n",
-  "\@\@ -4994,6 +4998,10 \@\@ static void rtl8153_up(struct r8152 *tp)\n",
-  " \tocp_data &= ~LANWAKE_PIN;\n",
-  " \tocp_write_byte(tp, MCU_TYPE_PLA, PLA_LWAKE_CTRL_REG, ocp_data);\n",
+  "\@\@ -2041,7 +2043,7 \@\@ static int alloc_all_mem(struct r8152 *tp)\n",
+  " \t\tgoto err1;\n",
   " \n",
-  "+\tocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_SSPHYLINK1);\n",
-  "+\tocp_data &= ~DELAY_PHY_PWR_CHG;\n",
-  "+\tocp_write_word(tp, MCU_TYPE_USB, USB_SSPHYLINK1, ocp_data);\n",
-  "+\n",
-  " \tr8153_aldps_en(tp, true);\n",
+  " \ttp->intr_interval = (int)ep_intr->desc.bInterval;\n",
+  "-\tusb_fill_int_urb(tp->intr_urb, tp->udev, usb_rcvintpipe(tp->udev, 3),\n",
+  "+\tusb_fill_int_urb(tp->intr_urb, tp->udev, tp->pipe_intr,\n",
+  " \t\t\t tp->intr_buff, INTBUFSIZE, intr_callback,\n",
+  " \t\t\t tp, tp->intr_interval);\n",
   " \n",
-  " \tswitch (tp->version) {\n",
+  "\@\@ -2305,7 +2307,7 \@\@ static int r8152_tx_agg_fill(struct r8152 *tp, struct tx_agg *agg)\n",
+  " \tif (ret < 0)\n",
+  " \t\tgoto out_tx_fill;\n",
+  " \n",
+  "-\tusb_fill_bulk_urb(agg->urb, tp->udev, usb_sndbulkpipe(tp->udev, 2),\n",
+  "+\tusb_fill_bulk_urb(agg->urb, tp->udev, tp->pipe_out,\n",
+  " \t\t\t  agg->head, (int)(tx_data - (u8 *)agg->head),\n",
+  " \t\t\t  (usb_complete_t)write_bulk_callback, agg);\n",
+  " \n",
+  "\@\@ -2620,7 +2622,7 \@\@ int r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags)\n",
+  " \t    !test_bit(WORK_ENABLE, &tp->flags) || !netif_carrier_ok(tp->netdev))\n",
+  " \t\treturn 0;\n",
+  " \n",
+  "-\tusb_fill_bulk_urb(agg->urb, tp->udev, usb_rcvbulkpipe(tp->udev, 1),\n",
+  "+\tusb_fill_bulk_urb(agg->urb, tp->udev, tp->pipe_in,\n",
+  " \t\t\t  agg->buffer, tp->rx_buf_sz,\n",
+  " \t\t\t  (usb_complete_t)read_bulk_callback, agg);\n",
+  " \n",
+  "\@\@ -9507,6 +9509,12 \@\@ static int rtl8152_probe(struct usb_interface *intf,\n",
+  " \ttp->intf = intf;\n",
+  " \ttp->version = version;\n",
+  " \n",
+  "+\ttp->pipe_ctrl_in = usb_rcvctrlpipe(udev, 0);\n",
+  "+\ttp->pipe_ctrl_out = usb_sndctrlpipe(udev, 0);\n",
+  "+\ttp->pipe_in = usb_rcvbulkpipe(udev, 1);\n",
+  "+\ttp->pipe_out = usb_sndbulkpipe(udev, 2);\n",
+  "+\ttp->pipe_intr = usb_rcvintpipe(udev, 3);\n",
+  "+\n",
+  " \tswitch (version) {\n",
+  " \tcase RTL_VER_01:\n",
+  " \tcase RTL_VER_02:\n",
   "-- \n",
-  "2.21.0"
+  "2.26.3"
 ]
 
-9617648493e476bae23f1986b4be1d3619a9ebb1ebb75c3b102b1c6e902f0dd6
+07655c45c51d1e049b7582c090ba757cffca9f9dc14258674bf75c98182cb697

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).