diff --git a/target/linux/brcm2708/bcm2711/config-4.19 b/target/linux/brcm2708/bcm2711/config-4.19 index 3c7d005fba6..9d4671de8d0 100644 --- a/target/linux/brcm2708/bcm2711/config-4.19 +++ b/target/linux/brcm2708/bcm2711/config-4.19 @@ -102,13 +102,14 @@ CONFIG_ARM_AMBA=y CONFIG_ARM_ARCH_TIMER=y CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y -CONFIG_ARM_BCM2835_CPUFREQ=y +# CONFIG_ARM_BCM2835_CPUFREQ is not set CONFIG_ARM_GIC=y CONFIG_ARM_GIC_V2M=y CONFIG_ARM_GIC_V3=y CONFIG_ARM_GIC_V3_ITS=y CONFIG_ARM_GIC_V3_ITS_PCI=y CONFIG_ARM_PSCI_FW=y +CONFIG_ARM_RASPBERRYPI_CPUFREQ=y # CONFIG_ARM_SCMI_PROTOCOL is not set # CONFIG_ARM_SP805_WATCHDOG is not set CONFIG_ARM_TIMER_SP804=y @@ -148,6 +149,7 @@ CONFIG_CAVIUM_ERRATUM_23154=y CONFIG_CAVIUM_ERRATUM_27456=y CONFIG_CLKDEV_LOOKUP=y CONFIG_CLKSRC_MMIO=y +CONFIG_CLK_RASPBERRYPI=y CONFIG_CLONE_BACKWARDS=y CONFIG_CMA=y CONFIG_CMA_ALIGNMENT=8 @@ -163,7 +165,8 @@ CONFIG_COMMON_CLK=y CONFIG_COMMON_CLK_XGENE=y CONFIG_CONFIGFS_FS=y CONFIG_CONSOLE_TRANSLATIONS=y -# CONFIG_CPUFREQ_DT is not set +CONFIG_CPUFREQ_DT=y +CONFIG_CPUFREQ_DT_PLATDEV=y # CONFIG_CPU_BIG_ENDIAN is not set CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y @@ -253,6 +256,7 @@ CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_GENERIC_CSUM=y CONFIG_GENERIC_EARLY_IOREMAP=y CONFIG_GENERIC_IDLE_POLL_SETUP=y @@ -461,6 +465,7 @@ CONFIG_PM_CLK=y CONFIG_PM_GENERIC_DOMAINS=y CONFIG_PM_GENERIC_DOMAINS_OF=y CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +CONFIG_PM_OPP=y CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y CONFIG_POWER_RESET=y diff --git a/target/linux/brcm2708/patches-4.19/950-0011-spi-bcm2835-Support-pin-groups-other-than-7-11.patch b/target/linux/brcm2708/patches-4.19/950-0010-spi-bcm2835-Support-pin-groups-other-than-7-11.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0011-spi-bcm2835-Support-pin-groups-other-than-7-11.patch rename to target/linux/brcm2708/patches-4.19/950-0010-spi-bcm2835-Support-pin-groups-other-than-7-11.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0010-spidev-Add-spidev-compatible-string-to-silence-warni.patch b/target/linux/brcm2708/patches-4.19/950-0010-spidev-Add-spidev-compatible-string-to-silence-warni.patch deleted file mode 100644 index 91e27c36ccc..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0010-spidev-Add-spidev-compatible-string-to-silence-warni.patch +++ /dev/null @@ -1,21 +0,0 @@ -From e21d0b86f4a9c2c1f61e183e5dfcc1cf37058ca1 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Tue, 14 Jul 2015 10:26:09 +0100 -Subject: [PATCH] spidev: Add "spidev" compatible string to silence - warning - -See: https://github.com/raspberrypi/linux/issues/1054 ---- - drivers/spi/spidev.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/spi/spidev.c -+++ b/drivers/spi/spidev.c -@@ -670,6 +670,7 @@ static const struct of_device_id spidev_ - { .compatible = "ge,achc" }, - { .compatible = "semtech,sx1301" }, - { .compatible = "siliconlabs,si3210" }, -+ { .compatible = "spidev" }, - {}, - }; - MODULE_DEVICE_TABLE(of, spidev_dt_ids); diff --git a/target/linux/brcm2708/patches-4.19/950-0012-spi-bcm2835-Disable-forced-software-CS.patch b/target/linux/brcm2708/patches-4.19/950-0011-spi-bcm2835-Disable-forced-software-CS.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0012-spi-bcm2835-Disable-forced-software-CS.patch rename to target/linux/brcm2708/patches-4.19/950-0011-spi-bcm2835-Disable-forced-software-CS.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0013-spi-bcm2835-Remove-unused-code.patch b/target/linux/brcm2708/patches-4.19/950-0012-spi-bcm2835-Remove-unused-code.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0013-spi-bcm2835-Remove-unused-code.patch rename to target/linux/brcm2708/patches-4.19/950-0012-spi-bcm2835-Remove-unused-code.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0014-dmaengine-bcm2835-Load-driver-early-and-support-lega.patch b/target/linux/brcm2708/patches-4.19/950-0013-dmaengine-bcm2835-Load-driver-early-and-support-lega.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0014-dmaengine-bcm2835-Load-driver-early-and-support-lega.patch rename to target/linux/brcm2708/patches-4.19/950-0013-dmaengine-bcm2835-Load-driver-early-and-support-lega.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0015-firmware-Updated-mailbox-header.patch b/target/linux/brcm2708/patches-4.19/950-0014-firmware-Updated-mailbox-header.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0015-firmware-Updated-mailbox-header.patch rename to target/linux/brcm2708/patches-4.19/950-0014-firmware-Updated-mailbox-header.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0016-rtc-Add-SPI-alias-for-pcf2123-driver.patch b/target/linux/brcm2708/patches-4.19/950-0015-rtc-Add-SPI-alias-for-pcf2123-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0016-rtc-Add-SPI-alias-for-pcf2123-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0015-rtc-Add-SPI-alias-for-pcf2123-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0017-watchdog-bcm2835-Support-setting-reboot-partition.patch b/target/linux/brcm2708/patches-4.19/950-0016-watchdog-bcm2835-Support-setting-reboot-partition.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0017-watchdog-bcm2835-Support-setting-reboot-partition.patch rename to target/linux/brcm2708/patches-4.19/950-0016-watchdog-bcm2835-Support-setting-reboot-partition.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0018-reboot-Use-power-off-rather-than-busy-spinning-when-.patch b/target/linux/brcm2708/patches-4.19/950-0017-reboot-Use-power-off-rather-than-busy-spinning-when-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0018-reboot-Use-power-off-rather-than-busy-spinning-when-.patch rename to target/linux/brcm2708/patches-4.19/950-0017-reboot-Use-power-off-rather-than-busy-spinning-when-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0019-bcm-Make-RASPBERRYPI_POWER-depend-on-PM.patch b/target/linux/brcm2708/patches-4.19/950-0018-bcm-Make-RASPBERRYPI_POWER-depend-on-PM.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0019-bcm-Make-RASPBERRYPI_POWER-depend-on-PM.patch rename to target/linux/brcm2708/patches-4.19/950-0018-bcm-Make-RASPBERRYPI_POWER-depend-on-PM.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0020-Register-the-clocks-early-during-the-boot-process-so.patch b/target/linux/brcm2708/patches-4.19/950-0019-Register-the-clocks-early-during-the-boot-process-so.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0020-Register-the-clocks-early-during-the-boot-process-so.patch rename to target/linux/brcm2708/patches-4.19/950-0019-Register-the-clocks-early-during-the-boot-process-so.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0021-bcm2835-rng-Avoid-initialising-if-already-enabled.patch b/target/linux/brcm2708/patches-4.19/950-0020-bcm2835-rng-Avoid-initialising-if-already-enabled.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0021-bcm2835-rng-Avoid-initialising-if-already-enabled.patch rename to target/linux/brcm2708/patches-4.19/950-0020-bcm2835-rng-Avoid-initialising-if-already-enabled.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0022-kbuild-Ignore-dtco-targets-when-filtering-symbols.patch b/target/linux/brcm2708/patches-4.19/950-0021-kbuild-Ignore-dtco-targets-when-filtering-symbols.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0022-kbuild-Ignore-dtco-targets-when-filtering-symbols.patch rename to target/linux/brcm2708/patches-4.19/950-0021-kbuild-Ignore-dtco-targets-when-filtering-symbols.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0023-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch b/target/linux/brcm2708/patches-4.19/950-0022-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0023-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch rename to target/linux/brcm2708/patches-4.19/950-0022-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0024-clk-bcm2835-Add-claim-clocks-property.patch b/target/linux/brcm2708/patches-4.19/950-0023-clk-bcm2835-Add-claim-clocks-property.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0024-clk-bcm2835-Add-claim-clocks-property.patch rename to target/linux/brcm2708/patches-4.19/950-0023-clk-bcm2835-Add-claim-clocks-property.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0025-clk-bcm2835-Read-max-core-clock-from-firmware.patch b/target/linux/brcm2708/patches-4.19/950-0024-clk-bcm2835-Read-max-core-clock-from-firmware.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0025-clk-bcm2835-Read-max-core-clock-from-firmware.patch rename to target/linux/brcm2708/patches-4.19/950-0024-clk-bcm2835-Read-max-core-clock-from-firmware.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0026-clk-bcm2835-Mark-GPIO-clocks-enabled-at-boot-as-crit.patch b/target/linux/brcm2708/patches-4.19/950-0025-clk-bcm2835-Mark-GPIO-clocks-enabled-at-boot-as-crit.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0026-clk-bcm2835-Mark-GPIO-clocks-enabled-at-boot-as-crit.patch rename to target/linux/brcm2708/patches-4.19/950-0025-clk-bcm2835-Mark-GPIO-clocks-enabled-at-boot-as-crit.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0027-sound-Demote-deferral-errors-to-INFO-level.patch b/target/linux/brcm2708/patches-4.19/950-0026-sound-Demote-deferral-errors-to-INFO-level.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0027-sound-Demote-deferral-errors-to-INFO-level.patch rename to target/linux/brcm2708/patches-4.19/950-0026-sound-Demote-deferral-errors-to-INFO-level.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0028-Update-vfpmodule.c.patch b/target/linux/brcm2708/patches-4.19/950-0027-Update-vfpmodule.c.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0028-Update-vfpmodule.c.patch rename to target/linux/brcm2708/patches-4.19/950-0027-Update-vfpmodule.c.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0029-i2c-bcm2835-Add-debug-support.patch b/target/linux/brcm2708/patches-4.19/950-0028-i2c-bcm2835-Add-debug-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0029-i2c-bcm2835-Add-debug-support.patch rename to target/linux/brcm2708/patches-4.19/950-0028-i2c-bcm2835-Add-debug-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0030-mm-Remove-the-PFN-busy-warning.patch b/target/linux/brcm2708/patches-4.19/950-0029-mm-Remove-the-PFN-busy-warning.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0030-mm-Remove-the-PFN-busy-warning.patch rename to target/linux/brcm2708/patches-4.19/950-0029-mm-Remove-the-PFN-busy-warning.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0031-ASoC-Add-prompt-for-ICS43432-codec.patch b/target/linux/brcm2708/patches-4.19/950-0030-ASoC-Add-prompt-for-ICS43432-codec.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0031-ASoC-Add-prompt-for-ICS43432-codec.patch rename to target/linux/brcm2708/patches-4.19/950-0030-ASoC-Add-prompt-for-ICS43432-codec.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0032-irqchip-irq-bcm2836-Remove-regmap-and-syscon-use.patch b/target/linux/brcm2708/patches-4.19/950-0031-irqchip-irq-bcm2836-Remove-regmap-and-syscon-use.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0032-irqchip-irq-bcm2836-Remove-regmap-and-syscon-use.patch rename to target/linux/brcm2708/patches-4.19/950-0031-irqchip-irq-bcm2836-Remove-regmap-and-syscon-use.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0033-lan78xx-Enable-LEDs-and-auto-negotiation.patch b/target/linux/brcm2708/patches-4.19/950-0032-lan78xx-Enable-LEDs-and-auto-negotiation.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0033-lan78xx-Enable-LEDs-and-auto-negotiation.patch rename to target/linux/brcm2708/patches-4.19/950-0032-lan78xx-Enable-LEDs-and-auto-negotiation.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0034-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch b/target/linux/brcm2708/patches-4.19/950-0033-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0034-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch rename to target/linux/brcm2708/patches-4.19/950-0033-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0035-amba_pl011-Round-input-clock-up.patch b/target/linux/brcm2708/patches-4.19/950-0034-amba_pl011-Round-input-clock-up.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0035-amba_pl011-Round-input-clock-up.patch rename to target/linux/brcm2708/patches-4.19/950-0034-amba_pl011-Round-input-clock-up.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0036-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch b/target/linux/brcm2708/patches-4.19/950-0035-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0036-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch rename to target/linux/brcm2708/patches-4.19/950-0035-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0037-amba_pl011-Add-cts-event-workaround-DT-property.patch b/target/linux/brcm2708/patches-4.19/950-0036-amba_pl011-Add-cts-event-workaround-DT-property.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0037-amba_pl011-Add-cts-event-workaround-DT-property.patch rename to target/linux/brcm2708/patches-4.19/950-0036-amba_pl011-Add-cts-event-workaround-DT-property.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0038-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch b/target/linux/brcm2708/patches-4.19/950-0037-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0038-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch rename to target/linux/brcm2708/patches-4.19/950-0037-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0039-Main-bcm2708-bcm2709-linux-port.patch b/target/linux/brcm2708/patches-4.19/950-0038-Main-bcm2708-bcm2709-linux-port.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0039-Main-bcm2708-bcm2709-linux-port.patch rename to target/linux/brcm2708/patches-4.19/950-0038-Main-bcm2708-bcm2709-linux-port.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0040-Add-dwc_otg-driver.patch b/target/linux/brcm2708/patches-4.19/950-0039-Add-dwc_otg-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0040-Add-dwc_otg-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0039-Add-dwc_otg-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0041-bcm2708-framebuffer-driver.patch b/target/linux/brcm2708/patches-4.19/950-0040-bcm2708-framebuffer-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0041-bcm2708-framebuffer-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0040-bcm2708-framebuffer-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0042-Speed-up-console-framebuffer-imageblit-function.patch b/target/linux/brcm2708/patches-4.19/950-0041-Speed-up-console-framebuffer-imageblit-function.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0042-Speed-up-console-framebuffer-imageblit-function.patch rename to target/linux/brcm2708/patches-4.19/950-0041-Speed-up-console-framebuffer-imageblit-function.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0043-dmaengine-Add-support-for-BCM2708.patch b/target/linux/brcm2708/patches-4.19/950-0042-dmaengine-Add-support-for-BCM2708.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0043-dmaengine-Add-support-for-BCM2708.patch rename to target/linux/brcm2708/patches-4.19/950-0042-dmaengine-Add-support-for-BCM2708.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0044-MMC-added-alternative-MMC-driver.patch b/target/linux/brcm2708/patches-4.19/950-0043-MMC-added-alternative-MMC-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0044-MMC-added-alternative-MMC-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0043-MMC-added-alternative-MMC-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0045-Adding-bcm2835-sdhost-driver-and-an-overlay-to-enabl.patch b/target/linux/brcm2708/patches-4.19/950-0044-Adding-bcm2835-sdhost-driver-and-an-overlay-to-enabl.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0045-Adding-bcm2835-sdhost-driver-and-an-overlay-to-enabl.patch rename to target/linux/brcm2708/patches-4.19/950-0044-Adding-bcm2835-sdhost-driver-and-an-overlay-to-enabl.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0046-vc_mem-Add-vc_mem-driver-for-querying-firmware-memor.patch b/target/linux/brcm2708/patches-4.19/950-0045-vc_mem-Add-vc_mem-driver-for-querying-firmware-memor.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0046-vc_mem-Add-vc_mem-driver-for-querying-firmware-memor.patch rename to target/linux/brcm2708/patches-4.19/950-0045-vc_mem-Add-vc_mem-driver-for-querying-firmware-memor.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0047-vcsm-VideoCore-shared-memory-service-for-BCM2835.patch b/target/linux/brcm2708/patches-4.19/950-0046-vcsm-VideoCore-shared-memory-service-for-BCM2835.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0047-vcsm-VideoCore-shared-memory-service-for-BCM2835.patch rename to target/linux/brcm2708/patches-4.19/950-0046-vcsm-VideoCore-shared-memory-service-for-BCM2835.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0048-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch b/target/linux/brcm2708/patches-4.19/950-0047-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0048-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch rename to target/linux/brcm2708/patches-4.19/950-0047-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0049-Add-SMI-driver.patch b/target/linux/brcm2708/patches-4.19/950-0048-Add-SMI-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0049-Add-SMI-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0048-Add-SMI-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0050-MISC-bcm2835-smi-use-clock-manager-and-fix-reload-is.patch b/target/linux/brcm2708/patches-4.19/950-0049-MISC-bcm2835-smi-use-clock-manager-and-fix-reload-is.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0050-MISC-bcm2835-smi-use-clock-manager-and-fix-reload-is.patch rename to target/linux/brcm2708/patches-4.19/950-0049-MISC-bcm2835-smi-use-clock-manager-and-fix-reload-is.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0051-Add-SMI-NAND-driver.patch b/target/linux/brcm2708/patches-4.19/950-0050-Add-SMI-NAND-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0051-Add-SMI-NAND-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0050-Add-SMI-NAND-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0052-Add-cpufreq-driver.patch b/target/linux/brcm2708/patches-4.19/950-0051-Add-cpufreq-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0052-Add-cpufreq-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0051-Add-cpufreq-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0053-Add-Chris-Boot-s-i2c-driver.patch b/target/linux/brcm2708/patches-4.19/950-0052-Add-Chris-Boot-s-i2c-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0053-Add-Chris-Boot-s-i2c-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0052-Add-Chris-Boot-s-i2c-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0054-char-broadcom-Add-vcio-module.patch b/target/linux/brcm2708/patches-4.19/950-0053-char-broadcom-Add-vcio-module.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0054-char-broadcom-Add-vcio-module.patch rename to target/linux/brcm2708/patches-4.19/950-0053-char-broadcom-Add-vcio-module.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0055-firmware-bcm2835-Support-ARCH_BCM270x.patch b/target/linux/brcm2708/patches-4.19/950-0054-firmware-bcm2835-Support-ARCH_BCM270x.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0055-firmware-bcm2835-Support-ARCH_BCM270x.patch rename to target/linux/brcm2708/patches-4.19/950-0054-firmware-bcm2835-Support-ARCH_BCM270x.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0056-scripts-Add-mkknlimg-and-knlinfo-scripts-from-tools-.patch b/target/linux/brcm2708/patches-4.19/950-0055-scripts-Add-mkknlimg-and-knlinfo-scripts-from-tools-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0056-scripts-Add-mkknlimg-and-knlinfo-scripts-from-tools-.patch rename to target/linux/brcm2708/patches-4.19/950-0055-scripts-Add-mkknlimg-and-knlinfo-scripts-from-tools-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0057-BCM2708-Add-core-Device-Tree-support.patch b/target/linux/brcm2708/patches-4.19/950-0056-BCM2708-Add-core-Device-Tree-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0057-BCM2708-Add-core-Device-Tree-support.patch rename to target/linux/brcm2708/patches-4.19/950-0056-BCM2708-Add-core-Device-Tree-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0058-BCM270x_DT-Add-pwr_led-and-the-required-input-trigge.patch b/target/linux/brcm2708/patches-4.19/950-0057-BCM270x_DT-Add-pwr_led-and-the-required-input-trigge.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0058-BCM270x_DT-Add-pwr_led-and-the-required-input-trigge.patch rename to target/linux/brcm2708/patches-4.19/950-0057-BCM270x_DT-Add-pwr_led-and-the-required-input-trigge.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0059-fbdev-add-FBIOCOPYAREA-ioctl.patch b/target/linux/brcm2708/patches-4.19/950-0058-fbdev-add-FBIOCOPYAREA-ioctl.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0059-fbdev-add-FBIOCOPYAREA-ioctl.patch rename to target/linux/brcm2708/patches-4.19/950-0058-fbdev-add-FBIOCOPYAREA-ioctl.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0060-Added-Device-IDs-for-August-DVB-T-205.patch b/target/linux/brcm2708/patches-4.19/950-0059-Added-Device-IDs-for-August-DVB-T-205.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0060-Added-Device-IDs-for-August-DVB-T-205.patch rename to target/linux/brcm2708/patches-4.19/950-0059-Added-Device-IDs-for-August-DVB-T-205.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0061-rpi-ft5406-Add-touchscreen-driver-for-pi-LCD-display.patch b/target/linux/brcm2708/patches-4.19/950-0060-rpi-ft5406-Add-touchscreen-driver-for-pi-LCD-display.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0061-rpi-ft5406-Add-touchscreen-driver-for-pi-LCD-display.patch rename to target/linux/brcm2708/patches-4.19/950-0060-rpi-ft5406-Add-touchscreen-driver-for-pi-LCD-display.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0062-Improve-__copy_to_user-and-__copy_from_user-performa.patch b/target/linux/brcm2708/patches-4.19/950-0061-Improve-__copy_to_user-and-__copy_from_user-performa.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0062-Improve-__copy_to_user-and-__copy_from_user-performa.patch rename to target/linux/brcm2708/patches-4.19/950-0061-Improve-__copy_to_user-and-__copy_from_user-performa.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0063-gpio-poweroff-Allow-it-to-work-on-Raspberry-Pi.patch b/target/linux/brcm2708/patches-4.19/950-0062-gpio-poweroff-Allow-it-to-work-on-Raspberry-Pi.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0063-gpio-poweroff-Allow-it-to-work-on-Raspberry-Pi.patch rename to target/linux/brcm2708/patches-4.19/950-0062-gpio-poweroff-Allow-it-to-work-on-Raspberry-Pi.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0064-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch b/target/linux/brcm2708/patches-4.19/950-0063-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0064-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0063-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0065-ASoC-pcm512x-implement-set_tdm_slot-interface.patch b/target/linux/brcm2708/patches-4.19/950-0064-ASoC-pcm512x-implement-set_tdm_slot-interface.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0065-ASoC-pcm512x-implement-set_tdm_slot-interface.patch rename to target/linux/brcm2708/patches-4.19/950-0064-ASoC-pcm512x-implement-set_tdm_slot-interface.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0066-ASoC-Add-support-for-Rpi-DAC.patch b/target/linux/brcm2708/patches-4.19/950-0065-ASoC-Add-support-for-Rpi-DAC.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0066-ASoC-Add-support-for-Rpi-DAC.patch rename to target/linux/brcm2708/patches-4.19/950-0065-ASoC-Add-support-for-Rpi-DAC.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0067-Add-IQaudIO-Sound-Card-support-for-Raspberry-Pi.patch b/target/linux/brcm2708/patches-4.19/950-0066-Add-IQaudIO-Sound-Card-support-for-Raspberry-Pi.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0067-Add-IQaudIO-Sound-Card-support-for-Raspberry-Pi.patch rename to target/linux/brcm2708/patches-4.19/950-0066-Add-IQaudIO-Sound-Card-support-for-Raspberry-Pi.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0068-Added-support-for-HiFiBerry-DAC.patch b/target/linux/brcm2708/patches-4.19/950-0067-Added-support-for-HiFiBerry-DAC.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0068-Added-support-for-HiFiBerry-DAC.patch rename to target/linux/brcm2708/patches-4.19/950-0067-Added-support-for-HiFiBerry-DAC.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0069-Added-driver-for-HiFiBerry-Amp-amplifier-add-on-boar.patch b/target/linux/brcm2708/patches-4.19/950-0068-Added-driver-for-HiFiBerry-Amp-amplifier-add-on-boar.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0069-Added-driver-for-HiFiBerry-Amp-amplifier-add-on-boar.patch rename to target/linux/brcm2708/patches-4.19/950-0068-Added-driver-for-HiFiBerry-Amp-amplifier-add-on-boar.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0070-Add-driver-for-rpi-proto.patch b/target/linux/brcm2708/patches-4.19/950-0069-Add-driver-for-rpi-proto.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0070-Add-driver-for-rpi-proto.patch rename to target/linux/brcm2708/patches-4.19/950-0069-Add-driver-for-rpi-proto.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0071-Add-Support-for-JustBoom-Audio-boards.patch b/target/linux/brcm2708/patches-4.19/950-0070-Add-Support-for-JustBoom-Audio-boards.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0071-Add-Support-for-JustBoom-Audio-boards.patch rename to target/linux/brcm2708/patches-4.19/950-0070-Add-Support-for-JustBoom-Audio-boards.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0072-New-AudioInjector.net-Pi-soundcard-with-low-jitter-a.patch b/target/linux/brcm2708/patches-4.19/950-0071-New-AudioInjector.net-Pi-soundcard-with-low-jitter-a.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0072-New-AudioInjector.net-Pi-soundcard-with-low-jitter-a.patch rename to target/linux/brcm2708/patches-4.19/950-0071-New-AudioInjector.net-Pi-soundcard-with-low-jitter-a.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0073-New-driver-for-RRA-DigiDAC1-soundcard-using-WM8741-W.patch b/target/linux/brcm2708/patches-4.19/950-0072-New-driver-for-RRA-DigiDAC1-soundcard-using-WM8741-W.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0073-New-driver-for-RRA-DigiDAC1-soundcard-using-WM8741-W.patch rename to target/linux/brcm2708/patches-4.19/950-0072-New-driver-for-RRA-DigiDAC1-soundcard-using-WM8741-W.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0074-Add-support-for-Dion-Audio-LOCO-DAC-AMP-HAT.patch b/target/linux/brcm2708/patches-4.19/950-0073-Add-support-for-Dion-Audio-LOCO-DAC-AMP-HAT.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0074-Add-support-for-Dion-Audio-LOCO-DAC-AMP-HAT.patch rename to target/linux/brcm2708/patches-4.19/950-0073-Add-support-for-Dion-Audio-LOCO-DAC-AMP-HAT.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0075-Allo-Piano-DAC-boards-Initial-2-channel-stereo-suppo.patch b/target/linux/brcm2708/patches-4.19/950-0074-Allo-Piano-DAC-boards-Initial-2-channel-stereo-suppo.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0075-Allo-Piano-DAC-boards-Initial-2-channel-stereo-suppo.patch rename to target/linux/brcm2708/patches-4.19/950-0074-Allo-Piano-DAC-boards-Initial-2-channel-stereo-suppo.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0076-Add-support-for-Allo-Piano-DAC-2.1-plus-add-on-board.patch b/target/linux/brcm2708/patches-4.19/950-0075-Add-support-for-Allo-Piano-DAC-2.1-plus-add-on-board.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0076-Add-support-for-Allo-Piano-DAC-2.1-plus-add-on-board.patch rename to target/linux/brcm2708/patches-4.19/950-0075-Add-support-for-Allo-Piano-DAC-2.1-plus-add-on-board.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0077-Add-support-for-Allo-Boss-DAC-add-on-board-for-Raspb.patch b/target/linux/brcm2708/patches-4.19/950-0076-Add-support-for-Allo-Boss-DAC-add-on-board-for-Raspb.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0077-Add-support-for-Allo-Boss-DAC-add-on-board-for-Raspb.patch rename to target/linux/brcm2708/patches-4.19/950-0076-Add-support-for-Allo-Boss-DAC-add-on-board-for-Raspb.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0078-Support-for-Blokas-Labs-pisound-board.patch b/target/linux/brcm2708/patches-4.19/950-0077-Support-for-Blokas-Labs-pisound-board.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0078-Support-for-Blokas-Labs-pisound-board.patch rename to target/linux/brcm2708/patches-4.19/950-0077-Support-for-Blokas-Labs-pisound-board.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0079-ASoC-Add-driver-for-Cirrus-Logic-Audio-Card.patch b/target/linux/brcm2708/patches-4.19/950-0078-ASoC-Add-driver-for-Cirrus-Logic-Audio-Card.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0079-ASoC-Add-driver-for-Cirrus-Logic-Audio-Card.patch rename to target/linux/brcm2708/patches-4.19/950-0078-ASoC-Add-driver-for-Cirrus-Logic-Audio-Card.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0080-sound-Support-for-Dion-Audio-LOCO-V2-DAC-AMP-HAT.patch b/target/linux/brcm2708/patches-4.19/950-0079-sound-Support-for-Dion-Audio-LOCO-V2-DAC-AMP-HAT.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0080-sound-Support-for-Dion-Audio-LOCO-V2-DAC-AMP-HAT.patch rename to target/linux/brcm2708/patches-4.19/950-0079-sound-Support-for-Dion-Audio-LOCO-V2-DAC-AMP-HAT.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0081-Add-support-for-Fe-Pi-audio-sound-card.-1867.patch b/target/linux/brcm2708/patches-4.19/950-0080-Add-support-for-Fe-Pi-audio-sound-card.-1867.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0081-Add-support-for-Fe-Pi-audio-sound-card.-1867.patch rename to target/linux/brcm2708/patches-4.19/950-0080-Add-support-for-Fe-Pi-audio-sound-card.-1867.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0082-Add-support-for-the-AudioInjector.net-Octo-sound-car.patch b/target/linux/brcm2708/patches-4.19/950-0081-Add-support-for-the-AudioInjector.net-Octo-sound-car.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0082-Add-support-for-the-AudioInjector.net-Octo-sound-car.patch rename to target/linux/brcm2708/patches-4.19/950-0081-Add-support-for-the-AudioInjector.net-Octo-sound-car.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0083-Driver-support-for-Google-voiceHAT-soundcard.patch b/target/linux/brcm2708/patches-4.19/950-0082-Driver-support-for-Google-voiceHAT-soundcard.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0083-Driver-support-for-Google-voiceHAT-soundcard.patch rename to target/linux/brcm2708/patches-4.19/950-0082-Driver-support-for-Google-voiceHAT-soundcard.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0084-Driver-and-overlay-for-Allo-Katana-DAC.patch b/target/linux/brcm2708/patches-4.19/950-0083-Driver-and-overlay-for-Allo-Katana-DAC.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0084-Driver-and-overlay-for-Allo-Katana-DAC.patch rename to target/linux/brcm2708/patches-4.19/950-0083-Driver-and-overlay-for-Allo-Katana-DAC.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0086-ASoC-Add-generic-RPI-driver-for-simple-soundcards.patch b/target/linux/brcm2708/patches-4.19/950-0084-ASoC-Add-generic-RPI-driver-for-simple-soundcards.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0086-ASoC-Add-generic-RPI-driver-for-simple-soundcards.patch rename to target/linux/brcm2708/patches-4.19/950-0084-ASoC-Add-generic-RPI-driver-for-simple-soundcards.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0087-ASoC-Add-Kconfig-and-Makefile-for-sound-soc-bcm.patch b/target/linux/brcm2708/patches-4.19/950-0085-ASoC-Add-Kconfig-and-Makefile-for-sound-soc-bcm.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0087-ASoC-Add-Kconfig-and-Makefile-for-sound-soc-bcm.patch rename to target/linux/brcm2708/patches-4.19/950-0085-ASoC-Add-Kconfig-and-Makefile-for-sound-soc-bcm.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0085-ASoC-wm8804-MCLK-configuration-options-32-bit.patch b/target/linux/brcm2708/patches-4.19/950-0085-ASoC-wm8804-MCLK-configuration-options-32-bit.patch deleted file mode 100644 index 9c4462c1b4e..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0085-ASoC-wm8804-MCLK-configuration-options-32-bit.patch +++ /dev/null @@ -1,32 +0,0 @@ -From f77d4bf8ea9217d57be6982a6fdfa9f5f9c9b927 Mon Sep 17 00:00:00 2001 -From: Daniel Matuschek -Date: Wed, 15 Jan 2014 21:41:23 +0100 -Subject: [PATCH] ASoC: wm8804: MCLK configuration options, 32-bit - -WM8804 can run with PLL frequencies of 256xfs and 128xfs for most sample -rates. At 192kHz only 128xfs is supported. The existing driver selects -128xfs automatically for some lower samples rates. By using an -additional mclk_div divider, it is now possible to control the -behaviour. This allows using 256xfs PLL frequency on all sample rates up -to 96kHz. It should allow lower jitter and better signal quality. The -behavior has to be controlled by the sound card driver, because some -sample frequency share the same setting. e.g. 192kHz and 96kHz use -24.576MHz master clock. The only difference is the MCLK divider. - -This also added support for 32bit data. - -Signed-off-by: Daniel Matuschek ---- - sound/soc/codecs/wm8804.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/sound/soc/codecs/wm8804.c -+++ b/sound/soc/codecs/wm8804.c -@@ -550,6 +550,7 @@ static const struct snd_soc_component_dr - .use_pmdown_time = 1, - .endianness = 1, - .non_legacy_dai_naming = 1, -+ .idle_bias_on = true, - }; - - const struct regmap_config wm8804_regmap_config = { diff --git a/target/linux/brcm2708/patches-4.19/950-0088-ASoC-Create-a-generic-Pi-Hat-WM8804-driver.patch b/target/linux/brcm2708/patches-4.19/950-0086-ASoC-Create-a-generic-Pi-Hat-WM8804-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0088-ASoC-Create-a-generic-Pi-Hat-WM8804-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0086-ASoC-Create-a-generic-Pi-Hat-WM8804-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0089-rpi_display-add-backlight-driver-and-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0087-rpi_display-add-backlight-driver-and-overlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0089-rpi_display-add-backlight-driver-and-overlay.patch rename to target/linux/brcm2708/patches-4.19/950-0087-rpi_display-add-backlight-driver-and-overlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0090-bcm2835-virtgpio-Virtual-GPIO-driver.patch b/target/linux/brcm2708/patches-4.19/950-0088-bcm2835-virtgpio-Virtual-GPIO-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0090-bcm2835-virtgpio-Virtual-GPIO-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0088-bcm2835-virtgpio-Virtual-GPIO-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0091-OF-DT-Overlay-configfs-interface.patch b/target/linux/brcm2708/patches-4.19/950-0089-OF-DT-Overlay-configfs-interface.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0091-OF-DT-Overlay-configfs-interface.patch rename to target/linux/brcm2708/patches-4.19/950-0089-OF-DT-Overlay-configfs-interface.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0092-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch b/target/linux/brcm2708/patches-4.19/950-0090-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0092-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch rename to target/linux/brcm2708/patches-4.19/950-0090-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0093-Add-arm64-configuration-and-device-tree-differences..patch b/target/linux/brcm2708/patches-4.19/950-0091-Add-arm64-configuration-and-device-tree-differences..patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0093-Add-arm64-configuration-and-device-tree-differences..patch rename to target/linux/brcm2708/patches-4.19/950-0091-Add-arm64-configuration-and-device-tree-differences..patch diff --git a/target/linux/brcm2708/patches-4.19/950-0094-ARM64-DWC_OTG-Port-dwc_otg-driver-to-ARM64.patch b/target/linux/brcm2708/patches-4.19/950-0092-ARM64-DWC_OTG-Port-dwc_otg-driver-to-ARM64.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0094-ARM64-DWC_OTG-Port-dwc_otg-driver-to-ARM64.patch rename to target/linux/brcm2708/patches-4.19/950-0092-ARM64-DWC_OTG-Port-dwc_otg-driver-to-ARM64.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0095-ARM64-Round-Robin-dispatch-IRQs-between-CPUs.patch b/target/linux/brcm2708/patches-4.19/950-0093-ARM64-Round-Robin-dispatch-IRQs-between-CPUs.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0095-ARM64-Round-Robin-dispatch-IRQs-between-CPUs.patch rename to target/linux/brcm2708/patches-4.19/950-0093-ARM64-Round-Robin-dispatch-IRQs-between-CPUs.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0096-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch b/target/linux/brcm2708/patches-4.19/950-0094-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0096-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch rename to target/linux/brcm2708/patches-4.19/950-0094-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0097-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch b/target/linux/brcm2708/patches-4.19/950-0095-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0097-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch rename to target/linux/brcm2708/patches-4.19/950-0095-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0098-cache-export-clean-and-invalidate.patch b/target/linux/brcm2708/patches-4.19/950-0096-cache-export-clean-and-invalidate.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0098-cache-export-clean-and-invalidate.patch rename to target/linux/brcm2708/patches-4.19/950-0096-cache-export-clean-and-invalidate.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0099-AXI-performance-monitor-driver-2222.patch b/target/linux/brcm2708/patches-4.19/950-0097-AXI-performance-monitor-driver-2222.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0099-AXI-performance-monitor-driver-2222.patch rename to target/linux/brcm2708/patches-4.19/950-0097-AXI-performance-monitor-driver-2222.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0100-mcp2515-Use-DT-supplied-interrupt-flags.patch b/target/linux/brcm2708/patches-4.19/950-0098-mcp2515-Use-DT-supplied-interrupt-flags.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0100-mcp2515-Use-DT-supplied-interrupt-flags.patch rename to target/linux/brcm2708/patches-4.19/950-0098-mcp2515-Use-DT-supplied-interrupt-flags.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0101-Tidy-up-of-the-ft5406-driver-to-use-DT-2189.patch b/target/linux/brcm2708/patches-4.19/950-0099-Tidy-up-of-the-ft5406-driver-to-use-DT-2189.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0101-Tidy-up-of-the-ft5406-driver-to-use-DT-2189.patch rename to target/linux/brcm2708/patches-4.19/950-0099-Tidy-up-of-the-ft5406-driver-to-use-DT-2189.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0103-ARM-bcm2835-Set-Serial-number-and-Revision.patch b/target/linux/brcm2708/patches-4.19/950-0100-ARM-bcm2835-Set-Serial-number-and-Revision.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0103-ARM-bcm2835-Set-Serial-number-and-Revision.patch rename to target/linux/brcm2708/patches-4.19/950-0100-ARM-bcm2835-Set-Serial-number-and-Revision.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0104-ARM-Activate-FIQs-to-avoid-__irq_startup-warnings.patch b/target/linux/brcm2708/patches-4.19/950-0101-ARM-Activate-FIQs-to-avoid-__irq_startup-warnings.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0104-ARM-Activate-FIQs-to-avoid-__irq_startup-warnings.patch rename to target/linux/brcm2708/patches-4.19/950-0101-ARM-Activate-FIQs-to-avoid-__irq_startup-warnings.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0102-cgroup-Disable-cgroup-memory-by-default.patch b/target/linux/brcm2708/patches-4.19/950-0102-cgroup-Disable-cgroup-memory-by-default.patch deleted file mode 100644 index f08cbebc474..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0102-cgroup-Disable-cgroup-memory-by-default.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 7ae6ba03434344f90403936ae79bfd7ba005b49c Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Mon, 27 Nov 2017 17:14:54 +0000 -Subject: [PATCH] cgroup: Disable cgroup "memory" by default - -Some Raspberry Pis have limited RAM and most users won't use the -cgroup memory support so it is disabled by default. Enable with: - - cgroup_enable=memory - -See: https://github.com/raspberrypi/linux/issues/1950 - -Signed-off-by: Phil Elwell ---- - kernel/cgroup/cgroup.c | 30 ++++++++++++++++++++++++++++++ - 1 file changed, 30 insertions(+) - ---- a/kernel/cgroup/cgroup.c -+++ b/kernel/cgroup/cgroup.c -@@ -5334,6 +5334,8 @@ int __init cgroup_init_early(void) - } - - static u16 cgroup_disable_mask __initdata; -+static u16 cgroup_enable_mask __initdata; -+static int __init cgroup_disable(char *str); - - /** - * cgroup_init - cgroup initialization -@@ -5374,6 +5376,12 @@ int __init cgroup_init(void) - - mutex_unlock(&cgroup_mutex); - -+ /* Apply an implicit disable... */ -+ cgroup_disable("memory"); -+ -+ /* ...knowing that an explicit enable will override it. */ -+ cgroup_disable_mask &= ~cgroup_enable_mask; -+ - for_each_subsys(ss, ssid) { - if (ss->early_init) { - struct cgroup_subsys_state *css = -@@ -5765,6 +5773,28 @@ static int __init cgroup_disable(char *s - } - __setup("cgroup_disable=", cgroup_disable); - -+static int __init cgroup_enable(char *str) -+{ -+ struct cgroup_subsys *ss; -+ char *token; -+ int i; -+ -+ while ((token = strsep(&str, ",")) != NULL) { -+ if (!*token) -+ continue; -+ -+ for_each_subsys(ss, i) { -+ if (strcmp(token, ss->name) && -+ strcmp(token, ss->legacy_name)) -+ continue; -+ -+ cgroup_enable_mask |= 1 << i; -+ } -+ } -+ return 1; -+} -+__setup("cgroup_enable=", cgroup_enable); -+ - /** - * css_tryget_online_from_dir - get corresponding css from a cgroup dentry - * @dentry: directory dentry of interest diff --git a/target/linux/brcm2708/patches-4.19/950-0105-serial-8250-bcm2835aux-suppress-EPROBE_DEFER.patch b/target/linux/brcm2708/patches-4.19/950-0102-serial-8250-bcm2835aux-suppress-EPROBE_DEFER.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0105-serial-8250-bcm2835aux-suppress-EPROBE_DEFER.patch rename to target/linux/brcm2708/patches-4.19/950-0102-serial-8250-bcm2835aux-suppress-EPROBE_DEFER.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0106-raspberrypi-firmware-Export-the-general-transaction-.patch b/target/linux/brcm2708/patches-4.19/950-0103-raspberrypi-firmware-Export-the-general-transaction-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0106-raspberrypi-firmware-Export-the-general-transaction-.patch rename to target/linux/brcm2708/patches-4.19/950-0103-raspberrypi-firmware-Export-the-general-transaction-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0107-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch b/target/linux/brcm2708/patches-4.19/950-0104-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0107-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch rename to target/linux/brcm2708/patches-4.19/950-0104-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0108-drm-vc4-Name-the-primary-and-cursor-planes-in-fkms.patch b/target/linux/brcm2708/patches-4.19/950-0105-drm-vc4-Name-the-primary-and-cursor-planes-in-fkms.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0108-drm-vc4-Name-the-primary-and-cursor-planes-in-fkms.patch rename to target/linux/brcm2708/patches-4.19/950-0105-drm-vc4-Name-the-primary-and-cursor-planes-in-fkms.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0109-drm-vc4-Add-DRM_DEBUG_ATOMIC-for-the-insides-of-fkms.patch b/target/linux/brcm2708/patches-4.19/950-0106-drm-vc4-Add-DRM_DEBUG_ATOMIC-for-the-insides-of-fkms.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0109-drm-vc4-Add-DRM_DEBUG_ATOMIC-for-the-insides-of-fkms.patch rename to target/linux/brcm2708/patches-4.19/950-0106-drm-vc4-Add-DRM_DEBUG_ATOMIC-for-the-insides-of-fkms.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0110-drm-vc4-Fix-sending-of-page-flip-completion-events-i.patch b/target/linux/brcm2708/patches-4.19/950-0107-drm-vc4-Fix-sending-of-page-flip-completion-events-i.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0110-drm-vc4-Fix-sending-of-page-flip-completion-events-i.patch rename to target/linux/brcm2708/patches-4.19/950-0107-drm-vc4-Fix-sending-of-page-flip-completion-events-i.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0111-drm-vc4-Add-support-for-setting-DPMS-in-firmwarekms.patch b/target/linux/brcm2708/patches-4.19/950-0108-drm-vc4-Add-support-for-setting-DPMS-in-firmwarekms.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0111-drm-vc4-Add-support-for-setting-DPMS-in-firmwarekms.patch rename to target/linux/brcm2708/patches-4.19/950-0108-drm-vc4-Add-support-for-setting-DPMS-in-firmwarekms.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0112-drm-vc4-Add-FB-modifier-support-to-firmwarekms.patch b/target/linux/brcm2708/patches-4.19/950-0109-drm-vc4-Add-FB-modifier-support-to-firmwarekms.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0112-drm-vc4-Add-FB-modifier-support-to-firmwarekms.patch rename to target/linux/brcm2708/patches-4.19/950-0109-drm-vc4-Add-FB-modifier-support-to-firmwarekms.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0113-drm-vc4-Add-missing-enable-disable-vblank-handlers-i.patch b/target/linux/brcm2708/patches-4.19/950-0110-drm-vc4-Add-missing-enable-disable-vblank-handlers-i.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0113-drm-vc4-Add-missing-enable-disable-vblank-handlers-i.patch rename to target/linux/brcm2708/patches-4.19/950-0110-drm-vc4-Add-missing-enable-disable-vblank-handlers-i.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0114-vc4_fkms-Apply-firmware-overscan-offset-to-hardware-.patch b/target/linux/brcm2708/patches-4.19/950-0111-vc4_fkms-Apply-firmware-overscan-offset-to-hardware-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0114-vc4_fkms-Apply-firmware-overscan-offset-to-hardware-.patch rename to target/linux/brcm2708/patches-4.19/950-0111-vc4_fkms-Apply-firmware-overscan-offset-to-hardware-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0115-drm-vc4-Fix-warning-about-vblank-interrupts-before-D.patch b/target/linux/brcm2708/patches-4.19/950-0112-drm-vc4-Fix-warning-about-vblank-interrupts-before-D.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0115-drm-vc4-Fix-warning-about-vblank-interrupts-before-D.patch rename to target/linux/brcm2708/patches-4.19/950-0112-drm-vc4-Fix-warning-about-vblank-interrupts-before-D.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0116-drm-vc4-Skip-SET_CURSOR_INFO-when-the-cursor-content.patch b/target/linux/brcm2708/patches-4.19/950-0113-drm-vc4-Skip-SET_CURSOR_INFO-when-the-cursor-content.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0116-drm-vc4-Skip-SET_CURSOR_INFO-when-the-cursor-content.patch rename to target/linux/brcm2708/patches-4.19/950-0113-drm-vc4-Skip-SET_CURSOR_INFO-when-the-cursor-content.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0117-drm-vc4-Remove-duplicate-primary-cursor-fields-from-.patch b/target/linux/brcm2708/patches-4.19/950-0114-drm-vc4-Remove-duplicate-primary-cursor-fields-from-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0117-drm-vc4-Remove-duplicate-primary-cursor-fields-from-.patch rename to target/linux/brcm2708/patches-4.19/950-0114-drm-vc4-Remove-duplicate-primary-cursor-fields-from-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0118-vc4_firmware_kms-fix-build.patch b/target/linux/brcm2708/patches-4.19/950-0115-vc4_firmware_kms-fix-build.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0118-vc4_firmware_kms-fix-build.patch rename to target/linux/brcm2708/patches-4.19/950-0115-vc4_firmware_kms-fix-build.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0119-hack-cache-Fix-linker-error.patch b/target/linux/brcm2708/patches-4.19/950-0116-hack-cache-Fix-linker-error.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0119-hack-cache-Fix-linker-error.patch rename to target/linux/brcm2708/patches-4.19/950-0116-hack-cache-Fix-linker-error.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0120-i2c-gpio-Also-set-bus-numbers-from-reg-property.patch b/target/linux/brcm2708/patches-4.19/950-0117-i2c-gpio-Also-set-bus-numbers-from-reg-property.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0120-i2c-gpio-Also-set-bus-numbers-from-reg-property.patch rename to target/linux/brcm2708/patches-4.19/950-0117-i2c-gpio-Also-set-bus-numbers-from-reg-property.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0121-sound-bcm-Fix-memset-dereference-warning.patch b/target/linux/brcm2708/patches-4.19/950-0118-sound-bcm-Fix-memset-dereference-warning.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0121-sound-bcm-Fix-memset-dereference-warning.patch rename to target/linux/brcm2708/patches-4.19/950-0118-sound-bcm-Fix-memset-dereference-warning.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0122-added-capture_clear-option-to-pps-gpio-via-dtoverlay.patch b/target/linux/brcm2708/patches-4.19/950-0119-added-capture_clear-option-to-pps-gpio-via-dtoverlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0122-added-capture_clear-option-to-pps-gpio-via-dtoverlay.patch rename to target/linux/brcm2708/patches-4.19/950-0119-added-capture_clear-option-to-pps-gpio-via-dtoverlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0123-lan78xx-Read-initial-EEE-status-from-DT.patch b/target/linux/brcm2708/patches-4.19/950-0120-lan78xx-Read-initial-EEE-status-from-DT.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0123-lan78xx-Read-initial-EEE-status-from-DT.patch rename to target/linux/brcm2708/patches-4.19/950-0120-lan78xx-Read-initial-EEE-status-from-DT.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0124-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch b/target/linux/brcm2708/patches-4.19/950-0121-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0124-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch rename to target/linux/brcm2708/patches-4.19/950-0121-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0125-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch b/target/linux/brcm2708/patches-4.19/950-0122-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0125-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch rename to target/linux/brcm2708/patches-4.19/950-0122-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0126-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch b/target/linux/brcm2708/patches-4.19/950-0123-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0126-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch rename to target/linux/brcm2708/patches-4.19/950-0123-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0127-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch b/target/linux/brcm2708/patches-4.19/950-0124-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0127-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch rename to target/linux/brcm2708/patches-4.19/950-0124-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0128-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch b/target/linux/brcm2708/patches-4.19/950-0125-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0128-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch rename to target/linux/brcm2708/patches-4.19/950-0125-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0129-of-configfs-Use-of_overlay_fdt_apply-API-call.patch b/target/linux/brcm2708/patches-4.19/950-0126-of-configfs-Use-of_overlay_fdt_apply-API-call.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0129-of-configfs-Use-of_overlay_fdt_apply-API-call.patch rename to target/linux/brcm2708/patches-4.19/950-0126-of-configfs-Use-of_overlay_fdt_apply-API-call.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0130-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch b/target/linux/brcm2708/patches-4.19/950-0127-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0130-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch rename to target/linux/brcm2708/patches-4.19/950-0127-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0131-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch b/target/linux/brcm2708/patches-4.19/950-0128-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0131-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch rename to target/linux/brcm2708/patches-4.19/950-0128-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0132-staging-vc04_services-Derive-g_cache_line_size.patch b/target/linux/brcm2708/patches-4.19/950-0129-staging-vc04_services-Derive-g_cache_line_size.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0132-staging-vc04_services-Derive-g_cache_line_size.patch rename to target/linux/brcm2708/patches-4.19/950-0129-staging-vc04_services-Derive-g_cache_line_size.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0133-Add-rpi-poe-fan-driver.patch b/target/linux/brcm2708/patches-4.19/950-0130-Add-rpi-poe-fan-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0133-Add-rpi-poe-fan-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0130-Add-rpi-poe-fan-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0134-cxd2880-CXD2880_SPI_DRV-should-select-DVB_CXD2880-wi.patch b/target/linux/brcm2708/patches-4.19/950-0131-cxd2880-CXD2880_SPI_DRV-should-select-DVB_CXD2880-wi.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0134-cxd2880-CXD2880_SPI_DRV-should-select-DVB_CXD2880-wi.patch rename to target/linux/brcm2708/patches-4.19/950-0131-cxd2880-CXD2880_SPI_DRV-should-select-DVB_CXD2880-wi.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0136-vchiq_2835_arm-Implement-a-DMA-pool-for-small-bulk-t.patch b/target/linux/brcm2708/patches-4.19/950-0132-vchiq_2835_arm-Implement-a-DMA-pool-for-small-bulk-t.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0136-vchiq_2835_arm-Implement-a-DMA-pool-for-small-bulk-t.patch rename to target/linux/brcm2708/patches-4.19/950-0132-vchiq_2835_arm-Implement-a-DMA-pool-for-small-bulk-t.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0137-BCM2708_DT-Use-upstreamed-GPIO-expander-driver.patch b/target/linux/brcm2708/patches-4.19/950-0133-BCM2708_DT-Use-upstreamed-GPIO-expander-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0137-BCM2708_DT-Use-upstreamed-GPIO-expander-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0133-BCM2708_DT-Use-upstreamed-GPIO-expander-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0138-overlays-Fix-a-few-dtc-warnings.patch b/target/linux/brcm2708/patches-4.19/950-0134-overlays-Fix-a-few-dtc-warnings.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0138-overlays-Fix-a-few-dtc-warnings.patch rename to target/linux/brcm2708/patches-4.19/950-0134-overlays-Fix-a-few-dtc-warnings.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0139-bcm2708-rpi-Disable-txp-interrupt-unless-using-vc4-k.patch b/target/linux/brcm2708/patches-4.19/950-0135-bcm2708-rpi-Disable-txp-interrupt-unless-using-vc4-k.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0139-bcm2708-rpi-Disable-txp-interrupt-unless-using-vc4-k.patch rename to target/linux/brcm2708/patches-4.19/950-0135-bcm2708-rpi-Disable-txp-interrupt-unless-using-vc4-k.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0135-bcm2835-interpolate-audio-delay.patch b/target/linux/brcm2708/patches-4.19/950-0135-bcm2835-interpolate-audio-delay.patch deleted file mode 100644 index 55cd26b25bc..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0135-bcm2835-interpolate-audio-delay.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 652b0ec2ab2d2e2af7bb4f7d62a4020a20720677 Mon Sep 17 00:00:00 2001 -From: wm4 -Date: Wed, 13 Jan 2016 19:44:47 +0100 -Subject: [PATCH] bcm2835: interpolate audio delay - -It appears the GPU only sends us a message all 10ms to update -the playback progress. Other than this, the playback position -(what SNDRV_PCM_IOCTL_DELAY will return) is not updated at all. -Userspace will see jitter up to 10ms in the audio position. - -Make this a bit nicer for userspace by interpolating the -position using the CPU clock. - -I'm not sure if setting snd_pcm_runtime.delay is the right -approach for this. Or if there is maybe an already existing -mechanism for position interpolation in the ALSA core. - -I only set SNDRV_PCM_INFO_BATCH because this appears to remove -at least one situation snd_pcm_runtime.delay is used, so I have -to worry less in which place I have to update this field, or -how it interacts with the rest of ALSA. - -In the future, it might be nice to use VC_AUDIO_MSG_TYPE_LATENCY. -One problem is that it requires sending a videocore message, and -waiting for a reply, which could make the implementation much -harder due to locking and synchronization requirements. ---- - .../vc04_services/bcm2835-audio/bcm2835-pcm.c | 12 +++++++++++- - .../staging/vc04_services/bcm2835-audio/bcm2835.h | 1 + - 2 files changed, 12 insertions(+), 1 deletion(-) - ---- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c -+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c -@@ -11,7 +11,7 @@ - /* hardware definition */ - static const struct snd_pcm_hardware snd_bcm2835_playback_hw = { - .info = (SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | -- SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID), -+ SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_BATCH), - .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE, - .rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000, - .rate_min = 8000, -@@ -81,6 +81,8 @@ void bcm2835_playback_fifo(struct bcm283 - alsa_stream->pos %= alsa_stream->buffer_size; - } - -+ alsa_stream->interpolate_start = ktime_get_ns(); -+ - if (alsa_stream->substream) { - if (new_period) - snd_pcm_period_elapsed(alsa_stream->substream); -@@ -306,6 +308,7 @@ static int snd_bcm2835_pcm_prepare(struc - alsa_stream->buffer_size = snd_pcm_lib_buffer_bytes(substream); - alsa_stream->period_size = snd_pcm_lib_period_bytes(substream); - alsa_stream->pos = 0; -+ alsa_stream->interpolate_start = ktime_get_ns(); - - audio_debug("buffer_size=%d, period_size=%d pos=%d frame_bits=%d\n", - alsa_stream->buffer_size, alsa_stream->period_size, -@@ -397,12 +400,19 @@ snd_bcm2835_pcm_pointer(struct snd_pcm_s - { - struct snd_pcm_runtime *runtime = substream->runtime; - struct bcm2835_alsa_stream *alsa_stream = runtime->private_data; -+ u64 now = ktime_get_ns(); - - audio_debug("pcm_pointer... (%d) hwptr=%d appl=%d pos=%d\n", 0, - frames_to_bytes(runtime, runtime->status->hw_ptr), - frames_to_bytes(runtime, runtime->control->appl_ptr), - alsa_stream->pos); - -+ /* Give userspace better delay reporting by interpolating between GPU -+ * notifications, assuming audio speed is close enough to the clock -+ * used for ktime */ -+ if (alsa_stream->interpolate_start && alsa_stream->interpolate_start < now) -+ runtime->delay = -(int)div_u64((now - alsa_stream->interpolate_start) * runtime->rate, 1000000000); -+ - return snd_pcm_indirect_playback_pointer(substream, - &alsa_stream->pcm_indirect, - alsa_stream->pos); ---- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.h -+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.h -@@ -133,6 +133,7 @@ struct bcm2835_alsa_stream { - unsigned int pos; - unsigned int buffer_size; - unsigned int period_size; -+ u64 interpolate_start; - - atomic_t retrieved; - struct bcm2835_audio_instance *instance; diff --git a/target/linux/brcm2708/patches-4.19/950-0140-hwmon-raspberrypi-Prevent-voltage-low-warnings-from-.patch b/target/linux/brcm2708/patches-4.19/950-0136-hwmon-raspberrypi-Prevent-voltage-low-warnings-from-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0140-hwmon-raspberrypi-Prevent-voltage-low-warnings-from-.patch rename to target/linux/brcm2708/patches-4.19/950-0136-hwmon-raspberrypi-Prevent-voltage-low-warnings-from-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0141-firmware-raspberrypi-Add-backward-compatible-get_thr.patch b/target/linux/brcm2708/patches-4.19/950-0137-firmware-raspberrypi-Add-backward-compatible-get_thr.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0141-firmware-raspberrypi-Add-backward-compatible-get_thr.patch rename to target/linux/brcm2708/patches-4.19/950-0137-firmware-raspberrypi-Add-backward-compatible-get_thr.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0142-sc16is7xx-Don-t-spin-if-no-data-received.patch b/target/linux/brcm2708/patches-4.19/950-0138-sc16is7xx-Don-t-spin-if-no-data-received.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0142-sc16is7xx-Don-t-spin-if-no-data-received.patch rename to target/linux/brcm2708/patches-4.19/950-0138-sc16is7xx-Don-t-spin-if-no-data-received.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0143-Add-device-tree-overlay-for-HD44780.patch b/target/linux/brcm2708/patches-4.19/950-0139-Add-device-tree-overlay-for-HD44780.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0143-Add-device-tree-overlay-for-HD44780.patch rename to target/linux/brcm2708/patches-4.19/950-0139-Add-device-tree-overlay-for-HD44780.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0144-overlays-Add-addr-parameter-to-i2c-rtc-gpio.patch b/target/linux/brcm2708/patches-4.19/950-0140-overlays-Add-addr-parameter-to-i2c-rtc-gpio.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0144-overlays-Add-addr-parameter-to-i2c-rtc-gpio.patch rename to target/linux/brcm2708/patches-4.19/950-0140-overlays-Add-addr-parameter-to-i2c-rtc-gpio.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0145-ARM-BCM270X-Add-the-18-bit-DPI-pinmux-to-the-RPI-DTs.patch b/target/linux/brcm2708/patches-4.19/950-0141-ARM-BCM270X-Add-the-18-bit-DPI-pinmux-to-the-RPI-DTs.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0145-ARM-BCM270X-Add-the-18-bit-DPI-pinmux-to-the-RPI-DTs.patch rename to target/linux/brcm2708/patches-4.19/950-0141-ARM-BCM270X-Add-the-18-bit-DPI-pinmux-to-the-RPI-DTs.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0146-overlays-Add-an-overlay-for-the-Adafruit-Kippah-with.patch b/target/linux/brcm2708/patches-4.19/950-0142-overlays-Add-an-overlay-for-the-Adafruit-Kippah-with.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0146-overlays-Add-an-overlay-for-the-Adafruit-Kippah-with.patch rename to target/linux/brcm2708/patches-4.19/950-0142-overlays-Add-an-overlay-for-the-Adafruit-Kippah-with.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0147-overlays-Remove-stale-notes-about-vc4-s-CMA-alignmen.patch b/target/linux/brcm2708/patches-4.19/950-0143-overlays-Remove-stale-notes-about-vc4-s-CMA-alignmen.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0147-overlays-Remove-stale-notes-about-vc4-s-CMA-alignmen.patch rename to target/linux/brcm2708/patches-4.19/950-0143-overlays-Remove-stale-notes-about-vc4-s-CMA-alignmen.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0148-spi-Make-GPIO-CSs-honour-the-SPI_NO_CS-flag.patch b/target/linux/brcm2708/patches-4.19/950-0144-spi-Make-GPIO-CSs-honour-the-SPI_NO_CS-flag.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0148-spi-Make-GPIO-CSs-honour-the-SPI_NO_CS-flag.patch rename to target/linux/brcm2708/patches-4.19/950-0144-spi-Make-GPIO-CSs-honour-the-SPI_NO_CS-flag.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0149-devicetree-add-RPi-CM3-dts-to-arm64-mimic-the-RPi-3B.patch b/target/linux/brcm2708/patches-4.19/950-0145-devicetree-add-RPi-CM3-dts-to-arm64-mimic-the-RPi-3B.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0149-devicetree-add-RPi-CM3-dts-to-arm64-mimic-the-RPi-3B.patch rename to target/linux/brcm2708/patches-4.19/950-0145-devicetree-add-RPi-CM3-dts-to-arm64-mimic-the-RPi-3B.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0150-Add-support-for-audioinjector.net-ultra-soundcard.-2.patch b/target/linux/brcm2708/patches-4.19/950-0146-Add-support-for-audioinjector.net-ultra-soundcard.-2.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0150-Add-support-for-audioinjector.net-ultra-soundcard.-2.patch rename to target/linux/brcm2708/patches-4.19/950-0146-Add-support-for-audioinjector.net-ultra-soundcard.-2.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0151-ASoC-cs4265-Add-a-S-PDIF-enable-switch.patch b/target/linux/brcm2708/patches-4.19/950-0147-ASoC-cs4265-Add-a-S-PDIF-enable-switch.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0151-ASoC-cs4265-Add-a-S-PDIF-enable-switch.patch rename to target/linux/brcm2708/patches-4.19/950-0147-ASoC-cs4265-Add-a-S-PDIF-enable-switch.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0152-ASoC-cs4265-Add-native-32bit-I2S-transport.patch b/target/linux/brcm2708/patches-4.19/950-0148-ASoC-cs4265-Add-native-32bit-I2S-transport.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0152-ASoC-cs4265-Add-native-32bit-I2S-transport.patch rename to target/linux/brcm2708/patches-4.19/950-0148-ASoC-cs4265-Add-native-32bit-I2S-transport.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0153-BCM270X_DT-Add-gpio-fan-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0149-BCM270X_DT-Add-gpio-fan-overlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0153-BCM270X_DT-Add-gpio-fan-overlay.patch rename to target/linux/brcm2708/patches-4.19/950-0149-BCM270X_DT-Add-gpio-fan-overlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0154-HID-hid-bigbenff-driver-for-BigBen-Interactive-PS3OF.patch b/target/linux/brcm2708/patches-4.19/950-0150-HID-hid-bigbenff-driver-for-BigBen-Interactive-PS3OF.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0154-HID-hid-bigbenff-driver-for-BigBen-Interactive-PS3OF.patch rename to target/linux/brcm2708/patches-4.19/950-0150-HID-hid-bigbenff-driver-for-BigBen-Interactive-PS3OF.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0155-ASoC-cs4265-Add-a-MIC-pre.-route-2696.patch b/target/linux/brcm2708/patches-4.19/950-0151-ASoC-cs4265-Add-a-MIC-pre.-route-2696.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0155-ASoC-cs4265-Add-a-MIC-pre.-route-2696.patch rename to target/linux/brcm2708/patches-4.19/950-0151-ASoC-cs4265-Add-a-MIC-pre.-route-2696.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0156-Update-gpio-fan-overlay.dts-2711.patch b/target/linux/brcm2708/patches-4.19/950-0152-Update-gpio-fan-overlay.dts-2711.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0156-Update-gpio-fan-overlay.dts-2711.patch rename to target/linux/brcm2708/patches-4.19/950-0152-Update-gpio-fan-overlay.dts-2711.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0157-drivers-thermal-step_wise-add-support-for-hysteresis.patch b/target/linux/brcm2708/patches-4.19/950-0153-drivers-thermal-step_wise-add-support-for-hysteresis.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0157-drivers-thermal-step_wise-add-support-for-hysteresis.patch rename to target/linux/brcm2708/patches-4.19/950-0153-drivers-thermal-step_wise-add-support-for-hysteresis.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0158-drivers-thermal-step_wise-avoid-throttling-at-hyster.patch b/target/linux/brcm2708/patches-4.19/950-0154-drivers-thermal-step_wise-avoid-throttling-at-hyster.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0158-drivers-thermal-step_wise-avoid-throttling-at-hyster.patch rename to target/linux/brcm2708/patches-4.19/950-0154-drivers-thermal-step_wise-avoid-throttling-at-hyster.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0159-hwmon-adjust-rpi-poe-fan-overlay-trip-points.patch b/target/linux/brcm2708/patches-4.19/950-0155-hwmon-adjust-rpi-poe-fan-overlay-trip-points.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0159-hwmon-adjust-rpi-poe-fan-overlay-trip-points.patch rename to target/linux/brcm2708/patches-4.19/950-0155-hwmon-adjust-rpi-poe-fan-overlay-trip-points.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0160-overlays-add-overrides-for-PoE-HAT-fan-control.patch b/target/linux/brcm2708/patches-4.19/950-0156-overlays-add-overrides-for-PoE-HAT-fan-control.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0160-overlays-add-overrides-for-PoE-HAT-fan-control.patch rename to target/linux/brcm2708/patches-4.19/950-0156-overlays-add-overrides-for-PoE-HAT-fan-control.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0161-overlays-Add-gpio-no-bank0-irq-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0157-overlays-Add-gpio-no-bank0-irq-overlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0161-overlays-Add-gpio-no-bank0-irq-overlay.patch rename to target/linux/brcm2708/patches-4.19/950-0157-overlays-Add-gpio-no-bank0-irq-overlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0162-Add-hy28b-2017-model-device-tree-overlay-2721.patch b/target/linux/brcm2708/patches-4.19/950-0158-Add-hy28b-2017-model-device-tree-overlay-2721.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0162-Add-hy28b-2017-model-device-tree-overlay-2721.patch rename to target/linux/brcm2708/patches-4.19/950-0158-Add-hy28b-2017-model-device-tree-overlay-2721.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0163-mmc-bcm2835-sdhost-Recover-from-MMC_SEND_EXT_CSD.patch b/target/linux/brcm2708/patches-4.19/950-0159-mmc-bcm2835-sdhost-Recover-from-MMC_SEND_EXT_CSD.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0163-mmc-bcm2835-sdhost-Recover-from-MMC_SEND_EXT_CSD.patch rename to target/linux/brcm2708/patches-4.19/950-0159-mmc-bcm2835-sdhost-Recover-from-MMC_SEND_EXT_CSD.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0164-overlays-pi3-disable-bt-Clear-out-bt_pins-node.patch b/target/linux/brcm2708/patches-4.19/950-0160-overlays-pi3-disable-bt-Clear-out-bt_pins-node.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0164-overlays-pi3-disable-bt-Clear-out-bt_pins-node.patch rename to target/linux/brcm2708/patches-4.19/950-0160-overlays-pi3-disable-bt-Clear-out-bt_pins-node.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0165-Revert-rtc-pcf8523-properly-handle-oscillator-stop-b.patch b/target/linux/brcm2708/patches-4.19/950-0161-Revert-rtc-pcf8523-properly-handle-oscillator-stop-b.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0165-Revert-rtc-pcf8523-properly-handle-oscillator-stop-b.patch rename to target/linux/brcm2708/patches-4.19/950-0161-Revert-rtc-pcf8523-properly-handle-oscillator-stop-b.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0166-overlays-uart0-return-GPIOs-14-and-15-to-inputs.patch b/target/linux/brcm2708/patches-4.19/950-0162-overlays-uart0-return-GPIOs-14-and-15-to-inputs.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0166-overlays-uart0-return-GPIOs-14-and-15-to-inputs.patch rename to target/linux/brcm2708/patches-4.19/950-0162-overlays-uart0-return-GPIOs-14-and-15-to-inputs.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0167-mmc-bcm2835-sdhost-Fix-warnings-on-arm64.patch b/target/linux/brcm2708/patches-4.19/950-0163-mmc-bcm2835-sdhost-Fix-warnings-on-arm64.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0167-mmc-bcm2835-sdhost-Fix-warnings-on-arm64.patch rename to target/linux/brcm2708/patches-4.19/950-0163-mmc-bcm2835-sdhost-Fix-warnings-on-arm64.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0168-Fix-warning-in-bcm2835-smi-nand.patch b/target/linux/brcm2708/patches-4.19/950-0164-Fix-warning-in-bcm2835-smi-nand.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0168-Fix-warning-in-bcm2835-smi-nand.patch rename to target/linux/brcm2708/patches-4.19/950-0164-Fix-warning-in-bcm2835-smi-nand.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0169-media-ov5647-Add-set_fmt-and-get_fmt-calls.patch b/target/linux/brcm2708/patches-4.19/950-0165-media-ov5647-Add-set_fmt-and-get_fmt-calls.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0169-media-ov5647-Add-set_fmt-and-get_fmt-calls.patch rename to target/linux/brcm2708/patches-4.19/950-0165-media-ov5647-Add-set_fmt-and-get_fmt-calls.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0170-media-Documentation-DT-add-device-tree-for-PWDN-cont.patch b/target/linux/brcm2708/patches-4.19/950-0166-media-Documentation-DT-add-device-tree-for-PWDN-cont.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0170-media-Documentation-DT-add-device-tree-for-PWDN-cont.patch rename to target/linux/brcm2708/patches-4.19/950-0166-media-Documentation-DT-add-device-tree-for-PWDN-cont.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0171-media-ov5647-Add-support-for-PWDN-GPIO.patch b/target/linux/brcm2708/patches-4.19/950-0167-media-ov5647-Add-support-for-PWDN-GPIO.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0171-media-ov5647-Add-support-for-PWDN-GPIO.patch rename to target/linux/brcm2708/patches-4.19/950-0167-media-ov5647-Add-support-for-PWDN-GPIO.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0172-media-ov5647-Add-support-for-non-continuous-clock-mo.patch b/target/linux/brcm2708/patches-4.19/950-0168-media-ov5647-Add-support-for-non-continuous-clock-mo.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0172-media-ov5647-Add-support-for-non-continuous-clock-mo.patch rename to target/linux/brcm2708/patches-4.19/950-0168-media-ov5647-Add-support-for-non-continuous-clock-mo.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0173-media-tc358743-Increase-FIFO-level-to-374.patch b/target/linux/brcm2708/patches-4.19/950-0169-media-tc358743-Increase-FIFO-level-to-374.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0173-media-tc358743-Increase-FIFO-level-to-374.patch rename to target/linux/brcm2708/patches-4.19/950-0169-media-tc358743-Increase-FIFO-level-to-374.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0174-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch b/target/linux/brcm2708/patches-4.19/950-0170-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0174-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch rename to target/linux/brcm2708/patches-4.19/950-0170-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0175-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch b/target/linux/brcm2708/patches-4.19/950-0171-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0175-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch rename to target/linux/brcm2708/patches-4.19/950-0171-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0176-media-tc358743-Check-I2C-succeeded-during-probe.patch b/target/linux/brcm2708/patches-4.19/950-0172-media-tc358743-Check-I2C-succeeded-during-probe.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0176-media-tc358743-Check-I2C-succeeded-during-probe.patch rename to target/linux/brcm2708/patches-4.19/950-0172-media-tc358743-Check-I2C-succeeded-during-probe.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0177-media-adv7180-Default-to-the-first-valid-input.patch b/target/linux/brcm2708/patches-4.19/950-0173-media-adv7180-Default-to-the-first-valid-input.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0177-media-adv7180-Default-to-the-first-valid-input.patch rename to target/linux/brcm2708/patches-4.19/950-0173-media-adv7180-Default-to-the-first-valid-input.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0178-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch b/target/linux/brcm2708/patches-4.19/950-0174-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0178-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch rename to target/linux/brcm2708/patches-4.19/950-0174-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0179-media-videodev2-Add-helper-defines-for-printing-FOUR.patch b/target/linux/brcm2708/patches-4.19/950-0175-media-videodev2-Add-helper-defines-for-printing-FOUR.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0179-media-videodev2-Add-helper-defines-for-printing-FOUR.patch rename to target/linux/brcm2708/patches-4.19/950-0175-media-videodev2-Add-helper-defines-for-printing-FOUR.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0180-dt-bindings-Document-BCM283x-CSI2-CCP2-receiver.patch b/target/linux/brcm2708/patches-4.19/950-0176-dt-bindings-Document-BCM283x-CSI2-CCP2-receiver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0180-dt-bindings-Document-BCM283x-CSI2-CCP2-receiver.patch rename to target/linux/brcm2708/patches-4.19/950-0176-dt-bindings-Document-BCM283x-CSI2-CCP2-receiver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0181-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch b/target/linux/brcm2708/patches-4.19/950-0177-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0181-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch rename to target/linux/brcm2708/patches-4.19/950-0177-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0182-media-adv7180-Nasty-hack-to-allow-input-selection.patch b/target/linux/brcm2708/patches-4.19/950-0178-media-adv7180-Nasty-hack-to-allow-input-selection.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0182-media-adv7180-Nasty-hack-to-allow-input-selection.patch rename to target/linux/brcm2708/patches-4.19/950-0178-media-adv7180-Nasty-hack-to-allow-input-selection.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0183-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch b/target/linux/brcm2708/patches-4.19/950-0179-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0183-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch rename to target/linux/brcm2708/patches-4.19/950-0179-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0184-BCM270X_DT-Add-CSI-defines-for-all-the-downstream-Pi.patch b/target/linux/brcm2708/patches-4.19/950-0180-BCM270X_DT-Add-CSI-defines-for-all-the-downstream-Pi.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0184-BCM270X_DT-Add-CSI-defines-for-all-the-downstream-Pi.patch rename to target/linux/brcm2708/patches-4.19/950-0180-BCM270X_DT-Add-CSI-defines-for-all-the-downstream-Pi.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0185-arm-dt-Add-DT-overlays-for-ADV7282M-OV5647-and-TC358.patch b/target/linux/brcm2708/patches-4.19/950-0181-arm-dt-Add-DT-overlays-for-ADV7282M-OV5647-and-TC358.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0185-arm-dt-Add-DT-overlays-for-ADV7282M-OV5647-and-TC358.patch rename to target/linux/brcm2708/patches-4.19/950-0181-arm-dt-Add-DT-overlays-for-ADV7282M-OV5647-and-TC358.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0186-dtoverlays-Add-support-for-ADV7280-M-ADV7281-M-and-A.patch b/target/linux/brcm2708/patches-4.19/950-0182-dtoverlays-Add-support-for-ADV7280-M-ADV7281-M-and-A.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0186-dtoverlays-Add-support-for-ADV7280-M-ADV7281-M-and-A.patch rename to target/linux/brcm2708/patches-4.19/950-0182-dtoverlays-Add-support-for-ADV7280-M-ADV7281-M-and-A.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0187-vcsm-Fix-an-NULL-dereference-in-the-import_dmabuf-er.patch b/target/linux/brcm2708/patches-4.19/950-0183-vcsm-Fix-an-NULL-dereference-in-the-import_dmabuf-er.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0187-vcsm-Fix-an-NULL-dereference-in-the-import_dmabuf-er.patch rename to target/linux/brcm2708/patches-4.19/950-0183-vcsm-Fix-an-NULL-dereference-in-the-import_dmabuf-er.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0188-Update-README-2750.patch b/target/linux/brcm2708/patches-4.19/950-0184-Update-README-2750.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0188-Update-README-2750.patch rename to target/linux/brcm2708/patches-4.19/950-0184-Update-README-2750.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0189-overlays-Remove-superfluous-address-size-cells.patch b/target/linux/brcm2708/patches-4.19/950-0185-overlays-Remove-superfluous-address-size-cells.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0189-overlays-Remove-superfluous-address-size-cells.patch rename to target/linux/brcm2708/patches-4.19/950-0185-overlays-Remove-superfluous-address-size-cells.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0191-rpi-wm8804-soundcard-drop-PWRDN-register-writes.patch b/target/linux/brcm2708/patches-4.19/950-0186-rpi-wm8804-soundcard-drop-PWRDN-register-writes.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0191-rpi-wm8804-soundcard-drop-PWRDN-register-writes.patch rename to target/linux/brcm2708/patches-4.19/950-0186-rpi-wm8804-soundcard-drop-PWRDN-register-writes.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0192-rpi-wm8804-soundcard-configure-wm8804-clocks-only-on.patch b/target/linux/brcm2708/patches-4.19/950-0187-rpi-wm8804-soundcard-configure-wm8804-clocks-only-on.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0192-rpi-wm8804-soundcard-configure-wm8804-clocks-only-on.patch rename to target/linux/brcm2708/patches-4.19/950-0187-rpi-wm8804-soundcard-configure-wm8804-clocks-only-on.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0193-dtoverlays-Add-i2c-on-0-1-option-to-TC358743-ADV7282.patch b/target/linux/brcm2708/patches-4.19/950-0188-dtoverlays-Add-i2c-on-0-1-option-to-TC358743-ADV7282.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0193-dtoverlays-Add-i2c-on-0-1-option-to-TC358743-ADV7282.patch rename to target/linux/brcm2708/patches-4.19/950-0188-dtoverlays-Add-i2c-on-0-1-option-to-TC358743-ADV7282.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0194-overlays-Update-upstream-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0189-overlays-Update-upstream-overlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0194-overlays-Update-upstream-overlay.patch rename to target/linux/brcm2708/patches-4.19/950-0189-overlays-Update-upstream-overlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0195-BCM2708_DT-update-firmware-node-binding.patch b/target/linux/brcm2708/patches-4.19/950-0190-BCM2708_DT-update-firmware-node-binding.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0195-BCM2708_DT-update-firmware-node-binding.patch rename to target/linux/brcm2708/patches-4.19/950-0190-BCM2708_DT-update-firmware-node-binding.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0190-Revert-ASoC-wm8804-MCLK-configuration-options-32-bit.patch b/target/linux/brcm2708/patches-4.19/950-0190-Revert-ASoC-wm8804-MCLK-configuration-options-32-bit.patch deleted file mode 100644 index 583b95bf896..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0190-Revert-ASoC-wm8804-MCLK-configuration-options-32-bit.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 7c62d38653565e900504f821586e1b1d47f25594 Mon Sep 17 00:00:00 2001 -From: Matthias Reichl -Date: Sun, 18 Nov 2018 13:21:26 +0100 -Subject: [PATCH] Revert "ASoC: wm8804: MCLK configuration options, - 32-bit" - -This reverts commit 3b12dcf797f5a4635aecd7f5c090dc507b124ffd. - -Despite the commit message being wrong idle_bias changes -were already reverted in the 4.14 tree. - -So drop the commit to bring the wm8804 driver back in line with -the rpi-4.14.y and upstream linux trees. - -Signed-off-by: Matthias Reichl ---- - sound/soc/codecs/wm8804.c | 1 - - 1 file changed, 1 deletion(-) - ---- a/sound/soc/codecs/wm8804.c -+++ b/sound/soc/codecs/wm8804.c -@@ -550,7 +550,6 @@ static const struct snd_soc_component_dr - .use_pmdown_time = 1, - .endianness = 1, - .non_legacy_dai_naming = 1, -- .idle_bias_on = true, - }; - - const struct regmap_config wm8804_regmap_config = { diff --git a/target/linux/brcm2708/patches-4.19/950-0196-BCM2710_DT-fix-gpio-expander-bindings.patch b/target/linux/brcm2708/patches-4.19/950-0191-BCM2710_DT-fix-gpio-expander-bindings.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0196-BCM2710_DT-fix-gpio-expander-bindings.patch rename to target/linux/brcm2708/patches-4.19/950-0191-BCM2710_DT-fix-gpio-expander-bindings.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0197-ARM-dts-bcm283x-The-lan7515-PHY-node-has-moved.patch b/target/linux/brcm2708/patches-4.19/950-0192-ARM-dts-bcm283x-The-lan7515-PHY-node-has-moved.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0197-ARM-dts-bcm283x-The-lan7515-PHY-node-has-moved.patch rename to target/linux/brcm2708/patches-4.19/950-0192-ARM-dts-bcm283x-The-lan7515-PHY-node-has-moved.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0198-net-lan78xx-Support-auto-downshift-to-100Mb-s.patch b/target/linux/brcm2708/patches-4.19/950-0193-net-lan78xx-Support-auto-downshift-to-100Mb-s.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0198-net-lan78xx-Support-auto-downshift-to-100Mb-s.patch rename to target/linux/brcm2708/patches-4.19/950-0193-net-lan78xx-Support-auto-downshift-to-100Mb-s.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0199-dt-bindings-Document-microchip-downshift-after.patch b/target/linux/brcm2708/patches-4.19/950-0194-dt-bindings-Document-microchip-downshift-after.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0199-dt-bindings-Document-microchip-downshift-after.patch rename to target/linux/brcm2708/patches-4.19/950-0194-dt-bindings-Document-microchip-downshift-after.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0200-ARM-dts-bcm283x-Set-downshift-after-for-Pi-3B.patch b/target/linux/brcm2708/patches-4.19/950-0195-ARM-dts-bcm283x-Set-downshift-after-for-Pi-3B.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0200-ARM-dts-bcm283x-Set-downshift-after-for-Pi-3B.patch rename to target/linux/brcm2708/patches-4.19/950-0195-ARM-dts-bcm283x-Set-downshift-after-for-Pi-3B.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0201-BCM270X_DT-Add-new-Ethernet-DT-parameters.patch b/target/linux/brcm2708/patches-4.19/950-0196-BCM270X_DT-Add-new-Ethernet-DT-parameters.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0201-BCM270X_DT-Add-new-Ethernet-DT-parameters.patch rename to target/linux/brcm2708/patches-4.19/950-0196-BCM270X_DT-Add-new-Ethernet-DT-parameters.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0202-BCM270X_DT-Mark-eth_downshift_after-as-an-integer.patch b/target/linux/brcm2708/patches-4.19/950-0197-BCM270X_DT-Mark-eth_downshift_after-as-an-integer.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0202-BCM270X_DT-Mark-eth_downshift_after-as-an-integer.patch rename to target/linux/brcm2708/patches-4.19/950-0197-BCM270X_DT-Mark-eth_downshift_after-as-an-integer.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0203-dwc-otg-FIQ-Fix-bad-mode-in-data-abort-handler.patch b/target/linux/brcm2708/patches-4.19/950-0198-dwc-otg-FIQ-Fix-bad-mode-in-data-abort-handler.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0203-dwc-otg-FIQ-Fix-bad-mode-in-data-abort-handler.patch rename to target/linux/brcm2708/patches-4.19/950-0198-dwc-otg-FIQ-Fix-bad-mode-in-data-abort-handler.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0204-lirc-rpi-Remove-in-favour-of-gpio-ir.patch b/target/linux/brcm2708/patches-4.19/950-0199-lirc-rpi-Remove-in-favour-of-gpio-ir.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0204-lirc-rpi-Remove-in-favour-of-gpio-ir.patch rename to target/linux/brcm2708/patches-4.19/950-0199-lirc-rpi-Remove-in-favour-of-gpio-ir.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0205-media-bcm2835-unicam-Pass-through-the-colorspace-on-.patch b/target/linux/brcm2708/patches-4.19/950-0200-media-bcm2835-unicam-Pass-through-the-colorspace-on-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0205-media-bcm2835-unicam-Pass-through-the-colorspace-on-.patch rename to target/linux/brcm2708/patches-4.19/950-0200-media-bcm2835-unicam-Pass-through-the-colorspace-on-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0206-media-tc358743-Return-an-appropriate-colorspace-from.patch b/target/linux/brcm2708/patches-4.19/950-0201-media-tc358743-Return-an-appropriate-colorspace-from.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0206-media-tc358743-Return-an-appropriate-colorspace-from.patch rename to target/linux/brcm2708/patches-4.19/950-0201-media-tc358743-Return-an-appropriate-colorspace-from.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0207-staging-bcm2835-camera-fix-module-autoloading.patch b/target/linux/brcm2708/patches-4.19/950-0202-staging-bcm2835-camera-fix-module-autoloading.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0207-staging-bcm2835-camera-fix-module-autoloading.patch rename to target/linux/brcm2708/patches-4.19/950-0202-staging-bcm2835-camera-fix-module-autoloading.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0208-staging-bcm2835-camera-Move-module-info-to-the-end.patch b/target/linux/brcm2708/patches-4.19/950-0203-staging-bcm2835-camera-Move-module-info-to-the-end.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0208-staging-bcm2835-camera-Move-module-info-to-the-end.patch rename to target/linux/brcm2708/patches-4.19/950-0203-staging-bcm2835-camera-Move-module-info-to-the-end.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0209-staging-vchiq_arm-Fix-platform-device-unregistration.patch b/target/linux/brcm2708/patches-4.19/950-0204-staging-vchiq_arm-Fix-platform-device-unregistration.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0209-staging-vchiq_arm-Fix-platform-device-unregistration.patch rename to target/linux/brcm2708/patches-4.19/950-0204-staging-vchiq_arm-Fix-platform-device-unregistration.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0210-staging-vchiq_arm-Fix-camera-device-registration.patch b/target/linux/brcm2708/patches-4.19/950-0205-staging-vchiq_arm-Fix-camera-device-registration.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0210-staging-vchiq_arm-Fix-camera-device-registration.patch rename to target/linux/brcm2708/patches-4.19/950-0205-staging-vchiq_arm-Fix-camera-device-registration.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0215-staging-bcm2835-camera-Provide-more-specific-probe-e.patch b/target/linux/brcm2708/patches-4.19/950-0206-staging-bcm2835-camera-Provide-more-specific-probe-e.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0215-staging-bcm2835-camera-Provide-more-specific-probe-e.patch rename to target/linux/brcm2708/patches-4.19/950-0206-staging-bcm2835-camera-Provide-more-specific-probe-e.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0216-staging-bcm2835-camera-Add-hint-about-possible-fault.patch b/target/linux/brcm2708/patches-4.19/950-0207-staging-bcm2835-camera-Add-hint-about-possible-fault.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0216-staging-bcm2835-camera-Add-hint-about-possible-fault.patch rename to target/linux/brcm2708/patches-4.19/950-0207-staging-bcm2835-camera-Add-hint-about-possible-fault.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0217-staging-bcm2835-Don-t-probe-if-no-camera-is-detected.patch b/target/linux/brcm2708/patches-4.19/950-0208-staging-bcm2835-Don-t-probe-if-no-camera-is-detected.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0217-staging-bcm2835-Don-t-probe-if-no-camera-is-detected.patch rename to target/linux/brcm2708/patches-4.19/950-0208-staging-bcm2835-Don-t-probe-if-no-camera-is-detected.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0218-staging-vchiq_arm-Improve-error-handling-on-loading-.patch b/target/linux/brcm2708/patches-4.19/950-0209-staging-vchiq_arm-Improve-error-handling-on-loading-.patch similarity index 79% rename from target/linux/brcm2708/patches-4.19/950-0218-staging-vchiq_arm-Improve-error-handling-on-loading-.patch rename to target/linux/brcm2708/patches-4.19/950-0209-staging-vchiq_arm-Improve-error-handling-on-loading-.patch index 81328b2cdcb..087e3e50253 100644 --- a/target/linux/brcm2708/patches-4.19/950-0218-staging-vchiq_arm-Improve-error-handling-on-loading-.patch +++ b/target/linux/brcm2708/patches-4.19/950-0209-staging-vchiq_arm-Improve-error-handling-on-loading-.patch @@ -16,28 +16,22 @@ Signed-off-by: Dave Stevenson --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -@@ -3655,7 +3655,11 @@ static int vchiq_probe(struct platform_d +@@ -3654,6 +3654,8 @@ static int vchiq_probe(struct platform_d MAJOR(vchiq_devid), MINOR(vchiq_devid)); bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera"); + if (IS_ERR(bcm2835_camera)) + bcm2835_camera = NULL; - bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio"); -+ if (IS_ERR(bcm2835_audio)) -+ bcm2835_audio = NULL; return 0; -@@ -3672,10 +3676,10 @@ failed_platform_init: +@@ -3670,8 +3672,9 @@ failed_platform_init: static int vchiq_remove(struct platform_device *pdev) { -- if (!IS_ERR(bcm2835_audio)) -- platform_device_unregister(bcm2835_audio); - if (!IS_ERR(bcm2835_camera)) - platform_device_unregister(bcm2835_camera); + platform_device_unregister(bcm2835_codec); -+ platform_device_unregister(bcm2835_audio); + platform_device_unregister(bcm2835_camera); + platform_device_unregister(vcsm_cma); vchiq_debugfs_deinit(); diff --git a/target/linux/brcm2708/patches-4.19/950-0219-staging-bcm2835-camera-Do-not-bulk-receive-from-serv.patch b/target/linux/brcm2708/patches-4.19/950-0210-staging-bcm2835-camera-Do-not-bulk-receive-from-serv.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0219-staging-bcm2835-camera-Do-not-bulk-receive-from-serv.patch rename to target/linux/brcm2708/patches-4.19/950-0210-staging-bcm2835-camera-Do-not-bulk-receive-from-serv.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0220-staging-bcm2835-camera-Ensure-H264-header-bytes-get-.patch b/target/linux/brcm2708/patches-4.19/950-0211-staging-bcm2835-camera-Ensure-H264-header-bytes-get-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0220-staging-bcm2835-camera-Ensure-H264-header-bytes-get-.patch rename to target/linux/brcm2708/patches-4.19/950-0211-staging-bcm2835-camera-Ensure-H264-header-bytes-get-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0211-staging-vchiq_arm-Register-a-platform-device-for-the.patch b/target/linux/brcm2708/patches-4.19/950-0211-staging-vchiq_arm-Register-a-platform-device-for-the.patch deleted file mode 100644 index 793fc213962..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0211-staging-vchiq_arm-Register-a-platform-device-for-the.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 0ca486925a32b7c95752ff250afdd59bcf6c8574 Mon Sep 17 00:00:00 2001 -From: Stefan Wahren -Date: Sat, 20 Oct 2018 20:25:41 +0200 -Subject: [PATCH] staging: vchiq_arm: Register a platform device for - the audio driver - -Signed-off-by: Stefan Wahren ---- - drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -@@ -170,6 +170,7 @@ static struct class *vchiq_class; - static struct device *vchiq_dev; - static DEFINE_SPINLOCK(msg_queue_spinlock); - static struct platform_device *bcm2835_camera; -+static struct platform_device *bcm2835_audio; - - static const char *const ioctl_names[] = { - "CONNECT", -@@ -3654,6 +3655,7 @@ static int vchiq_probe(struct platform_d - MAJOR(vchiq_devid), MINOR(vchiq_devid)); - - bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera"); -+ bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio"); - - return 0; - -@@ -3670,6 +3672,8 @@ failed_platform_init: - - static int vchiq_remove(struct platform_device *pdev) - { -+ if (!IS_ERR(bcm2835_audio)) -+ platform_device_unregister(bcm2835_audio); - if (!IS_ERR(bcm2835_camera)) - platform_device_unregister(bcm2835_camera); - vchiq_debugfs_deinit(); diff --git a/target/linux/brcm2708/patches-4.19/950-0212-staging-bcm2835-audio-Enable-compile-test.patch b/target/linux/brcm2708/patches-4.19/950-0212-staging-bcm2835-audio-Enable-compile-test.patch deleted file mode 100644 index 3c6bfd4db2c..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0212-staging-bcm2835-audio-Enable-compile-test.patch +++ /dev/null @@ -1,22 +0,0 @@ -From d08cc93a489df7707afaaa693afd2e7a153c85a3 Mon Sep 17 00:00:00 2001 -From: Stefan Wahren -Date: Sat, 13 Oct 2018 20:19:13 +0200 -Subject: [PATCH] staging: bcm2835-audio: Enable compile test - -Enable the compilation test for bcm2835-audio. - -Signed-off-by: Stefan Wahren ---- - drivers/staging/vc04_services/bcm2835-audio/Kconfig | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/staging/vc04_services/bcm2835-audio/Kconfig -+++ b/drivers/staging/vc04_services/bcm2835-audio/Kconfig -@@ -1,6 +1,6 @@ - config SND_BCM2835 - tristate "BCM2835 Audio" -- depends on ARCH_BCM2835 && SND -+ depends on (ARCH_BCM2835 || COMPILE_TEST) && SND - select SND_PCM - select BCM2835_VCHIQ - help diff --git a/target/linux/brcm2708/patches-4.19/950-0221-staging-bcm2835-camera-Correctly-denote-key-frames-i.patch b/target/linux/brcm2708/patches-4.19/950-0212-staging-bcm2835-camera-Correctly-denote-key-frames-i.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0221-staging-bcm2835-camera-Correctly-denote-key-frames-i.patch rename to target/linux/brcm2708/patches-4.19/950-0212-staging-bcm2835-camera-Correctly-denote-key-frames-i.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0213-staging-bcm2835-audio-use-module_platform_driver-mac.patch b/target/linux/brcm2708/patches-4.19/950-0213-staging-bcm2835-audio-use-module_platform_driver-mac.patch deleted file mode 100644 index a9f077675c7..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0213-staging-bcm2835-audio-use-module_platform_driver-mac.patch +++ /dev/null @@ -1,43 +0,0 @@ -From f1aada1b4c974fa756e299c15b62c76e478e652e Mon Sep 17 00:00:00 2001 -From: Stefan Wahren -Date: Thu, 18 Oct 2018 19:47:29 +0200 -Subject: [PATCH] staging: bcm2835-audio: use module_platform_driver() - macro - -There is not much value behind this boilerplate, so use -module_platform_driver() instead. - -Signed-off-by: Stefan Wahren ---- - .../vc04_services/bcm2835-audio/bcm2835.c | 20 +------------------ - 1 file changed, 1 insertion(+), 19 deletions(-) - ---- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -@@ -470,25 +470,7 @@ static struct platform_driver bcm2835_al - .of_match_table = snd_bcm2835_of_match_table, - }, - }; -- --static int bcm2835_alsa_device_init(void) --{ -- int retval; -- -- retval = platform_driver_register(&bcm2835_alsa0_driver); -- if (retval) -- pr_err("Error registering bcm2835_audio driver %d .\n", retval); -- -- return retval; --} -- --static void bcm2835_alsa_device_exit(void) --{ -- platform_driver_unregister(&bcm2835_alsa0_driver); --} -- --late_initcall(bcm2835_alsa_device_init); --module_exit(bcm2835_alsa_device_exit); -+module_platform_driver(bcm2835_alsa0_driver); - - MODULE_AUTHOR("Dom Cobley"); - MODULE_DESCRIPTION("Alsa driver for BCM2835 chip"); diff --git a/target/linux/brcm2708/patches-4.19/950-0222-staging-bcm2835-camera-Return-early-on-errors.patch b/target/linux/brcm2708/patches-4.19/950-0213-staging-bcm2835-camera-Return-early-on-errors.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0222-staging-bcm2835-camera-Return-early-on-errors.patch rename to target/linux/brcm2708/patches-4.19/950-0213-staging-bcm2835-camera-Return-early-on-errors.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0214-staging-bcm2835-audio-Drop-DT-dependency.patch b/target/linux/brcm2708/patches-4.19/950-0214-staging-bcm2835-audio-Drop-DT-dependency.patch deleted file mode 100644 index 62b2c888751..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0214-staging-bcm2835-audio-Drop-DT-dependency.patch +++ /dev/null @@ -1,116 +0,0 @@ -From ba833c9b912d2ca6fe23d700c4bd6f61742d5e04 Mon Sep 17 00:00:00 2001 -From: Stefan Wahren -Date: Thu, 18 Oct 2018 19:54:01 +0200 -Subject: [PATCH] staging: bcm2835-audio: Drop DT dependency - -Just like the bcm2835-video make this a platform driver which is probed -by vchiq. In order to change the number of channels use a module -parameter instead, but use the maximum as default. - -Signed-off-by: Stefan Wahren ---- - .../vc04_services/bcm2835-audio/bcm2835.c | 41 +++++++++---------- - 1 file changed, 19 insertions(+), 22 deletions(-) - ---- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -@@ -4,15 +4,17 @@ - #include - - #include -+#include -+#include - #include - #include --#include - - #include "bcm2835.h" - - static bool enable_hdmi; - static bool enable_headphones; - static bool enable_compat_alsa = true; -+static int num_channels = MAX_SUBSTREAMS; - - module_param(enable_hdmi, bool, 0444); - MODULE_PARM_DESC(enable_hdmi, "Enables HDMI virtual audio device"); -@@ -21,6 +23,8 @@ MODULE_PARM_DESC(enable_headphones, "Ena - module_param(enable_compat_alsa, bool, 0444); - MODULE_PARM_DESC(enable_compat_alsa, - "Enables ALSA compatibility virtual audio device"); -+module_param(num_channels, int, 0644); -+MODULE_PARM_DESC(num_channels, "Number of audio channels (default: 8)"); - - static void snd_devm_unregister_child(struct device *dev, void *res) - { -@@ -407,31 +411,30 @@ static int snd_add_child_devices(struct - return 0; - } - --static int snd_bcm2835_alsa_probe_dt(struct platform_device *pdev) -+static int snd_bcm2835_alsa_probe(struct platform_device *pdev) - { - struct device *dev = &pdev->dev; -- u32 numchans; - int err; - -- err = of_property_read_u32(dev->of_node, "brcm,pwm-channels", -- &numchans); -- if (err) { -- dev_err(dev, "Failed to get DT property 'brcm,pwm-channels'"); -- return err; -+ if (num_channels <= 0 || num_channels > MAX_SUBSTREAMS) { -+ num_channels = MAX_SUBSTREAMS; -+ dev_warn(dev, "Illegal num_channels value, will use %u\n", -+ num_channels); - } - -- if (numchans == 0 || numchans > MAX_SUBSTREAMS) { -- numchans = MAX_SUBSTREAMS; -- dev_warn(dev, -- "Illegal 'brcm,pwm-channels' value, will use %u\n", -- numchans); -+ dev->coherent_dma_mask = DMA_BIT_MASK(32); -+ dev->dma_mask = &dev->coherent_dma_mask; -+ err = of_dma_configure(dev, NULL, true); -+ if (err) { -+ dev_err(dev, "Unable to setup DMA: %d\n", err); -+ return err; - } - - err = bcm2835_devm_add_vchi_ctx(dev); - if (err) - return err; - -- err = snd_add_child_devices(dev, numchans); -+ err = snd_add_child_devices(dev, num_channels); - if (err) - return err; - -@@ -453,21 +456,14 @@ static int snd_bcm2835_alsa_resume(struc - - #endif - --static const struct of_device_id snd_bcm2835_of_match_table[] = { -- { .compatible = "brcm,bcm2835-audio",}, -- {}, --}; --MODULE_DEVICE_TABLE(of, snd_bcm2835_of_match_table); -- - static struct platform_driver bcm2835_alsa0_driver = { -- .probe = snd_bcm2835_alsa_probe_dt, -+ .probe = snd_bcm2835_alsa_probe, - #ifdef CONFIG_PM - .suspend = snd_bcm2835_alsa_suspend, - .resume = snd_bcm2835_alsa_resume, - #endif - .driver = { - .name = "bcm2835_audio", -- .of_match_table = snd_bcm2835_of_match_table, - }, - }; - module_platform_driver(bcm2835_alsa0_driver); -@@ -475,3 +471,4 @@ module_platform_driver(bcm2835_alsa0_dri - MODULE_AUTHOR("Dom Cobley"); - MODULE_DESCRIPTION("Alsa driver for BCM2835 chip"); - MODULE_LICENSE("GPL"); -+MODULE_ALIAS("platform:bcm2835_audio"); diff --git a/target/linux/brcm2708/patches-4.19/950-0223-staging-bcm2835-camera-Remove-dead-email-addresses.patch b/target/linux/brcm2708/patches-4.19/950-0214-staging-bcm2835-camera-Remove-dead-email-addresses.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0223-staging-bcm2835-camera-Remove-dead-email-addresses.patch rename to target/linux/brcm2708/patches-4.19/950-0214-staging-bcm2835-camera-Remove-dead-email-addresses.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0224-staging-bcm2835-camera-Fix-comment-style-violations.patch b/target/linux/brcm2708/patches-4.19/950-0215-staging-bcm2835-camera-Fix-comment-style-violations.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0224-staging-bcm2835-camera-Fix-comment-style-violations.patch rename to target/linux/brcm2708/patches-4.19/950-0215-staging-bcm2835-camera-Fix-comment-style-violations.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0225-staging-bcm2835-camera-Fix-spacing-around-operators.patch b/target/linux/brcm2708/patches-4.19/950-0216-staging-bcm2835-camera-Fix-spacing-around-operators.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0225-staging-bcm2835-camera-Fix-spacing-around-operators.patch rename to target/linux/brcm2708/patches-4.19/950-0216-staging-bcm2835-camera-Fix-spacing-around-operators.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0226-staging-bcm2835-camera-Reduce-length-of-enum-names.patch b/target/linux/brcm2708/patches-4.19/950-0217-staging-bcm2835-camera-Reduce-length-of-enum-names.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0226-staging-bcm2835-camera-Reduce-length-of-enum-names.patch rename to target/linux/brcm2708/patches-4.19/950-0217-staging-bcm2835-camera-Reduce-length-of-enum-names.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0227-staging-bcm2835-camera-Fix-multiple-line-dereference.patch b/target/linux/brcm2708/patches-4.19/950-0218-staging-bcm2835-camera-Fix-multiple-line-dereference.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0227-staging-bcm2835-camera-Fix-multiple-line-dereference.patch rename to target/linux/brcm2708/patches-4.19/950-0218-staging-bcm2835-camera-Fix-multiple-line-dereference.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0228-staging-bcm2835-camera-Fix-brace-style-issues.patch b/target/linux/brcm2708/patches-4.19/950-0219-staging-bcm2835-camera-Fix-brace-style-issues.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0228-staging-bcm2835-camera-Fix-brace-style-issues.patch rename to target/linux/brcm2708/patches-4.19/950-0219-staging-bcm2835-camera-Fix-brace-style-issues.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0229-staging-bcm2835-camera-Fix-missing-lines-between-ite.patch b/target/linux/brcm2708/patches-4.19/950-0220-staging-bcm2835-camera-Fix-missing-lines-between-ite.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0229-staging-bcm2835-camera-Fix-missing-lines-between-ite.patch rename to target/linux/brcm2708/patches-4.19/950-0220-staging-bcm2835-camera-Fix-missing-lines-between-ite.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0230-staging-bcm2835-camera-Fix-logical-continuation-spli.patch b/target/linux/brcm2708/patches-4.19/950-0221-staging-bcm2835-camera-Fix-logical-continuation-spli.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0230-staging-bcm2835-camera-Fix-logical-continuation-spli.patch rename to target/linux/brcm2708/patches-4.19/950-0221-staging-bcm2835-camera-Fix-logical-continuation-spli.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0231-staging-bcm2835-camera-Fix-open-parenthesis-alignmen.patch b/target/linux/brcm2708/patches-4.19/950-0222-staging-bcm2835-camera-Fix-open-parenthesis-alignmen.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0231-staging-bcm2835-camera-Fix-open-parenthesis-alignmen.patch rename to target/linux/brcm2708/patches-4.19/950-0222-staging-bcm2835-camera-Fix-open-parenthesis-alignmen.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0232-staging-bcm2835-camera-Set-sequence-number-correctly.patch b/target/linux/brcm2708/patches-4.19/950-0223-staging-bcm2835-camera-Set-sequence-number-correctly.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0232-staging-bcm2835-camera-Set-sequence-number-correctly.patch rename to target/linux/brcm2708/patches-4.19/950-0223-staging-bcm2835-camera-Set-sequence-number-correctly.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0233-staging-bcm2835-camera-Ensure-timestamps-never-go-ba.patch b/target/linux/brcm2708/patches-4.19/950-0224-staging-bcm2835-camera-Ensure-timestamps-never-go-ba.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0233-staging-bcm2835-camera-Ensure-timestamps-never-go-ba.patch rename to target/linux/brcm2708/patches-4.19/950-0224-staging-bcm2835-camera-Ensure-timestamps-never-go-ba.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0234-staging-bcm2835-camera-Avoid-unneeded-internal-decla.patch b/target/linux/brcm2708/patches-4.19/950-0225-staging-bcm2835-camera-Avoid-unneeded-internal-decla.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0234-staging-bcm2835-camera-Avoid-unneeded-internal-decla.patch rename to target/linux/brcm2708/patches-4.19/950-0225-staging-bcm2835-camera-Avoid-unneeded-internal-decla.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0235-staging-bcm2835-camera-Add-multiple-inclusion-protec.patch b/target/linux/brcm2708/patches-4.19/950-0226-staging-bcm2835-camera-Add-multiple-inclusion-protec.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0235-staging-bcm2835-camera-Add-multiple-inclusion-protec.patch rename to target/linux/brcm2708/patches-4.19/950-0226-staging-bcm2835-camera-Add-multiple-inclusion-protec.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0236-staging-bcm2835-camera-Unify-header-inclusion-define.patch b/target/linux/brcm2708/patches-4.19/950-0227-staging-bcm2835-camera-Unify-header-inclusion-define.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0236-staging-bcm2835-camera-Unify-header-inclusion-define.patch rename to target/linux/brcm2708/patches-4.19/950-0227-staging-bcm2835-camera-Unify-header-inclusion-define.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0237-staging-bcm2835-camera-Fix-alignment-should-match-op.patch b/target/linux/brcm2708/patches-4.19/950-0228-staging-bcm2835-camera-Fix-alignment-should-match-op.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0237-staging-bcm2835-camera-Fix-alignment-should-match-op.patch rename to target/linux/brcm2708/patches-4.19/950-0228-staging-bcm2835-camera-Fix-alignment-should-match-op.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0238-staging-bcm2835-camera-Fix-multiple-assignments-shou.patch b/target/linux/brcm2708/patches-4.19/950-0229-staging-bcm2835-camera-Fix-multiple-assignments-shou.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0238-staging-bcm2835-camera-Fix-multiple-assignments-shou.patch rename to target/linux/brcm2708/patches-4.19/950-0229-staging-bcm2835-camera-Fix-multiple-assignments-shou.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0239-staging-bcm2835-camera-Fix-up-all-formatting-in-mmal.patch b/target/linux/brcm2708/patches-4.19/950-0230-staging-bcm2835-camera-Fix-up-all-formatting-in-mmal.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0239-staging-bcm2835-camera-Fix-up-all-formatting-in-mmal.patch rename to target/linux/brcm2708/patches-4.19/950-0230-staging-bcm2835-camera-Fix-up-all-formatting-in-mmal.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0240-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch b/target/linux/brcm2708/patches-4.19/950-0231-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0240-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch rename to target/linux/brcm2708/patches-4.19/950-0231-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0241-staging-bcm2835-camera-Correct-V4L2_CID_COLORFX_CBCR.patch b/target/linux/brcm2708/patches-4.19/950-0232-staging-bcm2835-camera-Correct-V4L2_CID_COLORFX_CBCR.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0241-staging-bcm2835-camera-Correct-V4L2_CID_COLORFX_CBCR.patch rename to target/linux/brcm2708/patches-4.19/950-0232-staging-bcm2835-camera-Correct-V4L2_CID_COLORFX_CBCR.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0242-staging-bcm2835-camera-Remove-amend-some-obsolete-co.patch b/target/linux/brcm2708/patches-4.19/950-0233-staging-bcm2835-camera-Remove-amend-some-obsolete-co.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0242-staging-bcm2835-camera-Remove-amend-some-obsolete-co.patch rename to target/linux/brcm2708/patches-4.19/950-0233-staging-bcm2835-camera-Remove-amend-some-obsolete-co.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0243-staging-vc04_services-Split-vchiq-mmal-into-a-module.patch b/target/linux/brcm2708/patches-4.19/950-0234-staging-vc04_services-Split-vchiq-mmal-into-a-module.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0243-staging-vc04_services-Split-vchiq-mmal-into-a-module.patch rename to target/linux/brcm2708/patches-4.19/950-0234-staging-vc04_services-Split-vchiq-mmal-into-a-module.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0244-staging-mmal-vchiq-Allocate-and-free-components-as-r.patch b/target/linux/brcm2708/patches-4.19/950-0235-staging-mmal-vchiq-Allocate-and-free-components-as-r.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0244-staging-mmal-vchiq-Allocate-and-free-components-as-r.patch rename to target/linux/brcm2708/patches-4.19/950-0235-staging-mmal-vchiq-Allocate-and-free-components-as-r.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0245-staging-mmal-vchiq-Avoid-use-of-bool-in-structures.patch b/target/linux/brcm2708/patches-4.19/950-0236-staging-mmal-vchiq-Avoid-use-of-bool-in-structures.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0245-staging-mmal-vchiq-Avoid-use-of-bool-in-structures.patch rename to target/linux/brcm2708/patches-4.19/950-0236-staging-mmal-vchiq-Avoid-use-of-bool-in-structures.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0246-staging-mmal-vchiq-Make-timeout-a-defined-parameter.patch b/target/linux/brcm2708/patches-4.19/950-0237-staging-mmal-vchiq-Make-timeout-a-defined-parameter.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0246-staging-mmal-vchiq-Make-timeout-a-defined-parameter.patch rename to target/linux/brcm2708/patches-4.19/950-0237-staging-mmal-vchiq-Make-timeout-a-defined-parameter.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0247-staging-mmal-vchiq-Make-a-mmal_buf-struct-for-passin.patch b/target/linux/brcm2708/patches-4.19/950-0238-staging-mmal-vchiq-Make-a-mmal_buf-struct-for-passin.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0247-staging-mmal-vchiq-Make-a-mmal_buf-struct-for-passin.patch rename to target/linux/brcm2708/patches-4.19/950-0238-staging-mmal-vchiq-Make-a-mmal_buf-struct-for-passin.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0248-staging-mmal-vchiq-Add-support-for-event-callbacks.patch b/target/linux/brcm2708/patches-4.19/950-0239-staging-mmal-vchiq-Add-support-for-event-callbacks.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0248-staging-mmal-vchiq-Add-support-for-event-callbacks.patch rename to target/linux/brcm2708/patches-4.19/950-0239-staging-mmal-vchiq-Add-support-for-event-callbacks.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0249-staging-vc04_services-Support-sending-data-to-MMAL-p.patch b/target/linux/brcm2708/patches-4.19/950-0240-staging-vc04_services-Support-sending-data-to-MMAL-p.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0249-staging-vc04_services-Support-sending-data-to-MMAL-p.patch rename to target/linux/brcm2708/patches-4.19/950-0240-staging-vc04_services-Support-sending-data-to-MMAL-p.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0250-staging-vc04_services-Fixup-vchiq-mmal-include-order.patch b/target/linux/brcm2708/patches-4.19/950-0241-staging-vc04_services-Fixup-vchiq-mmal-include-order.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0250-staging-vc04_services-Fixup-vchiq-mmal-include-order.patch rename to target/linux/brcm2708/patches-4.19/950-0241-staging-vc04_services-Fixup-vchiq-mmal-include-order.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0251-staging-vc04_services-Add-new-vc-sm-cma-driver.patch b/target/linux/brcm2708/patches-4.19/950-0242-staging-vc04_services-Add-new-vc-sm-cma-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0251-staging-vc04_services-Add-new-vc-sm-cma-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0242-staging-vc04_services-Add-new-vc-sm-cma-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0252-staging-vc-sm-cma-Fixup-driver-for-older-VCHI-APIs.patch b/target/linux/brcm2708/patches-4.19/950-0243-staging-vc-sm-cma-Fixup-driver-for-older-VCHI-APIs.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0252-staging-vc-sm-cma-Fixup-driver-for-older-VCHI-APIs.patch rename to target/linux/brcm2708/patches-4.19/950-0243-staging-vc-sm-cma-Fixup-driver-for-older-VCHI-APIs.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0253-staging-vc04_services-Use-vc-sm-cma-to-support-zero-.patch b/target/linux/brcm2708/patches-4.19/950-0244-staging-vc04_services-Use-vc-sm-cma-to-support-zero-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0253-staging-vc04_services-Use-vc-sm-cma-to-support-zero-.patch rename to target/linux/brcm2708/patches-4.19/950-0244-staging-vc04_services-Use-vc-sm-cma-to-support-zero-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0254-media-videobuf2-Allow-exporting-of-a-struct-dmabuf.patch b/target/linux/brcm2708/patches-4.19/950-0245-media-videobuf2-Allow-exporting-of-a-struct-dmabuf.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0254-media-videobuf2-Allow-exporting-of-a-struct-dmabuf.patch rename to target/linux/brcm2708/patches-4.19/950-0245-media-videobuf2-Allow-exporting-of-a-struct-dmabuf.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0255-staging-vc04_services-Add-a-V4L2-M2M-codec-driver.patch b/target/linux/brcm2708/patches-4.19/950-0246-staging-vc04_services-Add-a-V4L2-M2M-codec-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0255-staging-vc04_services-Add-a-V4L2-M2M-codec-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0246-staging-vc04_services-Add-a-V4L2-M2M-codec-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0256-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch b/target/linux/brcm2708/patches-4.19/950-0247-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch similarity index 78% rename from target/linux/brcm2708/patches-4.19/950-0256-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch rename to target/linux/brcm2708/patches-4.19/950-0247-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch index c9461eb59d1..51cc4a4632a 100644 --- a/target/linux/brcm2708/patches-4.19/950-0256-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch +++ b/target/linux/brcm2708/patches-4.19/950-0247-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch @@ -14,18 +14,18 @@ Signed-off-by: Dave Stevenson --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -@@ -171,6 +171,7 @@ static struct device *vchiq_dev; +@@ -170,6 +170,7 @@ static struct class *vchiq_class; + static struct device *vchiq_dev; static DEFINE_SPINLOCK(msg_queue_spinlock); static struct platform_device *bcm2835_camera; - static struct platform_device *bcm2835_audio; +static struct platform_device *bcm2835_codec; static const char *const ioctl_names[] = { "CONNECT", -@@ -3660,6 +3661,9 @@ static int vchiq_probe(struct platform_d - bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio"); - if (IS_ERR(bcm2835_audio)) - bcm2835_audio = NULL; +@@ -3656,6 +3657,9 @@ static int vchiq_probe(struct platform_d + bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera"); + if (IS_ERR(bcm2835_camera)) + bcm2835_camera = NULL; + bcm2835_codec = vchiq_register_child(pdev, "bcm2835-codec"); + if (IS_ERR(bcm2835_codec)) + bcm2835_codec = NULL; diff --git a/target/linux/brcm2708/patches-4.19/950-0257-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch b/target/linux/brcm2708/patches-4.19/950-0248-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch similarity index 87% rename from target/linux/brcm2708/patches-4.19/950-0257-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch rename to target/linux/brcm2708/patches-4.19/950-0248-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch index d04e261b453..6bfa52dfe65 100644 --- a/target/linux/brcm2708/patches-4.19/950-0257-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch +++ b/target/linux/brcm2708/patches-4.19/950-0248-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch @@ -14,15 +14,15 @@ Signed-off-by: Dave Stevenson --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -@@ -172,6 +172,7 @@ static DEFINE_SPINLOCK(msg_queue_spinloc +@@ -171,6 +171,7 @@ static struct device *vchiq_dev; + static DEFINE_SPINLOCK(msg_queue_spinlock); static struct platform_device *bcm2835_camera; - static struct platform_device *bcm2835_audio; static struct platform_device *bcm2835_codec; +static struct platform_device *vcsm_cma; static const char *const ioctl_names[] = { "CONNECT", -@@ -3655,6 +3656,9 @@ static int vchiq_probe(struct platform_d +@@ -3654,6 +3655,9 @@ static int vchiq_probe(struct platform_d VCHIQ_VERSION, VCHIQ_VERSION_MIN, MAJOR(vchiq_devid), MINOR(vchiq_devid)); diff --git a/target/linux/brcm2708/patches-4.19/950-0258-staging-bcm2835-camera-Fix-stride-on-RGB3-BGR3-forma.patch b/target/linux/brcm2708/patches-4.19/950-0249-staging-bcm2835-camera-Fix-stride-on-RGB3-BGR3-forma.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0258-staging-bcm2835-camera-Fix-stride-on-RGB3-BGR3-forma.patch rename to target/linux/brcm2708/patches-4.19/950-0249-staging-bcm2835-camera-Fix-stride-on-RGB3-BGR3-forma.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0260-tpm-Make-SECURITYFS-a-weak-dependency.patch b/target/linux/brcm2708/patches-4.19/950-0250-tpm-Make-SECURITYFS-a-weak-dependency.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0260-tpm-Make-SECURITYFS-a-weak-dependency.patch rename to target/linux/brcm2708/patches-4.19/950-0250-tpm-Make-SECURITYFS-a-weak-dependency.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0261-Add-overlay-for-SLB9760-Iridium-LetsTrust-TPM.patch b/target/linux/brcm2708/patches-4.19/950-0251-Add-overlay-for-SLB9760-Iridium-LetsTrust-TPM.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0261-Add-overlay-for-SLB9760-Iridium-LetsTrust-TPM.patch rename to target/linux/brcm2708/patches-4.19/950-0251-Add-overlay-for-SLB9760-Iridium-LetsTrust-TPM.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0264-ASoC-add-driver-for-3Dlab-Nano-soundcard-2758.patch b/target/linux/brcm2708/patches-4.19/950-0252-ASoC-add-driver-for-3Dlab-Nano-soundcard-2758.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0264-ASoC-add-driver-for-3Dlab-Nano-soundcard-2758.patch rename to target/linux/brcm2708/patches-4.19/950-0252-ASoC-add-driver-for-3Dlab-Nano-soundcard-2758.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0265-overlays-Update-README-with-removal-of-lirc-rpi.patch b/target/linux/brcm2708/patches-4.19/950-0253-overlays-Update-README-with-removal-of-lirc-rpi.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0265-overlays-Update-README-with-removal-of-lirc-rpi.patch rename to target/linux/brcm2708/patches-4.19/950-0253-overlays-Update-README-with-removal-of-lirc-rpi.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0266-staging-bcm2835-camera-Check-the-error-for-REPEAT_SE.patch b/target/linux/brcm2708/patches-4.19/950-0254-staging-bcm2835-camera-Check-the-error-for-REPEAT_SE.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0266-staging-bcm2835-camera-Check-the-error-for-REPEAT_SE.patch rename to target/linux/brcm2708/patches-4.19/950-0254-staging-bcm2835-camera-Check-the-error-for-REPEAT_SE.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0267-gpio-ir-change-default-pull-configuration-to-up.patch b/target/linux/brcm2708/patches-4.19/950-0255-gpio-ir-change-default-pull-configuration-to-up.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0267-gpio-ir-change-default-pull-configuration-to-up.patch rename to target/linux/brcm2708/patches-4.19/950-0255-gpio-ir-change-default-pull-configuration-to-up.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0268-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch b/target/linux/brcm2708/patches-4.19/950-0256-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0268-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch rename to target/linux/brcm2708/patches-4.19/950-0256-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0269-firmware-raspberrypi-Report-the-fw-git-hash-during-p.patch b/target/linux/brcm2708/patches-4.19/950-0257-firmware-raspberrypi-Report-the-fw-git-hash-during-p.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0269-firmware-raspberrypi-Report-the-fw-git-hash-during-p.patch rename to target/linux/brcm2708/patches-4.19/950-0257-firmware-raspberrypi-Report-the-fw-git-hash-during-p.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0270-arm64-dts-broadcom-Enable-fixups-for-overlays.patch b/target/linux/brcm2708/patches-4.19/950-0258-arm64-dts-broadcom-Enable-fixups-for-overlays.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0270-arm64-dts-broadcom-Enable-fixups-for-overlays.patch rename to target/linux/brcm2708/patches-4.19/950-0258-arm64-dts-broadcom-Enable-fixups-for-overlays.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0271-dtoverlays-fe-pi-audio-fix-sgtl5000-compatible-strin.patch b/target/linux/brcm2708/patches-4.19/950-0259-dtoverlays-fe-pi-audio-fix-sgtl5000-compatible-strin.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0271-dtoverlays-fe-pi-audio-fix-sgtl5000-compatible-strin.patch rename to target/linux/brcm2708/patches-4.19/950-0259-dtoverlays-fe-pi-audio-fix-sgtl5000-compatible-strin.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0259-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch b/target/linux/brcm2708/patches-4.19/950-0259-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch deleted file mode 100644 index 8bc16911cad..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0259-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch +++ /dev/null @@ -1,76 +0,0 @@ -From cf6f8129b6af78116e00b1d781e0bcc8c4b73890 Mon Sep 17 00:00:00 2001 -From: John Sheu -Date: Thu, 15 Oct 2015 18:05:25 +0900 -Subject: [PATCH] media: vb2: Allow reqbufs(0) with "in use" MMAP - buffers - -Videobuf2 presently does not allow VIDIOC_REQBUFS to destroy outstanding -buffers if the queue is of type V4L2_MEMORY_MMAP, and if the buffers are -considered "in use". This is different behavior than for other memory -types and prevents us from deallocating buffers in following two cases: - -1) There are outstanding mmap()ed views on the buffer. However even if - we put the buffer in reqbufs(0), there will be remaining references, - due to vma .open/close() adjusting vb2 buffer refcount appropriately. - This means that the buffer will be in fact freed only when the last - mmap()ed view is unmapped. - -2) Buffer has been exported as a DMABUF. Refcount of the vb2 buffer - is managed properly by VB2 DMABUF ops, i.e. incremented on DMABUF - get and decremented on DMABUF release. This means that the buffer - will be alive until all importers release it. - -Considering both cases above, there does not seem to be any need to -prevent reqbufs(0) operation, because buffer lifetime is already -properly managed by both mmap() and DMABUF code paths. Let's remove it -and allow userspace freeing the queue (and potentially allocating a new -one) even though old buffers might be still in processing. - -Signed-off-by: John Sheu -Reviewed-by: Pawel Osciak -Reviewed-by: Tomasz Figa -Signed-off-by: Tomasz Figa ---- - .../media/common/videobuf2/videobuf2-core.c | 23 ------------------- - 1 file changed, 23 deletions(-) - ---- a/drivers/media/common/videobuf2/videobuf2-core.c -+++ b/drivers/media/common/videobuf2/videobuf2-core.c -@@ -554,20 +554,6 @@ bool vb2_buffer_in_use(struct vb2_queue - } - EXPORT_SYMBOL(vb2_buffer_in_use); - --/* -- * __buffers_in_use() - return true if any buffers on the queue are in use and -- * the queue cannot be freed (by the means of REQBUFS(0)) call -- */ --static bool __buffers_in_use(struct vb2_queue *q) --{ -- unsigned int buffer; -- for (buffer = 0; buffer < q->num_buffers; ++buffer) { -- if (vb2_buffer_in_use(q, q->bufs[buffer])) -- return true; -- } -- return false; --} -- - void vb2_core_querybuf(struct vb2_queue *q, unsigned int index, void *pb) - { - call_void_bufop(q, fill_user_buffer, q->bufs[index], pb); -@@ -679,16 +665,7 @@ int vb2_core_reqbufs(struct vb2_queue *q - - if (*count == 0 || q->num_buffers != 0 || - (q->memory != VB2_MEMORY_UNKNOWN && q->memory != memory)) { -- /* -- * We already have buffers allocated, so first check if they -- * are not in use and can be freed. -- */ - mutex_lock(&q->mmap_lock); -- if (q->memory == VB2_MEMORY_MMAP && __buffers_in_use(q)) { -- mutex_unlock(&q->mmap_lock); -- dprintk(1, "memory in use, cannot free\n"); -- return -EBUSY; -- } - - /* - * Call queue_cancel to clean up any buffers in the PREPARED or diff --git a/target/linux/brcm2708/patches-4.19/950-0272-bcm2835_smi-re-add-dereference-to-fix-DMA-transfers.patch b/target/linux/brcm2708/patches-4.19/950-0260-bcm2835_smi-re-add-dereference-to-fix-DMA-transfers.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0272-bcm2835_smi-re-add-dereference-to-fix-DMA-transfers.patch rename to target/linux/brcm2708/patches-4.19/950-0260-bcm2835_smi-re-add-dereference-to-fix-DMA-transfers.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0273-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch b/target/linux/brcm2708/patches-4.19/950-0261-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0273-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch rename to target/linux/brcm2708/patches-4.19/950-0261-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0274-ASoC-Add-support-for-AudioSense-Pi-add-on-soundcard.patch b/target/linux/brcm2708/patches-4.19/950-0262-ASoC-Add-support-for-AudioSense-Pi-add-on-soundcard.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0274-ASoC-Add-support-for-AudioSense-Pi-add-on-soundcard.patch rename to target/linux/brcm2708/patches-4.19/950-0262-ASoC-Add-support-for-AudioSense-Pi-add-on-soundcard.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0262-Revert-staging-vchiq_arm-Register-a-platform-device-.patch b/target/linux/brcm2708/patches-4.19/950-0262-Revert-staging-vchiq_arm-Register-a-platform-device-.patch deleted file mode 100644 index aeaf8bf1a72..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0262-Revert-staging-vchiq_arm-Register-a-platform-device-.patch +++ /dev/null @@ -1,48 +0,0 @@ -From d679d6ff3fd138f55b8bbeaf7750c3c980944295 Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Tue, 4 Dec 2018 19:40:12 +0000 -Subject: [PATCH] Revert "staging: vchiq_arm: Register a platform - device for the audio driver" - -This reverts commit ab59590ed562b89db51fe46cee5db96b9bc5abd8. - -Issues have been observed in LibreElec as this was unconditionally -loading the audio driver instead of having the DT parameter to -enable it. - -Includes a partial revert of 2147700eb7a1b9e55e0684f0749114ce35d61571 -which fixed up the error handling. - -Signed-off-by: Dave Stevenson ---- - .../staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 5 ----- - 1 file changed, 5 deletions(-) - ---- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -@@ -170,7 +170,6 @@ static struct class *vchiq_class; - static struct device *vchiq_dev; - static DEFINE_SPINLOCK(msg_queue_spinlock); - static struct platform_device *bcm2835_camera; --static struct platform_device *bcm2835_audio; - static struct platform_device *bcm2835_codec; - static struct platform_device *vcsm_cma; - -@@ -3662,9 +3661,6 @@ static int vchiq_probe(struct platform_d - bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera"); - if (IS_ERR(bcm2835_camera)) - bcm2835_camera = NULL; -- bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio"); -- if (IS_ERR(bcm2835_audio)) -- bcm2835_audio = NULL; - bcm2835_codec = vchiq_register_child(pdev, "bcm2835-codec"); - if (IS_ERR(bcm2835_codec)) - bcm2835_codec = NULL; -@@ -3685,7 +3681,6 @@ failed_platform_init: - static int vchiq_remove(struct platform_device *pdev) - { - platform_device_unregister(bcm2835_codec); -- platform_device_unregister(bcm2835_audio); - platform_device_unregister(bcm2835_camera); - platform_device_unregister(vcsm_cma); - vchiq_debugfs_deinit(); diff --git a/target/linux/brcm2708/patches-4.19/950-0275-BCM270X-Adding-device-tree-support-for-AudioSense-Pi.patch b/target/linux/brcm2708/patches-4.19/950-0263-BCM270X-Adding-device-tree-support-for-AudioSense-Pi.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0275-BCM270X-Adding-device-tree-support-for-AudioSense-Pi.patch rename to target/linux/brcm2708/patches-4.19/950-0263-BCM270X-Adding-device-tree-support-for-AudioSense-Pi.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0263-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch b/target/linux/brcm2708/patches-4.19/950-0263-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch deleted file mode 100644 index ea5d5d29499..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0263-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 28e06d43dd44a45d307848bed588fc65d7c79d83 Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Tue, 4 Dec 2018 20:41:19 +0000 -Subject: [PATCH] Revert "staging: bcm2835-audio: Drop DT dependency" - -This reverts commit 933bc853bb764e476b0b0f633588f46d20f1f76a. - -Signed-off-by: Dave Stevenson ---- - .../vc04_services/bcm2835-audio/bcm2835.c | 41 ++++++++++--------- - 1 file changed, 22 insertions(+), 19 deletions(-) - ---- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -@@ -4,17 +4,15 @@ - #include - - #include --#include --#include - #include - #include -+#include - - #include "bcm2835.h" - - static bool enable_hdmi; - static bool enable_headphones; - static bool enable_compat_alsa = true; --static int num_channels = MAX_SUBSTREAMS; - - module_param(enable_hdmi, bool, 0444); - MODULE_PARM_DESC(enable_hdmi, "Enables HDMI virtual audio device"); -@@ -23,8 +21,6 @@ MODULE_PARM_DESC(enable_headphones, "Ena - module_param(enable_compat_alsa, bool, 0444); - MODULE_PARM_DESC(enable_compat_alsa, - "Enables ALSA compatibility virtual audio device"); --module_param(num_channels, int, 0644); --MODULE_PARM_DESC(num_channels, "Number of audio channels (default: 8)"); - - static void snd_devm_unregister_child(struct device *dev, void *res) - { -@@ -411,30 +407,31 @@ static int snd_add_child_devices(struct - return 0; - } - --static int snd_bcm2835_alsa_probe(struct platform_device *pdev) -+static int snd_bcm2835_alsa_probe_dt(struct platform_device *pdev) - { - struct device *dev = &pdev->dev; -+ u32 numchans; - int err; - -- if (num_channels <= 0 || num_channels > MAX_SUBSTREAMS) { -- num_channels = MAX_SUBSTREAMS; -- dev_warn(dev, "Illegal num_channels value, will use %u\n", -- num_channels); -- } -- -- dev->coherent_dma_mask = DMA_BIT_MASK(32); -- dev->dma_mask = &dev->coherent_dma_mask; -- err = of_dma_configure(dev, NULL, true); -+ err = of_property_read_u32(dev->of_node, "brcm,pwm-channels", -+ &numchans); - if (err) { -- dev_err(dev, "Unable to setup DMA: %d\n", err); -+ dev_err(dev, "Failed to get DT property 'brcm,pwm-channels'"); - return err; - } - -+ if (numchans == 0 || numchans > MAX_SUBSTREAMS) { -+ numchans = MAX_SUBSTREAMS; -+ dev_warn(dev, -+ "Illegal 'brcm,pwm-channels' value, will use %u\n", -+ numchans); -+ } -+ - err = bcm2835_devm_add_vchi_ctx(dev); - if (err) - return err; - -- err = snd_add_child_devices(dev, num_channels); -+ err = snd_add_child_devices(dev, numchans); - if (err) - return err; - -@@ -456,14 +453,21 @@ static int snd_bcm2835_alsa_resume(struc - - #endif - -+static const struct of_device_id snd_bcm2835_of_match_table[] = { -+ { .compatible = "brcm,bcm2835-audio",}, -+ {}, -+}; -+MODULE_DEVICE_TABLE(of, snd_bcm2835_of_match_table); -+ - static struct platform_driver bcm2835_alsa0_driver = { -- .probe = snd_bcm2835_alsa_probe, -+ .probe = snd_bcm2835_alsa_probe_dt, - #ifdef CONFIG_PM - .suspend = snd_bcm2835_alsa_suspend, - .resume = snd_bcm2835_alsa_resume, - #endif - .driver = { - .name = "bcm2835_audio", -+ .of_match_table = snd_bcm2835_of_match_table, - }, - }; - module_platform_driver(bcm2835_alsa0_driver); -@@ -471,4 +475,3 @@ module_platform_driver(bcm2835_alsa0_dri - MODULE_AUTHOR("Dom Cobley"); - MODULE_DESCRIPTION("Alsa driver for BCM2835 chip"); - MODULE_LICENSE("GPL"); --MODULE_ALIAS("platform:bcm2835_audio"); diff --git a/target/linux/brcm2708/patches-4.19/950-0276-overlays-sdio-Add-enhanced-1-bit-support.patch b/target/linux/brcm2708/patches-4.19/950-0264-overlays-sdio-Add-enhanced-1-bit-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0276-overlays-sdio-Add-enhanced-1-bit-support.patch rename to target/linux/brcm2708/patches-4.19/950-0264-overlays-sdio-Add-enhanced-1-bit-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0277-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch b/target/linux/brcm2708/patches-4.19/950-0265-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0277-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch rename to target/linux/brcm2708/patches-4.19/950-0265-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0278-Added-driver-for-the-HiFiBerry-DAC-ADC-2694.patch b/target/linux/brcm2708/patches-4.19/950-0266-Added-driver-for-the-HiFiBerry-DAC-ADC-2694.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0278-Added-driver-for-the-HiFiBerry-DAC-ADC-2694.patch rename to target/linux/brcm2708/patches-4.19/950-0266-Added-driver-for-the-HiFiBerry-DAC-ADC-2694.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0279-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch b/target/linux/brcm2708/patches-4.19/950-0267-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0279-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch rename to target/linux/brcm2708/patches-4.19/950-0267-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0280-overlays-Add-ssd1306-overlay-for-OLED-display.patch b/target/linux/brcm2708/patches-4.19/950-0268-overlays-Add-ssd1306-overlay-for-OLED-display.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0280-overlays-Add-ssd1306-overlay-for-OLED-display.patch rename to target/linux/brcm2708/patches-4.19/950-0268-overlays-Add-ssd1306-overlay-for-OLED-display.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0281-overlays-mcp23017-Support-the-MCP23008.patch b/target/linux/brcm2708/patches-4.19/950-0269-overlays-mcp23017-Support-the-MCP23008.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0281-overlays-mcp23017-Support-the-MCP23008.patch rename to target/linux/brcm2708/patches-4.19/950-0269-overlays-mcp23017-Support-the-MCP23008.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0282-overlays-Add-mcp342x-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0270-overlays-Add-mcp342x-overlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0282-overlays-Add-mcp342x-overlay.patch rename to target/linux/brcm2708/patches-4.19/950-0270-overlays-Add-mcp342x-overlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0283-char-vcio-Add-compat-ioctl-handling.patch b/target/linux/brcm2708/patches-4.19/950-0271-char-vcio-Add-compat-ioctl-handling.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0283-char-vcio-Add-compat-ioctl-handling.patch rename to target/linux/brcm2708/patches-4.19/950-0271-char-vcio-Add-compat-ioctl-handling.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0284-char-vcio-Fail-probe-if-rpi_firmware-is-not-found.patch b/target/linux/brcm2708/patches-4.19/950-0272-char-vcio-Fail-probe-if-rpi_firmware-is-not-found.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0284-char-vcio-Fail-probe-if-rpi_firmware-is-not-found.patch rename to target/linux/brcm2708/patches-4.19/950-0272-char-vcio-Fail-probe-if-rpi_firmware-is-not-found.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0285-staging-mmal-vchiq-Fix-client_component-for-64-bit-k.patch b/target/linux/brcm2708/patches-4.19/950-0273-staging-mmal-vchiq-Fix-client_component-for-64-bit-k.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0285-staging-mmal-vchiq-Fix-client_component-for-64-bit-k.patch rename to target/linux/brcm2708/patches-4.19/950-0273-staging-mmal-vchiq-Fix-client_component-for-64-bit-k.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0286-staging-bcm2835-camera-Add-sanity-checks-for-queue_s.patch b/target/linux/brcm2708/patches-4.19/950-0274-staging-bcm2835-camera-Add-sanity-checks-for-queue_s.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0286-staging-bcm2835-camera-Add-sanity-checks-for-queue_s.patch rename to target/linux/brcm2708/patches-4.19/950-0274-staging-bcm2835-camera-Add-sanity-checks-for-queue_s.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0287-staging-bcm2835-camera-Set-the-field-value-within-ea.patch b/target/linux/brcm2708/patches-4.19/950-0275-staging-bcm2835-camera-Set-the-field-value-within-ea.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0287-staging-bcm2835-camera-Set-the-field-value-within-ea.patch rename to target/linux/brcm2708/patches-4.19/950-0275-staging-bcm2835-camera-Set-the-field-value-within-ea.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0288-char-vc_mem-Fix-up-compat-ioctls-for-64bit-kernel.patch b/target/linux/brcm2708/patches-4.19/950-0276-char-vc_mem-Fix-up-compat-ioctls-for-64bit-kernel.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0288-char-vc_mem-Fix-up-compat-ioctls-for-64bit-kernel.patch rename to target/linux/brcm2708/patches-4.19/950-0276-char-vc_mem-Fix-up-compat-ioctls-for-64bit-kernel.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0289-char-vc_mem-Fix-all-coding-style-issues.patch b/target/linux/brcm2708/patches-4.19/950-0277-char-vc_mem-Fix-all-coding-style-issues.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0289-char-vc_mem-Fix-all-coding-style-issues.patch rename to target/linux/brcm2708/patches-4.19/950-0277-char-vc_mem-Fix-all-coding-style-issues.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0290-clk-clk-bcm2835-Use-zd-when-printing-size_t.patch b/target/linux/brcm2708/patches-4.19/950-0278-clk-clk-bcm2835-Use-zd-when-printing-size_t.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0290-clk-clk-bcm2835-Use-zd-when-printing-size_t.patch rename to target/linux/brcm2708/patches-4.19/950-0278-clk-clk-bcm2835-Use-zd-when-printing-size_t.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0291-mfd-Add-rpi_sense_core-of-compatible-string.patch b/target/linux/brcm2708/patches-4.19/950-0279-mfd-Add-rpi_sense_core-of-compatible-string.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0291-mfd-Add-rpi_sense_core-of-compatible-string.patch rename to target/linux/brcm2708/patches-4.19/950-0279-mfd-Add-rpi_sense_core-of-compatible-string.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0292-gpu-vc4_firmware_kms-Fix-up-64-bit-compile-warnings.patch b/target/linux/brcm2708/patches-4.19/950-0280-gpu-vc4_firmware_kms-Fix-up-64-bit-compile-warnings.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0292-gpu-vc4_firmware_kms-Fix-up-64-bit-compile-warnings.patch rename to target/linux/brcm2708/patches-4.19/950-0280-gpu-vc4_firmware_kms-Fix-up-64-bit-compile-warnings.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0293-input-rpi-ft5406-Clear-build-warning-on-64-bit-build.patch b/target/linux/brcm2708/patches-4.19/950-0281-input-rpi-ft5406-Clear-build-warning-on-64-bit-build.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0293-input-rpi-ft5406-Clear-build-warning-on-64-bit-build.patch rename to target/linux/brcm2708/patches-4.19/950-0281-input-rpi-ft5406-Clear-build-warning-on-64-bit-build.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0294-dtoverlays-Correct-DT-handling-camera-GPIOs.patch b/target/linux/brcm2708/patches-4.19/950-0282-dtoverlays-Correct-DT-handling-camera-GPIOs.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0294-dtoverlays-Correct-DT-handling-camera-GPIOs.patch rename to target/linux/brcm2708/patches-4.19/950-0282-dtoverlays-Correct-DT-handling-camera-GPIOs.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0295-media-ov5647-Use-gpiod_set_value_cansleep.patch b/target/linux/brcm2708/patches-4.19/950-0283-media-ov5647-Use-gpiod_set_value_cansleep.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0295-media-ov5647-Use-gpiod_set_value_cansleep.patch rename to target/linux/brcm2708/patches-4.19/950-0283-media-ov5647-Use-gpiod_set_value_cansleep.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0296-media-bcm2835-unicam-Power-on-subdev-on-open-release.patch b/target/linux/brcm2708/patches-4.19/950-0284-media-bcm2835-unicam-Power-on-subdev-on-open-release.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0296-media-bcm2835-unicam-Power-on-subdev-on-open-release.patch rename to target/linux/brcm2708/patches-4.19/950-0284-media-bcm2835-unicam-Power-on-subdev-on-open-release.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0297-audioinjector-octo-revert-to-dummy-supplies.patch b/target/linux/brcm2708/patches-4.19/950-0285-audioinjector-octo-revert-to-dummy-supplies.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0297-audioinjector-octo-revert-to-dummy-supplies.patch rename to target/linux/brcm2708/patches-4.19/950-0285-audioinjector-octo-revert-to-dummy-supplies.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0298-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch b/target/linux/brcm2708/patches-4.19/950-0286-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0298-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch rename to target/linux/brcm2708/patches-4.19/950-0286-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0299-staging-bcm2835-codec-variable-vb2-may-be-used-unini.patch b/target/linux/brcm2708/patches-4.19/950-0287-staging-bcm2835-codec-variable-vb2-may-be-used-unini.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0299-staging-bcm2835-codec-variable-vb2-may-be-used-unini.patch rename to target/linux/brcm2708/patches-4.19/950-0287-staging-bcm2835-codec-variable-vb2-may-be-used-unini.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0300-staging-bcm2835-codec-Fix-potentially-uninitialised-.patch b/target/linux/brcm2708/patches-4.19/950-0288-staging-bcm2835-codec-Fix-potentially-uninitialised-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0300-staging-bcm2835-codec-Fix-potentially-uninitialised-.patch rename to target/linux/brcm2708/patches-4.19/950-0288-staging-bcm2835-codec-Fix-potentially-uninitialised-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0301-video-bcm2708_fb-Add-compat_ioctl-support.patch b/target/linux/brcm2708/patches-4.19/950-0289-video-bcm2708_fb-Add-compat_ioctl-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0301-video-bcm2708_fb-Add-compat_ioctl-support.patch rename to target/linux/brcm2708/patches-4.19/950-0289-video-bcm2708_fb-Add-compat_ioctl-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0302-video-bcm2708_fb-Fix-warnings-on-64-bit-builds.patch b/target/linux/brcm2708/patches-4.19/950-0290-video-bcm2708_fb-Fix-warnings-on-64-bit-builds.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0302-video-bcm2708_fb-Fix-warnings-on-64-bit-builds.patch rename to target/linux/brcm2708/patches-4.19/950-0290-video-bcm2708_fb-Fix-warnings-on-64-bit-builds.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0303-video-bcm2708_fb-Clean-up-coding-style-issues.patch b/target/linux/brcm2708/patches-4.19/950-0291-video-bcm2708_fb-Clean-up-coding-style-issues.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0303-video-bcm2708_fb-Clean-up-coding-style-issues.patch rename to target/linux/brcm2708/patches-4.19/950-0291-video-bcm2708_fb-Clean-up-coding-style-issues.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0304-bcm2835-dma-Add-support-for-per-channel-flags.patch b/target/linux/brcm2708/patches-4.19/950-0292-bcm2835-dma-Add-support-for-per-channel-flags.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0304-bcm2835-dma-Add-support-for-per-channel-flags.patch rename to target/linux/brcm2708/patches-4.19/950-0292-bcm2835-dma-Add-support-for-per-channel-flags.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0305-bcm283x-Set-the-DISDEBUG-flag-for-SD-transfers.patch b/target/linux/brcm2708/patches-4.19/950-0293-bcm283x-Set-the-DISDEBUG-flag-for-SD-transfers.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0305-bcm283x-Set-the-DISDEBUG-flag-for-SD-transfers.patch rename to target/linux/brcm2708/patches-4.19/950-0293-bcm283x-Set-the-DISDEBUG-flag-for-SD-transfers.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0306-ASoC-pcm512x-Implement-the-digital_mute-interface.patch b/target/linux/brcm2708/patches-4.19/950-0294-ASoC-pcm512x-Implement-the-digital_mute-interface.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0306-ASoC-pcm512x-Implement-the-digital_mute-interface.patch rename to target/linux/brcm2708/patches-4.19/950-0294-ASoC-pcm512x-Implement-the-digital_mute-interface.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0307-ASoC-pcm512x-Fix-a-double-unlock-in-pcm512x_digital_.patch b/target/linux/brcm2708/patches-4.19/950-0295-ASoC-pcm512x-Fix-a-double-unlock-in-pcm512x_digital_.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0307-ASoC-pcm512x-Fix-a-double-unlock-in-pcm512x_digital_.patch rename to target/linux/brcm2708/patches-4.19/950-0295-ASoC-pcm512x-Fix-a-double-unlock-in-pcm512x_digital_.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0308-usb-dwc_otg-Clean-up-build-warnings-on-64bit-kernels.patch b/target/linux/brcm2708/patches-4.19/950-0296-usb-dwc_otg-Clean-up-build-warnings-on-64bit-kernels.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0308-usb-dwc_otg-Clean-up-build-warnings-on-64bit-kernels.patch rename to target/linux/brcm2708/patches-4.19/950-0296-usb-dwc_otg-Clean-up-build-warnings-on-64bit-kernels.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0309-usb-dwc_otg-Use-dma-allocation-for-mphi-dummy_send-b.patch b/target/linux/brcm2708/patches-4.19/950-0297-usb-dwc_otg-Use-dma-allocation-for-mphi-dummy_send-b.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0309-usb-dwc_otg-Use-dma-allocation-for-mphi-dummy_send-b.patch rename to target/linux/brcm2708/patches-4.19/950-0297-usb-dwc_otg-Use-dma-allocation-for-mphi-dummy_send-b.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0310-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch b/target/linux/brcm2708/patches-4.19/950-0298-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0310-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch rename to target/linux/brcm2708/patches-4.19/950-0298-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0311-staging-vc-sm-cma-Correct-DMA-configuration.patch b/target/linux/brcm2708/patches-4.19/950-0299-staging-vc-sm-cma-Correct-DMA-configuration.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0311-staging-vc-sm-cma-Correct-DMA-configuration.patch rename to target/linux/brcm2708/patches-4.19/950-0299-staging-vc-sm-cma-Correct-DMA-configuration.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0312-staging-vc-sm-cma-Use-a-void-pointer-as-the-handle-w.patch b/target/linux/brcm2708/patches-4.19/950-0300-staging-vc-sm-cma-Use-a-void-pointer-as-the-handle-w.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0312-staging-vc-sm-cma-Use-a-void-pointer-as-the-handle-w.patch rename to target/linux/brcm2708/patches-4.19/950-0300-staging-vc-sm-cma-Use-a-void-pointer-as-the-handle-w.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0313-staging-vc-sm-cma-Fix-up-for-64bit-builds.patch b/target/linux/brcm2708/patches-4.19/950-0301-staging-vc-sm-cma-Fix-up-for-64bit-builds.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0313-staging-vc-sm-cma-Fix-up-for-64bit-builds.patch rename to target/linux/brcm2708/patches-4.19/950-0301-staging-vc-sm-cma-Fix-up-for-64bit-builds.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0314-configs-Enable-the-AD193x-codecs.patch b/target/linux/brcm2708/patches-4.19/950-0302-configs-Enable-the-AD193x-codecs.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0314-configs-Enable-the-AD193x-codecs.patch rename to target/linux/brcm2708/patches-4.19/950-0302-configs-Enable-the-AD193x-codecs.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0315-overlays-balenaFin-v1.1.0-carrier-board-update.patch b/target/linux/brcm2708/patches-4.19/950-0303-overlays-balenaFin-v1.1.0-carrier-board-update.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0315-overlays-balenaFin-v1.1.0-carrier-board-update.patch rename to target/linux/brcm2708/patches-4.19/950-0303-overlays-balenaFin-v1.1.0-carrier-board-update.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0316-gpu-vc4-fkms-Update-driver-to-not-use-plane-crtc.patch b/target/linux/brcm2708/patches-4.19/950-0304-gpu-vc4-fkms-Update-driver-to-not-use-plane-crtc.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0316-gpu-vc4-fkms-Update-driver-to-not-use-plane-crtc.patch rename to target/linux/brcm2708/patches-4.19/950-0304-gpu-vc4-fkms-Update-driver-to-not-use-plane-crtc.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0317-drm-vc4-Programming-the-CTM-is-conditional-on-runnin.patch b/target/linux/brcm2708/patches-4.19/950-0305-drm-vc4-Programming-the-CTM-is-conditional-on-runnin.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0317-drm-vc4-Programming-the-CTM-is-conditional-on-runnin.patch rename to target/linux/brcm2708/patches-4.19/950-0305-drm-vc4-Programming-the-CTM-is-conditional-on-runnin.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0318-staging-mmal_vchiq-Add-in-the-Bayer-encoding-formats.patch b/target/linux/brcm2708/patches-4.19/950-0306-staging-mmal_vchiq-Add-in-the-Bayer-encoding-formats.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0318-staging-mmal_vchiq-Add-in-the-Bayer-encoding-formats.patch rename to target/linux/brcm2708/patches-4.19/950-0306-staging-mmal_vchiq-Add-in-the-Bayer-encoding-formats.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0319-staging-mmal-vchiq-Always-return-the-param-size-from.patch b/target/linux/brcm2708/patches-4.19/950-0307-staging-mmal-vchiq-Always-return-the-param-size-from.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0319-staging-mmal-vchiq-Always-return-the-param-size-from.patch rename to target/linux/brcm2708/patches-4.19/950-0307-staging-mmal-vchiq-Always-return-the-param-size-from.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0320-staging-mmal-vchiq-If-the-VPU-returns-an-error-don-t.patch b/target/linux/brcm2708/patches-4.19/950-0308-staging-mmal-vchiq-If-the-VPU-returns-an-error-don-t.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0320-staging-mmal-vchiq-If-the-VPU-returns-an-error-don-t.patch rename to target/linux/brcm2708/patches-4.19/950-0308-staging-mmal-vchiq-If-the-VPU-returns-an-error-don-t.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0321-staging-bcm2835_codec-Query-supported-formats-from-t.patch b/target/linux/brcm2708/patches-4.19/950-0309-staging-bcm2835_codec-Query-supported-formats-from-t.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0321-staging-bcm2835_codec-Query-supported-formats-from-t.patch rename to target/linux/brcm2708/patches-4.19/950-0309-staging-bcm2835_codec-Query-supported-formats-from-t.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0322-staging-bcm2835_codec-Add-support-for-the-ISP-as-an-.patch b/target/linux/brcm2708/patches-4.19/950-0310-staging-bcm2835_codec-Add-support-for-the-ISP-as-an-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0322-staging-bcm2835_codec-Add-support-for-the-ISP-as-an-.patch rename to target/linux/brcm2708/patches-4.19/950-0310-staging-bcm2835_codec-Add-support-for-the-ISP-as-an-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0323-staging-bcm2835_codec-Add-an-option-for-ignoring-Bay.patch b/target/linux/brcm2708/patches-4.19/950-0311-staging-bcm2835_codec-Add-an-option-for-ignoring-Bay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0323-staging-bcm2835_codec-Add-an-option-for-ignoring-Bay.patch rename to target/linux/brcm2708/patches-4.19/950-0311-staging-bcm2835_codec-Add-an-option-for-ignoring-Bay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0324-staging-bcm2835_codec-Fix-handling-of-VB2_MEMORY_DMA.patch b/target/linux/brcm2708/patches-4.19/950-0312-staging-bcm2835_codec-Fix-handling-of-VB2_MEMORY_DMA.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0324-staging-bcm2835_codec-Fix-handling-of-VB2_MEMORY_DMA.patch rename to target/linux/brcm2708/patches-4.19/950-0312-staging-bcm2835_codec-Fix-handling-of-VB2_MEMORY_DMA.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0325-staging-mmal-vchiq-Update-mmal_parameters.h-with-rec.patch b/target/linux/brcm2708/patches-4.19/950-0313-staging-mmal-vchiq-Update-mmal_parameters.h-with-rec.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0325-staging-mmal-vchiq-Update-mmal_parameters.h-with-rec.patch rename to target/linux/brcm2708/patches-4.19/950-0313-staging-mmal-vchiq-Update-mmal_parameters.h-with-rec.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0326-staging-bcm2835_codec-Include-timing-info-in-SPS-hea.patch b/target/linux/brcm2708/patches-4.19/950-0314-staging-bcm2835_codec-Include-timing-info-in-SPS-hea.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0326-staging-bcm2835_codec-Include-timing-info-in-SPS-hea.patch rename to target/linux/brcm2708/patches-4.19/950-0314-staging-bcm2835_codec-Include-timing-info-in-SPS-hea.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0327-drm-vc4-Don-t-wait-for-vblank-on-fkms-cursor-updates.patch b/target/linux/brcm2708/patches-4.19/950-0315-drm-vc4-Don-t-wait-for-vblank-on-fkms-cursor-updates.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0327-drm-vc4-Don-t-wait-for-vblank-on-fkms-cursor-updates.patch rename to target/linux/brcm2708/patches-4.19/950-0315-drm-vc4-Don-t-wait-for-vblank-on-fkms-cursor-updates.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0328-Fix-for-Pisound-kernel-module-in-Real-Time-kernel-co.patch b/target/linux/brcm2708/patches-4.19/950-0316-Fix-for-Pisound-kernel-module-in-Real-Time-kernel-co.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0328-Fix-for-Pisound-kernel-module-in-Real-Time-kernel-co.patch rename to target/linux/brcm2708/patches-4.19/950-0316-Fix-for-Pisound-kernel-module-in-Real-Time-kernel-co.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0329-Added-mute-stream-func.patch b/target/linux/brcm2708/patches-4.19/950-0317-Added-mute-stream-func.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0329-Added-mute-stream-func.patch rename to target/linux/brcm2708/patches-4.19/950-0317-Added-mute-stream-func.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0330-lan78xx-EEE-support-is-now-a-PHY-property.patch b/target/linux/brcm2708/patches-4.19/950-0318-lan78xx-EEE-support-is-now-a-PHY-property.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0330-lan78xx-EEE-support-is-now-a-PHY-property.patch rename to target/linux/brcm2708/patches-4.19/950-0318-lan78xx-EEE-support-is-now-a-PHY-property.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0332-staging-vc_sm_cma-Remove-erroneous-misc_deregister.patch b/target/linux/brcm2708/patches-4.19/950-0319-staging-vc_sm_cma-Remove-erroneous-misc_deregister.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0332-staging-vc_sm_cma-Remove-erroneous-misc_deregister.patch rename to target/linux/brcm2708/patches-4.19/950-0319-staging-vc_sm_cma-Remove-erroneous-misc_deregister.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0333-vcsm-Fix-makefile-include-on-out-of-tree-builds.patch b/target/linux/brcm2708/patches-4.19/950-0320-vcsm-Fix-makefile-include-on-out-of-tree-builds.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0333-vcsm-Fix-makefile-include-on-out-of-tree-builds.patch rename to target/linux/brcm2708/patches-4.19/950-0320-vcsm-Fix-makefile-include-on-out-of-tree-builds.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0334-vcsm-Remove-set-but-unused-variable.patch b/target/linux/brcm2708/patches-4.19/950-0321-vcsm-Remove-set-but-unused-variable.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0334-vcsm-Remove-set-but-unused-variable.patch rename to target/linux/brcm2708/patches-4.19/950-0321-vcsm-Remove-set-but-unused-variable.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0335-vcsm-Reduce-scope-of-local-functions.patch b/target/linux/brcm2708/patches-4.19/950-0322-vcsm-Reduce-scope-of-local-functions.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0335-vcsm-Reduce-scope-of-local-functions.patch rename to target/linux/brcm2708/patches-4.19/950-0322-vcsm-Reduce-scope-of-local-functions.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0336-staging-bcm2835-codec-NULL-component-handle-on-queue.patch b/target/linux/brcm2708/patches-4.19/950-0323-staging-bcm2835-codec-NULL-component-handle-on-queue.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0336-staging-bcm2835-codec-NULL-component-handle-on-queue.patch rename to target/linux/brcm2708/patches-4.19/950-0323-staging-bcm2835-codec-NULL-component-handle-on-queue.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0337-staging-vc-sm-cma-Remove-the-debugfs-directory-on-re.patch b/target/linux/brcm2708/patches-4.19/950-0324-staging-vc-sm-cma-Remove-the-debugfs-directory-on-re.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0337-staging-vc-sm-cma-Remove-the-debugfs-directory-on-re.patch rename to target/linux/brcm2708/patches-4.19/950-0324-staging-vc-sm-cma-Remove-the-debugfs-directory-on-re.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0338-staging-vc-sm-cma-Use-devm_-allocs-for-sm_state.patch b/target/linux/brcm2708/patches-4.19/950-0325-staging-vc-sm-cma-Use-devm_-allocs-for-sm_state.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0338-staging-vc-sm-cma-Use-devm_-allocs-for-sm_state.patch rename to target/linux/brcm2708/patches-4.19/950-0325-staging-vc-sm-cma-Use-devm_-allocs-for-sm_state.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0339-staging-vc-sm-cma-Don-t-fail-if-debugfs-calls-fail.patch b/target/linux/brcm2708/patches-4.19/950-0326-staging-vc-sm-cma-Don-t-fail-if-debugfs-calls-fail.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0339-staging-vc-sm-cma-Don-t-fail-if-debugfs-calls-fail.patch rename to target/linux/brcm2708/patches-4.19/950-0326-staging-vc-sm-cma-Don-t-fail-if-debugfs-calls-fail.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0340-staging-vc-sm-cma-Ensure-mutex-and-idr-are-destroyed.patch b/target/linux/brcm2708/patches-4.19/950-0327-staging-vc-sm-cma-Ensure-mutex-and-idr-are-destroyed.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0340-staging-vc-sm-cma-Ensure-mutex-and-idr-are-destroyed.patch rename to target/linux/brcm2708/patches-4.19/950-0327-staging-vc-sm-cma-Ensure-mutex-and-idr-are-destroyed.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0341-staging-bcm2835_codec-Clean-up-logging-on-unloading-.patch b/target/linux/brcm2708/patches-4.19/950-0328-staging-bcm2835_codec-Clean-up-logging-on-unloading-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0341-staging-bcm2835_codec-Clean-up-logging-on-unloading-.patch rename to target/linux/brcm2708/patches-4.19/950-0328-staging-bcm2835_codec-Clean-up-logging-on-unloading-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0342-bcm2835-sdhost-Allow-for-sg-entries-that-cross-pages.patch b/target/linux/brcm2708/patches-4.19/950-0329-bcm2835-sdhost-Allow-for-sg-entries-that-cross-pages.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0342-bcm2835-sdhost-Allow-for-sg-entries-that-cross-pages.patch rename to target/linux/brcm2708/patches-4.19/950-0329-bcm2835-sdhost-Allow-for-sg-entries-that-cross-pages.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0343-overlays-sdio-Added-4-bit-support-on-GPIOs-34-39.-29.patch b/target/linux/brcm2708/patches-4.19/950-0330-overlays-sdio-Added-4-bit-support-on-GPIOs-34-39.-29.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0343-overlays-sdio-Added-4-bit-support-on-GPIOs-34-39.-29.patch rename to target/linux/brcm2708/patches-4.19/950-0330-overlays-sdio-Added-4-bit-support-on-GPIOs-34-39.-29.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0344-overlays-Fix-multiple-instantiation-of-sc16is7xx.patch b/target/linux/brcm2708/patches-4.19/950-0331-overlays-Fix-multiple-instantiation-of-sc16is7xx.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0344-overlays-Fix-multiple-instantiation-of-sc16is7xx.patch rename to target/linux/brcm2708/patches-4.19/950-0331-overlays-Fix-multiple-instantiation-of-sc16is7xx.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0331-video-bcm2708_fb-Try-allocating-on-the-ARM-and-passi.patch b/target/linux/brcm2708/patches-4.19/950-0331-video-bcm2708_fb-Try-allocating-on-the-ARM-and-passi.patch deleted file mode 100644 index d7092146649..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0331-video-bcm2708_fb-Try-allocating-on-the-ARM-and-passi.patch +++ /dev/null @@ -1,162 +0,0 @@ -From a9a47ea599c12d29526138cd6e48f6c9eac19358 Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Wed, 27 Feb 2019 17:30:33 +0000 -Subject: [PATCH] video: bcm2708_fb: Try allocating on the ARM and - passing to VPU - -Currently the VPU allocates the contiguous buffer for the -framebuffer. -Try an alternate path first where we use dma_alloc_coherent -and pass the buffer to the VPU. Should the VPU firmware not -support that path, then free the buffer and revert to the -old behaviour of using the VPU allocation. - -Signed-off-by: Dave Stevenson ---- - drivers/video/fbdev/bcm2708_fb.c | 102 ++++++++++++++++++--- - include/soc/bcm2835/raspberrypi-firmware.h | 1 + - 2 files changed, 91 insertions(+), 12 deletions(-) - ---- a/drivers/video/fbdev/bcm2708_fb.c -+++ b/drivers/video/fbdev/bcm2708_fb.c -@@ -98,6 +98,11 @@ struct bcm2708_fb { - struct bcm2708_fb_stats stats; - unsigned long fb_bus_address; - struct { u32 base, length; } gpu; -+ -+ bool disable_arm_alloc; -+ unsigned int image_size; -+ dma_addr_t dma_addr; -+ void *cpuaddr; - }; - - #define to_bcm2708(info) container_of(info, struct bcm2708_fb, fb) -@@ -283,23 +288,88 @@ static int bcm2708_fb_set_par(struct fb_ - .xoffset = info->var.xoffset, - .yoffset = info->var.yoffset, - .tag5 = { RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE, 8, 0 }, -- .base = 0, -- .screen_size = 0, -- .tag6 = { RPI_FIRMWARE_FRAMEBUFFER_GET_PITCH, 4, 0 }, -- .pitch = 0, -+ /* base and screen_size will be initialised later */ -+ .tag6 = { RPI_FIRMWARE_FRAMEBUFFER_SET_PITCH, 4, 0 }, -+ /* pitch will be initialised later */ - }; -- int ret; -+ int ret, image_size; -+ - - print_debug("%s(%p) %dx%d (%dx%d), %d, %d\n", __func__, info, - info->var.xres, info->var.yres, info->var.xres_virtual, - info->var.yres_virtual, (int)info->screen_size, - info->var.bits_per_pixel); - -- ret = rpi_firmware_property_list(fb->fw, &fbinfo, sizeof(fbinfo)); -+ /* Try allocating our own buffer. We can specify all the parameters */ -+ image_size = ((info->var.xres * info->var.yres) * -+ info->var.bits_per_pixel) >> 3; -+ -+ if (!fb->disable_arm_alloc && -+ (image_size != fb->image_size || !fb->dma_addr)) { -+ if (fb->dma_addr) { -+ dma_free_coherent(info->device, fb->image_size, -+ fb->cpuaddr, fb->dma_addr); -+ fb->image_size = 0; -+ fb->cpuaddr = NULL; -+ fb->dma_addr = 0; -+ } -+ -+ fb->cpuaddr = dma_alloc_coherent(info->device, image_size, -+ &fb->dma_addr, GFP_KERNEL); -+ -+ if (!fb->cpuaddr) { -+ fb->dma_addr = 0; -+ fb->disable_arm_alloc = true; -+ } else { -+ fb->image_size = image_size; -+ } -+ } -+ -+ if (fb->cpuaddr) { -+ fbinfo.base = fb->dma_addr; -+ fbinfo.screen_size = image_size; -+ fbinfo.pitch = (info->var.xres * info->var.bits_per_pixel) >> 3; -+ -+ ret = rpi_firmware_property_list(fb->fw, &fbinfo, -+ sizeof(fbinfo)); -+ if (ret || fbinfo.base != fb->dma_addr) { -+ /* Firmware either failed, or assigned a different base -+ * address (ie it doesn't support being passed an FB -+ * allocation). -+ * Destroy the allocation, and don't try again. -+ */ -+ dma_free_coherent(info->device, fb->image_size, -+ fb->cpuaddr, fb->dma_addr); -+ fb->image_size = 0; -+ fb->cpuaddr = NULL; -+ fb->dma_addr = 0; -+ fb->disable_arm_alloc = true; -+ } -+ } else { -+ /* Our allocation failed - drop into the old scheme of -+ * allocation by the VPU. -+ */ -+ ret = -ENOMEM; -+ } -+ - if (ret) { -- dev_err(info->device, -- "Failed to allocate GPU framebuffer (%d)\n", ret); -- return ret; -+ /* Old scheme: -+ * - FRAMEBUFFER_ALLOCATE passes 0 for base and screen_size. -+ * - GET_PITCH instead of SET_PITCH. -+ */ -+ fbinfo.base = 0; -+ fbinfo.screen_size = 0; -+ fbinfo.tag6.tag = RPI_FIRMWARE_FRAMEBUFFER_GET_PITCH; -+ fbinfo.pitch = 0; -+ -+ ret = rpi_firmware_property_list(fb->fw, &fbinfo, -+ sizeof(fbinfo)); -+ if (ret) { -+ dev_err(info->device, -+ "Failed to allocate GPU framebuffer (%d)\n", -+ ret); -+ return ret; -+ } - } - - if (info->var.bits_per_pixel <= 8) -@@ -314,9 +384,17 @@ static int bcm2708_fb_set_par(struct fb_ - fb->fb.fix.smem_start = fbinfo.base; - fb->fb.fix.smem_len = fbinfo.pitch * fbinfo.yres_virtual; - fb->fb.screen_size = fbinfo.screen_size; -- if (fb->fb.screen_base) -- iounmap(fb->fb.screen_base); -- fb->fb.screen_base = ioremap_wc(fbinfo.base, fb->fb.screen_size); -+ -+ if (!fb->dma_addr) { -+ if (fb->fb.screen_base) -+ iounmap(fb->fb.screen_base); -+ -+ fb->fb.screen_base = ioremap_wc(fbinfo.base, -+ fb->fb.screen_size); -+ } else { -+ fb->fb.screen_base = fb->cpuaddr; -+ } -+ - if (!fb->fb.screen_base) { - /* the console may currently be locked */ - console_trylock(); ---- a/include/soc/bcm2835/raspberrypi-firmware.h -+++ b/include/soc/bcm2835/raspberrypi-firmware.h -@@ -128,6 +128,7 @@ enum rpi_firmware_property_tag { - RPI_FIRMWARE_FRAMEBUFFER_SET_DEPTH = 0x00048005, - RPI_FIRMWARE_FRAMEBUFFER_SET_PIXEL_ORDER = 0x00048006, - RPI_FIRMWARE_FRAMEBUFFER_SET_ALPHA_MODE = 0x00048007, -+ RPI_FIRMWARE_FRAMEBUFFER_SET_PITCH = 0x00048008, - RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_OFFSET = 0x00048009, - RPI_FIRMWARE_FRAMEBUFFER_SET_OVERSCAN = 0x0004800a, - RPI_FIRMWARE_FRAMEBUFFER_SET_PALETTE = 0x0004800b, diff --git a/target/linux/brcm2708/patches-4.19/950-0345-bcm2835-mmc-Fix-DMA-channel-leak.patch b/target/linux/brcm2708/patches-4.19/950-0332-bcm2835-mmc-Fix-DMA-channel-leak.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0345-bcm2835-mmc-Fix-DMA-channel-leak.patch rename to target/linux/brcm2708/patches-4.19/950-0332-bcm2835-mmc-Fix-DMA-channel-leak.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0346-bcm2835-mmc-Fix-struct-mmc_host-leak-on-probe.patch b/target/linux/brcm2708/patches-4.19/950-0333-bcm2835-mmc-Fix-struct-mmc_host-leak-on-probe.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0346-bcm2835-mmc-Fix-struct-mmc_host-leak-on-probe.patch rename to target/linux/brcm2708/patches-4.19/950-0333-bcm2835-mmc-Fix-struct-mmc_host-leak-on-probe.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0347-bcm2835-mmc-Fix-duplicate-free_irq-on-remove.patch b/target/linux/brcm2708/patches-4.19/950-0334-bcm2835-mmc-Fix-duplicate-free_irq-on-remove.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0347-bcm2835-mmc-Fix-duplicate-free_irq-on-remove.patch rename to target/linux/brcm2708/patches-4.19/950-0334-bcm2835-mmc-Fix-duplicate-free_irq-on-remove.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0348-bcm2835-mmc-Handle-mmc_add_host-errors.patch b/target/linux/brcm2708/patches-4.19/950-0335-bcm2835-mmc-Handle-mmc_add_host-errors.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0348-bcm2835-mmc-Handle-mmc_add_host-errors.patch rename to target/linux/brcm2708/patches-4.19/950-0335-bcm2835-mmc-Handle-mmc_add_host-errors.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0349-bcm2835-mmc-Deduplicate-reset-of-driver-data-on-remo.patch b/target/linux/brcm2708/patches-4.19/950-0336-bcm2835-mmc-Deduplicate-reset-of-driver-data-on-remo.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0349-bcm2835-mmc-Deduplicate-reset-of-driver-data-on-remo.patch rename to target/linux/brcm2708/patches-4.19/950-0336-bcm2835-mmc-Deduplicate-reset-of-driver-data-on-remo.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0350-overlays-Add-max17040-support-to-i2c-sensor.patch b/target/linux/brcm2708/patches-4.19/950-0337-overlays-Add-max17040-support-to-i2c-sensor.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0350-overlays-Add-max17040-support-to-i2c-sensor.patch rename to target/linux/brcm2708/patches-4.19/950-0337-overlays-Add-max17040-support-to-i2c-sensor.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0351-media-bcm2835-unicam-Add-support-for-enum-framesizes.patch b/target/linux/brcm2708/patches-4.19/950-0338-media-bcm2835-unicam-Add-support-for-enum-framesizes.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0351-media-bcm2835-unicam-Add-support-for-enum-framesizes.patch rename to target/linux/brcm2708/patches-4.19/950-0338-media-bcm2835-unicam-Add-support-for-enum-framesizes.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0352-staging-bcm2835-codec-Refactor-default-resolution-co.patch b/target/linux/brcm2708/patches-4.19/950-0339-staging-bcm2835-codec-Refactor-default-resolution-co.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0352-staging-bcm2835-codec-Refactor-default-resolution-co.patch rename to target/linux/brcm2708/patches-4.19/950-0339-staging-bcm2835-codec-Refactor-default-resolution-co.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0353-nvmem-add-type-attribute.patch b/target/linux/brcm2708/patches-4.19/950-0340-nvmem-add-type-attribute.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0353-nvmem-add-type-attribute.patch rename to target/linux/brcm2708/patches-4.19/950-0340-nvmem-add-type-attribute.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0354-rtc-rv3028-add-new-driver.patch b/target/linux/brcm2708/patches-4.19/950-0341-rtc-rv3028-add-new-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0354-rtc-rv3028-add-new-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0341-rtc-rv3028-add-new-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0355-overlays-Add-rv3028-to-i2c-rtc.patch b/target/linux/brcm2708/patches-4.19/950-0342-overlays-Add-rv3028-to-i2c-rtc.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0355-overlays-Add-rv3028-to-i2c-rtc.patch rename to target/linux/brcm2708/patches-4.19/950-0342-overlays-Add-rv3028-to-i2c-rtc.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0356-ASoC-tlv320aic32x4-SND_SOC_DAPM_MICBIAS-is-deprecate.patch b/target/linux/brcm2708/patches-4.19/950-0343-ASoC-tlv320aic32x4-SND_SOC_DAPM_MICBIAS-is-deprecate.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0356-ASoC-tlv320aic32x4-SND_SOC_DAPM_MICBIAS-is-deprecate.patch rename to target/linux/brcm2708/patches-4.19/950-0343-ASoC-tlv320aic32x4-SND_SOC_DAPM_MICBIAS-is-deprecate.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0357-ASoC-tlv320aic32x4-Break-out-clock-setting-into-sepa.patch b/target/linux/brcm2708/patches-4.19/950-0344-ASoC-tlv320aic32x4-Break-out-clock-setting-into-sepa.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0357-ASoC-tlv320aic32x4-Break-out-clock-setting-into-sepa.patch rename to target/linux/brcm2708/patches-4.19/950-0344-ASoC-tlv320aic32x4-Break-out-clock-setting-into-sepa.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0358-ASoC-tlv320aic32x4-Properly-Set-Processing-Blocks.patch b/target/linux/brcm2708/patches-4.19/950-0345-ASoC-tlv320aic32x4-Properly-Set-Processing-Blocks.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0358-ASoC-tlv320aic32x4-Properly-Set-Processing-Blocks.patch rename to target/linux/brcm2708/patches-4.19/950-0345-ASoC-tlv320aic32x4-Properly-Set-Processing-Blocks.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0359-ASoC-tlv320aic32x4-Model-PLL-in-CCF.patch b/target/linux/brcm2708/patches-4.19/950-0346-ASoC-tlv320aic32x4-Model-PLL-in-CCF.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0359-ASoC-tlv320aic32x4-Model-PLL-in-CCF.patch rename to target/linux/brcm2708/patches-4.19/950-0346-ASoC-tlv320aic32x4-Model-PLL-in-CCF.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0360-ASoC-tlv320aic32x4-Model-CODEC_CLKIN-in-CCF.patch b/target/linux/brcm2708/patches-4.19/950-0347-ASoC-tlv320aic32x4-Model-CODEC_CLKIN-in-CCF.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0360-ASoC-tlv320aic32x4-Model-CODEC_CLKIN-in-CCF.patch rename to target/linux/brcm2708/patches-4.19/950-0347-ASoC-tlv320aic32x4-Model-CODEC_CLKIN-in-CCF.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0361-ASoC-tlv320aic32x4-Model-DAC-ADC-dividers-in-CCF.patch b/target/linux/brcm2708/patches-4.19/950-0348-ASoC-tlv320aic32x4-Model-DAC-ADC-dividers-in-CCF.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0361-ASoC-tlv320aic32x4-Model-DAC-ADC-dividers-in-CCF.patch rename to target/linux/brcm2708/patches-4.19/950-0348-ASoC-tlv320aic32x4-Model-DAC-ADC-dividers-in-CCF.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0362-ASoC-tlv320aic32x4-Model-BDIV-divider-in-CCF.patch b/target/linux/brcm2708/patches-4.19/950-0349-ASoC-tlv320aic32x4-Model-BDIV-divider-in-CCF.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0362-ASoC-tlv320aic32x4-Model-BDIV-divider-in-CCF.patch rename to target/linux/brcm2708/patches-4.19/950-0349-ASoC-tlv320aic32x4-Model-BDIV-divider-in-CCF.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0363-ASoC-tlv320aic32x4-Control-clock-gating-with-CCF.patch b/target/linux/brcm2708/patches-4.19/950-0350-ASoC-tlv320aic32x4-Control-clock-gating-with-CCF.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0363-ASoC-tlv320aic32x4-Control-clock-gating-with-CCF.patch rename to target/linux/brcm2708/patches-4.19/950-0350-ASoC-tlv320aic32x4-Control-clock-gating-with-CCF.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0364-ASoC-tlv320aic32x4-Move-aosr-and-dosr-setting-to-sep.patch b/target/linux/brcm2708/patches-4.19/950-0351-ASoC-tlv320aic32x4-Move-aosr-and-dosr-setting-to-sep.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0364-ASoC-tlv320aic32x4-Move-aosr-and-dosr-setting-to-sep.patch rename to target/linux/brcm2708/patches-4.19/950-0351-ASoC-tlv320aic32x4-Move-aosr-and-dosr-setting-to-sep.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0365-ASoC-tlv320aic32x4-Dynamically-Determine-Clocking.patch b/target/linux/brcm2708/patches-4.19/950-0352-ASoC-tlv320aic32x4-Dynamically-Determine-Clocking.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0365-ASoC-tlv320aic32x4-Dynamically-Determine-Clocking.patch rename to target/linux/brcm2708/patches-4.19/950-0352-ASoC-tlv320aic32x4-Dynamically-Determine-Clocking.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0366-ASoC-tlv320aic32x4-Restructure-set_dai_sysclk.patch b/target/linux/brcm2708/patches-4.19/950-0353-ASoC-tlv320aic32x4-Restructure-set_dai_sysclk.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0366-ASoC-tlv320aic32x4-Restructure-set_dai_sysclk.patch rename to target/linux/brcm2708/patches-4.19/950-0353-ASoC-tlv320aic32x4-Restructure-set_dai_sysclk.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0367-ASoC-tlv320aic32x4-Remove-mclk-references.patch b/target/linux/brcm2708/patches-4.19/950-0354-ASoC-tlv320aic32x4-Remove-mclk-references.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0367-ASoC-tlv320aic32x4-Remove-mclk-references.patch rename to target/linux/brcm2708/patches-4.19/950-0354-ASoC-tlv320aic32x4-Remove-mclk-references.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0368-ASoC-tlv320aic32x4-Allow-192000-Sample-Rate.patch b/target/linux/brcm2708/patches-4.19/950-0355-ASoC-tlv320aic32x4-Allow-192000-Sample-Rate.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0368-ASoC-tlv320aic32x4-Allow-192000-Sample-Rate.patch rename to target/linux/brcm2708/patches-4.19/950-0355-ASoC-tlv320aic32x4-Allow-192000-Sample-Rate.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0369-ASoC-tlv320aic32x4-Only-enable-with-common-clock.patch b/target/linux/brcm2708/patches-4.19/950-0356-ASoC-tlv320aic32x4-Only-enable-with-common-clock.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0369-ASoC-tlv320aic32x4-Only-enable-with-common-clock.patch rename to target/linux/brcm2708/patches-4.19/950-0356-ASoC-tlv320aic32x4-Only-enable-with-common-clock.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0370-Audiophonics-I-Sabre-9038Q2M-DAC-driver.patch b/target/linux/brcm2708/patches-4.19/950-0357-Audiophonics-I-Sabre-9038Q2M-DAC-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0370-Audiophonics-I-Sabre-9038Q2M-DAC-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0357-Audiophonics-I-Sabre-9038Q2M-DAC-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0371-ASoC-tlv320aic32x4-Change-author-s-name.patch b/target/linux/brcm2708/patches-4.19/950-0358-ASoC-tlv320aic32x4-Change-author-s-name.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0371-ASoC-tlv320aic32x4-Change-author-s-name.patch rename to target/linux/brcm2708/patches-4.19/950-0358-ASoC-tlv320aic32x4-Change-author-s-name.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0372-ASoC-tlv320aic32x4-Update-copyright-and-use-SPDX-ide.patch b/target/linux/brcm2708/patches-4.19/950-0359-ASoC-tlv320aic32x4-Update-copyright-and-use-SPDX-ide.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0372-ASoC-tlv320aic32x4-Update-copyright-and-use-SPDX-ide.patch rename to target/linux/brcm2708/patches-4.19/950-0359-ASoC-tlv320aic32x4-Update-copyright-and-use-SPDX-ide.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0373-ASoC-tlv320aic32x4-Add-Switch-for-Setting-Common-Mod.patch b/target/linux/brcm2708/patches-4.19/950-0360-ASoC-tlv320aic32x4-Add-Switch-for-Setting-Common-Mod.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0373-ASoC-tlv320aic32x4-Add-Switch-for-Setting-Common-Mod.patch rename to target/linux/brcm2708/patches-4.19/950-0360-ASoC-tlv320aic32x4-Add-Switch-for-Setting-Common-Mod.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0374-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch b/target/linux/brcm2708/patches-4.19/950-0361-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0374-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch rename to target/linux/brcm2708/patches-4.19/950-0361-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0375-dtoverlays-Add-Support-for-the-UDRC-DRAWS.patch b/target/linux/brcm2708/patches-4.19/950-0362-dtoverlays-Add-Support-for-the-UDRC-DRAWS.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0375-dtoverlays-Add-Support-for-the-UDRC-DRAWS.patch rename to target/linux/brcm2708/patches-4.19/950-0362-dtoverlays-Add-Support-for-the-UDRC-DRAWS.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0376-dwc_otg-only-do_split-when-we-actually-need-to-do-a-.patch b/target/linux/brcm2708/patches-4.19/950-0363-dwc_otg-only-do_split-when-we-actually-need-to-do-a-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0376-dwc_otg-only-do_split-when-we-actually-need-to-do-a-.patch rename to target/linux/brcm2708/patches-4.19/950-0363-dwc_otg-only-do_split-when-we-actually-need-to-do-a-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0377-Input-ili210x-fetch-touchscreen-geometry-from-DT.patch b/target/linux/brcm2708/patches-4.19/950-0364-Input-ili210x-fetch-touchscreen-geometry-from-DT.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0377-Input-ili210x-fetch-touchscreen-geometry-from-DT.patch rename to target/linux/brcm2708/patches-4.19/950-0364-Input-ili210x-fetch-touchscreen-geometry-from-DT.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0378-Input-ili210x-add-DT-binding-document.patch b/target/linux/brcm2708/patches-4.19/950-0365-Input-ili210x-add-DT-binding-document.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0378-Input-ili210x-add-DT-binding-document.patch rename to target/linux/brcm2708/patches-4.19/950-0365-Input-ili210x-add-DT-binding-document.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0379-BCM2708-Add-core-Device-Tree-support-ilitek251x.patch b/target/linux/brcm2708/patches-4.19/950-0366-BCM2708-Add-core-Device-Tree-support-ilitek251x.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0379-BCM2708-Add-core-Device-Tree-support-ilitek251x.patch rename to target/linux/brcm2708/patches-4.19/950-0366-BCM2708-Add-core-Device-Tree-support-ilitek251x.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0380-dwc_otg-fix-locking-around-dequeueing-and-killing-UR.patch b/target/linux/brcm2708/patches-4.19/950-0367-dwc_otg-fix-locking-around-dequeueing-and-killing-UR.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0380-dwc_otg-fix-locking-around-dequeueing-and-killing-UR.patch rename to target/linux/brcm2708/patches-4.19/950-0367-dwc_otg-fix-locking-around-dequeueing-and-killing-UR.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0381-rtc-rv3028-Add-backup-switchover-mode-support.patch b/target/linux/brcm2708/patches-4.19/950-0368-rtc-rv3028-Add-backup-switchover-mode-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0381-rtc-rv3028-Add-backup-switchover-mode-support.patch rename to target/linux/brcm2708/patches-4.19/950-0368-rtc-rv3028-Add-backup-switchover-mode-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0382-dt-bindings-rv3028-backup-switchover-support.patch b/target/linux/brcm2708/patches-4.19/950-0369-dt-bindings-rv3028-backup-switchover-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0382-dt-bindings-rv3028-backup-switchover-support.patch rename to target/linux/brcm2708/patches-4.19/950-0369-dt-bindings-rv3028-backup-switchover-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0383-overlays-Add-rv3028-backup-switchover-support-to-i2c.patch b/target/linux/brcm2708/patches-4.19/950-0370-overlays-Add-rv3028-backup-switchover-support-to-i2c.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0383-overlays-Add-rv3028-backup-switchover-support-to-i2c.patch rename to target/linux/brcm2708/patches-4.19/950-0370-overlays-Add-rv3028-backup-switchover-support-to-i2c.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0384-Maxim-MAX98357A-I2S-DAC-overlay-2935.patch b/target/linux/brcm2708/patches-4.19/950-0371-Maxim-MAX98357A-I2S-DAC-overlay-2935.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0384-Maxim-MAX98357A-I2S-DAC-overlay-2935.patch rename to target/linux/brcm2708/patches-4.19/950-0371-Maxim-MAX98357A-I2S-DAC-overlay-2935.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0385-sound-Fixes-for-audioinjector-octo-under-4.19.patch b/target/linux/brcm2708/patches-4.19/950-0372-sound-Fixes-for-audioinjector-octo-under-4.19.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0385-sound-Fixes-for-audioinjector-octo-under-4.19.patch rename to target/linux/brcm2708/patches-4.19/950-0372-sound-Fixes-for-audioinjector-octo-under-4.19.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0387-overlays-Add-PiGlow-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0373-overlays-Add-PiGlow-overlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0387-overlays-Add-PiGlow-overlay.patch rename to target/linux/brcm2708/patches-4.19/950-0373-overlays-Add-PiGlow-overlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0391-staging-bcm2835-audio-Clean-up-mutex-locks.patch b/target/linux/brcm2708/patches-4.19/950-0374-staging-bcm2835-audio-Clean-up-mutex-locks.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0391-staging-bcm2835-audio-Clean-up-mutex-locks.patch rename to target/linux/brcm2708/patches-4.19/950-0374-staging-bcm2835-audio-Clean-up-mutex-locks.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0392-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch b/target/linux/brcm2708/patches-4.19/950-0375-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0392-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch rename to target/linux/brcm2708/patches-4.19/950-0375-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0393-staging-bcm2835-audio-Clean-up-include-files-in-bcm2.patch b/target/linux/brcm2708/patches-4.19/950-0376-staging-bcm2835-audio-Clean-up-include-files-in-bcm2.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0393-staging-bcm2835-audio-Clean-up-include-files-in-bcm2.patch rename to target/linux/brcm2708/patches-4.19/950-0376-staging-bcm2835-audio-Clean-up-include-files-in-bcm2.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0394-staging-bcm2835-audio-Remove-redundant-substream-mas.patch b/target/linux/brcm2708/patches-4.19/950-0377-staging-bcm2835-audio-Remove-redundant-substream-mas.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0394-staging-bcm2835-audio-Remove-redundant-substream-mas.patch rename to target/linux/brcm2708/patches-4.19/950-0377-staging-bcm2835-audio-Remove-redundant-substream-mas.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0395-staging-bcm2835-audio-Fix-mute-controls-volume-handl.patch b/target/linux/brcm2708/patches-4.19/950-0378-staging-bcm2835-audio-Fix-mute-controls-volume-handl.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0395-staging-bcm2835-audio-Fix-mute-controls-volume-handl.patch rename to target/linux/brcm2708/patches-4.19/950-0378-staging-bcm2835-audio-Fix-mute-controls-volume-handl.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0396-staging-bcm2835-audio-Remove-redundant-function-call.patch b/target/linux/brcm2708/patches-4.19/950-0379-staging-bcm2835-audio-Remove-redundant-function-call.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0396-staging-bcm2835-audio-Remove-redundant-function-call.patch rename to target/linux/brcm2708/patches-4.19/950-0379-staging-bcm2835-audio-Remove-redundant-function-call.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0397-staging-bcm2835-audio-Remove-superfluous-open-flag.patch b/target/linux/brcm2708/patches-4.19/950-0380-staging-bcm2835-audio-Remove-superfluous-open-flag.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0397-staging-bcm2835-audio-Remove-superfluous-open-flag.patch rename to target/linux/brcm2708/patches-4.19/950-0380-staging-bcm2835-audio-Remove-superfluous-open-flag.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0398-staging-bcm2835-audio-Drop-useless-running-flag-and-.patch b/target/linux/brcm2708/patches-4.19/950-0381-staging-bcm2835-audio-Drop-useless-running-flag-and-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0398-staging-bcm2835-audio-Drop-useless-running-flag-and-.patch rename to target/linux/brcm2708/patches-4.19/950-0381-staging-bcm2835-audio-Drop-useless-running-flag-and-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0399-staging-bcm2835-audio-Fix-incorrect-draining-handlin.patch b/target/linux/brcm2708/patches-4.19/950-0382-staging-bcm2835-audio-Fix-incorrect-draining-handlin.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0399-staging-bcm2835-audio-Fix-incorrect-draining-handlin.patch rename to target/linux/brcm2708/patches-4.19/950-0382-staging-bcm2835-audio-Fix-incorrect-draining-handlin.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0400-staging-bcm2835-audio-Kill-unused-spinlock.patch b/target/linux/brcm2708/patches-4.19/950-0383-staging-bcm2835-audio-Kill-unused-spinlock.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0400-staging-bcm2835-audio-Kill-unused-spinlock.patch rename to target/linux/brcm2708/patches-4.19/950-0383-staging-bcm2835-audio-Kill-unused-spinlock.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0401-staging-bcm2835-audio-Use-PCM-runtime-values-instead.patch b/target/linux/brcm2708/patches-4.19/950-0384-staging-bcm2835-audio-Use-PCM-runtime-values-instead.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0401-staging-bcm2835-audio-Use-PCM-runtime-values-instead.patch rename to target/linux/brcm2708/patches-4.19/950-0384-staging-bcm2835-audio-Use-PCM-runtime-values-instead.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0402-staging-bcm2835-audio-Drop-unnecessary-pcm-indirect-.patch b/target/linux/brcm2708/patches-4.19/950-0385-staging-bcm2835-audio-Drop-unnecessary-pcm-indirect-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0402-staging-bcm2835-audio-Drop-unnecessary-pcm-indirect-.patch rename to target/linux/brcm2708/patches-4.19/950-0385-staging-bcm2835-audio-Drop-unnecessary-pcm-indirect-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0386-Revert-cgroup-Disable-cgroup-memory-by-default.patch b/target/linux/brcm2708/patches-4.19/950-0386-Revert-cgroup-Disable-cgroup-memory-by-default.patch deleted file mode 100644 index 36d3ee1ac3a..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0386-Revert-cgroup-Disable-cgroup-memory-by-default.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 49b6bb41655247c123cdc46dd49276a107c8b1d2 Mon Sep 17 00:00:00 2001 -From: P33M -Date: Wed, 24 Apr 2019 14:25:09 +0100 -Subject: [PATCH] Revert "cgroup: Disable cgroup "memory" by default" - -This reverts commit cd6ce4d0ded13c94ff5208c679ed5e030263149b. ---- - kernel/cgroup/cgroup.c | 30 ------------------------------ - 1 file changed, 30 deletions(-) - ---- a/kernel/cgroup/cgroup.c -+++ b/kernel/cgroup/cgroup.c -@@ -5334,8 +5334,6 @@ int __init cgroup_init_early(void) - } - - static u16 cgroup_disable_mask __initdata; --static u16 cgroup_enable_mask __initdata; --static int __init cgroup_disable(char *str); - - /** - * cgroup_init - cgroup initialization -@@ -5376,12 +5374,6 @@ int __init cgroup_init(void) - - mutex_unlock(&cgroup_mutex); - -- /* Apply an implicit disable... */ -- cgroup_disable("memory"); -- -- /* ...knowing that an explicit enable will override it. */ -- cgroup_disable_mask &= ~cgroup_enable_mask; -- - for_each_subsys(ss, ssid) { - if (ss->early_init) { - struct cgroup_subsys_state *css = -@@ -5773,28 +5765,6 @@ static int __init cgroup_disable(char *s - } - __setup("cgroup_disable=", cgroup_disable); - --static int __init cgroup_enable(char *str) --{ -- struct cgroup_subsys *ss; -- char *token; -- int i; -- -- while ((token = strsep(&str, ",")) != NULL) { -- if (!*token) -- continue; -- -- for_each_subsys(ss, i) { -- if (strcmp(token, ss->name) && -- strcmp(token, ss->legacy_name)) -- continue; -- -- cgroup_enable_mask |= 1 << i; -- } -- } -- return 1; --} --__setup("cgroup_enable=", cgroup_enable); -- - /** - * css_tryget_online_from_dir - get corresponding css from a cgroup dentry - * @dentry: directory dentry of interest diff --git a/target/linux/brcm2708/patches-4.19/950-0403-staging-bcm2835-audio-Drop-useless-NULL-check.patch b/target/linux/brcm2708/patches-4.19/950-0386-staging-bcm2835-audio-Drop-useless-NULL-check.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0403-staging-bcm2835-audio-Drop-useless-NULL-check.patch rename to target/linux/brcm2708/patches-4.19/950-0386-staging-bcm2835-audio-Drop-useless-NULL-check.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0404-staging-bcm2835-audio-Propagate-parameter-setup-erro.patch b/target/linux/brcm2708/patches-4.19/950-0387-staging-bcm2835-audio-Propagate-parameter-setup-erro.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0404-staging-bcm2835-audio-Propagate-parameter-setup-erro.patch rename to target/linux/brcm2708/patches-4.19/950-0387-staging-bcm2835-audio-Propagate-parameter-setup-erro.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0388-Revert-bcm2835-interpolate-audio-delay.patch b/target/linux/brcm2708/patches-4.19/950-0388-Revert-bcm2835-interpolate-audio-delay.patch deleted file mode 100644 index 9b4f6d741b0..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0388-Revert-bcm2835-interpolate-audio-delay.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 83251570f16ec848694dac016cbdb55b1d28496d Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Mon, 29 Apr 2019 19:16:14 +0100 -Subject: [PATCH] Revert "bcm2835: interpolate audio delay" - -commit fb4b9f02986fcb5ae751106ef9b027806b5dd750 upstream. - -This reverts commit fb8cc99f05687ca5565dc53a7ee0dd86aefad952. ---- - .../vc04_services/bcm2835-audio/bcm2835-pcm.c | 12 +----------- - .../staging/vc04_services/bcm2835-audio/bcm2835.h | 1 - - 2 files changed, 1 insertion(+), 12 deletions(-) - ---- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c -+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c -@@ -11,7 +11,7 @@ - /* hardware definition */ - static const struct snd_pcm_hardware snd_bcm2835_playback_hw = { - .info = (SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | -- SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_BATCH), -+ SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID), - .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE, - .rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000, - .rate_min = 8000, -@@ -81,8 +81,6 @@ void bcm2835_playback_fifo(struct bcm283 - alsa_stream->pos %= alsa_stream->buffer_size; - } - -- alsa_stream->interpolate_start = ktime_get_ns(); -- - if (alsa_stream->substream) { - if (new_period) - snd_pcm_period_elapsed(alsa_stream->substream); -@@ -308,7 +306,6 @@ static int snd_bcm2835_pcm_prepare(struc - alsa_stream->buffer_size = snd_pcm_lib_buffer_bytes(substream); - alsa_stream->period_size = snd_pcm_lib_period_bytes(substream); - alsa_stream->pos = 0; -- alsa_stream->interpolate_start = ktime_get_ns(); - - audio_debug("buffer_size=%d, period_size=%d pos=%d frame_bits=%d\n", - alsa_stream->buffer_size, alsa_stream->period_size, -@@ -400,19 +397,12 @@ snd_bcm2835_pcm_pointer(struct snd_pcm_s - { - struct snd_pcm_runtime *runtime = substream->runtime; - struct bcm2835_alsa_stream *alsa_stream = runtime->private_data; -- u64 now = ktime_get_ns(); - - audio_debug("pcm_pointer... (%d) hwptr=%d appl=%d pos=%d\n", 0, - frames_to_bytes(runtime, runtime->status->hw_ptr), - frames_to_bytes(runtime, runtime->control->appl_ptr), - alsa_stream->pos); - -- /* Give userspace better delay reporting by interpolating between GPU -- * notifications, assuming audio speed is close enough to the clock -- * used for ktime */ -- if (alsa_stream->interpolate_start && alsa_stream->interpolate_start < now) -- runtime->delay = -(int)div_u64((now - alsa_stream->interpolate_start) * runtime->rate, 1000000000); -- - return snd_pcm_indirect_playback_pointer(substream, - &alsa_stream->pcm_indirect, - alsa_stream->pos); ---- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.h -+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.h -@@ -133,7 +133,6 @@ struct bcm2835_alsa_stream { - unsigned int pos; - unsigned int buffer_size; - unsigned int period_size; -- u64 interpolate_start; - - atomic_t retrieved; - struct bcm2835_audio_instance *instance; diff --git a/target/linux/brcm2708/patches-4.19/950-0405-staging-bcm2835-audio-Drop-debug-messages-in-bcm2835.patch b/target/linux/brcm2708/patches-4.19/950-0388-staging-bcm2835-audio-Drop-debug-messages-in-bcm2835.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0405-staging-bcm2835-audio-Drop-debug-messages-in-bcm2835.patch rename to target/linux/brcm2708/patches-4.19/950-0388-staging-bcm2835-audio-Drop-debug-messages-in-bcm2835.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0389-Revert-staging-bcm2835-audio-Enable-compile-test.patch b/target/linux/brcm2708/patches-4.19/950-0389-Revert-staging-bcm2835-audio-Enable-compile-test.patch deleted file mode 100644 index 841768b7184..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0389-Revert-staging-bcm2835-audio-Enable-compile-test.patch +++ /dev/null @@ -1,22 +0,0 @@ -From e276e2d7b80259819e399eb3956ca92e5ddafbc3 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Mon, 29 Apr 2019 19:16:15 +0100 -Subject: [PATCH] Revert "staging: bcm2835-audio: Enable compile test" - -commit 4eae66777a262ac9707980ea0cfe902afadfb577 upstream. - -This reverts commit 02d205a57c4c943fc2a5b1ac7c912ce01944f700. ---- - drivers/staging/vc04_services/bcm2835-audio/Kconfig | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/staging/vc04_services/bcm2835-audio/Kconfig -+++ b/drivers/staging/vc04_services/bcm2835-audio/Kconfig -@@ -1,6 +1,6 @@ - config SND_BCM2835 - tristate "BCM2835 Audio" -- depends on (ARCH_BCM2835 || COMPILE_TEST) && SND -+ depends on ARCH_BCM2835 && SND - select SND_PCM - select BCM2835_VCHIQ - help diff --git a/target/linux/brcm2708/patches-4.19/950-0406-staging-bcm2835-audio-Drop-superfluous-mutex-lock-du.patch b/target/linux/brcm2708/patches-4.19/950-0389-staging-bcm2835-audio-Drop-superfluous-mutex-lock-du.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0406-staging-bcm2835-audio-Drop-superfluous-mutex-lock-du.patch rename to target/linux/brcm2708/patches-4.19/950-0389-staging-bcm2835-audio-Drop-superfluous-mutex-lock-du.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0390-Revert-staging-bcm2835-audio-use-module_platform_dri.patch b/target/linux/brcm2708/patches-4.19/950-0390-Revert-staging-bcm2835-audio-use-module_platform_dri.patch deleted file mode 100644 index 6a28d80b7ed..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0390-Revert-staging-bcm2835-audio-use-module_platform_dri.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 576521feaa6a03f45839c28f1ce0588e4e49b0ca Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Mon, 29 Apr 2019 19:16:16 +0100 -Subject: [PATCH] Revert "staging: bcm2835-audio: use - module_platform_driver() macro" - -commit ed4c2e5dc4216d5dded502bfcf594d3984e6bccd upstream. - -This reverts commit 786ced30fec053b27248ed5b24dcde61ed3f47f6. ---- - .../vc04_services/bcm2835-audio/bcm2835.c | 20 ++++++++++++++++++- - 1 file changed, 19 insertions(+), 1 deletion(-) - ---- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -@@ -470,7 +470,25 @@ static struct platform_driver bcm2835_al - .of_match_table = snd_bcm2835_of_match_table, - }, - }; --module_platform_driver(bcm2835_alsa0_driver); -+ -+static int bcm2835_alsa_device_init(void) -+{ -+ int retval; -+ -+ retval = platform_driver_register(&bcm2835_alsa0_driver); -+ if (retval) -+ pr_err("Error registering bcm2835_audio driver %d .\n", retval); -+ -+ return retval; -+} -+ -+static void bcm2835_alsa_device_exit(void) -+{ -+ platform_driver_unregister(&bcm2835_alsa0_driver); -+} -+ -+late_initcall(bcm2835_alsa_device_init); -+module_exit(bcm2835_alsa_device_exit); - - MODULE_AUTHOR("Dom Cobley"); - MODULE_DESCRIPTION("Alsa driver for BCM2835 chip"); diff --git a/target/linux/brcm2708/patches-4.19/950-0407-staging-bcm2835-audio-Add-10ms-period-constraint.patch b/target/linux/brcm2708/patches-4.19/950-0390-staging-bcm2835-audio-Add-10ms-period-constraint.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0407-staging-bcm2835-audio-Add-10ms-period-constraint.patch rename to target/linux/brcm2708/patches-4.19/950-0390-staging-bcm2835-audio-Add-10ms-period-constraint.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0408-staging-bcm2835-audio-Make-single-vchi-handle.patch b/target/linux/brcm2708/patches-4.19/950-0391-staging-bcm2835-audio-Make-single-vchi-handle.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0408-staging-bcm2835-audio-Make-single-vchi-handle.patch rename to target/linux/brcm2708/patches-4.19/950-0391-staging-bcm2835-audio-Make-single-vchi-handle.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0409-staging-bcm2835-audio-Code-refactoring-of-vchiq-acce.patch b/target/linux/brcm2708/patches-4.19/950-0392-staging-bcm2835-audio-Code-refactoring-of-vchiq-acce.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0409-staging-bcm2835-audio-Code-refactoring-of-vchiq-acce.patch rename to target/linux/brcm2708/patches-4.19/950-0392-staging-bcm2835-audio-Code-refactoring-of-vchiq-acce.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0410-staging-bcm2835-audio-Operate-non-atomic-PCM-ops.patch b/target/linux/brcm2708/patches-4.19/950-0393-staging-bcm2835-audio-Operate-non-atomic-PCM-ops.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0410-staging-bcm2835-audio-Operate-non-atomic-PCM-ops.patch rename to target/linux/brcm2708/patches-4.19/950-0393-staging-bcm2835-audio-Operate-non-atomic-PCM-ops.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0411-staging-bcm2835-audio-Use-card-private_data.patch b/target/linux/brcm2708/patches-4.19/950-0394-staging-bcm2835-audio-Use-card-private_data.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0411-staging-bcm2835-audio-Use-card-private_data.patch rename to target/linux/brcm2708/patches-4.19/950-0394-staging-bcm2835-audio-Use-card-private_data.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0412-staging-bcm2835-audio-Use-standard-error-print-helpe.patch b/target/linux/brcm2708/patches-4.19/950-0395-staging-bcm2835-audio-Use-standard-error-print-helpe.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0412-staging-bcm2835-audio-Use-standard-error-print-helpe.patch rename to target/linux/brcm2708/patches-4.19/950-0395-staging-bcm2835-audio-Use-standard-error-print-helpe.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0413-staging-bcm2835-audio-Remove-unnecessary-header-file.patch b/target/linux/brcm2708/patches-4.19/950-0396-staging-bcm2835-audio-Remove-unnecessary-header-file.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0413-staging-bcm2835-audio-Remove-unnecessary-header-file.patch rename to target/linux/brcm2708/patches-4.19/950-0396-staging-bcm2835-audio-Remove-unnecessary-header-file.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0414-staging-bcm2835-audio-Move-module-parameter-descript.patch b/target/linux/brcm2708/patches-4.19/950-0397-staging-bcm2835-audio-Move-module-parameter-descript.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0414-staging-bcm2835-audio-Move-module-parameter-descript.patch rename to target/linux/brcm2708/patches-4.19/950-0397-staging-bcm2835-audio-Move-module-parameter-descript.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0415-staging-bcm2835-audio-Use-coherent-device-buffers.patch b/target/linux/brcm2708/patches-4.19/950-0398-staging-bcm2835-audio-Use-coherent-device-buffers.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0415-staging-bcm2835-audio-Use-coherent-device-buffers.patch rename to target/linux/brcm2708/patches-4.19/950-0398-staging-bcm2835-audio-Use-coherent-device-buffers.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0416-staging-bcm2835-audio-Set-SNDRV_PCM_INFO_SYNC_APPLPT.patch b/target/linux/brcm2708/patches-4.19/950-0399-staging-bcm2835-audio-Set-SNDRV_PCM_INFO_SYNC_APPLPT.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0416-staging-bcm2835-audio-Set-SNDRV_PCM_INFO_SYNC_APPLPT.patch rename to target/linux/brcm2708/patches-4.19/950-0399-staging-bcm2835-audio-Set-SNDRV_PCM_INFO_SYNC_APPLPT.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0417-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch b/target/linux/brcm2708/patches-4.19/950-0400-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0417-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch rename to target/linux/brcm2708/patches-4.19/950-0400-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0418-staging-bcm2835-audio-Simplify-kctl-creation-helpers.patch b/target/linux/brcm2708/patches-4.19/950-0401-staging-bcm2835-audio-Simplify-kctl-creation-helpers.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0418-staging-bcm2835-audio-Simplify-kctl-creation-helpers.patch rename to target/linux/brcm2708/patches-4.19/950-0401-staging-bcm2835-audio-Simplify-kctl-creation-helpers.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0419-staging-bcm2835-audio-Simplify-card-object-managemen.patch b/target/linux/brcm2708/patches-4.19/950-0402-staging-bcm2835-audio-Simplify-card-object-managemen.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0419-staging-bcm2835-audio-Simplify-card-object-managemen.patch rename to target/linux/brcm2708/patches-4.19/950-0402-staging-bcm2835-audio-Simplify-card-object-managemen.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0420-staging-bcm2835-audio-unify-FOURCC-command-definitio.patch b/target/linux/brcm2708/patches-4.19/950-0403-staging-bcm2835-audio-unify-FOURCC-command-definitio.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0420-staging-bcm2835-audio-unify-FOURCC-command-definitio.patch rename to target/linux/brcm2708/patches-4.19/950-0403-staging-bcm2835-audio-unify-FOURCC-command-definitio.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0421-staging-bcm2835-audio-don-t-initialize-memory-twice.patch b/target/linux/brcm2708/patches-4.19/950-0404-staging-bcm2835-audio-don-t-initialize-memory-twice.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0421-staging-bcm2835-audio-don-t-initialize-memory-twice.patch rename to target/linux/brcm2708/patches-4.19/950-0404-staging-bcm2835-audio-don-t-initialize-memory-twice.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0422-staging-bcm2835-audio-reorder-variable-declarations-.patch b/target/linux/brcm2708/patches-4.19/950-0405-staging-bcm2835-audio-reorder-variable-declarations-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0422-staging-bcm2835-audio-reorder-variable-declarations-.patch rename to target/linux/brcm2708/patches-4.19/950-0405-staging-bcm2835-audio-reorder-variable-declarations-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0423-staging-bcm2835-audio-use-anonymous-union-in-struct-.patch b/target/linux/brcm2708/patches-4.19/950-0406-staging-bcm2835-audio-use-anonymous-union-in-struct-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0423-staging-bcm2835-audio-use-anonymous-union-in-struct-.patch rename to target/linux/brcm2708/patches-4.19/950-0406-staging-bcm2835-audio-use-anonymous-union-in-struct-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0424-staging-bcm2835-audio-more-generic-probe-function-na.patch b/target/linux/brcm2708/patches-4.19/950-0407-staging-bcm2835-audio-more-generic-probe-function-na.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0424-staging-bcm2835-audio-more-generic-probe-function-na.patch rename to target/linux/brcm2708/patches-4.19/950-0407-staging-bcm2835-audio-more-generic-probe-function-na.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0425-staging-bcm2835-audio-rename-platform_driver-structu.patch b/target/linux/brcm2708/patches-4.19/950-0408-staging-bcm2835-audio-rename-platform_driver-structu.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0425-staging-bcm2835-audio-rename-platform_driver-structu.patch rename to target/linux/brcm2708/patches-4.19/950-0408-staging-bcm2835-audio-rename-platform_driver-structu.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0426-staging-bcm2835-audio-update-TODO.patch b/target/linux/brcm2708/patches-4.19/950-0409-staging-bcm2835-audio-update-TODO.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0426-staging-bcm2835-audio-update-TODO.patch rename to target/linux/brcm2708/patches-4.19/950-0409-staging-bcm2835-audio-update-TODO.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0427-staging-bcm2835-audio-interpolate-audio-delay.patch b/target/linux/brcm2708/patches-4.19/950-0410-staging-bcm2835-audio-interpolate-audio-delay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0427-staging-bcm2835-audio-interpolate-audio-delay.patch rename to target/linux/brcm2708/patches-4.19/950-0410-staging-bcm2835-audio-interpolate-audio-delay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0428-staging-bcm2835-audio-Enable-compile-test.patch b/target/linux/brcm2708/patches-4.19/950-0411-staging-bcm2835-audio-Enable-compile-test.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0428-staging-bcm2835-audio-Enable-compile-test.patch rename to target/linux/brcm2708/patches-4.19/950-0411-staging-bcm2835-audio-Enable-compile-test.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0429-staging-bcm2835-audio-use-module_platform_driver-mac.patch b/target/linux/brcm2708/patches-4.19/950-0412-staging-bcm2835-audio-use-module_platform_driver-mac.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0429-staging-bcm2835-audio-use-module_platform_driver-mac.patch rename to target/linux/brcm2708/patches-4.19/950-0412-staging-bcm2835-audio-use-module_platform_driver-mac.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0431-staging-bcm2835-audio-double-free-in-init-error-path.patch b/target/linux/brcm2708/patches-4.19/950-0413-staging-bcm2835-audio-double-free-in-init-error-path.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0431-staging-bcm2835-audio-double-free-in-init-error-path.patch rename to target/linux/brcm2708/patches-4.19/950-0413-staging-bcm2835-audio-double-free-in-init-error-path.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0432-dts-Increase-default-coherent-pool-size.patch b/target/linux/brcm2708/patches-4.19/950-0414-dts-Increase-default-coherent-pool-size.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0432-dts-Increase-default-coherent-pool-size.patch rename to target/linux/brcm2708/patches-4.19/950-0414-dts-Increase-default-coherent-pool-size.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0435-lan78xx-use-default-alignment-for-rx-buffers.patch b/target/linux/brcm2708/patches-4.19/950-0415-lan78xx-use-default-alignment-for-rx-buffers.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0435-lan78xx-use-default-alignment-for-rx-buffers.patch rename to target/linux/brcm2708/patches-4.19/950-0415-lan78xx-use-default-alignment-for-rx-buffers.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0436-staging-bcm2835-codec-Correct-port-width-calc-for-tr.patch b/target/linux/brcm2708/patches-4.19/950-0416-staging-bcm2835-codec-Correct-port-width-calc-for-tr.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0436-staging-bcm2835-codec-Correct-port-width-calc-for-tr.patch rename to target/linux/brcm2708/patches-4.19/950-0416-staging-bcm2835-codec-Correct-port-width-calc-for-tr.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0437-staging-bcm2835-codec-Remove-height-padding-for-ISP-.patch b/target/linux/brcm2708/patches-4.19/950-0417-staging-bcm2835-codec-Remove-height-padding-for-ISP-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0437-staging-bcm2835-codec-Remove-height-padding-for-ISP-.patch rename to target/linux/brcm2708/patches-4.19/950-0417-staging-bcm2835-codec-Remove-height-padding-for-ISP-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0438-staging-mmal-vchiq-Free-the-event-context-for-contro.patch b/target/linux/brcm2708/patches-4.19/950-0418-staging-mmal-vchiq-Free-the-event-context-for-contro.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0438-staging-mmal-vchiq-Free-the-event-context-for-contro.patch rename to target/linux/brcm2708/patches-4.19/950-0418-staging-mmal-vchiq-Free-the-event-context-for-contro.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0439-BCM270X_DT-Also-set-coherent_pool-1M-for-BT-Pis.patch b/target/linux/brcm2708/patches-4.19/950-0419-BCM270X_DT-Also-set-coherent_pool-1M-for-BT-Pis.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0439-BCM270X_DT-Also-set-coherent_pool-1M-for-BT-Pis.patch rename to target/linux/brcm2708/patches-4.19/950-0419-BCM270X_DT-Also-set-coherent_pool-1M-for-BT-Pis.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0440-arm-dts-overlays-rpi-sense-add-upstream-humidity-com.patch b/target/linux/brcm2708/patches-4.19/950-0420-arm-dts-overlays-rpi-sense-add-upstream-humidity-com.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0440-arm-dts-overlays-rpi-sense-add-upstream-humidity-com.patch rename to target/linux/brcm2708/patches-4.19/950-0420-arm-dts-overlays-rpi-sense-add-upstream-humidity-com.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0441-staging-mmal-vchiq-Fix-memory-leak-in-error-path.patch b/target/linux/brcm2708/patches-4.19/950-0421-staging-mmal-vchiq-Fix-memory-leak-in-error-path.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0441-staging-mmal-vchiq-Fix-memory-leak-in-error-path.patch rename to target/linux/brcm2708/patches-4.19/950-0421-staging-mmal-vchiq-Fix-memory-leak-in-error-path.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0442-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch b/target/linux/brcm2708/patches-4.19/950-0422-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0442-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch rename to target/linux/brcm2708/patches-4.19/950-0422-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0444-Added-IQaudIO-Pi-Codec-board-support-2969.patch b/target/linux/brcm2708/patches-4.19/950-0423-Added-IQaudIO-Pi-Codec-board-support-2969.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0444-Added-IQaudIO-Pi-Codec-board-support-2969.patch rename to target/linux/brcm2708/patches-4.19/950-0423-Added-IQaudIO-Pi-Codec-board-support-2969.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0446-w1-ds2408-reset-on-output_write-retry-with-readback.patch b/target/linux/brcm2708/patches-4.19/950-0424-w1-ds2408-reset-on-output_write-retry-with-readback.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0446-w1-ds2408-reset-on-output_write-retry-with-readback.patch rename to target/linux/brcm2708/patches-4.19/950-0424-w1-ds2408-reset-on-output_write-retry-with-readback.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0447-w1-ds2482-cosmetic-fixes-after-54865314f5a1.patch b/target/linux/brcm2708/patches-4.19/950-0425-w1-ds2482-cosmetic-fixes-after-54865314f5a1.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0447-w1-ds2482-cosmetic-fixes-after-54865314f5a1.patch rename to target/linux/brcm2708/patches-4.19/950-0425-w1-ds2482-cosmetic-fixes-after-54865314f5a1.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0448-sound-pcm512x-codec-Adding-352.8kHz-samplerate-suppo.patch b/target/linux/brcm2708/patches-4.19/950-0426-sound-pcm512x-codec-Adding-352.8kHz-samplerate-suppo.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0448-sound-pcm512x-codec-Adding-352.8kHz-samplerate-suppo.patch rename to target/linux/brcm2708/patches-4.19/950-0426-sound-pcm512x-codec-Adding-352.8kHz-samplerate-suppo.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0449-ASoC-decommissioning-driver-for-3Dlab-Nano-soundcard.patch b/target/linux/brcm2708/patches-4.19/950-0427-ASoC-decommissioning-driver-for-3Dlab-Nano-soundcard.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0449-ASoC-decommissioning-driver-for-3Dlab-Nano-soundcard.patch rename to target/linux/brcm2708/patches-4.19/950-0427-ASoC-decommissioning-driver-for-3Dlab-Nano-soundcard.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0450-.gitignore-Add-.dtbo-explicitly.patch b/target/linux/brcm2708/patches-4.19/950-0428-.gitignore-Add-.dtbo-explicitly.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0450-.gitignore-Add-.dtbo-explicitly.patch rename to target/linux/brcm2708/patches-4.19/950-0428-.gitignore-Add-.dtbo-explicitly.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0451-Bluetooth-Check-key-sizes-only-when-Secure-Simple-Pa.patch b/target/linux/brcm2708/patches-4.19/950-0429-Bluetooth-Check-key-sizes-only-when-Secure-Simple-Pa.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0451-Bluetooth-Check-key-sizes-only-when-Secure-Simple-Pa.patch rename to target/linux/brcm2708/patches-4.19/950-0429-Bluetooth-Check-key-sizes-only-when-Secure-Simple-Pa.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0430-staging-bcm2835-audio-Drop-DT-dependency.patch b/target/linux/brcm2708/patches-4.19/950-0430-staging-bcm2835-audio-Drop-DT-dependency.patch deleted file mode 100644 index f9369565bdc..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0430-staging-bcm2835-audio-Drop-DT-dependency.patch +++ /dev/null @@ -1,105 +0,0 @@ -From 1ddeeda8208bc269c90aad4bd8bb878f7436f62d Mon Sep 17 00:00:00 2001 -From: Stefan Wahren -Date: Thu, 6 Dec 2018 19:28:58 +0100 -Subject: [PATCH] staging: bcm2835-audio: Drop DT dependency - -commit 438fc48260a0afc4cee733e5bc20234ff2bbef56 upstream. - -Just like the bcm2835-video make this a platform driver which is probed -by vchiq. In order to change the number of channels use a module -parameter instead, but use the maximum as default. - -Signed-off-by: Stefan Wahren -Reviewed-by: Nicolas Saenz Julienne -Reviewed-by: Dan Carpenter -Signed-off-by: Greg Kroah-Hartman ---- - .../vc04_services/bcm2835-audio/bcm2835.c | 31 ++++++------------- - 1 file changed, 9 insertions(+), 22 deletions(-) - ---- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -@@ -6,13 +6,13 @@ - #include - #include - #include --#include - - #include "bcm2835.h" - - static bool enable_hdmi; - static bool enable_headphones; - static bool enable_compat_alsa = true; -+static int num_channels = MAX_SUBSTREAMS; - - module_param(enable_hdmi, bool, 0444); - MODULE_PARM_DESC(enable_hdmi, "Enables HDMI virtual audio device"); -@@ -21,6 +21,8 @@ MODULE_PARM_DESC(enable_headphones, "Ena - module_param(enable_compat_alsa, bool, 0444); - MODULE_PARM_DESC(enable_compat_alsa, - "Enables ALSA compatibility virtual audio device"); -+module_param(num_channels, int, 0644); -+MODULE_PARM_DESC(num_channels, "Number of audio channels (default: 8)"); - - static void bcm2835_devm_free_vchi_ctx(struct device *dev, void *res) - { -@@ -294,28 +296,19 @@ static int snd_add_child_devices(struct - static int snd_bcm2835_alsa_probe(struct platform_device *pdev) - { - struct device *dev = &pdev->dev; -- u32 numchans; - int err; - -- err = of_property_read_u32(dev->of_node, "brcm,pwm-channels", -- &numchans); -- if (err) { -- dev_err(dev, "Failed to get DT property 'brcm,pwm-channels'"); -- return err; -- } -- -- if (numchans == 0 || numchans > MAX_SUBSTREAMS) { -- numchans = MAX_SUBSTREAMS; -- dev_warn(dev, -- "Illegal 'brcm,pwm-channels' value, will use %u\n", -- numchans); -+ if (num_channels <= 0 || num_channels > MAX_SUBSTREAMS) { -+ num_channels = MAX_SUBSTREAMS; -+ dev_warn(dev, "Illegal num_channels value, will use %u\n", -+ num_channels); - } - - err = bcm2835_devm_add_vchi_ctx(dev); - if (err) - return err; - -- err = snd_add_child_devices(dev, numchans); -+ err = snd_add_child_devices(dev, num_channels); - if (err) - return err; - -@@ -337,12 +330,6 @@ static int snd_bcm2835_alsa_resume(struc - - #endif - --static const struct of_device_id snd_bcm2835_of_match_table[] = { -- { .compatible = "brcm,bcm2835-audio",}, -- {}, --}; --MODULE_DEVICE_TABLE(of, snd_bcm2835_of_match_table); -- - static struct platform_driver bcm2835_alsa_driver = { - .probe = snd_bcm2835_alsa_probe, - #ifdef CONFIG_PM -@@ -351,7 +338,6 @@ static struct platform_driver bcm2835_al - #endif - .driver = { - .name = "bcm2835_audio", -- .of_match_table = snd_bcm2835_of_match_table, - }, - }; - module_platform_driver(bcm2835_alsa_driver); -@@ -359,3 +345,4 @@ module_platform_driver(bcm2835_alsa_driv - MODULE_AUTHOR("Dom Cobley"); - MODULE_DESCRIPTION("Alsa driver for BCM2835 chip"); - MODULE_LICENSE("GPL"); -+MODULE_ALIAS("platform:bcm2835_audio"); diff --git a/target/linux/brcm2708/patches-4.19/950-0452-usb-dwc_otg-Clean-up-interrupt-claiming-code.patch b/target/linux/brcm2708/patches-4.19/950-0430-usb-dwc_otg-Clean-up-interrupt-claiming-code.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0452-usb-dwc_otg-Clean-up-interrupt-claiming-code.patch rename to target/linux/brcm2708/patches-4.19/950-0430-usb-dwc_otg-Clean-up-interrupt-claiming-code.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0453-overlays-Delete-the-deprecated-sdio-1bit-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0431-overlays-Delete-the-deprecated-sdio-1bit-overlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0453-overlays-Delete-the-deprecated-sdio-1bit-overlay.patch rename to target/linux/brcm2708/patches-4.19/950-0431-overlays-Delete-the-deprecated-sdio-1bit-overlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0454-overlays-Remove-upstream-aux-interrupt-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0432-overlays-Remove-upstream-aux-interrupt-overlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0454-overlays-Remove-upstream-aux-interrupt-overlay.patch rename to target/linux/brcm2708/patches-4.19/950-0432-overlays-Remove-upstream-aux-interrupt-overlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0433-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch b/target/linux/brcm2708/patches-4.19/950-0433-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch deleted file mode 100644 index c831dc8139e..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0433-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 369f591ee78af2d53c67f561daeb963cc4aa60aa Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Wed, 1 May 2019 14:23:39 +0100 -Subject: [PATCH] Revert "staging: bcm2835-audio: Drop DT dependency" - -This reverts commit 60a2e557a4f81480216066f22b84c3dda31b3470. ---- - .../vc04_services/bcm2835-audio/bcm2835.c | 31 +++++++++++++------ - 1 file changed, 22 insertions(+), 9 deletions(-) - ---- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c -@@ -6,13 +6,13 @@ - #include - #include - #include -+#include - - #include "bcm2835.h" - - static bool enable_hdmi; - static bool enable_headphones; - static bool enable_compat_alsa = true; --static int num_channels = MAX_SUBSTREAMS; - - module_param(enable_hdmi, bool, 0444); - MODULE_PARM_DESC(enable_hdmi, "Enables HDMI virtual audio device"); -@@ -21,8 +21,6 @@ MODULE_PARM_DESC(enable_headphones, "Ena - module_param(enable_compat_alsa, bool, 0444); - MODULE_PARM_DESC(enable_compat_alsa, - "Enables ALSA compatibility virtual audio device"); --module_param(num_channels, int, 0644); --MODULE_PARM_DESC(num_channels, "Number of audio channels (default: 8)"); - - static void bcm2835_devm_free_vchi_ctx(struct device *dev, void *res) - { -@@ -296,19 +294,28 @@ static int snd_add_child_devices(struct - static int snd_bcm2835_alsa_probe(struct platform_device *pdev) - { - struct device *dev = &pdev->dev; -+ u32 numchans; - int err; - -- if (num_channels <= 0 || num_channels > MAX_SUBSTREAMS) { -- num_channels = MAX_SUBSTREAMS; -- dev_warn(dev, "Illegal num_channels value, will use %u\n", -- num_channels); -+ err = of_property_read_u32(dev->of_node, "brcm,pwm-channels", -+ &numchans); -+ if (err) { -+ dev_err(dev, "Failed to get DT property 'brcm,pwm-channels'"); -+ return err; -+ } -+ -+ if (numchans == 0 || numchans > MAX_SUBSTREAMS) { -+ numchans = MAX_SUBSTREAMS; -+ dev_warn(dev, -+ "Illegal 'brcm,pwm-channels' value, will use %u\n", -+ numchans); - } - - err = bcm2835_devm_add_vchi_ctx(dev); - if (err) - return err; - -- err = snd_add_child_devices(dev, num_channels); -+ err = snd_add_child_devices(dev, numchans); - if (err) - return err; - -@@ -330,6 +337,12 @@ static int snd_bcm2835_alsa_resume(struc - - #endif - -+static const struct of_device_id snd_bcm2835_of_match_table[] = { -+ { .compatible = "brcm,bcm2835-audio",}, -+ {}, -+}; -+MODULE_DEVICE_TABLE(of, snd_bcm2835_of_match_table); -+ - static struct platform_driver bcm2835_alsa_driver = { - .probe = snd_bcm2835_alsa_probe, - #ifdef CONFIG_PM -@@ -338,6 +351,7 @@ static struct platform_driver bcm2835_al - #endif - .driver = { - .name = "bcm2835_audio", -+ .of_match_table = snd_bcm2835_of_match_table, - }, - }; - module_platform_driver(bcm2835_alsa_driver); -@@ -345,4 +359,3 @@ module_platform_driver(bcm2835_alsa_driv - MODULE_AUTHOR("Dom Cobley"); - MODULE_DESCRIPTION("Alsa driver for BCM2835 chip"); - MODULE_LICENSE("GPL"); --MODULE_ALIAS("platform:bcm2835_audio"); diff --git a/target/linux/brcm2708/patches-4.19/950-0455-overlays-Standardise-on-compatible-brcm-bcm2835.patch b/target/linux/brcm2708/patches-4.19/950-0433-overlays-Standardise-on-compatible-brcm-bcm2835.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0455-overlays-Standardise-on-compatible-brcm-bcm2835.patch rename to target/linux/brcm2708/patches-4.19/950-0433-overlays-Standardise-on-compatible-brcm-bcm2835.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0434-smsc95xx-dynamically-fix-up-TX-buffer-alignment-with.patch b/target/linux/brcm2708/patches-4.19/950-0434-smsc95xx-dynamically-fix-up-TX-buffer-alignment-with.patch deleted file mode 100644 index 6891ec28a0e..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0434-smsc95xx-dynamically-fix-up-TX-buffer-alignment-with.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 26c79197da4b2911e10c600d79839a82a43a06ff Mon Sep 17 00:00:00 2001 -From: P33M -Date: Wed, 1 May 2019 17:04:32 +0100 -Subject: [PATCH] smsc95xx: dynamically fix up TX buffer alignment with - padding bytes - -dwc_otg requires a 32-bit aligned buffer start address, otherwise -expensive bounce buffers are used. The LAN951x hardware can skip up to -3 bytes between the TX header and the start of frame data, which can -be used to force alignment of the URB passed to dwc_otg. - -As found in https://github.com/raspberrypi/linux/issues/2924 ---- - drivers/net/usb/smsc95xx.c | 12 +++++++----- - drivers/net/usb/smsc95xx.h | 2 +- - 2 files changed, 8 insertions(+), 6 deletions(-) - ---- a/drivers/net/usb/smsc95xx.c -+++ b/drivers/net/usb/smsc95xx.c -@@ -2082,7 +2082,9 @@ static struct sk_buff *smsc95xx_tx_fixup - struct sk_buff *skb, gfp_t flags) - { - bool csum = skb->ip_summed == CHECKSUM_PARTIAL; -- int overhead = csum ? SMSC95XX_TX_OVERHEAD_CSUM : SMSC95XX_TX_OVERHEAD; -+ unsigned int align_bytes = -((uintptr_t)skb->data) & 0x3; -+ int overhead = csum ? SMSC95XX_TX_OVERHEAD_CSUM + align_bytes -+ : SMSC95XX_TX_OVERHEAD + align_bytes; - u32 tx_cmd_a, tx_cmd_b; - - /* We do not advertise SG, so skbs should be already linearized */ -@@ -2116,16 +2118,16 @@ static struct sk_buff *smsc95xx_tx_fixup - } - } - -- skb_push(skb, 4); -- tx_cmd_b = (u32)(skb->len - 4); -+ skb_push(skb, 4 + align_bytes); -+ tx_cmd_b = (u32)(skb->len - 4 - align_bytes); - if (csum) - tx_cmd_b |= TX_CMD_B_CSUM_ENABLE; - cpu_to_le32s(&tx_cmd_b); - memcpy(skb->data, &tx_cmd_b, 4); - - skb_push(skb, 4); -- tx_cmd_a = (u32)(skb->len - 8) | TX_CMD_A_FIRST_SEG_ | -- TX_CMD_A_LAST_SEG_; -+ tx_cmd_a = (u32)(skb->len - 8 - align_bytes) | TX_CMD_A_FIRST_SEG_ | -+ (align_bytes << 16) | TX_CMD_A_LAST_SEG_; - cpu_to_le32s(&tx_cmd_a); - memcpy(skb->data, &tx_cmd_a, 4); - ---- a/drivers/net/usb/smsc95xx.h -+++ b/drivers/net/usb/smsc95xx.h -@@ -21,7 +21,7 @@ - #define _SMSC95XX_H - - /* Tx command words */ --#define TX_CMD_A_DATA_OFFSET_ (0x001F0000) /* Data Start Offset */ -+#define TX_CMD_A_DATA_OFFSET_ (0x00030000) /* Data Start Offset */ - #define TX_CMD_A_FIRST_SEG_ (0x00002000) /* First Segment */ - #define TX_CMD_A_LAST_SEG_ (0x00001000) /* Last Segment */ - #define TX_CMD_A_BUF_SIZE_ (0x000007FF) /* Buffer Size */ diff --git a/target/linux/brcm2708/patches-4.19/950-0456-vc4-Remove-interrupt-and-DMA-trampling.patch b/target/linux/brcm2708/patches-4.19/950-0434-vc4-Remove-interrupt-and-DMA-trampling.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0456-vc4-Remove-interrupt-and-DMA-trampling.patch rename to target/linux/brcm2708/patches-4.19/950-0434-vc4-Remove-interrupt-and-DMA-trampling.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0457-BCM270X_DT-Add-non-removable-clone-of-mmc-node.patch b/target/linux/brcm2708/patches-4.19/950-0435-BCM270X_DT-Add-non-removable-clone-of-mmc-node.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0457-BCM270X_DT-Add-non-removable-clone-of-mmc-node.patch rename to target/linux/brcm2708/patches-4.19/950-0435-BCM270X_DT-Add-non-removable-clone-of-mmc-node.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0458-BCM270X_DT-usb-Refactor-DTS-and-overlays.patch b/target/linux/brcm2708/patches-4.19/950-0436-BCM270X_DT-usb-Refactor-DTS-and-overlays.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0458-BCM270X_DT-usb-Refactor-DTS-and-overlays.patch rename to target/linux/brcm2708/patches-4.19/950-0436-BCM270X_DT-usb-Refactor-DTS-and-overlays.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0459-overlays-Update-upstream-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0437-overlays-Update-upstream-overlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0459-overlays-Update-upstream-overlay.patch rename to target/linux/brcm2708/patches-4.19/950-0437-overlays-Update-upstream-overlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0460-w1-ds2408-Fix-typo-after-49695ac46861-reset-on-outpu.patch b/target/linux/brcm2708/patches-4.19/950-0438-w1-ds2408-Fix-typo-after-49695ac46861-reset-on-outpu.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0460-w1-ds2408-Fix-typo-after-49695ac46861-reset-on-outpu.patch rename to target/linux/brcm2708/patches-4.19/950-0438-w1-ds2408-Fix-typo-after-49695ac46861-reset-on-outpu.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0461-BCM270X_DT-Rename-Pi-Zero-W-DT-files.patch b/target/linux/brcm2708/patches-4.19/950-0439-BCM270X_DT-Rename-Pi-Zero-W-DT-files.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0461-BCM270X_DT-Rename-Pi-Zero-W-DT-files.patch rename to target/linux/brcm2708/patches-4.19/950-0439-BCM270X_DT-Rename-Pi-Zero-W-DT-files.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0462-BCM270X_DT-Create-bcm2708-rpi-zero.dts.patch b/target/linux/brcm2708/patches-4.19/950-0440-BCM270X_DT-Create-bcm2708-rpi-zero.dts.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0462-BCM270X_DT-Create-bcm2708-rpi-zero.dts.patch rename to target/linux/brcm2708/patches-4.19/950-0440-BCM270X_DT-Create-bcm2708-rpi-zero.dts.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0463-overlays-Fix-mmc-related-overlays-after-refactor.patch b/target/linux/brcm2708/patches-4.19/950-0441-overlays-Fix-mmc-related-overlays-after-refactor.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0463-overlays-Fix-mmc-related-overlays-after-refactor.patch rename to target/linux/brcm2708/patches-4.19/950-0441-overlays-Fix-mmc-related-overlays-after-refactor.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0464-Fixed-48k-timing-issue.patch b/target/linux/brcm2708/patches-4.19/950-0442-Fixed-48k-timing-issue.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0464-Fixed-48k-timing-issue.patch rename to target/linux/brcm2708/patches-4.19/950-0442-Fixed-48k-timing-issue.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0443-Revert-video-bcm2708_fb-Try-allocating-on-the-ARM-an.patch b/target/linux/brcm2708/patches-4.19/950-0443-Revert-video-bcm2708_fb-Try-allocating-on-the-ARM-an.patch deleted file mode 100644 index 2ad3299595b..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0443-Revert-video-bcm2708_fb-Try-allocating-on-the-ARM-an.patch +++ /dev/null @@ -1,164 +0,0 @@ -From 71a27bf49d7a64959b7e60d780a1f899ead34f5f Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Mon, 13 May 2019 17:34:29 +0100 -Subject: [PATCH] Revert "video: bcm2708_fb: Try allocating on the ARM - and passing to VPU" - -This reverts commit ca36c709fce57e8023d2b8b354376bf161601a49. - -The driver tries a cma_alloc to avoid using gpu_mem, but should -that fail the core code is logging an error with no easy way to -test whether it will succeed or fail first. - -Revert until we either totally give up on gpu_mem and increase -CMA always, or find a way to try an allocation. - -Signed-off-by: Dave Stevenson ---- - drivers/video/fbdev/bcm2708_fb.c | 102 +++------------------ - include/soc/bcm2835/raspberrypi-firmware.h | 1 - - 2 files changed, 12 insertions(+), 91 deletions(-) - ---- a/drivers/video/fbdev/bcm2708_fb.c -+++ b/drivers/video/fbdev/bcm2708_fb.c -@@ -98,11 +98,6 @@ struct bcm2708_fb { - struct bcm2708_fb_stats stats; - unsigned long fb_bus_address; - struct { u32 base, length; } gpu; -- -- bool disable_arm_alloc; -- unsigned int image_size; -- dma_addr_t dma_addr; -- void *cpuaddr; - }; - - #define to_bcm2708(info) container_of(info, struct bcm2708_fb, fb) -@@ -288,88 +283,23 @@ static int bcm2708_fb_set_par(struct fb_ - .xoffset = info->var.xoffset, - .yoffset = info->var.yoffset, - .tag5 = { RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE, 8, 0 }, -- /* base and screen_size will be initialised later */ -- .tag6 = { RPI_FIRMWARE_FRAMEBUFFER_SET_PITCH, 4, 0 }, -- /* pitch will be initialised later */ -+ .base = 0, -+ .screen_size = 0, -+ .tag6 = { RPI_FIRMWARE_FRAMEBUFFER_GET_PITCH, 4, 0 }, -+ .pitch = 0, - }; -- int ret, image_size; -- -+ int ret; - - print_debug("%s(%p) %dx%d (%dx%d), %d, %d\n", __func__, info, - info->var.xres, info->var.yres, info->var.xres_virtual, - info->var.yres_virtual, (int)info->screen_size, - info->var.bits_per_pixel); - -- /* Try allocating our own buffer. We can specify all the parameters */ -- image_size = ((info->var.xres * info->var.yres) * -- info->var.bits_per_pixel) >> 3; -- -- if (!fb->disable_arm_alloc && -- (image_size != fb->image_size || !fb->dma_addr)) { -- if (fb->dma_addr) { -- dma_free_coherent(info->device, fb->image_size, -- fb->cpuaddr, fb->dma_addr); -- fb->image_size = 0; -- fb->cpuaddr = NULL; -- fb->dma_addr = 0; -- } -- -- fb->cpuaddr = dma_alloc_coherent(info->device, image_size, -- &fb->dma_addr, GFP_KERNEL); -- -- if (!fb->cpuaddr) { -- fb->dma_addr = 0; -- fb->disable_arm_alloc = true; -- } else { -- fb->image_size = image_size; -- } -- } -- -- if (fb->cpuaddr) { -- fbinfo.base = fb->dma_addr; -- fbinfo.screen_size = image_size; -- fbinfo.pitch = (info->var.xres * info->var.bits_per_pixel) >> 3; -- -- ret = rpi_firmware_property_list(fb->fw, &fbinfo, -- sizeof(fbinfo)); -- if (ret || fbinfo.base != fb->dma_addr) { -- /* Firmware either failed, or assigned a different base -- * address (ie it doesn't support being passed an FB -- * allocation). -- * Destroy the allocation, and don't try again. -- */ -- dma_free_coherent(info->device, fb->image_size, -- fb->cpuaddr, fb->dma_addr); -- fb->image_size = 0; -- fb->cpuaddr = NULL; -- fb->dma_addr = 0; -- fb->disable_arm_alloc = true; -- } -- } else { -- /* Our allocation failed - drop into the old scheme of -- * allocation by the VPU. -- */ -- ret = -ENOMEM; -- } -- -+ ret = rpi_firmware_property_list(fb->fw, &fbinfo, sizeof(fbinfo)); - if (ret) { -- /* Old scheme: -- * - FRAMEBUFFER_ALLOCATE passes 0 for base and screen_size. -- * - GET_PITCH instead of SET_PITCH. -- */ -- fbinfo.base = 0; -- fbinfo.screen_size = 0; -- fbinfo.tag6.tag = RPI_FIRMWARE_FRAMEBUFFER_GET_PITCH; -- fbinfo.pitch = 0; -- -- ret = rpi_firmware_property_list(fb->fw, &fbinfo, -- sizeof(fbinfo)); -- if (ret) { -- dev_err(info->device, -- "Failed to allocate GPU framebuffer (%d)\n", -- ret); -- return ret; -- } -+ dev_err(info->device, -+ "Failed to allocate GPU framebuffer (%d)\n", ret); -+ return ret; - } - - if (info->var.bits_per_pixel <= 8) -@@ -384,17 +314,9 @@ static int bcm2708_fb_set_par(struct fb_ - fb->fb.fix.smem_start = fbinfo.base; - fb->fb.fix.smem_len = fbinfo.pitch * fbinfo.yres_virtual; - fb->fb.screen_size = fbinfo.screen_size; -- -- if (!fb->dma_addr) { -- if (fb->fb.screen_base) -- iounmap(fb->fb.screen_base); -- -- fb->fb.screen_base = ioremap_wc(fbinfo.base, -- fb->fb.screen_size); -- } else { -- fb->fb.screen_base = fb->cpuaddr; -- } -- -+ if (fb->fb.screen_base) -+ iounmap(fb->fb.screen_base); -+ fb->fb.screen_base = ioremap_wc(fbinfo.base, fb->fb.screen_size); - if (!fb->fb.screen_base) { - /* the console may currently be locked */ - console_trylock(); ---- a/include/soc/bcm2835/raspberrypi-firmware.h -+++ b/include/soc/bcm2835/raspberrypi-firmware.h -@@ -128,7 +128,6 @@ enum rpi_firmware_property_tag { - RPI_FIRMWARE_FRAMEBUFFER_SET_DEPTH = 0x00048005, - RPI_FIRMWARE_FRAMEBUFFER_SET_PIXEL_ORDER = 0x00048006, - RPI_FIRMWARE_FRAMEBUFFER_SET_ALPHA_MODE = 0x00048007, -- RPI_FIRMWARE_FRAMEBUFFER_SET_PITCH = 0x00048008, - RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_OFFSET = 0x00048009, - RPI_FIRMWARE_FRAMEBUFFER_SET_OVERSCAN = 0x0004800a, - RPI_FIRMWARE_FRAMEBUFFER_SET_PALETTE = 0x0004800b, diff --git a/target/linux/brcm2708/patches-4.19/950-0465-staging-bcm2835-codec-Convert-V4L2-nsec-timestamps-t.patch b/target/linux/brcm2708/patches-4.19/950-0443-staging-bcm2835-codec-Convert-V4L2-nsec-timestamps-t.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0465-staging-bcm2835-codec-Convert-V4L2-nsec-timestamps-t.patch rename to target/linux/brcm2708/patches-4.19/950-0443-staging-bcm2835-codec-Convert-V4L2-nsec-timestamps-t.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0466-staging-bcm2835-codec-Add-support-for-setting-S_PARM.patch b/target/linux/brcm2708/patches-4.19/950-0444-staging-bcm2835-codec-Add-support-for-setting-S_PARM.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0466-staging-bcm2835-codec-Add-support-for-setting-S_PARM.patch rename to target/linux/brcm2708/patches-4.19/950-0444-staging-bcm2835-codec-Add-support-for-setting-S_PARM.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0445-Revert-smsc95xx-dynamically-fix-up-TX-buffer-alignme.patch b/target/linux/brcm2708/patches-4.19/950-0445-Revert-smsc95xx-dynamically-fix-up-TX-buffer-alignme.patch deleted file mode 100644 index 8da9deaa6eb..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0445-Revert-smsc95xx-dynamically-fix-up-TX-buffer-alignme.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 89bb75e008adf061e3e396de76020b00ea0d6123 Mon Sep 17 00:00:00 2001 -From: P33M -Date: Tue, 14 May 2019 14:55:19 +0100 -Subject: [PATCH] Revert "smsc95xx: dynamically fix up TX buffer - alignment with padding bytes" - -As reported in https://github.com/raspberrypi/linux/issues/2964 this -commit causes a regression corrupting non-option TCP ack packets. - -This reverts commit 96b972dc736d943f371a16ccca452a053d83c65b. ---- - drivers/net/usb/smsc95xx.c | 12 +++++------- - drivers/net/usb/smsc95xx.h | 2 +- - 2 files changed, 6 insertions(+), 8 deletions(-) - ---- a/drivers/net/usb/smsc95xx.c -+++ b/drivers/net/usb/smsc95xx.c -@@ -2082,9 +2082,7 @@ static struct sk_buff *smsc95xx_tx_fixup - struct sk_buff *skb, gfp_t flags) - { - bool csum = skb->ip_summed == CHECKSUM_PARTIAL; -- unsigned int align_bytes = -((uintptr_t)skb->data) & 0x3; -- int overhead = csum ? SMSC95XX_TX_OVERHEAD_CSUM + align_bytes -- : SMSC95XX_TX_OVERHEAD + align_bytes; -+ int overhead = csum ? SMSC95XX_TX_OVERHEAD_CSUM : SMSC95XX_TX_OVERHEAD; - u32 tx_cmd_a, tx_cmd_b; - - /* We do not advertise SG, so skbs should be already linearized */ -@@ -2118,16 +2116,16 @@ static struct sk_buff *smsc95xx_tx_fixup - } - } - -- skb_push(skb, 4 + align_bytes); -- tx_cmd_b = (u32)(skb->len - 4 - align_bytes); -+ skb_push(skb, 4); -+ tx_cmd_b = (u32)(skb->len - 4); - if (csum) - tx_cmd_b |= TX_CMD_B_CSUM_ENABLE; - cpu_to_le32s(&tx_cmd_b); - memcpy(skb->data, &tx_cmd_b, 4); - - skb_push(skb, 4); -- tx_cmd_a = (u32)(skb->len - 8 - align_bytes) | TX_CMD_A_FIRST_SEG_ | -- (align_bytes << 16) | TX_CMD_A_LAST_SEG_; -+ tx_cmd_a = (u32)(skb->len - 8) | TX_CMD_A_FIRST_SEG_ | -+ TX_CMD_A_LAST_SEG_; - cpu_to_le32s(&tx_cmd_a); - memcpy(skb->data, &tx_cmd_a, 4); - ---- a/drivers/net/usb/smsc95xx.h -+++ b/drivers/net/usb/smsc95xx.h -@@ -21,7 +21,7 @@ - #define _SMSC95XX_H - - /* Tx command words */ --#define TX_CMD_A_DATA_OFFSET_ (0x00030000) /* Data Start Offset */ -+#define TX_CMD_A_DATA_OFFSET_ (0x001F0000) /* Data Start Offset */ - #define TX_CMD_A_FIRST_SEG_ (0x00002000) /* First Segment */ - #define TX_CMD_A_LAST_SEG_ (0x00001000) /* Last Segment */ - #define TX_CMD_A_BUF_SIZE_ (0x000007FF) /* Buffer Size */ diff --git a/target/linux/brcm2708/patches-4.19/950-0467-w1-w1-gpio-Make-GPIO-an-output-for-strong-pullup.patch b/target/linux/brcm2708/patches-4.19/950-0445-w1-w1-gpio-Make-GPIO-an-output-for-strong-pullup.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0467-w1-w1-gpio-Make-GPIO-an-output-for-strong-pullup.patch rename to target/linux/brcm2708/patches-4.19/950-0445-w1-w1-gpio-Make-GPIO-an-output-for-strong-pullup.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0468-overlays-Update-w1-gpio-and-w1-gpio-pullup.patch b/target/linux/brcm2708/patches-4.19/950-0446-overlays-Update-w1-gpio-and-w1-gpio-pullup.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0468-overlays-Update-w1-gpio-and-w1-gpio-pullup.patch rename to target/linux/brcm2708/patches-4.19/950-0446-overlays-Update-w1-gpio-and-w1-gpio-pullup.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0469-bcm2835-sdhost-Fix-DMA-channel-leak-on-error-remove.patch b/target/linux/brcm2708/patches-4.19/950-0447-bcm2835-sdhost-Fix-DMA-channel-leak-on-error-remove.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0469-bcm2835-sdhost-Fix-DMA-channel-leak-on-error-remove.patch rename to target/linux/brcm2708/patches-4.19/950-0447-bcm2835-sdhost-Fix-DMA-channel-leak-on-error-remove.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0470-i2c-bcm2835-Model-Divider-in-CCF.patch b/target/linux/brcm2708/patches-4.19/950-0448-i2c-bcm2835-Model-Divider-in-CCF.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0470-i2c-bcm2835-Model-Divider-in-CCF.patch rename to target/linux/brcm2708/patches-4.19/950-0448-i2c-bcm2835-Model-Divider-in-CCF.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0471-staging-vc04_services-Use-correct-cache-line-size.patch b/target/linux/brcm2708/patches-4.19/950-0449-staging-vc04_services-Use-correct-cache-line-size.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0471-staging-vc04_services-Use-correct-cache-line-size.patch rename to target/linux/brcm2708/patches-4.19/950-0449-staging-vc04_services-Use-correct-cache-line-size.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0472-tty-amba-pl011-allow-shared-interrupt.patch b/target/linux/brcm2708/patches-4.19/950-0450-tty-amba-pl011-allow-shared-interrupt.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0472-tty-amba-pl011-allow-shared-interrupt.patch rename to target/linux/brcm2708/patches-4.19/950-0450-tty-amba-pl011-allow-shared-interrupt.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0473-ARM-bcm283x-Reduce-register-ranges-for-UART-SPI-and-.patch b/target/linux/brcm2708/patches-4.19/950-0451-ARM-bcm283x-Reduce-register-ranges-for-UART-SPI-and-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0473-ARM-bcm283x-Reduce-register-ranges-for-UART-SPI-and-.patch rename to target/linux/brcm2708/patches-4.19/950-0451-ARM-bcm283x-Reduce-register-ranges-for-UART-SPI-and-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0474-ARM-bcm283x-Extend-the-WDT-DT-node-out-to-cover-the-.patch b/target/linux/brcm2708/patches-4.19/950-0452-ARM-bcm283x-Extend-the-WDT-DT-node-out-to-cover-the-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0474-ARM-bcm283x-Extend-the-WDT-DT-node-out-to-cover-the-.patch rename to target/linux/brcm2708/patches-4.19/950-0452-ARM-bcm283x-Extend-the-WDT-DT-node-out-to-cover-the-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0475-ARM-dts-Add-label-to-bcm2835-RNG.patch b/target/linux/brcm2708/patches-4.19/950-0453-ARM-dts-Add-label-to-bcm2835-RNG.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0475-ARM-dts-Add-label-to-bcm2835-RNG.patch rename to target/linux/brcm2708/patches-4.19/950-0453-ARM-dts-Add-label-to-bcm2835-RNG.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0476-dts-Use-fb-rather-than-leds-for-dpi-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0454-dts-Use-fb-rather-than-leds-for-dpi-overlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0476-dts-Use-fb-rather-than-leds-for-dpi-overlay.patch rename to target/linux/brcm2708/patches-4.19/950-0454-dts-Use-fb-rather-than-leds-for-dpi-overlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0477-BCM270X_DT-Minor-tidy-up.patch b/target/linux/brcm2708/patches-4.19/950-0455-BCM270X_DT-Minor-tidy-up.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0477-BCM270X_DT-Minor-tidy-up.patch rename to target/linux/brcm2708/patches-4.19/950-0455-BCM270X_DT-Minor-tidy-up.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0478-arm-bcm2835-Fix-FIQ-early-ioremap.patch b/target/linux/brcm2708/patches-4.19/950-0456-arm-bcm2835-Fix-FIQ-early-ioremap.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0478-arm-bcm2835-Fix-FIQ-early-ioremap.patch rename to target/linux/brcm2708/patches-4.19/950-0456-arm-bcm2835-Fix-FIQ-early-ioremap.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0479-Fix-copy_from_user-if-BCM2835_FAST_MEMCPY-n.patch b/target/linux/brcm2708/patches-4.19/950-0457-Fix-copy_from_user-if-BCM2835_FAST_MEMCPY-n.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0479-Fix-copy_from_user-if-BCM2835_FAST_MEMCPY-n.patch rename to target/linux/brcm2708/patches-4.19/950-0457-Fix-copy_from_user-if-BCM2835_FAST_MEMCPY-n.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0480-PCI-brcmstb-Add-Broadcom-STB-PCIe-host-controller-dr.patch b/target/linux/brcm2708/patches-4.19/950-0458-PCI-brcmstb-Add-Broadcom-STB-PCIe-host-controller-dr.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0480-PCI-brcmstb-Add-Broadcom-STB-PCIe-host-controller-dr.patch rename to target/linux/brcm2708/patches-4.19/950-0458-PCI-brcmstb-Add-Broadcom-STB-PCIe-host-controller-dr.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0481-PCI-brcmstb-Add-dma-range-mapping-for-inbound-traffi.patch b/target/linux/brcm2708/patches-4.19/950-0459-PCI-brcmstb-Add-dma-range-mapping-for-inbound-traffi.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0481-PCI-brcmstb-Add-dma-range-mapping-for-inbound-traffi.patch rename to target/linux/brcm2708/patches-4.19/950-0459-PCI-brcmstb-Add-dma-range-mapping-for-inbound-traffi.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0482-PCI-brcmstb-Add-MSI-capability.patch b/target/linux/brcm2708/patches-4.19/950-0460-PCI-brcmstb-Add-MSI-capability.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0482-PCI-brcmstb-Add-MSI-capability.patch rename to target/linux/brcm2708/patches-4.19/950-0460-PCI-brcmstb-Add-MSI-capability.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0483-dt-bindings-pci-Add-DT-docs-for-Brcmstb-PCIe-device.patch b/target/linux/brcm2708/patches-4.19/950-0461-dt-bindings-pci-Add-DT-docs-for-Brcmstb-PCIe-device.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0483-dt-bindings-pci-Add-DT-docs-for-Brcmstb-PCIe-device.patch rename to target/linux/brcm2708/patches-4.19/950-0461-dt-bindings-pci-Add-DT-docs-for-Brcmstb-PCIe-device.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0484-pcie-brcmstb-Changes-for-BCM2711.patch b/target/linux/brcm2708/patches-4.19/950-0462-pcie-brcmstb-Changes-for-BCM2711.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0484-pcie-brcmstb-Changes-for-BCM2711.patch rename to target/linux/brcm2708/patches-4.19/950-0462-pcie-brcmstb-Changes-for-BCM2711.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0485-arm-bcm2835-DMA-can-only-address-1GB.patch b/target/linux/brcm2708/patches-4.19/950-0463-arm-bcm2835-DMA-can-only-address-1GB.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0485-arm-bcm2835-DMA-can-only-address-1GB.patch rename to target/linux/brcm2708/patches-4.19/950-0463-arm-bcm2835-DMA-can-only-address-1GB.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0486-mmc-bcm2835-sdhost-Support-64-bit-physical-addresses.patch b/target/linux/brcm2708/patches-4.19/950-0464-mmc-bcm2835-sdhost-Support-64-bit-physical-addresses.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0486-mmc-bcm2835-sdhost-Support-64-bit-physical-addresses.patch rename to target/linux/brcm2708/patches-4.19/950-0464-mmc-bcm2835-sdhost-Support-64-bit-physical-addresses.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0487-mmc-sdhci-Mask-spurious-interrupts.patch b/target/linux/brcm2708/patches-4.19/950-0465-mmc-sdhci-Mask-spurious-interrupts.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0487-mmc-sdhci-Mask-spurious-interrupts.patch rename to target/linux/brcm2708/patches-4.19/950-0465-mmc-sdhci-Mask-spurious-interrupts.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0488-mmc-sdhci-iproc-Add-support-for-emmc2-of-the-BCM2838.patch b/target/linux/brcm2708/patches-4.19/950-0466-mmc-sdhci-iproc-Add-support-for-emmc2-of-the-BCM2838.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0488-mmc-sdhci-iproc-Add-support-for-emmc2-of-the-BCM2838.patch rename to target/linux/brcm2708/patches-4.19/950-0466-mmc-sdhci-iproc-Add-support-for-emmc2-of-the-BCM2838.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0489-hwrng-iproc-rng200-Add-BCM2838-support.patch b/target/linux/brcm2708/patches-4.19/950-0467-hwrng-iproc-rng200-Add-BCM2838-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0489-hwrng-iproc-rng200-Add-BCM2838-support.patch rename to target/linux/brcm2708/patches-4.19/950-0467-hwrng-iproc-rng200-Add-BCM2838-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0490-thermal-brcmstb_thermal-Add-BCM2838-support.patch b/target/linux/brcm2708/patches-4.19/950-0468-thermal-brcmstb_thermal-Add-BCM2838-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0490-thermal-brcmstb_thermal-Add-BCM2838-support.patch rename to target/linux/brcm2708/patches-4.19/950-0468-thermal-brcmstb_thermal-Add-BCM2838-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0491-vchiq-Add-36-bit-address-support.patch b/target/linux/brcm2708/patches-4.19/950-0469-vchiq-Add-36-bit-address-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0491-vchiq-Add-36-bit-address-support.patch rename to target/linux/brcm2708/patches-4.19/950-0469-vchiq-Add-36-bit-address-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0492-bcm2835-pcm.c-Support-multichannel-audio.patch b/target/linux/brcm2708/patches-4.19/950-0470-bcm2835-pcm.c-Support-multichannel-audio.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0492-bcm2835-pcm.c-Support-multichannel-audio.patch rename to target/linux/brcm2708/patches-4.19/950-0470-bcm2835-pcm.c-Support-multichannel-audio.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0493-bcmgenet-constrain-max-DMA-burst-length.patch b/target/linux/brcm2708/patches-4.19/950-0471-bcmgenet-constrain-max-DMA-burst-length.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0493-bcmgenet-constrain-max-DMA-burst-length.patch rename to target/linux/brcm2708/patches-4.19/950-0471-bcmgenet-constrain-max-DMA-burst-length.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0494-bcmgenet-Better-coalescing-parameter-defaults.patch b/target/linux/brcm2708/patches-4.19/950-0472-bcmgenet-Better-coalescing-parameter-defaults.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0494-bcmgenet-Better-coalescing-parameter-defaults.patch rename to target/linux/brcm2708/patches-4.19/950-0472-bcmgenet-Better-coalescing-parameter-defaults.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0495-net-genet-enable-link-energy-detect-powerdown-for-ex.patch b/target/linux/brcm2708/patches-4.19/950-0473-net-genet-enable-link-energy-detect-powerdown-for-ex.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0495-net-genet-enable-link-energy-detect-powerdown-for-ex.patch rename to target/linux/brcm2708/patches-4.19/950-0473-net-genet-enable-link-energy-detect-powerdown-for-ex.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0496-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch b/target/linux/brcm2708/patches-4.19/950-0474-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0496-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch rename to target/linux/brcm2708/patches-4.19/950-0474-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0497-phy-bcm54213pe-configure-the-LED-outputs-to-be-more-.patch b/target/linux/brcm2708/patches-4.19/950-0475-phy-bcm54213pe-configure-the-LED-outputs-to-be-more-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0497-phy-bcm54213pe-configure-the-LED-outputs-to-be-more-.patch rename to target/linux/brcm2708/patches-4.19/950-0475-phy-bcm54213pe-configure-the-LED-outputs-to-be-more-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0498-dwc_otg-Choose-appropriate-IRQ-handover-strategy.patch b/target/linux/brcm2708/patches-4.19/950-0476-dwc_otg-Choose-appropriate-IRQ-handover-strategy.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0498-dwc_otg-Choose-appropriate-IRQ-handover-strategy.patch rename to target/linux/brcm2708/patches-4.19/950-0476-dwc_otg-Choose-appropriate-IRQ-handover-strategy.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0499-usb-xhci-Disable-the-XHCI-5-second-timeout.patch b/target/linux/brcm2708/patches-4.19/950-0477-usb-xhci-Disable-the-XHCI-5-second-timeout.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0499-usb-xhci-Disable-the-XHCI-5-second-timeout.patch rename to target/linux/brcm2708/patches-4.19/950-0477-usb-xhci-Disable-the-XHCI-5-second-timeout.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0500-usb-xhci-Show-that-the-VIA-VL805-supports-LPM.patch b/target/linux/brcm2708/patches-4.19/950-0478-usb-xhci-Show-that-the-VIA-VL805-supports-LPM.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0500-usb-xhci-Show-that-the-VIA-VL805-supports-LPM.patch rename to target/linux/brcm2708/patches-4.19/950-0478-usb-xhci-Show-that-the-VIA-VL805-supports-LPM.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0503-spi-bcm2835-enable-shared-interrupt-support.patch b/target/linux/brcm2708/patches-4.19/950-0479-spi-bcm2835-enable-shared-interrupt-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0503-spi-bcm2835-enable-shared-interrupt-support.patch rename to target/linux/brcm2708/patches-4.19/950-0479-spi-bcm2835-enable-shared-interrupt-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0504-drivers-char-add-chardev-for-mmap-ing-Argon-control-.patch b/target/linux/brcm2708/patches-4.19/950-0480-drivers-char-add-chardev-for-mmap-ing-Argon-control-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0504-drivers-char-add-chardev-for-mmap-ing-Argon-control-.patch rename to target/linux/brcm2708/patches-4.19/950-0480-drivers-char-add-chardev-for-mmap-ing-Argon-control-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0505-clk-bcm2835-Don-t-wait-for-pllh-lock.patch b/target/linux/brcm2708/patches-4.19/950-0481-clk-bcm2835-Don-t-wait-for-pllh-lock.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0505-clk-bcm2835-Don-t-wait-for-pllh-lock.patch rename to target/linux/brcm2708/patches-4.19/950-0481-clk-bcm2835-Don-t-wait-for-pllh-lock.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0506-bcm2835-pm-Move-bcm2835-watchdog-s-DT-probe-to-an-MF.patch b/target/linux/brcm2708/patches-4.19/950-0482-bcm2835-pm-Move-bcm2835-watchdog-s-DT-probe-to-an-MF.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0506-bcm2835-pm-Move-bcm2835-watchdog-s-DT-probe-to-an-MF.patch rename to target/linux/brcm2708/patches-4.19/950-0482-bcm2835-pm-Move-bcm2835-watchdog-s-DT-probe-to-an-MF.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0507-soc-bcm-bcm2835-pm-Add-support-for-power-domains-und.patch b/target/linux/brcm2708/patches-4.19/950-0483-soc-bcm-bcm2835-pm-Add-support-for-power-domains-und.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0507-soc-bcm-bcm2835-pm-Add-support-for-power-domains-und.patch rename to target/linux/brcm2708/patches-4.19/950-0483-soc-bcm-bcm2835-pm-Add-support-for-power-domains-und.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0508-soc-bcm-bcm2835-pm-Fix-PM_IMAGE_PERI-power-domain-su.patch b/target/linux/brcm2708/patches-4.19/950-0484-soc-bcm-bcm2835-pm-Fix-PM_IMAGE_PERI-power-domain-su.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0508-soc-bcm-bcm2835-pm-Fix-PM_IMAGE_PERI-power-domain-su.patch rename to target/linux/brcm2708/patches-4.19/950-0484-soc-bcm-bcm2835-pm-Fix-PM_IMAGE_PERI-power-domain-su.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0509-soc-bcm-bcm2835-pm-Fix-error-paths-of-initialization.patch b/target/linux/brcm2708/patches-4.19/950-0485-soc-bcm-bcm2835-pm-Fix-error-paths-of-initialization.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0509-soc-bcm-bcm2835-pm-Fix-error-paths-of-initialization.patch rename to target/linux/brcm2708/patches-4.19/950-0485-soc-bcm-bcm2835-pm-Fix-error-paths-of-initialization.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0510-soc-bcm-bcm2835-pm-Add-support-for-2711.patch b/target/linux/brcm2708/patches-4.19/950-0486-soc-bcm-bcm2835-pm-Add-support-for-2711.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0510-soc-bcm-bcm2835-pm-Add-support-for-2711.patch rename to target/linux/brcm2708/patches-4.19/950-0486-soc-bcm-bcm2835-pm-Add-support-for-2711.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0511-drm-expand-drm_syncobj_find_fence-to-support-timelin.patch b/target/linux/brcm2708/patches-4.19/950-0487-drm-expand-drm_syncobj_find_fence-to-support-timelin.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0511-drm-expand-drm_syncobj_find_fence-to-support-timelin.patch rename to target/linux/brcm2708/patches-4.19/950-0487-drm-expand-drm_syncobj_find_fence-to-support-timelin.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0512-drm-v3d-Fix-a-use-after-free-race-accessing-the-sche.patch b/target/linux/brcm2708/patches-4.19/950-0488-drm-v3d-Fix-a-use-after-free-race-accessing-the-sche.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0512-drm-v3d-Fix-a-use-after-free-race-accessing-the-sche.patch rename to target/linux/brcm2708/patches-4.19/950-0488-drm-v3d-Fix-a-use-after-free-race-accessing-the-sche.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0513-drm-v3d-Add-a-little-debugfs-entry-for-measuring-the.patch b/target/linux/brcm2708/patches-4.19/950-0489-drm-v3d-Add-a-little-debugfs-entry-for-measuring-the.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0513-drm-v3d-Add-a-little-debugfs-entry-for-measuring-the.patch rename to target/linux/brcm2708/patches-4.19/950-0489-drm-v3d-Add-a-little-debugfs-entry-for-measuring-the.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0514-drm-v3d-Update-a-comment-about-what-uses-v3d_job_dep.patch b/target/linux/brcm2708/patches-4.19/950-0490-drm-v3d-Update-a-comment-about-what-uses-v3d_job_dep.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0514-drm-v3d-Update-a-comment-about-what-uses-v3d_job_dep.patch rename to target/linux/brcm2708/patches-4.19/950-0490-drm-v3d-Update-a-comment-about-what-uses-v3d_job_dep.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0515-drm-v3d-Clean-up-the-reservation-object-setup.patch b/target/linux/brcm2708/patches-4.19/950-0491-drm-v3d-Clean-up-the-reservation-object-setup.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0515-drm-v3d-Clean-up-the-reservation-object-setup.patch rename to target/linux/brcm2708/patches-4.19/950-0491-drm-v3d-Clean-up-the-reservation-object-setup.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0516-drm-v3d-Add-support-for-submitting-jobs-to-the-TFU.patch b/target/linux/brcm2708/patches-4.19/950-0492-drm-v3d-Add-support-for-submitting-jobs-to-the-TFU.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0516-drm-v3d-Add-support-for-submitting-jobs-to-the-TFU.patch rename to target/linux/brcm2708/patches-4.19/950-0492-drm-v3d-Add-support-for-submitting-jobs-to-the-TFU.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0517-drm-v3d-Drop-the-dev-argument-to-lock-unlock-of-BO-r.patch b/target/linux/brcm2708/patches-4.19/950-0493-drm-v3d-Drop-the-dev-argument-to-lock-unlock-of-BO-r.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0517-drm-v3d-Drop-the-dev-argument-to-lock-unlock-of-BO-r.patch rename to target/linux/brcm2708/patches-4.19/950-0493-drm-v3d-Drop-the-dev-argument-to-lock-unlock-of-BO-r.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0518-drm-v3d-Add-missing-fence-timeline-name-for-TFU.patch b/target/linux/brcm2708/patches-4.19/950-0494-drm-v3d-Add-missing-fence-timeline-name-for-TFU.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0518-drm-v3d-Add-missing-fence-timeline-name-for-TFU.patch rename to target/linux/brcm2708/patches-4.19/950-0494-drm-v3d-Add-missing-fence-timeline-name-for-TFU.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0519-drm-v3d-Add-more-tracepoints-for-V3D-GPU-rendering.patch b/target/linux/brcm2708/patches-4.19/950-0495-drm-v3d-Add-more-tracepoints-for-V3D-GPU-rendering.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0519-drm-v3d-Add-more-tracepoints-for-V3D-GPU-rendering.patch rename to target/linux/brcm2708/patches-4.19/950-0495-drm-v3d-Add-more-tracepoints-for-V3D-GPU-rendering.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0520-drm-v3d-Drop-unused-v3d_flush_caches.patch b/target/linux/brcm2708/patches-4.19/950-0496-drm-v3d-Drop-unused-v3d_flush_caches.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0520-drm-v3d-Drop-unused-v3d_flush_caches.patch rename to target/linux/brcm2708/patches-4.19/950-0496-drm-v3d-Drop-unused-v3d_flush_caches.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0521-drm-v3d-Don-t-bother-flushing-L1TD-at-job-start.patch b/target/linux/brcm2708/patches-4.19/950-0497-drm-v3d-Don-t-bother-flushing-L1TD-at-job-start.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0521-drm-v3d-Don-t-bother-flushing-L1TD-at-job-start.patch rename to target/linux/brcm2708/patches-4.19/950-0497-drm-v3d-Don-t-bother-flushing-L1TD-at-job-start.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0522-drm-v3d-Drop-the-wait-for-L2T-flush-to-complete.patch b/target/linux/brcm2708/patches-4.19/950-0498-drm-v3d-Drop-the-wait-for-L2T-flush-to-complete.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0522-drm-v3d-Drop-the-wait-for-L2T-flush-to-complete.patch rename to target/linux/brcm2708/patches-4.19/950-0498-drm-v3d-Drop-the-wait-for-L2T-flush-to-complete.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0523-drm-v3d-Stop-trying-to-flush-L2C-on-V3D-3.3.patch b/target/linux/brcm2708/patches-4.19/950-0499-drm-v3d-Stop-trying-to-flush-L2C-on-V3D-3.3.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0523-drm-v3d-Stop-trying-to-flush-L2C-on-V3D-3.3.patch rename to target/linux/brcm2708/patches-4.19/950-0499-drm-v3d-Stop-trying-to-flush-L2C-on-V3D-3.3.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0524-drm-v3d-Invalidate-the-caches-from-the-outside-in.patch b/target/linux/brcm2708/patches-4.19/950-0500-drm-v3d-Invalidate-the-caches-from-the-outside-in.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0524-drm-v3d-Invalidate-the-caches-from-the-outside-in.patch rename to target/linux/brcm2708/patches-4.19/950-0500-drm-v3d-Invalidate-the-caches-from-the-outside-in.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0525-drm-v3d-Fix-BO-stats-accounting-for-dma-buf-imported.patch b/target/linux/brcm2708/patches-4.19/950-0501-drm-v3d-Fix-BO-stats-accounting-for-dma-buf-imported.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0525-drm-v3d-Fix-BO-stats-accounting-for-dma-buf-imported.patch rename to target/linux/brcm2708/patches-4.19/950-0501-drm-v3d-Fix-BO-stats-accounting-for-dma-buf-imported.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0501-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.mousep.patch b/target/linux/brcm2708/patches-4.19/950-0501-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.mousep.patch deleted file mode 100644 index c48d16db91f..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0501-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.mousep.patch +++ /dev/null @@ -1,122 +0,0 @@ -From fa776ef749c924cd3ff3ffa257d7a63a27224399 Mon Sep 17 00:00:00 2001 -From: Jonathan Bell -Date: Thu, 30 May 2019 10:38:40 +0100 -Subject: [PATCH] usb: xhci: hack xhci_urb_enqueue to support - hid.mousepoll behaviour - -xHCI creates endpoint contexts directly from the device's endpoint -data, so submitting URBs with urb->interval different from the hardware -interval has no effect. - -Add an explicit reconfiguration of the endpoint context when requested, -which will happen only when the interval is different from the cached -value. In practice, the reconfiguration only happens on the first URB -submitted for the endpoint. - -Signed-off-by: Jonathan Bell ---- - drivers/usb/host/xhci.c | 86 +++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 86 insertions(+) - ---- a/drivers/usb/host/xhci.c -+++ b/drivers/usb/host/xhci.c -@@ -1425,6 +1425,87 @@ command_cleanup: - } - - /* -+ * RPI: Fixup endpoint intervals when requested -+ * - Check interval versus the (cached) endpoint context -+ * - set the endpoint interval to the new value -+ * - force an endpoint configure command -+ */ -+static void xhci_fixup_interval(struct xhci_hcd *xhci, struct urb *urb, -+ unsigned int slot_id, unsigned int ep_index) -+{ -+ struct xhci_ep_ctx *ep_ctx_out, *ep_ctx_in; -+ struct xhci_command *command; -+ struct xhci_input_control_ctx *ctrl_ctx; -+ struct xhci_virt_device *vdev; -+ int xhci_interval, ep_interval; -+ int ret; -+ unsigned long flags; -+ u32 ep_info_tmp; -+ -+ spin_lock_irqsave(&xhci->lock, flags); -+ -+ vdev = xhci->devs[slot_id]; -+ /* Get context-derived endpoint interval */ -+ ep_ctx_out = xhci_get_ep_ctx(xhci, vdev->out_ctx, ep_index); -+ ep_ctx_in = xhci_get_ep_ctx(xhci, vdev->in_ctx, ep_index); -+ xhci_interval = EP_INTERVAL_TO_UFRAMES(le32_to_cpu(ep_ctx_out->ep_info)); -+ ep_interval = urb->interval * 8; -+ -+ if (ep_interval == xhci_interval) { -+ spin_unlock_irqrestore(&xhci->lock, flags); -+ return; -+ } -+ -+ xhci_dbg(xhci, "Fixup interval ep_interval=%d xhci_interval=%d\n", -+ ep_interval, xhci_interval); -+ command = xhci_alloc_command_with_ctx(xhci, true, GFP_ATOMIC); -+ if (!command) { -+ /* Failure here is benign, poll at the original rate */ -+ spin_unlock_irqrestore(&xhci->lock, flags); -+ return; -+ } -+ -+ /* xHCI uses exponents for intervals... */ -+ xhci_interval = fls(ep_interval) - 1; -+ xhci_interval = clamp_val(xhci_interval, 3, 10); -+ ep_info_tmp = le32_to_cpu(ep_ctx_out->ep_info); -+ ep_info_tmp &= ~EP_INTERVAL(255); -+ ep_info_tmp |= EP_INTERVAL(xhci_interval); -+ -+ /* Keep the endpoint context up-to-date while issuing the command. */ -+ xhci_endpoint_copy(xhci, vdev->in_ctx, -+ vdev->out_ctx, ep_index); -+ ep_ctx_in->ep_info = cpu_to_le32(ep_info_tmp); -+ -+ /* -+ * We need to drop the lock, so take an explicit copy -+ * of the ep context. -+ */ -+ xhci_endpoint_copy(xhci, command->in_ctx, vdev->in_ctx, ep_index); -+ -+ ctrl_ctx = xhci_get_input_control_ctx(command->in_ctx); -+ if (!ctrl_ctx) { -+ xhci_warn(xhci, -+ "%s: Could not get input context, bad type.\n", -+ __func__); -+ spin_unlock_irqrestore(&xhci->lock, flags); -+ xhci_free_command(xhci, command); -+ return; -+ } -+ ctrl_ctx->add_flags = xhci_get_endpoint_flag_from_index(ep_index); -+ ctrl_ctx->drop_flags = 0; -+ -+ spin_unlock_irqrestore(&xhci->lock, flags); -+ -+ ret = xhci_configure_endpoint(xhci, urb->dev, command, -+ false, false); -+ if (ret) -+ xhci_warn(xhci, "%s: Configure endpoint failed: %d\n", -+ __func__, ret); -+ xhci_free_command(xhci, command); -+} -+ -+/* - * non-error returns are a promise to giveback() the urb later - * we drop ownership so next owner (or urb unlink) can get it - */ -@@ -1492,6 +1573,11 @@ static int xhci_urb_enqueue(struct usb_h - } - } - -+ if (usb_endpoint_xfer_int(&urb->ep->desc) && -+ (urb->dev->speed == USB_SPEED_FULL || -+ urb->dev->speed == USB_SPEED_LOW)) -+ xhci_fixup_interval(xhci, urb, slot_id, ep_index); -+ - spin_lock_irqsave(&xhci->lock, flags); - - if (xhci->xhc_state & XHCI_STATE_DYING) { diff --git a/target/linux/brcm2708/patches-4.19/950-0526-drm-v3d-Update-top-level-kerneldoc-for-the-addition-.patch b/target/linux/brcm2708/patches-4.19/950-0502-drm-v3d-Update-top-level-kerneldoc-for-the-addition-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0526-drm-v3d-Update-top-level-kerneldoc-for-the-addition-.patch rename to target/linux/brcm2708/patches-4.19/950-0502-drm-v3d-Update-top-level-kerneldoc-for-the-addition-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0502-pinctrl-bcm2835-Add-support-for-BCM2838.patch b/target/linux/brcm2708/patches-4.19/950-0502-pinctrl-bcm2835-Add-support-for-BCM2838.patch deleted file mode 100644 index cb4fc3b708c..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0502-pinctrl-bcm2835-Add-support-for-BCM2838.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 9fdab9bd6324314cbdfe96a6da5edef6c29ed5e6 Mon Sep 17 00:00:00 2001 -From: Tim Gover -Date: Wed, 9 Jan 2019 14:43:36 +0000 -Subject: [PATCH] pinctrl-bcm2835: Add support for BCM2838 - -GPIO configuration on BCM2838 is largely the same as BCM2835 except for -the pull up/down configuration. The old mechanism has been replaced -by new registers which don't require the fixed delay. - -Detect BCN2838 at run-time and use the new mechanism. Backwards -compatibility for the device-tree configuration has been retained. ---- - drivers/pinctrl/bcm/pinctrl-bcm2835.c | 58 ++++++++++++++++++++------- - 1 file changed, 44 insertions(+), 14 deletions(-) - ---- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c -+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c -@@ -67,6 +67,12 @@ - #define GPPUD 0x94 /* Pin Pull-up/down Enable */ - #define GPPUDCLK0 0x98 /* Pin Pull-up/down Enable Clock */ - -+/* 2711 has a different mechanism for pin pull-up/down/enable */ -+#define GPPUPPDN0 0xe4 /* Pin pull-up/down for pins 15:0 */ -+#define GPPUPPDN1 0xe8 /* Pin pull-up/down for pins 31:16 */ -+#define GPPUPPDN2 0xec /* Pin pull-up/down for pins 47:32 */ -+#define GPPUPPDN3 0xf0 /* Pin pull-up/down for pins 57:48 */ -+ - #define FSEL_REG(p) (GPFSEL0 + (((p) / 10) * 4)) - #define FSEL_SHIFT(p) (((p) % 10) * 3) - #define GPIO_REG_OFFSET(p) ((p) / 32) -@@ -915,21 +921,45 @@ static void bcm2835_pull_config_set(stru - unsigned int pin, unsigned int arg) - { - u32 off, bit; -+ /* BCM2835, BCM2836 & BCM2837 return 'gpio' for this unused register */ -+ int is_2835 = bcm2835_gpio_rd(pc, GPPUPPDN3) == 0x6770696f; - -- off = GPIO_REG_OFFSET(pin); -- bit = GPIO_REG_SHIFT(pin); -- -- bcm2835_gpio_wr(pc, GPPUD, arg & 3); -- /* -- * BCM2835 datasheet say to wait 150 cycles, but not of what. -- * But the VideoCore firmware delay for this operation -- * based nearly on the same amount of VPU cycles and this clock -- * runs at 250 MHz. -- */ -- udelay(1); -- bcm2835_gpio_wr(pc, GPPUDCLK0 + (off * 4), BIT(bit)); -- udelay(1); -- bcm2835_gpio_wr(pc, GPPUDCLK0 + (off * 4), 0); -+ if (is_2835) { -+ off = GPIO_REG_OFFSET(pin); -+ bit = GPIO_REG_SHIFT(pin); -+ /* -+ * BCM2835 datasheet say to wait 150 cycles, but not of what. -+ * But the VideoCore firmware delay for this operation -+ * based nearly on the same amount of VPU cycles and this clock -+ * runs at 250 MHz. -+ */ -+ bcm2835_gpio_wr(pc, GPPUD, arg & 3); -+ udelay(1); -+ bcm2835_gpio_wr(pc, GPPUDCLK0 + (off * 4), BIT(bit)); -+ udelay(1); -+ bcm2835_gpio_wr(pc, GPPUDCLK0 + (off * 4), 0); -+ } else { -+ u32 reg; -+ int lsb; -+ -+ off = (pin >> 4); -+ if (off > 3) -+ return; -+ lsb = (pin & 0xf) << 1; -+ -+ /* The up/down semantics are reversed compared to BCM2835. -+ * Instead of updating all the device tree files, translate the -+ * values here. -+ */ -+ if (arg == 2) -+ arg = 1; -+ else if (arg == 1) -+ arg = 2; -+ reg = bcm2835_gpio_rd(pc, GPPUPPDN0 + (off *4)); -+ reg &= ~(0x3 << lsb); -+ reg |= (arg & 3) << lsb; -+ bcm2835_gpio_wr(pc, GPPUPPDN0 + (off * 4), reg); -+ } - } - - static int bcm2835_pinconf_set(struct pinctrl_dev *pctldev, diff --git a/target/linux/brcm2708/patches-4.19/950-0527-drm-vc4-Fix-oops-at-boot-with-firmwarekms-on-4.19.patch b/target/linux/brcm2708/patches-4.19/950-0503-drm-vc4-Fix-oops-at-boot-with-firmwarekms-on-4.19.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0527-drm-vc4-Fix-oops-at-boot-with-firmwarekms-on-4.19.patch rename to target/linux/brcm2708/patches-4.19/950-0503-drm-vc4-Fix-oops-at-boot-with-firmwarekms-on-4.19.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0529-drm-v3d-Add-support-for-V3D-v4.2.patch b/target/linux/brcm2708/patches-4.19/950-0504-drm-v3d-Add-support-for-V3D-v4.2.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0529-drm-v3d-Add-support-for-V3D-v4.2.patch rename to target/linux/brcm2708/patches-4.19/950-0504-drm-v3d-Add-support-for-V3D-v4.2.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0530-drm-v3d-Don-t-try-to-set-OVRTMUOUT-on-V3D-4.x.patch b/target/linux/brcm2708/patches-4.19/950-0505-drm-v3d-Don-t-try-to-set-OVRTMUOUT-on-V3D-4.x.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0530-drm-v3d-Don-t-try-to-set-OVRTMUOUT-on-V3D-4.x.patch rename to target/linux/brcm2708/patches-4.19/950-0505-drm-v3d-Don-t-try-to-set-OVRTMUOUT-on-V3D-4.x.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0531-drm-v3d-Make-sure-the-GPU-is-on-when-measuring-clock.patch b/target/linux/brcm2708/patches-4.19/950-0506-drm-v3d-Make-sure-the-GPU-is-on-when-measuring-clock.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0531-drm-v3d-Make-sure-the-GPU-is-on-when-measuring-clock.patch rename to target/linux/brcm2708/patches-4.19/950-0506-drm-v3d-Make-sure-the-GPU-is-on-when-measuring-clock.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0532-drm-v3d-Add-support-for-2711.patch b/target/linux/brcm2708/patches-4.19/950-0507-drm-v3d-Add-support-for-2711.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0532-drm-v3d-Add-support-for-2711.patch rename to target/linux/brcm2708/patches-4.19/950-0507-drm-v3d-Add-support-for-2711.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0533-drm-v3d-Skip-MMU-flush-if-the-device-is-currently-of.patch b/target/linux/brcm2708/patches-4.19/950-0508-drm-v3d-Skip-MMU-flush-if-the-device-is-currently-of.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0533-drm-v3d-Skip-MMU-flush-if-the-device-is-currently-of.patch rename to target/linux/brcm2708/patches-4.19/950-0508-drm-v3d-Skip-MMU-flush-if-the-device-is-currently-of.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0534-drm-v3d-Hook-up-the-runtime-PM-ops.patch b/target/linux/brcm2708/patches-4.19/950-0509-drm-v3d-Hook-up-the-runtime-PM-ops.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0534-drm-v3d-Hook-up-the-runtime-PM-ops.patch rename to target/linux/brcm2708/patches-4.19/950-0509-drm-v3d-Hook-up-the-runtime-PM-ops.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0535-drm-v3d-HACK-gut-runtime-pm-for-now.patch b/target/linux/brcm2708/patches-4.19/950-0510-drm-v3d-HACK-gut-runtime-pm-for-now.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0535-drm-v3d-HACK-gut-runtime-pm-for-now.patch rename to target/linux/brcm2708/patches-4.19/950-0510-drm-v3d-HACK-gut-runtime-pm-for-now.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0536-drm-v3d-Update-to-upstream-IRQ-code.patch b/target/linux/brcm2708/patches-4.19/950-0511-drm-v3d-Update-to-upstream-IRQ-code.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0536-drm-v3d-Update-to-upstream-IRQ-code.patch rename to target/linux/brcm2708/patches-4.19/950-0511-drm-v3d-Update-to-upstream-IRQ-code.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0537-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch b/target/linux/brcm2708/patches-4.19/950-0512-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0537-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch rename to target/linux/brcm2708/patches-4.19/950-0512-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0538-drm-v3d-Refactor-job-management.patch b/target/linux/brcm2708/patches-4.19/950-0513-drm-v3d-Refactor-job-management.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0538-drm-v3d-Refactor-job-management.patch rename to target/linux/brcm2708/patches-4.19/950-0513-drm-v3d-Refactor-job-management.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0539-drm-v3d-Add-missing-implicit-synchronization.patch b/target/linux/brcm2708/patches-4.19/950-0514-drm-v3d-Add-missing-implicit-synchronization.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0539-drm-v3d-Add-missing-implicit-synchronization.patch rename to target/linux/brcm2708/patches-4.19/950-0514-drm-v3d-Add-missing-implicit-synchronization.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0540-drm-vc4-Fix-synchronization-firmwarekms-against-GL-r.patch b/target/linux/brcm2708/patches-4.19/950-0515-drm-vc4-Fix-synchronization-firmwarekms-against-GL-r.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0540-drm-vc4-Fix-synchronization-firmwarekms-against-GL-r.patch rename to target/linux/brcm2708/patches-4.19/950-0515-drm-vc4-Fix-synchronization-firmwarekms-against-GL-r.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0541-drm-vc4-Make-sure-that-vblank-waits-work-without-v3d.patch b/target/linux/brcm2708/patches-4.19/950-0516-drm-vc4-Make-sure-that-vblank-waits-work-without-v3d.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0541-drm-vc4-Make-sure-that-vblank-waits-work-without-v3d.patch rename to target/linux/brcm2708/patches-4.19/950-0516-drm-vc4-Make-sure-that-vblank-waits-work-without-v3d.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0542-drm-vc4-Expose-the-format-modifiers-for-firmware-kms.patch b/target/linux/brcm2708/patches-4.19/950-0517-drm-vc4-Expose-the-format-modifiers-for-firmware-kms.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0542-drm-vc4-Expose-the-format-modifiers-for-firmware-kms.patch rename to target/linux/brcm2708/patches-4.19/950-0517-drm-vc4-Expose-the-format-modifiers-for-firmware-kms.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0543-drm-vc4-Fix-vblank-timestamping-for-firmwarekms.patch b/target/linux/brcm2708/patches-4.19/950-0518-drm-vc4-Fix-vblank-timestamping-for-firmwarekms.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0543-drm-vc4-Fix-vblank-timestamping-for-firmwarekms.patch rename to target/linux/brcm2708/patches-4.19/950-0518-drm-vc4-Fix-vblank-timestamping-for-firmwarekms.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0544-gpu-vc4-fkms-Switch-to-the-newer-mailbox-frame-buffe.patch b/target/linux/brcm2708/patches-4.19/950-0519-gpu-vc4-fkms-Switch-to-the-newer-mailbox-frame-buffe.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0544-gpu-vc4-fkms-Switch-to-the-newer-mailbox-frame-buffe.patch rename to target/linux/brcm2708/patches-4.19/950-0519-gpu-vc4-fkms-Switch-to-the-newer-mailbox-frame-buffe.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0545-drm-vc4-Add-an-overlay-plane-to-vc4-firmware-kms.patch b/target/linux/brcm2708/patches-4.19/950-0520-drm-vc4-Add-an-overlay-plane-to-vc4-firmware-kms.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0545-drm-vc4-Add-an-overlay-plane-to-vc4-firmware-kms.patch rename to target/linux/brcm2708/patches-4.19/950-0520-drm-vc4-Add-an-overlay-plane-to-vc4-firmware-kms.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0546-drm-vc4-Increase-max-screen-size-to-4096x4096.patch b/target/linux/brcm2708/patches-4.19/950-0521-drm-vc4-Increase-max-screen-size-to-4096x4096.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0546-drm-vc4-Increase-max-screen-size-to-4096x4096.patch rename to target/linux/brcm2708/patches-4.19/950-0521-drm-vc4-Increase-max-screen-size-to-4096x4096.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0547-drm-vc4-Add-support-for-multiple-displays-to-fkms.patch b/target/linux/brcm2708/patches-4.19/950-0522-drm-vc4-Add-support-for-multiple-displays-to-fkms.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0547-drm-vc4-Add-support-for-multiple-displays-to-fkms.patch rename to target/linux/brcm2708/patches-4.19/950-0522-drm-vc4-Add-support-for-multiple-displays-to-fkms.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0548-drm-vc4-Fix-build-warning.patch b/target/linux/brcm2708/patches-4.19/950-0523-drm-vc4-Fix-build-warning.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0548-drm-vc4-Fix-build-warning.patch rename to target/linux/brcm2708/patches-4.19/950-0523-drm-vc4-Fix-build-warning.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0549-drm-vc4-Select-display-to-blank-during-initialisatio.patch b/target/linux/brcm2708/patches-4.19/950-0524-drm-vc4-Select-display-to-blank-during-initialisatio.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0549-drm-vc4-Select-display-to-blank-during-initialisatio.patch rename to target/linux/brcm2708/patches-4.19/950-0524-drm-vc4-Select-display-to-blank-during-initialisatio.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0550-drm-vc4-Remove-now-unused-structure.patch b/target/linux/brcm2708/patches-4.19/950-0525-drm-vc4-Remove-now-unused-structure.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0550-drm-vc4-Remove-now-unused-structure.patch rename to target/linux/brcm2708/patches-4.19/950-0525-drm-vc4-Remove-now-unused-structure.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0551-drm-vc4-Query-the-display-ID-for-each-display-in-FKM.patch b/target/linux/brcm2708/patches-4.19/950-0526-drm-vc4-Query-the-display-ID-for-each-display-in-FKM.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0551-drm-vc4-Query-the-display-ID-for-each-display-in-FKM.patch rename to target/linux/brcm2708/patches-4.19/950-0526-drm-vc4-Query-the-display-ID-for-each-display-in-FKM.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0552-drm-vc4-Set-the-display-number-when-querying-the-dis.patch b/target/linux/brcm2708/patches-4.19/950-0527-drm-vc4-Set-the-display-number-when-querying-the-dis.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0552-drm-vc4-Set-the-display-number-when-querying-the-dis.patch rename to target/linux/brcm2708/patches-4.19/950-0527-drm-vc4-Set-the-display-number-when-querying-the-dis.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0553-drm-vc4-Need-to-call-drm_crtc_vblank_-on-off-from-vc.patch b/target/linux/brcm2708/patches-4.19/950-0528-drm-vc4-Need-to-call-drm_crtc_vblank_-on-off-from-vc.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0553-drm-vc4-Need-to-call-drm_crtc_vblank_-on-off-from-vc.patch rename to target/linux/brcm2708/patches-4.19/950-0528-drm-vc4-Need-to-call-drm_crtc_vblank_-on-off-from-vc.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0554-drm-vc4-Add-support-for-H-V-flips-on-each-plane-for-.patch b/target/linux/brcm2708/patches-4.19/950-0529-drm-vc4-Add-support-for-H-V-flips-on-each-plane-for-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0554-drm-vc4-Add-support-for-H-V-flips-on-each-plane-for-.patch rename to target/linux/brcm2708/patches-4.19/950-0529-drm-vc4-Add-support-for-H-V-flips-on-each-plane-for-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0555-drm-vc4-Remove-unused-vc4_fkms_cancel_page_flip-func.patch b/target/linux/brcm2708/patches-4.19/950-0530-drm-vc4-Remove-unused-vc4_fkms_cancel_page_flip-func.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0555-drm-vc4-Remove-unused-vc4_fkms_cancel_page_flip-func.patch rename to target/linux/brcm2708/patches-4.19/950-0530-drm-vc4-Remove-unused-vc4_fkms_cancel_page_flip-func.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0556-drm-vc4-Iterate-over-all-planes-in-vc4_crtc_-dis-en-.patch b/target/linux/brcm2708/patches-4.19/950-0531-drm-vc4-Iterate-over-all-planes-in-vc4_crtc_-dis-en-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0556-drm-vc4-Iterate-over-all-planes-in-vc4_crtc_-dis-en-.patch rename to target/linux/brcm2708/patches-4.19/950-0531-drm-vc4-Iterate-over-all-planes-in-vc4_crtc_-dis-en-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0557-drm-vc4-Bring-fkms-into-line-with-kms-in-blocking-do.patch b/target/linux/brcm2708/patches-4.19/950-0532-drm-vc4-Bring-fkms-into-line-with-kms-in-blocking-do.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0557-drm-vc4-Bring-fkms-into-line-with-kms-in-blocking-do.patch rename to target/linux/brcm2708/patches-4.19/950-0532-drm-vc4-Bring-fkms-into-line-with-kms-in-blocking-do.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0558-drm-vc4-Increase-max_width-height-to-7680.patch b/target/linux/brcm2708/patches-4.19/950-0533-drm-vc4-Increase-max_width-height-to-7680.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0558-drm-vc4-Increase-max_width-height-to-7680.patch rename to target/linux/brcm2708/patches-4.19/950-0533-drm-vc4-Increase-max_width-height-to-7680.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0559-drm-vc4-FKMS-reads-the-EDID-from-fw-and-supports-mod.patch b/target/linux/brcm2708/patches-4.19/950-0534-drm-vc4-FKMS-reads-the-EDID-from-fw-and-supports-mod.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0559-drm-vc4-FKMS-reads-the-EDID-from-fw-and-supports-mod.patch rename to target/linux/brcm2708/patches-4.19/950-0534-drm-vc4-FKMS-reads-the-EDID-from-fw-and-supports-mod.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0560-clk-bcm2835-Add-support-for-setting-leaf-clock-rates.patch b/target/linux/brcm2708/patches-4.19/950-0535-clk-bcm2835-Add-support-for-setting-leaf-clock-rates.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0560-clk-bcm2835-Add-support-for-setting-leaf-clock-rates.patch rename to target/linux/brcm2708/patches-4.19/950-0535-clk-bcm2835-Add-support-for-setting-leaf-clock-rates.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0561-clk-bcm2835-Allow-reparenting-leaf-clocks-while-they.patch b/target/linux/brcm2708/patches-4.19/950-0536-clk-bcm2835-Allow-reparenting-leaf-clocks-while-they.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0561-clk-bcm2835-Allow-reparenting-leaf-clocks-while-they.patch rename to target/linux/brcm2708/patches-4.19/950-0536-clk-bcm2835-Allow-reparenting-leaf-clocks-while-they.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0562-drm-v3d-Add-support-for-compute-shader-dispatch.patch b/target/linux/brcm2708/patches-4.19/950-0537-drm-v3d-Add-support-for-compute-shader-dispatch.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0562-drm-v3d-Add-support-for-compute-shader-dispatch.patch rename to target/linux/brcm2708/patches-4.19/950-0537-drm-v3d-Add-support-for-compute-shader-dispatch.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0563-drm-v3d-Clock-V3D-down-when-not-in-use.patch b/target/linux/brcm2708/patches-4.19/950-0538-drm-v3d-Clock-V3D-down-when-not-in-use.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0563-drm-v3d-Clock-V3D-down-when-not-in-use.patch rename to target/linux/brcm2708/patches-4.19/950-0538-drm-v3d-Clock-V3D-down-when-not-in-use.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0565-drm-vc4-firmware-kms-Remove-incorrect-overscan-suppo.patch b/target/linux/brcm2708/patches-4.19/950-0539-drm-vc4-firmware-kms-Remove-incorrect-overscan-suppo.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0565-drm-vc4-firmware-kms-Remove-incorrect-overscan-suppo.patch rename to target/linux/brcm2708/patches-4.19/950-0539-drm-vc4-firmware-kms-Remove-incorrect-overscan-suppo.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0566-drm-vc4-Log-flags-in-fkms-mode-set.patch b/target/linux/brcm2708/patches-4.19/950-0540-drm-vc4-Log-flags-in-fkms-mode-set.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0566-drm-vc4-Log-flags-in-fkms-mode-set.patch rename to target/linux/brcm2708/patches-4.19/950-0540-drm-vc4-Log-flags-in-fkms-mode-set.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0567-drm-vc4-firmware-kms-Fix-DSI-display-support.patch b/target/linux/brcm2708/patches-4.19/950-0541-drm-vc4-firmware-kms-Fix-DSI-display-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0567-drm-vc4-firmware-kms-Fix-DSI-display-support.patch rename to target/linux/brcm2708/patches-4.19/950-0541-drm-vc4-firmware-kms-Fix-DSI-display-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0568-drm-vc4-Probe-DPI-DSI-timings-from-the-firmware.patch b/target/linux/brcm2708/patches-4.19/950-0542-drm-vc4-Probe-DPI-DSI-timings-from-the-firmware.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0568-drm-vc4-Probe-DPI-DSI-timings-from-the-firmware.patch rename to target/linux/brcm2708/patches-4.19/950-0542-drm-vc4-Probe-DPI-DSI-timings-from-the-firmware.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0569-drm-vc4-handle-the-case-where-there-are-no-available.patch b/target/linux/brcm2708/patches-4.19/950-0543-drm-vc4-handle-the-case-where-there-are-no-available.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0569-drm-vc4-handle-the-case-where-there-are-no-available.patch rename to target/linux/brcm2708/patches-4.19/950-0543-drm-vc4-handle-the-case-where-there-are-no-available.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0570-drm-vc4-Support-the-VEC-in-FKMS.patch b/target/linux/brcm2708/patches-4.19/950-0544-drm-vc4-Support-the-VEC-in-FKMS.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0570-drm-vc4-Support-the-VEC-in-FKMS.patch rename to target/linux/brcm2708/patches-4.19/950-0544-drm-vc4-Support-the-VEC-in-FKMS.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0571-drm-vc4-Fixup-typo-when-setting-HDMI-aspect-ratio.patch b/target/linux/brcm2708/patches-4.19/950-0545-drm-vc4-Fixup-typo-when-setting-HDMI-aspect-ratio.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0571-drm-vc4-Fixup-typo-when-setting-HDMI-aspect-ratio.patch rename to target/linux/brcm2708/patches-4.19/950-0545-drm-vc4-Fixup-typo-when-setting-HDMI-aspect-ratio.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0572-drm-vc4-Correct-SAND-support-for-FKMS.patch b/target/linux/brcm2708/patches-4.19/950-0546-drm-vc4-Correct-SAND-support-for-FKMS.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0572-drm-vc4-Correct-SAND-support-for-FKMS.patch rename to target/linux/brcm2708/patches-4.19/950-0546-drm-vc4-Correct-SAND-support-for-FKMS.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0573-drm-vc4-fkms-to-query-the-VPU-for-HDMI-clock-limits.patch b/target/linux/brcm2708/patches-4.19/950-0547-drm-vc4-fkms-to-query-the-VPU-for-HDMI-clock-limits.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0573-drm-vc4-fkms-to-query-the-VPU-for-HDMI-clock-limits.patch rename to target/linux/brcm2708/patches-4.19/950-0547-drm-vc4-fkms-to-query-the-VPU-for-HDMI-clock-limits.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0574-drm-vc4-Max-resolution-of-7680-is-conditional-on-bei.patch b/target/linux/brcm2708/patches-4.19/950-0548-drm-vc4-Max-resolution-of-7680-is-conditional-on-bei.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0574-drm-vc4-Max-resolution-of-7680-is-conditional-on-bei.patch rename to target/linux/brcm2708/patches-4.19/950-0548-drm-vc4-Max-resolution-of-7680-is-conditional-on-bei.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0575-staging-vc-sm-cma-Remove-obsolete-comment-and-make-f.patch b/target/linux/brcm2708/patches-4.19/950-0549-staging-vc-sm-cma-Remove-obsolete-comment-and-make-f.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0575-staging-vc-sm-cma-Remove-obsolete-comment-and-make-f.patch rename to target/linux/brcm2708/patches-4.19/950-0549-staging-vc-sm-cma-Remove-obsolete-comment-and-make-f.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0576-staging-vc-sm-cma-Add-in-allocation-for-VPU-requests.patch b/target/linux/brcm2708/patches-4.19/950-0550-staging-vc-sm-cma-Add-in-allocation-for-VPU-requests.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0576-staging-vc-sm-cma-Add-in-allocation-for-VPU-requests.patch rename to target/linux/brcm2708/patches-4.19/950-0550-staging-vc-sm-cma-Add-in-allocation-for-VPU-requests.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0577-staging-vc-sm-cma-Update-TODO.patch b/target/linux/brcm2708/patches-4.19/950-0551-staging-vc-sm-cma-Update-TODO.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0577-staging-vc-sm-cma-Update-TODO.patch rename to target/linux/brcm2708/patches-4.19/950-0551-staging-vc-sm-cma-Update-TODO.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0578-staging-vc-sm-cma-Add-in-userspace-allocation-API.patch b/target/linux/brcm2708/patches-4.19/950-0552-staging-vc-sm-cma-Add-in-userspace-allocation-API.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0578-staging-vc-sm-cma-Add-in-userspace-allocation-API.patch rename to target/linux/brcm2708/patches-4.19/950-0552-staging-vc-sm-cma-Add-in-userspace-allocation-API.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0579-staging-vcsm-cma-Add-cache-control-ioctls.patch b/target/linux/brcm2708/patches-4.19/950-0553-staging-vcsm-cma-Add-cache-control-ioctls.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0579-staging-vcsm-cma-Add-cache-control-ioctls.patch rename to target/linux/brcm2708/patches-4.19/950-0553-staging-vcsm-cma-Add-cache-control-ioctls.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0580-staging-vcsm-cma-Alter-dev-node-permissions-to-0666.patch b/target/linux/brcm2708/patches-4.19/950-0554-staging-vcsm-cma-Alter-dev-node-permissions-to-0666.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0580-staging-vcsm-cma-Alter-dev-node-permissions-to-0666.patch rename to target/linux/brcm2708/patches-4.19/950-0554-staging-vcsm-cma-Alter-dev-node-permissions-to-0666.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0581-staging-vcsm-cma-Drop-logging-level-on-messages-in-v.patch b/target/linux/brcm2708/patches-4.19/950-0555-staging-vcsm-cma-Drop-logging-level-on-messages-in-v.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0581-staging-vcsm-cma-Drop-logging-level-on-messages-in-v.patch rename to target/linux/brcm2708/patches-4.19/950-0555-staging-vcsm-cma-Drop-logging-level-on-messages-in-v.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0582-staging-vcsm-cma-Fixup-the-alloc-code-handling-of-ke.patch b/target/linux/brcm2708/patches-4.19/950-0556-staging-vcsm-cma-Fixup-the-alloc-code-handling-of-ke.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0582-staging-vcsm-cma-Fixup-the-alloc-code-handling-of-ke.patch rename to target/linux/brcm2708/patches-4.19/950-0556-staging-vcsm-cma-Fixup-the-alloc-code-handling-of-ke.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0583-Pulled-in-the-multi-frame-buffer-support-from-the-Pi.patch b/target/linux/brcm2708/patches-4.19/950-0557-Pulled-in-the-multi-frame-buffer-support-from-the-Pi.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0583-Pulled-in-the-multi-frame-buffer-support-from-the-Pi.patch rename to target/linux/brcm2708/patches-4.19/950-0557-Pulled-in-the-multi-frame-buffer-support-from-the-Pi.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0584-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch b/target/linux/brcm2708/patches-4.19/950-0558-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0584-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch rename to target/linux/brcm2708/patches-4.19/950-0558-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0585-ARM-dts-Add-bcm2711-rpi-4-b.dts-and-components.patch b/target/linux/brcm2708/patches-4.19/950-0559-ARM-dts-Add-bcm2711-rpi-4-b.dts-and-components.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0585-ARM-dts-Add-bcm2711-rpi-4-b.dts-and-components.patch rename to target/linux/brcm2708/patches-4.19/950-0559-ARM-dts-Add-bcm2711-rpi-4-b.dts-and-components.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0586-overlays-Add-i2c3-6-and-uart2-5-overlays.patch b/target/linux/brcm2708/patches-4.19/950-0560-overlays-Add-i2c3-6-and-uart2-5-overlays.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0586-overlays-Add-i2c3-6-and-uart2-5-overlays.patch rename to target/linux/brcm2708/patches-4.19/950-0560-overlays-Add-i2c3-6-and-uart2-5-overlays.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0587-spi-devicetree-add-overlays-for-spi-3-to-6.patch b/target/linux/brcm2708/patches-4.19/950-0561-spi-devicetree-add-overlays-for-spi-3-to-6.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0587-spi-devicetree-add-overlays-for-spi-3-to-6.patch rename to target/linux/brcm2708/patches-4.19/950-0561-spi-devicetree-add-overlays-for-spi-3-to-6.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0588-overlays-Add-the-spi-gpio40-45-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0562-overlays-Add-the-spi-gpio40-45-overlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0588-overlays-Add-the-spi-gpio40-45-overlay.patch rename to target/linux/brcm2708/patches-4.19/950-0562-overlays-Add-the-spi-gpio40-45-overlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0589-config-Permit-LPAE-and-PCIE_BRCMSTB-on-BCM2835.patch b/target/linux/brcm2708/patches-4.19/950-0563-config-Permit-LPAE-and-PCIE_BRCMSTB-on-BCM2835.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0589-config-Permit-LPAE-and-PCIE_BRCMSTB-on-BCM2835.patch rename to target/linux/brcm2708/patches-4.19/950-0563-config-Permit-LPAE-and-PCIE_BRCMSTB-on-BCM2835.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0590-2711-Add-basic-64-bit-support.patch b/target/linux/brcm2708/patches-4.19/950-0564-2711-Add-basic-64-bit-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0590-2711-Add-basic-64-bit-support.patch rename to target/linux/brcm2708/patches-4.19/950-0564-2711-Add-basic-64-bit-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0564-HACK-clk-bcm2835-Add-BCM2838_CLOCK_EMMC2-support.patch b/target/linux/brcm2708/patches-4.19/950-0564-HACK-clk-bcm2835-Add-BCM2838_CLOCK_EMMC2-support.patch deleted file mode 100644 index 3a9fa5e7158..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0564-HACK-clk-bcm2835-Add-BCM2838_CLOCK_EMMC2-support.patch +++ /dev/null @@ -1,72 +0,0 @@ -From e5cefebc24b7684f4f84a539259612c8f5a4975b Mon Sep 17 00:00:00 2001 -From: Stefan Wahren -Date: Thu, 2 May 2019 23:42:29 +0200 -Subject: [PATCH] HACK: clk-bcm2835: Add BCM2838_CLOCK_EMMC2 support - -The new BCM2838 supports an additional emmc2 clock. So add a new -compatible to register this clock only for BCM2838. - -Signed-off-by: Stefan Wahren ---- - drivers/clk/bcm/clk-bcm2835.c | 20 ++++++++++++++++++-- - include/dt-bindings/clock/bcm2835.h | 2 ++ - 2 files changed, 20 insertions(+), 2 deletions(-) - ---- a/drivers/clk/bcm/clk-bcm2835.c -+++ b/drivers/clk/bcm/clk-bcm2835.c -@@ -124,6 +124,8 @@ - #define CM_AVEODIV 0x1bc - #define CM_EMMCCTL 0x1c0 - #define CM_EMMCDIV 0x1c4 -+#define CM_EMMC2CTL 0x1d0 -+#define CM_EMMC2DIV 0x1d4 - - /* General bits for the CM_*CTL regs */ - # define CM_ENABLE BIT(4) -@@ -2047,6 +2049,15 @@ static const struct bcm2835_clk_desc clk - .frac_bits = 8, - .tcnt_mux = 39), - -+ /* EMMC2 clock (only available for BCM2838) */ -+ [BCM2838_CLOCK_EMMC2] = REGISTER_PER_CLK( -+ .name = "emmc2", -+ .ctl_reg = CM_EMMC2CTL, -+ .div_reg = CM_EMMC2DIV, -+ .int_bits = 4, -+ .frac_bits = 8, -+ .tcnt_mux = 42), -+ - /* General purpose (GPIO) clocks */ - [BCM2835_CLOCK_GP0] = REGISTER_PER_CLK( - .name = "gp0", -@@ -2276,8 +2287,12 @@ static int bcm2835_clk_probe(struct plat - - for (i = 0; i < asize; i++) { - desc = &clk_desc_array[i]; -- if (desc->clk_register && desc->data) -- hws[i] = desc->clk_register(cprman, desc->data); -+ if (desc->clk_register && desc->data) { -+ if ((i != BCM2838_CLOCK_EMMC2) || -+ of_device_is_compatible(fw_node, "brcm,bcm2838-cprman")) { -+ hws[i] = desc->clk_register(cprman, desc->data); -+ } -+ } - } - - ret = bcm2835_mark_sdc_parent_critical(hws[BCM2835_CLOCK_SDRAM]->clk); -@@ -2297,6 +2312,7 @@ static int bcm2835_clk_probe(struct plat - - static const struct of_device_id bcm2835_clk_of_match[] = { - { .compatible = "brcm,bcm2835-cprman", }, -+ { .compatible = "brcm,bcm2838-cprman", }, - {} - }; - MODULE_DEVICE_TABLE(of, bcm2835_clk_of_match); ---- a/include/dt-bindings/clock/bcm2835.h -+++ b/include/dt-bindings/clock/bcm2835.h -@@ -66,3 +66,5 @@ - #define BCM2835_CLOCK_DSI1E 48 - #define BCM2835_CLOCK_DSI0P 49 - #define BCM2835_CLOCK_DSI1P 50 -+ -+#define BCM2838_CLOCK_EMMC2 51 diff --git a/target/linux/brcm2708/patches-4.19/950-0591-ARM-dts-bcm283x-Correct-vchiq-compatible-string-2840.patch b/target/linux/brcm2708/patches-4.19/950-0565-ARM-dts-bcm283x-Correct-vchiq-compatible-string-2840.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0591-ARM-dts-bcm283x-Correct-vchiq-compatible-string-2840.patch rename to target/linux/brcm2708/patches-4.19/950-0565-ARM-dts-bcm283x-Correct-vchiq-compatible-string-2840.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0592-arm-dts-Change-downstream-vchiq-compatible-string.patch b/target/linux/brcm2708/patches-4.19/950-0566-arm-dts-Change-downstream-vchiq-compatible-string.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0592-arm-dts-Change-downstream-vchiq-compatible-string.patch rename to target/linux/brcm2708/patches-4.19/950-0566-arm-dts-Change-downstream-vchiq-compatible-string.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0593-bcm2835-dma-Add-proper-40-bit-DMA-support.patch b/target/linux/brcm2708/patches-4.19/950-0567-bcm2835-dma-Add-proper-40-bit-DMA-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0593-bcm2835-dma-Add-proper-40-bit-DMA-support.patch rename to target/linux/brcm2708/patches-4.19/950-0567-bcm2835-dma-Add-proper-40-bit-DMA-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0594-BCM270X_DT-Leave-bulk-channel-in-dma-channel-mask.patch b/target/linux/brcm2708/patches-4.19/950-0568-BCM270X_DT-Leave-bulk-channel-in-dma-channel-mask.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0594-BCM270X_DT-Leave-bulk-channel-in-dma-channel-mask.patch rename to target/linux/brcm2708/patches-4.19/950-0568-BCM270X_DT-Leave-bulk-channel-in-dma-channel-mask.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0595-SQUASH-bcm2835-dma-Remove-debugging.patch b/target/linux/brcm2708/patches-4.19/950-0569-SQUASH-bcm2835-dma-Remove-debugging.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0595-SQUASH-bcm2835-dma-Remove-debugging.patch rename to target/linux/brcm2708/patches-4.19/950-0569-SQUASH-bcm2835-dma-Remove-debugging.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0596-dts-Include-CSI-lane-config-for-csi1.patch b/target/linux/brcm2708/patches-4.19/950-0570-dts-Include-CSI-lane-config-for-csi1.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0596-dts-Include-CSI-lane-config-for-csi1.patch rename to target/linux/brcm2708/patches-4.19/950-0570-dts-Include-CSI-lane-config-for-csi1.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0597-drm-vc4-Fix-T-format-modifiers-in-FKMS.patch b/target/linux/brcm2708/patches-4.19/950-0571-drm-vc4-Fix-T-format-modifiers-in-FKMS.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0597-drm-vc4-Fix-T-format-modifiers-in-FKMS.patch rename to target/linux/brcm2708/patches-4.19/950-0571-drm-vc4-Fix-T-format-modifiers-in-FKMS.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0598-bcm2711-dts-Disable-the-v3d-node-by-default.patch b/target/linux/brcm2708/patches-4.19/950-0572-bcm2711-dts-Disable-the-v3d-node-by-default.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0598-bcm2711-dts-Disable-the-v3d-node-by-default.patch rename to target/linux/brcm2708/patches-4.19/950-0572-bcm2711-dts-Disable-the-v3d-node-by-default.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0599-drm-vc4-Remove-340MHz-clock-limit-from-FKMS-now-scra.patch b/target/linux/brcm2708/patches-4.19/950-0573-drm-vc4-Remove-340MHz-clock-limit-from-FKMS-now-scra.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0599-drm-vc4-Remove-340MHz-clock-limit-from-FKMS-now-scra.patch rename to target/linux/brcm2708/patches-4.19/950-0573-drm-vc4-Remove-340MHz-clock-limit-from-FKMS-now-scra.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0601-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch b/target/linux/brcm2708/patches-4.19/950-0574-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0601-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch rename to target/linux/brcm2708/patches-4.19/950-0574-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0602-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch b/target/linux/brcm2708/patches-4.19/950-0575-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0602-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch rename to target/linux/brcm2708/patches-4.19/950-0575-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0603-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch b/target/linux/brcm2708/patches-4.19/950-0576-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0603-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch rename to target/linux/brcm2708/patches-4.19/950-0576-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0604-drm-vc4-Add-status-of-which-display-is-updated-throu.patch b/target/linux/brcm2708/patches-4.19/950-0577-drm-vc4-Add-status-of-which-display-is-updated-throu.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0604-drm-vc4-Add-status-of-which-display-is-updated-throu.patch rename to target/linux/brcm2708/patches-4.19/950-0577-drm-vc4-Add-status-of-which-display-is-updated-throu.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0605-drm-vc4-In-FKMS-look-at-the-modifiers-correctly-for-.patch b/target/linux/brcm2708/patches-4.19/950-0578-drm-vc4-In-FKMS-look-at-the-modifiers-correctly-for-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0605-drm-vc4-In-FKMS-look-at-the-modifiers-correctly-for-.patch rename to target/linux/brcm2708/patches-4.19/950-0578-drm-vc4-In-FKMS-look-at-the-modifiers-correctly-for-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0606-arm-dts-Fix-Pi4-PWR-LED-configuration.patch b/target/linux/brcm2708/patches-4.19/950-0579-arm-dts-Fix-Pi4-PWR-LED-configuration.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0606-arm-dts-Fix-Pi4-PWR-LED-configuration.patch rename to target/linux/brcm2708/patches-4.19/950-0579-arm-dts-Fix-Pi4-PWR-LED-configuration.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0607-bcm2838.dtsi-Correct-gic400-memory-address-ranges.patch b/target/linux/brcm2708/patches-4.19/950-0580-bcm2838.dtsi-Correct-gic400-memory-address-ranges.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0607-bcm2838.dtsi-Correct-gic400-memory-address-ranges.patch rename to target/linux/brcm2708/patches-4.19/950-0580-bcm2838.dtsi-Correct-gic400-memory-address-ranges.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0608-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch b/target/linux/brcm2708/patches-4.19/950-0581-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0608-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch rename to target/linux/brcm2708/patches-4.19/950-0581-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0609-drm-vc4-Limit-fkms-to-modes-85Hz.patch b/target/linux/brcm2708/patches-4.19/950-0582-drm-vc4-Limit-fkms-to-modes-85Hz.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0609-drm-vc4-Limit-fkms-to-modes-85Hz.patch rename to target/linux/brcm2708/patches-4.19/950-0582-drm-vc4-Limit-fkms-to-modes-85Hz.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0610-arm-bcm2835-Add-bcm2838-compatible-string.patch b/target/linux/brcm2708/patches-4.19/950-0583-arm-bcm2835-Add-bcm2838-compatible-string.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0610-arm-bcm2835-Add-bcm2838-compatible-string.patch rename to target/linux/brcm2708/patches-4.19/950-0583-arm-bcm2835-Add-bcm2838-compatible-string.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0611-arm-dts-Improve-the-bcm27xx-inclusion-hierarchy.patch b/target/linux/brcm2708/patches-4.19/950-0584-arm-dts-Improve-the-bcm27xx-inclusion-hierarchy.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0611-arm-dts-Improve-the-bcm27xx-inclusion-hierarchy.patch rename to target/linux/brcm2708/patches-4.19/950-0584-arm-dts-Improve-the-bcm27xx-inclusion-hierarchy.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0612-arm-dts-First-draft-of-upstream-Pi4-DTS.patch b/target/linux/brcm2708/patches-4.19/950-0585-arm-dts-First-draft-of-upstream-Pi4-DTS.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0612-arm-dts-First-draft-of-upstream-Pi4-DTS.patch rename to target/linux/brcm2708/patches-4.19/950-0585-arm-dts-First-draft-of-upstream-Pi4-DTS.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0613-overlays-Fix-compatible-string-for-ds1307-RTC.patch b/target/linux/brcm2708/patches-4.19/950-0586-overlays-Fix-compatible-string-for-ds1307-RTC.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0613-overlays-Fix-compatible-string-for-ds1307-RTC.patch rename to target/linux/brcm2708/patches-4.19/950-0586-overlays-Fix-compatible-string-for-ds1307-RTC.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0614-overlays-Fix-further-maxim-ds1307-references.patch b/target/linux/brcm2708/patches-4.19/950-0587-overlays-Fix-further-maxim-ds1307-references.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0614-overlays-Fix-further-maxim-ds1307-references.patch rename to target/linux/brcm2708/patches-4.19/950-0587-overlays-Fix-further-maxim-ds1307-references.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0615-overlays-Cosmetic-change-to-upstream-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0588-overlays-Cosmetic-change-to-upstream-overlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0615-overlays-Cosmetic-change-to-upstream-overlay.patch rename to target/linux/brcm2708/patches-4.19/950-0588-overlays-Cosmetic-change-to-upstream-overlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0616-w1-ds2805-rename-w1_family-struct-fixing-c-p-typo.patch b/target/linux/brcm2708/patches-4.19/950-0589-w1-ds2805-rename-w1_family-struct-fixing-c-p-typo.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0616-w1-ds2805-rename-w1_family-struct-fixing-c-p-typo.patch rename to target/linux/brcm2708/patches-4.19/950-0589-w1-ds2805-rename-w1_family-struct-fixing-c-p-typo.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0617-w1-ds2413-output_write-cosmetic-fixes-simplify.patch b/target/linux/brcm2708/patches-4.19/950-0590-w1-ds2413-output_write-cosmetic-fixes-simplify.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0617-w1-ds2413-output_write-cosmetic-fixes-simplify.patch rename to target/linux/brcm2708/patches-4.19/950-0590-w1-ds2413-output_write-cosmetic-fixes-simplify.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0618-w1-ds2413-add-retry-support-to-state_read.patch b/target/linux/brcm2708/patches-4.19/950-0591-w1-ds2413-add-retry-support-to-state_read.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0618-w1-ds2413-add-retry-support-to-state_read.patch rename to target/linux/brcm2708/patches-4.19/950-0591-w1-ds2413-add-retry-support-to-state_read.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0619-w1-ds2413-when-the-slave-is-not-responding-during-re.patch b/target/linux/brcm2708/patches-4.19/950-0592-w1-ds2413-when-the-slave-is-not-responding-during-re.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0619-w1-ds2413-when-the-slave-is-not-responding-during-re.patch rename to target/linux/brcm2708/patches-4.19/950-0592-w1-ds2413-when-the-slave-is-not-responding-during-re.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0620-w1-ds2413-fix-state-byte-comparision.patch b/target/linux/brcm2708/patches-4.19/950-0593-w1-ds2413-fix-state-byte-comparision.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0620-w1-ds2413-fix-state-byte-comparision.patch rename to target/linux/brcm2708/patches-4.19/950-0593-w1-ds2413-fix-state-byte-comparision.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0621-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch b/target/linux/brcm2708/patches-4.19/950-0594-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0621-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch rename to target/linux/brcm2708/patches-4.19/950-0594-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0622-video-bcm2708_fb-Revert-cma-allocation-attempt.patch b/target/linux/brcm2708/patches-4.19/950-0595-video-bcm2708_fb-Revert-cma-allocation-attempt.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0622-video-bcm2708_fb-Revert-cma-allocation-attempt.patch rename to target/linux/brcm2708/patches-4.19/950-0595-video-bcm2708_fb-Revert-cma-allocation-attempt.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0623-drm-vc4-Add-support-for-color-encoding-on-YUV-planes.patch b/target/linux/brcm2708/patches-4.19/950-0596-drm-vc4-Add-support-for-color-encoding-on-YUV-planes.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0623-drm-vc4-Add-support-for-color-encoding-on-YUV-planes.patch rename to target/linux/brcm2708/patches-4.19/950-0596-drm-vc4-Add-support-for-color-encoding-on-YUV-planes.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0624-arm-dts-Add-coherent_pool-1M-to-Pi-4-bootargs.patch b/target/linux/brcm2708/patches-4.19/950-0597-arm-dts-Add-coherent_pool-1M-to-Pi-4-bootargs.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0624-arm-dts-Add-coherent_pool-1M-to-Pi-4-bootargs.patch rename to target/linux/brcm2708/patches-4.19/950-0597-arm-dts-Add-coherent_pool-1M-to-Pi-4-bootargs.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0625-overlays-Correct-gpio-fan-gpio-flags-for-4.19.patch b/target/linux/brcm2708/patches-4.19/950-0598-overlays-Correct-gpio-fan-gpio-flags-for-4.19.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0625-overlays-Correct-gpio-fan-gpio-flags-for-4.19.patch rename to target/linux/brcm2708/patches-4.19/950-0598-overlays-Correct-gpio-fan-gpio-flags-for-4.19.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0626-staging-vcsm-cma-Remove-cache-manipulation-ioctl-fro.patch b/target/linux/brcm2708/patches-4.19/950-0599-staging-vcsm-cma-Remove-cache-manipulation-ioctl-fro.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0626-staging-vcsm-cma-Remove-cache-manipulation-ioctl-fro.patch rename to target/linux/brcm2708/patches-4.19/950-0599-staging-vcsm-cma-Remove-cache-manipulation-ioctl-fro.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0600-Revert-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.patch b/target/linux/brcm2708/patches-4.19/950-0600-Revert-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.patch deleted file mode 100644 index 0ad70eb1e03..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0600-Revert-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.patch +++ /dev/null @@ -1,113 +0,0 @@ -From 5f6feeaf528cf922a82f11e5b0711f5fe9d7538d Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Fri, 7 Jun 2019 14:50:12 +0100 -Subject: [PATCH] Revert "usb: xhci: hack xhci_urb_enqueue to support - hid.mousepoll behaviour" - -This reverts commit 1cf1071a79f320bc4497a3ade77431f04442eb17. ---- - drivers/usb/host/xhci.c | 86 ----------------------------------------- - 1 file changed, 86 deletions(-) - ---- a/drivers/usb/host/xhci.c -+++ b/drivers/usb/host/xhci.c -@@ -1425,87 +1425,6 @@ command_cleanup: - } - - /* -- * RPI: Fixup endpoint intervals when requested -- * - Check interval versus the (cached) endpoint context -- * - set the endpoint interval to the new value -- * - force an endpoint configure command -- */ --static void xhci_fixup_interval(struct xhci_hcd *xhci, struct urb *urb, -- unsigned int slot_id, unsigned int ep_index) --{ -- struct xhci_ep_ctx *ep_ctx_out, *ep_ctx_in; -- struct xhci_command *command; -- struct xhci_input_control_ctx *ctrl_ctx; -- struct xhci_virt_device *vdev; -- int xhci_interval, ep_interval; -- int ret; -- unsigned long flags; -- u32 ep_info_tmp; -- -- spin_lock_irqsave(&xhci->lock, flags); -- -- vdev = xhci->devs[slot_id]; -- /* Get context-derived endpoint interval */ -- ep_ctx_out = xhci_get_ep_ctx(xhci, vdev->out_ctx, ep_index); -- ep_ctx_in = xhci_get_ep_ctx(xhci, vdev->in_ctx, ep_index); -- xhci_interval = EP_INTERVAL_TO_UFRAMES(le32_to_cpu(ep_ctx_out->ep_info)); -- ep_interval = urb->interval * 8; -- -- if (ep_interval == xhci_interval) { -- spin_unlock_irqrestore(&xhci->lock, flags); -- return; -- } -- -- xhci_dbg(xhci, "Fixup interval ep_interval=%d xhci_interval=%d\n", -- ep_interval, xhci_interval); -- command = xhci_alloc_command_with_ctx(xhci, true, GFP_ATOMIC); -- if (!command) { -- /* Failure here is benign, poll at the original rate */ -- spin_unlock_irqrestore(&xhci->lock, flags); -- return; -- } -- -- /* xHCI uses exponents for intervals... */ -- xhci_interval = fls(ep_interval) - 1; -- xhci_interval = clamp_val(xhci_interval, 3, 10); -- ep_info_tmp = le32_to_cpu(ep_ctx_out->ep_info); -- ep_info_tmp &= ~EP_INTERVAL(255); -- ep_info_tmp |= EP_INTERVAL(xhci_interval); -- -- /* Keep the endpoint context up-to-date while issuing the command. */ -- xhci_endpoint_copy(xhci, vdev->in_ctx, -- vdev->out_ctx, ep_index); -- ep_ctx_in->ep_info = cpu_to_le32(ep_info_tmp); -- -- /* -- * We need to drop the lock, so take an explicit copy -- * of the ep context. -- */ -- xhci_endpoint_copy(xhci, command->in_ctx, vdev->in_ctx, ep_index); -- -- ctrl_ctx = xhci_get_input_control_ctx(command->in_ctx); -- if (!ctrl_ctx) { -- xhci_warn(xhci, -- "%s: Could not get input context, bad type.\n", -- __func__); -- spin_unlock_irqrestore(&xhci->lock, flags); -- xhci_free_command(xhci, command); -- return; -- } -- ctrl_ctx->add_flags = xhci_get_endpoint_flag_from_index(ep_index); -- ctrl_ctx->drop_flags = 0; -- -- spin_unlock_irqrestore(&xhci->lock, flags); -- -- ret = xhci_configure_endpoint(xhci, urb->dev, command, -- false, false); -- if (ret) -- xhci_warn(xhci, "%s: Configure endpoint failed: %d\n", -- __func__, ret); -- xhci_free_command(xhci, command); --} -- --/* - * non-error returns are a promise to giveback() the urb later - * we drop ownership so next owner (or urb unlink) can get it - */ -@@ -1573,11 +1492,6 @@ static int xhci_urb_enqueue(struct usb_h - } - } - -- if (usb_endpoint_xfer_int(&urb->ep->desc) && -- (urb->dev->speed == USB_SPEED_FULL || -- urb->dev->speed == USB_SPEED_LOW)) -- xhci_fixup_interval(xhci, urb, slot_id, ep_index); -- - spin_lock_irqsave(&xhci->lock, flags); - - if (xhci->xhc_state & XHCI_STATE_DYING) { diff --git a/target/linux/brcm2708/patches-4.19/950-0627-staging-vcsm-cma-Rework-to-use-dma-APIs-not-CMA.patch b/target/linux/brcm2708/patches-4.19/950-0600-staging-vcsm-cma-Rework-to-use-dma-APIs-not-CMA.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0627-staging-vcsm-cma-Rework-to-use-dma-APIs-not-CMA.patch rename to target/linux/brcm2708/patches-4.19/950-0600-staging-vcsm-cma-Rework-to-use-dma-APIs-not-CMA.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0628-staging-vc-sm-cma-Fix-the-few-remaining-coding-style.patch b/target/linux/brcm2708/patches-4.19/950-0601-staging-vc-sm-cma-Fix-the-few-remaining-coding-style.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0628-staging-vc-sm-cma-Fix-the-few-remaining-coding-style.patch rename to target/linux/brcm2708/patches-4.19/950-0601-staging-vc-sm-cma-Fix-the-few-remaining-coding-style.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0630-media-videodev2.h-add-new-capabilities-for-buffer-ty.patch b/target/linux/brcm2708/patches-4.19/950-0602-media-videodev2.h-add-new-capabilities-for-buffer-ty.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0630-media-videodev2.h-add-new-capabilities-for-buffer-ty.patch rename to target/linux/brcm2708/patches-4.19/950-0602-media-videodev2.h-add-new-capabilities-for-buffer-ty.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0631-media-vb2-set-reqbufs-create_bufs-capabilities.patch b/target/linux/brcm2708/patches-4.19/950-0603-media-vb2-set-reqbufs-create_bufs-capabilities.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0631-media-vb2-set-reqbufs-create_bufs-capabilities.patch rename to target/linux/brcm2708/patches-4.19/950-0603-media-vb2-set-reqbufs-create_bufs-capabilities.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0632-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch b/target/linux/brcm2708/patches-4.19/950-0604-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0632-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch rename to target/linux/brcm2708/patches-4.19/950-0604-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0633-overlays-Add-real-parameters-to-the-rpi-poe-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0605-overlays-Add-real-parameters-to-the-rpi-poe-overlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0633-overlays-Add-real-parameters-to-the-rpi-poe-overlay.patch rename to target/linux/brcm2708/patches-4.19/950-0605-overlays-Add-real-parameters-to-the-rpi-poe-overlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0634-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch b/target/linux/brcm2708/patches-4.19/950-0606-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0634-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch rename to target/linux/brcm2708/patches-4.19/950-0606-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0635-i2c-bcm2835-Move-IRQ-request-after-clock-code-in-pro.patch b/target/linux/brcm2708/patches-4.19/950-0607-i2c-bcm2835-Move-IRQ-request-after-clock-code-in-pro.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0635-i2c-bcm2835-Move-IRQ-request-after-clock-code-in-pro.patch rename to target/linux/brcm2708/patches-4.19/950-0607-i2c-bcm2835-Move-IRQ-request-after-clock-code-in-pro.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0636-i2c-bcm2835-Ensure-clock-exists-when-probing.patch b/target/linux/brcm2708/patches-4.19/950-0608-i2c-bcm2835-Ensure-clock-exists-when-probing.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0636-i2c-bcm2835-Ensure-clock-exists-when-probing.patch rename to target/linux/brcm2708/patches-4.19/950-0608-i2c-bcm2835-Ensure-clock-exists-when-probing.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0637-overlays-i2c-gpio-Fix-the-bus-parameter.patch b/target/linux/brcm2708/patches-4.19/950-0609-overlays-i2c-gpio-Fix-the-bus-parameter.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0637-overlays-i2c-gpio-Fix-the-bus-parameter.patch rename to target/linux/brcm2708/patches-4.19/950-0609-overlays-i2c-gpio-Fix-the-bus-parameter.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0638-tty-amba-pl011-Make-TX-optimisation-conditional.patch b/target/linux/brcm2708/patches-4.19/950-0610-tty-amba-pl011-Make-TX-optimisation-conditional.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0638-tty-amba-pl011-Make-TX-optimisation-conditional.patch rename to target/linux/brcm2708/patches-4.19/950-0610-tty-amba-pl011-Make-TX-optimisation-conditional.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0639-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch b/target/linux/brcm2708/patches-4.19/950-0611-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0639-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch rename to target/linux/brcm2708/patches-4.19/950-0611-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0640-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch b/target/linux/brcm2708/patches-4.19/950-0612-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0640-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch rename to target/linux/brcm2708/patches-4.19/950-0612-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0641-arm64-bcm2835-Add-missing-dependency-on-MFD_CORE.patch b/target/linux/brcm2708/patches-4.19/950-0613-arm64-bcm2835-Add-missing-dependency-on-MFD_CORE.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0641-arm64-bcm2835-Add-missing-dependency-on-MFD_CORE.patch rename to target/linux/brcm2708/patches-4.19/950-0613-arm64-bcm2835-Add-missing-dependency-on-MFD_CORE.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0642-overlays-Add-PCF2129-RTC.patch b/target/linux/brcm2708/patches-4.19/950-0614-overlays-Add-PCF2129-RTC.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0642-overlays-Add-PCF2129-RTC.patch rename to target/linux/brcm2708/patches-4.19/950-0614-overlays-Add-PCF2129-RTC.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0643-overlays-dpi18-and-dpi24-vc4-compatibility.patch b/target/linux/brcm2708/patches-4.19/950-0615-overlays-dpi18-and-dpi24-vc4-compatibility.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0643-overlays-dpi18-and-dpi24-vc4-compatibility.patch rename to target/linux/brcm2708/patches-4.19/950-0615-overlays-dpi18-and-dpi24-vc4-compatibility.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0644-overlays-Add-i2c0-and-i2c1-for-regularity.patch b/target/linux/brcm2708/patches-4.19/950-0616-overlays-Add-i2c0-and-i2c1-for-regularity.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0644-overlays-Add-i2c0-and-i2c1-for-regularity.patch rename to target/linux/brcm2708/patches-4.19/950-0616-overlays-Add-i2c0-and-i2c1-for-regularity.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0645-Pisound-Remove-spinlock-usage-around-spi_sync.patch b/target/linux/brcm2708/patches-4.19/950-0617-Pisound-Remove-spinlock-usage-around-spi_sync.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0645-Pisound-Remove-spinlock-usage-around-spi_sync.patch rename to target/linux/brcm2708/patches-4.19/950-0617-Pisound-Remove-spinlock-usage-around-spi_sync.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0646-arm64-mm-Limit-the-DMA-zone-for-arm64.patch b/target/linux/brcm2708/patches-4.19/950-0618-arm64-mm-Limit-the-DMA-zone-for-arm64.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0646-arm64-mm-Limit-the-DMA-zone-for-arm64.patch rename to target/linux/brcm2708/patches-4.19/950-0618-arm64-mm-Limit-the-DMA-zone-for-arm64.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0647-drm-vc4-Query-firmware-for-custom-HDMI-mode.patch b/target/linux/brcm2708/patches-4.19/950-0619-drm-vc4-Query-firmware-for-custom-HDMI-mode.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0647-drm-vc4-Query-firmware-for-custom-HDMI-mode.patch rename to target/linux/brcm2708/patches-4.19/950-0619-drm-vc4-Query-firmware-for-custom-HDMI-mode.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0648-drm-vc4-Pass-the-drm-vrefresh-to-the-firmware-on-mod.patch b/target/linux/brcm2708/patches-4.19/950-0620-drm-vc4-Pass-the-drm-vrefresh-to-the-firmware-on-mod.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0648-drm-vc4-Pass-the-drm-vrefresh-to-the-firmware-on-mod.patch rename to target/linux/brcm2708/patches-4.19/950-0620-drm-vc4-Pass-the-drm-vrefresh-to-the-firmware-on-mod.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0649-overlays-audremap-Support-GPIOs-18-19.patch b/target/linux/brcm2708/patches-4.19/950-0621-overlays-audremap-Support-GPIOs-18-19.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0649-overlays-audremap-Support-GPIOs-18-19.patch rename to target/linux/brcm2708/patches-4.19/950-0621-overlays-audremap-Support-GPIOs-18-19.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0650-drm-connector-Fix-drm_mode_create_tv_properties-doc.patch b/target/linux/brcm2708/patches-4.19/950-0622-drm-connector-Fix-drm_mode_create_tv_properties-doc.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0650-drm-connector-Fix-drm_mode_create_tv_properties-doc.patch rename to target/linux/brcm2708/patches-4.19/950-0622-drm-connector-Fix-drm_mode_create_tv_properties-doc.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0651-drm-connector-Clarify-the-unit-of-TV-margins.patch b/target/linux/brcm2708/patches-4.19/950-0623-drm-connector-Clarify-the-unit-of-TV-margins.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0651-drm-connector-Clarify-the-unit-of-TV-margins.patch rename to target/linux/brcm2708/patches-4.19/950-0623-drm-connector-Clarify-the-unit-of-TV-margins.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0652-drm-connector-Allow-creation-of-margin-props-alone.patch b/target/linux/brcm2708/patches-4.19/950-0624-drm-connector-Allow-creation-of-margin-props-alone.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0652-drm-connector-Allow-creation-of-margin-props-alone.patch rename to target/linux/brcm2708/patches-4.19/950-0624-drm-connector-Allow-creation-of-margin-props-alone.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0653-drm-vc4-Take-margin-setup-into-account-when-updating.patch b/target/linux/brcm2708/patches-4.19/950-0625-drm-vc4-Take-margin-setup-into-account-when-updating.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0653-drm-vc4-Take-margin-setup-into-account-when-updating.patch rename to target/linux/brcm2708/patches-4.19/950-0625-drm-vc4-Take-margin-setup-into-account-when-updating.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0654-drm-vc4-Attach-margin-props-to-the-HDMI-connector.patch b/target/linux/brcm2708/patches-4.19/950-0626-drm-vc4-Attach-margin-props-to-the-HDMI-connector.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0654-drm-vc4-Attach-margin-props-to-the-HDMI-connector.patch rename to target/linux/brcm2708/patches-4.19/950-0626-drm-vc4-Attach-margin-props-to-the-HDMI-connector.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0655-drm-vc4-Add-support-for-margins-to-fkms.patch b/target/linux/brcm2708/patches-4.19/950-0627-drm-vc4-Add-support-for-margins-to-fkms.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0655-drm-vc4-Add-support-for-margins-to-fkms.patch rename to target/linux/brcm2708/patches-4.19/950-0627-drm-vc4-Add-support-for-margins-to-fkms.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0656-drm-vc4-Ensure-zpos-is-always-initialised.patch b/target/linux/brcm2708/patches-4.19/950-0628-drm-vc4-Ensure-zpos-is-always-initialised.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0656-drm-vc4-Ensure-zpos-is-always-initialised.patch rename to target/linux/brcm2708/patches-4.19/950-0628-drm-vc4-Ensure-zpos-is-always-initialised.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0629-Revert-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-bu.patch b/target/linux/brcm2708/patches-4.19/950-0629-Revert-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-bu.patch deleted file mode 100644 index 8161bb2659e..00000000000 --- a/target/linux/brcm2708/patches-4.19/950-0629-Revert-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-bu.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 768ab361410487b05561de854a994a2888cd430a Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Fri, 28 Jun 2019 11:30:49 +0100 -Subject: [PATCH] Revert "media: vb2: Allow reqbufs(0) with "in use" - MMAP buffers" - -This reverts commit a2c73e18c1f657de6d654f51effa0a94863abbd8. -An alternative version was accepted upstream. Revert this patch to -apply that one. - -Signed-off-by: Dave Stevenson ---- - .../media/common/videobuf2/videobuf2-core.c | 23 +++++++++++++++++++ - 1 file changed, 23 insertions(+) - ---- a/drivers/media/common/videobuf2/videobuf2-core.c -+++ b/drivers/media/common/videobuf2/videobuf2-core.c -@@ -554,6 +554,20 @@ bool vb2_buffer_in_use(struct vb2_queue - } - EXPORT_SYMBOL(vb2_buffer_in_use); - -+/* -+ * __buffers_in_use() - return true if any buffers on the queue are in use and -+ * the queue cannot be freed (by the means of REQBUFS(0)) call -+ */ -+static bool __buffers_in_use(struct vb2_queue *q) -+{ -+ unsigned int buffer; -+ for (buffer = 0; buffer < q->num_buffers; ++buffer) { -+ if (vb2_buffer_in_use(q, q->bufs[buffer])) -+ return true; -+ } -+ return false; -+} -+ - void vb2_core_querybuf(struct vb2_queue *q, unsigned int index, void *pb) - { - call_void_bufop(q, fill_user_buffer, q->bufs[index], pb); -@@ -665,7 +679,16 @@ int vb2_core_reqbufs(struct vb2_queue *q - - if (*count == 0 || q->num_buffers != 0 || - (q->memory != VB2_MEMORY_UNKNOWN && q->memory != memory)) { -+ /* -+ * We already have buffers allocated, so first check if they -+ * are not in use and can be freed. -+ */ - mutex_lock(&q->mmap_lock); -+ if (q->memory == VB2_MEMORY_MMAP && __buffers_in_use(q)) { -+ mutex_unlock(&q->mmap_lock); -+ dprintk(1, "memory in use, cannot free\n"); -+ return -EBUSY; -+ } - - /* - * Call queue_cancel to clean up any buffers in the PREPARED or diff --git a/target/linux/brcm2708/patches-4.19/950-0657-dts-bcm2838-add-missing-properties-for-pmu-and-gic-n.patch b/target/linux/brcm2708/patches-4.19/950-0629-dts-bcm2838-add-missing-properties-for-pmu-and-gic-n.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0657-dts-bcm2838-add-missing-properties-for-pmu-and-gic-n.patch rename to target/linux/brcm2708/patches-4.19/950-0629-dts-bcm2838-add-missing-properties-for-pmu-and-gic-n.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0658-adds-the-Hifiberry-DAC-ADC-PRO-version.patch b/target/linux/brcm2708/patches-4.19/950-0630-adds-the-Hifiberry-DAC-ADC-PRO-version.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0658-adds-the-Hifiberry-DAC-ADC-PRO-version.patch rename to target/linux/brcm2708/patches-4.19/950-0630-adds-the-Hifiberry-DAC-ADC-PRO-version.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0659-codecs-Correct-Katana-minimum-volume.patch b/target/linux/brcm2708/patches-4.19/950-0631-codecs-Correct-Katana-minimum-volume.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0659-codecs-Correct-Katana-minimum-volume.patch rename to target/linux/brcm2708/patches-4.19/950-0631-codecs-Correct-Katana-minimum-volume.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0660-drm-vc4-A-present-but-empty-dmas-disables-audio.patch b/target/linux/brcm2708/patches-4.19/950-0632-drm-vc4-A-present-but-empty-dmas-disables-audio.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0660-drm-vc4-A-present-but-empty-dmas-disables-audio.patch rename to target/linux/brcm2708/patches-4.19/950-0632-drm-vc4-A-present-but-empty-dmas-disables-audio.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0661-overlays-Add-audio-parameter-to-vc4-kms-v3d.patch b/target/linux/brcm2708/patches-4.19/950-0633-overlays-Add-audio-parameter-to-vc4-kms-v3d.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0661-overlays-Add-audio-parameter-to-vc4-kms-v3d.patch rename to target/linux/brcm2708/patches-4.19/950-0633-overlays-Add-audio-parameter-to-vc4-kms-v3d.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0662-overlays-Update-the-upstream-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0634-overlays-Update-the-upstream-overlay.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0662-overlays-Update-the-upstream-overlay.patch rename to target/linux/brcm2708/patches-4.19/950-0634-overlays-Update-the-upstream-overlay.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0663-Fixup-FKMS-interrupt-handing-for-non-existent-displa.patch b/target/linux/brcm2708/patches-4.19/950-0635-Fixup-FKMS-interrupt-handing-for-non-existent-displa.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0663-Fixup-FKMS-interrupt-handing-for-non-existent-displa.patch rename to target/linux/brcm2708/patches-4.19/950-0635-Fixup-FKMS-interrupt-handing-for-non-existent-displa.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0664-drivers-char-Use-correct-name-for-the-Raspberry-Pi-v.patch b/target/linux/brcm2708/patches-4.19/950-0636-drivers-char-Use-correct-name-for-the-Raspberry-Pi-v.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0664-drivers-char-Use-correct-name-for-the-Raspberry-Pi-v.patch rename to target/linux/brcm2708/patches-4.19/950-0636-drivers-char-Use-correct-name-for-the-Raspberry-Pi-v.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0665-driver-char-rpivid-also-support-legacy-name.patch b/target/linux/brcm2708/patches-4.19/950-0637-driver-char-rpivid-also-support-legacy-name.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0665-driver-char-rpivid-also-support-legacy-name.patch rename to target/linux/brcm2708/patches-4.19/950-0637-driver-char-rpivid-also-support-legacy-name.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0666-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/brcm2708/patches-4.19/950-0638-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0666-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch rename to target/linux/brcm2708/patches-4.19/950-0638-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0667-drm-vc4-Add-Broadcast-RGB-connector-property.patch b/target/linux/brcm2708/patches-4.19/950-0639-drm-vc4-Add-Broadcast-RGB-connector-property.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0667-drm-vc4-Add-Broadcast-RGB-connector-property.patch rename to target/linux/brcm2708/patches-4.19/950-0639-drm-vc4-Add-Broadcast-RGB-connector-property.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0668-drm-connector-Add-documentation-for-drm_cmdline_mode.patch b/target/linux/brcm2708/patches-4.19/950-0640-drm-connector-Add-documentation-for-drm_cmdline_mode.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0668-drm-connector-Add-documentation-for-drm_cmdline_mode.patch rename to target/linux/brcm2708/patches-4.19/950-0640-drm-connector-Add-documentation-for-drm_cmdline_mode.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0669-drm-modes-Rewrite-the-command-line-parser.patch b/target/linux/brcm2708/patches-4.19/950-0641-drm-modes-Rewrite-the-command-line-parser.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0669-drm-modes-Rewrite-the-command-line-parser.patch rename to target/linux/brcm2708/patches-4.19/950-0641-drm-modes-Rewrite-the-command-line-parser.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0670-drm-modes-Support-modes-names-on-the-command-line.patch b/target/linux/brcm2708/patches-4.19/950-0642-drm-modes-Support-modes-names-on-the-command-line.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0670-drm-modes-Support-modes-names-on-the-command-line.patch rename to target/linux/brcm2708/patches-4.19/950-0642-drm-modes-Support-modes-names-on-the-command-line.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0671-drm-modes-Allow-to-specify-rotation-and-reflection-o.patch b/target/linux/brcm2708/patches-4.19/950-0643-drm-modes-Allow-to-specify-rotation-and-reflection-o.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0671-drm-modes-Allow-to-specify-rotation-and-reflection-o.patch rename to target/linux/brcm2708/patches-4.19/950-0643-drm-modes-Allow-to-specify-rotation-and-reflection-o.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0672-drm-connector-Introduce-a-TV-margins-structure.patch b/target/linux/brcm2708/patches-4.19/950-0644-drm-connector-Introduce-a-TV-margins-structure.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0672-drm-connector-Introduce-a-TV-margins-structure.patch rename to target/linux/brcm2708/patches-4.19/950-0644-drm-connector-Introduce-a-TV-margins-structure.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0673-drm-modes-Parse-overscan-properties.patch b/target/linux/brcm2708/patches-4.19/950-0645-drm-modes-Parse-overscan-properties.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0673-drm-modes-Parse-overscan-properties.patch rename to target/linux/brcm2708/patches-4.19/950-0645-drm-modes-Parse-overscan-properties.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0674-drm-atomic-Add-a-function-to-reset-connector-TV-prop.patch b/target/linux/brcm2708/patches-4.19/950-0646-drm-atomic-Add-a-function-to-reset-connector-TV-prop.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0674-drm-atomic-Add-a-function-to-reset-connector-TV-prop.patch rename to target/linux/brcm2708/patches-4.19/950-0646-drm-atomic-Add-a-function-to-reset-connector-TV-prop.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0675-drm-vc4-hdmi-Set-default-state-margin-at-reset.patch b/target/linux/brcm2708/patches-4.19/950-0647-drm-vc4-hdmi-Set-default-state-margin-at-reset.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0675-drm-vc4-hdmi-Set-default-state-margin-at-reset.patch rename to target/linux/brcm2708/patches-4.19/950-0647-drm-vc4-hdmi-Set-default-state-margin-at-reset.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0676-drm-vc4-fkms-Set-default-state-margin-at-reset.patch b/target/linux/brcm2708/patches-4.19/950-0648-drm-vc4-fkms-Set-default-state-margin-at-reset.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0676-drm-vc4-fkms-Set-default-state-margin-at-reset.patch rename to target/linux/brcm2708/patches-4.19/950-0648-drm-vc4-fkms-Set-default-state-margin-at-reset.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0677-drm-modes-Don-t-apply-cmdline-s-rotation-if-it-wasn-.patch b/target/linux/brcm2708/patches-4.19/950-0649-drm-modes-Don-t-apply-cmdline-s-rotation-if-it-wasn-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0677-drm-modes-Don-t-apply-cmdline-s-rotation-if-it-wasn-.patch rename to target/linux/brcm2708/patches-4.19/950-0649-drm-modes-Don-t-apply-cmdline-s-rotation-if-it-wasn-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0678-staging-bcm2835-codec-switch-to-multi-planar-API.patch b/target/linux/brcm2708/patches-4.19/950-0650-staging-bcm2835-codec-switch-to-multi-planar-API.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0678-staging-bcm2835-codec-switch-to-multi-planar-API.patch rename to target/linux/brcm2708/patches-4.19/950-0650-staging-bcm2835-codec-switch-to-multi-planar-API.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0679-staging-bcm2835-codec-implement-V4L2_CID_MIN_BUFFERS.patch b/target/linux/brcm2708/patches-4.19/950-0651-staging-bcm2835-codec-implement-V4L2_CID_MIN_BUFFERS.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0679-staging-bcm2835-codec-implement-V4L2_CID_MIN_BUFFERS.patch rename to target/linux/brcm2708/patches-4.19/950-0651-staging-bcm2835-codec-implement-V4L2_CID_MIN_BUFFERS.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0680-staging-bcm2835-codec-set-device_caps-in-struct-vide.patch b/target/linux/brcm2708/patches-4.19/950-0652-staging-bcm2835-codec-set-device_caps-in-struct-vide.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0680-staging-bcm2835-codec-set-device_caps-in-struct-vide.patch rename to target/linux/brcm2708/patches-4.19/950-0652-staging-bcm2835-codec-set-device_caps-in-struct-vide.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0681-Add-HDMI1-facility-to-the-driver.patch b/target/linux/brcm2708/patches-4.19/950-0653-Add-HDMI1-facility-to-the-driver.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0681-Add-HDMI1-facility-to-the-driver.patch rename to target/linux/brcm2708/patches-4.19/950-0653-Add-HDMI1-facility-to-the-driver.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0682-overlays-Add-baudrate-parameter-to-i2c3-i2c6.patch b/target/linux/brcm2708/patches-4.19/950-0654-overlays-Add-baudrate-parameter-to-i2c3-i2c6.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0682-overlays-Add-baudrate-parameter-to-i2c3-i2c6.patch rename to target/linux/brcm2708/patches-4.19/950-0654-overlays-Add-baudrate-parameter-to-i2c3-i2c6.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0683-drm-vc4-Resolve-the-vblank-warnings-on-mode-switchin.patch b/target/linux/brcm2708/patches-4.19/950-0655-drm-vc4-Resolve-the-vblank-warnings-on-mode-switchin.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0683-drm-vc4-Resolve-the-vblank-warnings-on-mode-switchin.patch rename to target/linux/brcm2708/patches-4.19/950-0655-drm-vc4-Resolve-the-vblank-warnings-on-mode-switchin.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0684-drm-vc4-Remove-unused-mode-variable.patch b/target/linux/brcm2708/patches-4.19/950-0656-drm-vc4-Remove-unused-mode-variable.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0684-drm-vc4-Remove-unused-mode-variable.patch rename to target/linux/brcm2708/patches-4.19/950-0656-drm-vc4-Remove-unused-mode-variable.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0685-staging-bcm2835-codec-Expand-logging-on-format-setti.patch b/target/linux/brcm2708/patches-4.19/950-0657-staging-bcm2835-codec-Expand-logging-on-format-setti.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0685-staging-bcm2835-codec-Expand-logging-on-format-setti.patch rename to target/linux/brcm2708/patches-4.19/950-0657-staging-bcm2835-codec-Expand-logging-on-format-setti.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0686-staging-bcm2835-codec-Correct-bytesperline-on-format.patch b/target/linux/brcm2708/patches-4.19/950-0658-staging-bcm2835-codec-Correct-bytesperline-on-format.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0686-staging-bcm2835-codec-Correct-bytesperline-on-format.patch rename to target/linux/brcm2708/patches-4.19/950-0658-staging-bcm2835-codec-Correct-bytesperline-on-format.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0687-drm-vc4-Add-missing-NULL-check-to-vc4_crtc_consume_e.patch b/target/linux/brcm2708/patches-4.19/950-0659-drm-vc4-Add-missing-NULL-check-to-vc4_crtc_consume_e.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0687-drm-vc4-Add-missing-NULL-check-to-vc4_crtc_consume_e.patch rename to target/linux/brcm2708/patches-4.19/950-0659-drm-vc4-Add-missing-NULL-check-to-vc4_crtc_consume_e.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0688-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch b/target/linux/brcm2708/patches-4.19/950-0660-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0688-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch rename to target/linux/brcm2708/patches-4.19/950-0660-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0689-drm-vc4-Fix-TILE_Y_OFFSET-definitions.patch b/target/linux/brcm2708/patches-4.19/950-0661-drm-vc4-Fix-TILE_Y_OFFSET-definitions.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0689-drm-vc4-Fix-TILE_Y_OFFSET-definitions.patch rename to target/linux/brcm2708/patches-4.19/950-0661-drm-vc4-Fix-TILE_Y_OFFSET-definitions.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0690-drm-vc4-Define-missing-PITCH0_SINK_PIX-field.patch b/target/linux/brcm2708/patches-4.19/950-0662-drm-vc4-Define-missing-PITCH0_SINK_PIX-field.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0690-drm-vc4-Define-missing-PITCH0_SINK_PIX-field.patch rename to target/linux/brcm2708/patches-4.19/950-0662-drm-vc4-Define-missing-PITCH0_SINK_PIX-field.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0691-drm-vc4-Use-drm_atomic_helper_check_plane_state-to-s.patch b/target/linux/brcm2708/patches-4.19/950-0663-drm-vc4-Use-drm_atomic_helper_check_plane_state-to-s.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0691-drm-vc4-Use-drm_atomic_helper_check_plane_state-to-s.patch rename to target/linux/brcm2708/patches-4.19/950-0663-drm-vc4-Use-drm_atomic_helper_check_plane_state-to-s.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0692-drm-vc4-Move-offsets-adjustment-out-of-setup_clippin.patch b/target/linux/brcm2708/patches-4.19/950-0664-drm-vc4-Move-offsets-adjustment-out-of-setup_clippin.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0692-drm-vc4-Move-offsets-adjustment-out-of-setup_clippin.patch rename to target/linux/brcm2708/patches-4.19/950-0664-drm-vc4-Move-offsets-adjustment-out-of-setup_clippin.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0693-drm-vc4-Fix-X-Y-positioning-of-planes-using-T_TILES-.patch b/target/linux/brcm2708/patches-4.19/950-0665-drm-vc4-Fix-X-Y-positioning-of-planes-using-T_TILES-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0693-drm-vc4-Fix-X-Y-positioning-of-planes-using-T_TILES-.patch rename to target/linux/brcm2708/patches-4.19/950-0665-drm-vc4-Fix-X-Y-positioning-of-planes-using-T_TILES-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0694-drm-vc4-Fix-NULL-pointer-dereference-in-the-async-up.patch b/target/linux/brcm2708/patches-4.19/950-0666-drm-vc4-Fix-NULL-pointer-dereference-in-the-async-up.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0694-drm-vc4-Fix-NULL-pointer-dereference-in-the-async-up.patch rename to target/linux/brcm2708/patches-4.19/950-0666-drm-vc4-Fix-NULL-pointer-dereference-in-the-async-up.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0695-ARM-dts-bcm2711-rpi-4-b-I2C-aliases-and-pulls.patch b/target/linux/brcm2708/patches-4.19/950-0667-ARM-dts-bcm2711-rpi-4-b-I2C-aliases-and-pulls.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0695-ARM-dts-bcm2711-rpi-4-b-I2C-aliases-and-pulls.patch rename to target/linux/brcm2708/patches-4.19/950-0667-ARM-dts-bcm2711-rpi-4-b-I2C-aliases-and-pulls.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0696-xhci-Use-more-event-ring-segment-table-entries.patch b/target/linux/brcm2708/patches-4.19/950-0668-xhci-Use-more-event-ring-segment-table-entries.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0696-xhci-Use-more-event-ring-segment-table-entries.patch rename to target/linux/brcm2708/patches-4.19/950-0668-xhci-Use-more-event-ring-segment-table-entries.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0697-dwc_otg-use-align_buf-for-small-IN-control-transfers.patch b/target/linux/brcm2708/patches-4.19/950-0669-dwc_otg-use-align_buf-for-small-IN-control-transfers.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0697-dwc_otg-use-align_buf-for-small-IN-control-transfers.patch rename to target/linux/brcm2708/patches-4.19/950-0669-dwc_otg-use-align_buf-for-small-IN-control-transfers.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0698-Ported-pcie-brcmstb-bounce-buffer-implementation-to-.patch b/target/linux/brcm2708/patches-4.19/950-0670-Ported-pcie-brcmstb-bounce-buffer-implementation-to-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0698-Ported-pcie-brcmstb-bounce-buffer-implementation-to-.patch rename to target/linux/brcm2708/patches-4.19/950-0670-Ported-pcie-brcmstb-bounce-buffer-implementation-to-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0699-configs-arm64-vcm2711-Enable-V3D.patch b/target/linux/brcm2708/patches-4.19/950-0671-configs-arm64-vcm2711-Enable-V3D.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0699-configs-arm64-vcm2711-Enable-V3D.patch rename to target/linux/brcm2708/patches-4.19/950-0671-configs-arm64-vcm2711-Enable-V3D.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0700-overlays-sc16ic752-i2c-Fix-xtal-parameter.patch b/target/linux/brcm2708/patches-4.19/950-0672-overlays-sc16ic752-i2c-Fix-xtal-parameter.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0700-overlays-sc16ic752-i2c-Fix-xtal-parameter.patch rename to target/linux/brcm2708/patches-4.19/950-0672-overlays-sc16ic752-i2c-Fix-xtal-parameter.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0701-vc-sm-cma-Fix-compatibility-ioctl.patch b/target/linux/brcm2708/patches-4.19/950-0673-vc-sm-cma-Fix-compatibility-ioctl.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0701-vc-sm-cma-Fix-compatibility-ioctl.patch rename to target/linux/brcm2708/patches-4.19/950-0673-vc-sm-cma-Fix-compatibility-ioctl.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0702-staging-bcm2835-codec-add-support-for-V4L2_CID_MPEG_.patch b/target/linux/brcm2708/patches-4.19/950-0674-staging-bcm2835-codec-add-support-for-V4L2_CID_MPEG_.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0702-staging-bcm2835-codec-add-support-for-V4L2_CID_MPEG_.patch rename to target/linux/brcm2708/patches-4.19/950-0674-staging-bcm2835-codec-add-support-for-V4L2_CID_MPEG_.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0703-staging-bcm2835-codec-remove-unnecessary-padding-on-.patch b/target/linux/brcm2708/patches-4.19/950-0675-staging-bcm2835-codec-remove-unnecessary-padding-on-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0703-staging-bcm2835-codec-remove-unnecessary-padding-on-.patch rename to target/linux/brcm2708/patches-4.19/950-0675-staging-bcm2835-codec-remove-unnecessary-padding-on-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0704-arm-dts-add-missing-Raspberry-Pi-model-names.patch b/target/linux/brcm2708/patches-4.19/950-0676-arm-dts-add-missing-Raspberry-Pi-model-names.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0704-arm-dts-add-missing-Raspberry-Pi-model-names.patch rename to target/linux/brcm2708/patches-4.19/950-0676-arm-dts-add-missing-Raspberry-Pi-model-names.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0705-arch-arm-Add-model-string-to-cpuinfo.patch b/target/linux/brcm2708/patches-4.19/950-0677-arch-arm-Add-model-string-to-cpuinfo.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0705-arch-arm-Add-model-string-to-cpuinfo.patch rename to target/linux/brcm2708/patches-4.19/950-0677-arch-arm-Add-model-string-to-cpuinfo.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0706-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch b/target/linux/brcm2708/patches-4.19/950-0678-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0706-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch rename to target/linux/brcm2708/patches-4.19/950-0678-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0707-media-dt-bindings-Add-binding-for-the-Sony-IMX219-se.patch b/target/linux/brcm2708/patches-4.19/950-0679-media-dt-bindings-Add-binding-for-the-Sony-IMX219-se.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0707-media-dt-bindings-Add-binding-for-the-Sony-IMX219-se.patch rename to target/linux/brcm2708/patches-4.19/950-0679-media-dt-bindings-Add-binding-for-the-Sony-IMX219-se.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0708-media-i2c-Add-driver-for-Sony-IMX219-sensor.patch b/target/linux/brcm2708/patches-4.19/950-0680-media-i2c-Add-driver-for-Sony-IMX219-sensor.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0708-media-i2c-Add-driver-for-Sony-IMX219-sensor.patch rename to target/linux/brcm2708/patches-4.19/950-0680-media-i2c-Add-driver-for-Sony-IMX219-sensor.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0709-dtoverlays-Add-overlay-for-the-Sony-IMX219-image-sen.patch b/target/linux/brcm2708/patches-4.19/950-0681-dtoverlays-Add-overlay-for-the-Sony-IMX219-image-sen.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0709-dtoverlays-Add-overlay-for-the-Sony-IMX219-image-sen.patch rename to target/linux/brcm2708/patches-4.19/950-0681-dtoverlays-Add-overlay-for-the-Sony-IMX219-image-sen.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0710-staging-bcm2835-codec-Fix-non-documentation-comment-.patch b/target/linux/brcm2708/patches-4.19/950-0682-staging-bcm2835-codec-Fix-non-documentation-comment-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0710-staging-bcm2835-codec-Fix-non-documentation-comment-.patch rename to target/linux/brcm2708/patches-4.19/950-0682-staging-bcm2835-codec-Fix-non-documentation-comment-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0711-staging-bcm2835-codec-Fix-declaration-of-roles.patch b/target/linux/brcm2708/patches-4.19/950-0683-staging-bcm2835-codec-Fix-declaration-of-roles.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0711-staging-bcm2835-codec-Fix-declaration-of-roles.patch rename to target/linux/brcm2708/patches-4.19/950-0683-staging-bcm2835-codec-Fix-declaration-of-roles.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0712-staging-bcm2835-codec-Add-role-to-device-name.patch b/target/linux/brcm2708/patches-4.19/950-0684-staging-bcm2835-codec-Add-role-to-device-name.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0712-staging-bcm2835-codec-Add-role-to-device-name.patch rename to target/linux/brcm2708/patches-4.19/950-0684-staging-bcm2835-codec-Add-role-to-device-name.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0713-staging-bcm2835-codec-Pass-driver-context-to-create-.patch b/target/linux/brcm2708/patches-4.19/950-0685-staging-bcm2835-codec-Pass-driver-context-to-create-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0713-staging-bcm2835-codec-Pass-driver-context-to-create-.patch rename to target/linux/brcm2708/patches-4.19/950-0685-staging-bcm2835-codec-Pass-driver-context-to-create-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0714-staging-bcm2835-codec-add-media-controller-support.patch b/target/linux/brcm2708/patches-4.19/950-0686-staging-bcm2835-codec-add-media-controller-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0714-staging-bcm2835-codec-add-media-controller-support.patch rename to target/linux/brcm2708/patches-4.19/950-0686-staging-bcm2835-codec-add-media-controller-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0715-media-bcm2835-unicam-Reduce-scope-of-local-function.patch b/target/linux/brcm2708/patches-4.19/950-0687-media-bcm2835-unicam-Reduce-scope-of-local-function.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0715-media-bcm2835-unicam-Reduce-scope-of-local-function.patch rename to target/linux/brcm2708/patches-4.19/950-0687-media-bcm2835-unicam-Reduce-scope-of-local-function.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0716-media-bcm2835-unicam-add-media-controller-support.patch b/target/linux/brcm2708/patches-4.19/950-0688-media-bcm2835-unicam-add-media-controller-support.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0716-media-bcm2835-unicam-add-media-controller-support.patch rename to target/linux/brcm2708/patches-4.19/950-0688-media-bcm2835-unicam-add-media-controller-support.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0717-Limit-max_req_size-under-arm64-or-any-other-platform.patch b/target/linux/brcm2708/patches-4.19/950-0689-Limit-max_req_size-under-arm64-or-any-other-platform.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0717-Limit-max_req_size-under-arm64-or-any-other-platform.patch rename to target/linux/brcm2708/patches-4.19/950-0689-Limit-max_req_size-under-arm64-or-any-other-platform.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0718-Add-missing-dma_unmap_sg-calls-to-free-relevant-swio.patch b/target/linux/brcm2708/patches-4.19/950-0690-Add-missing-dma_unmap_sg-calls-to-free-relevant-swio.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0718-Add-missing-dma_unmap_sg-calls-to-free-relevant-swio.patch rename to target/linux/brcm2708/patches-4.19/950-0690-Add-missing-dma_unmap_sg-calls-to-free-relevant-swio.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0719-overlays-mcp23017-rename-the-GPIO-pins-node-with-the.patch b/target/linux/brcm2708/patches-4.19/950-0691-overlays-mcp23017-rename-the-GPIO-pins-node-with-the.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0719-overlays-mcp23017-rename-the-GPIO-pins-node-with-the.patch rename to target/linux/brcm2708/patches-4.19/950-0691-overlays-mcp23017-rename-the-GPIO-pins-node-with-the.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0720-overlays-mcp23017-Add-option-for-not-connecting-the-.patch b/target/linux/brcm2708/patches-4.19/950-0692-overlays-mcp23017-Add-option-for-not-connecting-the-.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0720-overlays-mcp23017-Add-option-for-not-connecting-the-.patch rename to target/linux/brcm2708/patches-4.19/950-0692-overlays-mcp23017-Add-option-for-not-connecting-the-.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0721-v4l2-Add-a-Greyworld-AWB-mode.patch b/target/linux/brcm2708/patches-4.19/950-0693-v4l2-Add-a-Greyworld-AWB-mode.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0721-v4l2-Add-a-Greyworld-AWB-mode.patch rename to target/linux/brcm2708/patches-4.19/950-0693-v4l2-Add-a-Greyworld-AWB-mode.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0722-staging-bcm2835-camera-Add-greyworld-AWB-mode.patch b/target/linux/brcm2708/patches-4.19/950-0694-staging-bcm2835-camera-Add-greyworld-AWB-mode.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0722-staging-bcm2835-camera-Add-greyworld-AWB-mode.patch rename to target/linux/brcm2708/patches-4.19/950-0694-staging-bcm2835-camera-Add-greyworld-AWB-mode.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0723-PCI-brcmstb-Fix-compilation-warning.patch b/target/linux/brcm2708/patches-4.19/950-0695-PCI-brcmstb-Fix-compilation-warning.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0723-PCI-brcmstb-Fix-compilation-warning.patch rename to target/linux/brcm2708/patches-4.19/950-0695-PCI-brcmstb-Fix-compilation-warning.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0724-drm-vc4-Fix-for-margins-in-composite-SDTV-mode-3223.patch b/target/linux/brcm2708/patches-4.19/950-0696-drm-vc4-Fix-for-margins-in-composite-SDTV-mode-3223.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0724-drm-vc4-Fix-for-margins-in-composite-SDTV-mode-3223.patch rename to target/linux/brcm2708/patches-4.19/950-0696-drm-vc4-Fix-for-margins-in-composite-SDTV-mode-3223.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0725-Add-Hifiberry-DAC-DSP-soundcard-driver-3224.patch b/target/linux/brcm2708/patches-4.19/950-0697-Add-Hifiberry-DAC-DSP-soundcard-driver-3224.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0725-Add-Hifiberry-DAC-DSP-soundcard-driver-3224.patch rename to target/linux/brcm2708/patches-4.19/950-0697-Add-Hifiberry-DAC-DSP-soundcard-driver-3224.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0726-staging-bcm2835-codec-Allow-height-of-1920.patch b/target/linux/brcm2708/patches-4.19/950-0698-staging-bcm2835-codec-Allow-height-of-1920.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0726-staging-bcm2835-codec-Allow-height-of-1920.patch rename to target/linux/brcm2708/patches-4.19/950-0698-staging-bcm2835-codec-Allow-height-of-1920.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0727-staging-bcm2835-codec-Correct-g-s_selection-API-MPLA.patch b/target/linux/brcm2708/patches-4.19/950-0699-staging-bcm2835-codec-Correct-g-s_selection-API-MPLA.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0727-staging-bcm2835-codec-Correct-g-s_selection-API-MPLA.patch rename to target/linux/brcm2708/patches-4.19/950-0699-staging-bcm2835-codec-Correct-g-s_selection-API-MPLA.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0728-regulator-gpio-Allow-nonexclusive-GPIO-access.patch b/target/linux/brcm2708/patches-4.19/950-0700-regulator-gpio-Allow-nonexclusive-GPIO-access.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0728-regulator-gpio-Allow-nonexclusive-GPIO-access.patch rename to target/linux/brcm2708/patches-4.19/950-0700-regulator-gpio-Allow-nonexclusive-GPIO-access.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0729-gpio-Enable-nonexclusive-gpiods-from-DT-nodes.patch b/target/linux/brcm2708/patches-4.19/950-0701-gpio-Enable-nonexclusive-gpiods-from-DT-nodes.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0729-gpio-Enable-nonexclusive-gpiods-from-DT-nodes.patch rename to target/linux/brcm2708/patches-4.19/950-0701-gpio-Enable-nonexclusive-gpiods-from-DT-nodes.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0730-Fix-poll-rate-on-touchscreen-3238.patch b/target/linux/brcm2708/patches-4.19/950-0702-Fix-poll-rate-on-touchscreen-3238.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0730-Fix-poll-rate-on-touchscreen-3238.patch rename to target/linux/brcm2708/patches-4.19/950-0702-Fix-poll-rate-on-touchscreen-3238.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0731-dts-Add-DTS-for-Pi-2B-rev-1.2-with-BCM2837-3235.patch b/target/linux/brcm2708/patches-4.19/950-0703-dts-Add-DTS-for-Pi-2B-rev-1.2-with-BCM2837-3235.patch similarity index 100% rename from target/linux/brcm2708/patches-4.19/950-0731-dts-Add-DTS-for-Pi-2B-rev-1.2-with-BCM2837-3235.patch rename to target/linux/brcm2708/patches-4.19/950-0703-dts-Add-DTS-for-Pi-2B-rev-1.2-with-BCM2837-3235.patch diff --git a/target/linux/brcm2708/patches-4.19/950-0704-drm-v3d-clean-caches-at-the-end-of-render-jobs-on-re.patch b/target/linux/brcm2708/patches-4.19/950-0704-drm-v3d-clean-caches-at-the-end-of-render-jobs-on-re.patch new file mode 100644 index 00000000000..ff7c346f5f6 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0704-drm-v3d-clean-caches-at-the-end-of-render-jobs-on-re.patch @@ -0,0 +1,177 @@ +From bc4661703d132ae1fb91d66641c64851eae44959 Mon Sep 17 00:00:00 2001 +From: Iago Toral Quiroga +Date: Tue, 3 Sep 2019 08:45:24 +0200 +Subject: [PATCH] drm/v3d: clean caches at the end of render jobs on + request from user space + +Extends the user space ioctl for CL submissions so it can include a request +to flush the cache once the CL execution has completed. Fixes memory +write violation messages reported by the kernel in workloads involving +shader memory writes (SSBOs, shader images, scratch, etc) which sometimes +also lead to GPU resets during Piglit and CTS workloads. + +v2: if v3d_job_init() fails we need to kfree() the job instead of + v3d_job_put() it (Eric Anholt). + +v3 (Eric Anholt): + - Drop _FLAG suffix from the new flag name. + - Add a new param so userspace can tell whether cache flushing is + implemented in the kernel. + +Signed-off-by: Iago Toral Quiroga +--- + drivers/gpu/drm/v3d/v3d_drv.c | 3 ++ + drivers/gpu/drm/v3d/v3d_gem.c | 54 +++++++++++++++++++++++++++++------ + include/uapi/drm/v3d_drm.h | 6 ++-- + 3 files changed, 53 insertions(+), 10 deletions(-) + +--- a/drivers/gpu/drm/v3d/v3d_drv.c ++++ b/drivers/gpu/drm/v3d/v3d_drv.c +@@ -117,6 +117,9 @@ static int v3d_get_param_ioctl(struct dr + case DRM_V3D_PARAM_SUPPORTS_CSD: + args->value = v3d_has_csd(v3d); + return 0; ++ case DRM_V3D_PARAM_SUPPORTS_CACHE_FLUSH: ++ args->value = 1; ++ return 0; + default: + DRM_DEBUG("Unknown parameter %d\n", args->param); + return -EINVAL; +--- a/drivers/gpu/drm/v3d/v3d_gem.c ++++ b/drivers/gpu/drm/v3d/v3d_gem.c +@@ -709,13 +709,16 @@ v3d_submit_cl_ioctl(struct drm_device *d + struct drm_v3d_submit_cl *args = data; + struct v3d_bin_job *bin = NULL; + struct v3d_render_job *render; ++ struct v3d_job *clean_job = NULL; ++ struct v3d_job *last_job; + struct ww_acquire_ctx acquire_ctx; + int ret = 0; + + trace_v3d_submit_cl_ioctl(&v3d->drm, args->rcl_start, args->rcl_end); + +- if (args->pad != 0) { +- DRM_INFO("pad must be zero: %d\n", args->pad); ++ if (args->flags != 0 && ++ args->flags != DRM_V3D_SUBMIT_CL_FLUSH_CACHE) { ++ DRM_INFO("invalid flags: %d\n", args->flags); + return -EINVAL; + } + +@@ -755,12 +758,31 @@ v3d_submit_cl_ioctl(struct drm_device *d + bin->render = render; + } + +- ret = v3d_lookup_bos(dev, file_priv, &render->base, ++ if (args->flags & DRM_V3D_SUBMIT_CL_FLUSH_CACHE) { ++ clean_job = kcalloc(1, sizeof(*clean_job), GFP_KERNEL); ++ if (!clean_job) { ++ ret = -ENOMEM; ++ goto fail; ++ } ++ ++ ret = v3d_job_init(v3d, file_priv, clean_job, v3d_job_free, 0); ++ if (ret) { ++ kfree(clean_job); ++ clean_job = NULL; ++ goto fail; ++ } ++ ++ last_job = clean_job; ++ } else { ++ last_job = &render->base; ++ } ++ ++ ret = v3d_lookup_bos(dev, file_priv, last_job, + args->bo_handles, args->bo_handle_count); + if (ret) + goto fail; + +- ret = v3d_lock_bo_reservations(&render->base, &acquire_ctx); ++ ret = v3d_lock_bo_reservations(last_job, &acquire_ctx); + if (ret) + goto fail; + +@@ -772,33 +794,49 @@ v3d_submit_cl_ioctl(struct drm_device *d + + ret = v3d_add_dep(&render->base, + dma_fence_get(bin->base.done_fence)); ++ if (ret) ++ goto fail_unreserve; + } + + ret = v3d_push_job(v3d_priv, &render->base, V3D_RENDER); + if (ret) + goto fail_unreserve; ++ ++ if (clean_job) { ++ ret = v3d_add_dep(clean_job, ++ dma_fence_get(render->base.done_fence)); ++ if (ret) ++ goto fail_unreserve; ++ ret = v3d_push_job(v3d_priv, clean_job, V3D_CACHE_CLEAN); ++ if (ret) ++ goto fail_unreserve; ++ } + mutex_unlock(&v3d->sched_lock); + + v3d_attach_fences_and_unlock_reservation(file_priv, +- &render->base, ++ last_job, + &acquire_ctx, + args->out_sync, +- render->base.done_fence); ++ last_job->done_fence); + + if (bin) + v3d_job_put(&bin->base); + v3d_job_put(&render->base); ++ if (clean_job) ++ v3d_job_put(clean_job); + + return 0; + + fail_unreserve: + mutex_unlock(&v3d->sched_lock); +- v3d_unlock_bo_reservations(render->base.bo, +- render->base.bo_count, &acquire_ctx); ++ v3d_unlock_bo_reservations(last_job->bo, ++ last_job->bo_count, &acquire_ctx); + fail: + if (bin) + v3d_job_put(&bin->base); + v3d_job_put(&render->base); ++ if (clean_job) ++ v3d_job_put(clean_job); + + return ret; + } +--- a/include/uapi/drm/v3d_drm.h ++++ b/include/uapi/drm/v3d_drm.h +@@ -48,6 +48,8 @@ extern "C" { + #define DRM_IOCTL_V3D_SUBMIT_TFU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_TFU, struct drm_v3d_submit_tfu) + #define DRM_IOCTL_V3D_SUBMIT_CSD DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CSD, struct drm_v3d_submit_csd) + ++#define DRM_V3D_SUBMIT_CL_FLUSH_CACHE 0x01 ++ + /** + * struct drm_v3d_submit_cl - ioctl argument for submitting commands to the 3D + * engine. +@@ -106,8 +108,7 @@ struct drm_v3d_submit_cl { + /* Number of BO handles passed in (size is that times 4). */ + __u32 bo_handle_count; + +- /* Pad, must be zero-filled. */ +- __u32 pad; ++ __u32 flags; + }; + + /** +@@ -175,6 +176,7 @@ enum drm_v3d_param { + DRM_V3D_PARAM_V3D_CORE0_IDENT2, + DRM_V3D_PARAM_SUPPORTS_TFU, + DRM_V3D_PARAM_SUPPORTS_CSD, ++ DRM_V3D_PARAM_SUPPORTS_CACHE_FLUSH, + }; + + struct drm_v3d_get_param { diff --git a/target/linux/brcm2708/patches-4.19/950-0705-staging-bcm2835-audio-Fix-draining-behavior-regressi.patch b/target/linux/brcm2708/patches-4.19/950-0705-staging-bcm2835-audio-Fix-draining-behavior-regressi.patch new file mode 100644 index 00000000000..76279ec813f --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0705-staging-bcm2835-audio-Fix-draining-behavior-regressi.patch @@ -0,0 +1,56 @@ +From 9dd926d29051324d8621ca2a18bbdd568523ac93 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Sat, 14 Sep 2019 17:24:05 +0200 +Subject: [PATCH] staging: bcm2835-audio: Fix draining behavior + regression + +The PCM draining behavior got broken since the recent refactoring, and +this turned out to be the incorrect expectation of the firmware +behavior regarding "draining". While I expected the "drain" flag at +the stop operation would do processing the queued samples, it seems +rather dropping the samples. + +As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so +that the driver uses the normal PCM draining procedure. Also, put +some caution comment to the function for future readers not to fall +into the same pitfall. + +Fixes: d7ca3a71545b ("staging: bcm2835-audio: Operate non-atomic PCM ops") +BugLink: https://github.com/raspberrypi/linux/issues/2983 +Cc: stable@vger.kernel.org +Signed-off-by: Takashi Iwai +--- + drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c | 4 ++-- + drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c | 1 + + 2 files changed, 3 insertions(+), 2 deletions(-) + +--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c ++++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c +@@ -12,7 +12,7 @@ + static const struct snd_pcm_hardware snd_bcm2835_playback_hw = { + .info = (SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | + SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | +- SNDRV_PCM_INFO_DRAIN_TRIGGER | SNDRV_PCM_INFO_SYNC_APPLPTR), ++ SNDRV_PCM_INFO_SYNC_APPLPTR), + .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE, + .rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_192000, + .rate_min = 8000, +@@ -29,7 +29,7 @@ static const struct snd_pcm_hardware snd + static const struct snd_pcm_hardware snd_bcm2835_playback_spdif_hw = { + .info = (SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER | + SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | +- SNDRV_PCM_INFO_DRAIN_TRIGGER | SNDRV_PCM_INFO_SYNC_APPLPTR), ++ SNDRV_PCM_INFO_SYNC_APPLPTR), + .formats = SNDRV_PCM_FMTBIT_S16_LE, + .rates = SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 | + SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000 | +--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c ++++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c +@@ -297,6 +297,7 @@ int bcm2835_audio_stop(struct bcm2835_al + VC_AUDIO_MSG_TYPE_STOP, false); + } + ++/* FIXME: this doesn't seem working as expected for "draining" */ + int bcm2835_audio_drain(struct bcm2835_alsa_stream *alsa_stream) + { + struct vc_audio_msg m = { diff --git a/target/linux/brcm2708/patches-4.19/950-0706-bcm2708_fb-Fix-layout-of-struct-vc4_display_settings.patch b/target/linux/brcm2708/patches-4.19/950-0706-bcm2708_fb-Fix-layout-of-struct-vc4_display_settings.patch new file mode 100644 index 00000000000..adb14fb710b --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0706-bcm2708_fb-Fix-layout-of-struct-vc4_display_settings.patch @@ -0,0 +1,34 @@ +From c6be127c2f4d5f75c60d3778594093ff51593a6e Mon Sep 17 00:00:00 2001 +From: Michael Brown +Date: Sun, 22 Sep 2019 21:51:29 +0100 +Subject: [PATCH] bcm2708_fb: Fix layout of struct + vc4_display_settings_t + +The display parameters returned by the VC4 firmware in response to the +RPI_FIRMWARE_FRAMEBUFFER_GET_DISPLAY_SETTINGS tag do not match the +layout of struct vc4_display_settings_t: the colour depth and row +pitch are erroneously swapped in the kernel definition. This can +trigger a kernel warning from pixel_to_pat(), such as: + + pixel_to_pat(): unsupported pixelformat 7296 + +Fix by adjusting the layout of struct vc4_display_settings_t to match +the layout as used by the VC4 firmware. + +Signed-off-by: Michael Brown +--- + drivers/video/fbdev/bcm2708_fb.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/video/fbdev/bcm2708_fb.c ++++ b/drivers/video/fbdev/bcm2708_fb.c +@@ -89,8 +89,8 @@ struct vc4_display_settings_t { + u32 display_num; + u32 width; + u32 height; +- u32 pitch; + u32 depth; ++ u32 pitch; + u32 virtual_width; + u32 virtual_height; + u32 virtual_width_offset; diff --git a/target/linux/brcm2708/patches-4.19/950-0707-ARM-dts-bcm283x-Fix-DTC-warning-for-memory-node.patch b/target/linux/brcm2708/patches-4.19/950-0707-ARM-dts-bcm283x-Fix-DTC-warning-for-memory-node.patch new file mode 100644 index 00000000000..b593d7fb0cb --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0707-ARM-dts-bcm283x-Fix-DTC-warning-for-memory-node.patch @@ -0,0 +1,68 @@ +From b640129382a37105cf2577f251103e550381b797 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Mon, 23 Sep 2019 18:56:37 +0200 +Subject: [PATCH] ARM: dts: bcm283x: Fix DTC warning for memory node + +commit f090e1bd7b05f17d35b6e2d0e946d8a8085d264f upstream. + +Compiling the bcm283x DTS with W=1 leads to the following warning: + +Warning (unit_address_vs_reg): /memory: node has a reg or ranges property, +but no unit name + +Fix this by adding the unit address. + +Signed-off-by: Stefan Wahren +Tested-by: Peter Robinson +Reviewed-by: Eric Anholt +--- + arch/arm/boot/dts/bcm2835-rpi.dtsi | 2 +- + arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 2 +- + arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 2 +- + arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi +@@ -1,7 +1,7 @@ + #include + + / { +- memory { ++ memory@0 { + device_type = "memory"; + reg = <0 0x10000000>; + }; +--- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts ++++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts +@@ -10,7 +10,7 @@ + compatible = "raspberrypi,2-model-b", "brcm,bcm2836"; + model = "Raspberry Pi 2 Model B"; + +- memory { ++ memory@0 { + reg = <0 0x40000000>; + }; + +--- a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts ++++ b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts +@@ -14,7 +14,7 @@ + stdout-path = "serial1:115200n8"; + }; + +- memory { ++ memory@0 { + reg = <0 0x40000000>; + }; + +--- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts ++++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts +@@ -15,7 +15,7 @@ + stdout-path = "serial1:115200n8"; + }; + +- memory { ++ memory@0 { + reg = <0 0x40000000>; + }; + diff --git a/target/linux/brcm2708/patches-4.19/950-0708-ARM-dts-bcm27xx-Fix-DTC-warning-for-memory-node.patch b/target/linux/brcm2708/patches-4.19/950-0708-ARM-dts-bcm27xx-Fix-DTC-warning-for-memory-node.patch new file mode 100644 index 00000000000..3a424b3a674 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0708-ARM-dts-bcm27xx-Fix-DTC-warning-for-memory-node.patch @@ -0,0 +1,52 @@ +From 10524e83179ad016a379ea99364d6912812a9aa5 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Mon, 23 Sep 2019 20:09:12 +0200 +Subject: [PATCH] ARM: dts: bcm27xx: Fix DTC warning for memory node + +Compiling the bcm27xx DTS with W=1 leads to the following warning: + +Warning (unit_address_vs_reg): /memory: node has a reg or ranges property, +but no unit name + +Fix this by adding the unit address. + +Signed-off-by: Stefan Wahren +--- + arch/arm/boot/dts/bcm2708-rpi.dtsi | 2 +- + arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 2 +- + arch/arm/boot/dts/bcm2838-rpi-4-b.dts | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +--- a/arch/arm/boot/dts/bcm2708-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2708-rpi.dtsi +@@ -3,7 +3,7 @@ + #include "bcm2835-rpi.dtsi" + + / { +- memory { ++ memory@0 { + device_type = "memory"; + reg = <0x0 0x0>; + }; +--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +@@ -8,7 +8,7 @@ + compatible = "raspberrypi,4-model-b", "brcm,bcm2838"; + model = "Raspberry Pi 4 Model B"; + +- memory { ++ memory@0 { + device_type = "memory"; + reg = <0x0 0x0 0x0>; + }; +--- a/arch/arm/boot/dts/bcm2838-rpi-4-b.dts ++++ b/arch/arm/boot/dts/bcm2838-rpi-4-b.dts +@@ -13,7 +13,7 @@ + stdout-path = "serial1:115200n8"; + }; + +- memory { ++ memory@0 { + reg = <0 0 0x40000000>; + }; + diff --git a/target/linux/brcm2708/patches-4.19/950-0709-ARM-bcm283x-Enable-DMA-support-for-SPI-controller.patch b/target/linux/brcm2708/patches-4.19/950-0709-ARM-bcm283x-Enable-DMA-support-for-SPI-controller.patch new file mode 100644 index 00000000000..27cd2aff50f --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0709-ARM-bcm283x-Enable-DMA-support-for-SPI-controller.patch @@ -0,0 +1,42 @@ +From cce15c51f1afbb1aa9d5f7779c9f7c0a17b39701 Mon Sep 17 00:00:00 2001 +From: Lukas Wunner +Date: Thu, 9 May 2019 19:03:00 +0200 +Subject: [PATCH] ARM: bcm283x: Enable DMA support for SPI controller +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Without this, the driver for the BCM2835 SPI controller uses interrupt +mode instead of DMA mode, incurring a significant performance penalty. +The Foundation's device tree has had these attributes for years, but for +some reason they were never upstreamed. + +They were originally contributed by Noralf Trønnes and Martin Sperl: +https://github.com/raspberrypi/linux/commit/25f3e064afc8 +https://github.com/raspberrypi/linux/commit/e0edb52b47e6 + +The DREQ numbers 6 and 7 are documented in section 4.2.1.3 of: +https://www.raspberrypi.org/app/uploads/2012/02/BCM2835-ARM-Peripherals.pdf + +Tested-by: Nicolas Saenz Julienne +Signed-off-by: Lukas Wunner +Reviewed-by: Eric Anholt +Reviewed-by: Martin Sperl +Signed-off-by: Stefan Wahren +Cc: Martin Sperl +Cc: Noralf Trønnes +--- + arch/arm/boot/dts/bcm283x.dtsi | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/arch/arm/boot/dts/bcm283x.dtsi ++++ b/arch/arm/boot/dts/bcm283x.dtsi +@@ -403,6 +403,8 @@ + reg = <0x7e204000 0x200>; + interrupts = <2 22>; + clocks = <&clocks BCM2835_CLOCK_VPU>; ++ dmas = <&dma 6>, <&dma 7>; ++ dma-names = "tx", "rx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; diff --git a/target/linux/brcm2708/patches-4.19/950-0710-ARM-dts-bcm2835-rpi-Drop-unnecessary-address-cells-s.patch b/target/linux/brcm2708/patches-4.19/950-0710-ARM-dts-bcm2835-rpi-Drop-unnecessary-address-cells-s.patch new file mode 100644 index 00000000000..6986ae9289f --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0710-ARM-dts-bcm2835-rpi-Drop-unnecessary-address-cells-s.patch @@ -0,0 +1,30 @@ +From de002983174698762ecd3e42ab5a4b1bceb80af1 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Sun, 30 Dec 2018 12:07:16 +0100 +Subject: [PATCH] ARM: dts: bcm2835-rpi: Drop unnecessary + #address-cells/#size-cells + +Compiling the bcm2835-rpi.dtsi with W=1 leads to the following warning: + +Warning (avoid_unnecessary_addr_size): /soc/firmware: unnecessary + #address-cells/#size-cells without "ranges" or child "reg" property + +Fix this by removing these unnecessary properties. + +Signed-off-by: Stefan Wahren +Reviewed-by: Eric Anholt +--- + arch/arm/boot/dts/bcm2835-rpi.dtsi | 2 -- + 1 file changed, 2 deletions(-) + +--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi +@@ -19,8 +19,6 @@ + soc { + firmware: firmware { + compatible = "raspberrypi,bcm2835-firmware", "simple-bus"; +- #address-cells = <0>; +- #size-cells = <0>; + mboxes = <&mailbox>; + }; + diff --git a/target/linux/brcm2708/patches-4.19/950-0711-ARM-dts-bcm2708-rpi-Define-the-downstream-MMC-interf.patch b/target/linux/brcm2708/patches-4.19/950-0711-ARM-dts-bcm2708-rpi-Define-the-downstream-MMC-interf.patch new file mode 100644 index 00000000000..184d397ed91 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0711-ARM-dts-bcm2708-rpi-Define-the-downstream-MMC-interf.patch @@ -0,0 +1,40 @@ +From c31c8018e7cef83c827c913a10ac06b465813b22 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Sat, 21 Sep 2019 15:29:33 +0200 +Subject: [PATCH] ARM: dts: bcm2708-rpi: Define the downstream MMC + interfaces at one place + +In order to keep downstream definition of the MMC interfaces separate +and independent from upstream changes, add them to bcm2708-rpi.dtsi. + +Signed-off-by: Stefan Wahren +--- + arch/arm/boot/dts/bcm2708-rpi.dtsi | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/arch/arm/boot/dts/bcm2708-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2708-rpi.dtsi +@@ -125,13 +125,23 @@ + firmware = <&firmware>; + }; + ++&sdhci { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&emmc_gpio48>; ++ bus-width = <4>; ++}; ++ + sdhost_pins: &sdhost_gpio48 { + /* Add alias */ + }; + + &sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_gpio48>; ++ bus-width = <4>; + brcm,overclock-50 = <0>; + brcm,pio-limit = <1>; ++ status = "okay"; + }; + + &cpu_thermal { diff --git a/target/linux/brcm2708/patches-4.19/950-0712-ARM-dts-bcm283x-Define-MMC-interfaces-at-board-level.patch b/target/linux/brcm2708/patches-4.19/950-0712-ARM-dts-bcm283x-Define-MMC-interfaces-at-board-level.patch new file mode 100644 index 00000000000..7ad61b65fb6 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0712-ARM-dts-bcm283x-Define-MMC-interfaces-at-board-level.patch @@ -0,0 +1,194 @@ +From a1905aed89ee45f6662f03b77dc604ff1a169671 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Tue, 17 Sep 2019 19:16:17 +0200 +Subject: [PATCH] ARM: dts: bcm283x: Define MMC interfaces at board + level + +commit e7774049ff255c8ba72bcee9c7ab307a95e8d7bc upstream. + +Starting with RPi 4 this is the first board, which doesn't use sdhost +as default SD interface. So the MMC interfaces should be defined finally at +board level. Since all boards using sdhci already does this, we can drop the +pinctrl part from bcm2835-rpi.dtsi. + +Signed-off-by: Stefan Wahren +Acked-by: Eric Anholt +--- + arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 7 +++++++ + arch/arm/boot/dts/bcm2835-rpi-a.dts | 7 +++++++ + arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 7 +++++++ + arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 7 +++++++ + arch/arm/boot/dts/bcm2835-rpi-b.dts | 7 +++++++ + arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts | 7 +++++++ + arch/arm/boot/dts/bcm2835-rpi-zero-w.dts | 7 +++++++ + arch/arm/boot/dts/bcm2835-rpi-zero.dts | 7 +++++++ + arch/arm/boot/dts/bcm2835-rpi.dtsi | 13 ------------- + arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 7 +++++++ + 10 files changed, 63 insertions(+), 13 deletions(-) + +--- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts +@@ -108,6 +108,13 @@ + status = "okay"; + }; + ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_gpio48>; ++ bus-width = <4>; ++ status = "okay"; ++}; ++ + &uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_gpio14>; +--- a/arch/arm/boot/dts/bcm2835-rpi-a.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-a.dts +@@ -103,6 +103,13 @@ + status = "okay"; + }; + ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_gpio48>; ++ bus-width = <4>; ++ status = "okay"; ++}; ++ + &uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_gpio14>; +--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts +@@ -110,6 +110,13 @@ + status = "okay"; + }; + ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_gpio48>; ++ bus-width = <4>; ++ status = "okay"; ++}; ++ + &uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_gpio14>; +--- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts +@@ -103,6 +103,13 @@ + status = "okay"; + }; + ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_gpio48>; ++ bus-width = <4>; ++ status = "okay"; ++}; ++ + &uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_gpio14>; +--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts +@@ -98,6 +98,13 @@ + status = "okay"; + }; + ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_gpio48>; ++ bus-width = <4>; ++ status = "okay"; ++}; ++ + &uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_gpio14>; +--- a/arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts +@@ -81,6 +81,13 @@ + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; + }; + ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_gpio48>; ++ bus-width = <4>; ++ status = "okay"; ++}; ++ + &uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_gpio14>; +--- a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts +@@ -129,6 +129,13 @@ + }; + }; + ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_gpio48>; ++ bus-width = <4>; ++ status = "okay"; ++}; ++ + &uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_gpio32 &uart0_ctsrts_gpio30>; +--- a/arch/arm/boot/dts/bcm2835-rpi-zero.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-zero.dts +@@ -105,6 +105,13 @@ + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; + }; + ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_gpio48>; ++ bus-width = <4>; ++ status = "okay"; ++}; ++ + &uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_gpio14>; +--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi +@@ -84,19 +84,6 @@ + status = "okay"; + }; + +-&sdhci { +- pinctrl-names = "default"; +- pinctrl-0 = <&emmc_gpio48>; +- bus-width = <4>; +-}; +- +-&sdhost { +- pinctrl-names = "default"; +- pinctrl-0 = <&sdhost_gpio48>; +- status = "okay"; +- bus-width = <4>; +-}; +- + &usb { + power-domains = <&power RPI_POWER_DOMAIN_USB>; + }; +--- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts ++++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts +@@ -48,6 +48,13 @@ + status = "okay"; + }; + ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_gpio48>; ++ bus-width = <4>; ++ status = "okay"; ++}; ++ + &uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_gpio14>; diff --git a/target/linux/brcm2708/patches-4.19/950-0713-ARM-dts-bcm2835-rpi-zero-w-Fix-bus-width-of-sdhci.patch b/target/linux/brcm2708/patches-4.19/950-0713-ARM-dts-bcm2835-rpi-zero-w-Fix-bus-width-of-sdhci.patch new file mode 100644 index 00000000000..06dd01329f8 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0713-ARM-dts-bcm2835-rpi-zero-w-Fix-bus-width-of-sdhci.patch @@ -0,0 +1,28 @@ +From c60d699be1eb26a14157cfa5b1ac0cf8afce0dcb Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Mon, 23 Sep 2019 19:41:33 +0200 +Subject: [PATCH] ARM: dts: bcm2835-rpi-zero-w: Fix bus-width of sdhci + +The commit e7774049ff25 ("ARM: dts: bcm283x: Define MMC interfaces at +board level") accidently dropped the bus width for the sdhci on the +RPi Zero W, because the board file was relying on the defaults +from bcm2835-rpi.dtsi. So fix this performance regression by adding +the bus width to the board file. + +Fixes: e7774049ff25 ("ARM: dts: bcm283x: Define MMC interfaces at board level") +Reported-by: Phil Elwell +Signed-off-by: Stefan Wahren +--- + arch/arm/boot/dts/bcm2835-rpi-zero-w.dts | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts +@@ -119,6 +119,7 @@ + #address-cells = <1>; + #size-cells = <0>; + pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>; ++ bus-width = <4>; + mmc-pwrseq = <&wifi_pwrseq>; + non-removable; + status = "okay"; diff --git a/target/linux/brcm2708/patches-4.19/950-0714-ARM-dts-bcm2708-rpi-Define-the-downstream-HDMI-power.patch b/target/linux/brcm2708/patches-4.19/950-0714-ARM-dts-bcm2708-rpi-Define-the-downstream-HDMI-power.patch new file mode 100644 index 00000000000..764169fc620 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0714-ARM-dts-bcm2708-rpi-Define-the-downstream-HDMI-power.patch @@ -0,0 +1,24 @@ +From 51908b138907d25df02687c514d59373b2a32f18 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Sat, 21 Sep 2019 15:55:19 +0200 +Subject: [PATCH] ARM: dts: bcm2708-rpi: Define the downstream HDMI + power at one place + +In order to keep downstream definition of the HDMI power domain separate +and independent from upstream changes, add them to bcm2708-rpi.dtsi. + +Signed-off-by: Stefan Wahren +--- + arch/arm/boot/dts/bcm2708-rpi.dtsi | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/boot/dts/bcm2708-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2708-rpi.dtsi +@@ -102,6 +102,7 @@ + }; + + &hdmi { ++ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; + status = "disabled"; + }; + diff --git a/target/linux/brcm2708/patches-4.19/950-0715-ARM-dts-bcm283x-Enable-HDMI-at-board-level.patch b/target/linux/brcm2708/patches-4.19/950-0715-ARM-dts-bcm283x-Enable-HDMI-at-board-level.patch new file mode 100644 index 00000000000..82e126e8ff5 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0715-ARM-dts-bcm283x-Enable-HDMI-at-board-level.patch @@ -0,0 +1,163 @@ +From a3cbeaaee57b7bda4e921bb2cff649fb56c0292d Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Tue, 17 Sep 2019 19:31:19 +0200 +Subject: [PATCH] ARM: dts: bcm283x: Enable HDMI at board level + +commit 60c833d5664e1b3f71c4471233469790adf505ca upstream. + +There might be headless setups of the Compute Module without HDMI, +so better enable HDMI at board level. Btw this allows moving HDMI +base definition into upcoming bcm2835-common.dtsi. + +Signed-off-by: Stefan Wahren +Reviewed-by: Eric Anholt +--- + arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 2 ++ + arch/arm/boot/dts/bcm2835-rpi-a.dts | 2 ++ + arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 2 ++ + arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 2 ++ + arch/arm/boot/dts/bcm2835-rpi-b.dts | 2 ++ + arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts | 2 ++ + arch/arm/boot/dts/bcm2835-rpi-zero-w.dts | 2 ++ + arch/arm/boot/dts/bcm2835-rpi-zero.dts | 2 ++ + arch/arm/boot/dts/bcm2835-rpi.dtsi | 5 ----- + arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 2 ++ + arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 2 ++ + arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 2 ++ + 12 files changed, 22 insertions(+), 5 deletions(-) + +--- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts +@@ -100,6 +100,8 @@ + + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; ++ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; ++ status = "okay"; + }; + + &pwm { +--- a/arch/arm/boot/dts/bcm2835-rpi-a.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-a.dts +@@ -95,6 +95,8 @@ + + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; ++ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; ++ status = "okay"; + }; + + &pwm { +--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts +@@ -102,6 +102,8 @@ + + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; ++ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; ++ status = "okay"; + }; + + &pwm { +--- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts +@@ -95,6 +95,8 @@ + + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; ++ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; ++ status = "okay"; + }; + + &pwm { +--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts +@@ -90,6 +90,8 @@ + + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; ++ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; ++ status = "okay"; + }; + + &pwm { +--- a/arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-cm1-io1.dts +@@ -79,6 +79,8 @@ + + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; ++ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; ++ status = "okay"; + }; + + &sdhost { +--- a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts +@@ -113,6 +113,8 @@ + + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; ++ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; ++ status = "okay"; + }; + + &sdhci { +--- a/arch/arm/boot/dts/bcm2835-rpi-zero.dts ++++ b/arch/arm/boot/dts/bcm2835-rpi-zero.dts +@@ -103,6 +103,8 @@ + + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; ++ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; ++ status = "okay"; + }; + + &sdhost { +--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi ++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi +@@ -92,11 +92,6 @@ + power-domains = <&power RPI_POWER_DOMAIN_V3D>; + }; + +-&hdmi { +- power-domains = <&power RPI_POWER_DOMAIN_HDMI>; +- status = "okay"; +-}; +- + &vec { + power-domains = <&power RPI_POWER_DOMAIN_VEC>; + status = "okay"; +--- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts ++++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts +@@ -40,6 +40,8 @@ + + &hdmi { + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; ++ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; ++ status = "okay"; + }; + + &pwm { +--- a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts ++++ b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts +@@ -54,6 +54,8 @@ + + &hdmi { + hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>; ++ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; ++ status = "okay"; + }; + + &pwm { +--- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts ++++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts +@@ -56,6 +56,8 @@ + + &hdmi { + hpd-gpios = <&expgpio 4 GPIO_ACTIVE_LOW>; ++ power-domains = <&power RPI_POWER_DOMAIN_HDMI>; ++ status = "okay"; + }; + + /* uart0 communicates with the BT module */ diff --git a/target/linux/brcm2708/patches-4.19/950-0716-clk-bcm2835-Introduce-SoC-specific-clock-registratio.patch b/target/linux/brcm2708/patches-4.19/950-0716-clk-bcm2835-Introduce-SoC-specific-clock-registratio.patch new file mode 100644 index 00000000000..52f716e74dd --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0716-clk-bcm2835-Introduce-SoC-specific-clock-registratio.patch @@ -0,0 +1,597 @@ +From 125afc5cf080b29e9114d89f6052fa4a936a3f19 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Thu, 19 Sep 2019 20:12:15 +0200 +Subject: [PATCH] clk: bcm2835: Introduce SoC specific clock + registration + +commit ee0a5a9013b2b2502571a763c3093d400d18191f upstream. + +In order to support SoC specific clocks (e.g. emmc2 for BCM2711), we +extend the description with a SoC support flag. This approach avoids long +and mostly redundant lists of clock IDs. Since PLLH is specific to +BCM2835, we register only rest of the clocks as common to all SoC. + +Suggested-by: Florian Fainelli +Signed-off-by: Stefan Wahren +Reviewed-by: Matthias Brugger +Acked-by: Eric Anholt +Reviewed-by: Eric Anholt +--- + drivers/clk/bcm/clk-bcm2835.c | 115 +++++++++++++++++++++++++++++----- + 1 file changed, 98 insertions(+), 17 deletions(-) + +--- a/drivers/clk/bcm/clk-bcm2835.c ++++ b/drivers/clk/bcm/clk-bcm2835.c +@@ -40,7 +40,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +@@ -301,6 +301,9 @@ + + #define VCMSG_ID_CORE_CLOCK 4 + ++#define SOC_BCM2835 BIT(0) ++#define SOC_ALL (SOC_BCM2835) ++ + /* + * Names of clocks used within the driver that need to be replaced + * with an external parent's name. This array is in the order that +@@ -333,6 +336,10 @@ struct bcm2835_cprman { + struct clk_hw_onecell_data onecell; + }; + ++struct cprman_plat_data { ++ unsigned int soc; ++}; ++ + static inline void cprman_write(struct bcm2835_cprman *cprman, u32 reg, u32 val) + { + writel(CM_PASSWORD | val, cprman->regs + reg); +@@ -1528,22 +1535,28 @@ typedef struct clk_hw *(*bcm2835_clk_reg + const void *data); + struct bcm2835_clk_desc { + bcm2835_clk_register clk_register; ++ unsigned int supported; + const void *data; + }; + + /* assignment helper macros for different clock types */ +-#define _REGISTER(f, ...) { .clk_register = (bcm2835_clk_register)f, \ +- .data = __VA_ARGS__ } +-#define REGISTER_PLL(...) _REGISTER(&bcm2835_register_pll, \ ++#define _REGISTER(f, s, ...) { .clk_register = (bcm2835_clk_register)f, \ ++ .supported = s, \ ++ .data = __VA_ARGS__ } ++#define REGISTER_PLL(s, ...) _REGISTER(&bcm2835_register_pll, \ ++ s, \ + &(struct bcm2835_pll_data) \ + {__VA_ARGS__}) +-#define REGISTER_PLL_DIV(...) _REGISTER(&bcm2835_register_pll_divider, \ +- &(struct bcm2835_pll_divider_data) \ +- {__VA_ARGS__}) +-#define REGISTER_CLK(...) _REGISTER(&bcm2835_register_clock, \ ++#define REGISTER_PLL_DIV(s, ...) _REGISTER(&bcm2835_register_pll_divider, \ ++ s, \ ++ &(struct bcm2835_pll_divider_data) \ ++ {__VA_ARGS__}) ++#define REGISTER_CLK(s, ...) _REGISTER(&bcm2835_register_clock, \ ++ s, \ + &(struct bcm2835_clock_data) \ + {__VA_ARGS__}) +-#define REGISTER_GATE(...) _REGISTER(&bcm2835_register_gate, \ ++#define REGISTER_GATE(s, ...) _REGISTER(&bcm2835_register_gate, \ ++ s, \ + &(struct bcm2835_gate_data) \ + {__VA_ARGS__}) + +@@ -1557,7 +1570,8 @@ static const char *const bcm2835_clock_o + "testdebug1" + }; + +-#define REGISTER_OSC_CLK(...) REGISTER_CLK( \ ++#define REGISTER_OSC_CLK(s, ...) REGISTER_CLK( \ ++ s, \ + .num_mux_parents = ARRAY_SIZE(bcm2835_clock_osc_parents), \ + .parents = bcm2835_clock_osc_parents, \ + __VA_ARGS__) +@@ -1574,7 +1588,8 @@ static const char *const bcm2835_clock_p + "pllh_aux", + }; + +-#define REGISTER_PER_CLK(...) REGISTER_CLK( \ ++#define REGISTER_PER_CLK(s, ...) REGISTER_CLK( \ ++ s, \ + .num_mux_parents = ARRAY_SIZE(bcm2835_clock_per_parents), \ + .parents = bcm2835_clock_per_parents, \ + __VA_ARGS__) +@@ -1599,7 +1614,8 @@ static const char *const bcm2835_pcm_per + "-", + }; + +-#define REGISTER_PCM_CLK(...) REGISTER_CLK( \ ++#define REGISTER_PCM_CLK(s, ...) REGISTER_CLK( \ ++ s, \ + .num_mux_parents = ARRAY_SIZE(bcm2835_pcm_per_parents), \ + .parents = bcm2835_pcm_per_parents, \ + __VA_ARGS__) +@@ -1618,7 +1634,8 @@ static const char *const bcm2835_clock_v + "pllc_core2", + }; + +-#define REGISTER_VPU_CLK(...) REGISTER_CLK( \ ++#define REGISTER_VPU_CLK(s, ...) REGISTER_CLK( \ ++ s, \ + .num_mux_parents = ARRAY_SIZE(bcm2835_clock_vpu_parents), \ + .parents = bcm2835_clock_vpu_parents, \ + __VA_ARGS__) +@@ -1654,12 +1671,14 @@ static const char *const bcm2835_clock_d + "dsi1_byte_inv", + }; + +-#define REGISTER_DSI0_CLK(...) REGISTER_CLK( \ ++#define REGISTER_DSI0_CLK(s, ...) REGISTER_CLK( \ ++ s, \ + .num_mux_parents = ARRAY_SIZE(bcm2835_clock_dsi0_parents), \ + .parents = bcm2835_clock_dsi0_parents, \ + __VA_ARGS__) + +-#define REGISTER_DSI1_CLK(...) REGISTER_CLK( \ ++#define REGISTER_DSI1_CLK(s, ...) REGISTER_CLK( \ ++ s, \ + .num_mux_parents = ARRAY_SIZE(bcm2835_clock_dsi1_parents), \ + .parents = bcm2835_clock_dsi1_parents, \ + __VA_ARGS__) +@@ -1679,6 +1698,7 @@ static const struct bcm2835_clk_desc clk + * AUDIO domain is on. + */ + [BCM2835_PLLA] = REGISTER_PLL( ++ SOC_ALL, + .name = "plla", + .cm_ctrl_reg = CM_PLLA, + .a2w_ctrl_reg = A2W_PLLA_CTRL, +@@ -1693,6 +1713,7 @@ static const struct bcm2835_clk_desc clk + .max_rate = 2400000000u, + .max_fb_rate = BCM2835_MAX_FB_RATE), + [BCM2835_PLLA_CORE] = REGISTER_PLL_DIV( ++ SOC_ALL, + .name = "plla_core", + .source_pll = "plla", + .cm_reg = CM_PLLA, +@@ -1702,6 +1723,7 @@ static const struct bcm2835_clk_desc clk + .fixed_divider = 1, + .flags = CLK_SET_RATE_PARENT), + [BCM2835_PLLA_PER] = REGISTER_PLL_DIV( ++ SOC_ALL, + .name = "plla_per", + .source_pll = "plla", + .cm_reg = CM_PLLA, +@@ -1711,6 +1733,7 @@ static const struct bcm2835_clk_desc clk + .fixed_divider = 1, + .flags = CLK_SET_RATE_PARENT), + [BCM2835_PLLA_DSI0] = REGISTER_PLL_DIV( ++ SOC_ALL, + .name = "plla_dsi0", + .source_pll = "plla", + .cm_reg = CM_PLLA, +@@ -1719,6 +1742,7 @@ static const struct bcm2835_clk_desc clk + .hold_mask = CM_PLLA_HOLDDSI0, + .fixed_divider = 1), + [BCM2835_PLLA_CCP2] = REGISTER_PLL_DIV( ++ SOC_ALL, + .name = "plla_ccp2", + .source_pll = "plla", + .cm_reg = CM_PLLA, +@@ -1730,6 +1754,7 @@ static const struct bcm2835_clk_desc clk + + /* PLLB is used for the ARM's clock. */ + [BCM2835_PLLB] = REGISTER_PLL( ++ SOC_ALL, + .name = "pllb", + .cm_ctrl_reg = CM_PLLB, + .a2w_ctrl_reg = A2W_PLLB_CTRL, +@@ -1744,6 +1769,7 @@ static const struct bcm2835_clk_desc clk + .max_rate = 3000000000u, + .max_fb_rate = BCM2835_MAX_FB_RATE), + [BCM2835_PLLB_ARM] = REGISTER_PLL_DIV( ++ SOC_ALL, + .name = "pllb_arm", + .source_pll = "pllb", + .cm_reg = CM_PLLB, +@@ -1760,6 +1786,7 @@ static const struct bcm2835_clk_desc clk + * AUDIO domain is on. + */ + [BCM2835_PLLC] = REGISTER_PLL( ++ SOC_ALL, + .name = "pllc", + .cm_ctrl_reg = CM_PLLC, + .a2w_ctrl_reg = A2W_PLLC_CTRL, +@@ -1774,6 +1801,7 @@ static const struct bcm2835_clk_desc clk + .max_rate = 3000000000u, + .max_fb_rate = BCM2835_MAX_FB_RATE), + [BCM2835_PLLC_CORE0] = REGISTER_PLL_DIV( ++ SOC_ALL, + .name = "pllc_core0", + .source_pll = "pllc", + .cm_reg = CM_PLLC, +@@ -1783,6 +1811,7 @@ static const struct bcm2835_clk_desc clk + .fixed_divider = 1, + .flags = CLK_SET_RATE_PARENT), + [BCM2835_PLLC_CORE1] = REGISTER_PLL_DIV( ++ SOC_ALL, + .name = "pllc_core1", + .source_pll = "pllc", + .cm_reg = CM_PLLC, +@@ -1792,6 +1821,7 @@ static const struct bcm2835_clk_desc clk + .fixed_divider = 1, + .flags = CLK_SET_RATE_PARENT), + [BCM2835_PLLC_CORE2] = REGISTER_PLL_DIV( ++ SOC_ALL, + .name = "pllc_core2", + .source_pll = "pllc", + .cm_reg = CM_PLLC, +@@ -1801,6 +1831,7 @@ static const struct bcm2835_clk_desc clk + .fixed_divider = 1, + .flags = CLK_SET_RATE_PARENT), + [BCM2835_PLLC_PER] = REGISTER_PLL_DIV( ++ SOC_ALL, + .name = "pllc_per", + .source_pll = "pllc", + .cm_reg = CM_PLLC, +@@ -1817,6 +1848,7 @@ static const struct bcm2835_clk_desc clk + * AUDIO domain is on. + */ + [BCM2835_PLLD] = REGISTER_PLL( ++ SOC_ALL, + .name = "plld", + .cm_ctrl_reg = CM_PLLD, + .a2w_ctrl_reg = A2W_PLLD_CTRL, +@@ -1831,6 +1863,7 @@ static const struct bcm2835_clk_desc clk + .max_rate = 2400000000u, + .max_fb_rate = BCM2835_MAX_FB_RATE), + [BCM2835_PLLD_CORE] = REGISTER_PLL_DIV( ++ SOC_ALL, + .name = "plld_core", + .source_pll = "plld", + .cm_reg = CM_PLLD, +@@ -1840,6 +1873,7 @@ static const struct bcm2835_clk_desc clk + .fixed_divider = 1, + .flags = CLK_SET_RATE_PARENT), + [BCM2835_PLLD_PER] = REGISTER_PLL_DIV( ++ SOC_ALL, + .name = "plld_per", + .source_pll = "plld", + .cm_reg = CM_PLLD, +@@ -1849,6 +1883,7 @@ static const struct bcm2835_clk_desc clk + .fixed_divider = 1, + .flags = CLK_SET_RATE_PARENT), + [BCM2835_PLLD_DSI0] = REGISTER_PLL_DIV( ++ SOC_ALL, + .name = "plld_dsi0", + .source_pll = "plld", + .cm_reg = CM_PLLD, +@@ -1857,6 +1892,7 @@ static const struct bcm2835_clk_desc clk + .hold_mask = CM_PLLD_HOLDDSI0, + .fixed_divider = 1), + [BCM2835_PLLD_DSI1] = REGISTER_PLL_DIV( ++ SOC_ALL, + .name = "plld_dsi1", + .source_pll = "plld", + .cm_reg = CM_PLLD, +@@ -1872,6 +1908,7 @@ static const struct bcm2835_clk_desc clk + * It is in the HDMI power domain. + */ + [BCM2835_PLLH] = REGISTER_PLL( ++ SOC_BCM2835, + "pllh", + .cm_ctrl_reg = CM_PLLH, + .a2w_ctrl_reg = A2W_PLLH_CTRL, +@@ -1886,6 +1923,7 @@ static const struct bcm2835_clk_desc clk + .max_rate = 3000000000u, + .max_fb_rate = BCM2835_MAX_FB_RATE), + [BCM2835_PLLH_RCAL] = REGISTER_PLL_DIV( ++ SOC_BCM2835, + .name = "pllh_rcal", + .source_pll = "pllh", + .cm_reg = CM_PLLH, +@@ -1895,6 +1933,7 @@ static const struct bcm2835_clk_desc clk + .fixed_divider = 10, + .flags = CLK_SET_RATE_PARENT), + [BCM2835_PLLH_AUX] = REGISTER_PLL_DIV( ++ SOC_BCM2835, + .name = "pllh_aux", + .source_pll = "pllh", + .cm_reg = CM_PLLH, +@@ -1904,6 +1943,7 @@ static const struct bcm2835_clk_desc clk + .fixed_divider = 1, + .flags = CLK_SET_RATE_PARENT), + [BCM2835_PLLH_PIX] = REGISTER_PLL_DIV( ++ SOC_BCM2835, + .name = "pllh_pix", + .source_pll = "pllh", + .cm_reg = CM_PLLH, +@@ -1919,6 +1959,7 @@ static const struct bcm2835_clk_desc clk + + /* One Time Programmable Memory clock. Maximum 10Mhz. */ + [BCM2835_CLOCK_OTP] = REGISTER_OSC_CLK( ++ SOC_ALL, + .name = "otp", + .ctl_reg = CM_OTPCTL, + .div_reg = CM_OTPDIV, +@@ -1930,6 +1971,7 @@ static const struct bcm2835_clk_desc clk + * bythe watchdog timer and the camera pulse generator. + */ + [BCM2835_CLOCK_TIMER] = REGISTER_OSC_CLK( ++ SOC_ALL, + .name = "timer", + .ctl_reg = CM_TIMERCTL, + .div_reg = CM_TIMERDIV, +@@ -1940,12 +1982,14 @@ static const struct bcm2835_clk_desc clk + * Generally run at 2Mhz, max 5Mhz. + */ + [BCM2835_CLOCK_TSENS] = REGISTER_OSC_CLK( ++ SOC_ALL, + .name = "tsens", + .ctl_reg = CM_TSENSCTL, + .div_reg = CM_TSENSDIV, + .int_bits = 5, + .frac_bits = 0), + [BCM2835_CLOCK_TEC] = REGISTER_OSC_CLK( ++ SOC_ALL, + .name = "tec", + .ctl_reg = CM_TECCTL, + .div_reg = CM_TECDIV, +@@ -1954,6 +1998,7 @@ static const struct bcm2835_clk_desc clk + + /* clocks with vpu parent mux */ + [BCM2835_CLOCK_H264] = REGISTER_VPU_CLK( ++ SOC_ALL, + .name = "h264", + .ctl_reg = CM_H264CTL, + .div_reg = CM_H264DIV, +@@ -1961,6 +2006,7 @@ static const struct bcm2835_clk_desc clk + .frac_bits = 8, + .tcnt_mux = 1), + [BCM2835_CLOCK_ISP] = REGISTER_VPU_CLK( ++ SOC_ALL, + .name = "isp", + .ctl_reg = CM_ISPCTL, + .div_reg = CM_ISPDIV, +@@ -1973,6 +2019,7 @@ static const struct bcm2835_clk_desc clk + * in the SDRAM controller can't be used. + */ + [BCM2835_CLOCK_SDRAM] = REGISTER_VPU_CLK( ++ SOC_ALL, + .name = "sdram", + .ctl_reg = CM_SDCCTL, + .div_reg = CM_SDCDIV, +@@ -1980,6 +2027,7 @@ static const struct bcm2835_clk_desc clk + .frac_bits = 0, + .tcnt_mux = 3), + [BCM2835_CLOCK_V3D] = REGISTER_VPU_CLK( ++ SOC_ALL, + .name = "v3d", + .ctl_reg = CM_V3DCTL, + .div_reg = CM_V3DDIV, +@@ -1993,6 +2041,7 @@ static const struct bcm2835_clk_desc clk + * in various hardware documentation. + */ + [BCM2835_CLOCK_VPU] = REGISTER_VPU_CLK( ++ SOC_ALL, + .name = "vpu", + .ctl_reg = CM_VPUCTL, + .div_reg = CM_VPUDIV, +@@ -2004,6 +2053,7 @@ static const struct bcm2835_clk_desc clk + + /* clocks with per parent mux */ + [BCM2835_CLOCK_AVEO] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "aveo", + .ctl_reg = CM_AVEOCTL, + .div_reg = CM_AVEODIV, +@@ -2011,6 +2061,7 @@ static const struct bcm2835_clk_desc clk + .frac_bits = 0, + .tcnt_mux = 38), + [BCM2835_CLOCK_CAM0] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "cam0", + .ctl_reg = CM_CAM0CTL, + .div_reg = CM_CAM0DIV, +@@ -2018,6 +2069,7 @@ static const struct bcm2835_clk_desc clk + .frac_bits = 8, + .tcnt_mux = 14), + [BCM2835_CLOCK_CAM1] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "cam1", + .ctl_reg = CM_CAM1CTL, + .div_reg = CM_CAM1DIV, +@@ -2025,12 +2077,14 @@ static const struct bcm2835_clk_desc clk + .frac_bits = 8, + .tcnt_mux = 15), + [BCM2835_CLOCK_DFT] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "dft", + .ctl_reg = CM_DFTCTL, + .div_reg = CM_DFTDIV, + .int_bits = 5, + .frac_bits = 0), + [BCM2835_CLOCK_DPI] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "dpi", + .ctl_reg = CM_DPICTL, + .div_reg = CM_DPIDIV, +@@ -2040,6 +2094,7 @@ static const struct bcm2835_clk_desc clk + + /* Arasan EMMC clock */ + [BCM2835_CLOCK_EMMC] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "emmc", + .ctl_reg = CM_EMMCCTL, + .div_reg = CM_EMMCDIV, +@@ -2049,6 +2104,7 @@ static const struct bcm2835_clk_desc clk + + /* General purpose (GPIO) clocks */ + [BCM2835_CLOCK_GP0] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "gp0", + .ctl_reg = CM_GP0CTL, + .div_reg = CM_GP0DIV, +@@ -2057,6 +2113,7 @@ static const struct bcm2835_clk_desc clk + .is_mash_clock = true, + .tcnt_mux = 20), + [BCM2835_CLOCK_GP1] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "gp1", + .ctl_reg = CM_GP1CTL, + .div_reg = CM_GP1DIV, +@@ -2066,6 +2123,7 @@ static const struct bcm2835_clk_desc clk + .is_mash_clock = true, + .tcnt_mux = 21), + [BCM2835_CLOCK_GP2] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "gp2", + .ctl_reg = CM_GP2CTL, + .div_reg = CM_GP2DIV, +@@ -2075,6 +2133,7 @@ static const struct bcm2835_clk_desc clk + + /* HDMI state machine */ + [BCM2835_CLOCK_HSM] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "hsm", + .ctl_reg = CM_HSMCTL, + .div_reg = CM_HSMDIV, +@@ -2082,6 +2141,7 @@ static const struct bcm2835_clk_desc clk + .frac_bits = 8, + .tcnt_mux = 22), + [BCM2835_CLOCK_PCM] = REGISTER_PCM_CLK( ++ SOC_ALL, + .name = "pcm", + .ctl_reg = CM_PCMCTL, + .div_reg = CM_PCMDIV, +@@ -2091,6 +2151,7 @@ static const struct bcm2835_clk_desc clk + .low_jitter = true, + .tcnt_mux = 23), + [BCM2835_CLOCK_PWM] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "pwm", + .ctl_reg = CM_PWMCTL, + .div_reg = CM_PWMDIV, +@@ -2099,6 +2160,7 @@ static const struct bcm2835_clk_desc clk + .is_mash_clock = true, + .tcnt_mux = 24), + [BCM2835_CLOCK_SLIM] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "slim", + .ctl_reg = CM_SLIMCTL, + .div_reg = CM_SLIMDIV, +@@ -2107,6 +2169,7 @@ static const struct bcm2835_clk_desc clk + .is_mash_clock = true, + .tcnt_mux = 25), + [BCM2835_CLOCK_SMI] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "smi", + .ctl_reg = CM_SMICTL, + .div_reg = CM_SMIDIV, +@@ -2114,6 +2177,7 @@ static const struct bcm2835_clk_desc clk + .frac_bits = 8, + .tcnt_mux = 27), + [BCM2835_CLOCK_UART] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "uart", + .ctl_reg = CM_UARTCTL, + .div_reg = CM_UARTDIV, +@@ -2123,6 +2187,7 @@ static const struct bcm2835_clk_desc clk + + /* TV encoder clock. Only operating frequency is 108Mhz. */ + [BCM2835_CLOCK_VEC] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "vec", + .ctl_reg = CM_VECCTL, + .div_reg = CM_VECDIV, +@@ -2137,6 +2202,7 @@ static const struct bcm2835_clk_desc clk + + /* dsi clocks */ + [BCM2835_CLOCK_DSI0E] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "dsi0e", + .ctl_reg = CM_DSI0ECTL, + .div_reg = CM_DSI0EDIV, +@@ -2144,6 +2210,7 @@ static const struct bcm2835_clk_desc clk + .frac_bits = 8, + .tcnt_mux = 18), + [BCM2835_CLOCK_DSI1E] = REGISTER_PER_CLK( ++ SOC_ALL, + .name = "dsi1e", + .ctl_reg = CM_DSI1ECTL, + .div_reg = CM_DSI1EDIV, +@@ -2151,6 +2218,7 @@ static const struct bcm2835_clk_desc clk + .frac_bits = 8, + .tcnt_mux = 19), + [BCM2835_CLOCK_DSI0P] = REGISTER_DSI0_CLK( ++ SOC_ALL, + .name = "dsi0p", + .ctl_reg = CM_DSI0PCTL, + .div_reg = CM_DSI0PDIV, +@@ -2158,6 +2226,7 @@ static const struct bcm2835_clk_desc clk + .frac_bits = 0, + .tcnt_mux = 12), + [BCM2835_CLOCK_DSI1P] = REGISTER_DSI1_CLK( ++ SOC_ALL, + .name = "dsi1p", + .ctl_reg = CM_DSI1PCTL, + .div_reg = CM_DSI1PDIV, +@@ -2174,6 +2243,7 @@ static const struct bcm2835_clk_desc clk + * non-stop vpu clock. + */ + [BCM2835_CLOCK_PERI_IMAGE] = REGISTER_GATE( ++ SOC_ALL, + .name = "peri_image", + .parent = "vpu", + .ctl_reg = CM_PERIICTL), +@@ -2221,11 +2291,16 @@ static int bcm2835_clk_probe(struct plat + struct resource *res; + const struct bcm2835_clk_desc *desc; + const size_t asize = ARRAY_SIZE(clk_desc_array); ++ const struct cprman_plat_data *pdata; + struct device_node *fw_node; + size_t i; + u32 clk_id; + int ret; + ++ pdata = of_device_get_match_data(&pdev->dev); ++ if (!pdata) ++ return -ENODEV; ++ + cprman = devm_kzalloc(dev, + struct_size(cprman, onecell.hws, asize), + GFP_KERNEL); +@@ -2276,8 +2351,10 @@ static int bcm2835_clk_probe(struct plat + + for (i = 0; i < asize; i++) { + desc = &clk_desc_array[i]; +- if (desc->clk_register && desc->data) ++ if (desc->clk_register && desc->data && ++ (desc->supported & pdata->soc)) { + hws[i] = desc->clk_register(cprman, desc->data); ++ } + } + + ret = bcm2835_mark_sdc_parent_critical(hws[BCM2835_CLOCK_SDRAM]->clk); +@@ -2295,8 +2372,12 @@ static int bcm2835_clk_probe(struct plat + return 0; + } + ++static const struct cprman_plat_data cprman_bcm2835_plat_data = { ++ .soc = SOC_BCM2835, ++}; ++ + static const struct of_device_id bcm2835_clk_of_match[] = { +- { .compatible = "brcm,bcm2835-cprman", }, ++ { .compatible = "brcm,bcm2835-cprman", .data = &cprman_bcm2835_plat_data }, + {} + }; + MODULE_DEVICE_TABLE(of, bcm2835_clk_of_match); diff --git a/target/linux/brcm2708/patches-4.19/950-0717-clk-bcm2835-Add-BCM2711_CLOCK_EMMC2-support.patch b/target/linux/brcm2708/patches-4.19/950-0717-clk-bcm2835-Add-BCM2711_CLOCK_EMMC2-support.patch new file mode 100644 index 00000000000..8d4b7c9e0b5 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0717-clk-bcm2835-Add-BCM2711_CLOCK_EMMC2-support.patch @@ -0,0 +1,91 @@ +From b4c6046e1c55ddf211215191be9ea6316238889b Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Fri, 20 Sep 2019 07:27:03 +0200 +Subject: [PATCH] clk: bcm2835: Add BCM2711_CLOCK_EMMC2 support + +commit 42de9ad400afadd41ee027b5feef234a2d2918b9 upstream. + +The new BCM2711 supports an additional clock for the emmc2 block. +So add a new compatible and register this clock only for BCM2711. + +Signed-off-by: Stefan Wahren +Reviewed-by: Matthias Brugger +Acked-by: Eric Anholt +Reviewed-by: Eric Anholt +--- + arch/arm/boot/dts/bcm2838.dtsi | 1 + + drivers/clk/bcm/clk-bcm2835.c | 20 +++++++++++++++++++- + include/dt-bindings/clock/bcm2835.h | 2 ++ + 3 files changed, 22 insertions(+), 1 deletion(-) + +--- a/arch/arm/boot/dts/bcm2838.dtsi ++++ b/arch/arm/boot/dts/bcm2838.dtsi +@@ -210,7 +210,7 @@ + compatible = "brcm,bcm2711-emmc2"; + status = "okay"; + interrupts = ; +- clocks = <&clocks BCM2838_CLOCK_EMMC2>; ++ clocks = <&clocks BCM2711_CLOCK_EMMC2>; + reg = <0x7e340000 0x100>; + }; + +--- a/drivers/clk/bcm/clk-bcm2835.c ++++ b/drivers/clk/bcm/clk-bcm2835.c +@@ -124,6 +124,8 @@ + #define CM_AVEODIV 0x1bc + #define CM_EMMCCTL 0x1c0 + #define CM_EMMCDIV 0x1c4 ++#define CM_EMMC2CTL 0x1d0 ++#define CM_EMMC2DIV 0x1d4 + + /* General bits for the CM_*CTL regs */ + # define CM_ENABLE BIT(4) +@@ -302,7 +304,8 @@ + #define VCMSG_ID_CORE_CLOCK 4 + + #define SOC_BCM2835 BIT(0) +-#define SOC_ALL (SOC_BCM2835) ++#define SOC_BCM2711 BIT(1) ++#define SOC_ALL (SOC_BCM2835 | SOC_BCM2711) + + /* + * Names of clocks used within the driver that need to be replaced +@@ -2102,6 +2105,16 @@ static const struct bcm2835_clk_desc clk + .frac_bits = 8, + .tcnt_mux = 39), + ++ /* EMMC2 clock (only available for BCM2711) */ ++ [BCM2711_CLOCK_EMMC2] = REGISTER_PER_CLK( ++ SOC_BCM2711, ++ .name = "emmc2", ++ .ctl_reg = CM_EMMC2CTL, ++ .div_reg = CM_EMMC2DIV, ++ .int_bits = 4, ++ .frac_bits = 8, ++ .tcnt_mux = 42), ++ + /* General purpose (GPIO) clocks */ + [BCM2835_CLOCK_GP0] = REGISTER_PER_CLK( + SOC_ALL, +@@ -2376,8 +2389,13 @@ static const struct cprman_plat_data cpr + .soc = SOC_BCM2835, + }; + ++static const struct cprman_plat_data cprman_bcm2711_plat_data = { ++ .soc = SOC_BCM2711, ++}; ++ + static const struct of_device_id bcm2835_clk_of_match[] = { + { .compatible = "brcm,bcm2835-cprman", .data = &cprman_bcm2835_plat_data }, ++ { .compatible = "brcm,bcm2711-cprman", .data = &cprman_bcm2711_plat_data }, + {} + }; + MODULE_DEVICE_TABLE(of, bcm2835_clk_of_match); +--- a/include/dt-bindings/clock/bcm2835.h ++++ b/include/dt-bindings/clock/bcm2835.h +@@ -66,3 +66,5 @@ + #define BCM2835_CLOCK_DSI1E 48 + #define BCM2835_CLOCK_DSI0P 49 + #define BCM2835_CLOCK_DSI1P 50 ++ ++#define BCM2711_CLOCK_EMMC2 51 diff --git a/target/linux/brcm2708/patches-4.19/950-0718-ARM-bcm-Switch-board-clk-and-pinctrl-to-bcm2711-comp.patch b/target/linux/brcm2708/patches-4.19/950-0718-ARM-bcm-Switch-board-clk-and-pinctrl-to-bcm2711-comp.patch new file mode 100644 index 00000000000..eac69b44ac3 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0718-ARM-bcm-Switch-board-clk-and-pinctrl-to-bcm2711-comp.patch @@ -0,0 +1,71 @@ +From 30972497979c65781bb8170743447b45b6dfd3cd Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Thu, 19 Sep 2019 20:45:30 +0200 +Subject: [PATCH] ARM: bcm: Switch board, clk and pinctrl to bcm2711 + compatible + +After the decision to use bcm2711 compatible for upstream, we should +switch all accepted compatibles to bcm2711. So we can boot with +one DTB the down- and the upstream kernel. + +Signed-off-by: Stefan Wahren +--- + arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 2 +- + arch/arm/boot/dts/bcm2838-rpi-4-b.dts | 2 +- + arch/arm/boot/dts/bcm2838.dtsi | 4 ++-- + arch/arm/mach-bcm/board_bcm2835.c | 2 +- + 4 files changed, 5 insertions(+), 5 deletions(-) + +--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +@@ -5,7 +5,7 @@ + #include "bcm283x-rpi-csi1-2lane.dtsi" + + / { +- compatible = "raspberrypi,4-model-b", "brcm,bcm2838"; ++ compatible = "raspberrypi,4-model-b", "brcm,bcm2711"; + model = "Raspberry Pi 4 Model B"; + + memory@0 { +--- a/arch/arm/boot/dts/bcm2838-rpi-4-b.dts ++++ b/arch/arm/boot/dts/bcm2838-rpi-4-b.dts +@@ -5,7 +5,7 @@ + #include "bcm2838-rpi.dtsi" + + / { +- compatible = "raspberrypi,4-model-b", "brcm,bcm2838"; ++ compatible = "raspberrypi,4-model-b", "brcm,bcm2711"; + model = "Raspberry Pi 4 Model B"; + + chosen { +--- a/arch/arm/boot/dts/bcm2838.dtsi ++++ b/arch/arm/boot/dts/bcm2838.dtsi +@@ -440,7 +440,7 @@ + }; + + &clocks { +- compatible = "brcm,bcm2838-cprman"; ++ compatible = "brcm,bcm2711-cprman"; + }; + + &cpu_thermal { +@@ -456,7 +456,7 @@ + }; + + &gpio { +- compatible = "brcm,bcm2838-gpio", "brcm,bcm2835-gpio"; ++ compatible = "brcm,bcm2711-gpio", "brcm,bcm2835-gpio"; + + gpclk0_gpio49: gpclk0_gpio49 { + brcm,pins = <49>; +--- a/arch/arm/mach-bcm/board_bcm2835.c ++++ b/arch/arm/mach-bcm/board_bcm2835.c +@@ -118,7 +118,7 @@ static const char * const bcm2835_compat + #ifdef CONFIG_ARCH_MULTI_V7 + "brcm,bcm2836", + "brcm,bcm2837", +- "brcm,bcm2838", ++ "brcm,bcm2711", + #endif + NULL + }; diff --git a/target/linux/brcm2708/patches-4.19/950-0719-pinctrl-bcm2835-Switch-to-SPDX-identifier.patch b/target/linux/brcm2708/patches-4.19/950-0719-pinctrl-bcm2835-Switch-to-SPDX-identifier.patch new file mode 100644 index 00000000000..e45c65724a9 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0719-pinctrl-bcm2835-Switch-to-SPDX-identifier.patch @@ -0,0 +1,62 @@ +From e60428993b9ba03e2389eeb61c4b5efaa80b9e05 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Sat, 10 Nov 2018 17:15:11 +0100 +Subject: [PATCH] pinctrl: bcm2835: Switch to SPDX identifier + +commit a62c36775ba873611b00b82ce7ebcd4ff2126111 upstream. + +Adopt the SPDX license identifier headers to ease license compliance +management. + +Cc: Simon Arlott +Cc: Stephen Warren +Signed-off-by: Stefan Wahren +Reviewed-by: Eric Anholt +Signed-off-by: Linus Walleij +--- + drivers/pinctrl/bcm/pinctrl-bcm2835.c | 11 +---------- + include/dt-bindings/pinctrl/bcm2835.h | 8 +------- + 2 files changed, 2 insertions(+), 17 deletions(-) + +--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c ++++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c +@@ -1,3 +1,4 @@ ++// SPDX-License-Identifier: GPL-2.0+ + /* + * Driver for Broadcom BCM2835 GPIO unit (pinctrl + GPIO) + * +@@ -6,16 +7,6 @@ + * This driver is inspired by: + * pinctrl-nomadik.c, please see original file for copyright information + * pinctrl-tegra.c, please see original file for copyright information +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. + */ + + #include +--- a/include/dt-bindings/pinctrl/bcm2835.h ++++ b/include/dt-bindings/pinctrl/bcm2835.h +@@ -1,14 +1,8 @@ ++/* SPDX-License-Identifier: GPL-2.0 */ + /* + * Header providing constants for bcm2835 pinctrl bindings. + * + * Copyright (C) 2015 Stefan Wahren +- * +- * The code contained herein is licensed under the GNU General Public +- * License. You may obtain a copy of the GNU General Public License +- * Version 2 at the following locations: +- * +- * http://www.opensource.org/licenses/gpl-license.html +- * http://www.gnu.org/copyleft/gpl.html + */ + + #ifndef __DT_BINDINGS_PINCTRL_BCM2835_H__ diff --git a/target/linux/brcm2708/patches-4.19/950-0720-pinctrl-bcm2835-declare-pin-config-as-generic.patch b/target/linux/brcm2708/patches-4.19/950-0720-pinctrl-bcm2835-declare-pin-config-as-generic.patch new file mode 100644 index 00000000000..d1ffc9b877f --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0720-pinctrl-bcm2835-declare-pin-config-as-generic.patch @@ -0,0 +1,27 @@ +From 2729832886181a4f8bfe1e2c028a7bdb92004ce7 Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Sun, 3 Feb 2019 14:02:33 +0100 +Subject: [PATCH] pinctrl: bcm2835: declare pin config as generic + +commit 1cb66f080c27349fbf87fb327d587b4b0b624fa3 upstream. + +Since commit 0de704955ee44 ("pinctrl: bcm2835: Add support for +generic pinctrl binding") this driver is capable to use the generic +interface. So declare this accordingly. + +Signed-off-by: Stefan Wahren +Signed-off-by: Linus Walleij +--- + drivers/pinctrl/bcm/pinctrl-bcm2835.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c ++++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c +@@ -969,6 +969,7 @@ static int bcm2835_pinconf_set(struct pi + } + + static const struct pinconf_ops bcm2835_pinconf_ops = { ++ .is_generic = true, + .pin_config_get = bcm2835_pinconf_get, + .pin_config_set = bcm2835_pinconf_set, + }; diff --git a/target/linux/brcm2708/patches-4.19/950-0721-pinctrl-bcm2835-Direct-GPIO-config-changes-to-generi.patch b/target/linux/brcm2708/patches-4.19/950-0721-pinctrl-bcm2835-Direct-GPIO-config-changes-to-generi.patch new file mode 100644 index 00000000000..e3d23010b91 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0721-pinctrl-bcm2835-Direct-GPIO-config-changes-to-generi.patch @@ -0,0 +1,37 @@ +From 289685a9b369bda990c4f22bbc7659ad492e6dbb Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Sun, 3 Feb 2019 14:02:34 +0100 +Subject: [PATCH] pinctrl: bcm2835: Direct GPIO config changes to + generic pinctrl + +commit b6e5531c0f80de2779c87d0235b4fde5310a83b5 upstream. + +In order to support GPIO config changes direct these to the generic pinctrl. +This also requires an adjust of the return code for unsupported parameter +otherwise gpiod_configure_flags wont work as expected. + +Signed-off-by: Stefan Wahren +Signed-off-by: Linus Walleij +--- + drivers/pinctrl/bcm/pinctrl-bcm2835.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c ++++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c +@@ -342,6 +342,7 @@ static const struct gpio_chip bcm2835_gp + .get = bcm2835_gpio_get, + .set = bcm2835_gpio_set, + .base = 0, ++ .set_config = gpiochip_generic_config, + .ngpio = BCM2835_NUM_GPIOS, + .can_sleep = false, + }; +@@ -960,7 +961,7 @@ static int bcm2835_pinconf_set(struct pi + break; + + default: +- return -EINVAL; ++ return -ENOTSUPP; + + } /* switch param type */ + } /* for each config */ diff --git a/target/linux/brcm2708/patches-4.19/950-0722-pinctrl-bcm2835-Add-support-for-BCM2711-pull-up-func.patch b/target/linux/brcm2708/patches-4.19/950-0722-pinctrl-bcm2835-Add-support-for-BCM2711-pull-up-func.patch new file mode 100644 index 00000000000..e06247753d1 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0722-pinctrl-bcm2835-Add-support-for-BCM2711-pull-up-func.patch @@ -0,0 +1,183 @@ +From 268bd5b5557ccb0ac4eae998ad7c6261c240b89b Mon Sep 17 00:00:00 2001 +From: Stefan Wahren +Date: Sun, 21 Jul 2019 16:01:36 +0200 +Subject: [PATCH] pinctrl: bcm2835: Add support for BCM2711 pull-up + functionality + +commit e38a9a437fb93ddafab5030165e4c6a3a5021669 upstream. + +The BCM2711 has a new way of selecting the pull-up/pull-down setting +for a GPIO pin. The registers used for the BCM2835, GP_PUD and +GP_PUDCLKn0, are no longer connected. A new set of registers, +GP_GPIO_PUP_PDN_CNTRL_REGx must be used. This commit will add +a new compatible string "brcm,bcm2711-gpio" and the kernel +driver will use it to select which method is used to select +pull-up/pull-down. + +This patch based on a patch by Al Cooper which was intended for the +BCM7211. This is a bugfixed and improved version. + +Signed-off-by: Stefan Wahren +Acked-by: Eric Anholt +--- + drivers/pinctrl/bcm/pinctrl-bcm2835.c | 105 ++++++++++++++++++++++++-- + 1 file changed, 100 insertions(+), 5 deletions(-) + +--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c ++++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c +@@ -57,15 +57,24 @@ + #define GPAFEN0 0x88 /* Pin Async Falling Edge Detect */ + #define GPPUD 0x94 /* Pin Pull-up/down Enable */ + #define GPPUDCLK0 0x98 /* Pin Pull-up/down Enable Clock */ ++#define GP_GPIO_PUP_PDN_CNTRL_REG0 0xe4 /* 2711 Pin Pull-up/down select */ + + #define FSEL_REG(p) (GPFSEL0 + (((p) / 10) * 4)) + #define FSEL_SHIFT(p) (((p) % 10) * 3) + #define GPIO_REG_OFFSET(p) ((p) / 32) + #define GPIO_REG_SHIFT(p) ((p) % 32) + ++#define PUD_2711_MASK 0x3 ++#define PUD_2711_REG_OFFSET(p) ((p) / 16) ++#define PUD_2711_REG_SHIFT(p) (((p) % 16) * 2) ++ + /* argument: bcm2835_pinconf_pull */ + #define BCM2835_PINCONF_PARAM_PULL (PIN_CONFIG_END + 1) + ++#define BCM2711_PULL_NONE 0x0 ++#define BCM2711_PULL_UP 0x1 ++#define BCM2711_PULL_DOWN 0x2 ++ + struct bcm2835_pinctrl { + struct device *dev; + void __iomem *base; +@@ -975,6 +984,77 @@ static const struct pinconf_ops bcm2835_ + .pin_config_set = bcm2835_pinconf_set, + }; + ++static void bcm2711_pull_config_set(struct bcm2835_pinctrl *pc, ++ unsigned int pin, unsigned int arg) ++{ ++ u32 shifter; ++ u32 value; ++ u32 off; ++ ++ off = PUD_2711_REG_OFFSET(pin); ++ shifter = PUD_2711_REG_SHIFT(pin); ++ ++ value = bcm2835_gpio_rd(pc, GP_GPIO_PUP_PDN_CNTRL_REG0 + (off * 4)); ++ value &= ~(PUD_2711_MASK << shifter); ++ value |= (arg << shifter); ++ bcm2835_gpio_wr(pc, GP_GPIO_PUP_PDN_CNTRL_REG0 + (off * 4), value); ++} ++ ++static int bcm2711_pinconf_set(struct pinctrl_dev *pctldev, ++ unsigned int pin, unsigned long *configs, ++ unsigned int num_configs) ++{ ++ struct bcm2835_pinctrl *pc = pinctrl_dev_get_drvdata(pctldev); ++ u32 param, arg; ++ int i; ++ ++ for (i = 0; i < num_configs; i++) { ++ param = pinconf_to_config_param(configs[i]); ++ arg = pinconf_to_config_argument(configs[i]); ++ ++ switch (param) { ++ /* convert legacy brcm,pull */ ++ case BCM2835_PINCONF_PARAM_PULL: ++ if (arg == BCM2835_PUD_UP) ++ arg = BCM2711_PULL_UP; ++ else if (arg == BCM2835_PUD_DOWN) ++ arg = BCM2711_PULL_DOWN; ++ else ++ arg = BCM2711_PULL_NONE; ++ ++ bcm2711_pull_config_set(pc, pin, arg); ++ break; ++ ++ /* Set pull generic bindings */ ++ case PIN_CONFIG_BIAS_DISABLE: ++ bcm2711_pull_config_set(pc, pin, BCM2711_PULL_NONE); ++ break; ++ case PIN_CONFIG_BIAS_PULL_DOWN: ++ bcm2711_pull_config_set(pc, pin, BCM2711_PULL_DOWN); ++ break; ++ case PIN_CONFIG_BIAS_PULL_UP: ++ bcm2711_pull_config_set(pc, pin, BCM2711_PULL_UP); ++ break; ++ ++ /* Set output-high or output-low */ ++ case PIN_CONFIG_OUTPUT: ++ bcm2835_gpio_set_bit(pc, arg ? GPSET0 : GPCLR0, pin); ++ break; ++ ++ default: ++ return -ENOTSUPP; ++ } ++ } /* for each config */ ++ ++ return 0; ++} ++ ++static const struct pinconf_ops bcm2711_pinconf_ops = { ++ .is_generic = true, ++ .pin_config_get = bcm2835_pinconf_get, ++ .pin_config_set = bcm2711_pinconf_set, ++}; ++ + static struct pinctrl_desc bcm2835_pinctrl_desc = { + .name = MODULE_NAME, + .pins = bcm2835_gpio_pins, +@@ -990,6 +1070,18 @@ static struct pinctrl_gpio_range bcm2835 + .npins = BCM2835_NUM_GPIOS, + }; + ++static const struct of_device_id bcm2835_pinctrl_match[] = { ++ { ++ .compatible = "brcm,bcm2835-gpio", ++ .data = &bcm2835_pinconf_ops, ++ }, ++ { ++ .compatible = "brcm,bcm2711-gpio", ++ .data = &bcm2711_pinconf_ops, ++ }, ++ {} ++}; ++ + static int bcm2835_pinctrl_probe(struct platform_device *pdev) + { + struct device *dev = &pdev->dev; +@@ -997,6 +1089,8 @@ static int bcm2835_pinctrl_probe(struct + struct bcm2835_pinctrl *pc; + struct resource iomem; + int err, i; ++ const struct of_device_id *match; ++ + BUILD_BUG_ON(ARRAY_SIZE(bcm2835_gpio_pins) != BCM2835_NUM_GPIOS); + BUILD_BUG_ON(ARRAY_SIZE(bcm2835_gpio_groups) != BCM2835_NUM_GPIOS); + +@@ -1073,6 +1167,12 @@ static int bcm2835_pinctrl_probe(struct + bcm2835_gpio_irq_handler); + } + ++ match = of_match_node(bcm2835_pinctrl_match, pdev->dev.of_node); ++ if (match) { ++ bcm2835_pinctrl_desc.confops = ++ (const struct pinconf_ops *)match->data; ++ } ++ + pc->pctl_dev = devm_pinctrl_register(dev, &bcm2835_pinctrl_desc, pc); + if (IS_ERR(pc->pctl_dev)) { + gpiochip_remove(&pc->gpio_chip); +@@ -1087,11 +1187,6 @@ static int bcm2835_pinctrl_probe(struct + return 0; + } + +-static const struct of_device_id bcm2835_pinctrl_match[] = { +- { .compatible = "brcm,bcm2835-gpio" }, +- {} +-}; +- + static struct platform_driver bcm2835_pinctrl_driver = { + .probe = bcm2835_pinctrl_probe, + .driver = { diff --git a/target/linux/brcm2708/patches-4.19/950-0723-Rename-HDMI-ALSA-device-names-check-for-enable-state.patch b/target/linux/brcm2708/patches-4.19/950-0723-Rename-HDMI-ALSA-device-names-check-for-enable-state.patch new file mode 100644 index 00000000000..fa3c3a63391 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0723-Rename-HDMI-ALSA-device-names-check-for-enable-state.patch @@ -0,0 +1,139 @@ +From 1ed6ab5bf2180bd96a78f27fde848f57f4d6b636 Mon Sep 17 00:00:00 2001 +From: James Hughes +Date: Tue, 24 Sep 2019 18:26:55 +0100 +Subject: [PATCH] Rename HDMI ALSA device names, check for enable state + +HDMI Alsa devices renamed to match names used by DRM, to +HDMI 1 and HDMI 2 + +Check for which HDMI devices are connected and only create +devices for those that are present. + +The rename of the devices might cause some backwards compatibility +issues, but since this particular part of the driver needs to be +specifically enabled, I suspect the number of people who will see +the problem will be very small. + +Signed-off-by: James Hughes +--- + .../vc04_services/bcm2835-audio/bcm2835.c | 70 +++++++++++++++++-- + 1 file changed, 63 insertions(+), 7 deletions(-) + +--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c ++++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c +@@ -9,8 +9,9 @@ + #include + + #include "bcm2835.h" ++#include + +-static bool enable_hdmi; ++static bool enable_hdmi, enable_hdmi0, enable_hdmi1; + static bool enable_headphones; + static bool enable_compat_alsa = true; + +@@ -115,8 +116,8 @@ static struct bcm2835_audio_driver bcm28 + .name = "bcm2835_hdmi", + .owner = THIS_MODULE, + }, +- .shortname = "bcm2835 HDMI", +- .longname = "bcm2835 HDMI", ++ .shortname = "bcm2835 HDMI 1", ++ .longname = "bcm2835 HDMI 1", + .minchannels = 1, + .newpcm = bcm2835_audio_simple_newpcm, + .newctl = snd_bcm2835_new_hdmi_ctl, +@@ -128,8 +129,8 @@ static struct bcm2835_audio_driver bcm28 + .name = "bcm2835_hdmi", + .owner = THIS_MODULE, + }, +- .shortname = "bcm2835 HDMI 1", +- .longname = "bcm2835 HDMI 1", ++ .shortname = "bcm2835 HDMI 2", ++ .longname = "bcm2835 HDMI 2", + .minchannels = 1, + .newpcm = bcm2835_audio_simple_newpcm, + .newctl = snd_bcm2835_new_hdmi_ctl, +@@ -161,11 +162,11 @@ static struct bcm2835_audio_drivers chil + }, + { + .audio_driver = &bcm2835_audio_hdmi0, +- .is_enabled = &enable_hdmi, ++ .is_enabled = &enable_hdmi0, + }, + { + .audio_driver = &bcm2835_audio_hdmi1, +- .is_enabled = &enable_hdmi, ++ .is_enabled = &enable_hdmi1, + }, + { + .audio_driver = &bcm2835_audio_headphones, +@@ -312,6 +313,53 @@ static int snd_add_child_devices(struct + return 0; + } + ++static void set_hdmi_enables(struct device *dev) ++{ ++ struct device_node *firmware_node; ++ struct rpi_firmware *firmware; ++ u32 num_displays, i, display_id; ++ int ret; ++ ++ firmware_node = of_parse_phandle(dev->of_node, "brcm,firmware", 0); ++ firmware = rpi_firmware_get(firmware_node); ++ ++ if (!firmware) ++ return; ++ ++ of_node_put(firmware_node); ++ ++ ret = rpi_firmware_property(firmware, ++ RPI_FIRMWARE_FRAMEBUFFER_GET_NUM_DISPLAYS, ++ &num_displays, sizeof(u32)); ++ ++ if (ret) ++ return; ++ ++ for (i = 0; i < num_displays; i++) { ++ display_id = i; ++ ret = rpi_firmware_property(firmware, ++ RPI_FIRMWARE_FRAMEBUFFER_GET_DISPLAY_ID, ++ &display_id, sizeof(display_id)); ++ if (!ret) { ++ if (display_id == 2) ++ enable_hdmi0 = true; ++ if (display_id == 7) ++ enable_hdmi1 = true; ++ } ++ } ++ ++ if (!enable_hdmi0 && enable_hdmi1) { ++ /* Swap them over and reassign route. This means ++ * that if we only have one connected, it is always named ++ * HDMI1, irrespective of if its on port HDMI0 or HDMI1. ++ * This should match with the naming of HDMI ports in DRM ++ */ ++ enable_hdmi0 = true; ++ enable_hdmi1 = false; ++ bcm2835_audio_hdmi0.route = AUDIO_DEST_HDMI1; ++ } ++} ++ + static int snd_bcm2835_alsa_probe(struct platform_device *pdev) + { + struct device *dev = &pdev->dev; +@@ -332,6 +380,14 @@ static int snd_bcm2835_alsa_probe(struct + numchans); + } + ++ if (!enable_compat_alsa) { ++ set_hdmi_enables(dev); ++ // In this mode, always enable analog output ++ enable_headphones = true; ++ } else { ++ enable_hdmi0 = enable_hdmi; ++ } ++ + err = bcm2835_devm_add_vchi_ctx(dev); + if (err) + return err; diff --git a/target/linux/brcm2708/patches-4.19/950-0724-pcie-brcmstb-bounce64.c-dev_err-dev_info-for-info-me.patch b/target/linux/brcm2708/patches-4.19/950-0724-pcie-brcmstb-bounce64.c-dev_err-dev_info-for-info-me.patch new file mode 100644 index 00000000000..aefa3b856bf --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0724-pcie-brcmstb-bounce64.c-dev_err-dev_info-for-info-me.patch @@ -0,0 +1,25 @@ +From 592f7ebf2755acc81cd794b73916f3b2bcccaa68 Mon Sep 17 00:00:00 2001 +From: Floris Bos +Date: Fri, 4 Oct 2019 16:41:30 +0200 +Subject: [PATCH] pcie-brcmstb-bounce64.c: dev_err() -> dev_info() for + info messages + +"dmabounce: initialised" is not an error, so do not log it as such. +Prevents screen polution on OS with "quiet" as kernel parameter. + +Closes #3266 +--- + drivers/pci/controller/pcie-brcmstb-bounce64.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/pci/controller/pcie-brcmstb-bounce64.c ++++ b/drivers/pci/controller/pcie-brcmstb-bounce64.c +@@ -524,7 +524,7 @@ int brcm_pcie_bounce_init(struct device + + g_dmabounce_device_info = device_info; + +- dev_err(dev, "dmabounce: initialised - %ld kB, threshold %pad\n", ++ dev_info(dev, "dmabounce: initialised - %ld kB, threshold %pad\n", + buffer_size / 1024, &threshold); + + return 0; diff --git a/target/linux/brcm2708/patches-4.19/950-0725-overlays-gpio-shutdown-Add-debounce-parameter.patch b/target/linux/brcm2708/patches-4.19/950-0725-overlays-gpio-shutdown-Add-debounce-parameter.patch new file mode 100644 index 00000000000..d928458b785 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0725-overlays-gpio-shutdown-Add-debounce-parameter.patch @@ -0,0 +1,48 @@ +From 499e28e3a38f0de843b07bf4bbf7692b07c5e3ba Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 7 Oct 2019 13:51:07 +0100 +Subject: [PATCH] overlays: gpio-shutdown: Add debounce parameter + +Give the gpio-shutdown overlay a debounce parameter that requires +the GPIO to be held at the relevant level for a specified number +of milliseconds. The default value is 100 - higher than the driver +default of 5ms to avoid unfortunate glitches. + +See: https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=253680 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/README | 3 +++ + arch/arm/boot/dts/overlays/gpio-shutdown-overlay.dts | 2 ++ + 2 files changed, 5 insertions(+) + +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -803,6 +803,9 @@ Params: gpio_pin GPIO pin + Note that the default pin (GPIO3) has an + external pullup. + ++ debounce Specify the debounce interval in milliseconds ++ (default 100) ++ + + Name: hd44780-lcd + Info: Configures an HD44780 compatible LCD display. Uses 4 gpio pins for +--- a/arch/arm/boot/dts/overlays/gpio-shutdown-overlay.dts ++++ b/arch/arm/boot/dts/overlays/gpio-shutdown-overlay.dts +@@ -53,6 +53,7 @@ + label = "shutdown"; + linux,code = <116>; // KEY_POWER + gpios = <&gpio 3 1>; ++ debounce-interval = <100>; // ms + }; + }; + }; +@@ -75,6 +76,7 @@ + + // Allow setting the active_low flag. 0 = active high, 1 = active low + active_low = <&button>,"gpios:8"; ++ debounce = <&button>,"debounce-interval:0"; + }; + + }; diff --git a/target/linux/brcm2708/patches-4.19/950-0726-overlays-fix-compatible-for-RPi4.patch b/target/linux/brcm2708/patches-4.19/950-0726-overlays-fix-compatible-for-RPi4.patch new file mode 100644 index 00000000000..f11066f6225 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0726-overlays-fix-compatible-for-RPi4.patch @@ -0,0 +1,204 @@ +From 8ad712b22e410a5d13bc6678fbee4a5b0ec9b518 Mon Sep 17 00:00:00 2001 +From: Matthias Brugger +Date: Wed, 2 Oct 2019 18:41:32 +0200 +Subject: [PATCH] overlays: fix compatible for RPi4 + +RPi4 compatible is now bcm2711, but some overlays refer to the SoC as +bcm2838. Fix this overlays as they otherwise won't apply. + +Signed-off-by: Matthias Brugger +--- + arch/arm/boot/dts/overlays/i2c3-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/i2c4-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/i2c5-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/i2c6-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/spi3-1cs-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/spi3-2cs-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/spi4-1cs-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/spi4-2cs-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/spi5-1cs-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/spi5-2cs-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/spi6-1cs-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/spi6-2cs-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/uart2-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/uart3-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/uart4-overlay.dts | 2 +- + arch/arm/boot/dts/overlays/uart5-overlay.dts | 2 +- + 16 files changed, 16 insertions(+), 16 deletions(-) + +--- a/arch/arm/boot/dts/overlays/i2c3-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c3-overlay.dts +@@ -2,7 +2,7 @@ + /plugin/; + + /{ +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&i2c3>; +--- a/arch/arm/boot/dts/overlays/i2c4-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c4-overlay.dts +@@ -2,7 +2,7 @@ + /plugin/; + + /{ +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&i2c4>; +--- a/arch/arm/boot/dts/overlays/i2c5-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c5-overlay.dts +@@ -2,7 +2,7 @@ + /plugin/; + + /{ +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&i2c5>; +--- a/arch/arm/boot/dts/overlays/i2c6-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c6-overlay.dts +@@ -2,7 +2,7 @@ + /plugin/; + + /{ +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&i2c6>; +--- a/arch/arm/boot/dts/overlays/spi3-1cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi3-1cs-overlay.dts +@@ -3,7 +3,7 @@ + + + / { +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&spi3_cs_pins>; +--- a/arch/arm/boot/dts/overlays/spi3-2cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi3-2cs-overlay.dts +@@ -3,7 +3,7 @@ + + + / { +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&spi3_cs_pins>; +--- a/arch/arm/boot/dts/overlays/spi4-1cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi4-1cs-overlay.dts +@@ -3,7 +3,7 @@ + + + / { +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&spi4_cs_pins>; +--- a/arch/arm/boot/dts/overlays/spi4-2cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi4-2cs-overlay.dts +@@ -3,7 +3,7 @@ + + + / { +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&spi4_cs_pins>; +--- a/arch/arm/boot/dts/overlays/spi5-1cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi5-1cs-overlay.dts +@@ -3,7 +3,7 @@ + + + / { +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&spi5_cs_pins>; +--- a/arch/arm/boot/dts/overlays/spi5-2cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi5-2cs-overlay.dts +@@ -3,7 +3,7 @@ + + + / { +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&spi5_cs_pins>; +--- a/arch/arm/boot/dts/overlays/spi6-1cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi6-1cs-overlay.dts +@@ -3,7 +3,7 @@ + + + / { +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&spi6_cs_pins>; +--- a/arch/arm/boot/dts/overlays/spi6-2cs-overlay.dts ++++ b/arch/arm/boot/dts/overlays/spi6-2cs-overlay.dts +@@ -3,7 +3,7 @@ + + + / { +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&spi6_cs_pins>; +--- a/arch/arm/boot/dts/overlays/uart2-overlay.dts ++++ b/arch/arm/boot/dts/overlays/uart2-overlay.dts +@@ -2,7 +2,7 @@ + /plugin/; + + /{ +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&uart2>; +--- a/arch/arm/boot/dts/overlays/uart3-overlay.dts ++++ b/arch/arm/boot/dts/overlays/uart3-overlay.dts +@@ -2,7 +2,7 @@ + /plugin/; + + /{ +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&uart3>; +--- a/arch/arm/boot/dts/overlays/uart4-overlay.dts ++++ b/arch/arm/boot/dts/overlays/uart4-overlay.dts +@@ -2,7 +2,7 @@ + /plugin/; + + /{ +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&uart4>; +--- a/arch/arm/boot/dts/overlays/uart5-overlay.dts ++++ b/arch/arm/boot/dts/overlays/uart5-overlay.dts +@@ -2,7 +2,7 @@ + /plugin/; + + /{ +- compatible = "brcm,bcm2838"; ++ compatible = "brcm,bcm2711"; + + fragment@0 { + target = <&uart5>; diff --git a/target/linux/brcm2708/patches-4.19/950-0727-bcm2711-Retain-support-for-old-dtbs.patch b/target/linux/brcm2708/patches-4.19/950-0727-bcm2711-Retain-support-for-old-dtbs.patch new file mode 100644 index 00000000000..14f086c5c84 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0727-bcm2711-Retain-support-for-old-dtbs.patch @@ -0,0 +1,55 @@ +From 7d7f6a80f12fb6e7ba903d070512970e304bcd02 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 9 Oct 2019 17:22:07 +0100 +Subject: [PATCH] bcm2711: Retain support for old dtbs + +The recent series switching to bcm2711 as the DT identifier broke Pis +running with old DTBs. Add some bcm2838 compatible strings as a +temporary measure, at least until the next full Raspbian image with +bcm2711 DTBs. + +See: https://github.com/raspberrypi/linux/pull/3244 + +Signed-off-by: Phil Elwell +--- + arch/arm/mach-bcm/board_bcm2835.c | 2 ++ + drivers/clk/bcm/clk-bcm2835.c | 2 ++ + drivers/pinctrl/bcm/pinctrl-bcm2835.c | 5 +++++ + 3 files changed, 9 insertions(+) + +--- a/arch/arm/mach-bcm/board_bcm2835.c ++++ b/arch/arm/mach-bcm/board_bcm2835.c +@@ -119,6 +119,8 @@ static const char * const bcm2835_compat + "brcm,bcm2836", + "brcm,bcm2837", + "brcm,bcm2711", ++ // Temporary, for backwards-compatibility with old DTBs ++ "brcm,bcm2838", + #endif + NULL + }; +--- a/drivers/clk/bcm/clk-bcm2835.c ++++ b/drivers/clk/bcm/clk-bcm2835.c +@@ -2396,6 +2396,8 @@ static const struct cprman_plat_data cpr + static const struct of_device_id bcm2835_clk_of_match[] = { + { .compatible = "brcm,bcm2835-cprman", .data = &cprman_bcm2835_plat_data }, + { .compatible = "brcm,bcm2711-cprman", .data = &cprman_bcm2711_plat_data }, ++ // Temporary, for backwards-compatibility with old DTBs ++ { .compatible = "brcm,bcm2838-cprman", .data = &cprman_bcm2711_plat_data }, + {} + }; + MODULE_DEVICE_TABLE(of, bcm2835_clk_of_match); +--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c ++++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c +@@ -1079,6 +1079,11 @@ static const struct of_device_id bcm2835 + .compatible = "brcm,bcm2711-gpio", + .data = &bcm2711_pinconf_ops, + }, ++ // Temporary, for backwards-compatibility with old DTBs ++ { ++ .compatible = "brcm,bcm2838-gpio", ++ .data = &bcm2711_pinconf_ops, ++ }, + {} + }; + diff --git a/target/linux/brcm2708/patches-4.19/950-0728-media-bcm2835-unicam-Add-support-for-raw14-formats.patch b/target/linux/brcm2708/patches-4.19/950-0728-media-bcm2835-unicam-Add-support-for-raw14-formats.patch new file mode 100644 index 00000000000..f7fe151a2d9 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0728-media-bcm2835-unicam-Add-support-for-raw14-formats.patch @@ -0,0 +1,49 @@ +From 13b916fa2b8a99c9953073316e102e9d027dd708 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 2 Oct 2019 16:09:24 +0100 +Subject: [PATCH] media: bcm2835-unicam: Add support for raw14 formats + +The V4L2 has gained defines for V4L2_PIX_FMT_Sxxxx14P, +therefore add support for it to bcm2835-unicam. + +Signed-off-by: Dave Stevenson +--- + .../media/platform/bcm2835/bcm2835-unicam.c | 25 +++++++++++++++++-- + 1 file changed, 23 insertions(+), 2 deletions(-) + +--- a/drivers/media/platform/bcm2835/bcm2835-unicam.c ++++ b/drivers/media/platform/bcm2835/bcm2835-unicam.c +@@ -273,10 +273,31 @@ static const struct unicam_fmt formats[] + .code = MEDIA_BUS_FMT_SRGGB12_1X12, + .depth = 12, + .csi_dt = 0x2c, ++ }, { ++ .fourcc = V4L2_PIX_FMT_SBGGR14P, ++ .code = MEDIA_BUS_FMT_SBGGR14_1X14, ++ .depth = 14, ++ .csi_dt = 0x2d, ++ }, { ++ .fourcc = V4L2_PIX_FMT_SGBRG14P, ++ .code = MEDIA_BUS_FMT_SGBRG14_1X14, ++ .depth = 14, ++ .csi_dt = 0x2d, ++ }, { ++ .fourcc = V4L2_PIX_FMT_SGRBG14P, ++ .code = MEDIA_BUS_FMT_SGRBG14_1X14, ++ .depth = 14, ++ .csi_dt = 0x2d, ++ }, { ++ .fourcc = V4L2_PIX_FMT_SRGGB14P, ++ .code = MEDIA_BUS_FMT_SRGGB14_1X14, ++ .depth = 14, ++ .csi_dt = 0x2d, + }, + /* +- * 14 and 16 bit Bayer formats could be supported, but there are no V4L2 +- * defines for 14bit packed Bayer, and no CSI2 data_type for raw 16. ++ * 16 bit Bayer formats could be supported, but there is no CSI2 ++ * data_type defined for raw 16, and no sensors that produce it at ++ * present. + */ + }; + diff --git a/target/linux/brcm2708/patches-4.19/950-0729-media-bcm2835-unicam-Rework-to-not-cache-the-list-of.patch b/target/linux/brcm2708/patches-4.19/950-0729-media-bcm2835-unicam-Rework-to-not-cache-the-list-of.patch new file mode 100644 index 00000000000..3a638710f74 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0729-media-bcm2835-unicam-Rework-to-not-cache-the-list-of.patch @@ -0,0 +1,387 @@ +From 2c51b8e533a8b43bde18072c9dbbd0fc5084bbe7 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 2 Oct 2019 17:40:38 +0100 +Subject: [PATCH] media: bcm2835-unicam: Rework to not cache the list + of active fmts + +Some sensors will change Bayer order based on H & V flips, +therefore collecting the list of formats at async_bound has +problems. + +Enumerate the formats from the sensor every time. + +Signed-off-by: Dave Stevenson +--- + .../media/platform/bcm2835/bcm2835-unicam.c | 246 ++++++++++-------- + 1 file changed, 136 insertions(+), 110 deletions(-) + +--- a/drivers/media/platform/bcm2835/bcm2835-unicam.c ++++ b/drivers/media/platform/bcm2835/bcm2835-unicam.c +@@ -363,8 +363,6 @@ struct unicam_device { + /* Used to store current mbus frame format */ + struct v4l2_mbus_framefmt m_fmt; + +- struct unicam_fmt active_fmts[MAX_POSSIBLE_PIX_FMTS]; +- int num_active_fmt; + unsigned int virtual_channel; + enum v4l2_mbus_type bus_type; + /* +@@ -455,48 +453,30 @@ static int find_mbus_depth_by_code(u32 c + return 0; + } + +-static const struct unicam_fmt *find_format_by_code(struct unicam_device *dev, +- u32 code) ++static const struct unicam_fmt *find_format_by_code(u32 code) + { +- const struct unicam_fmt *fmt; + unsigned int k; + +- for (k = 0; k < dev->num_active_fmt; k++) { +- fmt = &dev->active_fmts[k]; +- if (fmt->code == code) +- return fmt; ++ for (k = 0; k < ARRAY_SIZE(formats); k++) { ++ if (formats[k].code == code) ++ return &formats[k]; + } + + return NULL; + } + +-static const struct unicam_fmt *find_format_by_pix(struct unicam_device *dev, +- u32 pixelformat) ++static const struct unicam_fmt *find_format_by_pix(u32 pixelformat) + { +- const struct unicam_fmt *fmt; + unsigned int k; + +- for (k = 0; k < dev->num_active_fmt; k++) { +- fmt = &dev->active_fmts[k]; +- if (fmt->fourcc == pixelformat) +- return fmt; ++ for (k = 0; k < ARRAY_SIZE(formats); k++) { ++ if (formats[k].fourcc == pixelformat) ++ return &formats[k]; + } + + return NULL; + } + +-static void dump_active_formats(struct unicam_device *dev) +-{ +- int i; +- +- for (i = 0; i < dev->num_active_fmt; i++) { +- unicam_dbg(3, dev, "active_fmt[%d] (%p) is code %04x, fourcc " V4L2_FOURCC_CONV ", depth %d\n", +- i, &dev->active_fmts[i], dev->active_fmts[i].code, +- V4L2_FOURCC_CONV_ARGS(dev->active_fmts[i].fourcc), +- dev->active_fmts[i].depth); +- } +-} +- + static inline unsigned int bytes_per_line(u32 width, + const struct unicam_fmt *fmt) + { +@@ -726,14 +706,40 @@ static int unicam_enum_fmt_vid_cap(struc + struct v4l2_fmtdesc *f) + { + struct unicam_device *dev = video_drvdata(file); ++ struct v4l2_subdev_mbus_code_enum mbus_code; + const struct unicam_fmt *fmt = NULL; ++ int index = 0; ++ int ret = 0; ++ int i; + +- if (f->index >= dev->num_active_fmt) +- return -EINVAL; ++ /* Loop whilst the sensor driver says it has more formats, but add a ++ * failsafe against a dodgy driver at 128 (more than any sensor will ++ * ever sensibly advertise) ++ */ ++ for (i = 0; !ret && i < 128 ; i++) { ++ memset(&mbus_code, 0, sizeof(mbus_code)); ++ mbus_code.index = i; + +- fmt = &dev->active_fmts[f->index]; ++ ret = v4l2_subdev_call(dev->sensor, pad, enum_mbus_code, ++ NULL, &mbus_code); ++ if (ret < 0) { ++ unicam_dbg(2, dev, ++ "subdev->enum_mbus_code idx %d returned %d - index invalid\n", ++ i, ret); ++ return -EINVAL; ++ } + +- f->pixelformat = fmt->fourcc; ++ fmt = find_format_by_code(mbus_code.code); ++ if (fmt) { ++ if (fmt->fourcc) { ++ if (index == f->index) { ++ f->pixelformat = fmt->fourcc; ++ break; ++ } ++ index++; ++ } ++ } ++ } + + return 0; + } +@@ -748,6 +754,39 @@ static int unicam_g_fmt_vid_cap(struct f + return 0; + } + ++static ++const struct unicam_fmt *get_first_supported_format(struct unicam_device *dev) ++{ ++ struct v4l2_subdev_mbus_code_enum mbus_code; ++ const struct unicam_fmt *fmt = NULL; ++ int ret; ++ int j; ++ ++ for (j = 0; ret != -EINVAL && ret != -ENOIOCTLCMD; ++j) { ++ memset(&mbus_code, 0, sizeof(mbus_code)); ++ mbus_code.index = j; ++ ret = v4l2_subdev_call(dev->sensor, pad, enum_mbus_code, NULL, ++ &mbus_code); ++ if (ret < 0) { ++ unicam_dbg(2, dev, ++ "subdev->enum_mbus_code idx %d returned %d - continue\n", ++ j, ret); ++ continue; ++ } ++ ++ unicam_dbg(2, dev, "subdev %s: code: %04x idx: %d\n", ++ dev->sensor->name, mbus_code.code, j); ++ ++ fmt = find_format_by_code(mbus_code.code); ++ unicam_dbg(2, dev, "fmt %04x returned as %p, V4L2 FOURCC %04x, csi_dt %02X\n", ++ mbus_code.code, fmt, fmt ? fmt->fourcc : 0, ++ fmt ? fmt->csi_dt : 0); ++ if (fmt) ++ return fmt; ++ } ++ ++ return NULL; ++} + static int unicam_try_fmt_vid_cap(struct file *file, void *priv, + struct v4l2_format *f) + { +@@ -759,13 +798,15 @@ static int unicam_try_fmt_vid_cap(struct + struct v4l2_mbus_framefmt *mbus_fmt = &sd_fmt.format; + int ret; + +- fmt = find_format_by_pix(dev, f->fmt.pix.pixelformat); ++ fmt = find_format_by_pix(f->fmt.pix.pixelformat); + if (!fmt) { +- unicam_dbg(3, dev, "Fourcc format (0x%08x) not found. Use default of %08X\n", +- f->fmt.pix.pixelformat, dev->active_fmts[0].fourcc); ++ /* Pixel format not supported by unicam. Choose the first ++ * supported format, and let the sensor choose something else. ++ */ ++ unicam_dbg(3, dev, "Fourcc format (0x%08x) not found. Use first format.\n", ++ f->fmt.pix.pixelformat); + +- /* Just get the first one enumerated */ +- fmt = &dev->active_fmts[0]; ++ fmt = &formats[0]; + f->fmt.pix.pixelformat = fmt->fourcc; + } + +@@ -785,6 +826,40 @@ static int unicam_try_fmt_vid_cap(struct + unicam_info(dev, "Sensor trying to send interlaced video - results may be unpredictable\n"); + + v4l2_fill_pix_format(&f->fmt.pix, &sd_fmt.format); ++ if (mbus_fmt->code != fmt->code) { ++ /* Sensor has returned an alternate format */ ++ fmt = find_format_by_code(mbus_fmt->code); ++ if (!fmt) { ++ /* The alternate format is one unicam can't support. ++ * Find the first format that is supported by both, and ++ * then set that. ++ */ ++ fmt = get_first_supported_format(dev); ++ mbus_fmt->code = fmt->code; ++ ++ ret = v4l2_subdev_call(dev->sensor, pad, set_fmt, ++ dev->sensor_config, &sd_fmt); ++ if (ret && ret != -ENOIOCTLCMD && ret != -ENODEV) ++ return ret; ++ ++ if (mbus_fmt->field != V4L2_FIELD_NONE) ++ unicam_info(dev, "Sensor trying to send interlaced video - results may be unpredictable\n"); ++ ++ v4l2_fill_pix_format(&f->fmt.pix, &sd_fmt.format); ++ ++ if (mbus_fmt->code != fmt->code) { ++ /* We've set a format that the sensor reports ++ * as being supported, but it refuses to set it. ++ * Not much else we can do. ++ * Assume that the sensor driver may accept the ++ * format when it is set (rather than tried). ++ */ ++ unicam_err(dev, "Sensor won't accept default format, and Unicam can't support sensor default\n"); ++ } ++ } ++ ++ f->fmt.pix.pixelformat = fmt->fourcc; ++ } + + return unicam_calc_format_size_bpl(dev, fmt, f); + } +@@ -805,10 +880,18 @@ static int unicam_s_fmt_vid_cap(struct f + if (ret < 0) + return ret; + +- fmt = find_format_by_pix(dev, f->fmt.pix.pixelformat); ++ fmt = find_format_by_pix(f->fmt.pix.pixelformat); + if (!fmt) { +- /* Unknown pixel format - adopt a default */ +- fmt = &dev->active_fmts[0]; ++ /* Unknown pixel format - adopt a default. ++ * This shouldn't happen as try_fmt should have resolved any ++ * issues first. ++ */ ++ fmt = get_first_supported_format(dev); ++ if (!fmt) ++ /* It shouldn't be possible to get here with no ++ * supported formats ++ */ ++ return -EINVAL; + f->fmt.pix.pixelformat = fmt->fourcc; + return -EINVAL; + } +@@ -944,6 +1027,7 @@ static void unicam_set_packing_config(st + unpack = UNICAM_PUM_NONE; + break; + } ++ + switch (v4l2_depth) { + case 8: + pack = UNICAM_PPM_PACK8; +@@ -1439,7 +1523,7 @@ static int unicam_enum_framesizes(struct + int ret; + + /* check for valid format */ +- fmt = find_format_by_pix(dev, fsize->pixel_format); ++ fmt = find_format_by_pix(fsize->pixel_format); + if (!fmt) { + unicam_dbg(3, dev, "Invalid pixel code: %x\n", + fsize->pixel_format); +@@ -1478,7 +1562,7 @@ static int unicam_enum_frameintervals(st + }; + int ret; + +- fmt = find_format_by_pix(dev, fival->pixel_format); ++ fmt = find_format_by_pix(fival->pixel_format); + if (!fmt) + return -EINVAL; + +@@ -1742,27 +1826,6 @@ static const struct v4l2_ioctl_ops unica + .vidioc_unsubscribe_event = v4l2_event_unsubscribe, + }; + +-/* +- * Adds an entry to the active_fmts array +- * Returns non-zero if attempting to write off the end of the array. +- */ +-static int unicam_add_active_format(struct unicam_device *unicam, +- const struct unicam_fmt *fmt) +-{ +- //Ensure we don't run off the end of the array. +- if (unicam->num_active_fmt >= MAX_POSSIBLE_PIX_FMTS) +- return 1; +- +- unicam->active_fmts[unicam->num_active_fmt] = *fmt; +- unicam_dbg(2, unicam, +- "matched fourcc: " V4L2_FOURCC_CONV ": code: %04x idx: %d\n", +- V4L2_FOURCC_CONV_ARGS(fmt->fourcc), +- fmt->code, unicam->num_active_fmt); +- unicam->num_active_fmt++; +- +- return 0; +-} +- + static int + unicam_async_bound(struct v4l2_async_notifier *notifier, + struct v4l2_subdev *subdev, +@@ -1770,9 +1833,6 @@ unicam_async_bound(struct v4l2_async_not + { + struct unicam_device *unicam = container_of(notifier->v4l2_dev, + struct unicam_device, v4l2_dev); +- struct v4l2_subdev_mbus_code_enum mbus_code; +- int ret = 0; +- int j; + + if (unicam->sensor) { + unicam_info(unicam, "Rejecting subdev %s (Already set!!)", +@@ -1783,47 +1843,6 @@ unicam_async_bound(struct v4l2_async_not + unicam->sensor = subdev; + unicam_dbg(1, unicam, "Using sensor %s for capture\n", subdev->name); + +- /* Enumerate sub device formats and enable all matching local formats */ +- unicam->num_active_fmt = 0; +- unicam_dbg(2, unicam, "Get supported formats...\n"); +- for (j = 0; ret != -EINVAL && ret != -ENOIOCTLCMD; ++j) { +- const struct unicam_fmt *fmt = NULL; +- int k; +- +- memset(&mbus_code, 0, sizeof(mbus_code)); +- mbus_code.index = j; +- ret = v4l2_subdev_call(subdev, pad, enum_mbus_code, +- NULL, &mbus_code); +- if (ret < 0) { +- unicam_dbg(2, unicam, +- "subdev->enum_mbus_code idx %d returned %d - continue\n", +- j, ret); +- continue; +- } +- +- unicam_dbg(2, unicam, "subdev %s: code: %04x idx: %d\n", +- subdev->name, mbus_code.code, j); +- +- for (k = 0; k < ARRAY_SIZE(formats); k++) { +- if (mbus_code.code == formats[k].code) { +- fmt = &formats[k]; +- break; +- } +- } +- unicam_dbg(2, unicam, "fmt %04x returned as %p, V4L2 FOURCC %04x, csi_dt %02X\n", +- mbus_code.code, fmt, fmt ? fmt->fourcc : 0, +- fmt ? fmt->csi_dt : 0); +- if (fmt) { +- if (unicam_add_active_format(unicam, fmt)) { +- unicam_dbg(1, unicam, "Active fmt list truncated\n"); +- break; +- } +- } +- } +- unicam_dbg(2, unicam, +- "Done all formats\n"); +- dump_active_formats(unicam); +- + return 0; + } + +@@ -1849,10 +1868,17 @@ static int unicam_probe_complete(struct + return ret; + } + +- fmt = find_format_by_code(unicam, mbus_fmt.code); ++ fmt = find_format_by_code(mbus_fmt.code); + if (!fmt) { +- /* Default image format not valid. Choose first active fmt. */ +- fmt = &unicam->active_fmts[0]; ++ /* Find the first format that the sensor and unicam both ++ * support ++ */ ++ fmt = get_first_supported_format(unicam); ++ ++ if (!fmt) ++ /* No compatible formats */ ++ return -EINVAL; ++ + mbus_fmt.code = fmt->code; + ret = __subdev_set_format(unicam, &mbus_fmt); + if (ret) diff --git a/target/linux/brcm2708/patches-4.19/950-0730-media-bcm2835-unicam-Support-unpacking-CSI-format-to.patch b/target/linux/brcm2708/patches-4.19/950-0730-media-bcm2835-unicam-Support-unpacking-CSI-format-to.patch new file mode 100644 index 00000000000..199c4961e86 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0730-media-bcm2835-unicam-Support-unpacking-CSI-format-to.patch @@ -0,0 +1,254 @@ +From 5ae0488f5fc682877ae2a5d454f70884e62120ef Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Thu, 3 Oct 2019 13:35:01 +0100 +Subject: [PATCH] media: bcm2835-unicam: Support unpacking CSI format + to 16bpp + +The CSI packed formats are not the easiest to work with, and +the peripheral supports unpacking them to 16bpp (but NOT +shifting the data up into the MSBs). +Where V4L2 exposes a pixfmt for both packed and unpacked +formats advertise both as being supported, and unpack the +data in the peripheral. + +Signed-off-by: Dave Stevenson +--- + .../media/platform/bcm2835/bcm2835-unicam.c | 102 +++++++++--------- + 1 file changed, 51 insertions(+), 51 deletions(-) + +--- a/drivers/media/platform/bcm2835/bcm2835-unicam.c ++++ b/drivers/media/platform/bcm2835/bcm2835-unicam.c +@@ -15,12 +15,15 @@ + * + * This driver directly controls the Unicam peripheral - there is no + * involvement with the VideoCore firmware. Unicam receives CSI-2 or +- * CCP2 data and writes it into SDRAM. The only potential processing options are +- * to repack Bayer data into an alternate format, and applying windowing. +- * The repacking does not shift the data, so could repack V4L2_PIX_FMT_Sxxxx10P ++ * CCP2 data and writes it into SDRAM. ++ * The only potential processing options are to repack Bayer data into an ++ * alternate format, and applying windowing. ++ * The repacking does not shift the data, so can repack V4L2_PIX_FMT_Sxxxx10P + * to V4L2_PIX_FMT_Sxxxx10, or V4L2_PIX_FMT_Sxxxx12P to V4L2_PIX_FMT_Sxxxx12, +- * but not generically up to V4L2_PIX_FMT_Sxxxx16. +- * Adding support for repacking and windowing may be added later. ++ * but not generically up to V4L2_PIX_FMT_Sxxxx16. The driver will add both ++ * formats where the relevant formats are defined, and will automatically ++ * configure the repacking as required. ++ * Support for windowing may be added later. + * + * It should be possible to connect this driver to any sensor with a + * suitable output interface and V4L2 subdevice driver. +@@ -122,13 +125,16 @@ MODULE_PARM_DESC(debug, "Debug level 0-3 + + /* + * struct unicam_fmt - Unicam media bus format information +- * @pixelformat: V4L2 pixel format FCC identifier. ++ * @pixelformat: V4L2 pixel format FCC identifier. 0 if n/a. ++ * @repacked_fourcc: V4L2 pixel format FCC identifier if the data is expanded ++ * out to 16bpp. 0 if n/a. + * @code: V4L2 media bus format code. +- * @depth: Bits per pixel (when stored in memory). ++ * @depth: Bits per pixel as delivered from the source. + * @csi_dt: CSI data type. + */ + struct unicam_fmt { + u32 fourcc; ++ u32 repacked_fourcc; + u32 code; + u8 depth; + u8 csi_dt; +@@ -235,41 +241,49 @@ static const struct unicam_fmt formats[] + .csi_dt = 0x2a, + }, { + .fourcc = V4L2_PIX_FMT_SBGGR10P, ++ .repacked_fourcc = V4L2_PIX_FMT_SBGGR10, + .code = MEDIA_BUS_FMT_SBGGR10_1X10, + .depth = 10, + .csi_dt = 0x2b, + }, { + .fourcc = V4L2_PIX_FMT_SGBRG10P, ++ .repacked_fourcc = V4L2_PIX_FMT_SGBRG10, + .code = MEDIA_BUS_FMT_SGBRG10_1X10, + .depth = 10, + .csi_dt = 0x2b, + }, { + .fourcc = V4L2_PIX_FMT_SGRBG10P, ++ .repacked_fourcc = V4L2_PIX_FMT_SGRBG10, + .code = MEDIA_BUS_FMT_SGRBG10_1X10, + .depth = 10, + .csi_dt = 0x2b, + }, { + .fourcc = V4L2_PIX_FMT_SRGGB10P, ++ .repacked_fourcc = V4L2_PIX_FMT_SRGGB10, + .code = MEDIA_BUS_FMT_SRGGB10_1X10, + .depth = 10, + .csi_dt = 0x2b, + }, { + .fourcc = V4L2_PIX_FMT_SBGGR12P, ++ .repacked_fourcc = V4L2_PIX_FMT_SBGGR12, + .code = MEDIA_BUS_FMT_SBGGR12_1X12, + .depth = 12, + .csi_dt = 0x2c, + }, { + .fourcc = V4L2_PIX_FMT_SGBRG12P, ++ .repacked_fourcc = V4L2_PIX_FMT_SGBRG12, + .code = MEDIA_BUS_FMT_SGBRG12_1X12, + .depth = 12, + .csi_dt = 0x2c, + }, { + .fourcc = V4L2_PIX_FMT_SGRBG12P, ++ .repacked_fourcc = V4L2_PIX_FMT_SGRBG12, + .code = MEDIA_BUS_FMT_SGRBG12_1X12, + .depth = 12, + .csi_dt = 0x2c, + }, { + .fourcc = V4L2_PIX_FMT_SRGGB12P, ++ .repacked_fourcc = V4L2_PIX_FMT_SRGGB12, + .code = MEDIA_BUS_FMT_SRGGB12_1X12, + .depth = 12, + .csi_dt = 0x2c, +@@ -439,20 +453,6 @@ static inline void unicam_runtime_put(st + } + + /* Format setup functions */ +-static int find_mbus_depth_by_code(u32 code) +-{ +- const struct unicam_fmt *fmt; +- unsigned int k; +- +- for (k = 0; k < ARRAY_SIZE(formats); k++) { +- fmt = &formats[k]; +- if (fmt->code == code) +- return fmt->depth; +- } +- +- return 0; +-} +- + static const struct unicam_fmt *find_format_by_code(u32 code) + { + unsigned int k; +@@ -470,7 +470,8 @@ static const struct unicam_fmt *find_for + unsigned int k; + + for (k = 0; k < ARRAY_SIZE(formats); k++) { +- if (formats[k].fourcc == pixelformat) ++ if (formats[k].fourcc == pixelformat || ++ formats[k].repacked_fourcc == pixelformat) + return &formats[k]; + } + +@@ -478,9 +479,14 @@ static const struct unicam_fmt *find_for + } + + static inline unsigned int bytes_per_line(u32 width, +- const struct unicam_fmt *fmt) ++ const struct unicam_fmt *fmt, ++ u32 v4l2_fourcc) + { +- return ALIGN((width * fmt->depth) >> 3, BPL_ALIGNMENT); ++ if (v4l2_fourcc == fmt->repacked_fourcc) ++ /* Repacking always goes to 16bpp */ ++ return ALIGN(width << 1, BPL_ALIGNMENT); ++ else ++ return ALIGN((width * fmt->depth) >> 3, BPL_ALIGNMENT); + } + + static int __subdev_get_format(struct unicam_device *dev, +@@ -538,7 +544,8 @@ static int unicam_calc_format_size_bpl(s + &f->fmt.pix.height, MIN_HEIGHT, MAX_HEIGHT, 0, + 0); + +- min_bytesperline = bytes_per_line(f->fmt.pix.width, fmt); ++ min_bytesperline = bytes_per_line(f->fmt.pix.width, fmt, ++ f->fmt.pix.pixelformat); + + if (f->fmt.pix.bytesperline > min_bytesperline && + f->fmt.pix.bytesperline <= MAX_BYTESPERLINE) +@@ -738,6 +745,13 @@ static int unicam_enum_fmt_vid_cap(struc + } + index++; + } ++ if (fmt->repacked_fourcc) { ++ if (index == f->index) { ++ f->pixelformat = fmt->repacked_fourcc; ++ break; ++ } ++ index++; ++ } + } + } + +@@ -858,7 +872,10 @@ static int unicam_try_fmt_vid_cap(struct + } + } + +- f->fmt.pix.pixelformat = fmt->fourcc; ++ if (fmt->fourcc) ++ f->fmt.pix.pixelformat = fmt->fourcc; ++ else ++ f->fmt.pix.pixelformat = fmt->repacked_fourcc; + } + + return unicam_calc_format_size_bpl(dev, fmt, f); +@@ -998,16 +1015,14 @@ static void unicam_wr_dma_config(struct + + static void unicam_set_packing_config(struct unicam_device *dev) + { +- int mbus_depth = find_mbus_depth_by_code(dev->fmt->code); +- int v4l2_depth = dev->fmt->depth; + int pack, unpack; + u32 val; + +- if (mbus_depth == v4l2_depth) { ++ if (dev->v_fmt.fmt.pix.pixelformat == dev->fmt->fourcc) { + unpack = UNICAM_PUM_NONE; + pack = UNICAM_PPM_NONE; + } else { +- switch (mbus_depth) { ++ switch (dev->fmt->depth) { + case 8: + unpack = UNICAM_PUM_UNPACK8; + break; +@@ -1028,26 +1043,8 @@ static void unicam_set_packing_config(st + break; + } + +- switch (v4l2_depth) { +- case 8: +- pack = UNICAM_PPM_PACK8; +- break; +- case 10: +- pack = UNICAM_PPM_PACK10; +- break; +- case 12: +- pack = UNICAM_PPM_PACK12; +- break; +- case 14: +- pack = UNICAM_PPM_PACK14; +- break; +- case 16: +- pack = UNICAM_PPM_PACK16; +- break; +- default: +- pack = UNICAM_PPM_NONE; +- break; +- } ++ /* Repacking is always to 16bpp */ ++ pack = UNICAM_PPM_PACK16; + } + + val = 0; +@@ -1893,7 +1890,10 @@ static int unicam_probe_complete(struct + } + + unicam->fmt = fmt; +- unicam->v_fmt.fmt.pix.pixelformat = fmt->fourcc; ++ if (fmt->fourcc) ++ unicam->v_fmt.fmt.pix.pixelformat = fmt->fourcc; ++ else ++ unicam->v_fmt.fmt.pix.pixelformat = fmt->repacked_fourcc; + + /* Read current subdev format */ + unicam_reset_format(unicam); diff --git a/target/linux/brcm2708/patches-4.19/950-0731-media-bcm2835-unicam-Add-support-for-luma-greyscale-.patch b/target/linux/brcm2708/patches-4.19/950-0731-media-bcm2835-unicam-Add-support-for-luma-greyscale-.patch new file mode 100644 index 00000000000..61a817ab6bf --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0731-media-bcm2835-unicam-Add-support-for-luma-greyscale-.patch @@ -0,0 +1,50 @@ +From 253dd469e6403b6c2afd25d4f8338a0c1588583f Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Thu, 3 Oct 2019 13:45:51 +0100 +Subject: [PATCH] media: bcm2835-unicam: Add support for luma/greyscale + formats + +Add support for V4L2_PIX_FMT_GREY, V4L2_PIX_FMT_Y10P, +V4L2_PIX_FMT_Y10, and V4L2_PIX_FMT_Y12 image formats from the +appropriate mediabus formats advertised by sensors. + +Signed-off-by: Dave Stevenson +--- + .../media/platform/bcm2835/bcm2835-unicam.c | 21 ++++++++++++++++++- + 1 file changed, 20 insertions(+), 1 deletion(-) + +--- a/drivers/media/platform/bcm2835/bcm2835-unicam.c ++++ b/drivers/media/platform/bcm2835/bcm2835-unicam.c +@@ -307,12 +307,31 @@ static const struct unicam_fmt formats[] + .code = MEDIA_BUS_FMT_SRGGB14_1X14, + .depth = 14, + .csi_dt = 0x2d, +- }, ++ }, { + /* + * 16 bit Bayer formats could be supported, but there is no CSI2 + * data_type defined for raw 16, and no sensors that produce it at + * present. + */ ++ ++ /* Greyscale formats */ ++ .fourcc = V4L2_PIX_FMT_GREY, ++ .code = MEDIA_BUS_FMT_Y8_1X8, ++ .depth = 8, ++ .csi_dt = 0x2a, ++ }, { ++ .fourcc = V4L2_PIX_FMT_Y10P, ++ .repacked_fourcc = V4L2_PIX_FMT_Y10, ++ .code = MEDIA_BUS_FMT_Y10_1X10, ++ .depth = 10, ++ .csi_dt = 0x2b, ++ }, { ++ /* NB There is no packed V4L2 fourcc for this format. */ ++ .repacked_fourcc = V4L2_PIX_FMT_Y12, ++ .code = MEDIA_BUS_FMT_Y12_1X12, ++ .depth = 12, ++ .csi_dt = 0x2c, ++ }, + }; + + struct unicam_dmaqueue { diff --git a/target/linux/brcm2708/patches-4.19/950-0732-drm-vc4-Add-support-for-YUV-color-encodings-and-rang.patch b/target/linux/brcm2708/patches-4.19/950-0732-drm-vc4-Add-support-for-YUV-color-encodings-and-rang.patch new file mode 100644 index 00000000000..76129fec22f --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0732-drm-vc4-Add-support-for-YUV-color-encodings-and-rang.patch @@ -0,0 +1,138 @@ +From 799c83fb9b72bcd473099e3da1395c92a5a581ff Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Tue, 17 Sep 2019 18:28:17 +0100 +Subject: [PATCH] drm/vc4: Add support for YUV color encodings and + ranges + +The BT601/BT709 color encoding and limited vs full +range properties were not being exposed, defaulting +always to BT601 limited range. + +Expose the parameters and set the registers appropriately. + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/vc4/vc4_plane.c | 72 +++++++++++++++++++++++++++++++-- + drivers/gpu/drm/vc4/vc4_regs.h | 3 ++ + 2 files changed, 72 insertions(+), 3 deletions(-) + +--- a/drivers/gpu/drm/vc4/vc4_plane.c ++++ b/drivers/gpu/drm/vc4/vc4_plane.c +@@ -500,6 +500,53 @@ static void vc4_write_scaling_parameters + } + } + ++/* The colorspace conversion matrices are held in 3 entries in the dlist. ++ * Create an array of them, with entries for each full and limited mode, and ++ * each supported colorspace. ++ */ ++#define VC4_LIMITED_RANGE 0 ++#define VC4_FULL_RANGE 1 ++ ++static const u32 colorspace_coeffs[2][DRM_COLOR_ENCODING_MAX][3] = { ++ { ++ /* Limited range */ ++ { ++ /* BT601 */ ++ SCALER_CSC0_ITR_R_601_5, ++ SCALER_CSC1_ITR_R_601_5, ++ SCALER_CSC2_ITR_R_601_5, ++ }, { ++ /* BT709 */ ++ SCALER_CSC0_ITR_R_709_3, ++ SCALER_CSC1_ITR_R_709_3, ++ SCALER_CSC2_ITR_R_709_3, ++ }, { ++ /* BT2020. Not supported yet - copy 601 */ ++ SCALER_CSC0_ITR_R_601_5, ++ SCALER_CSC1_ITR_R_601_5, ++ SCALER_CSC2_ITR_R_601_5, ++ } ++ }, { ++ /* Full range */ ++ { ++ /* JFIF */ ++ SCALER_CSC0_JPEG_JFIF, ++ SCALER_CSC1_JPEG_JFIF, ++ SCALER_CSC2_JPEG_JFIF, ++ }, { ++ /* BT709 */ ++ SCALER_CSC0_ITR_R_709_3_FR, ++ SCALER_CSC1_ITR_R_709_3_FR, ++ SCALER_CSC2_ITR_R_709_3_FR, ++ }, { ++ /* BT2020. Not supported yet - copy JFIF */ ++ SCALER_CSC0_JPEG_JFIF, ++ SCALER_CSC1_JPEG_JFIF, ++ SCALER_CSC2_JPEG_JFIF, ++ } ++ } ++}; ++ + /* Writes out a full display list for an active plane to the plane's + * private dlist state. + */ +@@ -760,9 +807,20 @@ static int vc4_plane_mode_set(struct drm + + /* Colorspace conversion words */ + if (vc4_state->is_yuv) { +- vc4_dlist_write(vc4_state, SCALER_CSC0_ITR_R_601_5); +- vc4_dlist_write(vc4_state, SCALER_CSC1_ITR_R_601_5); +- vc4_dlist_write(vc4_state, SCALER_CSC2_ITR_R_601_5); ++ enum drm_color_encoding color_encoding = state->color_encoding; ++ enum drm_color_range color_range = state->color_range; ++ const u32 *ccm; ++ ++ if (color_encoding >= DRM_COLOR_ENCODING_MAX) ++ color_encoding = DRM_COLOR_YCBCR_BT601; ++ if (color_range >= DRM_COLOR_RANGE_MAX) ++ color_range = DRM_COLOR_YCBCR_LIMITED_RANGE; ++ ++ ccm = colorspace_coeffs[color_range][color_encoding]; ++ ++ vc4_dlist_write(vc4_state, ccm[0]); ++ vc4_dlist_write(vc4_state, ccm[1]); ++ vc4_dlist_write(vc4_state, ccm[2]); + } + + if (vc4_state->x_scaling[0] != VC4_SCALING_NONE || +@@ -1116,5 +1174,13 @@ struct drm_plane *vc4_plane_init(struct + + drm_plane_create_alpha_property(plane); + ++ drm_plane_create_color_properties(plane, ++ BIT(DRM_COLOR_YCBCR_BT601) | ++ BIT(DRM_COLOR_YCBCR_BT709), ++ BIT(DRM_COLOR_YCBCR_LIMITED_RANGE) | ++ BIT(DRM_COLOR_YCBCR_FULL_RANGE), ++ DRM_COLOR_YCBCR_BT709, ++ DRM_COLOR_YCBCR_LIMITED_RANGE); ++ + return plane; + } +--- a/drivers/gpu/drm/vc4/vc4_regs.h ++++ b/drivers/gpu/drm/vc4/vc4_regs.h +@@ -972,6 +972,7 @@ enum hvs_pixel_format { + #define SCALER_CSC0_ITR_R_601_5 0x00f00000 + #define SCALER_CSC0_ITR_R_709_3 0x00f00000 + #define SCALER_CSC0_JPEG_JFIF 0x00000000 ++#define SCALER_CSC0_ITR_R_709_3_FR 0x00000000 + + /* S2.8 contribution of Cb to Green */ + #define SCALER_CSC1_COEF_CB_GRN_MASK VC4_MASK(31, 22) +@@ -988,6 +989,7 @@ enum hvs_pixel_format { + #define SCALER_CSC1_ITR_R_601_5 0xe73304a8 + #define SCALER_CSC1_ITR_R_709_3 0xf2b784a8 + #define SCALER_CSC1_JPEG_JFIF 0xea34a400 ++#define SCALER_CSC1_ITR_R_709_3_FR 0xe23d0400 + + /* S2.8 contribution of Cb to Red */ + #define SCALER_CSC2_COEF_CB_RED_MASK VC4_MASK(29, 20) +@@ -1001,6 +1003,7 @@ enum hvs_pixel_format { + #define SCALER_CSC2_ITR_R_601_5 0x00066204 + #define SCALER_CSC2_ITR_R_709_3 0x00072a1c + #define SCALER_CSC2_JPEG_JFIF 0x000599c5 ++#define SCALER_CSC2_ITR_R_709_3_FR 0x00064ddb + + #define SCALER_TPZ0_VERT_RECALC BIT(31) + #define SCALER_TPZ0_SCALE_MASK VC4_MASK(28, 8) diff --git a/target/linux/brcm2708/patches-4.19/950-0733-drm-vc4-Fix-negative-X-Y-positioning-on-SAND-planes.patch b/target/linux/brcm2708/patches-4.19/950-0733-drm-vc4-Fix-negative-X-Y-positioning-on-SAND-planes.patch new file mode 100644 index 00000000000..8c8bb69e772 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0733-drm-vc4-Fix-negative-X-Y-positioning-on-SAND-planes.patch @@ -0,0 +1,68 @@ +From a8af2085e26bcefad8fb65e2b44d12777a84e219 Mon Sep 17 00:00:00 2001 +From: Boris Brezillon +Date: Fri, 7 Dec 2018 09:36:05 +0100 +Subject: [PATCH] drm/vc4: Fix negative X/Y positioning on SAND planes + +Commit 8e75d582db02bcb171d65ec71eecbd3072a5fd3a upstream. + +Commit 3e407417b192 ("drm/vc4: Fix X/Y positioning of planes using +T_TILES modifier") fixed the problem with T_TILES format, but left +things in a non-working state for SAND formats. Address that now. + +Signed-off-by: Boris Brezillon +Reviewed-by: Eric Anholt +Link: https://patchwork.freedesktop.org/patch/msgid/20181207083606.15449-1-boris.brezillon@bootlin.com +--- + drivers/gpu/drm/vc4/vc4_plane.c | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +--- a/drivers/gpu/drm/vc4/vc4_plane.c ++++ b/drivers/gpu/drm/vc4/vc4_plane.c +@@ -684,6 +684,7 @@ 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); ++ u32 tile_w, tile, x_off, pix_per_tile; + + /* Column-based NV12 or RGBA. + */ +@@ -703,12 +704,15 @@ static int vc4_plane_mode_set(struct drm + switch (base_format_mod) { + case DRM_FORMAT_MOD_BROADCOM_SAND64: + tiling = SCALER_CTL0_TILING_64B; ++ tile_w = 64; + break; + case DRM_FORMAT_MOD_BROADCOM_SAND128: + tiling = SCALER_CTL0_TILING_128B; ++ tile_w = 128; + break; + case DRM_FORMAT_MOD_BROADCOM_SAND256: + tiling = SCALER_CTL0_TILING_256B_OR_T; ++ tile_w = 256; + break; + default: + break; +@@ -719,6 +723,23 @@ static int vc4_plane_mode_set(struct drm + return -EINVAL; + } + ++ pix_per_tile = tile_w / fb->format->cpp[0]; ++ tile = vc4_state->src_x / pix_per_tile; ++ x_off = vc4_state->src_x % pix_per_tile; ++ ++ /* Adjust the base pointer to the first pixel to be scanned ++ * out. ++ */ ++ for (i = 0; i < num_planes; i++) { ++ vc4_state->offsets[i] += param * tile_w * tile; ++ vc4_state->offsets[i] += vc4_state->src_y / ++ (i ? v_subsample : 1) * ++ tile_w; ++ vc4_state->offsets[i] += x_off / ++ (i ? h_subsample : 1) * ++ fb->format->cpp[i]; ++ } ++ + pitch0 = VC4_SET_FIELD(param, SCALER_TILE_HEIGHT); + break; + } diff --git a/target/linux/brcm2708/patches-4.19/950-0734-drm-vc4-Add-support-for-H-V-flips.patch b/target/linux/brcm2708/patches-4.19/950-0734-drm-vc4-Add-support-for-H-V-flips.patch new file mode 100644 index 00000000000..4c9cb7699e3 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0734-drm-vc4-Add-support-for-H-V-flips.patch @@ -0,0 +1,135 @@ +From 1246d16c393a2f5790e5492053f26e6b0b62cec8 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Tue, 17 Sep 2019 18:36:32 +0100 +Subject: [PATCH] drm/vc4: Add support for H & V flips + +The HVS supports horizontal and vertical flips whilst composing. + +Expose these through the standard DRM rotation property. + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/vc4/vc4_plane.c | 54 +++++++++++++++++++++++++++------ + 1 file changed, 45 insertions(+), 9 deletions(-) + +--- a/drivers/gpu/drm/vc4/vc4_plane.c ++++ b/drivers/gpu/drm/vc4/vc4_plane.c +@@ -560,7 +560,9 @@ static int vc4_plane_mode_set(struct drm + const struct hvs_format *format = vc4_get_hvs_format(fb->format->format); + u64 base_format_mod = fourcc_mod_broadcom_mod(fb->modifier); + int num_planes = drm_format_num_planes(format->drm); ++ bool hflip = false, vflip = false; + u32 h_subsample, v_subsample; ++ unsigned int rotation; + bool mix_plane_alpha; + bool covers_screen; + u32 scl0, scl1, pitch0; +@@ -568,11 +570,26 @@ static int vc4_plane_mode_set(struct drm + unsigned long irqflags; + u32 hvs_format = format->hvs; + int ret, i; ++ u32 src_y; + + ret = vc4_plane_setup_clipping_and_scaling(state); + if (ret) + return ret; + ++ rotation = drm_rotation_simplify(state->rotation, ++ DRM_MODE_ROTATE_0 | ++ DRM_MODE_REFLECT_X | ++ DRM_MODE_REFLECT_Y); ++ ++ if ((rotation & DRM_MODE_ROTATE_MASK) == DRM_MODE_ROTATE_180) { ++ hflip = true; ++ vflip = true; ++ } ++ if (rotation & DRM_MODE_REFLECT_X) ++ hflip ^= true; ++ if (rotation & DRM_MODE_REFLECT_Y) ++ vflip ^= true; ++ + /* Allocate the LBM memory that the HVS will use for temporary + * storage due to our scaling/format conversion. + */ +@@ -609,6 +626,16 @@ static int vc4_plane_mode_set(struct drm + h_subsample = drm_format_horz_chroma_subsampling(format->drm); + v_subsample = drm_format_vert_chroma_subsampling(format->drm); + ++ if (!vflip) ++ src_y = vc4_state->src_y; ++ else ++ /* When vflipped the image offset needs to be ++ * the start of the last line of the image, and ++ * the pitch will be subtracted from the offset. ++ */ ++ src_y = vc4_state->src_y + ++ vc4_state->src_h[0] - 1; ++ + switch (base_format_mod) { + case DRM_FORMAT_MOD_LINEAR: + tiling = SCALER_CTL0_TILING_LINEAR; +@@ -618,12 +645,13 @@ static int vc4_plane_mode_set(struct drm + * out. + */ + for (i = 0; i < num_planes; i++) { +- vc4_state->offsets[i] += vc4_state->src_y / ++ vc4_state->offsets[i] += src_y / + (i ? v_subsample : 1) * + fb->pitches[i]; ++ + vc4_state->offsets[i] += vc4_state->src_x / +- (i ? h_subsample : 1) * +- fb->format->cpp[i]; ++ (i ? h_subsample : 1) * ++ fb->format->cpp[i]; + } + + break; +@@ -651,11 +679,11 @@ static int vc4_plane_mode_set(struct drm + * SCALER_PITCH0_TILE_Y_OFFSET tells HVS how to walk from that + * base address). + */ +- u32 tile_y = (vc4_state->src_y >> 4) & 1; +- u32 subtile_y = (vc4_state->src_y >> 2) & 3; +- u32 utile_y = vc4_state->src_y & 3; ++ u32 tile_y = (src_y >> 4) & 1; ++ u32 subtile_y = (src_y >> 2) & 3; ++ u32 utile_y = src_y & 3; + u32 x_off = vc4_state->src_x & tile_w_mask; +- u32 y_off = vc4_state->src_y & tile_h_mask; ++ u32 y_off = src_y & tile_h_mask; + + tiling = SCALER_CTL0_TILING_256B_OR_T; + pitch0 = (VC4_SET_FIELD(x_off, SCALER_PITCH0_SINK_PIX) | +@@ -732,7 +760,7 @@ static int vc4_plane_mode_set(struct drm + */ + for (i = 0; i < num_planes; i++) { + vc4_state->offsets[i] += param * tile_w * tile; +- vc4_state->offsets[i] += vc4_state->src_y / ++ vc4_state->offsets[i] += src_y / + (i ? v_subsample : 1) * + tile_w; + vc4_state->offsets[i] += x_off / +@@ -759,7 +787,9 @@ static int vc4_plane_mode_set(struct drm + VC4_SET_FIELD(tiling, SCALER_CTL0_TILING) | + (vc4_state->is_unity ? SCALER_CTL0_UNITY : 0) | + VC4_SET_FIELD(scl0, SCALER_CTL0_SCL0) | +- VC4_SET_FIELD(scl1, SCALER_CTL0_SCL1)); ++ VC4_SET_FIELD(scl1, SCALER_CTL0_SCL1) | ++ (vflip ? SCALER_CTL0_VFLIP : 0) | ++ (hflip ? SCALER_CTL0_HFLIP : 0)); + + /* Position Word 0: Image Positions and Alpha Value */ + vc4_state->pos0_offset = vc4_state->dlist_count; +@@ -1203,5 +1233,11 @@ struct drm_plane *vc4_plane_init(struct + DRM_COLOR_YCBCR_BT709, + DRM_COLOR_YCBCR_LIMITED_RANGE); + ++ drm_plane_create_rotation_property(plane, DRM_MODE_ROTATE_0, ++ DRM_MODE_ROTATE_0 | ++ DRM_MODE_ROTATE_180 | ++ DRM_MODE_REFLECT_X | ++ DRM_MODE_REFLECT_Y); ++ + return plane; + } diff --git a/target/linux/brcm2708/patches-4.19/950-0735-drm-vc4-Correct-handling-of-rotation-parameter-in-fk.patch b/target/linux/brcm2708/patches-4.19/950-0735-drm-vc4-Correct-handling-of-rotation-parameter-in-fk.patch new file mode 100644 index 00000000000..d08b7f00c7f --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0735-drm-vc4-Correct-handling-of-rotation-parameter-in-fk.patch @@ -0,0 +1,87 @@ +From e99a60f018524bf7b1ba382e3994c22ebcdbafe6 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 18 Sep 2019 15:49:13 +0100 +Subject: [PATCH] drm/vc4: Correct handling of rotation parameter in + fkms + +One bit within DRM_MODE_ROTATE_MASK will always be set to +determine the base rotation 0/90/180/270, and then REFLECT_X +and REFLECT_Y are on top. + +Correct the handling which was assuming that REFLECT_[X|Y] +was instead of ROTATE_x. + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/vc4/vc4_firmware_kms.c | 37 ++++++++++---------------- + 1 file changed, 14 insertions(+), 23 deletions(-) + +--- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +@@ -79,11 +79,6 @@ struct set_plane { + #define TRANSFORM_FLIP_HRIZ BIT(16) + #define TRANSFORM_FLIP_VERT BIT(17) + +-#define SUPPORTED_ROTATIONS (DRM_MODE_ROTATE_0 | \ +- DRM_MODE_ROTATE_180 | \ +- DRM_MODE_REFLECT_X | \ +- DRM_MODE_REFLECT_Y) +- + struct mailbox_set_plane { + struct rpi_firmware_property_tag_header tag; + struct set_plane plane; +@@ -523,7 +518,7 @@ static int vc4_plane_to_mb(struct drm_pl + const struct vc_image_format *vc_fmt = + vc4_get_vc_image_fmt(drm_fmt->format); + int num_planes = fb->format->num_planes; +- unsigned int rotation = SUPPORTED_ROTATIONS; ++ unsigned int rotation; + + mb->plane.vc_image_type = vc_fmt->vc_image; + mb->plane.width = fb->width; +@@ -544,23 +539,16 @@ static int vc4_plane_to_mb(struct drm_pl + mb->plane.is_vu = vc_fmt->is_vu; + mb->plane.planes[0] = bo->paddr + fb->offsets[0]; + +- rotation = drm_rotation_simplify(state->rotation, rotation); +- +- switch (rotation) { +- default: +- case DRM_MODE_ROTATE_0: +- mb->plane.transform = TRANSFORM_NO_ROTATE; +- break; +- case DRM_MODE_ROTATE_180: +- mb->plane.transform = TRANSFORM_ROTATE_180; +- break; +- case DRM_MODE_REFLECT_X: +- mb->plane.transform = TRANSFORM_FLIP_HRIZ; +- break; +- case DRM_MODE_REFLECT_Y: +- mb->plane.transform = TRANSFORM_FLIP_VERT; +- break; +- } ++ rotation = drm_rotation_simplify(state->rotation, ++ DRM_MODE_ROTATE_0 | ++ DRM_MODE_REFLECT_X | ++ DRM_MODE_REFLECT_Y); ++ ++ mb->plane.transform = TRANSFORM_NO_ROTATE; ++ if (rotation & DRM_MODE_REFLECT_X) ++ mb->plane.transform |= TRANSFORM_FLIP_HRIZ; ++ if (rotation & DRM_MODE_REFLECT_Y) ++ mb->plane.transform |= TRANSFORM_FLIP_VERT; + + vc4_fkms_margins_adj(state, &mb->plane); + +@@ -772,7 +760,10 @@ static struct drm_plane *vc4_fkms_plane_ + + drm_plane_create_alpha_property(plane); + drm_plane_create_rotation_property(plane, DRM_MODE_ROTATE_0, +- SUPPORTED_ROTATIONS); ++ DRM_MODE_ROTATE_0 | ++ DRM_MODE_ROTATE_180 | ++ DRM_MODE_REFLECT_X | ++ DRM_MODE_REFLECT_Y); + drm_plane_create_color_properties(plane, + BIT(DRM_COLOR_YCBCR_BT601) | + BIT(DRM_COLOR_YCBCR_BT709) | diff --git a/target/linux/brcm2708/patches-4.19/950-0736-overlays-Add-w5500-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0736-overlays-Add-w5500-overlay.patch new file mode 100644 index 00000000000..2641a5b0b1d --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0736-overlays-Add-w5500-overlay.patch @@ -0,0 +1,113 @@ +From cb9a896a799393b3cb5947bef3c95eb5ffb44776 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 10 Oct 2019 09:08:47 +0100 +Subject: [PATCH] overlays: Add w5500 overlay + +Add an overlay to configure the Wiznet W5500 Ethernet controller on +SPI0. The 'cs' parameter chooses the Chip Select (default 0). + +See: https://github.com/raspberrypi/linux/issues/3276 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 10 ++++ + arch/arm/boot/dts/overlays/w5500-overlay.dts | 63 ++++++++++++++++++++ + 3 files changed, 74 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/w5500-overlay.dts + +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -183,6 +183,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + vga666.dtbo \ + w1-gpio.dtbo \ + w1-gpio-pullup.dtbo \ ++ w5500.dtbo \ + wittypi.dtbo + + targets += dtbs dtbs_install +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -2538,6 +2538,16 @@ Params: gpiopin GPIO for + pullup Now enabled by default (ignored) + + ++Name: w5500 ++Info: Overlay for the Wiznet W5500 Ethernet Controller on SPI0 ++Load: dtoverlay=w5500,= ++Params: int_pin GPIO used for INT (default 25) ++ ++ speed SPI bus speed (default 30000000) ++ ++ cs SPI bus Chip Select (default 0) ++ ++ + Name: wittypi + Info: Configures the wittypi RTC module. + Load: dtoverlay=wittypi,= +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/w5500-overlay.dts +@@ -0,0 +1,63 @@ ++// Overlay for the Wiznet w5500 Ethernet Controller ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ target = <&spidev0>; ++ __overlay__ { ++ status = "disabled"; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&spidev1>; ++ __dormant__ { ++ status = "disabled"; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&spi0>; ++ __overlay__ { ++ /* needed to avoid dtc warning */ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ status = "okay"; ++ ++ eth1: w5500@0{ ++ compatible = "wiznet,w5500"; ++ reg = <0>; /* CE0 */ ++ pinctrl-names = "default"; ++ pinctrl-0 = <ð1_pins>; ++ interrupt-parent = <&gpio>; ++ interrupts = <25 0x8>; ++ spi-max-frequency = <30000000>; ++// local-mac-address = [aa bb cc dd ee ff]; ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ fragment@3 { ++ target = <&gpio>; ++ __overlay__ { ++ eth1_pins: eth1_pins { ++ brcm,pins = <25>; ++ brcm,function = <0>; /* in */ ++ brcm,pull = <0>; /* none */ ++ }; ++ }; ++ }; ++ ++ __overrides__ { ++ int_pin = <ð1>, "interrupts:0", ++ <ð1_pins>, "brcm,pins:0"; ++ speed = <ð1>, "spi-max-frequency:0"; ++ cs = <ð1>, "reg:0", ++ <0>, "!0=1"; ++ }; ++}; diff --git a/target/linux/brcm2708/patches-4.19/950-0737-media-bcm2835-unicam-Replace-hard-coded-loop-limit-w.patch b/target/linux/brcm2708/patches-4.19/950-0737-media-bcm2835-unicam-Replace-hard-coded-loop-limit-w.patch new file mode 100644 index 00000000000..cb9a82b1276 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0737-media-bcm2835-unicam-Replace-hard-coded-loop-limit-w.patch @@ -0,0 +1,44 @@ +From 1a013467030ffd6f1958b8a4db1b5312213fb9bd Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Thu, 17 Oct 2019 10:16:16 +0100 +Subject: [PATCH] media: bcm2835-unicam: Replace hard coded loop limit + with a define + +In order to protect against a dodgy sensor driver never returning +an error from enum_mbus_code there was a hardcoded value of 128 +that aborted the loop. +There is a need to call enum_mbus_code from elsewhere, so move that +number to a define so it is common across calls. + +Signed-off-by: Dave Stevenson +--- + drivers/media/platform/bcm2835/bcm2835-unicam.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +--- a/drivers/media/platform/bcm2835/bcm2835-unicam.c ++++ b/drivers/media/platform/bcm2835/bcm2835-unicam.c +@@ -97,6 +97,11 @@ MODULE_PARM_DESC(debug, "Debug level 0-3 + #define unicam_err(dev, fmt, arg...) \ + v4l2_err(&(dev)->v4l2_dev, fmt, ##arg) + ++/* To protect against a dodgy sensor driver never returning an error from ++ * enum_mbus_code, set a maximum index value to be used. ++ */ ++#define MAX_ENUM_MBUS_CODE 128 ++ + /* + * Stride is a 16 bit register, but also has to be a multiple of 16. + */ +@@ -738,11 +743,7 @@ static int unicam_enum_fmt_vid_cap(struc + int ret = 0; + int i; + +- /* Loop whilst the sensor driver says it has more formats, but add a +- * failsafe against a dodgy driver at 128 (more than any sensor will +- * ever sensibly advertise) +- */ +- for (i = 0; !ret && i < 128 ; i++) { ++ for (i = 0; !ret && i < MAX_ENUM_MBUS_CODE; i++) { + memset(&mbus_code, 0, sizeof(mbus_code)); + mbus_code.index = i; + diff --git a/target/linux/brcm2708/patches-4.19/950-0738-media-bcm2835-unicam-Fix-one-to-many-mapping-for-YUY.patch b/target/linux/brcm2708/patches-4.19/950-0738-media-bcm2835-unicam-Fix-one-to-many-mapping-for-YUY.patch new file mode 100644 index 00000000000..3c881a1bfc1 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0738-media-bcm2835-unicam-Fix-one-to-many-mapping-for-YUY.patch @@ -0,0 +1,144 @@ +From 94d77466473f3abcf799ac44b8038766ab32f27c Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 16 Oct 2019 18:53:06 +0100 +Subject: [PATCH] media: bcm2835-unicam: Fix one-to-many mapping for + YUYV formats + +V4L2 format V4L2_PIX_FMT_YUYV maps to both MEDIA_BUS_FMT_YUYV8_2X8 +and MEDIA_BUS_FMT_YUYV8_1X16. The change to not cache the active +formats also meant that we only ever found the first variant of +the mediabus format when trying to setup the device. + +Flag the formats that have other representations, and ensure +that the format conversion checks whether the found format +matches one supported by the sensor before returning it. + +Signed-off-by: Dave Stevenson +--- + .../media/platform/bcm2835/bcm2835-unicam.c | 45 ++++++++++++++++--- + 1 file changed, 39 insertions(+), 6 deletions(-) + +--- a/drivers/media/platform/bcm2835/bcm2835-unicam.c ++++ b/drivers/media/platform/bcm2835/bcm2835-unicam.c +@@ -136,6 +136,8 @@ MODULE_PARM_DESC(debug, "Debug level 0-3 + * @code: V4L2 media bus format code. + * @depth: Bits per pixel as delivered from the source. + * @csi_dt: CSI data type. ++ * @check_variants: Flag to denote that there are multiple mediabus formats ++ * still in the list that could match this V4L2 format. + */ + struct unicam_fmt { + u32 fourcc; +@@ -143,6 +145,7 @@ struct unicam_fmt { + u32 code; + u8 depth; + u8 csi_dt; ++ u8 check_variants; + }; + + static const struct unicam_fmt formats[] = { +@@ -152,21 +155,25 @@ static const struct unicam_fmt formats[] + .code = MEDIA_BUS_FMT_YUYV8_2X8, + .depth = 16, + .csi_dt = 0x1e, ++ .check_variants = 1, + }, { + .fourcc = V4L2_PIX_FMT_UYVY, + .code = MEDIA_BUS_FMT_UYVY8_2X8, + .depth = 16, + .csi_dt = 0x1e, ++ .check_variants = 1, + }, { + .fourcc = V4L2_PIX_FMT_YVYU, + .code = MEDIA_BUS_FMT_YVYU8_2X8, + .depth = 16, + .csi_dt = 0x1e, ++ .check_variants = 1, + }, { + .fourcc = V4L2_PIX_FMT_VYUY, + .code = MEDIA_BUS_FMT_VYUY8_2X8, + .depth = 16, + .csi_dt = 0x1e, ++ .check_variants = 1, + }, { + .fourcc = V4L2_PIX_FMT_YUYV, + .code = MEDIA_BUS_FMT_YUYV8_1X16, +@@ -489,14 +496,40 @@ static const struct unicam_fmt *find_for + return NULL; + } + +-static const struct unicam_fmt *find_format_by_pix(u32 pixelformat) ++static int check_mbus_format(struct unicam_device *dev, ++ const struct unicam_fmt *format) ++{ ++ struct v4l2_subdev_mbus_code_enum mbus_code; ++ int ret = 0; ++ int i; ++ ++ for (i = 0; !ret && i < MAX_ENUM_MBUS_CODE; i++) { ++ memset(&mbus_code, 0, sizeof(mbus_code)); ++ mbus_code.index = i; ++ ++ ret = v4l2_subdev_call(dev->sensor, pad, enum_mbus_code, ++ NULL, &mbus_code); ++ ++ if (!ret && mbus_code.code == format->code) ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static const struct unicam_fmt *find_format_by_pix(struct unicam_device *dev, ++ u32 pixelformat) + { + unsigned int k; + + for (k = 0; k < ARRAY_SIZE(formats); k++) { + if (formats[k].fourcc == pixelformat || +- formats[k].repacked_fourcc == pixelformat) ++ formats[k].repacked_fourcc == pixelformat) { ++ if (formats[k].check_variants && ++ !check_mbus_format(dev, &formats[k])) ++ continue; + return &formats[k]; ++ } + } + + return NULL; +@@ -832,7 +865,7 @@ static int unicam_try_fmt_vid_cap(struct + struct v4l2_mbus_framefmt *mbus_fmt = &sd_fmt.format; + int ret; + +- fmt = find_format_by_pix(f->fmt.pix.pixelformat); ++ fmt = find_format_by_pix(dev, f->fmt.pix.pixelformat); + if (!fmt) { + /* Pixel format not supported by unicam. Choose the first + * supported format, and let the sensor choose something else. +@@ -917,7 +950,7 @@ static int unicam_s_fmt_vid_cap(struct f + if (ret < 0) + return ret; + +- fmt = find_format_by_pix(f->fmt.pix.pixelformat); ++ fmt = find_format_by_pix(dev, f->fmt.pix.pixelformat); + if (!fmt) { + /* Unknown pixel format - adopt a default. + * This shouldn't happen as try_fmt should have resolved any +@@ -1540,7 +1573,7 @@ static int unicam_enum_framesizes(struct + int ret; + + /* check for valid format */ +- fmt = find_format_by_pix(fsize->pixel_format); ++ fmt = find_format_by_pix(dev, fsize->pixel_format); + if (!fmt) { + unicam_dbg(3, dev, "Invalid pixel code: %x\n", + fsize->pixel_format); +@@ -1579,7 +1612,7 @@ static int unicam_enum_frameintervals(st + }; + int ret; + +- fmt = find_format_by_pix(fival->pixel_format); ++ fmt = find_format_by_pix(dev, fival->pixel_format); + if (!fmt) + return -EINVAL; + diff --git a/target/linux/brcm2708/patches-4.19/950-0739-dt-bindings-Add-binding-for-the-Infineon-IRS1125-sen.patch b/target/linux/brcm2708/patches-4.19/950-0739-dt-bindings-Add-binding-for-the-Infineon-IRS1125-sen.patch new file mode 100644 index 00000000000..4291f9fee55 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0739-dt-bindings-Add-binding-for-the-Infineon-IRS1125-sen.patch @@ -0,0 +1,66 @@ +From b4f8b92cdfd8ad2e04cdd3f0a73aa4e95d172fb1 Mon Sep 17 00:00:00 2001 +From: Markus Proeller +Date: Thu, 10 Oct 2019 19:12:08 +0200 +Subject: [PATCH] dt-bindings: Add binding for the Infineon IRS1125 + sensor + +Adds a binding for the Infineon IRS1125 time-of-flight depth +sensor. + +Signed-off-by: Markus Proeller +--- + .../devicetree/bindings/media/i2c/irs1125.txt | 48 +++++++++++++++++++ + 1 file changed, 48 insertions(+) + create mode 100644 Documentation/devicetree/bindings/media/i2c/irs1125.txt + +--- /dev/null ++++ b/Documentation/devicetree/bindings/media/i2c/irs1125.txt +@@ -0,0 +1,48 @@ ++* Infineon irs1125 time of flight sensor ++ ++The Infineon irs1125 is a time of flight digital image sensor with ++an active array size of 352H x 286V. It is programmable through I2C ++interface. The I2C address defaults to 0x3D, but can be reconfigured ++to address 0x3C or 0x41 via I2C commands. Image data is sent through ++MIPI CSI-2, which is configured as either 1 or 2 data lanes. ++ ++Required Properties: ++- compatible: value should be "infineon,irs1125" for irs1125 sensor ++- reg: I2C bus address of the device ++- clocks: reference to the xclk input clock. ++- pwdn-gpios: reference to the GPIO connected to the reset pin. ++ This is an active low signal to the iirs1125. ++ ++The irs1125 device node should contain one 'port' child node with ++an 'endpoint' subnode. For further reading on port node refer to ++Documentation/devicetree/bindings/media/video-interfaces.txt. ++ ++Endpoint node required properties for CSI-2 connection are: ++- remote-endpoint: a phandle to the bus receiver's endpoint node. ++- clock-lanes: should be set to <0> (clock lane on hardware lane 0) ++- data-lanes: should be set to <1> or <1 2> (one or two lane CSI-2 ++ supported) ++ ++Example: ++ sensor@10 { ++ compatible = "infineon,irs1125"; ++ reg = <0x3D>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ clocks = <&irs1125_clk>; ++ pwdn-gpios = <&gpio 5 0>; ++ ++ irs1125_clk: camera-clk { ++ compatible = "fixed-clock"; ++ #clock-cells = <0>; ++ clock-frequency = <26000000>; ++ }; ++ ++ port { ++ sensor_out: endpoint { ++ remote-endpoint = <&csiss_in>; ++ clock-lanes = <0>; ++ data-lanes = <1 2>; ++ }; ++ }; ++ }; diff --git a/target/linux/brcm2708/patches-4.19/950-0740-media-i2c-Add-a-driver-for-the-Infineon-IRS1125-dept.patch b/target/linux/brcm2708/patches-4.19/950-0740-media-i2c-Add-a-driver-for-the-Infineon-IRS1125-dept.patch new file mode 100644 index 00000000000..9b882fc8f8d --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0740-media-i2c-Add-a-driver-for-the-Infineon-IRS1125-dept.patch @@ -0,0 +1,1231 @@ +From c09b42cb057ddf8bd20d57c6b0ffd94f3e15ea7c Mon Sep 17 00:00:00 2001 +From: Markus Proeller +Date: Thu, 10 Oct 2019 19:12:36 +0200 +Subject: [PATCH] media: i2c: Add a driver for the Infineon IRS1125 + depth sensor + +The Infineon IRS1125 is a time of flight depth sensor that +has a CSI-2 interface. + +Add a V4L2 subdevice driver for this device. + +Signed-off-by: Markus Proeller +--- + drivers/media/i2c/Kconfig | 12 + + drivers/media/i2c/Makefile | 1 + + drivers/media/i2c/irs1125.c | 1112 +++++++++++++++++++++++++++++++++++ + drivers/media/i2c/irs1125.h | 61 ++ + 4 files changed, 1186 insertions(+) + create mode 100644 drivers/media/i2c/irs1125.c + create mode 100644 drivers/media/i2c/irs1125.h + +--- a/drivers/media/i2c/Kconfig ++++ b/drivers/media/i2c/Kconfig +@@ -813,6 +813,18 @@ config VIDEO_OV13858 + This is a Video4Linux2 sensor driver for the OmniVision + OV13858 camera. + ++config VIDEO_IRS1125 ++ tristate "Infineon IRS1125 sensor support" ++ depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API ++ depends on MEDIA_CAMERA_SUPPORT ++ select V4L2_FWNODE ++ help ++ This is a Video4Linux2 sensor-level driver for the Infineon ++ IRS1125 camera. ++ ++ To compile this driver as a module, choose M here: the ++ module will be called irs1125. ++ + config VIDEO_VS6624 + tristate "ST VS6624 sensor support" + depends on VIDEO_V4L2 && I2C +--- a/drivers/media/i2c/Makefile ++++ b/drivers/media/i2c/Makefile +@@ -80,6 +80,7 @@ obj-$(CONFIG_VIDEO_OV772X) += ov772x.o + obj-$(CONFIG_VIDEO_OV7740) += ov7740.o + obj-$(CONFIG_VIDEO_OV9650) += ov9650.o + obj-$(CONFIG_VIDEO_OV13858) += ov13858.o ++obj-$(CONFIG_VIDEO_IRS1125) += irs1125.o + obj-$(CONFIG_VIDEO_MT9M032) += mt9m032.o + obj-$(CONFIG_VIDEO_MT9M111) += mt9m111.o + obj-$(CONFIG_VIDEO_MT9P031) += mt9p031.o +--- /dev/null ++++ b/drivers/media/i2c/irs1125.c +@@ -0,0 +1,1112 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * A V4L2 driver for Infineon IRS1125 TOF cameras. ++ * Copyright (C) 2018, pieye GmbH ++ * ++ * Based on V4L2 OmniVision OV5647 Image Sensor driver ++ * Copyright (C) 2016 Ramiro Oliveira ++ * ++ * DT / fwnode changes, and GPIO control taken from ov5640.c ++ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved. ++ * Copyright (C) 2014-2017 Mentor Graphics Inc. ++ * ++ */ ++ ++#include "irs1125.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define CHECK_BIT(val, pos) ((val) & BIT(pos)) ++ ++#define SENSOR_NAME "irs1125" ++ ++#define RESET_ACTIVE_DELAY_MS 20 ++ ++#define IRS1125_ALTERNATE_FW "irs1125_af.bin" ++ ++#define IRS1125_REG_CSICFG 0xA882 ++#define IRS1125_REG_DESIGN_STEP 0xB0AD ++#define IRS1125_REG_EFUSEVAL2 0xB09F ++#define IRS1125_REG_EFUSEVAL3 0xB0A0 ++#define IRS1125_REG_EFUSEVAL4 0xB0A1 ++#define IRS1125_REG_DMEM_SHADOW 0xC320 ++ ++#define IRS1125_DESIGN_STEP_EXPECTED 0x0a12 ++ ++#define IRS1125_ROW_START_DEF 0 ++#define IRS1125_COLUMN_START_DEF 0 ++#define IRS1125_WINDOW_HEIGHT_DEF 288 ++#define IRS1125_WINDOW_WIDTH_DEF 352 ++ ++struct regval_list { ++ u16 addr; ++ u16 data; ++}; ++ ++struct irs1125 { ++ struct v4l2_subdev sd; ++ struct media_pad pad; ++ /* the parsed DT endpoint info */ ++ struct v4l2_fwnode_endpoint ep; ++ ++ struct clk *xclk; ++ struct v4l2_ctrl_handler ctrl_handler; ++ ++ /* To serialize asynchronus callbacks */ ++ struct mutex lock; ++ ++ /* image data layout */ ++ unsigned int num_seq; ++ ++ /* reset pin */ ++ struct gpio_desc *reset; ++ ++ /* V4l2 Controls to grab */ ++ struct v4l2_ctrl *ctrl_modplls; ++ struct v4l2_ctrl *ctrl_numseq; ++ ++ int power_count; ++}; ++ ++static inline struct irs1125 *to_state(struct v4l2_subdev *sd) ++{ ++ return container_of(sd, struct irs1125, sd); ++} ++ ++static struct regval_list irs1125_26MHz[] = { ++ {0xB017, 0x0413}, ++ {0xB086, 0x3535}, ++ {0xB0AE, 0xEF02}, ++ {0xA000, 0x0004}, ++ {0xFFFF, 100}, ++ ++ {0xB062, 0x6383}, ++ {0xB063, 0x55A8}, ++ {0xB068, 0x7628}, ++ {0xB069, 0x03E2}, ++ ++ {0xFFFF, 100}, ++ {0xB05A, 0x01C5}, ++ {0xB05C, 0x0206}, ++ {0xB05D, 0x01C5}, ++ {0xB05F, 0x0206}, ++ {0xB016, 0x1335}, ++ {0xFFFF, 100}, ++ {0xA893, 0x8261}, ++ {0xA894, 0x89d8}, ++ {0xA895, 0x131d}, ++ {0xA896, 0x4251}, ++ {0xA897, 0x9D8A}, ++ {0xA898, 0x0BD8}, ++ {0xA899, 0x2245}, ++ {0xA89A, 0xAB9B}, ++ {0xA89B, 0x03B9}, ++ {0xA89C, 0x8041}, ++ {0xA89D, 0xE07E}, ++ {0xA89E, 0x0307}, ++ {0xFFFF, 100}, ++ {0xA88D, 0x0004}, ++ {0xA800, 0x0E68}, ++ {0xA801, 0x0000}, ++ {0xA802, 0x000C}, ++ {0xA803, 0x0000}, ++ {0xA804, 0x0E68}, ++ {0xA805, 0x0000}, ++ {0xA806, 0x0440}, ++ {0xA807, 0x0000}, ++ {0xA808, 0x0E68}, ++ {0xA809, 0x0000}, ++ {0xA80A, 0x0884}, ++ {0xA80B, 0x0000}, ++ {0xA80C, 0x0E68}, ++ {0xA80D, 0x0000}, ++ {0xA80E, 0x0CC8}, ++ {0xA80F, 0x0000}, ++ {0xA810, 0x0E68}, ++ {0xA811, 0x0000}, ++ {0xA812, 0x2000}, ++ {0xA813, 0x0000}, ++ {0xA882, 0x0081}, ++ {0xA88C, 0x403A}, ++ {0xA88F, 0x031E}, ++ {0xA892, 0x0351}, ++ {0x9813, 0x13FF}, ++ {0x981B, 0x7608}, ++ ++ {0xB008, 0x0000}, ++ {0xB015, 0x1513}, ++ ++ {0xFFFF, 100} ++}; ++ ++static struct regval_list irs1125_seq_cfg[] = { ++ {0xC3A0, 0x823D}, ++ {0xC3A1, 0xB13B}, ++ {0xC3A2, 0x0313}, ++ {0xC3A3, 0x4659}, ++ {0xC3A4, 0xC4EC}, ++ {0xC3A5, 0x03CE}, ++ {0xC3A6, 0x4259}, ++ {0xC3A7, 0xC4EC}, ++ {0xC3A8, 0x03CE}, ++ {0xC3A9, 0x8839}, ++ {0xC3AA, 0x89D8}, ++ {0xC3AB, 0x031D}, ++ ++ {0xC24C, 0x5529}, ++ {0xC24D, 0x0000}, ++ {0xC24E, 0x1200}, ++ {0xC24F, 0x6CB2}, ++ {0xC250, 0x0000}, ++ {0xC251, 0x5529}, ++ {0xC252, 0x42F4}, ++ {0xC253, 0xD1AF}, ++ {0xC254, 0x8A18}, ++ {0xC255, 0x0002}, ++ {0xC256, 0x5529}, ++ {0xC257, 0x6276}, ++ {0xC258, 0x11A7}, ++ {0xC259, 0xD907}, ++ {0xC25A, 0x0000}, ++ {0xC25B, 0x5529}, ++ {0xC25C, 0x07E0}, ++ {0xC25D, 0x7BFE}, ++ {0xC25E, 0x6402}, ++ {0xC25F, 0x0019}, ++ ++ {0xC3AC, 0x0007}, ++ {0xC3AD, 0xED88}, ++ {0xC320, 0x003E}, ++ {0xC321, 0x0000}, ++ {0xC322, 0x2000}, ++ {0xC323, 0x0000}, ++ {0xC324, 0x0271}, ++ {0xC325, 0x0000}, ++ {0xC326, 0x000C}, ++ {0xC327, 0x0000}, ++ {0xC328, 0x0271}, ++ {0xC329, 0x0000}, ++ {0xC32A, 0x0440}, ++ {0xC32B, 0x0000}, ++ {0xC32C, 0x0271}, ++ {0xC32D, 0x0000}, ++ {0xC32E, 0x0884}, ++ {0xC32F, 0x0000}, ++ {0xC330, 0x0271}, ++ {0xC331, 0x0000}, ++ {0xC332, 0x0CC8}, ++ {0xC333, 0x0000}, ++ {0xA88D, 0x0004}, ++ ++ {0xA890, 0x0000}, ++ {0xC219, 0x0002}, ++ {0xC21A, 0x0000}, ++ {0xC21B, 0x0000}, ++ {0xC21C, 0x00CD}, ++ {0xC21D, 0x0009}, ++ {0xC21E, 0x00CD}, ++ {0xC21F, 0x0009}, ++ ++ {0xA87C, 0x0000}, ++ {0xC032, 0x0001}, ++ {0xC034, 0x0000}, ++ {0xC035, 0x0001}, ++ {0xC039, 0x0000}, ++ {0xC401, 0x0002}, ++ ++ {0xFFFF, 1}, ++ {0xA87C, 0x0001} ++}; ++ ++static int irs1125_write(struct v4l2_subdev *sd, u16 reg, u16 val) ++{ ++ int ret; ++ unsigned char data[4] = { reg >> 8, reg & 0xff, val >> 8, val & 0xff}; ++ struct i2c_client *client = v4l2_get_subdevdata(sd); ++ ++ ret = i2c_master_send(client, data, 4); ++ if (ret < 0) ++ dev_err(&client->dev, "%s: i2c write error, reg: %x\n", ++ __func__, reg); ++ ++ return ret; ++} ++ ++static int irs1125_read(struct v4l2_subdev *sd, u16 reg, u16 *val) ++{ ++ int ret; ++ unsigned char data_w[2] = { reg >> 8, reg & 0xff }; ++ char rdval[2]; ++ ++ struct i2c_client *client = v4l2_get_subdevdata(sd); ++ ++ ret = i2c_master_send(client, data_w, 2); ++ if (ret < 0) { ++ dev_dbg(&client->dev, "%s: i2c write error, reg: %x\n", ++ __func__, reg); ++ return ret; ++ } ++ ++ ret = i2c_master_recv(client, rdval, 2); ++ if (ret < 0) ++ dev_err(&client->dev, "%s: i2c read error, reg: %x\n", ++ __func__, reg); ++ ++ *val = rdval[1] | (rdval[0] << 8); ++ ++ return ret; ++} ++ ++static int irs1125_write_array(struct v4l2_subdev *sd, ++ struct regval_list *regs, int array_size) ++{ ++ int i, ret; ++ ++ for (i = 0; i < array_size; i++) { ++ if (regs[i].addr == 0xFFFF) { ++ msleep(regs[i].data); ++ } else { ++ ret = irs1125_write(sd, regs[i].addr, regs[i].data); ++ if (ret < 0) ++ return ret; ++ } ++ } ++ ++ return 0; ++} ++ ++static int irs1125_stream_on(struct v4l2_subdev *sd) ++{ ++ int ret; ++ struct irs1125 *irs1125 = to_state(sd); ++ struct i2c_client *client = v4l2_get_subdevdata(sd); ++ ++ v4l2_ctrl_grab(irs1125->ctrl_numseq, 1); ++ v4l2_ctrl_grab(irs1125->ctrl_modplls, 1); ++ ++ ret = irs1125_write(sd, 0xC400, 0x0001); ++ if (ret < 0) { ++ dev_err(&client->dev, "error enabling firmware: %d", ret); ++ return ret; ++ } ++ ++ msleep(100); ++ ++ return irs1125_write(sd, 0xA87C, 0x0001); ++} ++ ++static int irs1125_stream_off(struct v4l2_subdev *sd) ++{ ++ int ret; ++ struct irs1125 *irs1125 = to_state(sd); ++ struct i2c_client *client = v4l2_get_subdevdata(sd); ++ ++ v4l2_ctrl_grab(irs1125->ctrl_numseq, 0); ++ v4l2_ctrl_grab(irs1125->ctrl_modplls, 0); ++ ++ ret = irs1125_write(sd, 0xA87C, 0x0000); ++ if (ret < 0) { ++ dev_err(&client->dev, "error disabling trigger: %d", ret); ++ return ret; ++ } ++ ++ msleep(100); ++ ++ return irs1125_write(sd, 0xC400, 0x0002); ++} ++ ++static int __sensor_init(struct v4l2_subdev *sd) ++{ ++ unsigned int cnt, idx; ++ int ret; ++ u16 val; ++ struct i2c_client *client = v4l2_get_subdevdata(sd); ++ struct irs1125 *irs1125 = to_state(sd); ++ const struct firmware *fw; ++ struct regval_list *reg_data; ++ ++ cnt = 0; ++ while (1) { ++ ret = irs1125_read(sd, 0xC40F, &val); ++ if (ret < 0) { ++ dev_err(&client->dev, "read register 0xC40F failed\n"); ++ return ret; ++ } ++ if (CHECK_BIT(val, 14) == 0) ++ break; ++ ++ if (cnt >= 5) { ++ dev_err(&client->dev, "timeout waiting for 0xC40F\n"); ++ return -EAGAIN; ++ } ++ ++ cnt++; ++ } ++ ++ ret = irs1125_write_array(sd, irs1125_26MHz, ++ ARRAY_SIZE(irs1125_26MHz)); ++ if (ret < 0) { ++ dev_err(&client->dev, "write sensor default regs error\n"); ++ return ret; ++ } ++ ++ /* set CSI-2 number of data lanes */ ++ if (irs1125->ep.bus.mipi_csi2.num_data_lanes == 1) { ++ val = 0x0001; ++ } else if (irs1125->ep.bus.mipi_csi2.num_data_lanes == 2) { ++ val = 0x0081; ++ } else { ++ dev_err(&client->dev, "invalid number of data lanes %d\n", ++ irs1125->ep.bus.mipi_csi2.num_data_lanes); ++ return -EINVAL; ++ } ++ ++ ret = irs1125_write(sd, IRS1125_REG_CSICFG, val); ++ if (ret < 0) { ++ dev_err(&client->dev, "write sensor csi2 config error\n"); ++ return ret; ++ } ++ ++ /* request the firmware, this will block and timeout */ ++ ret = request_firmware(&fw, IRS1125_ALTERNATE_FW, &client->dev); ++ if (ret) { ++ dev_err(&client->dev, ++ "did not find the firmware file '%s' (status %d)\n", ++ IRS1125_ALTERNATE_FW, ret); ++ return ret; ++ } ++ ++ if (fw->size % 4) { ++ dev_err(&client->dev, "firmware file '%s' invalid\n", ++ IRS1125_ALTERNATE_FW); ++ release_firmware(fw); ++ return -EINVAL; ++ } ++ ++ for (idx = 0; idx < fw->size; idx += 4) { ++ reg_data = (struct regval_list *)&fw->data[idx]; ++ ret = irs1125_write(sd, reg_data->addr, reg_data->data); ++ if (ret < 0) { ++ dev_err(&client->dev, "firmware write error\n"); ++ release_firmware(fw); ++ return ret; ++ } ++ } ++ release_firmware(fw); ++ ++ ret = irs1125_write_array(sd, irs1125_seq_cfg, ++ ARRAY_SIZE(irs1125_seq_cfg)); ++ if (ret < 0) { ++ dev_err(&client->dev, "write default sequence failed\n"); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int irs1125_sensor_power(struct v4l2_subdev *sd, int on) ++{ ++ int ret = 0; ++ struct irs1125 *irs1125 = to_state(sd); ++ struct i2c_client *client = v4l2_get_subdevdata(sd); ++ ++ mutex_lock(&irs1125->lock); ++ ++ if (on && !irs1125->power_count) { ++ gpiod_set_value_cansleep(irs1125->reset, 1); ++ msleep(RESET_ACTIVE_DELAY_MS); ++ ++ ret = clk_prepare_enable(irs1125->xclk); ++ if (ret < 0) { ++ dev_err(&client->dev, "clk prepare enable failed\n"); ++ goto out; ++ } ++ ++ ret = __sensor_init(sd); ++ if (ret < 0) { ++ clk_disable_unprepare(irs1125->xclk); ++ dev_err(&client->dev, ++ "Camera not available, check Power\n"); ++ goto out; ++ } ++ } else if (!on && irs1125->power_count == 1) { ++ gpiod_set_value_cansleep(irs1125->reset, 0); ++ } ++ ++ /* Update the power count. */ ++ irs1125->power_count += on ? 1 : -1; ++ WARN_ON(irs1125->power_count < 0); ++ ++out: ++ mutex_unlock(&irs1125->lock); ++ ++ return ret; ++} ++ ++#ifdef CONFIG_VIDEO_ADV_DEBUG ++static int irs1125_sensor_get_register(struct v4l2_subdev *sd, ++ struct v4l2_dbg_register *reg) ++{ ++ u16 val; ++ int ret; ++ ++ ret = irs1125_read(sd, reg->reg & 0xffff, &val); ++ if (ret < 0) ++ return ret; ++ ++ reg->val = val; ++ reg->size = 1; ++ ++ return 0; ++} ++ ++static int irs1125_sensor_set_register(struct v4l2_subdev *sd, ++ const struct v4l2_dbg_register *reg) ++{ ++ return irs1125_write(sd, reg->reg & 0xffff, reg->val & 0xffff); ++} ++#endif ++ ++static const struct v4l2_subdev_core_ops irs1125_subdev_core_ops = { ++ .s_power = irs1125_sensor_power, ++#ifdef CONFIG_VIDEO_ADV_DEBUG ++ .g_register = irs1125_sensor_get_register, ++ .s_register = irs1125_sensor_set_register, ++#endif ++}; ++ ++static int irs1125_s_stream(struct v4l2_subdev *sd, int enable) ++{ ++ if (enable) ++ return irs1125_stream_on(sd); ++ else ++ return irs1125_stream_off(sd); ++} ++ ++static const struct v4l2_subdev_video_ops irs1125_subdev_video_ops = { ++ .s_stream = irs1125_s_stream, ++}; ++ ++static int irs1125_enum_mbus_code(struct v4l2_subdev *sd, ++ struct v4l2_subdev_pad_config *cfg, ++ struct v4l2_subdev_mbus_code_enum *code) ++{ ++ if (code->index > 0) ++ return -EINVAL; ++ ++ code->code = MEDIA_BUS_FMT_Y12_1X12; ++ ++ return 0; ++} ++ ++static int irs1125_set_get_fmt(struct v4l2_subdev *sd, ++ struct v4l2_subdev_pad_config *cfg, ++ struct v4l2_subdev_format *format) ++{ ++ struct v4l2_mbus_framefmt *fmt = &format->format; ++ struct irs1125 *irs1125 = to_state(sd); ++ ++ if (format->pad != 0) ++ return -EINVAL; ++ ++ /* Only one format is supported, so return that */ ++ memset(fmt, 0, sizeof(*fmt)); ++ fmt->code = MEDIA_BUS_FMT_Y12_1X12; ++ fmt->colorspace = V4L2_COLORSPACE_RAW; ++ fmt->field = V4L2_FIELD_NONE; ++ fmt->width = IRS1125_WINDOW_WIDTH_DEF; ++ fmt->height = IRS1125_WINDOW_HEIGHT_DEF * irs1125->num_seq; ++ ++ return 0; ++} ++ ++static const struct v4l2_subdev_pad_ops irs1125_subdev_pad_ops = { ++ .enum_mbus_code = irs1125_enum_mbus_code, ++ .set_fmt = irs1125_set_get_fmt, ++ .get_fmt = irs1125_set_get_fmt, ++}; ++ ++static const struct v4l2_subdev_ops irs1125_subdev_ops = { ++ .core = &irs1125_subdev_core_ops, ++ .video = &irs1125_subdev_video_ops, ++ .pad = &irs1125_subdev_pad_ops, ++}; ++ ++static int irs1125_s_ctrl(struct v4l2_ctrl *ctrl) ++{ ++ struct irs1125 *dev = container_of(ctrl->handler, ++ struct irs1125, ctrl_handler); ++ struct i2c_client *client = v4l2_get_subdevdata(&dev->sd); ++ int err, i; ++ struct irs1125_mod_pll *mod_cur, *mod_new; ++ struct irs1125_seq_cfg *cfg_cur, *cfg_new; ++ u16 addr, val; ++ ++ err = 0; ++ ++ switch (ctrl->id) { ++ case IRS1125_CID_SAFE_RECONFIG: ++ { ++ struct irs1125_illu *illu_cur, *illu_new; ++ ++ illu_new = (struct irs1125_illu *)ctrl->p_new.p; ++ illu_cur = (struct irs1125_illu *)ctrl->p_cur.p; ++ for (i = 0; i < IRS1125_NUM_SEQ_ENTRIES; i++) { ++ if (illu_cur[i].exposure != illu_new[i].exposure) { ++ addr = 0xA850 + i * 2; ++ val = illu_new[i].exposure; ++ err = irs1125_write(&dev->sd, addr, val); ++ if (err < 0) ++ break; ++ } ++ if (illu_cur[i].framerate != illu_new[i].framerate) { ++ addr = 0xA851 + i * 2; ++ val = illu_new[i].framerate; ++ err = irs1125_write(&dev->sd, addr, val); ++ if (err < 0) ++ break; ++ } ++ } ++ break; ++ } ++ case IRS1125_CID_MOD_PLL: ++ mod_new = (struct irs1125_mod_pll *)ctrl->p_new.p; ++ mod_cur = (struct irs1125_mod_pll *)ctrl->p_cur.p; ++ for (i = 0; i < IRS1125_NUM_MOD_PLLS; i++) { ++ if (mod_cur[i].pllcfg1 != mod_new[i].pllcfg1) { ++ addr = 0xC3A0 + i * 3; ++ val = mod_new[i].pllcfg1; ++ err = irs1125_write(&dev->sd, addr, val); ++ if (err < 0) ++ break; ++ } ++ if (mod_cur[i].pllcfg2 != mod_new[i].pllcfg2) { ++ addr = 0xC3A1 + i * 3; ++ val = mod_new[i].pllcfg2; ++ err = irs1125_write(&dev->sd, addr, val); ++ if (err < 0) ++ break; ++ } ++ if (mod_cur[i].pllcfg3 != mod_new[i].pllcfg3) { ++ addr = 0xC3A2 + i * 3; ++ val = mod_new[i].pllcfg3; ++ err = irs1125_write(&dev->sd, addr, val); ++ if (err < 0) ++ break; ++ } ++ if (mod_cur[i].pllcfg4 != mod_new[i].pllcfg4) { ++ addr = 0xC24C + i * 5; ++ val = mod_new[i].pllcfg4; ++ err = irs1125_write(&dev->sd, addr, val); ++ if (err < 0) ++ break; ++ } ++ if (mod_cur[i].pllcfg5 != mod_new[i].pllcfg5) { ++ addr = 0xC24D + i * 5; ++ val = mod_new[i].pllcfg5; ++ err = irs1125_write(&dev->sd, addr, val); ++ if (err < 0) ++ break; ++ } ++ if (mod_cur[i].pllcfg6 != mod_new[i].pllcfg6) { ++ addr = 0xC24E + i * 5; ++ val = mod_new[i].pllcfg6; ++ err = irs1125_write(&dev->sd, addr, val); ++ if (err < 0) ++ break; ++ } ++ if (mod_cur[i].pllcfg7 != mod_new[i].pllcfg7) { ++ addr = 0xC24F + i * 5; ++ val = mod_new[i].pllcfg7; ++ err = irs1125_write(&dev->sd, addr, val); ++ if (err < 0) ++ break; ++ } ++ if (mod_cur[i].pllcfg8 != mod_new[i].pllcfg8) { ++ addr = 0xC250 + i * 5; ++ val = mod_new[i].pllcfg8; ++ err = irs1125_write(&dev->sd, addr, val); ++ if (err < 0) ++ break; ++ } ++ } ++ break; ++ case IRS1125_CID_SEQ_CONFIG: ++ cfg_new = (struct irs1125_seq_cfg *)ctrl->p_new.p; ++ cfg_cur = (struct irs1125_seq_cfg *)ctrl->p_cur.p; ++ for (i = 0; i < IRS1125_NUM_SEQ_ENTRIES; i++) { ++ if (cfg_cur[i].exposure != cfg_new[i].exposure) { ++ addr = IRS1125_REG_DMEM_SHADOW + i * 4; ++ val = cfg_new[i].exposure; ++ err = irs1125_write(&dev->sd, addr, val); ++ if (err < 0) ++ break; ++ } ++ if (cfg_cur[i].framerate != cfg_new[i].framerate) { ++ addr = IRS1125_REG_DMEM_SHADOW + 1 + i * 4; ++ val = cfg_new[i].framerate; ++ err = irs1125_write(&dev->sd, addr, val); ++ if (err < 0) ++ break; ++ } ++ if (cfg_cur[i].ps != cfg_new[i].ps) { ++ addr = IRS1125_REG_DMEM_SHADOW + 2 + i * 4; ++ val = cfg_new[i].ps; ++ err = irs1125_write(&dev->sd, addr, val); ++ if (err < 0) ++ break; ++ } ++ if (cfg_cur[i].pll != cfg_new[i].pll) { ++ addr = IRS1125_REG_DMEM_SHADOW + 3 + i * 4; ++ val = cfg_new[i].pll; ++ err = irs1125_write(&dev->sd, addr, val); ++ if (err < 0) ++ break; ++ } ++ } ++ break; ++ case IRS1125_CID_NUM_SEQS: ++ err = irs1125_write(&dev->sd, 0xA88D, ctrl->val - 1); ++ if (err >= 0) ++ dev->num_seq = ctrl->val; ++ break; ++ case IRS1125_CID_CONTINUOUS_TRIG: ++ if (ctrl->val == 0) ++ err = irs1125_write(&dev->sd, 0xA87C, 0); ++ else ++ err = irs1125_write(&dev->sd, 0xA87C, 1); ++ break; ++ case IRS1125_CID_TRIGGER: ++ if (ctrl->val != 0) { ++ err = irs1125_write(&dev->sd, 0xA87C, 1); ++ if (err >= 0) ++ err = irs1125_write(&dev->sd, 0xA87C, 0); ++ } ++ break; ++ case IRS1125_CID_RECONFIG: ++ if (ctrl->val != 0) ++ err = irs1125_write(&dev->sd, 0xA87A, 1); ++ break; ++ case IRS1125_CID_ILLU_ON: ++ if (ctrl->val == 0) ++ err = irs1125_write(&dev->sd, 0xA892, 0x377); ++ else ++ err = irs1125_write(&dev->sd, 0xA892, 0x355); ++ break; ++ default: ++ break; ++ } ++ ++ if (err < 0) ++ dev_err(&client->dev, "Error executing control ID: %d, val %d, err %d", ++ ctrl->id, ctrl->val, err); ++ else ++ err = 0; ++ ++ return err; ++} ++ ++static const struct v4l2_ctrl_ops irs1125_ctrl_ops = { ++ .s_ctrl = irs1125_s_ctrl, ++}; ++ ++static const struct v4l2_ctrl_config irs1125_custom_ctrls[] = { ++ { ++ .ops = &irs1125_ctrl_ops, ++ .id = IRS1125_CID_NUM_SEQS, ++ .name = "Change number of sequences", ++ .type = V4L2_CTRL_TYPE_INTEGER, ++ .flags = V4L2_CTRL_FLAG_MODIFY_LAYOUT, ++ .min = 1, ++ .max = 20, ++ .step = 1, ++ .def = 5, ++ }, { ++ .ops = &irs1125_ctrl_ops, ++ .id = IRS1125_CID_MOD_PLL, ++ .name = "Reconfigure modulation PLLs", ++ .type = V4L2_CTRL_TYPE_U16, ++ .flags = V4L2_CTRL_FLAG_HAS_PAYLOAD, ++ .min = 0, ++ .max = U16_MAX, ++ .step = 1, ++ .def = 0, ++ .elem_size = sizeof(u16), ++ .dims = {sizeof(struct irs1125_mod_pll) / sizeof(u16), ++ IRS1125_NUM_MOD_PLLS} ++ }, { ++ .ops = &irs1125_ctrl_ops, ++ .id = IRS1125_CID_SAFE_RECONFIG, ++ .name = "Change exposure and pause of single seq", ++ .type = V4L2_CTRL_TYPE_U16, ++ .flags = V4L2_CTRL_FLAG_HAS_PAYLOAD, ++ .min = 0, ++ .max = U16_MAX, ++ .step = 1, ++ .def = 0, ++ .elem_size = sizeof(u16), ++ .dims = {sizeof(struct irs1125_illu) / sizeof(u16), ++ IRS1125_NUM_SEQ_ENTRIES} ++ }, { ++ .ops = &irs1125_ctrl_ops, ++ .id = IRS1125_CID_SEQ_CONFIG, ++ .name = "Change sequence settings", ++ .type = V4L2_CTRL_TYPE_U16, ++ .flags = V4L2_CTRL_FLAG_HAS_PAYLOAD, ++ .min = 0, ++ .max = U16_MAX, ++ .step = 1, ++ .def = 0, ++ .elem_size = sizeof(u16), ++ .dims = {sizeof(struct irs1125_seq_cfg) / sizeof(u16), ++ IRS1125_NUM_SEQ_ENTRIES} ++ }, { ++ .ops = &irs1125_ctrl_ops, ++ .id = IRS1125_CID_CONTINUOUS_TRIG, ++ .name = "Enable/disable continuous trigger", ++ .type = V4L2_CTRL_TYPE_BOOLEAN, ++ .flags = V4L2_CTRL_FLAG_EXECUTE_ON_WRITE, ++ .min = 0, ++ .max = 1, ++ .step = 1, ++ .def = 0 ++ }, { ++ .ops = &irs1125_ctrl_ops, ++ .id = IRS1125_CID_TRIGGER, ++ .name = "Capture a single sequence", ++ .type = V4L2_CTRL_TYPE_BOOLEAN, ++ .flags = V4L2_CTRL_FLAG_EXECUTE_ON_WRITE, ++ .min = 0, ++ .max = 1, ++ .step = 1, ++ .def = 0 ++ }, { ++ .ops = &irs1125_ctrl_ops, ++ .id = IRS1125_CID_RECONFIG, ++ .name = "Trigger imager reconfiguration", ++ .type = V4L2_CTRL_TYPE_BOOLEAN, ++ .flags = V4L2_CTRL_FLAG_EXECUTE_ON_WRITE, ++ .min = 0, ++ .max = 1, ++ .step = 1, ++ .def = 0 ++ }, { ++ .ops = &irs1125_ctrl_ops, ++ .id = IRS1125_CID_ILLU_ON, ++ .name = "Turn illu on or off", ++ .type = V4L2_CTRL_TYPE_BOOLEAN, ++ .flags = V4L2_CTRL_FLAG_EXECUTE_ON_WRITE, ++ .min = 0, ++ .max = 1, ++ .step = 1, ++ .def = 1 ++ }, { ++ .ops = &irs1125_ctrl_ops, ++ .id = IRS1125_CID_IDENT0, ++ .name = "Get ident 0 information", ++ .type = V4L2_CTRL_TYPE_INTEGER, ++ .flags = V4L2_CTRL_FLAG_READ_ONLY, ++ .min = S32_MIN, ++ .max = S32_MAX, ++ .step = 1, ++ .def = 0 ++ }, { ++ .ops = &irs1125_ctrl_ops, ++ .id = IRS1125_CID_IDENT1, ++ .name = "Get ident 1 information", ++ .type = V4L2_CTRL_TYPE_INTEGER, ++ .flags = V4L2_CTRL_FLAG_READ_ONLY, ++ .min = S32_MIN, ++ .max = S32_MAX, ++ .step = 1, ++ .def = 0 ++ }, { ++ .ops = &irs1125_ctrl_ops, ++ .id = IRS1125_CID_IDENT2, ++ .name = "Get ident 2 information", ++ .type = V4L2_CTRL_TYPE_INTEGER, ++ .flags = V4L2_CTRL_FLAG_READ_ONLY, ++ .min = S32_MIN, ++ .max = S32_MAX, ++ .step = 1, ++ .def = 0 ++ } ++}; ++ ++static int irs1125_detect(struct v4l2_subdev *sd) ++{ ++ u16 read; ++ int ret; ++ struct i2c_client *client = v4l2_get_subdevdata(sd); ++ ++ ret = irs1125_read(sd, IRS1125_REG_DESIGN_STEP, &read); ++ if (ret < 0) { ++ dev_err(&client->dev, "error reading from i2c\n"); ++ return ret; ++ } ++ ++ if (read != IRS1125_DESIGN_STEP_EXPECTED) { ++ dev_err(&client->dev, "Design step expected 0x%x got 0x%x", ++ IRS1125_DESIGN_STEP_EXPECTED, read); ++ return -ENODEV; ++ } ++ ++ return 0; ++} ++ ++static int irs1125_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) ++{ ++ struct v4l2_mbus_framefmt *format = ++ v4l2_subdev_get_try_format(sd, fh->pad, 0); ++ ++ format->code = MEDIA_BUS_FMT_Y12_1X12; ++ format->width = IRS1125_WINDOW_WIDTH_DEF; ++ format->height = IRS1125_WINDOW_HEIGHT_DEF; ++ format->field = V4L2_FIELD_NONE; ++ format->colorspace = V4L2_COLORSPACE_RAW; ++ ++ return 0; ++} ++ ++static const struct v4l2_subdev_internal_ops irs1125_subdev_internal_ops = { ++ .open = irs1125_open, ++}; ++ ++static int irs1125_ctrls_init(struct irs1125 *sensor, struct device *dev) ++{ ++ struct v4l2_ctrl *ctrl; ++ int err, i; ++ struct v4l2_ctrl_handler *hdl; ++ ++ hdl = &sensor->ctrl_handler; ++ v4l2_ctrl_handler_init(hdl, ARRAY_SIZE(irs1125_custom_ctrls)); ++ ++ for (i = 0; i < ARRAY_SIZE(irs1125_custom_ctrls); i++) { ++ ctrl = v4l2_ctrl_new_custom(hdl, &irs1125_custom_ctrls[i], ++ NULL); ++ if (!ctrl) ++ dev_err(dev, "Failed to init custom control %s\n", ++ irs1125_custom_ctrls[i].name); ++ else if (irs1125_custom_ctrls[i].id == IRS1125_CID_NUM_SEQS) ++ sensor->ctrl_numseq = ctrl; ++ else if (irs1125_custom_ctrls[i].id == IRS1125_CID_MOD_PLL) ++ sensor->ctrl_modplls = ctrl; ++ } ++ ++ if (hdl->error) { ++ dev_err(dev, "Error %d adding controls\n", hdl->error); ++ err = hdl->error; ++ goto error_ctrls; ++ } ++ ++ sensor->sd.ctrl_handler = hdl; ++ return 0; ++ ++error_ctrls: ++ v4l2_ctrl_handler_free(&sensor->ctrl_handler); ++ return -err; ++} ++ ++static int irs1125_ident_setup(struct irs1125 *sensor, struct device *dev) ++{ ++ int ret; ++ struct v4l2_ctrl *ctrl; ++ struct v4l2_subdev *sd; ++ u16 read; ++ ++ sd = &sensor->sd; ++ ++ ctrl = v4l2_ctrl_find(&sensor->ctrl_handler, IRS1125_CID_IDENT0); ++ if (!ctrl) { ++ dev_err(dev, "could not find device ctrl.\n"); ++ return -EINVAL; ++ } ++ ++ ret = irs1125_read(sd, IRS1125_REG_EFUSEVAL2, &read); ++ if (ret < 0) { ++ dev_err(dev, "error reading from i2c\n"); ++ return -EIO; ++ } ++ ++ v4l2_ctrl_s_ctrl(ctrl, read); ++ ++ ctrl = v4l2_ctrl_find(&sensor->ctrl_handler, IRS1125_CID_IDENT1); ++ if (!ctrl) { ++ dev_err(dev, "could not find device ctrl.\n"); ++ return -EINVAL; ++ } ++ ++ ret = irs1125_read(sd, IRS1125_REG_EFUSEVAL3, &read); ++ if (ret < 0) { ++ dev_err(dev, "error reading from i2c\n"); ++ return -EIO; ++ } ++ ++ v4l2_ctrl_s_ctrl(ctrl, read); ++ ++ ctrl = v4l2_ctrl_find(&sensor->ctrl_handler, IRS1125_CID_IDENT2); ++ if (!ctrl) { ++ dev_err(dev, "could not find device ctrl.\n"); ++ return -EINVAL; ++ } ++ ++ ret = irs1125_read(sd, IRS1125_REG_EFUSEVAL4, &read); ++ if (ret < 0) { ++ dev_err(dev, "error reading from i2c\n"); ++ return -EIO; ++ } ++ v4l2_ctrl_s_ctrl(ctrl, read & 0xFFFC); ++ ++ return 0; ++} ++ ++static int irs1125_probe(struct i2c_client *client, ++ const struct i2c_device_id *id) ++{ ++ struct device *dev = &client->dev; ++ struct irs1125 *sensor; ++ int ret; ++ struct fwnode_handle *endpoint; ++ u32 xclk_freq; ++ int gpio_num; ++ ++ sensor = devm_kzalloc(dev, sizeof(*sensor), GFP_KERNEL); ++ if (!sensor) ++ return -ENOMEM; ++ ++ v4l2_i2c_subdev_init(&sensor->sd, client, &irs1125_subdev_ops); ++ ++ /* Get CSI2 bus config */ ++ endpoint = fwnode_graph_get_next_endpoint(dev_fwnode(dev), ++ NULL); ++ if (!endpoint) { ++ dev_err(dev, "endpoint node not found\n"); ++ return -EINVAL; ++ } ++ ++ ret = v4l2_fwnode_endpoint_parse(endpoint, &sensor->ep); ++ fwnode_handle_put(endpoint); ++ if (ret) { ++ dev_err(dev, "Could not parse endpoint\n"); ++ return ret; ++ } ++ ++ /* get system clock (xclk) */ ++ sensor->xclk = devm_clk_get(dev, NULL); ++ if (IS_ERR(sensor->xclk)) { ++ dev_err(dev, "could not get xclk"); ++ return PTR_ERR(sensor->xclk); ++ } ++ ++ xclk_freq = clk_get_rate(sensor->xclk); ++ if (xclk_freq != 26000000) { ++ dev_err(dev, "Unsupported clock frequency: %u\n", xclk_freq); ++ return -EINVAL; ++ } ++ ++ sensor->num_seq = 5; ++ ++ /* Request the power down GPIO */ ++ sensor->reset = devm_gpiod_get(&client->dev, "pwdn", ++ GPIOD_OUT_LOW); ++ ++ if (IS_ERR(sensor->reset)) { ++ dev_err(dev, "could not get reset"); ++ return PTR_ERR(sensor->reset); ++ } ++ ++ gpio_num = desc_to_gpio(sensor->reset); ++ ++ mutex_init(&sensor->lock); ++ ++ ret = irs1125_ctrls_init(sensor, dev); ++ if (ret < 0) ++ goto mutex_remove; ++ ++ sensor->sd.internal_ops = &irs1125_subdev_internal_ops; ++ sensor->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; ++ sensor->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR; ++ sensor->pad.flags = MEDIA_PAD_FL_SOURCE; ++ ret = media_entity_pads_init(&sensor->sd.entity, 1, &sensor->pad); ++ if (ret < 0) ++ goto mutex_remove; ++ ++ gpiod_set_value_cansleep(sensor->reset, 1); ++ msleep(RESET_ACTIVE_DELAY_MS); ++ ++ ret = irs1125_detect(&sensor->sd); ++ if (ret < 0) ++ goto error; ++ ++ ret = irs1125_ident_setup(sensor, dev); ++ if (ret < 0) ++ goto error; ++ ++ gpiod_set_value_cansleep(sensor->reset, 0); ++ ++ ret = v4l2_async_register_subdev(&sensor->sd); ++ if (ret < 0) ++ goto error; ++ ++ dev_dbg(dev, "Infineon IRS1125 camera driver probed\n"); ++ ++ return 0; ++ ++error: ++ media_entity_cleanup(&sensor->sd.entity); ++mutex_remove: ++ mutex_destroy(&sensor->lock); ++ return ret; ++} ++ ++static int irs1125_remove(struct i2c_client *client) ++{ ++ struct v4l2_subdev *sd = i2c_get_clientdata(client); ++ struct irs1125 *irs1125 = to_state(sd); ++ ++ v4l2_async_unregister_subdev(&irs1125->sd); ++ media_entity_cleanup(&irs1125->sd.entity); ++ v4l2_device_unregister_subdev(sd); ++ mutex_destroy(&irs1125->lock); ++ v4l2_ctrl_handler_free(&irs1125->ctrl_handler); ++ ++ return 0; ++} ++ ++#if IS_ENABLED(CONFIG_OF) ++static const struct of_device_id irs1125_of_match[] = { ++ { .compatible = "infineon,irs1125" }, ++ { /* sentinel */ }, ++}; ++MODULE_DEVICE_TABLE(of, irs1125_of_match); ++#endif ++ ++static struct i2c_driver irs1125_driver = { ++ .driver = { ++ .of_match_table = of_match_ptr(irs1125_of_match), ++ .name = SENSOR_NAME, ++ }, ++ .probe = irs1125_probe, ++ .remove = irs1125_remove, ++}; ++ ++module_i2c_driver(irs1125_driver); ++ ++MODULE_AUTHOR("Markus Proeller "); ++MODULE_DESCRIPTION("Infineon irs1125 sensor driver"); ++MODULE_LICENSE("GPL v2"); ++ +--- /dev/null ++++ b/drivers/media/i2c/irs1125.h +@@ -0,0 +1,61 @@ ++/* SPDX-License-Identifier: GPL-2.0 */ ++/* ++ * A V4L2 driver for Infineon IRS1125 TOF cameras. ++ * Copyright (C) 2018, pieye GmbH ++ * ++ * Based on V4L2 OmniVision OV5647 Image Sensor driver ++ * Copyright (C) 2016 Ramiro Oliveira ++ * ++ * DT / fwnode changes, and GPIO control taken from ov5640.c ++ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved. ++ * Copyright (C) 2014-2017 Mentor Graphics Inc. ++ * ++ */ ++ ++#ifndef IRS1125_H ++#define IRS1125_H ++ ++#include ++#include ++ ++#define IRS1125_NUM_SEQ_ENTRIES 20 ++#define IRS1125_NUM_MOD_PLLS 4 ++ ++#define IRS1125_CID_CUSTOM_BASE (V4L2_CID_USER_BASE | 0xf000) ++#define IRS1125_CID_SAFE_RECONFIG (IRS1125_CID_CUSTOM_BASE + 0) ++#define IRS1125_CID_CONTINUOUS_TRIG (IRS1125_CID_CUSTOM_BASE + 1) ++#define IRS1125_CID_TRIGGER (IRS1125_CID_CUSTOM_BASE + 2) ++#define IRS1125_CID_RECONFIG (IRS1125_CID_CUSTOM_BASE + 3) ++#define IRS1125_CID_ILLU_ON (IRS1125_CID_CUSTOM_BASE + 4) ++#define IRS1125_CID_NUM_SEQS (IRS1125_CID_CUSTOM_BASE + 5) ++#define IRS1125_CID_MOD_PLL (IRS1125_CID_CUSTOM_BASE + 6) ++#define IRS1125_CID_SEQ_CONFIG (IRS1125_CID_CUSTOM_BASE + 7) ++#define IRS1125_CID_IDENT0 (IRS1125_CID_CUSTOM_BASE + 8) ++#define IRS1125_CID_IDENT1 (IRS1125_CID_CUSTOM_BASE + 9) ++#define IRS1125_CID_IDENT2 (IRS1125_CID_CUSTOM_BASE + 10) ++ ++struct irs1125_seq_cfg { ++ __u16 exposure; ++ __u16 framerate; ++ __u16 ps; ++ __u16 pll; ++}; ++ ++struct irs1125_illu { ++ __u16 exposure; ++ __u16 framerate; ++}; ++ ++struct irs1125_mod_pll { ++ __u16 pllcfg1; ++ __u16 pllcfg2; ++ __u16 pllcfg3; ++ __u16 pllcfg4; ++ __u16 pllcfg5; ++ __u16 pllcfg6; ++ __u16 pllcfg7; ++ __u16 pllcfg8; ++}; ++ ++#endif /* IRS1125 */ ++ diff --git a/target/linux/brcm2708/patches-4.19/950-0741-dtoverlays-Add-an-overlay-for-the-Infineon-IRS1125.patch b/target/linux/brcm2708/patches-4.19/950-0741-dtoverlays-Add-an-overlay-for-the-Infineon-IRS1125.patch new file mode 100644 index 00000000000..1202d10d312 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0741-dtoverlays-Add-an-overlay-for-the-Infineon-IRS1125.patch @@ -0,0 +1,149 @@ +From 89af5d7df7f548744bd675d96295c0f45e24b31f Mon Sep 17 00:00:00 2001 +From: Markus Proeller +Date: Thu, 10 Oct 2019 19:13:02 +0200 +Subject: [PATCH] dtoverlays: Add an overlay for the Infineon IRS1125 + +The Infineon IRS1125 is a CSI2 time of flight depth sensor +which has a suitable V4L2 subdevice driver. + +Add an overlay for configuring it. + +Signed-off-by: Markus Proeller +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 12 +++ + .../arm/boot/dts/overlays/irs1125-overlay.dts | 97 +++++++++++++++++++ + 3 files changed, 110 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/irs1125-overlay.dts + +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -83,6 +83,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + iqaudio-dac.dtbo \ + iqaudio-dacplus.dtbo \ + iqaudio-digi-wm8804-audio.dtbo \ ++ irs1125.dtbo \ + jedec-spi-nor.dtbo \ + justboom-dac.dtbo \ + justboom-digi.dtbo \ +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1347,6 +1347,18 @@ Params: card_name Override + dai stream name. + + ++Name: irs1125 ++Info: Infineon irs1125 TOF camera module. ++ Uses Unicam 1, which is the standard camera connector on most Pi ++ variants. ++Load: dtoverlay=irs1125,= ++Params: i2c_pins_0_1 Use pins 0&1 for the I2C instead of 44&45. ++ Useful on Compute Modules. ++ ++ i2c_pins_28_29 Use pins 28&29 for the I2C instead of 44&45. ++ This is required for Pi B+, 2, 0, and 0W. ++ ++ + Name: jedec-spi-nor + Info: Adds support for JEDEC-compliant SPI NOR flash devices. (Note: The + "jedec,spi-nor" kernel driver was formerly known as "m25p80".) +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/irs1125-overlay.dts +@@ -0,0 +1,97 @@ ++// SPDX-License-Identifier: GPL-2.0-only ++// Definitions for IRS1125 camera module on VC I2C bus ++/dts-v1/; ++/plugin/; ++ ++/{ ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ target = <&i2c_vc>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ irs1125: irs1125@3D { ++ compatible = "infineon,irs1125"; ++ reg = <0x3D>; ++ status = "okay"; ++ ++ pwdn-gpios = <&gpio 5 0>; ++ clocks = <&irs1125_clk>; ++ ++ irs1125_clk: camera-clk { ++ compatible = "fixed-clock"; ++ #clock-cells = <0>; ++ clock-frequency = <26000000>; ++ }; ++ ++ port { ++ irs1125_0: endpoint { ++ remote-endpoint = <&csi1_ep>; ++ clock-lanes = <0>; ++ data-lanes = <1 2>; ++ clock-noncontinuous; ++ link-frequencies = ++ /bits/ 64 <297000000>; ++ }; ++ }; ++ }; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&csi1>; ++ __overlay__ { ++ status = "okay"; ++ ++ port { ++ csi1_ep: endpoint { ++ remote-endpoint = <&irs1125_0>; ++ }; ++ }; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&i2c0_pins>; ++ __dormant__ { ++ brcm,pins = <28 29>; ++ brcm,function = <4>; /* alt0 */ ++ }; ++ }; ++ fragment@3 { ++ target = <&i2c0_pins>; ++ __overlay__ { ++ brcm,pins = <44 45>; ++ brcm,function = <5>; /* alt1 */ ++ }; ++ }; ++ fragment@4 { ++ target = <&i2c0_pins>; ++ __dormant__ { ++ brcm,pins = <0 1>; ++ brcm,function = <4>; /* alt0 */ ++ }; ++ }; ++ fragment@5 { ++ target = <&i2c_vc>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@6 { ++ target-path="/__overrides__"; ++ __overlay__ { ++ cam0-pwdn-ctrl = <&irs1125>,"pwdn-gpios:0"; ++ cam0-pwdn = <&irs1125>,"pwdn-gpios:4"; ++ }; ++ }; ++ ++ __overrides__ { ++ i2c_pins_0_1 = <0>,"-2-3+4"; ++ i2c_pins_28_29 = <0>,"+2-3-4"; ++ }; ++}; diff --git a/target/linux/brcm2708/patches-4.19/950-0742-rpi-wm8804-soundcard-Fixed-MCLKDIV-for-Allo-Digione.patch b/target/linux/brcm2708/patches-4.19/950-0742-rpi-wm8804-soundcard-Fixed-MCLKDIV-for-Allo-Digione.patch new file mode 100644 index 00000000000..952e26664ce --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0742-rpi-wm8804-soundcard-Fixed-MCLKDIV-for-Allo-Digione.patch @@ -0,0 +1,42 @@ +From 09ad53f0267e4b5433c27c77b3945d584ac0a6ba Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 22 Oct 2019 08:47:29 +0100 +Subject: [PATCH] rpi-wm8804-soundcard: Fixed MCLKDIV for Allo Digione + +The Allo Digione board wants a fixed MCLKDIV of 256. + +See: https://github.com/raspberrypi/linux/issues/3296 + +Signed-off-by: Phil Elwell +--- + sound/soc/bcm/rpi-wm8804-soundcard.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +--- a/sound/soc/bcm/rpi-wm8804-soundcard.c ++++ b/sound/soc/bcm/rpi-wm8804-soundcard.c +@@ -66,6 +66,11 @@ static struct gpio_desc *snd_clk44gpio; + static struct gpio_desc *snd_clk48gpio; + static int wm8804_samplerate = 0; + ++/* Forward declarations */ ++static struct snd_soc_dai_link snd_allo_digione_dai[]; ++static struct snd_soc_card snd_rpi_wm8804; ++ ++ + #define CLK_44EN_RATE 22579200UL + #define CLK_48EN_RATE 24576000UL + +@@ -90,11 +95,10 @@ static unsigned int snd_rpi_wm8804_enabl + static void snd_rpi_wm8804_clk_cfg(unsigned int samplerate, + struct wm8804_clk_cfg *clk_cfg) + { +- clk_cfg->mclk_freq = 0; +- clk_cfg->mclk_div = 1; + clk_cfg->sysclk_freq = 27000000; + +- if (samplerate <= 96000) { ++ if (samplerate <= 96000 || ++ snd_rpi_wm8804.dai_link == snd_allo_digione_dai) { + clk_cfg->mclk_freq = samplerate * 256; + clk_cfg->mclk_div = WM8804_MCLKDIV_256FS; + } else { diff --git a/target/linux/brcm2708/patches-4.19/950-0743-dts-bcm2838-Disable-DWC-OTG-block-by-default.patch b/target/linux/brcm2708/patches-4.19/950-0743-dts-bcm2838-Disable-DWC-OTG-block-by-default.patch new file mode 100644 index 00000000000..83cd3397e94 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0743-dts-bcm2838-Disable-DWC-OTG-block-by-default.patch @@ -0,0 +1,23 @@ +From 2e3db17d59143bfaf15423feb7eed68893e04f66 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 24 Oct 2019 14:31:00 +0100 +Subject: [PATCH] dts: bcm2838: Disable DWC OTG block by default + +Turning off the OTG USB block saves power. Since it requires the use of +the dwc2 overlay to make use of it, we can disable it by default. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2838.dtsi | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/boot/dts/bcm2838.dtsi ++++ b/arch/arm/boot/dts/bcm2838.dtsi +@@ -647,6 +647,7 @@ + + &usb { + interrupts = ; ++ status = "disabled"; + }; + + &hdmi { diff --git a/target/linux/brcm2708/patches-4.19/950-0744-staging-bcm2835-codec-Add-support-for-ENUM_FRAMESIZE.patch b/target/linux/brcm2708/patches-4.19/950-0744-staging-bcm2835-codec-Add-support-for-ENUM_FRAMESIZE.patch new file mode 100644 index 00000000000..9c9a0bf6bbc --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0744-staging-bcm2835-codec-Add-support-for-ENUM_FRAMESIZE.patch @@ -0,0 +1,98 @@ +From 9894906ad424f266853b61a6996b2da8b119c6e6 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 13 Sep 2019 17:19:33 +0100 +Subject: [PATCH] staging:bcm2835-codec: Add support for + ENUM_FRAMESIZES + +Required for compliance testing for the encoder. + +Signed-off-by: Dave Stevenson +--- + .../bcm2835-codec/bcm2835-v4l2-codec.c | 48 +++++++++++++++++-- + 1 file changed, 44 insertions(+), 4 deletions(-) + +--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c ++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +@@ -496,9 +496,10 @@ struct bcm2835_codec_fmt *get_default_fo + return &dev->supported_fmts[capture ? 1 : 0].list[0]; + } + +-static struct bcm2835_codec_fmt *find_format(struct v4l2_format *f, +- struct bcm2835_codec_dev *dev, +- bool capture) ++static ++struct bcm2835_codec_fmt *find_format_pix_fmt(u32 pix_fmt, ++ struct bcm2835_codec_dev *dev, ++ bool capture) + { + struct bcm2835_codec_fmt *fmt; + unsigned int k; +@@ -507,7 +508,7 @@ static struct bcm2835_codec_fmt *find_fo + + for (k = 0; k < fmts->num_entries; k++) { + fmt = &fmts->list[k]; +- if (fmt->fourcc == f->fmt.pix_mp.pixelformat) ++ if (fmt->fourcc == pix_fmt) + break; + } + if (k == fmts->num_entries) +@@ -516,6 +517,14 @@ static struct bcm2835_codec_fmt *find_fo + return &fmts->list[k]; + } + ++static inline ++struct bcm2835_codec_fmt *find_format(struct v4l2_format *f, ++ struct bcm2835_codec_dev *dev, ++ bool capture) ++{ ++ return find_format_pix_fmt(f->fmt.pix_mp.pixelformat, dev, capture); ++} ++ + static inline struct bcm2835_codec_ctx *file2ctx(struct file *file) + { + return container_of(file->private_data, struct bcm2835_codec_ctx, fh); +@@ -1792,6 +1801,36 @@ static int vidioc_encoder_cmd(struct fil + return 0; + } + ++static int vidioc_enum_framesizes(struct file *file, void *fh, ++ struct v4l2_frmsizeenum *fsize) ++{ ++ struct bcm2835_codec_fmt *fmt; ++ ++ fmt = find_format_pix_fmt(fsize->pixel_format, file2ctx(file)->dev, ++ true); ++ if (!fmt) ++ fmt = find_format_pix_fmt(fsize->pixel_format, ++ file2ctx(file)->dev, ++ false); ++ ++ if (!fmt) ++ return -EINVAL; ++ ++ if (fsize->index) ++ return -EINVAL; ++ ++ fsize->type = V4L2_FRMSIZE_TYPE_STEPWISE; ++ ++ fsize->stepwise.min_width = MIN_W; ++ fsize->stepwise.max_width = MAX_W; ++ fsize->stepwise.step_width = 1; ++ fsize->stepwise.min_height = MIN_H; ++ fsize->stepwise.max_height = MAX_H; ++ fsize->stepwise.step_height = 1; ++ ++ return 0; ++} ++ + static const struct v4l2_ioctl_ops bcm2835_codec_ioctl_ops = { + .vidioc_querycap = vidioc_querycap, + +@@ -1829,6 +1868,7 @@ static const struct v4l2_ioctl_ops bcm28 + .vidioc_try_decoder_cmd = vidioc_try_decoder_cmd, + .vidioc_encoder_cmd = vidioc_encoder_cmd, + .vidioc_try_encoder_cmd = vidioc_try_encoder_cmd, ++ .vidioc_enum_framesizes = vidioc_enum_framesizes, + }; + + static int bcm2835_codec_set_ctrls(struct bcm2835_codec_ctx *ctx) diff --git a/target/linux/brcm2708/patches-4.19/950-0745-staging-bcm2835-codec-Correct-buffer-type-check-on-G.patch b/target/linux/brcm2708/patches-4.19/950-0745-staging-bcm2835-codec-Correct-buffer-type-check-on-G.patch new file mode 100644 index 00000000000..1049a4d12d3 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0745-staging-bcm2835-codec-Correct-buffer-type-check-on-G.patch @@ -0,0 +1,25 @@ +From 9783756bf18033f321161393814dc1dd99c1704a Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 13 Sep 2019 17:22:08 +0100 +Subject: [PATCH] staging: bcm2835-codec: Correct buffer type check on + G_PARM + +The output queue buffer type is now OUTPUT_MPLANE. + +Fixes: 5e484a3 staging: bcm2835-codec: switch to multi-planar API +Signed-off-by: Dave Stevenson +--- + .../staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c ++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +@@ -1438,7 +1438,7 @@ static int vidioc_g_parm(struct file *fi + { + struct bcm2835_codec_ctx *ctx = file2ctx(file); + +- if (parm->type != V4L2_BUF_TYPE_VIDEO_OUTPUT) ++ if (parm->type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) + return -EINVAL; + + parm->parm.output.capability = V4L2_CAP_TIMEPERFRAME; diff --git a/target/linux/brcm2708/patches-4.19/950-0746-staging-bcm2835-codec-Set-default-and-error-check-ti.patch b/target/linux/brcm2708/patches-4.19/950-0746-staging-bcm2835-codec-Set-default-and-error-check-ti.patch new file mode 100644 index 00000000000..896149fb1e1 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0746-staging-bcm2835-codec-Set-default-and-error-check-ti.patch @@ -0,0 +1,37 @@ +From 4d6c40ebfe10dd2fdc64bd7607e51275d5524e47 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Fri, 13 Sep 2019 17:23:26 +0100 +Subject: [PATCH] staging: bcm2835-codec: Set default and error check + timeperframe + +G_PARM default was invalid as 0/0, and the driver didn't check +the value set in S_PARM wasn't 0/0. + +Signed-off-by: Dave Stevenson +--- + .../vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c ++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +@@ -1423,6 +1423,10 @@ static int vidioc_s_parm(struct file *fi + if (parm->type != V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) + return -EINVAL; + ++ if (!parm->parm.output.timeperframe.denominator || ++ !parm->parm.output.timeperframe.numerator) ++ return -EINVAL; ++ + ctx->framerate_num = + parm->parm.output.timeperframe.denominator; + ctx->framerate_denom = +@@ -2390,6 +2394,9 @@ static int bcm2835_codec_open(struct fil + ctx->colorspace = V4L2_COLORSPACE_REC709; + ctx->bitrate = 10 * 1000 * 1000; + ++ ctx->framerate_num = 30; ++ ctx->framerate_denom = 1; ++ + /* Initialise V4L2 contexts */ + v4l2_fh_init(&ctx->fh, video_devdata(file)); + file->private_data = &ctx->fh; diff --git a/target/linux/brcm2708/patches-4.19/950-0747-staging-bcm2835-codec-Fix-imbalance-in-dma_buf_get-d.patch b/target/linux/brcm2708/patches-4.19/950-0747-staging-bcm2835-codec-Fix-imbalance-in-dma_buf_get-d.patch new file mode 100644 index 00000000000..20550d4cb1a --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0747-staging-bcm2835-codec-Fix-imbalance-in-dma_buf_get-d.patch @@ -0,0 +1,30 @@ +From 4542b5d7b4e00b11dd37d93986b624c58b198765 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 7 Oct 2019 14:02:57 +0100 +Subject: [PATCH] staging: bcm2835-codec: Fix imbalance in + dma_buf_get/dma_buf_put + +When represented with a dmabuf buffer that had previously been +imported, there was a call to dma_buf_get without a matching +dma_buf_put. This left dmabufs in limbo after all users had +supposedly released them. + +Signed-off-by: Dave Stevenson +--- + .../staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c ++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +@@ -2112,6 +2112,11 @@ static int bcm2835_codec_buf_prepare(str + } + + buf->mmal.dma_buf = dma_buf; ++ } else { ++ /* We already have a reference count on the dmabuf, so ++ * release the one we acquired above. ++ */ ++ dma_buf_put(dma_buf); + } + ret = 0; + break; diff --git a/target/linux/brcm2708/patches-4.19/950-0748-drm-vc4-Added-calls-for-firmware-display-blank-unbla.patch b/target/linux/brcm2708/patches-4.19/950-0748-drm-vc4-Added-calls-for-firmware-display-blank-unbla.patch new file mode 100644 index 00000000000..fbfcd747cd1 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0748-drm-vc4-Added-calls-for-firmware-display-blank-unbla.patch @@ -0,0 +1,87 @@ +From ebb8a4e93e242311d319098ea56e4ef4d92c4d19 Mon Sep 17 00:00:00 2001 +From: James Hughes +Date: Wed, 16 Oct 2019 14:49:23 +0100 +Subject: [PATCH] drm:vc4 Added calls for firmware display + blank/unblank + +Requires new display power mailbox call to be present. + +Signed-off-by: James Hughes +--- + drivers/gpu/drm/vc4/vc4_firmware_kms.c | 25 ++++++++++++++++++++++ + include/soc/bcm2835/raspberrypi-firmware.h | 2 +- + 2 files changed, 26 insertions(+), 1 deletion(-) + +--- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +@@ -91,6 +91,12 @@ struct mailbox_blank_display { + u32 blank; + }; + ++struct mailbox_display_pwr { ++ struct rpi_firmware_property_tag_header tag1; ++ u32 display; ++ u32 state; ++}; ++ + struct mailbox_get_edid { + struct rpi_firmware_property_tag_header tag1; + u32 block; +@@ -272,6 +278,7 @@ struct vc4_fkms_encoder { + struct drm_encoder base; + bool hdmi_monitor; + bool rgb_range_selectable; ++ int display_num; + }; + + static inline struct vc4_fkms_encoder * +@@ -1613,13 +1620,29 @@ static const struct drm_encoder_funcs vc + .destroy = vc4_fkms_encoder_destroy, + }; + ++static void vc4_fkms_display_power(struct drm_encoder *encoder, bool power) ++{ ++ struct vc4_fkms_encoder *vc4_encoder = to_vc4_fkms_encoder(encoder); ++ struct vc4_dev *vc4 = to_vc4_dev(encoder->dev); ++ ++ struct mailbox_display_pwr pwr = { ++ .tag1 = {RPI_FIRMWARE_SET_DISPLAY_POWER, 8, 0, }, ++ .display = vc4_encoder->display_num, ++ .state = power ? 1 : 0, ++ }; ++ ++ rpi_firmware_property_list(vc4->firmware, &pwr, sizeof(pwr)); ++} ++ + static void vc4_fkms_encoder_enable(struct drm_encoder *encoder) + { ++ vc4_fkms_display_power(encoder, true); + DRM_DEBUG_KMS("Encoder_enable\n"); + } + + static void vc4_fkms_encoder_disable(struct drm_encoder *encoder) + { ++ vc4_fkms_display_power(encoder, false); + DRM_DEBUG_KMS("Encoder_disable\n"); + } + +@@ -1695,6 +1718,8 @@ static int vc4_fkms_create_screen(struct + if (!vc4_encoder) + return -ENOMEM; + vc4_crtc->encoder = &vc4_encoder->base; ++ ++ vc4_encoder->display_num = display_ref; + vc4_encoder->base.possible_crtcs |= drm_crtc_mask(crtc) ; + + drm_encoder_init(drm, &vc4_encoder->base, &vc4_fkms_encoder_funcs, +--- a/include/soc/bcm2835/raspberrypi-firmware.h ++++ b/include/soc/bcm2835/raspberrypi-firmware.h +@@ -155,7 +155,7 @@ enum rpi_firmware_property_tag { + RPI_FIRMWARE_GET_DISPLAY_TIMING = 0x00040017, + RPI_FIRMWARE_SET_TIMING = 0x00048017, + RPI_FIRMWARE_GET_DISPLAY_CFG = 0x00040018, +- ++ RPI_FIRMWARE_SET_DISPLAY_POWER = 0x00048019, + RPI_FIRMWARE_GET_COMMAND_LINE = 0x00050001, + RPI_FIRMWARE_GET_DMA_CHANNELS = 0x00060001, + }; diff --git a/target/linux/brcm2708/patches-4.19/950-0749-rpi-poe-fan-fix-def_pwm1-writes.patch b/target/linux/brcm2708/patches-4.19/950-0749-rpi-poe-fan-fix-def_pwm1-writes.patch new file mode 100644 index 00000000000..bf5975edefd --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0749-rpi-poe-fan-fix-def_pwm1-writes.patch @@ -0,0 +1,21 @@ +From 633c64173636b2f6acebfddb3d2b69c92bbbcd07 Mon Sep 17 00:00:00 2001 +From: Serge Schneider +Date: Thu, 31 Oct 2019 13:37:16 +0000 +Subject: [PATCH] rpi-poe-fan: fix def_pwm1 writes + +Signed-off-by: Serge Schneider +--- + drivers/hwmon/rpi-poe-fan.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/hwmon/rpi-poe-fan.c ++++ b/drivers/hwmon/rpi-poe-fan.c +@@ -110,7 +110,7 @@ static int __set_def_pwm(struct rpi_poe + if (ctx->def_pwm_value == def_pwm) + goto exit_set_def_pwm_err; + +- ret = write_reg(ctx->fw, POE_CUR_PWM, &def_pwm); ++ ret = write_reg(ctx->fw, POE_DEF_PWM, &def_pwm); + if (!ret) + ctx->def_pwm_value = def_pwm; + exit_set_def_pwm_err: diff --git a/target/linux/brcm2708/patches-4.19/950-0750-net-phy-bcm54xx-Encode-link-speed-and-activity-into-.patch b/target/linux/brcm2708/patches-4.19/950-0750-net-phy-bcm54xx-Encode-link-speed-and-activity-into-.patch new file mode 100644 index 00000000000..9a5e29c2082 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0750-net-phy-bcm54xx-Encode-link-speed-and-activity-into-.patch @@ -0,0 +1,67 @@ +From b1e290ec968186530ec59479adfba89d2cfe21c8 Mon Sep 17 00:00:00 2001 +From: Vladimir Oltean +Date: Sun, 24 Mar 2019 00:18:46 +0200 +Subject: [PATCH] net: phy: bcm54xx: Encode link speed and activity + into LEDs + +Previously the green and amber LEDs on this quad PHY were solid, to +indicate an encoding of the link speed (10/100/1000). + +This keeps the LEDs always on just as before, but now they flash on +Rx/Tx activity. + +Signed-off-by: Vladimir Oltean +Reviewed-by: Florian Fainelli +Signed-off-by: David S. Miller +--- + drivers/net/phy/broadcom.c | 13 +++++++++++++ + include/linux/brcmphy.h | 16 ++++++++++++++++ + 2 files changed, 29 insertions(+) + +--- a/drivers/net/phy/broadcom.c ++++ b/drivers/net/phy/broadcom.c +@@ -345,6 +345,19 @@ static int bcm54xx_config_init(struct ph + + bcm54xx_phydsp_config(phydev); + ++ /* Encode link speed into LED1 and LED3 pair (green/amber). ++ * Also flash these two LEDs on activity. This means configuring ++ * them for MULTICOLOR and encoding link/activity into them. ++ */ ++ val = BCM5482_SHD_LEDS1_LED1(BCM_LED_SRC_MULTICOLOR1) | ++ BCM5482_SHD_LEDS1_LED3(BCM_LED_SRC_MULTICOLOR1); ++ bcm_phy_write_shadow(phydev, BCM5482_SHD_LEDS1, val); ++ ++ val = BCM_LED_MULTICOLOR_IN_PHASE | ++ BCM5482_SHD_LEDS1_LED1(BCM_LED_MULTICOLOR_LINK_ACT) | ++ BCM5482_SHD_LEDS1_LED3(BCM_LED_MULTICOLOR_LINK_ACT); ++ bcm_phy_write_exp(phydev, BCM_EXP_MULTICOLOR, val); ++ + return 0; + } + +--- a/include/linux/brcmphy.h ++++ b/include/linux/brcmphy.h +@@ -148,6 +148,22 @@ + #define BCM_LED_SRC_OFF 0xe /* Tied high */ + #define BCM_LED_SRC_ON 0xf /* Tied low */ + ++/* ++ * Broadcom Multicolor LED configurations (expansion register 4) ++ */ ++#define BCM_EXP_MULTICOLOR (MII_BCM54XX_EXP_SEL_ER + 0x04) ++#define BCM_LED_MULTICOLOR_IN_PHASE BIT(8) ++#define BCM_LED_MULTICOLOR_LINK_ACT 0x0 ++#define BCM_LED_MULTICOLOR_SPEED 0x1 ++#define BCM_LED_MULTICOLOR_ACT_FLASH 0x2 ++#define BCM_LED_MULTICOLOR_FDX 0x3 ++#define BCM_LED_MULTICOLOR_OFF 0x4 ++#define BCM_LED_MULTICOLOR_ON 0x5 ++#define BCM_LED_MULTICOLOR_ALT 0x6 ++#define BCM_LED_MULTICOLOR_FLASH 0x7 ++#define BCM_LED_MULTICOLOR_LINK 0x8 ++#define BCM_LED_MULTICOLOR_ACT 0x9 ++#define BCM_LED_MULTICOLOR_PROGRAM 0xa + + /* + * BCM5482: Shadow registers diff --git a/target/linux/brcm2708/patches-4.19/950-0751-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch b/target/linux/brcm2708/patches-4.19/950-0751-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch new file mode 100644 index 00000000000..1b922420c05 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0751-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch @@ -0,0 +1,119 @@ +From 2679834327b5b8db8a7b0c90b632b81c35f9e271 Mon Sep 17 00:00:00 2001 +From: James Hughes +Date: Thu, 31 Oct 2019 14:39:44 +0000 +Subject: [PATCH] net:phy:2711 Allow ethernet LED mode to be set via + device tree + +Add device tree entries and code to allow the specification of +the lighting modes for the LED's on the ethernet connector. + +Signed-off-by: James Hughes +--- + arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 3 +++ + arch/arm/boot/dts/bcm2838.dtsi | 1 + + arch/arm/boot/dts/overlays/README | 28 +++++++++++++++++++-------- + drivers/net/phy/broadcom.c | 9 +++++++-- + 4 files changed, 31 insertions(+), 10 deletions(-) + +--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +@@ -334,5 +334,8 @@ + pwr_led_gpio = <&pwr_led>,"gpios:4"; + pwr_led_activelow = <&pwr_led>,"gpios:8"; + pwr_led_trigger = <&pwr_led>,"linux,default-trigger"; ++ ++ eth_led0 = <&phy1>,"led-modes:0"; ++ eth_led1 = <&phy1>,"led-modes:4"; + }; + }; +--- a/arch/arm/boot/dts/bcm2838.dtsi ++++ b/arch/arm/boot/dts/bcm2838.dtsi +@@ -380,6 +380,7 @@ + /* No interrupts - use PHY_POLL */ + max-speed = <1000>; + reg = <0x1>; ++ led-modes = <0x02 0x02>; + }; + }; + }; +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -102,26 +102,38 @@ Params: + + eee Enable Energy Efficient Ethernet support for + compatible devices (default "on"). See also +- "tx_lpi_timer". ++ "tx_lpi_timer". Pi3B+ only. + + eth_downshift_after Set the number of auto-negotiation failures + after which the 1000Mbps modes are disabled. + Legal values are 2, 3, 4, 5 and 0, where +- 0 means never downshift (default 2). ++ 0 means never downshift (default 2). Pi3B+ only. + +- eth_led0 Set mode of LED0 (usually orange) (default +- "1"). The legal values are: +- 0=link/activity 1=link1000/activity ++ eth_led0 Set mode of LED0 (usually orange). The legal ++ values are: ++ ++ Pi3B+ ++ ++ 0=link/activity 1=link1000/activity (default) + 2=link100/activity 3=link10/activity + 4=link100/1000/activity 5=link10/1000/activity + 6=link10/100/activity 14=off 15=on + +- eth_led1 Set mode of LED1 (usually green) (default +- "6"). See eth_led0 for legal values. ++ Pi4 ++ ++ 0=Speed/Activity (default) 1=Speed ++ 2=Speed/Flash activity 3=FDX ++ 4=Off 5=On ++ 6=Alt 7=Speed/Flash ++ 8=Link 9=Activity ++ ++ eth_led1 Set mode of LED1 (usually green) (Pi3B+ default ++ "6", Pi4 default "0"). See eth_led0 for legal ++ values. + + eth_max_speed Set the maximum speed a link is allowed + to negotiate. Legal values are 10, 100 and +- 1000 (default 1000). ++ 1000 (default 1000). Pi3B+ only. + + i2c_arm Set to "on" to enable the ARM's i2c interface + (default "off") +--- a/drivers/net/phy/broadcom.c ++++ b/drivers/net/phy/broadcom.c +@@ -292,6 +292,9 @@ static void bcm54xx_adjust_rxrefclk(stru + static int bcm54xx_config_init(struct phy_device *phydev) + { + int reg, err, val; ++ u32 led_modes[] = {BCM_LED_MULTICOLOR_LINK_ACT, ++ BCM_LED_MULTICOLOR_LINK_ACT}; ++ struct device_node *np = phydev->mdio.dev.of_node; + + reg = phy_read(phydev, MII_BCM54XX_ECR); + if (reg < 0) +@@ -345,6 +348,8 @@ static int bcm54xx_config_init(struct ph + + bcm54xx_phydsp_config(phydev); + ++ of_property_read_u32_array(np, "led-modes", led_modes, 2); ++ + /* Encode link speed into LED1 and LED3 pair (green/amber). + * Also flash these two LEDs on activity. This means configuring + * them for MULTICOLOR and encoding link/activity into them. +@@ -354,8 +359,8 @@ static int bcm54xx_config_init(struct ph + bcm_phy_write_shadow(phydev, BCM5482_SHD_LEDS1, val); + + val = BCM_LED_MULTICOLOR_IN_PHASE | +- BCM5482_SHD_LEDS1_LED1(BCM_LED_MULTICOLOR_LINK_ACT) | +- BCM5482_SHD_LEDS1_LED3(BCM_LED_MULTICOLOR_LINK_ACT); ++ BCM5482_SHD_LEDS1_LED1(led_modes[0]) | ++ BCM5482_SHD_LEDS1_LED3(led_modes[1]); + bcm_phy_write_exp(phydev, BCM_EXP_MULTICOLOR, val); + + return 0; diff --git a/target/linux/brcm2708/patches-4.19/950-0752-overlays-smi-fix-typo-in-comment-3320.patch b/target/linux/brcm2708/patches-4.19/950-0752-overlays-smi-fix-typo-in-comment-3320.patch new file mode 100644 index 00000000000..6b388e05792 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0752-overlays-smi-fix-typo-in-comment-3320.patch @@ -0,0 +1,23 @@ +From f12c4ba9fd01e17bd79b461b203674e92dd253e9 Mon Sep 17 00:00:00 2001 +From: Pierre-jean Texier +Date: Wed, 6 Nov 2019 10:00:43 +0100 +Subject: [PATCH] overlays: smi: fix typo in comment (#3320) + +5 represent alt1 function not alt0. + +Signed-off-by: Pierre-Jean Texier +--- + arch/arm/boot/dts/overlays/smi-overlay.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/boot/dts/overlays/smi-overlay.dts ++++ b/arch/arm/boot/dts/overlays/smi-overlay.dts +@@ -24,7 +24,7 @@ + these are already used as ID_SD and ID_SC */ + brcm,pins = <2 3 4 5 6 7 8 9 10 11 12 13 14 15 + 16 17 18 19 20 21 22 23 24 25>; +- /* Alt 0: SMI */ ++ /* Alt 1: SMI */ + brcm,function = <5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + 5 5 5 5 5 5 5 5 5>; + /* /CS, /WE and /OE are pulled high, as they are diff --git a/target/linux/brcm2708/patches-4.19/950-0753-net-phy-2711-Change-the-default-ethernet-LED-actions.patch b/target/linux/brcm2708/patches-4.19/950-0753-net-phy-2711-Change-the-default-ethernet-LED-actions.patch new file mode 100644 index 00000000000..b00afccd00b --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0753-net-phy-2711-Change-the-default-ethernet-LED-actions.patch @@ -0,0 +1,33 @@ +From 7d9c69b325c94d59de94cb699a8314ba2c83ab1d Mon Sep 17 00:00:00 2001 +From: James Hughes +Date: Thu, 7 Nov 2019 14:59:59 +0000 +Subject: [PATCH] net:phy:2711 Change the default ethernet LED actions + +This should return default behaviour back to that of previous +releases. +--- + drivers/net/phy/broadcom.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +--- a/drivers/net/phy/broadcom.c ++++ b/drivers/net/phy/broadcom.c +@@ -293,7 +293,7 @@ static int bcm54xx_config_init(struct ph + { + int reg, err, val; + u32 led_modes[] = {BCM_LED_MULTICOLOR_LINK_ACT, +- BCM_LED_MULTICOLOR_LINK_ACT}; ++ BCM_LED_MULTICOLOR_LINK}; + struct device_node *np = phydev->mdio.dev.of_node; + + reg = phy_read(phydev, MII_BCM54XX_ECR); +@@ -350,10 +350,6 @@ static int bcm54xx_config_init(struct ph + + of_property_read_u32_array(np, "led-modes", led_modes, 2); + +- /* Encode link speed into LED1 and LED3 pair (green/amber). +- * Also flash these two LEDs on activity. This means configuring +- * them for MULTICOLOR and encoding link/activity into them. +- */ + val = BCM5482_SHD_LEDS1_LED1(BCM_LED_SRC_MULTICOLOR1) | + BCM5482_SHD_LEDS1_LED3(BCM_LED_SRC_MULTICOLOR1); + bcm_phy_write_shadow(phydev, BCM5482_SHD_LEDS1, val); diff --git a/target/linux/brcm2708/patches-4.19/950-0754-overlays-README-Remove-trailing-whitespace.patch b/target/linux/brcm2708/patches-4.19/950-0754-overlays-README-Remove-trailing-whitespace.patch new file mode 100644 index 00000000000..099c44497b2 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0754-overlays-README-Remove-trailing-whitespace.patch @@ -0,0 +1,21 @@ +From f5505e5d9fbfd11921c39cd55a433877d6d0d6e4 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 7 Nov 2019 15:24:32 +0000 +Subject: [PATCH] overlays: README: Remove trailing whitespace + +A stray space slipped through the net. +--- + arch/arm/boot/dts/overlays/README | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -109,7 +109,7 @@ Params: + Legal values are 2, 3, 4, 5 and 0, where + 0 means never downshift (default 2). Pi3B+ only. + +- eth_led0 Set mode of LED0 (usually orange). The legal ++ eth_led0 Set mode of LED0 (usually orange). The legal + values are: + + Pi3B+ diff --git a/target/linux/brcm2708/patches-4.19/950-0755-overlays-Add-apds9960-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0755-overlays-Add-apds9960-overlay.patch new file mode 100644 index 00000000000..0848a23c886 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0755-overlays-Add-apds9960-overlay.patch @@ -0,0 +1,103 @@ +From c1e8593fd7fc6a8e7745a6c82c1c19a8fceee70f Mon Sep 17 00:00:00 2001 +From: Michael Kaplan +Date: Fri, 8 Nov 2019 10:35:57 +0100 +Subject: [PATCH] overlays: Add apds9960 overlay + +Add an overlay for the AVAGO APDS9960 digital proximity, ambient light, rgb and gesture sensor. +Also update overlay README and Makefile. + +Signed-off-by: Michael Kaplan +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 8 +++ + .../boot/dts/overlays/apds9960-overlay.dts | 57 +++++++++++++++++++ + 3 files changed, 66 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/apds9960-overlay.dts + +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -15,6 +15,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + allo-katana-dac-audio.dtbo \ + allo-piano-dac-pcm512x-audio.dtbo \ + allo-piano-dac-plus-pcm512x-audio.dtbo \ ++ apds9960.dtbo \ + applepi-dac.dtbo \ + at86rf233.dtbo \ + audioinjector-addons.dtbo \ +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -441,6 +441,14 @@ Params: 24db_digital_gain Allow ga + better voice quality. (default Off) + + ++Name: apds9960 ++Info: Configures the AVAGO APDS9960 digital proximity, ambient light, RGB and ++ gesture sensor ++Load: dtoverlay=apds9960,= ++Params: gpiopin GPIO used for INT (default 4) ++ noints Disable the interrupt GPIO line. ++ ++ + Name: applepi-dac + Info: Configures the Orchard Audio ApplePi-DAC audio card + Load: dtoverlay=applepi-dac +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/apds9960-overlay.dts +@@ -0,0 +1,57 @@ ++// Definitions for APDS-9960 ambient light and gesture sensor ++ ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ target = <&i2c1>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&gpio>; ++ __overlay__ { ++ apds9960_pins: apds9960_pins@39 { ++ brcm,pins = <4>; ++ brcm,function = <0>; ++ }; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&i2c1>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ apds9960: apds@39 { ++ compatible = "avago,apds9960"; ++ reg = <0x39>; ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ fragment@3 { ++ target = <&i2c1>; ++ __overlay__ { ++ apds9960_irq: apds@39 { ++ #interrupt-cells=<2>; ++ interrupt-parent = <&gpio>; ++ interrupts = <4 1>; ++ }; ++ }; ++ }; ++ ++ __overrides__ { ++ gpiopin = <&apds9960_pins>,"brcm,pins:0", ++ <&apds9960_irq>,"interrupts:0"; ++ noints = <0>,"!1!3"; ++ }; ++}; ++ diff --git a/target/linux/brcm2708/patches-4.19/950-0756-arm-dts-overlays-pitft35-resistive-add-upstream-comp.patch b/target/linux/brcm2708/patches-4.19/950-0756-arm-dts-overlays-pitft35-resistive-add-upstream-comp.patch new file mode 100644 index 00000000000..e80205bd04b --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0756-arm-dts-overlays-pitft35-resistive-add-upstream-comp.patch @@ -0,0 +1,27 @@ +From 49a4a7e355452ce4372c99b2219d7ff8ff613f3f Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Sun, 17 Nov 2019 16:20:24 +0000 +Subject: [PATCH] arm: dts: overlays: pitft35-resistive: add upstream + compatible + +The upstream hx8357d driver uses "adafruit,yx350hv15" for the compatible +string explicitly for this screen config and not a hx8357d generic for +the controller so add that in as well so it will work with an unmodified +upstream kernel driver. We leave the downstream as the priority. + +Signed-off-by: Peter Robinson +--- + arch/arm/boot/dts/overlays/pitft35-resistive-overlay.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/boot/dts/overlays/pitft35-resistive-overlay.dts ++++ b/arch/arm/boot/dts/overlays/pitft35-resistive-overlay.dts +@@ -49,7 +49,7 @@ + #size-cells = <0>; + + pitft: pitft@0{ +- compatible = "himax,hx8357d"; ++ compatible = "himax,hx8357d", "adafruit,yx350hv15"; + reg = <0>; + pinctrl-names = "default"; + pinctrl-0 = <&pitft_pins>; diff --git a/target/linux/brcm2708/patches-4.19/950-0757-clk-bcm2835-Avoid-null-pointer-exception.patch b/target/linux/brcm2708/patches-4.19/950-0757-clk-bcm2835-Avoid-null-pointer-exception.patch new file mode 100644 index 00000000000..a0939d77a01 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0757-clk-bcm2835-Avoid-null-pointer-exception.patch @@ -0,0 +1,29 @@ +From 5b8a217fe818bc038592b8a5284ba0c18948fabf Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 6 Aug 2019 15:23:14 +0100 +Subject: [PATCH] clk-bcm2835: Avoid null pointer exception + +clk_desc_array[BCM2835_PLLB] doesn't exist so we dereference null when iterating + +Signed-off-by: popcornmix +--- + drivers/clk/bcm/clk-bcm2835.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +--- a/drivers/clk/bcm/clk-bcm2835.c ++++ b/drivers/clk/bcm/clk-bcm2835.c +@@ -2288,9 +2288,11 @@ static bool bcm2835_clk_is_claimed(const + int i; + + for (i = 0; i < ARRAY_SIZE(clk_desc_array); i++) { +- const char *clk_name = *(const char **)(clk_desc_array[i].data); +- if (!strcmp(name, clk_name)) +- return bcm2835_clk_claimed[i]; ++ if (clk_desc_array[i].data) { ++ const char *clk_name = *(const char **)(clk_desc_array[i].data); ++ if (!strcmp(name, clk_name)) ++ return bcm2835_clk_claimed[i]; ++ } + } + + return false; diff --git a/target/linux/brcm2708/patches-4.19/950-0758-v3d_drv-Handle-missing-clock-more-gracefully.patch b/target/linux/brcm2708/patches-4.19/950-0758-v3d_drv-Handle-missing-clock-more-gracefully.patch new file mode 100644 index 00000000000..292773ffe9e --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0758-v3d_drv-Handle-missing-clock-more-gracefully.patch @@ -0,0 +1,25 @@ +From 9048bbff0eca6d74d41fa58875f31560381b3ca3 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 23 Aug 2019 16:34:38 +0100 +Subject: [PATCH] v3d_drv: Handle missing clock more gracefully + +Signed-off-by: popcornmix +--- + drivers/gpu/drm/v3d/v3d_drv.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/drivers/gpu/drm/v3d/v3d_drv.c ++++ b/drivers/gpu/drm/v3d/v3d_drv.c +@@ -301,9 +301,9 @@ static int v3d_platform_drm_probe(struct + } + + v3d->clk = devm_clk_get(dev, NULL); +- if (IS_ERR(v3d->clk)) { +- if (ret != -EPROBE_DEFER) +- dev_err(dev, "Failed to get clock\n"); ++ if (IS_ERR_OR_NULL(v3d->clk)) { ++ if (PTR_ERR(v3d->clk) != -EPROBE_DEFER) ++ dev_err(dev, "Failed to get clock (%ld)\n", PTR_ERR(v3d->clk)); + goto dev_free; + } + v3d->clk_up_rate = clk_get_rate(v3d->clk); diff --git a/target/linux/brcm2708/patches-4.19/950-0759-cpufreq-scpi-scmi-Fix-freeing-of-dynamic-OPPs.patch b/target/linux/brcm2708/patches-4.19/950-0759-cpufreq-scpi-scmi-Fix-freeing-of-dynamic-OPPs.patch new file mode 100644 index 00000000000..45c0594c534 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0759-cpufreq-scpi-scmi-Fix-freeing-of-dynamic-OPPs.patch @@ -0,0 +1,197 @@ +From 84a8cbf64731568c0750137ec38091a46b81d502 Mon Sep 17 00:00:00 2001 +From: Viresh Kumar +Date: Fri, 4 Jan 2019 15:14:33 +0530 +Subject: [PATCH] cpufreq: scpi/scmi: Fix freeing of dynamic OPPs + +Commit 1690d8bb91e370ab772062b79bd434ce815c4729 upstream + +Since the commit 2a4eb7358aba "OPP: Don't remove dynamic OPPs from +_dev_pm_opp_remove_table()", dynamically created OPP aren't +automatically removed anymore by dev_pm_opp_cpumask_remove_table(). This +affects the scpi and scmi cpufreq drivers which no longer free OPPs on +failures or on invocations of the policy->exit() callback. + +Create a generic OPP helper dev_pm_opp_remove_all_dynamic() which can be +called from these drivers instead of dev_pm_opp_cpumask_remove_table(). + +In dev_pm_opp_remove_all_dynamic(), we need to make sure that the +opp_list isn't getting accessed simultaneously from other parts of the +OPP core while the helper is freeing dynamic OPPs, i.e. we can't drop +the opp_table->lock while traversing through the OPP list. And to +accomplish that, this patch also creates _opp_kref_release_unlocked() +which can be called from this new helper with the opp_table lock already +held. + +Cc: 4.20 # v4.20 +Reported-by: Valentin Schneider +Fixes: 2a4eb7358aba "OPP: Don't remove dynamic OPPs from _dev_pm_opp_remove_table()" +Signed-off-by: Viresh Kumar +Tested-by: Valentin Schneider +Reviewed-by: Sudeep Holla +Signed-off-by: Rafael J. Wysocki +--- + drivers/cpufreq/scmi-cpufreq.c | 4 +-- + drivers/cpufreq/scpi-cpufreq.c | 4 +-- + drivers/opp/core.c | 63 +++++++++++++++++++++++++++++++--- + include/linux/pm_opp.h | 5 +++ + 4 files changed, 67 insertions(+), 9 deletions(-) + +--- a/drivers/cpufreq/scmi-cpufreq.c ++++ b/drivers/cpufreq/scmi-cpufreq.c +@@ -176,7 +176,7 @@ static int scmi_cpufreq_init(struct cpuf + out_free_priv: + kfree(priv); + out_free_opp: +- dev_pm_opp_cpumask_remove_table(policy->cpus); ++ dev_pm_opp_remove_all_dynamic(cpu_dev); + + return ret; + } +@@ -188,7 +188,7 @@ static int scmi_cpufreq_exit(struct cpuf + cpufreq_cooling_unregister(priv->cdev); + dev_pm_opp_free_cpufreq_table(priv->cpu_dev, &policy->freq_table); + kfree(priv); +- dev_pm_opp_cpumask_remove_table(policy->related_cpus); ++ dev_pm_opp_remove_all_dynamic(priv->cpu_dev); + + return 0; + } +--- a/drivers/cpufreq/scpi-cpufreq.c ++++ b/drivers/cpufreq/scpi-cpufreq.c +@@ -177,7 +177,7 @@ out_free_cpufreq_table: + out_free_priv: + kfree(priv); + out_free_opp: +- dev_pm_opp_cpumask_remove_table(policy->cpus); ++ dev_pm_opp_remove_all_dynamic(cpu_dev); + + return ret; + } +@@ -190,7 +190,7 @@ static int scpi_cpufreq_exit(struct cpuf + clk_put(priv->clk); + dev_pm_opp_free_cpufreq_table(priv->cpu_dev, &policy->freq_table); + kfree(priv); +- dev_pm_opp_cpumask_remove_table(policy->related_cpus); ++ dev_pm_opp_remove_all_dynamic(priv->cpu_dev); + + return 0; + } +--- a/drivers/opp/core.c ++++ b/drivers/opp/core.c +@@ -881,11 +881,9 @@ void _opp_free(struct dev_pm_opp *opp) + kfree(opp); + } + +-static void _opp_kref_release(struct kref *kref) ++static void _opp_kref_release(struct dev_pm_opp *opp, ++ struct opp_table *opp_table) + { +- struct dev_pm_opp *opp = container_of(kref, struct dev_pm_opp, kref); +- struct opp_table *opp_table = opp->opp_table; +- + /* + * Notify the changes in the availability of the operable + * frequency/voltage list. +@@ -894,7 +892,22 @@ static void _opp_kref_release(struct kre + opp_debug_remove_one(opp); + list_del(&opp->node); + kfree(opp); ++} ++ ++static void _opp_kref_release_unlocked(struct kref *kref) ++{ ++ struct dev_pm_opp *opp = container_of(kref, struct dev_pm_opp, kref); ++ struct opp_table *opp_table = opp->opp_table; ++ ++ _opp_kref_release(opp, opp_table); ++} + ++static void _opp_kref_release_locked(struct kref *kref) ++{ ++ struct dev_pm_opp *opp = container_of(kref, struct dev_pm_opp, kref); ++ struct opp_table *opp_table = opp->opp_table; ++ ++ _opp_kref_release(opp, opp_table); + mutex_unlock(&opp_table->lock); + dev_pm_opp_put_opp_table(opp_table); + } +@@ -906,10 +919,16 @@ void dev_pm_opp_get(struct dev_pm_opp *o + + void dev_pm_opp_put(struct dev_pm_opp *opp) + { +- kref_put_mutex(&opp->kref, _opp_kref_release, &opp->opp_table->lock); ++ kref_put_mutex(&opp->kref, _opp_kref_release_locked, ++ &opp->opp_table->lock); + } + EXPORT_SYMBOL_GPL(dev_pm_opp_put); + ++static void dev_pm_opp_put_unlocked(struct dev_pm_opp *opp) ++{ ++ kref_put(&opp->kref, _opp_kref_release_unlocked); ++} ++ + /** + * dev_pm_opp_remove() - Remove an OPP from OPP table + * @dev: device for which we do this operation +@@ -949,6 +968,40 @@ void dev_pm_opp_remove(struct device *de + } + EXPORT_SYMBOL_GPL(dev_pm_opp_remove); + ++/** ++ * dev_pm_opp_remove_all_dynamic() - Remove all dynamically created OPPs ++ * @dev: device for which we do this operation ++ * ++ * This function removes all dynamically created OPPs from the opp table. ++ */ ++void dev_pm_opp_remove_all_dynamic(struct device *dev) ++{ ++ struct opp_table *opp_table; ++ struct dev_pm_opp *opp, *temp; ++ int count = 0; ++ ++ opp_table = _find_opp_table(dev); ++ if (IS_ERR(opp_table)) ++ return; ++ ++ mutex_lock(&opp_table->lock); ++ list_for_each_entry_safe(opp, temp, &opp_table->opp_list, node) { ++ if (opp->dynamic) { ++ dev_pm_opp_put_unlocked(opp); ++ count++; ++ } ++ } ++ mutex_unlock(&opp_table->lock); ++ ++ /* Drop the references taken by dev_pm_opp_add() */ ++ while (count--) ++ dev_pm_opp_put_opp_table(opp_table); ++ ++ /* Drop the reference taken by _find_opp_table() */ ++ dev_pm_opp_put_opp_table(opp_table); ++} ++EXPORT_SYMBOL_GPL(dev_pm_opp_remove_all_dynamic); ++ + struct dev_pm_opp *_opp_allocate(struct opp_table *table) + { + struct dev_pm_opp *opp; +--- a/include/linux/pm_opp.h ++++ b/include/linux/pm_opp.h +@@ -107,6 +107,7 @@ void dev_pm_opp_put(struct dev_pm_opp *o + int dev_pm_opp_add(struct device *dev, unsigned long freq, + unsigned long u_volt); + void dev_pm_opp_remove(struct device *dev, unsigned long freq); ++void dev_pm_opp_remove_all_dynamic(struct device *dev); + + int dev_pm_opp_enable(struct device *dev, unsigned long freq); + +@@ -208,6 +209,10 @@ static inline void dev_pm_opp_remove(str + { + } + ++static inline void dev_pm_opp_remove_all_dynamic(struct device *dev) ++{ ++} ++ + static inline int dev_pm_opp_enable(struct device *dev, unsigned long freq) + { + return 0; diff --git a/target/linux/brcm2708/patches-4.19/950-0760-clk-bcm283x-add-driver-interfacing-with-Raspberry-Pi.patch b/target/linux/brcm2708/patches-4.19/950-0760-clk-bcm283x-add-driver-interfacing-with-Raspberry-Pi.patch new file mode 100644 index 00000000000..53428fcbda0 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0760-clk-bcm283x-add-driver-interfacing-with-Raspberry-Pi.patch @@ -0,0 +1,349 @@ +From 35306211392a8c17ba6cde2a6b5d1beb61ca7d54 Mon Sep 17 00:00:00 2001 +From: Nicolas Saenz Julienne +Date: Wed, 12 Jun 2019 20:24:54 +0200 +Subject: [PATCH] clk: bcm283x: add driver interfacing with Raspberry + Pi's firmware + +Commit 4e85e535e6cc6e8a96350e8ee684d0f22eb8629e upstream. + +Raspberry Pi's firmware offers an interface though which update it's +clock's frequencies. This is specially useful in order to change the CPU +clock (pllb_arm) which is 'owned' by the firmware and we're unable to +scale using the register interface provided by clk-bcm2835. + +Signed-off-by: Nicolas Saenz Julienne +Acked-by: Eric Anholt +Signed-off-by: Stephen Boyd +--- + drivers/clk/bcm/Kconfig | 7 + + drivers/clk/bcm/Makefile | 1 + + drivers/clk/bcm/clk-raspberrypi.c | 300 ++++++++++++++++++++++++++++++ + 3 files changed, 308 insertions(+) + create mode 100644 drivers/clk/bcm/clk-raspberrypi.c + +--- a/drivers/clk/bcm/Kconfig ++++ b/drivers/clk/bcm/Kconfig +@@ -63,3 +63,10 @@ config CLK_BCM_SR + default ARCH_BCM_IPROC + help + Enable common clock framework support for the Broadcom Stingray SoC ++ ++config CLK_RASPBERRYPI ++ tristate "Raspberry Pi firmware based clock support" ++ depends on RASPBERRYPI_FIRMWARE || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE) ++ help ++ Enable common clock framework support for Raspberry Pi's firmware ++ dependent clocks +--- a/drivers/clk/bcm/Makefile ++++ b/drivers/clk/bcm/Makefile +@@ -7,6 +7,7 @@ obj-$(CONFIG_CLK_BCM_KONA) += clk-bcm216 + obj-$(CONFIG_COMMON_CLK_IPROC) += clk-iproc-armpll.o clk-iproc-pll.o clk-iproc-asiu.o + obj-$(CONFIG_ARCH_BCM2835) += clk-bcm2835.o + obj-$(CONFIG_ARCH_BCM2835) += clk-bcm2835-aux.o ++obj-$(CONFIG_CLK_RASPBERRYPI) += clk-raspberrypi.o + obj-$(CONFIG_ARCH_BCM_53573) += clk-bcm53573-ilp.o + obj-$(CONFIG_CLK_BCM_CYGNUS) += clk-cygnus.o + obj-$(CONFIG_CLK_BCM_HR2) += clk-hr2.o +--- /dev/null ++++ b/drivers/clk/bcm/clk-raspberrypi.c +@@ -0,0 +1,300 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++/* ++ * Raspberry Pi driver for firmware controlled clocks ++ * ++ * Even though clk-bcm2835 provides an interface to the hardware registers for ++ * the system clocks we've had to factor out 'pllb' as the firmware 'owns' it. ++ * We're not allowed to change it directly as we might race with the ++ * over-temperature and under-voltage protections provided by the firmware. ++ * ++ * Copyright (C) 2019 Nicolas Saenz Julienne ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#define RPI_FIRMWARE_ARM_CLK_ID 0x00000003 ++ ++#define RPI_FIRMWARE_STATE_ENABLE_BIT BIT(0) ++#define RPI_FIRMWARE_STATE_WAIT_BIT BIT(1) ++ ++/* ++ * Even though the firmware interface alters 'pllb' the frequencies are ++ * provided as per 'pllb_arm'. We need to scale before passing them trough. ++ */ ++#define RPI_FIRMWARE_PLLB_ARM_DIV_RATE 2 ++ ++#define A2W_PLL_FRAC_BITS 20 ++ ++struct raspberrypi_clk { ++ struct device *dev; ++ struct rpi_firmware *firmware; ++ ++ unsigned long min_rate; ++ unsigned long max_rate; ++ ++ struct clk_hw pllb; ++ struct clk_hw *pllb_arm; ++ struct clk_lookup *pllb_arm_lookup; ++}; ++ ++/* ++ * Structure of the message passed to Raspberry Pi's firmware in order to ++ * change clock rates. The 'disable_turbo' option is only available to the ARM ++ * clock (pllb) which we enable by default as turbo mode will alter multiple ++ * clocks at once. ++ * ++ * Even though we're able to access the clock registers directly we're bound to ++ * use the firmware interface as the firmware ultimately takes care of ++ * mitigating overheating/undervoltage situations and we would be changing ++ * frequencies behind his back. ++ * ++ * For more information on the firmware interface check: ++ * https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface ++ */ ++struct raspberrypi_firmware_prop { ++ __le32 id; ++ __le32 val; ++ __le32 disable_turbo; ++} __packed; ++ ++static int raspberrypi_clock_property(struct rpi_firmware *firmware, u32 tag, ++ u32 clk, u32 *val) ++{ ++ struct raspberrypi_firmware_prop msg = { ++ .id = cpu_to_le32(clk), ++ .val = cpu_to_le32(*val), ++ .disable_turbo = cpu_to_le32(1), ++ }; ++ int ret; ++ ++ ret = rpi_firmware_property(firmware, tag, &msg, sizeof(msg)); ++ if (ret) ++ return ret; ++ ++ *val = le32_to_cpu(msg.val); ++ ++ return 0; ++} ++ ++static int raspberrypi_fw_pll_is_on(struct clk_hw *hw) ++{ ++ struct raspberrypi_clk *rpi = container_of(hw, struct raspberrypi_clk, ++ pllb); ++ u32 val = 0; ++ int ret; ++ ++ ret = raspberrypi_clock_property(rpi->firmware, ++ RPI_FIRMWARE_GET_CLOCK_STATE, ++ RPI_FIRMWARE_ARM_CLK_ID, &val); ++ if (ret) ++ return 0; ++ ++ return !!(val & RPI_FIRMWARE_STATE_ENABLE_BIT); ++} ++ ++ ++static unsigned long raspberrypi_fw_pll_get_rate(struct clk_hw *hw, ++ unsigned long parent_rate) ++{ ++ struct raspberrypi_clk *rpi = container_of(hw, struct raspberrypi_clk, ++ pllb); ++ u32 val = 0; ++ int ret; ++ ++ ret = raspberrypi_clock_property(rpi->firmware, ++ RPI_FIRMWARE_GET_CLOCK_RATE, ++ RPI_FIRMWARE_ARM_CLK_ID, ++ &val); ++ if (ret) ++ return ret; ++ ++ return val * RPI_FIRMWARE_PLLB_ARM_DIV_RATE; ++} ++ ++static int raspberrypi_fw_pll_set_rate(struct clk_hw *hw, unsigned long rate, ++ unsigned long parent_rate) ++{ ++ struct raspberrypi_clk *rpi = container_of(hw, struct raspberrypi_clk, ++ pllb); ++ u32 new_rate = rate / RPI_FIRMWARE_PLLB_ARM_DIV_RATE; ++ int ret; ++ ++ ret = raspberrypi_clock_property(rpi->firmware, ++ RPI_FIRMWARE_SET_CLOCK_RATE, ++ RPI_FIRMWARE_ARM_CLK_ID, ++ &new_rate); ++ if (ret) ++ dev_err_ratelimited(rpi->dev, "Failed to change %s frequency: %d", ++ clk_hw_get_name(hw), ret); ++ ++ return ret; ++} ++ ++/* ++ * Sadly there is no firmware rate rounding interface. We borrowed it from ++ * clk-bcm2835. ++ */ ++static int raspberrypi_pll_determine_rate(struct clk_hw *hw, ++ struct clk_rate_request *req) ++{ ++ struct raspberrypi_clk *rpi = container_of(hw, struct raspberrypi_clk, ++ pllb); ++ u64 div, final_rate; ++ u32 ndiv, fdiv; ++ ++ /* We can't use req->rate directly as it would overflow */ ++ final_rate = clamp(req->rate, rpi->min_rate, rpi->max_rate); ++ ++ div = (u64)final_rate << A2W_PLL_FRAC_BITS; ++ do_div(div, req->best_parent_rate); ++ ++ ndiv = div >> A2W_PLL_FRAC_BITS; ++ fdiv = div & ((1 << A2W_PLL_FRAC_BITS) - 1); ++ ++ final_rate = ((u64)req->best_parent_rate * ++ ((ndiv << A2W_PLL_FRAC_BITS) + fdiv)); ++ ++ req->rate = final_rate >> A2W_PLL_FRAC_BITS; ++ ++ return 0; ++} ++ ++static const struct clk_ops raspberrypi_firmware_pll_clk_ops = { ++ .is_prepared = raspberrypi_fw_pll_is_on, ++ .recalc_rate = raspberrypi_fw_pll_get_rate, ++ .set_rate = raspberrypi_fw_pll_set_rate, ++ .determine_rate = raspberrypi_pll_determine_rate, ++}; ++ ++static int raspberrypi_register_pllb(struct raspberrypi_clk *rpi) ++{ ++ u32 min_rate = 0, max_rate = 0; ++ struct clk_init_data init; ++ int ret; ++ ++ memset(&init, 0, sizeof(init)); ++ ++ /* All of the PLLs derive from the external oscillator. */ ++ init.parent_names = (const char *[]){ "osc" }; ++ init.num_parents = 1; ++ init.name = "pllb"; ++ init.ops = &raspberrypi_firmware_pll_clk_ops; ++ init.flags = CLK_GET_RATE_NOCACHE | CLK_IGNORE_UNUSED; ++ ++ /* Get min & max rates set by the firmware */ ++ ret = raspberrypi_clock_property(rpi->firmware, ++ RPI_FIRMWARE_GET_MIN_CLOCK_RATE, ++ RPI_FIRMWARE_ARM_CLK_ID, ++ &min_rate); ++ if (ret) { ++ dev_err(rpi->dev, "Failed to get %s min freq: %d\n", ++ init.name, ret); ++ return ret; ++ } ++ ++ ret = raspberrypi_clock_property(rpi->firmware, ++ RPI_FIRMWARE_GET_MAX_CLOCK_RATE, ++ RPI_FIRMWARE_ARM_CLK_ID, ++ &max_rate); ++ if (ret) { ++ dev_err(rpi->dev, "Failed to get %s max freq: %d\n", ++ init.name, ret); ++ return ret; ++ } ++ ++ if (!min_rate || !max_rate) { ++ dev_err(rpi->dev, "Unexpected frequency range: min %u, max %u\n", ++ min_rate, max_rate); ++ return -EINVAL; ++ } ++ ++ dev_info(rpi->dev, "CPU frequency range: min %u, max %u\n", ++ min_rate, max_rate); ++ ++ rpi->min_rate = min_rate * RPI_FIRMWARE_PLLB_ARM_DIV_RATE; ++ rpi->max_rate = max_rate * RPI_FIRMWARE_PLLB_ARM_DIV_RATE; ++ ++ rpi->pllb.init = &init; ++ ++ return devm_clk_hw_register(rpi->dev, &rpi->pllb); ++} ++ ++static int raspberrypi_register_pllb_arm(struct raspberrypi_clk *rpi) ++{ ++ rpi->pllb_arm = clk_hw_register_fixed_factor(rpi->dev, ++ "pllb_arm", "pllb", ++ CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE, ++ 1, 2); ++ if (IS_ERR(rpi->pllb_arm)) { ++ dev_err(rpi->dev, "Failed to initialize pllb_arm\n"); ++ return PTR_ERR(rpi->pllb_arm); ++ } ++ ++ rpi->pllb_arm_lookup = clkdev_hw_create(rpi->pllb_arm, NULL, "cpu0"); ++ if (!rpi->pllb_arm_lookup) { ++ dev_err(rpi->dev, "Failed to initialize pllb_arm_lookup\n"); ++ clk_hw_unregister_fixed_factor(rpi->pllb_arm); ++ return -ENOMEM; ++ } ++ ++ return 0; ++} ++ ++static int raspberrypi_clk_probe(struct platform_device *pdev) ++{ ++ struct device_node *firmware_node; ++ struct device *dev = &pdev->dev; ++ struct rpi_firmware *firmware; ++ struct raspberrypi_clk *rpi; ++ int ret; ++ ++ firmware_node = of_find_compatible_node(NULL, NULL, ++ "raspberrypi,bcm2835-firmware"); ++ if (!firmware_node) { ++ dev_err(dev, "Missing firmware node\n"); ++ return -ENOENT; ++ } ++ ++ firmware = rpi_firmware_get(firmware_node); ++ of_node_put(firmware_node); ++ if (!firmware) ++ return -EPROBE_DEFER; ++ ++ rpi = devm_kzalloc(dev, sizeof(*rpi), GFP_KERNEL); ++ if (!rpi) ++ return -ENOMEM; ++ ++ rpi->dev = dev; ++ rpi->firmware = firmware; ++ ++ ret = raspberrypi_register_pllb(rpi); ++ if (ret) { ++ dev_err(dev, "Failed to initialize pllb, %d\n", ret); ++ return ret; ++ } ++ ++ ret = raspberrypi_register_pllb_arm(rpi); ++ if (ret) ++ return ret; ++ ++ return 0; ++} ++ ++static struct platform_driver raspberrypi_clk_driver = { ++ .driver = { ++ .name = "raspberrypi-clk", ++ }, ++ .probe = raspberrypi_clk_probe, ++}; ++module_platform_driver(raspberrypi_clk_driver); ++ ++MODULE_AUTHOR("Nicolas Saenz Julienne "); ++MODULE_DESCRIPTION("Raspberry Pi firmware clock driver"); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS("platform:raspberrypi-clk"); diff --git a/target/linux/brcm2708/patches-4.19/950-0761-cpufreq-add-driver-for-Raspberry-Pi.patch b/target/linux/brcm2708/patches-4.19/950-0761-cpufreq-add-driver-for-Raspberry-Pi.patch new file mode 100644 index 00000000000..7785caf129b --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0761-cpufreq-add-driver-for-Raspberry-Pi.patch @@ -0,0 +1,161 @@ +From 1c0d3626312369837bc18051ed6c9611323fce87 Mon Sep 17 00:00:00 2001 +From: Nicolas Saenz Julienne +Date: Wed, 12 Jun 2019 20:24:56 +0200 +Subject: [PATCH] cpufreq: add driver for Raspberry Pi + +Commit d3df18a97e586702920337056540267807b23f8e upstream. + +Raspberry Pi's firmware offers and interface though which update it's +performance requirements. It allows us to request for specific runtime +frequencies, which the firmware might or might not respect, depending on +the firmware configuration and thermals. + +As the maximum and minimum frequencies are configurable in the firmware +there is no way to know in advance their values. So the Raspberry Pi +cpufreq driver queries them, builds an opp frequency table to then +launch cpufreq-dt. + +Also, as the firmware interface might be configured as a module, making +the cpu clock unavailable during init, this implements a full fledged +driver, as opposed to most drivers registering cpufreq-dt, which only +make use of an init routine. + +Signed-off-by: Nicolas Saenz Julienne +Acked-by: Eric Anholt +Reviewed-by: Stephen Boyd +Acked-by: Stefan Wahren +Signed-off-by: Viresh Kumar +--- + drivers/cpufreq/Kconfig.arm | 8 +++ + drivers/cpufreq/Makefile | 1 + + drivers/cpufreq/raspberrypi-cpufreq.c | 97 +++++++++++++++++++++++++++ + 3 files changed, 106 insertions(+) + create mode 100644 drivers/cpufreq/raspberrypi-cpufreq.c + +--- a/drivers/cpufreq/Kconfig.arm ++++ b/drivers/cpufreq/Kconfig.arm +@@ -121,6 +121,14 @@ config ARM_QCOM_CPUFREQ_KRYO + + If in doubt, say N. + ++config ARM_RASPBERRYPI_CPUFREQ ++ tristate "Raspberry Pi cpufreq support" ++ depends on CLK_RASPBERRYPI || COMPILE_TEST ++ help ++ This adds the CPUFreq driver for Raspberry Pi ++ ++ If in doubt, say N. ++ + config ARM_S3C_CPUFREQ + bool + help +--- a/drivers/cpufreq/Makefile ++++ b/drivers/cpufreq/Makefile +@@ -65,6 +65,7 @@ obj-$(CONFIG_ARM_OMAP2PLUS_CPUFREQ) += o + obj-$(CONFIG_ARM_PXA2xx_CPUFREQ) += pxa2xx-cpufreq.o + obj-$(CONFIG_PXA3xx) += pxa3xx-cpufreq.o + obj-$(CONFIG_ARM_QCOM_CPUFREQ_KRYO) += qcom-cpufreq-kryo.o ++obj-$(CONFIG_ARM_RASPBERRYPI_CPUFREQ) += raspberrypi-cpufreq.o + obj-$(CONFIG_ARM_S3C2410_CPUFREQ) += s3c2410-cpufreq.o + obj-$(CONFIG_ARM_S3C2412_CPUFREQ) += s3c2412-cpufreq.o + obj-$(CONFIG_ARM_S3C2416_CPUFREQ) += s3c2416-cpufreq.o +--- /dev/null ++++ b/drivers/cpufreq/raspberrypi-cpufreq.c +@@ -0,0 +1,97 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * Raspberry Pi cpufreq driver ++ * ++ * Copyright (C) 2019, Nicolas Saenz Julienne ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define RASPBERRYPI_FREQ_INTERVAL 100000000 ++ ++static struct platform_device *cpufreq_dt; ++ ++static int raspberrypi_cpufreq_probe(struct platform_device *pdev) ++{ ++ struct device *cpu_dev; ++ unsigned long min, max; ++ unsigned long rate; ++ struct clk *clk; ++ int ret; ++ ++ cpu_dev = get_cpu_device(0); ++ if (!cpu_dev) { ++ pr_err("Cannot get CPU for cpufreq driver\n"); ++ return -ENODEV; ++ } ++ ++ clk = clk_get(cpu_dev, NULL); ++ if (IS_ERR(clk)) { ++ dev_err(cpu_dev, "Cannot get clock for CPU0\n"); ++ return PTR_ERR(clk); ++ } ++ ++ /* ++ * The max and min frequencies are configurable in the Raspberry Pi ++ * firmware, so we query them at runtime. ++ */ ++ min = roundup(clk_round_rate(clk, 0), RASPBERRYPI_FREQ_INTERVAL); ++ max = roundup(clk_round_rate(clk, ULONG_MAX), RASPBERRYPI_FREQ_INTERVAL); ++ clk_put(clk); ++ ++ for (rate = min; rate <= max; rate += RASPBERRYPI_FREQ_INTERVAL) { ++ ret = dev_pm_opp_add(cpu_dev, rate, 0); ++ if (ret) ++ goto remove_opp; ++ } ++ ++ cpufreq_dt = platform_device_register_simple("cpufreq-dt", -1, NULL, 0); ++ ret = PTR_ERR_OR_ZERO(cpufreq_dt); ++ if (ret) { ++ dev_err(cpu_dev, "Failed to create platform device, %d\n", ret); ++ goto remove_opp; ++ } ++ ++ return 0; ++ ++remove_opp: ++ dev_pm_opp_remove_all_dynamic(cpu_dev); ++ ++ return ret; ++} ++ ++static int raspberrypi_cpufreq_remove(struct platform_device *pdev) ++{ ++ struct device *cpu_dev; ++ ++ cpu_dev = get_cpu_device(0); ++ if (cpu_dev) ++ dev_pm_opp_remove_all_dynamic(cpu_dev); ++ ++ platform_device_unregister(cpufreq_dt); ++ ++ return 0; ++} ++ ++/* ++ * Since the driver depends on clk-raspberrypi, which may return EPROBE_DEFER, ++ * all the activity is performed in the probe, which may be defered as well. ++ */ ++static struct platform_driver raspberrypi_cpufreq_driver = { ++ .driver = { ++ .name = "raspberrypi-cpufreq", ++ }, ++ .probe = raspberrypi_cpufreq_probe, ++ .remove = raspberrypi_cpufreq_remove, ++}; ++module_platform_driver(raspberrypi_cpufreq_driver); ++ ++MODULE_AUTHOR("Nicolas Saenz Julienne +Date: Wed, 12 Jun 2019 20:24:55 +0200 +Subject: [PATCH] firmware: raspberrypi: register clk device + +Commit 91f2cf4a6b2131016b1ae9c9500245f0572112c7 upstream. + +Since clk-raspberrypi is tied to the VC4 firmware instead of particular +hardware it's registration should be performed by the firmware driver. + +Signed-off-by: Nicolas Saenz Julienne +Acked-by: Eric Anholt +Signed-off-by: Stephen Boyd +--- + drivers/firmware/raspberrypi.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/drivers/firmware/raspberrypi.c ++++ b/drivers/firmware/raspberrypi.c +@@ -24,6 +24,7 @@ + #define MBOX_CHAN_PROPERTY 8 + + static struct platform_device *rpi_hwmon; ++static struct platform_device *rpi_clk; + + struct rpi_firmware { + struct mbox_client cl; +@@ -297,6 +298,12 @@ rpi_register_hwmon_driver(struct device + } + } + ++static void rpi_register_clk_driver(struct device *dev) ++{ ++ rpi_clk = platform_device_register_data(dev, "raspberrypi-clk", ++ -1, NULL, 0); ++} ++ + static int rpi_firmware_probe(struct platform_device *pdev) + { + struct device *dev = &pdev->dev; +@@ -326,6 +333,7 @@ static int rpi_firmware_probe(struct pla + rpi_firmware_print_firmware_revision(fw); + rpi_firmware_print_firmware_hash(fw); + rpi_register_hwmon_driver(dev, fw); ++ rpi_register_clk_driver(dev); + + return 0; + } +@@ -336,6 +344,8 @@ static int rpi_firmware_remove(struct pl + + platform_device_unregister(rpi_hwmon); + rpi_hwmon = NULL; ++ platform_device_unregister(rpi_clk); ++ rpi_clk = NULL; + mbox_free_channel(fw->chan); + g_pdev = NULL; + diff --git a/target/linux/brcm2708/patches-4.19/950-0763-clk-raspberrypi-register-platform-device-for-raspber.patch b/target/linux/brcm2708/patches-4.19/950-0763-clk-raspberrypi-register-platform-device-for-raspber.patch new file mode 100644 index 00000000000..be4d83485f5 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0763-clk-raspberrypi-register-platform-device-for-raspber.patch @@ -0,0 +1,65 @@ +From b39d5caa499559be6c309b9fd8f8b2f992504e18 Mon Sep 17 00:00:00 2001 +From: Nicolas Saenz Julienne +Date: Wed, 12 Jun 2019 20:24:57 +0200 +Subject: [PATCH] clk: raspberrypi: register platform device for + raspberrypi-cpufreq + +Commit e2bb18347c8e5c4187831f3700c380e3c759601a upstream. + +As 'clk-raspberrypi' depends on RPi's firmware interface, which might be +configured as a module, the cpu clock might not be available for the +cpufreq driver during it's init process. So we register the +'raspberrypi-cpufreq' platform device after the probe sequence succeeds. + +Signed-off-by: Nicolas Saenz Julienne +Acked-by: Eric Anholt +Signed-off-by: Stephen Boyd +--- + drivers/clk/bcm/clk-raspberrypi.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +--- a/drivers/clk/bcm/clk-raspberrypi.c ++++ b/drivers/clk/bcm/clk-raspberrypi.c +@@ -34,6 +34,7 @@ + struct raspberrypi_clk { + struct device *dev; + struct rpi_firmware *firmware; ++ struct platform_device *cpufreq; + + unsigned long min_rate; + unsigned long max_rate; +@@ -272,6 +273,7 @@ static int raspberrypi_clk_probe(struct + + rpi->dev = dev; + rpi->firmware = firmware; ++ platform_set_drvdata(pdev, rpi); + + ret = raspberrypi_register_pllb(rpi); + if (ret) { +@@ -283,6 +285,18 @@ static int raspberrypi_clk_probe(struct + if (ret) + return ret; + ++ rpi->cpufreq = platform_device_register_data(dev, "raspberrypi-cpufreq", ++ -1, NULL, 0); ++ ++ return 0; ++} ++ ++static int raspberrypi_clk_remove(struct platform_device *pdev) ++{ ++ struct raspberrypi_clk *rpi = platform_get_drvdata(pdev); ++ ++ platform_device_unregister(rpi->cpufreq); ++ + return 0; + } + +@@ -291,6 +305,7 @@ static struct platform_driver raspberryp + .name = "raspberrypi-clk", + }, + .probe = raspberrypi_clk_probe, ++ .remove = raspberrypi_clk_remove, + }; + module_platform_driver(raspberrypi_clk_driver); + diff --git a/target/linux/brcm2708/patches-4.19/950-0764-clk-bcm2835-remove-pllb.patch b/target/linux/brcm2708/patches-4.19/950-0764-clk-bcm2835-remove-pllb.patch new file mode 100644 index 00000000000..af9dde3362f --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0764-clk-bcm2835-remove-pllb.patch @@ -0,0 +1,56 @@ +From 04ebfc3e25eaa3dd77544b4b950497990b1a327e Mon Sep 17 00:00:00 2001 +From: Nicolas Saenz Julienne +Date: Wed, 12 Jun 2019 20:24:53 +0200 +Subject: [PATCH] clk: bcm2835: remove pllb + +Commit 2256d89333bd17b8b56b42734a7e1046d52f7fc3 upstream. + +Raspberry Pi's firmware controls this pll, we should use the firmware +interface to access it. + +Signed-off-by: Nicolas Saenz Julienne +Acked-by: Eric Anholt +Signed-off-by: Stephen Boyd +--- + drivers/clk/bcm/clk-bcm2835.c | 30 ++++-------------------------- + 1 file changed, 4 insertions(+), 26 deletions(-) + +--- a/drivers/clk/bcm/clk-bcm2835.c ++++ b/drivers/clk/bcm/clk-bcm2835.c +@@ -1755,32 +1755,10 @@ static const struct bcm2835_clk_desc clk + .fixed_divider = 1, + .flags = CLK_SET_RATE_PARENT), + +- /* PLLB is used for the ARM's clock. */ +- [BCM2835_PLLB] = REGISTER_PLL( +- SOC_ALL, +- .name = "pllb", +- .cm_ctrl_reg = CM_PLLB, +- .a2w_ctrl_reg = A2W_PLLB_CTRL, +- .frac_reg = A2W_PLLB_FRAC, +- .ana_reg_base = A2W_PLLB_ANA0, +- .reference_enable_mask = A2W_XOSC_CTRL_PLLB_ENABLE, +- .lock_mask = CM_LOCK_FLOCKB, +- +- .ana = &bcm2835_ana_default, +- +- .min_rate = 600000000u, +- .max_rate = 3000000000u, +- .max_fb_rate = BCM2835_MAX_FB_RATE), +- [BCM2835_PLLB_ARM] = REGISTER_PLL_DIV( +- SOC_ALL, +- .name = "pllb_arm", +- .source_pll = "pllb", +- .cm_reg = CM_PLLB, +- .a2w_reg = A2W_PLLB_ARM, +- .load_mask = CM_PLLB_LOADARM, +- .hold_mask = CM_PLLB_HOLDARM, +- .fixed_divider = 1, +- .flags = CLK_SET_RATE_PARENT), ++ /* ++ * PLLB is used for the ARM's clock. Controlled by firmware, see ++ * clk-raspberrypi.c. ++ */ + + /* + * PLLC is the core PLL, used to drive the core VPU clock. diff --git a/target/linux/brcm2708/patches-4.19/950-0765-v3d_drv-Allow-clock-retrieval-by-name.patch b/target/linux/brcm2708/patches-4.19/950-0765-v3d_drv-Allow-clock-retrieval-by-name.patch new file mode 100644 index 00000000000..b5ce5bd4ac0 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0765-v3d_drv-Allow-clock-retrieval-by-name.patch @@ -0,0 +1,23 @@ +From 2b08d751023fcdf3c37317dc769ce199ba361415 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 9 Sep 2019 23:50:44 +0100 +Subject: [PATCH] v3d_drv: Allow clock retrieval by name + +Signed-off-by: Phil Elwell +--- + drivers/gpu/drm/v3d/v3d_drv.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/gpu/drm/v3d/v3d_drv.c ++++ b/drivers/gpu/drm/v3d/v3d_drv.c +@@ -300,7 +300,9 @@ static int v3d_platform_drm_probe(struct + } + } + +- v3d->clk = devm_clk_get(dev, NULL); ++ v3d->clk = devm_clk_get(dev, "v3d"); ++ if (!v3d->clk) ++ v3d->clk = devm_clk_get(dev, NULL); + if (IS_ERR_OR_NULL(v3d->clk)) { + if (PTR_ERR(v3d->clk) != -EPROBE_DEFER) + dev_err(dev, "Failed to get clock (%ld)\n", PTR_ERR(v3d->clk)); diff --git a/target/linux/brcm2708/patches-4.19/950-0766-v3d_gem-Kick-the-clock-so-firmware-knows-we-are-usin.patch b/target/linux/brcm2708/patches-4.19/950-0766-v3d_gem-Kick-the-clock-so-firmware-knows-we-are-usin.patch new file mode 100644 index 00000000000..f10e2465f46 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0766-v3d_gem-Kick-the-clock-so-firmware-knows-we-are-usin.patch @@ -0,0 +1,27 @@ +From ccf2b80332ba86e5a69f7e3a0f097d9558ad5c95 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 5 Sep 2019 17:59:14 +0100 +Subject: [PATCH] v3d_gem: Kick the clock so firmware knows we are + using firmware clock interface + +Setting the v3d clock to low value allows firmware to handle dvfs in case +where v3d hardware is not being actively used (e.g. console use). + +Signed-off-by: popcornmix +--- + drivers/gpu/drm/v3d/v3d_gem.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/gpu/drm/v3d/v3d_gem.c ++++ b/drivers/gpu/drm/v3d/v3d_gem.c +@@ -1050,6 +1050,10 @@ v3d_gem_init(struct drm_device *dev) + mutex_init(&v3d->clk_lock); + INIT_DELAYED_WORK(&v3d->clk_down_work, v3d_clock_down_work); + ++ /* kick the clock so firmware knows we are using firmware clock interface */ ++ v3d_clock_up_get(v3d); ++ v3d_clock_up_put(v3d); ++ + /* Note: We don't allocate address 0. Various bits of HW + * treat 0 as special, such as the occlusion query counters + * where 0 means "disabled". diff --git a/target/linux/brcm2708/patches-4.19/950-0767-clk-raspberrypi-Allow-cpufreq-driver-to-also-adjust-.patch b/target/linux/brcm2708/patches-4.19/950-0767-clk-raspberrypi-Allow-cpufreq-driver-to-also-adjust-.patch new file mode 100644 index 00000000000..419902ae9ca --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0767-clk-raspberrypi-Allow-cpufreq-driver-to-also-adjust-.patch @@ -0,0 +1,25 @@ +From 801156c2f2d2d074a1d966f59fc63d8056b3cef9 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Mon, 9 Sep 2019 15:49:56 +0100 +Subject: [PATCH] clk-raspberrypi: Allow cpufreq driver to also adjust + gpu clocks + +For performance/power it is beneficial to adjust gpu clocks with arm clock. +This is how the downstream cpufreq driver works + +Signed-off-by: popcornmix +--- + drivers/clk/bcm/clk-raspberrypi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/clk/bcm/clk-raspberrypi.c ++++ b/drivers/clk/bcm/clk-raspberrypi.c +@@ -70,7 +70,7 @@ static int raspberrypi_clock_property(st + struct raspberrypi_firmware_prop msg = { + .id = cpu_to_le32(clk), + .val = cpu_to_le32(*val), +- .disable_turbo = cpu_to_le32(1), ++ .disable_turbo = cpu_to_le32(0), + }; + int ret; + diff --git a/target/linux/brcm2708/patches-4.19/950-0768-clk-raspberrypi-Also-support-v3d-clock.patch b/target/linux/brcm2708/patches-4.19/950-0768-clk-raspberrypi-Also-support-v3d-clock.patch new file mode 100644 index 00000000000..c145f2faa63 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0768-clk-raspberrypi-Also-support-v3d-clock.patch @@ -0,0 +1,640 @@ +From 679f68410271a32f200e48b501027f68bd114d5c Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Wed, 21 Aug 2019 14:55:56 +0100 +Subject: [PATCH] clk-raspberrypi: Also support v3d clock + +Signed-off-by: popcornmix +--- + drivers/clk/bcm/clk-raspberrypi.c | 497 ++++++++++++++++++++++++------ + 1 file changed, 408 insertions(+), 89 deletions(-) + +--- a/drivers/clk/bcm/clk-raspberrypi.c ++++ b/drivers/clk/bcm/clk-raspberrypi.c +@@ -15,33 +15,103 @@ + #include + #include + #include +- ++#include + #include + + #define RPI_FIRMWARE_ARM_CLK_ID 0x00000003 ++#define RPI_FIRMWARE_V3D_CLK_ID 0x00000005 + + #define RPI_FIRMWARE_STATE_ENABLE_BIT BIT(0) + #define RPI_FIRMWARE_STATE_WAIT_BIT BIT(1) + +-/* +- * Even though the firmware interface alters 'pllb' the frequencies are +- * provided as per 'pllb_arm'. We need to scale before passing them trough. +- */ +-#define RPI_FIRMWARE_PLLB_ARM_DIV_RATE 2 +- + #define A2W_PLL_FRAC_BITS 20 + ++#define SOC_BCM2835 BIT(0) ++#define SOC_BCM2711 BIT(1) ++#define SOC_ALL (SOC_BCM2835 | SOC_BCM2711) ++ + struct raspberrypi_clk { + struct device *dev; + struct rpi_firmware *firmware; + struct platform_device *cpufreq; ++}; ++ ++typedef int (*raspberrypi_clk_register)(struct raspberrypi_clk *rpi, ++ const void *data); ++ ++ ++/* assignment helper macros for different clock types */ ++#define _REGISTER(f, s, ...) { .clk_register = (raspberrypi_clk_register)f, \ ++ .supported = s, \ ++ .data = __VA_ARGS__ } ++#define REGISTER_PLL(s, ...) _REGISTER(&raspberrypi_register_pll, \ ++ s, \ ++ &(struct raspberrypi_pll_data) \ ++ {__VA_ARGS__}) ++#define REGISTER_PLL_DIV(s, ...) _REGISTER(&raspberrypi_register_pll_divider, \ ++ s, \ ++ &(struct raspberrypi_pll_divider_data) \ ++ {__VA_ARGS__}) ++#define REGISTER_CLK(s, ...) _REGISTER(&raspberrypi_register_clock, \ ++ s, \ ++ &(struct raspberrypi_clock_data) \ ++ {__VA_ARGS__}) ++ ++ ++struct raspberrypi_pll_data { ++ const char *name; ++ const char *const *parents; ++ int num_parents; ++ u32 clock_id; ++}; ++ ++struct raspberrypi_clock_data { ++ const char *name; ++ const char *const *parents; ++ int num_parents; ++ u32 flags; ++ u32 clock_id; ++}; ++ ++struct raspberrypi_pll_divider_data { ++ const char *name; ++ const char *divider_name; ++ const char *lookup; ++ const char *source_pll; ++ ++ u32 fixed_divider; ++ u32 flags; ++ u32 clock_id; ++}; + +- unsigned long min_rate; +- unsigned long max_rate; ++struct raspberrypi_clk_desc { ++ raspberrypi_clk_register clk_register; ++ unsigned int supported; ++ const void *data; ++}; + +- struct clk_hw pllb; +- struct clk_hw *pllb_arm; +- struct clk_lookup *pllb_arm_lookup; ++struct raspberrypi_clock { ++ struct clk_hw hw; ++ struct raspberrypi_clk *rpi; ++ u32 min_rate; ++ u32 max_rate; ++ const struct raspberrypi_clock_data *data; ++}; ++ ++struct raspberrypi_pll { ++ struct clk_hw hw; ++ struct raspberrypi_clk *rpi; ++ u32 min_rate; ++ u32 max_rate; ++ const struct raspberrypi_pll_data *data; ++}; ++ ++struct raspberrypi_pll_divider { ++ struct clk_divider div; ++ struct raspberrypi_clk *rpi; ++ u32 min_rate; ++ u32 max_rate; ++ const struct raspberrypi_pll_divider_data *data; + }; + + /* +@@ -83,56 +153,49 @@ static int raspberrypi_clock_property(st + return 0; + } + +-static int raspberrypi_fw_pll_is_on(struct clk_hw *hw) ++static int raspberrypi_fw_is_on(struct raspberrypi_clk *rpi, u32 clock_id, const char *name) + { +- struct raspberrypi_clk *rpi = container_of(hw, struct raspberrypi_clk, +- pllb); + u32 val = 0; + int ret; + + ret = raspberrypi_clock_property(rpi->firmware, + RPI_FIRMWARE_GET_CLOCK_STATE, +- RPI_FIRMWARE_ARM_CLK_ID, &val); ++ clock_id, &val); + if (ret) + return 0; + + return !!(val & RPI_FIRMWARE_STATE_ENABLE_BIT); + } + +- +-static unsigned long raspberrypi_fw_pll_get_rate(struct clk_hw *hw, +- unsigned long parent_rate) ++static unsigned long raspberrypi_fw_get_rate(struct raspberrypi_clk *rpi, ++ u32 clock_id, const char *name, unsigned long parent_rate) + { +- struct raspberrypi_clk *rpi = container_of(hw, struct raspberrypi_clk, +- pllb); + u32 val = 0; + int ret; + + ret = raspberrypi_clock_property(rpi->firmware, + RPI_FIRMWARE_GET_CLOCK_RATE, +- RPI_FIRMWARE_ARM_CLK_ID, ++ clock_id, + &val); + if (ret) +- return ret; +- +- return val * RPI_FIRMWARE_PLLB_ARM_DIV_RATE; ++ dev_err_ratelimited(rpi->dev, "Failed to get %s frequency: %d", ++ name, ret); ++ return val; + } + +-static int raspberrypi_fw_pll_set_rate(struct clk_hw *hw, unsigned long rate, +- unsigned long parent_rate) ++static int raspberrypi_fw_set_rate(struct raspberrypi_clk *rpi, ++ u32 clock_id, const char *name, u32 rate, ++ unsigned long parent_rate) + { +- struct raspberrypi_clk *rpi = container_of(hw, struct raspberrypi_clk, +- pllb); +- u32 new_rate = rate / RPI_FIRMWARE_PLLB_ARM_DIV_RATE; + int ret; + + ret = raspberrypi_clock_property(rpi->firmware, + RPI_FIRMWARE_SET_CLOCK_RATE, +- RPI_FIRMWARE_ARM_CLK_ID, +- &new_rate); ++ clock_id, ++ &rate); + if (ret) + dev_err_ratelimited(rpi->dev, "Failed to change %s frequency: %d", +- clk_hw_get_name(hw), ret); ++ name, ret); + + return ret; + } +@@ -141,16 +204,15 @@ static int raspberrypi_fw_pll_set_rate(s + * Sadly there is no firmware rate rounding interface. We borrowed it from + * clk-bcm2835. + */ +-static int raspberrypi_pll_determine_rate(struct clk_hw *hw, ++static int raspberrypi_determine_rate(struct raspberrypi_clk *rpi, ++ u32 clock_id, const char *name, unsigned long min_rate, unsigned long max_rate, + struct clk_rate_request *req) + { +- struct raspberrypi_clk *rpi = container_of(hw, struct raspberrypi_clk, +- pllb); + u64 div, final_rate; + u32 ndiv, fdiv; + + /* We can't use req->rate directly as it would overflow */ +- final_rate = clamp(req->rate, rpi->min_rate, rpi->max_rate); ++ final_rate = clamp(req->rate, min_rate, max_rate); + + div = (u64)final_rate << A2W_PLL_FRAC_BITS; + do_div(div, req->best_parent_rate); +@@ -166,6 +228,125 @@ static int raspberrypi_pll_determine_rat + return 0; + } + ++static int raspberrypi_fw_clock_is_on(struct clk_hw *hw) ++{ ++ struct raspberrypi_clock *pll = container_of(hw, struct raspberrypi_clock, hw); ++ struct raspberrypi_clk *rpi = pll->rpi; ++ const struct raspberrypi_clock_data *data = pll->data; ++ ++ return raspberrypi_fw_is_on(rpi, data->clock_id, data->name); ++} ++ ++static unsigned long raspberrypi_fw_clock_get_rate(struct clk_hw *hw, ++ unsigned long parent_rate) ++{ ++ struct raspberrypi_clock *pll = container_of(hw, struct raspberrypi_clock, hw); ++ struct raspberrypi_clk *rpi = pll->rpi; ++ const struct raspberrypi_clock_data *data = pll->data; ++ ++ return raspberrypi_fw_get_rate(rpi, data->clock_id, data->name, parent_rate); ++} ++ ++static int raspberrypi_fw_clock_set_rate(struct clk_hw *hw, unsigned long rate, ++ unsigned long parent_rate) ++{ ++ struct raspberrypi_clock *pll = container_of(hw, struct raspberrypi_clock, hw); ++ struct raspberrypi_clk *rpi = pll->rpi; ++ const struct raspberrypi_clock_data *data = pll->data; ++ ++ return raspberrypi_fw_set_rate(rpi, data->clock_id, data->name, rate, parent_rate); ++} ++ ++static int raspberrypi_clock_determine_rate(struct clk_hw *hw, ++ struct clk_rate_request *req) ++{ ++ struct raspberrypi_clock *pll = container_of(hw, struct raspberrypi_clock, hw); ++ struct raspberrypi_clk *rpi = pll->rpi; ++ const struct raspberrypi_clock_data *data = pll->data; ++ ++ return raspberrypi_determine_rate(rpi, data->clock_id, data->name, pll->min_rate, pll->max_rate, req); ++} ++ ++static int raspberrypi_fw_pll_is_on(struct clk_hw *hw) ++{ ++ struct raspberrypi_pll *pll = container_of(hw, struct raspberrypi_pll, hw); ++ struct raspberrypi_clk *rpi = pll->rpi; ++ const struct raspberrypi_pll_data *data = pll->data; ++ ++ return raspberrypi_fw_is_on(rpi, data->clock_id, data->name); ++} ++ ++static unsigned long raspberrypi_fw_pll_get_rate(struct clk_hw *hw, ++ unsigned long parent_rate) ++{ ++ struct raspberrypi_pll *pll = container_of(hw, struct raspberrypi_pll, hw); ++ struct raspberrypi_clk *rpi = pll->rpi; ++ const struct raspberrypi_pll_data *data = pll->data; ++ ++ return raspberrypi_fw_get_rate(rpi, data->clock_id, data->name, parent_rate); ++} ++ ++static int raspberrypi_fw_pll_set_rate(struct clk_hw *hw, unsigned long rate, ++ unsigned long parent_rate) ++{ ++ struct raspberrypi_pll *pll = container_of(hw, struct raspberrypi_pll, hw); ++ struct raspberrypi_clk *rpi = pll->rpi; ++ const struct raspberrypi_pll_data *data = pll->data; ++ ++ return raspberrypi_fw_set_rate(rpi, data->clock_id, data->name, rate, parent_rate); ++} ++ ++static int raspberrypi_pll_determine_rate(struct clk_hw *hw, ++ struct clk_rate_request *req) ++{ ++ struct raspberrypi_pll *pll = container_of(hw, struct raspberrypi_pll, hw); ++ struct raspberrypi_clk *rpi = pll->rpi; ++ const struct raspberrypi_pll_data *data = pll->data; ++ ++ return raspberrypi_determine_rate(rpi, data->clock_id, data->name, pll->min_rate, pll->max_rate, req); ++} ++ ++ ++static int raspberrypi_fw_pll_div_is_on(struct clk_hw *hw) ++{ ++ struct raspberrypi_pll_divider *pll = container_of(hw, struct raspberrypi_pll_divider, div.hw); ++ struct raspberrypi_clk *rpi = pll->rpi; ++ const struct raspberrypi_pll_divider_data *data = pll->data; ++ ++ return raspberrypi_fw_is_on(rpi, data->clock_id, data->name); ++} ++ ++static unsigned long raspberrypi_fw_pll_div_get_rate(struct clk_hw *hw, ++ unsigned long parent_rate) ++{ ++ struct raspberrypi_pll_divider *pll = container_of(hw, struct raspberrypi_pll_divider, div.hw); ++ struct raspberrypi_clk *rpi = pll->rpi; ++ const struct raspberrypi_pll_divider_data *data = pll->data; ++ ++ return raspberrypi_fw_get_rate(rpi, data->clock_id, data->name, parent_rate); ++} ++ ++static int raspberrypi_fw_pll_div_set_rate(struct clk_hw *hw, unsigned long rate, ++ unsigned long parent_rate) ++{ ++ struct raspberrypi_pll_divider *pll = container_of(hw, struct raspberrypi_pll_divider, div.hw); ++ struct raspberrypi_clk *rpi = pll->rpi; ++ const struct raspberrypi_pll_divider_data *data = pll->data; ++ ++ return raspberrypi_fw_set_rate(rpi, data->clock_id, data->name, rate, parent_rate); ++} ++ ++static int raspberrypi_pll_div_determine_rate(struct clk_hw *hw, ++ struct clk_rate_request *req) ++{ ++ struct raspberrypi_pll_divider *pll = container_of(hw, struct raspberrypi_pll_divider, div.hw); ++ struct raspberrypi_clk *rpi = pll->rpi; ++ const struct raspberrypi_pll_divider_data *data = pll->data; ++ ++ return raspberrypi_determine_rate(rpi, data->clock_id, data->name, pll->min_rate, pll->max_rate, req); ++} ++ ++ + static const struct clk_ops raspberrypi_firmware_pll_clk_ops = { + .is_prepared = raspberrypi_fw_pll_is_on, + .recalc_rate = raspberrypi_fw_pll_get_rate, +@@ -173,87 +354,225 @@ static const struct clk_ops raspberrypi_ + .determine_rate = raspberrypi_pll_determine_rate, + }; + +-static int raspberrypi_register_pllb(struct raspberrypi_clk *rpi) ++static const struct clk_ops raspberrypi_firmware_pll_divider_clk_ops = { ++ .is_prepared = raspberrypi_fw_pll_div_is_on, ++ .recalc_rate = raspberrypi_fw_pll_div_get_rate, ++ .set_rate = raspberrypi_fw_pll_div_set_rate, ++ .determine_rate = raspberrypi_pll_div_determine_rate, ++}; ++ ++static const struct clk_ops raspberrypi_firmware_clk_ops = { ++ .is_prepared = raspberrypi_fw_clock_is_on, ++ .recalc_rate = raspberrypi_fw_clock_get_rate, ++ .set_rate = raspberrypi_fw_clock_set_rate, ++ .determine_rate = raspberrypi_clock_determine_rate, ++}; ++ ++ ++static int raspberrypi_get_clock_range(struct raspberrypi_clk *rpi, u32 clock_id, u32 *min_rate, u32 *max_rate) + { +- u32 min_rate = 0, max_rate = 0; ++ int ret; ++ ++ /* Get min & max rates set by the firmware */ ++ ret = raspberrypi_clock_property(rpi->firmware, ++ RPI_FIRMWARE_GET_MIN_CLOCK_RATE, ++ clock_id, ++ min_rate); ++ if (ret) { ++ dev_err(rpi->dev, "Failed to get clock %d min freq: %d (%d)\n", ++ clock_id, *min_rate, ret); ++ return ret; ++ } ++ ++ ret = raspberrypi_clock_property(rpi->firmware, ++ RPI_FIRMWARE_GET_MAX_CLOCK_RATE, ++ clock_id, ++ max_rate); ++ if (ret) { ++ dev_err(rpi->dev, "Failed to get clock %d max freq: %d (%d)\n", ++ clock_id, *max_rate, ret); ++ return ret; ++ } ++ return 0; ++} ++ ++ ++static int raspberrypi_register_pll(struct raspberrypi_clk *rpi, ++ const struct raspberrypi_pll_data *data) ++{ ++ struct raspberrypi_pll *pll; + struct clk_init_data init; + int ret; + + memset(&init, 0, sizeof(init)); + + /* All of the PLLs derive from the external oscillator. */ +- init.parent_names = (const char *[]){ "osc" }; +- init.num_parents = 1; +- init.name = "pllb"; ++ init.parent_names = data->parents; ++ init.num_parents = data->num_parents; ++ init.name = data->name; + init.ops = &raspberrypi_firmware_pll_clk_ops; + init.flags = CLK_GET_RATE_NOCACHE | CLK_IGNORE_UNUSED; + +- /* Get min & max rates set by the firmware */ +- ret = raspberrypi_clock_property(rpi->firmware, +- RPI_FIRMWARE_GET_MIN_CLOCK_RATE, +- RPI_FIRMWARE_ARM_CLK_ID, +- &min_rate); ++ pll = kzalloc(sizeof(*pll), GFP_KERNEL); ++ if (!pll) ++ return -ENOMEM; ++ pll->rpi = rpi; ++ pll->data = data; ++ pll->hw.init = &init; ++ ++ ret = raspberrypi_get_clock_range(rpi, data->clock_id, &pll->min_rate, &pll->max_rate); + if (ret) { +- dev_err(rpi->dev, "Failed to get %s min freq: %d\n", +- init.name, ret); ++ dev_err(rpi->dev, "%s: raspberrypi_get_clock_range(%s) failed: %d\n", __func__, init.name, ret); + return ret; + } + +- ret = raspberrypi_clock_property(rpi->firmware, +- RPI_FIRMWARE_GET_MAX_CLOCK_RATE, +- RPI_FIRMWARE_ARM_CLK_ID, +- &max_rate); ++ ret = devm_clk_hw_register(rpi->dev, &pll->hw); + if (ret) { +- dev_err(rpi->dev, "Failed to get %s max freq: %d\n", +- init.name, ret); ++ dev_err(rpi->dev, "%s: devm_clk_hw_register(%s) failed: %d\n", __func__, init.name, ret); + return ret; + } ++ return 0; ++} + +- if (!min_rate || !max_rate) { +- dev_err(rpi->dev, "Unexpected frequency range: min %u, max %u\n", +- min_rate, max_rate); +- return -EINVAL; +- } ++static int ++raspberrypi_register_pll_divider(struct raspberrypi_clk *rpi, ++ const struct raspberrypi_pll_divider_data *data) ++{ ++ struct raspberrypi_pll_divider *divider; ++ struct clk_init_data init; ++ int ret; ++ ++ memset(&init, 0, sizeof(init)); ++ ++ init.parent_names = &data->source_pll; ++ init.num_parents = 1; ++ init.name = data->name; ++ init.ops = &raspberrypi_firmware_pll_divider_clk_ops; ++ init.flags = data->flags | CLK_IGNORE_UNUSED; + +- dev_info(rpi->dev, "CPU frequency range: min %u, max %u\n", +- min_rate, max_rate); ++ divider = devm_kzalloc(rpi->dev, sizeof(*divider), GFP_KERNEL); ++ if (!divider) ++ return -ENOMEM; ++ ++ divider->div.hw.init = &init; ++ divider->rpi = rpi; ++ divider->data = data; ++ ++ ret = raspberrypi_get_clock_range(rpi, data->clock_id, ÷r->min_rate, ÷r->max_rate); ++ if (ret) { ++ dev_err(rpi->dev, "%s: raspberrypi_get_clock_range(%s) failed: %d\n", __func__, init.name, ret); ++ return ret; ++ } + +- rpi->min_rate = min_rate * RPI_FIRMWARE_PLLB_ARM_DIV_RATE; +- rpi->max_rate = max_rate * RPI_FIRMWARE_PLLB_ARM_DIV_RATE; ++ ret = devm_clk_hw_register(rpi->dev, ÷r->div.hw); ++ if (ret) { ++ dev_err(rpi->dev, "%s: devm_clk_hw_register(%s) failed: %d\n", __func__, init.name, ret); ++ return ret; ++ } + +- rpi->pllb.init = &init; ++ /* ++ * PLLH's channels have a fixed divide by 10 afterwards, which ++ * is what our consumers are actually using. ++ */ ++ if (data->fixed_divider != 1) { ++ struct clk_lookup *lookup; ++ struct clk_hw *clk = clk_hw_register_fixed_factor(rpi->dev, ++ data->divider_name, ++ data->name, ++ CLK_SET_RATE_PARENT, ++ 1, ++ data->fixed_divider); ++ if (IS_ERR(clk)) { ++ dev_err(rpi->dev, "%s: clk_hw_register_fixed_factor(%s) failed: %ld\n", __func__, init.name, PTR_ERR(clk)); ++ return PTR_ERR(clk); ++ } ++ if (data->lookup) { ++ lookup = clkdev_hw_create(clk, NULL, data->lookup); ++ if (IS_ERR(lookup)) { ++ dev_err(rpi->dev, "%s: clk_hw_register_fixed_factor(%s) failed: %ld\n", __func__, init.name, PTR_ERR(lookup)); ++ return PTR_ERR(lookup); ++ } ++ } ++ } + +- return devm_clk_hw_register(rpi->dev, &rpi->pllb); ++ return 0; + } + +-static int raspberrypi_register_pllb_arm(struct raspberrypi_clk *rpi) ++static int raspberrypi_register_clock(struct raspberrypi_clk *rpi, ++ const struct raspberrypi_clock_data *data) + { +- rpi->pllb_arm = clk_hw_register_fixed_factor(rpi->dev, +- "pllb_arm", "pllb", +- CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE, +- 1, 2); +- if (IS_ERR(rpi->pllb_arm)) { +- dev_err(rpi->dev, "Failed to initialize pllb_arm\n"); +- return PTR_ERR(rpi->pllb_arm); +- } ++ struct raspberrypi_clock *clock; ++ struct clk_init_data init; ++ struct clk *clk; ++ int ret; ++ ++ memset(&init, 0, sizeof(init)); ++ init.parent_names = data->parents; ++ init.num_parents = data->num_parents; ++ init.name = data->name; ++ init.flags = data->flags | CLK_IGNORE_UNUSED; + +- rpi->pllb_arm_lookup = clkdev_hw_create(rpi->pllb_arm, NULL, "cpu0"); +- if (!rpi->pllb_arm_lookup) { +- dev_err(rpi->dev, "Failed to initialize pllb_arm_lookup\n"); +- clk_hw_unregister_fixed_factor(rpi->pllb_arm); ++ init.ops = &raspberrypi_firmware_clk_ops; ++ ++ clock = devm_kzalloc(rpi->dev, sizeof(*clock), GFP_KERNEL); ++ if (!clock) + return -ENOMEM; +- } + ++ clock->rpi = rpi; ++ clock->data = data; ++ clock->hw.init = &init; ++ ++ ret = raspberrypi_get_clock_range(rpi, data->clock_id, &clock->min_rate, &clock->max_rate); ++ if (ret) { ++ dev_err(rpi->dev, "%s: raspberrypi_get_clock_range(%s) failed: %d\n", __func__, init.name, ret); ++ return ret; ++ } ++ clk = devm_clk_register(rpi->dev, &clock->hw); ++ if (IS_ERR(clk)) { ++ dev_err(rpi->dev, "%s: devm_clk_register(%s) failed: %ld\n", __func__, init.name, PTR_ERR(clk)); ++ return PTR_ERR(clk); ++ } ++ ret = clk_register_clkdev(clk, init.name, NULL); ++ if (ret) { ++ dev_err(rpi->dev, "%s: clk_register_clkdev(%s) failed: %d\n", __func__, init.name, ret); ++ return ret; ++ } + return 0; + } + ++ ++/* ++ * the real definition of all the pll, pll_dividers and clocks ++ * these make use of the above REGISTER_* macros ++ */ ++static const struct raspberrypi_clk_desc clk_desc_array[] = { ++ /* the PLL + PLL dividers */ ++ [BCM2835_CLOCK_V3D] = REGISTER_CLK( ++ SOC_ALL, ++ .name = "v3d", ++ .parents = (const char *[]){ "osc" }, ++ .num_parents = 1, ++ .clock_id = RPI_FIRMWARE_V3D_CLK_ID), ++ [BCM2835_PLLB_ARM] = REGISTER_PLL_DIV( ++ SOC_ALL, ++ .name = "pllb", ++ .source_pll = "osc", ++ .divider_name = "pllb_arm", ++ .lookup = "cpu0", ++ .fixed_divider = 2, ++ .clock_id = RPI_FIRMWARE_ARM_CLK_ID, ++ .flags = CLK_SET_RATE_PARENT), ++}; ++ + static int raspberrypi_clk_probe(struct platform_device *pdev) + { + struct device_node *firmware_node; + struct device *dev = &pdev->dev; + struct rpi_firmware *firmware; + struct raspberrypi_clk *rpi; +- int ret; ++ const struct raspberrypi_clk_desc *desc; ++ const size_t asize = ARRAY_SIZE(clk_desc_array); ++ int i; + + firmware_node = of_find_compatible_node(NULL, NULL, + "raspberrypi,bcm2835-firmware"); +@@ -275,16 +594,16 @@ static int raspberrypi_clk_probe(struct + rpi->firmware = firmware; + platform_set_drvdata(pdev, rpi); + +- ret = raspberrypi_register_pllb(rpi); +- if (ret) { +- dev_err(dev, "Failed to initialize pllb, %d\n", ret); +- return ret; ++ for (i = 0; i < asize; i++) { ++ desc = &clk_desc_array[i]; ++ if (desc->clk_register && desc->data /*&& ++ (desc->supported & pdata->soc)*/) { ++ int ret = desc->clk_register(rpi, desc->data); ++ if (ret) ++ return ret; ++ } + } + +- ret = raspberrypi_register_pllb_arm(rpi); +- if (ret) +- return ret; +- + rpi->cpufreq = platform_device_register_data(dev, "raspberrypi-cpufreq", + -1, NULL, 0); + diff --git a/target/linux/brcm2708/patches-4.19/950-0769-clk-bcm2835-Disable-v3d-clock.patch b/target/linux/brcm2708/patches-4.19/950-0769-clk-bcm2835-Disable-v3d-clock.patch new file mode 100644 index 00000000000..34de4de8aa6 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0769-clk-bcm2835-Disable-v3d-clock.patch @@ -0,0 +1,58 @@ +From e8e99169991da84d59f1ed70de9621e31b67d505 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Tue, 3 Sep 2019 20:28:00 +0100 +Subject: [PATCH] clk-bcm2835: Disable v3d clock + +This is controlled by firmware, see clk-raspberrypi.c + +Signed-off-by: popcornmix +--- + drivers/clk/bcm/clk-bcm2835.c | 30 ++++++++++++------------------ + 1 file changed, 12 insertions(+), 18 deletions(-) + +--- a/drivers/clk/bcm/clk-bcm2835.c ++++ b/drivers/clk/bcm/clk-bcm2835.c +@@ -1725,16 +1725,12 @@ static const struct bcm2835_clk_desc clk + .hold_mask = CM_PLLA_HOLDCORE, + .fixed_divider = 1, + .flags = CLK_SET_RATE_PARENT), +- [BCM2835_PLLA_PER] = REGISTER_PLL_DIV( +- SOC_ALL, +- .name = "plla_per", +- .source_pll = "plla", +- .cm_reg = CM_PLLA, +- .a2w_reg = A2W_PLLA_PER, +- .load_mask = CM_PLLA_LOADPER, +- .hold_mask = CM_PLLA_HOLDPER, +- .fixed_divider = 1, +- .flags = CLK_SET_RATE_PARENT), ++ ++ /* ++ * PLLA_PER is used for gpu clocks. Controlled by firmware, see ++ * clk-raspberrypi.c. ++ */ ++ + [BCM2835_PLLA_DSI0] = REGISTER_PLL_DIV( + SOC_ALL, + .name = "plla_dsi0", +@@ -2007,14 +2003,12 @@ static const struct bcm2835_clk_desc clk + .int_bits = 6, + .frac_bits = 0, + .tcnt_mux = 3), +- [BCM2835_CLOCK_V3D] = REGISTER_VPU_CLK( +- SOC_ALL, +- .name = "v3d", +- .ctl_reg = CM_V3DCTL, +- .div_reg = CM_V3DDIV, +- .int_bits = 4, +- .frac_bits = 8, +- .tcnt_mux = 4), ++ ++ /* ++ * CLOCK_V3D is used for v3d clock. Controlled by firmware, see ++ * clk-raspberrypi.c. ++ */ ++ + /* + * VPU clock. This doesn't have an enable bit, since it drives + * the bus for everything else, and is special so it doesn't need diff --git a/target/linux/brcm2708/patches-4.19/950-0770-fixup-clk-raspberrypi-Also-support-v3d-clock.patch b/target/linux/brcm2708/patches-4.19/950-0770-fixup-clk-raspberrypi-Also-support-v3d-clock.patch new file mode 100644 index 00000000000..64efff77547 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0770-fixup-clk-raspberrypi-Also-support-v3d-clock.patch @@ -0,0 +1,29 @@ +From c4374e446b6957234432d5c3f5d5f89f1acb807d Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 7 Nov 2019 12:25:27 +0000 +Subject: [PATCH] fixup! clk-raspberrypi: Also support v3d clock + +--- + drivers/clk/bcm/clk-raspberrypi.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/clk/bcm/clk-raspberrypi.c ++++ b/drivers/clk/bcm/clk-raspberrypi.c +@@ -474,7 +474,7 @@ raspberrypi_register_pll_divider(struct + * PLLH's channels have a fixed divide by 10 afterwards, which + * is what our consumers are actually using. + */ +- if (data->fixed_divider != 1) { ++ if (data->fixed_divider != 0) { + struct clk_lookup *lookup; + struct clk_hw *clk = clk_hw_register_fixed_factor(rpi->dev, + data->divider_name, +@@ -559,7 +559,7 @@ static const struct raspberrypi_clk_desc + .source_pll = "osc", + .divider_name = "pllb_arm", + .lookup = "cpu0", +- .fixed_divider = 2, ++ .fixed_divider = 1, + .clock_id = RPI_FIRMWARE_ARM_CLK_ID, + .flags = CLK_SET_RATE_PARENT), + }; diff --git a/target/linux/brcm2708/patches-4.19/950-0771-fixup-clk-raspberrypi-Also-support-v3d-clock.patch b/target/linux/brcm2708/patches-4.19/950-0771-fixup-clk-raspberrypi-Also-support-v3d-clock.patch new file mode 100644 index 00000000000..a15f41f45a0 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0771-fixup-clk-raspberrypi-Also-support-v3d-clock.patch @@ -0,0 +1,36 @@ +From 05c745c001c8c82bbba8a6d953ad77ad25c92c5f Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 7 Nov 2019 14:11:08 +0000 +Subject: [PATCH] fixup! clk-raspberrypi: Also support v3d clock + +--- + drivers/clk/bcm/clk-raspberrypi.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/drivers/clk/bcm/clk-raspberrypi.c ++++ b/drivers/clk/bcm/clk-raspberrypi.c +@@ -351,21 +351,21 @@ static const struct clk_ops raspberrypi_ + .is_prepared = raspberrypi_fw_pll_is_on, + .recalc_rate = raspberrypi_fw_pll_get_rate, + .set_rate = raspberrypi_fw_pll_set_rate, +- .determine_rate = raspberrypi_pll_determine_rate, ++ //.determine_rate = raspberrypi_pll_determine_rate, + }; + + static const struct clk_ops raspberrypi_firmware_pll_divider_clk_ops = { + .is_prepared = raspberrypi_fw_pll_div_is_on, + .recalc_rate = raspberrypi_fw_pll_div_get_rate, + .set_rate = raspberrypi_fw_pll_div_set_rate, +- .determine_rate = raspberrypi_pll_div_determine_rate, ++ //.determine_rate = raspberrypi_pll_div_determine_rate, + }; + + static const struct clk_ops raspberrypi_firmware_clk_ops = { + .is_prepared = raspberrypi_fw_clock_is_on, + .recalc_rate = raspberrypi_fw_clock_get_rate, + .set_rate = raspberrypi_fw_clock_set_rate, +- .determine_rate = raspberrypi_clock_determine_rate, ++ //.determine_rate = raspberrypi_clock_determine_rate, + }; + + diff --git a/target/linux/brcm2708/patches-4.19/950-0772-raspberrypi-cpufreq-Only-report-integer-pll-divisor-.patch b/target/linux/brcm2708/patches-4.19/950-0772-raspberrypi-cpufreq-Only-report-integer-pll-divisor-.patch new file mode 100644 index 00000000000..04406c80267 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0772-raspberrypi-cpufreq-Only-report-integer-pll-divisor-.patch @@ -0,0 +1,40 @@ +From 1c038a58f4183602fc1699d68b21f5e22a12176d Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 13 Sep 2019 13:45:11 +0100 +Subject: [PATCH] raspberrypi-cpufreq: Only report integer pll divisor + frequencies + +--- + drivers/cpufreq/raspberrypi-cpufreq.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +--- a/drivers/cpufreq/raspberrypi-cpufreq.c ++++ b/drivers/cpufreq/raspberrypi-cpufreq.c +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -22,6 +23,7 @@ static int raspberrypi_cpufreq_probe(str + unsigned long min, max; + unsigned long rate; + struct clk *clk; ++ int div; + int ret; + + cpu_dev = get_cpu_device(0); +@@ -44,7 +46,10 @@ static int raspberrypi_cpufreq_probe(str + max = roundup(clk_round_rate(clk, ULONG_MAX), RASPBERRYPI_FREQ_INTERVAL); + clk_put(clk); + +- for (rate = min; rate <= max; rate += RASPBERRYPI_FREQ_INTERVAL) { ++ for (div = 2; ; div++) { ++ rate = div_u64((u64)max * 2, div); ++ if (rate < min) ++ break; + ret = dev_pm_opp_add(cpu_dev, rate, 0); + if (ret) + goto remove_opp; diff --git a/target/linux/brcm2708/patches-4.19/950-0773-fixup-clk-raspberrypi-Also-support-v3d-clock.patch b/target/linux/brcm2708/patches-4.19/950-0773-fixup-clk-raspberrypi-Also-support-v3d-clock.patch new file mode 100644 index 00000000000..0239b19ff22 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0773-fixup-clk-raspberrypi-Also-support-v3d-clock.patch @@ -0,0 +1,54 @@ +From afb2cfe3056fc643cee8ae25991f4b9c22d48bef Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Thu, 7 Nov 2019 14:23:38 +0000 +Subject: [PATCH] fixup! clk-raspberrypi: Also support v3d clock + +--- + drivers/clk/bcm/clk-raspberrypi.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +--- a/drivers/clk/bcm/clk-raspberrypi.c ++++ b/drivers/clk/bcm/clk-raspberrypi.c +@@ -208,6 +208,9 @@ static int raspberrypi_determine_rate(st + u32 clock_id, const char *name, unsigned long min_rate, unsigned long max_rate, + struct clk_rate_request *req) + { ++#if 1 ++ req->rate = clamp(req->rate, min_rate, max_rate); ++#else + u64 div, final_rate; + u32 ndiv, fdiv; + +@@ -225,6 +228,7 @@ static int raspberrypi_determine_rate(st + + req->rate = final_rate >> A2W_PLL_FRAC_BITS; + ++#endif + return 0; + } + +@@ -351,21 +355,21 @@ static const struct clk_ops raspberrypi_ + .is_prepared = raspberrypi_fw_pll_is_on, + .recalc_rate = raspberrypi_fw_pll_get_rate, + .set_rate = raspberrypi_fw_pll_set_rate, +- //.determine_rate = raspberrypi_pll_determine_rate, ++ .determine_rate = raspberrypi_pll_determine_rate, + }; + + static const struct clk_ops raspberrypi_firmware_pll_divider_clk_ops = { + .is_prepared = raspberrypi_fw_pll_div_is_on, + .recalc_rate = raspberrypi_fw_pll_div_get_rate, + .set_rate = raspberrypi_fw_pll_div_set_rate, +- //.determine_rate = raspberrypi_pll_div_determine_rate, ++ .determine_rate = raspberrypi_pll_div_determine_rate, + }; + + static const struct clk_ops raspberrypi_firmware_clk_ops = { + .is_prepared = raspberrypi_fw_clock_is_on, + .recalc_rate = raspberrypi_fw_clock_get_rate, + .set_rate = raspberrypi_fw_clock_set_rate, +- //.determine_rate = raspberrypi_clock_determine_rate, ++ .determine_rate = raspberrypi_clock_determine_rate, + }; + + diff --git a/target/linux/brcm2708/patches-4.19/950-0774-arm-dts-Correct-Pi-4B-LED-values.patch b/target/linux/brcm2708/patches-4.19/950-0774-arm-dts-Correct-Pi-4B-LED-values.patch new file mode 100644 index 00000000000..4f2e46b71ab --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0774-arm-dts-Correct-Pi-4B-LED-values.patch @@ -0,0 +1,39 @@ +From ea1e25b4c0a055b31a0217ffbfd6972c28643912 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Fri, 22 Nov 2019 15:08:25 +0000 +Subject: [PATCH] arm/dts: Correct Pi 4B LED values + +The initial PHY LED settings are wrong Pi 4B (the correct values got +dropped somewhere along the way). The PHY declaration should arguably +go in a separate file included by bcm2711-rpi-4-b.dts, but we can +fix that as we switch over to using more of the upstream BCM2711 +support in 5.4 and later. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2838.dtsi | 2 +- + arch/arm/boot/dts/overlays/README | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- a/arch/arm/boot/dts/bcm2838.dtsi ++++ b/arch/arm/boot/dts/bcm2838.dtsi +@@ -380,7 +380,7 @@ + /* No interrupts - use PHY_POLL */ + max-speed = <1000>; + reg = <0x1>; +- led-modes = <0x02 0x02>; ++ led-modes = <0x00 0x08>; /* link/activity link */ + }; + }; + }; +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -128,7 +128,7 @@ Params: + 8=Link 9=Activity + + eth_led1 Set mode of LED1 (usually green) (Pi3B+ default +- "6", Pi4 default "0"). See eth_led0 for legal ++ "6", Pi4 default "8"). See eth_led0 for legal + values. + + eth_max_speed Set the maximum speed a link is allowed diff --git a/target/linux/brcm2708/patches-4.19/950-0775-drm-v3d-Set-dma_mask-as-well-as-coherent_dma_mask.patch b/target/linux/brcm2708/patches-4.19/950-0775-drm-v3d-Set-dma_mask-as-well-as-coherent_dma_mask.patch new file mode 100644 index 00000000000..313aa8c3ae7 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0775-drm-v3d-Set-dma_mask-as-well-as-coherent_dma_mask.patch @@ -0,0 +1,25 @@ +From 75e50217c8c8d9ab8dc84547fd149d9bfe32ae5d Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Fri, 22 Nov 2019 16:23:32 +0000 +Subject: [PATCH] drm/v3d: Set dma_mask as well as coherent_dma_mask + +Both coherent_dma_mask and dma_mask act as constraints on allocations +and bounce buffer usage, so be sure to set dma_mask to the appropriate +value otherwise the effective mask could be incorrect. + +Signed-off-by: Phil Elwell +--- + drivers/gpu/drm/v3d/v3d_drv.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/gpu/drm/v3d/v3d_drv.c ++++ b/drivers/gpu/drm/v3d/v3d_drv.c +@@ -261,7 +261,7 @@ static int v3d_platform_drm_probe(struct + int ret; + u32 ident1; + +- dev->coherent_dma_mask = DMA_BIT_MASK(36); ++ dma_set_mask_and_coherent(dev, DMA_BIT_MASK(36)); + + v3d = kzalloc(sizeof(*v3d), GFP_KERNEL); + if (!v3d) diff --git a/target/linux/brcm2708/patches-4.19/950-0776-arm-dts-2711-Add-pcie0-alias.patch b/target/linux/brcm2708/patches-4.19/950-0776-arm-dts-2711-Add-pcie0-alias.patch new file mode 100644 index 00000000000..1f86f9d7faf --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0776-arm-dts-2711-Add-pcie0-alias.patch @@ -0,0 +1,24 @@ +From 11febee7b0326ade03f45238f136b7830d317e2e Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 28 Nov 2019 15:49:08 +0000 +Subject: [PATCH] arm/dts: 2711: Add 'pcie0' alias + +It is useful for the firmware to be able to locate the pcie DT node, +so add an alias pointing to it in the same way that "ethernet0" +points to the genet. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +@@ -30,6 +30,7 @@ + /delete-property/ ethernet; + /delete-property/ intc; + ethernet0 = &genet; ++ pcie0 = &pcie_0; + }; + }; + diff --git a/target/linux/brcm2708/patches-4.19/950-0777-spidev-Completely-disable-the-DT-warning.patch b/target/linux/brcm2708/patches-4.19/950-0777-spidev-Completely-disable-the-DT-warning.patch new file mode 100644 index 00000000000..70959de2bca --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0777-spidev-Completely-disable-the-DT-warning.patch @@ -0,0 +1,32 @@ +From ce0e4cf60033eb7e15266b329183f945f2a82c61 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 2 Dec 2019 10:28:44 +0000 +Subject: [PATCH] spidev: Completely disable the DT warning + +The upstream SPI and DT maintainers are completely opposed to declaring +in Device Tree that an SPI CS line is to be managed by the spidev +driver, even though the facility is useful on a hobbyist device like a +Raspberry Pi where arbitrary devices can be attached, and the +alternative to DT declaration (spi_board_info) has been almost entirely +rendered obsolete by DT. + +Continue to override their objections by disabling the warning. + +See: https://github.com/raspberrypi/linux/issues/3361 + https://github.com/raspberrypi/linux/issues/1054 + +Signed-off-by: Phil Elwell +--- + drivers/spi/spidev.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/spi/spidev.c ++++ b/drivers/spi/spidev.c +@@ -725,6 +725,7 @@ static int spidev_probe(struct spi_devic + * compatible string, it is a Linux implementation thing + * rather than a description of the hardware. + */ ++ if (0) /* Disable the warning - this feature is too useful */ + WARN(spi->dev.of_node && + of_device_is_compatible(spi->dev.of_node, "spidev"), + "%pOF: buggy DT: spidev listed directly in DT\n", spi->dev.of_node); diff --git a/target/linux/brcm2708/patches-4.19/950-0528-drm-vc4-Disable-V3D-interactions-if-the-v3d-componen.patch b/target/linux/brcm2708/patches-4.19/950-0778-drm-vc4-Disable-V3D-interactions-if-the-v3d-componen.patch similarity index 71% rename from target/linux/brcm2708/patches-4.19/950-0528-drm-vc4-Disable-V3D-interactions-if-the-v3d-componen.patch rename to target/linux/brcm2708/patches-4.19/950-0778-drm-vc4-Disable-V3D-interactions-if-the-v3d-componen.patch index 2adc6424925..afc94da40bc 100644 --- a/target/linux/brcm2708/patches-4.19/950-0528-drm-vc4-Disable-V3D-interactions-if-the-v3d-componen.patch +++ b/target/linux/brcm2708/patches-4.19/950-0778-drm-vc4-Disable-V3D-interactions-if-the-v3d-componen.patch @@ -1,21 +1,31 @@ -From f69f2b1354e0a548d2cb6dfdc07d37efb426eee0 Mon Sep 17 00:00:00 2001 +From 7140cf0d83c10f93ca8212edb17697baf9cafb45 Mon Sep 17 00:00:00 2001 From: Eric Anholt -Date: Wed, 20 Feb 2019 13:03:41 -0800 +Date: Mon, 1 Apr 2019 11:35:59 -0700 Subject: [PATCH] drm/vc4: Disable V3D interactions if the v3d component didn't probe. +Commit ffc26740714962e3e8801dca7ef32b636b3781db upstream. + One might want to use the VC4 display stack without using Mesa. Similar to the debugfs fixes for not having all of the possible display bits enabled, make sure you can't oops in vc4 if v3d isn't enabled. +v2: Fix matching against other v3d variants (review by Paul), don't + forget to set irq_enabled so that the vblank uapi works +v3: Use -ENODEV instead of -EINVAL on Paul's suggestion. + Signed-off-by: Eric Anholt +Link: https://patchwork.freedesktop.org/patch/msgid/20190401183559.3823-2-eric@anholt.net +Reviewed-by: Paul Kocialkowski --- - drivers/gpu/drm/vc4/vc4_drv.c | 11 +++++++++++ + drivers/gpu/drm/vc4/vc4_drv.c | 10 ++++++++++ + drivers/gpu/drm/vc4/vc4_drv.h | 1 + drivers/gpu/drm/vc4/vc4_gem.c | 10 ++++++++++ drivers/gpu/drm/vc4/vc4_irq.c | 9 +++++++++ drivers/gpu/drm/vc4/vc4_perfmon.c | 18 ++++++++++++++++++ - 4 files changed, 48 insertions(+) + drivers/gpu/drm/vc4/vc4_v3d.c | 2 +- + 6 files changed, 49 insertions(+), 1 deletion(-) --- a/drivers/gpu/drm/vc4/vc4_drv.c +++ b/drivers/gpu/drm/vc4/vc4_drv.c @@ -24,7 +34,7 @@ Signed-off-by: Eric Anholt return -EINVAL; + if (!vc4->v3d) -+ return -EINVAL; ++ return -ENODEV; + switch (args->param) { case DRM_VC4_PARAM_V3D_IDENT0: @@ -37,20 +47,29 @@ Signed-off-by: Eric Anholt int ret = 0; dev->coherent_dma_mask = DMA_BIT_MASK(32); -@@ -279,6 +283,13 @@ static int vc4_drm_bind(struct device *d +@@ -279,6 +283,12 @@ static int vc4_drm_bind(struct device *d if (!vc4) return -ENOMEM; + /* If VC4 V3D is missing, don't advertise render nodes. */ -+ node = of_find_compatible_node(NULL, NULL, "brcm,bcm2835-v3d"); -+ if (node) -+ of_node_put(node); -+ else ++ node = of_find_matching_node_and_match(NULL, vc4_v3d_dt_match, NULL); ++ if (!node || !of_device_is_available(node)) + vc4_drm_driver.driver_features &= ~DRIVER_RENDER; ++ of_node_put(node); + drm = drm_dev_alloc(&vc4_drm_driver, dev); if (IS_ERR(drm)) return PTR_ERR(drm); +--- a/drivers/gpu/drm/vc4/vc4_drv.h ++++ b/drivers/gpu/drm/vc4/vc4_drv.h +@@ -787,6 +787,7 @@ void vc4_plane_async_set_fb(struct drm_p + + /* vc4_v3d.c */ + extern struct platform_driver vc4_v3d_driver; ++extern const struct of_device_id vc4_v3d_dt_match[]; + int vc4_v3d_debugfs_ident(struct seq_file *m, void *unused); + int vc4_v3d_debugfs_regs(struct seq_file *m, void *unused); + int vc4_v3d_get_bin_slot(struct vc4_dev *vc4); --- a/drivers/gpu/drm/vc4/vc4_gem.c +++ b/drivers/gpu/drm/vc4/vc4_gem.c @@ -74,6 +74,11 @@ vc4_get_hang_state_ioctl(struct drm_devi @@ -59,7 +78,7 @@ Signed-off-by: Eric Anholt + if (!vc4->v3d) { + DRM_DEBUG("VC4_GET_HANG_STATE with no VC4 V3D probed\n"); -+ return -EINVAL; ++ return -ENODEV; + } + spin_lock_irqsave(&vc4->job_lock, irqflags); @@ -71,7 +90,7 @@ Signed-off-by: Eric Anholt + if (!vc4->v3d) { + DRM_DEBUG("VC4_SUBMIT_CL with no VC4 V3D probed\n"); -+ return -EINVAL; ++ return -ENODEV; + } + if ((args->flags & ~(VC4_SUBMIT_CL_USE_CLEAR_COLOR | @@ -124,7 +143,7 @@ Signed-off-by: Eric Anholt + if (!vc4->v3d) { + DRM_DEBUG("Creating perfmon no VC4 V3D probed\n"); -+ return -EINVAL; ++ return -ENODEV; + } + /* Number of monitored counters cannot exceed HW limits. */ @@ -141,7 +160,7 @@ Signed-off-by: Eric Anholt + if (!vc4->v3d) { + DRM_DEBUG("Destroying perfmon no VC4 V3D probed\n"); -+ return -EINVAL; ++ return -ENODEV; + } + mutex_lock(&vc4file->perfmon.lock); @@ -159,9 +178,20 @@ Signed-off-by: Eric Anholt + if (!vc4->v3d) { + DRM_DEBUG("Getting perfmon no VC4 V3D probed\n"); -+ return -EINVAL; ++ return -ENODEV; + } + mutex_lock(&vc4file->perfmon.lock); perfmon = idr_find(&vc4file->perfmon.idr, req->id); vc4_perfmon_get(perfmon); +--- a/drivers/gpu/drm/vc4/vc4_v3d.c ++++ b/drivers/gpu/drm/vc4/vc4_v3d.c +@@ -452,7 +452,7 @@ static int vc4_v3d_dev_remove(struct pla + return 0; + } + +-static const struct of_device_id vc4_v3d_dt_match[] = { ++const struct of_device_id vc4_v3d_dt_match[] = { + { .compatible = "brcm,bcm2835-v3d" }, + { .compatible = "brcm,cygnus-v3d" }, + { .compatible = "brcm,vc4-v3d" }, diff --git a/target/linux/brcm2708/patches-4.19/950-0779-sound-soc-only-first-codec-is-master-in-multicodec-s.patch b/target/linux/brcm2708/patches-4.19/950-0779-sound-soc-only-first-codec-is-master-in-multicodec-s.patch new file mode 100644 index 00000000000..dcfbb9dd1ad --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0779-sound-soc-only-first-codec-is-master-in-multicodec-s.patch @@ -0,0 +1,34 @@ +From 4ca89eb8570cb86314a5a7b55a15d15f53ce5757 Mon Sep 17 00:00:00 2001 +From: Johannes Krude +Date: Sat, 16 Nov 2019 12:41:06 +0100 +Subject: [PATCH] sound/soc: only first codec is master in multicodec + setup + +When using multiple codecs, at most one codec should generate the master +clock. All codecs except the first are therefore configured for slave +mode. + +Signed-off-by: Johannes Krude +--- + sound/soc/soc-core.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +--- a/sound/soc/soc-core.c ++++ b/sound/soc/soc-core.c +@@ -1688,8 +1688,15 @@ int snd_soc_runtime_set_dai_fmt(struct s + + for (i = 0; i < rtd->num_codecs; i++) { + struct snd_soc_dai *codec_dai = codec_dais[i]; ++ unsigned int codec_dai_fmt = dai_fmt; + +- ret = snd_soc_dai_set_fmt(codec_dai, dai_fmt); ++ // there can only be one master when using multiple codecs ++ if (i && (codec_dai_fmt & SND_SOC_DAIFMT_MASTER_MASK)) { ++ codec_dai_fmt &= ~SND_SOC_DAIFMT_MASTER_MASK; ++ codec_dai_fmt |= SND_SOC_DAIFMT_CBS_CFS; ++ } ++ ++ ret = snd_soc_dai_set_fmt(codec_dai, codec_dai_fmt); + if (ret != 0 && ret != -ENOTSUPP) { + dev_warn(codec_dai->dev, + "ASoC: Failed to set DAI format: %d\n", ret); diff --git a/target/linux/brcm2708/patches-4.19/950-0780-Allow-simultaneous-use-of-JustBoom-DAC-and-Digi.patch b/target/linux/brcm2708/patches-4.19/950-0780-Allow-simultaneous-use-of-JustBoom-DAC-and-Digi.patch new file mode 100644 index 00000000000..c8b4820c937 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0780-Allow-simultaneous-use-of-JustBoom-DAC-and-Digi.patch @@ -0,0 +1,435 @@ +From 8f11db84e124da59b8a717d66fc424ef070f4be0 Mon Sep 17 00:00:00 2001 +From: Johannes Krude +Date: Sat, 16 Nov 2019 13:14:43 +0100 +Subject: [PATCH] Allow simultaneous use of JustBoom DAC and Digi + +Signed-off-by: Johannes Krude +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 20 ++ + .../dts/overlays/justboom-both-overlay.dts | 65 +++++ + sound/soc/bcm/Kconfig | 12 + + sound/soc/bcm/Makefile | 2 + + sound/soc/bcm/justboom-both.c | 269 ++++++++++++++++++ + 11 files changed, 374 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/justboom-both-overlay.dts + create mode 100644 sound/soc/bcm/justboom-both.c + +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -86,6 +86,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + iqaudio-digi-wm8804-audio.dtbo \ + irs1125.dtbo \ + jedec-spi-nor.dtbo \ ++ justboom-both.dtbo \ + justboom-dac.dtbo \ + justboom-digi.dtbo \ + ltc294x.dtbo \ +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1388,6 +1388,26 @@ Params: flash-spi- Enables + on SPI, CS#. + + ++Name: justboom-both ++Info: Simultaneous usage of an justboom-dac and justboom-digi based ++ card ++Load: dtoverlay=justboom-both,= ++Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec ++ Digital volume control. Enable with ++ "dtoverlay=justboom-dac,24db_digital_gain" ++ (The default behaviour is that the Digital ++ volume control is limited to a maximum of ++ 0dB. ie. it can attenuate but not provide ++ gain. For most users, this will be desired ++ as it will prevent clipping. By appending ++ the 24dB_digital_gain parameter, the Digital ++ volume control will allow up to 24dB of ++ gain. If this parameter is enabled, it is the ++ responsibility of the user to ensure that ++ the Digital volume control is set to a value ++ that does not result in clipping/distortion!) ++ ++ + Name: justboom-dac + Info: Configures the JustBoom DAC HAT, Amp HAT, DAC Zero and Amp Zero audio + cards +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/justboom-both-overlay.dts +@@ -0,0 +1,65 @@ ++// SPDX-License-Identifier: GPL-2.0 ++// Definitions for JustBoom Both (Digi+DAC) ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ target = <&i2s>; ++ __overlay__ { ++ status = "okay"; ++ }; ++ }; ++ ++ fragment@1 { ++ target = <&i2c1>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ wm8804@3b { ++ #sound-dai-cells = <0>; ++ compatible = "wlf,wm8804"; ++ reg = <0x3b>; ++ PVDD-supply = <&vdd_3v3_reg>; ++ DVDD-supply = <&vdd_3v3_reg>; ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ fragment@2 { ++ target = <&i2c1>; ++ __overlay__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ pcm5122@4d { ++ #sound-dai-cells = <0>; ++ compatible = "ti,pcm5122"; ++ reg = <0x4d>; ++ AVDD-supply = <&vdd_3v3_reg>; ++ DVDD-supply = <&vdd_3v3_reg>; ++ CPVDD-supply = <&vdd_3v3_reg>; ++ status = "okay"; ++ }; ++ }; ++ }; ++ ++ fragment@3 { ++ target = <&sound>; ++ frag3: __overlay__ { ++ compatible = "justboom,justboom-both"; ++ i2s-controller = <&i2s>; ++ status = "okay"; ++ }; ++ }; ++ ++ __overrides__ { ++ 24db_digital_gain = <&frag3>,"justboom,24db_digital_gain?"; ++ }; ++}; +--- a/sound/soc/bcm/Kconfig ++++ b/sound/soc/bcm/Kconfig +@@ -102,6 +102,18 @@ config SND_BCM2708_SOC_RPI_PROTO + help + Say Y or M if you want to add support for Audio Codec Board PROTO (WM8731). + ++config SND_BCM2708_SOC_JUSTBOOM_BOTH ++ tristate "Support for simultaneous JustBoom Digi and JustBoom DAC" ++ depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S ++ select SND_SOC_WM8804 ++ select SND_SOC_PCM512x ++ help ++ Say Y or M if you want to add support for simultaneous ++ JustBoom Digi and JustBoom DAC. ++ ++ This is not the right choice if you only have one but both of ++ these cards. ++ + config SND_BCM2708_SOC_JUSTBOOM_DAC + tristate "Support for JustBoom DAC" + depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S +--- a/sound/soc/bcm/Makefile ++++ b/sound/soc/bcm/Makefile +@@ -16,6 +16,7 @@ snd-soc-hifiberry-dacplus-objs := hifibe + snd-soc-hifiberry-dacplusadc-objs := hifiberry_dacplusadc.o + snd-soc-hifiberry-dacplusadcpro-objs := hifiberry_dacplusadcpro.o + snd-soc-hifiberry-dacplusdsp-objs := hifiberry_dacplusdsp.o ++snd-soc-justboom-both-objs := justboom-both.o + snd-soc-justboom-dac-objs := justboom-dac.o + snd-soc-rpi-cirrus-objs := rpi-cirrus.o + snd-soc-rpi-proto-objs := rpi-proto.o +@@ -42,6 +43,7 @@ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_D + obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADC) += snd-soc-hifiberry-dacplusadc.o + obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADCPRO) += snd-soc-hifiberry-dacplusadcpro.o + obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSDSP) += snd-soc-hifiberry-dacplusdsp.o ++obj-$(CONFIG_SND_BCM2708_SOC_JUSTBOOM_BOTH) += snd-soc-justboom-both.o + obj-$(CONFIG_SND_BCM2708_SOC_JUSTBOOM_DAC) += snd-soc-justboom-dac.o + obj-$(CONFIG_SND_BCM2708_SOC_RPI_CIRRUS) += snd-soc-rpi-cirrus.o + obj-$(CONFIG_SND_BCM2708_SOC_RPI_PROTO) += snd-soc-rpi-proto.o +--- /dev/null ++++ b/sound/soc/bcm/justboom-both.c +@@ -0,0 +1,269 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * rpi--wm8804.c -- ALSA SoC Raspberry Pi soundcard. ++ * ++ * Authors: Johannes Krude ++ * justboom-dac.c ++ * by Milan Neskovic ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * version 2 as published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * General Public License for more details. ++ */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "../codecs/wm8804.h" ++#include "../codecs/pcm512x.h" ++ ++ ++static bool digital_gain_0db_limit = true; ++ ++static int snd_rpi_justboom_both_init(struct snd_soc_pcm_runtime *rtd) ++{ ++ struct snd_soc_component *digi = rtd->codec_dais[0]->component; ++ struct snd_soc_component *dac = rtd->codec_dais[1]->component; ++ ++ /* enable TX output */ ++ snd_soc_component_update_bits(digi, WM8804_PWRDN, 0x4, 0x0); ++ ++ snd_soc_component_update_bits(dac, PCM512x_GPIO_EN, 0x08, 0x08); ++ snd_soc_component_update_bits(dac, PCM512x_GPIO_OUTPUT_4, 0xf, 0x02); ++ snd_soc_component_update_bits(dac, PCM512x_GPIO_CONTROL_1, 0x08, 0x08); ++ ++ if (digital_gain_0db_limit) { ++ int ret; ++ struct snd_soc_card *card = rtd->card; ++ ++ ret = snd_soc_limit_volume(card, "Digital Playback Volume", ++ 207); ++ if (ret < 0) ++ dev_warn(card->dev, "Failed to set volume limit: %d\n", ++ ret); ++ } ++ ++ return 0; ++} ++ ++static int snd_rpi_justboom_both_hw_params(struct snd_pcm_substream *substream, ++ struct snd_pcm_hw_params *params) ++{ ++ struct snd_soc_pcm_runtime *rtd = substream->private_data; ++ struct snd_soc_dai *codec_dai = rtd->codec_dai; ++ struct snd_soc_component *digi = rtd->codec_dais[0]->component; ++ struct snd_soc_dai *cpu_dai = rtd->cpu_dai; ++ ++ int sysclk = 27000000; /* This is fixed on this board */ ++ ++ long mclk_freq = 0; ++ int mclk_div = 1; ++ int sampling_freq = 1; ++ ++ int ret; ++ ++ int samplerate = params_rate(params); ++ ++ if (samplerate <= 96000) { ++ mclk_freq = samplerate*256; ++ mclk_div = WM8804_MCLKDIV_256FS; ++ } else { ++ mclk_freq = samplerate*128; ++ mclk_div = WM8804_MCLKDIV_128FS; ++ } ++ ++ switch (samplerate) { ++ case 32000: ++ sampling_freq = 0x03; ++ break; ++ case 44100: ++ sampling_freq = 0x00; ++ break; ++ case 48000: ++ sampling_freq = 0x02; ++ break; ++ case 88200: ++ sampling_freq = 0x08; ++ break; ++ case 96000: ++ sampling_freq = 0x0a; ++ break; ++ case 176400: ++ sampling_freq = 0x0c; ++ break; ++ case 192000: ++ sampling_freq = 0x0e; ++ break; ++ default: ++ dev_err(rtd->card->dev, ++ "Failed to set WM8804 SYSCLK, unsupported samplerate %d\n", ++ samplerate); ++ } ++ ++ snd_soc_dai_set_clkdiv(codec_dai, WM8804_MCLK_DIV, mclk_div); ++ snd_soc_dai_set_pll(codec_dai, 0, 0, sysclk, mclk_freq); ++ ++ ret = snd_soc_dai_set_sysclk(codec_dai, WM8804_TX_CLKSRC_PLL, ++ sysclk, SND_SOC_CLOCK_OUT); ++ if (ret < 0) { ++ dev_err(rtd->card->dev, ++ "Failed to set WM8804 SYSCLK: %d\n", ret); ++ return ret; ++ } ++ ++ /* Enable TX output */ ++ snd_soc_component_update_bits(digi, WM8804_PWRDN, 0x4, 0x0); ++ ++ /* Power on */ ++ snd_soc_component_update_bits(digi, WM8804_PWRDN, 0x9, 0); ++ ++ /* set sampling frequency status bits */ ++ snd_soc_component_update_bits(digi, WM8804_SPDTX4, 0x0f, sampling_freq); ++ ++ return snd_soc_dai_set_bclk_ratio(cpu_dai, 64); ++} ++ ++static int snd_rpi_justboom_both_startup(struct snd_pcm_substream *substream) ++{ ++ struct snd_soc_pcm_runtime *rtd = substream->private_data; ++ struct snd_soc_component *digi = rtd->codec_dais[0]->component; ++ struct snd_soc_component *dac = rtd->codec_dais[1]->component; ++ ++ /* turn on digital output */ ++ snd_soc_component_update_bits(digi, WM8804_PWRDN, 0x3c, 0x00); ++ ++ snd_soc_component_update_bits(dac, PCM512x_GPIO_CONTROL_1, 0x08, 0x08); ++ ++ return 0; ++} ++ ++static void snd_rpi_justboom_both_shutdown(struct snd_pcm_substream *substream) ++{ ++ struct snd_soc_pcm_runtime *rtd = substream->private_data; ++ struct snd_soc_component *digi = rtd->codec_dais[0]->component; ++ struct snd_soc_component *dac = rtd->codec_dais[1]->component; ++ ++ snd_soc_component_update_bits(dac, PCM512x_GPIO_CONTROL_1, 0x08, 0x00); ++ ++ /* turn off output */ ++ snd_soc_component_update_bits(digi, WM8804_PWRDN, 0x3c, 0x3c); ++} ++ ++/* machine stream operations */ ++static struct snd_soc_ops snd_rpi_justboom_both_ops = { ++ .hw_params = snd_rpi_justboom_both_hw_params, ++ .startup = snd_rpi_justboom_both_startup, ++ .shutdown = snd_rpi_justboom_both_shutdown, ++}; ++ ++static struct snd_soc_dai_link_component justboom_both_codecs[] = { ++{ ++ .dai_name = "wm8804-spdif", ++ .name = "wm8804.1-003b", ++}, ++{ ++ .dai_name = "pcm512x-hifi", ++ .name = "pcm512x.1-004d", ++}, ++}; ++ ++static struct snd_soc_dai_link snd_rpi_justboom_both_dai[] = { ++{ ++ .name = "JustBoom Digi", ++ .stream_name = "JustBoom Digi HiFi", ++ .cpu_dai_name = "bcm2708-i2s.0", ++ .platform_name = "bcm2708-i2s.0", ++ .codecs = justboom_both_codecs, ++ .num_codecs = ARRAY_SIZE(justboom_both_codecs), ++ .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | ++ SND_SOC_DAIFMT_CBM_CFM, ++ .ops = &snd_rpi_justboom_both_ops, ++ .init = snd_rpi_justboom_both_init, ++}, ++}; ++ ++/* audio machine driver */ ++static struct snd_soc_card snd_rpi_justboom_both = { ++ .name = "snd_rpi_justboom_both", ++ .driver_name = "JustBoomBoth", ++ .owner = THIS_MODULE, ++ .dai_link = snd_rpi_justboom_both_dai, ++ .num_links = ARRAY_SIZE(snd_rpi_justboom_both_dai), ++}; ++ ++static int snd_rpi_justboom_both_probe(struct platform_device *pdev) ++{ ++ int ret = 0; ++ ++ snd_rpi_justboom_both.dev = &pdev->dev; ++ ++ if (pdev->dev.of_node) { ++ struct device_node *i2s_node; ++ struct snd_soc_dai_link *dai = &snd_rpi_justboom_both_dai[0]; ++ ++ i2s_node = of_parse_phandle(pdev->dev.of_node, ++ "i2s-controller", 0); ++ ++ if (i2s_node) { ++ dai->cpu_dai_name = NULL; ++ dai->cpu_of_node = i2s_node; ++ dai->platform_name = NULL; ++ dai->platform_of_node = i2s_node; ++ } ++ ++ digital_gain_0db_limit = !of_property_read_bool( ++ pdev->dev.of_node, "justboom,24db_digital_gain"); ++ } ++ ++ ret = snd_soc_register_card(&snd_rpi_justboom_both); ++ if (ret && ret != -EPROBE_DEFER) { ++ dev_err(&pdev->dev, ++ "snd_soc_register_card() failed: %d\n", ret); ++ } ++ ++ return ret; ++} ++ ++static int snd_rpi_justboom_both_remove(struct platform_device *pdev) ++{ ++ return snd_soc_unregister_card(&snd_rpi_justboom_both); ++} ++ ++static const struct of_device_id snd_rpi_justboom_both_of_match[] = { ++ { .compatible = "justboom,justboom-both", }, ++ {}, ++}; ++MODULE_DEVICE_TABLE(of, snd_rpi_justboom_both_of_match); ++ ++static struct platform_driver snd_rpi_justboom_both_driver = { ++ .driver = { ++ .name = "snd-rpi-justboom-both", ++ .owner = THIS_MODULE, ++ .of_match_table = snd_rpi_justboom_both_of_match, ++ }, ++ .probe = snd_rpi_justboom_both_probe, ++ .remove = snd_rpi_justboom_both_remove, ++}; ++ ++module_platform_driver(snd_rpi_justboom_both_driver); ++ ++MODULE_AUTHOR("Johannes Krude "); ++MODULE_DESCRIPTION("ASoC Driver for simultaneous use of JustBoom PI Digi & DAC HAT Sound Cards"); ++MODULE_LICENSE("GPL v2"); diff --git a/target/linux/brcm2708/patches-4.19/950-0781-dwc_otg-checking-the-urb-transfer_buffer-too-early-3.patch b/target/linux/brcm2708/patches-4.19/950-0781-dwc_otg-checking-the-urb-transfer_buffer-too-early-3.patch new file mode 100644 index 00000000000..8a28f730297 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0781-dwc_otg-checking-the-urb-transfer_buffer-too-early-3.patch @@ -0,0 +1,59 @@ +From 2a15e634d80f78cf2d8aa16ecf0f3cf930e277b4 Mon Sep 17 00:00:00 2001 +From: Hui Wang +Date: Sun, 17 Nov 2019 10:31:46 +0800 +Subject: [PATCH] dwc_otg: checking the urb->transfer_buffer too early + (#3332) + +After enable the HIGHMEM and VMSPLIT_3G, the dwc_otg driver doesn't +work well on Pi2/3 boards with 1G physical ram. Users experience +the failure when copying a file of 600M size to the USB stick. And +at the same time, the dmesg shows: +usb 1-1.1.2: reset high-speed USB device number 8 using dwc_otg +sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK +blk_update_request: I/O error, dev sda, sector 3024048 op 0x1:(WRITE) flags 0x4000 phys_seg 15 prio class 0 + +When this happens, the sg_buf sent to the driver is located in the +highmem region, the usb_sg_init() in the core/message.c will leave +transfer_buffer to NULL if the sg_buf is in highmem, but in the +dwc_otg driver, it returns -EINVAL unconditionally if transfer_buffer +is NULL. + +The driver can handle the situation of buffer to be NULL, if it is in +DMA mode, it will convert an address from transfer_dma. + +But if the conversion fails or it is in the PIO mode, we should check +buffer and return -EINVAL if it is NULL. + +BugLink: https://bugs.launchpad.net/bugs/1852510 +Signed-off-by: Hui Wang +--- + drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c ++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c +@@ -821,10 +821,6 @@ static int dwc_otg_urb_enqueue(struct us + dump_urb_info(urb, "dwc_otg_urb_enqueue"); + } + #endif +- +- if (!urb->transfer_buffer && urb->transfer_buffer_length) +- return -EINVAL; +- + if ((usb_pipetype(urb->pipe) == PIPE_ISOCHRONOUS) + || (usb_pipetype(urb->pipe) == PIPE_INTERRUPT)) { + if (!dwc_otg_hcd_is_bandwidth_allocated +@@ -881,6 +877,13 @@ static int dwc_otg_urb_enqueue(struct us + &urb->transfer_dma, buf); + } + ++ if (!buf && urb->transfer_buffer_length) { ++ DWC_FREE(dwc_otg_urb); ++ DWC_ERROR("transfer_buffer is NULL in PIO mode or both " ++ "transfer_buffer and transfer_dma are NULL in DMA mode\n"); ++ return -EINVAL; ++ } ++ + if (!(urb->transfer_flags & URB_NO_INTERRUPT)) + flags |= URB_GIVEBACK_ASAP; + if (urb->transfer_flags & URB_ZERO_PACKET) diff --git a/target/linux/brcm2708/patches-4.19/950-0782-overlays-Make-mcp342x-run-time-compatible.patch b/target/linux/brcm2708/patches-4.19/950-0782-overlays-Make-mcp342x-run-time-compatible.patch new file mode 100644 index 00000000000..900cbb2ca85 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0782-overlays-Make-mcp342x-run-time-compatible.patch @@ -0,0 +1,209 @@ +From e650f4bfbe9a09e5b75d702884a8ba8d9df6ccdf Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Mon, 9 Dec 2019 12:32:20 +0000 +Subject: [PATCH] overlays: Make mcp342x run-time compatible + +The order of processing of run-time overlays differs from that done by +the firmware. This means that certain parameter processing techniques +are not compatible with run-time use. The mcp342x overlay is one such +overlay, but it is easy to change the implementation without changing +the interface. + +See: https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=258294 + +Signed-off-by: Phil Elwell +--- + .../arm/boot/dts/overlays/mcp342x-overlay.dts | 133 ++++++++++++++---- + 1 file changed, 102 insertions(+), 31 deletions(-) + +--- a/arch/arm/boot/dts/overlays/mcp342x-overlay.dts ++++ b/arch/arm/boot/dts/overlays/mcp342x-overlay.dts +@@ -8,14 +8,15 @@ + + fragment@0 { + target = <&i2c1>; +- __overlay__ { ++ __dormant__ { + #address-cells = <1>; + #size-cells = <0>; + + status = "okay"; + +- mcp342x: mcp@68 { ++ mcp3421: mcp@68 { + reg = <0x68>; ++ compatible = "microchip,mcp3421"; + + status = "okay"; + }; +@@ -23,71 +24,141 @@ + }; + + fragment@1 { +- target = <&mcp342x>; ++ target = <&i2c1>; + __dormant__ { +- compatible = "microchip,mcp3421"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ status = "okay"; ++ ++ mcp3422: mcp@68 { ++ reg = <0x68>; ++ compatible = "microchip,mcp3422"; ++ ++ status = "okay"; ++ }; + }; + }; + + fragment@2 { +- target = <&mcp342x>; ++ target = <&i2c1>; + __dormant__ { +- compatible = "microchip,mcp3422"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ status = "okay"; ++ ++ mcp3423: mcp@68 { ++ reg = <0x68>; ++ compatible = "microchip,mcp3423"; ++ ++ status = "okay"; ++ }; + }; + }; + + fragment@3 { +- target = <&mcp342x>; ++ target = <&i2c1>; + __dormant__ { +- compatible = "microchip,mcp3423"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ status = "okay"; ++ ++ mcp3424: mcp@68 { ++ reg = <0x68>; ++ compatible = "microchip,mcp3424"; ++ ++ status = "okay"; ++ }; + }; + }; + + fragment@4 { +- target = <&mcp342x>; ++ target = <&i2c1>; + __dormant__ { +- compatible = "microchip,mcp3424"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ status = "okay"; ++ ++ mcp3425: mcp@68 { ++ reg = <0x68>; ++ compatible = "microchip,mcp3425","mcp3425"; ++ ++ status = "okay"; ++ }; + }; + }; + + fragment@5 { +- target = <&mcp342x>; ++ target = <&i2c1>; + __dormant__ { +- compatible = "microchip,mcp3425"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ status = "okay"; ++ ++ mcp3426: mcp@68 { ++ reg = <0x68>; ++ compatible = "microchip,mcp3426"; ++ ++ status = "okay"; ++ }; + }; + }; + + fragment@6 { +- target = <&mcp342x>; ++ target = <&i2c1>; + __dormant__ { +- compatible = "microchip,mcp3426"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ status = "okay"; ++ ++ mcp3427: mcp@68 { ++ reg = <0x68>; ++ compatible = "microchip,mcp3427"; ++ ++ status = "okay"; ++ }; + }; + }; + + fragment@7 { +- target = <&mcp342x>; ++ target = <&i2c1>; + __dormant__ { +- compatible = "microchip,mcp3427"; +- }; +- }; ++ #address-cells = <1>; ++ #size-cells = <0>; + +- fragment@8 { +- target = <&mcp342x>; +- __dormant__ { +- compatible = "microchip,mcp3428"; ++ status = "okay"; ++ ++ mcp3428: mcp@68 { ++ reg = <0x68>; ++ compatible = "microchip,mcp3428"; ++ ++ status = "okay"; ++ }; + }; + }; + + __overrides__ { +- addr = <&mcp342x>,"reg:0"; +- mcp3421 = <0>,"=1"; +- mcp3422 = <0>,"=2"; +- mcp3423 = <0>,"=3"; +- mcp3424 = <0>,"=4"; +- mcp3425 = <0>,"=5"; +- mcp3426 = <0>,"=6"; +- mcp3427 = <0>,"=7"; +- mcp3428 = <0>,"=8"; ++ addr = <&mcp3421>,"reg:0", ++ <&mcp3422>,"reg:0", ++ <&mcp3423>,"reg:0", ++ <&mcp3424>,"reg:0", ++ <&mcp3425>,"reg:0", ++ <&mcp3426>,"reg:0", ++ <&mcp3427>,"reg:0", ++ <&mcp3428>,"reg:0"; ++ mcp3421 = <0>,"=0"; ++ mcp3422 = <0>,"=1"; ++ mcp3423 = <0>,"=2"; ++ mcp3424 = <0>,"=3"; ++ mcp3425 = <0>,"=4"; ++ mcp3426 = <0>,"=5"; ++ mcp3427 = <0>,"=6"; ++ mcp3428 = <0>,"=7"; + }; + }; + diff --git a/target/linux/brcm2708/patches-4.19/950-0783-overlays-dht11-Allow-multiple-instantiation.patch b/target/linux/brcm2708/patches-4.19/950-0783-overlays-dht11-Allow-multiple-instantiation.patch new file mode 100644 index 00000000000..5eed1baff85 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0783-overlays-dht11-Allow-multiple-instantiation.patch @@ -0,0 +1,34 @@ +From 26e95c876831692f28894041c5a1db5934715939 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Wed, 18 Dec 2019 10:41:33 +0000 +Subject: [PATCH] overlays: dht11: Allow multiple instantiation + +Add addresses to the dht11 and dht11_pins nodes to allow unique names +to be generated by assigning to the "reg" property. + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/dht11-overlay.dts | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/arch/arm/boot/dts/overlays/dht11-overlay.dts ++++ b/arch/arm/boot/dts/overlays/dht11-overlay.dts +@@ -24,7 +24,7 @@ + fragment@1 { + target = <&gpio>; + __overlay__ { +- dht11_pins: dht11_pins { ++ dht11_pins: dht11_pins@0 { + brcm,pins = <4>; + brcm,function = <0>; // in + brcm,pull = <0>; // off +@@ -34,6 +34,8 @@ + + __overrides__ { + gpiopin = <&dht11_pins>,"brcm,pins:0", +- <&dht11>,"gpios:4"; ++ <&dht11_pins>, "reg:0", ++ <&dht11>,"gpios:4", ++ <&dht11>,"reg:0"; + }; + }; diff --git a/target/linux/brcm2708/patches-4.19/950-0784-overlays-i2c-rtc-Add-pcf85363-support.patch b/target/linux/brcm2708/patches-4.19/950-0784-overlays-i2c-rtc-Add-pcf85363-support.patch new file mode 100644 index 00000000000..af040962f20 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0784-overlays-i2c-rtc-Add-pcf85363-support.patch @@ -0,0 +1,56 @@ +From b85f76a63d5f1b13220c61244469d55487db84f1 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Sun, 22 Dec 2019 15:29:40 +0000 +Subject: [PATCH] overlays: i2c-rtc: Add pcf85363 support + +See: https://github.com/raspberrypi/firmware/issues/1309 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/overlays/README | 2 ++ + arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts | 16 ++++++++++++++++ + 2 files changed, 18 insertions(+) + +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1078,6 +1078,8 @@ Params: abx80x Select o + + pcf8523 Select the PCF8523 device + ++ pcf85363 Select the PCF85363 device ++ + pcf8563 Select the PCF8563 device + + rv3028 Select the Micro Crystal RV3028 device +--- a/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts ++++ b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts +@@ -188,6 +188,21 @@ + }; + }; + ++ fragment@12 { ++ target = <&i2c_arm>; ++ __dormant__ { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "okay"; ++ ++ pcf85363@51 { ++ compatible = "nxp,pcf85363"; ++ reg = <0x51>; ++ status = "okay"; ++ }; ++ }; ++ }; ++ + __overrides__ { + abx80x = <0>,"+0"; + ds1307 = <0>,"+1"; +@@ -201,6 +216,7 @@ + m41t62 = <0>,"+9"; + rv3028 = <0>,"+10"; + pcf2129 = <0>,"+11"; ++ pcf85363 = <0>,"+12"; + + addr = <&abx80x>, "reg:0", + <&ds1307>, "reg:0",