kernel: bump 6.6 to 6.6.64
authorJohn Audia <therealgraysky@proton.me>
Mon, 9 Dec 2024 23:19:18 +0000 (00:19 +0100)
committerRobert Marko <robimarko@gmail.com>
Fri, 13 Dec 2024 20:40:02 +0000 (21:40 +0100)
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.64

Manually rebased:
generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch
bcm27xx/patches-6.6/950-0585-drm-vc4-Introduce-generation-number-enum.patch
bcm27xx/patches-6.6/950-0610-drm-vc4-hvs-Support-BCM2712-HVS.patch
bcm27xx/patches-6.6/950-0829-vc4-hvs-Add-support-for-D0-register-changes.patch

Removed upstreamed:
bcm27xx/patches-6.6/950-0597-drm-vc4-hdmi-Avoid-hang-with-debug-registers-when-su.patch[1]
bcm27xx/patches-6.6/950-0599-drm-vc4-Fix-dlist-debug-not-resetting-the-next-entry.patch[2]
bcm27xx/patches-6.6/950-0600-drm-vc4-Remove-incorrect-limit-from-hvs_dlist-debugf.patch[3]
bcm27xx/patches-6.6/950-0708-drm-vc4-Correct-logic-on-stopping-an-HVS-channel.patch[4]
ramips/patches-6.6/002-01-v6.13-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT38.patch[5]
ramips/patches-6.6/002-02-v6.13-clk-ralink-mtmips-fix-clocks-probe-order-in-oldest-r.patch[6]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.64&id=223ee2567a55e4f80315c768d2969e6a3b9fb23d
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.64&id=8182b5ca19c6f173b6498d1c6d3e4b034b76bbde
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.64&id=52c1716f65a558174e381360bd88f18dae4be85c
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.64&id=9728b508b01a5eeeac79ceb676364c674dd951ac
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.64&id=f85a1d06afbcc57ac44176db8f9d7a934979952c
6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.64&id=fbb13732c6ffa9d58cedafabcd5ce8fd7ef8ae5a

Build system: x86/64
Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3

Co-authored-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/17217
Signed-off-by: Robert Marko <robimarko@gmail.com>
94 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-0007-drm-vc4-Add-firmware-kms-mode.patch
target/linux/bcm27xx/patches-6.6/950-0008-drm-vc4-Add-support-for-gamma-on-BCM2711.patch
target/linux/bcm27xx/patches-6.6/950-0009-drm-vc4-Add-debugfs-node-that-dumps-the-vc5-gamma-PW.patch
target/linux/bcm27xx/patches-6.6/950-0010-drm-vc4-hvs-Force-modeset-on-gamma-lut-change.patch
target/linux/bcm27xx/patches-6.6/950-0014-drm-vc4-Enable-gamma-block-only-when-required.patch
target/linux/bcm27xx/patches-6.6/950-0016-drm-vc4-Validate-the-size-of-the-gamma_lut.patch
target/linux/bcm27xx/patches-6.6/950-0020-vc4-drm-vc4_plane-Keep-fractional-source-coords-insi.patch
target/linux/bcm27xx/patches-6.6/950-0024-drm-vc4-Force-trigger-of-dlist-update-on-margins-cha.patch
target/linux/bcm27xx/patches-6.6/950-0027-drm-vc4-hvs-Skip-DebugFS-Registration-for-FKMS.patch
target/linux/bcm27xx/patches-6.6/950-0028-drm-vc4_hdmi-Allow-hotplug-detect-to-be-forced.patch
target/linux/bcm27xx/patches-6.6/950-0029-vc4_hdmi-Avoid-log-spam-for-audio-start-failure.patch
target/linux/bcm27xx/patches-6.6/950-0030-drm-vc4-hvs-Defer-dlist-slots-deallocation.patch
target/linux/bcm27xx/patches-6.6/950-0031-drm-vc4-hvs-Initialize-the-dlist-allocation-list-ent.patch
target/linux/bcm27xx/patches-6.6/950-0032-drm-vc4-hvs-Move-the-dlist-allocation-destruction-to.patch
target/linux/bcm27xx/patches-6.6/950-0033-drm-vc4-hvs-Destroy-dlist-allocations-immediately-wh.patch
target/linux/bcm27xx/patches-6.6/950-0035-drm-vc4-Calculate-bpc-based-on-max_requested_bpc.patch
target/linux/bcm27xx/patches-6.6/950-0036-drm-vc4-Set-AXI-panic-modes-for-the-HVS.patch
target/linux/bcm27xx/patches-6.6/950-0037-drm-vc4-drop-unnecessary-and-harmful-HDMI-RGB-format.patch
target/linux/bcm27xx/patches-6.6/950-0038-drm-vc4-Limit-max_bpc-to-8-on-Pi0-3.patch
target/linux/bcm27xx/patches-6.6/950-0039-arm64-setup-Fix-build-warning.patch
target/linux/bcm27xx/patches-6.6/950-0065-cgroup-Disable-cgroup-memory-by-default.patch
target/linux/bcm27xx/patches-6.6/950-0081-lan78xx-Enable-LEDs-and-auto-negotiation.patch
target/linux/bcm27xx/patches-6.6/950-0106-Add-support-for-all-the-downstream-rpi-sound-card-dr.patch
target/linux/bcm27xx/patches-6.6/950-0120-lan78xx-Read-initial-EEE-status-from-DT.patch
target/linux/bcm27xx/patches-6.6/950-0125-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch
target/linux/bcm27xx/patches-6.6/950-0127-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch
target/linux/bcm27xx/patches-6.6/950-0130-serial-sc16is7xx-Don-t-spin-if-no-data-received.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-0134-lan78xx-EEE-support-is-now-a-PHY-property.patch
target/linux/bcm27xx/patches-6.6/950-0204-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch
target/linux/bcm27xx/patches-6.6/950-0468-drm-vc4-hdmi-Increase-MAI-fifo-dreq-threshold.patch
target/linux/bcm27xx/patches-6.6/950-0475-serial-sc16is7xx-Read-modem-line-state-at-startup.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-0578-drm-vc4-hdmi-Enable-the-audio-clock.patch
target/linux/bcm27xx/patches-6.6/950-0580-drm-vc4-hvs-More-logging-for-dlist-generation.patch
target/linux/bcm27xx/patches-6.6/950-0581-drm-vc4-hvs-Print-error-if-we-fail-an-allocation.patch
target/linux/bcm27xx/patches-6.6/950-0585-drm-vc4-Introduce-generation-number-enum.patch
target/linux/bcm27xx/patches-6.6/950-0587-drm-vc4-hvs-Use-switch-statement-to-simplify-vc4_hvs.patch
target/linux/bcm27xx/patches-6.6/950-0588-drm-vc4-hvs-Use-switch-statement-to-simplify-enablin.patch
target/linux/bcm27xx/patches-6.6/950-0589-drm-vc4-hvs-Test-if-the-EOF-interrupts-are-enabled.patch
target/linux/bcm27xx/patches-6.6/950-0590-drm-vc4-hvs-Create-hw_init-function.patch
target/linux/bcm27xx/patches-6.6/950-0591-drm-vc4-hvs-Create-cob_init-function.patch
target/linux/bcm27xx/patches-6.6/950-0592-drm-vc4-hvs-Rename-hvs_regs-list.patch
target/linux/bcm27xx/patches-6.6/950-0593-drm-vc4-plane-Change-ptr0_offset-to-an-array.patch
target/linux/bcm27xx/patches-6.6/950-0595-drm-vc4-hvs-Change-prototype-of-__vc4_hvs_alloc-to-p.patch
target/linux/bcm27xx/patches-6.6/950-0597-drm-vc4-hdmi-Avoid-hang-with-debug-registers-when-su.patch [deleted file]
target/linux/bcm27xx/patches-6.6/950-0598-drm-vc4-Move-the-buffer-offset-out-of-the-vc4_plane_.patch
target/linux/bcm27xx/patches-6.6/950-0599-drm-vc4-Fix-dlist-debug-not-resetting-the-next-entry.patch [deleted file]
target/linux/bcm27xx/patches-6.6/950-0600-drm-vc4-Remove-incorrect-limit-from-hvs_dlist-debugf.patch [deleted file]
target/linux/bcm27xx/patches-6.6/950-0602-drm-vc4-Enable-SCALER_CONTROL-early-in-HVS-init.patch
target/linux/bcm27xx/patches-6.6/950-0610-drm-vc4-hvs-Support-BCM2712-HVS.patch
target/linux/bcm27xx/patches-6.6/950-0622-drm-vc4-Add-additional-warn_on.patch
target/linux/bcm27xx/patches-6.6/950-0655-vc4-drm-Remove-the-clear-of-SCALER_DISPBKGND_FILL.patch
target/linux/bcm27xx/patches-6.6/950-0708-drm-vc4-Correct-logic-on-stopping-an-HVS-channel.patch [deleted file]
target/linux/bcm27xx/patches-6.6/950-0709-drm-vc4-Drop-WARN-for-HVS-FIFOs-not-being-empty.patch
target/linux/bcm27xx/patches-6.6/950-0710-drm-vc4-Free-all-stale-dlists-if-channel-is-disabled.patch
target/linux/bcm27xx/patches-6.6/950-0711-drm-vc4-Add-hvs_dlist_allocs-debugfs-function.patch
target/linux/bcm27xx/patches-6.6/950-0712-drm-vc4-Log-the-size-of-the-dlist-allocation-that-wa.patch
target/linux/bcm27xx/patches-6.6/950-0740-drm-vc4-Free-the-dlist-alloc-immediately-if-it-never.patch
target/linux/bcm27xx/patches-6.6/950-0810-drm-vc4-Fix-reading-of-frame-count-on-GEN5-Pi4.patch
target/linux/bcm27xx/patches-6.6/950-0829-vc4-hvs-Add-support-for-D0-register-changes.patch
target/linux/bcm27xx/patches-6.6/950-0830-vc4-hvs-Updates-to-support-D0-alpha-and-csc-changes.patch
target/linux/bcm27xx/patches-6.6/950-0836-drm-vc4-Optimise-vc4_hvs_dlist_free_work-to-only-rea.patch
target/linux/bcm27xx/patches-6.6/950-0837-drm-vc4-Flush-stale-dlist-entries-if-allocation-fail.patch
target/linux/bcm27xx/patches-6.6/950-0989-drm-vc4-Enable-bg_fill-if-there-are-no-planes-enable.patch
target/linux/bcm27xx/patches-6.6/950-1257-drm-vc4-Add-support-for-per-plane-scaling-filter-sel.patch
target/linux/bcm27xx/patches-6.6/950-1323-drm-vc4-Remove-request-for-min-clocks-when-hdmi-outp.patch
target/linux/bcm27xx/patches-6.6/950-1349-cgroup-Use-kernel-command-line-to-disable-memory-cgr.patch
target/linux/generic/hack-6.6/204-module_strip.patch
target/linux/generic/hack-6.6/253-ksmbd-config.patch
target/linux/generic/hack-6.6/780-usb-net-MeigLink_modem_support.patch
target/linux/generic/hack-6.6/901-debloat_sock_diag.patch
target/linux/generic/hack-6.6/902-debloat_proc.patch
target/linux/generic/hack-6.6/920-device_tree_cmdline.patch
target/linux/generic/pending-6.6/203-kallsyms_uncompressed.patch
target/linux/generic/pending-6.6/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-6.6/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
target/linux/generic/pending-6.6/920-mangle_bootargs.patch
target/linux/ipq806x/patches-6.6/900-arm-add-cmdline-override.patch
target/linux/layerscape/patches-6.6/400-LF-20-3-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch
target/linux/mediatek/patches-6.6/432-drivers-spi-Add-support-for-dynamic-calibration.patch
target/linux/mediatek/patches-6.6/901-arm-add-cmdline-override.patch
target/linux/mpc85xx/patches-6.6/102-powerpc-add-cmdline-override.patch
target/linux/ramips/patches-6.6/001-v6.13-clocksource-drivers-ralink-Add-Ralink-System-Tick-Co.patch
target/linux/ramips/patches-6.6/002-01-v6.13-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT38.patch [deleted file]
target/linux/ramips/patches-6.6/002-02-v6.13-clk-ralink-mtmips-fix-clocks-probe-order-in-oldest-r.patch [deleted file]
target/linux/ramips/patches-6.6/311-MIPS-use-set_mode-to-enable-disable-the-cevt-r4k-irq.patch
target/linux/ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch
target/linux/starfive/patches-6.6/0003-clocksource-Add-JH7110-timer-driver.patch
target/linux/starfive/patches-6.6/0033-PCI-Add-PCIE_RESET_CONFIG_DEVICE_WAIT_MS-waiting-tim.patch
target/linux/starfive/patches-6.6/0072-drivers-nvme-Add-precheck-and-delay-for-CQE-pending-.patch
target/linux/starfive/patches-6.6/0109-usb-xhci-To-improve-performance-usb-using-lowmem-for.patch

