kernel: bump 6.6 to 6.6.97
authorShiji Yang <[email protected]>
Thu, 10 Jul 2025 15:59:14 +0000 (23:59 +0800)
committerHauke Mehrtens <[email protected]>
Thu, 17 Jul 2025 18:49:02 +0000 (20:49 +0200)
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 <[email protected]>
Co-authored-by: John Audia <[email protected]>
Tested-by: Konstantin Demin <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/19317
(cherry picked from commit 04d764576b766ce849ea68af5ed7f5cfd8f47260)
Co-authored-by: Goetz Goerisch <[email protected]>
Signed-off-by: Goetz Goerisch <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/19354
Signed-off-by: Hauke Mehrtens <[email protected]>
36 files changed:
include/kernel-6.6
target/linux/airoha/patches-6.6/901-snand-mtk-bmt-support.patch
target/linux/bcm27xx/patches-6.6/950-0061-Revert-Revert-xhci-add-quirk-for-host-controllers-th.patch
target/linux/bcm27xx/patches-6.6/950-0092-MMC-added-alternative-MMC-driver.patch
target/linux/bcm27xx/patches-6.6/950-0133-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch
target/linux/bcm27xx/patches-6.6/950-0167-drm-v3d-Clock-V3D-down-when-not-in-use.patch
target/linux/bcm27xx/patches-6.6/950-0188-v3d_gem-Kick-the-clock-so-firmware-knows-we-are-usin.patch
target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch
target/linux/bcm27xx/patches-6.6/950-0464-drm-v3d-New-debugfs-end-points-to-query-GPU-usage-st.patch
target/linux/bcm27xx/patches-6.6/950-0482-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
target/linux/bcm27xx/patches-6.6/950-0484-usb-xhci-add-VLI_SS_BULK_OUT_BUG-quirk.patch
target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch
target/linux/bcm27xx/patches-6.6/950-0514-sdhci-Add-SD-Express-hook.patch
target/linux/bcm27xx/patches-6.6/950-0535-i2c-designware-Add-SMBUS-quick-command-support.patch
target/linux/bcm27xx/patches-6.6/950-0555-drm-v3d-fix-up-register-addresses-for-V3D-7.x.patch
target/linux/bcm27xx/patches-6.6/950-0716-drivers-mmc-sdhci-add-SPURIOUS_INT_RESP-quirk.patch
target/linux/bcm27xx/patches-6.6/950-1116-mmc-sdhci-extend-maximum-ADMA-transfer-length-to-4Mi.patch
target/linux/bcm27xx/patches-6.6/950-1218-Bluetooth-hci_sync-Fix-crash-on-NULL-parent.patch
target/linux/bcm27xx/patches-6.6/950-1260-drivers-mmc-disable-write-caching-on-Samsung-2023-mo.patch
target/linux/bcm27xx/patches-6.6/950-1333-mmc-quirks-disable-cache-on-more-known-bad-Sandisk-c.patch
target/linux/bcm27xx/patches-6.6/950-1336-mmc-quirks-add-MMC_QUIRK_BROKEN_ERASE-for-Phison-Int.patch
target/linux/bcm27xx/patches-6.6/950-1396-i2c-designware-Add-support-for-bus-clear-feature.patch
target/linux/bcm27xx/patches-6.6/950-1507-mmc-set-MMC_QUIRK_KNOWN_WORKING_SD_CQ-on-Raspberry-P.patch
target/linux/bcm27xx/patches-6.6/950-1553-drm-v3d-Associate-a-V3D-tech-revision-to-all-support.patch
target/linux/bcm27xx/patches-6.6/950-1555-drm-v3d-Use-V3D_SMS-registers-for-power-on-off-and-r.patch
target/linux/bcm53xx/patches-6.6/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
target/linux/generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch [deleted file]
target/linux/generic/backport-6.6/0080-v6.9-smp-Avoid-setup_max_cpus_namespace_collision_shadowing.patch
target/linux/generic/backport-6.6/792-v6.16-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch
target/linux/generic/pending-6.6/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch
target/linux/mediatek/patches-6.6/330-snand-mtk-bmt-support.patch
target/linux/mediatek/patches-6.6/960-asus-hack-u-boot-ignore-mtdparts.patch
target/linux/ramips/patches-6.6/831-mmc-mtk-sd-initialize-pad-delay-and-drive-strength.patch
target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch
target/linux/starfive/patches-6.6/0110-usb-xhci-using-dma_alloc_noncoherent-to-alloc-low-me.patch
target/linux/x86/config-6.6

