-LINUX_VERSION-5.10 = .214
-LINUX_KERNEL_HASH-5.10.214 = 40f014d53e81f204f6d2a364aae4201ae07970dd1b70dc602d7c66c1a140f558
+LINUX_VERSION-5.10 = .215
+LINUX_KERNEL_HASH-5.10.215 = 879ca159c34ea9d3a6775f292cc59c2d3931d57dca00f0bebe2675ea0c82c6a9
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -8671,8 +8671,6 @@ int alloc_contig_range(unsigned long sta
+@@ -8673,8 +8673,6 @@ int alloc_contig_range(unsigned long sta
/* Make sure the range is really isolated. */
if (test_pages_isolated(outer_start, end, 0)) {
}
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
-@@ -5671,7 +5671,7 @@ static void port_event(struct usb_hub *h
+@@ -5680,7 +5680,7 @@ static void port_event(struct usb_hub *h
port_dev->over_current_count++;
port_over_current_notify(port_dev);
static inline int mmc_blk_part_switch(struct mmc_card *card,
unsigned int part_type);
static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
-@@ -2951,6 +2958,7 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2953,6 +2960,7 @@ static int mmc_blk_probe(struct mmc_card
{
struct mmc_blk_data *md, *part_md;
char cap_str[10];
/*
* Check that the card supports the command class(es) we need.
-@@ -2958,7 +2966,16 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2960,7 +2968,16 @@ static int mmc_blk_probe(struct mmc_card
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
return -ENODEV;
card->complete_wq = alloc_workqueue("mmc_complete",
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
-@@ -2973,9 +2990,14 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2975,9 +2992,14 @@ static int mmc_blk_probe(struct mmc_card
string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2,
cap_str, sizeof(cap_str));
--- a/drivers/tty/serial/sc16is7xx.c
+++ b/drivers/tty/serial/sc16is7xx.c
-@@ -709,6 +709,8 @@ static bool sc16is7xx_port_irq(struct sc
+@@ -710,6 +710,8 @@ static bool sc16is7xx_port_irq(struct sc
if (rxlen)
sc16is7xx_handle_rx(port, rxlen, iir);
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
-@@ -1775,7 +1775,7 @@ int vchiq_mmal_component_enable(struct v
+@@ -1776,7 +1776,7 @@ int vchiq_mmal_component_enable(struct v
ret = enable_component(instance, component);
if (ret == 0)
/* deals with receipt of buffer to host message */
static void buffer_to_host_cb(struct vchiq_mmal_instance *instance,
struct mmal_msg *msg, u32 msg_len)
-@@ -1332,6 +1425,7 @@ static int port_disable(struct vchiq_mma
+@@ -1333,6 +1426,7 @@ static int port_disable(struct vchiq_mma
mmalbuf->mmal_flags = 0;
mmalbuf->dts = MMAL_TIME_UNKNOWN;
mmalbuf->pts = MMAL_TIME_UNKNOWN;
port->buffer_cb(instance,
port, 0, mmalbuf);
}
-@@ -1633,6 +1727,43 @@ int mmal_vchi_buffer_cleanup(struct mmal
+@@ -1634,6 +1728,43 @@ int mmal_vchi_buffer_cleanup(struct mmal
}
EXPORT_SYMBOL_GPL(mmal_vchi_buffer_cleanup);
/* Initialise a mmal component and its ports
*
*/
-@@ -1682,6 +1813,7 @@ int vchiq_mmal_component_init(struct vch
+@@ -1683,6 +1814,7 @@ int vchiq_mmal_component_init(struct vch
ret = port_info_get(instance, &component->control);
if (ret < 0)
goto release_component;
for (idx = 0; idx < component->inputs; idx++) {
component->input[idx].type = MMAL_PORT_TYPE_INPUT;
-@@ -1692,6 +1824,7 @@ int vchiq_mmal_component_init(struct vch
+@@ -1693,6 +1825,7 @@ int vchiq_mmal_component_init(struct vch
ret = port_info_get(instance, &component->input[idx]);
if (ret < 0)
goto release_component;
}
for (idx = 0; idx < component->outputs; idx++) {
-@@ -1703,6 +1836,7 @@ int vchiq_mmal_component_init(struct vch
+@@ -1704,6 +1837,7 @@ int vchiq_mmal_component_init(struct vch
ret = port_info_get(instance, &component->output[idx]);
if (ret < 0)
goto release_component;
}
for (idx = 0; idx < component->clocks; idx++) {
-@@ -1714,6 +1848,7 @@ int vchiq_mmal_component_init(struct vch
+@@ -1715,6 +1849,7 @@ int vchiq_mmal_component_init(struct vch
ret = port_info_get(instance, &component->clock[idx]);
if (ret < 0)
goto release_component;
}
*component_out = component;
-@@ -1739,7 +1874,7 @@ EXPORT_SYMBOL_GPL(vchiq_mmal_component_i
+@@ -1740,7 +1875,7 @@ EXPORT_SYMBOL_GPL(vchiq_mmal_component_i
int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance,
struct vchiq_mmal_component *component)
{
if (mutex_lock_interruptible(&instance->vchiq_mutex))
return -EINTR;
-@@ -1751,6 +1886,13 @@ int vchiq_mmal_component_finalise(struct
+@@ -1752,6 +1887,13 @@ int vchiq_mmal_component_finalise(struct
component->in_use = 0;
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
-@@ -1901,6 +1901,8 @@ int vchiq_mmal_component_finalise(struct
+@@ -1902,6 +1902,8 @@ int vchiq_mmal_component_finalise(struct
for (idx = 0; idx < component->clocks; idx++)
free_event_context(&component->clock[idx]);
--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
+++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c
-@@ -1767,9 +1767,26 @@ static void free_event_context(struct vc
+@@ -1768,9 +1768,26 @@ static void free_event_context(struct vc
{
struct mmal_msg_context *ctx = port->event_context;
}
/* Initialise a mmal component and its ports
-@@ -1867,6 +1884,7 @@ int vchiq_mmal_component_init(struct vch
+@@ -1868,6 +1885,7 @@ int vchiq_mmal_component_init(struct vch
release_component:
destroy_component(instance, component);
unlock:
if (component)
component->in_use = 0;
-@@ -1882,7 +1900,7 @@ EXPORT_SYMBOL_GPL(vchiq_mmal_component_i
+@@ -1883,7 +1901,7 @@ EXPORT_SYMBOL_GPL(vchiq_mmal_component_i
int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance,
struct vchiq_mmal_component *component)
{
if (mutex_lock_interruptible(&instance->vchiq_mutex))
return -EINTR;
-@@ -1894,14 +1912,7 @@ int vchiq_mmal_component_finalise(struct
+@@ -1895,14 +1913,7 @@ int vchiq_mmal_component_finalise(struct
component->in_use = 0;
--- a/drivers/tty/serial/sc16is7xx.c
+++ b/drivers/tty/serial/sc16is7xx.c
-@@ -524,8 +524,9 @@ static int sc16is7xx_set_baud(struct uar
+@@ -525,8 +525,9 @@ static int sc16is7xx_set_baud(struct uar
/* Enable enhanced features */
regcache_cache_bypass(s->regmap, true);
regcache_cache_bypass(s->regmap, false);
/* Put LCR back to the normal mode */
-@@ -855,7 +856,7 @@ static unsigned int sc16is7xx_get_mctrl(
+@@ -856,7 +857,7 @@ static unsigned int sc16is7xx_get_mctrl(
/* DCD and DSR are not wired and CTS/RTS is handled automatically
* so just indicate DSR and CAR asserted
*/
}
static void sc16is7xx_set_mctrl(struct uart_port *port, unsigned int mctrl)
-@@ -942,14 +943,19 @@ static void sc16is7xx_set_termios(struct
+@@ -943,14 +944,19 @@ static void sc16is7xx_set_termios(struct
regcache_cache_bypass(s->regmap, true);
sc16is7xx_port_write(port, SC16IS7XX_XON1_REG, termios->c_cc[VSTART]);
sc16is7xx_port_write(port, SC16IS7XX_XOFF1_REG, termios->c_cc[VSTOP]);
} else if (msg->u.buffer_from_host.buffer_header.length == 0) {
/* empty buffer */
if (msg->u.buffer_from_host.buffer_header.flags &
-@@ -1530,6 +1553,9 @@ int vchiq_mmal_port_parameter_set(struct
+@@ -1531,6 +1554,9 @@ int vchiq_mmal_port_parameter_set(struct
mutex_unlock(&instance->vchiq_mutex);
return ret;
}
EXPORT_SYMBOL_GPL(vchiq_mmal_port_parameter_set);
-@@ -1698,6 +1724,31 @@ int vchiq_mmal_submit_buffer(struct vchi
+@@ -1699,6 +1725,31 @@ int vchiq_mmal_submit_buffer(struct vchi
unsigned long flags = 0;
int ret;
ret = buffer_from_host(instance, port, buffer);
if (ret == -EINVAL) {
/* Port is disabled. Queue for when it is enabled. */
-@@ -1731,6 +1782,16 @@ int mmal_vchi_buffer_cleanup(struct mmal
+@@ -1732,6 +1783,16 @@ int mmal_vchi_buffer_cleanup(struct mmal
release_msg_context(msg_context);
buf->msg_context = NULL;
u32 mahr = ravb_read(ndev, MAHR);
u32 malr = ravb_read(ndev, MALR);
-@@ -2202,7 +2204,7 @@ static int ravb_probe(struct platform_de
+@@ -2205,7 +2207,7 @@ static int ravb_probe(struct platform_de
priv->msg_enable = RAVB_DEF_MSG_ENABLE;
/* Read and set MAC address */
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
-@@ -925,6 +925,8 @@ static int pci_register_host_bridge(stru
+@@ -926,6 +926,8 @@ static int pci_register_host_bridge(stru
device_enable_async_suspend(bus->bridge);
pci_set_bus_of_node(bus);
pci_set_bus_msi_domain(bus);
set_dev_node(bus->bridge, pcibus_to_node(bus));
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
-@@ -548,6 +548,7 @@ struct pci_host_bridge {
+@@ -554,6 +554,7 @@ struct pci_host_bridge {
unsigned int native_dpc:1; /* OS may use PCIe DPC */
unsigned int preserve_config:1; /* Preserve FW resource setup */
unsigned int size_windows:1; /* Enable root bus sizing */
#define QUECTEL_VENDOR_ID 0x2c7c
/* These Quectel products use Quectel's vendor ID */
-@@ -1188,6 +1190,11 @@ static const struct usb_device_id option
+@@ -1193,6 +1195,11 @@ static const struct usb_device_id option
.driver_info = ZLP },
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
.driver_info = RSVD(4) },
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -7123,7 +7123,7 @@ static void __ref alloc_node_mem_map(str
+@@ -7125,7 +7125,7 @@ static void __ref alloc_node_mem_map(str
if (pgdat == NODE_DATA(0)) {
mem_map = NODE_DATA(0)->node_mem_map;
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
for (i = sizeof(struct ipt_entry);
i < e->target_offset;
i += m->u.match_size) {
-@@ -1222,12 +1259,15 @@ compat_copy_entry_to_user(struct ipt_ent
+@@ -1224,12 +1261,15 @@ compat_copy_entry_to_user(struct ipt_ent
compat_uint_t origsize;
const struct xt_entry_match *ematch;
int ret = 0;
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -206,6 +206,7 @@ static void quirk_mmio_always_on(struct
+@@ -207,6 +207,7 @@ static void quirk_mmio_always_on(struct
DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID,
PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on);
/*
* The Mellanox Tavor device gives false positive parity errors. Mark this
* device with a broken_parity_status to allow PCI scanning code to "skip"
-@@ -3340,6 +3341,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+@@ -3341,6 +3342,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
/*
* Ivytown NTB BAR sizes are misreported by the hardware due to an erratum.
* To work around this, query the size it should be configured to by the
-@@ -3365,6 +3368,8 @@ static void quirk_intel_ntb(struct pci_d
+@@ -3366,6 +3369,8 @@ static void quirk_intel_ntb(struct pci_d
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb);
/*
* Some BIOS implementations leave the Intel GPU interrupts enabled, even
* though no one is handling them (e.g., if the i915 driver is never
-@@ -3403,6 +3408,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
+@@ -3404,6 +3409,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
(transaction layer end-to-end CRC checking).
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
-@@ -1421,6 +1421,8 @@ void pci_walk_bus(struct pci_bus *top, i
+@@ -1427,6 +1427,8 @@ void pci_walk_bus(struct pci_bus *top, i
void *userdata);
int pci_cfg_space_size(struct pci_dev *dev);
unsigned char pci_bus_max_busnr(struct pci_bus *bus);
},
[PORT_NPCM] = {
.name = "Nuvoton 16550",
-@@ -2723,6 +2723,11 @@ serial8250_do_set_termios(struct uart_po
+@@ -2717,6 +2717,11 @@ serial8250_do_set_termios(struct uart_po
unsigned long flags;
unsigned int baud, quot, frac = 0;
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -25,6 +25,7 @@
+@@ -26,6 +26,7 @@
#include <linux/ktime.h>
#include <linux/mm.h>
#include <linux/nvme.h>
#include <linux/platform_data/x86/apple.h>
#include <linux/pm_runtime.h>
#include <linux/suspend.h>
-@@ -5859,3 +5860,34 @@ static void nvidia_ion_ahci_fixup(struct
- pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING;
- }
- DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);
+@@ -5959,3 +5960,34 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0xa73f, dpc_log_size);
+ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0xa76e, dpc_log_size);
+ #endif
+
+#ifdef CONFIG_PCI_HOST_THUNDER_PEM
+/*
--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
-@@ -985,22 +985,30 @@
+@@ -994,22 +994,30 @@
};
usbdrd3: usb@ff600000 {
CONFIG_MICROCODE_INTEL=y
CONFIG_MICROCODE_LATE_LOADING=y
CONFIG_MIGRATION=y
+CONFIG_MITIGATION_RFDS=y
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set