kernel: bump 5.10 to 5.10.173
authorJohn Audia <therealgraysky@proton.me>
Sun, 12 Mar 2023 14:03:16 +0000 (10:03 -0400)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 27 Mar 2023 16:58:34 +0000 (18:58 +0200)
Manually rebased:
        ramips/patches-5.10/810-uvc-add-iPassion-iP2970-support.patch

All other patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
(cherry picked from commit d4aad642ff80750ec16a58058eb6da718e2129cd)

104 files changed:
include/kernel-5.10
target/linux/at91/patches-5.10/247-clk-use-clk_core_get_rate_recalc-in-clk_rate_get.patch
target/linux/ath79/patches-5.10/401-mtd-nor-support-mtd-name-from-device-tree.patch
target/linux/bcm27xx/patches-5.10/950-0038-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch
target/linux/bcm27xx/patches-5.10/950-0131-bcmgenet-Better-coalescing-parameter-defaults.patch
target/linux/bcm27xx/patches-5.10/950-0132-net-genet-enable-link-energy-detect-powerdown-for-ex.patch
target/linux/bcm27xx/patches-5.10/950-0153-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
target/linux/bcm27xx/patches-5.10/950-0162-kbuild-Allow-.dtbo-overlays-to-be-built-piecemeal.patch
target/linux/bcm27xx/patches-5.10/950-0185-pinctrl-bcm2835-Remove-gpiochip-on-error.patch
target/linux/bcm27xx/patches-5.10/950-0187-pinctrl-bcm2835-Accept-fewer-than-expected-IRQs.patch
target/linux/bcm27xx/patches-5.10/950-0192-Kbuild-Allow-.dtbo-overlays-to-be-built-adjust.patch
target/linux/bcm27xx/patches-5.10/950-0217-media-imx219-Advertise-embedded-data-node-on-media-p.patch
target/linux/bcm27xx/patches-5.10/950-0224-media-i2c-imx219-Declare-that-the-driver-can-create-.patch
target/linux/bcm27xx/patches-5.10/950-0252-SQUASH-pinctrl-bcm2835-Set-base-for-bcm2711-GPIO-to-.patch
target/linux/bcm27xx/patches-5.10/950-0310-vc4_hdmi-Remove-cec_available-flag-as-always-support.patch
target/linux/bcm27xx/patches-5.10/950-0313-vc4_hdmi-Set-HDMI_MAI_FMT.patch
target/linux/bcm27xx/patches-5.10/950-0314-drm-vc4-add-iec958-controls-to-vc4_hdmi.patch
target/linux/bcm27xx/patches-5.10/950-0315-drm-vc4-move-setup-from-hw_params-to-prepare.patch
target/linux/bcm27xx/patches-5.10/950-0316-drm-vc4-enable-HBR-MAI-format-on-HBR-streams.patch
target/linux/bcm27xx/patches-5.10/950-0318-vc_hdmi-Set-VC4_HDMI_MAI_CONFIG_FORMAT_REVERSE.patch
target/linux/bcm27xx/patches-5.10/950-0319-drm-vc4-Add-support-for-DRM_FORMAT_P030-to-vc4-plane.patch
target/linux/bcm27xx/patches-5.10/950-0320-drm-vc4-Add-support-for-YUV-color-encodings-and-rang.patch
target/linux/bcm27xx/patches-5.10/950-0334-net-bcmgenet-Reset-RBUF-on-first-open.patch
target/linux/bcm27xx/patches-5.10/950-0347-drm-vc4-Add-debugfs-node-that-dumps-the-current-disp.patch
target/linux/bcm27xx/patches-5.10/950-0349-drm-vc4-Add-all-the-HDMI-registers-into-the-debugfs-.patch
target/linux/bcm27xx/patches-5.10/950-0408-drm-atomic-Pass-the-full-state-to-CRTC-atomic-enable.patch
target/linux/bcm27xx/patches-5.10/950-0409-drm-atomic-Pass-the-full-state-to-CRTC-atomic_check.patch
target/linux/bcm27xx/patches-5.10/950-0412-drm-vc4-Pass-the-atomic-state-to-encoder-hooks.patch
target/linux/bcm27xx/patches-5.10/950-0415-drm-vc4-hdmi-Store-pixel-frequency-in-the-connector-.patch
target/linux/bcm27xx/patches-5.10/950-0416-drm-vc4-hdmi-Use-the-connector-state-pixel-rate-for-.patch
target/linux/bcm27xx/patches-5.10/950-0417-drm-vc4-hdmi-Enable-10-12-bpc-output.patch
target/linux/bcm27xx/patches-5.10/950-0456-drm-vc4-hdmi-Update-the-CEC-clock-divider-on-HSM-rat.patch
target/linux/bcm27xx/patches-5.10/950-0457-drm-vc4-hdmi-Introduce-a-CEC-clock.patch
target/linux/bcm27xx/patches-5.10/950-0458-drm-vc4-hdmi-Split-the-interrupt-handlers.patch
target/linux/bcm27xx/patches-5.10/950-0459-drm-vc4-hdmi-Support-BCM2711-CEC-interrupt-setup.patch
target/linux/bcm27xx/patches-5.10/950-0460-drm-vc4-hdmi-Don-t-register-the-CEC-adapter-if-there.patch
target/linux/bcm27xx/patches-5.10/950-0475-drm-vc4-Add-HDR-metadata-property-to-the-VC5-HDMI-co.patch
target/linux/bcm27xx/patches-5.10/950-0480-drm-vc4-Change-the-default-DPI-format-to-being-18bpp.patch
target/linux/bcm27xx/patches-5.10/950-0511-vc4-drm-Fix-source-offsets-with-DRM_FORMAT_P030.patch
target/linux/bcm27xx/patches-5.10/950-0522-vc4-drm-SQUASH-Fix-source-offsets-with-DRM_FORMAT_P0.patch
target/linux/bcm27xx/patches-5.10/950-0527-drm-connector-Create-a-helper-to-attach-the-hdr_outp.patch
target/linux/bcm27xx/patches-5.10/950-0528-drm-connector-Add-helper-to-compare-HDR-metadata.patch
target/linux/bcm27xx/patches-5.10/950-0533-vc4-kms-vc4_plane-Support-2020-colourspace-for-yuv-p.patch
target/linux/bcm27xx/patches-5.10/950-0537-clk-Introduce-a-clock-request-API.patch
target/linux/bcm27xx/patches-5.10/950-0538-drm-vc4-hdmi-Convert-to-the-new-clock-request-API.patch
target/linux/bcm27xx/patches-5.10/950-0572-clk-requests-Ignore-if-the-pointer-is-null.patch
target/linux/bcm27xx/patches-5.10/950-0574-drm-vc4-hdmi-Properly-compute-the-BVB-clock-rate.patch
target/linux/bcm27xx/patches-5.10/950-0575-drm-vc4-hdmi-Enable-the-scrambler.patch
target/linux/bcm27xx/patches-5.10/950-0577-vc4-drm-hdmi-Handle-case-when-bvb-clock-is-null.patch
target/linux/bcm27xx/patches-5.10/950-0581-clk-requests-Dereference-the-request-pointer-after-t.patch
target/linux/bcm27xx/patches-5.10/950-0596-clk-Always-clamp-the-rounded-rate.patch
target/linux/bcm27xx/patches-5.10/950-0600-drm-vc4-hdmi-Simplify-the-connector-state-retrieval.patch
target/linux/bcm27xx/patches-5.10/950-0601-drm-vc4-hdmi-Rely-on-interrupts-to-handle-hotplug.patch
target/linux/bcm27xx/patches-5.10/950-0602-drm-vc4-hdmi-Add-a-workqueue-to-set-scrambling.patch
target/linux/bcm27xx/patches-5.10/950-0603-vc4-drm-hdmi-Fix-missing-declaration.patch
target/linux/bcm27xx/patches-5.10/950-0636-drm-vc4-Register-HDMI-codec.patch
target/linux/bcm27xx/patches-5.10/950-0637-drm-vc4-hdmi-Remove-redundant-variables.patch
target/linux/bcm27xx/patches-5.10/950-0646-drm-vc4-Leverage-the-load-tracker-on-the-BCM2711.patch
target/linux/bcm27xx/patches-5.10/950-0650-Support-RPi-DPI-interface-in-mode6-for-18-bit-color.patch
target/linux/bcm27xx/patches-5.10/950-0652-drm-vc4-Fix-pixel-wrap-issue-with-DVP-teardown.patch
target/linux/bcm27xx/patches-5.10/950-0654-drm-vc4-hdmi-Use-a-fixed-rate-for-the-HSM-clock-on-B.patch
target/linux/bcm27xx/patches-5.10/950-0667-drm-vc4-hdmi-Put-the-device-on-error-in-pre_crtc_con.patch
target/linux/bcm27xx/patches-5.10/950-0668-drm-vc4-hdmi-Split-the-CEC-disable-enable-functions-.patch
target/linux/bcm27xx/patches-5.10/950-0670-drm-vc4-hdmi-Add-missing-clk_disable_unprepare-on-er.patch
target/linux/bcm27xx/patches-5.10/950-0675-drm-vc4-hdmi-Drop-devm-interrupt-handler-for-CEC-int.patch
target/linux/bcm27xx/patches-5.10/950-0676-drm-vc4-hdmi-Drop-devm-interrupt-handler-for-hotplug.patch
target/linux/bcm27xx/patches-5.10/950-0677-drm-vc4-hdmi-Only-call-into-DRM-framework-if-registe.patch
target/linux/bcm27xx/patches-5.10/950-0684-drm-vc4-hdmi-Don-t-poll-for-the-infoframes-status-on.patch
target/linux/bcm27xx/patches-5.10/950-0687-drm-vc4-Remove-unnecessary-drm_plane_cleanup-wrapper.patch
target/linux/bcm27xx/patches-5.10/950-0688-drm-vc4-plane-Remove-redundant-assignment.patch
target/linux/bcm27xx/patches-5.10/950-0689-drm-automatic-legacy-gamma-support.patch
target/linux/bcm27xx/patches-5.10/950-0717-drm-vc4-hdmi-Make-sure-the-controller-is-powered-up-.patch
target/linux/bmips/patches-5.10/022-v5.12-spi-bcm63xx-hsspi-fix-pm_runtime.patch [deleted file]
target/linux/generic/backport-5.10/011-kbuild-export-SUBARCH.patch
target/linux/generic/backport-5.10/600-v5.12-net-extract-napi-poll-functionality-to-__napi_poll.patch
target/linux/generic/backport-5.10/601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch
target/linux/generic/backport-5.10/602-v5.12-net-add-sysfs-attribute-to-control-napi-threaded-mod.patch
target/linux/generic/backport-5.10/603-v5.12-net-fix-race-between-napi-kthread-mode-and-busy-poll.patch
target/linux/generic/backport-5.10/604-v5.12-net-fix-hangup-on-napi_disable-for-threaded-napi.patch
target/linux/generic/backport-5.10/732-net-next-1-of-net-pass-the-dst-buffer-to-of_get_mac_address.patch
target/linux/generic/backport-5.10/821-v5.13-let-pci-host-bridges-declar-their-reliance-on-msi-domains.patch
target/linux/generic/hack-5.10/721-net-add-packet-mangeling.patch
target/linux/generic/hack-5.10/902-debloat_proc.patch
target/linux/generic/pending-5.10/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch
target/linux/generic/pending-5.10/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch
target/linux/generic/pending-5.10/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
target/linux/generic/pending-5.10/610-netfilter_match_bypass_default_checks.patch
target/linux/generic/pending-5.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-5.10/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
target/linux/generic/pending-5.10/701-01-arm64-dts-mediatek-mt7622-add-support-for-coherent-D.patch
target/linux/generic/pending-5.10/701-04-arm64-dts-mediatek-mt7622-introduce-nodes-for-Wirele.patch
target/linux/ipq806x/patches-5.10/104-1-drivers-thermal-tsens-Add-VER_0-tsens-version.patch
target/linux/ipq806x/patches-5.10/107-1-thermal-qcom-tsens-init-debugfs-only-with-successful.patch
target/linux/lantiq/patches-5.10/0001-MIPS-lantiq-add-pcie-driver.patch
target/linux/lantiq/patches-5.10/0152-lantiq-VPE.patch
target/linux/lantiq/patches-5.10/0155-lantiq-VPE-nosmp.patch
target/linux/lantiq/patches-5.10/0320-v6.1-MIPS-lantiq-enable-all-hardware-interrupts-on-second.patch
target/linux/mediatek/patches-5.10/131-dts-mt7622-add-snand-support.patch
target/linux/mediatek/patches-5.10/602-arm64-dts-mediatek-Split-PCIe-node-for-MT2712-MT7622.patch
target/linux/mediatek/patches-5.10/710-pci-pcie-mediatek-add-support-for-coherent-DMA.patch
target/linux/octeontx/patches-5.10/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch
target/linux/pistachio/patches-5.10/401-mtd-nor-support-mtd-name-from-device-tree.patch
target/linux/ramips/patches-5.10/810-uvc-add-iPassion-iP2970-support.patch
target/linux/ramips/patches-5.10/821-SPI-ralink-add-Ralink-SoC-spi-driver.patch

index dd93f107f6447deaa9fcb56711f22f6ee1f9bc6f..9a90cf68cb955f1590d834283f7fa686998b767c 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.10 = .172
-LINUX_KERNEL_HASH-5.10.172 = f20dbae344df1c33cad617f7670c5e061557f592f422c842d3b30155df2927b1
+LINUX_VERSION-5.10 = .173
+LINUX_KERNEL_HASH-5.10.173 = 3480b474c727ed882416202084acce6861659e74f1d84b724a342c514b083c25
index 6751edec5c64aaba2f1969bc7e8f5482f18602b7..436fa1836245827ea683b11c7927f132674031d1 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
 
 --- a/drivers/clk/clk.c
 +++ b/drivers/clk/clk.c
