All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org,
	Jean-Francois Le Fillatre <jflf_kernel@gmx.com>,
	"David S. Miller" <davem@davemloft.net>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.19 19/38] r8152: add PID for the Lenovo OneLink+ Dock
Date: Fri, 16 Sep 2022 12:08:53 +0200	[thread overview]
Message-ID: <20220916100449.276689069@linuxfoundation.org> (raw)
In-Reply-To: <20220916100448.431016349@linuxfoundation.org>

From: Jean-Francois Le Fillatre <jflf_kernel@gmx.com>

[ Upstream commit 1bd3a383075c64d638e65d263c9267b08ee7733c ]

The Lenovo OneLink+ Dock contains an RTL8153 controller that behaves as
a broken CDC device by default. Add the custom Lenovo PID to the r8152
driver to support it properly.

Also, systems compatible with this dock provide a BIOS option to enable
MAC address passthrough (as per Lenovo document "ThinkPad Docking
Solutions 2017"). Add the custom PID to the MAC passthrough list too.

Tested on a ThinkPad 13 1st gen with the expected results:

passthrough disabled: Invalid header when reading pass-thru MAC addr
passthrough enabled:  Using pass-thru MAC addr XX:XX:XX:XX:XX:XX

Signed-off-by: Jean-Francois Le Fillatre <jflf_kernel@gmx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/usb/cdc_ether.c | 7 +++++++
 drivers/net/usb/r8152.c     | 3 +++
 2 files changed, 10 insertions(+)

diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
index 2de09ad5bac03..e11f70911acc1 100644
--- a/drivers/net/usb/cdc_ether.c
+++ b/drivers/net/usb/cdc_ether.c
@@ -777,6 +777,13 @@ static const struct usb_device_id	products[] = {
 },
 #endif
 
+/* Lenovo ThinkPad OneLink+ Dock (based on Realtek RTL8153) */
+{
+	USB_DEVICE_AND_INTERFACE_INFO(LENOVO_VENDOR_ID, 0x3054, USB_CLASS_COMM,
+			USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
+	.driver_info = 0,
+},
+
 /* ThinkPad USB-C Dock (based on Realtek RTL8153) */
 {
 	USB_DEVICE_AND_INTERFACE_INFO(LENOVO_VENDOR_ID, 0x3062, USB_CLASS_COMM,
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
index d142ac8fcf6e2..688905ea0a6d3 100644
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
@@ -770,6 +770,7 @@ enum rtl8152_flags {
 	RX_EPROTO,
 };
 
+#define DEVICE_ID_THINKPAD_ONELINK_PLUS_DOCK		0x3054
 #define DEVICE_ID_THINKPAD_THUNDERBOLT3_DOCK_GEN2	0x3082
 #define DEVICE_ID_THINKPAD_USB_C_DONGLE			0x720c
 #define DEVICE_ID_THINKPAD_USB_C_DOCK_GEN2		0xa387
@@ -9581,6 +9582,7 @@ static bool rtl8152_supports_lenovo_macpassthru(struct usb_device *udev)
 
 	if (vendor_id == VENDOR_ID_LENOVO) {
 		switch (product_id) {
+		case DEVICE_ID_THINKPAD_ONELINK_PLUS_DOCK:
 		case DEVICE_ID_THINKPAD_THUNDERBOLT3_DOCK_GEN2:
 		case DEVICE_ID_THINKPAD_USB_C_DOCK_GEN2:
 		case DEVICE_ID_THINKPAD_USB_C_DOCK_GEN3:
@@ -9828,6 +9830,7 @@ static const struct usb_device_id rtl8152_table[] = {
 	REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x0927),
 	REALTEK_USB_DEVICE(VENDOR_ID_SAMSUNG, 0xa101),
 	REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0x304f),
+	REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0x3054),
 	REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0x3062),
 	REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0x3069),
 	REALTEK_USB_DEVICE(VENDOR_ID_LENOVO,  0x3082),
-- 
2.35.1




  parent reply	other threads:[~2022-09-16 10:27 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-16 10:08 [PATCH 5.19 00/38] 5.19.10-rc1 review Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 01/38] iommu/vt-d: Fix kdump kernels boot failure with scalable mode Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 02/38] net/mlx5: Introduce ifc bits for using software vhca id Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 03/38] net/mlx5: Use software VHCA id when its supported Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 04/38] RDMA/mlx5: Rely on RoCE fw cap instead of devlink when setting profile Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 05/38] RDMA/mlx5: Add a umr recovery flow Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 06/38] RDMA/mlx5: Fix UMR cleanup on error flow of driver init Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 07/38] ACPI: resource: skip IRQ override on AMD Zen platforms Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 08/38] Input: goodix - add support for GT1158 Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 09/38] platform/surface: aggregator_registry: Add support for Surface Laptop Go 2 Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 10/38] drm/msm/rd: Fix FIFO-full deadlock Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 11/38] peci: cpu: Fix use-after-free in adev_release() Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 12/38] hwmon: (pmbus) Use dev_err_probe() to filter -EPROBE_DEFER error messages Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 13/38] kvm: x86: mmu: Always flush TLBs when enabling dirty logging Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 14/38] dt-bindings: iio: gyroscope: bosch,bmg160: correct number of pins Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 15/38] HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 16/38] hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 17/38] Bluetooth: MGMT: Fix Get Device Flags Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 18/38] tg3: Disable tg3 device on system reboot to avoid triggering AER Greg Kroah-Hartman
