kernel: bump 6.6 to 6.6.97

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.97

Remove upstream patches:
  generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch [1]

Manually rebased patch:
  bcm53xx/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch[2]

New Kconfig symbol:
  x86: enable MITIGATION_TSA [3]

All other patches are automatically refreshed.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.97&id=8a7ac2737211451b8b98657b919c4c4e0a4c0c2f
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.97&id=7609899eb6b70b536123eb58eeab27c764752b82
[3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.97&id=90293047df18caf7ed0fe566d89af0720f2dc98a

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Co-authored-by: John Audia <therealgraysky@proton.me>
Tested-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19317
(cherry picked from commit 04d764576b)
Co-authored-by: Goetz Goerisch <ggoerisch@gmail.com>
Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19354
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
Shiji Yang
2025-07-10 23:59:14 +08:00
committed by Hauke Mehrtens
parent b2fcc6f9f3
commit 05d8b931fb
36 changed files with 90 additions and 131 deletions

View File

@@ -1,2 +1,2 @@
LINUX_VERSION-6.6 = .96
LINUX_KERNEL_HASH-6.6.96 = 9ee45843d43adb2e2ac5f6a8cb10a334e39e3e3384af8a0ce383a37f78221bdd
LINUX_VERSION-6.6 = .97
LINUX_KERNEL_HASH-6.6.97 = 3b67c170638142da56b7a9c3295f2483b88e8c4d3bc26b2bda63b6cf0cb9ee3b

View File

@@ -8,7 +8,7 @@
static int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val)
{
@@ -1347,6 +1348,7 @@ static int spinand_probe(struct spi_mem
@@ -1348,6 +1349,7 @@ static int spinand_probe(struct spi_mem
if (ret)
return ret;
@@ -16,7 +16,7 @@
ret = mtd_device_register(mtd, NULL, 0);
if (ret)
goto err_spinand_cleanup;
@@ -1354,6 +1356,7 @@ static int spinand_probe(struct spi_mem
@@ -1355,6 +1357,7 @@ static int spinand_probe(struct spi_mem
return 0;
err_spinand_cleanup:
@@ -24,7 +24,7 @@
spinand_cleanup(spinand);
return ret;
@@ -1372,6 +1375,7 @@ static int spinand_remove(struct spi_mem
@@ -1373,6 +1376,7 @@ static int spinand_remove(struct spi_mem
if (ret)
return ret;

View File

@@ -14,7 +14,7 @@ We don't agree with upstream revert so undo it.
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -485,6 +485,7 @@ static void xhci_pci_quirks(struct devic
@@ -510,6 +510,7 @@ static void xhci_pci_quirks(struct devic
if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == PCI_DEVICE_ID_VIA_VL805) {
xhci->quirks |= XHCI_LPM_SUPPORT;
xhci->quirks |= XHCI_TRB_OVERFETCH;

View File

@@ -344,7 +344,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
}
--- a/drivers/mmc/core/quirks.h
+++ b/drivers/mmc/core/quirks.h
@@ -153,6 +153,14 @@ static const struct mmc_fixup __maybe_un
@@ -50,6 +50,14 @@ static const struct mmc_fixup __maybe_un
MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd,
MMC_QUIRK_BROKEN_SD_DISCARD),
@@ -1993,7 +1993,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
#define MAX_TUNING_LOOP 40
@@ -3217,7 +3217,7 @@ static void sdhci_timeout_timer(struct t
@@ -3212,7 +3212,7 @@ static void sdhci_timeout_timer(struct t
spin_lock_irqsave(&host->lock, flags);
if (host->cmd && !sdhci_data_line_cmd(host->cmd)) {
@@ -2002,7 +2002,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
mmc_hostname(host->mmc));
sdhci_err_stats_inc(host, REQ_TIMEOUT);
sdhci_dumpregs(host);
@@ -3240,7 +3240,7 @@ static void sdhci_timeout_data_timer(str
@@ -3235,7 +3235,7 @@ static void sdhci_timeout_data_timer(str
if (host->data || host->data_cmd ||
(host->cmd && sdhci_data_line_cmd(host->cmd))) {

View File

@@ -29,7 +29,7 @@ See: https://github.com/raspberrypi/linux/issues/2447
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
{
u32 *buf;
@@ -4458,7 +4463,13 @@ static int lan78xx_probe(struct usb_inte
@@ -4456,7 +4461,13 @@ static int lan78xx_probe(struct usb_inte
if (ret < 0)
goto out4;

View File

@@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
irq_disable:
--- a/drivers/gpu/drm/v3d/v3d_drv.h
+++ b/drivers/gpu/drm/v3d/v3d_drv.h
@@ -76,6 +76,12 @@ struct v3d_dev {
@@ -84,6 +84,12 @@ struct v3d_dev {
void __iomem *bridge_regs;
void __iomem *gca_regs;
struct clk *clk;
@@ -130,7 +130,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
v3d_init_core(struct v3d_dev *v3d, int core)
{
/* Set OVRTMUOUT, which means that the texture sampler uniform
@@ -318,6 +360,7 @@ static void
@@ -320,6 +362,7 @@ static void
v3d_job_free(struct kref *ref)
{
struct v3d_job *job = container_of(ref, struct v3d_job, refcount);
@@ -138,7 +138,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
int i;
if (job->bo) {
@@ -329,6 +372,8 @@ v3d_job_free(struct kref *ref)
@@ -331,6 +374,8 @@ v3d_job_free(struct kref *ref)
dma_fence_put(job->irq_fence);
dma_fence_put(job->done_fence);
@@ -147,7 +147,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
if (job->perfmon)
v3d_perfmon_put(job->perfmon);
@@ -448,6 +493,7 @@ v3d_job_init(struct v3d_dev *v3d, struct
@@ -450,6 +495,7 @@ v3d_job_init(struct v3d_dev *v3d, struct
goto fail_deps;
}
@@ -155,7 +155,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
kref_init(&job->refcount);
return 0;
@@ -1031,6 +1077,9 @@ v3d_gem_init(struct drm_device *dev)
@@ -1033,6 +1079,9 @@ v3d_gem_init(struct drm_device *dev)
if (ret)
return ret;

View File

@@ -14,7 +14,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
--- a/drivers/gpu/drm/v3d/v3d_gem.c
+++ b/drivers/gpu/drm/v3d/v3d_gem.c
@@ -1080,6 +1080,10 @@ v3d_gem_init(struct drm_device *dev)
@@ -1082,6 +1082,10 @@ v3d_gem_init(struct drm_device *dev)
mutex_init(&v3d->clk_lock);
INIT_DELAYED_WORK(&v3d->clk_down_work, v3d_clock_down_work);

View File

@@ -20,7 +20,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -4883,6 +4883,7 @@ static const struct {
@@ -4879,6 +4879,7 @@ static const struct {
*/
static int hci_dev_setup_sync(struct hci_dev *hdev)
{
@@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
int ret = 0;
bool invalid_bdaddr;
size_t i;
@@ -4911,7 +4912,8 @@ static int hci_dev_setup_sync(struct hci
@@ -4907,7 +4908,8 @@ static int hci_dev_setup_sync(struct hci
test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
if (!ret) {
if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) &&

View File

@@ -201,7 +201,7 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
/* Performance monitor object. The perform lifetime is controlled by userspace
* using perfmon related ioctls. A perfmon can be attached to a submit_cl
* request, and when this is the case, HW perf counters will be activated just
@@ -147,6 +198,8 @@ struct v3d_dev {
@@ -155,6 +206,8 @@ struct v3d_dev {
u32 num_allocated;
u32 pages_allocated;
} bo_stats;
@@ -210,7 +210,7 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
};
static inline struct v3d_dev *
@@ -244,6 +297,11 @@ struct v3d_job {
@@ -252,6 +305,11 @@ struct v3d_job {
*/
struct v3d_perfmon *perfmon;
@@ -222,7 +222,7 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
/* Callback for the freeing of the job on refcount going to 0. */
void (*free)(struct kref *ref);
};
@@ -408,6 +466,7 @@ void v3d_mmu_remove_ptes(struct v3d_bo *
@@ -416,6 +474,7 @@ void v3d_mmu_remove_ptes(struct v3d_bo *
/* v3d_sched.c */
int v3d_sched_init(struct v3d_dev *v3d);
void v3d_sched_fini(struct v3d_dev *v3d);
@@ -232,7 +232,7 @@ Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
void v3d_perfmon_get(struct v3d_perfmon *perfmon);
--- a/drivers/gpu/drm/v3d/v3d_gem.c
+++ b/drivers/gpu/drm/v3d/v3d_gem.c
@@ -460,6 +460,7 @@ v3d_job_init(struct v3d_dev *v3d, struct
@@ -462,6 +462,7 @@ v3d_job_init(struct v3d_dev *v3d, struct
job = *container;
job->v3d = v3d;
job->free = free;

View File

@@ -24,7 +24,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -486,6 +486,7 @@ static void xhci_pci_quirks(struct devic
@@ -511,6 +511,7 @@ static void xhci_pci_quirks(struct devic
xhci->quirks |= XHCI_LPM_SUPPORT;
xhci->quirks |= XHCI_TRB_OVERFETCH;
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
@@ -52,9 +52,9 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
addr = xhci_trb_virt_to_dma(new_seg, new_deq);
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1660,6 +1660,9 @@ struct xhci_hcd {
#define XHCI_CDNS_SCTX_QUIRK BIT_ULL(48)
@@ -1661,6 +1661,9 @@ struct xhci_hcd {
#define XHCI_ETRON_HOST BIT_ULL(49)
#define XHCI_LIMIT_ENDPOINT_INTERVAL_9 BIT_ULL(50)
+/* Downstream VLI fixes */
+#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(56)

View File

@@ -51,7 +51,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
ep_index = xhci_get_endpoint_index(&ep->desc);
ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index);
@@ -1445,9 +1448,35 @@ int xhci_endpoint_init(struct xhci_hcd *
@@ -1449,9 +1452,35 @@ int xhci_endpoint_init(struct xhci_hcd *
mult = xhci_get_endpoint_mult(udev, ep);
max_packet = usb_endpoint_maxp(&ep->desc);
@@ -90,7 +90,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
/* Allow 3 retries for everything but isoc, set CErr = 3 */
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -487,6 +487,7 @@ static void xhci_pci_quirks(struct devic
@@ -512,6 +512,7 @@ static void xhci_pci_quirks(struct devic
xhci->quirks |= XHCI_TRB_OVERFETCH;
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
@@ -100,7 +100,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1662,6 +1662,7 @@ struct xhci_hcd {
@@ -1663,6 +1663,7 @@ struct xhci_hcd {
/* Downstream VLI fixes */
#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(56)

View File

@@ -47,7 +47,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
/* Device for a quirk */
#define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73
#define PCI_DEVICE_ID_FRESCO_LOGIC_PDK 0x1000
@@ -297,6 +299,16 @@ static int xhci_pci_reinit(struct xhci_h
@@ -307,6 +309,16 @@ static int xhci_pci_reinit(struct xhci_h
return 0;
}
@@ -64,7 +64,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
{
struct pci_dev *pdev = to_pci_dev(dev);
@@ -488,6 +500,8 @@ static void xhci_pci_quirks(struct devic
@@ -513,6 +525,8 @@ static void xhci_pci_quirks(struct devic
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
xhci->quirks |= XHCI_VLI_SS_BULK_OUT_BUG;
@@ -144,7 +144,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
return 0;
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1663,6 +1663,7 @@ struct xhci_hcd {
@@ -1664,6 +1664,7 @@ struct xhci_hcd {
/* Downstream VLI fixes */
#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(56)
#define XHCI_VLI_SS_BULK_OUT_BUG BIT_ULL(57)

View File

@@ -26,7 +26,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
static int dwcmshc_rk35xx_init(struct sdhci_host *host, struct dwcmshc_priv *dwc_priv)
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -3055,6 +3055,15 @@ static void sdhci_card_event(struct mmc_
@@ -3050,6 +3050,15 @@ static void sdhci_card_event(struct mmc_
spin_unlock_irqrestore(&host->lock, flags);
}
@@ -42,7 +42,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
static const struct mmc_host_ops sdhci_ops = {
.request = sdhci_request,
.post_req = sdhci_post_req,
@@ -3070,6 +3079,7 @@ static const struct mmc_host_ops sdhci_o
@@ -3065,6 +3074,7 @@ static const struct mmc_host_ops sdhci_o
.execute_tuning = sdhci_execute_tuning,
.card_event = sdhci_card_event,
.card_busy = sdhci_card_busy,
@@ -50,7 +50,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
};
/*****************************************************************************\
@@ -4588,6 +4598,15 @@ int sdhci_setup_host(struct sdhci_host *
@@ -4583,6 +4593,15 @@ int sdhci_setup_host(struct sdhci_host *
!(host->quirks2 & SDHCI_QUIRK2_BROKEN_DDR50))
mmc->caps |= MMC_CAP_UHS_DDR50;

View File

@@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
regmap_update_bits(dev->map, DW_IC_CON, DW_IC_CON_10BITADDR_MASTER,
ic_con);
@@ -500,6 +504,14 @@ i2c_dw_xfer_msg(struct dw_i2c_dev *dev)
@@ -501,6 +505,14 @@ i2c_dw_xfer_msg(struct dw_i2c_dev *dev)
regmap_read(dev->map, DW_IC_RXFLR, &flr);
rx_limit = dev->rx_fifo_depth - flr;
@@ -55,7 +55,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
while (buf_len > 0 && tx_limit > 0 && rx_limit > 0) {
u32 cmd = 0;
@@ -781,7 +793,7 @@ static const struct i2c_algorithm i2c_dw
@@ -782,7 +794,7 @@ static const struct i2c_algorithm i2c_dw
};
static const struct i2c_adapter_quirks i2c_dw_quirks = {
@@ -64,7 +64,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
};
static u32 i2c_dw_read_clear_intrbits(struct dw_i2c_dev *dev)
@@ -914,7 +926,8 @@ void i2c_dw_configure_master(struct dw_i
@@ -915,7 +927,8 @@ void i2c_dw_configure_master(struct dw_i
{
struct i2c_timings *t = &dev->timings;

View File

@@ -335,9 +335,9 @@ v2: fix kernel panic with debug-fs interface to list registers
+ V3D_CORE_WRITE(core, V3D_CTL_INT_CLR, V3D_CORE_IRQS(v3d->ver));
+ V3D_WRITE(V3D_HUB_INT_CLR, V3D_HUB_IRQS(v3d->ver));
irq1 = platform_get_irq_optional(v3d_to_pdev(v3d), 1);
if (irq1 == -EPROBE_DEFER)
@@ -276,12 +283,12 @@ v3d_irq_enable(struct v3d_dev *v3d)
irq = platform_get_irq_optional(v3d_to_pdev(v3d), 1);
if (irq == -EPROBE_DEFER)
@@ -287,12 +294,12 @@ v3d_irq_enable(struct v3d_dev *v3d)
/* Enable our set of interrupts, masking out any others. */
for (core = 0; core < v3d->cores; core++) {
@@ -354,7 +354,7 @@ v2: fix kernel panic with debug-fs interface to list registers
}
void
@@ -296,8 +303,8 @@ v3d_irq_disable(struct v3d_dev *v3d)
@@ -313,8 +320,8 @@ v3d_irq_disable(struct v3d_dev *v3d)
/* Clear any pending interrupts we might have left. */
for (core = 0; core < v3d->cores; core++)

View File

@@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
sdhci_writew(host, SDHCI_MAKE_CMD(cmd->opcode, flags), SDHCI_COMMAND);
return true;
@@ -3314,6 +3320,11 @@ static void sdhci_cmd_irq(struct sdhci_h
@@ -3309,6 +3315,11 @@ static void sdhci_cmd_irq(struct sdhci_h
if (intmask & SDHCI_INT_TIMEOUT) {
host->cmd->error = -ETIMEDOUT;
sdhci_err_stats_inc(host, CMD_TIMEOUT);

View File

@@ -24,7 +24,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
BUG_ON(data->blksz > host->mmc->max_blk_size);
BUG_ON(data->blocks > 65535);
@@ -4732,11 +4732,16 @@ int sdhci_setup_host(struct sdhci_host *
@@ -4727,11 +4727,16 @@ int sdhci_setup_host(struct sdhci_host *
spin_lock_init(&host->lock);
/*

View File

@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -4883,7 +4883,8 @@ static const struct {
@@ -4879,7 +4879,8 @@ static const struct {
*/
static int hci_dev_setup_sync(struct hci_dev *hdev)
{

View File

@@ -30,9 +30,9 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
#define CID_MANFID_KINGSTON 0x70
--- a/drivers/mmc/core/quirks.h
+++ b/drivers/mmc/core/quirks.h
@@ -44,6 +44,14 @@ static const struct mmc_fixup __maybe_un
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
MMC_QUIRK_NO_UHS_DDR50_TUNING, EXT_CSD_REV_ANY),
@@ -58,6 +58,14 @@ static const struct mmc_fixup __maybe_un
MMC_FIXUP("SD32G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN),
MMC_FIXUP("SD64G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN),
+ /*
+ * Samsung Pro Plus/EVO Plus/Pro Ultimate SD cards (2023) claim to cache

View File

@@ -14,7 +14,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
--- a/drivers/mmc/core/quirks.h
+++ b/drivers/mmc/core/quirks.h
@@ -52,6 +52,18 @@ static const struct mmc_fixup __maybe_un
@@ -66,6 +66,18 @@ static const struct mmc_fixup __maybe_un
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY),

View File

@@ -16,8 +16,8 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
--- a/drivers/mmc/core/quirks.h
+++ b/drivers/mmc/core/quirks.h
@@ -181,6 +181,15 @@ static const struct mmc_fixup __maybe_un
MMC_FIXUP("SD32G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN),
MMC_FIXUP("SD64G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN),
MMC_FIXUP("M62704", CID_MANFID_KINGSTON, 0x0100, add_quirk_mmc,
MMC_QUIRK_TRIM_BROKEN),
+ /*
+ * Larger Integral SD cards using rebranded Phison controllers trash

View File

@@ -134,7 +134,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
/* Write SDA hold time if supported */
if (dev->sda_hold_time)
regmap_write(dev->map, DW_IC_SDA_HOLD, dev->sda_hold_time);
@@ -1049,6 +1061,7 @@ int i2c_dw_probe_master(struct dw_i2c_de
@@ -1050,6 +1062,7 @@ int i2c_dw_probe_master(struct dw_i2c_de
struct i2c_adapter *adap = &dev->adapter;
unsigned long irq_flags;
unsigned int ic_con;
@@ -142,7 +142,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
int ret;
init_completion(&dev->cmd_complete);
@@ -1083,7 +1096,11 @@ int i2c_dw_probe_master(struct dw_i2c_de
@@ -1084,7 +1097,11 @@ int i2c_dw_probe_master(struct dw_i2c_de
if (ret)
return ret;

View File

@@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
#define END_FIXUP { NULL }
--- a/drivers/mmc/core/quirks.h
+++ b/drivers/mmc/core/quirks.h
@@ -76,6 +76,12 @@ static const struct mmc_fixup __maybe_un
@@ -90,6 +90,12 @@ static const struct mmc_fixup __maybe_un
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY),

View File

@@ -275,8 +275,8 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
goto clk_disable;
--- a/drivers/gpu/drm/v3d/v3d_drv.h
+++ b/drivers/gpu/drm/v3d/v3d_drv.h
@@ -115,13 +115,20 @@ struct v3d_perfmon {
u64 values[];
@@ -121,13 +121,20 @@ enum v3d_irq {
V3D_MAX_IRQS,
};
+enum v3d_gen {
@@ -296,8 +296,8 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
+ enum v3d_gen ver;
bool single_irq_line;
void __iomem *hub_regs;
@@ -213,7 +220,7 @@ to_v3d_dev(struct drm_device *dev)
int irq[V3D_MAX_IRQS];
@@ -221,7 +228,7 @@ to_v3d_dev(struct drm_device *dev)
static inline bool
v3d_has_csd(struct v3d_dev *v3d)
{
@@ -335,7 +335,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
return;
V3D_GCA_WRITE(V3D_GCA_SAFE_SHUTDOWN, V3D_GCA_SAFE_SHUTDOWN_EN);
@@ -179,13 +179,13 @@ v3d_reset(struct v3d_dev *v3d)
@@ -181,13 +181,13 @@ v3d_reset(struct v3d_dev *v3d)
static void
v3d_flush_l3(struct v3d_dev *v3d)
{
@@ -351,7 +351,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
V3D_GCA_WRITE(V3D_GCA_CACHE_CTRL,
gca_ctrl & ~V3D_GCA_CACHE_CTRL_FLUSH);
}
@@ -198,7 +198,7 @@ v3d_flush_l3(struct v3d_dev *v3d)
@@ -200,7 +200,7 @@ v3d_flush_l3(struct v3d_dev *v3d)
static void
v3d_invalidate_l2c(struct v3d_dev *v3d, int core)
{

View File

@@ -98,7 +98,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
--- a/drivers/gpu/drm/v3d/v3d_drv.h
+++ b/drivers/gpu/drm/v3d/v3d_drv.h
@@ -135,6 +135,7 @@ struct v3d_dev {
@@ -143,6 +143,7 @@ struct v3d_dev {
void __iomem *core_regs[3];
void __iomem *bridge_regs;
void __iomem *gca_regs;
@@ -106,7 +106,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
struct clk *clk;
struct delayed_work clk_down_work;
unsigned long clk_up_rate, clk_down_rate;
@@ -277,6 +278,15 @@ to_v3d_fence(struct dma_fence *fence)
@@ -285,6 +286,15 @@ to_v3d_fence(struct dma_fence *fence)
#define V3D_GCA_READ(offset) readl(v3d->gca_regs + offset)
#define V3D_GCA_WRITE(offset, val) writel(val, v3d->gca_regs + offset)
@@ -122,7 +122,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
#define V3D_CORE_READ(core, offset) readl(v3d->core_regs[core] + offset)
#define V3D_CORE_WRITE(core, offset, val) writel(val, v3d->core_regs[core] + offset)
@@ -455,6 +465,7 @@ int v3d_wait_bo_ioctl(struct drm_device
@@ -463,6 +473,7 @@ int v3d_wait_bo_ioctl(struct drm_device
struct drm_file *file_priv);
void v3d_job_cleanup(struct v3d_job *job);
void v3d_job_put(struct v3d_job *job);
@@ -155,8 +155,8 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
v3d_reset(struct v3d_dev *v3d)
{
struct drm_device *dev = &v3d->drm;
@@ -166,6 +182,7 @@ v3d_reset(struct v3d_dev *v3d)
v3d_idle_axi(v3d, 0);
@@ -168,6 +184,7 @@ v3d_reset(struct v3d_dev *v3d)
v3d_irq_disable(v3d);
v3d_idle_gca(v3d);
+ v3d_reset_sms(v3d);

View File

@@ -103,11 +103,11 @@ it on BCM4708 family.
if (xhci->quirks & XHCI_NEC_HOST)
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1659,6 +1659,7 @@ struct xhci_hcd {
#define XHCI_WRITE_64_HI_LO BIT_ULL(47)
@@ -1660,6 +1660,7 @@ struct xhci_hcd {
#define XHCI_CDNS_SCTX_QUIRK BIT_ULL(48)
#define XHCI_ETRON_HOST BIT_ULL(49)
+#define XHCI_FAKE_DOORBELL BIT_ULL(50)
#define XHCI_LIMIT_ENDPOINT_INTERVAL_9 BIT_ULL(50)
+#define XHCI_FAKE_DOORBELL BIT_ULL(51)
unsigned int num_active_eps;
unsigned int limit_active_eps;

View File

@@ -1,42 +0,0 @@
From 93bd4a80efeb521314485a06d8c21157240497bb Mon Sep 17 00:00:00 2001
From: Madhavan Srinivasan <maddy@linux.ibm.com>
Date: Sun, 11 May 2025 09:41:11 +0530
Subject: powerpc/kernel: Fix ppc_save_regs inclusion in build
Recent patch fixed an old commit
'fc2a5a6161a2 ("powerpc/64s: ppc_save_regs is now needed for all 64s builds")'
which is to include building of ppc_save_reg.c only when XMON
and KEXEC_CORE and PPC_BOOK3S are enabled. This was valid, since
ppc_save_regs was called only in replay_system_reset() of old
irq.c which was under BOOK3S.
But there has been multiple refactoring of irq.c and have
added call to ppc_save_regs() from __replay_soft_interrupts
-> replay_soft_interrupts which is part of irq_64.c included
under CONFIG_PPC64. And since ppc_save_regs is called in
CRASH_DUMP path as part of crash_setup_regs in kexec.h,
CONFIG_PPC32 also needs it.
So with this recent patch which enabled the building of
ppc_save_regs.c caused a build break when none of these
(XMON, KEXEC_CORE, BOOK3S) where enabled as part of config.
Patch to enable building of ppc_save_regs.c by defaults.
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/20250511041111.841158-1-maddy@linux.ibm.com
---
arch/powerpc/kernel/Makefile | 2 --
1 file changed, 2 deletions(-)
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -165,9 +165,7 @@ endif
obj64-$(CONFIG_PPC_TRANSACTIONAL_MEM) += tm.o
-ifneq ($(CONFIG_XMON)$(CONFIG_KEXEC_CORE)$(CONFIG_PPC_BOOK3S),)
obj-y += ppc_save_regs.o
-endif
obj-$(CONFIG_EPAPR_PARAVIRT) += epapr_paravirt.o epapr_hcalls.o
obj-$(CONFIG_KVM_GUEST) += kvm.o kvm_emul.o

View File

@@ -21,7 +21,7 @@ Cc: linux-kernel@vger.kernel.org
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -111,7 +111,7 @@ void notify_cpu_starting(unsigned int cp
@@ -112,7 +112,7 @@ void notify_cpu_starting(unsigned int cp
extern void cpu_maps_update_begin(void);
extern void cpu_maps_update_done(void);
int bringup_hibernate_cpu(unsigned int sleep_cpu);

View File

@@ -20,7 +20,7 @@ Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -6850,6 +6850,9 @@ static int igc_probe(struct pci_dev *pde
@@ -6854,6 +6854,9 @@ static int igc_probe(struct pci_dev *pde
netdev->xdp_features = NETDEV_XDP_ACT_BASIC | NETDEV_XDP_ACT_REDIRECT |
NETDEV_XDP_ACT_XSK_ZEROCOPY;

View File

@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (sk_can_gso(sk)) {
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -1996,7 +1996,7 @@ void ieee80211_color_collision_detection
@@ -2005,7 +2005,7 @@ void ieee80211_color_collision_detection
/* interface handling */
#define MAC80211_SUPPORTED_FEATURES_TX (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | \
NETIF_F_HW_CSUM | NETIF_F_SG | \

View File

@@ -8,7 +8,7 @@
static int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val)
{
@@ -1347,6 +1348,7 @@ static int spinand_probe(struct spi_mem
@@ -1348,6 +1349,7 @@ static int spinand_probe(struct spi_mem
if (ret)
return ret;
@@ -16,7 +16,7 @@
ret = mtd_device_register(mtd, NULL, 0);
if (ret)
goto err_spinand_cleanup;
@@ -1354,6 +1356,7 @@ static int spinand_probe(struct spi_mem
@@ -1355,6 +1357,7 @@ static int spinand_probe(struct spi_mem
return 0;
err_spinand_cleanup:
@@ -24,7 +24,7 @@
spinand_cleanup(spinand);
return ret;
@@ -1372,6 +1375,7 @@ static int spinand_remove(struct spi_mem
@@ -1373,6 +1376,7 @@ static int spinand_remove(struct spi_mem
if (ret)
return ret;

View File

@@ -29,7 +29,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c
@@ -1441,6 +1441,7 @@ static int spinand_remove(struct spi_mem
@@ -1442,6 +1442,7 @@ static int spinand_remove(struct spi_mem
static const struct spi_device_id spinand_ids[] = {
{ .name = "spi-nand" },
@@ -37,7 +37,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
{ /* sentinel */ },
};
MODULE_DEVICE_TABLE(spi, spinand_ids);
@@ -1448,6 +1449,7 @@ MODULE_DEVICE_TABLE(spi, spinand_ids);
@@ -1449,6 +1450,7 @@ MODULE_DEVICE_TABLE(spi, spinand_ids);
#ifdef CONFIG_OF
static const struct of_device_id spinand_of_ids[] = {
{ .compatible = "spi-nand" },

View File

@@ -38,7 +38,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
};
static const struct mtk_mmc_compatible mt7622_compat = {
@@ -1731,9 +1737,11 @@ static void msdc_init_hw(struct msdc_hos
@@ -1748,9 +1754,11 @@ static void msdc_init_hw(struct msdc_hos
}
writel(0, host->base + MSDC_IOCON);
sdr_set_field(host->base + MSDC_IOCON, MSDC_IOCON_DDLSEL, 0);
@@ -53,7 +53,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
sdr_set_bits(host->base + EMMC50_CFG0, EMMC50_CFG_CFCSTS_SEL);
if (host->dev_comp->stop_clk_fix) {
@@ -1797,6 +1805,18 @@ static void msdc_init_hw(struct msdc_hos
@@ -1814,6 +1822,18 @@ static void msdc_init_hw(struct msdc_hos
MSDC_PAD_TUNE_RXDLYSEL);
}

View File

@@ -50,7 +50,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
#include "xhci.h"
#include "xhci-trace.h"
@@ -1878,6 +1879,7 @@ EXPORT_SYMBOL_GPL(xhci_remove_secondary_
@@ -1882,6 +1883,7 @@ EXPORT_SYMBOL_GPL(xhci_remove_secondary_
void xhci_mem_cleanup(struct xhci_hcd *xhci)
{
struct device *dev = xhci_to_hcd(xhci)->self.sysdev;
@@ -58,7 +58,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
int i, j, num_ports;
cancel_delayed_work_sync(&xhci->cmd_timer);
@@ -1928,6 +1930,13 @@ void xhci_mem_cleanup(struct xhci_hcd *x
@@ -1932,6 +1934,13 @@ void xhci_mem_cleanup(struct xhci_hcd *x
xhci_dbg_trace(xhci, trace_xhci_dbg_init,
"Freed medium stream array pool");
@@ -72,7 +72,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
if (xhci->dcbaa)
dma_free_coherent(dev, sizeof(*xhci->dcbaa),
xhci->dcbaa, xhci->dcbaa->dma);
@@ -2399,6 +2408,55 @@ xhci_create_secondary_interrupter(struct
@@ -2403,6 +2412,55 @@ xhci_create_secondary_interrupter(struct
}
EXPORT_SYMBOL_GPL(xhci_create_secondary_interrupter);
@@ -128,7 +128,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags)
{
struct xhci_interrupter *ir;
@@ -2540,6 +2598,12 @@ int xhci_mem_init(struct xhci_hcd *xhci,
@@ -2544,6 +2602,12 @@ int xhci_mem_init(struct xhci_hcd *xhci,
xhci->isoc_bei_interval = AVOID_BEI_INTERVAL_MAX;
@@ -277,16 +277,16 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
/* There is one xhci_hcd structure per controller */
struct xhci_hcd {
struct usb_hcd *main_hcd;
@@ -1660,6 +1667,8 @@ struct xhci_hcd {
#define XHCI_CDNS_SCTX_QUIRK BIT_ULL(48)
@@ -1661,6 +1668,8 @@ struct xhci_hcd {
#define XHCI_ETRON_HOST BIT_ULL(49)
#define XHCI_LIMIT_ENDPOINT_INTERVAL_9 BIT_ULL(50)
+#define XHCI_LOCAL_BUFFER BIT_ULL(63)
+
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
@@ -1689,6 +1698,8 @@ struct xhci_hcd {
@@ -1690,6 +1699,8 @@ struct xhci_hcd {
struct list_head regset_list;
void *dbc;

View File

@@ -16,7 +16,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
--- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c
@@ -1932,7 +1932,8 @@ void xhci_mem_cleanup(struct xhci_hcd *x
@@ -1936,7 +1936,8 @@ void xhci_mem_cleanup(struct xhci_hcd *x
if (xhci->lowmem_pool.pool) {
pool = &xhci->lowmem_pool;
@@ -26,7 +26,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
gen_pool_destroy(pool->pool);
pool->pool = NULL;
}
@@ -2419,15 +2420,15 @@ int xhci_setup_local_lowmem(struct xhci_
@@ -2423,15 +2424,15 @@ int xhci_setup_local_lowmem(struct xhci_
if (!pool->pool) {
/* minimal alloc one page */
pool->pool = gen_pool_create(PAGE_SHIFT, dev_to_node(hcd->self.sysdev));
@@ -48,7 +48,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
goto destroy_pool;
}
@@ -2437,11 +2438,11 @@ int xhci_setup_local_lowmem(struct xhci_
@@ -2441,11 +2442,11 @@ int xhci_setup_local_lowmem(struct xhci_
* for it.
*/
err = gen_pool_add_virt(pool->pool, (unsigned long)buffer,
@@ -62,7 +62,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
goto destroy_pool;
}
@@ -2465,7 +2466,7 @@ int xhci_mem_init(struct xhci_hcd *xhci,
@@ -2469,7 +2470,7 @@ int xhci_mem_init(struct xhci_hcd *xhci,
unsigned int val, val2;
u64 val_64;
u32 page_size, temp;
@@ -71,7 +71,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
INIT_LIST_HEAD(&xhci->cmd_list);
@@ -2599,9 +2600,11 @@ int xhci_mem_init(struct xhci_hcd *xhci,
@@ -2603,9 +2604,11 @@ int xhci_mem_init(struct xhci_hcd *xhci,
xhci->isoc_bei_interval = AVOID_BEI_INTERVAL_MAX;
if (xhci->quirks & XHCI_LOCAL_BUFFER) {

View File

@@ -244,6 +244,7 @@ CONFIG_MICROCODE_LATE_FORCE_MINREV=y
CONFIG_MICROCODE_LATE_LOADING=y
CONFIG_MIGRATION=y
CONFIG_MITIGATION_ITS=y
CONFIG_MITIGATION_TSA=y
CONFIG_MITIGATION_RFDS=y
CONFIG_MITIGATION_SPECTRE_BHI=y
# CONFIG_MK6 is not set