Message ID | 20170922190604.108155-1-grundler@chromium.org |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Series | r8152: add Linksys USB3GIGV1 id | expand |
Am Freitag, den 22.09.2017, 12:06 -0700 schrieb Grant Grundler: > This Linksys dongle by default comes up in cdc_ether mode. > This patch allows r8152 to claim the device: > Bus 002 Device 002: ID 13b1:0041 Linksys Hi, have you tested this in case cdc_ether is for some reason already loaded? The patch seems to enable r8152 but does not disable cdc_ether. Regards Oliver
[grrhmail...sorry! resending as plain text] Hallo Oliver! On Mon, Sep 25, 2017 at 7:51 AM, Oliver Neukum <oneukum@suse.com> wrote: > Am Freitag, den 22.09.2017, 12:06 -0700 schrieb Grant Grundler: > > This Linksys dongle by default comes up in cdc_ether mode. > > This patch allows r8152 to claim the device: > > Bus 002 Device 002: ID 13b1:0041 Linksys > > Hi, > > have you tested this in case cdc_ether is for some reason already > loaded? I did not consider testing this case since it's not possible on a normal chromeos system (the entire root file system is signed for normal users and get's rebooted after an update). I could test this in developer mode of course. Did you expect both driver probe routines to claim the device and wreak havoc with the device? > The patch seems to enable r8152 but does not disable cdc_ether. Correct. r8152 happens to claim the device before cdc_ether does - I thought because cdc_ether is a class driver and only gets picked up after vendor specific drivers are probed. Is that correct? I didn't realize cdc_ether has a blacklist to make sure RTL8152|RTL8153 devices are not picked up by cdc_ether. Would you prefer I add this device to the blacklist in the same patch? cheers, grant > > Regards > Oliver >
On Mon, Sep 25, 2017 at 1:17 PM, Grant Grundler <grundler@chromium.org> wrote: ... > I didn't realize cdc_ether has a blacklist to make sure > RTL8152|RTL8153 devices are not picked up by cdc_ether. Would you > prefer I add this device to the blacklist in the same patch? I've sent a V2 which also updates the blacklist in cdc_ether. cheers, grant
On Mon, Sep 25, 2017 at 01:17:32PM -0700, Grant Grundler wrote: > Correct. r8152 happens to claim the device before cdc_ether does - I > thought because cdc_ether is a class driver and only gets picked up > after vendor specific drivers are probed. Is that correct? Nope, there is not "priority" scheme of binding some drivers to devices instead of others at all in Linux. The whole scheme is "first in the list", and has always been that way. And yes, people have talked about changing this for decades now, but no one has come up with any working patch, for the obvious reasons[1]. thanks, greg k-h [1] exercise is left for the reader :)
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index ceb78e2ea4f0..941ece08ba78 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -613,6 +613,7 @@ enum rtl8152_flags { #define VENDOR_ID_MICROSOFT 0x045e #define VENDOR_ID_SAMSUNG 0x04e8 #define VENDOR_ID_LENOVO 0x17ef +#define VENDOR_ID_LINKSYS 0x13b1 #define VENDOR_ID_NVIDIA 0x0955 #define MCU_TYPE_PLA 0x0100 @@ -5316,6 +5317,7 @@ static const struct usb_device_id rtl8152_table[] = { {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x7205)}, {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x720c)}, {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x7214)}, + {REALTEK_USB_DEVICE(VENDOR_ID_LINKSYS, 0x0041)}, {REALTEK_USB_DEVICE(VENDOR_ID_NVIDIA, 0x09ff)}, {} };
This Linksys dongle by default comes up in cdc_ether mode. This patch allows r8152 to claim the device: Bus 002 Device 002: ID 13b1:0041 Linksys Signed-off-by: Grant Grundler <grundler@chromium.org> --- drivers/net/usb/r8152.c | 2 ++ 1 file changed, 2 insertions(+) This was tested on chromeos-3.14, chromeos-3.18, and chromeos-4.4 kernels with a mix of ARM/x86-64 systems.