index 0cfe052e651ad15cf46c3421acc966d6a1c39a66..ddbef67f942d28a6301465cf1275a7a89bd8fec7 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.6 = .63
-LINUX_KERNEL_HASH-6.6.63 = d1054ab4803413efe2850f50f1a84349c091631ec50a1cf9e891d1b1f9061835
+LINUX_VERSION-6.6 = .64
+LINUX_KERNEL_HASH-6.6.64 = 065fd93fa6cb422f650fb563f15d3e0107c85009f766405993d795fd39796ab1
index de8e8806433c60340e4db203b51c7f9557d866e1..939ec0485557870b1e46954edd92f4c4a92d247c 100644 (file)
@@ -8,7 +8,7 @@
  
  static int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val)
  {
-@@ -1346,6 +1347,7 @@ static int spinand_probe(struct spi_mem
+@@ -1347,6 +1348,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;
-@@ -1353,6 +1355,7 @@ static int spinand_probe(struct spi_mem
+@@ -1354,6 +1356,7 @@ static int spinand_probe(struct spi_mem
        return 0;
  
  err_spinand_cleanup:
@@ -24,7 +24,7 @@
        spinand_cleanup(spinand);
  
        return ret;
-@@ -1371,6 +1374,7 @@ static int spinand_remove(struct spi_mem
+@@ -1372,6 +1375,7 @@ static int spinand_remove(struct spi_mem
        if (ret)
                return ret;
  
index c755e8143598e1904f99d5065c0dff9915063a7f..468420bdee0eac6173f4423d811cbfbd6554645c 100644 (file)
@@ -220,7 +220,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  
        struct vc4_hang_state *hang_state;
  
-@@ -963,6 +967,9 @@ extern struct platform_driver vc4_dsi_dr
+@@ -964,6 +968,9 @@ extern struct platform_driver vc4_dsi_dr
  /* vc4_fence.c */
  extern const struct dma_fence_ops vc4_fence_ops;
  
index a4712310f2b7b2c86764d5833d98eb835fb85284..10a09eb2c0c155381845662e51514238bbe26f15 100644 (file)
@@ -83,7 +83,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
  struct drm_device;
  struct drm_gem_object;
-@@ -494,6 +495,17 @@ struct drm_encoder *vc4_find_encoder_by_
+@@ -495,6 +496,17 @@ struct drm_encoder *vc4_find_encoder_by_
        return NULL;
  }
  
@@ -101,7 +101,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  struct vc4_crtc_data {
        const char *name;
  
-@@ -538,9 +550,19 @@ struct vc4_crtc {
+@@ -539,9 +551,19 @@ struct vc4_crtc {
        /* Timestamp at start of vblank irq - unaffected by lock delays. */
        ktime_t t_vblank;
  
@@ -126,7 +126,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -243,7 +243,8 @@ static void vc4_hvs_lut_load(struct vc4_
+@@ -248,7 +248,8 @@ static void vc4_hvs_lut_load(struct vc4_
  static void vc4_hvs_update_gamma_lut(struct vc4_hvs *hvs,
                                     struct vc4_crtc *vc4_crtc)
  {
@@ -136,7 +136,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        struct drm_color_lut *lut = crtc_state->gamma_lut->data;
        u32 length = drm_color_lut_size(crtc_state->gamma_lut);
        u32 i;
-@@ -257,6 +258,81 @@ static void vc4_hvs_update_gamma_lut(str
+@@ -262,6 +263,81 @@ static void vc4_hvs_update_gamma_lut(str
        vc4_hvs_lut_load(hvs, vc4_crtc);
  }
  
@@ -218,7 +218,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  u8 vc4_hvs_get_fifo_frame_count(struct vc4_hvs *hvs, unsigned int fifo)
  {
        struct drm_device *drm = &hvs->vc4->base;
-@@ -400,7 +476,10 @@ static int vc4_hvs_init_channel(struct v
+@@ -405,7 +481,10 @@ static int vc4_hvs_init_channel(struct v
        /* Reload the LUT, since the SRAMs would have been disabled if
         * all CRTCs had SCALER_DISPBKGND_GAMMA unset at once.
         */
@@ -230,7 +230,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        drm_dev_exit(idx);
  
-@@ -646,7 +725,11 @@ void vc4_hvs_atomic_flush(struct drm_crt
+@@ -649,7 +728,11 @@ void vc4_hvs_atomic_flush(struct drm_crt
                u32 dispbkgndx = HVS_READ(SCALER_DISPBKGNDX(channel));
  
                if (crtc->state->gamma_lut) {
index 24d0cd90f6e2f952e76510aeb86e9bf7286ac603..863ad82432d5dfbc57ecee6a05433ba57f3358c9 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -143,6 +143,85 @@ static int vc4_hvs_debugfs_dlist(struct
+@@ -145,6 +145,85 @@ static int vc4_hvs_debugfs_dlist(struct
        return 0;
  }
  
@@ -103,7 +103,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  /* The filter kernel is composed of dwords each containing 3 9-bit
   * signed integers packed next to each other.
   */
-@@ -850,11 +929,15 @@ int vc4_hvs_debugfs_init(struct drm_mino
+@@ -854,11 +933,15 @@ int vc4_hvs_debugfs_init(struct drm_mino
        if (!vc4->hvs)
                return -ENODEV;
  
index f49122dec27a11fbdd5fefa550159bd6ea8af8d0..b8847230af08414ef674ed2eb9d523a4c122a94a 100644 (file)
@@ -45,7 +45,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc);
 --- a/drivers/gpu/drm/vc4/vc4_drv.h
 +++ b/drivers/gpu/drm/vc4/vc4_drv.h
-@@ -613,6 +613,9 @@ vc4_crtc_to_vc4_pv_data(const struct vc4
+@@ -614,6 +614,9 @@ vc4_crtc_to_vc4_pv_data(const struct vc4
        return container_of_const(data, struct vc4_pv_data, base);
  }
  
@@ -57,7 +57,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -596,6 +596,36 @@ out:
+@@ -599,6 +599,36 @@ out:
        drm_dev_exit(idx);
  }
  
@@ -94,7 +94,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  int vc4_hvs_atomic_check(struct drm_crtc *crtc, struct drm_atomic_state *state)
  {
        struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, crtc);
-@@ -626,7 +656,7 @@ int vc4_hvs_atomic_check(struct drm_crtc
+@@ -629,7 +659,7 @@ int vc4_hvs_atomic_check(struct drm_crtc
        if (ret)
                return ret;
  
index 76647cbd48889b443f41990c4958e8b10598b090..061b37797de7c842cc4e49b1151f9d95fbdd8c77 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -548,8 +548,11 @@ static int vc4_hvs_init_channel(struct v
+@@ -553,8 +553,11 @@ static int vc4_hvs_init_channel(struct v
        dispbkgndx &= ~SCALER_DISPBKGND_GAMMA;
        dispbkgndx &= ~SCALER_DISPBKGND_INTERLACE;
  
@@ -33,7 +33,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
                  (interlace ? SCALER_DISPBKGND_INTERLACE : 0));
  
        /* Reload the LUT, since the SRAMs would have been disabled if
-@@ -834,18 +837,25 @@ void vc4_hvs_atomic_flush(struct drm_crt
+@@ -837,18 +840,25 @@ void vc4_hvs_atomic_flush(struct drm_crt
                u32 dispbkgndx = HVS_READ(SCALER_DISPBKGNDX(channel));
  
                if (crtc->state->gamma_lut) {
index fd0823aa136c89ff84baca9f299b9752993afa98..7280b6e30c4a87e98312091321d0c486d12f6bb8 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -614,6 +614,16 @@ static int vc4_hvs_gamma_check(struct dr
+@@ -617,6 +617,16 @@ static int vc4_hvs_gamma_check(struct dr
        if (!crtc_state->color_mgmt_changed)
                return 0;
  
index 46a72e4ed92cbdecc1e692b733dc45eb834e9bbc..17dd4433e1ac4727f514501cf2e2d7ce0bb30224 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_drv.h
 +++ b/drivers/gpu/drm/vc4/vc4_drv.h
-@@ -408,7 +408,7 @@ struct vc4_plane_state {
+@@ -409,7 +409,7 @@ struct vc4_plane_state {
  
        /* Clipped coordinates of the plane on the display. */
        int crtc_x, crtc_y, crtc_w, crtc_h;
index 9779cd512c00786d1456ec9d12259591ad613aea..06cb7094985b1f7108797e819c67c7ab0d068f0f 100644 (file)
@@ -42,7 +42,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  
 --- a/drivers/gpu/drm/vc4/vc4_drv.h
 +++ b/drivers/gpu/drm/vc4/vc4_drv.h
-@@ -626,12 +626,7 @@ struct vc4_crtc_state {
+@@ -627,12 +627,7 @@ struct vc4_crtc_state {
        bool txp_armed;
        unsigned int assigned_channel;
  
index ba03cfb7b92fc957b52e095026cf77908e63c0a4..fb8abd20caf596e8a6937983a65cb33acbc80631 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -976,6 +976,9 @@ int vc4_hvs_debugfs_init(struct drm_mino
+@@ -980,6 +980,9 @@ int vc4_hvs_debugfs_init(struct drm_mino
        struct vc4_dev *vc4 = to_vc4_dev(drm);
        struct vc4_hvs *hvs = vc4->hvs;
  
index 95b3ec7a248de5b3efe19dc60256920afa8a0606..5785fbf667b28b84566af0a6c8bc3c13d858b56f 100644 (file)
@@ -45,7 +45,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  static const char * const output_format_str[] = {
        [VC4_HDMI_OUTPUT_RGB]           = "RGB",
        [VC4_HDMI_OUTPUT_YUV420]        = "YUV 4:2:0",
-@@ -478,7 +484,9 @@ static int vc4_hdmi_connector_detect_ctx
+@@ -482,7 +488,9 @@ static int vc4_hdmi_connector_detect_ctx
                return connector_status_unknown;
        }
  
index 0baf803edf8d5f6b151799b54382646f1ff60e41..a73c5e3163fa5e1f13d5bfc3c8aec69997c372e0 100644 (file)
@@ -30,7 +30,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -2400,7 +2400,7 @@ static int vc4_hdmi_audio_startup(struct
+@@ -2404,7 +2404,7 @@ static int vc4_hdmi_audio_startup(struct
        }
  
        if (!vc4_hdmi_audio_can_stream(vc4_hdmi)) {
index a53dd1fa637e023dcd4432e152b28c7e1bdacc42..0d05286863818034cbc81ddeabaf173e1696747d 100644 (file)
@@ -98,7 +98,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  }
 --- a/drivers/gpu/drm/vc4/vc4_drv.h
 +++ b/drivers/gpu/drm/vc4/vc4_drv.h
-@@ -332,6 +332,9 @@ struct vc4_hvs {
+@@ -333,6 +333,9 @@ struct vc4_hvs {
        struct drm_mm lbm_mm;
        spinlock_t mm_lock;
  
@@ -108,7 +108,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        struct drm_mm_node mitchell_netravali_filter;
  
        struct debugfs_regset32 regset;
-@@ -619,10 +622,16 @@ struct drm_connector *vc4_get_crtc_conne
+@@ -620,10 +623,16 @@ struct drm_connector *vc4_get_crtc_conne
  struct drm_encoder *vc4_get_crtc_encoder(struct drm_crtc *crtc,
                                         struct drm_crtc_state *state);
  
@@ -127,7 +127,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        bool txp_armed;
        unsigned int assigned_channel;
  
-@@ -1032,6 +1041,8 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
+@@ -1033,6 +1042,8 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
  void vc4_hvs_stop_channel(struct vc4_hvs *hvs, unsigned int output);
  int vc4_hvs_get_fifo_from_output(struct vc4_hvs *hvs, unsigned int output);
  u8 vc4_hvs_get_fifo_frame_count(struct vc4_hvs *hvs, unsigned int fifo);
@@ -138,7 +138,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  void vc4_hvs_atomic_enable(struct drm_crtc *crtc, struct drm_atomic_state *state);
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -412,6 +412,152 @@ static void vc5_hvs_update_gamma_lut(str
+@@ -417,6 +417,152 @@ static void vc5_hvs_update_gamma_lut(str
        vc5_hvs_lut_load(hvs, vc4_crtc);
  }
  
@@ -291,7 +291,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  u8 vc4_hvs_get_fifo_frame_count(struct vc4_hvs *hvs, unsigned int fifo)
  {
        struct drm_device *drm = &hvs->vc4->base;
-@@ -643,13 +789,12 @@ int vc4_hvs_atomic_check(struct drm_crtc
+@@ -646,13 +792,12 @@ int vc4_hvs_atomic_check(struct drm_crtc
  {
        struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, crtc);
        struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc_state);
@@ -306,7 +306,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        /* The pixelvalve can only feed one encoder (and encoders are
         * 1:1 with connectors.)
-@@ -662,12 +807,11 @@ int vc4_hvs_atomic_check(struct drm_crtc
+@@ -665,12 +810,11 @@ int vc4_hvs_atomic_check(struct drm_crtc
  
        dlist_count++; /* Account for SCALER_CTL0_END. */
  
@@ -324,7 +324,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        return vc4_hvs_gamma_check(crtc, state);
  }
-@@ -683,8 +827,9 @@ static void vc4_hvs_install_dlist(struct
+@@ -686,8 +830,9 @@ static void vc4_hvs_install_dlist(struct
        if (!drm_dev_enter(dev, &idx))
                return;
  
@@ -335,7 +335,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        drm_dev_exit(idx);
  }
-@@ -711,8 +856,10 @@ static void vc4_hvs_update_dlist(struct
+@@ -714,8 +859,10 @@ static void vc4_hvs_update_dlist(struct
                spin_unlock_irqrestore(&dev->event_lock, flags);
        }
  
@@ -347,7 +347,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        spin_unlock_irqrestore(&vc4_crtc->irq_lock, flags);
  }
  
-@@ -769,8 +916,7 @@ void vc4_hvs_atomic_flush(struct drm_crt
+@@ -772,8 +919,7 @@ void vc4_hvs_atomic_flush(struct drm_crt
        struct vc4_plane_state *vc4_plane_state;
        bool debug_dump_regs = false;
        bool enable_bg_fill = false;
@@ -357,7 +357,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        unsigned int zpos = 0;
        bool found = false;
        int idx;
-@@ -788,6 +934,9 @@ void vc4_hvs_atomic_flush(struct drm_crt
+@@ -791,6 +937,9 @@ void vc4_hvs_atomic_flush(struct drm_crt
                vc4_hvs_dump_state(hvs);
        }
  
@@ -367,7 +367,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        /* Copy all the active planes' dlist contents to the hardware dlist. */
        do {
                found = false;
-@@ -821,7 +970,8 @@ void vc4_hvs_atomic_flush(struct drm_crt
+@@ -824,7 +973,8 @@ void vc4_hvs_atomic_flush(struct drm_crt
        writel(SCALER_CTL0_END, dlist_next);
        dlist_next++;
  
@@ -377,7 +377,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        if (enable_bg_fill)
                /* This sets a black background color fill, as is the case
-@@ -960,6 +1110,11 @@ static irqreturn_t vc4_hvs_irq_handler(i
+@@ -964,6 +1114,11 @@ static irqreturn_t vc4_hvs_irq_handler(i
  
                        irqret = IRQ_HANDLED;
                }
@@ -389,7 +389,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        }
  
        /* Clear every per-channel interrupt flag. */
-@@ -1014,6 +1169,9 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
+@@ -1018,6 +1173,9 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
  
        spin_lock_init(&hvs->mm_lock);
  
index d250dd4e1e15bfffb6fadd34dea56d62d4adbdd4..2fd7aa573de881ee8d078c41ca3f6ec562facdcb 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -452,6 +452,8 @@ vc4_hvs_alloc_dlist_entry(struct vc4_hvs
+@@ -457,6 +457,8 @@ vc4_hvs_alloc_dlist_entry(struct vc4_hvs
        if (!alloc)
                return ERR_PTR(-ENOMEM);
  
index f6fe9e1a4c20b266355f4f7f76a384f26c64fe70..07fb255e66109f24e6121235511610622476a7e3 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -466,6 +466,18 @@ vc4_hvs_alloc_dlist_entry(struct vc4_hvs
+@@ -471,6 +471,18 @@ vc4_hvs_alloc_dlist_entry(struct vc4_hvs
        return alloc;
  }
  
@@ -33,7 +33,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  void vc4_hvs_mark_dlist_entry_stale(struct vc4_hvs *hvs,
                                    struct vc4_hvs_dlist_allocation *alloc)
  {
-@@ -553,9 +565,7 @@ static void vc4_hvs_dlist_free_work(stru
+@@ -558,9 +570,7 @@ static void vc4_hvs_dlist_free_work(stru
                if (!vc4_hvs_frcnt_lte(cur->target_frame_count, frcnt))
                        continue;
  
index 6c8689e169cb46e130666d0f346bc6b332db0668..ecfabf63b92a59e0bf6ae0a18218fa6f2b25f26f 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -490,6 +490,18 @@ void vc4_hvs_mark_dlist_entry_stale(stru
+@@ -495,6 +495,18 @@ void vc4_hvs_mark_dlist_entry_stale(stru
        if (!drm_mm_node_allocated(&alloc->mm_node))
                return;
  
index f0fb3eb7d47eeec65601a7d9d20a969dd9375c82..fbaa2619aa52b27a0f767552b37a3a894769aaa5 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -2132,7 +2132,7 @@ vc4_hdmi_encoder_compute_config(const st
+@@ -2136,7 +2136,7 @@ vc4_hdmi_encoder_compute_config(const st
  {
        struct drm_device *dev = vc4_hdmi->connector.dev;
        struct drm_connector_state *conn_state = &vc4_state->base;
index 996094739581f7c0669128d039a048465ae57b4e..13015f1f497a4765c1cab706500350f29dc76f70 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -1363,6 +1363,17 @@ static int vc4_hvs_bind(struct device *d
+@@ -1368,6 +1368,17 @@ static int vc4_hvs_bind(struct device *d
        dispctrl |= VC4_SET_FIELD(2, SCALER_DISPCTRL_PANIC1);
        dispctrl |= VC4_SET_FIELD(2, SCALER_DISPCTRL_PANIC2);
  
index b9fba16f695737c0119d99b3088277a830e412f2..18b5b63b5478701cd91cae5a420f0b9ef799eff0 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -1958,9 +1958,6 @@ vc4_hdmi_sink_supports_format_bpc(const
+@@ -1962,9 +1962,6 @@ vc4_hdmi_sink_supports_format_bpc(const
        case VC4_HDMI_OUTPUT_RGB:
                drm_dbg(dev, "RGB Format, checking the constraints.\n");
  
index 2b86f419529670926609c1c503fa9d5b78fc4982..b3b1c3d9e4348c053c5b060ce47adc6856f91508 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -762,7 +762,6 @@ static int vc4_hdmi_connector_init(struc
+@@ -766,7 +766,6 @@ static int vc4_hdmi_connector_init(struc
  
        drm_connector_attach_colorspace_property(connector);
        drm_connector_attach_tv_margin_properties(connector);
@@ -21,7 +21,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  
        connector->polled = (DRM_CONNECTOR_POLL_CONNECT |
                             DRM_CONNECTOR_POLL_DISCONNECT);
-@@ -771,8 +770,12 @@ static int vc4_hdmi_connector_init(struc
+@@ -775,8 +774,12 @@ static int vc4_hdmi_connector_init(struc
        connector->doublescan_allowed = 0;
        connector->stereo_allowed = 1;
  
index a53c896daaaf6513401d733e3cdd69ad35816597..75e552a7ef036c45bf1837055a23fb4b7095d250 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/arch/arm64/kernel/setup.c
 +++ b/arch/arm64/kernel/setup.c
-@@ -225,9 +225,9 @@ static void __init request_standard_reso
+@@ -229,9 +229,9 @@ static void __init request_standard_reso
        size_t res_size;
  
        kernel_code.start   = __pa_symbol(_stext);
index 8a06ec387e6ef63409e8a7174e1df1c2d4be873c..5f2d80b697ce8783dfa130ce4a36787ea6f80e69 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/kernel/cgroup/cgroup.c
 +++ b/kernel/cgroup/cgroup.c
-@@ -6060,6 +6060,9 @@ int __init cgroup_init_early(void)
+@@ -6063,6 +6063,9 @@ int __init cgroup_init_early(void)
        return 0;
  }
  
@@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  /**
   * cgroup_init - cgroup initialization
   *
-@@ -6093,6 +6096,12 @@ int __init cgroup_init(void)
+@@ -6096,6 +6099,12 @@ int __init cgroup_init(void)
  
        cgroup_unlock();
  
@@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
        for_each_subsys(ss, ssid) {
                if (ss->early_init) {
                        struct cgroup_subsys_state *css =
-@@ -6733,6 +6742,10 @@ static int __init cgroup_disable(char *s
+@@ -6736,6 +6745,10 @@ static int __init cgroup_disable(char *s
                            strcmp(token, ss->legacy_name))
                                continue;
  
@@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
                        static_branch_disable(cgroup_subsys_enabled_key[i]);
                        pr_info("Disabling %s control group subsystem\n",
                                ss->name);
-@@ -6751,6 +6764,31 @@ static int __init cgroup_disable(char *s
+@@ -6754,6 +6767,31 @@ static int __init cgroup_disable(char *s
  }
  __setup("cgroup_disable=", cgroup_disable);
  
index 8735b0617017ad7d19f5896636456d3e534393a6..fb248b08892ddb89562a0a4fcd2ebb31877a3cb6 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/drivers/net/usb/lan78xx.c
 +++ b/drivers/net/usb/lan78xx.c
-@@ -2883,6 +2883,11 @@ static int lan78xx_reset(struct lan78xx_
+@@ -2884,6 +2884,11 @@ static int lan78xx_reset(struct lan78xx_
        int ret;
        u32 buf;
        u8 sig;
@@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  
        ret = lan78xx_read_reg(dev, HW_CFG, &buf);
        if (ret < 0)
-@@ -2947,6 +2952,10 @@ static int lan78xx_reset(struct lan78xx_
+@@ -2948,6 +2953,10 @@ static int lan78xx_reset(struct lan78xx_
  
        buf |= HW_CFG_MEF_;
  
@@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
        ret = lan78xx_write_reg(dev, HW_CFG, buf);
        if (ret < 0)
                return ret;
-@@ -3046,6 +3055,9 @@ static int lan78xx_reset(struct lan78xx_
+@@ -3047,6 +3056,9 @@ static int lan78xx_reset(struct lan78xx_
                        buf |= MAC_CR_AUTO_DUPLEX_ | MAC_CR_AUTO_SPEED_;
                }
        }
index 395ec0797c15ca26f5d55dfec78e78c11d3f6c57..a8a58b58fa64c1ca71337827d25bf8d700c40f65 100644 (file)
@@ -17583,7 +17583,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
         * For devices with more than one control interface, we assume the
 --- a/sound/usb/quirks.c
 +++ b/sound/usb/quirks.c
-@@ -2197,6 +2197,8 @@ static const struct usb_audio_quirk_flag
+@@ -2212,6 +2212,8 @@ static const struct usb_audio_quirk_flag
                   QUIRK_FLAG_ALIGN_TRANSFER),
        DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
                   QUIRK_FLAG_ALIGN_TRANSFER),
index 296ceae6c70c3aeb48f750a138f9cb7ab41f0ad5..7aa05b0abc42250b57de35eb8bf99a78cb504385 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/drivers/net/usb/lan78xx.c
 +++ b/drivers/net/usb/lan78xx.c
-@@ -3111,6 +3111,22 @@ static int lan78xx_open(struct net_devic
+@@ -3112,6 +3112,22 @@ static int lan78xx_open(struct net_devic
  
        netif_dbg(dev, ifup, dev->net, "phy initialised successfully");
  
index 7738bdb8da8688a61bac35854d094ddaafce28d2..1b6643508b38cce173176e4a02cfb2146e73bc2d 100644 (file)
@@ -38,7 +38,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
  static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
  {
        u32 *buf;
-@@ -3471,8 +3480,14 @@ static int lan78xx_bind(struct lan78xx_n
+@@ -3472,8 +3481,14 @@ static int lan78xx_bind(struct lan78xx_n
        if (DEFAULT_RX_CSUM_ENABLE)
                dev->net->features |= NETIF_F_RXCSUM;
  
index f73106ab4bd8b40940b4470217c474efec9200cd..f98d2c7dd63c188fc4c61f5efe4838289a72c317 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/drivers/net/usb/lan78xx.c
 +++ b/drivers/net/usb/lan78xx.c
-@@ -2419,6 +2419,22 @@ static int lan78xx_phy_init(struct lan78
+@@ -2420,6 +2420,22 @@ static int lan78xx_phy_init(struct lan78
        mii_adv_to_linkmode_adv_t(fc, mii_adv);
        linkmode_or(phydev->advertising, fc, phydev->advertising);
  
@@ -39,7 +39,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
        if (phydev->mdio.dev.of_node) {
                u32 reg;
                int len;
-@@ -3120,22 +3136,6 @@ static int lan78xx_open(struct net_devic
+@@ -3121,22 +3137,6 @@ static int lan78xx_open(struct net_devic
  
        netif_dbg(dev, ifup, dev->net, "phy initialised successfully");
  
index eceba53aabdaa7f1cb6f7618a69cba74a823884b..4ef34aeffc0b6a68c314b114e8624f8c2353b86a 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/tty/serial/sc16is7xx.c
 +++ b/drivers/tty/serial/sc16is7xx.c
-@@ -773,6 +773,8 @@ static bool sc16is7xx_port_irq(struct sc
+@@ -777,6 +777,8 @@ static bool sc16is7xx_port_irq(struct sc
  
                if (rxlen)
                        sc16is7xx_handle_rx(port, rxlen, iir);
index dc411233dfa2ff3b37df051e358ae2b750994d4e..2ca2550acb382378e56715fe5acfd1b4890244cb 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;
-@@ -4455,7 +4460,13 @@ static int lan78xx_probe(struct usb_inte
+@@ -4458,7 +4463,13 @@ static int lan78xx_probe(struct usb_inte
        if (ret < 0)
                goto out4;
  
@@ -42,5 +42,5 @@ See: https://github.com/raspberrypi/linux/issues/2447
 +      netif_notice(dev, probe, netdev, "int urb period %d\n", period);
 +
        maxp = usb_maxpacket(dev->udev, dev->pipe_intr);
-       buf = kmalloc(maxp, GFP_KERNEL);
-       if (!buf) {
+       dev->urb_intr = usb_alloc_urb(0, GFP_KERNEL);
index df6c7e687fd7d3075736151021febe1aaaa99850..b5e0095d97c01da2139f950e1b115da12d1e0b48 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/drivers/net/usb/lan78xx.c
 +++ b/drivers/net/usb/lan78xx.c
-@@ -2424,7 +2424,7 @@ static int lan78xx_phy_init(struct lan78
+@@ -2425,7 +2425,7 @@ static int lan78xx_phy_init(struct lan78
        mii_adv_to_linkmode_adv_t(fc, mii_adv);
        linkmode_or(phydev->advertising, fc, phydev->advertising);
  
index 5398d85ef3e23afa2db5ecee9bae5cc89e4ea235..7cbbeebf6de14681c9823b70f72d77dbf79e322f 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/spi/spi.c
 +++ b/drivers/spi/spi.c
-@@ -3740,6 +3740,7 @@ static int spi_set_cs_timing(struct spi_
+@@ -3747,6 +3747,7 @@ static int spi_set_cs_timing(struct spi_
   */
  int spi_setup(struct spi_device *spi)
  {
@@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        unsigned        bad_bits, ugly_bits;
        int             status = 0;
  
-@@ -3760,6 +3761,14 @@ int spi_setup(struct spi_device *spi)
+@@ -3767,6 +3768,14 @@ int spi_setup(struct spi_device *spi)
                (SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL |
                 SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL)))
                return -EINVAL;
index a0c1eba931041b142b9b618ce55bfc064c5c4fb7..f43df7ca3f71763ade5260df73b5f35d36355156 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -2527,6 +2527,7 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -2531,6 +2531,7 @@ static int vc4_hdmi_audio_prepare(struct
  {
        struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
        struct drm_device *drm = vc4_hdmi->connector.dev;
@@ -24,7 +24,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
        struct drm_encoder *encoder = &vc4_hdmi->encoder.base;
        unsigned int sample_rate = params->sample_rate;
        unsigned int channels = params->channels;
-@@ -2585,11 +2586,18 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -2589,11 +2590,18 @@ static int vc4_hdmi_audio_prepare(struct
                                             VC4_HDMI_AUDIO_PACKET_CEA_MASK);
  
        /* Set the MAI threshold */
index 08c1bd17ce729374c0cdce51b8ea977a85690f78..0149501e777b1c1698433df2f45f793643903237 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/tty/serial/sc16is7xx.c
 +++ b/drivers/tty/serial/sc16is7xx.c
-@@ -1206,6 +1206,9 @@ static int sc16is7xx_startup(struct uart
+@@ -1210,6 +1210,9 @@ static int sc16is7xx_startup(struct uart
              SC16IS7XX_IER_MSI_BIT;
        sc16is7xx_port_write(port, SC16IS7XX_IER_REG, val);
  
index f0c75c6bfaf4dc688841d60f2c66c149c23c54e4..8d276e1681866f26477c9de23f1df2b8775cbb49 100644 (file)
@@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -3671,6 +3671,48 @@ static int xhci_align_td(struct xhci_hcd
+@@ -3679,6 +3679,48 @@ static int xhci_align_td(struct xhci_hcd
        return 1;
  }
  
@@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
  /* This is very similar to what ehci-q.c qtd_fill() does */
  int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
                struct urb *urb, int slot_id, unsigned int ep_index)
-@@ -3827,6 +3869,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3835,6 +3877,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
        }
  
        check_trb_math(urb, enqd_len);
@@ -133,7 +133,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
                        start_cycle, start_trb);
        return 0;
-@@ -3962,6 +4006,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
+@@ -3970,6 +4014,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
                        /* Event on completion */
                        field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state);
  
index 79d040070f068d43ba075b3d08e9006d13358a49..ab082c6a1900cbd4cf7ccbb12a1d6a355387fc13 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -3595,6 +3595,7 @@ static int vc4_hdmi_runtime_suspend(stru
+@@ -3599,6 +3599,7 @@ static int vc4_hdmi_runtime_suspend(stru
  {
        struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
  
@@ -26,7 +26,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        clk_disable_unprepare(vc4_hdmi->hsm_clock);
  
        return 0;
-@@ -3627,6 +3628,10 @@ static int vc4_hdmi_runtime_resume(struc
+@@ -3631,6 +3632,10 @@ static int vc4_hdmi_runtime_resume(struc
                goto err_disable_clk;
        }
  
index 6c0a85d703dc09937c29554c1f0f4573b7b1a0d3..69b36207c6ad7617fd8aa556b3837783cb5ce383 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -826,11 +826,22 @@ int vc4_hvs_atomic_check(struct drm_crtc
+@@ -829,11 +829,22 @@ int vc4_hvs_atomic_check(struct drm_crtc
        if (hweight32(crtc_state->connector_mask) > 1)
                return -EINVAL;
  
index 3b30ea2f479ae31dede68b7209450275b84380f7..eeed520f4b2b8dc4bca6af0b7495021ddab887b5 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -441,6 +441,8 @@ vc4_hvs_alloc_dlist_entry(struct vc4_hvs
+@@ -446,6 +446,8 @@ vc4_hvs_alloc_dlist_entry(struct vc4_hvs
                          unsigned int channel,
                          size_t dlist_count)
  {
@@ -28,7 +28,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        struct vc4_hvs_dlist_allocation *alloc;
        unsigned long flags;
        int ret;
-@@ -458,8 +460,10 @@ vc4_hvs_alloc_dlist_entry(struct vc4_hvs
+@@ -463,8 +465,10 @@ vc4_hvs_alloc_dlist_entry(struct vc4_hvs
        ret = drm_mm_insert_node(&hvs->dlist_mm, &alloc->mm_node,
                                 dlist_count);
        spin_unlock_irqrestore(&hvs->mm_lock, flags);
index 0e810a1f4e11ac1fbd6854f22a052102a371302a..8372ae23fec77d80bc35acda9ad9a55fe8228970 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  drivers/gpu/drm/vc4/vc4_drv.h              |  7 ++-
  drivers/gpu/drm/vc4/vc4_gem.c              | 24 +++++------
  drivers/gpu/drm/vc4/vc4_hdmi.c             |  2 +-
- drivers/gpu/drm/vc4/vc4_hvs.c              | 50 ++++++++++++----------
+ drivers/gpu/drm/vc4/vc4_hvs.c              | 52 ++++++++++++----------
  drivers/gpu/drm/vc4/vc4_irq.c              | 10 ++---
  drivers/gpu/drm/vc4/vc4_kms.c              | 14 +++---
  drivers/gpu/drm/vc4/vc4_perfmon.c          | 20 ++++-----
@@ -31,7 +31,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  drivers/gpu/drm/vc4/vc4_v3d.c              | 10 ++---
  drivers/gpu/drm/vc4/vc4_validate.c         |  8 ++--
  drivers/gpu/drm/vc4/vc4_validate_shaders.c |  2 +-
- 16 files changed, 126 insertions(+), 111 deletions(-)
+ 16 files changed, 127 insertions(+), 112 deletions(-)
 
 --- a/drivers/gpu/drm/vc4/tests/vc4_mock.c
 +++ b/drivers/gpu/drm/vc4/tests/vc4_mock.c
@@ -470,7 +470,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        switch (args->madv) {
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -2586,7 +2586,7 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -2590,7 +2590,7 @@ static int vc4_hdmi_audio_prepare(struct
                                             VC4_HDMI_AUDIO_PACKET_CEA_MASK);
  
        /* Set the MAI threshold */
@@ -481,7 +481,16 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                        VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_PANICLOW) |
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -416,7 +416,7 @@ static void vc4_hvs_irq_enable_eof(const
+@@ -303,7 +303,7 @@ static void vc4_hvs_lut_load(struct vc4_
+       if (!drm_dev_enter(drm, &idx))
+               return;
+-      if (hvs->vc4->is_vc5)
++      if (hvs->vc4->gen == VC4_GEN_5)  
+               return;
+       /* The LUT memory is laid out with each HVS channel in order,
+@@ -421,7 +421,7 @@ static void vc4_hvs_irq_enable_eof(const
                                   unsigned int channel)
  {
        struct vc4_dev *vc4 = hvs->vc4;
@@ -490,7 +499,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                SCALER5_DISPCTRL_DSPEIEOF(channel) :
                SCALER_DISPCTRL_DSPEIEOF(channel);
  
-@@ -428,7 +428,7 @@ static void vc4_hvs_irq_clear_eof(const
+@@ -433,7 +433,7 @@ static void vc4_hvs_irq_clear_eof(const
                                  unsigned int channel)
  {
        struct vc4_dev *vc4 = hvs->vc4;
@@ -499,7 +508,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                SCALER5_DISPCTRL_DSPEIEOF(channel) :
                SCALER_DISPCTRL_DSPEIEOF(channel);
  
-@@ -620,7 +620,7 @@ int vc4_hvs_get_fifo_from_output(struct
+@@ -625,7 +625,7 @@ int vc4_hvs_get_fifo_from_output(struct
        u32 reg;
        int ret;
  
@@ -508,7 +517,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                return output;
  
        /*
-@@ -701,7 +701,7 @@ static int vc4_hvs_init_channel(struct v
+@@ -706,7 +706,7 @@ static int vc4_hvs_init_channel(struct v
        dispctrl = SCALER_DISPCTRLX_ENABLE;
        dispbkgndx = HVS_READ(SCALER_DISPBKGNDX(chan));
  
@@ -517,7 +526,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                dispctrl |= VC4_SET_FIELD(mode->hdisplay,
                                          SCALER_DISPCTRLX_WIDTH) |
                            VC4_SET_FIELD(mode->vdisplay,
-@@ -732,7 +732,7 @@ static int vc4_hvs_init_channel(struct v
+@@ -737,7 +737,7 @@ static int vc4_hvs_init_channel(struct v
        /* Reload the LUT, since the SRAMs would have been disabled if
         * all CRTCs had SCALER_DISPBKGND_GAMMA unset at once.
         */
@@ -526,7 +535,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                vc4_hvs_lut_load(hvs, vc4_crtc);
        else
                vc5_hvs_lut_load(hvs, vc4_crtc);
-@@ -782,7 +782,7 @@ static int vc4_hvs_gamma_check(struct dr
+@@ -785,7 +785,7 @@ static int vc4_hvs_gamma_check(struct dr
        struct drm_device *dev = crtc->dev;
        struct vc4_dev *vc4 = to_vc4_dev(dev);
  
@@ -535,7 +544,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                return 0;
  
        if (!crtc_state->color_mgmt_changed)
-@@ -1036,7 +1036,7 @@ void vc4_hvs_atomic_flush(struct drm_crt
+@@ -1039,7 +1039,7 @@ void vc4_hvs_atomic_flush(struct drm_crt
                u32 dispbkgndx = HVS_READ(SCALER_DISPBKGNDX(channel));
  
                if (crtc->state->gamma_lut) {
@@ -544,7 +553,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                                vc4_hvs_update_gamma_lut(hvs, vc4_crtc);
                                dispbkgndx |= SCALER_DISPBKGND_GAMMA;
                        } else {
-@@ -1053,7 +1053,7 @@ void vc4_hvs_atomic_flush(struct drm_crt
+@@ -1056,7 +1056,7 @@ void vc4_hvs_atomic_flush(struct drm_crt
                         * should already be disabling/enabling the pipeline
                         * when gamma changes.
                         */
@@ -553,7 +562,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                                dispbkgndx &= ~SCALER_DISPBKGND_GAMMA;
                }
                HVS_WRITE(SCALER_DISPBKGNDX(channel), dispbkgndx);
-@@ -1069,7 +1069,8 @@ void vc4_hvs_atomic_flush(struct drm_crt
+@@ -1073,7 +1073,8 @@ exit:
  
  void vc4_hvs_mask_underrun(struct vc4_hvs *hvs, int channel)
  {
@@ -563,7 +572,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        u32 dispctrl;
        int idx;
  
-@@ -1077,8 +1078,9 @@ void vc4_hvs_mask_underrun(struct vc4_hv
+@@ -1081,8 +1082,9 @@ void vc4_hvs_mask_underrun(struct vc4_hv
                return;
  
        dispctrl = HVS_READ(SCALER_DISPCTRL);
@@ -575,7 +584,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        HVS_WRITE(SCALER_DISPCTRL, dispctrl);
  
-@@ -1087,7 +1089,8 @@ void vc4_hvs_mask_underrun(struct vc4_hv
+@@ -1091,7 +1093,8 @@ void vc4_hvs_mask_underrun(struct vc4_hv
  
  void vc4_hvs_unmask_underrun(struct vc4_hvs *hvs, int channel)
  {
@@ -585,7 +594,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        u32 dispctrl;
        int idx;
  
-@@ -1095,8 +1098,9 @@ void vc4_hvs_unmask_underrun(struct vc4_
+@@ -1099,8 +1102,9 @@ void vc4_hvs_unmask_underrun(struct vc4_
                return;
  
        dispctrl = HVS_READ(SCALER_DISPCTRL);
@@ -597,7 +606,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        HVS_WRITE(SCALER_DISPSTAT,
                  SCALER_DISPSTAT_EUFLOW(channel));
-@@ -1139,8 +1143,10 @@ static irqreturn_t vc4_hvs_irq_handler(i
+@@ -1143,8 +1147,10 @@ static irqreturn_t vc4_hvs_irq_handler(i
        control = HVS_READ(SCALER_DISPCTRL);
  
        for (channel = 0; channel < SCALER_CHANNELS_COUNT; channel++) {
@@ -610,7 +619,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                /* Interrupt masking is not always honored, so check it here. */
                if (status & SCALER_DISPSTAT_EUFLOW(channel) &&
                    control & dspeislur) {
-@@ -1176,7 +1182,7 @@ int vc4_hvs_debugfs_init(struct drm_mino
+@@ -1180,7 +1186,7 @@ int vc4_hvs_debugfs_init(struct drm_mino
        if (!vc4->hvs)
                return -ENODEV;
  
@@ -619,7 +628,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                debugfs_create_bool("hvs_load_tracker", S_IRUGO | S_IWUSR,
                                    minor->debugfs_root,
                                    &vc4->load_tracker_enabled);
-@@ -1225,7 +1231,7 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
+@@ -1230,7 +1236,7 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
         * between planes when they don't overlap on the screen, but
         * for now we just allocate globally.
         */
@@ -628,7 +637,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                /* 48k words of 2x12-bit pixels */
                drm_mm_init(&hvs->lbm_mm, 0, 48 * 1024);
        else
-@@ -1259,7 +1265,7 @@ static int vc4_hvs_bind(struct device *d
+@@ -1264,7 +1270,7 @@ static int vc4_hvs_bind(struct device *d
        hvs->regset.regs = hvs_regs;
        hvs->regset.nregs = ARRAY_SIZE(hvs_regs);
  
@@ -637,7 +646,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                struct rpi_firmware *firmware;
                struct device_node *node;
                unsigned int max_rate;
-@@ -1297,7 +1303,7 @@ static int vc4_hvs_bind(struct device *d
+@@ -1302,7 +1308,7 @@ static int vc4_hvs_bind(struct device *d
                }
        }
  
@@ -646,7 +655,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                hvs->dlist = hvs->regs + SCALER_DLIST_START;
        else
                hvs->dlist = hvs->regs + SCALER5_DLIST_START;
-@@ -1338,7 +1344,7 @@ static int vc4_hvs_bind(struct device *d
+@@ -1343,7 +1349,7 @@ static int vc4_hvs_bind(struct device *d
                    SCALER_DISPCTRL_DISPEIRQ(1) |
                    SCALER_DISPCTRL_DISPEIRQ(2);
  
@@ -655,7 +664,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                dispctrl &= ~(SCALER_DISPCTRL_DMAEIRQ |
                              SCALER_DISPCTRL_SLVWREIRQ |
                              SCALER_DISPCTRL_SLVRDEIRQ |
-@@ -1393,7 +1399,7 @@ static int vc4_hvs_bind(struct device *d
+@@ -1398,7 +1404,7 @@ static int vc4_hvs_bind(struct device *d
  
        /* Recompute Composite Output Buffer (COB) allocations for the displays
         */
index e07e120ed098a398753149253b7f40aac4f83277..db59ab5d5b4df745f1b5387af7d111872254dac6 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -620,57 +620,63 @@ int vc4_hvs_get_fifo_from_output(struct
+@@ -625,57 +625,63 @@ int vc4_hvs_get_fifo_from_output(struct
        u32 reg;
        int ret;
  
index 16810d5035d61f175b05832a03c6291e333fcd9c..0875383a0280fc6927ecf1e16cfed7070423b709 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -416,24 +416,46 @@ static void vc4_hvs_irq_enable_eof(const
+@@ -421,24 +421,46 @@ static void vc4_hvs_irq_enable_eof(const
                                   unsigned int channel)
  {
        struct vc4_dev *vc4 = hvs->vc4;
index c16b1c1ca79c27561ffe52fd1cea7f28d971e1de..d8d2037350de023ac4a1387fbb7dd5a78226650c 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  struct vc4_hvs {
        struct vc4_dev *vc4;
        struct platform_device *pdev;
-@@ -327,6 +329,10 @@ struct vc4_hvs {
+@@ -328,6 +330,10 @@ struct vc4_hvs {
  
        struct clk *core_clk;
  
@@ -43,7 +43,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        unsigned long max_core_rate;
  
        /* Memory manager for CRTCs to allocate space in the display
-@@ -359,8 +365,6 @@ struct vc4_hvs {
+@@ -360,8 +366,6 @@ struct vc4_hvs {
        bool vc5_hdmi_enable_4096by2160;
  };
  
@@ -54,7 +54,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        unsigned long core_clock_rate;
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -412,11 +412,14 @@ static void vc5_hvs_update_gamma_lut(str
+@@ -417,11 +417,14 @@ static void vc5_hvs_update_gamma_lut(str
        vc5_hvs_lut_load(hvs, vc4_crtc);
  }
  
@@ -70,7 +70,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        switch (vc4->gen) {
        case VC4_GEN_4:
                HVS_WRITE(SCALER_DISPCTRL,
-@@ -433,13 +436,18 @@ static void vc4_hvs_irq_enable_eof(const
+@@ -438,13 +441,18 @@ static void vc4_hvs_irq_enable_eof(const
        default:
                break;
        }
@@ -90,7 +90,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        switch (vc4->gen) {
        case VC4_GEN_4:
                HVS_WRITE(SCALER_DISPCTRL,
-@@ -456,6 +464,8 @@ static void vc4_hvs_irq_clear_eof(const
+@@ -461,6 +469,8 @@ static void vc4_hvs_irq_clear_eof(const
        default:
                break;
        }
index bd0b8903695d37583654145dab05c410336b8202..7ddac05734135ab3079526cf34870a3f9e1a5c6c 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -1281,79 +1281,10 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
+@@ -1286,79 +1286,10 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
        return hvs;
  }
  
@@ -99,7 +99,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        reg = HVS_READ(SCALER_DISPECTRL);
        reg &= ~SCALER_DISPECTRL_DSP2_MUX_MASK;
-@@ -1435,6 +1366,86 @@ static int vc4_hvs_bind(struct device *d
+@@ -1440,6 +1371,86 @@ static int vc4_hvs_bind(struct device *d
  
        HVS_WRITE(SCALER_DISPCTRL, dispctrl);
  
index 157a474ce55c6abc1f36da9fd3395cca099e0a2a..6add44807baad2db8cdee9ec5ea8bb5ed132c3a2 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -1369,6 +1369,77 @@ static int vc4_hvs_hw_init(struct vc4_hv
+@@ -1374,6 +1374,77 @@ static int vc4_hvs_hw_init(struct vc4_hv
        return 0;
  }
  
@@ -94,7 +94,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static int vc4_hvs_bind(struct device *dev, struct device *master, void *data)
  {
        struct platform_device *pdev = to_platform_device(dev);
-@@ -1376,7 +1447,6 @@ static int vc4_hvs_bind(struct device *d
+@@ -1381,7 +1452,6 @@ static int vc4_hvs_bind(struct device *d
        struct vc4_dev *vc4 = to_vc4_dev(drm);
        struct vc4_hvs *hvs = NULL;
        int ret;
@@ -102,7 +102,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        hvs = __vc4_hvs_alloc(vc4, NULL);
        if (IS_ERR(hvs))
-@@ -1446,59 +1516,9 @@ static int vc4_hvs_bind(struct device *d
+@@ -1451,59 +1521,9 @@ static int vc4_hvs_bind(struct device *d
        if (ret)
                return ret;
  
index 6719a445223f75db6ae1d9ec506b6a634b2a3b11..f354f6acd7f0f8b2a9c06614c019438ebd6ad4ec 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        VC4_REG32(SCALER_DISPCTRL),
        VC4_REG32(SCALER_DISPSTAT),
        VC4_REG32(SCALER_DISPID),
-@@ -1457,8 +1457,8 @@ static int vc4_hvs_bind(struct device *d
+@@ -1462,8 +1462,8 @@ static int vc4_hvs_bind(struct device *d
                return PTR_ERR(hvs->regs);
  
        hvs->regset.base = hvs->regs;
index bc72a9502171455836a02c6e127217d48c224268..4fba060928c598696163fbc723f166e7f81050ab 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  #include <drm/drm_gem_dma_helper.h>
  #include <drm/drm_managed.h>
  #include <drm/drm_mm.h>
-@@ -410,7 +411,7 @@ struct vc4_plane_state {
+@@ -411,7 +412,7 @@ struct vc4_plane_state {
         */
        u32 pos0_offset;
        u32 pos2_offset;
index 90f5d8a9b226afc3697367a79e97df6132ca23cc..36c4010b7e9425eba8d93c1c35eb5db84ff498b4 100644 (file)
@@ -36,7 +36,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        drm = &vc4->base;
 --- a/drivers/gpu/drm/vc4/vc4_drv.h
 +++ b/drivers/gpu/drm/vc4/vc4_drv.h
-@@ -1047,7 +1047,9 @@ void vc4_irq_reset(struct drm_device *de
+@@ -1048,7 +1048,9 @@ void vc4_irq_reset(struct drm_device *de
  
  /* vc4_hvs.c */
  extern struct platform_driver vc4_hvs_driver;
@@ -49,7 +49,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  u8 vc4_hvs_get_fifo_frame_count(struct vc4_hvs *hvs, unsigned int fifo);
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -1238,7 +1238,9 @@ int vc4_hvs_debugfs_init(struct drm_mino
+@@ -1242,7 +1242,9 @@ int vc4_hvs_debugfs_init(struct drm_mino
        return 0;
  }
  
@@ -60,7 +60,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  {
        struct drm_device *drm = &vc4->base;
        struct vc4_hvs *hvs;
-@@ -1248,6 +1250,7 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
+@@ -1252,6 +1254,7 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
                return ERR_PTR(-ENOMEM);
  
        hvs->vc4 = vc4;
@@ -68,7 +68,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        hvs->pdev = pdev;
  
        spin_lock_init(&hvs->mm_lock);
-@@ -1446,16 +1449,17 @@ static int vc4_hvs_bind(struct device *d
+@@ -1451,16 +1454,17 @@ static int vc4_hvs_bind(struct device *d
        struct drm_device *drm = dev_get_drvdata(master);
        struct vc4_dev *vc4 = to_vc4_dev(drm);
        struct vc4_hvs *hvs = NULL;
diff --git a/target/linux/bcm27xx/patches-6.6/950-0597-drm-vc4-hdmi-Avoid-hang-with-debug-registers-when-su.patch b/target/linux/bcm27xx/patches-6.6/950-0597-drm-vc4-hdmi-Avoid-hang-with-debug-registers-when-su.patch
deleted file mode 100644 (file)
index 9f58504..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-From db41506f785ad84895a31b01e8bd7c07bceabb3d Mon Sep 17 00:00:00 2001
-From: Dom Cobley <popcornmix@gmail.com>
-Date: Tue, 5 Sep 2023 19:38:24 +0100
-Subject: [PATCH 0597/1085] drm/vc4: hdmi: Avoid hang with debug registers when
- suspended
-
-Trying to read /sys/kernel/debug/dri/1/hdmi1_regs
-when the hdmi is disconnected results in a fatal system hang.
-
-This is due to the pm suspend code disabling the dvp clock.
-That is just a gate of the 108MHz clock in DVP_HT_RPI_MISC_CONFIG,
-which results in accesses hanging AXI bus.
-
-Protect against this.
-
-Signed-off-by: Dom Cobley <popcornmix@gmail.com>
----
- drivers/gpu/drm/vc4/vc4_hdmi.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
---- a/drivers/gpu/drm/vc4/vc4_hdmi.c
-+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -185,6 +185,8 @@ static int vc4_hdmi_debugfs_regs(struct
-       if (!drm_dev_enter(drm, &idx))
-               return -ENODEV;
-+      WARN_ON(pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev));
-+
-       drm_print_regset32(&p, &vc4_hdmi->hdmi_regset);
-       drm_print_regset32(&p, &vc4_hdmi->hd_regset);
-       drm_print_regset32(&p, &vc4_hdmi->cec_regset);
-@@ -194,6 +196,8 @@ static int vc4_hdmi_debugfs_regs(struct
-       drm_print_regset32(&p, &vc4_hdmi->ram_regset);
-       drm_print_regset32(&p, &vc4_hdmi->rm_regset);
-+      pm_runtime_put(&vc4_hdmi->pdev->dev);
-+
-       drm_dev_exit(idx);
-       return 0;
index ae069adc59381a7f6b1e976f0ac5bd1667264d0b..7a63bc65b50bf13ea81b926df4ea8773eccd595b 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_drv.h
 +++ b/drivers/gpu/drm/vc4/vc4_drv.h
-@@ -431,11 +431,6 @@ struct vc4_plane_state {
+@@ -432,11 +432,6 @@ struct vc4_plane_state {
        bool is_unity;
        bool is_yuv;
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0599-drm-vc4-Fix-dlist-debug-not-resetting-the-next-entry.patch b/target/linux/bcm27xx/patches-6.6/950-0599-drm-vc4-Fix-dlist-debug-not-resetting-the-next-entry.patch
deleted file mode 100644 (file)
index bfaecc5..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-From d64998e5fc5894eb37f142b7259fa3bec091abbc Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson@raspberrypi.com>
-Date: Thu, 24 Aug 2023 15:36:21 +0100
-Subject: [PATCH 0599/1085] drm/vc4: Fix dlist debug not resetting the next
- entry pointer
-
-The debug function to display the dlists didn't reset next_entry_start
-when starting each display, so resulting in not stopping the
-list at the correct place.
-
-Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
----
- drivers/gpu/drm/vc4/vc4_hvs.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/drivers/gpu/drm/vc4/vc4_hvs.c
-+++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -110,7 +110,7 @@ static int vc4_hvs_debugfs_dlist(struct
-       struct vc4_dev *vc4 = to_vc4_dev(dev);
-       struct vc4_hvs *hvs = vc4->hvs;
-       struct drm_printer p = drm_seq_file_printer(m);
--      unsigned int next_entry_start = 0;
-+      unsigned int next_entry_start;
-       unsigned int i, j;
-       u32 dlist_word, dispstat;
-@@ -124,6 +124,7 @@ static int vc4_hvs_debugfs_dlist(struct
-               }
-               drm_printf(&p, "HVS chan %u:\n", i);
-+              next_entry_start = 0;
-               for (j = HVS_READ(SCALER_DISPLISTX(i)); j < 256; j++) {
-                       dlist_word = readl((u32 __iomem *)vc4->hvs->dlist + j);
diff --git a/target/linux/bcm27xx/patches-6.6/950-0600-drm-vc4-Remove-incorrect-limit-from-hvs_dlist-debugf.patch b/target/linux/bcm27xx/patches-6.6/950-0600-drm-vc4-Remove-incorrect-limit-from-hvs_dlist-debugf.patch
deleted file mode 100644 (file)
index a104d30..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-From 480184600be75fd78dcff1502092901d32530cc6 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson@raspberrypi.com>
-Date: Fri, 1 Sep 2023 13:45:08 +0100
-Subject: [PATCH 0600/1085] drm: vc4: Remove incorrect limit from hvs_dlist
- debugfs function
-
-The debugfs function to dump dlists aborted at 256 bytes,
-when actually the dlist memory is generally significantly
-larger but varies based on SoC.
-
-We already have the correct limit in __vc4_hvs_alloc, so
-store it for use in the debugfs dlist function.
-
-Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
----
- drivers/gpu/drm/vc4/vc4_drv.h | 1 +
- drivers/gpu/drm/vc4/vc4_hvs.c | 5 ++++-
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
---- a/drivers/gpu/drm/vc4/vc4_drv.h
-+++ b/drivers/gpu/drm/vc4/vc4_drv.h
-@@ -327,6 +327,7 @@ struct vc4_hvs {
-       struct platform_device *pdev;
-       void __iomem *regs;
-       u32 __iomem *dlist;
-+      unsigned int dlist_mem_size;
-       struct clk *core_clk;
---- a/drivers/gpu/drm/vc4/vc4_hvs.c
-+++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -110,6 +110,7 @@ static int vc4_hvs_debugfs_dlist(struct
-       struct vc4_dev *vc4 = to_vc4_dev(dev);
-       struct vc4_hvs *hvs = vc4->hvs;
-       struct drm_printer p = drm_seq_file_printer(m);
-+      unsigned int dlist_mem_size = hvs->dlist_mem_size;
-       unsigned int next_entry_start;
-       unsigned int i, j;
-       u32 dlist_word, dispstat;
-@@ -126,7 +127,7 @@ static int vc4_hvs_debugfs_dlist(struct
-               drm_printf(&p, "HVS chan %u:\n", i);
-               next_entry_start = 0;
--              for (j = HVS_READ(SCALER_DISPLISTX(i)); j < 256; j++) {
-+              for (j = HVS_READ(SCALER_DISPLISTX(i)); j < dlist_mem_size; j++) {
-                       dlist_word = readl((u32 __iomem *)vc4->hvs->dlist + j);
-                       drm_printf(&p, "dlist: %02d: 0x%08x\n", j,
-                                  dlist_word);
-@@ -1268,6 +1269,8 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
-                   HVS_BOOTLOADER_DLIST_END,
-                   (SCALER_DLIST_SIZE >> 2) - HVS_BOOTLOADER_DLIST_END);
-+      hvs->dlist_mem_size = dlist_size;
-+
-       /* Set up the HVS LBM memory manager.  We could have some more
-        * complicated data structure that allowed reuse of LBM areas
-        * between planes when they don't overlap on the screen, but
index 56cd010972d09ca6ae46166816f75561ce706d24..62406a268b8f6a379a8e1f84e94bf7fc8394e866 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Tim Gover <tim.gover@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -1293,6 +1293,10 @@ static int vc4_hvs_hw_init(struct vc4_hv
+@@ -1294,6 +1294,10 @@ static int vc4_hvs_hw_init(struct vc4_hv
        struct vc4_dev *vc4 = hvs->vc4;
        u32 dispctrl, reg;
  
@@ -26,7 +26,7 @@ Signed-off-by: Tim Gover <tim.gover@raspberrypi.com>
        reg = HVS_READ(SCALER_DISPECTRL);
        reg &= ~SCALER_DISPECTRL_DSP2_MUX_MASK;
        HVS_WRITE(SCALER_DISPECTRL,
-@@ -1314,8 +1318,6 @@ static int vc4_hvs_hw_init(struct vc4_hv
+@@ -1315,8 +1319,6 @@ static int vc4_hvs_hw_init(struct vc4_hv
                  reg | VC4_SET_FIELD(3, SCALER_DISPDITHER_DSP5_MUX));
  
        dispctrl = HVS_READ(SCALER_DISPCTRL);
@@ -35,7 +35,7 @@ Signed-off-by: Tim Gover <tim.gover@raspberrypi.com>
        dispctrl |= SCALER_DISPCTRL_DISPEIRQ(0) |
                    SCALER_DISPCTRL_DISPEIRQ(1) |
                    SCALER_DISPCTRL_DISPEIRQ(2);
-@@ -1511,6 +1513,10 @@ static int vc4_hvs_bind(struct device *d
+@@ -1512,6 +1514,10 @@ static int vc4_hvs_bind(struct device *d
        else
                hvs->dlist = hvs->regs + SCALER5_DLIST_START;
  
@@ -46,7 +46,7 @@ Signed-off-by: Tim Gover <tim.gover@raspberrypi.com>
        /* Upload filter kernels.  We only have the one for now, so we
         * keep it around for the lifetime of the driver.
         */
-@@ -1520,10 +1526,6 @@ static int vc4_hvs_bind(struct device *d
+@@ -1521,10 +1527,6 @@ static int vc4_hvs_bind(struct device *d
        if (ret)
                return ret;
  
index 6065fc6e86b1614c6e0cfb56813c9c2a37e5cd05..9d19b23d95ab71cac714ff7aadfcf7998f4829f5 100644 (file)
@@ -341,7 +341,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static int vc5_hvs_debugfs_gamma(struct seq_file *m, void *data)
  {
        struct drm_info_node *node = m->private;
-@@ -435,6 +558,10 @@ static void vc4_hvs_irq_enable_eof(struc
+@@ -438,6 +561,10 @@ static void vc4_hvs_irq_enable_eof(struc
                          SCALER5_DISPCTRL_DSPEIEOF(channel));
                break;
  
@@ -352,7 +352,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        default:
                break;
        }
-@@ -463,6 +590,10 @@ static void vc4_hvs_irq_clear_eof(struct
+@@ -466,6 +593,10 @@ static void vc4_hvs_irq_clear_eof(struct
                          ~SCALER5_DISPCTRL_DSPEIEOF(channel));
                break;
  
@@ -363,7 +363,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        default:
                break;
        }
-@@ -622,26 +753,32 @@ static void vc4_hvs_dlist_free_work(stru
+@@ -625,26 +756,32 @@ static void vc4_hvs_dlist_free_work(stru
  
  u8 vc4_hvs_get_fifo_frame_count(struct vc4_hvs *hvs, unsigned int fifo)
  {
@@ -410,7 +410,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        }
  
        drm_dev_exit(idx);
-@@ -708,6 +845,23 @@ int vc4_hvs_get_fifo_from_output(struct
+@@ -711,6 +848,23 @@ int vc4_hvs_get_fifo_from_output(struct
                default:
                        return -EPIPE;
                }
@@ -434,7 +434,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        }
  
        return -EPIPE;
-@@ -782,7 +936,41 @@ static int vc4_hvs_init_channel(struct v
+@@ -785,7 +939,41 @@ static int vc4_hvs_init_channel(struct v
        return 0;
  }
  
@@ -477,7 +477,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  {
        struct drm_device *drm = &hvs->vc4->base;
        int idx;
-@@ -813,6 +1001,42 @@ out:
+@@ -814,6 +1002,42 @@ out:
        drm_dev_exit(idx);
  }
  
@@ -520,7 +520,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static int vc4_hvs_gamma_check(struct drm_crtc *crtc,
                               struct drm_atomic_state *state)
  {
-@@ -907,8 +1131,14 @@ static void vc4_hvs_install_dlist(struct
+@@ -908,8 +1132,14 @@ static void vc4_hvs_install_dlist(struct
                return;
  
        WARN_ON(!vc4_state->mm);
@@ -537,7 +537,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        drm_dev_exit(idx);
  }
-@@ -965,7 +1195,11 @@ void vc4_hvs_atomic_enable(struct drm_cr
+@@ -966,7 +1196,11 @@ void vc4_hvs_atomic_enable(struct drm_cr
  
        vc4_hvs_install_dlist(crtc);
        vc4_hvs_update_dlist(crtc);
@@ -550,7 +550,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  }
  
  void vc4_hvs_atomic_disable(struct drm_crtc *crtc,
-@@ -1052,13 +1286,28 @@ void vc4_hvs_atomic_flush(struct drm_crt
+@@ -1053,13 +1287,28 @@ void vc4_hvs_atomic_flush(struct drm_crt
        WARN_ON(!vc4_state->mm);
        WARN_ON_ONCE(dlist_next - dlist_start != vc4_state->mm->mm_node.size);
  
@@ -583,7 +583,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        /* Only update DISPLIST if the CRTC was already running and is not
         * being disabled.
-@@ -1210,6 +1459,27 @@ static irqreturn_t vc4_hvs_irq_handler(i
+@@ -1212,6 +1461,27 @@ static irqreturn_t vc4_hvs_irq_handler(i
        return irqret;
  }
  
@@ -611,7 +611,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  int vc4_hvs_debugfs_init(struct drm_minor *minor)
  {
        struct drm_device *drm = minor->dev;
-@@ -1231,7 +1501,10 @@ int vc4_hvs_debugfs_init(struct drm_mino
+@@ -1233,7 +1503,10 @@ int vc4_hvs_debugfs_init(struct drm_mino
                                     NULL);
        }
  
@@ -623,7 +623,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        drm_debugfs_add_file(drm, "hvs_underrun", vc4_hvs_debugfs_underrun, NULL);
  
-@@ -1246,6 +1519,9 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
+@@ -1248,6 +1521,9 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
  {
        struct drm_device *drm = &vc4->base;
        struct vc4_hvs *hvs;
@@ -633,7 +633,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        hvs = drmm_kzalloc(drm, sizeof(*hvs), GFP_KERNEL);
        if (!hvs)
-@@ -1260,14 +1536,39 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
+@@ -1262,27 +1538,87 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
        INIT_LIST_HEAD(&hvs->stale_dlist_entries);
        INIT_WORK(&hvs->free_dlist_work, vc4_hvs_dlist_free_work);
  
@@ -642,9 +642,10 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 -       * our 16K), since we don't want to scramble the screen when
 -       * transitioning from the firmware's boot setup to runtime.
 -       */
+-      hvs->dlist_mem_size = (SCALER_DLIST_SIZE >> 2) - HVS_BOOTLOADER_DLIST_END;
 -      drm_mm_init(&hvs->dlist_mm,
 -                  HVS_BOOTLOADER_DLIST_END,
--                  (SCALER_DLIST_SIZE >> 2) - HVS_BOOTLOADER_DLIST_END);
+-                  hvs->dlist_mem_size);
 +      switch (vc4->gen) {
 +      case VC4_GEN_4:
 +      case VC4_GEN_5:
@@ -678,10 +679,11 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 +      }
 +
 +      drm_mm_init(&hvs->dlist_mm, dlist_start, dlist_size);
++
++      hvs->dlist_mem_size = dlist_size;
  
-       hvs->dlist_mem_size = dlist_size;
-@@ -1276,12 +1577,46 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
+       /* Set up the HVS LBM memory manager.  We could have some more
+        * complicated data structure that allowed reuse of LBM areas
         * between planes when they don't overlap on the screen, but
         * for now we just allocate globally.
         */
@@ -732,7 +734,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        vc4->hvs = hvs;
  
-@@ -1378,10 +1713,124 @@ static int vc4_hvs_hw_init(struct vc4_hv
+@@ -1379,10 +1715,124 @@ static int vc4_hvs_hw_init(struct vc4_hv
        return 0;
  }
  
@@ -858,7 +860,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        /*
         * Recompute Composite Output Buffer (COB) allocations for the
-@@ -1442,6 +1891,31 @@ static int vc4_hvs_cob_init(struct vc4_h
+@@ -1443,6 +1893,31 @@ static int vc4_hvs_cob_init(struct vc4_h
                HVS_WRITE(SCALER_DISPBASE0, reg);
                break;
  
@@ -890,7 +892,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        default:
                return -EINVAL;
        }
-@@ -1467,10 +1941,16 @@ static int vc4_hvs_bind(struct device *d
+@@ -1468,10 +1943,16 @@ static int vc4_hvs_bind(struct device *d
                return PTR_ERR(hvs);
  
        hvs->regset.base = hvs->regs;
@@ -910,7 +912,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                struct rpi_firmware *firmware;
                struct device_node *node;
                unsigned int max_rate;
-@@ -1484,12 +1964,20 @@ static int vc4_hvs_bind(struct device *d
+@@ -1485,12 +1966,20 @@ static int vc4_hvs_bind(struct device *d
                if (!firmware)
                        return -EPROBE_DEFER;
  
@@ -932,7 +934,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                max_rate = rpi_firmware_clk_get_max_rate(firmware,
                                                         RPI_FIRMWARE_CORE_CLK_ID);
                rpi_firmware_put(firmware);
-@@ -1506,14 +1994,51 @@ static int vc4_hvs_bind(struct device *d
+@@ -1507,14 +1996,51 @@ static int vc4_hvs_bind(struct device *d
                        dev_err(&pdev->dev, "Couldn't enable the core clock\n");
                        return ret;
                }
@@ -988,7 +990,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (ret)
                return ret;
  
-@@ -1530,10 +2055,12 @@ static int vc4_hvs_bind(struct device *d
+@@ -1531,10 +2057,12 @@ static int vc4_hvs_bind(struct device *d
        if (ret)
                return ret;
  
@@ -1005,7 +1007,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        return 0;
  }
-@@ -1558,6 +2085,7 @@ static void vc4_hvs_unbind(struct device
+@@ -1559,6 +2087,7 @@ static void vc4_hvs_unbind(struct device
                drm_mm_remove_node(node);
        drm_mm_takedown(&vc4->hvs->lbm_mm);
  
@@ -1013,7 +1015,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        clk_disable_unprepare(hvs->core_clk);
  
        vc4->hvs = NULL;
-@@ -1580,6 +2108,7 @@ static void vc4_hvs_dev_remove(struct pl
+@@ -1581,6 +2110,7 @@ static void vc4_hvs_dev_remove(struct pl
  
  static const struct of_device_id vc4_hvs_dt_match[] = {
        { .compatible = "brcm,bcm2711-hvs" },
index 2fc6f3d033e06523a0da7f2bf9bd398a4d4f8953..8dd44970f8b9b97be1be0ea874aede64f5435ee2 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (!drm_dev_enter(drm, &idx))
                return;
  
-@@ -758,6 +761,8 @@ u8 vc4_hvs_get_fifo_frame_count(struct v
+@@ -761,6 +764,8 @@ u8 vc4_hvs_get_fifo_frame_count(struct v
        u8 field = 0;
        int idx;
  
@@ -41,7 +41,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (!drm_dev_enter(drm, &idx))
                return 0;
  
-@@ -791,6 +796,8 @@ int vc4_hvs_get_fifo_from_output(struct
+@@ -794,6 +799,8 @@ int vc4_hvs_get_fifo_from_output(struct
        u32 reg;
        int ret;
  
@@ -50,7 +50,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        switch (vc4->gen) {
        case VC4_GEN_4:
                return output;
-@@ -880,6 +887,8 @@ static int vc4_hvs_init_channel(struct v
+@@ -883,6 +890,8 @@ static int vc4_hvs_init_channel(struct v
        u32 dispctrl;
        int idx;
  
@@ -59,7 +59,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (!drm_dev_enter(drm, &idx))
                return -ENODEV;
  
-@@ -947,6 +956,8 @@ static int vc6_hvs_init_channel(struct v
+@@ -950,6 +959,8 @@ static int vc6_hvs_init_channel(struct v
        u32 disp_ctrl1;
        int idx;
  
@@ -68,7 +68,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (!drm_dev_enter(drm, &idx))
                return -ENODEV;
  
-@@ -972,9 +983,12 @@ static int vc6_hvs_init_channel(struct v
+@@ -975,9 +986,12 @@ static int vc6_hvs_init_channel(struct v
  
  static void __vc4_hvs_stop_channel(struct vc4_hvs *hvs, unsigned int chan)
  {
@@ -82,7 +82,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (!drm_dev_enter(drm, &idx))
                return;
  
-@@ -1007,6 +1021,8 @@ static void __vc6_hvs_stop_channel(struc
+@@ -1008,6 +1022,8 @@ static void __vc6_hvs_stop_channel(struc
        struct drm_device *drm = &vc4->base;
        int idx;
  
@@ -91,7 +91,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (!drm_dev_enter(drm, &idx))
                return;
  
-@@ -1234,6 +1250,8 @@ void vc4_hvs_atomic_flush(struct drm_crt
+@@ -1235,6 +1251,8 @@ void vc4_hvs_atomic_flush(struct drm_crt
        bool found = false;
        int idx;
  
@@ -100,7 +100,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (!drm_dev_enter(dev, &idx)) {
                vc4_crtc_send_vblank(crtc);
                return;
-@@ -1324,6 +1342,8 @@ void vc4_hvs_atomic_flush(struct drm_crt
+@@ -1325,6 +1343,8 @@ void vc4_hvs_atomic_flush(struct drm_crt
        if (crtc->state->color_mgmt_changed) {
                u32 dispbkgndx = HVS_READ(SCALER_DISPBKGNDX(channel));
  
@@ -109,7 +109,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                if (crtc->state->gamma_lut) {
                        if (vc4->gen == VC4_GEN_4) {
                                vc4_hvs_update_gamma_lut(hvs, vc4_crtc);
-@@ -1363,6 +1383,8 @@ void vc4_hvs_mask_underrun(struct vc4_hv
+@@ -1365,6 +1385,8 @@ void vc4_hvs_mask_underrun(struct vc4_hv
        u32 dispctrl;
        int idx;
  
@@ -118,7 +118,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (!drm_dev_enter(drm, &idx))
                return;
  
-@@ -1383,6 +1405,8 @@ void vc4_hvs_unmask_underrun(struct vc4_
+@@ -1385,6 +1407,8 @@ void vc4_hvs_unmask_underrun(struct vc4_
        u32 dispctrl;
        int idx;
  
@@ -127,7 +127,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (!drm_dev_enter(drm, &idx))
                return;
  
-@@ -1417,6 +1441,8 @@ static irqreturn_t vc4_hvs_irq_handler(i
+@@ -1419,6 +1443,8 @@ static irqreturn_t vc4_hvs_irq_handler(i
        u32 status;
        u32 dspeislur;
  
@@ -136,7 +136,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        /*
         * NOTE: We don't need to protect the register access using
         * drm_dev_enter() there because the interrupt handler lifetime
-@@ -1466,6 +1492,8 @@ static irqreturn_t vc6_hvs_eof_irq_handl
+@@ -1468,6 +1494,8 @@ static irqreturn_t vc6_hvs_eof_irq_handl
        struct vc4_hvs *hvs = vc4->hvs;
        unsigned int i;
  
index fa57c12cf62878212c2ef0e0f3255c58d8f98d72..5b2ac385c16fdf7d89642f0d3fc5b8d89f8f6fd2 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -1304,27 +1304,25 @@ void vc4_hvs_atomic_flush(struct drm_crt
+@@ -1305,27 +1305,25 @@ void vc4_hvs_atomic_flush(struct drm_crt
        WARN_ON(!vc4_state->mm);
        WARN_ON_ONCE(dlist_next - dlist_start != vc4_state->mm->mm_node.size);
  
diff --git a/target/linux/bcm27xx/patches-6.6/950-0708-drm-vc4-Correct-logic-on-stopping-an-HVS-channel.patch b/target/linux/bcm27xx/patches-6.6/950-0708-drm-vc4-Correct-logic-on-stopping-an-HVS-channel.patch
deleted file mode 100644 (file)
index 46b5afa..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From 48016174777294ea86103946f71e25bb04f647a1 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson@raspberrypi.com>
-Date: Thu, 26 Oct 2023 17:46:13 +0100
-Subject: [PATCH 0708/1085] drm/vc4: Correct logic on stopping an HVS channel
-
-When factoring out __vc4_hvs_stop_channel, the logic got inverted from
-       if (condition)
-         // stop channel
-to
-       if (condition)
-         goto out
-       //stop channel
-       out:
-and also changed the exact register writes used to stop the channel.
-
-Correct the logic so that the channel is actually stopped, and revert
-to the original register writes.
-
-Fixes: 6d01a106b4c8 ("drm/vc4: crtc: Move HVS init and close to a function")
-Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
----
- drivers/gpu/drm/vc4/vc4_hvs.c | 10 ++++------
- 1 file changed, 4 insertions(+), 6 deletions(-)
-
---- a/drivers/gpu/drm/vc4/vc4_hvs.c
-+++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -992,13 +992,11 @@ static void __vc4_hvs_stop_channel(struc
-       if (!drm_dev_enter(drm, &idx))
-               return;
--      if (HVS_READ(SCALER_DISPCTRLX(chan)) & SCALER_DISPCTRLX_ENABLE)
-+      if (!(HVS_READ(SCALER_DISPCTRLX(chan)) & SCALER_DISPCTRLX_ENABLE))
-               goto out;
--      HVS_WRITE(SCALER_DISPCTRLX(chan),
--                HVS_READ(SCALER_DISPCTRLX(chan)) | SCALER_DISPCTRLX_RESET);
--      HVS_WRITE(SCALER_DISPCTRLX(chan),
--                HVS_READ(SCALER_DISPCTRLX(chan)) & ~SCALER_DISPCTRLX_ENABLE);
-+      HVS_WRITE(SCALER_DISPCTRLX(chan), SCALER_DISPCTRLX_RESET);
-+      HVS_WRITE(SCALER_DISPCTRLX(chan), 0);
-       /* Once we leave, the scaler should be disabled and its fifo empty. */
-       WARN_ON_ONCE(HVS_READ(SCALER_DISPCTRLX(chan)) & SCALER_DISPCTRLX_RESET);
-@@ -1026,7 +1024,7 @@ static void __vc6_hvs_stop_channel(struc
-       if (!drm_dev_enter(drm, &idx))
-               return;
--      if (HVS_READ(SCALER6_DISPX_CTRL0(chan)) & SCALER6_DISPX_CTRL0_ENB)
-+      if (!(HVS_READ(SCALER6_DISPX_CTRL0(chan)) & SCALER6_DISPX_CTRL0_ENB))
-               goto out;
-       HVS_WRITE(SCALER6_DISPX_CTRL0(chan),
index 0d4f6a4ea905b6db82c607bd5f932277b8b9dffb..d43ed3f7d76b31de329bc8e52417c663e43287ed 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -1005,10 +1005,6 @@ static void __vc4_hvs_stop_channel(struc
+@@ -1008,10 +1008,6 @@ static void __vc4_hvs_stop_channel(struc
                                   SCALER_DISPSTATX_MODE) !=
                     SCALER_DISPSTATX_MODE_DISABLED);
  
index 53f2684f3be612fe62d399590e3c176a699e5bfe..6651fac56e1df97e428dcc96b379bbea5827c6d8 100644 (file)
@@ -36,7 +36,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
         * someone was waiting it.
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -697,7 +697,8 @@ static void vc4_hvs_schedule_dlist_sweep
+@@ -700,7 +700,8 @@ static void vc4_hvs_schedule_dlist_sweep
        if (!list_empty(&hvs->stale_dlist_entries))
                queue_work(system_unbound_wq, &hvs->free_dlist_work);
  
@@ -46,7 +46,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  
        spin_unlock_irqrestore(&hvs->mm_lock, flags);
  }
-@@ -712,6 +713,27 @@ static bool vc4_hvs_frcnt_lte(u8 cnt1, u
+@@ -715,6 +716,27 @@ static bool vc4_hvs_frcnt_lte(u8 cnt1, u
        return (s8)((cnt1 << 2) - (cnt2 << 2)) <= 0;
  }
  
@@ -74,7 +74,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  /*
   * Some atomic commits (legacy cursor updates, mostly) will not wait for
   * the next vblank and will just return once the commit has been pushed
-@@ -746,7 +768,8 @@ static void vc4_hvs_dlist_free_work(stru
+@@ -749,7 +771,8 @@ static void vc4_hvs_dlist_free_work(stru
                u8 frcnt;
  
                frcnt = vc4_hvs_get_fifo_frame_count(hvs, cur->channel);
index e8e93d5e80a88b7dc0a13ee206dfed62469816d6..d8a60aadbfd0a4b96251b472f8474e25fb83dda6 100644 (file)
@@ -50,7 +50,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  /* The filter kernel is composed of dwords each containing 3 9-bit
   * signed integers packed next to each other.
   */
-@@ -1551,6 +1581,8 @@ int vc4_hvs_debugfs_init(struct drm_mino
+@@ -1555,6 +1585,8 @@ int vc4_hvs_debugfs_init(struct drm_mino
  
        drm_debugfs_add_file(drm, "hvs_underrun", vc4_hvs_debugfs_underrun, NULL);
  
index 484d1e36763b55496ab55c82654d79384f80fd59..65c02feda08c78ef5904a16d0a66f9a289674bd7 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -659,7 +659,8 @@ vc4_hvs_alloc_dlist_entry(struct vc4_hvs
+@@ -662,7 +662,8 @@ vc4_hvs_alloc_dlist_entry(struct vc4_hvs
                                 dlist_count);
        spin_unlock_irqrestore(&hvs->mm_lock, flags);
        if (ret) {
index dced86878d1eb82c206b02238247873cf7b6fd9e..b28ae3c4a1456b79502c8ecd5ec3d576f59b94de 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  struct vc4_crtc_state {
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -697,8 +697,11 @@ void vc4_hvs_mark_dlist_entry_stale(stru
+@@ -700,8 +700,11 @@ void vc4_hvs_mark_dlist_entry_stale(stru
         * Kunit tests run with a mock device and we consider any hardware
         * access a test failure. Let's free the dlist allocation right away if
         * we're running under kunit, we won't risk a dlist corruption anyway.
@@ -46,7 +46,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
                spin_lock_irqsave(&hvs->mm_lock, flags);
                vc4_hvs_free_dlist_entry_locked(hvs, alloc);
                spin_unlock_irqrestore(&hvs->mm_lock, flags);
-@@ -1195,6 +1198,7 @@ static void vc4_hvs_install_dlist(struct
+@@ -1198,6 +1201,7 @@ static void vc4_hvs_install_dlist(struct
                return;
  
        WARN_ON(!vc4_state->mm);
index 849caa45390bf6247495851d15958f47c5c50111..8fdd244a002c7339dd3a871c0e0e5964cadc83d5 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -823,10 +823,28 @@ u8 vc4_hvs_get_fifo_frame_count(struct v
+@@ -826,10 +826,28 @@ u8 vc4_hvs_get_fifo_frame_count(struct v
        if (!drm_dev_enter(drm, &idx))
                return 0;
  
@@ -47,7 +47,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
                switch (fifo) {
                case 0:
                        field = VC4_GET_FIELD(HVS_READ(SCALER_DISPSTAT1),
-@@ -841,6 +859,7 @@ u8 vc4_hvs_get_fifo_frame_count(struct v
+@@ -844,6 +862,7 @@ u8 vc4_hvs_get_fifo_frame_count(struct v
                                              SCALER_DISPSTAT2_FRCNT2);
                        break;
                }
index 3d13a6a09c39281f5bfebfda9b56b503b49bfe6a..c8c284a1394c84185a7440de3fdd1a1d741fc0ec 100644 (file)
@@ -169,7 +169,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                next_entry_start = 0;
  
                for (j = active_dlist; j < dlist_mem_size; j++) {
-@@ -760,7 +819,7 @@ bool vc4_hvs_check_channel_active(struct
+@@ -763,7 +822,7 @@ bool vc4_hvs_check_channel_active(struct
                return 0;
  
        if (vc4->gen >= VC4_GEN_6)
@@ -178,7 +178,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
        else
                enabled = HVS_READ(SCALER_DISPCTRLX(fifo)) & SCALER_DISPCTRLX_ENABLE;
  
-@@ -825,8 +884,8 @@ u8 vc4_hvs_get_fifo_frame_count(struct v
+@@ -828,8 +887,8 @@ u8 vc4_hvs_get_fifo_frame_count(struct v
  
        switch (vc4->gen) {
        case VC4_GEN_6:
@@ -189,7 +189,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                break;
        case VC4_GEN_5:
                switch (fifo) {
-@@ -1037,20 +1096,20 @@ static int vc6_hvs_init_channel(struct v
+@@ -1040,20 +1099,20 @@ static int vc6_hvs_init_channel(struct v
        if (!drm_dev_enter(drm, &idx))
                return -ENODEV;
  
@@ -219,12 +219,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  
        drm_dev_exit(idx);
  
-@@ -1096,18 +1155,18 @@ static void __vc6_hvs_stop_channel(struc
-       if (!drm_dev_enter(drm, &idx))
-               return;
--      if (!(HVS_READ(SCALER6_DISPX_CTRL0(chan)) & SCALER6_DISPX_CTRL0_ENB))
-+      if (!(HVS_READ(SCALER6_DISPX_CTRL0(chan)) & SCALER6(DISPX_CTRL0_ENB)))
+@@ -1103,14 +1162,14 @@ static void __vc6_hvs_stop_channel(struc
                goto out;
  
        HVS_WRITE(SCALER6_DISPX_CTRL0(chan),
@@ -244,7 +239,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  
  out:
        drm_dev_exit(idx);
-@@ -1221,8 +1280,8 @@ static void vc4_hvs_install_dlist(struct
+@@ -1224,8 +1283,8 @@ static void vc4_hvs_install_dlist(struct
  
        if (vc4->gen >= VC4_GEN_6)
                HVS_WRITE(SCALER6_DISPX_LPTRS(vc4_state->assigned_channel),
@@ -255,7 +250,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
        else
                HVS_WRITE(SCALER_DISPLISTX(vc4_state->assigned_channel),
                          vc4_state->mm->mm_node.start);
-@@ -1382,11 +1441,11 @@ void vc4_hvs_atomic_flush(struct drm_crt
+@@ -1385,11 +1444,11 @@ void vc4_hvs_atomic_flush(struct drm_crt
                if (enable_bg_fill)
                        HVS_WRITE(SCALER6_DISPX_CTRL1(channel),
                                  HVS_READ(SCALER6_DISPX_CTRL1(channel)) |
@@ -269,7 +264,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
        } else {
                /* we can actually run with a lower core clock when background
                 * fill is enabled on VC4_GEN_5 so leave it enabled always.
-@@ -1656,7 +1715,7 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
+@@ -1660,7 +1719,7 @@ struct vc4_hvs *__vc4_hvs_alloc(struct v
                 * access a register. Use a plausible size then.
                 */
                if (!kunit_get_current_test())
@@ -278,7 +273,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                else
                        dlist_size = 4096;
  
-@@ -1890,14 +1949,17 @@ static int vc6_hvs_hw_init(struct vc4_hv
+@@ -1894,14 +1953,17 @@ static int vc6_hvs_hw_init(struct vc4_hv
        const struct vc6_csc_coeff_entry *coeffs;
        unsigned int i;
  
@@ -300,7 +295,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  
        for (i = 0; i < 6; i++) {
                coeffs = &csc_coeffs[i / 3][i % 3];
-@@ -1996,21 +2058,21 @@ static int vc4_hvs_cob_init(struct vc4_h
+@@ -2000,21 +2062,21 @@ static int vc4_hvs_cob_init(struct vc4_h
                reg = 0;
                top = 3840;
  
@@ -325,7 +320,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                          VC4_SET_FIELD(top, SCALER6_DISPX_COB_TOP) |
                          VC4_SET_FIELD(base, SCALER6_DISPX_COB_BASE));
                break;
-@@ -2041,7 +2103,10 @@ static int vc4_hvs_bind(struct device *d
+@@ -2045,7 +2107,10 @@ static int vc4_hvs_bind(struct device *d
  
        hvs->regset.base = hvs->regs;
  
@@ -337,7 +332,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                hvs->regset.regs = vc6_hvs_regs;
                hvs->regset.nregs = ARRAY_SIZE(vc6_hvs_regs);
        } else {
-@@ -2208,6 +2273,7 @@ static void vc4_hvs_dev_remove(struct pl
+@@ -2212,6 +2277,7 @@ static void vc4_hvs_dev_remove(struct pl
  static const struct of_device_id vc4_hvs_dt_match[] = {
        { .compatible = "brcm,bcm2711-hvs" },
        { .compatible = "brcm,bcm2712-hvs" },
index d88e6a744cda160ebc96689adc92f562dee68d7c..0535f63224f5ffbafe9d06e84a28bcde6d1028ce 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -1888,6 +1888,17 @@ static int vc4_hvs_hw_init(struct vc4_hv
+@@ -1892,6 +1892,17 @@ static int vc4_hvs_hw_init(struct vc4_hv
  #define CFC1_N_MA_CSC_COEFF_C23(x)    (0xa03c + ((x) * 0x3000))
  #define CFC1_N_MA_CSC_COEFF_C24(x)    (0xa040 + ((x) * 0x3000))
  
@@ -34,7 +34,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  /* 4 S2.22 multiplication factors, and 1 S9.15 addititive element for each of 3
   * output components
   */
-@@ -1958,31 +1969,43 @@ static int vc6_hvs_hw_init(struct vc4_hv
+@@ -1962,31 +1973,43 @@ static int vc6_hvs_hw_init(struct vc4_hv
        HVS_WRITE(SCALER6(PRI_MAP0), 0xffffffff);
        HVS_WRITE(SCALER6(PRI_MAP1), 0xffffffff);
  
index ff589278b6678e214cff2c469c56af91b52f754d..19442e421c35d3280a9982e83725344a768ee720 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -855,14 +855,19 @@ static void vc4_hvs_dlist_free_work(stru
+@@ -858,14 +858,19 @@ static void vc4_hvs_dlist_free_work(stru
        struct vc4_hvs *hvs = container_of(work, struct vc4_hvs, free_dlist_work);
        struct vc4_hvs_dlist_allocation *cur, *next;
        unsigned long flags;
index 67be70d9a2894712e0fcf2aa27b37180b2d3cb90..b12ce4c542b3de58b17085928ac15f2e5a5c3305 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -693,6 +693,9 @@ static void vc4_hvs_irq_clear_eof(struct
+@@ -696,6 +696,9 @@ static void vc4_hvs_irq_clear_eof(struct
        hvs->eof_irq[channel].enabled = false;
  }
  
@@ -29,7 +29,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  static struct vc4_hvs_dlist_allocation *
  vc4_hvs_alloc_dlist_entry(struct vc4_hvs *hvs,
                          unsigned int channel,
-@@ -701,6 +704,7 @@ vc4_hvs_alloc_dlist_entry(struct vc4_hvs
+@@ -704,6 +707,7 @@ vc4_hvs_alloc_dlist_entry(struct vc4_hvs
        struct vc4_dev *vc4 = hvs->vc4;
        struct drm_device *dev = &vc4->base;
        struct vc4_hvs_dlist_allocation *alloc;
@@ -37,7 +37,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
        unsigned long flags;
        int ret;
  
-@@ -718,9 +722,26 @@ vc4_hvs_alloc_dlist_entry(struct vc4_hvs
+@@ -721,9 +725,26 @@ vc4_hvs_alloc_dlist_entry(struct vc4_hvs
                                 dlist_count);
        spin_unlock_irqrestore(&hvs->mm_lock, flags);
        if (ret) {
index 10d7f571194fc98d7340904e63af4bab2331bfcf..b34cff057eadab6726877b4a9ed6d38914cc278d 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -1400,7 +1400,7 @@ void vc4_hvs_atomic_flush(struct drm_crt
+@@ -1403,7 +1403,7 @@ void vc4_hvs_atomic_flush(struct drm_crt
        struct drm_plane *plane;
        struct vc4_plane_state *vc4_plane_state;
        bool debug_dump_regs = false;
index 5b3ae3c910112229c6d9bae04152bd085de6722c..52a13c6508db920d39f58775a5325cf78bcfa077 100644 (file)
@@ -40,7 +40,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  
  static int vc4_hvs_upload_linear_kernel(struct vc4_hvs *hvs,
                                        struct drm_mm_node *space,
-@@ -2255,14 +2258,19 @@ static int vc4_hvs_bind(struct device *d
+@@ -2259,14 +2262,19 @@ static int vc4_hvs_bind(struct device *d
        if (ret)
                return ret;
  
@@ -62,7 +62,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  
        ret = vc4_hvs_cob_init(hvs);
        if (ret)
-@@ -2288,6 +2296,8 @@ static void vc4_hvs_unbind(struct device
+@@ -2292,6 +2300,8 @@ static void vc4_hvs_unbind(struct device
  
        if (drm_mm_node_allocated(&vc4->hvs->mitchell_netravali_filter))
                drm_mm_remove_node(&vc4->hvs->mitchell_netravali_filter);
index 9f4cf9d0336dab7aae3541532f253a2d7f9aafbd..1a1e3439e5e4e051067f27da4957d843706b3bea 100644 (file)
@@ -50,7 +50,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
        return 0;
 --- a/drivers/gpu/drm/vc4/vc4_hvs.c
 +++ b/drivers/gpu/drm/vc4/vc4_hvs.c
-@@ -2308,7 +2308,10 @@ static void vc4_hvs_unbind(struct device
+@@ -2312,7 +2312,10 @@ static void vc4_hvs_unbind(struct device
                drm_mm_remove_node(node);
        drm_mm_takedown(&vc4->hvs->lbm_mm);
  
index 46e0aeaf4ce6f6b415f16b82a0b893a1dc8599b2..61dec89382cff5cb4daefc613aafbb09a0c4e7b1 100644 (file)
@@ -148,7 +148,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
  
 --- a/kernel/cgroup/cgroup.c
 +++ b/kernel/cgroup/cgroup.c
-@@ -6060,9 +6060,6 @@ int __init cgroup_init_early(void)
+@@ -6063,9 +6063,6 @@ int __init cgroup_init_early(void)
        return 0;
  }
  
@@ -158,7 +158,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
  /**
   * cgroup_init - cgroup initialization
   *
-@@ -6096,12 +6093,6 @@ int __init cgroup_init(void)
+@@ -6099,12 +6096,6 @@ int __init cgroup_init(void)
  
        cgroup_unlock();
  
@@ -171,7 +171,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
        for_each_subsys(ss, ssid) {
                if (ss->early_init) {
                        struct cgroup_subsys_state *css =
-@@ -6742,10 +6733,6 @@ static int __init cgroup_disable(char *s
+@@ -6745,10 +6736,6 @@ static int __init cgroup_disable(char *s
                            strcmp(token, ss->legacy_name))
                                continue;
  
@@ -182,7 +182,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
                        static_branch_disable(cgroup_subsys_enabled_key[i]);
                        pr_info("Disabling %s control group subsystem\n",
                                ss->name);
-@@ -6779,7 +6766,7 @@ static int __init cgroup_enable(char *st
+@@ -6782,7 +6769,7 @@ static int __init cgroup_enable(char *st
                            strcmp(token, ss->legacy_name))
                                continue;
  
index 403ee11513cc547fecc55b42b7f5e34d9c3a4974..9eadd2ce16bb58e368f92c4c2bc4e20808f40fb5 100644 (file)
@@ -141,7 +141,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (err)
 --- a/scripts/mod/modpost.c
 +++ b/scripts/mod/modpost.c
-@@ -1693,7 +1693,9 @@ static void read_symbols(const char *mod
+@@ -1666,7 +1666,9 @@ static void read_symbols(const char *mod
                symname = remove_dot(info.strtab + sym->st_name);
  
                handle_symbol(mod, &info, sym, symname);
@@ -151,7 +151,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        }
  
        check_sec_ref(mod, &info);
-@@ -1866,8 +1868,10 @@ static void add_header(struct buffer *b,
+@@ -1839,8 +1841,10 @@ static void add_header(struct buffer *b,
        buf_printf(b, "BUILD_SALT;\n");
        buf_printf(b, "BUILD_LTO_INFO;\n");
        buf_printf(b, "\n");
@@ -162,7 +162,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        buf_printf(b, "\n");
        buf_printf(b, "__visible struct module __this_module\n");
        buf_printf(b, "__section(\".gnu.linkonce.this_module\") = {\n");
-@@ -1881,8 +1885,10 @@ static void add_header(struct buffer *b,
+@@ -1854,8 +1858,10 @@ static void add_header(struct buffer *b,
        buf_printf(b, "\t.arch = MODULE_ARCH_INIT,\n");
        buf_printf(b, "};\n");
  
@@ -173,7 +173,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        buf_printf(b,
                   "\n"
-@@ -1890,8 +1896,10 @@ static void add_header(struct buffer *b,
+@@ -1863,8 +1869,10 @@ static void add_header(struct buffer *b,
                   "MODULE_INFO(retpoline, \"Y\");\n"
                   "#endif\n");
  
@@ -184,7 +184,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        if (strstarts(mod->name, "tools/testing"))
                buf_printf(b, "\nMODULE_INFO(test, \"Y\");\n");
-@@ -2001,11 +2009,13 @@ static void add_depends(struct buffer *b
+@@ -1974,11 +1982,13 @@ static void add_depends(struct buffer *b
  
  static void add_srcversion(struct buffer *b, struct module *mod)
  {
@@ -198,7 +198,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  static void write_buf(struct buffer *b, const char *fname)
-@@ -2088,7 +2098,9 @@ static void write_mod_c_file(struct modu
+@@ -2061,7 +2071,9 @@ static void write_mod_c_file(struct modu
        add_exported_symbols(&buf, mod);
        add_versions(&buf, mod);
        add_depends(&buf, mod);
index 9079c66d420e7fd96badfc56ca25a76217fee2b9..d54b48895ea36984f8bd8456b7225344f48a4503 100644 (file)
@@ -10,7 +10,7 @@ Subject: [PATCH] Kconfig: add tristate for OID and ASNI string
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1993,7 +1993,7 @@ config PADATA
+@@ -2002,7 +2002,7 @@ config PADATA
        bool
  
  config ASN1
index 66c58dba64e42a4dcfd82708883393a967e2bbe5..cefb9c53e89d613dca52c4cb301ed26e5eace143 100644 (file)
@@ -10,7 +10,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
 
 --- a/drivers/net/usb/qmi_wwan.c
 +++ b/drivers/net/usb/qmi_wwan.c
-@@ -1084,12 +1084,18 @@ static const struct usb_device_id produc
+@@ -1084,6 +1084,11 @@ static const struct usb_device_id produc
                USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0x581d, USB_CLASS_VENDOR_SPEC, 1, 7),
                .driver_info = (unsigned long)&qmi_wwan_info,
        },
@@ -19,9 +19,10 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
 +              .driver_info = (unsigned long)&qmi_wwan_info,
 +      },
 +
+       {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0122)},   /* Quectel RG650V */
        {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0125)},   /* Quectel EC25, EC20 R2.0  Mini PCIe */
        {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0306)},   /* Quectel EP06/EG06/EM06 */
-       {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0512)},   /* Quectel EG12/EM12 */
+@@ -1091,6 +1096,7 @@ static const struct usb_device_id produc
        {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0620)},   /* Quectel EM160R-GL */
        {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0800)},   /* Quectel RM500Q-GL */
        {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0801)},   /* Quectel RM520N */
index acf72f4422579e9745d3ff6a299436bffd8f3fa3..4b1ea3c5ad932fce5803d3e5cb0d05eae568ee5d 100644 (file)
@@ -105,8 +105,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #include <linux/inet_diag.h>
  #include <linux/sock_diag.h>
  
-@@ -21,23 +20,6 @@ static int (*inet_rcv_compat)(struct sk_
- static DEFINE_MUTEX(sock_diag_table_mutex);
+@@ -22,23 +21,6 @@ static const struct sock_diag_inet_compa
  static struct workqueue_struct *broadcast_wq;
  
 -DEFINE_COOKIE(sock_cookie);
index 691a60bcc0388809643bd5a216d4a147c00109c9..2c3eca2552fc32b0ca379f34b12a3f792af78add 100644 (file)
@@ -246,7 +246,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                                &vmalloc_op,
 --- a/mm/vmstat.c
 +++ b/mm/vmstat.c
-@@ -2135,10 +2135,12 @@ void __init init_mm_internals(void)
+@@ -2136,10 +2136,12 @@ void __init init_mm_internals(void)
        start_shepherd_timer();
  #endif
  #ifdef CONFIG_PROC_FS
index 2a43ffb7ad54ef0ad25e06656120d5dde50783a0..1d78a9dc4dedc3d3b666dc7bd063d2c19136575a 100644 (file)
@@ -9,7 +9,7 @@ Subject: [PATCH] of/ftd: add device tree cmdline
 
 --- a/drivers/of/fdt.c
 +++ b/drivers/of/fdt.c
-@@ -1185,6 +1185,9 @@ int __init early_init_dt_scan_chosen(cha
+@@ -1186,6 +1186,9 @@ int __init early_init_dt_scan_chosen(cha
        p = of_get_flat_dt_prop(node, "bootargs", &l);
        if (p != NULL && l > 0)
                strscpy(cmdline, p, min(l, COMMAND_LINE_SIZE));
index c23811ed3987e495659ae1be94f5465c2d82ca67..94b22603d8c261d4db30285cdb8d8eb29704832e 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1451,6 +1451,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
+@@ -1460,6 +1460,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
          the unaligned access emulation.
          see arch/parisc/kernel/unaligned.c for reference
  
index f754705dc6d140f73d81f80b33ed3a9a66f7b5aa..9cf9117d0971227a8d94dd57b75893933c57150d 100644 (file)
@@ -76,7 +76,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static inline const char *rtn_type(char *buf, size_t len, unsigned int t)
 --- a/net/ipv4/ipmr.c
 +++ b/net/ipv4/ipmr.c
-@@ -180,6 +180,7 @@ static int ipmr_rule_action(struct fib_r
+@@ -190,6 +190,7 @@ static int ipmr_rule_action(struct fib_r
        case FR_ACT_UNREACHABLE:
                return -ENETUNREACH;
        case FR_ACT_PROHIBIT:
@@ -99,7 +99,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        tb_id = fib_rule_get_table(rule, arg);
 --- a/net/ipv6/ip6mr.c
 +++ b/net/ipv6/ip6mr.c
-@@ -170,6 +170,8 @@ static int ip6mr_rule_action(struct fib_
+@@ -180,6 +180,8 @@ static int ip6mr_rule_action(struct fib_
                return -ENETUNREACH;
        case FR_ACT_PROHIBIT:
                return -EACCES;
@@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static const struct rt6_info ip6_blk_hole_entry_template = {
        .dst = {
                .__rcuref       = RCUREF_INIT(1),
-@@ -1040,6 +1054,7 @@ static const int fib6_prop[RTN_MAX + 1]
+@@ -1043,6 +1057,7 @@ static const int fib6_prop[RTN_MAX + 1]
        [RTN_BLACKHOLE] = -EINVAL,
        [RTN_UNREACHABLE] = -EHOSTUNREACH,
        [RTN_PROHIBIT]  = -EACCES,
@@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        [RTN_THROW]     = -EAGAIN,
        [RTN_NAT]       = -EINVAL,
        [RTN_XRESOLVE]  = -EINVAL,
-@@ -1075,6 +1090,10 @@ static void ip6_rt_init_dst_reject(struc
+@@ -1078,6 +1093,10 @@ static void ip6_rt_init_dst_reject(struc
                rt->dst.output = ip6_pkt_prohibit_out;
                rt->dst.input = ip6_pkt_prohibit;
                break;
index cfa3975c386bff113b3bd010c4fdd5558fab8c4b..d13641064063fa3aa7f0d6b09d3d548d7b0891c9 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/netfilter/nf_tables_api.c
 +++ b/net/netfilter/nf_tables_api.c
-@@ -8377,7 +8377,7 @@ static int nft_register_flowtable_net_ho
+@@ -8417,7 +8417,7 @@ static int nft_register_flowtable_net_ho
                err = flowtable->data.type->setup(&flowtable->data,
                                                  hook->ops.dev,
                                                  FLOW_BLOCK_BIND);
index 1d73cca11e23211743d9f4a340e7082ce1a59932..36e7c18324bdfbbe68b5ad08560a2235043f7ea8 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1811,6 +1811,15 @@ config DEBUG_RSEQ
+@@ -1820,6 +1820,15 @@ config DEBUG_RSEQ
  
          If unsure, say N.
  
index f8bd1674b80ab4f3e4b2b84f4bdd7c8ba81b8535..7ea3c82ffd4c8ac41b20f9c51bf8dd5ecc5e6875 100644 (file)
@@ -17,7 +17,7 @@
        default ""
 --- a/drivers/of/fdt.c
 +++ b/drivers/of/fdt.c
-@@ -1189,6 +1189,17 @@ int __init early_init_dt_scan_chosen(cha
+@@ -1190,6 +1190,17 @@ int __init early_init_dt_scan_chosen(cha
        if (p != NULL && l > 0)
                strlcat(cmdline, p, min_t(int, strlen(cmdline) + (int)l, COMMAND_LINE_SIZE));
  
index b85053eba9ea0ebf9f53a02ca96a4d3ad3a3b20a..008a146cc97e8ba64a7b8969ed251f912891e5ed 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Kuldeep Singh <kuldeep.singh@nxp.com>
 
 --- a/drivers/mtd/spi-nor/spansion.c
 +++ b/drivers/mtd/spi-nor/spansion.c
-@@ -798,8 +798,8 @@ static const struct flash_info spansion_
+@@ -799,8 +799,8 @@ static const struct flash_info spansion_
                MFR_FLAGS(USE_CLSR)
        },
        { "s25fs512s",  INFO6(0x010220, 0x4d0081, 256 * 1024, 256)
index 19fe984aa6179b1819149ffa728cc120947ca8ff..7ff7b05301aea580756bc2bbdfc75cf21bd78f43 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
 
 --- a/drivers/spi/spi.c
 +++ b/drivers/spi/spi.c
-@@ -1370,6 +1370,70 @@ static int spi_transfer_wait(struct spi_
+@@ -1380,6 +1380,70 @@ static int spi_transfer_wait(struct spi_
        return 0;
  }
  
@@ -82,7 +82,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
  static void _spi_transfer_delay_ns(u32 ns)
  {
        if (!ns)
-@@ -2215,6 +2279,75 @@ void spi_flush_queue(struct spi_controll
+@@ -2225,6 +2289,75 @@ void spi_flush_queue(struct spi_controll
  /*-------------------------------------------------------------------------*/
  
  #if defined(CONFIG_OF)
@@ -158,7 +158,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
  static void of_spi_parse_dt_cs_delay(struct device_node *nc,
                                     struct spi_delay *delay, const char *prop)
  {
-@@ -2354,6 +2487,10 @@ of_register_spi_device(struct spi_contro
+@@ -2364,6 +2497,10 @@ of_register_spi_device(struct spi_contro
        if (rc)
                goto err_out;
  
index 4f4fb9f23e42b67e4e0dd47e800bc2572bbf9a07..7b7c905a0f3b60b5552430c33c944666351532b8 100644 (file)
@@ -17,7 +17,7 @@
        default ""
 --- a/drivers/of/fdt.c
 +++ b/drivers/of/fdt.c
-@@ -1189,6 +1189,17 @@ int __init early_init_dt_scan_chosen(cha
+@@ -1190,6 +1190,17 @@ int __init early_init_dt_scan_chosen(cha
        if (p != NULL && l > 0)
                strlcat(cmdline, p, min_t(int, strlen(cmdline) + (int)l, COMMAND_LINE_SIZE));
  
index 1aa7c3dbd340ef4ac4d8acbbf4807b68d85b513c..34bb95e4c01e69eeead848427cd827fe895dd582 100644 (file)
@@ -17,7 +17,7 @@
        help
 --- a/drivers/of/fdt.c
 +++ b/drivers/of/fdt.c
-@@ -1189,6 +1189,17 @@ int __init early_init_dt_scan_chosen(cha
+@@ -1190,6 +1190,17 @@ int __init early_init_dt_scan_chosen(cha
        if (p != NULL && l > 0)
                strlcat(cmdline, p, min_t(int, strlen(cmdline) + (int)l, COMMAND_LINE_SIZE));
  
index cd2a90826c767d4fe44ecd851faef99c32624774..de3438427d787c85b394fc6a4fcdfae439eebd61 100644 (file)
@@ -208,7 +208,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
 -TIMER_OF_DECLARE(systick, "ralink,cevt-systick", ralink_systick_init);
 --- a/drivers/clocksource/Kconfig
 +++ b/drivers/clocksource/Kconfig
-@@ -732,4 +732,13 @@ config GOLDFISH_TIMER
+@@ -733,4 +733,13 @@ config GOLDFISH_TIMER
        help
          Support for the timer/counter of goldfish-rtc
  
diff --git a/target/linux/ramips/patches-6.6/002-01-v6.13-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT38.patch b/target/linux/ramips/patches-6.6/002-01-v6.13-clk-ralink-mtmips-fix-clock-plan-for-Ralink-SoC-RT38.patch
deleted file mode 100644 (file)
index 422b6dc..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-From 33239152305567b3e9bf052f71fd4baecd626341 Mon Sep 17 00:00:00 2001
-From: Sergio Paracuellos <sergio.paracuellos@gmail.com>
-Date: Tue, 10 Sep 2024 06:40:22 +0200
-Subject: [PATCH 1/3] clk: ralink: mtmips: fix clock plan for Ralink SoC RT3883
-
-Clock plan for Ralink SoC RT3883 needs an extra 'periph' clock to properly
-set some peripherals that has this clock as their parent. When this driver
-was mainlined we could not find any active users of this SoC so we cannot
-perform any real tests for it. Now, one user of a Belkin f9k1109 version 1
-device which uses this SoC appear and reported some issues in openWRT:
-- https://github.com/openwrt/openwrt/issues/16054
-The peripherals that are wrong are 'uart', 'i2c', 'i2s' and 'uartlite' which
-has a not defined 'periph' clock as parent. Hence, introduce it to have a
-properly working clock plan for this SoC.
-
-Fixes: 6f3b15586eef ("clk: ralink: add clock and reset driver for MTMIPS SoCs")
-Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
-Link: https://lore.kernel.org/r/20240910044024.120009-2-sergio.paracuellos@gmail.com
-Signed-off-by: Stephen Boyd <sboyd@kernel.org>
----
- drivers/clk/ralink/clk-mtmips.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
---- a/drivers/clk/ralink/clk-mtmips.c
-+++ b/drivers/clk/ralink/clk-mtmips.c
-@@ -267,6 +267,11 @@ static struct mtmips_clk_fixed rt305x_fi
-       CLK_FIXED("xtal", NULL, 40000000)
- };
-+static struct mtmips_clk_fixed rt3883_fixed_clocks[] = {
-+      CLK_FIXED("xtal", NULL, 40000000),
-+      CLK_FIXED("periph", "xtal", 40000000)
-+};
-+
- static struct mtmips_clk_fixed rt3352_fixed_clocks[] = {
-       CLK_FIXED("periph", "xtal", 40000000)
- };
-@@ -779,8 +784,8 @@ static const struct mtmips_clk_data rt33
- static const struct mtmips_clk_data rt3883_clk_data = {
-       .clk_base = rt3883_clks_base,
-       .num_clk_base = ARRAY_SIZE(rt3883_clks_base),
--      .clk_fixed = rt305x_fixed_clocks,
--      .num_clk_fixed = ARRAY_SIZE(rt305x_fixed_clocks),
-+      .clk_fixed = rt3883_fixed_clocks,
-+      .num_clk_fixed = ARRAY_SIZE(rt3883_fixed_clocks),
-       .clk_factor = NULL,
-       .num_clk_factor = 0,
-       .clk_periph = rt5350_pherip_clks,
diff --git a/target/linux/ramips/patches-6.6/002-02-v6.13-clk-ralink-mtmips-fix-clocks-probe-order-in-oldest-r.patch b/target/linux/ramips/patches-6.6/002-02-v6.13-clk-ralink-mtmips-fix-clocks-probe-order-in-oldest-r.patch
deleted file mode 100644 (file)
index 3268a18..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-From d34db686a3d74bd564bfce2ada15011c556269fc Mon Sep 17 00:00:00 2001
-From: Sergio Paracuellos <sergio.paracuellos@gmail.com>
-Date: Tue, 10 Sep 2024 06:40:23 +0200
-Subject: [PATCH 2/3] clk: ralink: mtmips: fix clocks probe order in oldest
- ralink SoCs
-
-Base clocks are the first in being probed and are real dependencies of the
-rest of fixed, factor and peripheral clocks. For old ralink SoCs RT2880,
-RT305x and RT3883 'xtal' must be defined first since in any other case,
-when fixed clocks are probed they are delayed until 'xtal' is probed so the
-following warning appears:
-
- WARNING: CPU: 0 PID: 0 at drivers/clk/ralink/clk-mtmips.c:499 rt3883_bus_recalc_rate+0x98/0x138
- Modules linked in:
- CPU: 0 PID: 0 Comm: swapper Not tainted 6.6.43 #0
- Stack : 805e58d0 00000000 00000004 8004f950 00000000 00000004 00000000 00000000
- 80669c54 80830000 80700000 805ae570 80670068 00000001 80669bf8 00000000
- 00000000 00000000 805ae570 80669b38 00000020 804db7dc 00000000 00000000
- 203a6d6d 80669b78 80669e48 70617773 00000000 805ae570 00000000 00000009
- 00000000 00000001 00000004 00000001 00000000 00000000 83fe43b0 00000000
- ...
- Call Trace:
- [<800065d0>] show_stack+0x64/0xf4
- [<804bca14>] dump_stack_lvl+0x38/0x60
- [<800218ac>] __warn+0x94/0xe4
- [<8002195c>] warn_slowpath_fmt+0x60/0x94
- [<80259ff8>] rt3883_bus_recalc_rate+0x98/0x138
- [<80254530>] __clk_register+0x568/0x688
- [<80254838>] of_clk_hw_register+0x18/0x2c
- [<8070b910>] rt2880_clk_of_clk_init_driver+0x18c/0x594
- [<8070b628>] of_clk_init+0x1c0/0x23c
- [<806fc448>] plat_time_init+0x58/0x18c
- [<806fdaf0>] time_init+0x10/0x6c
- [<806f9bc4>] start_kernel+0x458/0x67c
-
- ---[ end trace 0000000000000000 ]---
-
-When this driver was mainlined we could not find any active users of old
-ralink SoCs so we cannot perform any real tests for them. Now, one user
-of a Belkin f9k1109 version 1 device which uses RT3883 SoC appeared and
-reported some issues in openWRT:
-- https://github.com/openwrt/openwrt/issues/16054
-
-Thus, define a 'rt2880_xtal_recalc_rate()' just returning the expected
-frequency 40Mhz and use it along the old ralink SoCs to have a correct
-boot trace with no warnings and a working clock plan from the beggining.
-
-Fixes: 6f3b15586eef ("clk: ralink: add clock and reset driver for MTMIPS SoCs")
-Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
-Link: https://lore.kernel.org/r/20240910044024.120009-3-sergio.paracuellos@gmail.com
-Signed-off-by: Stephen Boyd <sboyd@kernel.org>
----
- drivers/clk/ralink/clk-mtmips.c | 21 +++++++++++++--------
- 1 file changed, 13 insertions(+), 8 deletions(-)
-
---- a/drivers/clk/ralink/clk-mtmips.c
-+++ b/drivers/clk/ralink/clk-mtmips.c
-@@ -263,10 +263,6 @@ err_clk_unreg:
-               .rate = _rate            \
-       }
--static struct mtmips_clk_fixed rt305x_fixed_clocks[] = {
--      CLK_FIXED("xtal", NULL, 40000000)
--};
--
- static struct mtmips_clk_fixed rt3883_fixed_clocks[] = {
-       CLK_FIXED("xtal", NULL, 40000000),
-       CLK_FIXED("periph", "xtal", 40000000)
-@@ -371,6 +367,12 @@ static inline struct mtmips_clk *to_mtmi
-       return container_of(hw, struct mtmips_clk, hw);
- }
-+static unsigned long rt2880_xtal_recalc_rate(struct clk_hw *hw,
-+                                           unsigned long parent_rate)
-+{
-+      return 40000000;
-+}
-+
- static unsigned long rt5350_xtal_recalc_rate(struct clk_hw *hw,
-                                            unsigned long parent_rate)
- {
-@@ -682,10 +684,12 @@ static unsigned long mt76x8_cpu_recalc_r
- }
- static struct mtmips_clk rt2880_clks_base[] = {
-+      { CLK_BASE("xtal", NULL, rt2880_xtal_recalc_rate) },
-       { CLK_BASE("cpu", "xtal", rt2880_cpu_recalc_rate) }
- };
- static struct mtmips_clk rt305x_clks_base[] = {
-+      { CLK_BASE("xtal", NULL, rt2880_xtal_recalc_rate) },
-       { CLK_BASE("cpu", "xtal", rt305x_cpu_recalc_rate) }
- };
-@@ -695,6 +699,7 @@ static struct mtmips_clk rt3352_clks_bas
- };
- static struct mtmips_clk rt3883_clks_base[] = {
-+      { CLK_BASE("xtal", NULL, rt2880_xtal_recalc_rate) },
-       { CLK_BASE("cpu", "xtal", rt3883_cpu_recalc_rate) },
-       { CLK_BASE("bus", "cpu", rt3883_bus_recalc_rate) }
- };
-@@ -751,8 +756,8 @@ err_clk_unreg:
- static const struct mtmips_clk_data rt2880_clk_data = {
-       .clk_base = rt2880_clks_base,
-       .num_clk_base = ARRAY_SIZE(rt2880_clks_base),
--      .clk_fixed = rt305x_fixed_clocks,
--      .num_clk_fixed = ARRAY_SIZE(rt305x_fixed_clocks),
-+      .clk_fixed = NULL,
-+      .num_clk_fixed = 0,
-       .clk_factor = rt2880_factor_clocks,
-       .num_clk_factor = ARRAY_SIZE(rt2880_factor_clocks),
-       .clk_periph = rt2880_pherip_clks,
-@@ -762,8 +767,8 @@ static const struct mtmips_clk_data rt28
- static const struct mtmips_clk_data rt305x_clk_data = {
-       .clk_base = rt305x_clks_base,
-       .num_clk_base = ARRAY_SIZE(rt305x_clks_base),
--      .clk_fixed = rt305x_fixed_clocks,
--      .num_clk_fixed = ARRAY_SIZE(rt305x_fixed_clocks),
-+      .clk_fixed = NULL,
-+      .num_clk_fixed = 0,
-       .clk_factor = rt305x_factor_clocks,
-       .num_clk_factor = ARRAY_SIZE(rt305x_factor_clocks),
-       .clk_periph = rt305x_pherip_clks,
index d59a71af88b0a94976ac1f1d611dbe8d42463d79..3162d669e1dd49f6db913959fc69df07710bf12e 100644 (file)
@@ -96,7 +96,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  }
 --- a/drivers/clocksource/Kconfig
 +++ b/drivers/clocksource/Kconfig
-@@ -731,10 +731,15 @@ config GOLDFISH_TIMER
+@@ -732,10 +732,15 @@ config GOLDFISH_TIMER
        depends on RTC_DRV_GOLDFISH
        help
          Support for the timer/counter of goldfish-rtc
index 71adf6600f61ce8814cf4a836a1071e0a68ee003..efc2763880f04e00b458305814522d5b78a89479 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 
 --- a/drivers/media/usb/uvc/uvc_driver.c
 +++ b/drivers/media/usb/uvc/uvc_driver.c
-@@ -3183,6 +3183,18 @@ static const struct usb_device_id uvc_id
+@@ -3229,6 +3229,18 @@ static const struct usb_device_id uvc_id
          .bInterfaceSubClass   = 1,
          .bInterfaceProtocol   = 0,
          .driver_info          = UVC_INFO_META(V4L2_META_FMT_D4XX) },
index 68b9c38d5bb2507bcae8bdf95ad8cab8d2fca51e..b4398ef146858fb05e7ef972fcab86389d64905e 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Xingyu Wu <xingyu.wu@starfivetech.com>
 
 --- a/drivers/clocksource/Kconfig
 +++ b/drivers/clocksource/Kconfig
-@@ -641,6 +641,17 @@ config RISCV_TIMER
+@@ -642,6 +642,17 @@ config RISCV_TIMER
          is accessed via both the SBI and the rdcycle instruction.  This is
          required for all RISC-V systems.
  
index cc50dfe68e81c9a0a64f0d3f5f62bf32601171fd..ff089604681845fa32d37bfb226faae939d843ad 100644 (file)
@@ -30,7 +30,7 @@ Acked-by: Bjorn Helgaas <bhelgaas@google.com>
 
 --- a/drivers/pci/pci.h
 +++ b/drivers/pci/pci.h
-@@ -19,6 +19,22 @@
+@@ -22,6 +22,22 @@
   */
  #define PCIE_PME_TO_L2_TIMEOUT_US     10000
  
index d602df9e4c3c10c6db366c1858f9a1b0b359b32f..7b768a9bc5a09f0e8063ff05bb268a2ff8242021 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Kevin.xie <kevin.xie@starfivetech.com>
  
  #include "trace.h"
  #include "nvme.h"
-@@ -1062,6 +1063,15 @@ static inline int nvme_poll_cq(struct nv
+@@ -1058,6 +1059,15 @@ static inline int nvme_poll_cq(struct nv
  {
        int found = 0;
  
index 44c6fe6126802fc45f60c59a478c2a142dfa6625..febc6bac4e85003a4ec408de5d93f7a56d2f99a6 100644 (file)
@@ -160,7 +160,7 @@ Signed-off-by: minda.chen <minda.chen@starfivetech.com>
        }
 --- a/drivers/usb/host/xhci-ring.c
 +++ b/drivers/usb/host/xhci-ring.c
-@@ -3664,7 +3664,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
+@@ -3672,7 +3672,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
  
        full_len = urb->transfer_buffer_length;
        /* If we have scatter/gather list, we use it. */