2022-09-16 10:08 ` Greg Kroah-Hartman [this message]
2022-09-16 10:08 ` [PATCH 5.19 20/38] gpio: mockup: remove gpio debugfs when remove device Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 21/38] ieee802154: cc2520: add rc code in cc2520_tx() Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 22/38] Input: iforce - add support for Boeder Force Feedback Wheel Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 23/38] drm/amdgpu: disable FRU access on special SIENNA CICHLID card Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 24/38] drm/amd/pm: use vbios carried pptable for all SMU13.0.7 SKUs Greg Kroah-Hartman
2022-09-16 10:08 ` [PATCH 5.19 25/38] nvme-pci: add NVME_QUIRK_BOGUS_NID for Lexar NM610 Greg Kroah-Hartman
2022-09-16 10:09 ` [PATCH 5.19 26/38] nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change() Greg Kroah-Hartman
2022-09-16 10:09 ` [PATCH 5.19 27/38] drm/amd/amdgpu: skip ucode loading if ucode_size == 0 Greg Kroah-Hartman
2022-09-16 10:09 ` [PATCH 5.19 28/38] net: dsa: hellcreek: Print warning only once Greg Kroah-Hartman
2022-09-16 10:09 ` [PATCH 5.19 29/38] perf/arm_pmu_platform: fix tests for platform_get_irq() failure Greg Kroah-Hartman
2022-09-16 10:09 ` [PATCH 5.19 30/38] platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes Greg Kroah-Hartman
2022-09-16 10:09 ` [PATCH 5.19 31/38] usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS Greg Kroah-Hartman
2022-09-16 10:09 ` [PATCH 5.19 32/38] platform/x86: asus-wmi: Increase FAN_CURVE_BUF_LEN to 32 Greg Kroah-Hartman
2022-09-16 10:09 ` [PATCH 5.19 33/38] LoongArch: Fix section mismatch due to acpi_os_ioremap() Greg Kroah-Hartman
2022-09-16 10:09 ` [PATCH 5.19 34/38] LoongArch: Fix arch_remove_memory() undefined build error Greg Kroah-Hartman
2022-09-16 10:09 ` [PATCH 5.19 35/38] gpio: 104-dio-48e: Make irq_chip immutable Greg Kroah-Hartman
2022-09-16 10:09 ` [PATCH 5.19 36/38] gpio: 104-idio-16: " Greg Kroah-Hartman
2022-09-16 10:09 ` [PATCH 5.19 37/38] RDMA/irdma: Use s/g array in post send only when its valid Greg Kroah-Hartman
2022-09-16 10:09 ` [PATCH 5.19 38/38] Input: goodix - add compatible string for GT1158 Greg Kroah-Hartman
2022-09-16 21:49 ` [PATCH 5.19 00/38] 5.19.10-rc1 review Guenter Roeck
2022-09-16 22:35 ` Ron Economos
2022-09-17  7:26 ` Fenil Jain
2022-09-17  8:16 ` Bagas Sanjaya
2022-09-17 14:29 ` Sudip Mukherjee (Codethink)
2022-09-17 15:03 ` Naresh Kamboju
2022-09-19  0:12 ` Justin Forbes
2022-09-19  1:06 ` Florian Fainelli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220916100449.276689069@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=davem@davemloft.net \
    --cc=jflf_kernel@gmx.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.