-@@ -3105,7 +3105,10 @@ static int clk_rate_get(void *data, u64
+@@ -3116,7 +3116,10 @@ static int clk_rate_get(void *data, u64
  {
        struct clk_core *core = data;
  
index 43bf94432e2cc34b344e40297eb837bd7825ce62..2df15d0ce9998ba663ed8f1ad6fd8faf63092c4a 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
 
 --- a/drivers/mtd/spi-nor/core.c
 +++ b/drivers/mtd/spi-nor/core.c
-@@ -3159,6 +3159,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3168,6 +3168,7 @@ int spi_nor_scan(struct spi_nor *nor, co
        struct device *dev = nor->dev;
        struct mtd_info *mtd = &nor->mtd;
        struct device_node *np = spi_nor_get_flash_node(nor);
@@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
        int ret;
        int i;
  
-@@ -3213,7 +3214,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3222,7 +3223,12 @@ int spi_nor_scan(struct spi_nor *nor, co
        if (ret)
                return ret;
  
index a1aa5b2004fcb4e47ab2dada059e57d9bee996c0..18bb6ad10db722b42c0ab15c995ea6cd87ba7f9e 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Noralf Tronnes <notro@tronnes.org>
 
 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
 +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -378,7 +378,7 @@ static const struct gpio_chip bcm2835_gp
+@@ -376,7 +376,7 @@ static const struct gpio_chip bcm2835_gp
        .get = bcm2835_gpio_get,
        .set = bcm2835_gpio_set,
        .set_config = gpiochip_generic_config,
index 3c88ce0ed7f783dbf86345524b18a964a742b2c7..a542e12bf42241e309f5306547d47b2b472de617 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -2604,7 +2604,7 @@ static void bcmgenet_init_tx_ring(struct
+@@ -2612,7 +2612,7 @@ static void bcmgenet_init_tx_ring(struct
  
        bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX);
        bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
@@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
        /* Disable rate control for now */
        bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
                                  TDMA_FLOW_PERIOD);
-@@ -4073,9 +4073,12 @@ static int bcmgenet_probe(struct platfor
+@@ -4081,9 +4081,12 @@ static int bcmgenet_probe(struct platfor
        netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
  
        /* Set default coalescing parameters */
index 4c6fbe89defdb54838016b4a5895e9538ab762ea..5ed0367290059272cdbf591dd164abc1a206ec72 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
-@@ -293,6 +293,8 @@ int bcmgenet_mii_probe(struct net_device
+@@ -286,6 +286,8 @@ int bcmgenet_mii_probe(struct net_device
        /* Communicate the integrated PHY revision */
        if (priv->internal_phy)
                phy_flags = priv->gphy_rev;
index ba0c0631cd26cd763a3a7290383d229f1ade0562..ceca4405e24e460fcaa2b33a3a44971e54281327 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  
  static inline void bcmgenet_writel(u32 value, void __iomem *offset)
  {
-@@ -2435,6 +2438,11 @@ static void reset_umac(struct bcmgenet_p
+@@ -2443,6 +2446,11 @@ static void reset_umac(struct bcmgenet_p
        bcmgenet_rbuf_ctrl_set(priv, 0);
        udelay(10);
  
index 0506bc26a849c9071d116f97b3206edd125e7b45..5431dee451e791e85a2a340e2d63e8f0555c3db3 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -1369,6 +1369,9 @@ ifneq ($(dtstree),)
+@@ -1376,6 +1376,9 @@ ifneq ($(dtstree),)
  %.dtb: include/config/kernel.release scripts_dtc
        $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
  
index a337f49d1ecee0135a73c8a103bf59fcb17286e6..66714ade1a27167ccdf431e2e49e313b45bc364c 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
 +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -1336,7 +1336,7 @@ static int bcm2835_pinctrl_probe(struct
+@@ -1334,7 +1334,7 @@ static int bcm2835_pinctrl_probe(struct
        girq->default_type = IRQ_TYPE_NONE;
        girq->handler = handle_level_irq;
  
index 9311baee2d8323b7d4af0cabee989a52e4a984a0..749182c8cbd33a810d13e88296d1805644e47949 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
 +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -1308,9 +1308,13 @@ static int bcm2835_pinctrl_probe(struct
+@@ -1306,9 +1306,13 @@ static int bcm2835_pinctrl_probe(struct
                char *name;
  
                girq->parents[i] = irq_of_parse_and_map(np, i);
index 1a961ab45b5a0b72eddee57b99cd6db29d5f26e7..8b67e16a545281bc357612c0818fd8f1db26e809 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Nataliya Korovkina <malus.brandywine@gmail.com>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -1369,7 +1369,7 @@ ifneq ($(dtstree),)
+@@ -1376,7 +1376,7 @@ ifneq ($(dtstree),)
  %.dtb: include/config/kernel.release scripts_dtc
        $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
  
index d8055af5b281bb7732f005920fff290fd2134168..4884d5b52d68ba1633f5a7680952232633d8853b 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
 
 --- a/drivers/media/i2c/imx219.c
 +++ b/drivers/media/i2c/imx219.c
-@@ -118,6 +118,16 @@
+@@ -124,6 +124,16 @@
  #define IMX219_PIXEL_ARRAY_WIDTH      3280U
  #define IMX219_PIXEL_ARRAY_HEIGHT     2464U
  
@@ -37,7 +37,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
  struct imx219_reg {
        u16 address;
        u8 val;
-@@ -536,7 +546,7 @@ static const struct imx219_mode supporte
+@@ -444,7 +454,7 @@ static const struct imx219_mode supporte
  
  struct imx219 {
        struct v4l2_subdev sd;
@@ -46,7 +46,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
  
        struct v4l2_mbus_framefmt fmt;
  
-@@ -685,18 +695,26 @@ static void imx219_set_default_format(st
+@@ -593,18 +603,26 @@ static void imx219_set_default_format(st
  static int imx219_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
  {
        struct imx219 *imx219 = to_imx219(sd);
@@ -81,7 +81,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
  
        /* Initialize try_crop rectangle. */
        try_crop = v4l2_subdev_get_try_crop(sd, fh->pad, 0);
-@@ -805,10 +823,21 @@ static int imx219_enum_mbus_code(struct
+@@ -713,10 +731,21 @@ static int imx219_enum_mbus_code(struct
  {
        struct imx219 *imx219 = to_imx219(sd);
  
@@ -105,7 +105,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
  
        return 0;
  }
-@@ -819,16 +848,29 @@ static int imx219_enum_frame_size(struct
+@@ -727,16 +756,29 @@ static int imx219_enum_frame_size(struct
  {
        struct imx219 *imx219 = to_imx219(sd);
  
@@ -142,7 +142,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
  
        return 0;
  }
-@@ -843,9 +885,9 @@ static void imx219_reset_colorspace(stru
+@@ -751,9 +793,9 @@ static void imx219_reset_colorspace(stru
        fmt->xfer_func = V4L2_MAP_XFER_FUNC_DEFAULT(fmt->colorspace);
  }
  
@@ -155,7 +155,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
  {
        fmt->format.width = mode->width;
        fmt->format.height = mode->height;
-@@ -853,20 +895,38 @@ static void imx219_update_pad_format(str
+@@ -761,20 +803,38 @@ static void imx219_update_pad_format(str
        imx219_reset_colorspace(&fmt->format);
  }
  
@@ -198,7 +198,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
        }
  
        return 0;
-@@ -896,51 +956,74 @@ static int imx219_set_pad_format(struct
+@@ -804,51 +864,74 @@ static int imx219_set_pad_format(struct
        int exposure_max, exposure_def, hblank;
        unsigned int i;
  
@@ -316,7 +316,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
        }
  
        mutex_unlock(&imx219->mutex);
-@@ -1511,13 +1594,14 @@ static int imx219_probe(struct i2c_clien
+@@ -1462,13 +1545,14 @@ static int imx219_probe(struct i2c_clien
        imx219->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
        imx219->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
  
index 87e100061734f3e41d5d2d58794a32c2de4114f6..2ac7b510f8a35d5e802aaf0d901e964bcef66817 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/media/i2c/imx219.c
 +++ b/drivers/media/i2c/imx219.c
-@@ -1591,7 +1591,8 @@ static int imx219_probe(struct i2c_clien
+@@ -1542,7 +1542,8 @@ static int imx219_probe(struct i2c_clien
  
        /* Initialize subdev */
        imx219->sd.internal_ops = &imx219_internal_ops;
index 18bb51916fbfe9efaf5261764a1a85569b10b53d..b87e9c3026cf71cdaade3d7fe6efd05c04e6ee05 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
 +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
-@@ -395,7 +395,7 @@ static const struct gpio_chip bcm2711_gp
+@@ -393,7 +393,7 @@ static const struct gpio_chip bcm2711_gp
        .get = bcm2835_gpio_get,
        .set = bcm2835_gpio_set,
        .set_config = gpiochip_generic_config,
index feac458184dbf9a04bbbb1803bbda7bd2eb1d465..567a27878126ecb3872821832d21e0f05a875866 100644 (file)
@@ -12,7 +12,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
-@@ -1487,9 +1487,6 @@ static int vc4_hdmi_cec_init(struct vc4_
+@@ -1488,9 +1488,6 @@ static int vc4_hdmi_cec_init(struct vc4_
        u32 value;
        int ret;
  
@@ -22,7 +22,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
        vc4_hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops,
                                                  vc4_hdmi,
                                                  vc4_hdmi->variant->card_name,
-@@ -1923,7 +1920,6 @@ static const struct vc4_hdmi_variant bcm
+@@ -1924,7 +1921,6 @@ static const struct vc4_hdmi_variant bcm
        .debugfs_name           = "hdmi_regs",
        .card_name              = "vc4-hdmi",
        .max_pixel_clock        = 162000000,
index 801d90db7fc29cd34e63e2fcdfea06c30e71cf54..36f8322aeed827b20b0ca6229b106305c31ede6f 100644 (file)
@@ -14,7 +14,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
-@@ -995,6 +995,44 @@ static void vc4_hdmi_audio_shutdown(stru
+@@ -996,6 +996,44 @@ static void vc4_hdmi_audio_shutdown(stru
        vc4_hdmi->audio.substream = NULL;
  }
  
@@ -59,7 +59,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  /* HDMI audio codec callbacks */
  static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream,
                                    struct snd_pcm_hw_params *params,
-@@ -1005,6 +1043,8 @@ static int vc4_hdmi_audio_hw_params(stru
+@@ -1006,6 +1044,8 @@ static int vc4_hdmi_audio_hw_params(stru
        struct device *dev = &vc4_hdmi->pdev->dev;
        u32 audio_packet_config, channel_mask;
        u32 channel_map;
@@ -68,7 +68,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  
        if (substream != vc4_hdmi->audio.substream)
                return -EINVAL;
-@@ -1025,6 +1065,14 @@ static int vc4_hdmi_audio_hw_params(stru
+@@ -1026,6 +1066,14 @@ static int vc4_hdmi_audio_hw_params(stru
  
        vc4_hdmi_audio_set_mai_clock(vc4_hdmi);
  
@@ -85,7 +85,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                VC4_HDMI_AUDIO_PACKET_ZERO_DATA_ON_SAMPLE_FLAT |
 --- a/drivers/gpu/drm/vc4/vc4_regs.h
 +++ b/drivers/gpu/drm/vc4/vc4_regs.h
-@@ -516,6 +516,36 @@
+@@ -522,6 +522,36 @@
  # define VC4_HDMI_AUDIO_PACKET_CEA_MASK_MASK                  VC4_MASK(7, 0)
  # define VC4_HDMI_AUDIO_PACKET_CEA_MASK_SHIFT                 0
  
index b617c97923f5bfa9a0a5ddc94e3d890680990320..b6fa22906e3d1bd0289d438ff9113b33120ff719 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
  #include <sound/dmaengine_pcm.h>
  #include <sound/pcm_drm_eld.h>
  #include <sound/pcm_params.h>
-@@ -1176,6 +1177,47 @@ static int vc4_hdmi_audio_eld_ctl_get(st
+@@ -1177,6 +1178,47 @@ static int vc4_hdmi_audio_eld_ctl_get(st
        return 0;
  }
  
@@ -74,7 +74,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
  static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = {
        {
                .access = SNDRV_CTL_ELEM_ACCESS_READ |
-@@ -1185,6 +1227,19 @@ static const struct snd_kcontrol_new vc4
+@@ -1186,6 +1228,19 @@ static const struct snd_kcontrol_new vc4
                .info = vc4_hdmi_audio_eld_ctl_info,
                .get = vc4_hdmi_audio_eld_ctl_get,
        },
@@ -94,7 +94,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
  };
  
  static const struct snd_soc_dapm_widget vc4_hdmi_audio_widgets[] = {
-@@ -1305,6 +1360,11 @@ static int vc4_hdmi_audio_init(struct vc
+@@ -1306,6 +1361,11 @@ static int vc4_hdmi_audio_init(struct vc
        vc4_hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
        vc4_hdmi->audio.dma_data.maxburst = 2;
  
index 25792b28fdbe8e077c787ab766355abade6c3e13..0d2a3984514d9dd06a2d17766b776434c3cbb997 100644 (file)
@@ -14,7 +14,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
-@@ -1035,9 +1035,8 @@ static int sample_rate_to_mai_fmt(int sa
+@@ -1036,9 +1036,8 @@ static int sample_rate_to_mai_fmt(int sa
  }
  
  /* HDMI audio codec callbacks */
@@ -26,7 +26,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
  {
        struct vc4_hdmi *vc4_hdmi = dai_to_hdmi(dai);
        struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base;
-@@ -1050,12 +1049,15 @@ static int vc4_hdmi_audio_hw_params(stru
+@@ -1051,12 +1050,15 @@ static int vc4_hdmi_audio_hw_params(stru
        if (substream != vc4_hdmi->audio.substream)
                return -EINVAL;
  
@@ -47,7 +47,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
  
        HDMI_WRITE(HDMI_MAI_CTL,
                   VC4_HD_MAI_CTL_RESET |
-@@ -1267,7 +1269,7 @@ static const struct snd_soc_component_dr
+@@ -1268,7 +1270,7 @@ static const struct snd_soc_component_dr
  static const struct snd_soc_dai_ops vc4_hdmi_audio_dai_ops = {
        .startup = vc4_hdmi_audio_startup,
        .shutdown = vc4_hdmi_audio_shutdown,
index fc722e58cc571fa363395a22240149795619cb8a..cbdee0574cec4caabe6d9b738270b83ad6b01749 100644 (file)
@@ -10,7 +10,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
-@@ -1069,7 +1069,11 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -1070,7 +1070,11 @@ static int vc4_hdmi_audio_prepare(struct
        vc4_hdmi_audio_set_mai_clock(vc4_hdmi);
  
        mai_sample_rate = sample_rate_to_mai_fmt(vc4_hdmi->audio.samplerate);
index 773ddf1f01964d723b07139ccf38d5dc9e5d8f5b..b616756a3fc1193f53b1df8d5859faa698363bff 100644 (file)
@@ -14,7 +14,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
-@@ -1099,6 +1099,7 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -1100,6 +1100,7 @@ static int vc4_hdmi_audio_prepare(struct
  
        HDMI_WRITE(HDMI_MAI_CONFIG,
                   VC4_HDMI_MAI_CONFIG_BIT_REVERSE |
index 4af45139ceea0c1b327fabe8337907917b77a23e..46d64dcd1dab839207599e1a09e6cb03135df554 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  } hvs_formats[] = {
        {
                .drm = DRM_FORMAT_XRGB8888,
-@@ -128,6 +129,12 @@ static const struct hvs_format {
+@@ -130,6 +131,12 @@ static const struct hvs_format {
                .hvs = HVS_PIXEL_FORMAT_YCBCR_YUV422_2PLANE,
                .pixel_order = HVS_PIXEL_ORDER_XYCRCB,
        },
@@ -38,7 +38,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  };
  
  static const struct hvs_format *vc4_get_hvs_format(u32 drm_format)
-@@ -765,27 +772,33 @@ static int vc4_plane_mode_set(struct drm
+@@ -767,27 +774,33 @@ static int vc4_plane_mode_set(struct drm
                uint32_t param = fourcc_mod_broadcom_param(fb->modifier);
                u32 tile_w, tile, x_off, pix_per_tile;
  
@@ -90,7 +90,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
                        return -EINVAL;
                }
  
-@@ -795,6 +808,13 @@ static int vc4_plane_mode_set(struct drm
+@@ -797,6 +810,13 @@ static int vc4_plane_mode_set(struct drm
  
                /* Adjust the base pointer to the first pixel to be scanned
                 * out.
@@ -104,7 +104,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
                 */
                for (i = 0; i < num_planes; i++) {
                        vc4_state->offsets[i] += param * tile_w * tile;
-@@ -956,7 +976,8 @@ static int vc4_plane_mode_set(struct drm
+@@ -958,7 +978,8 @@ static int vc4_plane_mode_set(struct drm
  
        /* Pitch word 1/2 */
        for (i = 1; i < num_planes; i++) {
@@ -114,7 +114,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
                        vc4_dlist_write(vc4_state,
                                        VC4_SET_FIELD(fb->pitches[i],
                                                      SCALER_SRC_PITCH));
-@@ -1316,6 +1337,13 @@ static bool vc4_format_mod_supported(str
+@@ -1318,6 +1339,13 @@ static bool vc4_format_mod_supported(str
                default:
                        return false;
                }
@@ -128,7 +128,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
        case DRM_FORMAT_RGBX1010102:
        case DRM_FORMAT_BGRX1010102:
        case DRM_FORMAT_RGBA1010102:
-@@ -1348,8 +1376,11 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1350,8 +1378,11 @@ struct drm_plane *vc4_plane_init(struct
        struct drm_plane *plane = NULL;
        struct vc4_plane *vc4_plane;
        u32 formats[ARRAY_SIZE(hvs_formats)];
@@ -140,7 +140,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
        static const uint64_t modifiers[] = {
                DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED,
                DRM_FORMAT_MOD_BROADCOM_SAND128,
-@@ -1364,13 +1395,17 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1366,13 +1397,17 @@ struct drm_plane *vc4_plane_init(struct
        if (!vc4_plane)
                return ERR_PTR(-ENOMEM);
  
index d0567398381e270184e9a8d0d74b9197e4a34a0e..b1e20e96e1f759a159a65fb95c1e33aa551a72dc 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
 
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -624,6 +624,53 @@ static int vc4_plane_allocate_lbm(struct
+@@ -626,6 +626,53 @@ static int vc4_plane_allocate_lbm(struct
        return 0;
  }
  
@@ -72,7 +72,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
  /* Writes out a full display list for an active plane to the plane's
   * private dlist state.
   */
-@@ -988,9 +1035,20 @@ static int vc4_plane_mode_set(struct drm
+@@ -990,9 +1037,20 @@ static int vc4_plane_mode_set(struct drm
  
        /* Colorspace conversion words */
        if (vc4_state->is_yuv) {
@@ -96,7 +96,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
        }
  
        vc4_state->lbm_offset = 0;
-@@ -1419,6 +1477,14 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1421,6 +1479,14 @@ struct drm_plane *vc4_plane_init(struct
                                           DRM_MODE_REFLECT_X |
                                           DRM_MODE_REFLECT_Y);
  
@@ -113,7 +113,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
  
 --- a/drivers/gpu/drm/vc4/vc4_regs.h
 +++ b/drivers/gpu/drm/vc4/vc4_regs.h
-@@ -976,6 +976,7 @@ enum hvs_pixel_format {
+@@ -982,6 +982,7 @@ enum hvs_pixel_format {
  #define SCALER_CSC0_ITR_R_601_5                       0x00f00000
  #define SCALER_CSC0_ITR_R_709_3                       0x00f00000
  #define SCALER_CSC0_JPEG_JFIF                 0x00000000
@@ -121,7 +121,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
  
  /* S2.8 contribution of Cb to Green */
  #define SCALER_CSC1_COEF_CB_GRN_MASK          VC4_MASK(31, 22)
-@@ -992,6 +993,7 @@ enum hvs_pixel_format {
+@@ -998,6 +999,7 @@ enum hvs_pixel_format {
  #define SCALER_CSC1_ITR_R_601_5                       0xe73304a8
  #define SCALER_CSC1_ITR_R_709_3                       0xf2b784a8
  #define SCALER_CSC1_JPEG_JFIF                 0xea34a400
@@ -129,7 +129,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
  
  /* S2.8 contribution of Cb to Red */
  #define SCALER_CSC2_COEF_CB_RED_MASK          VC4_MASK(29, 20)
-@@ -1005,6 +1007,7 @@ enum hvs_pixel_format {
+@@ -1011,6 +1013,7 @@ enum hvs_pixel_format {
  #define SCALER_CSC2_ITR_R_601_5                       0x00066204
  #define SCALER_CSC2_ITR_R_709_3                       0x00072a1c
  #define SCALER_CSC2_JPEG_JFIF                 0x000599c5
index 3bb8ef81a0f8fe1e5146a2acb88168222e1d5958..cf03e36fa3f04775c7d7782103fe2a852a159421 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
 +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -3253,7 +3253,7 @@ static void bcmgenet_get_hw_addr(struct
+@@ -3261,7 +3261,7 @@ static void bcmgenet_get_hw_addr(struct
  }
  
  /* Returns a reusable dma control register value */
@@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  {
        unsigned int i;
        u32 reg;
-@@ -3278,6 +3278,14 @@ static u32 bcmgenet_dma_disable(struct b
+@@ -3286,6 +3286,14 @@ static u32 bcmgenet_dma_disable(struct b
        udelay(10);
        bcmgenet_umac_writel(priv, 0, UMAC_TX_FLUSH);
  
@@ -48,7 +48,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        return dma_ctrl;
  }
  
-@@ -3341,8 +3349,8 @@ static int bcmgenet_open(struct net_devi
+@@ -3349,8 +3357,8 @@ static int bcmgenet_open(struct net_devi
  
        bcmgenet_set_hw_addr(priv, dev->dev_addr);
  
@@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
  
        /* Reinitialize TDMA and RDMA and SW housekeeping */
        ret = bcmgenet_init_dma(priv);
-@@ -4202,7 +4210,7 @@ static int bcmgenet_resume(struct device
+@@ -4210,7 +4218,7 @@ static int bcmgenet_resume(struct device
                        bcmgenet_hfb_create_rxnfc_filter(priv, rule);
  
        /* Disable RX/TX DMA and flush TX queues */
index 5b2bc61573b14ce282948c51c7fe0e621533245c..6ec64851622f11d7abbefc9c2075f7dae835cc22 100644 (file)
@@ -59,7 +59,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.
   */
-@@ -687,6 +726,8 @@ static int vc4_hvs_bind(struct device *d
+@@ -698,6 +737,8 @@ static int vc4_hvs_bind(struct device *d
        vc4_debugfs_add_regset32(drm, "hvs_regs", &hvs->regset);
        vc4_debugfs_add_file(drm, "hvs_underrun", vc4_hvs_debugfs_underrun,
                             NULL);
index 2c8228a755ecbf29a03109ab3999eb0aa46e75b9..e54b1aee7242ebf229e27f6715fdca01d6e6bfa8 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  
        return 0;
  }
-@@ -1737,6 +1743,7 @@ static int vc5_hdmi_init_resources(struc
+@@ -1738,6 +1744,7 @@ static int vc5_hdmi_init_resources(struc
        struct platform_device *pdev = vc4_hdmi->pdev;
        struct device *dev = &pdev->dev;
        struct resource *res;
@@ -37,7 +37,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  
        res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi");
        if (!res)
-@@ -1827,6 +1834,38 @@ static int vc5_hdmi_init_resources(struc
+@@ -1828,6 +1835,38 @@ static int vc5_hdmi_init_resources(struc
                return PTR_ERR(vc4_hdmi->reset);
        }
  
index deced715d194a357f0c4e1e15f20ff51fea41441..e76a8202f4a7267d8c3e69548911d42e8d15fe15 100644 (file)
@@ -633,7 +633,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/845aa10ef171fc0ea060495efef1
  #include <drm/drm_crtc.h>
  #include <drm/drm_flip_work.h>
  #include <drm/drm_mode.h>
-@@ -706,10 +707,12 @@ static struct drm_crtc_state *dpu_crtc_d
+@@ -709,10 +710,12 @@ static struct drm_crtc_state *dpu_crtc_d
  }
  
  static void dpu_crtc_disable(struct drm_crtc *crtc,
@@ -647,7 +647,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/845aa10ef171fc0ea060495efef1
        struct drm_encoder *encoder;
        unsigned long flags;
        bool release_bandwidth = false;
-@@ -770,7 +773,7 @@ static void dpu_crtc_disable(struct drm_
+@@ -773,7 +776,7 @@ static void dpu_crtc_disable(struct drm_
  }
  
  static void dpu_crtc_enable(struct drm_crtc *crtc,
index 3eb7205cee272c43d50a7059ecdd298a9e0cd465..abb90c862e0aed50400dcd5a5cf8978d323572e2 100644 (file)
@@ -201,7 +201,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
 
 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
 +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -5638,17 +5638,19 @@ static void dm_update_crtc_active_planes
+@@ -5640,17 +5640,19 @@ static void dm_update_crtc_active_planes
  }
  
  static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc,
@@ -225,7 +225,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
                WARN_ON(1);
                return ret;
        }
-@@ -5659,8 +5661,8 @@ static int dm_crtc_helper_atomic_check(s
+@@ -5661,8 +5663,8 @@ static int dm_crtc_helper_atomic_check(s
         * planes are disabled, which is not supported by the hardware. And there is legacy
         * userspace which stops using the HW cursor altogether in response to the resulting EINVAL.
         */
@@ -503,7 +503,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
  
 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
 +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
-@@ -815,10 +815,12 @@ struct plane_state {
+@@ -818,10 +818,12 @@ struct plane_state {
  };
  
  static int dpu_crtc_atomic_check(struct drm_crtc *crtc,
@@ -518,9 +518,9 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
        struct plane_state *pstates;
  
        const struct drm_plane_state *pstate;
-@@ -835,32 +837,33 @@ static int dpu_crtc_atomic_check(struct
-       pstates = kzalloc(sizeof(*pstates) * DPU_STAGE_MAX * 4, GFP_KERNEL);
+@@ -840,32 +842,33 @@ static int dpu_crtc_atomic_check(struct
+       if (!pstates)
+               return -ENOMEM;
  
 -      if (!state->enable || !state->active) {
 +      if (!crtc_state->enable || !crtc_state->active) {
@@ -559,7 +559,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
                struct drm_rect dst, clip = crtc_rect;
  
                if (IS_ERR_OR_NULL(pstate)) {
-@@ -966,7 +969,7 @@ static int dpu_crtc_atomic_check(struct
+@@ -971,7 +974,7 @@ static int dpu_crtc_atomic_check(struct
  
        atomic_inc(&_dpu_crtc_get_kms(crtc)->bandwidth_ref);
  
index 21c0537e8b630f7ac3283339941d9794f4215eff..424006cf7e6a328f055a36d2d4ffb2d8c0b7abd3 100644 (file)
@@ -129,7 +129,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  {
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
        int ret;
-@@ -642,7 +644,8 @@ static void vc4_hdmi_recenter_fifo(struc
+@@ -643,7 +645,8 @@ static void vc4_hdmi_recenter_fifo(struc
                  "VC4_HDMI_FIFO_CTL_RECENTER_DONE");
  }
  
@@ -139,7 +139,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  {
        struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
-@@ -724,7 +727,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -725,7 +728,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
                vc4_hdmi->variant->set_timings(vc4_hdmi, mode);
  }
  
@@ -149,7 +149,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  {
        struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
        struct vc4_hdmi_encoder *vc4_encoder = to_vc4_hdmi_encoder(encoder);
-@@ -746,7 +750,8 @@ static void vc4_hdmi_encoder_pre_crtc_en
+@@ -747,7 +751,8 @@ static void vc4_hdmi_encoder_pre_crtc_en
        HDMI_WRITE(HDMI_FIFO_CTL, VC4_HDMI_FIFO_CTL_MASTER_SLAVE_N);
  }
  
index 9f0f7e5e59f48270094f6f1db41d4d2ea199ee5e..ab7aaca737e9f1e367210a0df940112f9c3d769a 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        __drm_atomic_helper_connector_duplicate_state(connector, &new_state->base);
  
        return &new_state->base;
-@@ -671,9 +672,29 @@ static void vc4_hdmi_recenter_fifo(struc
+@@ -672,9 +673,29 @@ static void vc4_hdmi_recenter_fifo(struc
                  "VC4_HDMI_FIFO_CTL_RECENTER_DONE");
  }
  
@@ -59,7 +59,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
        unsigned long pixel_rate, hsm_rate;
-@@ -685,7 +706,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -686,7 +707,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
                return;
        }
  
@@ -68,7 +68,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        ret = clk_set_rate(vc4_hdmi->pixel_clock, pixel_rate);
        if (ret) {
                DRM_ERROR("Failed to set pixel clock rate: %d\n", ret);
-@@ -847,6 +868,7 @@ static int vc4_hdmi_encoder_atomic_check
+@@ -848,6 +869,7 @@ static int vc4_hdmi_encoder_atomic_check
                                         struct drm_crtc_state *crtc_state,
                                         struct drm_connector_state *conn_state)
  {
@@ -76,7 +76,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        struct drm_display_mode *mode = &crtc_state->adjusted_mode;
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
        unsigned long long pixel_rate = mode->clock * 1000;
-@@ -878,6 +900,8 @@ static int vc4_hdmi_encoder_atomic_check
+@@ -879,6 +901,8 @@ static int vc4_hdmi_encoder_atomic_check
        if (pixel_rate > vc4_hdmi->variant->max_pixel_clock)
                return -EINVAL;
  
index 64949ffb1fe4059ccb6876381ec6b8f3321646d6..38705f3eb18ba49faa93aabb538c7b35e727bc2e 100644 (file)
@@ -22,7 +22,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
-@@ -764,7 +764,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -765,7 +765,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
        }
  
        if (vc4_hdmi->variant->phy_init)
index a887f383e9af5b833a9128f26ae2547cdf33f731..e70ec847e74a2455ea28b4138dadc80e416b5e55 100644 (file)
@@ -82,9 +82,9 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
                                 struct drm_display_mode *mode)
  {
        bool hsync_pos = mode->flags & DRM_MODE_FLAG_PHSYNC;
-@@ -620,6 +644,9 @@ static void vc5_hdmi_set_timings(struct
+@@ -621,6 +645,9 @@ static void vc5_hdmi_set_timings(struct
                          VC4_SET_FIELD(mode->crtc_vtotal -
-                                       mode->crtc_vsync_end - interlaced,
+                                       mode->crtc_vsync_end,
                                        VC4_HDMI_VERTB_VBP));
 +      unsigned char gcp;
 +      bool gcp_en;
@@ -92,7 +92,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  
        HDMI_WRITE(HDMI_VEC_INTERFACE_XBAR, 0x354021);
        HDMI_WRITE(HDMI_HORZA,
-@@ -645,6 +672,39 @@ static void vc5_hdmi_set_timings(struct
+@@ -646,6 +673,39 @@ static void vc5_hdmi_set_timings(struct
        HDMI_WRITE(HDMI_VERTB0, vertb_even);
        HDMI_WRITE(HDMI_VERTB1, vertb);
  
@@ -132,7 +132,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
        HDMI_WRITE(HDMI_CLOCK_STOP, 0);
  }
  
-@@ -772,7 +832,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -773,7 +833,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
                   VC4_HDMI_SCHEDULER_CONTROL_IGNORE_VSYNC_PREDICTS);
  
        if (vc4_hdmi->variant->set_timings)
@@ -141,7 +141,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  }
  
  static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder,
-@@ -894,6 +954,14 @@ static int vc4_hdmi_encoder_atomic_check
+@@ -895,6 +955,14 @@ static int vc4_hdmi_encoder_atomic_check
                pixel_rate = mode->clock * 1000;
        }
  
index 667d283179da7677b64c1f0894e4bb147e9bab93..84969b391a6a6b7a834599647ab94b898c2359a8 100644 (file)
@@ -20,7 +20,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
-@@ -804,6 +804,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -805,6 +805,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
  
        vc4_hdmi_cec_update_clk_div(vc4_hdmi);
  
index cb76e1995e7f5ba474a1b7753bac030e88a07395..be0291f3a27ceb2a1c2c7a35ebcabb805c4fc435 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        value |= clk_cnt << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT;
        HDMI_WRITE(HDMI_CEC_CNTRL_1, value);
  }
-@@ -1870,6 +1870,7 @@ static int vc4_hdmi_init_resources(struc
+@@ -1871,6 +1871,7 @@ static int vc4_hdmi_init_resources(struc
                return PTR_ERR(vc4_hdmi->hsm_clock);
        }
        vc4_hdmi->audio_clock = vc4_hdmi->hsm_clock;
@@ -35,7 +35,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        return 0;
  }
-@@ -1964,6 +1965,12 @@ static int vc5_hdmi_init_resources(struc
+@@ -1965,6 +1966,12 @@ static int vc5_hdmi_init_resources(struc
                return PTR_ERR(vc4_hdmi->audio_clock);
        }
  
index 5447b33259e8a1d5e75fbf5f56d9ca53b933a816..48e58acb5df9241e0c2c6c3f96b591dcb53acde1 100644 (file)
@@ -19,7 +19,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -1574,15 +1574,22 @@ static int vc4_hdmi_audio_init(struct vc
+@@ -1575,15 +1575,22 @@ static int vc4_hdmi_audio_init(struct vc
  }
  
  #ifdef CONFIG_DRM_VC4_HDMI_CEC
@@ -48,7 +48,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
                cec_transmit_done(vc4_hdmi->cec_adap, CEC_TX_STATUS_OK,
                                  0, 0, 0, 0);
        } else {
-@@ -1596,6 +1603,19 @@ static irqreturn_t vc4_cec_irq_handler_t
+@@ -1597,6 +1604,19 @@ static irqreturn_t vc4_cec_irq_handler_t
        return IRQ_HANDLED;
  }
  
@@ -68,7 +68,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1)
  {
        struct drm_device *dev = vc4_hdmi->connector.dev;
-@@ -1620,31 +1640,55 @@ static void vc4_cec_read_msg(struct vc4_
+@@ -1621,31 +1641,55 @@ static void vc4_cec_read_msg(struct vc4_
        }
  }
  
index 1ca7c55cb022a44493379c88a36b4309a0aff1be..4d9919dbae92925fb60ad6ad4f2b15fd40edafcc 100644 (file)
@@ -20,7 +20,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -1725,9 +1725,11 @@ static int vc4_hdmi_cec_adap_enable(stru
+@@ -1726,9 +1726,11 @@ static int vc4_hdmi_cec_adap_enable(stru
                           ((3600 / usecs) << VC4_HDMI_CEC_CNT_TO_3600_US_SHIFT) |
                           ((3500 / usecs) << VC4_HDMI_CEC_CNT_TO_3500_US_SHIFT));
  
@@ -34,7 +34,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
                HDMI_WRITE(HDMI_CEC_CNTRL_5, val |
                           VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET);
        }
-@@ -1800,8 +1802,6 @@ static int vc4_hdmi_cec_init(struct vc4_
+@@ -1801,8 +1803,6 @@ static int vc4_hdmi_cec_init(struct vc4_
        cec_fill_conn_info_from_drm(&conn_info, &vc4_hdmi->connector);
        cec_s_conn_info(vc4_hdmi->cec_adap, &conn_info);
  
@@ -43,7 +43,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
        value = HDMI_READ(HDMI_CEC_CNTRL_1);
        /* Set the logical address to Unregistered */
        value |= VC4_HDMI_CEC_ADDR_MASK;
-@@ -1809,12 +1809,32 @@ static int vc4_hdmi_cec_init(struct vc4_
+@@ -1810,12 +1810,32 @@ static int vc4_hdmi_cec_init(struct vc4_
  
        vc4_hdmi_cec_update_clk_div(vc4_hdmi);
  
@@ -82,7 +82,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  
        ret = cec_register_adapter(vc4_hdmi->cec_adap, &pdev->dev);
        if (ret < 0)
-@@ -2289,6 +2309,7 @@ static const struct vc4_hdmi_variant bcm
+@@ -2290,6 +2310,7 @@ static const struct vc4_hdmi_variant bcm
                PHY_LANE_CK,
        },
        .unsupported_odd_h_timings      = true,
@@ -90,7 +90,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  
        .init_resources         = vc5_hdmi_init_resources,
        .csc_setup              = vc5_hdmi_csc_setup,
-@@ -2315,6 +2336,7 @@ static const struct vc4_hdmi_variant bcm
+@@ -2316,6 +2337,7 @@ static const struct vc4_hdmi_variant bcm
                PHY_LANE_2,
        },
        .unsupported_odd_h_timings      = true,
index 22f2b3f9345f8c52999c44fe9272dfad3cd3839b..e03562d54b2a686e48be352a55c3dbaea5e454d4 100644 (file)
@@ -19,7 +19,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
-@@ -1787,9 +1787,15 @@ static int vc4_hdmi_cec_init(struct vc4_
+@@ -1788,9 +1788,15 @@ static int vc4_hdmi_cec_init(struct vc4_
  {
        struct cec_connector_info conn_info;
        struct platform_device *pdev = vc4_hdmi->pdev;
index fe00de1ec8e8ead6c6300ac15f4ab01df5a2fcfd..0ed92457acab211a0fe431c7bc879be279531cfa 100644 (file)
@@ -61,7 +61,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  }
  
  static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder,
-@@ -2299,6 +2324,7 @@ static const struct vc4_hdmi_variant bcm
+@@ -2300,6 +2325,7 @@ static const struct vc4_hdmi_variant bcm
        .phy_rng_enable         = vc4_hdmi_phy_rng_enable,
        .phy_rng_disable        = vc4_hdmi_phy_rng_disable,
        .channel_map            = vc4_hdmi_channel_map,
@@ -69,7 +69,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  };
  
  static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = {
-@@ -2326,6 +2352,7 @@ static const struct vc4_hdmi_variant bcm
+@@ -2327,6 +2353,7 @@ static const struct vc4_hdmi_variant bcm
        .phy_rng_enable         = vc5_hdmi_phy_rng_enable,
        .phy_rng_disable        = vc5_hdmi_phy_rng_disable,
        .channel_map            = vc5_hdmi_channel_map,
@@ -77,7 +77,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  };
  
  static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = {
-@@ -2353,6 +2380,7 @@ static const struct vc4_hdmi_variant bcm
+@@ -2354,6 +2381,7 @@ static const struct vc4_hdmi_variant bcm
        .phy_rng_enable         = vc5_hdmi_phy_rng_enable,
        .phy_rng_disable        = vc5_hdmi_phy_rng_disable,
        .channel_map            = vc5_hdmi_channel_map,
index b7aa16ee408a8bd04cde262c4d9a62a83446294a..10f759861ea442acc13264fd6ca7fc058226caa4 100644 (file)
@@ -21,9 +21,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_dpi.c
 +++ b/drivers/gpu/drm/vc4/vc4_dpi.c
-@@ -178,8 +178,8 @@ static void vc4_dpi_encoder_enable(struc
-                       break;
-               }
+@@ -188,8 +188,8 @@ static void vc4_dpi_encoder_enable(struc
+               if (connector->display_info.bus_flags & DRM_BUS_FLAG_DE_LOW)
+                       dpi_c |= DPI_OUTPUT_ENABLE_INVERT;
        } else {
 -              /* Default to 24bit if no connector found. */
 -              dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB, DPI_FORMAT);
index 5d847bd87d00369c02fd74deefe6c10d3f3d315c..7c902c38b9c794a2ac602bc7dbd4c016b7ed5984 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -820,9 +820,20 @@ static int vc4_plane_mode_set(struct drm
+@@ -822,9 +822,20 @@ static int vc4_plane_mode_set(struct drm
                u32 tile_w, tile, x_off, pix_per_tile;
  
                if (fb->format->format == DRM_FORMAT_P030) {
@@ -37,7 +37,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                } else {
                        hvs_format = HVS_PIXEL_FORMAT_H264;
  
-@@ -842,17 +853,16 @@ static int vc4_plane_mode_set(struct drm
+@@ -844,17 +855,16 @@ static int vc4_plane_mode_set(struct drm
                        default:
                                break;
                        }
@@ -58,7 +58,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                /* Adjust the base pointer to the first pixel to be scanned
                 * out.
                 *
-@@ -868,9 +878,7 @@ static int vc4_plane_mode_set(struct drm
+@@ -870,9 +880,7 @@ static int vc4_plane_mode_set(struct drm
                        vc4_state->offsets[i] += src_y /
                                                 (i ? v_subsample : 1) *
                                                 tile_w;
index 83737337c2f12f5ca11d76d9b7d4b94c32cb87c6..344d25ccc4afa79f2a50bccfa7f7004d45376c1f 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -826,8 +826,9 @@ static int vc4_plane_mode_set(struct drm
+@@ -828,8 +828,9 @@ static int vc4_plane_mode_set(struct drm
                         * and bits[3:0] should be between 0 and 11, indicating which
                         * of the 12-pixels in that 128-bit word is the first pixel to be used
                         */
index 6688af4890f4c60b9cd208de1395901f996c13e4..be25e74fb3dedac41a82face2a40115abe915762 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
 +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -6564,9 +6564,7 @@ void amdgpu_dm_connector_init_helper(str
+@@ -6566,9 +6566,7 @@ void amdgpu_dm_connector_init_helper(str
        if (connector_type == DRM_MODE_CONNECTOR_HDMIA ||
            connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
            connector_type == DRM_MODE_CONNECTOR_eDP) {
index 74aac2acf18549bd4485b38a526546ce903755f5..725904927586fe4b0bab9792319618a60f25f9af 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
 +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -5509,25 +5509,6 @@ static int fill_hdr_info_packet(const st
+@@ -5511,25 +5511,6 @@ static int fill_hdr_info_packet(const st
        return 0;
  }
  
@@ -47,7 +47,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static int
  amdgpu_dm_connector_atomic_check(struct drm_connector *conn,
                                 struct drm_atomic_state *state)
-@@ -5543,7 +5524,7 @@ amdgpu_dm_connector_atomic_check(struct
+@@ -5545,7 +5526,7 @@ amdgpu_dm_connector_atomic_check(struct
        if (!crtc)
                return 0;
  
index 2cbe3841ef6ed640e843b951975f059277b1b24c..f4fcccbe0ccf224b00616acfa12d1f192f42e496 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -645,10 +645,10 @@ static const u32 colorspace_coeffs[2][DR
+@@ -647,10 +647,10 @@ static const u32 colorspace_coeffs[2][DR
                        SCALER_CSC1_ITR_R_709_3,
                        SCALER_CSC2_ITR_R_709_3,
                }, {
@@ -34,7 +34,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                }
        }, {
                /* Full range */
-@@ -663,10 +663,10 @@ static const u32 colorspace_coeffs[2][DR
+@@ -665,10 +665,10 @@ static const u32 colorspace_coeffs[2][DR
                        SCALER_CSC1_ITR_R_709_3_FR,
                        SCALER_CSC2_ITR_R_709_3_FR,
                }, {
@@ -49,7 +49,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                }
        }
  };
-@@ -1488,7 +1488,8 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1490,7 +1490,8 @@ struct drm_plane *vc4_plane_init(struct
  
        drm_plane_create_color_properties(plane,
                                          BIT(DRM_COLOR_YCBCR_BT601) |
@@ -61,7 +61,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                                          DRM_COLOR_YCBCR_BT709,
 --- a/drivers/gpu/drm/vc4/vc4_regs.h
 +++ b/drivers/gpu/drm/vc4/vc4_regs.h
-@@ -975,8 +975,10 @@ enum hvs_pixel_format {
+@@ -981,8 +981,10 @@ enum hvs_pixel_format {
  #define SCALER_CSC0_COEF_CR_OFS_SHIFT         0
  #define SCALER_CSC0_ITR_R_601_5                       0x00f00000
  #define SCALER_CSC0_ITR_R_709_3                       0x00f00000
@@ -72,7 +72,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  
  /* S2.8 contribution of Cb to Green */
  #define SCALER_CSC1_COEF_CB_GRN_MASK          VC4_MASK(31, 22)
-@@ -991,9 +993,11 @@ enum hvs_pixel_format {
+@@ -997,9 +999,11 @@ enum hvs_pixel_format {
  #define SCALER_CSC1_COEF_CR_BLU_MASK          VC4_MASK(1, 0)
  #define SCALER_CSC1_COEF_CR_BLU_SHIFT         0
  #define SCALER_CSC1_ITR_R_601_5                       0xe73304a8
@@ -87,7 +87,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  
  /* S2.8 contribution of Cb to Red */
  #define SCALER_CSC2_COEF_CB_RED_MASK          VC4_MASK(29, 20)
-@@ -1004,10 +1008,12 @@ enum hvs_pixel_format {
+@@ -1010,10 +1014,12 @@ enum hvs_pixel_format {
  /* S2.8 contribution of Cb to Blue */
  #define SCALER_CSC2_COEF_CB_BLU_MASK          VC4_MASK(19, 10)
  #define SCALER_CSC2_COEF_CB_BLU_SHIFT         10
index c4d44a8a7c2d6937f10f8223a1374746be116521..be22f7ec28590717a883502f7abefc240d3c5fd7 100644 (file)
@@ -75,7 +75,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  /***           runtime pm          ***/
  static int clk_pm_runtime_get(struct clk_core *core)
  {
-@@ -1430,10 +1438,14 @@ unsigned long clk_hw_round_rate(struct c
+@@ -1441,10 +1449,14 @@ unsigned long clk_hw_round_rate(struct c
  {
        int ret;
        struct clk_rate_request req;
@@ -90,7 +90,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        ret = clk_core_round_rate_nolock(hw->core, &req);
        if (ret)
                return 0;
-@@ -1454,6 +1466,7 @@ EXPORT_SYMBOL_GPL(clk_hw_round_rate);
+@@ -1465,6 +1477,7 @@ EXPORT_SYMBOL_GPL(clk_hw_round_rate);
  long clk_round_rate(struct clk *clk, unsigned long rate)
  {
        struct clk_rate_request req;
@@ -98,7 +98,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        int ret;
  
        if (!clk)
-@@ -1467,6 +1480,9 @@ long clk_round_rate(struct clk *clk, uns
+@@ -1478,6 +1491,9 @@ long clk_round_rate(struct clk *clk, uns
        clk_core_get_boundaries(clk->core, &req.min_rate, &req.max_rate);
        req.rate = rate;
  
@@ -108,7 +108,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        ret = clk_core_round_rate_nolock(clk->core, &req);
  
        if (clk->exclusive_count)
-@@ -1934,6 +1950,7 @@ static struct clk_core *clk_calc_new_rat
+@@ -1945,6 +1961,7 @@ static struct clk_core *clk_calc_new_rat
        unsigned long new_rate;
        unsigned long min_rate;
        unsigned long max_rate;
@@ -116,7 +116,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        int p_index = 0;
        long ret;
  
-@@ -1948,6 +1965,9 @@ static struct clk_core *clk_calc_new_rat
+@@ -1959,6 +1976,9 @@ static struct clk_core *clk_calc_new_rat
  
        clk_core_get_boundaries(core, &min_rate, &max_rate);
  
@@ -126,7 +126,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        /* find the closest rate and parent clk/rate */
        if (clk_core_can_round(core)) {
                struct clk_rate_request req;
-@@ -2152,6 +2172,7 @@ static unsigned long clk_core_req_round_
+@@ -2163,6 +2183,7 @@ static unsigned long clk_core_req_round_
  {
        int ret, cnt;
        struct clk_rate_request req;
@@ -134,7 +134,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        lockdep_assert_held(&prepare_lock);
  
-@@ -2166,6 +2187,9 @@ static unsigned long clk_core_req_round_
+@@ -2177,6 +2198,9 @@ static unsigned long clk_core_req_round_
        clk_core_get_boundaries(core, &req.min_rate, &req.max_rate);
        req.rate = req_rate;
  
@@ -144,7 +144,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        ret = clk_core_round_rate_nolock(core, &req);
  
        /* restore the protection */
-@@ -2259,6 +2283,9 @@ int clk_set_rate(struct clk *clk, unsign
+@@ -2270,6 +2294,9 @@ int clk_set_rate(struct clk *clk, unsign
  
        ret = clk_core_set_rate_nolock(clk->core, rate);
  
@@ -154,7 +154,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (clk->exclusive_count)
                clk_core_rate_protect(clk->core);
  
-@@ -2425,6 +2452,99 @@ int clk_set_max_rate(struct clk *clk, un
+@@ -2436,6 +2463,99 @@ int clk_set_max_rate(struct clk *clk, un
  EXPORT_SYMBOL_GPL(clk_set_max_rate);
  
  /**
@@ -254,7 +254,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
   * clk_get_parent - return the parent of a clk
   * @clk: the clk whose parent gets returned
   *
-@@ -3874,6 +3994,7 @@ __clk_register(struct device *dev, struc
+@@ -3885,6 +4005,7 @@ __clk_register(struct device *dev, struc
                goto fail_parents;
  
        INIT_HLIST_HEAD(&core->clks);
index 2b1da48f8b3c27d99280a84c2630e852fca8a93a..003d04b6aea888e8c84bc4cbb39b7c8725b11420 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        clk_disable_unprepare(vc4_hdmi->pixel_clock);
  
        ret = pm_runtime_put(&vc4_hdmi->pdev->dev);
-@@ -852,9 +855,9 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -853,9 +856,9 @@ static void vc4_hdmi_encoder_pre_crtc_co
         * pixel clock, but HSM ends up being the limiting factor.
         */
        hsm_rate = max_t(unsigned long, 120000000, (pixel_rate / 100) * 101);
@@ -38,7 +38,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                return;
        }
  
-@@ -866,10 +869,12 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -867,10 +870,12 @@ static void vc4_hdmi_encoder_pre_crtc_co
         * FIXME: When the pixel freq is 594MHz (4k60), this needs to be setup
         * at 300MHz.
         */
@@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                clk_disable_unprepare(vc4_hdmi->pixel_clock);
                return;
        }
-@@ -877,6 +882,9 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -878,6 +883,9 @@ static void vc4_hdmi_encoder_pre_crtc_co
        ret = clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
        if (ret) {
                DRM_ERROR("Failed to turn on pixel bvb clock: %d\n", ret);
index 0fb6c8d2ae22d7ccaf520103edc2d2a12a424cff..2b70e3ccdaba58eef87ad4b69d6ac92d6638427f 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/clk/clk.c
 +++ b/drivers/clk/clk.c
-@@ -2521,6 +2521,9 @@ void clk_request_done(struct clk_request
+@@ -2532,6 +2532,9 @@ void clk_request_done(struct clk_request
  {
        struct clk_core *core = req->clk->core;
  
index ca9bfb51c0f3c623209a60aa163fd0f55f5e60ff..89bf3699ac1f33d4a0305720bfa2c96cdf532a55 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
  #define HDMI_14_MAX_TMDS_CLK   (340 * 1000 * 1000)
  
-@@ -816,7 +815,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -817,7 +816,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
                conn_state_to_vc4_hdmi_conn_state(conn_state);
        struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
@@ -32,7 +32,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        int ret;
  
        ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
-@@ -865,12 +864,14 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -866,12 +865,14 @@ static void vc4_hdmi_encoder_pre_crtc_co
  
        vc4_hdmi_cec_update_clk_div(vc4_hdmi);
  
index 557f9db3b98e98b7fa13212206945992e7744cc9..83fabf10d5b223fec4d2a3b6d9b88119fa5ca4ae 100644 (file)
@@ -106,7 +106,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  }
  
  static void vc4_hdmi_encoder_post_crtc_powerdown(struct drm_encoder *encoder,
-@@ -982,6 +1045,7 @@ static void vc4_hdmi_encoder_post_crtc_e
+@@ -983,6 +1046,7 @@ static void vc4_hdmi_encoder_post_crtc_e
        }
  
        vc4_hdmi_recenter_fifo(vc4_hdmi);
index 61aa604ba12ea14c4ec35c1a83ac41e0176a3cd3..f26fe2326718b223855c18ac4092504ee43bb941 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
        clk_disable_unprepare(vc4_hdmi->hsm_clock);
        clk_request_done(vc4_hdmi->hsm_req);
        clk_disable_unprepare(vc4_hdmi->pixel_clock);
-@@ -934,7 +935,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -935,7 +936,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
        else
                bvb_rate = 75000000;
  
@@ -33,7 +33,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
        if (IS_ERR(vc4_hdmi->bvb_req)) {
                DRM_ERROR("Failed to set pixel bvb clock rate: %ld\n", PTR_ERR(vc4_hdmi->bvb_req));
                clk_request_done(vc4_hdmi->hsm_req);
-@@ -946,7 +948,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -947,7 +949,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
        ret = clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
        if (ret) {
                DRM_ERROR("Failed to turn on pixel bvb clock: %d\n", ret);
index ed394c19a83335539046f59f9fc6963433a5dd22..4b81be57c34c2fa2d0073651373255d5d55b1e14 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/clk/clk.c
 +++ b/drivers/clk/clk.c
-@@ -2519,10 +2519,11 @@ EXPORT_SYMBOL_GPL(clk_request_start);
+@@ -2530,10 +2530,11 @@ EXPORT_SYMBOL_GPL(clk_request_start);
   */
  void clk_request_done(struct clk_request *req)
  {
index 83c1b6ff6e8b1b68e89ee225fa245f8957a0aafb..2a9778401ff1ada06473b68d808120d6146a3ce8 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/clk/clk.c
 +++ b/drivers/clk/clk.c
-@@ -1333,6 +1333,8 @@ static int clk_core_determine_round_nolo
+@@ -1344,6 +1344,8 @@ static int clk_core_determine_round_nolo
        if (!core)
                return 0;
  
index be832f61b5bdf74efbe61ecf4f07dc70be701527..f471520b994198ba74861914fa04036a103acddf 100644 (file)
@@ -15,7 +15,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
-@@ -854,31 +854,16 @@ static void vc4_hdmi_recenter_fifo(struc
+@@ -855,31 +855,16 @@ static void vc4_hdmi_recenter_fifo(struc
                  "VC4_HDMI_FIFO_CTL_RECENTER_DONE");
  }
  
index 981b11ad8bb7cb4af8c6248f9f15b9c08a2dd9ab..7da294d2a6815605c76914f3c9e591e5d90defff 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
-@@ -1690,6 +1690,46 @@ static int vc4_hdmi_audio_init(struct vc
+@@ -1691,6 +1691,46 @@ static int vc4_hdmi_audio_init(struct vc
  
  }
  
@@ -65,7 +65,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  #ifdef CONFIG_DRM_VC4_HDMI_CEC
  static irqreturn_t vc4_cec_irq_handler_rx_thread(int irq, void *priv)
  {
-@@ -2318,6 +2358,10 @@ static int vc4_hdmi_bind(struct device *
+@@ -2319,6 +2359,10 @@ static int vc4_hdmi_bind(struct device *
        if (ret)
                goto err_destroy_encoder;
  
index cd5a74b06b9eb69bb589a05a2b25434db5e9db33..3b922ab45673e64340849db7c6af584e6d281ef1 100644 (file)
@@ -70,7 +70,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder,
                                               struct drm_atomic_state *state)
  {
-@@ -2276,6 +2300,7 @@ static int vc4_hdmi_bind(struct device *
+@@ -2277,6 +2301,7 @@ static int vc4_hdmi_bind(struct device *
        vc4_hdmi = devm_kzalloc(dev, sizeof(*vc4_hdmi), GFP_KERNEL);
        if (!vc4_hdmi)
                return -ENOMEM;
index b4a815f41273f246807c3b73451dd431022459fb..682f4b286152d94174f6e1a2a954f538772252a2 100644 (file)
@@ -11,7 +11,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
-@@ -1729,6 +1729,7 @@ static int vc4_hdmi_hotplug_init(struct
+@@ -1730,6 +1730,7 @@ static int vc4_hdmi_hotplug_init(struct
  {
        struct platform_device *pdev = vc4_hdmi->pdev;
        struct device *dev = &pdev->dev;
index 72b510d1302860748e9d83719cf1939ec40583a2..59400f4ee4b74b2f9f8f4eb375917429ec75027e 100644 (file)
@@ -65,7 +65,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        vc4_hdmi_write_infoframe(encoder, &frame);
  }
  
-@@ -1217,18 +1218,10 @@ static inline struct vc4_hdmi *dai_to_hd
+@@ -1218,18 +1219,10 @@ static inline struct vc4_hdmi *dai_to_hd
        return snd_soc_card_get_drvdata(card);
  }
  
@@ -86,7 +86,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        /*
         * If the HDMI encoder hasn't probed, or the encoder is
-@@ -1238,15 +1231,18 @@ static int vc4_hdmi_audio_startup(struct
+@@ -1239,15 +1232,18 @@ static int vc4_hdmi_audio_startup(struct
                                VC4_HDMI_RAM_PACKET_ENABLE))
                return -ENODEV;
  
@@ -112,7 +112,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        return 0;
  }
  
-@@ -1266,17 +1262,20 @@ static void vc4_hdmi_audio_reset(struct
+@@ -1267,17 +1263,20 @@ static void vc4_hdmi_audio_reset(struct
        HDMI_WRITE(HDMI_MAI_CTL, VC4_HD_MAI_CTL_FLUSH);
  }
  
@@ -140,7 +140,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  }
  
  static int sample_rate_to_mai_fmt(int samplerate)
-@@ -1318,42 +1317,35 @@ static int sample_rate_to_mai_fmt(int sa
+@@ -1319,42 +1318,35 @@ static int sample_rate_to_mai_fmt(int sa
  }
  
  /* HDMI audio codec callbacks */
@@ -198,7 +198,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                mai_audio_format = VC4_HDMI_MAI_FORMAT_HBR;
        else
                mai_audio_format = VC4_HDMI_MAI_FORMAT_PCM;
-@@ -1390,148 +1382,12 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -1391,148 +1383,12 @@ static int vc4_hdmi_audio_prepare(struct
        HDMI_WRITE(HDMI_AUDIO_PACKET_CONFIG, audio_packet_config);
        vc4_hdmi_set_n_cts(vc4_hdmi);
  
@@ -348,7 +348,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static const struct snd_soc_dapm_widget vc4_hdmi_audio_widgets[] = {
        SND_SOC_DAPM_OUTPUT("TX"),
  };
-@@ -1542,8 +1398,6 @@ static const struct snd_soc_dapm_route v
+@@ -1543,8 +1399,6 @@ static const struct snd_soc_dapm_route v
  
  static const struct snd_soc_component_driver vc4_hdmi_audio_component_drv = {
        .name                   = "vc4-hdmi-codec-dai-component",
@@ -357,7 +357,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        .dapm_widgets           = vc4_hdmi_audio_widgets,
        .num_dapm_widgets       = ARRAY_SIZE(vc4_hdmi_audio_widgets),
        .dapm_routes            = vc4_hdmi_audio_routes,
-@@ -1554,28 +1408,6 @@ static const struct snd_soc_component_dr
+@@ -1555,28 +1409,6 @@ static const struct snd_soc_component_dr
        .non_legacy_dai_naming  = 1,
  };
  
@@ -386,7 +386,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static const struct snd_soc_component_driver vc4_hdmi_audio_cpu_dai_comp = {
        .name = "vc4-hdmi-cpu-dai-component",
  };
-@@ -1602,7 +1434,6 @@ static struct snd_soc_dai_driver vc4_hdm
+@@ -1603,7 +1435,6 @@ static struct snd_soc_dai_driver vc4_hdm
                         SNDRV_PCM_RATE_192000,
                .formats = SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE,
        },
@@ -394,7 +394,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  };
  
  static const struct snd_dmaengine_pcm_config pcm_conf = {
-@@ -1610,6 +1441,31 @@ static const struct snd_dmaengine_pcm_co
+@@ -1611,6 +1442,31 @@ static const struct snd_dmaengine_pcm_co
        .prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config,
  };
  
@@ -426,7 +426,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi)
  {
        const struct vc4_hdmi_register *mai_data =
-@@ -1617,6 +1473,7 @@ static int vc4_hdmi_audio_init(struct vc
+@@ -1618,6 +1474,7 @@ static int vc4_hdmi_audio_init(struct vc
        struct snd_soc_dai_link *dai_link = &vc4_hdmi->audio.link;
        struct snd_soc_card *card = &vc4_hdmi->audio.card;
        struct device *dev = &vc4_hdmi->pdev->dev;
@@ -434,7 +434,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        const __be32 *addr;
        int index, len;
        int ret;
-@@ -1650,11 +1507,6 @@ static int vc4_hdmi_audio_init(struct vc
+@@ -1651,11 +1508,6 @@ static int vc4_hdmi_audio_init(struct vc
        vc4_hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
        vc4_hdmi->audio.dma_data.maxburst = 2;
  
@@ -446,7 +446,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        ret = devm_snd_dmaengine_pcm_register(dev, &pcm_conf, 0);
        if (ret) {
                dev_err(dev, "Could not register PCM component: %d\n", ret);
-@@ -1668,12 +1520,13 @@ static int vc4_hdmi_audio_init(struct vc
+@@ -1669,12 +1521,13 @@ static int vc4_hdmi_audio_init(struct vc
                return ret;
        }
  
@@ -466,7 +466,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        }
  
        dai_link->cpus          = &vc4_hdmi->audio.cpu;
-@@ -1686,9 +1539,9 @@ static int vc4_hdmi_audio_init(struct vc
+@@ -1687,9 +1540,9 @@ static int vc4_hdmi_audio_init(struct vc
  
        dai_link->name = "MAI";
        dai_link->stream_name = "MAI PCM";
index 7bac6185163ab5c737c83e3ce99b1a28533842e3..407b4cfaaf642f1fb801e433655bda4fcb681413 100644 (file)
@@ -11,7 +11,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
-@@ -1167,12 +1167,13 @@ static u32 vc5_hdmi_channel_map(struct v
+@@ -1168,12 +1168,13 @@ static u32 vc5_hdmi_channel_map(struct v
  }
  
  /* HDMI audio codec callbacks */
@@ -27,7 +27,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                                    VC4_HD_MAI_SMP_N_MASK >>
                                    VC4_HD_MAI_SMP_N_SHIFT,
                                    (VC4_HD_MAI_SMP_M_MASK >>
-@@ -1184,12 +1185,11 @@ static void vc4_hdmi_audio_set_mai_clock
+@@ -1185,12 +1186,11 @@ static void vc4_hdmi_audio_set_mai_clock
                   VC4_SET_FIELD(m - 1, VC4_HD_MAI_SMP_M));
  }
  
@@ -41,7 +41,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        u32 n, cts;
        u64 tmp;
  
-@@ -1323,27 +1323,25 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -1324,27 +1324,25 @@ static int vc4_hdmi_audio_prepare(struct
  {
        struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
        struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base;
@@ -75,7 +75,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (params->iec.status[0] & IEC958_AES0_NONAUDIO &&
            params->channels == 8)
                mai_audio_format = VC4_HDMI_MAI_FORMAT_HBR;
-@@ -1361,7 +1359,7 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -1362,7 +1360,7 @@ static int vc4_hdmi_audio_prepare(struct
                VC4_HDMI_AUDIO_PACKET_ZERO_DATA_ON_INACTIVE_CHANNELS |
                VC4_SET_FIELD(0x8, VC4_HDMI_AUDIO_PACKET_B_FRAME_IDENTIFIER);
  
@@ -84,7 +84,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        audio_packet_config |= VC4_SET_FIELD(channel_mask,
                                             VC4_HDMI_AUDIO_PACKET_CEA_MASK);
  
-@@ -1380,7 +1378,7 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -1381,7 +1379,7 @@ static int vc4_hdmi_audio_prepare(struct
        channel_map = vc4_hdmi->variant->channel_map(vc4_hdmi, channel_mask);
        HDMI_WRITE(HDMI_MAI_CHANNEL_MAP, channel_map);
        HDMI_WRITE(HDMI_AUDIO_PACKET_CONFIG, audio_packet_config);
index a9168f2f6cbca2603230e8ea83b01e3e874d86b7..a3bea8544292be9bdd7bea0c2586c8ca16d4cc9d 100644 (file)
@@ -109,7 +109,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                 */
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -535,9 +535,6 @@ static void vc4_plane_calc_load(struct d
+@@ -537,9 +537,6 @@ static void vc4_plane_calc_load(struct d
        struct vc4_dev *vc4;
  
        vc4 = to_vc4_dev(state->plane->dev);
index 2e62f190e5ec718a0a3cbe7a236f47ba0d637fbc..2f1640742554004dc670d30c567b7fbbd03c3e10 100644 (file)
@@ -169,27 +169,27 @@ Signed-off-by: Joerg Quinten <aBUGSworstnightmare@gmail.com>
        }, {
 --- a/drivers/gpu/drm/vc4/vc4_dpi.c
 +++ b/drivers/gpu/drm/vc4/vc4_dpi.c
-@@ -165,10 +165,20 @@ static void vc4_dpi_encoder_enable(struc
-                       dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_2,
-                                              DPI_FORMAT);
-                       break;
-+              case MEDIA_BUS_FMT_BGR666_1X24_CPADHI:
-+                      dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_2,
-+                                             DPI_FORMAT);
-+                      dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR, DPI_ORDER);
-+                      break;
-               case MEDIA_BUS_FMT_RGB666_1X18:
-                       dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
-                                              DPI_FORMAT);
-                       break;
-+              case MEDIA_BUS_FMT_BGR666_1X18:
-+                      dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
-+                                             DPI_FORMAT);
-+                      dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR, DPI_ORDER);
-+                      break;
-               case MEDIA_BUS_FMT_RGB565_1X16:
-                       dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_3,
-                                              DPI_FORMAT);
+@@ -167,10 +167,20 @@ static void vc4_dpi_encoder_enable(struc
+                               dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_2,
+                                                      DPI_FORMAT);
+                               break;
++                      case MEDIA_BUS_FMT_BGR666_1X24_CPADHI:
++                              dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_2,
++                                                     DPI_FORMAT);
++                              dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR, DPI_ORDER);
++                              break;
+                       case MEDIA_BUS_FMT_RGB666_1X18:
+                               dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
+                                                      DPI_FORMAT);
+                               break;
++                      case MEDIA_BUS_FMT_BGR666_1X18:
++                              dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
++                                                     DPI_FORMAT);
++                              dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR, DPI_ORDER);
++                              break;
+                       case MEDIA_BUS_FMT_RGB565_1X16:
+                               dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_1,
+                                                      DPI_FORMAT);
 --- a/include/uapi/linux/media-bus-format.h
 +++ b/include/uapi/linux/media-bus-format.h
 @@ -34,7 +34,7 @@
index 03493aaa1c5cb15bc46c11872dace4e95197a538..91b2bca53bc07f71f91ee28c1f7d0b6b156e04b7 100644 (file)
@@ -52,7 +52,7 @@ Signed-off-by: Tim Gover <tim.gover@raspberrypi.com>
        clk_disable_unprepare(vc4_hdmi->pixel_bvb_clock);
        if (vc4_hdmi->bvb_req)
                clk_request_done(vc4_hdmi->bvb_req);
-@@ -1013,6 +1013,7 @@ static void vc4_hdmi_encoder_post_crtc_e
+@@ -1014,6 +1014,7 @@ static void vc4_hdmi_encoder_post_crtc_e
  
        HDMI_WRITE(HDMI_VID_CTL,
                   VC4_HD_VID_CTL_ENABLE |
index fc73a7e42ede5416ae8d0945d7e628b679e82aa7..42db9a99a0b7eeaa2b4894bda7b9bd1a50c0f7c2 100644 (file)
@@ -37,7 +37,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
-@@ -911,23 +911,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -912,23 +912,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
                return;
        }
  
@@ -62,7 +62,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        vc4_hdmi->hsm_req = clk_request_start(vc4_hdmi->hsm_clock, hsm_rate);
        if (IS_ERR(vc4_hdmi->hsm_req)) {
                DRM_ERROR("Failed to set HSM clock rate: %ld\n", PTR_ERR(vc4_hdmi->hsm_req));
-@@ -1143,6 +1127,39 @@ static const struct drm_encoder_helper_f
+@@ -1144,6 +1128,39 @@ static const struct drm_encoder_helper_f
        .enable = vc4_hdmi_encoder_enable,
  };
  
@@ -102,7 +102,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static u32 vc4_hdmi_channel_map(struct vc4_hdmi *vc4_hdmi, u32 channel_mask)
  {
        int i;
-@@ -2337,6 +2354,7 @@ static const struct vc4_hdmi_variant bcm
+@@ -2338,6 +2355,7 @@ static const struct vc4_hdmi_variant bcm
        .phy_disable            = vc4_hdmi_phy_disable,
        .phy_rng_enable         = vc4_hdmi_phy_rng_enable,
        .phy_rng_disable        = vc4_hdmi_phy_rng_disable,
@@ -110,7 +110,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        .channel_map            = vc4_hdmi_channel_map,
        .supports_hdr           = false,
  };
-@@ -2365,6 +2383,7 @@ static const struct vc4_hdmi_variant bcm
+@@ -2366,6 +2384,7 @@ static const struct vc4_hdmi_variant bcm
        .phy_disable            = vc5_hdmi_phy_disable,
        .phy_rng_enable         = vc5_hdmi_phy_rng_enable,
        .phy_rng_disable        = vc5_hdmi_phy_rng_disable,
@@ -118,7 +118,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        .channel_map            = vc5_hdmi_channel_map,
        .supports_hdr           = true,
  };
-@@ -2393,6 +2412,7 @@ static const struct vc4_hdmi_variant bcm
+@@ -2394,6 +2413,7 @@ static const struct vc4_hdmi_variant bcm
        .phy_disable            = vc5_hdmi_phy_disable,
        .phy_rng_enable         = vc5_hdmi_phy_rng_enable,
        .phy_rng_disable        = vc5_hdmi_phy_rng_disable,
index 714977627783533efe7148342e1c21c83b7032c4..9a69254d85aa44a757368a131ff233e81772868b 100644 (file)
@@ -16,7 +16,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
-@@ -903,6 +903,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -904,6 +904,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
        ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
        if (ret < 0) {
                DRM_ERROR("Failed to retain power domain: %d\n", ret);
@@ -24,7 +24,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                return;
        }
  
-@@ -910,12 +911,14 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -911,12 +912,14 @@ static void vc4_hdmi_encoder_pre_crtc_co
        ret = clk_set_rate(vc4_hdmi->pixel_clock, pixel_rate);
        if (ret) {
                DRM_ERROR("Failed to set pixel clock rate: %d\n", ret);
@@ -39,7 +39,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                return;
        }
  
-@@ -923,6 +926,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -924,6 +927,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
        vc4_hdmi->hsm_req = clk_request_start(vc4_hdmi->hsm_clock, hsm_rate);
        if (IS_ERR(vc4_hdmi->hsm_req)) {
                DRM_ERROR("Failed to set HSM clock rate: %ld\n", PTR_ERR(vc4_hdmi->hsm_req));
@@ -47,7 +47,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                return;
        }
  
-@@ -944,6 +948,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -945,6 +949,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
                clk_request_done(vc4_hdmi->hsm_req);
                clk_disable_unprepare(vc4_hdmi->hsm_clock);
                clk_disable_unprepare(vc4_hdmi->pixel_clock);
@@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                return;
        }
  
-@@ -955,6 +960,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -956,6 +961,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
                clk_request_done(vc4_hdmi->hsm_req);
                clk_disable_unprepare(vc4_hdmi->hsm_clock);
                clk_disable_unprepare(vc4_hdmi->pixel_clock);
index 0c01a4eded1319595b15f4fac32f5f22674e32b6..5a61dbe2535c6d6a687dedb4e4a77cdd4830a4b1 100644 (file)
@@ -15,7 +15,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
-@@ -1756,7 +1756,7 @@ static irqreturn_t vc4_cec_irq_handler(i
+@@ -1757,7 +1757,7 @@ static irqreturn_t vc4_cec_irq_handler(i
        return ret;
  }
  
@@ -24,7 +24,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  {
        struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
        /* clock period in microseconds */
-@@ -1769,38 +1769,53 @@ static int vc4_hdmi_cec_adap_enable(stru
+@@ -1770,38 +1770,53 @@ static int vc4_hdmi_cec_adap_enable(stru
        val |= ((4700 / usecs) << VC4_HDMI_CEC_CNT_TO_4700_US_SHIFT) |
               ((4500 / usecs) << VC4_HDMI_CEC_CNT_TO_4500_US_SHIFT);
  
index 5a5f8c181b855c533435413c36c44a47fd52526f..0a30be8579a4bbbbe3d5fef160c737408db4e48b 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
-@@ -926,6 +926,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -927,6 +927,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
        vc4_hdmi->hsm_req = clk_request_start(vc4_hdmi->hsm_clock, hsm_rate);
        if (IS_ERR(vc4_hdmi->hsm_req)) {
                DRM_ERROR("Failed to set HSM clock rate: %ld\n", PTR_ERR(vc4_hdmi->hsm_req));
index 6582a31a911f0274cc6e763b475eb7e0d507a064..d12706946a6b6dea13c0217b974ce0bce6e81484 100644 (file)
@@ -25,7 +25,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
-@@ -1897,25 +1897,23 @@ static int vc4_hdmi_cec_init(struct vc4_
+@@ -1898,25 +1898,23 @@ static int vc4_hdmi_cec_init(struct vc4_
        vc4_hdmi_cec_update_clk_div(vc4_hdmi);
  
        if (vc4_hdmi->variant->external_irq_controller) {
@@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                                                vc4_cec_irq_handler,
                                                vc4_cec_irq_handler_thread, 0,
                                                "vc4 hdmi cec", vc4_hdmi);
-@@ -1925,10 +1923,20 @@ static int vc4_hdmi_cec_init(struct vc4_
+@@ -1926,10 +1924,20 @@ static int vc4_hdmi_cec_init(struct vc4_
  
        ret = cec_register_adapter(vc4_hdmi->cec_adap, &pdev->dev);
        if (ret < 0)
@@ -77,7 +77,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  err_delete_cec_adap:
        cec_delete_adapter(vc4_hdmi->cec_adap);
  
-@@ -1937,6 +1945,15 @@ err_delete_cec_adap:
+@@ -1938,6 +1946,15 @@ err_delete_cec_adap:
  
  static void vc4_hdmi_cec_exit(struct vc4_hdmi *vc4_hdmi)
  {
index ad36850532d355ecb555ce9f19fd6bcef971cc03..53cc2fd74f9943cc9a19e5220cd3e8067ea4146b 100644 (file)
@@ -25,7 +25,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
-@@ -1612,26 +1612,28 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
+@@ -1613,26 +1613,28 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
  static int vc4_hdmi_hotplug_init(struct vc4_hdmi *vc4_hdmi)
  {
        struct platform_device *pdev = vc4_hdmi->pdev;
@@ -66,7 +66,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
                connector->polled = DRM_CONNECTOR_POLL_HPD;
        }
-@@ -1639,6 +1641,16 @@ static int vc4_hdmi_hotplug_init(struct
+@@ -1640,6 +1642,16 @@ static int vc4_hdmi_hotplug_init(struct
        return 0;
  }
  
@@ -83,7 +83,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  #ifdef CONFIG_DRM_VC4_HDMI_CEC
  static irqreturn_t vc4_cec_irq_handler_rx_thread(int irq, void *priv)
  {
-@@ -2306,7 +2318,7 @@ static int vc4_hdmi_bind(struct device *
+@@ -2307,7 +2319,7 @@ static int vc4_hdmi_bind(struct device *
  
        ret = vc4_hdmi_cec_init(vc4_hdmi);
        if (ret)
@@ -92,7 +92,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        ret = vc4_hdmi_audio_init(vc4_hdmi);
        if (ret)
-@@ -2320,6 +2332,8 @@ static int vc4_hdmi_bind(struct device *
+@@ -2321,6 +2333,8 @@ static int vc4_hdmi_bind(struct device *
  
  err_free_cec:
        vc4_hdmi_cec_exit(vc4_hdmi);
@@ -101,7 +101,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  err_destroy_conn:
        vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
  err_destroy_encoder:
-@@ -2361,6 +2375,7 @@ static void vc4_hdmi_unbind(struct devic
+@@ -2362,6 +2376,7 @@ static void vc4_hdmi_unbind(struct devic
        kfree(vc4_hdmi->hd_regset.regs);
  
        vc4_hdmi_cec_exit(vc4_hdmi);
index 6297691d5786c5dfd57dc1b234d21ee4bf98076f..847e38433532b8c828bcb33bdc4b6a46beaa4106 100644 (file)
@@ -24,7 +24,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
-@@ -1603,7 +1603,7 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
+@@ -1604,7 +1604,7 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
        struct vc4_hdmi *vc4_hdmi = priv;
        struct drm_device *dev = vc4_hdmi->connector.dev;
  
index a0b38083ca517e5e2c5d0bb3f8b2660ee07b0f0e..d0bd2f748fbe3fb861691b9ed0f2606e1d52a272 100644 (file)
@@ -52,7 +52,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201203074624.721559-1-maxi
        if (ret) {
                DRM_ERROR("Failed to wait for infoframe to go idle: %d\n", ret);
                return;
-@@ -1286,7 +1290,7 @@ static void vc4_hdmi_audio_reset(struct
+@@ -1287,7 +1291,7 @@ static void vc4_hdmi_audio_reset(struct
        int ret;
  
        vc4_hdmi->audio.streaming = false;
index 55fa8765318524e4dbd591a9f082eeb9c765545b..e430052b81a9c4bf54d626f51135975a286c0bdc 100644 (file)
@@ -16,7 +16,7 @@ Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
 
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -1364,11 +1364,6 @@ static const struct drm_plane_helper_fun
+@@ -1366,11 +1366,6 @@ static const struct drm_plane_helper_fun
        .atomic_async_update = vc4_plane_atomic_async_update,
  };
  
@@ -28,7 +28,7 @@ Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
  static bool vc4_format_mod_supported(struct drm_plane *plane,
                                     uint32_t format,
                                     uint64_t modifier)
-@@ -1426,7 +1421,7 @@ static bool vc4_format_mod_supported(str
+@@ -1428,7 +1423,7 @@ static bool vc4_format_mod_supported(str
  static const struct drm_plane_funcs vc4_plane_funcs = {
        .update_plane = drm_atomic_helper_update_plane,
        .disable_plane = drm_atomic_helper_disable_plane,
index d1ed6740d589cb78b966dc15998298d82071b48e..72e1cf6987a2af6beee571ef6ee28be9f7312a29 100644 (file)
@@ -16,7 +16,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20210318161328.1471556-2-max
 
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -1227,7 +1227,6 @@ static void vc4_plane_atomic_async_updat
+@@ -1229,7 +1229,6 @@ static void vc4_plane_atomic_async_updat
        plane->state->src_y = state->src_y;
        plane->state->src_w = state->src_w;
        plane->state->src_h = state->src_h;
index 1d008a8d428cd404f26022f4a896845cc5685086..2676f993c7d887d7f97c20d9c4d63928929a5b07 100644 (file)
@@ -42,7 +42,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201211114237.213288-2-tomi
 
 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
 +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
-@@ -5025,7 +5025,6 @@ static void dm_disable_vblank(struct drm
+@@ -5027,7 +5027,6 @@ static void dm_disable_vblank(struct drm
  static const struct drm_crtc_funcs amdgpu_dm_crtc_funcs = {
        .reset = dm_crtc_reset_state,
        .destroy = amdgpu_dm_crtc_destroy,
index 4489ca2d780f89030dc01152880184cd552761ce..b8d53685b65fe029f321b64a30f812461852a749 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
-@@ -2296,6 +2296,18 @@ static int vc4_hdmi_bind(struct device *
+@@ -2297,6 +2297,18 @@ static int vc4_hdmi_bind(struct device *
        if (ret)
                goto err_put_ddc;
  
@@ -37,7 +37,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (vc4_hdmi->variant->reset)
                vc4_hdmi->variant->reset(vc4_hdmi);
  
-@@ -2307,8 +2319,6 @@ static int vc4_hdmi_bind(struct device *
+@@ -2308,8 +2320,6 @@ static int vc4_hdmi_bind(struct device *
                clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
        }
  
@@ -46,7 +46,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS);
        drm_encoder_helper_add(encoder, &vc4_hdmi_encoder_helper_funcs);
  
-@@ -2332,6 +2342,8 @@ static int vc4_hdmi_bind(struct device *
+@@ -2333,6 +2343,8 @@ static int vc4_hdmi_bind(struct device *
                             vc4_hdmi_debugfs_regs,
                             vc4_hdmi);
  
@@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        return 0;
  
  err_free_cec:
-@@ -2342,6 +2354,7 @@ err_destroy_conn:
+@@ -2343,6 +2355,7 @@ err_destroy_conn:
        vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
  err_destroy_encoder:
        drm_encoder_cleanup(encoder);
diff --git a/target/linux/bmips/patches-5.10/022-v5.12-spi-bcm63xx-hsspi-fix-pm_runtime.patch b/target/linux/bmips/patches-5.10/022-v5.12-spi-bcm63xx-hsspi-fix-pm_runtime.patch
deleted file mode 100644 (file)
index 47c7565..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-From 216e8e80057a9f0b6366327881acf88eaf9f1fd4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
-Date: Tue, 23 Feb 2021 16:18:51 +0100
-Subject: [PATCH 2/2] spi: bcm63xx-hsspi: fix pm_runtime
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The driver sets auto_runtime_pm to true, but it doesn't call
-pm_runtime_enable(), which results in "Failed to power device" when PM support
-is enabled.
-
-Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
-Link: https://lore.kernel.org/r/20210223151851.4110-3-noltari@gmail.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
----
- drivers/spi/spi-bcm63xx-hsspi.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
---- a/drivers/spi/spi-bcm63xx-hsspi.c
-+++ b/drivers/spi/spi-bcm63xx-hsspi.c
-@@ -21,6 +21,7 @@
- #include <linux/mutex.h>
- #include <linux/of.h>
- #include <linux/reset.h>
-+#include <linux/pm_runtime.h>
- #define HSSPI_GLOBAL_CTRL_REG                 0x0
- #define GLOBAL_CTRL_CS_POLARITY_SHIFT         0
-@@ -439,13 +440,17 @@ static int bcm63xx_hsspi_probe(struct pl
-       if (ret)
-               goto out_put_master;
-+      pm_runtime_enable(&pdev->dev);
-+
-       /* register and we are done */
-       ret = devm_spi_register_master(dev, master);
-       if (ret)
--              goto out_put_master;
-+              goto out_pm_disable;
-       return 0;
-+out_pm_disable:
-+      pm_runtime_disable(&pdev->dev);
- out_put_master:
-       spi_master_put(master);
- out_disable_pll_clk:
index c8c9b305a5efecb2bf72407d5eec26aef93c4e81..efdba3bece70a1bbc86f2b85f9237f4a6be9b217 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -509,7 +509,7 @@ KBUILD_LDFLAGS_MODULE :=
+@@ -516,7 +516,7 @@ KBUILD_LDFLAGS_MODULE :=
  KBUILD_LDFLAGS :=
  CLANG_FLAGS :=
  
index 16c6f3fdc4fe47bd7020fbd7cebac49666e1d644..6b9fab9c681071f4f1cd1a05a3d769a5d1a9694d 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -6810,15 +6810,10 @@ void __netif_napi_del(struct napi_struct
+@@ -6812,15 +6812,10 @@ void __netif_napi_del(struct napi_struct
  }
  EXPORT_SYMBOL(__netif_napi_del);
  
@@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        weight = n->weight;
  
        /* This NAPI_STATE_SCHED test is for avoiding a race
-@@ -6838,7 +6833,7 @@ static int napi_poll(struct napi_struct
+@@ -6840,7 +6835,7 @@ static int napi_poll(struct napi_struct
                            n->poll, work, weight);
  
        if (likely(work < weight))
@@ -44,7 +44,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        /* Drivers must not modify the NAPI state if they
         * consume the entire weight.  In such cases this code
-@@ -6847,7 +6842,7 @@ static int napi_poll(struct napi_struct
+@@ -6849,7 +6844,7 @@ static int napi_poll(struct napi_struct
         */
        if (unlikely(napi_disable_pending(n))) {
                napi_complete(n);
@@ -53,7 +53,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        }
  
        if (n->gro_bitmask) {
-@@ -6865,12 +6860,29 @@ static int napi_poll(struct napi_struct
+@@ -6867,12 +6862,29 @@ static int napi_poll(struct napi_struct
        if (unlikely(!list_empty(&n->poll_list))) {
                pr_warn_once("%s: Budget exhausted after napi rescheduled\n",
                             n->dev ? n->dev->name : "backlog");
index 3976e189deba6845b06bbcdbfe27ec5d2d64cd9a..9124af8fbf4441a55252cfb86160fe8e63f07e38 100644 (file)
@@ -131,7 +131,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  static int __dev_open(struct net_device *dev, struct netlink_ext_ack *extack)
  {
        const struct net_device_ops *ops = dev->netdev_ops;
-@@ -4272,6 +4294,21 @@ int gro_normal_batch __read_mostly = 8;
+@@ -4274,6 +4296,21 @@ int gro_normal_batch __read_mostly = 8;
  static inline void ____napi_schedule(struct softnet_data *sd,
                                     struct napi_struct *napi)
  {
@@ -153,7 +153,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        list_add_tail(&napi->poll_list, &sd->poll_list);
        __raise_softirq_irqoff(NET_RX_SOFTIRQ);
  }
-@@ -6763,6 +6800,12 @@ void netif_napi_add(struct net_device *d
+@@ -6765,6 +6802,12 @@ void netif_napi_add(struct net_device *d
        set_bit(NAPI_STATE_NPSVC, &napi->state);
        list_add_rcu(&napi->dev_list, &dev->napi_list);
        napi_hash_add(napi);
@@ -166,7 +166,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  }
  EXPORT_SYMBOL(netif_napi_add);
  
-@@ -6779,9 +6822,28 @@ void napi_disable(struct napi_struct *n)
+@@ -6781,9 +6824,28 @@ void napi_disable(struct napi_struct *n)
        hrtimer_cancel(&n->timer);
  
        clear_bit(NAPI_STATE_DISABLE, &n->state);
@@ -195,7 +195,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  static void flush_gro_hash(struct napi_struct *napi)
  {
        int i;
-@@ -6807,6 +6869,11 @@ void __netif_napi_del(struct napi_struct
+@@ -6809,6 +6871,11 @@ void __netif_napi_del(struct napi_struct
  
        flush_gro_hash(napi);
        napi->gro_bitmask = 0;
@@ -207,7 +207,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  }
  EXPORT_SYMBOL(__netif_napi_del);
  
-@@ -6888,6 +6955,51 @@ static int napi_poll(struct napi_struct
+@@ -6890,6 +6957,51 @@ static int napi_poll(struct napi_struct
        return work;
  }
  
index eb2f8189d070a3008f99fe194369653744a1eb1c..c0d89c91ce32ee5df9340d23941ebb5088fe430f 100644 (file)
@@ -57,7 +57,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
   *    @n: NAPI context
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4298,8 +4298,9 @@ static inline void ____napi_schedule(str
+@@ -4300,8 +4300,9 @@ static inline void ____napi_schedule(str
  
        if (test_bit(NAPI_STATE_THREADED, &napi->state)) {
                /* Paired with smp_mb__before_atomic() in
@@ -69,7 +69,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                 * wake_up_process() when it's not NULL.
                 */
                thread = READ_ONCE(napi->thread);
-@@ -6773,6 +6774,49 @@ static void init_gro_hash(struct napi_st
+@@ -6775,6 +6776,49 @@ static void init_gro_hash(struct napi_st
        napi->gro_bitmask = 0;
  }
  
index 20f7b3bd2123e94c6fbdcd67462c0840d2718cd7..bdae67bbe44ccca1cb18e072529df44a7e272de5 100644 (file)
@@ -45,7 +45,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
  enum gro_result {
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4305,6 +4305,8 @@ static inline void ____napi_schedule(str
+@@ -4307,6 +4307,8 @@ static inline void ____napi_schedule(str
                 */
                thread = READ_ONCE(napi->thread);
                if (thread) {
@@ -54,7 +54,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
                        wake_up_process(thread);
                        return;
                }
-@@ -6565,7 +6567,8 @@ bool napi_complete_done(struct napi_stru
+@@ -6567,7 +6569,8 @@ bool napi_complete_done(struct napi_stru
  
                WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED));
  
@@ -64,7 +64,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
  
                /* If STATE_MISSED was set, leave STATE_SCHED set,
                 * because we will call napi->poll() one more time.
-@@ -7001,16 +7004,25 @@ static int napi_poll(struct napi_struct
+@@ -7003,16 +7006,25 @@ static int napi_poll(struct napi_struct
  
  static int napi_thread_wait(struct napi_struct *napi)
  {
index 674f66e7323a910da2d65bdcecc6683277f29e26..90d55162b898788ae5d35316d216021e3baa3c20 100644 (file)
@@ -34,7 +34,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -7008,7 +7008,7 @@ static int napi_thread_wait(struct napi_
+@@ -7010,7 +7010,7 @@ static int napi_thread_wait(struct napi_
  
        set_current_state(TASK_INTERRUPTIBLE);
  
@@ -43,7 +43,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                /* Testing SCHED_THREADED bit here to make sure the current
                 * kthread owns this napi and could poll on this napi.
                 * Testing SCHED bit is not enough because SCHED bit might be
-@@ -7026,6 +7026,7 @@ static int napi_thread_wait(struct napi_
+@@ -7028,6 +7028,7 @@ static int napi_thread_wait(struct napi_
                set_current_state(TASK_INTERRUPTIBLE);
        }
        __set_current_state(TASK_RUNNING);
index 71d9631222adde39b7ed900b3b000f263153d1dd..423500afd5bc9c4e669d72eb2b62d43096fcb8a2 100644 (file)
@@ -1420,7 +1420,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
 --- a/drivers/net/ethernet/ti/am65-cpsw-nuss.c
 +++ b/drivers/net/ethernet/ti/am65-cpsw-nuss.c
-@@ -1742,7 +1742,6 @@ static int am65_cpsw_nuss_init_slave_por
+@@ -1713,7 +1713,6 @@ static int am65_cpsw_nuss_init_slave_por
  
        for_each_child_of_node(node, port_np) {
                struct am65_cpsw_port *port;
@@ -1428,8 +1428,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                u32 port_id;
  
                /* it is not a slave port node, continue */
-@@ -1821,15 +1820,15 @@ static int am65_cpsw_nuss_init_slave_por
-                       return ret;
+@@ -1796,15 +1795,15 @@ static int am65_cpsw_nuss_init_slave_por
+                       goto of_node_put;
                }
  
 -              mac_addr = of_get_mac_address(port_np);
index 854dc34c42c0ff65f54ca8fe33f0a21797455181..ee1acf4b9ccecfaddd7bbda6570383a4d4e2ca11 100644 (file)
@@ -34,7 +34,7 @@ Acked-by: Bjorn Helgaas <bhelgaas@google.com>
                set_dev_node(bus->bridge, pcibus_to_node(bus));
 --- a/include/linux/pci.h
 +++ b/include/linux/pci.h
-@@ -547,6 +547,7 @@ struct pci_host_bridge {
+@@ -548,6 +548,7 @@ struct pci_host_bridge {
        unsigned int    native_dpc:1;           /* OS may use PCIe DPC */
        unsigned int    preserve_config:1;      /* Preserve FW resource setup */
        unsigned int    size_windows:1;         /* Enable root bus sizing */
index 41b85b1f7c50bfe91038a14665431154e6a53627..8166b8a5711790ee03dd41dec279d030317e5cfb 100644 (file)
@@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -3654,6 +3654,11 @@ static int xmit_one(struct sk_buff *skb,
+@@ -3656,6 +3656,11 @@ static int xmit_one(struct sk_buff *skb,
        if (dev_nit_active(dev))
                dev_queue_xmit_nit(skb, dev);
  
index f299d32ae1cd48a50ddab07bf72b3383b8eb76a7..d8c289ac1aec0b102843487088778f525351bd8a 100644 (file)
@@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -3701,6 +3701,8 @@ static __net_initdata struct pernet_oper
+@@ -3710,6 +3710,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
index 272e8ea4869fbbb888cfeb4dd6d21f2140ccf97a..c9bb4a14a4fae0e6648933d9035b3c238dbaaaff 100644 (file)
@@ -202,7 +202,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
        return !!nor->params->erase_map.uniform_erase_type;
  }
  
-@@ -2571,6 +2573,7 @@ static int spi_nor_select_erase(struct s
+@@ -2580,6 +2582,7 @@ static int spi_nor_select_erase(struct s
  {
        struct spi_nor_erase_map *map = &nor->params->erase_map;
        const struct spi_nor_erase_type *erase = NULL;
@@ -210,7 +210,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
        struct mtd_info *mtd = &nor->mtd;
        u32 wanted_size = nor->info->sector_size;
        int i;
-@@ -2603,8 +2606,9 @@ static int spi_nor_select_erase(struct s
+@@ -2612,8 +2615,9 @@ static int spi_nor_select_erase(struct s
         */
        for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) {
                if (map->erase_type[i].size) {
@@ -222,7 +222,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
                }
        }
  
-@@ -2612,6 +2616,9 @@ static int spi_nor_select_erase(struct s
+@@ -2621,6 +2625,9 @@ static int spi_nor_select_erase(struct s
                return -EINVAL;
  
        mtd->erasesize = erase->size;
index 0442c9e6826170a00c0356cd24467a637301bcb7..4dfa0cc69a35dad9b55469097539b7e19df6e65e 100644 (file)
@@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  endif # MTD_SPI_NOR
 --- a/drivers/mtd/spi-nor/core.c
 +++ b/drivers/mtd/spi-nor/core.c
-@@ -2804,6 +2804,21 @@ static void spi_nor_info_init_params(str
+@@ -2813,6 +2813,21 @@ static void spi_nor_info_init_params(str
         */
        erase_mask = 0;
        i = 0;
@@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (info->flags & SECT_4K_PMC) {
                erase_mask |= BIT(i);
                spi_nor_set_erase_type(&map->erase_type[i], 4096u,
-@@ -2815,6 +2830,7 @@ static void spi_nor_info_init_params(str
+@@ -2824,6 +2839,7 @@ static void spi_nor_info_init_params(str
                                       SPINOR_OP_BE_4K);
                i++;
        }
index 8d4440dbe41adc6cdcfec40fe09cd34c37578eb8..7c9766fa7b1d9cceb8b5357857154935ce9631be 100644 (file)
@@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/mtd/ubi/build.c
 +++ b/drivers/mtd/ubi/build.c
-@@ -1185,6 +1185,73 @@ static struct mtd_info * __init open_mtd
+@@ -1192,6 +1192,73 @@ static struct mtd_info * __init open_mtd
        return mtd;
  }
  
@@ -82,7 +82,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  static int __init ubi_init(void)
  {
        int err, i, k;
-@@ -1268,6 +1335,12 @@ static int __init ubi_init(void)
+@@ -1275,6 +1342,12 @@ static int __init ubi_init(void)
                }
        }
  
index 457703121cdb77e13b44e8f9e0f0146916b451e5..c1e050e935e6bf8f12f0b50d2174753f79dfbb68 100644 (file)
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                for (i = sizeof(struct ipt_entry);
                     i < e->target_offset;
                     i += m->u.match_size) {
-@@ -1223,12 +1260,15 @@ compat_copy_entry_to_user(struct ipt_ent
+@@ -1222,12 +1259,15 @@ compat_copy_entry_to_user(struct ipt_ent
        compat_uint_t origsize;
        const struct xt_entry_match *ematch;
        int ret = 0;
index eaab1edc6e4c5c0d9aa15f7e6c97d991adfa4da9..ac1b327b9e50f0ecb9b012c8df117f1e56ecbb36 100644 (file)
@@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                cfg->fc_flags |= RTF_REJECT;
  
        if (rtm->rtm_type == RTN_LOCAL)
-@@ -6135,6 +6166,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6136,6 +6167,8 @@ static int ip6_route_dev_notify(struct n
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
                net->ipv6.ip6_prohibit_entry->dst.dev = dev;
                net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
                net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
-@@ -6146,6 +6179,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6147,6 +6180,7 @@ static int ip6_route_dev_notify(struct n
                in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
                in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  #endif
        }
-@@ -6337,6 +6371,8 @@ static int __net_init ip6_route_net_init
+@@ -6338,6 +6372,8 @@ static int __net_init ip6_route_net_init
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        net->ipv6.fib6_has_custom_rules = false;
@@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
                                               sizeof(*net->ipv6.ip6_prohibit_entry),
                                               GFP_KERNEL);
-@@ -6347,11 +6383,21 @@ static int __net_init ip6_route_net_init
+@@ -6348,11 +6384,21 @@ static int __net_init ip6_route_net_init
                         ip6_template_metrics, true);
        INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
  
@@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
        dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
                         ip6_template_metrics, true);
-@@ -6378,6 +6424,8 @@ out:
+@@ -6379,6 +6425,8 @@ out:
        return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  out_ip6_prohibit_entry:
        kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -6397,6 +6445,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6398,6 +6446,7 @@ static void __net_exit ip6_route_net_exi
        kfree(net->ipv6.ip6_null_entry);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        kfree(net->ipv6.ip6_prohibit_entry);
@@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        kfree(net->ipv6.ip6_blk_hole_entry);
  #endif
        dst_entries_destroy(&net->ipv6.ip6_dst_ops);
-@@ -6480,6 +6529,9 @@ void __init ip6_route_init_special_entri
+@@ -6481,6 +6530,9 @@ void __init ip6_route_init_special_entri
        init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
        init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
        init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
index 3d1ea5f4e606de1a1ba8afff6a1630b53c6a2f64..1f21890ec065f500531bd2aead42ca761b452351 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        __u16                   tc_index;       /* traffic control index */
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -6067,6 +6067,9 @@ static enum gro_result dev_gro_receive(s
+@@ -6069,6 +6069,9 @@ static enum gro_result dev_gro_receive(s
        int same_flow;
        int grow;
  
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (netif_elide_gro(skb->dev))
                goto normal;
  
-@@ -8044,6 +8047,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -8046,6 +8049,48 @@ static void __netdev_adjacent_dev_unlink
                                           &upper_dev->adj_list.lower);
  }
  
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static int __netdev_upper_dev_link(struct net_device *dev,
                                   struct net_device *upper_dev, bool master,
                                   void *upper_priv, void *upper_info,
-@@ -8095,6 +8140,7 @@ static int __netdev_upper_dev_link(struc
+@@ -8097,6 +8142,7 @@ static int __netdev_upper_dev_link(struc
        if (ret)
                return ret;
  
@@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
                                            &changeupper_info.info);
        ret = notifier_to_errno(ret);
-@@ -8191,6 +8237,7 @@ static void __netdev_upper_dev_unlink(st
+@@ -8193,6 +8239,7 @@ static void __netdev_upper_dev_unlink(st
  
        __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
  
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
                                      &changeupper_info.info);
  
-@@ -8977,6 +9024,7 @@ int dev_set_mac_address(struct net_devic
+@@ -8979,6 +9026,7 @@ int dev_set_mac_address(struct net_devic
        if (err)
                return err;
        dev->addr_assign_type = NET_ADDR_SET;
index 892e01aece379a8610f1a84739c02195a7dab0ca..d9015d4805da132b54680b7758f1ac974de7a787 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                        interface-type = "ace";
                        reg = <0x5000 0x1000>;
                };
-@@ -936,6 +936,8 @@
+@@ -937,6 +937,8 @@
                power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>;
                mediatek,ethsys = <&ethsys>;
                mediatek,sgmiisys = <&sgmiisys>;
index 91d706f85b03dfc680558257928f7672653d1749..f59a364a736f2eab7dd84d5357342bc65958b4cc 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
 +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
-@@ -892,6 +892,11 @@
+@@ -893,6 +893,11 @@
                };
        };
  
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        ethsys: syscon@1b000000 {
                compatible = "mediatek,mt7622-ethsys",
                             "syscon";
-@@ -910,6 +915,26 @@
+@@ -911,6 +916,26 @@
                #dma-cells = <1>;
        };
  
@@ -50,7 +50,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        eth: ethernet@1b100000 {
                compatible = "mediatek,mt7622-eth",
                             "mediatek,mt2701-eth",
-@@ -937,6 +962,9 @@
+@@ -938,6 +963,9 @@
                mediatek,ethsys = <&ethsys>;
                mediatek,sgmiisys = <&sgmiisys>;
                mediatek,cci-control = <&cci_control2>;
index 8627244c59e1bd07bebe382a682817ef0119c1f0..5f422c1dde7e8827ad31ff15c907941d97bb8547 100644 (file)
@@ -219,7 +219,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
        tsens_debug_init(op);
  
  err_put_device:
-@@ -945,10 +1015,19 @@ static int tsens_register_irq(struct tse
+@@ -951,10 +1021,19 @@ static int tsens_register_irq(struct tse
                if (irq == -ENXIO)
                        ret = 0;
        } else {
@@ -243,7 +243,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
                if (ret)
                        dev_err(&pdev->dev, "%s: failed to get irq\n",
                                __func__);
-@@ -977,6 +1056,19 @@ static int tsens_register(struct tsens_p
+@@ -983,6 +1062,19 @@ static int tsens_register(struct tsens_p
                        priv->ops->enable(priv, i);
        }
  
index 1dc2d2e55e0518fb748c193639ea3c620bd5d47c..5c9ba71c794ddab21aaa82ff4f41b5c3a031cb81 100644 (file)
@@ -25,7 +25,7 @@ Acked-by: Thara Gopinath <thara.gopinath@linaro.org>
  err_put_device:
        put_device(&op->dev);
        return ret;
-@@ -1155,7 +1153,12 @@ static int tsens_probe(struct platform_d
+@@ -1161,7 +1159,12 @@ static int tsens_probe(struct platform_d
                }
        }
  
index 99bed24cfd566725d693b42c87b1e3420ff1fcae..9068be5d4a1066c3797982b377ccc1b11abc4384 100644 (file)
@@ -5481,7 +5481,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
          (transaction layer end-to-end CRC checking).
 --- a/include/linux/pci.h
 +++ b/include/linux/pci.h
-@@ -1420,6 +1420,8 @@ void pci_walk_bus(struct pci_bus *top, i
+@@ -1421,6 +1421,8 @@ void pci_walk_bus(struct pci_bus *top, i
                  void *userdata);
  int pci_cfg_space_size(struct pci_dev *dev);
  unsigned char pci_bus_max_busnr(struct pci_bus *bus);
index a1e4de00cec9aae1aad47ae7afd54b41758579fc..5431ebcc2a3b1bcd42e21a73930182dc28a259d0 100644 (file)
@@ -15,7 +15,7 @@
        default "y"
 --- a/arch/mips/include/asm/vpe.h
 +++ b/arch/mips/include/asm/vpe.h
-@@ -127,4 +127,13 @@ void cleanup_tc(struct tc *tc);
+@@ -126,4 +126,13 @@ void cleanup_tc(struct tc *tc);
  
  int __init vpe_module_init(void);
  void __exit vpe_module_exit(void);
  #endif /* _ASM_VPE_H */
 --- a/arch/mips/kernel/vpe-mt.c
 +++ b/arch/mips/kernel/vpe-mt.c
-@@ -29,6 +29,7 @@ int vpe_run(struct vpe *v)
-       struct vpe_notifications *notifier;
-       unsigned int vpeflags;
-       struct tc *t;
-+      unsigned long physical_memsize = 0L;
-       /* check we are the Master VPE */
-       local_irq_save(flags);
-@@ -416,6 +417,8 @@ int __init vpe_module_init(void)
+@@ -415,6 +415,8 @@ int __init vpe_module_init(void)
                        }
  
                        v->ntcs = hw_tcs - aprp_cpu_index();
@@ -48,7 +40,7 @@
  
                        /* add the tc to the list of this vpe's tc's. */
                        list_add(&t->tc, &v->tc);
-@@ -519,3 +522,47 @@ void __exit vpe_module_exit(void)
+@@ -518,3 +520,47 @@ void __exit vpe_module_exit(void)
                        release_vpe(v);
        }
  }
  {
 --- a/arch/mips/lantiq/prom.c
 +++ b/arch/mips/lantiq/prom.c
-@@ -34,10 +34,14 @@ unsigned long physical_memsize = 0L;
+@@ -28,10 +28,14 @@ EXPORT_SYMBOL_GPL(ebu_lock);
   */
  static struct ltq_soc_info soc_info;
  
index 898c2d482129903c8887d7c12166e37b03e846d2..2705723dda6c2d4f6a5e54d53fd0db975d3df91a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/kernel/vpe-mt.c
 +++ b/arch/mips/kernel/vpe-mt.c
-@@ -132,7 +132,10 @@ int vpe_run(struct vpe *v)
+@@ -130,7 +130,10 @@ int vpe_run(struct vpe *v)
         * kernels need to turn it on, even if that wasn't the pre-dvpe() state.
         */
  #ifdef CONFIG_SMP
index b7b95d6bfc8951c50d23cd32d7475787d9e1cf04..0bb1fefc5f640a042afbcabf6050d76708b9dd95 100644 (file)
@@ -39,7 +39,7 @@ Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
 
 --- a/arch/mips/lantiq/prom.c
 +++ b/arch/mips/lantiq/prom.c
-@@ -37,6 +37,14 @@ static struct ltq_soc_info soc_info;
+@@ -31,6 +31,14 @@ static struct ltq_soc_info soc_info;
  /* for Multithreading (APRP), vpe.c will use it */
  unsigned long cp0_memsize;
  
@@ -54,7 +54,7 @@ Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
  const char *get_system_type(void)
  {
        return soc_info.sys_type;
-@@ -100,6 +108,17 @@ void __init device_tree_init(void)
+@@ -94,6 +102,17 @@ void __init device_tree_init(void)
        unflatten_and_copy_device_tree();
  }
  
@@ -72,7 +72,7 @@ Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
  void __init prom_init(void)
  {
        /* call the soc specific detetcion code and get it to fill soc_info */
-@@ -111,7 +130,10 @@ void __init prom_init(void)
+@@ -105,7 +124,10 @@ void __init prom_init(void)
        prom_init_cmdline();
  
  #if defined(CONFIG_MIPS_MT_SMP)
index fe136c247476a0e71e6e6ca92a97111536c95940..b337c9edcb6c7a640674fcb6f03bc1d327fae1cd 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
 +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
-@@ -561,6 +561,20 @@
+@@ -562,6 +562,20 @@
                status = "disabled";
        };
  
index 197be4bf7146563a70e3bbe64ba0b202de578790..c7d5d4e691f577ea70482909fab0ef63e93046d8 100644 (file)
@@ -281,7 +281,7 @@ Signed-off-by: chuanjia.liu <Chuanjia.Liu@mediatek.com>
  &pio {
 --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
 +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
-@@ -802,45 +802,41 @@
+@@ -803,45 +803,41 @@
                #reset-cells = <1>;
        };
  
@@ -344,7 +344,7 @@ Signed-off-by: chuanjia.liu <Chuanjia.Liu@mediatek.com>
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-map = <0 0 0 1 &pcie_intc0 0>,
                                        <0 0 0 2 &pcie_intc0 1>,
-@@ -852,15 +848,39 @@
+@@ -853,15 +849,39 @@
                                #interrupt-cells = <1>;
                        };
                };
index 32fc0a9ad5987fb950f32566e4dd153b48882bc2..c09c80c0464b2223be76ad5fc988c36a37822669 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
 +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
-@@ -813,6 +813,8 @@
+@@ -814,6 +814,8 @@
                reg = <0 0x1a143000 0 0x1000>;
                reg-names = "port0";
                mediatek,pcie-cfg = <&pciecfg>;
@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                #address-cells = <3>;
                #size-cells = <2>;
                interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_LOW>;
-@@ -830,6 +832,7 @@
+@@ -831,6 +833,7 @@
                bus-range = <0x00 0xff>;
                ranges = <0x82000000 0 0x20000000  0x0 0x20000000  0 0x8000000>;
                status = "disabled";
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
                slot0: pcie@0,0 {
                        reg = <0x0000 0 0 0 0>;
-@@ -856,6 +859,8 @@
+@@ -857,6 +860,8 @@
                reg = <0 0x1a145000 0 0x1000>;
                reg-names = "port1";
                mediatek,pcie-cfg = <&pciecfg>;
@@ -36,7 +36,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                #address-cells = <3>;
                #size-cells = <2>;
                interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_LOW>;
-@@ -874,6 +879,7 @@
+@@ -875,6 +880,7 @@
                bus-range = <0x00 0xff>;
                ranges = <0x82000000 0 0x28000000  0x0 0x28000000  0 0x8000000>;
                status = "disabled";
index 28502d393fb391c2a1e1a35684c0fd6c567baa60..f091d0a93490898b76eb52c8bbe26b1fc59aff71 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
  #include <linux/platform_data/x86/apple.h>
  #include <linux/pm_runtime.h>
  #include <linux/suspend.h>
-@@ -5787,3 +5788,34 @@ static void nvidia_ion_ahci_fixup(struct
+@@ -5810,3 +5811,34 @@ static void nvidia_ion_ahci_fixup(struct
        pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING;
  }
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);
index 43bf94432e2cc34b344e40297eb837bd7825ce62..2df15d0ce9998ba663ed8f1ad6fd8faf63092c4a 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
 
 --- a/drivers/mtd/spi-nor/core.c
 +++ b/drivers/mtd/spi-nor/core.c
-@@ -3159,6 +3159,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3168,6 +3168,7 @@ int spi_nor_scan(struct spi_nor *nor, co
        struct device *dev = nor->dev;
        struct mtd_info *mtd = &nor->mtd;
        struct device_node *np = spi_nor_get_flash_node(nor);
@@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
        int ret;
        int i;
  
-@@ -3213,7 +3214,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3222,7 +3223,12 @@ int spi_nor_scan(struct spi_nor *nor, co
        if (ret)
                return ret;
  
index 230c5e1a5a53db6c585afcf44003c8f83450b733..86f73c66230af0eddc9efc7879982f5ce5bb6eb3 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
-@@ -3004,6 +3004,18 @@ static const struct usb_device_id uvc_id
+@@ -3012,6 +3012,18 @@ static const struct usb_device_id uvc_id
          .bInterfaceSubClass   = 1,
          .bInterfaceProtocol   = 0,
          .driver_info          = UVC_INFO_META(V4L2_META_FMT_D4XX) },
@@ -34,7 +34,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, UVC_PC_PROTOCOL_15) },
 --- a/drivers/media/usb/uvc/uvc_status.c
 +++ b/drivers/media/usb/uvc/uvc_status.c
-@@ -223,6 +223,7 @@ static void uvc_status_complete(struct u
+@@ -225,6 +225,7 @@ static void uvc_status_complete(struct u
                        if (uvc_event_control(urb, status, len))
                                /* The URB will be resubmitted in work context. */
                                return;
@@ -42,7 +42,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                        break;
                }
  
-@@ -271,6 +272,7 @@ int uvc_status_init(struct uvc_device *d
+@@ -273,6 +274,7 @@ int uvc_status_init(struct uvc_device *d
        }
  
        pipe = usb_rcvintpipe(dev->udev, ep->desc.bEndpointAddress);
@@ -214,7 +214,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        /* Mark the buffer as done if the EOF marker is set. */
        if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
                uvc_trace(UVC_TRACE_FRAME, "Frame complete (EOF found).\n");
-@@ -1747,6 +1892,8 @@ static int uvc_init_video_isoc(struct uv
+@@ -1749,6 +1894,8 @@ static int uvc_init_video_isoc(struct uv
        if (npackets == 0)
                return -ENOMEM;
  
@@ -225,18 +225,17 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        for_each_uvc_urb(uvc_urb, stream) {
 --- a/drivers/media/usb/uvc/uvcvideo.h
 +++ b/drivers/media/usb/uvc/uvcvideo.h
-@@ -203,7 +203,9 @@
- #define UVC_QUIRK_RESTORE_CTRLS_ON_INIT       0x00000400
+@@ -204,7 +204,8 @@
  #define UVC_QUIRK_FORCE_Y8            0x00000800
  #define UVC_QUIRK_FORCE_BPP           0x00001000
+ #define UVC_QUIRK_WAKE_AUTOSUSPEND    0x00002000
 -
-+#define UVC_QUIRK_MOTION              0x00001000
-+#define UVC_QUIRK_SINGLE_ISO          0x00002000
-+ 
++#define UVC_QUIRK_MOTION              0x00004000
++#define UVC_QUIRK_SINGLE_ISO          0x00008000
  /* Format flags */
  #define UVC_FMT_FLAG_COMPRESSED               0x00000001
  #define UVC_FMT_FLAG_STREAM           0x00000002
-@@ -672,6 +674,7 @@ struct uvc_device {
+@@ -674,6 +675,7 @@ struct uvc_device {
        u8 *status;
        struct input_dev *input;
        char input_phys[64];
index f656c1071c81703b2ac6414edc1090ff5e9b125e..56c8f58ce74960b61980719e2a9c23396fe70f0e 100644 (file)
@@ -16,7 +16,7 @@ Acked-by: John Crispin <blogic@openwrt.org>
 
 --- a/drivers/spi/Kconfig
 +++ b/drivers/spi/Kconfig
-@@ -689,6 +689,12 @@ config SPI_QCOM_GENI
+@@ -688,6 +688,12 @@ config SPI_QCOM_GENI
          This driver can also be built as a module.  If so, the module
          will be called spi-geni-qcom.