kernel: bump 5.15 to 5.15.100
authorJohn Audia <therealgraysky@proton.me>
Sun, 12 Mar 2023 14:16:50 +0000 (10:16 -0400)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 18 Mar 2023 11:52:17 +0000 (12:52 +0100)
Manually rebased:
        bcm27xx/patches-5.15/950-0421-Support-RPi-DPI-interface-in-mode6-for-18-bit-color.patch
        bcm27xx/patches-5.15/950-0706-media-i2c-imx219-Scale-the-pixel-clock-rate-for-the-.patch
        ramips/patches-5.15/810-uvc-add-iPassion-iP2970-support.patch

Removed upstreamed:
        bcm27xx/patches-5.15/950-0707-drm-vc4-For-DPI-MEDIA_BUS_FMT_RGB565_1X16-is-mode-1-.patch[1]
        bcm27xx/patches-5.15/950-0596-drm-vc4-dpi-Add-option-for-inverting-pixel-clock-and.patch[2]
        ipq807x/0006-v5.16-arm64-dts-qcom-Fix-IPQ8074-PCIe-PHY-nodes.patch [3]
        ipq807x/0034-v6.1-arm64-dts-qcom-ipq8074-fix-PCIe-PHY-serdes-size.patch [4]
        ipq807x/0103-arm64-dts-qcom-ipq8074-fix-Gen2-PCIe-QMP-PHY.patch [5]
        ipq807x/0104-arm64-dts-qcom-ipq8074-fix-Gen3-PCIe-QMP-PHY.patch [6]
        ipq807x/0105-arm64-dts-qcom-ipq8074-correct-Gen2-PCIe-ranges.patch [7]
        ipq807x/0108-arm64-dts-qcom-ipq8074-fix-Gen3-PCIe-node.patch [8]
        ipq807x/0109-arm64-dts-qcom-ipq8074-correct-PCIe-QMP-PHY-output-c.patch [9]
        ipq807x/0132-arm64-dts-qcom-ipq8074-correct-USB3-QMP-PHY-s-clock-.patch [10]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.99&id=d2991e6b30020e286f2dd9d3b4f43548c547caa6
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/gpu/drm/vc4/vc4_dpi.c?h=v5.15.100&id=8e04aaffb6de5f1ae61de7b671c1531172ccf429
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/arm64/boot/dts/qcom/ipq8074.dtsi?h=v5.15.99&id=a55a645aa303a3f7ec37db69822d5420657626da
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/arm64/boot/dts/qcom/ipq8074.dtsi?h=v5.15.99&id=d9df682bcea57fa25f37bbf17eae56fa05662635
5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/arm64/boot/dts/qcom/ipq8074.dtsi?h=v5.15.99&id=7e6eeb5fb3aa9e5feffdb6e137dcc06f5f6410e1
6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/arm64/boot/dts/qcom/ipq8074.dtsi?h=v5.15.99&id=e88204931d9a60634cd50bbc679f045439c4b91d
7.  https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/arm64/boot/dts/qcom/ipq8074.dtsi?h=v5.15.99&id=1563af0f28afd3b6d64ac79a2aecced3969c90bf
8. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/arm64/boot/dts/qcom/ipq8074.dtsi?h=v5.15.99&id=feb8c71f015d416f1afe90e1f62cf51e47376c67
9. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/arm64/boot/dts/qcom/ipq8074.dtsi?h=v5.15.99&id=69c7a270357a7d50ffd3471b14c60250041200e3
10. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/arm64/boot/dts/qcom/ipq8074.dtsi?h=v5.15.99&id=dd3d021ae5471d98adf81f1e897431c8657d0a18

Build system: x86_64
Build-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3
Run-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Tested-by: Robert Marko <robimarko@gmail.com> #ipq807x/Dynalink WRX36
Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de> #ipq807x/ax3600, x86_64/FW-7543B, ath79/tl-wdr3600, ipq806x/g10, ipq806x/nbg6817
149 files changed:
include/kernel-5.15
target/linux/airoha/patches-5.15/0005-spi-Add-support-for-the-Airoha-EN7523-SoC-SPI-contro.patch
target/linux/ath79/patches-5.15/401-mtd-nor-support-mtd-name-from-device-tree.patch
target/linux/ath79/patches-5.15/920-mikrotik-rb4xx.patch
target/linux/bcm27xx/patches-5.15/950-0001-drm-vc4-hdmi-Split-the-CEC-disable-enable-functions-.patch
target/linux/bcm27xx/patches-5.15/950-0002-drm-vc4-hdmi-Make-sure-the-device-is-powered-with-CE.patch
target/linux/bcm27xx/patches-5.15/950-0005-drm-vc4-hdmi-Raise-the-maximum-clock-rate.patch
target/linux/bcm27xx/patches-5.15/950-0007-drm-vc4-hdmi-Add-a-spinlock-to-protect-register-acce.patch
target/linux/bcm27xx/patches-5.15/950-0008-drm-vc4-hdmi-Use-a-mutex-to-prevent-concurrent-frame.patch
target/linux/bcm27xx/patches-5.15/950-0009-drm-vc4-hdmi-Prevent-access-to-crtc-state-outside-of.patch
target/linux/bcm27xx/patches-5.15/950-0010-drm-vc4-hdmi-Check-the-device-state-in-prepare.patch
target/linux/bcm27xx/patches-5.15/950-0011-drm-vc4-hdmi-Introduce-an-output_enabled-flag.patch
target/linux/bcm27xx/patches-5.15/950-0012-drm-vc4-hdmi-Introduce-a-scdc_enabled-flag.patch
target/linux/bcm27xx/patches-5.15/950-0017-drm-vc4-Leverage-the-load-tracker-on-the-BCM2711.patch
target/linux/bcm27xx/patches-5.15/950-0021-drm-vc4-hdmi-Actually-check-for-the-connector-status.patch
target/linux/bcm27xx/patches-5.15/950-0062-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch
target/linux/bcm27xx/patches-5.15/950-0144-bcmgenet-Better-coalescing-parameter-defaults.patch
target/linux/bcm27xx/patches-5.15/950-0145-net-genet-enable-link-energy-detect-powerdown-for-ex.patch
target/linux/bcm27xx/patches-5.15/950-0165-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
target/linux/bcm27xx/patches-5.15/950-0192-pinctrl-bcm2835-Remove-gpiochip-on-error.patch
target/linux/bcm27xx/patches-5.15/950-0292-net-bcmgenet-Reset-RBUF-on-first-open.patch
target/linux/bcm27xx/patches-5.15/950-0421-Support-RPi-DPI-interface-in-mode6-for-18-bit-color.patch
target/linux/bcm27xx/patches-5.15/950-0422-drm-vc4-plane-Add-support-for-DRM_FORMAT_P030.patch
target/linux/bcm27xx/patches-5.15/950-0423-drm-vc4-plane-Add-support-for-YUV-color-encodings-an.patch
target/linux/bcm27xx/patches-5.15/950-0426-drm-vc4-Add-debugfs-node-that-dumps-the-current-disp.patch
target/linux/bcm27xx/patches-5.15/950-0427-drm-vc4-Add-all-the-HDMI-registers-into-the-debugfs-.patch
target/linux/bcm27xx/patches-5.15/950-0431-drm-vc4-Change-the-default-DPI-format-to-being-18bpp.patch
target/linux/bcm27xx/patches-5.15/950-0442-drm-vc4-hdmi-Simplify-the-connector-state-retrieval.patch
target/linux/bcm27xx/patches-5.15/950-0535-media-i2c-imx219-Sensor-should-report-RAW-color-spac.patch
target/linux/bcm27xx/patches-5.15/950-0551-drm-vc4-Add-support-for-gamma-on-BCM2711.patch
target/linux/bcm27xx/patches-5.15/950-0552-drm-vc4-Add-debugfs-node-that-dumps-the-vc5-gamma-PW.patch
target/linux/bcm27xx/patches-5.15/950-0572-drm-vc4-Don-t-try-disabling-SCDC-on-Pi0-3.patch
target/linux/bcm27xx/patches-5.15/950-0579-drm-vc4-Add-support-for-composite-syncs-to-vc4_dpi.patch
target/linux/bcm27xx/patches-5.15/950-0580-drm-vc4-Ensure-vc4_hdmi-doesn-t-use-2711-HPD-registe.patch
target/linux/bcm27xx/patches-5.15/950-0590-drm-vc4-Move-HDMI-reset-to-pm_resume.patch
target/linux/bcm27xx/patches-5.15/950-0596-drm-vc4-dpi-Add-option-for-inverting-pixel-clock-and.patch [deleted file]
target/linux/bcm27xx/patches-5.15/950-0597-drm-vc4-dpi-Ensure-a-default-format-is-selected.patch
target/linux/bcm27xx/patches-5.15/950-0602-media-imx219-Advertise-embedded-data-node-on-media-p.patch
target/linux/bcm27xx/patches-5.15/950-0603-vc4-drm-Ignore-vc4_hdmi-output_enabled-for-allowing-.patch
target/linux/bcm27xx/patches-5.15/950-0607-drm-vc4-Fix-build-without-DRM_VC4_HDMI_CEC.patch
target/linux/bcm27xx/patches-5.15/950-0622-drm-vc4-Skip-writes-to-disabled-packet-RAM.patch
target/linux/bcm27xx/patches-5.15/950-0623-drm-edid-Rename-drm_hdmi_avi_infoframe_colorspace-to.patch
target/linux/bcm27xx/patches-5.15/950-0624-drm-vc4-hdmi-Add-full-range-RGB-helper.patch
target/linux/bcm27xx/patches-5.15/950-0625-drm-vc4-hdmi-Use-full-range-helper-in-csc-functions.patch
target/linux/bcm27xx/patches-5.15/950-0626-drm-vc4-hdmi-Move-XBAR-setup-to-csc_setup.patch
target/linux/bcm27xx/patches-5.15/950-0627-drm-vc4-hdmi-Replace-CSC_CTL-hardcoded-value-by-defi.patch
target/linux/bcm27xx/patches-5.15/950-0629-drm-vc4-hdmi-Change-CSC-callback-prototype.patch
target/linux/bcm27xx/patches-5.15/950-0630-drm-vc4-hdmi-Move-clock-validation-to-its-own-functi.patch
target/linux/bcm27xx/patches-5.15/950-0631-drm-vc4-hdmi-Move-clock-calculation-into-its-own-fun.patch
target/linux/bcm27xx/patches-5.15/950-0632-drm-vc4-hdmi-Take-the-sink-maximum-TMDS-clock-into-a.patch
target/linux/bcm27xx/patches-5.15/950-0633-drm-vc4-hdmi-Take-bpp-into-account-for-the-scrambler.patch
target/linux/bcm27xx/patches-5.15/950-0634-drm-vc4-hdmi-Always-try-to-have-the-highest-bpc.patch
target/linux/bcm27xx/patches-5.15/950-0635-drm-vc4-hdmi-Support-HDMI-YUV-output.patch
target/linux/bcm27xx/patches-5.15/950-0643-drm-vc4-hdmi-Fix-no-video-output-on-DVI-monitors.patch
target/linux/bcm27xx/patches-5.15/950-0650-drm-vc4-Add-alpha_blend_mode-property-to-each-plane.patch
target/linux/bcm27xx/patches-5.15/950-0655-drm-vc4-hdmi-Fix-clock-value-used-for-validating-hdm.patch
target/linux/bcm27xx/patches-5.15/950-0657-mfd-simple-mfd-i2c-Add-configuration-for-RPi-POE-HAT.patch
target/linux/bcm27xx/patches-5.15/950-0669-drm-vc4_hdmi-Add-Broadcast-RGB-property-to-allow-ove.patch
target/linux/bcm27xx/patches-5.15/950-0678-drm-vc4-Add-DRM-210101010-RGB-formats-for-hvs5.patch
target/linux/bcm27xx/patches-5.15/950-0683-drm-vc4-dpi-Support-DPI-interface-in-mode3-for-RGB56.patch
target/linux/bcm27xx/patches-5.15/950-0706-media-i2c-imx219-Scale-the-pixel-clock-rate-for-the-.patch
target/linux/bcm27xx/patches-5.15/950-0707-drm-vc4-For-DPI-MEDIA_BUS_FMT_RGB565_1X16-is-mode-1-.patch [deleted file]
target/linux/bcm27xx/patches-5.15/950-0742-drm-vc4-hvs-Defer-dlist-slots-deallocation.patch
target/linux/bcm27xx/patches-5.15/950-0781-drm-vc4-Support-zpos-on-all-planes.patch
target/linux/bcm27xx/patches-5.15/950-0787-vc4-drm-vc4_plane-Keep-fractional-source-coords-insi.patch
target/linux/bcm27xx/patches-5.15/950-0788-vc4-drm-Handle-fractional-coordinates-using-the-phas.patch
target/linux/bcm27xx/patches-5.15/950-0790-vc4-drm-plane-Make-use-of-chroma-siting-parameter.patch
target/linux/bcm27xx/patches-5.15/950-0801-pinctrl-bcm2835-Only-return-non-GPIOs-to-inputs.patch
target/linux/bcm27xx/patches-5.15/950-0807-Revert-drm-vc4-hvs-Defer-dlist-slots-deallocation.patch
target/linux/bcm27xx/patches-5.15/950-0808-drm-vc4_hdmi-Force-modeset-when-bpc-changes.patch
target/linux/bcm27xx/patches-5.15/950-0829-vc4_hdmi-Remove-VC4_HDMI_SCHEDULER_CONTROL_VERT_ALWA.patch
target/linux/bcm27xx/patches-5.15/950-0868-drm-vc4-hdmi-Rework-hdmi_enable_4kp60-detection.patch
target/linux/bcm27xx/patches-5.15/950-0897-drm-vc4-plane-Prevent-async-update-if-we-don-t-have-.patch
target/linux/bcm27xx/patches-5.15/950-0898-drm-vc4-Consolidate-Hardware-Revision-Check.patch
target/linux/bcm27xx/patches-5.15/950-0903-drm-vc4-plane-Register-a-different-drm_plane_helper_.patch
target/linux/generic/backport-5.15/005-v5.17-01-Kbuild-use-Wdeclaration-after-statement.patch
target/linux/generic/backport-5.15/005-v5.17-02-Kbuild-move-to-std-gnu11.patch
target/linux/generic/backport-5.15/005-v5.17-03-Kbuild-use-std-gnu11-for-KBUILD_USERCFLAGS.patch
target/linux/generic/backport-5.15/020-v6.1-04-mm-multigenerational-lru-groundwork.patch
target/linux/generic/backport-5.15/020-v6.1-05-mm-multigenerational-lru-mm_struct-list.patch
target/linux/generic/backport-5.15/702-v5.19-01-arm64-dts-mediatek-mt7622-add-support-for-coherent-D.patch
target/linux/generic/backport-5.15/702-v5.19-04-arm64-dts-mediatek-mt7622-introduce-nodes-for-Wirele.patch
target/linux/generic/backport-5.15/702-v5.19-13-net-ethernet-mtk_eth_soc-use-standard-property-for-c.patch
target/linux/generic/backport-5.15/821-v5.16-Bluetooth-btusb-Support-public-address-configuration.patch
target/linux/generic/backport-5.15/822-v5.17-Bluetooth-btusb-Fix-application-of-sizeof-to-pointer.patch
target/linux/generic/backport-5.15/823-v5.18-Bluetooth-btusb-Add-a-new-PID-VID-13d3-3567-for-MT79.patch
target/linux/generic/backport-5.15/824-v5.19-Bluetooth-btusb-Add-a-new-PID-VID-0489-e0c8-for-MT79.patch
target/linux/generic/backport-5.15/825-v6.1-Bluetooth-btusb-Add-a-new-VID-PID-0e8d-0608-for-MT79.patch
target/linux/generic/hack-5.15/721-net-add-packet-mangeling.patch
target/linux/generic/hack-5.15/902-debloat_proc.patch
target/linux/generic/pending-5.15/103-kbuild-export-SUBARCH.patch
target/linux/generic/pending-5.15/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch
target/linux/generic/pending-5.15/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
target/linux/generic/pending-5.15/610-netfilter_match_bypass_default_checks.patch
target/linux/generic/pending-5.15/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-5.15/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
target/linux/ipq806x/patches-5.15/110-01-thermal-qcom-tsens-init-debugfs-only-with-successful.patch
target/linux/ipq807x/patches-5.15/0001-v5.16-arm64-dts-qcom-ipq8074-add-SPMI-bus.patch
target/linux/ipq807x/patches-5.15/0002-v5.16-arm64-dts-qcom-Update-BAM-DMA-node-name-per-DT-schem.patch
target/linux/ipq807x/patches-5.15/0003-v5.16-arm64-dts-qcom-ipq8074-Add-QUP5-I2C-node.patch
target/linux/ipq807x/patches-5.15/0004-v5.16-arm64-dts-qcom-msm8996-Move-clock-cells-to-QMP-PHY-c.patch
target/linux/ipq807x/patches-5.15/0006-v5.16-arm64-dts-qcom-Fix-IPQ8074-PCIe-PHY-nodes.patch [deleted file]
target/linux/ipq807x/patches-5.15/0007-v5.17-arm64-dts-qcom-ipq8074-add-MDIO-bus.patch
target/linux/ipq807x/patches-5.15/0008-v5.18-arm64-dts-qcom-ipq8074-add-SMEM-support.patch
target/linux/ipq807x/patches-5.15/0010-v5.18-arm64-dts-qcom-ipq8074-enable-the-GICv2m-support.patch
target/linux/ipq807x/patches-5.15/0011-v5.18-arm64-dts-qcom-ipq8074-drop-the-clock-frequency-prop.patch
target/linux/ipq807x/patches-5.15/0012-v5.19-arm64-dts-qcom-align-dmas-in-I2C-SPI-UART-with-DT-sc.patch
target/linux/ipq807x/patches-5.15/0013-v5.19-arm64-dts-qcom-align-clocks-in-I2C-SPI-with-DT-schem.patch
target/linux/ipq807x/patches-5.15/0014-v5.19-arm64-dts-qcom-correct-DWC3-node-names-and-unit-addr.patch
target/linux/ipq807x/patches-5.15/0015-v5.19-arm64-dts-qcom-ipq8074-add-dedicated-qcom-ipq8074-dw.patch
target/linux/ipq807x/patches-5.15/0016-v5.19-arm64-dts-qcom-align-DWC3-USB-clocks-with-DT-schema.patch
target/linux/ipq807x/patches-5.15/0018-v6.0-arm64-dts-qcom-Fix-sdhci-node-names-use-mmc.patch
target/linux/ipq807x/patches-5.15/0019-v6.0-arm64-dts-qcom-Fix-ordering-of-clocks-clock-names-fo.patch
target/linux/ipq807x/patches-5.15/0024-v6.0-arm64-dts-qcom-ipq8074-add-USB-power-domains.patch
target/linux/ipq807x/patches-5.15/0025-v6.0-arm64-dts-qcom-ipq8074-move-ARMv8-timer-out-of-SoC-n.patch
target/linux/ipq807x/patches-5.15/0026-v6.0-arm64-dts-qcom-ipq8074-add-reset-to-SDHCI.patch
target/linux/ipq807x/patches-5.15/0027-v6.0-arm64-dts-qcom-ipq8074-drop-USB-PHY-clock-index.patch
target/linux/ipq807x/patches-5.15/0030-v6.0-arm64-dts-qcom-ipq8074-add-APCS-node.patch
target/linux/ipq807x/patches-5.15/0033-v6.1-arm64-dts-qcom-align-SDHCI-reg-names-with-DT-schema.patch
target/linux/ipq807x/patches-5.15/0034-v6.1-arm64-dts-qcom-ipq8074-fix-PCIe-PHY-serdes-size.patch [deleted file]
target/linux/ipq807x/patches-5.15/0040-v6.2-arm64-dts-qcom-ipq8074-add-A53-PLL-node.patch
target/linux/ipq807x/patches-5.15/0041-v6.1-arm64-dts-qcom-ipq8074-correct-APCS-register-space-s.patch
target/linux/ipq807x/patches-5.15/0042-v6.2-thermal-drivers-tsens-Add-support-for-combined-inter.patch
target/linux/ipq807x/patches-5.15/0043-v6.2-thermal-drivers-tsens-Allow-configuring-min-and-max-.patch
target/linux/ipq807x/patches-5.15/0044-v6.2-thermal-drivers-tsens-Add-IPQ8074-support.patch
target/linux/ipq807x/patches-5.15/0045-v6.2-arm64-dts-qcom-ipq8074-add-thermal-nodes.patch
target/linux/ipq807x/patches-5.15/0046-v6.2-arm64-dts-qcom-ipq8074-add-clocks-to-APCS.patch
target/linux/ipq807x/patches-5.15/0053-v6.2-arm64-dts-qcom-ipq8074-pass-XO-and-sleep-clocks-to-G.patch
target/linux/ipq807x/patches-5.15/0070-v6.2-arm64-dts-qcom-ipq8074-align-TLMM-pin-configuration-.patch
target/linux/ipq807x/patches-5.15/0103-arm64-dts-qcom-ipq8074-fix-Gen2-PCIe-QMP-PHY.patch [deleted file]
target/linux/ipq807x/patches-5.15/0104-arm64-dts-qcom-ipq8074-fix-Gen3-PCIe-QMP-PHY.patch [deleted file]
target/linux/ipq807x/patches-5.15/0105-arm64-dts-qcom-ipq8074-correct-Gen2-PCIe-ranges.patch [deleted file]
target/linux/ipq807x/patches-5.15/0108-arm64-dts-qcom-ipq8074-fix-Gen3-PCIe-node.patch [deleted file]
target/linux/ipq807x/patches-5.15/0109-arm64-dts-qcom-ipq8074-correct-PCIe-QMP-PHY-output-c.patch [deleted file]
target/linux/ipq807x/patches-5.15/0132-arm64-dts-qcom-ipq8074-correct-USB3-QMP-PHY-s-clock-.patch [deleted file]
target/linux/lantiq/patches-5.15/0001-MIPS-lantiq-add-pcie-driver.patch
target/linux/layerscape/patches-5.15/400-LF-20-3-mtd-spi-nor-Use-1-bit-mode-of-spansion-s25fs.patch
target/linux/mediatek/patches-5.15/104-mt7622-add-snor-irq.patch
target/linux/mediatek/patches-5.15/120-12-v5.19-spi-add-driver-for-MTK-SPI-NAND-Flash-Interface.patch
target/linux/mediatek/patches-5.15/120-14-v5.19-arm64-dts-mediatek-add-mtk-snfi-for-mt7622.patch
target/linux/mediatek/patches-5.15/192-v5.19-arm64-dts-mt7622-specify-the-number-of-DMA-requests.patch
target/linux/mediatek/patches-5.15/600-v5.16-arm64-dts-mediatek-Split-PCIe-node-for-MT2712-and-MT.patch
target/linux/mediatek/patches-5.15/602-arm64-dts-mediatek-add-mt7622-pcie-slot-node.patch
target/linux/mediatek/patches-5.15/710-pci-pcie-mediatek-add-support-for-coherent-DMA.patch
target/linux/mvebu/patches-5.15/902-drivers-mfd-Add-a-driver-for-IEI-WT61P803-PUZZLE-MCU.patch
target/linux/octeontx/patches-5.15/0004-PCI-add-quirk-for-Gateworks-PLX-PEX860x-switch-with-.patch
target/linux/pistachio/patches-5.15/401-mtd-nor-support-mtd-name-from-device-tree.patch
target/linux/ramips/patches-5.15/810-uvc-add-iPassion-iP2970-support.patch
target/linux/ramips/patches-5.15/821-SPI-ralink-add-Ralink-SoC-spi-driver.patch

index c251b6608742af570e92243e12baa8be6e7ce522..a05318146a9a7a2c2f0c136b18ceb7d3528ae054 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .98
-LINUX_KERNEL_HASH-5.15.98 = 7dc62cd3a45f95c9b60316a5886ea9406aee256308869dac1e4ec088fbb37787
+LINUX_VERSION-5.15 = .100
+LINUX_KERNEL_HASH-5.15.100 = f7a4ce870fc1ad879b49887f7f77ee79babdb66937d5acdb1465d53b388c1427
index 2c590f7fab9bb422577fa2f96fdd172779db156d..8df11630c754f378bb477a48205655fae2c54f8b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/spi/Kconfig
 +++ b/drivers/spi/Kconfig
