diff --git a/patches-6.6/012-rk356x-add-dwc3-xhci-usb-trb-quirk.patch b/patches-6.6/012-rk356x-add-dwc3-xhci-usb-trb-quirk.patch index 9dd41a8..293722b 100644 --- a/patches-6.6/012-rk356x-add-dwc3-xhci-usb-trb-quirk.patch +++ b/patches-6.6/012-rk356x-add-dwc3-xhci-usb-trb-quirk.patch @@ -18,7 +18,7 @@ --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -1609,6 +1609,8 @@ static void dwc3_get_properties(struct d +@@ -1572,6 +1572,8 @@ static void dwc3_get_properties(struct d "snps,dis-del-phy-power-chg-quirk"); dwc->dis_tx_ipgap_linecheck_quirk = device_property_read_bool(dev, "snps,dis-tx-ipgap-linecheck-quirk"); @@ -61,7 +61,7 @@ --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c -@@ -253,6 +253,9 @@ int xhci_plat_probe(struct platform_device *pdev, struct device *sysdev, const s +@@ -253,6 +253,9 @@ int xhci_plat_probe(struct platform_devi if (device_property_read_bool(tmpdev, "xhci-sg-trb-cache-size-quirk")) xhci->quirks |= XHCI_SG_TRB_CACHE_SIZE_QUIRK; @@ -73,7 +73,7 @@ } --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -3549,6 +3549,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd * +@@ -3599,6 +3599,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd * bool more_trbs_coming = true; bool need_zero_pkt = false; bool first_trb = true; @@ -81,7 +81,7 @@ unsigned int num_trbs; unsigned int start_cycle, num_sgs = 0; unsigned int enqd_len, block_len, trb_buff_len, full_len; -@@ -3585,6 +3586,13 @@ int xhci_queue_bulk_tx(struct xhci_hcd * +@@ -3635,6 +3636,13 @@ int xhci_queue_bulk_tx(struct xhci_hcd * if (urb->transfer_flags & URB_ZERO_PACKET && urb_priv->num_tds > 1) need_zero_pkt = true; @@ -95,7 +95,7 @@ td = &urb_priv->td[0]; /* -@@ -3613,6 +3621,13 @@ int xhci_queue_bulk_tx(struct xhci_hcd * +@@ -3663,6 +3671,13 @@ int xhci_queue_bulk_tx(struct xhci_hcd * first_trb = false; if (start_cycle == 0) field |= TRB_CYCLE; @@ -109,7 +109,7 @@ } else field |= ring->cycle_state; -@@ -3621,6 +3636,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd * +@@ -3671,6 +3686,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd * */ if (enqd_len + trb_buff_len < full_len) { field |= TRB_CHAIN; @@ -132,7 +132,7 @@ #define TRB_MAX_BUFF_SIZE (1 << TRB_MAX_BUFF_SHIFT) /* How much data is left before the 64KB boundary? */ #define TRB_BUFF_LEN_UP_TO_BOUNDARY(addr) (TRB_MAX_BUFF_SIZE - \ -@@ -1848,6 +1852,7 @@ struct xhci_hcd { +@@ -1849,6 +1853,7 @@ struct xhci_hcd { #define XHCI_STATE_HALTED (1 << 1) #define XHCI_STATE_REMOVING (1 << 2) unsigned long long quirks; diff --git a/patches-6.6/110-arm64-rk3568-update-gicv3-its-and-pci-msi-map.patch b/patches-6.6/110-arm64-rk3568-update-gicv3-its-and-pci-msi-map.patch index c85ec7f..13edfa2 100644 --- a/patches-6.6/110-arm64-rk3568-update-gicv3-its-and-pci-msi-map.patch +++ b/patches-6.6/110-arm64-rk3568-update-gicv3-its-and-pci-msi-map.patch @@ -1,6 +1,6 @@ --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig -@@ -1229,6 +1229,14 @@ config SOCIONEXT_SYNQUACER_PREITS +@@ -1247,6 +1247,14 @@ config SOCIONEXT_SYNQUACER_PREITS If unsure, say Y. diff --git a/patches-6.6/111-irqchip-gic-v3-add-hackaround-for-rk3568-its.patch b/patches-6.6/111-irqchip-gic-v3-add-hackaround-for-rk3568-its.patch index be1944c..d1c7063 100644 --- a/patches-6.6/111-irqchip-gic-v3-add-hackaround-for-rk3568-its.patch +++ b/patches-6.6/111-irqchip-gic-v3-add-hackaround-for-rk3568-its.patch @@ -17,7 +17,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its #define ITS_FLAGS_FORCE_NON_SHAREABLE (1ULL << 3) #define RD_LOCAL_LPI_ENABLED BIT(0) -@@ -2201,6 +2202,11 @@ static struct page *its_allocate_prop_ta +@@ -2206,6 +2207,11 @@ static struct page *its_allocate_prop_ta { struct page *prop_page; @@ -29,7 +29,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its prop_page = alloc_pages(gfp_flags, get_order(LPI_PROPBASE_SZ)); if (!prop_page) return NULL; -@@ -2324,6 +2330,7 @@ static int its_setup_baser(struct its_no +@@ -2329,6 +2335,7 @@ static int its_setup_baser(struct its_no u32 alloc_pages, psz; struct page *page; void *base; @@ -37,7 +37,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its psz = baser->psz; alloc_pages = (PAGE_ORDER_TO_SIZE(order) / psz); -@@ -2335,7 +2342,10 @@ static int its_setup_baser(struct its_no +@@ -2340,7 +2347,10 @@ static int its_setup_baser(struct its_no order = get_order(GITS_BASER_PAGES_MAX * psz); } @@ -49,7 +49,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its if (!page) return -ENOMEM; -@@ -2385,6 +2395,13 @@ retry_baser: +@@ -2390,6 +2400,13 @@ retry_baser: its_write_baser(its, baser, val); tmp = baser->val; @@ -63,7 +63,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its if ((val ^ tmp) & GITS_BASER_SHAREABILITY_MASK) { /* * Shareability didn't stick. Just use -@@ -2971,6 +2988,10 @@ static struct page *its_allocate_pending +@@ -2980,6 +2997,10 @@ static struct page *its_allocate_pending { struct page *pend_page; @@ -74,27 +74,27 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its pend_page = alloc_pages(gfp_flags | __GFP_ZERO, get_order(LPI_PENDBASE_SZ)); if (!pend_page) -@@ -3126,6 +3147,9 @@ static void its_cpu_init_lpis(void) +@@ -3135,6 +3156,9 @@ static void its_cpu_init_lpis(void) gicr_write_propbaser(val, rbase + GICR_PROPBASER); tmp = gicr_read_propbaser(rbase + GICR_PROPBASER); + if (gic_rdists->flags & ITS_FLAGS_FORCE_NO_LOCAL_CACHE) + tmp &= ~GICR_PROPBASER_SHAREABILITY_MASK; + - if (gic_rdists->flags & RDIST_FLAGS_FORCE_NON_SHAREABLE) + if (!rdists_support_shareable()) tmp &= ~GICR_PROPBASER_SHAREABILITY_MASK; -@@ -3153,6 +3177,9 @@ static void its_cpu_init_lpis(void) +@@ -3162,6 +3186,9 @@ static void its_cpu_init_lpis(void) gicr_write_pendbaser(val, rbase + GICR_PENDBASER); tmp = gicr_read_pendbaser(rbase + GICR_PENDBASER); + if (gic_rdists->flags & ITS_FLAGS_FORCE_NO_LOCAL_CACHE) + tmp &= ~GICR_PENDBASER_SHAREABILITY_MASK; + - if (gic_rdists->flags & RDIST_FLAGS_FORCE_NON_SHAREABLE) + if (!rdists_support_shareable()) tmp &= ~GICR_PENDBASER_SHAREABILITY_MASK; -@@ -3319,7 +3346,12 @@ static bool its_alloc_table_entry(struct +@@ -3328,7 +3355,12 @@ static bool its_alloc_table_entry(struct /* Allocate memory for 2nd level table */ if (!table[idx]) { @@ -108,7 +108,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its get_order(baser->psz)); if (!page) return false; -@@ -3408,6 +3440,7 @@ static struct its_device *its_create_dev +@@ -3417,6 +3449,7 @@ static struct its_device *its_create_dev int nr_lpis; int nr_ites; int sz; @@ -116,7 +116,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its if (!its_alloc_device_table(its, dev_id)) return NULL; -@@ -3415,7 +3448,11 @@ static struct its_device *its_create_dev +@@ -3424,7 +3457,11 @@ static struct its_device *its_create_dev if (WARN_ON(!is_power_of_2(nvecs))) nvecs = roundup_pow_of_two(nvecs); @@ -129,7 +129,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its /* * Even if the device wants a single LPI, the ITT must be * sized as a power of two (and you need at least one bit...). -@@ -3423,7 +3460,7 @@ static struct its_device *its_create_dev +@@ -3432,7 +3469,7 @@ static struct its_device *its_create_dev nr_ites = max(2, nvecs); sz = nr_ites * (FIELD_GET(GITS_TYPER_ITT_ENTRY_SIZE, its->typer) + 1); sz = max(sz, ITS_ITT_ALIGN) + ITS_ITT_ALIGN - 1; @@ -138,7 +138,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its if (alloc_lpis) { lpi_map = its_lpi_alloc(nvecs, &lpi_base, &nr_lpis); if (lpi_map) -@@ -4762,6 +4799,13 @@ static bool its_set_non_coherent(void *d +@@ -4779,6 +4816,13 @@ static bool its_set_non_coherent(void *d return true; } @@ -152,7 +152,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its static const struct gic_quirk its_quirks[] = { #ifdef CONFIG_CAVIUM_ERRATUM_22375 { -@@ -4816,6 +4860,14 @@ static const struct gic_quirk its_quirks +@@ -4833,6 +4877,14 @@ static const struct gic_quirk its_quirks .init = its_enable_rk3588001, }, #endif @@ -167,15 +167,15 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its { .desc = "ITS: non-coherent attribute", .property = "dma-noncoherent", -@@ -5077,6 +5129,7 @@ static int __init its_probe_one(struct i +@@ -5094,6 +5146,7 @@ static int __init its_probe_one(struct i struct page *page; u32 ctlr; int err; + gfp_t gfp_flags; - if (is_v4(its)) { - if (!(its->typer & GITS_TYPER_VMOVP)) { -@@ -5108,7 +5161,9 @@ static int __init its_probe_one(struct i + its_enable_quirks(its); + +@@ -5127,7 +5180,9 @@ static int __init its_probe_one(struct i } } @@ -186,7 +186,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its get_order(ITS_CMD_QUEUE_SZ)); if (!page) { err = -ENOMEM; -@@ -5134,6 +5189,9 @@ static int __init its_probe_one(struct i +@@ -5153,6 +5208,9 @@ static int __init its_probe_one(struct i gits_write_cbaser(baser, its->base + GITS_CBASER); tmp = gits_read_cbaser(its->base + GITS_CBASER); diff --git a/patches-6.6/980-arm64-kernel-hide-handle_irq-log.patch b/patches-6.6/980-arm64-kernel-hide-handle_irq-log.patch index ab8988d..cbabf5c 100644 --- a/patches-6.6/980-arm64-kernel-hide-handle_irq-log.patch +++ b/patches-6.6/980-arm64-kernel-hide-handle_irq-log.patch @@ -1,6 +1,6 @@ --- a/arch/arm64/kernel/irq.c +++ b/arch/arm64/kernel/irq.c -@@ -105,7 +105,6 @@ int __init set_handle_irq(void (*handle_irq)(struct pt_regs *)) +@@ -106,7 +106,6 @@ int __init set_handle_irq(void (*handle_ return -EBUSY; handle_arch_irq = handle_irq;