On Wed, 2022-05-18 at 10:23 +0200, Sascha Hauer wrote: > Add support for the rtw8821cu chipset based on > https://github.com/ulli-kroll/rtw88-usb.git > > Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> > --- > drivers/net/wireless/realtek/rtw88/Kconfig | 11 +++ > drivers/net/wireless/realtek/rtw88/Makefile | 3 + > drivers/net/wireless/realtek/rtw88/rtw8821c.c | 23 +++++++ > drivers/net/wireless/realtek/rtw88/rtw8821c.h | 21 ++++++ > .../net/wireless/realtek/rtw88/rtw8821cu.c | 69 +++++++++++++++++++ > .../net/wireless/realtek/rtw88/rtw8821cu.h | 15 ++++ > 6 files changed, 142 insertions(+) > create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8821cu.c > create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8821cu.h > [...] > diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821cu.c > b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c > new file mode 100644 > index 0000000000000..e6710c5ebdfc8 > --- /dev/null > +++ b/drivers/net/wireless/realtek/rtw88/rtw8821cu.c > @@ -0,0 +1,69 @@ > +// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause > +/* Copyright(c) 2018-2019 Realtek Corporation > + */ > + > +#include <linux/module.h> > +#include <linux/usb.h> > +#include "main.h" > +#include "rtw8821cu.h" > +#include "usb.h" > + > +static const struct usb_device_id rtw_8821cu_id_table[] = { > + { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, > + 0xb82b, > + 0xff, 0xff, 0xff), > + .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ > + { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, > + 0xb820, > + 0xff, 0xff, 0xff), > + .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ > + { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, > + 0xC821, > + 0xff, 0xff, 0xff), > + .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ > + { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, > + 0xC820, > + 0xff, 0xff, 0xff), > + .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ > + { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, > + 0xC82A, > + 0xff, 0xff, 0xff), > + .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ > + { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, > + 0xC82B, > + 0xff, 0xff, 0xff), > + .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8821CU */ > + { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, > + 0xC811, > + 0xff, 0xff, 0xff), > + .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8811CU */ > + { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, > + 0x8811, > + 0xff, 0xff, 0xff), > + .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* 8811CU */ > + /*=== Customer ID ===*/ > + { USB_DEVICE(0x0bda, 0x2006), USB_DEVICE(RTW_USB_VENDOR_ID_REALTEK, 0x2006), > + .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* Totolink */ > + { USB_DEVICE(0x0bda, 0xc811), USB_DEVICE(RTW_USB_VENDOR_ID_REALTEK, 0xc811), > + .driver_info = (kernel_ulong_t)&(rtw8821c_hw_spec) }, /* Simplecom NW602 */ > + {}, > +}; > +MODULE_DEVICE_TABLE(usb, rtw_8821cu_id_table); > + > [...] > diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821cu.h > b/drivers/net/wireless/realtek/rtw88/rtw8821cu.h > new file mode 100644 > index 0000000000000..bddbd96aa45fa > --- /dev/null > +++ b/drivers/net/wireless/realtek/rtw88/rtw8821cu.h > @@ -0,0 +1,15 @@ > +/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ > +/* Copyright(c) 2018-2019 Realtek Corporation > + */ > + > +#ifndef __RTW_8821CU_H_ > +#define __RTW_8821CU_H_ > + > +/* USB Vendor/Product IDs */ > +#define RTW_USB_VENDOR_ID_REALTEK 0x0BDA move to usb.h > +#define RTW_USB_PRODUCT_ID_REALTEK_8811C 0xC811 > +#define RTW_USB_PRODUCT_ID_REALTEK_8821C 0xC81C These two are not used. > + > +extern struct rtw_chip_info rtw8821c_hw_spec; > + > +#endif -- Ping-Ke