-@@ -308,6 +308,12 @@ config SPI_DLN2
+@@ -307,6 +307,12 @@ config SPI_DLN2
         This driver can also be built as a module.  If so, the module
         will be called spi-dln2.
  
index da3ca270fa465902f7cdd15f23d4c62a775b55c5..163bafdb2e5b346376ca519e6919fcd2c1f9e7fc 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
-@@ -3098,6 +3098,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3107,6 +3107,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;
  
-@@ -3152,7 +3153,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3161,7 +3162,12 @@ int spi_nor_scan(struct spi_nor *nor, co
        if (ret)
                return ret;
  
index d287b6de19bae00d64896cb04a87e1e91562aad0..4743ad46e2522e6b3c4654d86e1e86959e14b925 100644 (file)
@@ -45,7 +45,7 @@ Submitted-by: Christopher Hill <ch6574@gmail.com>
 
 --- a/drivers/mfd/Kconfig
 +++ b/drivers/mfd/Kconfig
-@@ -2175,6 +2175,14 @@ config RAVE_SP_CORE
+@@ -2176,6 +2176,14 @@ config RAVE_SP_CORE
          Select this to get support for the Supervisory Processor
          device found on several devices in RAVE line of hardware.
  
index bb0b56fff16cb639c122ddddf7acaab0aabc18fb..b12b6843dfac03e2d70948953278916fff321e67 100644 (file)
@@ -17,7 +17,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20210819135931.895976-5-maxi
 
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -1748,7 +1748,7 @@ static irqreturn_t vc4_cec_irq_handler(i
+@@ -1749,7 +1749,7 @@ static irqreturn_t vc4_cec_irq_handler(i
        return ret;
  }
  
@@ -26,7 +26,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20210819135931.895976-5-maxi
  {
        struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
        /* clock period in microseconds */
-@@ -1761,38 +1761,53 @@ static int vc4_hdmi_cec_adap_enable(stru
+@@ -1762,38 +1762,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 6132b810bdfac01fcd53623b6ad7d8bd46a335fd..1904f182249668d41c756ade08f829ab5235d008 100644 (file)
@@ -24,7 +24,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20210819135931.895976-6-maxi
 
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -1753,8 +1753,14 @@ static int vc4_hdmi_cec_enable(struct ce
+@@ -1754,8 +1754,14 @@ static int vc4_hdmi_cec_enable(struct ce
        struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
        /* clock period in microseconds */
        const u32 usecs = 1000000 / CEC_CLOCK_FREQ;
@@ -40,7 +40,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20210819135931.895976-6-maxi
        val &= ~(VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET |
                 VC4_HDMI_CEC_CNT_TO_4700_US_MASK |
                 VC4_HDMI_CEC_CNT_TO_4500_US_MASK);
-@@ -1797,6 +1803,8 @@ static int vc4_hdmi_cec_disable(struct c
+@@ -1798,6 +1804,8 @@ static int vc4_hdmi_cec_disable(struct c
        HDMI_WRITE(HDMI_CEC_CNTRL_5, HDMI_READ(HDMI_CEC_CNTRL_5) |
                   VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET);
  
index 21d3148af75706b43b543c7ccb56ac95e7027954..020b56b8776ba0c9d41202f9550cfc134c74f252 100644 (file)
@@ -20,7 +20,7 @@ Link: https://lore.kernel.org/r/20211025152903.1088803-9-maxime@cerno.tech
 
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -2386,7 +2386,7 @@ static const struct vc4_hdmi_variant bcm
+@@ -2387,7 +2387,7 @@ static const struct vc4_hdmi_variant bcm
        .encoder_type           = VC4_ENCODER_TYPE_HDMI0,
        .debugfs_name           = "hdmi0_regs",
        .card_name              = "vc4-hdmi-0",
index fc802e56aa86204e315bdac23db69ee17ad3ed61..8691fdc49a11e634a231695bd2365efa3df4c813 100644 (file)
@@ -281,9 +281,9 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  }
  
  static void vc5_hdmi_set_timings(struct vc4_hdmi *vc4_hdmi,
-@@ -789,10 +856,13 @@ static void vc5_hdmi_set_timings(struct
+@@ -790,10 +857,13 @@ 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 long flags;
        unsigned char gcp;
@@ -295,7 +295,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        HDMI_WRITE(HDMI_VEC_INTERFACE_XBAR, 0x354021);
        HDMI_WRITE(HDMI_HORZA,
                   (vsync_pos ? VC5_HDMI_HORZA_VPOS : 0) |
-@@ -856,13 +926,18 @@ static void vc5_hdmi_set_timings(struct
+@@ -857,13 +927,18 @@ static void vc5_hdmi_set_timings(struct
        HDMI_WRITE(HDMI_MISC_CONTROL, reg);
  
        HDMI_WRITE(HDMI_CLOCK_STOP, 0);
@@ -314,7 +314,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        drift = HDMI_READ(HDMI_FIFO_CTL);
        drift &= VC4_HDMI_FIFO_VALID_WRITE_MASK;
  
-@@ -870,12 +945,20 @@ static void vc4_hdmi_recenter_fifo(struc
+@@ -871,12 +946,20 @@ static void vc4_hdmi_recenter_fifo(struc
                   drift & ~VC4_HDMI_FIFO_CTL_RECENTER);
        HDMI_WRITE(HDMI_FIFO_CTL,
                   drift | VC4_HDMI_FIFO_CTL_RECENTER);
@@ -335,7 +335,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        ret = wait_for(HDMI_READ(HDMI_FIFO_CTL) &
                       VC4_HDMI_FIFO_CTL_RECENTER_DONE, 1);
        WARN_ONCE(ret, "Timeout waiting for "
-@@ -909,6 +992,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -910,6 +993,7 @@ static void vc4_hdmi_encoder_pre_crtc_co
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
        unsigned long pixel_rate = vc4_conn_state->pixel_rate;
        unsigned long bvb_rate, hsm_rate;
@@ -343,7 +343,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        int ret;
  
        /*
-@@ -977,11 +1061,15 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -978,11 +1062,15 @@ static void vc4_hdmi_encoder_pre_crtc_co
        if (vc4_hdmi->variant->phy_init)
                vc4_hdmi->variant->phy_init(vc4_hdmi, vc4_conn_state);
  
@@ -359,7 +359,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (vc4_hdmi->variant->set_timings)
                vc4_hdmi->variant->set_timings(vc4_hdmi, conn_state, mode);
  
-@@ -1001,6 +1089,7 @@ static void vc4_hdmi_encoder_pre_crtc_en
+@@ -1002,6 +1090,7 @@ static void vc4_hdmi_encoder_pre_crtc_en
        struct drm_display_mode *mode = &encoder->crtc->state->adjusted_mode;
        struct vc4_hdmi_encoder *vc4_encoder = to_vc4_hdmi_encoder(encoder);
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
@@ -367,7 +367,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        if (vc4_encoder->hdmi_monitor &&
            drm_default_rgb_quant_range(mode) == HDMI_QUANTIZATION_RANGE_LIMITED) {
-@@ -1015,7 +1104,9 @@ static void vc4_hdmi_encoder_pre_crtc_en
+@@ -1016,7 +1105,9 @@ static void vc4_hdmi_encoder_pre_crtc_en
                vc4_encoder->limited_rgb_range = false;
        }
  
@@ -377,7 +377,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  }
  
  static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder,
-@@ -1026,8 +1117,11 @@ static void vc4_hdmi_encoder_post_crtc_e
+@@ -1027,8 +1118,11 @@ static void vc4_hdmi_encoder_post_crtc_e
        struct vc4_hdmi_encoder *vc4_encoder = to_vc4_hdmi_encoder(encoder);
        bool hsync_pos = mode->flags & DRM_MODE_FLAG_PHSYNC;
        bool vsync_pos = mode->flags & DRM_MODE_FLAG_PVSYNC;
@@ -389,7 +389,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        HDMI_WRITE(HDMI_VID_CTL,
                   VC4_HD_VID_CTL_ENABLE |
                   VC4_HD_VID_CTL_CLRRGB |
-@@ -1044,6 +1138,8 @@ static void vc4_hdmi_encoder_post_crtc_e
+@@ -1045,6 +1139,8 @@ static void vc4_hdmi_encoder_post_crtc_e
                           HDMI_READ(HDMI_SCHEDULER_CONTROL) |
                           VC4_HDMI_SCHEDULER_CONTROL_MODE_HDMI);
  
@@ -398,7 +398,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                ret = wait_for(HDMI_READ(HDMI_SCHEDULER_CONTROL) &
                               VC4_HDMI_SCHEDULER_CONTROL_HDMI_ACTIVE, 1000);
                WARN_ONCE(ret, "Timeout waiting for "
-@@ -1056,6 +1152,8 @@ static void vc4_hdmi_encoder_post_crtc_e
+@@ -1057,6 +1153,8 @@ static void vc4_hdmi_encoder_post_crtc_e
                           HDMI_READ(HDMI_SCHEDULER_CONTROL) &
                           ~VC4_HDMI_SCHEDULER_CONTROL_MODE_HDMI);
  
@@ -407,7 +407,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                ret = wait_for(!(HDMI_READ(HDMI_SCHEDULER_CONTROL) &
                                 VC4_HDMI_SCHEDULER_CONTROL_HDMI_ACTIVE), 1000);
                WARN_ONCE(ret, "Timeout waiting for "
-@@ -1063,6 +1161,8 @@ static void vc4_hdmi_encoder_post_crtc_e
+@@ -1064,6 +1162,8 @@ static void vc4_hdmi_encoder_post_crtc_e
        }
  
        if (vc4_encoder->hdmi_monitor) {
@@ -416,7 +416,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                WARN_ON(!(HDMI_READ(HDMI_SCHEDULER_CONTROL) &
                          VC4_HDMI_SCHEDULER_CONTROL_HDMI_ACTIVE));
                HDMI_WRITE(HDMI_SCHEDULER_CONTROL,
-@@ -1072,6 +1172,8 @@ static void vc4_hdmi_encoder_post_crtc_e
+@@ -1073,6 +1173,8 @@ static void vc4_hdmi_encoder_post_crtc_e
                HDMI_WRITE(HDMI_RAM_PACKET_CONFIG,
                           VC4_HDMI_RAM_PACKET_ENABLE);
  
@@ -425,7 +425,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                vc4_hdmi_set_infoframes(encoder);
        }
  
-@@ -1195,6 +1297,7 @@ static void vc4_hdmi_audio_set_mai_clock
+@@ -1196,6 +1298,7 @@ static void vc4_hdmi_audio_set_mai_clock
                                         unsigned int samplerate)
  {
        u32 hsm_clock = clk_get_rate(vc4_hdmi->audio_clock);
@@ -433,7 +433,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        unsigned long n, m;
  
        rational_best_approximation(hsm_clock, samplerate,
-@@ -1204,9 +1307,11 @@ static void vc4_hdmi_audio_set_mai_clock
+@@ -1205,9 +1308,11 @@ static void vc4_hdmi_audio_set_mai_clock
                                     VC4_HD_MAI_SMP_M_SHIFT) + 1,
                                    &n, &m);
  
@@ -445,7 +445,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  }
  
  static void vc4_hdmi_set_n_cts(struct vc4_hdmi *vc4_hdmi, unsigned int samplerate)
-@@ -1217,6 +1322,8 @@ static void vc4_hdmi_set_n_cts(struct vc
+@@ -1218,6 +1323,8 @@ static void vc4_hdmi_set_n_cts(struct vc
        u32 n, cts;
        u64 tmp;
  
@@ -454,7 +454,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        n = 128 * samplerate / 1000;
        tmp = (u64)(mode->clock * 1000) * n;
        do_div(tmp, 128 * samplerate);
-@@ -1246,6 +1353,7 @@ static int vc4_hdmi_audio_startup(struct
+@@ -1247,6 +1354,7 @@ static int vc4_hdmi_audio_startup(struct
  {
        struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
        struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base;
@@ -462,7 +462,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        /*
         * If the HDMI encoder hasn't probed, or the encoder is
-@@ -1257,12 +1365,14 @@ static int vc4_hdmi_audio_startup(struct
+@@ -1258,12 +1366,14 @@ static int vc4_hdmi_audio_startup(struct
  
        vc4_hdmi->audio.streaming = true;
  
@@ -477,7 +477,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        if (vc4_hdmi->variant->phy_rng_enable)
                vc4_hdmi->variant->phy_rng_enable(vc4_hdmi);
-@@ -1274,6 +1384,7 @@ static void vc4_hdmi_audio_reset(struct
+@@ -1275,6 +1385,7 @@ static void vc4_hdmi_audio_reset(struct
  {
        struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base;
        struct device *dev = &vc4_hdmi->pdev->dev;
@@ -485,7 +485,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        int ret;
  
        vc4_hdmi->audio.streaming = false;
-@@ -1281,20 +1392,29 @@ static void vc4_hdmi_audio_reset(struct
+@@ -1282,20 +1393,29 @@ static void vc4_hdmi_audio_reset(struct
        if (ret)
                dev_err(dev, "Failed to stop audio infoframe: %d\n", ret);
  
@@ -515,7 +515,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (vc4_hdmi->variant->phy_rng_disable)
                vc4_hdmi->variant->phy_rng_disable(vc4_hdmi);
  
-@@ -1349,6 +1469,7 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -1350,6 +1470,7 @@ static int vc4_hdmi_audio_prepare(struct
        struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base;
        unsigned int sample_rate = params->sample_rate;
        unsigned int channels = params->channels;
@@ -523,7 +523,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        u32 audio_packet_config, channel_mask;
        u32 channel_map;
        u32 mai_audio_format;
-@@ -1357,14 +1478,15 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -1358,14 +1479,15 @@ static int vc4_hdmi_audio_prepare(struct
        dev_dbg(dev, "%s: %u Hz, %d bit, %d channels\n", __func__,
                sample_rate, params->sample_width, channels);
  
@@ -541,7 +541,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        mai_sample_rate = sample_rate_to_mai_fmt(sample_rate);
        if (params->iec.status[0] & IEC958_AES0_NONAUDIO &&
            params->channels == 8)
-@@ -1402,8 +1524,11 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -1403,8 +1525,11 @@ 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);
@@ -553,7 +553,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        memcpy(&vc4_hdmi->audio.infoframe, &params->cea, sizeof(params->cea));
        vc4_hdmi_set_audio_infoframe(encoder);
  
-@@ -1677,6 +1802,8 @@ static void vc4_cec_read_msg(struct vc4_
+@@ -1678,6 +1803,8 @@ static void vc4_cec_read_msg(struct vc4_
        struct cec_msg *msg = &vc4_hdmi->cec_rx_msg;
        unsigned int i;
  
@@ -562,7 +562,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        msg->len = 1 + ((cntrl1 & VC4_HDMI_CEC_REC_WRD_CNT_MASK) >>
                                        VC4_HDMI_CEC_REC_WRD_CNT_SHIFT);
  
-@@ -1695,11 +1822,12 @@ static void vc4_cec_read_msg(struct vc4_
+@@ -1696,11 +1823,12 @@ static void vc4_cec_read_msg(struct vc4_
        }
  }
  
@@ -577,7 +577,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        cntrl1 = HDMI_READ(HDMI_CEC_CNTRL_1);
        vc4_hdmi->cec_tx_ok = cntrl1 & VC4_HDMI_CEC_TX_STATUS_GOOD;
        cntrl1 &= ~VC4_HDMI_CEC_START_XMIT_BEGIN;
-@@ -1708,11 +1836,24 @@ static irqreturn_t vc4_cec_irq_handler_t
+@@ -1709,11 +1837,24 @@ static irqreturn_t vc4_cec_irq_handler_t
        return IRQ_WAKE_THREAD;
  }
  
@@ -603,7 +603,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        vc4_hdmi->cec_rx_msg.len = 0;
        cntrl1 = HDMI_READ(HDMI_CEC_CNTRL_1);
        vc4_cec_read_msg(vc4_hdmi, cntrl1);
-@@ -1725,6 +1866,18 @@ static irqreturn_t vc4_cec_irq_handler_r
+@@ -1726,6 +1867,18 @@ static irqreturn_t vc4_cec_irq_handler_r
        return IRQ_WAKE_THREAD;
  }
  
@@ -622,7 +622,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static irqreturn_t vc4_cec_irq_handler(int irq, void *priv)
  {
        struct vc4_hdmi *vc4_hdmi = priv;
-@@ -1735,14 +1888,17 @@ static irqreturn_t vc4_cec_irq_handler(i
+@@ -1736,14 +1889,17 @@ static irqreturn_t vc4_cec_irq_handler(i
        if (!(stat & VC4_HDMI_CPU_CEC))
                return IRQ_NONE;
  
@@ -642,7 +642,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        return ret;
  }
  
-@@ -1751,6 +1907,7 @@ static int vc4_hdmi_cec_enable(struct ce
+@@ -1752,6 +1908,7 @@ static int vc4_hdmi_cec_enable(struct ce
        struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
        /* clock period in microseconds */
        const u32 usecs = 1000000 / CEC_CLOCK_FREQ;
@@ -650,7 +650,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        u32 val;
        int ret;
  
-@@ -1758,6 +1915,8 @@ static int vc4_hdmi_cec_enable(struct ce
+@@ -1759,6 +1916,8 @@ static int vc4_hdmi_cec_enable(struct ce
        if (ret)
                return ret;
  
@@ -659,7 +659,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        val = HDMI_READ(HDMI_CEC_CNTRL_5);
        val &= ~(VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET |
                 VC4_HDMI_CEC_CNT_TO_4700_US_MASK |
-@@ -1788,12 +1947,17 @@ static int vc4_hdmi_cec_enable(struct ce
+@@ -1789,12 +1948,17 @@ static int vc4_hdmi_cec_enable(struct ce
        if (!vc4_hdmi->variant->external_irq_controller)
                HDMI_WRITE(HDMI_CEC_CPU_MASK_CLEAR, VC4_HDMI_CPU_CEC);
  
@@ -677,7 +677,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        if (!vc4_hdmi->variant->external_irq_controller)
                HDMI_WRITE(HDMI_CEC_CPU_MASK_SET, VC4_HDMI_CPU_CEC);
-@@ -1801,6 +1965,8 @@ static int vc4_hdmi_cec_disable(struct c
+@@ -1802,6 +1966,8 @@ static int vc4_hdmi_cec_disable(struct c
        HDMI_WRITE(HDMI_CEC_CNTRL_5, HDMI_READ(HDMI_CEC_CNTRL_5) |
                   VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET);
  
@@ -686,7 +686,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        pm_runtime_put(&vc4_hdmi->pdev->dev);
  
        return 0;
-@@ -1817,10 +1983,14 @@ static int vc4_hdmi_cec_adap_enable(stru
+@@ -1818,10 +1984,14 @@ static int vc4_hdmi_cec_adap_enable(stru
  static int vc4_hdmi_cec_adap_log_addr(struct cec_adapter *adap, u8 log_addr)
  {
        struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
@@ -701,7 +701,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        return 0;
  }
  
-@@ -1829,6 +1999,7 @@ static int vc4_hdmi_cec_adap_transmit(st
+@@ -1830,6 +2000,7 @@ static int vc4_hdmi_cec_adap_transmit(st
  {
        struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
        struct drm_device *dev = vc4_hdmi->connector.dev;
@@ -709,7 +709,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        u32 val;
        unsigned int i;
  
-@@ -1837,6 +2008,8 @@ static int vc4_hdmi_cec_adap_transmit(st
+@@ -1838,6 +2009,8 @@ static int vc4_hdmi_cec_adap_transmit(st
                return -ENOMEM;
        }
  
@@ -718,7 +718,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        for (i = 0; i < msg->len; i += 4)
                HDMI_WRITE(HDMI_CEC_TX_DATA_1 + (i >> 2),
                           (msg->msg[i]) |
-@@ -1852,6 +2025,9 @@ static int vc4_hdmi_cec_adap_transmit(st
+@@ -1853,6 +2026,9 @@ static int vc4_hdmi_cec_adap_transmit(st
        val |= VC4_HDMI_CEC_START_XMIT_BEGIN;
  
        HDMI_WRITE(HDMI_CEC_CNTRL_1, val);
@@ -728,7 +728,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        return 0;
  }
  
-@@ -1866,6 +2042,7 @@ static int vc4_hdmi_cec_init(struct vc4_
+@@ -1867,6 +2043,7 @@ static int vc4_hdmi_cec_init(struct vc4_
        struct cec_connector_info conn_info;
        struct platform_device *pdev = vc4_hdmi->pdev;
        struct device *dev = &pdev->dev;
@@ -736,7 +736,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        u32 value;
        int ret;
  
-@@ -1886,10 +2063,12 @@ static int vc4_hdmi_cec_init(struct vc4_
+@@ -1887,10 +2064,12 @@ 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);
  
@@ -749,7 +749,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        vc4_hdmi_cec_update_clk_div(vc4_hdmi);
  
-@@ -1908,7 +2087,9 @@ static int vc4_hdmi_cec_init(struct vc4_
+@@ -1909,7 +2088,9 @@ static int vc4_hdmi_cec_init(struct vc4_
                if (ret)
                        goto err_remove_cec_rx_handler;
        } else {
@@ -759,7 +759,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
                ret = request_threaded_irq(platform_get_irq(pdev, 0),
                                           vc4_cec_irq_handler,
-@@ -2178,6 +2359,7 @@ static int vc4_hdmi_bind(struct device *
+@@ -2179,6 +2360,7 @@ static int vc4_hdmi_bind(struct device *
        vc4_hdmi = devm_kzalloc(dev, sizeof(*vc4_hdmi), GFP_KERNEL);
        if (!vc4_hdmi)
                return -ENOMEM;
index 2ca86efaa504b4c4cbde631795497f22eef462df..49470cdb472fd4b41f495f7bc141fbdddb157126 100644 (file)
@@ -169,7 +169,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  }
  
  static void vc4_hdmi_encoder_disable(struct drm_encoder *encoder)
-@@ -995,6 +1024,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -996,6 +1025,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
        unsigned long flags;
        int ret;
  
@@ -178,7 +178,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        /*
         * As stated in RPi's vc4 firmware "HDMI state machine (HSM) clock must
         * be faster than pixel clock, infinitesimally faster, tested in
-@@ -1015,13 +1046,13 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -1016,13 +1047,13 @@ static void vc4_hdmi_encoder_pre_crtc_co
        ret = clk_set_min_rate(vc4_hdmi->hsm_clock, hsm_rate);
        if (ret) {
                DRM_ERROR("Failed to set HSM clock rate: %d\n", ret);
@@ -194,7 +194,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        }
  
        ret = clk_set_rate(vc4_hdmi->pixel_clock, pixel_rate);
-@@ -1073,13 +1104,16 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -1074,13 +1105,16 @@ static void vc4_hdmi_encoder_pre_crtc_co
        if (vc4_hdmi->variant->set_timings)
                vc4_hdmi->variant->set_timings(vc4_hdmi, conn_state, mode);
  
@@ -212,7 +212,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        return;
  }
  
-@@ -1091,6 +1125,8 @@ static void vc4_hdmi_encoder_pre_crtc_en
+@@ -1092,6 +1126,8 @@ static void vc4_hdmi_encoder_pre_crtc_en
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
        unsigned long flags;
  
@@ -221,7 +221,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (vc4_encoder->hdmi_monitor &&
            drm_default_rgb_quant_range(mode) == HDMI_QUANTIZATION_RANGE_LIMITED) {
                if (vc4_hdmi->variant->csc_setup)
-@@ -1107,6 +1143,8 @@ static void vc4_hdmi_encoder_pre_crtc_en
+@@ -1108,6 +1144,8 @@ static void vc4_hdmi_encoder_pre_crtc_en
        spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);
        HDMI_WRITE(HDMI_FIFO_CTL, VC4_HDMI_FIFO_CTL_MASTER_SLAVE_N);
        spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags);
@@ -230,7 +230,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  }
  
  static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder,
-@@ -1120,6 +1158,8 @@ static void vc4_hdmi_encoder_post_crtc_e
+@@ -1121,6 +1159,8 @@ static void vc4_hdmi_encoder_post_crtc_e
        unsigned long flags;
        int ret;
  
@@ -239,7 +239,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);
  
        HDMI_WRITE(HDMI_VID_CTL,
-@@ -1179,6 +1219,8 @@ static void vc4_hdmi_encoder_post_crtc_e
+@@ -1180,6 +1220,8 @@ static void vc4_hdmi_encoder_post_crtc_e
  
        vc4_hdmi_recenter_fifo(vc4_hdmi);
        vc4_hdmi_enable_scrambling(encoder);
@@ -248,7 +248,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  }
  
  static void vc4_hdmi_encoder_enable(struct drm_encoder *encoder)
-@@ -1322,6 +1364,7 @@ static void vc4_hdmi_set_n_cts(struct vc
+@@ -1323,6 +1365,7 @@ static void vc4_hdmi_set_n_cts(struct vc
        u32 n, cts;
        u64 tmp;
  
@@ -256,7 +256,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        lockdep_assert_held(&vc4_hdmi->hw_lock);
  
        n = 128 * samplerate / 1000;
-@@ -1355,13 +1398,17 @@ static int vc4_hdmi_audio_startup(struct
+@@ -1356,13 +1399,17 @@ static int vc4_hdmi_audio_startup(struct
        struct drm_encoder *encoder = &vc4_hdmi->encoder.base.base;
        unsigned long flags;
  
@@ -275,7 +275,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        vc4_hdmi->audio.streaming = true;
  
-@@ -1377,6 +1424,8 @@ static int vc4_hdmi_audio_startup(struct
+@@ -1378,6 +1425,8 @@ static int vc4_hdmi_audio_startup(struct
        if (vc4_hdmi->variant->phy_rng_enable)
                vc4_hdmi->variant->phy_rng_enable(vc4_hdmi);
  
@@ -284,7 +284,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        return 0;
  }
  
-@@ -1387,6 +1436,8 @@ static void vc4_hdmi_audio_reset(struct
+@@ -1388,6 +1437,8 @@ static void vc4_hdmi_audio_reset(struct
        unsigned long flags;
        int ret;
  
@@ -293,7 +293,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        vc4_hdmi->audio.streaming = false;
        ret = vc4_hdmi_stop_packet(encoder, HDMI_INFOFRAME_TYPE_AUDIO, false);
        if (ret)
-@@ -1406,6 +1457,8 @@ static void vc4_hdmi_audio_shutdown(stru
+@@ -1407,6 +1458,8 @@ static void vc4_hdmi_audio_shutdown(stru
        struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
        unsigned long flags;
  
@@ -302,7 +302,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);
  
        HDMI_WRITE(HDMI_MAI_CTL,
-@@ -1420,6 +1473,8 @@ static void vc4_hdmi_audio_shutdown(stru
+@@ -1421,6 +1474,8 @@ static void vc4_hdmi_audio_shutdown(stru
  
        vc4_hdmi->audio.streaming = false;
        vc4_hdmi_audio_reset(vc4_hdmi);
@@ -311,7 +311,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  }
  
  static int sample_rate_to_mai_fmt(int samplerate)
-@@ -1478,6 +1533,8 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -1479,6 +1534,8 @@ static int vc4_hdmi_audio_prepare(struct
        dev_dbg(dev, "%s: %u Hz, %d bit, %d channels\n", __func__,
                sample_rate, params->sample_width, channels);
  
@@ -320,7 +320,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        vc4_hdmi_audio_set_mai_clock(vc4_hdmi, sample_rate);
  
        spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);
-@@ -1532,6 +1589,8 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -1533,6 +1590,8 @@ static int vc4_hdmi_audio_prepare(struct
        memcpy(&vc4_hdmi->audio.infoframe, &params->cea, sizeof(params->cea));
        vc4_hdmi_set_audio_infoframe(encoder);
  
@@ -329,7 +329,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        return 0;
  }
  
-@@ -1574,7 +1633,9 @@ static int vc4_hdmi_audio_get_eld(struct
+@@ -1575,7 +1634,9 @@ static int vc4_hdmi_audio_get_eld(struct
        struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev);
        struct drm_connector *connector = &vc4_hdmi->connector;
  
@@ -339,7 +339,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        return 0;
  }
-@@ -1911,6 +1972,17 @@ static int vc4_hdmi_cec_enable(struct ce
+@@ -1912,6 +1973,17 @@ static int vc4_hdmi_cec_enable(struct ce
        u32 val;
        int ret;
  
@@ -357,7 +357,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        ret = pm_runtime_resume_and_get(&vc4_hdmi->pdev->dev);
        if (ret)
                return ret;
-@@ -1957,6 +2029,17 @@ static int vc4_hdmi_cec_disable(struct c
+@@ -1958,6 +2030,17 @@ static int vc4_hdmi_cec_disable(struct c
        struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
        unsigned long flags;
  
@@ -375,7 +375,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);
  
        if (!vc4_hdmi->variant->external_irq_controller)
-@@ -1985,6 +2068,17 @@ static int vc4_hdmi_cec_adap_log_addr(st
+@@ -1986,6 +2069,17 @@ static int vc4_hdmi_cec_adap_log_addr(st
        struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
        unsigned long flags;
  
@@ -393,7 +393,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);
        HDMI_WRITE(HDMI_CEC_CNTRL_1,
                   (HDMI_READ(HDMI_CEC_CNTRL_1) & ~VC4_HDMI_CEC_ADDR_MASK) |
-@@ -2003,6 +2097,17 @@ static int vc4_hdmi_cec_adap_transmit(st
+@@ -2004,6 +2098,17 @@ static int vc4_hdmi_cec_adap_transmit(st
        u32 val;
        unsigned int i;
  
@@ -411,7 +411,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (msg->len > 16) {
                drm_err(dev, "Attempting to transmit too much data (%d)\n", msg->len);
                return -ENOMEM;
-@@ -2359,6 +2464,7 @@ static int vc4_hdmi_bind(struct device *
+@@ -2360,6 +2465,7 @@ static int vc4_hdmi_bind(struct device *
        vc4_hdmi = devm_kzalloc(dev, sizeof(*vc4_hdmi), GFP_KERNEL);
        if (!vc4_hdmi)
                return -ENOMEM;
index 117ccf3b06b21db015f73d94e3b141d91c733cb2..c298d2cdee9eb3c101813c14a02be92dc3fb684c 100644 (file)
@@ -73,7 +73,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                return;
  
        if (delayed_work_pending(&vc4_hdmi->scrambling_work))
-@@ -1017,8 +1019,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
+@@ -1018,8 +1020,8 @@ static void vc4_hdmi_encoder_pre_crtc_co
                vc4_hdmi_encoder_get_connector_state(encoder, state);
        struct vc4_hdmi_connector_state *vc4_conn_state =
                conn_state_to_vc4_hdmi_conn_state(conn_state);
@@ -83,7 +83,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        unsigned long pixel_rate = vc4_conn_state->pixel_rate;
        unsigned long bvb_rate, hsm_rate;
        unsigned long flags;
-@@ -1120,9 +1122,9 @@ out:
+@@ -1121,9 +1123,9 @@ out:
  static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder,
                                             struct drm_atomic_state *state)
  {
@@ -95,7 +95,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        unsigned long flags;
  
        mutex_lock(&vc4_hdmi->mutex);
-@@ -1150,8 +1152,8 @@ static void vc4_hdmi_encoder_pre_crtc_en
+@@ -1151,8 +1153,8 @@ static void vc4_hdmi_encoder_pre_crtc_en
  static void vc4_hdmi_encoder_post_crtc_enable(struct drm_encoder *encoder,
                                              struct drm_atomic_state *state)
  {
@@ -105,7 +105,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        struct vc4_hdmi_encoder *vc4_encoder = to_vc4_hdmi_encoder(encoder);
        bool hsync_pos = mode->flags & DRM_MODE_FLAG_PHSYNC;
        bool vsync_pos = mode->flags & DRM_MODE_FLAG_PVSYNC;
-@@ -1227,6 +1229,19 @@ static void vc4_hdmi_encoder_enable(stru
+@@ -1228,6 +1230,19 @@ static void vc4_hdmi_encoder_enable(stru
  {
  }
  
@@ -125,7 +125,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  #define WIFI_2_4GHz_CH1_MIN_FREQ      2400000000ULL
  #define WIFI_2_4GHz_CH1_MAX_FREQ      2422000000ULL
  
-@@ -1305,6 +1320,7 @@ vc4_hdmi_encoder_mode_valid(struct drm_e
+@@ -1306,6 +1321,7 @@ vc4_hdmi_encoder_mode_valid(struct drm_e
  
  static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = {
        .atomic_check = vc4_hdmi_encoder_atomic_check,
@@ -133,7 +133,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        .mode_valid = vc4_hdmi_encoder_mode_valid,
        .disable = vc4_hdmi_encoder_disable,
        .enable = vc4_hdmi_encoder_enable,
-@@ -1358,9 +1374,7 @@ static void vc4_hdmi_audio_set_mai_clock
+@@ -1359,9 +1375,7 @@ static void vc4_hdmi_audio_set_mai_clock
  
  static void vc4_hdmi_set_n_cts(struct vc4_hdmi *vc4_hdmi, unsigned int samplerate)
  {
index cf78bb0b13f6144fbae52ec27f3d436bdd278568..31243f810488cd931cdefe5554f57bae231ed698 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
-@@ -1406,20 +1406,36 @@ static inline struct vc4_hdmi *dai_to_hd
+@@ -1407,20 +1407,36 @@ static inline struct vc4_hdmi *dai_to_hd
        return snd_soc_card_get_drvdata(card);
  }
  
@@ -63,7 +63,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                mutex_unlock(&vc4_hdmi->mutex);
                return -ENODEV;
        }
-@@ -1549,6 +1565,11 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -1550,6 +1566,11 @@ static int vc4_hdmi_audio_prepare(struct
  
        mutex_lock(&vc4_hdmi->mutex);
  
index 40927805cf591e6f21b01d8c840f6a2f38ebfff3..326fd7526bd9a0476240f9e3762ba65b26937f40 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  }
  
  static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable)
-@@ -1227,6 +1232,11 @@ static void vc4_hdmi_encoder_post_crtc_e
+@@ -1228,6 +1233,11 @@ static void vc4_hdmi_encoder_post_crtc_e
  
  static void vc4_hdmi_encoder_enable(struct drm_encoder *encoder)
  {
@@ -44,7 +44,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  }
  
  static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder,
-@@ -1408,14 +1418,12 @@ static inline struct vc4_hdmi *dai_to_hd
+@@ -1409,14 +1419,12 @@ static inline struct vc4_hdmi *dai_to_hd
  
  static bool vc4_hdmi_audio_can_stream(struct vc4_hdmi *vc4_hdmi)
  {
index b11ea057055d06c1105f570c858bcdca431e69d0..2a7ac223a76f0d2e160d7d173e0ee75598bf5f08 100644 (file)
@@ -69,7 +69,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        if (delayed_work_pending(&vc4_hdmi->scrambling_work))
                cancel_delayed_work_sync(&vc4_hdmi->scrambling_work);
-@@ -2522,6 +2516,14 @@ static int vc4_hdmi_bind(struct device *
+@@ -2523,6 +2517,14 @@ static int vc4_hdmi_bind(struct device *
        vc4_hdmi->pdev = pdev;
        vc4_hdmi->variant = variant;
  
index 6f26f0f2817b8d8922e833c6e0529472fb87ae4e..f13a8c73ec3a8868f528055859378595923d5a79 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
-@@ -525,11 +525,6 @@ static void vc4_plane_calc_load(struct d
+@@ -527,11 +527,6 @@ static void vc4_plane_calc_load(struct d
        struct vc4_plane_state *vc4_state;
        struct drm_crtc_state *crtc_state;
        unsigned int vscale_factor;
index 54c5d9302c6372806b9a87aad78d17557f097133..96913ed7b7c0e81938aa501ae57ff355db8b226c 100644 (file)
@@ -44,7 +44,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
-@@ -1801,10 +1801,11 @@ static void vc4_hdmi_audio_exit(struct v
+@@ -1802,10 +1802,11 @@ static void vc4_hdmi_audio_exit(struct v
  static irqreturn_t vc4_hdmi_hpd_irq_thread(int irq, void *priv)
  {
        struct vc4_hdmi *vc4_hdmi = priv;
index c4360e12e8bc31461dd7fd579f44816d3019a240..e4aef40745b033dad7f1607d6d40a83bb47d95ac 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- 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,
@@ -29,7 +29,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        .ngpio = BCM2835_NUM_GPIOS,
        .can_sleep = false,
        .of_gpio_ranges_fallback = bcm2835_of_gpio_ranges_fallback,
-@@ -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 17512cfcc2de462cb80c5d8145aabbfd23b9f5b9..243605680b387b3e0a345600f43defecff46732d 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
-@@ -2608,7 +2608,7 @@ static void bcmgenet_init_tx_ring(struct
+@@ -2616,7 +2616,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);
-@@ -4075,9 +4075,12 @@ static int bcmgenet_probe(struct platfor
+@@ -4083,9 +4083,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 f817fbc2b2469ad87bbdf0217afd68a85df76a49..cde33a576e84379607bd69a4d39f7cbec78101bc 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 b2f4e6c8c0fac287b71d192e05053ee846ef2ca8..b18208276378e5cdfc14267ced789eb2e74ac022 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  
  static inline void bcmgenet_writel(u32 value, void __iomem *offset)
  {
-@@ -2439,6 +2442,11 @@ static void reset_umac(struct bcmgenet_p
+@@ -2447,6 +2450,11 @@ static void reset_umac(struct bcmgenet_p
        bcmgenet_rbuf_ctrl_set(priv, 0);
        udelay(10);
  
index 5f4c605a8e4d68f248f008c0a33c27ebb60b36f8..3c065b0ef10a5c0725b98f7b15441a40563ed9bc 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
-@@ -1339,7 +1339,7 @@ static int bcm2835_pinctrl_probe(struct
+@@ -1337,7 +1337,7 @@ static int bcm2835_pinctrl_probe(struct
        girq->default_type = IRQ_TYPE_NONE;
        girq->handler = handle_level_irq;
  
index 42df30457bd9c83a82b3dd8ab3ff0d5823f7cc4e..cd50ba1802ab09f73102b83b7ed9de69d363a2ed 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
-@@ -3257,7 +3257,7 @@ static void bcmgenet_get_hw_addr(struct
+@@ -3265,7 +3265,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;
-@@ -3282,6 +3282,14 @@ static u32 bcmgenet_dma_disable(struct b
+@@ -3290,6 +3290,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;
  }
  
-@@ -3345,8 +3353,8 @@ static int bcmgenet_open(struct net_devi
+@@ -3353,8 +3361,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);
-@@ -4204,7 +4212,7 @@ static int bcmgenet_resume(struct device
+@@ -4212,7 +4220,7 @@ static int bcmgenet_resume(struct device
                        bcmgenet_hfb_create_rxnfc_filter(priv, rule);
  
        /* Disable RX/TX DMA and flush TX queues */
index ef115fe2f5aaf998fb1eb15db97ecf34d7a25629..b4d5908aa0b74cd3a8243fb17ee0f03258185605 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 3dc01372eaddbc14e04c0c81cedcbd101d8080be..43da4fad4e1eb0375a65c5887e967f40a3642f95 100644 (file)
@@ -26,7 +26,7 @@ Link: https://lore.kernel.org/r/20211215091739.135042-3-maxime@cerno.tech
  } 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,
        },
@@ -39,7 +39,7 @@ Link: https://lore.kernel.org/r/20211215091739.135042-3-maxime@cerno.tech
  };
  
  static const struct hvs_format *vc4_get_hvs_format(u32 drm_format)
-@@ -758,47 +765,90 @@ static int vc4_plane_mode_set(struct drm
+@@ -760,47 +767,90 @@ static int vc4_plane_mode_set(struct drm
        case DRM_FORMAT_MOD_BROADCOM_SAND128:
        case DRM_FORMAT_MOD_BROADCOM_SAND256: {
                uint32_t param = fourcc_mod_broadcom_param(fb->modifier);
@@ -157,7 +157,7 @@ Link: https://lore.kernel.org/r/20211215091739.135042-3-maxime@cerno.tech
                }
  
                pitch0 = VC4_SET_FIELD(param, SCALER_TILE_HEIGHT);
-@@ -951,7 +1001,8 @@ static int vc4_plane_mode_set(struct drm
+@@ -953,7 +1003,8 @@ static int vc4_plane_mode_set(struct drm
  
        /* Pitch word 1/2 */
        for (i = 1; i < num_planes; i++) {
@@ -167,7 +167,7 @@ Link: https://lore.kernel.org/r/20211215091739.135042-3-maxime@cerno.tech
                        vc4_dlist_write(vc4_state,
                                        VC4_SET_FIELD(fb->pitches[i],
                                                      SCALER_SRC_PITCH));
-@@ -1311,6 +1362,13 @@ static bool vc4_format_mod_supported(str
+@@ -1313,6 +1364,13 @@ static bool vc4_format_mod_supported(str
                default:
                        return false;
                }
@@ -181,7 +181,7 @@ Link: https://lore.kernel.org/r/20211215091739.135042-3-maxime@cerno.tech
        case DRM_FORMAT_RGBX1010102:
        case DRM_FORMAT_BGRX1010102:
        case DRM_FORMAT_RGBA1010102:
-@@ -1343,8 +1401,11 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1345,8 +1403,11 @@ struct drm_plane *vc4_plane_init(struct
        struct drm_plane *plane = NULL;
        struct vc4_plane *vc4_plane;
        u32 formats[ARRAY_SIZE(hvs_formats)];
@@ -193,7 +193,7 @@ Link: https://lore.kernel.org/r/20211215091739.135042-3-maxime@cerno.tech
        static const uint64_t modifiers[] = {
                DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED,
                DRM_FORMAT_MOD_BROADCOM_SAND128,
-@@ -1359,13 +1420,17 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1361,13 +1422,17 @@ struct drm_plane *vc4_plane_init(struct
        if (!vc4_plane)
                return ERR_PTR(-ENOMEM);
  
index 8620d083dd5b6cb9e6b890497ef9c83dbeb120ff..d230566e61a2011cfc4918dca822474285c5822c 100644 (file)
@@ -21,7 +21,7 @@ Link: https://lore.kernel.org/r/20211215091739.135042-4-maxime@cerno.tech
 
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -619,6 +619,51 @@ static int vc4_plane_allocate_lbm(struct
+@@ -621,6 +621,51 @@ static int vc4_plane_allocate_lbm(struct
        return 0;
  }
  
@@ -73,7 +73,7 @@ Link: https://lore.kernel.org/r/20211215091739.135042-4-maxime@cerno.tech
  /* Writes out a full display list for an active plane to the plane's
   * private dlist state.
   */
-@@ -1013,9 +1058,20 @@ static int vc4_plane_mode_set(struct drm
+@@ -1015,9 +1060,20 @@ static int vc4_plane_mode_set(struct drm
  
        /* Colorspace conversion words */
        if (vc4_state->is_yuv) {
@@ -97,7 +97,7 @@ Link: https://lore.kernel.org/r/20211215091739.135042-4-maxime@cerno.tech
        }
  
        vc4_state->lbm_offset = 0;
-@@ -1444,6 +1500,15 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1446,6 +1502,15 @@ struct drm_plane *vc4_plane_init(struct
                                           DRM_MODE_REFLECT_X |
                                           DRM_MODE_REFLECT_Y);
  
@@ -115,7 +115,7 @@ Link: https://lore.kernel.org/r/20211215091739.135042-4-maxime@cerno.tech
  
 --- a/drivers/gpu/drm/vc4/vc4_regs.h
 +++ b/drivers/gpu/drm/vc4/vc4_regs.h
-@@ -983,7 +983,10 @@ enum hvs_pixel_format {
+@@ -989,7 +989,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
@@ -126,7 +126,7 @@ Link: https://lore.kernel.org/r/20211215091739.135042-4-maxime@cerno.tech
  
  /* S2.8 contribution of Cb to Green */
  #define SCALER_CSC1_COEF_CB_GRN_MASK          VC4_MASK(31, 22)
-@@ -998,8 +1001,11 @@ enum hvs_pixel_format {
+@@ -1004,8 +1007,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
@@ -140,7 +140,7 @@ Link: https://lore.kernel.org/r/20211215091739.135042-4-maxime@cerno.tech
  
  /* S2.8 contribution of Cb to Red */
  #define SCALER_CSC2_COEF_CB_RED_MASK          VC4_MASK(29, 20)
-@@ -1010,9 +1016,12 @@ enum hvs_pixel_format {
+@@ -1016,9 +1022,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 3fff69a674cf9bd0b758b9bb5114d6fea5266330..d7a5dcaff9f52e387796e5638870bf28c2e48b53 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.
   */
-@@ -728,6 +767,8 @@ static int vc4_hvs_bind(struct device *d
+@@ -739,6 +778,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 f25a7254767a97bc2eb61073054b837b45fa09e8..5ae2b9f480fe464c402fff76f9f9b9ce61f786e1 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  
        return 0;
  }
-@@ -2369,6 +2375,7 @@ static int vc5_hdmi_init_resources(struc
+@@ -2370,6 +2376,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)
-@@ -2465,6 +2472,38 @@ static int vc5_hdmi_init_resources(struc
+@@ -2466,6 +2473,38 @@ static int vc5_hdmi_init_resources(struc
                return PTR_ERR(vc4_hdmi->reset);
        }
  
index b278eb4dd25d33037954beaf5c9d56478dacf671..8770de9f4ee8dffdeca280560e2fd8111171220f 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
-@@ -188,8 +188,8 @@ static void vc4_dpi_encoder_enable(struc
-                       break;
-               }
+@@ -198,8 +198,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 aa7f0b5ae59e884971953b6549da264a087b6767..01d9daa05ab3cf1ea9a9991ed61771f86d4d0561 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
-@@ -1011,30 +1011,15 @@ static void vc4_hdmi_recenter_fifo(struc
+@@ -1012,30 +1012,15 @@ static void vc4_hdmi_recenter_fifo(struc
                  "VC4_HDMI_FIFO_CTL_RECENTER_DONE");
  }
  
index 6a4f26252ff20b7cffec406d1e4e6cd4ad0af1a9..c63a136ac90f08f8f2c74c43e7747379c7a55d4c 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
 
 --- a/drivers/media/i2c/imx219.c
 +++ b/drivers/media/i2c/imx219.c
-@@ -674,7 +674,7 @@ static void imx219_set_default_format(st
+@@ -584,7 +584,7 @@ static void imx219_set_default_format(st
  
        fmt = &imx219->fmt;
        fmt->code = MEDIA_BUS_FMT_SRGGB10_1X10;
@@ -22,7 +22,7 @@ Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
        fmt->ycbcr_enc = V4L2_MAP_YCBCR_ENC_DEFAULT(fmt->colorspace);
        fmt->quantization = V4L2_MAP_QUANTIZATION_DEFAULT(true,
                                                          fmt->colorspace,
-@@ -844,7 +844,7 @@ static int imx219_enum_frame_size(struct
+@@ -754,7 +754,7 @@ static int imx219_enum_frame_size(struct
  
  static void imx219_reset_colorspace(struct v4l2_mbus_framefmt *fmt)
  {
index 555636515c3f65177eb8a5d1e39b9bf12ef4e199..302adfe984cff651934c60bc91a2d2d35d43182c 100644 (file)
@@ -241,7 +241,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                        /* Unsetting DISPBKGND_GAMMA skips the gamma lut step
 --- a/drivers/gpu/drm/vc4/vc4_regs.h
 +++ b/drivers/gpu/drm/vc4/vc4_regs.h
-@@ -499,6 +499,28 @@
+@@ -505,6 +505,28 @@
  #define SCALER_DLIST_START                      0x00002000
  #define SCALER_DLIST_SIZE                       0x00004000
  
index 7dbc6483dcae447abbe6020d0b1e9aac8a948dd4..4708dca62fba14194cd2aeb566c8d4179faee62a 100644 (file)
@@ -102,7 +102,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  /* The filter kernel is composed of dwords each containing 3 9-bit
   * signed integers packed next to each other.
   */
-@@ -848,6 +926,9 @@ static int vc4_hvs_bind(struct device *d
+@@ -859,6 +937,9 @@ static int vc4_hvs_bind(struct device *d
                             NULL);
        vc4_debugfs_add_file(drm, "hvs_dlists", vc4_hvs_debugfs_dlist,
                             NULL);
index 6b7acd8e4a44313bb64ce72f027486e89de4ed09..3bb136f3c0f79e7db8748a84adc4ac67353974f0 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -2557,7 +2557,8 @@ static int vc4_hdmi_bind(struct device *
+@@ -2558,7 +2558,8 @@ static int vc4_hdmi_bind(struct device *
         * vc4_hdmi_disable_scrambling() will thus run at boot, make
         * sure it's disabled, and avoid any inconsistency.
         */
index 9d815d39b56c44c4e413ca5092f9b62b058dd43d..a9e79d25ba8fe2820fa8ef598bf030ab0c327334 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
        int ret;
  
        /* Look up the connector attached to DPI so we can get the
-@@ -192,15 +192,22 @@ static void vc4_dpi_encoder_enable(struc
+@@ -202,15 +202,22 @@ static void vc4_dpi_encoder_enable(struc
                dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1, DPI_FORMAT);
        }
  
index 73f7ea871a0d04f897b5d6d6d16ab685baaef63e..689a3d9525ec08e4a010c1fda97deda03da8bef7 100644 (file)
@@ -36,7 +36,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
                        connected = true;
        }
  
-@@ -1355,6 +1349,18 @@ static u32 vc5_hdmi_channel_map(struct v
+@@ -1356,6 +1350,18 @@ static u32 vc5_hdmi_channel_map(struct v
        return channel_map;
  }
  
@@ -55,7 +55,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  /* HDMI audio codec callbacks */
  static void vc4_hdmi_audio_set_mai_clock(struct vc4_hdmi *vc4_hdmi,
                                         unsigned int samplerate)
-@@ -2777,6 +2783,7 @@ static const struct vc4_hdmi_variant bcm
+@@ -2778,6 +2784,7 @@ static const struct vc4_hdmi_variant bcm
        .phy_rng_disable        = vc5_hdmi_phy_rng_disable,
        .channel_map            = vc5_hdmi_channel_map,
        .supports_hdr           = true,
@@ -63,7 +63,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  };
  
  static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = {
-@@ -2805,6 +2812,7 @@ static const struct vc4_hdmi_variant bcm
+@@ -2806,6 +2813,7 @@ static const struct vc4_hdmi_variant bcm
        .phy_rng_disable        = vc5_hdmi_phy_rng_disable,
        .channel_map            = vc5_hdmi_channel_map,
        .supports_hdr           = true,
index 25dd5b542756c1a0d616e0f8bfc7cc544cce8e12..6a8ef0ebdf2e2f9fa267a40bd3731181f0687608 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -2193,7 +2193,6 @@ static int vc4_hdmi_cec_init(struct vc4_
+@@ -2194,7 +2194,6 @@ static int vc4_hdmi_cec_init(struct vc4_
        struct platform_device *pdev = vc4_hdmi->pdev;
        struct device *dev = &pdev->dev;
        unsigned long flags;
@@ -30,7 +30,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
        int ret;
  
        if (!of_find_property(dev->of_node, "interrupts", NULL)) {
-@@ -2213,15 +2212,6 @@ static int vc4_hdmi_cec_init(struct vc4_
+@@ -2214,15 +2213,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);
  
@@ -46,7 +46,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
        if (vc4_hdmi->variant->external_irq_controller) {
                ret = request_threaded_irq(platform_get_irq_byname(pdev, "cec-rx"),
                                           vc4_cec_irq_handler_rx_bare,
-@@ -2284,6 +2274,29 @@ static void vc4_hdmi_cec_exit(struct vc4
+@@ -2285,6 +2275,29 @@ static void vc4_hdmi_cec_exit(struct vc4
  
        cec_unregister_adapter(vc4_hdmi->cec_adap);
  }
@@ -76,7 +76,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  #else
  static int vc4_hdmi_cec_init(struct vc4_hdmi *vc4_hdmi)
  {
-@@ -2292,6 +2305,10 @@ static int vc4_hdmi_cec_init(struct vc4_
+@@ -2293,6 +2306,10 @@ static int vc4_hdmi_cec_init(struct vc4_
  
  static void vc4_hdmi_cec_exit(struct vc4_hdmi *vc4_hdmi) {};
  
@@ -87,7 +87,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  #endif
  
  static int vc4_hdmi_build_regset(struct vc4_hdmi *vc4_hdmi,
-@@ -2526,6 +2543,15 @@ static int vc4_hdmi_runtime_resume(struc
+@@ -2527,6 +2544,15 @@ static int vc4_hdmi_runtime_resume(struc
        if (ret)
                return ret;
  
diff --git a/target/linux/bcm27xx/patches-5.15/950-0596-drm-vc4-dpi-Add-option-for-inverting-pixel-clock-and.patch b/target/linux/bcm27xx/patches-5.15/950-0596-drm-vc4-dpi-Add-option-for-inverting-pixel-clock-and.patch
deleted file mode 100644 (file)
index feea667..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-From e664a91ea54b3488d6c08dd82dac2af1239c3275 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson@raspberrypi.com>
-Date: Thu, 2 Dec 2021 18:21:46 +0000
-Subject: [PATCH] drm/vc4: dpi: Add option for inverting pixel clock
- and output enable
-
-DRM provides flags for inverting pixel clock and output enable
-signals, but these were not mapped to the relevant registers.
-
-Add those mappings.
-
-Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
----
- drivers/gpu/drm/vc4/vc4_dpi.c | 89 ++++++++++++++++++++---------------
- 1 file changed, 51 insertions(+), 38 deletions(-)
-
---- a/drivers/gpu/drm/vc4/vc4_dpi.c
-+++ b/drivers/gpu/drm/vc4/vc4_dpi.c
-@@ -148,45 +148,58 @@ static void vc4_dpi_encoder_enable(struc
-       }
-       drm_connector_list_iter_end(&conn_iter);
--      if (connector && connector->display_info.num_bus_formats) {
--              u32 bus_format = connector->display_info.bus_formats[0];
-+      if (connector) {
-+              if (connector->display_info.num_bus_formats) {
-+                      u32 bus_format = connector->display_info.bus_formats[0];
--              switch (bus_format) {
--              case MEDIA_BUS_FMT_RGB888_1X24:
--                      dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB,
--                                             DPI_FORMAT);
--                      break;
--              case MEDIA_BUS_FMT_BGR888_1X24:
--                      dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB,
--                                             DPI_FORMAT);
--                      dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR, DPI_ORDER);
--                      break;
--              case MEDIA_BUS_FMT_RGB666_1X24_CPADHI:
--                      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);
--                      break;
--              default:
--                      DRM_ERROR("Unknown media bus format %d\n", bus_format);
--                      break;
-+                      switch (bus_format) {
-+                      case MEDIA_BUS_FMT_RGB888_1X24:
-+                              dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB,
-+                                                     DPI_FORMAT);
-+                              break;
-+                      case MEDIA_BUS_FMT_BGR888_1X24:
-+                              dpi_c |= VC4_SET_FIELD(DPI_FORMAT_24BIT_888_RGB,
-+                                                     DPI_FORMAT);
-+                              dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR,
-+                                                     DPI_ORDER);
-+                              break;
-+                      case MEDIA_BUS_FMT_RGB666_1X24_CPADHI:
-+                              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);
-+                              break;
-+                      default:
-+                              DRM_ERROR("Unknown media bus format %d\n",
-+                                        bus_format);
-+                              break;
-+                      }
-               }
-+
-+              if (connector->display_info.bus_flags &
-+                                      DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE)
-+                      dpi_c |= DPI_PIXEL_CLK_INVERT;
-+
-+              if (connector->display_info.bus_flags & DRM_BUS_FLAG_DE_LOW)
-+                      dpi_c |= DPI_OUTPUT_ENABLE_INVERT;
-       } else {
-               /* Default to 18bit if no connector found. */
-               dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1, DPI_FORMAT);
index 7897f8af8b05b25d4cae15eac16df87a9a6c7b25..ab836cbcb8985af4cf985151bf9dca96a72125db 100644 (file)
@@ -15,9 +15,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
-@@ -173,6 +173,10 @@ static void vc4_dpi_encoder_enable(struc
-                               dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR,
-                                                      DPI_ORDER);
+@@ -172,6 +172,10 @@ static void vc4_dpi_encoder_enable(struc
+                                               DPI_FORMAT);
+                               dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR, DPI_ORDER);
                                break;
 +                      default:
 +                              DRM_ERROR("Unknown media bus format %d\n",
@@ -26,8 +26,8 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
                        case MEDIA_BUS_FMT_RGB666_1X18:
                                dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
                                                       DPI_FORMAT);
-@@ -187,11 +191,12 @@ static void vc4_dpi_encoder_enable(struc
-                               dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_3,
+@@ -185,11 +189,12 @@ static void vc4_dpi_encoder_enable(struc
+                               dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_1,
                                                       DPI_FORMAT);
                                break;
 -                      default:
@@ -42,4 +42,4 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 +
                }
  
-               if (connector->display_info.bus_flags &
+               if (connector->display_info.bus_flags & DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE)
index 79487b60cfbac43eb8d147507ac81a639b63579c..9e6778858896f6bba8e2dc0f5473cef3931b6b9f 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.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
  
@@ -39,7 +39,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
  struct imx219_reg {
        u16 address;
        u8 val;
-@@ -538,7 +548,7 @@ static const struct imx219_mode supporte
+@@ -448,7 +458,7 @@ static const struct imx219_mode supporte
  
  struct imx219 {
        struct v4l2_subdev sd;
@@ -48,7 +48,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
  
        struct v4l2_mbus_framefmt fmt;
  
-@@ -688,18 +698,26 @@ static void imx219_set_default_format(st
+@@ -598,18 +608,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);
@@ -83,7 +83,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
  
        /* Initialize try_crop rectangle. */
        try_crop = v4l2_subdev_get_try_crop(sd, fh->state, 0);
-@@ -808,12 +826,21 @@ static int imx219_enum_mbus_code(struct
+@@ -718,12 +736,21 @@ static int imx219_enum_mbus_code(struct
  {
        struct imx219 *imx219 = to_imx219(sd);
  
@@ -109,7 +109,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
  
        return 0;
  }
-@@ -823,21 +850,30 @@ static int imx219_enum_frame_size(struct
+@@ -733,21 +760,30 @@ static int imx219_enum_frame_size(struct
                                  struct v4l2_subdev_frame_size_enum *fse)
  {
        struct imx219 *imx219 = to_imx219(sd);
@@ -151,7 +151,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
  
        return 0;
  }
-@@ -852,9 +888,9 @@ static void imx219_reset_colorspace(stru
+@@ -762,9 +798,9 @@ static void imx219_reset_colorspace(stru
        fmt->xfer_func = V4L2_MAP_XFER_FUNC_DEFAULT(fmt->colorspace);
  }
  
@@ -164,7 +164,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
  {
        fmt->format.width = mode->width;
        fmt->format.height = mode->height;
-@@ -862,21 +898,39 @@ static void imx219_update_pad_format(str
+@@ -772,21 +808,39 @@ static void imx219_update_pad_format(str
        imx219_reset_colorspace(&fmt->format);
  }
  
@@ -208,7 +208,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
        }
  
        return 0;
-@@ -906,51 +960,74 @@ static int imx219_set_pad_format(struct
+@@ -816,51 +870,74 @@ static int imx219_set_pad_format(struct
        int exposure_max, exposure_def, hblank;
        unsigned int i;
  
@@ -326,7 +326,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
        }
  
        mutex_unlock(&imx219->mutex);
-@@ -1037,9 +1114,11 @@ static int imx219_start_streaming(struct
+@@ -976,9 +1053,11 @@ static int imx219_start_streaming(struct
        const struct imx219_reg_list *reg_list;
        int ret;
  
@@ -338,9 +338,9 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
                return ret;
 +      }
  
-       /* Apply default values of current mode */
-       reg_list = &imx219->mode->reg_list;
-@@ -1133,21 +1212,22 @@ err_unlock:
+       /* Send all registers that are common to all modes */
+       ret = imx219_write_regs(imx219, imx219_common_regs, ARRAY_SIZE(imx219_common_regs));
+@@ -1086,21 +1165,22 @@ err_unlock:
  /* Power/clock management functions */
  static int imx219_power_on(struct device *dev)
  {
@@ -366,7 +366,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
                        __func__);
                goto reg_off;
        }
-@@ -1166,7 +1246,8 @@ reg_off:
+@@ -1119,7 +1199,8 @@ reg_off:
  
  static int imx219_power_off(struct device *dev)
  {
@@ -376,7 +376,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
        struct imx219 *imx219 = to_imx219(sd);
  
        gpiod_set_value_cansleep(imx219->reset_gpio, 0);
-@@ -1178,7 +1259,8 @@ static int imx219_power_off(struct devic
+@@ -1131,7 +1212,8 @@ static int imx219_power_off(struct devic
  
  static int __maybe_unused imx219_suspend(struct device *dev)
  {
@@ -386,7 +386,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
        struct imx219 *imx219 = to_imx219(sd);
  
        if (imx219->streaming)
-@@ -1189,7 +1271,8 @@ static int __maybe_unused imx219_suspend
+@@ -1142,7 +1224,8 @@ static int __maybe_unused imx219_suspend
  
  static int __maybe_unused imx219_resume(struct device *dev)
  {
@@ -396,7 +396,7 @@ Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
        struct imx219 *imx219 = to_imx219(sd);
        int ret;
  
-@@ -1525,13 +1608,14 @@ static int imx219_probe(struct i2c_clien
+@@ -1478,13 +1561,14 @@ static int imx219_probe(struct i2c_clien
                            V4L2_SUBDEV_FL_HAS_EVENTS;
        imx219->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
  
index 9ecf5db11d369a535d22202c91d8be7d6c119407..cb0daf15f008c58942b2d342410a68b9458af38a 100644 (file)
@@ -38,7 +38,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  static void vc4_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi, bool enable)
  {
        unsigned long flags;
-@@ -1219,15 +1211,6 @@ static void vc4_hdmi_encoder_post_crtc_e
+@@ -1220,15 +1212,6 @@ static void vc4_hdmi_encoder_post_crtc_e
        mutex_unlock(&vc4_hdmi->mutex);
  }
  
@@ -54,7 +54,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  static void vc4_hdmi_encoder_atomic_mode_set(struct drm_encoder *encoder,
                                             struct drm_crtc_state *crtc_state,
                                             struct drm_connector_state *conn_state)
-@@ -1321,8 +1304,6 @@ static const struct drm_encoder_helper_f
+@@ -1322,8 +1305,6 @@ static const struct drm_encoder_helper_f
        .atomic_check = vc4_hdmi_encoder_atomic_check,
        .atomic_mode_set = vc4_hdmi_encoder_atomic_mode_set,
        .mode_valid = vc4_hdmi_encoder_mode_valid,
@@ -63,7 +63,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  };
  
  static u32 vc4_hdmi_channel_map(struct vc4_hdmi *vc4_hdmi, u32 channel_mask)
-@@ -1422,16 +1403,10 @@ static bool vc4_hdmi_audio_can_stream(st
+@@ -1423,16 +1404,10 @@ static bool vc4_hdmi_audio_can_stream(st
        lockdep_assert_held(&vc4_hdmi->mutex);
  
        /*
index ac2e8e9839bf36bbdb74be9237412601fd4c8f67..777cdda54ff7d8aeafd620a4a24c5887804596be 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -2280,7 +2280,7 @@ static int vc4_hdmi_cec_init(struct vc4_
+@@ -2281,7 +2281,7 @@ static int vc4_hdmi_cec_init(struct vc4_
  
  static void vc4_hdmi_cec_exit(struct vc4_hdmi *vc4_hdmi) {};
  
index fd1c51dd48e1ce775323ab2e5c85b6e6e40e6a35..ab4587cb12fdae5c042524758019304690601ac5 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
        spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);
  
        HDMI_WRITE(HDMI_RAM_PACKET_CONFIG, 0);
-@@ -1201,6 +1202,7 @@ static void vc4_hdmi_encoder_post_crtc_e
+@@ -1202,6 +1203,7 @@ static void vc4_hdmi_encoder_post_crtc_e
                           VC4_HDMI_RAM_PACKET_ENABLE);
  
                spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags);
@@ -31,7 +31,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  
                vc4_hdmi_set_infoframes(encoder);
        }
-@@ -1606,7 +1608,8 @@ static int vc4_hdmi_audio_prepare(struct
+@@ -1607,7 +1609,8 @@ static int vc4_hdmi_audio_prepare(struct
        spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags);
  
        memcpy(&vc4_hdmi->audio.infoframe, &params->cea, sizeof(params->cea));
index de80fe4628f23e8965e77675cbf6696aeb41ad86..a9269e4cad930061916a79d7252a0a3cdca8bdd8 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 
 --- a/drivers/gpu/drm/drm_edid.c
 +++ b/drivers/gpu/drm/drm_edid.c
-@@ -5743,13 +5743,13 @@ static const u32 hdmi_colorimetry_val[]
+@@ -5746,13 +5746,13 @@ static const u32 hdmi_colorimetry_val[]
  #undef ACE
  
  /**
@@ -43,7 +43,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                                  const struct drm_connector_state *conn_state)
  {
        u32 colorimetry_val;
-@@ -5768,7 +5768,7 @@ drm_hdmi_avi_infoframe_colorspace(struct
+@@ -5771,7 +5771,7 @@ drm_hdmi_avi_infoframe_colorspace(struct
        frame->extended_colorimetry = (colorimetry_val >> 2) &
                                        EXTENDED_COLORIMETRY_MASK;
  }
index 75d96d74e37395c8c9739e4ae5f3b07736b463bf..f590f4fa40f733f02be4673f03a599b023e86049 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused)
  {
        struct drm_info_node *node = (struct drm_info_node *)m->private;
-@@ -1116,8 +1125,7 @@ static void vc4_hdmi_encoder_pre_crtc_en
+@@ -1117,8 +1126,7 @@ static void vc4_hdmi_encoder_pre_crtc_en
  
        mutex_lock(&vc4_hdmi->mutex);
  
index 5ec3643a501b85508d5d2b7b44928113fe455695..9f3b81e5480188e0ab2f17079f89e7c225e91a7e 100644 (file)
@@ -79,7 +79,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                /* CEA VICs other than #1 requre limited range RGB
                 * output unless overridden by an AVI infoframe.
                 * Apply a colorspace conversion to squash 0-255 down
-@@ -1120,22 +1121,12 @@ static void vc4_hdmi_encoder_pre_crtc_en
+@@ -1121,22 +1122,12 @@ static void vc4_hdmi_encoder_pre_crtc_en
  {
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
        struct drm_display_mode *mode = &vc4_hdmi->saved_adjusted_mode;
index 879be397b9f8da665ffc346f48406b56e8dde849..aba91b5572170d26d7a4fd84512b3397a29a7998 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (!vc4_hdmi_is_full_range_rgb(vc4_hdmi, mode)) {
                /* CEA VICs other than #1 requre limited range RGB
                 * output unless overridden by an AVI infoframe.
-@@ -906,7 +908,6 @@ static void vc5_hdmi_set_timings(struct
+@@ -907,7 +909,6 @@ static void vc5_hdmi_set_timings(struct
  
        spin_lock_irqsave(&vc4_hdmi->hw_lock, flags);
  
index 37dbb8c94203edaf6244a2890d82e4c6ac4a5efa..c4349f55bc04a1e712c8bb48489d76e369a06021 100644 (file)
@@ -30,7 +30,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
 --- a/drivers/gpu/drm/vc4/vc4_regs.h
 +++ b/drivers/gpu/drm/vc4/vc4_regs.h
-@@ -804,6 +804,9 @@ enum {
+@@ -810,6 +810,9 @@ enum {
  # define VC4_HD_CSC_CTL_RGB2YCC                       BIT(1)
  # define VC4_HD_CSC_CTL_ENABLE                        BIT(0)
  
index 61911b4825fb472b0c8ee70b7e8276bf796965a2..5a1328fa5e97bd9bb55f12977009192757f8c31d 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                               const struct drm_display_mode *mode)
  {
        unsigned long flags;
-@@ -1141,13 +1143,16 @@ static void vc4_hdmi_encoder_pre_crtc_en
+@@ -1142,13 +1144,16 @@ static void vc4_hdmi_encoder_pre_crtc_en
                                             struct drm_atomic_state *state)
  {
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
index f0b5b48149e3df170443e5309d5d33b1810dff08..539d62c3abffba7e9b81334f8922d63e365eb560 100644 (file)
@@ -14,7 +14,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
-@@ -1251,6 +1251,19 @@ static void vc4_hdmi_encoder_atomic_mode
+@@ -1252,6 +1252,19 @@ static void vc4_hdmi_encoder_atomic_mode
        mutex_unlock(&vc4_hdmi->mutex);
  }
  
@@ -34,7 +34,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  #define WIFI_2_4GHz_CH1_MIN_FREQ      2400000000ULL
  #define WIFI_2_4GHz_CH1_MAX_FREQ      2422000000ULL
  
-@@ -1295,10 +1308,7 @@ static int vc4_hdmi_encoder_atomic_check
+@@ -1296,10 +1309,7 @@ static int vc4_hdmi_encoder_atomic_check
        if (mode->flags & DRM_MODE_FLAG_DBLCLK)
                pixel_rate = pixel_rate * 2;
  
@@ -46,7 +46,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                return -EINVAL;
  
        vc4_state->pixel_rate = pixel_rate;
-@@ -1318,13 +1328,7 @@ vc4_hdmi_encoder_mode_valid(struct drm_e
+@@ -1319,13 +1329,7 @@ vc4_hdmi_encoder_mode_valid(struct drm_e
             (mode->hsync_end % 2) || (mode->htotal % 2)))
                return MODE_H_ILLEGAL;
  
index 7b99321e6d77fe34877902f36f9332ac81526cc4..04a32b2396cd6ca89fb33685835ec6667296669f 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
-@@ -1264,6 +1264,35 @@ vc4_hdmi_encoder_clock_valid(const struc
+@@ -1265,6 +1265,35 @@ vc4_hdmi_encoder_clock_valid(const struc
        return MODE_OK;
  }
  
@@ -51,7 +51,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  #define WIFI_2_4GHz_CH1_MIN_FREQ      2400000000ULL
  #define WIFI_2_4GHz_CH1_MAX_FREQ      2422000000ULL
  
-@@ -1276,6 +1305,7 @@ static int vc4_hdmi_encoder_atomic_check
+@@ -1277,6 +1306,7 @@ static int vc4_hdmi_encoder_atomic_check
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
        unsigned long long pixel_rate = mode->clock * 1000;
        unsigned long long tmds_rate;
@@ -59,7 +59,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        if (vc4_hdmi->variant->unsupported_odd_h_timings &&
            !(mode->flags & DRM_MODE_FLAG_DBLCLK) &&
-@@ -1297,21 +1327,10 @@ static int vc4_hdmi_encoder_atomic_check
+@@ -1298,21 +1328,10 @@ static int vc4_hdmi_encoder_atomic_check
                pixel_rate = mode->clock * 1000;
        }
  
index ee520595f7272cb1377713fe035f7ea7efc07109..8f999472d2c922e384f6c326d5827b932d6753bd 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
-@@ -1255,12 +1255,18 @@ static enum drm_mode_status
+@@ -1256,12 +1256,18 @@ static enum drm_mode_status
  vc4_hdmi_encoder_clock_valid(const struct vc4_hdmi *vc4_hdmi,
                             unsigned long long clock)
  {
index 608cc18fda94ffb29699d2bb107073386cb491e4..db29d11f387fa3945ed17f9a727045b7a2a5107c 100644 (file)
@@ -57,7 +57,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                return;
  
        drm_scdc_set_high_tmds_clock_ratio(vc4_hdmi->ddc, true);
-@@ -1245,6 +1253,7 @@ static void vc4_hdmi_encoder_atomic_mode
+@@ -1246,6 +1254,7 @@ static void vc4_hdmi_encoder_atomic_mode
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
  
        mutex_lock(&vc4_hdmi->mutex);
index 50bbb7a5077841969fc347f68fd10a37219ef467..869fa19643d25eb68d8aeeed267cf6a310d911d3 100644 (file)
@@ -38,7 +38,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        bool hsync_pos = mode->flags & DRM_MODE_FLAG_PHSYNC;
        bool vsync_pos = mode->flags & DRM_MODE_FLAG_PVSYNC;
        bool interlaced = mode->flags & DRM_MODE_FLAG_INTERLACE;
-@@ -961,7 +964,7 @@ static void vc5_hdmi_set_timings(struct
+@@ -962,7 +965,7 @@ static void vc5_hdmi_set_timings(struct
        HDMI_WRITE(HDMI_VERTB0, vertb_even);
        HDMI_WRITE(HDMI_VERTB1, vertb);
  
@@ -47,7 +47,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        case 12:
                gcp = 6;
                gcp_en = true;
-@@ -1251,9 +1254,11 @@ static void vc4_hdmi_encoder_atomic_mode
+@@ -1252,9 +1255,11 @@ static void vc4_hdmi_encoder_atomic_mode
                                             struct drm_connector_state *conn_state)
  {
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
@@ -60,7 +60,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        memcpy(&vc4_hdmi->saved_adjusted_mode,
               &crtc_state->adjusted_mode,
               sizeof(vc4_hdmi->saved_adjusted_mode));
-@@ -1308,6 +1313,38 @@ vc4_hdmi_encoder_compute_clock(const str
+@@ -1309,6 +1314,38 @@ vc4_hdmi_encoder_compute_clock(const str
        return 0;
  }
  
@@ -99,7 +99,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  #define WIFI_2_4GHz_CH1_MIN_FREQ      2400000000ULL
  #define WIFI_2_4GHz_CH1_MAX_FREQ      2422000000ULL
  
-@@ -1342,8 +1379,7 @@ static int vc4_hdmi_encoder_atomic_check
+@@ -1343,8 +1380,7 @@ static int vc4_hdmi_encoder_atomic_check
                pixel_rate = mode->clock * 1000;
        }
  
index 47db6abaf5eb6a153befd200596df00664049771..4c92bc29614b1e89d4f7751b3b03f81a4db23009 100644 (file)
@@ -234,7 +234,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        HDMI_WRITE(HDMI_CSC_CTL, csc_ctl);
  
        spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags);
-@@ -980,6 +1093,15 @@ static void vc5_hdmi_set_timings(struct
+@@ -981,6 +1094,15 @@ static void vc5_hdmi_set_timings(struct
                break;
        }
  
@@ -250,7 +250,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        reg = HDMI_READ(HDMI_DEEP_COLOR_CONFIG_1);
        reg &= ~(VC5_HDMI_DEEP_COLOR_CONFIG_1_INIT_PACK_PHASE_MASK |
                 VC5_HDMI_DEEP_COLOR_CONFIG_1_COLOR_DEPTH_MASK);
-@@ -1259,12 +1381,97 @@ static void vc4_hdmi_encoder_atomic_mode
+@@ -1260,12 +1382,97 @@ static void vc4_hdmi_encoder_atomic_mode
  
        mutex_lock(&vc4_hdmi->mutex);
        vc4_hdmi->output_bpc = vc4_state->output_bpc;
@@ -348,7 +348,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static enum drm_mode_status
  vc4_hdmi_encoder_clock_valid(const struct vc4_hdmi *vc4_hdmi,
                             unsigned long long clock)
-@@ -1286,13 +1493,17 @@ vc4_hdmi_encoder_clock_valid(const struc
+@@ -1287,13 +1494,17 @@ vc4_hdmi_encoder_clock_valid(const struc
  
  static unsigned long long
  vc4_hdmi_encoder_compute_mode_clock(const struct drm_display_mode *mode,
@@ -367,7 +367,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        return clock * bpc / 8;
  }
  
-@@ -1300,11 +1511,11 @@ static int
+@@ -1301,11 +1512,11 @@ static int
  vc4_hdmi_encoder_compute_clock(const struct vc4_hdmi *vc4_hdmi,
                               struct vc4_hdmi_connector_state *vc4_state,
                               const struct drm_display_mode *mode,
@@ -381,7 +381,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        if (vc4_hdmi_encoder_clock_valid(vc4_hdmi, clock) != MODE_OK)
                return -EINVAL;
  
-@@ -1314,10 +1525,55 @@ vc4_hdmi_encoder_compute_clock(const str
+@@ -1315,10 +1526,55 @@ vc4_hdmi_encoder_compute_clock(const str
  }
  
  static int
@@ -437,7 +437,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        struct drm_connector_state *conn_state = &vc4_state->base;
        unsigned int max_bpc = clamp_t(unsigned int, conn_state->max_bpc, 8, 12);
        unsigned int bpc;
-@@ -1326,17 +1582,18 @@ vc4_hdmi_encoder_compute_config(const st
+@@ -1327,17 +1583,18 @@ vc4_hdmi_encoder_compute_config(const st
        for (bpc = max_bpc; bpc >= 8; bpc -= 2) {
                drm_dbg(dev, "Trying with a %d bpc output\n", bpc);
  
@@ -548,7 +548,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static inline
 --- a/drivers/gpu/drm/vc4/vc4_regs.h
 +++ b/drivers/gpu/drm/vc4/vc4_regs.h
-@@ -804,11 +804,27 @@ enum {
+@@ -810,11 +810,27 @@ enum {
  # define VC4_HD_CSC_CTL_RGB2YCC                       BIT(1)
  # define VC4_HD_CSC_CTL_ENABLE                        BIT(0)
  
index 8e1f4bb68128790addcb6494a6ac86af763869ef..644ea123d578c36bfb3b2e7c8c5a1c75af3bcac9 100644 (file)
@@ -17,7 +17,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
-@@ -1415,9 +1415,6 @@ vc4_hdmi_sink_supports_format_bpc(const
+@@ -1416,9 +1416,6 @@ vc4_hdmi_sink_supports_format_bpc(const
        case VC4_HDMI_OUTPUT_RGB:
                drm_dbg(dev, "RGB Format, checking the constraints.\n");
  
index f1b3a2af8f56818f60b801f813c9882f94194984..80e9a728541423462e6e53c4352a183c039a439d 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -664,6 +664,48 @@ static const u32 colorspace_coeffs[2][DR
+@@ -666,6 +666,48 @@ static const u32 colorspace_coeffs[2][DR
        }
  };
  
@@ -63,7 +63,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  /* Writes out a full display list for an active plane to the plane's
   * private dlist state.
   */
-@@ -946,13 +988,8 @@ static int vc4_plane_mode_set(struct drm
+@@ -948,13 +990,8 @@ static int vc4_plane_mode_set(struct drm
                /* Position Word 2: Source Image Size, Alpha */
                vc4_state->pos2_offset = vc4_state->dlist_count;
                vc4_dlist_write(vc4_state,
@@ -78,7 +78,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
                                VC4_SET_FIELD(vc4_state->src_w[0],
                                              SCALER_POS2_WIDTH) |
                                VC4_SET_FIELD(vc4_state->src_h[0],
-@@ -997,14 +1034,9 @@ static int vc4_plane_mode_set(struct drm
+@@ -999,14 +1036,9 @@ static int vc4_plane_mode_set(struct drm
                vc4_dlist_write(vc4_state,
                                VC4_SET_FIELD(state->alpha >> 4,
                                              SCALER5_CTL2_ALPHA) |
@@ -95,7 +95,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
                               );
  
                /* Position Word 1: Scaled Image Dimensions. */
-@@ -1494,6 +1526,10 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1496,6 +1528,10 @@ struct drm_plane *vc4_plane_init(struct
        drm_plane_helper_add(plane, &vc4_plane_helper_funcs);
  
        drm_plane_create_alpha_property(plane);
index 815bdd0a321df8c8a85d548a4e7d038fd327ecfc..67fbf40e761f5f80baf3c1f3bd1fa149bb9cfaeb 100644 (file)
@@ -18,7 +18,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
-@@ -1496,7 +1496,7 @@ vc4_hdmi_encoder_compute_mode_clock(cons
+@@ -1497,7 +1497,7 @@ vc4_hdmi_encoder_compute_mode_clock(cons
                                    unsigned int bpc,
                                    enum vc4_hdmi_output_format fmt)
  {
index 41ac28a673022f6725f6831073a994793d28c193..5396b7b193ccb890d18a25ab8fd3d1c5f8240311 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/mfd/Kconfig
 +++ b/drivers/mfd/Kconfig
-@@ -1093,6 +1093,16 @@ config MFD_SPMI_PMIC
+@@ -1094,6 +1094,16 @@ config MFD_SPMI_PMIC
          Say M here if you want to include support for the SPMI PMIC
          series as a module.  The module will be called "qcom-spmi-pmic".
  
index 00324e11e916ed9522ecae8db9561656e1b3deea..cfad9fc7afcab0a72fec74b199ff21ebe7e4437b 100644 (file)
@@ -167,7 +167,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
        drm_connector_attach_encoder(connector, encoder);
  
        return 0;
-@@ -1385,6 +1487,7 @@ static void vc4_hdmi_encoder_atomic_mode
+@@ -1386,6 +1488,7 @@ static void vc4_hdmi_encoder_atomic_mode
        mutex_lock(&vc4_hdmi->mutex);
        vc4_hdmi->output_bpc = vc4_state->output_bpc;
        vc4_hdmi->output_format = vc4_state->output_format;
index 76b5ee5dbbe80433473502569b46e71424c89819..0eb0af1afafc9a7add6782bc26214f41e1eabcfa 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -135,6 +135,34 @@ static const struct hvs_format {
+@@ -137,6 +137,34 @@ static const struct hvs_format {
                .pixel_order = HVS_PIXEL_ORDER_XYCBCR,
                .hvs5_only = true,
        },
index 52721d6e9903dab80300c722a12765b802d2770f..ccbb2c636dd26518117e51c433a5b66886a208bd 100644 (file)
@@ -18,8 +18,8 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 
 --- a/drivers/gpu/drm/vc4/vc4_dpi.c
 +++ b/drivers/gpu/drm/vc4/vc4_dpi.c
-@@ -191,6 +191,10 @@ static void vc4_dpi_encoder_enable(struc
-                               dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_3,
+@@ -189,6 +189,10 @@ static void vc4_dpi_encoder_enable(struc
+                               dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_1,
                                                       DPI_FORMAT);
                                break;
 +                      case MEDIA_BUS_FMT_RGB565_1X24_CPADHI:
index 124117ce8bfdd7a4e081d2d8838041eda2e86ed7..83bf71c265b735ed6e241ac2a1f48a08ac8a2db8 100644 (file)
@@ -15,53 +15,53 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
 
 --- a/drivers/media/i2c/imx219.c
 +++ b/drivers/media/i2c/imx219.c
-@@ -153,6 +153,9 @@ struct imx219_mode {
+@@ -162,6 +162,9 @@ struct imx219_mode {
  
-       /* Default register values */
-       struct imx219_reg_list reg_list;
+       /* 2x2 binning is used */
+       bool binning;
 +
 +      /* Relative pixel clock rate factor for the mode. */
 +      unsigned int rate_factor;
  };
  
- /*
-@@ -495,6 +498,7 @@ static const struct imx219_mode supporte
-                       .num_of_regs = ARRAY_SIZE(mode_3280x2464_regs),
+ static const struct imx219_reg imx219_common_regs[] = {
+@@ -402,6 +405,7 @@ static const struct imx219_mode supporte
                        .regs = mode_3280x2464_regs,
                },
+               .binning = false,
 +              .rate_factor = 1,
        },
        {
                /* 1080P 30fps cropped */
-@@ -511,6 +515,7 @@ static const struct imx219_mode supporte
-                       .num_of_regs = ARRAY_SIZE(mode_1920_1080_regs),
+@@ -419,6 +423,7 @@ static const struct imx219_mode supporte
                        .regs = mode_1920_1080_regs,
                },
+               .binning = false,
 +              .rate_factor = 1,
        },
        {
                /* 2x2 binned 30fps mode */
-@@ -527,6 +532,7 @@ static const struct imx219_mode supporte
-                       .num_of_regs = ARRAY_SIZE(mode_1640_1232_regs),
+@@ -436,6 +441,7 @@ static const struct imx219_mode supporte
                        .regs = mode_1640_1232_regs,
                },
+               .binning = true,
 +              .rate_factor = 1,
        },
        {
                /* 640x480 30fps mode */
-@@ -543,6 +549,11 @@ static const struct imx219_mode supporte
-                       .num_of_regs = ARRAY_SIZE(mode_640_480_regs),
+@@ -453,6 +459,11 @@ static const struct imx219_mode supporte
                        .regs = mode_640_480_regs,
                },
+               .binning = true,
 +              /*
-+               * This mode uses a special 2x2 binning that doubles the
-+               * the internal pixel clock rate.
-+               */
++              * This mode uses a special 2x2 binning that doubles the
++              * the internal pixel clock rate.
++              */
 +              .rate_factor = 2,
        },
  };
  
-@@ -765,7 +776,8 @@ static int imx219_set_ctrl(struct v4l2_c
+@@ -675,7 +686,8 @@ static int imx219_set_ctrl(struct v4l2_c
                break;
        case V4L2_CID_EXPOSURE:
                ret = imx219_write_reg(imx219, IMX219_REG_EXPOSURE,
@@ -71,7 +71,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
                break;
        case V4L2_CID_DIGITAL_GAIN:
                ret = imx219_write_reg(imx219, IMX219_REG_DIGITAL_GAIN,
-@@ -785,7 +797,8 @@ static int imx219_set_ctrl(struct v4l2_c
+@@ -695,7 +707,8 @@ static int imx219_set_ctrl(struct v4l2_c
        case V4L2_CID_VBLANK:
                ret = imx219_write_reg(imx219, IMX219_REG_VTS,
                                       IMX219_REG_VALUE_16BIT,
@@ -81,7 +81,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
                break;
        case V4L2_CID_TEST_PATTERN_RED:
                ret = imx219_write_reg(imx219, IMX219_REG_TESTP_RED,
-@@ -957,7 +970,7 @@ static int imx219_set_pad_format(struct
+@@ -867,7 +880,7 @@ static int imx219_set_pad_format(struct
        struct imx219 *imx219 = to_imx219(sd);
        const struct imx219_mode *mode;
        struct v4l2_mbus_framefmt *framefmt;
@@ -90,7 +90,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
        unsigned int i;
  
        if (fmt->pad >= NUM_PADS)
-@@ -1018,6 +1031,12 @@ static int imx219_set_pad_format(struct
+@@ -928,6 +941,12 @@ static int imx219_set_pad_format(struct
                        hblank = IMX219_PPL_DEFAULT - mode->width;
                        __v4l2_ctrl_modify_range(imx219->hblank, hblank, hblank,
                                                 1, hblank);
@@ -103,7 +103,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
                }
        } else {
                if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
-@@ -1362,7 +1381,7 @@ static int imx219_init_controls(struct i
+@@ -1315,7 +1334,7 @@ static int imx219_init_controls(struct i
        struct v4l2_ctrl_handler *ctrl_hdlr;
        unsigned int height = imx219->mode->height;
        struct v4l2_fwnode_device_properties props;
@@ -112,7 +112,7 @@ Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
        int i, ret;
  
        ctrl_hdlr = &imx219->ctrl_handler;
-@@ -1374,11 +1393,11 @@ static int imx219_init_controls(struct i
+@@ -1327,11 +1346,11 @@ static int imx219_init_controls(struct i
        ctrl_hdlr->lock = &imx219->mutex;
  
        /* By default, PIXEL_RATE is read only */
diff --git a/target/linux/bcm27xx/patches-5.15/950-0707-drm-vc4-For-DPI-MEDIA_BUS_FMT_RGB565_1X16-is-mode-1-.patch b/target/linux/bcm27xx/patches-5.15/950-0707-drm-vc4-For-DPI-MEDIA_BUS_FMT_RGB565_1X16-is-mode-1-.patch
deleted file mode 100644 (file)
index 9e4b56d..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-From 4626e370de018aed097d54247bae5a29391198ee Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson@raspberrypi.com>
-Date: Mon, 14 Feb 2022 15:34:51 +0000
-Subject: [PATCH] drm/vc4: For DPI, MEDIA_BUS_FMT_RGB565_1X16 is mode
- 1, not 3.
-
-The mapping is incorrect for RGB565_1X16 as it should be
-DPI_FORMAT_18BIT_666_RGB_1 instead of DPI_FORMAT_18BIT_666_RGB_3.
-
-Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
----
- drivers/gpu/drm/vc4/vc4_dpi.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/gpu/drm/vc4/vc4_dpi.c
-+++ b/drivers/gpu/drm/vc4/vc4_dpi.c
-@@ -188,7 +188,7 @@ static void vc4_dpi_encoder_enable(struc
-                                                      DPI_ORDER);
-                               break;
-                       case MEDIA_BUS_FMT_RGB565_1X16:
--                              dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_3,
-+                              dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_1,
-                                                      DPI_FORMAT);
-                               break;
-                       case MEDIA_BUS_FMT_RGB565_1X24_CPADHI:
index 8f699626402b68bdb61bd4eaad39f57c78192bf3..9fce5fec6b63084a289cc5e5c590523224a5de8b 100644 (file)
@@ -399,7 +399,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
         * overwrite the setup from the bootloader (just 128b out of
 --- a/drivers/gpu/drm/vc4/vc4_regs.h
 +++ b/drivers/gpu/drm/vc4/vc4_regs.h
-@@ -234,6 +234,7 @@
+@@ -240,6 +240,7 @@
  # define SCALER_DISPCTRL_DSPEIEOLN(x)         BIT(8 + ((x) * 2))
  /* Enables Display 0 EOF contribution to SCALER_DISPSTAT_IRQDISP0 */
  # define SCALER_DISPCTRL_DSPEIEOF(x)          BIT(7 + ((x) * 2))
index 8c1b0ec80539ab957ae4f793a817d92985cb7893..d9e2b16b41bc70be6a3cf0f74b75ef2c547807a8 100644 (file)
@@ -88,7 +88,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
        if (ret)
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -1573,9 +1573,14 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1575,9 +1575,14 @@ struct drm_plane *vc4_plane_init(struct
                                          DRM_COLOR_YCBCR_BT709,
                                          DRM_COLOR_YCBCR_LIMITED_RANGE);
  
@@ -103,7 +103,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
  int vc4_plane_create_additional_planes(struct drm_device *drm)
  {
        struct drm_plane *cursor_plane;
-@@ -1591,7 +1596,7 @@ int vc4_plane_create_additional_planes(s
+@@ -1593,7 +1598,7 @@ int vc4_plane_create_additional_planes(s
         * modest number of planes to expose, that should hopefully
         * still cover any sane usecase.
         */
@@ -112,7 +112,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
                struct drm_plane *plane =
                        vc4_plane_init(drm, DRM_PLANE_TYPE_OVERLAY);
  
-@@ -1600,17 +1605,28 @@ int vc4_plane_create_additional_planes(s
+@@ -1602,17 +1607,28 @@ int vc4_plane_create_additional_planes(s
  
                plane->possible_crtcs =
                        GENMASK(drm->mode_config.num_crtc - 1, 0);
index 7bb57aafa5a41819687fcd78abee6cab6201d1be..ba27bbc6d5dd8027dbd50d644194e37ba7afa0c9 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
        u32 src_w[2], src_h[2];
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -179,9 +179,9 @@ static const struct hvs_format *vc4_get_
+@@ -181,9 +181,9 @@ static const struct hvs_format *vc4_get_
  
  static enum vc4_scaling_mode vc4_get_scaling_mode(u32 src, u32 dst)
  {
@@ -35,7 +35,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                return VC4_SCALING_PPF;
        else
                return VC4_SCALING_TPZ;
-@@ -388,15 +388,10 @@ static int vc4_plane_setup_clipping_and_
+@@ -390,15 +390,10 @@ static int vc4_plane_setup_clipping_and_
        for (i = 0; i < num_planes; i++)
                vc4_state->offsets[i] = bo->paddr + fb->offsets[i];
  
@@ -55,7 +55,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  
        vc4_state->crtc_x = state->dst.x1;
        vc4_state->crtc_y = state->dst.y1;
-@@ -449,7 +444,7 @@ static void vc4_write_tpz(struct vc4_pla
+@@ -451,7 +446,7 @@ static void vc4_write_tpz(struct vc4_pla
  {
        u32 scale, recip;
  
@@ -64,7 +64,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  
        /* The specs note that while the reciprocal would be defined
         * as (1<<32)/scale, ~0 is close enough.
-@@ -495,7 +490,7 @@ static u32 vc4_lbm_size(struct drm_plane
+@@ -497,7 +492,7 @@ static u32 vc4_lbm_size(struct drm_plane
        if (vc4_state->x_scaling[0] == VC4_SCALING_TPZ)
                pix_per_line = vc4_state->crtc_w;
        else
@@ -73,7 +73,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  
        if (!vc4_state->is_yuv) {
                if (vc4_state->y_scaling[0] == VC4_SCALING_TPZ)
-@@ -586,7 +581,8 @@ static void vc4_plane_calc_load(struct d
+@@ -588,7 +583,8 @@ static void vc4_plane_calc_load(struct d
        for (i = 0; i < fb->format->num_planes; i++) {
                /* Even if the bandwidth/plane required for a single frame is
                 *
@@ -83,7 +83,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                 *
                 * when downscaling, we have to read more pixels per line in
                 * the time frame reserved for a single line, so the bandwidth
-@@ -595,11 +591,11 @@ static void vc4_plane_calc_load(struct d
+@@ -597,11 +593,11 @@ static void vc4_plane_calc_load(struct d
                 * load by this number. We're likely over-estimating the read
                 * demand, but that's better than under-estimating it.
                 */
@@ -99,7 +99,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                vc4_state->hvs_load += vc4_state->crtc_h * vc4_state->crtc_w;
        }
  
-@@ -752,7 +748,8 @@ static int vc4_plane_mode_set(struct drm
+@@ -754,7 +750,8 @@ static int vc4_plane_mode_set(struct drm
        bool mix_plane_alpha;
        bool covers_screen;
        u32 scl0, scl1, pitch0;
@@ -109,7 +109,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
        u32 hvs_format = format->hvs;
        unsigned int rotation;
        int ret, i;
-@@ -764,6 +761,9 @@ static int vc4_plane_mode_set(struct drm
+@@ -766,6 +763,9 @@ static int vc4_plane_mode_set(struct drm
        if (ret)
                return ret;
  
@@ -119,7 +119,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
        /* SCL1 is used for Cb/Cr scaling of planar formats.  For RGB
         * and 4:4:4, scl1 should be set to scl0 so both channels of
         * the scaler do the same thing.  For YUV, the Y plane needs
-@@ -784,9 +784,11 @@ static int vc4_plane_mode_set(struct drm
+@@ -786,9 +786,11 @@ static int vc4_plane_mode_set(struct drm
                                         DRM_MODE_REFLECT_Y);
  
        /* We must point to the last line when Y reflection is enabled. */
@@ -133,7 +133,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  
        switch (base_format_mod) {
        case DRM_FORMAT_MOD_LINEAR:
-@@ -801,7 +803,7 @@ static int vc4_plane_mode_set(struct drm
+@@ -803,7 +805,7 @@ static int vc4_plane_mode_set(struct drm
                                                 (i ? v_subsample : 1) *
                                                 fb->pitches[i];
  
@@ -142,7 +142,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                                                 (i ? h_subsample : 1) *
                                                 fb->format->cpp[i];
                }
-@@ -824,7 +826,7 @@ static int vc4_plane_mode_set(struct drm
+@@ -826,7 +828,7 @@ static int vc4_plane_mode_set(struct drm
                 *      pitch * tile_h == tile_size * tiles_per_row
                 */
                u32 tiles_w = fb->pitches[0] >> (tile_size_shift - tile_h_shift);
@@ -151,7 +151,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                u32 tiles_r = tiles_w - tiles_l;
                u32 tiles_t = src_y >> tile_h_shift;
                /* Intra-tile offsets, which modify the base address (the
-@@ -834,7 +836,7 @@ static int vc4_plane_mode_set(struct drm
+@@ -836,7 +838,7 @@ static int vc4_plane_mode_set(struct drm
                u32 tile_y = (src_y >> 4) & 1;
                u32 subtile_y = (src_y >> 2) & 3;
                u32 utile_y = src_y & 3;
@@ -160,7 +160,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                u32 y_off = src_y & tile_h_mask;
  
                /* When Y reflection is requested we must set the
-@@ -930,7 +932,7 @@ static int vc4_plane_mode_set(struct drm
+@@ -932,7 +934,7 @@ static int vc4_plane_mode_set(struct drm
                                 * of the 12-pixels in that 128-bit word is the
                                 * first pixel to be used
                                 */
@@ -169,7 +169,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                                u32 aligned = remaining_pixels / 12;
                                u32 last_bits = remaining_pixels % 12;
  
-@@ -952,12 +954,12 @@ static int vc4_plane_mode_set(struct drm
+@@ -954,12 +956,12 @@ static int vc4_plane_mode_set(struct drm
                                        return -EINVAL;
                                }
                                pix_per_tile = tile_w / fb->format->cpp[0];
@@ -184,7 +184,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  
                        vc4_state->offsets[i] += param * tile_w * tile;
                        vc4_state->offsets[i] += src_y /
-@@ -1018,10 +1020,8 @@ static int vc4_plane_mode_set(struct drm
+@@ -1020,10 +1022,8 @@ static int vc4_plane_mode_set(struct drm
                vc4_dlist_write(vc4_state,
                                (mix_plane_alpha ? SCALER_POS2_ALPHA_MIX : 0) |
                                vc4_hvs4_get_alpha_blend_mode(state) |
@@ -197,7 +197,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  
                /* Position Word 3: Context.  Written by the HVS. */
                vc4_dlist_write(vc4_state, 0xc0c0c0c0);
-@@ -1079,10 +1079,8 @@ static int vc4_plane_mode_set(struct drm
+@@ -1081,10 +1081,8 @@ static int vc4_plane_mode_set(struct drm
                /* Position Word 2: Source Image Size */
                vc4_state->pos2_offset = vc4_state->dlist_count;
                vc4_dlist_write(vc4_state,
index bfd8b07a295ea1e84c3b5099d7fb42fd20dc694f..92aed82aee2ef2e9e51f49b9cef728ef00b0101e 100644 (file)
@@ -11,7 +11,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
-@@ -458,14 +458,47 @@ static void vc4_write_tpz(struct vc4_pla
+@@ -460,14 +460,47 @@ static void vc4_write_tpz(struct vc4_pla
                        VC4_SET_FIELD(recip, SCALER_TPZ1_RECIP));
  }
  
@@ -62,7 +62,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
  }
  
  static u32 vc4_lbm_size(struct drm_plane_state *state)
-@@ -524,13 +557,13 @@ static void vc4_write_scaling_parameters
+@@ -526,13 +559,13 @@ static void vc4_write_scaling_parameters
        /* Ch0 H-PPF Word 0: Scaling Parameters */
        if (vc4_state->x_scaling[channel] == VC4_SCALING_PPF) {
                vc4_write_ppf(vc4_state,
@@ -78,7 +78,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                vc4_dlist_write(vc4_state, 0xc0c0c0c0);
        }
  
-@@ -978,6 +1011,24 @@ static int vc4_plane_mode_set(struct drm
+@@ -980,6 +1013,24 @@ static int vc4_plane_mode_set(struct drm
                return -EINVAL;
        }
  
index 74ffa102008b3139a31897ffda74c37d50969f4e..afbde785f1469bba9d46ffce3379e1f80d928d67 100644 (file)
@@ -10,7 +10,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
-@@ -461,17 +461,18 @@ static void vc4_write_tpz(struct vc4_pla
+@@ -463,17 +463,18 @@ static void vc4_write_tpz(struct vc4_pla
  /* phase magnitude bits */
  #define PHASE_BITS 6
  
@@ -31,7 +31,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                offset += -(1 << PHASE_BITS >> 2);
        } else {
                /* the phase is relative to scale_src->x, so shift it for display list's x value */
-@@ -557,13 +558,15 @@ static void vc4_write_scaling_parameters
+@@ -559,13 +560,15 @@ static void vc4_write_scaling_parameters
        /* Ch0 H-PPF Word 0: Scaling Parameters */
        if (vc4_state->x_scaling[channel] == VC4_SCALING_PPF) {
                vc4_write_ppf(vc4_state,
@@ -49,7 +49,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
                vc4_dlist_write(vc4_state, 0xc0c0c0c0);
        }
  
-@@ -1622,6 +1625,8 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1624,6 +1627,8 @@ struct drm_plane *vc4_plane_init(struct
                                          DRM_COLOR_YCBCR_BT709,
                                          DRM_COLOR_YCBCR_LIMITED_RANGE);
  
index 340007741583853bcdb17e3deabf93982b842435..831f54a081648729cea82ddb330e57117664d48f 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
-@@ -910,9 +910,12 @@ static int bcm2835_pmx_free(struct pinct
+@@ -908,9 +908,12 @@ static int bcm2835_pmx_free(struct pinct
                unsigned offset)
  {
        struct bcm2835_pinctrl *pc = pinctrl_dev_get_drvdata(pctldev);
@@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
        return 0;
  }
  
-@@ -954,10 +957,7 @@ static void bcm2835_pmx_gpio_disable_fre
+@@ -952,10 +955,7 @@ static void bcm2835_pmx_gpio_disable_fre
                struct pinctrl_gpio_range *range,
                unsigned offset)
  {
index 9a14da02b1830388a9cb4d52b2c92ad489c22017..afc0957f6ffc4017a3701df4c5510050ced2ef0c 100644 (file)
@@ -332,7 +332,7 @@ This reverts commit e99a1b69da07ee3b89a6b8005b854e6c04bfb450.
         * overwrite the setup from the bootloader (just 128b out of
 --- a/drivers/gpu/drm/vc4/vc4_regs.h
 +++ b/drivers/gpu/drm/vc4/vc4_regs.h
-@@ -234,7 +234,6 @@
+@@ -240,7 +240,6 @@
  # define SCALER_DISPCTRL_DSPEIEOLN(x)         BIT(8 + ((x) * 2))
  /* Enables Display 0 EOF contribution to SCALER_DISPSTAT_IRQDISP0 */
  # define SCALER_DISPCTRL_DSPEIEOF(x)          BIT(7 + ((x) * 2))
index 7e145873482ec0dd2d730ff650a375f2e533a3d8..2eb71df02704b92c432e59ef046647f89c22ce75 100644 (file)
@@ -25,7 +25,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
-@@ -1809,6 +1809,9 @@ static int vc4_hdmi_encoder_atomic_check
+@@ -1810,6 +1810,9 @@ static int vc4_hdmi_encoder_atomic_check
        struct vc4_hdmi_connector_state *vc4_state = conn_state_to_vc4_hdmi_conn_state(conn_state);
        struct drm_display_mode *mode = &crtc_state->adjusted_mode;
        struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder);
@@ -35,7 +35,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
        unsigned long long pixel_rate = mode->clock * 1000;
        unsigned long long tmds_rate;
        int ret;
-@@ -1837,6 +1840,11 @@ static int vc4_hdmi_encoder_atomic_check
+@@ -1838,6 +1841,11 @@ static int vc4_hdmi_encoder_atomic_check
        if (ret)
                return ret;
  
index 4b811662d0fed38bfb14cd0fdcda16b2d68f5276..fb521499a2f99e180e67028ce7806cb4c5b381f5 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
-@@ -1551,9 +1551,6 @@ static void vc4_hdmi_encoder_post_crtc_e
+@@ -1552,9 +1552,6 @@ static void vc4_hdmi_encoder_post_crtc_e
  
                WARN_ON(!(HDMI_READ(HDMI_SCHEDULER_CONTROL) &
                          VC4_HDMI_SCHEDULER_CONTROL_HDMI_ACTIVE));
index 8776f648fafb9bc5e342c76bf02026bcacd03c0e..d54597355cd3292d46407f5df9f128f893a4172f 100644 (file)
@@ -65,7 +65,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                struct drm_device *drm = connector->dev;
                struct drm_display_mode *mode;
  
-@@ -1672,11 +1673,12 @@ vc4_hdmi_encoder_clock_valid(const struc
+@@ -1673,11 +1674,12 @@ vc4_hdmi_encoder_clock_valid(const struc
  {
        const struct drm_connector *connector = &vc4_hdmi->connector;
        const struct drm_display_info *info = &connector->display_info;
@@ -79,7 +79,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                return MODE_CLOCK_HIGH;
  
        if (info->max_tmds_clock && clock > (info->max_tmds_clock * 1000))
-@@ -3157,14 +3159,6 @@ static int vc4_hdmi_bind(struct device *
+@@ -3158,14 +3160,6 @@ static int vc4_hdmi_bind(struct device *
        vc4_hdmi->disable_wifi_frequencies =
                of_property_read_bool(dev->of_node, "wifi-2.4ghz-coexistence");
  
index a6d539ecdf0742dd17ce8c7432eccc15a8c8ed80..d02f52c55790dad3c8fd554f5de25cac2b800973 100644 (file)
@@ -24,7 +24,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
-@@ -1429,6 +1429,10 @@ static int vc4_plane_atomic_async_check(
+@@ -1431,6 +1431,10 @@ static int vc4_plane_atomic_async_check(
  
        old_vc4_state = to_vc4_plane_state(plane->state);
        new_vc4_state = to_vc4_plane_state(new_plane_state);
index 8699bed008ec9c2096895c1d31ccea6e71fa341a..78237355b709d7c388aa4436352db1088d491dfa 100644 (file)
@@ -227,7 +227,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                /* 48k words of 2x12-bit pixels */
                drm_mm_init(&hvs->lbm_mm, 0, 48 * 1024);
        else
-@@ -1008,7 +1008,7 @@ static int vc4_hvs_bind(struct device *d
+@@ -1019,7 +1019,7 @@ static int vc4_hvs_bind(struct device *d
                             NULL);
        vc4_debugfs_add_file(drm, "hvs_dlists", vc4_hvs_debugfs_dlist,
                             NULL);
@@ -294,7 +294,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        } else {
 --- a/drivers/gpu/drm/vc4/vc4_plane.c
 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -542,10 +542,10 @@ static u32 vc4_lbm_size(struct drm_plane
+@@ -544,10 +544,10 @@ static u32 vc4_lbm_size(struct drm_plane
        }
  
        /* Align it to 64 or 128 (hvs5) bytes */
@@ -307,7 +307,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  
        return lbm;
  }
-@@ -664,7 +664,7 @@ static int vc4_plane_allocate_lbm(struct
+@@ -666,7 +666,7 @@ static int vc4_plane_allocate_lbm(struct
                ret = drm_mm_insert_node_generic(&vc4->hvs->lbm_mm,
                                                 &vc4_state->lbm,
                                                 lbm_size,
@@ -316,7 +316,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
                                                 0, 0);
                spin_unlock_irqrestore(&vc4->hvs->mm_lock, irqflags);
  
-@@ -1039,7 +1039,7 @@ static int vc4_plane_mode_set(struct drm
+@@ -1041,7 +1041,7 @@ static int vc4_plane_mode_set(struct drm
        mix_plane_alpha = state->alpha != DRM_BLEND_ALPHA_OPAQUE &&
                          fb->format->has_alpha;
  
@@ -325,7 +325,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        /* Control word */
                vc4_dlist_write(vc4_state,
                                SCALER_CTL0_VALID |
-@@ -1570,14 +1570,13 @@ static const struct drm_plane_funcs vc4_
+@@ -1572,14 +1572,13 @@ static const struct drm_plane_funcs vc4_
  struct drm_plane *vc4_plane_init(struct drm_device *dev,
                                 enum drm_plane_type type)
  {
@@ -341,7 +341,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
        static const uint64_t modifiers[] = {
                DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED,
                DRM_FORMAT_MOD_BROADCOM_SAND128,
-@@ -1593,7 +1592,7 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1595,7 +1594,7 @@ struct drm_plane *vc4_plane_init(struct
                return ERR_PTR(-ENOMEM);
  
        for (i = 0; i < ARRAY_SIZE(hvs_formats); i++) {
index c861170b426f83e28ebe5e0b490ee412a0db8780..e44aa408cc9aaf936de6c502e95accfaf38d8af1 100644 (file)
@@ -20,7 +20,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
-@@ -1502,6 +1502,13 @@ static const struct drm_plane_helper_fun
+@@ -1504,6 +1504,13 @@ static const struct drm_plane_helper_fun
        .atomic_async_update = vc4_plane_atomic_async_update,
  };
  
@@ -34,7 +34,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
  static bool vc4_format_mod_supported(struct drm_plane *plane,
                                     uint32_t format,
                                     uint64_t modifier)
-@@ -1606,7 +1613,10 @@ struct drm_plane *vc4_plane_init(struct
+@@ -1608,7 +1615,10 @@ struct drm_plane *vc4_plane_init(struct
        if (ret)
                return ERR_PTR(ret);
  
index 092addcd5d231826b338f6baad15adb8c4ffd551..b481dd306179cd3cb520861223422f0eea140dcf 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -433,7 +433,8 @@ endif
+@@ -440,7 +440,8 @@ endif
  HOSTPKG_CONFIG        = pkg-config
  
  export KBUILD_USERCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \
index 3bcf480cb2297b059d321afe649175a1d84964c5..94fc52fd8e039a4177c044cb7409d6083368353f 100644 (file)
@@ -49,7 +49,7 @@ Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -517,7 +517,7 @@ KBUILD_CFLAGS   := -Wall -Wundef -Werror
+@@ -524,7 +524,7 @@ KBUILD_CFLAGS   := -Wall -Wundef -Werror
                   -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
                   -Werror=implicit-function-declaration -Werror=implicit-int \
                   -Werror=return-type -Wno-format-security \
index 91121b7bacb74400f304a31101fc2ed2a491d2a3..e34acbba1716353a6d22f8c336687aeab130c89b 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -433,7 +433,7 @@ endif
+@@ -440,7 +440,7 @@ endif
  HOSTPKG_CONFIG        = pkg-config
  
  export KBUILD_USERCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \
index 5f2bada00a24eacc7b0beb1d129811856e5ceca0..1cb82d1b8f92f00c35a3e0c16993a50c5fdff74f 100644 (file)
@@ -593,7 +593,7 @@ Change-Id: I71de7cd15b8dfa6f9fdd838023474693c4fee0a7
        VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING,
 --- a/mm/memcontrol.c
 +++ b/mm/memcontrol.c
-@@ -5237,6 +5237,7 @@ static struct mem_cgroup *mem_cgroup_all
+@@ -5241,6 +5241,7 @@ static struct mem_cgroup *mem_cgroup_all
        memcg->deferred_split_queue.split_queue_len = 0;
  #endif
        idr_replace(&mem_cgroup_idr, memcg, memcg->id.id);
index 833d3f97f4059e96770545c92bdd09cf4270dad3..a1c6e0f75d98c5642efe3e21b5031f68305d7445 100644 (file)
@@ -339,7 +339,7 @@ Change-Id: I25d9eda8c6bdc7c3653b9f210a159d6c247c81e8
                        /* will mmdrop() in finish_task_switch(). */
 --- a/mm/memcontrol.c
 +++ b/mm/memcontrol.c
-@@ -5174,6 +5174,7 @@ static void __mem_cgroup_free(struct mem
+@@ -5178,6 +5178,7 @@ static void __mem_cgroup_free(struct mem
  
  static void mem_cgroup_free(struct mem_cgroup *memcg)
  {
@@ -347,7 +347,7 @@ Change-Id: I25d9eda8c6bdc7c3653b9f210a159d6c247c81e8
        memcg_wb_domain_exit(memcg);
        __mem_cgroup_free(memcg);
  }
-@@ -6206,6 +6207,29 @@ static void mem_cgroup_move_task(void)
+@@ -6210,6 +6211,29 @@ static void mem_cgroup_move_task(void)
  }
  #endif
  
@@ -377,7 +377,7 @@ Change-Id: I25d9eda8c6bdc7c3653b9f210a159d6c247c81e8
  static int seq_puts_memcg_tunable(struct seq_file *m, unsigned long value)
  {
        if (value == PAGE_COUNTER_MAX)
-@@ -6549,6 +6573,7 @@ struct cgroup_subsys memory_cgrp_subsys
+@@ -6553,6 +6577,7 @@ struct cgroup_subsys memory_cgrp_subsys
        .css_reset = mem_cgroup_css_reset,
        .css_rstat_flush = mem_cgroup_css_rstat_flush,
        .can_attach = mem_cgroup_can_attach,
index d9015d4805da132b54680b7758f1ac974de7a787..9f2512a1d050aa51a87c0183c07fb51d649ea2b5 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                        interface-type = "ace";
                        reg = <0x5000 0x1000>;
                };
-@@ -937,6 +937,8 @@
+@@ -938,6 +938,8 @@
                power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>;
                mediatek,ethsys = <&ethsys>;
                mediatek,sgmiisys = <&sgmiisys>;
index f59a364a736f2eab7dd84d5357342bc65958b4cc..2c6e3fd3cd3effe27cfc1187a3de3cd5bab6c4ef 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
-@@ -893,6 +893,11 @@
+@@ -894,6 +894,11 @@
                };
        };
  
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        ethsys: syscon@1b000000 {
                compatible = "mediatek,mt7622-ethsys",
                             "syscon";
-@@ -911,6 +916,26 @@
+@@ -912,6 +917,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",
-@@ -938,6 +963,9 @@
+@@ -939,6 +964,9 @@
                mediatek,ethsys = <&ethsys>;
                mediatek,sgmiisys = <&sgmiisys>;
                mediatek,cci-control = <&cci_control2>;
index 0a2c1435f752d433029a48845d2173847c3c1a5c..c893d8c8bbe74013098a8b2d913e7d7d58d2ab78 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
 +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
-@@ -962,7 +962,7 @@
+@@ -963,7 +963,7 @@
                power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>;
                mediatek,ethsys = <&ethsys>;
                mediatek,sgmiisys = <&sgmiisys>;
index cf39ba1abd81ff5a1eb62e78a772a9c3552279d8..98687126487188fd49fe131afaf9ce79c23925b6 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
 
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
-@@ -2268,6 +2268,23 @@ struct btmtk_section_map {
+@@ -2272,6 +2272,23 @@ struct btmtk_section_map {
        };
  } __packed;
  
@@ -41,7 +41,7 @@ Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
  static void btusb_mtk_wmt_recv(struct urb *urb)
  {
        struct hci_dev *hdev = urb->context;
-@@ -3919,6 +3936,7 @@ static int btusb_probe(struct usb_interf
+@@ -3923,6 +3940,7 @@ static int btusb_probe(struct usb_interf
                hdev->shutdown = btusb_mtk_shutdown;
                hdev->manufacturer = 70;
                hdev->cmd_timeout = btusb_mtk_cmd_timeout;
index 9b8d8635a855d0aced2d1cd711076d64750490f1..cff537a86699ed3aa92163ac1aee81778d911d8c 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
 
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
-@@ -2273,7 +2273,7 @@ static int btusb_set_bdaddr_mtk(struct h
+@@ -2277,7 +2277,7 @@ static int btusb_set_bdaddr_mtk(struct h
        struct sk_buff *skb;
        long ret;
  
index 549005c5a76c98a622b66597702050315e3897f1..d670195da1f2fa68f016d1ee41f0418a23493583 100644 (file)
@@ -58,7 +58,7 @@ Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
 
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
-@@ -460,6 +460,9 @@ static const struct usb_device_id blackl
+@@ -464,6 +464,9 @@ static const struct usb_device_id blackl
        { USB_DEVICE(0x13d3, 0x3564), .driver_info = BTUSB_MEDIATEK |
                                                     BTUSB_WIDEBAND_SPEECH |
                                                     BTUSB_VALID_LE_STATES },
index 54e3388860c1e1c9ed40703f88ddd694dbac2e1a..be9dc73421519452d51e9e7078e48d2857d97e5f 100644 (file)
@@ -56,7 +56,7 @@ Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
 
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
-@@ -451,6 +451,9 @@ static const struct usb_device_id blackl
+@@ -455,6 +455,9 @@ static const struct usb_device_id blackl
                                                     BTUSB_VALID_LE_STATES },
  
        /* Additional MediaTek MT7921 Bluetooth devices */
index 8957ff8e22b6e59d94fb60758bd07159665a9d7a..24ec68a2ca50b8d4e85cf54ac3f822a4e0841efb 100644 (file)
@@ -54,7 +54,7 @@ Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
 
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
-@@ -469,6 +469,9 @@ static const struct usb_device_id blackl
+@@ -473,6 +473,9 @@ static const struct usb_device_id blackl
        { USB_DEVICE(0x0489, 0xe0cd), .driver_info = BTUSB_MEDIATEK |
                                                     BTUSB_WIDEBAND_SPEECH |
                                                     BTUSB_VALID_LE_STATES },
index 595318fa52a702173be158af77e04c99ee1986bc..9dc86303a7aa83b07ec9d7d9ca377e92f03a030d 100644 (file)
@@ -116,7 +116,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -3588,6 +3588,11 @@ static int xmit_one(struct sk_buff *skb,
+@@ -3590,6 +3590,11 @@ static int xmit_one(struct sk_buff *skb,
        if (dev_nit_active(dev))
                dev_queue_xmit_nit(skb, dev);
  
index 102baa0bf4db445ec0957dcbac095a03b500b604..ef2fe47ae9a8f68e07d5738ee380488d72f7f6e2 100644 (file)
@@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -3857,6 +3857,8 @@ static __net_initdata struct pernet_oper
+@@ -3866,6 +3866,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
index 2bedd94642bf1aa8ba470466e9aaa5b5d1483f56..120b6e4cf897f874d1f2a4572491739e1ae2ff4c 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -527,7 +527,7 @@ KBUILD_LDFLAGS_MODULE :=
+@@ -534,7 +534,7 @@ KBUILD_LDFLAGS_MODULE :=
  KBUILD_LDFLAGS :=
  CLANG_FLAGS :=
  
index f600976065a72dcb14edd828aa0c6b903d69d59b..de76d6918b76a5fb3b4290f5eb46b6639cb89e75 100644 (file)
@@ -202,7 +202,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
        return !!nor->params->erase_map.uniform_erase_type;
  }
  
-@@ -2391,6 +2393,7 @@ static int spi_nor_select_erase(struct s
+@@ -2400,6 +2402,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;
-@@ -2423,8 +2426,9 @@ static int spi_nor_select_erase(struct s
+@@ -2432,8 +2435,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>
                }
        }
  
-@@ -2432,6 +2436,9 @@ static int spi_nor_select_erase(struct s
+@@ -2441,6 +2445,9 @@ static int spi_nor_select_erase(struct s
                return -EINVAL;
  
        mtd->erasesize = erase->size;
index b120548d2e77f94da021c7566061a63533587a81..393308f7175bb7929e8d8d7c850b749bad9c4ace 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
-@@ -1184,6 +1184,73 @@ static struct mtd_info * __init open_mtd
+@@ -1191,6 +1191,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;
-@@ -1267,6 +1334,12 @@ static int __init ubi_init(void)
+@@ -1274,6 +1341,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 a1899708230da1fa5f5a78714c037d681119ed28..86bd9664e5555293a1a88efbe3ae0d1bcd34b18e 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)
-@@ -6300,6 +6331,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6301,6 +6332,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
-@@ -6311,6 +6344,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6312,6 +6345,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
        }
-@@ -6502,6 +6536,8 @@ static int __net_init ip6_route_net_init
+@@ -6503,6 +6537,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);
-@@ -6512,11 +6548,21 @@ static int __net_init ip6_route_net_init
+@@ -6513,11 +6549,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);
-@@ -6543,6 +6589,8 @@ out:
+@@ -6544,6 +6590,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:
-@@ -6562,6 +6610,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6563,6 +6611,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);
-@@ -6645,6 +6694,9 @@ void __init ip6_route_init_special_entri
+@@ -6646,6 +6695,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 2b291813861e00b976c322cb9d0c693457e0b2a7..2d3efb73d00e1f95b7e72c978544c94879624abe 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        __u8                    inner_protocol_type:1;
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -6063,6 +6063,9 @@ static enum gro_result dev_gro_receive(s
+@@ -6065,6 +6065,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;
  
-@@ -8077,6 +8080,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -8079,6 +8082,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,
-@@ -8128,6 +8173,7 @@ static int __netdev_upper_dev_link(struc
+@@ -8130,6 +8175,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);
-@@ -8224,6 +8270,7 @@ static void __netdev_upper_dev_unlink(st
+@@ -8226,6 +8272,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);
  
-@@ -9043,6 +9090,7 @@ int dev_set_mac_address(struct net_devic
+@@ -9045,6 +9092,7 @@ int dev_set_mac_address(struct net_devic
        if (err)
                return err;
        dev->addr_assign_type = NET_ADDR_SET;
index ef851dfc9469356708476666f9cb6f1aa4a6dc0a..4caa2a9560e26e268aaf50c9f356caccf94e0bc5 100644 (file)
@@ -25,7 +25,7 @@ Acked-by: Thara Gopinath <thara.gopinath@linaro.org>
  err_put_device:
        put_device(&op->dev);
        return ret;
-@@ -1157,7 +1155,12 @@ static int tsens_probe(struct platform_d
+@@ -1163,7 +1161,12 @@ static int tsens_probe(struct platform_d
                }
        }
  
index c988814156c7db2666c54b13869aed8c2383c055..f1c092330121da4597737bde4e26b187b8c58ba5 100644 (file)
@@ -15,7 +15,7 @@ Link: https://lore.kernel.org/r/20210905165816.655275-1-robimarko@gmail.com
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -293,6 +293,25 @@
+@@ -320,6 +320,25 @@
                        #reset-cells = <0x1>;
                };
  
index ec4c3552f0531073b49d5213601a6dcde741a187..0e31970a829b3d380367738957bdd1932f31bfc0 100644 (file)
@@ -15,7 +15,7 @@ Link: https://lore.kernel.org/r/20210831052325.21229-1-shawn.guo@linaro.org
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -212,7 +212,7 @@
+@@ -239,7 +239,7 @@
                        status = "disabled";
                };
  
index 4cc81e64c430572a6b8b5638c1d698bc934417a9..b20cbe1b37c3804cf6211a27e25021217b5cdc4b 100644 (file)
@@ -16,7 +16,7 @@ Link: https://lore.kernel.org/r/20211001145421.18302-1-amadeus@jmu.edu.cn
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -430,6 +430,21 @@
+@@ -457,6 +457,21 @@
                        status = "disabled";
                };
  
index b001e81b3a5c96c067250b2e52bb6668986fd961..94fc27750c8ade3ea24df67c10eef43143b0294b 100644 (file)
@@ -34,7 +34,7 @@ Link: https://lore.kernel.org/r/20210929034253.24570-4-shawn.guo@linaro.org
 +                              #clock-cells = <1>;
                                clocks = <&gcc GCC_USB1_PIPE_CLK>;
                                clock-names = "pipe0";
-                               clock-output-names = "gcc_usb1_pipe_clk_src";
+                               clock-output-names = "usb3phy_1_cc_pipe_clk";
 @@ -134,7 +134,6 @@
                ssphy_0: phy@78000 {
                        compatible = "qcom,ipq8074-qmp-usb3-phy";
@@ -50,4 +50,4 @@ Link: https://lore.kernel.org/r/20210929034253.24570-4-shawn.guo@linaro.org
 +                              #clock-cells = <1>;
                                clocks = <&gcc GCC_USB0_PIPE_CLK>;
                                clock-names = "pipe0";
-                               clock-output-names = "gcc_usb0_pipe_clk_src";
+                               clock-output-names = "usb3phy_0_cc_pipe_clk";
diff --git a/target/linux/ipq807x/patches-5.15/0006-v5.16-arm64-dts-qcom-Fix-IPQ8074-PCIe-PHY-nodes.patch b/target/linux/ipq807x/patches-5.15/0006-v5.16-arm64-dts-qcom-Fix-IPQ8074-PCIe-PHY-nodes.patch
deleted file mode 100644 (file)
index 51b58ed..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-From a9ab8f5de2fc752e37918cfd5dcd16d625d9ecb2 Mon Sep 17 00:00:00 2001
-From: Shawn Guo <shawn.guo@linaro.org>
-Date: Wed, 29 Sep 2021 11:42:51 +0800
-Subject: [PATCH] arm64: dts: qcom: Fix IPQ8074 PCIe PHY nodes
-
-IPQ8074 PCIe PHY nodes are broken in the many ways:
-
-- '#address-cells', '#size-cells' and 'ranges' are missing.
-- Child phy/lane node is missing, and the child properties like
-  '#phy-cells' and 'clocks' are mistakenly put into parent node.
-- The clocks properties for parent node are missing.
-
-Fix them to get the nodes comply with the bindings schema.
-
-Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
-Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
-Link: https://lore.kernel.org/r/20210929034253.24570-9-shawn.guo@linaro.org
----
- arch/arm64/boot/dts/qcom/ipq8074.dtsi | 46 +++++++++++++++++++++------
- 1 file changed, 36 insertions(+), 10 deletions(-)
-
---- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -174,34 +174,60 @@
-                       status = "disabled";
-               };
--              pcie_phy0: phy@86000 {
-+              pcie_qmp0: phy@86000 {
-                       compatible = "qcom,ipq8074-qmp-pcie-phy";
-                       reg = <0x00086000 0x1000>;
--                      #phy-cells = <0>;
--                      clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
--                      clock-names = "pipe_clk";
--                      clock-output-names = "pcie20_phy0_pipe_clk";
-+                      #address-cells = <1>;
-+                      #size-cells = <1>;
-+                      ranges;
-+                      clocks = <&gcc GCC_PCIE0_AUX_CLK>,
-+                              <&gcc GCC_PCIE0_AHB_CLK>;
-+                      clock-names = "aux", "cfg_ahb";
-                       resets = <&gcc GCC_PCIE0_PHY_BCR>,
-                               <&gcc GCC_PCIE0PHY_PHY_BCR>;
-                       reset-names = "phy",
-                                     "common";
-                       status = "disabled";
-+
-+                      pcie_phy0: phy@86200 {
-+                              reg = <0x86200 0x16c>,
-+                                    <0x86400 0x200>,
-+                                    <0x86800 0x4f4>;
-+                              #phy-cells = <0>;
-+                              #clock-cells = <0>;
-+                              clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
-+                              clock-names = "pipe0";
-+                              clock-output-names = "pcie_0_pipe_clk";
-+                      };
-               };
--              pcie_phy1: phy@8e000 {
-+              pcie_qmp1: phy@8e000 {
-                       compatible = "qcom,ipq8074-qmp-pcie-phy";
-                       reg = <0x0008e000 0x1000>;
--                      #phy-cells = <0>;
--                      clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
--                      clock-names = "pipe_clk";
--                      clock-output-names = "pcie20_phy1_pipe_clk";
-+                      #address-cells = <1>;
-+                      #size-cells = <1>;
-+                      ranges;
-+                      clocks = <&gcc GCC_PCIE1_AUX_CLK>,
-+                              <&gcc GCC_PCIE1_AHB_CLK>;
-+                      clock-names = "aux", "cfg_ahb";
-                       resets = <&gcc GCC_PCIE1_PHY_BCR>,
-                               <&gcc GCC_PCIE1PHY_PHY_BCR>;
-                       reset-names = "phy",
-                                     "common";
-                       status = "disabled";
-+
-+                      pcie_phy1: phy@8e200 {
-+                              reg = <0x8e200 0x16c>,
-+                                    <0x8e400 0x200>,
-+                                    <0x8e800 0x4f4>;
-+                              #phy-cells = <0>;
-+                              #clock-cells = <0>;
-+                              clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
-+                              clock-names = "pipe0";
-+                              clock-output-names = "pcie_1_pipe_clk";
-+                      };
-               };
-               prng: rng@e3000 {
index 30f09db23adc2843b53f8916f9d04930623484d1..b31c06cb582ce452bbe4c568454005dbcb607be2 100644 (file)
@@ -15,7 +15,7 @@ Link: https://lore.kernel.org/r/20211007115846.26255-1-robimarko@gmail.com
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -230,6 +230,18 @@
+@@ -231,6 +231,18 @@
                        };
                };
  
index df8edfc8d9bcca4496d2ab2caf3daa9d4798dc83..afaa2bae82946b706992adfbb90603db87cd21d0 100644 (file)
@@ -36,7 +36,7 @@ Link: https://lore.kernel.org/r/20220106212512.1970828-1-robimarko@gmail.com
        firmware {
                scm {
                        compatible = "qcom,scm-ipq8074", "qcom,scm";
-@@ -331,6 +345,12 @@
+@@ -332,6 +346,12 @@
                        #reset-cells = <0x1>;
                };
  
index 6c4bf78fabc7d1d7915718b60b51647f97d860c6..3d5372a6e61f46fbbdbf0b42802a60003eac9792 100644 (file)
@@ -15,7 +15,7 @@ Link: https://lore.kernel.org/r/1644334525-11577-2-git-send-email-quic_kathirav@
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -634,9 +634,18 @@
+@@ -635,9 +635,18 @@
  
                intc: interrupt-controller@b000000 {
                        compatible = "qcom,msm-qgic2";
index 09236e3c8c6ca7eadeda8784acc86738125232d0..9018087e40721cd3404582584511ef0295c1a8d3 100644 (file)
@@ -15,7 +15,7 @@ Link: https://lore.kernel.org/r/1643819709-5410-2-git-send-email-quic_kathirav@q
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -670,7 +670,6 @@
+@@ -671,7 +671,6 @@
                        ranges;
                        compatible = "arm,armv7-timer-mem";
                        reg = <0x0b120000 0x1000>;
index d7d31cae89474fb6ef776143c4eddacc5abaa84a..19be9bd861b5634a1ce186d7d0680ff5cd47ff47 100644 (file)
@@ -15,7 +15,7 @@ Link: https://lore.kernel.org/r/20220405063451.12011-2-krzysztof.kozlowski@linar
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -471,8 +471,8 @@
+@@ -472,8 +472,8 @@
                                <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
                        clock-names = "iface", "core";
                        clock-frequency = <400000>;
@@ -26,7 +26,7 @@ Link: https://lore.kernel.org/r/20220405063451.12011-2-krzysztof.kozlowski@linar
                        pinctrl-0 = <&i2c_0_pins>;
                        pinctrl-names = "default";
                        status = "disabled";
-@@ -488,8 +488,8 @@
+@@ -489,8 +489,8 @@
                                <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
                        clock-names = "iface", "core";
                        clock-frequency = <100000>;
@@ -37,7 +37,7 @@ Link: https://lore.kernel.org/r/20220405063451.12011-2-krzysztof.kozlowski@linar
                        status = "disabled";
                };
  
-@@ -503,8 +503,8 @@
+@@ -504,8 +504,8 @@
                                 <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>;
                        clock-names = "iface", "core";
                        clock-frequency = <400000>;
@@ -48,7 +48,7 @@ Link: https://lore.kernel.org/r/20220405063451.12011-2-krzysztof.kozlowski@linar
                        status = "disabled";
                };
  
-@@ -518,8 +518,8 @@
+@@ -519,8 +519,8 @@
                                 <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>;
                        clock-names = "iface", "core";
                        clock-frequency = <100000>;
index 827012092551727904bec299b3fc6af64ed8705a..d1c214c2c783e72c80ac9fc91408b3f96352f74e 100644 (file)
@@ -14,7 +14,7 @@ Link: https://lore.kernel.org/r/20220405063451.12011-3-krzysztof.kozlowski@linar
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -467,9 +467,9 @@
+@@ -468,9 +468,9 @@
                        #size-cells = <0>;
                        reg = <0x078b6000 0x600>;
                        interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
@@ -27,7 +27,7 @@ Link: https://lore.kernel.org/r/20220405063451.12011-3-krzysztof.kozlowski@linar
                        clock-frequency = <400000>;
                        dmas = <&blsp_dma 14>, <&blsp_dma 15>;
                        dma-names = "tx", "rx";
-@@ -484,9 +484,9 @@
+@@ -485,9 +485,9 @@
                        #size-cells = <0>;
                        reg = <0x078b7000 0x600>;
                        interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
@@ -40,7 +40,7 @@ Link: https://lore.kernel.org/r/20220405063451.12011-3-krzysztof.kozlowski@linar
                        clock-frequency = <100000>;
                        dmas = <&blsp_dma 16>, <&blsp_dma 17>;
                        dma-names = "tx", "rx";
-@@ -499,9 +499,9 @@
+@@ -500,9 +500,9 @@
                        #size-cells = <0>;
                        reg = <0x78b9000 0x600>;
                        interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
@@ -53,7 +53,7 @@ Link: https://lore.kernel.org/r/20220405063451.12011-3-krzysztof.kozlowski@linar
                        clock-frequency = <400000>;
                        dmas = <&blsp_dma 20>, <&blsp_dma 21>;
                        dma-names = "tx", "rx";
-@@ -514,9 +514,9 @@
+@@ -515,9 +515,9 @@
                        #size-cells = <0>;
                        reg = <0x078ba000 0x600>;
                        interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
index 923bffadece980d8b6244959e08582a4923d7f68..1b41f9700241dcfd693efd2b8a685810399d7649 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -578,7 +578,7 @@
+@@ -579,7 +579,7 @@
                        resets = <&gcc GCC_USB0_BCR>;
                        status = "disabled";
  
@@ -25,7 +25,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
                                compatible = "snps,dwc3";
                                reg = <0x8a00000 0xcd00>;
                                interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
-@@ -618,7 +618,7 @@
+@@ -619,7 +619,7 @@
                        resets = <&gcc GCC_USB1_BCR>;
                        status = "disabled";
  
index 5ec722cf6c14511b034ce277039141d46afd0aca..68173e81d2dd623c7e82375c98bc665f40dd4edb 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -553,7 +553,7 @@
+@@ -554,7 +554,7 @@
                };
  
                usb_0: usb@8af8800 {
@@ -25,7 +25,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
                        reg = <0x08af8800 0x400>;
                        #address-cells = <1>;
                        #size-cells = <1>;
-@@ -593,7 +593,7 @@
+@@ -594,7 +594,7 @@
                };
  
                usb_1: usb@8cf8800 {
index cc4c3482335b6aaebfb58e35f9739abaacb2e984..de7c3eaffcd708354184c5b74f1aa7d88203f075 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -563,8 +563,8 @@
+@@ -564,8 +564,8 @@
                                <&gcc GCC_USB0_MASTER_CLK>,
                                <&gcc GCC_USB0_SLEEP_CLK>,
                                <&gcc GCC_USB0_MOCK_UTMI_CLK>;
@@ -26,7 +26,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
                                "sleep",
                                "mock_utmi";
  
-@@ -603,8 +603,8 @@
+@@ -604,8 +604,8 @@
                                <&gcc GCC_USB1_MASTER_CLK>,
                                <&gcc GCC_USB1_SLEEP_CLK>,
                                <&gcc GCC_USB1_MOCK_UTMI_CLK>;
index 529f6715f2c1563e7a71166059e6d06a3d8221f5..20f7dc926d9c920ae6fe5c6919c8916eb34fdf64 100644 (file)
@@ -23,7 +23,7 @@ Link: https://lore.kernel.org/r/20220514215424.1007718-2-bhupesh.sharma@linaro.o
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -375,7 +375,7 @@
+@@ -376,7 +376,7 @@
                        cell-index = <0>;
                };
  
index 0fe6b3ab479bbefaa91e491a560c08ebd60a7e22..24fd7fc9f794c3ea2522bff3d7ab9b7ff0b35db2 100644 (file)
@@ -30,7 +30,7 @@ Link: https://lore.kernel.org/r/20220514215424.1007718-5-bhupesh.sharma@linaro.o
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -384,10 +384,10 @@
+@@ -385,10 +385,10 @@
                                     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "hc_irq", "pwr_irq";
  
index 99ff26577d4d117e5f238bc1a494e8c0981994a9..d515ec90762117cbbd47a1f48a0f734e136f727c 100644 (file)
@@ -15,7 +15,7 @@ Link: https://lore.kernel.org/r/20220515210048.483898-11-robimarko@gmail.com
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -347,6 +347,7 @@
+@@ -348,6 +348,7 @@
                        compatible = "qcom,gcc-ipq8074";
                        reg = <0x01800000 0x80000>;
                        #clock-cells = <0x1>;
@@ -23,7 +23,7 @@ Link: https://lore.kernel.org/r/20220515210048.483898-11-robimarko@gmail.com
                        #reset-cells = <0x1>;
                };
  
-@@ -575,6 +576,8 @@
+@@ -576,6 +577,8 @@
                                                <133330000>,
                                                <19200000>;
  
@@ -32,7 +32,7 @@ Link: https://lore.kernel.org/r/20220515210048.483898-11-robimarko@gmail.com
                        resets = <&gcc GCC_USB0_BCR>;
                        status = "disabled";
  
-@@ -615,6 +618,8 @@
+@@ -616,6 +619,8 @@
                                                <133330000>,
                                                <19200000>;
  
index 8f3dd35991a06770be60701bf036b2c7a9f5b564..6d86122bd0b33dd36e9c8eff50400ace8a400acd 100644 (file)
@@ -20,7 +20,7 @@ Link: https://lore.kernel.org/r/20220704113318.623102-1-robimarko@gmail.com
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -653,14 +653,6 @@
+@@ -654,14 +654,6 @@
                        };
                };
  
@@ -35,7 +35,7 @@ Link: https://lore.kernel.org/r/20220704113318.623102-1-robimarko@gmail.com
                watchdog: watchdog@b017000 {
                        compatible = "qcom,kpss-wdt";
                        reg = <0xb017000 0x1000>;
-@@ -852,4 +844,12 @@
+@@ -857,4 +849,12 @@
                        status = "disabled";
                };
        };
index b1a3010bf8006214585cbc430c77010ea90a26b6..b262a804b37adceeac508e076e0e4ffe7867f94b 100644 (file)
@@ -17,7 +17,7 @@ Link: https://lore.kernel.org/r/20220704143554.1180927-2-robimarko@gmail.com
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -389,6 +389,7 @@
+@@ -390,6 +390,7 @@
                                 <&gcc GCC_SDCC1_APPS_CLK>,
                                 <&xo>;
                        clock-names = "iface", "core", "xo";
index f69159a849430b8f31c7f87eced01d6fcd57dd44..c058c5abe4eeb4e6e1eb882ea429769b7c8508c8 100644 (file)
@@ -24,7 +24,7 @@ Link: https://lore.kernel.org/r/20220705114032.22787-5-johan+linaro@kernel.org
 +                              #clock-cells = <0>;
                                clocks = <&gcc GCC_USB1_PIPE_CLK>;
                                clock-names = "pipe0";
-                               clock-output-names = "gcc_usb1_pipe_clk_src";
+                               clock-output-names = "usb3phy_1_cc_pipe_clk";
 @@ -173,7 +173,7 @@
                                      <0x00078800 0x1f8>,     /* PCS  */
                                      <0x00078600 0x044>;     /* PCS misc*/
@@ -33,4 +33,4 @@ Link: https://lore.kernel.org/r/20220705114032.22787-5-johan+linaro@kernel.org
 +                              #clock-cells = <0>;
                                clocks = <&gcc GCC_USB0_PIPE_CLK>;
                                clock-names = "pipe0";
-                               clock-output-names = "gcc_usb0_pipe_clk_src";
+                               clock-output-names = "usb3phy_0_cc_pipe_clk";
index 92414d431916764c63f99b74874149aa9728c3d8..87a1fe82e73861233e2ced40088c006a9edf5cc4 100644 (file)
@@ -20,7 +20,7 @@ Link: https://lore.kernel.org/r/20220707173733.404947-4-robimarko@gmail.com
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -662,6 +662,14 @@
+@@ -663,6 +663,14 @@
                        timeout-sec = <30>;
                };
  
index 566c26399e9f238dc3bf1df245157f61060af048..f2fce43e5e03eb97db5a42599f23ab95e1476e82 100644 (file)
@@ -17,7 +17,7 @@ Link: https://lore.kernel.org/r/20220712144245.17417-4-krzysztof.kozlowski@linar
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -383,7 +383,7 @@
+@@ -384,7 +384,7 @@
                sdhc_1: mmc@7824900 {
                        compatible = "qcom,sdhci-msm-v4";
                        reg = <0x7824900 0x500>, <0x7824000 0x800>;
diff --git a/target/linux/ipq807x/patches-5.15/0034-v6.1-arm64-dts-qcom-ipq8074-fix-PCIe-PHY-serdes-size.patch b/target/linux/ipq807x/patches-5.15/0034-v6.1-arm64-dts-qcom-ipq8074-fix-PCIe-PHY-serdes-size.patch
deleted file mode 100644 (file)
index c2a9e02..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From 8f63346a74c8b3e37ffab2c7a2ddb3c08793dcc2 Mon Sep 17 00:00:00 2001
-From: Johan Hovold <johan+linaro@kernel.org>
-Date: Thu, 15 Sep 2022 16:34:30 +0200
-Subject: [PATCH] arm64: dts: qcom: ipq8074: fix PCIe PHY serdes size
-
-The size of the PCIe PHY serdes register region is 0x1c4 and the
-corresponding 'reg' property should specifically not include the
-adjacent regions that are defined in the child node (e.g. tx and rx).
-
-Fixes: 33057e1672fe ("ARM: dts: ipq8074: Add pcie nodes")
-Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
-Signed-off-by: Bjorn Andersson <andersson@kernel.org>
-Link: https://lore.kernel.org/r/20220915143431.19842-1-johan+linaro@kernel.org
----
- arch/arm64/boot/dts/qcom/ipq8074.dtsi | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -199,7 +199,7 @@
-               pcie_qmp0: phy@86000 {
-                       compatible = "qcom,ipq8074-qmp-pcie-phy";
--                      reg = <0x00086000 0x1000>;
-+                      reg = <0x00086000 0x1c4>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
-@@ -227,7 +227,7 @@
-               pcie_qmp1: phy@8e000 {
-                       compatible = "qcom,ipq8074-qmp-pcie-phy";
--                      reg = <0x0008e000 0x1000>;
-+                      reg = <0x0008e000 0x1c4>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
index ab9bd5f589208437d675d90bb3910b1066abe8ed..dd57eae360b234c8a173ae567de53371b1307566 100644 (file)
@@ -15,7 +15,7 @@ Link: https://lore.kernel.org/r/20220818220628.339366-9-robimarko@gmail.com
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -674,6 +674,14 @@
+@@ -675,6 +675,14 @@
                        #mbox-cells = <1>;
                };
  
index f06e456a2cfeef42dde98668ea98cb6768b9a395..5c8ca8c54777b56f4eed1eb81035f9648ed8c525 100644 (file)
@@ -21,7 +21,7 @@ Link: https://lore.kernel.org/r/20220818220628.339366-8-robimarko@gmail.com
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -668,7 +668,7 @@
+@@ -669,7 +669,7 @@
  
                apcs_glb: mailbox@b111000 {
                        compatible = "qcom,ipq8074-apcs-apps-global";
index 63b4cf176bca5aeb45690d2890cec6826232958f..2c6e70b14d44d029ec9188f70d30789c96276d74 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
        .max_sensors    = 11,
 --- a/drivers/thermal/qcom/tsens-v0_1.c
 +++ b/drivers/thermal/qcom/tsens-v0_1.c
-@@ -539,6 +539,7 @@ static int calibrate_9607(struct tsens_p
+@@ -549,6 +549,7 @@ static int __init init_8939(struct tsens
  static struct tsens_features tsens_v0_1_feat = {
        .ver_major      = VER_0_1,
        .crit_int       = 0,
@@ -41,7 +41,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
        .max_sensors    = 11,
 --- a/drivers/thermal/qcom/tsens-v1.c
 +++ b/drivers/thermal/qcom/tsens-v1.c
-@@ -302,6 +302,7 @@ static int calibrate_8976(struct tsens_p
+@@ -273,6 +273,7 @@ static int calibrate_8976(struct tsens_p
  static struct tsens_features tsens_v1_feat = {
        .ver_major      = VER_1_X,
        .crit_int       = 0,
@@ -89,7 +89,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
  static int tsens_set_trips(void *_sensor, int low, int high)
  {
        struct tsens_sensor *s = _sensor;
-@@ -1075,13 +1096,18 @@ static int tsens_register(struct tsens_p
+@@ -1081,13 +1102,18 @@ static int tsens_register(struct tsens_p
                                   tsens_mC_to_hw(priv->sensor, 0));
        }
  
index 7354d54464954be16135ad467cdbbd8bc5b2c97c..5a571a36b625966e75c2a01ad88f5f3deda47eb3 100644 (file)
@@ -35,7 +35,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
  struct tsens_plat_data data_8960 = {
 --- a/drivers/thermal/qcom/tsens-v0_1.c
 +++ b/drivers/thermal/qcom/tsens-v0_1.c
-@@ -543,6 +543,8 @@ static struct tsens_features tsens_v0_1_
+@@ -553,6 +553,8 @@ static struct tsens_features tsens_v0_1_
        .adc            = 1,
        .srot_split     = 1,
        .max_sensors    = 11,
@@ -46,7 +46,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
  static const struct reg_field tsens_v0_1_regfields[MAX_REGFIELDS] = {
 --- a/drivers/thermal/qcom/tsens-v1.c
 +++ b/drivers/thermal/qcom/tsens-v1.c
-@@ -306,6 +306,8 @@ static struct tsens_features tsens_v1_fe
+@@ -277,6 +277,8 @@ static struct tsens_features tsens_v1_fe
        .adc            = 1,
        .srot_split     = 1,
        .max_sensors    = 11,
index 89e21c01945e898f5dfa20d0690280a481235ec7..3e3e77a0a8936f08fa57c61eede0d07f04adb824 100644 (file)
@@ -65,7 +65,7 @@ Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
 --- a/drivers/thermal/qcom/tsens.h
 +++ b/drivers/thermal/qcom/tsens.h
 @@ -599,6 +599,6 @@ extern struct tsens_plat_data data_8916,
- extern struct tsens_plat_data data_tsens_v1, data_8976;
+ extern struct tsens_plat_data data_tsens_v1, data_8976, data_8956;
  
  /* TSENS v2 targets */
 -extern struct tsens_plat_data data_8996, data_tsens_v2;
index c142acf63f6a514f499bcb631455891f7597ba95..b320c08032ccc918455378802a744971498a081e 100644 (file)
@@ -20,7 +20,7 @@ Link: https://lore.kernel.org/r/20220818220245.338396-5-robimarko@gmail.com
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -273,6 +273,16 @@
+@@ -274,6 +274,16 @@
                        status = "disabled";
                };
  
@@ -37,7 +37,7 @@ Link: https://lore.kernel.org/r/20220818220245.338396-5-robimarko@gmail.com
                cryptobam: dma-controller@704000 {
                        compatible = "qcom,bam-v1.7.0";
                        reg = <0x00704000 0x20000>;
-@@ -873,4 +883,90 @@
+@@ -878,4 +888,90 @@
                             <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
        };
index ff992378a2b5db5cb816b698a45c884eadf49e8d..e229851649cacad40da57532dc0936978cfaa554 100644 (file)
@@ -18,7 +18,7 @@ Link: https://lore.kernel.org/r/20220818220849.339732-4-robimarko@gmail.com
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -679,6 +679,8 @@
+@@ -680,6 +680,8 @@
                apcs_glb: mailbox@b111000 {
                        compatible = "qcom,ipq8074-apcs-apps-global";
                        reg = <0x0b111000 0x1000>;
index 2594d26cfeda4d691cb19502de24709b237e9eb9..1f99de002bbc6beac3f622e67b6caac36d58fdbb 100644 (file)
@@ -20,7 +20,7 @@ Link: https://lore.kernel.org/r/20221030175703.1103224-3-robimarko@gmail.com
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -360,9 +360,11 @@
+@@ -361,9 +361,11 @@
                gcc: gcc@1800000 {
                        compatible = "qcom,gcc-ipq8074";
                        reg = <0x01800000 0x80000>;
index 81cd0358040502b5a73eccfe414c5bfd4eeaeb30..1ce11406828b61570e32c88b7fd31d6bdbb3a5f3 100644 (file)
@@ -17,7 +17,7 @@ Link: https://lore.kernel.org/r/20221108142357.67202-2-krzysztof.kozlowski@linar
 
 --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
 +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -317,35 +317,35 @@
+@@ -318,35 +318,35 @@
                        interrupt-controller;
                        #interrupt-cells = <0x2>;
  
diff --git a/target/linux/ipq807x/patches-5.15/0103-arm64-dts-qcom-ipq8074-fix-Gen2-PCIe-QMP-PHY.patch b/target/linux/ipq807x/patches-5.15/0103-arm64-dts-qcom-ipq8074-fix-Gen2-PCIe-QMP-PHY.patch
deleted file mode 100644 (file)
index 6eb282c..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-From 075b3ca8a4223742abc6da2406afe206d97f3d52 Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko@gmail.com>
-Date: Wed, 16 Nov 2022 22:48:33 +0100
-Subject: [PATCH] arm64: dts: qcom: ipq8074: fix Gen2 PCIe QMP PHY
-
-Serdes register space sizes are incorrect, update them to match the
-actual sizes from downstream QCA 5.4 kernel.
-
-Fixes: 942bcd33ed45 ("arm64: dts: qcom: Fix IPQ8074 PCIe PHY nodes")
-Signed-off-by: Robert Marko <robimarko@gmail.com>
----
- arch/arm64/boot/dts/qcom/ipq8074.dtsi | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -277,9 +277,9 @@
-                       status = "disabled";
-                       pcie_phy1: phy@8e200 {
--                              reg = <0x8e200 0x16c>,
-+                              reg = <0x8e200 0x130>,
-                                     <0x8e400 0x200>,
--                                    <0x8e800 0x4f4>;
-+                                    <0x8e800 0x1f8>;
-                               #phy-cells = <0>;
-                               #clock-cells = <0>;
-                               clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
diff --git a/target/linux/ipq807x/patches-5.15/0104-arm64-dts-qcom-ipq8074-fix-Gen3-PCIe-QMP-PHY.patch b/target/linux/ipq807x/patches-5.15/0104-arm64-dts-qcom-ipq8074-fix-Gen3-PCIe-QMP-PHY.patch
deleted file mode 100644 (file)
index a44757a..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-From 6f49bc0ee169c90b5c26a1e3d27a4728142f0ddb Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko@gmail.com>
-Date: Wed, 16 Nov 2022 22:48:34 +0100
-Subject: [PATCH] arm64: dts: qcom: ipq8074: fix Gen3 PCIe QMP PHY
-
-IPQ8074 comes in 2 silicon versions:
-* v1 with 2x Gen2 PCIe ports and QMP PHY-s
-* v2 with 1x Gen3 and 1x Gen2 PCIe ports and QMP PHY-s
-
-v2 is the final and production version that is actually supported by the
-kernel, however it looks like PCIe related nodes were added for the v1 SoC.
-
-Now that we have Gen3 QMP PHY support, we can start fixing the PCIe support
-by fixing the Gen3 QMP PHY node first.
-
-Change the compatible to the Gen3 QMP PHY, correct the register space start
-and size, add the missing misc PCS register space.
-
-Fixes: 33057e1672fe ("ARM: dts: ipq8074: Add pcie nodes")
-Signed-off-by: Robert Marko <robimarko@gmail.com>
----
- arch/arm64/boot/dts/qcom/ipq8074.dtsi | 15 ++++++++-------
- 1 file changed, 8 insertions(+), 7 deletions(-)
-
---- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -232,9 +232,9 @@
-                       status = "disabled";
-               };
--              pcie_qmp0: phy@86000 {
--                      compatible = "qcom,ipq8074-qmp-pcie-phy";
--                      reg = <0x00086000 0x1c4>;
-+              pcie_qmp0: phy@84000 {
-+                      compatible = "qcom,ipq8074-qmp-gen3-pcie-phy";
-+                      reg = <0x00084000 0x1bc>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
-@@ -248,10 +248,11 @@
-                                     "common";
-                       status = "disabled";
--                      pcie_phy0: phy@86200 {
--                              reg = <0x86200 0x16c>,
--                                    <0x86400 0x200>,
--                                    <0x86800 0x4f4>;
-+                      pcie_phy0: phy@84200 {
-+                              reg = <0x84200 0x16c>,
-+                                    <0x84400 0x200>,
-+                                    <0x84800 0x1f0>,
-+                                    <0x84c00 0xf4>;
-                               #phy-cells = <0>;
-                               #clock-cells = <0>;
-                               clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
diff --git a/target/linux/ipq807x/patches-5.15/0105-arm64-dts-qcom-ipq8074-correct-Gen2-PCIe-ranges.patch b/target/linux/ipq807x/patches-5.15/0105-arm64-dts-qcom-ipq8074-correct-Gen2-PCIe-ranges.patch
deleted file mode 100644 (file)
index 0491090..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From 52a48e8ed546339122983329410be801a2b9adf5 Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko@gmail.com>
-Date: Wed, 16 Nov 2022 22:48:35 +0100
-Subject: [PATCH] arm64: dts: qcom: ipq8074: correct Gen2 PCIe ranges
-
-Current ranges property set in Gen2 PCIe node is incorrect, replace it
-with the downstream 5.4 QCA kernel value.
-
-Fixes: 33057e1672fe ("ARM: dts: ipq8074: Add pcie nodes")
-Signed-off-by: Robert Marko <robimarko@gmail.com>
----
- arch/arm64/boot/dts/qcom/ipq8074.dtsi | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
---- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -808,9 +808,9 @@
-                       phy-names = "pciephy";
-                       ranges = <0x81000000 0 0x10200000 0x10200000
--                                0 0x100000   /* downstream I/O */
--                                0x82000000 0 0x10300000 0x10300000
--                                0 0xd00000>; /* non-prefetchable memory */
-+                                0 0x10000>,   /* downstream I/O */
-+                               <0x82000000 0 0x10220000 0x10220000
-+                                0 0xfde0000>; /* non-prefetchable memory */
-                       interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "msi";
diff --git a/target/linux/ipq807x/patches-5.15/0108-arm64-dts-qcom-ipq8074-fix-Gen3-PCIe-node.patch b/target/linux/ipq807x/patches-5.15/0108-arm64-dts-qcom-ipq8074-fix-Gen3-PCIe-node.patch
deleted file mode 100644 (file)
index fc4db15..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-From 625c90a8266e432ea15e109123ca941062b63f76 Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko@gmail.com>
-Date: Wed, 16 Nov 2022 22:48:40 +0100
-Subject: [PATCH] arm64: dts: qcom: ipq8074: fix Gen3 PCIe node
-
-IPQ8074 comes in 2 silicon versions:
-* v1 with 2x Gen2 PCIe ports and QMP PHY-s
-* v2 with 1x Gen3 and 1x Gen2 PCIe ports and QMP PHY-s
-
-v2 is the final and production version that is actually supported by the
-kernel, however it looks like PCIe related nodes were added for the v1 SoC.
-
-Finish the PCIe fixup by using the correct compatible, adding missing ATU
-register space, declaring max-link-speed, use correct ranges, add missing
-clocks and resets.
-
-Fixes: 33057e1672fe ("ARM: dts: ipq8074: Add pcie nodes")
-Signed-off-by: Robert Marko <robimarko@gmail.com>
----
- arch/arm64/boot/dts/qcom/ipq8074.dtsi | 30 +++++++++++++++------------
- 1 file changed, 17 insertions(+), 13 deletions(-)
-
---- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -854,16 +854,18 @@
-               };
-               pcie0: pci@20000000 {
--                      compatible = "qcom,pcie-ipq8074";
-+                      compatible = "qcom,pcie-ipq8074-gen3";
-                       reg = <0x20000000 0xf1d>,
-                             <0x20000f20 0xa8>,
--                            <0x00080000 0x2000>,
-+                            <0x20001000 0x1000>,
-+                            <0x00080000 0x4000>,
-                             <0x20100000 0x1000>;
--                      reg-names = "dbi", "elbi", "parf", "config";
-+                      reg-names = "dbi", "elbi", "atu", "parf", "config";
-                       device_type = "pci";
-                       linux,pci-domain = <0>;
-                       bus-range = <0x00 0xff>;
-                       num-lanes = <1>;
-+                      max-link-speed = <3>;
-                       #address-cells = <3>;
-                       #size-cells = <2>;
-@@ -871,9 +873,9 @@
-                       phy-names = "pciephy";
-                       ranges = <0x81000000 0 0x20200000 0x20200000
--                                0 0x100000   /* downstream I/O */
--                                0x82000000 0 0x20300000 0x20300000
--                                0 0xd00000>; /* non-prefetchable memory */
-+                                0 0x10000>, /* downstream I/O */
-+                               <0x82000000 0 0x20220000 0x20220000
-+                                0 0xfde0000>; /* non-prefetchable memory */
-                       interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "msi";
-@@ -891,28 +893,30 @@
-                       clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
-                                <&gcc GCC_PCIE0_AXI_M_CLK>,
-                                <&gcc GCC_PCIE0_AXI_S_CLK>,
--                               <&gcc GCC_PCIE0_AHB_CLK>,
--                               <&gcc GCC_PCIE0_AUX_CLK>;
--
-+                               <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>,
-+                               <&gcc GCC_PCIE0_RCHNG_CLK>;
-                       clock-names = "iface",
-                                     "axi_m",
-                                     "axi_s",
--                                    "ahb",
--                                    "aux";
-+                                    "axi_bridge",
-+                                    "rchng";
-+
-                       resets = <&gcc GCC_PCIE0_PIPE_ARES>,
-                                <&gcc GCC_PCIE0_SLEEP_ARES>,
-                                <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
-                                <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
-                                <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
-                                <&gcc GCC_PCIE0_AHB_ARES>,
--                               <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>;
-+                               <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
-+                               <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
-                       reset-names = "pipe",
-                                     "sleep",
-                                     "sticky",
-                                     "axi_m",
-                                     "axi_s",
-                                     "ahb",
--                                    "axi_m_sticky";
-+                                    "axi_m_sticky",
-+                                    "axi_s_sticky";
-                       status = "disabled";
-               };
-       };
diff --git a/target/linux/ipq807x/patches-5.15/0109-arm64-dts-qcom-ipq8074-correct-PCIe-QMP-PHY-output-c.patch b/target/linux/ipq807x/patches-5.15/0109-arm64-dts-qcom-ipq8074-correct-PCIe-QMP-PHY-output-c.patch
deleted file mode 100644 (file)
index 9bd4a6f..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-From 0311903940046649e20bd23bca837169eb4525dc Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko@gmail.com>
-Date: Wed, 16 Nov 2022 22:48:41 +0100
-Subject: [PATCH] arm64: dts: qcom: ipq8074: correct PCIe QMP PHY output clock
- names
-
-Current PCIe QMP PHY output name were changed in ("arm64: dts: qcom: Fix
-IPQ8074 PCIe PHY nodes") however it did not account for the fact that GCC
-driver is relying on the old names to match them as they are being used as
-the parent for the gcc_pcie0_pipe_clk and gcc_pcie1_pipe_clk.
-
-This broke parenting as GCC could not find the parent clock, so fix it by
-changing to the names that driver is expecting.
-
-Fixes: 942bcd33ed45 ("arm64: dts: qcom: Fix IPQ8074 PCIe PHY nodes")
-Signed-off-by: Robert Marko <robimarko@gmail.com>
----
- arch/arm64/boot/dts/qcom/ipq8074.dtsi | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -257,7 +257,7 @@
-                               #clock-cells = <0>;
-                               clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
-                               clock-names = "pipe0";
--                              clock-output-names = "pcie_0_pipe_clk";
-+                              clock-output-names = "pcie20_phy0_pipe_clk";
-                       };
-               };
-@@ -285,7 +285,7 @@
-                               #clock-cells = <0>;
-                               clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
-                               clock-names = "pipe0";
--                              clock-output-names = "pcie_1_pipe_clk";
-+                              clock-output-names = "pcie20_phy1_pipe_clk";
-                       };
-               };
diff --git a/target/linux/ipq807x/patches-5.15/0132-arm64-dts-qcom-ipq8074-correct-USB3-QMP-PHY-s-clock-.patch b/target/linux/ipq807x/patches-5.15/0132-arm64-dts-qcom-ipq8074-correct-USB3-QMP-PHY-s-clock-.patch
deleted file mode 100644 (file)
index 58dfba6..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From 1bfcec16a591622b4993c043e6cc4d07f3690767 Mon Sep 17 00:00:00 2001
-From: Robert Marko <robimarko@gmail.com>
-Date: Sun, 8 Jan 2023 13:39:55 +0100
-Subject: [PATCH] arm64: dts: qcom: ipq8074: correct USB3 QMP PHY-s clock
- output names
-
-It seems that clock-output-names for the USB3 QMP PHY-s where set without
-actually checking what is the GCC clock driver expecting, so clock core
-could never actually find the parents for usb0_pipe_clk_src and
-usb1_pipe_clk_src clocks in the GCC driver.
-
-So, correct the names to be what the driver expects so that parenting
-works.
-
-Before:
-gcc_usb0_pipe_clk_src                0        0        0   125000000          0     0  50000         Y
-gcc_usb1_pipe_clk_src                0        0        0   125000000          0     0  50000         Y
-
-After:
- usb3phy_0_cc_pipe_clk                1        1        0   125000000          0     0  50000         Y
-    usb0_pipe_clk_src                 1        1        0   125000000          0     0  50000         Y
-       gcc_usb0_pipe_clk              1        1        0   125000000          0     0  50000         Y
- usb3phy_1_cc_pipe_clk                1        1        0   125000000          0     0  50000         Y
-    usb1_pipe_clk_src                 1        1        0   125000000          0     0  50000         Y
-       gcc_usb1_pipe_clk              1        1        0   125000000          0     0  50000         Y
-
-Fixes: 5e09bc51d07b ("arm64: dts: ipq8074: enable USB support")
-Signed-off-by: Robert Marko <robimarko@gmail.com>
----
- arch/arm64/boot/dts/qcom/ipq8074.dtsi | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
-@@ -263,7 +263,7 @@
-                               #clock-cells = <0>;
-                               clocks = <&gcc GCC_USB1_PIPE_CLK>;
-                               clock-names = "pipe0";
--                              clock-output-names = "gcc_usb1_pipe_clk_src";
-+                              clock-output-names = "usb3phy_1_cc_pipe_clk";
-                       };
-               };
-@@ -306,7 +306,7 @@
-                               #clock-cells = <0>;
-                               clocks = <&gcc GCC_USB0_PIPE_CLK>;
-                               clock-names = "pipe0";
--                              clock-output-names = "gcc_usb0_pipe_clk_src";
-+                              clock-output-names = "usb3phy_0_cc_pipe_clk";
-                       };
-               };
index 2276b38c6e80d66092e4d9f750abbb60e96c38c5..ab88b10863107545a12692af502abc6b72512579 100644 (file)
@@ -5479,7 +5479,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
-@@ -1480,6 +1480,8 @@ void pci_walk_bus(struct pci_bus *top, i
+@@ -1481,6 +1481,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 7f1e8ae332f181950bbce0a75b2eff549ba1b7f1..8ba7971e8a83a8aa7f8d89b61544aef7213d034d 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Kuldeep Singh <kuldeep.singh@nxp.com>
 
 --- a/drivers/mtd/spi-nor/spansion.c
 +++ b/drivers/mtd/spi-nor/spansion.c
-@@ -227,7 +227,7 @@ static const struct flash_info spansion_
+@@ -232,7 +232,7 @@ static const struct flash_info spansion_
                              SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
                              USE_CLSR) },
        { "s25fs512s",  INFO6(0x010220, 0x4d0081, 256 * 1024, 256,
index fa2cd96f971cc1a50ec7c79c57d4acedc9063ae1..79b051147a34abc6d15f0eda884826b13cfc242e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
 +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
-@@ -558,6 +558,7 @@
+@@ -559,6 +559,7 @@
                compatible = "mediatek,mt7622-nor",
                             "mediatek,mt8173-nor";
                reg = <0 0x11014000 0 0xe0>;
index b77b4ad4c473a32f0ef7c89e628eb3350af5a066..ed209050123b7ecf984a34c22859954aa22e6840 100644 (file)
@@ -35,7 +35,7 @@ Changes since v5:
 
 --- a/drivers/spi/Kconfig
 +++ b/drivers/spi/Kconfig
-@@ -530,6 +530,16 @@ config SPI_MTK_NOR
+@@ -529,6 +529,16 @@ config SPI_MTK_NOR
          SPI interface as well as several SPI NOR specific instructions
          via SPI MEM interface.
  
index d5285676fec6db2f80518fee378ba2bd55282fd0..15d267137230e3c4c3e3278cd02ffeacc29e1ee0 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
 
 --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
 +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
-@@ -552,6 +552,18 @@
+@@ -553,6 +553,18 @@
                status = "disabled";
        };
  
index 905d84d317b901f75f5b24d03224d8b7c1b986cb..4fef9aea22d93a931a79491dfb86346eefcc4152 100644 (file)
@@ -112,7 +112,7 @@ Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
 
 --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
 +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
-@@ -941,6 +941,7 @@
+@@ -942,6 +942,7 @@
                clock-names = "hsdma";
                power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>;
                #dma-cells = <1>;
index cdcb8eefd028bad128ac9ee863f0266c33886f6f..6a84ff47db18086a0b300dd3fc40426609a65d5b 100644 (file)
@@ -194,7 +194,7 @@ Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
  &pio {
 --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
 +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
-@@ -808,75 +808,83 @@
+@@ -809,75 +809,83 @@
                #reset-cells = <1>;
        };
  
index 0ecceecebef760e84a9f37c0c54d4baab4e34297..bf479ab53b2cc69bf2186665ffec29d1d59d69dc 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
 +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
-@@ -848,6 +848,12 @@
+@@ -849,6 +849,12 @@
                        #address-cells = <0>;
                        #interrupt-cells = <1>;
                };
@@ -13,7 +13,7 @@
        };
  
        pcie1: pcie@1a145000 {
-@@ -886,6 +892,12 @@
+@@ -887,6 +893,12 @@
                        #address-cells = <0>;
                        #interrupt-cells = <1>;
                };
index 4c4db9f0498a8ebcb4bff4feb0e84cf1dac9a902..de64eda8277d5ce8837459ea07ec0d43bf36a867 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
-@@ -836,6 +836,9 @@
+@@ -837,6 +837,9 @@
                bus-range = <0x00 0xff>;
                ranges = <0x82000000 0 0x20000000 0x0 0x20000000 0 0x8000000>;
                status = "disabled";
@@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
                #interrupt-cells = <1>;
                interrupt-map-mask = <0 0 0 7>;
-@@ -880,6 +883,9 @@
+@@ -881,6 +884,9 @@
                bus-range = <0x00 0xff>;
                ranges = <0x82000000 0 0x28000000 0x0 0x28000000 0 0x8000000>;
                status = "disabled";
index c043a99c8b76188d357a0651769e23522f47a7b2..0e546b426edd0dfc59d3082514db5ad71063bf80 100644 (file)
@@ -26,7 +26,7 @@ Cc: Robert Marko <robert.marko@sartura.hr>
 
 --- a/drivers/mfd/Kconfig
 +++ b/drivers/mfd/Kconfig
-@@ -2188,6 +2188,15 @@ config SGI_MFD_IOC3
+@@ -2189,6 +2189,15 @@ config SGI_MFD_IOC3
          If you have an SGI Origin, Octane, or a PCI IOC3 card,
          then say Y. Otherwise say N.
  
index e3a008f4a656967882b98df46109d4e0ffc9230b..5b0db92d9e49f091d2a30b91b46e54268e3c7fb4 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>
-@@ -5831,3 +5832,34 @@ static void nvidia_ion_ahci_fixup(struct
+@@ -5854,3 +5855,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 da3ca270fa465902f7cdd15f23d4c62a775b55c5..163bafdb2e5b346376ca519e6919fcd2c1f9e7fc 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
-@@ -3098,6 +3098,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3107,6 +3107,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;
  
-@@ -3152,7 +3153,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -3161,7 +3162,12 @@ int spi_nor_scan(struct spi_nor *nor, co
        if (ret)
                return ret;
  
index ae7e886f9492bc08c19b52fc710e52686a80ff90..2d56440610e4fc4b9afb7e856bb66bf71fc7286f 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
-@@ -3164,6 +3164,18 @@ static const struct usb_device_id uvc_id
+@@ -3152,6 +3152,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
+@@ -224,6 +224,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
+@@ -272,6 +273,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_dbg(stream->dev, FRAME, "Frame complete (EOF found)\n");
-@@ -1799,6 +1944,8 @@ static int uvc_init_video_isoc(struct uv
+@@ -1801,6 +1946,8 @@ static int uvc_init_video_isoc(struct uv
        if (npackets == 0)
                return -ENOMEM;
  
@@ -225,18 +225,16 @@ 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
-@@ -209,7 +209,9 @@
- #define UVC_QUIRK_RESTORE_CTRLS_ON_INIT       0x00000400
+@@ -210,6 +210,8 @@
  #define UVC_QUIRK_FORCE_Y8            0x00000800
  #define UVC_QUIRK_FORCE_BPP           0x00001000
--
-+#define UVC_QUIRK_MOTION              0x00001000
-+#define UVC_QUIRK_SINGLE_ISO          0x00002000
-+ 
+ #define UVC_QUIRK_WAKE_AUTOSUSPEND    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
-@@ -700,6 +702,7 @@ struct uvc_device {
+@@ -701,6 +703,7 @@ struct uvc_device {
        u8 *status;
        struct input_dev *input;
        char input_phys[64];
index 342350d0c6afea76b360fdfafe7047cff73cb8ff..5fb05375394e4073c1efbe0dccb0ead8d571eabb 100644 (file)
@@ -16,7 +16,7 @@ Acked-by: John Crispin <blogic@openwrt.org>
 
 --- a/drivers/spi/Kconfig
 +++ b/drivers/spi/Kconfig
-@@ -719,6 +719,12 @@ config SPI_QCOM_GENI
+@@ -718,6 +718,12 @@ config SPI_QCOM_GENI
          This driver can also be built as a module.  If so, the module
          will be called spi-geni-qcom.