aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.10/950-0555-r8152-support-new-chips.patch
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2023-09-24 19:01:52 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2023-09-24 19:01:52 +0200
commit35985454a6032bfac0d29b9976d856a89580c01c (patch)
tree2bcb0dcde8818a0a98c7c571292ec89ee050c5bb /target/linux/bcm27xx/patches-5.10/950-0555-r8152-support-new-chips.patch
parent92a0dd2447bda9a6d5440f4a94d9b617406e3f76 (diff)
downloadupstream-35985454a6032bfac0d29b9976d856a89580c01c.tar.gz
upstream-35985454a6032bfac0d29b9976d856a89580c01c.tar.bz2
upstream-35985454a6032bfac0d29b9976d856a89580c01c.zip
kernel: bump 5.10 to 5.10.196
Removed because already in upstream: target/linux/bcm53xx/patches-5.10/030-v5.11-0002-ARM-dts-BCM5301X-Harmonize-EHCI-OHCI-DT-nodes-name.patch target/linux/bcm53xx/patches-5.10/033-v5.16-0019-ARM-dts-BCM53573-Describe-on-SoC-BCM53125-rev-4-swit.patch target/linux/bcm53xx/patches-5.10/040-v6.6-0005-ARM-dts-BCM53573-Drop-nonexistent-usb-cells.patch target/linux/bcm53xx/patches-5.10/040-v6.6-0006-ARM-dts-BCM53573-Add-cells-sizes-to-PCIe-node.patch target/linux/bcm53xx/patches-5.10/040-v6.6-0007-ARM-dts-BCM53573-Use-updated-spi-gpio-binding-proper.patch target/linux/bcm53xx/patches-5.10/040-v6.6-0008-ARM-dts-BCM5301X-Extend-RAM-to-full-256MB-for-Linksy.patch All other patches automatically rebased. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0555-r8152-support-new-chips.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.10/950-0555-r8152-support-new-chips.patch94
1 files changed, 47 insertions, 47 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0555-r8152-support-new-chips.patch b/target/linux/bcm27xx/patches-5.10/950-0555-r8152-support-new-chips.patch
index e720452c13..de78ed0d9e 100644
--- a/target/linux/bcm27xx/patches-5.10/950-0555-r8152-support-new-chips.patch
+++ b/target/linux/bcm27xx/patches-5.10/950-0555-r8152-support-new-chips.patch
@@ -379,7 +379,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/* Maximum number of multicast addresses to filter (vs. Rx-all-multicast).
* The RTL chips use a 64 element hash table based on the Ethernet CRC.
-@@ -2609,7 +2714,7 @@ static netdev_tx_t rtl8152_start_xmit(st
+@@ -2612,7 +2717,7 @@ static netdev_tx_t rtl8152_start_xmit(st
static void r8152b_reset_packet_filter(struct r8152 *tp)
{
@@ -388,7 +388,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_FMC);
ocp_data &= ~FMC_FCR_MCU_EN;
-@@ -2620,14 +2725,47 @@ static void r8152b_reset_packet_filter(s
+@@ -2623,14 +2728,47 @@ static void r8152b_reset_packet_filter(s
static void rtl8152_nic_reset(struct r8152 *tp)
{
@@ -442,7 +442,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
}
-@@ -2636,9 +2774,9 @@ static void set_tx_qlen(struct r8152 *tp
+@@ -2639,9 +2777,9 @@ static void set_tx_qlen(struct r8152 *tp
tp->tx_qlen = agg_buf_sz / (mtu_to_size(tp->netdev->mtu) + sizeof(struct tx_desc));
}
@@ -454,7 +454,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
static void rtl_eee_plus_en(struct r8152 *tp, bool enable)
-@@ -2798,6 +2936,7 @@ static int rtl_enable(struct r8152 *tp)
+@@ -2801,6 +2939,7 @@ static int rtl_enable(struct r8152 *tp)
switch (tp->version) {
case RTL_VER_08:
case RTL_VER_09:
@@ -462,7 +462,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
r8153b_rx_agg_chg_indicate(tp);
break;
default:
-@@ -2835,6 +2974,7 @@ static void r8153_set_rx_early_timeout(s
+@@ -2838,6 +2977,7 @@ static void r8153_set_rx_early_timeout(s
case RTL_VER_08:
case RTL_VER_09:
@@ -470,7 +470,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/* The RTL8153B uses USB_RX_EXTRA_AGGR_TMR for rx timeout
* primarily. For USB_RX_EARLY_TIMEOUT, we fix it to 128ns.
*/
-@@ -2844,6 +2984,18 @@ static void r8153_set_rx_early_timeout(s
+@@ -2847,6 +2987,18 @@ static void r8153_set_rx_early_timeout(s
ocp_data);
break;
@@ -489,7 +489,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
default:
break;
}
-@@ -2863,8 +3015,19 @@ static void r8153_set_rx_early_size(stru
+@@ -2866,8 +3018,19 @@ static void r8153_set_rx_early_size(stru
break;
case RTL_VER_08:
case RTL_VER_09:
@@ -509,7 +509,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
break;
default:
WARN_ON_ONCE(1);
-@@ -2874,6 +3037,8 @@ static void r8153_set_rx_early_size(stru
+@@ -2877,6 +3040,8 @@ static void r8153_set_rx_early_size(stru
static int rtl8153_enable(struct r8152 *tp)
{
@@ -518,7 +518,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (test_bit(RTL8152_UNPLUG, &tp->flags))
return -ENODEV;
-@@ -2884,15 +3049,18 @@ static int rtl8153_enable(struct r8152 *
+@@ -2887,15 +3052,18 @@ static int rtl8153_enable(struct r8152 *
rtl_set_ifg(tp, rtl8152_get_speed(tp));
@@ -540,7 +540,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
return rtl_enable(tp);
-@@ -2957,12 +3125,40 @@ static void rtl_rx_vlan_en(struct r8152
+@@ -2960,12 +3128,40 @@ static void rtl_rx_vlan_en(struct r8152
{
u32 ocp_data;
@@ -587,7 +587,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
static int rtl8152_set_features(struct net_device *dev,
-@@ -3055,6 +3251,40 @@ static void __rtl_set_wol(struct r8152 *
+@@ -3058,6 +3254,40 @@ static void __rtl_set_wol(struct r8152 *
device_set_wakeup_enable(&tp->udev->dev, false);
}
@@ -628,7 +628,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static void r8153_u1u2en(struct r8152 *tp, bool enable)
{
u8 u1u2[8];
-@@ -3114,6 +3344,9 @@ static void r8153b_ups_flags(struct r815
+@@ -3117,6 +3347,9 @@ static void r8153b_ups_flags(struct r815
if (tp->ups_info.eee_cmod_lv)
ups_flags |= UPS_FLAGS_EEE_CMOD_LV_EN;
@@ -638,7 +638,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (tp->ups_info._10m_ckdiv)
ups_flags |= UPS_FLAGS_EN_10M_CKDIV;
-@@ -3164,6 +3397,88 @@ static void r8153b_ups_flags(struct r815
+@@ -3167,6 +3400,88 @@ static void r8153b_ups_flags(struct r815
ocp_write_dword(tp, MCU_TYPE_USB, USB_UPS_FLAGS, ups_flags);
}
@@ -727,7 +727,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static void rtl_green_en(struct r8152 *tp, bool enable)
{
u16 data;
-@@ -3227,16 +3542,16 @@ static void r8153b_ups_en(struct r8152 *
+@@ -3230,16 +3545,16 @@ static void r8153b_ups_en(struct r8152 *
ocp_data |= UPS_EN | USP_PREWAKE | PHASE2_EN;
ocp_write_byte(tp, MCU_TYPE_USB, USB_POWER_CUT, ocp_data);
@@ -750,7 +750,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (ocp_read_word(tp, MCU_TYPE_USB, USB_MISC_0) & PCUT_STATUS) {
int i;
-@@ -3256,6 +3571,95 @@ static void r8153b_ups_en(struct r8152 *
+@@ -3259,6 +3574,95 @@ static void r8153b_ups_en(struct r8152 *
}
}
@@ -846,7 +846,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static void r8153_power_cut_en(struct r8152 *tp, bool enable)
{
u32 ocp_data;
-@@ -3385,6 +3789,38 @@ static void rtl8153b_runtime_enable(stru
+@@ -3388,6 +3792,38 @@ static void rtl8153b_runtime_enable(stru
}
}
@@ -885,7 +885,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static void r8153_teredo_off(struct r8152 *tp)
{
u32 ocp_data;
-@@ -3405,14 +3841,19 @@ static void r8153_teredo_off(struct r815
+@@ -3408,14 +3844,19 @@ static void r8153_teredo_off(struct r815
case RTL_VER_08:
case RTL_VER_09:
@@ -908,7 +908,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
ocp_write_word(tp, MCU_TYPE_PLA, PLA_WDT6_CTRL, WDT6_SET_MODE);
-@@ -3447,6 +3888,12 @@ static void rtl_clear_bp(struct r8152 *t
+@@ -3450,6 +3891,12 @@ static void rtl_clear_bp(struct r8152 *t
break;
case RTL_VER_08:
case RTL_VER_09:
@@ -921,7 +921,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
default:
if (type == MCU_TYPE_USB) {
ocp_write_word(tp, MCU_TYPE_USB, USB_BP2_EN, 0);
-@@ -3656,6 +4103,11 @@ static bool rtl8152_is_fw_mac_ok(struct
+@@ -3659,6 +4106,11 @@ static bool rtl8152_is_fw_mac_ok(struct
case RTL_VER_06:
case RTL_VER_08:
case RTL_VER_09:
@@ -933,7 +933,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
fw_reg = 0xf800;
bp_ba_addr = PLA_BP_BA;
bp_en_addr = PLA_BP_EN;
-@@ -3679,6 +4131,11 @@ static bool rtl8152_is_fw_mac_ok(struct
+@@ -3682,6 +4134,11 @@ static bool rtl8152_is_fw_mac_ok(struct
break;
case RTL_VER_08:
case RTL_VER_09:
@@ -945,7 +945,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
fw_reg = 0xe600;
bp_ba_addr = USB_BP_BA;
bp_en_addr = USB_BP2_EN;
-@@ -4218,6 +4675,22 @@ static void r8153_eee_en(struct r8152 *t
+@@ -4221,6 +4678,22 @@ static void r8153_eee_en(struct r8152 *t
tp->ups_info.eee = enable;
}
@@ -968,7 +968,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static void rtl_eee_enable(struct r8152 *tp, bool enable)
{
switch (tp->version) {
-@@ -4239,6 +4712,7 @@ static void rtl_eee_enable(struct r8152
+@@ -4242,6 +4715,7 @@ static void rtl_eee_enable(struct r8152
case RTL_VER_06:
case RTL_VER_08:
case RTL_VER_09:
@@ -976,7 +976,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (enable) {
r8153_eee_en(tp, true);
ocp_reg_write(tp, OCP_EEE_ADV, tp->eee_adv);
-@@ -4247,6 +4721,19 @@ static void rtl_eee_enable(struct r8152
+@@ -4250,6 +4724,19 @@ static void rtl_eee_enable(struct r8152
ocp_reg_write(tp, OCP_EEE_ADV, 0);
}
break;
@@ -996,7 +996,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
default:
break;
}
-@@ -4293,6 +4780,20 @@ static void wait_oob_link_list_ready(str
+@@ -4296,6 +4783,20 @@ static void wait_oob_link_list_ready(str
}
}
@@ -1017,7 +1017,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static void r8152b_exit_oob(struct r8152 *tp)
{
u32 ocp_data;
-@@ -4343,7 +4844,7 @@ static void r8152b_exit_oob(struct r8152
+@@ -4346,7 +4847,7 @@ static void r8152b_exit_oob(struct r8152
}
/* TX share fifo free credit full threshold */
@@ -1026,7 +1026,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
ocp_write_byte(tp, MCU_TYPE_USB, USB_TX_AGG, TX_AGG_MAX_THRESHOLD);
ocp_write_dword(tp, MCU_TYPE_USB, USB_RX_BUF_TH, RX_THR_HIGH);
-@@ -4520,6 +5021,21 @@ static int r8153b_post_firmware_1(struct
+@@ -4523,6 +5024,21 @@ static int r8153b_post_firmware_1(struct
return 0;
}
@@ -1048,7 +1048,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static void r8153_aldps_en(struct r8152 *tp, bool enable)
{
u16 data;
-@@ -4722,6 +5238,13 @@ static void r8153b_hw_phy_cfg(struct r81
+@@ -4725,6 +5241,13 @@ static void r8153b_hw_phy_cfg(struct r81
set_bit(PHY_RESET, &tp->flags);
}
@@ -1062,7 +1062,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static void rtl8153_change_mtu(struct r8152 *tp)
{
ocp_write_word(tp, MCU_TYPE_PLA, PLA_RMS, mtu_to_size(tp->netdev->mtu));
-@@ -4809,6 +5332,7 @@ static void r8153_enter_oob(struct r8152
+@@ -4812,6 +5335,7 @@ static void r8153_enter_oob(struct r8152
case RTL_VER_08:
case RTL_VER_09:
@@ -1070,7 +1070,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/* Clear teredo wake event. bit[15:8] is the teredo wakeup
* type. Set it to zero. bits[7:0] are the W1C bits about
* the events. Set them to all 1 to clear them.
-@@ -4845,6 +5369,96 @@ static void rtl8153_disable(struct r8152
+@@ -4848,6 +5372,96 @@ static void rtl8153_disable(struct r8152
r8153_aldps_en(tp, true);
}
@@ -1167,7 +1167,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static int rtl8152_set_speed(struct r8152 *tp, u8 autoneg, u32 speed, u8 duplex,
u32 advertising)
{
-@@ -4893,58 +5507,73 @@ static int rtl8152_set_speed(struct r815
+@@ -4896,58 +5510,73 @@ static int rtl8152_set_speed(struct r815
tp->mii.force_media = 1;
} else {
@@ -1259,7 +1259,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
bmcr = BMCR_ANENABLE | BMCR_ANRESTART;
-@@ -5100,6 +5729,253 @@ static void rtl8153b_down(struct r8152 *
+@@ -5103,6 +5732,253 @@ static void rtl8153b_down(struct r8152 *
r8153_aldps_en(tp, true);
}
@@ -1513,7 +1513,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static bool rtl8152_in_nway(struct r8152 *tp)
{
u16 nway_state;
-@@ -5130,7 +6006,7 @@ static void set_carrier(struct r8152 *tp
+@@ -5133,7 +6009,7 @@ static void set_carrier(struct r8152 *tp
{
struct net_device *netdev = tp->netdev;
struct napi_struct *napi = &tp->napi;
@@ -1522,7 +1522,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
speed = rtl8152_get_speed(tp);
-@@ -5143,7 +6019,7 @@ static void set_carrier(struct r8152 *tp
+@@ -5146,7 +6022,7 @@ static void set_carrier(struct r8152 *tp
rtl_start_rx(tp);
clear_bit(RTL8152_SET_RX_MODE, &tp->flags);
_rtl8152_set_rx_mode(netdev);
@@ -1531,7 +1531,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
netif_wake_queue(netdev);
netif_info(tp, link, netdev, "carrier on\n");
} else if (netif_queue_stopped(netdev) &&
-@@ -5523,14 +6399,9 @@ static void r8153_init(struct r8152 *tp)
+@@ -5526,14 +6402,9 @@ static void r8153_init(struct r8152 *tp)
ocp_write_word(tp, MCU_TYPE_USB, USB_CONNECT_TIMER, 0x0001);
@@ -1547,7 +1547,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
r8153_u1u2en(tp, true);
usb_enable_lpm(tp->udev);
-@@ -5623,9 +6494,7 @@ static void r8153b_init(struct r8152 *tp
+@@ -5626,9 +6497,7 @@ static void r8153b_init(struct r8152 *tp
usb_enable_lpm(tp->udev);
/* MAC clock speed down */
@@ -1558,7 +1558,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3);
ocp_data &= ~PLA_MCU_SPDWN_EN;
-@@ -5654,6 +6523,1069 @@ static void r8153b_init(struct r8152 *tp
+@@ -5657,6 +6526,1069 @@ static void r8153b_init(struct r8152 *tp
r8152_led_configuration(tp);
}
@@ -2628,7 +2628,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static int rtl8152_pre_reset(struct usb_interface *intf)
{
struct r8152 *tp = usb_get_intfdata(intf);
-@@ -6017,6 +7949,22 @@ int rtl8152_get_link_ksettings(struct ne
+@@ -6020,6 +7952,22 @@ int rtl8152_get_link_ksettings(struct ne
mii_ethtool_get_link_ksettings(&tp->mii, cmd);
@@ -2651,7 +2651,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
mutex_unlock(&tp->control);
usb_autopm_put_interface(tp->intf);
-@@ -6060,6 +8008,10 @@ static int rtl8152_set_link_ksettings(st
+@@ -6063,6 +8011,10 @@ static int rtl8152_set_link_ksettings(st
cmd->link_modes.advertising))
advertising |= RTL_ADVERTISED_1000_FULL;
@@ -2662,7 +2662,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
mutex_lock(&tp->control);
ret = rtl8152_set_speed(tp, cmd->base.autoneg, cmd->base.speed,
-@@ -6649,6 +8601,67 @@ static int rtl_ops_init(struct r8152 *tp
+@@ -6652,6 +8604,67 @@ static int rtl_ops_init(struct r8152 *tp
tp->eee_adv = MDIO_EEE_1000T | MDIO_EEE_100TX;
break;
@@ -2730,7 +2730,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
default:
ret = -ENODEV;
dev_err(&tp->intf->dev, "Unknown Device\n");
-@@ -6662,11 +8675,13 @@ static int rtl_ops_init(struct r8152 *tp
+@@ -6665,11 +8678,13 @@ static int rtl_ops_init(struct r8152 *tp
#define FIRMWARE_8153A_3 "rtl_nic/rtl8153a-3.fw"
#define FIRMWARE_8153A_4 "rtl_nic/rtl8153a-4.fw"
#define FIRMWARE_8153B_2 "rtl_nic/rtl8153b-2.fw"
@@ -2744,7 +2744,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static int rtl_fw_init(struct r8152 *tp)
{
-@@ -6692,6 +8707,11 @@ static int rtl_fw_init(struct r8152 *tp)
+@@ -6695,6 +8710,11 @@ static int rtl_fw_init(struct r8152 *tp)
rtl_fw->pre_fw = r8153b_pre_firmware_1;
rtl_fw->post_fw = r8153b_post_firmware_1;
break;
@@ -2756,7 +2756,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
default:
break;
}
-@@ -6747,6 +8767,27 @@ u8 rtl8152_get_version(struct usb_interf
+@@ -6750,6 +8770,27 @@ u8 rtl8152_get_version(struct usb_interf
case 0x6010:
version = RTL_VER_09;
break;
@@ -2784,7 +2784,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
default:
version = RTL_VER_UNKNOWN;
dev_info(&intf->dev, "Unknown version 0x%04x\n", ocp_data);
-@@ -6859,12 +8900,29 @@ static int rtl8152_probe(struct usb_inte
+@@ -6862,12 +8903,29 @@ static int rtl8152_probe(struct usb_inte
/* MTU range: 68 - 1500 or 9194 */
netdev->min_mtu = ETH_MIN_MTU;
switch (tp->version) {
@@ -2817,7 +2817,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
break;
}
-@@ -6880,7 +8938,13 @@ static int rtl8152_probe(struct usb_inte
+@@ -6883,7 +8941,13 @@ static int rtl8152_probe(struct usb_inte
tp->advertising = RTL_ADVERTISED_10_HALF | RTL_ADVERTISED_10_FULL |
RTL_ADVERTISED_100_HALF | RTL_ADVERTISED_100_FULL;
if (tp->mii.supports_gmii) {
@@ -2832,7 +2832,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
tp->advertising |= RTL_ADVERTISED_1000_FULL;
}
tp->duplex = DUPLEX_FULL;
-@@ -6904,7 +8968,11 @@ static int rtl8152_probe(struct usb_inte
+@@ -6907,7 +8971,11 @@ static int rtl8152_probe(struct usb_inte
set_ethernet_addr(tp);
usb_set_intfdata(intf, tp);
@@ -2845,7 +2845,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
ret = register_netdev(netdev);
if (ret != 0) {
-@@ -6940,7 +9008,8 @@ static void rtl8152_disconnect(struct us
+@@ -6943,7 +9011,8 @@ static void rtl8152_disconnect(struct us
unregister_netdev(tp->netdev);
tasklet_kill(&tp->tx_tl);
cancel_delayed_work_sync(&tp->hw_phy_work);
@@ -2855,7 +2855,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
rtl8152_release_firmware(tp);
free_netdev(tp->netdev);
}
-@@ -6960,13 +9029,28 @@ static void rtl8152_disconnect(struct us
+@@ -6963,13 +9032,28 @@ static void rtl8152_disconnect(struct us
.idProduct = (prod), \
.bInterfaceClass = USB_CLASS_COMM, \
.bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET, \