index 88d972d66a0d540724393d163a1b026373533bdc..a98cd88bea22ffd6418c298e1121c6ca2d0d8be6 100644 (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
index 939ec0485557870b1e46954edd92f4c4a92d247c..06026f375ec31369a043eaa05018688760377521 100644 (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;
  
index e2c2b02f709c11b9a3f2df1740ccb44c0e84bb4d..3dce8aa62158b5cf1e104bef5750016ce8be3130 100644 (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;
index e983d5295b1147c32952343577899006c64ab318..6dddd80026ac15228f82adaef12f133f7e0d658f 100644 (file)
@@ -344,7 +344,7 @@ Signed-off-by: Phil Elwell <[email protected]>
  }
 --- 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 <[email protected]>
  
  #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 <[email protected]>
                       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))) {
index 2ca2550acb382378e56715fe5acfd1b4890244cb..46bfe50f1aa490b5544f513e20f90a944393e19c 100644 (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;
  
index e15fafed50876bdf8c9e75d3a9bf6394123fde1b..099cf75a8175992703ef811e6211c893d3f4f82c 100644 (file)
@@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <[email protected]>
  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 <[email protected]>
  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 <[email protected]>
        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 <[email protected]>
        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 <[email protected]>
        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;
  
index 19c0ddaf3e671e43ddd5e9068552de6c4783f209..7850e796fc311d95edb668e4f87eed2585acbfa2 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: popcornmix <[email protected]>
 
 --- 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);
  
index 20cfa48ea47498bfc8ab9684035c2302e0cab438..c1173c30fcf447210673e9a7c4d8e29df4b48540 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Phil Elwell <[email protected]>
 
 --- 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 <[email protected]>
        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) &&
