-LINUX_VERSION-5.10 = .120
-LINUX_KERNEL_HASH-5.10.120 = 5b7a756004158ece2f5e41795ba523ec201743a736e34ce41cbe09177f7d0e8b
+LINUX_VERSION-5.10 = .121
+LINUX_KERNEL_HASH-5.10.121 = 9044e7b4084afc636ccd7a7fe06439d8941b28613df79f16ce603ccca35292c6
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -281,6 +281,7 @@ static void xhci_pci_quirks(struct devic
+@@ -283,6 +283,7 @@ static void xhci_pci_quirks(struct devic
pdev->device == 0x0015) {
xhci->quirks |= XHCI_RESET_ON_RESUME;
xhci->quirks |= XHCI_ZERO_64B_REGS;
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
-@@ -1008,7 +1008,7 @@ config SND_SOC_PCM3168A_SPI
+@@ -1007,7 +1007,7 @@ config SND_SOC_PCM3168A_SPI
select REGMAP_SPI
config SND_SOC_PCM5102A
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
-@@ -2984,7 +2984,8 @@ static int _regulator_list_voltage(struc
+@@ -2987,7 +2987,8 @@ static int _regulator_list_voltage(struc
return rdev->desc->fixed_uV;
if (ops->list_voltage) {
return -EINVAL;
if (lock)
regulator_lock(rdev);
-@@ -3135,7 +3136,8 @@ int regulator_list_hardware_vsel(struct
+@@ -3138,7 +3139,8 @@ int regulator_list_hardware_vsel(struct
struct regulator_dev *rdev = regulator->rdev;
const struct regulator_ops *ops = rdev->desc->ops;
return -EINVAL;
if (ops->set_voltage_sel != regulator_set_voltage_sel_regmap)
return -EOPNOTSUPP;
-@@ -4058,6 +4060,9 @@ int regulator_set_voltage_time(struct re
+@@ -4061,6 +4063,9 @@ int regulator_set_voltage_time(struct re
for (i = 0; i < rdev->desc->n_voltages; i++) {
/* We only look for exact voltage matches here */
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
-@@ -4063,6 +4063,9 @@ int regulator_set_voltage_time(struct re
+@@ -4066,6 +4066,9 @@ int regulator_set_voltage_time(struct re
if (i < rdev->desc->linear_min_sel)
continue;
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
-@@ -2984,9 +2984,10 @@ static int _regulator_list_voltage(struc
+@@ -2987,9 +2987,10 @@ static int _regulator_list_voltage(struc
return rdev->desc->fixed_uV;
if (ops->list_voltage) {
if (lock)
regulator_lock(rdev);
ret = ops->list_voltage(rdev, selector);
-@@ -3136,9 +3137,10 @@ int regulator_list_hardware_vsel(struct
+@@ -3139,9 +3140,10 @@ int regulator_list_hardware_vsel(struct
struct regulator_dev *rdev = regulator->rdev;
const struct regulator_ops *ops = rdev->desc->ops;
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
-@@ -3147,6 +3147,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3156,6 +3156,7 @@ int spi_nor_scan(struct spi_nor *nor, co
struct device *dev = nor->dev;
struct mtd_info *mtd = &nor->mtd;
struct device_node *np = spi_nor_get_flash_node(nor);
int ret;
int i;
-@@ -3201,7 +3202,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3210,7 +3211,12 @@ int spi_nor_scan(struct spi_nor *nor, co
if (ret)
return ret;
if (ret < 0) {
pr_err("%s: failed to add hogs for %pOF\n", __func__,
rd->dn);
-@@ -1030,9 +1040,11 @@ int of_gpiochip_add(struct gpio_chip *ch
+@@ -1035,9 +1045,11 @@ int of_gpiochip_add(struct gpio_chip *ch
of_node_get(chip->of_node);
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -272,6 +272,10 @@ static void fixup_use_write_buffers(stru
+@@ -276,6 +276,10 @@ static void fixup_use_write_buffers(stru
{
struct map_info *map = mtd->priv;
struct cfi_private *cfi = map->fldrv_priv;
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -6805,15 +6805,10 @@ void __netif_napi_del(struct napi_struct
+@@ -6809,15 +6809,10 @@ void __netif_napi_del(struct napi_struct
}
EXPORT_SYMBOL(__netif_napi_del);
weight = n->weight;
/* This NAPI_STATE_SCHED test is for avoiding a race
-@@ -6833,7 +6828,7 @@ static int napi_poll(struct napi_struct
+@@ -6837,7 +6832,7 @@ static int napi_poll(struct napi_struct
n->poll, work, weight);
if (likely(work < weight))
/* Drivers must not modify the NAPI state if they
* consume the entire weight. In such cases this code
-@@ -6842,7 +6837,7 @@ static int napi_poll(struct napi_struct
+@@ -6846,7 +6841,7 @@ static int napi_poll(struct napi_struct
*/
if (unlikely(napi_disable_pending(n))) {
napi_complete(n);
}
if (n->gro_bitmask) {
-@@ -6860,12 +6855,29 @@ static int napi_poll(struct napi_struct
+@@ -6864,12 +6859,29 @@ static int napi_poll(struct napi_struct
if (unlikely(!list_empty(&n->poll_list))) {
pr_warn_once("%s: Budget exhausted after napi rescheduled\n",
n->dev ? n->dev->name : "backlog");
static int __dev_open(struct net_device *dev, struct netlink_ext_ack *extack)
{
const struct net_device_ops *ops = dev->netdev_ops;
-@@ -4267,6 +4289,21 @@ int gro_normal_batch __read_mostly = 8;
+@@ -4271,6 +4293,21 @@ int gro_normal_batch __read_mostly = 8;
static inline void ____napi_schedule(struct softnet_data *sd,
struct napi_struct *napi)
{
list_add_tail(&napi->poll_list, &sd->poll_list);
__raise_softirq_irqoff(NET_RX_SOFTIRQ);
}
-@@ -6758,6 +6795,12 @@ void netif_napi_add(struct net_device *d
+@@ -6762,6 +6799,12 @@ void netif_napi_add(struct net_device *d
set_bit(NAPI_STATE_NPSVC, &napi->state);
list_add_rcu(&napi->dev_list, &dev->napi_list);
napi_hash_add(napi);
}
EXPORT_SYMBOL(netif_napi_add);
-@@ -6774,9 +6817,28 @@ void napi_disable(struct napi_struct *n)
+@@ -6778,9 +6821,28 @@ void napi_disable(struct napi_struct *n)
hrtimer_cancel(&n->timer);
clear_bit(NAPI_STATE_DISABLE, &n->state);
static void flush_gro_hash(struct napi_struct *napi)
{
int i;
-@@ -6802,6 +6864,11 @@ void __netif_napi_del(struct napi_struct
+@@ -6806,6 +6868,11 @@ void __netif_napi_del(struct napi_struct
flush_gro_hash(napi);
napi->gro_bitmask = 0;
}
EXPORT_SYMBOL(__netif_napi_del);
-@@ -6883,6 +6950,51 @@ static int napi_poll(struct napi_struct
+@@ -6887,6 +6954,51 @@ static int napi_poll(struct napi_struct
return work;
}
* @n: NAPI context
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4293,8 +4293,9 @@ static inline void ____napi_schedule(str
+@@ -4297,8 +4297,9 @@ static inline void ____napi_schedule(str
if (test_bit(NAPI_STATE_THREADED, &napi->state)) {
/* Paired with smp_mb__before_atomic() in
* wake_up_process() when it's not NULL.
*/
thread = READ_ONCE(napi->thread);
-@@ -6768,6 +6769,49 @@ static void init_gro_hash(struct napi_st
+@@ -6772,6 +6773,49 @@ static void init_gro_hash(struct napi_st
napi->gro_bitmask = 0;
}
enum gro_result {
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4300,6 +4300,8 @@ static inline void ____napi_schedule(str
+@@ -4304,6 +4304,8 @@ static inline void ____napi_schedule(str
*/
thread = READ_ONCE(napi->thread);
if (thread) {
wake_up_process(thread);
return;
}
-@@ -6560,7 +6562,8 @@ bool napi_complete_done(struct napi_stru
+@@ -6564,7 +6566,8 @@ bool napi_complete_done(struct napi_stru
WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED));
/* If STATE_MISSED was set, leave STATE_SCHED set,
* because we will call napi->poll() one more time.
-@@ -6996,16 +6999,25 @@ static int napi_poll(struct napi_struct
+@@ -7000,16 +7003,25 @@ static int napi_poll(struct napi_struct
static int napi_thread_wait(struct napi_struct *napi)
{
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -7003,7 +7003,7 @@ static int napi_thread_wait(struct napi_
+@@ -7007,7 +7007,7 @@ static int napi_thread_wait(struct napi_
set_current_state(TASK_INTERRUPTIBLE);
/* Testing SCHED_THREADED bit here to make sure the current
* kthread owns this napi and could poll on this napi.
* Testing SCHED bit is not enough because SCHED bit might be
-@@ -7021,6 +7021,7 @@ static int napi_thread_wait(struct napi_
+@@ -7025,6 +7025,7 @@ static int napi_thread_wait(struct napi_
set_current_state(TASK_INTERRUPTIBLE);
}
__set_current_state(TASK_RUNNING);
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
-@@ -2372,6 +2372,17 @@ static void mt753x_phylink_mac_link_up(s
+@@ -2366,6 +2366,17 @@ static void mt753x_phylink_mac_link_up(s
mcr |= PMCR_RX_FC_EN;
}
mt7530_set(priv, MT7530_PMCR_P(port), mcr);
}
-@@ -2602,6 +2613,36 @@ mt753x_phy_write(struct dsa_switch *ds,
+@@ -2596,6 +2607,36 @@ mt753x_phy_write(struct dsa_switch *ds,
return priv->info->phy_write(ds, port, regnum, val);
}
static const struct dsa_switch_ops mt7530_switch_ops = {
.get_tag_protocol = mtk_get_tag_protocol,
.setup = mt753x_setup,
-@@ -2630,6 +2671,8 @@ static const struct dsa_switch_ops mt753
+@@ -2624,6 +2665,8 @@ static const struct dsa_switch_ops mt753
.phylink_mac_an_restart = mt753x_phylink_mac_an_restart,
.phylink_mac_link_down = mt753x_phylink_mac_link_down,
.phylink_mac_link_up = mt753x_phylink_mac_link_up,
static void
mt7530_stp_state_set(struct dsa_switch *ds, int port, u8 state)
{
-@@ -2653,6 +2700,8 @@ static const struct dsa_switch_ops mt753
+@@ -2647,6 +2694,8 @@ static const struct dsa_switch_ops mt753
.get_sset_count = mt7530_get_sset_count,
.port_enable = mt7530_port_enable,
.port_disable = mt7530_port_disable,
static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface)
{
struct mt7530_priv *priv = ds->priv;
-@@ -2700,6 +2740,7 @@ static const struct dsa_switch_ops mt753
+@@ -2694,6 +2734,7 @@ static const struct dsa_switch_ops mt753
.phy_write = mt753x_phy_write,
.get_ethtool_stats = mt7530_get_ethtool_stats,
.get_sset_count = mt7530_get_sset_count,
mt7530_vlan_cmd(struct mt7530_priv *priv, enum mt7530_vlan_cmd cmd, u16 vid)
{
struct mt7530_dummy_poll p;
-@@ -2746,11 +2814,15 @@ static const struct dsa_switch_ops mt753
+@@ -2740,11 +2808,15 @@ static const struct dsa_switch_ops mt753
.port_change_mtu = mt7530_port_change_mtu,
.port_max_mtu = mt7530_port_max_mtu,
.port_stp_state_set = mt7530_stp_state_set,
static int
mt7530_setup(struct dsa_switch *ds)
{
-@@ -2750,24 +2965,20 @@ static int
+@@ -2744,24 +2959,20 @@ static int
mt753x_setup(struct dsa_switch *ds)
{
struct mt7530_priv *priv = ds->priv;
}
static int mt753x_get_mac_eee(struct dsa_switch *ds, int port,
-@@ -2804,8 +3015,6 @@ static const struct dsa_switch_ops mt753
+@@ -2798,8 +3009,6 @@ static const struct dsa_switch_ops mt753
.get_tag_protocol = mtk_get_tag_protocol,
.setup = mt753x_setup,
.get_strings = mt7530_get_strings,
.get_ethtool_stats = mt7530_get_ethtool_stats,
.get_sset_count = mt7530_get_sset_count,
.set_ageing_time = mt7530_set_ageing_time,
-@@ -2988,6 +3197,9 @@ mt7530_remove(struct mdio_device *mdiode
+@@ -2982,6 +3191,9 @@ mt7530_remove(struct mdio_device *mdiode
dev_err(priv->dev, "Failed to disable io pwr: %d\n",
ret);
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -2347,6 +2347,13 @@ config UNUSED_KSYMS_WHITELIST
+@@ -2352,6 +2352,13 @@ config UNUSED_KSYMS_WHITELIST
one per line. The path can be absolute, or relative to the kernel
source tree.
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -2379,7 +2379,7 @@ config PADATA
+@@ -2384,7 +2384,7 @@ config PADATA
bool
config ASN1
help
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3650,6 +3650,11 @@ static int xmit_one(struct sk_buff *skb,
+@@ -3654,6 +3654,11 @@ static int xmit_one(struct sk_buff *skb,
if (dev_nit_active(dev))
dev_queue_xmit_nit(skb, dev);
#include "gpiolib.h"
#include "gpiolib-of.h"
-@@ -1039,3 +1041,72 @@ void of_gpiochip_remove(struct gpio_chip
+@@ -1044,3 +1046,72 @@ void of_gpiochip_remove(struct gpio_chip
{
of_node_put(chip->of_node);
}
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -1384,6 +1384,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
+@@ -1389,6 +1389,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
the unaligned access emulation.
see arch/parisc/kernel/unaligned.c for reference
default y
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
-@@ -1075,6 +1075,8 @@ static u8 spi_nor_convert_3to4_erase(u8
+@@ -1084,6 +1084,8 @@ static u8 spi_nor_convert_3to4_erase(u8
static bool spi_nor_has_uniform_erase(const struct spi_nor *nor)
{
return !!nor->params->erase_map.uniform_erase_type;
}
-@@ -2560,6 +2562,7 @@ static int spi_nor_select_erase(struct s
+@@ -2569,6 +2571,7 @@ static int spi_nor_select_erase(struct s
{
struct spi_nor_erase_map *map = &nor->params->erase_map;
const struct spi_nor_erase_type *erase = NULL;
struct mtd_info *mtd = &nor->mtd;
u32 wanted_size = nor->info->sector_size;
int i;
-@@ -2592,8 +2595,9 @@ static int spi_nor_select_erase(struct s
+@@ -2601,8 +2604,9 @@ static int spi_nor_select_erase(struct s
*/
for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) {
if (map->erase_type[i].size) {
}
}
-@@ -2601,6 +2605,8 @@ static int spi_nor_select_erase(struct s
+@@ -2610,6 +2614,8 @@ static int spi_nor_select_erase(struct s
return -EINVAL;
mtd->erasesize = erase->size;
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -913,7 +913,7 @@ static int get_chip(struct map_info *map
+@@ -906,7 +906,7 @@ static int get_chip(struct map_info *map
return 0;
case FL_ERASING:
1 file changed, 1 insertion(+)
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -2057,6 +2057,7 @@ static int __xipram do_write_buffer(stru
+@@ -2050,6 +2050,7 @@ static int __xipram do_write_buffer(stru
/* Write Buffer Load */
map_write(map, CMD(0x25), cmd_adr);
endif # MTD_SPI_NOR
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
-@@ -2792,6 +2792,21 @@ static void spi_nor_info_init_params(str
+@@ -2801,6 +2801,21 @@ static void spi_nor_info_init_params(str
*/
erase_mask = 0;
i = 0;
if (info->flags & SECT_4K_PMC) {
erase_mask |= BIT(i);
spi_nor_set_erase_type(&map->erase_type[i], 4096u,
-@@ -2803,6 +2818,7 @@ static void spi_nor_info_init_params(str
+@@ -2812,6 +2827,7 @@ static void spi_nor_info_init_params(str
SPINOR_OP_BE_4K);
i++;
}
+};
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
-@@ -2028,6 +2028,7 @@ static const struct spi_nor_manufacturer
+@@ -2037,6 +2037,7 @@ static const struct spi_nor_manufacturer
&spi_nor_winbond,
&spi_nor_xilinx,
&spi_nor_xmc,
__u16 tc_index; /* traffic control index */
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -6062,6 +6062,9 @@ static enum gro_result dev_gro_receive(s
+@@ -6066,6 +6066,9 @@ static enum gro_result dev_gro_receive(s
int same_flow;
int grow;
if (netif_elide_gro(skb->dev))
goto normal;
-@@ -8039,6 +8042,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -8043,6 +8046,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info,
-@@ -8090,6 +8135,7 @@ static int __netdev_upper_dev_link(struc
+@@ -8094,6 +8139,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
ret = notifier_to_errno(ret);
-@@ -8186,6 +8232,7 @@ static void __netdev_upper_dev_unlink(st
+@@ -8190,6 +8236,7 @@ static void __netdev_upper_dev_unlink(st
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
-@@ -8972,6 +9019,7 @@ int dev_set_mac_address(struct net_devic
+@@ -8976,6 +9023,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;
#endif /* __LINUX_USB_PCI_QUIRKS_H */
--- a/include/linux/usb/hcd.h
+++ b/include/linux/usb/hcd.h
-@@ -484,7 +484,14 @@ extern int usb_hcd_pci_probe(struct pci_
+@@ -486,7 +486,14 @@ extern int usb_hcd_pci_probe(struct pci_
extern void usb_hcd_pci_remove(struct pci_dev *dev);
extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -1800,6 +1800,15 @@ config EMBEDDED
+@@ -1805,6 +1805,15 @@ config EMBEDDED
an embedded system so certain expert options are available
for configuration.
+ clocks = <&armclk>;
+ };
+
- gic: gic@1000 {
+ gic: interrupt-controller@1000 {
compatible = "arm,arm11mp-gic";
interrupt-controller;
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
-@@ -3147,6 +3147,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3156,6 +3156,7 @@ int spi_nor_scan(struct spi_nor *nor, co
struct device *dev = nor->dev;
struct mtd_info *mtd = &nor->mtd;
struct device_node *np = spi_nor_get_flash_node(nor);
int ret;
int i;
-@@ -3201,7 +3202,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3210,7 +3211,12 @@ int spi_nor_scan(struct spi_nor *nor, co
if (ret)
return ret;
+};
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
-@@ -2012,6 +2012,7 @@ int spi_nor_sr2_bit7_quad_enable(struct
+@@ -2021,6 +2021,7 @@ int spi_nor_sr2_bit7_quad_enable(struct
static const struct spi_nor_manufacturer *manufacturers[] = {
&spi_nor_atmel,