Jakub Kicinski <kuba@xxxxxxxxxx> [...] > Can you describe the use case in more detail? > > AFAICT r8152 defines a match for the exact same device. > Does it not mean that which driver is used will be somewhat random > if both are built? I export rtl_get_version() from r8152. It would return none zero value if r8152 could support this device. Both r8152 and r8153_ecm would check the return value of rtl_get_version() in porbe(). Therefore, if rtl_get_version() return none zero value, the r8152 is used for the device with vendor mode. Otherwise, the r8153_ecm is used for the device with ECM mode. > > +/* Define these values to match your device */ > > +#define VENDOR_ID_REALTEK 0x0bda > > +#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 VENDOR_ID_TPLINK 0x2357 > > $ git grep 0x2357 | grep -i tplink > drivers/net/usb/cdc_ether.c:#define TPLINK_VENDOR_ID 0x2357 > drivers/net/usb/r8152.c:#define VENDOR_ID_TPLINK 0x2357 > drivers/usb/serial/option.c:#define TPLINK_VENDOR_ID 0x2357 > > $ git grep 0x17ef | grep -i lenovo > drivers/hid/hid-ids.h:#define USB_VENDOR_ID_LENOVO 0x17ef > drivers/hid/wacom.h:#define USB_VENDOR_ID_LENOVO 0x17ef > drivers/net/usb/cdc_ether.c:#define LENOVO_VENDOR_ID 0x17ef > drivers/net/usb/r8152.c:#define VENDOR_ID_LENOVO 0x17ef > > Time to consolidate those vendor id defines perhaps? It seems that there is no such header file which I could include or add the new vendor IDs. Best Regards, Hayes