index c2c73a8c96464926651415f30bc85b10830caaae..edf49764b7193c6e555b970eb509677b2c9745f7 100644 (file)
@@ -201,7 +201,7 @@ Signed-off-by: Jose Maria Casanova Crespo <[email protected]>
  /* 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 <[email protected]>
  };
  
  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 <[email protected]>
        /* 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 <[email protected]>
  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;
index 7ab01e4623a68b1a2b48b540487e19edff38a486..727f2996155853053ba4efd0e67322e73f441c59 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
 
 --- 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 <[email protected]>
        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)
index cad297ab7393c6af9dfba58982029041a40f3d21..e9ad87d316dd2ba54f88c50c5eb11ea3bbfb22c6 100644 (file)
@@ -51,7 +51,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
  
        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 <[email protected]>
        /* 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 <[email protected]>
        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)
index 99059c12dbab19d860cb3675e0791bc36e1ecec3..c820ed89a246c33774c18eac8fa0ad247d5ffbca 100644 (file)
@@ -47,7 +47,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
  /* 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 <[email protected]>
  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 <[email protected]>
        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)
index e1ea7998ed505eb80aa466284a248154b3dee5a0..17c7d2f96571f3238e41029acfacb56b42be9ddf 100644 (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;
  
index e588003e6e56e03a6a4dfc16b159e0b2d30935e8..ff1c5ba890168b177f4f3ec326fce7db2833d545 100644 (file)
@@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <[email protected]>
        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 <[email protected]>
                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 <[email protected]>
  };
  
  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;
  
index 965571e533e1c932bf7059e07033b9f52bc73cd3..b755c393b5650fe24ba67e9a150b0621abf84023 100644 (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++)
index 46b33165b2f30cf11de960d4372b91d124b51e7b..aacc0e76531019b04017d820bf48d406977ef63f 100644 (file)
@@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
        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);
index 9389ecf4d884a3da0c1750086796b3d10676df63..f0756b59451b7d373eab0f718260c3438074b82a 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
        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);
  
        /*
index f5494ab1b88c68399968cc90a36316b6a51225e8..dcc38a3c647279613204766d8df8b83fe633b00c 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <[email protected]>
 
 --- 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)
  {
index 327c74d720b6d3e7d9093937de58aad88044a8f7..1453bfa9e620790235d8e8913b208c413fa22f8c 100644 (file)
@@ -30,9 +30,9 @@ Signed-off-by: Jonathan Bell <[email protected]>
  #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
index 0d8111b890103249d5d44ef1a23d57aefdc5f694..b079ae700d848ebe5137ac58ca872664d6dc4b53 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
 
 --- 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),
  
index 83535468288972c949fa5edc6fe802363a1678cb..878c56b579775b94a4b1e4e76f5a47e02158cd4b 100644 (file)
@@ -16,8 +16,8 @@ Signed-off-by: Jonathan Bell <[email protected]>
 --- 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
index df2aad53c4ebba47e0daf4a946fa8735a98fe272..0f08ef43e40bb5be7f9bb8b2ca3fc86b1c2b1a68 100644 (file)
@@ -134,7 +134,7 @@ Signed-off-by: Phil Elwell <[email protected]>
        /* 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 <[email protected]>
        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;
  
index ac3e2ebf374a80c3cbfea974c9e8b64fe3a2cf74..3002cc5be6078381d39f93bdee6f47ce25f2e078 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
  #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),
  
index 2ada8c88a010fb810fc0ff0e01cbf273d39d7d26..0b3f80704b19a19d29bb80c0642e9c9200bf2f1d 100644 (file)
@@ -275,8 +275,8 @@ Signed-off-by: Maíra Canal <[email protected]>
                        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 <[email protected]>
 +      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 <[email protected]>
                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 <[email protected]>
                        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)
  {
index e0169d9745918d441d4d1cfe5f14668a216bfd4b..b405938cefca07f0c4d80a0eac6c182d08602c85 100644 (file)
@@ -98,7 +98,7 @@ Signed-off-by: Maíra Canal <[email protected]>
  
 --- 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 <[email protected]>
        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 <[email protected]>
  #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 <[email protected]>
  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);
index 5886cef55adb1f2eb40276c4ebe4bfb4ed32f6b7..f8d8f0069bc2e00e9424d07a4b9d2c645d845535 100644 (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;
diff --git a/target/linux/generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch b/target/linux/generic/backport-6.6/001-powerpc-kernel-Fix-pcc_save_regs-inclusion.patch
deleted file mode 100644 (file)
index 3d3515f..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-From 93bd4a80efeb521314485a06d8c21157240497bb Mon Sep 17 00:00:00 2001
-From: Madhavan Srinivasan <[email protected]>
-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 <[email protected]>
-Link: https://patch.msgid.link/[email protected]
----
- 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
index c8cef08935c28decc218102850bafb1b09852ae2..f5459aaccd5e9ffa21b3bdcb480b961e9a341eca 100644 (file)
 
 --- 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);
index 0ca219457c6eb019c2304def68c371c4af467d27..5be2e83ccea42ad1d16fc7f3b6c905a1c1337ea4 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Rui Salvaterra <[email protected]>
 
 --- 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;
  
index ff0a9ca5ae0c8d98fbbf64d102156915601ab1a5..fffb6cbb54cfa8ff13f5cfe05042fc6f2e302549 100644 (file)
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
        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 | \
index 939ec0485557870b1e46954edd92f4c4a92d247c..06026f375ec31369a043eaa05018688760377521 100644 (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;
  
index 0fe2b95e8a7dd9e7ff2460c9e51c3ff0202492a5..9b503527cef58b85a74313c8fc5da8372d9a4e8a 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: Daniel Golle <[email protected]>
 
 --- 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 <[email protected]>
        { /* 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" },
index 7fd7b3af43d28a6b693cfc6997cc79567c449471..1e9b8d173b21258361eac3b4236c8413ff0f4289 100644 (file)
@@ -38,7 +38,7 @@ Signed-off-by: Shiji Yang <[email protected]>
  };
  
  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 <[email protected]>
        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);
        }
  
index dff0c26fab9f42d9de0461859ead31ad72fe0276..fb35138ad3dfe6d8628610339812d348ce5bebe6 100644 (file)
@@ -50,7 +50,7 @@ Signed-off-by: minda.chen <[email protected]>
  
  #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 <[email protected]>
        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 <[email protected]>
        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 <[email protected]>
  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 <[email protected]>
  /* 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;
index b955ba810355e11f71bb97709648516de44c3415..e5dfb37078722a92f356cfd09a5014bd02238d04 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Minda Chen <[email protected]>
 
 --- 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 <[email protected]>
                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 <[email protected]>
                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 <[email protected]>
                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 <[email protected]>
  
        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) {
index 4fbc0c538b7c04810f774e394362f02ed5d77318..4a852287e7477cd83ada8f7f2a373ffca5c2cde1 100644 (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