OSDN Git Service

r8152: support new chip 8050
authorhayeswang <hayeswang@realtek.com>
Thu, 15 Jun 2017 06:44:02 +0000 (14:44 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 Jun 2017 18:31:55 +0000 (14:31 -0400)
The settings of the new chip are the same with RTL8152, except that
its product ID is 0x8050.

Signed-off-by: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/r8152.c

index 8589303..1f4dd8d 100644 (file)
@@ -659,6 +659,7 @@ enum rtl_version {
        RTL_VER_04,
        RTL_VER_05,
        RTL_VER_06,
+       RTL_VER_07,
        RTL_VER_MAX
 };
 
@@ -4183,6 +4184,7 @@ static int rtl8152_get_coalesce(struct net_device *netdev,
        switch (tp->version) {
        case RTL_VER_01:
        case RTL_VER_02:
+       case RTL_VER_07:
                return -EOPNOTSUPP;
        default:
                break;
@@ -4202,6 +4204,7 @@ static int rtl8152_set_coalesce(struct net_device *netdev,
        switch (tp->version) {
        case RTL_VER_01:
        case RTL_VER_02:
+       case RTL_VER_07:
                return -EOPNOTSUPP;
        default:
                break;
@@ -4301,6 +4304,7 @@ static int rtl8152_change_mtu(struct net_device *dev, int new_mtu)
        switch (tp->version) {
        case RTL_VER_01:
        case RTL_VER_02:
+       case RTL_VER_07:
                dev->mtu = new_mtu;
                return 0;
        default:
@@ -4370,6 +4374,7 @@ static int rtl_ops_init(struct r8152 *tp)
        switch (tp->version) {
        case RTL_VER_01:
        case RTL_VER_02:
+       case RTL_VER_07:
                ops->init               = r8152b_init;
                ops->enable             = rtl8152_enable;
                ops->disable            = rtl8152_disable;
@@ -4448,6 +4453,9 @@ static u8 rtl_get_version(struct usb_interface *intf)
        case 0x5c30:
                version = RTL_VER_06;
                break;
+       case 0x4800:
+               version = RTL_VER_07;
+               break;
        default:
                version = RTL_VER_UNKNOWN;
                dev_info(&intf->dev, "Unknown version 0x%04x\n", ocp_data);
@@ -4495,6 +4503,7 @@ static int rtl8152_probe(struct usb_interface *intf,
        switch (version) {
        case RTL_VER_01:
        case RTL_VER_02:
+       case RTL_VER_07:
                tp->mii.supports_gmii = 0;
                break;
        default:
@@ -4629,6 +4638,7 @@ static void rtl8152_disconnect(struct usb_interface *intf)
 
 /* table of devices that work with this driver */
 static struct usb_device_id rtl8152_table[] = {
+       {REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8050)},
        {REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8152)},
        {REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8153)},
        {REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07ab)},