-LINUX_VERSION-5.10 = .149
-LINUX_KERNEL_HASH-5.10.149 = 0f6134c537563b9cd0533924e3ce06f577cf874e7a00cf3d8e8b31222ac065d3
+LINUX_VERSION-5.10 = .150
+LINUX_KERNEL_HASH-5.10.150 = 5813bc3c5d70b0beb26de4b627baa33554d01bed8c842a2e46072cf03d74dee1
hcd->msi_enabled = 1;
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1895,6 +1895,7 @@ struct xhci_hcd {
+@@ -1896,6 +1896,7 @@ struct xhci_hcd {
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
/* support xHCI 1.0 spec USB2 hardware LPM */
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
-@@ -250,7 +250,7 @@ compressor-$(CONFIG_KERNEL_LZO) := lzo
+@@ -251,7 +251,7 @@ compressor-$(CONFIG_KERNEL_LZO) := lzo
# args (to if_changed): 1 = (this rule), 2 = platform, 3 = dts 4=dtb 5=initrd
quiet_cmd_wrap = WRAP $@
mtd->type = MTD_NORFLASH;
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
-@@ -851,6 +851,17 @@ out_error:
+@@ -843,6 +843,17 @@ out_error:
*/
static void mtd_set_dev_defaults(struct mtd_info *mtd)
{
+obj-$(CONFIG_MTD_PARSER_CYBERTAN) += parser_cybertan.o
obj-$(CONFIG_MTD_PARSER_IMAGETAG) += parser_imagetag.o
obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
- obj-$(CONFIG_MTD_PARSER_TRX) += parser_trx.o
+ obj-$(CONFIG_MTD_PARSER_TPLINK_SAFELOADER) += tplink_safeloader.o
--- a/drivers/mtd/parsers/Kconfig
+++ b/drivers/mtd/parsers/Kconfig
@@ -102,6 +102,14 @@ config MTD_OF_PARTS_LINKSYS_NS
/*
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1888,6 +1888,7 @@ struct xhci_hcd {
- #define XHCI_SG_TRB_CACHE_SIZE_QUIRK BIT_ULL(39)
+@@ -1889,6 +1889,7 @@ struct xhci_hcd {
#define XHCI_NO_SOFT_RETRY BIT_ULL(40)
#define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(42)
+ #define XHCI_SUSPEND_RESUME_CLKS BIT_ULL(43)
+#define XHCI_FAKE_DOORBELL BIT_ULL(44)
unsigned int num_active_eps;
struct tally_counter {
__le64 tx_packets;
__le64 rx_packets;
-@@ -6602,7 +6579,7 @@ static int rtl_fw_init(struct r8152 *tp)
+@@ -6604,7 +6581,7 @@ static int rtl_fw_init(struct r8152 *tp)
return 0;
}
{
struct usb_device *udev = interface_to_usbdev(intf);
u32 ocp_data = 0;
-@@ -6660,12 +6637,13 @@ static u8 rtl_get_version(struct usb_int
+@@ -6662,12 +6639,13 @@ static u8 rtl_get_version(struct usb_int
return version;
}
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
-@@ -2393,11 +2393,9 @@ static void tx_bottom(struct r8152 *tp)
+@@ -2395,11 +2395,9 @@ static void tx_bottom(struct r8152 *tp)
} while (res == 0);
}
if (test_bit(RTL8152_UNPLUG, &tp->flags))
return;
-@@ -6695,7 +6693,7 @@ static int rtl8152_probe(struct usb_inte
+@@ -6697,7 +6695,7 @@ static int rtl8152_probe(struct usb_inte
mutex_init(&tp->control);
INIT_DELAYED_WORK(&tp->schedule, rtl_work_func_t);
INIT_DELAYED_WORK(&tp->hw_phy_work, rtl_hw_phy_work_func_t);
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
-@@ -3443,59 +3443,76 @@ static void rtl_clear_bp(struct r8152 *t
+@@ -3445,59 +3445,76 @@ static void rtl_clear_bp(struct r8152 *t
ocp_write_word(tp, type, PLA_BP_BA, 0);
}
ocp_write_word(tp, MCU_TYPE_PLA, PLA_OCP_GPHY_BASE, tp->ocp_base);
-@@ -3980,7 +3997,7 @@ static void rtl8152_fw_mac_apply(struct
+@@ -3982,7 +3999,7 @@ static void rtl8152_fw_mac_apply(struct
dev_dbg(&tp->intf->dev, "successfully applied %s\n", mac->info);
}
{
struct rtl_fw *rtl_fw = &tp->rtl_fw;
const struct firmware *fw;
-@@ -4011,12 +4028,11 @@ static void rtl8152_apply_firmware(struc
+@@ -4013,12 +4030,11 @@ static void rtl8152_apply_firmware(struc
case RTL_FW_PHY_START:
key = (struct fw_phy_patch_key *)block;
key_addr = __le16_to_cpu(key->key_reg);
break;
case RTL_FW_PHY_NC:
rtl8152_fw_phy_nc_apply(tp, (struct fw_phy_nc *)block);
-@@ -4221,7 +4237,7 @@ static void rtl8152_disable(struct r8152
+@@ -4223,7 +4239,7 @@ static void rtl8152_disable(struct r8152
static void r8152b_hw_phy_cfg(struct r8152 *tp)
{
rtl_eee_enable(tp, tp->eee_en);
r8152_aldps_en(tp, true);
r8152b_enable_fc(tp);
-@@ -4503,7 +4519,7 @@ static void r8153_hw_phy_cfg(struct r815
+@@ -4505,7 +4521,7 @@ static void r8153_hw_phy_cfg(struct r815
/* disable EEE before updating the PHY parameters */
rtl_eee_enable(tp, false);
if (tp->version == RTL_VER_03) {
data = ocp_reg_read(tp, OCP_EEE_CFG);
-@@ -4577,7 +4593,7 @@ static void r8153b_hw_phy_cfg(struct r81
+@@ -4579,7 +4595,7 @@ static void r8153b_hw_phy_cfg(struct r81
/* disable EEE before updating the PHY parameters */
rtl_eee_enable(tp, false);
r8153b_green_en(tp, test_bit(GREEN_ETHERNET, &tp->flags));
-@@ -4618,7 +4634,7 @@ static void r8153b_hw_phy_cfg(struct r81
+@@ -4620,7 +4636,7 @@ static void r8153b_hw_phy_cfg(struct r81
ocp_write_word(tp, MCU_TYPE_PLA, PLA_PHY_PWR, ocp_data);
/* Advnace EEE */
data = ocp_reg_read(tp, OCP_POWER_CFG);
data |= EEE_CLKDIV_EN;
ocp_reg_write(tp, OCP_POWER_CFG, data);
-@@ -4635,7 +4651,7 @@ static void r8153b_hw_phy_cfg(struct r81
+@@ -4637,7 +4653,7 @@ static void r8153b_hw_phy_cfg(struct r81
ocp_reg_write(tp, OCP_SYSCLK_CFG, clk_div_expo(5));
tp->ups_info._250m_ckdiv = true;
static int rtl8152_set_mac_address(struct net_device *netdev, void *p)
{
struct r8152 *tp = netdev_priv(netdev);
-@@ -3182,8 +3186,6 @@ static void r8153b_ups_en(struct r8152 *
+@@ -3184,8 +3188,6 @@ static void r8153b_ups_en(struct r8152 *
ocp_data |= BIT(0);
ocp_write_byte(tp, MCU_TYPE_USB, 0xcfff, ocp_data);
} else {
ocp_data &= ~(UPS_EN | USP_PREWAKE);
ocp_write_byte(tp, MCU_TYPE_USB, USB_POWER_CUT, ocp_data);
-@@ -3191,31 +3193,20 @@ static void r8153b_ups_en(struct r8152 *
+@@ -3193,31 +3195,20 @@ static void r8153b_ups_en(struct r8152 *
ocp_data &= ~BIT(0);
ocp_write_byte(tp, MCU_TYPE_USB, 0xcfff, ocp_data);
}
}
}
-@@ -4587,13 +4578,37 @@ static void r8153b_hw_phy_cfg(struct r81
+@@ -4589,13 +4580,37 @@ static void r8153b_hw_phy_cfg(struct r81
u32 ocp_data;
u16 data;
r8153b_green_en(tp, test_bit(GREEN_ETHERNET, &tp->flags));
-@@ -5522,9 +5537,6 @@ static void r8153b_init(struct r8152 *tp
+@@ -5524,9 +5539,6 @@ static void r8153b_init(struct r8152 *tp
/* MSC timer = 0xfff * 8ms = 32760 ms */
ocp_write_word(tp, MCU_TYPE_USB, USB_MSC_TIMER, 0x0fff);
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
-@@ -3335,7 +3335,7 @@ static void rtl8153b_runtime_enable(stru
+@@ -3337,7 +3337,7 @@ static void rtl8153b_runtime_enable(stru
r8153b_ups_en(tp, false);
r8153_queue_wake(tp, false);
rtl_runtime_suspend_enable(tp, false);
r8153b_u1u2en(tp, true);
}
}
-@@ -5028,7 +5028,7 @@ static void rtl8153b_up(struct r8152 *tp
+@@ -5030,7 +5030,7 @@ static void rtl8153b_up(struct r8152 *tp
r8153_aldps_en(tp, true);
r8153b_u1u2en(tp, true);
}
-@@ -5550,8 +5550,9 @@ static void r8153b_init(struct r8152 *tp
+@@ -5552,8 +5552,9 @@ static void r8153b_init(struct r8152 *tp
ocp_data |= POLL_LINK_CHG;
ocp_write_word(tp, MCU_TYPE_PLA, PLA_EXTRA_STATUS, ocp_data);
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
-@@ -5735,6 +5735,9 @@ static int rtl8152_runtime_suspend(struc
+@@ -5737,6 +5737,9 @@ static int rtl8152_runtime_suspend(struc
struct net_device *netdev = tp->netdev;
int ret = 0;
set_bit(SELECTIVE_SUSPEND, &tp->flags);
smp_mb__after_atomic();
-@@ -6134,6 +6137,11 @@ rtl_ethtool_get_eee(struct net_device *n
+@@ -6136,6 +6139,11 @@ rtl_ethtool_get_eee(struct net_device *n
struct r8152 *tp = netdev_priv(net);
int ret;
ret = usb_autopm_get_interface(tp->intf);
if (ret < 0)
goto out;
-@@ -6156,6 +6164,11 @@ rtl_ethtool_set_eee(struct net_device *n
+@@ -6158,6 +6166,11 @@ rtl_ethtool_set_eee(struct net_device *n
struct r8152 *tp = netdev_priv(net);
int ret;
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
-@@ -6571,7 +6571,7 @@ static int rtl_ops_init(struct r8152 *tp
+@@ -6573,7 +6573,7 @@ static int rtl_ops_init(struct r8152 *tp
default:
ret = -ENODEV;
break;
}
-@@ -6828,7 +6828,7 @@ static int rtl8152_probe(struct usb_inte
+@@ -6830,7 +6830,7 @@ static int rtl8152_probe(struct usb_inte
ret = register_netdev(netdev);
if (ret != 0) {
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
-@@ -2632,21 +2632,24 @@ static inline u8 rtl8152_get_speed(struc
+@@ -2634,21 +2634,24 @@ static inline u8 rtl8152_get_speed(struc
return ocp_read_byte(tp, MCU_TYPE_PLA, PLA_PHYSTATUS);
}
}
static void rxdy_gated_en(struct r8152 *tp, bool enable)
-@@ -3127,10 +3130,22 @@ static void r8153b_ups_flags(struct r815
+@@ -3129,10 +3132,22 @@ static void r8153b_ups_flags(struct r815
ocp_write_dword(tp, MCU_TYPE_USB, USB_UPS_FLAGS, ups_flags);
}
if (enable) {
sram_write(tp, 0x8045, 0); /* 10M abiq&ldvbias */
sram_write(tp, 0x804d, 0x1222); /* 100M short abiq&ldvbias */
-@@ -3141,11 +3156,7 @@ static void r8153b_green_en(struct r8152
+@@ -3143,11 +3158,7 @@ static void r8153b_green_en(struct r8152
sram_write(tp, 0x805d, 0x2444); /* 1000M short abiq&ldvbias */
}
/* PLA_MTPS */
#define MTPS_JUMBO (12 * 1024 / 64)
-@@ -2747,6 +2750,29 @@ static int rtl_stop_rx(struct r8152 *tp)
+@@ -2749,6 +2752,29 @@ static int rtl_stop_rx(struct r8152 *tp)
return 0;
}
static inline void r8153b_rx_agg_chg_indicate(struct r8152 *tp)
{
ocp_write_byte(tp, MCU_TYPE_USB, USB_UPT_RXDMA_OWN,
-@@ -2850,6 +2876,8 @@ static int rtl8153_enable(struct r8152 *
+@@ -2852,6 +2878,8 @@ static int rtl8153_enable(struct r8152 *
r8153_set_rx_early_timeout(tp);
r8153_set_rx_early_size(tp);
/**
* struct fw_mac - a firmware block used by RTL_FW_PLA and RTL_FW_USB.
* The layout of the firmware block is:
-@@ -3800,10 +3808,7 @@ static long rtl8152_check_firmware(struc
+@@ -3802,10 +3810,7 @@ static long rtl8152_check_firmware(struc
{
const struct firmware *fw = rtl_fw->fw;
struct fw_header *fw_hdr = (struct fw_header *)fw->data;
long ret = -EFAULT;
int i;
-@@ -3832,50 +3837,52 @@ static long rtl8152_check_firmware(struc
+@@ -3834,50 +3839,52 @@ static long rtl8152_check_firmware(struc
goto fail;
goto fw_end;
case RTL_FW_PLA:
dev_err(&tp->intf->dev,
"Check PHY_STOP fail\n");
goto fail;
-@@ -3886,28 +3893,28 @@ static long rtl8152_check_firmware(struc
+@@ -3888,28 +3895,28 @@ static long rtl8152_check_firmware(struc
"Invalid length for PHY_STOP\n");
goto fail;
}
break;
default:
-@@ -3921,7 +3928,7 @@ static long rtl8152_check_firmware(struc
+@@ -3923,7 +3930,7 @@ static long rtl8152_check_firmware(struc
}
fw_end:
static
int get_registers(struct r8152 *tp, u16 value, u16 index, u16 size, void *data)
-@@ -2632,10 +2630,7 @@ static void rtl8152_nic_reset(struct r81
+@@ -2634,10 +2632,7 @@ static void rtl8152_nic_reset(struct r81
static void set_tx_qlen(struct r8152 *tp)
{
}
static inline u8 rtl8152_get_speed(struct r8152 *tp)
-@@ -4724,6 +4719,12 @@ static void r8153b_hw_phy_cfg(struct r81
+@@ -4726,6 +4721,12 @@ static void r8153b_hw_phy_cfg(struct r81
set_bit(PHY_RESET, &tp->flags);
}
static void r8153_first_init(struct r8152 *tp)
{
u32 ocp_data;
-@@ -4756,9 +4757,7 @@ static void r8153_first_init(struct r815
+@@ -4758,9 +4759,7 @@ static void r8153_first_init(struct r815
rtl_rx_vlan_en(tp, tp->netdev->features & NETIF_F_HW_VLAN_CTAG_RX);
ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_TCR0);
ocp_data |= TCR0_AUTO_FIFO;
-@@ -4793,8 +4792,7 @@ static void r8153_enter_oob(struct r8152
+@@ -4795,8 +4794,7 @@ static void r8153_enter_oob(struct r8152
wait_oob_link_list_ready(tp);
switch (tp->version) {
case RTL_VER_03:
-@@ -6495,12 +6493,21 @@ static int rtl8152_change_mtu(struct net
+@@ -6497,12 +6495,21 @@ static int rtl8152_change_mtu(struct net
dev->mtu = new_mtu;
if (netif_running(dev)) {
}
mutex_unlock(&tp->control);
-@@ -6589,6 +6596,7 @@ static int rtl_ops_init(struct r8152 *tp
+@@ -6591,6 +6598,7 @@ static int rtl_ops_init(struct r8152 *tp
ops->in_nway = rtl8153_in_nway;
ops->hw_phy_cfg = r8153_hw_phy_cfg;
ops->autosuspend_en = rtl8153_runtime_enable;
if (tp->udev->speed < USB_SPEED_SUPER)
tp->rx_buf_sz = 16 * 1024;
else
-@@ -6610,6 +6618,7 @@ static int rtl_ops_init(struct r8152 *tp
+@@ -6612,6 +6620,7 @@ static int rtl_ops_init(struct r8152 *tp
ops->in_nway = rtl8153_in_nway;
ops->hw_phy_cfg = r8153b_hw_phy_cfg;
ops->autosuspend_en = rtl8153b_runtime_enable;
tp->rx_buf_sz = 32 * 1024;
tp->eee_en = true;
tp->eee_adv = MDIO_EEE_1000T | MDIO_EEE_100TX;
-@@ -6830,7 +6839,7 @@ static int rtl8152_probe(struct usb_inte
+@@ -6832,7 +6841,7 @@ static int rtl8152_probe(struct usb_inte
netdev->max_mtu = ETH_DATA_LEN;
break;
default:
/* 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.
-@@ -2606,7 +2711,7 @@ static netdev_tx_t rtl8152_start_xmit(st
+@@ -2608,7 +2713,7 @@ static netdev_tx_t rtl8152_start_xmit(st
static void r8152b_reset_packet_filter(struct r8152 *tp)
{
ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_FMC);
ocp_data &= ~FMC_FCR_MCU_EN;
-@@ -2617,14 +2722,47 @@ static void r8152b_reset_packet_filter(s
+@@ -2619,14 +2724,47 @@ static void r8152b_reset_packet_filter(s
static void rtl8152_nic_reset(struct r8152 *tp)
{
}
}
-@@ -2633,9 +2771,9 @@ static void set_tx_qlen(struct r8152 *tp
+@@ -2635,9 +2773,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));
}
}
static void rtl_eee_plus_en(struct r8152 *tp, bool enable)
-@@ -2795,6 +2933,7 @@ static int rtl_enable(struct r8152 *tp)
+@@ -2797,6 +2935,7 @@ static int rtl_enable(struct r8152 *tp)
switch (tp->version) {
case RTL_VER_08:
case RTL_VER_09:
r8153b_rx_agg_chg_indicate(tp);
break;
default:
-@@ -2832,6 +2971,7 @@ static void r8153_set_rx_early_timeout(s
+@@ -2834,6 +2973,7 @@ static void r8153_set_rx_early_timeout(s
case RTL_VER_08:
case RTL_VER_09:
/* The RTL8153B uses USB_RX_EXTRA_AGGR_TMR for rx timeout
* primarily. For USB_RX_EARLY_TIMEOUT, we fix it to 128ns.
*/
-@@ -2841,6 +2981,18 @@ static void r8153_set_rx_early_timeout(s
+@@ -2843,6 +2983,18 @@ static void r8153_set_rx_early_timeout(s
ocp_data);
break;
default:
break;
}
-@@ -2860,8 +3012,19 @@ static void r8153_set_rx_early_size(stru
+@@ -2862,8 +3014,19 @@ static void r8153_set_rx_early_size(stru
break;
case RTL_VER_08:
case RTL_VER_09:
break;
default:
WARN_ON_ONCE(1);
-@@ -2871,6 +3034,8 @@ static void r8153_set_rx_early_size(stru
+@@ -2873,6 +3036,8 @@ static void r8153_set_rx_early_size(stru
static int rtl8153_enable(struct r8152 *tp)
{
if (test_bit(RTL8152_UNPLUG, &tp->flags))
return -ENODEV;
-@@ -2881,15 +3046,18 @@ static int rtl8153_enable(struct r8152 *
+@@ -2883,15 +3048,18 @@ static int rtl8153_enable(struct r8152 *
rtl_set_ifg(tp, rtl8152_get_speed(tp));
}
return rtl_enable(tp);
-@@ -2954,12 +3122,40 @@ static void rtl_rx_vlan_en(struct r8152
+@@ -2956,12 +3124,40 @@ static void rtl_rx_vlan_en(struct r8152
{
u32 ocp_data;
}
static int rtl8152_set_features(struct net_device *dev,
-@@ -3052,6 +3248,40 @@ static void __rtl_set_wol(struct r8152 *
+@@ -3054,6 +3250,40 @@ static void __rtl_set_wol(struct r8152 *
device_set_wakeup_enable(&tp->udev->dev, false);
}
static void r8153_u1u2en(struct r8152 *tp, bool enable)
{
u8 u1u2[8];
-@@ -3111,6 +3341,9 @@ static void r8153b_ups_flags(struct r815
+@@ -3113,6 +3343,9 @@ static void r8153b_ups_flags(struct r815
if (tp->ups_info.eee_cmod_lv)
ups_flags |= UPS_FLAGS_EEE_CMOD_LV_EN;
if (tp->ups_info._10m_ckdiv)
ups_flags |= UPS_FLAGS_EN_10M_CKDIV;
-@@ -3161,6 +3394,88 @@ static void r8153b_ups_flags(struct r815
+@@ -3163,6 +3396,88 @@ static void r8153b_ups_flags(struct r815
ocp_write_dword(tp, MCU_TYPE_USB, USB_UPS_FLAGS, ups_flags);
}
static void rtl_green_en(struct r8152 *tp, bool enable)
{
u16 data;
-@@ -3224,16 +3539,16 @@ static void r8153b_ups_en(struct r8152 *
+@@ -3226,16 +3541,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);
if (ocp_read_word(tp, MCU_TYPE_USB, USB_MISC_0) & PCUT_STATUS) {
int i;
-@@ -3253,6 +3568,95 @@ static void r8153b_ups_en(struct r8152 *
+@@ -3255,6 +3570,95 @@ static void r8153b_ups_en(struct r8152 *
}
}
static void r8153_power_cut_en(struct r8152 *tp, bool enable)
{
u32 ocp_data;
-@@ -3382,6 +3786,38 @@ static void rtl8153b_runtime_enable(stru
+@@ -3384,6 +3788,38 @@ static void rtl8153b_runtime_enable(stru
}
}
static void r8153_teredo_off(struct r8152 *tp)
{
u32 ocp_data;
-@@ -3402,14 +3838,19 @@ static void r8153_teredo_off(struct r815
+@@ -3404,14 +3840,19 @@ static void r8153_teredo_off(struct r815
case RTL_VER_08:
case RTL_VER_09:
}
ocp_write_word(tp, MCU_TYPE_PLA, PLA_WDT6_CTRL, WDT6_SET_MODE);
-@@ -3444,6 +3885,12 @@ static void rtl_clear_bp(struct r8152 *t
+@@ -3446,6 +3887,12 @@ static void rtl_clear_bp(struct r8152 *t
break;
case RTL_VER_08:
case RTL_VER_09:
default:
if (type == MCU_TYPE_USB) {
ocp_write_word(tp, MCU_TYPE_USB, USB_BP2_EN, 0);
-@@ -3653,6 +4100,11 @@ static bool rtl8152_is_fw_mac_ok(struct
+@@ -3655,6 +4102,11 @@ static bool rtl8152_is_fw_mac_ok(struct
case RTL_VER_06:
case RTL_VER_08:
case RTL_VER_09:
fw_reg = 0xf800;
bp_ba_addr = PLA_BP_BA;
bp_en_addr = PLA_BP_EN;
-@@ -3676,6 +4128,11 @@ static bool rtl8152_is_fw_mac_ok(struct
+@@ -3678,6 +4130,11 @@ static bool rtl8152_is_fw_mac_ok(struct
break;
case RTL_VER_08:
case RTL_VER_09:
fw_reg = 0xe600;
bp_ba_addr = USB_BP_BA;
bp_en_addr = USB_BP2_EN;
-@@ -4215,6 +4672,22 @@ static void r8153_eee_en(struct r8152 *t
+@@ -4217,6 +4674,22 @@ static void r8153_eee_en(struct r8152 *t
tp->ups_info.eee = enable;
}
static void rtl_eee_enable(struct r8152 *tp, bool enable)
{
switch (tp->version) {
-@@ -4236,6 +4709,7 @@ static void rtl_eee_enable(struct r8152
+@@ -4238,6 +4711,7 @@ static void rtl_eee_enable(struct r8152
case RTL_VER_06:
case RTL_VER_08:
case RTL_VER_09:
if (enable) {
r8153_eee_en(tp, true);
ocp_reg_write(tp, OCP_EEE_ADV, tp->eee_adv);
-@@ -4244,6 +4718,19 @@ static void rtl_eee_enable(struct r8152
+@@ -4246,6 +4720,19 @@ static void rtl_eee_enable(struct r8152
ocp_reg_write(tp, OCP_EEE_ADV, 0);
}
break;
default:
break;
}
-@@ -4290,6 +4777,20 @@ static void wait_oob_link_list_ready(str
+@@ -4292,6 +4779,20 @@ static void wait_oob_link_list_ready(str
}
}
static void r8152b_exit_oob(struct r8152 *tp)
{
u32 ocp_data;
-@@ -4340,7 +4841,7 @@ static void r8152b_exit_oob(struct r8152
+@@ -4342,7 +4843,7 @@ static void r8152b_exit_oob(struct r8152
}
/* TX share fifo free credit full threshold */
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);
-@@ -4517,6 +5018,21 @@ static int r8153b_post_firmware_1(struct
+@@ -4519,6 +5020,21 @@ static int r8153b_post_firmware_1(struct
return 0;
}
static void r8153_aldps_en(struct r8152 *tp, bool enable)
{
u16 data;
-@@ -4719,6 +5235,13 @@ static void r8153b_hw_phy_cfg(struct r81
+@@ -4721,6 +5237,13 @@ static void r8153b_hw_phy_cfg(struct r81
set_bit(PHY_RESET, &tp->flags);
}
static void rtl8153_change_mtu(struct r8152 *tp)
{
ocp_write_word(tp, MCU_TYPE_PLA, PLA_RMS, mtu_to_size(tp->netdev->mtu));
-@@ -4806,6 +5329,7 @@ static void r8153_enter_oob(struct r8152
+@@ -4808,6 +5331,7 @@ static void r8153_enter_oob(struct r8152
case RTL_VER_08:
case RTL_VER_09:
/* 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.
-@@ -4842,6 +5366,96 @@ static void rtl8153_disable(struct r8152
+@@ -4844,6 +5368,96 @@ static void rtl8153_disable(struct r8152
r8153_aldps_en(tp, true);
}
static int rtl8152_set_speed(struct r8152 *tp, u8 autoneg, u32 speed, u8 duplex,
u32 advertising)
{
-@@ -4890,58 +5504,73 @@ static int rtl8152_set_speed(struct r815
+@@ -4892,58 +5506,73 @@ static int rtl8152_set_speed(struct r815
tp->mii.force_media = 1;
} else {
}
bmcr = BMCR_ANENABLE | BMCR_ANRESTART;
-@@ -5097,6 +5726,253 @@ static void rtl8153b_down(struct r8152 *
+@@ -5099,6 +5728,253 @@ static void rtl8153b_down(struct r8152 *
r8153_aldps_en(tp, true);
}
static bool rtl8152_in_nway(struct r8152 *tp)
{
u16 nway_state;
-@@ -5127,7 +6003,7 @@ static void set_carrier(struct r8152 *tp
+@@ -5129,7 +6005,7 @@ static void set_carrier(struct r8152 *tp
{
struct net_device *netdev = tp->netdev;
struct napi_struct *napi = &tp->napi;
speed = rtl8152_get_speed(tp);
-@@ -5140,7 +6016,7 @@ static void set_carrier(struct r8152 *tp
+@@ -5142,7 +6018,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);
netif_wake_queue(netdev);
netif_info(tp, link, netdev, "carrier on\n");
} else if (netif_queue_stopped(netdev) &&
-@@ -5502,14 +6378,9 @@ static void r8153_init(struct r8152 *tp)
+@@ -5504,14 +6380,9 @@ static void r8153_init(struct r8152 *tp)
ocp_write_word(tp, MCU_TYPE_USB, USB_CONNECT_TIMER, 0x0001);
r8153_u1u2en(tp, true);
usb_enable_lpm(tp->udev);
-@@ -5600,9 +6471,7 @@ static void r8153b_init(struct r8152 *tp
+@@ -5602,9 +6473,7 @@ static void r8153b_init(struct r8152 *tp
usb_enable_lpm(tp->udev);
/* MAC clock speed down */
ocp_data = ocp_read_word(tp, MCU_TYPE_PLA, PLA_MAC_PWR_CTRL3);
ocp_data &= ~PLA_MCU_SPDWN_EN;
-@@ -5629,6 +6498,1069 @@ static void r8153b_init(struct r8152 *tp
+@@ -5631,6 +6500,1069 @@ static void r8153b_init(struct r8152 *tp
tp->coalesce = 15000; /* 15 us */
}
static int rtl8152_pre_reset(struct usb_interface *intf)
{
struct r8152 *tp = usb_get_intfdata(intf);
-@@ -5992,6 +7924,22 @@ int rtl8152_get_link_ksettings(struct ne
+@@ -5994,6 +7926,22 @@ int rtl8152_get_link_ksettings(struct ne
mii_ethtool_get_link_ksettings(&tp->mii, cmd);
mutex_unlock(&tp->control);
usb_autopm_put_interface(tp->intf);
-@@ -6035,6 +7983,10 @@ static int rtl8152_set_link_ksettings(st
+@@ -6037,6 +7985,10 @@ static int rtl8152_set_link_ksettings(st
cmd->link_modes.advertising))
advertising |= RTL_ADVERTISED_1000_FULL;
mutex_lock(&tp->control);
ret = rtl8152_set_speed(tp, cmd->base.autoneg, cmd->base.speed,
-@@ -6624,6 +8576,67 @@ static int rtl_ops_init(struct r8152 *tp
+@@ -6626,6 +8578,67 @@ static int rtl_ops_init(struct r8152 *tp
tp->eee_adv = MDIO_EEE_1000T | MDIO_EEE_100TX;
break;
default:
ret = -ENODEV;
dev_err(&tp->intf->dev, "Unknown Device\n");
-@@ -6637,11 +8650,13 @@ static int rtl_ops_init(struct r8152 *tp
+@@ -6639,11 +8652,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"
static int rtl_fw_init(struct r8152 *tp)
{
-@@ -6667,6 +8682,11 @@ static int rtl_fw_init(struct r8152 *tp)
+@@ -6669,6 +8684,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;
default:
break;
}
-@@ -6722,6 +8742,27 @@ u8 rtl8152_get_version(struct usb_interf
+@@ -6724,6 +8744,27 @@ u8 rtl8152_get_version(struct usb_interf
case 0x6010:
version = RTL_VER_09;
break;
default:
version = RTL_VER_UNKNOWN;
dev_info(&intf->dev, "Unknown version 0x%04x\n", ocp_data);
-@@ -6834,12 +8875,29 @@ static int rtl8152_probe(struct usb_inte
+@@ -6836,12 +8877,29 @@ static int rtl8152_probe(struct usb_inte
/* MTU range: 68 - 1500 or 9194 */
netdev->min_mtu = ETH_MIN_MTU;
switch (tp->version) {
break;
}
-@@ -6855,7 +8913,13 @@ static int rtl8152_probe(struct usb_inte
+@@ -6857,7 +8915,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) {
tp->advertising |= RTL_ADVERTISED_1000_FULL;
}
tp->duplex = DUPLEX_FULL;
-@@ -6879,7 +8943,11 @@ static int rtl8152_probe(struct usb_inte
+@@ -6881,7 +8945,11 @@ static int rtl8152_probe(struct usb_inte
set_ethernet_addr(tp);
usb_set_intfdata(intf, tp);
ret = register_netdev(netdev);
if (ret != 0) {
-@@ -6915,7 +8983,8 @@ static void rtl8152_disconnect(struct us
+@@ -6917,7 +8985,8 @@ static void rtl8152_disconnect(struct us
unregister_netdev(tp->netdev);
tasklet_kill(&tp->tx_tl);
cancel_delayed_work_sync(&tp->hw_phy_work);
rtl8152_release_firmware(tp);
free_netdev(tp->netdev);
}
-@@ -6935,13 +9004,28 @@ static void rtl8152_disconnect(struct us
+@@ -6937,13 +9006,28 @@ static void rtl8152_disconnect(struct us
.idProduct = (prod), \
.bInterfaceClass = USB_CLASS_COMM, \
.bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET, \
};
enum rtl_version {
-@@ -3999,6 +4060,162 @@ static int rtl_post_ram_code(struct r815
+@@ -4001,6 +4062,162 @@ static int rtl_post_ram_code(struct r815
return 0;
}
static bool rtl8152_is_fw_phy_nc_ok(struct r8152 *tp, struct fw_phy_nc *phy)
{
u32 length;
-@@ -4319,6 +4536,10 @@ static long rtl8152_check_firmware(struc
+@@ -4321,6 +4538,10 @@ static long rtl8152_check_firmware(struc
case RTL_FW_PHY_START:
if (test_bit(FW_FLAGS_START, &fw_flags) ||
test_bit(FW_FLAGS_NC, &fw_flags) ||
test_bit(FW_FLAGS_STOP, &fw_flags)) {
dev_err(&tp->intf->dev,
"check PHY_START fail\n");
-@@ -4367,7 +4588,153 @@ static long rtl8152_check_firmware(struc
+@@ -4369,7 +4590,153 @@ static long rtl8152_check_firmware(struc
goto fail;
}
__set_bit(FW_FLAGS_NC, &fw_flags);
break;
default:
dev_warn(&tp->intf->dev, "Unknown type %u is found\n",
-@@ -4390,6 +4757,143 @@ fail:
+@@ -4392,6 +4759,143 @@ fail:
return ret;
}
static void rtl8152_fw_phy_nc_apply(struct r8152 *tp, struct fw_phy_nc *phy)
{
u16 mode_reg, bp_index;
-@@ -4443,6 +4947,12 @@ static void rtl8152_fw_mac_apply(struct
+@@ -4445,6 +4949,12 @@ static void rtl8152_fw_mac_apply(struct
return;
}
rtl_clear_bp(tp, type);
/* Enable backup/restore of MACDBG. This is required after clearing PLA
-@@ -4478,7 +4988,6 @@ static void rtl8152_fw_mac_apply(struct
+@@ -4480,7 +4990,6 @@ static void rtl8152_fw_mac_apply(struct
ocp_write_word(tp, type, bp_en_addr,
__le16_to_cpu(mac->bp_en_value));
if (fw_ver_reg)
ocp_write_byte(tp, MCU_TYPE_USB, fw_ver_reg,
mac->fw_ver_data);
-@@ -4493,7 +5002,7 @@ static void rtl8152_apply_firmware(struc
+@@ -4495,7 +5004,7 @@ static void rtl8152_apply_firmware(struc
struct fw_header *fw_hdr;
struct fw_phy_patch_key *key;
u16 key_addr = 0;
if (IS_ERR_OR_NULL(rtl_fw->fw))
return;
-@@ -4515,17 +5024,40 @@ static void rtl8152_apply_firmware(struc
+@@ -4517,17 +5026,40 @@ static void rtl8152_apply_firmware(struc
rtl8152_fw_mac_apply(tp, (struct fw_mac *)block);
break;
case RTL_FW_PHY_START:
default:
break;
}
-@@ -5033,6 +5565,21 @@ static int r8153c_post_firmware_1(struct
+@@ -5035,6 +5567,21 @@ static int r8153c_post_firmware_1(struct
return 0;
}
static void r8153_aldps_en(struct r8152 *tp, bool enable)
{
u16 data;
-@@ -8651,12 +9198,16 @@ static int rtl_ops_init(struct r8152 *tp
+@@ -8653,12 +9200,16 @@ static int rtl_ops_init(struct r8152 *tp
#define FIRMWARE_8153A_4 "rtl_nic/rtl8153a-4.fw"
#define FIRMWARE_8153B_2 "rtl_nic/rtl8153b-2.fw"
#define FIRMWARE_8153C_1 "rtl_nic/rtl8153c-1.fw"
static int rtl_fw_init(struct r8152 *tp)
{
-@@ -8682,6 +9233,14 @@ static int rtl_fw_init(struct r8152 *tp)
+@@ -8684,6 +9235,14 @@ 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;
/* Information for net */
#define NET_VERSION "11"
-@@ -8108,6 +8108,39 @@ static void r8156b_init(struct r8152 *tp
+@@ -8110,6 +8110,39 @@ static void r8156b_init(struct r8152 *tp
tp->coalesce = 15000; /* 15 us */
}
static int rtl8152_pre_reset(struct usb_interface *intf)
{
struct r8152 *tp = usb_get_intfdata(intf);
-@@ -9346,10 +9379,8 @@ static int rtl8152_probe(struct usb_inte
+@@ -9348,10 +9381,8 @@ static int rtl8152_probe(struct usb_inte
if (version == RTL_VER_UNKNOWN)
return -ENODEV;
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2718,6 +2718,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2720,6 +2720,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
-@@ -2849,16 +2853,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2851,16 +2855,6 @@ static inline struct sk_buff *dev_alloc_
}
#include <linux/crc32.h>
#include <linux/if_vlan.h>
#include <linux/uaccess.h>
-@@ -6780,6 +6781,22 @@ static void rtl_tally_reset(struct r8152
+@@ -6782,6 +6783,22 @@ static void rtl_tally_reset(struct r8152
ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data);
}
static void r8152b_init(struct r8152 *tp)
{
u32 ocp_data;
-@@ -6821,6 +6838,8 @@ static void r8152b_init(struct r8152 *tp
+@@ -6823,6 +6840,8 @@ static void r8152b_init(struct r8152 *tp
ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL);
ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN);
ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data);
}
static void r8153_init(struct r8152 *tp)
-@@ -6961,6 +6980,8 @@ static void r8153_init(struct r8152 *tp)
+@@ -6963,6 +6982,8 @@ static void r8153_init(struct r8152 *tp)
tp->coalesce = COALESCE_SLOW;
break;
}
}
static void r8153b_init(struct r8152 *tp)
-@@ -7043,6 +7064,8 @@ static void r8153b_init(struct r8152 *tp
+@@ -7045,6 +7066,8 @@ static void r8153b_init(struct r8152 *tp
rtl_tally_reset(tp);
tp->coalesce = 15000; /* 15 us */
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2684,7 +2684,7 @@ static inline int pskb_network_may_pull(
+@@ -2686,7 +2686,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD
#endif
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -858,6 +858,7 @@ struct sk_buff {
- #ifdef CONFIG_TLS_DEVICE
+@@ -860,6 +860,7 @@ struct sk_buff {
__u8 decrypted:1;
#endif
+ __u8 scm_io_uring:1;
+ __u8 gro_skip:1;
#ifdef CONFIG_NET_SCHED
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
-@@ -2192,7 +2192,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat
+@@ -2193,7 +2193,7 @@ MODULE_DEVICE_TABLE(of, sdhci_msm_dt_mat
static const struct sdhci_ops sdhci_msm_ops = {
.reset = sdhci_msm_reset,
--- a/drivers/mtd/parsers/Kconfig
+++ b/drivers/mtd/parsers/Kconfig
-@@ -205,6 +205,14 @@ config MTD_SERCOMM_PARTS
+@@ -220,6 +220,14 @@ config MTD_SERCOMM_PARTS
offsets, which may differ from device to device depending on the
number and location of bad blocks on NAND.
depends on MTD && OF
--- a/drivers/mtd/parsers/Makefile
+++ b/drivers/mtd/parsers/Makefile
-@@ -14,4 +14,5 @@ obj-$(CONFIG_MTD_PARSER_TRX) += parser_
+@@ -15,4 +15,5 @@ obj-$(CONFIG_MTD_PARSER_TRX) += parser_
obj-$(CONFIG_MTD_SERCOMM_PARTS) += scpart.o
obj-$(CONFIG_MTD_SHARPSL_PARTS) += sharpslpart.o
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
-@@ -157,6 +157,7 @@ src-plat-$(CONFIG_PPC_PSERIES) += pserie
+@@ -158,6 +158,7 @@ src-plat-$(CONFIG_PPC_PSERIES) += pserie
src-plat-$(CONFIG_PPC_POWERNV) += pseries-head.S
src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S
src-plat-$(CONFIG_MVME7100) += motload-head.S mvme7100.c
src-wlib := $(sort $(src-wlib-y))
src-plat := $(sort $(src-plat-y))
-@@ -336,7 +337,7 @@ image-$(CONFIG_TQM8555) += cuImage.tqm
+@@ -337,7 +338,7 @@ image-$(CONFIG_TQM8555) += cuImage.tqm
image-$(CONFIG_TQM8560) += cuImage.tqm8560
image-$(CONFIG_SBC8548) += cuImage.sbc8548
image-$(CONFIG_KSI8560) += cuImage.ksi8560
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
-@@ -264,7 +264,6 @@ image-$(CONFIG_PPC_CHRP) += zImage.chrp
+@@ -265,7 +265,6 @@ image-$(CONFIG_PPC_CHRP) += zImage.chrp
image-$(CONFIG_PPC_EFIKA) += zImage.chrp
image-$(CONFIG_PPC_PMAC) += zImage.pmac
image-$(CONFIG_PPC_HOLLY) += dtbImage.holly
image-$(CONFIG_EPAPR_BOOT) += zImage.epapr
#
-@@ -395,15 +394,6 @@ $(obj)/dtbImage.%: vmlinux $(wrapperbits
+@@ -396,15 +395,6 @@ $(obj)/dtbImage.%: vmlinux $(wrapperbits
$(obj)/vmlinux.strip: vmlinux
$(STRIP) -s -R .comment $< -o $@