Commit d9a28c5b authored by hayeswang's avatar hayeswang Committed by David S. Miller

r8152: redefine REALTEK_USB_DEVICE

Redefine REALTEK_USB_DEVICE for the desired USB interface for probe().
There are three USB interfaces for the device. USB_CLASS_COMM and
USB_CLASS_CDC_DATA are for ECM mode (config #2). USB_CLASS_VENDOR_SPEC
is for the vendor mode (config #1). However, we are not interesting
in USB_CLASS_CDC_DATA for probe(), so redefine REALTEK_USB_DEVICE
to ignore the USB interface class of USB_CLASS_CDC_DATA.
Signed-off-by: default avatarHayes Wang <hayeswang@realtek.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6ffe75eb
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <net/ip6_checksum.h> #include <net/ip6_checksum.h>
#include <uapi/linux/mdio.h> #include <uapi/linux/mdio.h>
#include <linux/mdio.h> #include <linux/mdio.h>
#include <linux/usb/cdc.h>
/* Version Information */ /* Version Information */
#define DRIVER_VERSION "v1.07.0 (2014/10/09)" #define DRIVER_VERSION "v1.07.0 (2014/10/09)"
...@@ -466,9 +467,6 @@ enum rtl8152_flags { ...@@ -466,9 +467,6 @@ enum rtl8152_flags {
#define MCU_TYPE_PLA 0x0100 #define MCU_TYPE_PLA 0x0100
#define MCU_TYPE_USB 0x0000 #define MCU_TYPE_USB 0x0000
#define REALTEK_USB_DEVICE(vend, prod) \
USB_DEVICE_INTERFACE_CLASS(vend, prod, USB_CLASS_VENDOR_SPEC)
struct tally_counter { struct tally_counter {
__le64 tx_packets; __le64 tx_packets;
__le64 rx_packets; __le64 rx_packets;
...@@ -3915,11 +3913,27 @@ static void rtl8152_disconnect(struct usb_interface *intf) ...@@ -3915,11 +3913,27 @@ static void rtl8152_disconnect(struct usb_interface *intf)
} }
} }
#define REALTEK_USB_DEVICE(vend, prod) \
.match_flags = USB_DEVICE_ID_MATCH_DEVICE | \
USB_DEVICE_ID_MATCH_INT_CLASS, \
.idVendor = (vend), \
.idProduct = (prod), \
.bInterfaceClass = USB_CLASS_VENDOR_SPEC \
}, \
{ \
.match_flags = USB_DEVICE_ID_MATCH_INT_INFO | \
USB_DEVICE_ID_MATCH_DEVICE, \
.idVendor = (vend), \
.idProduct = (prod), \
.bInterfaceClass = USB_CLASS_COMM, \
.bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET, \
.bInterfaceProtocol = USB_CDC_PROTO_NONE
/* table of devices that work with this driver */ /* table of devices that work with this driver */
static struct usb_device_id rtl8152_table[] = { static struct usb_device_id rtl8152_table[] = {
{USB_DEVICE(VENDOR_ID_REALTEK, 0x8152)}, {REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8152)},
{USB_DEVICE(VENDOR_ID_REALTEK, 0x8153)}, {REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8153)},
{USB_DEVICE(VENDOR_ID_SAMSUNG, 0xa101)}, {REALTEK_USB_DEVICE(VENDOR_ID_SAMSUNG, 0xa101)},
{} {}
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment