aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/linux/brcm2708/bcm2711/config-4.199
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0010-spi-bcm2835-Support-pin-groups-other-than-7-11.patch (renamed from target/linux/brcm2708/patches-4.19/950-0011-spi-bcm2835-Support-pin-groups-other-than-7-11.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0010-spidev-Add-spidev-compatible-string-to-silence-warni.patch21
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0011-spi-bcm2835-Disable-forced-software-CS.patch (renamed from target/linux/brcm2708/patches-4.19/950-0012-spi-bcm2835-Disable-forced-software-CS.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0012-spi-bcm2835-Remove-unused-code.patch (renamed from target/linux/brcm2708/patches-4.19/950-0013-spi-bcm2835-Remove-unused-code.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0013-dmaengine-bcm2835-Load-driver-early-and-support-lega.patch (renamed from target/linux/brcm2708/patches-4.19/950-0014-dmaengine-bcm2835-Load-driver-early-and-support-lega.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0014-firmware-Updated-mailbox-header.patch (renamed from target/linux/brcm2708/patches-4.19/950-0015-firmware-Updated-mailbox-header.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0015-rtc-Add-SPI-alias-for-pcf2123-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0016-rtc-Add-SPI-alias-for-pcf2123-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0016-watchdog-bcm2835-Support-setting-reboot-partition.patch (renamed from target/linux/brcm2708/patches-4.19/950-0017-watchdog-bcm2835-Support-setting-reboot-partition.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0017-reboot-Use-power-off-rather-than-busy-spinning-when-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0018-reboot-Use-power-off-rather-than-busy-spinning-when-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0018-bcm-Make-RASPBERRYPI_POWER-depend-on-PM.patch (renamed from target/linux/brcm2708/patches-4.19/950-0019-bcm-Make-RASPBERRYPI_POWER-depend-on-PM.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0019-Register-the-clocks-early-during-the-boot-process-so.patch (renamed from target/linux/brcm2708/patches-4.19/950-0020-Register-the-clocks-early-during-the-boot-process-so.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0020-bcm2835-rng-Avoid-initialising-if-already-enabled.patch (renamed from target/linux/brcm2708/patches-4.19/950-0021-bcm2835-rng-Avoid-initialising-if-already-enabled.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0021-kbuild-Ignore-dtco-targets-when-filtering-symbols.patch (renamed from target/linux/brcm2708/patches-4.19/950-0022-kbuild-Ignore-dtco-targets-when-filtering-symbols.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0022-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch (renamed from target/linux/brcm2708/patches-4.19/950-0023-clk-bcm2835-Mark-used-PLLs-and-dividers-CRITICAL.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0023-clk-bcm2835-Add-claim-clocks-property.patch (renamed from target/linux/brcm2708/patches-4.19/950-0024-clk-bcm2835-Add-claim-clocks-property.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0024-clk-bcm2835-Read-max-core-clock-from-firmware.patch (renamed from target/linux/brcm2708/patches-4.19/950-0025-clk-bcm2835-Read-max-core-clock-from-firmware.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0025-clk-bcm2835-Mark-GPIO-clocks-enabled-at-boot-as-crit.patch (renamed from target/linux/brcm2708/patches-4.19/950-0026-clk-bcm2835-Mark-GPIO-clocks-enabled-at-boot-as-crit.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0026-sound-Demote-deferral-errors-to-INFO-level.patch (renamed from target/linux/brcm2708/patches-4.19/950-0027-sound-Demote-deferral-errors-to-INFO-level.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0027-Update-vfpmodule.c.patch (renamed from target/linux/brcm2708/patches-4.19/950-0028-Update-vfpmodule.c.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0028-i2c-bcm2835-Add-debug-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0029-i2c-bcm2835-Add-debug-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0029-mm-Remove-the-PFN-busy-warning.patch (renamed from target/linux/brcm2708/patches-4.19/950-0030-mm-Remove-the-PFN-busy-warning.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0030-ASoC-Add-prompt-for-ICS43432-codec.patch (renamed from target/linux/brcm2708/patches-4.19/950-0031-ASoC-Add-prompt-for-ICS43432-codec.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0031-irqchip-irq-bcm2836-Remove-regmap-and-syscon-use.patch (renamed from target/linux/brcm2708/patches-4.19/950-0032-irqchip-irq-bcm2836-Remove-regmap-and-syscon-use.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0032-lan78xx-Enable-LEDs-and-auto-negotiation.patch (renamed from target/linux/brcm2708/patches-4.19/950-0033-lan78xx-Enable-LEDs-and-auto-negotiation.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0033-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch (renamed from target/linux/brcm2708/patches-4.19/950-0034-amba_pl011-Don-t-use-DT-aliases-for-numbering.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0034-amba_pl011-Round-input-clock-up.patch (renamed from target/linux/brcm2708/patches-4.19/950-0035-amba_pl011-Round-input-clock-up.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0035-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch (renamed from target/linux/brcm2708/patches-4.19/950-0036-amba_pl011-Insert-mb-for-correct-FIFO-handling.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0036-amba_pl011-Add-cts-event-workaround-DT-property.patch (renamed from target/linux/brcm2708/patches-4.19/950-0037-amba_pl011-Add-cts-event-workaround-DT-property.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0037-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch (renamed from target/linux/brcm2708/patches-4.19/950-0038-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0038-Main-bcm2708-bcm2709-linux-port.patch (renamed from target/linux/brcm2708/patches-4.19/950-0039-Main-bcm2708-bcm2709-linux-port.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0039-Add-dwc_otg-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0040-Add-dwc_otg-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0040-bcm2708-framebuffer-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0041-bcm2708-framebuffer-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0041-Speed-up-console-framebuffer-imageblit-function.patch (renamed from target/linux/brcm2708/patches-4.19/950-0042-Speed-up-console-framebuffer-imageblit-function.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0042-dmaengine-Add-support-for-BCM2708.patch (renamed from target/linux/brcm2708/patches-4.19/950-0043-dmaengine-Add-support-for-BCM2708.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0043-MMC-added-alternative-MMC-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0044-MMC-added-alternative-MMC-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0044-Adding-bcm2835-sdhost-driver-and-an-overlay-to-enabl.patch (renamed from target/linux/brcm2708/patches-4.19/950-0045-Adding-bcm2835-sdhost-driver-and-an-overlay-to-enabl.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0045-vc_mem-Add-vc_mem-driver-for-querying-firmware-memor.patch (renamed from target/linux/brcm2708/patches-4.19/950-0046-vc_mem-Add-vc_mem-driver-for-querying-firmware-memor.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0046-vcsm-VideoCore-shared-memory-service-for-BCM2835.patch (renamed from target/linux/brcm2708/patches-4.19/950-0047-vcsm-VideoCore-shared-memory-service-for-BCM2835.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0047-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch (renamed from target/linux/brcm2708/patches-4.19/950-0048-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0048-Add-SMI-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0049-Add-SMI-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0049-MISC-bcm2835-smi-use-clock-manager-and-fix-reload-is.patch (renamed from target/linux/brcm2708/patches-4.19/950-0050-MISC-bcm2835-smi-use-clock-manager-and-fix-reload-is.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0050-Add-SMI-NAND-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0051-Add-SMI-NAND-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0051-Add-cpufreq-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0052-Add-cpufreq-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0052-Add-Chris-Boot-s-i2c-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0053-Add-Chris-Boot-s-i2c-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0053-char-broadcom-Add-vcio-module.patch (renamed from target/linux/brcm2708/patches-4.19/950-0054-char-broadcom-Add-vcio-module.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0054-firmware-bcm2835-Support-ARCH_BCM270x.patch (renamed from target/linux/brcm2708/patches-4.19/950-0055-firmware-bcm2835-Support-ARCH_BCM270x.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0055-scripts-Add-mkknlimg-and-knlinfo-scripts-from-tools-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0056-scripts-Add-mkknlimg-and-knlinfo-scripts-from-tools-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0056-BCM2708-Add-core-Device-Tree-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0057-BCM2708-Add-core-Device-Tree-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0057-BCM270x_DT-Add-pwr_led-and-the-required-input-trigge.patch (renamed from target/linux/brcm2708/patches-4.19/950-0058-BCM270x_DT-Add-pwr_led-and-the-required-input-trigge.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0058-fbdev-add-FBIOCOPYAREA-ioctl.patch (renamed from target/linux/brcm2708/patches-4.19/950-0059-fbdev-add-FBIOCOPYAREA-ioctl.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0059-Added-Device-IDs-for-August-DVB-T-205.patch (renamed from target/linux/brcm2708/patches-4.19/950-0060-Added-Device-IDs-for-August-DVB-T-205.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0060-rpi-ft5406-Add-touchscreen-driver-for-pi-LCD-display.patch (renamed from target/linux/brcm2708/patches-4.19/950-0061-rpi-ft5406-Add-touchscreen-driver-for-pi-LCD-display.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0061-Improve-__copy_to_user-and-__copy_from_user-performa.patch (renamed from target/linux/brcm2708/patches-4.19/950-0062-Improve-__copy_to_user-and-__copy_from_user-performa.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0062-gpio-poweroff-Allow-it-to-work-on-Raspberry-Pi.patch (renamed from target/linux/brcm2708/patches-4.19/950-0063-gpio-poweroff-Allow-it-to-work-on-Raspberry-Pi.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0063-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0064-mfd-Add-Raspberry-Pi-Sense-HAT-core-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0064-ASoC-pcm512x-implement-set_tdm_slot-interface.patch (renamed from target/linux/brcm2708/patches-4.19/950-0065-ASoC-pcm512x-implement-set_tdm_slot-interface.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0065-ASoC-Add-support-for-Rpi-DAC.patch (renamed from target/linux/brcm2708/patches-4.19/950-0066-ASoC-Add-support-for-Rpi-DAC.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0066-Add-IQaudIO-Sound-Card-support-for-Raspberry-Pi.patch (renamed from target/linux/brcm2708/patches-4.19/950-0067-Add-IQaudIO-Sound-Card-support-for-Raspberry-Pi.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0067-Added-support-for-HiFiBerry-DAC.patch (renamed from target/linux/brcm2708/patches-4.19/950-0068-Added-support-for-HiFiBerry-DAC.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0068-Added-driver-for-HiFiBerry-Amp-amplifier-add-on-boar.patch (renamed from target/linux/brcm2708/patches-4.19/950-0069-Added-driver-for-HiFiBerry-Amp-amplifier-add-on-boar.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0069-Add-driver-for-rpi-proto.patch (renamed from target/linux/brcm2708/patches-4.19/950-0070-Add-driver-for-rpi-proto.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0070-Add-Support-for-JustBoom-Audio-boards.patch (renamed from target/linux/brcm2708/patches-4.19/950-0071-Add-Support-for-JustBoom-Audio-boards.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0071-New-AudioInjector.net-Pi-soundcard-with-low-jitter-a.patch (renamed from target/linux/brcm2708/patches-4.19/950-0072-New-AudioInjector.net-Pi-soundcard-with-low-jitter-a.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0072-New-driver-for-RRA-DigiDAC1-soundcard-using-WM8741-W.patch (renamed from target/linux/brcm2708/patches-4.19/950-0073-New-driver-for-RRA-DigiDAC1-soundcard-using-WM8741-W.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0073-Add-support-for-Dion-Audio-LOCO-DAC-AMP-HAT.patch (renamed from target/linux/brcm2708/patches-4.19/950-0074-Add-support-for-Dion-Audio-LOCO-DAC-AMP-HAT.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0074-Allo-Piano-DAC-boards-Initial-2-channel-stereo-suppo.patch (renamed from target/linux/brcm2708/patches-4.19/950-0075-Allo-Piano-DAC-boards-Initial-2-channel-stereo-suppo.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0075-Add-support-for-Allo-Piano-DAC-2.1-plus-add-on-board.patch (renamed from target/linux/brcm2708/patches-4.19/950-0076-Add-support-for-Allo-Piano-DAC-2.1-plus-add-on-board.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0076-Add-support-for-Allo-Boss-DAC-add-on-board-for-Raspb.patch (renamed from target/linux/brcm2708/patches-4.19/950-0077-Add-support-for-Allo-Boss-DAC-add-on-board-for-Raspb.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0077-Support-for-Blokas-Labs-pisound-board.patch (renamed from target/linux/brcm2708/patches-4.19/950-0078-Support-for-Blokas-Labs-pisound-board.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0078-ASoC-Add-driver-for-Cirrus-Logic-Audio-Card.patch (renamed from target/linux/brcm2708/patches-4.19/950-0079-ASoC-Add-driver-for-Cirrus-Logic-Audio-Card.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0079-sound-Support-for-Dion-Audio-LOCO-V2-DAC-AMP-HAT.patch (renamed from target/linux/brcm2708/patches-4.19/950-0080-sound-Support-for-Dion-Audio-LOCO-V2-DAC-AMP-HAT.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0080-Add-support-for-Fe-Pi-audio-sound-card.-1867.patch (renamed from target/linux/brcm2708/patches-4.19/950-0081-Add-support-for-Fe-Pi-audio-sound-card.-1867.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0081-Add-support-for-the-AudioInjector.net-Octo-sound-car.patch (renamed from target/linux/brcm2708/patches-4.19/950-0082-Add-support-for-the-AudioInjector.net-Octo-sound-car.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0082-Driver-support-for-Google-voiceHAT-soundcard.patch (renamed from target/linux/brcm2708/patches-4.19/950-0083-Driver-support-for-Google-voiceHAT-soundcard.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0083-Driver-and-overlay-for-Allo-Katana-DAC.patch (renamed from target/linux/brcm2708/patches-4.19/950-0084-Driver-and-overlay-for-Allo-Katana-DAC.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0084-ASoC-Add-generic-RPI-driver-for-simple-soundcards.patch (renamed from target/linux/brcm2708/patches-4.19/950-0086-ASoC-Add-generic-RPI-driver-for-simple-soundcards.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0085-ASoC-Add-Kconfig-and-Makefile-for-sound-soc-bcm.patch (renamed from target/linux/brcm2708/patches-4.19/950-0087-ASoC-Add-Kconfig-and-Makefile-for-sound-soc-bcm.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0085-ASoC-wm8804-MCLK-configuration-options-32-bit.patch32
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0086-ASoC-Create-a-generic-Pi-Hat-WM8804-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0088-ASoC-Create-a-generic-Pi-Hat-WM8804-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0087-rpi_display-add-backlight-driver-and-overlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0089-rpi_display-add-backlight-driver-and-overlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0088-bcm2835-virtgpio-Virtual-GPIO-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0090-bcm2835-virtgpio-Virtual-GPIO-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0089-OF-DT-Overlay-configfs-interface.patch (renamed from target/linux/brcm2708/patches-4.19/950-0091-OF-DT-Overlay-configfs-interface.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0090-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch (renamed from target/linux/brcm2708/patches-4.19/950-0092-hci_h5-Don-t-send-conf_req-when-ACTIVE.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0091-Add-arm64-configuration-and-device-tree-differences..patch (renamed from target/linux/brcm2708/patches-4.19/950-0093-Add-arm64-configuration-and-device-tree-differences..patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0092-ARM64-DWC_OTG-Port-dwc_otg-driver-to-ARM64.patch (renamed from target/linux/brcm2708/patches-4.19/950-0094-ARM64-DWC_OTG-Port-dwc_otg-driver-to-ARM64.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0093-ARM64-Round-Robin-dispatch-IRQs-between-CPUs.patch (renamed from target/linux/brcm2708/patches-4.19/950-0095-ARM64-Round-Robin-dispatch-IRQs-between-CPUs.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0094-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch (renamed from target/linux/brcm2708/patches-4.19/950-0096-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0095-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch (renamed from target/linux/brcm2708/patches-4.19/950-0097-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0096-cache-export-clean-and-invalidate.patch (renamed from target/linux/brcm2708/patches-4.19/950-0098-cache-export-clean-and-invalidate.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0097-AXI-performance-monitor-driver-2222.patch (renamed from target/linux/brcm2708/patches-4.19/950-0099-AXI-performance-monitor-driver-2222.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0098-mcp2515-Use-DT-supplied-interrupt-flags.patch (renamed from target/linux/brcm2708/patches-4.19/950-0100-mcp2515-Use-DT-supplied-interrupt-flags.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0099-Tidy-up-of-the-ft5406-driver-to-use-DT-2189.patch (renamed from target/linux/brcm2708/patches-4.19/950-0101-Tidy-up-of-the-ft5406-driver-to-use-DT-2189.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0100-ARM-bcm2835-Set-Serial-number-and-Revision.patch (renamed from target/linux/brcm2708/patches-4.19/950-0103-ARM-bcm2835-Set-Serial-number-and-Revision.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0101-ARM-Activate-FIQs-to-avoid-__irq_startup-warnings.patch (renamed from target/linux/brcm2708/patches-4.19/950-0104-ARM-Activate-FIQs-to-avoid-__irq_startup-warnings.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0102-cgroup-Disable-cgroup-memory-by-default.patch70
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0102-serial-8250-bcm2835aux-suppress-EPROBE_DEFER.patch (renamed from target/linux/brcm2708/patches-4.19/950-0105-serial-8250-bcm2835aux-suppress-EPROBE_DEFER.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0103-raspberrypi-firmware-Export-the-general-transaction-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0106-raspberrypi-firmware-Export-the-general-transaction-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0104-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch (renamed from target/linux/brcm2708/patches-4.19/950-0107-drm-vc4-Add-a-mode-for-using-the-closed-firmware-for.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0105-drm-vc4-Name-the-primary-and-cursor-planes-in-fkms.patch (renamed from target/linux/brcm2708/patches-4.19/950-0108-drm-vc4-Name-the-primary-and-cursor-planes-in-fkms.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0106-drm-vc4-Add-DRM_DEBUG_ATOMIC-for-the-insides-of-fkms.patch (renamed from target/linux/brcm2708/patches-4.19/950-0109-drm-vc4-Add-DRM_DEBUG_ATOMIC-for-the-insides-of-fkms.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0107-drm-vc4-Fix-sending-of-page-flip-completion-events-i.patch (renamed from target/linux/brcm2708/patches-4.19/950-0110-drm-vc4-Fix-sending-of-page-flip-completion-events-i.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0108-drm-vc4-Add-support-for-setting-DPMS-in-firmwarekms.patch (renamed from target/linux/brcm2708/patches-4.19/950-0111-drm-vc4-Add-support-for-setting-DPMS-in-firmwarekms.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0109-drm-vc4-Add-FB-modifier-support-to-firmwarekms.patch (renamed from target/linux/brcm2708/patches-4.19/950-0112-drm-vc4-Add-FB-modifier-support-to-firmwarekms.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0110-drm-vc4-Add-missing-enable-disable-vblank-handlers-i.patch (renamed from target/linux/brcm2708/patches-4.19/950-0113-drm-vc4-Add-missing-enable-disable-vblank-handlers-i.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0111-vc4_fkms-Apply-firmware-overscan-offset-to-hardware-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0114-vc4_fkms-Apply-firmware-overscan-offset-to-hardware-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0112-drm-vc4-Fix-warning-about-vblank-interrupts-before-D.patch (renamed from target/linux/brcm2708/patches-4.19/950-0115-drm-vc4-Fix-warning-about-vblank-interrupts-before-D.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0113-drm-vc4-Skip-SET_CURSOR_INFO-when-the-cursor-content.patch (renamed from target/linux/brcm2708/patches-4.19/950-0116-drm-vc4-Skip-SET_CURSOR_INFO-when-the-cursor-content.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0114-drm-vc4-Remove-duplicate-primary-cursor-fields-from-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0117-drm-vc4-Remove-duplicate-primary-cursor-fields-from-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0115-vc4_firmware_kms-fix-build.patch (renamed from target/linux/brcm2708/patches-4.19/950-0118-vc4_firmware_kms-fix-build.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0116-hack-cache-Fix-linker-error.patch (renamed from target/linux/brcm2708/patches-4.19/950-0119-hack-cache-Fix-linker-error.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0117-i2c-gpio-Also-set-bus-numbers-from-reg-property.patch (renamed from target/linux/brcm2708/patches-4.19/950-0120-i2c-gpio-Also-set-bus-numbers-from-reg-property.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0118-sound-bcm-Fix-memset-dereference-warning.patch (renamed from target/linux/brcm2708/patches-4.19/950-0121-sound-bcm-Fix-memset-dereference-warning.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0119-added-capture_clear-option-to-pps-gpio-via-dtoverlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0122-added-capture_clear-option-to-pps-gpio-via-dtoverlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0120-lan78xx-Read-initial-EEE-status-from-DT.patch (renamed from target/linux/brcm2708/patches-4.19/950-0123-lan78xx-Read-initial-EEE-status-from-DT.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0121-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch (renamed from target/linux/brcm2708/patches-4.19/950-0124-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0122-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch (renamed from target/linux/brcm2708/patches-4.19/950-0125-gpiolib-Don-t-prevent-IRQ-usage-of-output-GPIOs.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0123-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch (renamed from target/linux/brcm2708/patches-4.19/950-0126-Add-ability-to-export-gpio-used-by-gpio-poweroff.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0124-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch (renamed from target/linux/brcm2708/patches-4.19/950-0127-firmware-raspberrypi-Notify-firmware-of-a-reboot.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0125-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch (renamed from target/linux/brcm2708/patches-4.19/950-0128-irqchip-irq-bcm2835-Calc.-FIQ_START-at-boot-time.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0126-of-configfs-Use-of_overlay_fdt_apply-API-call.patch (renamed from target/linux/brcm2708/patches-4.19/950-0129-of-configfs-Use-of_overlay_fdt_apply-API-call.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0127-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch (renamed from target/linux/brcm2708/patches-4.19/950-0130-net-lan78xx-Disable-TCP-Segmentation-Offload-TSO.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0128-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch (renamed from target/linux/brcm2708/patches-4.19/950-0131-lan78xx-Move-enabling-of-EEE-into-PHY-init-code.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0129-staging-vc04_services-Derive-g_cache_line_size.patch (renamed from target/linux/brcm2708/patches-4.19/950-0132-staging-vc04_services-Derive-g_cache_line_size.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0130-Add-rpi-poe-fan-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0133-Add-rpi-poe-fan-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0131-cxd2880-CXD2880_SPI_DRV-should-select-DVB_CXD2880-wi.patch (renamed from target/linux/brcm2708/patches-4.19/950-0134-cxd2880-CXD2880_SPI_DRV-should-select-DVB_CXD2880-wi.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0132-vchiq_2835_arm-Implement-a-DMA-pool-for-small-bulk-t.patch (renamed from target/linux/brcm2708/patches-4.19/950-0136-vchiq_2835_arm-Implement-a-DMA-pool-for-small-bulk-t.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0133-BCM2708_DT-Use-upstreamed-GPIO-expander-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0137-BCM2708_DT-Use-upstreamed-GPIO-expander-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0134-overlays-Fix-a-few-dtc-warnings.patch (renamed from target/linux/brcm2708/patches-4.19/950-0138-overlays-Fix-a-few-dtc-warnings.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0135-bcm2708-rpi-Disable-txp-interrupt-unless-using-vc4-k.patch (renamed from target/linux/brcm2708/patches-4.19/950-0139-bcm2708-rpi-Disable-txp-interrupt-unless-using-vc4-k.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0135-bcm2835-interpolate-audio-delay.patch89
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0136-hwmon-raspberrypi-Prevent-voltage-low-warnings-from-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0140-hwmon-raspberrypi-Prevent-voltage-low-warnings-from-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0137-firmware-raspberrypi-Add-backward-compatible-get_thr.patch (renamed from target/linux/brcm2708/patches-4.19/950-0141-firmware-raspberrypi-Add-backward-compatible-get_thr.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0138-sc16is7xx-Don-t-spin-if-no-data-received.patch (renamed from target/linux/brcm2708/patches-4.19/950-0142-sc16is7xx-Don-t-spin-if-no-data-received.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0139-Add-device-tree-overlay-for-HD44780.patch (renamed from target/linux/brcm2708/patches-4.19/950-0143-Add-device-tree-overlay-for-HD44780.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0140-overlays-Add-addr-parameter-to-i2c-rtc-gpio.patch (renamed from target/linux/brcm2708/patches-4.19/950-0144-overlays-Add-addr-parameter-to-i2c-rtc-gpio.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0141-ARM-BCM270X-Add-the-18-bit-DPI-pinmux-to-the-RPI-DTs.patch (renamed from target/linux/brcm2708/patches-4.19/950-0145-ARM-BCM270X-Add-the-18-bit-DPI-pinmux-to-the-RPI-DTs.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0142-overlays-Add-an-overlay-for-the-Adafruit-Kippah-with.patch (renamed from target/linux/brcm2708/patches-4.19/950-0146-overlays-Add-an-overlay-for-the-Adafruit-Kippah-with.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0143-overlays-Remove-stale-notes-about-vc4-s-CMA-alignmen.patch (renamed from target/linux/brcm2708/patches-4.19/950-0147-overlays-Remove-stale-notes-about-vc4-s-CMA-alignmen.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0144-spi-Make-GPIO-CSs-honour-the-SPI_NO_CS-flag.patch (renamed from target/linux/brcm2708/patches-4.19/950-0148-spi-Make-GPIO-CSs-honour-the-SPI_NO_CS-flag.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0145-devicetree-add-RPi-CM3-dts-to-arm64-mimic-the-RPi-3B.patch (renamed from target/linux/brcm2708/patches-4.19/950-0149-devicetree-add-RPi-CM3-dts-to-arm64-mimic-the-RPi-3B.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0146-Add-support-for-audioinjector.net-ultra-soundcard.-2.patch (renamed from target/linux/brcm2708/patches-4.19/950-0150-Add-support-for-audioinjector.net-ultra-soundcard.-2.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0147-ASoC-cs4265-Add-a-S-PDIF-enable-switch.patch (renamed from target/linux/brcm2708/patches-4.19/950-0151-ASoC-cs4265-Add-a-S-PDIF-enable-switch.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0148-ASoC-cs4265-Add-native-32bit-I2S-transport.patch (renamed from target/linux/brcm2708/patches-4.19/950-0152-ASoC-cs4265-Add-native-32bit-I2S-transport.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0149-BCM270X_DT-Add-gpio-fan-overlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0153-BCM270X_DT-Add-gpio-fan-overlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0150-HID-hid-bigbenff-driver-for-BigBen-Interactive-PS3OF.patch (renamed from target/linux/brcm2708/patches-4.19/950-0154-HID-hid-bigbenff-driver-for-BigBen-Interactive-PS3OF.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0151-ASoC-cs4265-Add-a-MIC-pre.-route-2696.patch (renamed from target/linux/brcm2708/patches-4.19/950-0155-ASoC-cs4265-Add-a-MIC-pre.-route-2696.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0152-Update-gpio-fan-overlay.dts-2711.patch (renamed from target/linux/brcm2708/patches-4.19/950-0156-Update-gpio-fan-overlay.dts-2711.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0153-drivers-thermal-step_wise-add-support-for-hysteresis.patch (renamed from target/linux/brcm2708/patches-4.19/950-0157-drivers-thermal-step_wise-add-support-for-hysteresis.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0154-drivers-thermal-step_wise-avoid-throttling-at-hyster.patch (renamed from target/linux/brcm2708/patches-4.19/950-0158-drivers-thermal-step_wise-avoid-throttling-at-hyster.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0155-hwmon-adjust-rpi-poe-fan-overlay-trip-points.patch (renamed from target/linux/brcm2708/patches-4.19/950-0159-hwmon-adjust-rpi-poe-fan-overlay-trip-points.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0156-overlays-add-overrides-for-PoE-HAT-fan-control.patch (renamed from target/linux/brcm2708/patches-4.19/950-0160-overlays-add-overrides-for-PoE-HAT-fan-control.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0157-overlays-Add-gpio-no-bank0-irq-overlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0161-overlays-Add-gpio-no-bank0-irq-overlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0158-Add-hy28b-2017-model-device-tree-overlay-2721.patch (renamed from target/linux/brcm2708/patches-4.19/950-0162-Add-hy28b-2017-model-device-tree-overlay-2721.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0159-mmc-bcm2835-sdhost-Recover-from-MMC_SEND_EXT_CSD.patch (renamed from target/linux/brcm2708/patches-4.19/950-0163-mmc-bcm2835-sdhost-Recover-from-MMC_SEND_EXT_CSD.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0160-overlays-pi3-disable-bt-Clear-out-bt_pins-node.patch (renamed from target/linux/brcm2708/patches-4.19/950-0164-overlays-pi3-disable-bt-Clear-out-bt_pins-node.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0161-Revert-rtc-pcf8523-properly-handle-oscillator-stop-b.patch (renamed from target/linux/brcm2708/patches-4.19/950-0165-Revert-rtc-pcf8523-properly-handle-oscillator-stop-b.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0162-overlays-uart0-return-GPIOs-14-and-15-to-inputs.patch (renamed from target/linux/brcm2708/patches-4.19/950-0166-overlays-uart0-return-GPIOs-14-and-15-to-inputs.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0163-mmc-bcm2835-sdhost-Fix-warnings-on-arm64.patch (renamed from target/linux/brcm2708/patches-4.19/950-0167-mmc-bcm2835-sdhost-Fix-warnings-on-arm64.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0164-Fix-warning-in-bcm2835-smi-nand.patch (renamed from target/linux/brcm2708/patches-4.19/950-0168-Fix-warning-in-bcm2835-smi-nand.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0165-media-ov5647-Add-set_fmt-and-get_fmt-calls.patch (renamed from target/linux/brcm2708/patches-4.19/950-0169-media-ov5647-Add-set_fmt-and-get_fmt-calls.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0166-media-Documentation-DT-add-device-tree-for-PWDN-cont.patch (renamed from target/linux/brcm2708/patches-4.19/950-0170-media-Documentation-DT-add-device-tree-for-PWDN-cont.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0167-media-ov5647-Add-support-for-PWDN-GPIO.patch (renamed from target/linux/brcm2708/patches-4.19/950-0171-media-ov5647-Add-support-for-PWDN-GPIO.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0168-media-ov5647-Add-support-for-non-continuous-clock-mo.patch (renamed from target/linux/brcm2708/patches-4.19/950-0172-media-ov5647-Add-support-for-non-continuous-clock-mo.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0169-media-tc358743-Increase-FIFO-level-to-374.patch (renamed from target/linux/brcm2708/patches-4.19/950-0173-media-tc358743-Increase-FIFO-level-to-374.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0170-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch (renamed from target/linux/brcm2708/patches-4.19/950-0174-media-tc358743-fix-connected-active-CSI-2-lane-repor.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0171-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch (renamed from target/linux/brcm2708/patches-4.19/950-0175-media-tc358743-Add-support-for-972Mbit-s-link-freq.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0172-media-tc358743-Check-I2C-succeeded-during-probe.patch (renamed from target/linux/brcm2708/patches-4.19/950-0176-media-tc358743-Check-I2C-succeeded-during-probe.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0173-media-adv7180-Default-to-the-first-valid-input.patch (renamed from target/linux/brcm2708/patches-4.19/950-0177-media-adv7180-Default-to-the-first-valid-input.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0174-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch (renamed from target/linux/brcm2708/patches-4.19/950-0178-media-adv7180-Add-YPrPb-support-for-ADV7282M.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0175-media-videodev2-Add-helper-defines-for-printing-FOUR.patch (renamed from target/linux/brcm2708/patches-4.19/950-0179-media-videodev2-Add-helper-defines-for-printing-FOUR.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0176-dt-bindings-Document-BCM283x-CSI2-CCP2-receiver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0180-dt-bindings-Document-BCM283x-CSI2-CCP2-receiver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0177-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch (renamed from target/linux/brcm2708/patches-4.19/950-0181-media-bcm2835-unicam-Driver-for-CCP2-CSI2-camera-int.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0178-media-adv7180-Nasty-hack-to-allow-input-selection.patch (renamed from target/linux/brcm2708/patches-4.19/950-0182-media-adv7180-Nasty-hack-to-allow-input-selection.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0179-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch (renamed from target/linux/brcm2708/patches-4.19/950-0183-BCM283x-DT-Add-CSI-nodes-to-the-device-tree.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0180-BCM270X_DT-Add-CSI-defines-for-all-the-downstream-Pi.patch (renamed from target/linux/brcm2708/patches-4.19/950-0184-BCM270X_DT-Add-CSI-defines-for-all-the-downstream-Pi.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0181-arm-dt-Add-DT-overlays-for-ADV7282M-OV5647-and-TC358.patch (renamed from target/linux/brcm2708/patches-4.19/950-0185-arm-dt-Add-DT-overlays-for-ADV7282M-OV5647-and-TC358.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0182-dtoverlays-Add-support-for-ADV7280-M-ADV7281-M-and-A.patch (renamed from target/linux/brcm2708/patches-4.19/950-0186-dtoverlays-Add-support-for-ADV7280-M-ADV7281-M-and-A.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0183-vcsm-Fix-an-NULL-dereference-in-the-import_dmabuf-er.patch (renamed from target/linux/brcm2708/patches-4.19/950-0187-vcsm-Fix-an-NULL-dereference-in-the-import_dmabuf-er.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0184-Update-README-2750.patch (renamed from target/linux/brcm2708/patches-4.19/950-0188-Update-README-2750.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0185-overlays-Remove-superfluous-address-size-cells.patch (renamed from target/linux/brcm2708/patches-4.19/950-0189-overlays-Remove-superfluous-address-size-cells.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0186-rpi-wm8804-soundcard-drop-PWRDN-register-writes.patch (renamed from target/linux/brcm2708/patches-4.19/950-0191-rpi-wm8804-soundcard-drop-PWRDN-register-writes.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0187-rpi-wm8804-soundcard-configure-wm8804-clocks-only-on.patch (renamed from target/linux/brcm2708/patches-4.19/950-0192-rpi-wm8804-soundcard-configure-wm8804-clocks-only-on.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0188-dtoverlays-Add-i2c-on-0-1-option-to-TC358743-ADV7282.patch (renamed from target/linux/brcm2708/patches-4.19/950-0193-dtoverlays-Add-i2c-on-0-1-option-to-TC358743-ADV7282.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0189-overlays-Update-upstream-overlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0194-overlays-Update-upstream-overlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0190-BCM2708_DT-update-firmware-node-binding.patch (renamed from target/linux/brcm2708/patches-4.19/950-0195-BCM2708_DT-update-firmware-node-binding.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0190-Revert-ASoC-wm8804-MCLK-configuration-options-32-bit.patch29
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0191-BCM2710_DT-fix-gpio-expander-bindings.patch (renamed from target/linux/brcm2708/patches-4.19/950-0196-BCM2710_DT-fix-gpio-expander-bindings.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0192-ARM-dts-bcm283x-The-lan7515-PHY-node-has-moved.patch (renamed from target/linux/brcm2708/patches-4.19/950-0197-ARM-dts-bcm283x-The-lan7515-PHY-node-has-moved.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0193-net-lan78xx-Support-auto-downshift-to-100Mb-s.patch (renamed from target/linux/brcm2708/patches-4.19/950-0198-net-lan78xx-Support-auto-downshift-to-100Mb-s.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0194-dt-bindings-Document-microchip-downshift-after.patch (renamed from target/linux/brcm2708/patches-4.19/950-0199-dt-bindings-Document-microchip-downshift-after.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0195-ARM-dts-bcm283x-Set-downshift-after-for-Pi-3B.patch (renamed from target/linux/brcm2708/patches-4.19/950-0200-ARM-dts-bcm283x-Set-downshift-after-for-Pi-3B.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0196-BCM270X_DT-Add-new-Ethernet-DT-parameters.patch (renamed from target/linux/brcm2708/patches-4.19/950-0201-BCM270X_DT-Add-new-Ethernet-DT-parameters.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0197-BCM270X_DT-Mark-eth_downshift_after-as-an-integer.patch (renamed from target/linux/brcm2708/patches-4.19/950-0202-BCM270X_DT-Mark-eth_downshift_after-as-an-integer.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0198-dwc-otg-FIQ-Fix-bad-mode-in-data-abort-handler.patch (renamed from target/linux/brcm2708/patches-4.19/950-0203-dwc-otg-FIQ-Fix-bad-mode-in-data-abort-handler.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0199-lirc-rpi-Remove-in-favour-of-gpio-ir.patch (renamed from target/linux/brcm2708/patches-4.19/950-0204-lirc-rpi-Remove-in-favour-of-gpio-ir.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0200-media-bcm2835-unicam-Pass-through-the-colorspace-on-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0205-media-bcm2835-unicam-Pass-through-the-colorspace-on-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0201-media-tc358743-Return-an-appropriate-colorspace-from.patch (renamed from target/linux/brcm2708/patches-4.19/950-0206-media-tc358743-Return-an-appropriate-colorspace-from.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0202-staging-bcm2835-camera-fix-module-autoloading.patch (renamed from target/linux/brcm2708/patches-4.19/950-0207-staging-bcm2835-camera-fix-module-autoloading.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0203-staging-bcm2835-camera-Move-module-info-to-the-end.patch (renamed from target/linux/brcm2708/patches-4.19/950-0208-staging-bcm2835-camera-Move-module-info-to-the-end.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0204-staging-vchiq_arm-Fix-platform-device-unregistration.patch (renamed from target/linux/brcm2708/patches-4.19/950-0209-staging-vchiq_arm-Fix-platform-device-unregistration.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0205-staging-vchiq_arm-Fix-camera-device-registration.patch (renamed from target/linux/brcm2708/patches-4.19/950-0210-staging-vchiq_arm-Fix-camera-device-registration.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0206-staging-bcm2835-camera-Provide-more-specific-probe-e.patch (renamed from target/linux/brcm2708/patches-4.19/950-0215-staging-bcm2835-camera-Provide-more-specific-probe-e.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0207-staging-bcm2835-camera-Add-hint-about-possible-fault.patch (renamed from target/linux/brcm2708/patches-4.19/950-0216-staging-bcm2835-camera-Add-hint-about-possible-fault.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0208-staging-bcm2835-Don-t-probe-if-no-camera-is-detected.patch (renamed from target/linux/brcm2708/patches-4.19/950-0217-staging-bcm2835-Don-t-probe-if-no-camera-is-detected.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0209-staging-vchiq_arm-Improve-error-handling-on-loading-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0218-staging-vchiq_arm-Improve-error-handling-on-loading-.patch)10
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0210-staging-bcm2835-camera-Do-not-bulk-receive-from-serv.patch (renamed from target/linux/brcm2708/patches-4.19/950-0219-staging-bcm2835-camera-Do-not-bulk-receive-from-serv.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0211-staging-bcm2835-camera-Ensure-H264-header-bytes-get-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0220-staging-bcm2835-camera-Ensure-H264-header-bytes-get-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0211-staging-vchiq_arm-Register-a-platform-device-for-the.patch38
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0212-staging-bcm2835-audio-Enable-compile-test.patch22
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0212-staging-bcm2835-camera-Correctly-denote-key-frames-i.patch (renamed from target/linux/brcm2708/patches-4.19/950-0221-staging-bcm2835-camera-Correctly-denote-key-frames-i.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0213-staging-bcm2835-audio-use-module_platform_driver-mac.patch43
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0213-staging-bcm2835-camera-Return-early-on-errors.patch (renamed from target/linux/brcm2708/patches-4.19/950-0222-staging-bcm2835-camera-Return-early-on-errors.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0214-staging-bcm2835-audio-Drop-DT-dependency.patch116
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0214-staging-bcm2835-camera-Remove-dead-email-addresses.patch (renamed from target/linux/brcm2708/patches-4.19/950-0223-staging-bcm2835-camera-Remove-dead-email-addresses.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0215-staging-bcm2835-camera-Fix-comment-style-violations.patch (renamed from target/linux/brcm2708/patches-4.19/950-0224-staging-bcm2835-camera-Fix-comment-style-violations.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0216-staging-bcm2835-camera-Fix-spacing-around-operators.patch (renamed from target/linux/brcm2708/patches-4.19/950-0225-staging-bcm2835-camera-Fix-spacing-around-operators.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0217-staging-bcm2835-camera-Reduce-length-of-enum-names.patch (renamed from target/linux/brcm2708/patches-4.19/950-0226-staging-bcm2835-camera-Reduce-length-of-enum-names.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0218-staging-bcm2835-camera-Fix-multiple-line-dereference.patch (renamed from target/linux/brcm2708/patches-4.19/950-0227-staging-bcm2835-camera-Fix-multiple-line-dereference.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0219-staging-bcm2835-camera-Fix-brace-style-issues.patch (renamed from target/linux/brcm2708/patches-4.19/950-0228-staging-bcm2835-camera-Fix-brace-style-issues.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0220-staging-bcm2835-camera-Fix-missing-lines-between-ite.patch (renamed from target/linux/brcm2708/patches-4.19/950-0229-staging-bcm2835-camera-Fix-missing-lines-between-ite.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0221-staging-bcm2835-camera-Fix-logical-continuation-spli.patch (renamed from target/linux/brcm2708/patches-4.19/950-0230-staging-bcm2835-camera-Fix-logical-continuation-spli.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0222-staging-bcm2835-camera-Fix-open-parenthesis-alignmen.patch (renamed from target/linux/brcm2708/patches-4.19/950-0231-staging-bcm2835-camera-Fix-open-parenthesis-alignmen.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0223-staging-bcm2835-camera-Set-sequence-number-correctly.patch (renamed from target/linux/brcm2708/patches-4.19/950-0232-staging-bcm2835-camera-Set-sequence-number-correctly.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0224-staging-bcm2835-camera-Ensure-timestamps-never-go-ba.patch (renamed from target/linux/brcm2708/patches-4.19/950-0233-staging-bcm2835-camera-Ensure-timestamps-never-go-ba.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0225-staging-bcm2835-camera-Avoid-unneeded-internal-decla.patch (renamed from target/linux/brcm2708/patches-4.19/950-0234-staging-bcm2835-camera-Avoid-unneeded-internal-decla.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0226-staging-bcm2835-camera-Add-multiple-inclusion-protec.patch (renamed from target/linux/brcm2708/patches-4.19/950-0235-staging-bcm2835-camera-Add-multiple-inclusion-protec.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0227-staging-bcm2835-camera-Unify-header-inclusion-define.patch (renamed from target/linux/brcm2708/patches-4.19/950-0236-staging-bcm2835-camera-Unify-header-inclusion-define.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0228-staging-bcm2835-camera-Fix-alignment-should-match-op.patch (renamed from target/linux/brcm2708/patches-4.19/950-0237-staging-bcm2835-camera-Fix-alignment-should-match-op.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0229-staging-bcm2835-camera-Fix-multiple-assignments-shou.patch (renamed from target/linux/brcm2708/patches-4.19/950-0238-staging-bcm2835-camera-Fix-multiple-assignments-shou.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0230-staging-bcm2835-camera-Fix-up-all-formatting-in-mmal.patch (renamed from target/linux/brcm2708/patches-4.19/950-0239-staging-bcm2835-camera-Fix-up-all-formatting-in-mmal.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0231-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch (renamed from target/linux/brcm2708/patches-4.19/950-0240-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0232-staging-bcm2835-camera-Correct-V4L2_CID_COLORFX_CBCR.patch (renamed from target/linux/brcm2708/patches-4.19/950-0241-staging-bcm2835-camera-Correct-V4L2_CID_COLORFX_CBCR.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0233-staging-bcm2835-camera-Remove-amend-some-obsolete-co.patch (renamed from target/linux/brcm2708/patches-4.19/950-0242-staging-bcm2835-camera-Remove-amend-some-obsolete-co.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0234-staging-vc04_services-Split-vchiq-mmal-into-a-module.patch (renamed from target/linux/brcm2708/patches-4.19/950-0243-staging-vc04_services-Split-vchiq-mmal-into-a-module.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0235-staging-mmal-vchiq-Allocate-and-free-components-as-r.patch (renamed from target/linux/brcm2708/patches-4.19/950-0244-staging-mmal-vchiq-Allocate-and-free-components-as-r.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0236-staging-mmal-vchiq-Avoid-use-of-bool-in-structures.patch (renamed from target/linux/brcm2708/patches-4.19/950-0245-staging-mmal-vchiq-Avoid-use-of-bool-in-structures.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0237-staging-mmal-vchiq-Make-timeout-a-defined-parameter.patch (renamed from target/linux/brcm2708/patches-4.19/950-0246-staging-mmal-vchiq-Make-timeout-a-defined-parameter.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0238-staging-mmal-vchiq-Make-a-mmal_buf-struct-for-passin.patch (renamed from target/linux/brcm2708/patches-4.19/950-0247-staging-mmal-vchiq-Make-a-mmal_buf-struct-for-passin.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0239-staging-mmal-vchiq-Add-support-for-event-callbacks.patch (renamed from target/linux/brcm2708/patches-4.19/950-0248-staging-mmal-vchiq-Add-support-for-event-callbacks.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0240-staging-vc04_services-Support-sending-data-to-MMAL-p.patch (renamed from target/linux/brcm2708/patches-4.19/950-0249-staging-vc04_services-Support-sending-data-to-MMAL-p.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0241-staging-vc04_services-Fixup-vchiq-mmal-include-order.patch (renamed from target/linux/brcm2708/patches-4.19/950-0250-staging-vc04_services-Fixup-vchiq-mmal-include-order.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0242-staging-vc04_services-Add-new-vc-sm-cma-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0251-staging-vc04_services-Add-new-vc-sm-cma-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0243-staging-vc-sm-cma-Fixup-driver-for-older-VCHI-APIs.patch (renamed from target/linux/brcm2708/patches-4.19/950-0252-staging-vc-sm-cma-Fixup-driver-for-older-VCHI-APIs.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0244-staging-vc04_services-Use-vc-sm-cma-to-support-zero-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0253-staging-vc04_services-Use-vc-sm-cma-to-support-zero-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0245-media-videobuf2-Allow-exporting-of-a-struct-dmabuf.patch (renamed from target/linux/brcm2708/patches-4.19/950-0254-media-videobuf2-Allow-exporting-of-a-struct-dmabuf.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0246-staging-vc04_services-Add-a-V4L2-M2M-codec-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0255-staging-vc04_services-Add-a-V4L2-M2M-codec-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0247-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch (renamed from target/linux/brcm2708/patches-4.19/950-0256-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch)12
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0248-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch (renamed from target/linux/brcm2708/patches-4.19/950-0257-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch)6
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0249-staging-bcm2835-camera-Fix-stride-on-RGB3-BGR3-forma.patch (renamed from target/linux/brcm2708/patches-4.19/950-0258-staging-bcm2835-camera-Fix-stride-on-RGB3-BGR3-forma.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0250-tpm-Make-SECURITYFS-a-weak-dependency.patch (renamed from target/linux/brcm2708/patches-4.19/950-0260-tpm-Make-SECURITYFS-a-weak-dependency.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0251-Add-overlay-for-SLB9760-Iridium-LetsTrust-TPM.patch (renamed from target/linux/brcm2708/patches-4.19/950-0261-Add-overlay-for-SLB9760-Iridium-LetsTrust-TPM.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0252-ASoC-add-driver-for-3Dlab-Nano-soundcard-2758.patch (renamed from target/linux/brcm2708/patches-4.19/950-0264-ASoC-add-driver-for-3Dlab-Nano-soundcard-2758.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0253-overlays-Update-README-with-removal-of-lirc-rpi.patch (renamed from target/linux/brcm2708/patches-4.19/950-0265-overlays-Update-README-with-removal-of-lirc-rpi.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0254-staging-bcm2835-camera-Check-the-error-for-REPEAT_SE.patch (renamed from target/linux/brcm2708/patches-4.19/950-0266-staging-bcm2835-camera-Check-the-error-for-REPEAT_SE.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0255-gpio-ir-change-default-pull-configuration-to-up.patch (renamed from target/linux/brcm2708/patches-4.19/950-0267-gpio-ir-change-default-pull-configuration-to-up.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0256-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch (renamed from target/linux/brcm2708/patches-4.19/950-0268-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0257-firmware-raspberrypi-Report-the-fw-git-hash-during-p.patch (renamed from target/linux/brcm2708/patches-4.19/950-0269-firmware-raspberrypi-Report-the-fw-git-hash-during-p.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0258-arm64-dts-broadcom-Enable-fixups-for-overlays.patch (renamed from target/linux/brcm2708/patches-4.19/950-0270-arm64-dts-broadcom-Enable-fixups-for-overlays.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0259-dtoverlays-fe-pi-audio-fix-sgtl5000-compatible-strin.patch (renamed from target/linux/brcm2708/patches-4.19/950-0271-dtoverlays-fe-pi-audio-fix-sgtl5000-compatible-strin.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0259-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch76
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0260-bcm2835_smi-re-add-dereference-to-fix-DMA-transfers.patch (renamed from target/linux/brcm2708/patches-4.19/950-0272-bcm2835_smi-re-add-dereference-to-fix-DMA-transfers.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0261-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch (renamed from target/linux/brcm2708/patches-4.19/950-0273-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0262-ASoC-Add-support-for-AudioSense-Pi-add-on-soundcard.patch (renamed from target/linux/brcm2708/patches-4.19/950-0274-ASoC-Add-support-for-AudioSense-Pi-add-on-soundcard.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0262-Revert-staging-vchiq_arm-Register-a-platform-device-.patch48
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0263-BCM270X-Adding-device-tree-support-for-AudioSense-Pi.patch (renamed from target/linux/brcm2708/patches-4.19/950-0275-BCM270X-Adding-device-tree-support-for-AudioSense-Pi.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0263-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch114
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0264-overlays-sdio-Add-enhanced-1-bit-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0276-overlays-sdio-Add-enhanced-1-bit-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0265-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch (renamed from target/linux/brcm2708/patches-4.19/950-0277-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0266-Added-driver-for-the-HiFiBerry-DAC-ADC-2694.patch (renamed from target/linux/brcm2708/patches-4.19/950-0278-Added-driver-for-the-HiFiBerry-DAC-ADC-2694.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0267-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch (renamed from target/linux/brcm2708/patches-4.19/950-0279-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0268-overlays-Add-ssd1306-overlay-for-OLED-display.patch (renamed from target/linux/brcm2708/patches-4.19/950-0280-overlays-Add-ssd1306-overlay-for-OLED-display.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0269-overlays-mcp23017-Support-the-MCP23008.patch (renamed from target/linux/brcm2708/patches-4.19/950-0281-overlays-mcp23017-Support-the-MCP23008.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0270-overlays-Add-mcp342x-overlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0282-overlays-Add-mcp342x-overlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0271-char-vcio-Add-compat-ioctl-handling.patch (renamed from target/linux/brcm2708/patches-4.19/950-0283-char-vcio-Add-compat-ioctl-handling.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0272-char-vcio-Fail-probe-if-rpi_firmware-is-not-found.patch (renamed from target/linux/brcm2708/patches-4.19/950-0284-char-vcio-Fail-probe-if-rpi_firmware-is-not-found.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0273-staging-mmal-vchiq-Fix-client_component-for-64-bit-k.patch (renamed from target/linux/brcm2708/patches-4.19/950-0285-staging-mmal-vchiq-Fix-client_component-for-64-bit-k.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0274-staging-bcm2835-camera-Add-sanity-checks-for-queue_s.patch (renamed from target/linux/brcm2708/patches-4.19/950-0286-staging-bcm2835-camera-Add-sanity-checks-for-queue_s.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0275-staging-bcm2835-camera-Set-the-field-value-within-ea.patch (renamed from target/linux/brcm2708/patches-4.19/950-0287-staging-bcm2835-camera-Set-the-field-value-within-ea.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0276-char-vc_mem-Fix-up-compat-ioctls-for-64bit-kernel.patch (renamed from target/linux/brcm2708/patches-4.19/950-0288-char-vc_mem-Fix-up-compat-ioctls-for-64bit-kernel.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0277-char-vc_mem-Fix-all-coding-style-issues.patch (renamed from target/linux/brcm2708/patches-4.19/950-0289-char-vc_mem-Fix-all-coding-style-issues.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0278-clk-clk-bcm2835-Use-zd-when-printing-size_t.patch (renamed from target/linux/brcm2708/patches-4.19/950-0290-clk-clk-bcm2835-Use-zd-when-printing-size_t.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0279-mfd-Add-rpi_sense_core-of-compatible-string.patch (renamed from target/linux/brcm2708/patches-4.19/950-0291-mfd-Add-rpi_sense_core-of-compatible-string.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0280-gpu-vc4_firmware_kms-Fix-up-64-bit-compile-warnings.patch (renamed from target/linux/brcm2708/patches-4.19/950-0292-gpu-vc4_firmware_kms-Fix-up-64-bit-compile-warnings.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0281-input-rpi-ft5406-Clear-build-warning-on-64-bit-build.patch (renamed from target/linux/brcm2708/patches-4.19/950-0293-input-rpi-ft5406-Clear-build-warning-on-64-bit-build.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0282-dtoverlays-Correct-DT-handling-camera-GPIOs.patch (renamed from target/linux/brcm2708/patches-4.19/950-0294-dtoverlays-Correct-DT-handling-camera-GPIOs.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0283-media-ov5647-Use-gpiod_set_value_cansleep.patch (renamed from target/linux/brcm2708/patches-4.19/950-0295-media-ov5647-Use-gpiod_set_value_cansleep.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0284-media-bcm2835-unicam-Power-on-subdev-on-open-release.patch (renamed from target/linux/brcm2708/patches-4.19/950-0296-media-bcm2835-unicam-Power-on-subdev-on-open-release.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0285-audioinjector-octo-revert-to-dummy-supplies.patch (renamed from target/linux/brcm2708/patches-4.19/950-0297-audioinjector-octo-revert-to-dummy-supplies.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0286-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch (renamed from target/linux/brcm2708/patches-4.19/950-0298-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0287-staging-bcm2835-codec-variable-vb2-may-be-used-unini.patch (renamed from target/linux/brcm2708/patches-4.19/950-0299-staging-bcm2835-codec-variable-vb2-may-be-used-unini.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0288-staging-bcm2835-codec-Fix-potentially-uninitialised-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0300-staging-bcm2835-codec-Fix-potentially-uninitialised-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0289-video-bcm2708_fb-Add-compat_ioctl-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0301-video-bcm2708_fb-Add-compat_ioctl-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0290-video-bcm2708_fb-Fix-warnings-on-64-bit-builds.patch (renamed from target/linux/brcm2708/patches-4.19/950-0302-video-bcm2708_fb-Fix-warnings-on-64-bit-builds.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0291-video-bcm2708_fb-Clean-up-coding-style-issues.patch (renamed from target/linux/brcm2708/patches-4.19/950-0303-video-bcm2708_fb-Clean-up-coding-style-issues.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0292-bcm2835-dma-Add-support-for-per-channel-flags.patch (renamed from target/linux/brcm2708/patches-4.19/950-0304-bcm2835-dma-Add-support-for-per-channel-flags.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0293-bcm283x-Set-the-DISDEBUG-flag-for-SD-transfers.patch (renamed from target/linux/brcm2708/patches-4.19/950-0305-bcm283x-Set-the-DISDEBUG-flag-for-SD-transfers.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0294-ASoC-pcm512x-Implement-the-digital_mute-interface.patch (renamed from target/linux/brcm2708/patches-4.19/950-0306-ASoC-pcm512x-Implement-the-digital_mute-interface.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0295-ASoC-pcm512x-Fix-a-double-unlock-in-pcm512x_digital_.patch (renamed from target/linux/brcm2708/patches-4.19/950-0307-ASoC-pcm512x-Fix-a-double-unlock-in-pcm512x_digital_.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0296-usb-dwc_otg-Clean-up-build-warnings-on-64bit-kernels.patch (renamed from target/linux/brcm2708/patches-4.19/950-0308-usb-dwc_otg-Clean-up-build-warnings-on-64bit-kernels.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0297-usb-dwc_otg-Use-dma-allocation-for-mphi-dummy_send-b.patch (renamed from target/linux/brcm2708/patches-4.19/950-0309-usb-dwc_otg-Use-dma-allocation-for-mphi-dummy_send-b.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0298-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch (renamed from target/linux/brcm2708/patches-4.19/950-0310-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0299-staging-vc-sm-cma-Correct-DMA-configuration.patch (renamed from target/linux/brcm2708/patches-4.19/950-0311-staging-vc-sm-cma-Correct-DMA-configuration.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0300-staging-vc-sm-cma-Use-a-void-pointer-as-the-handle-w.patch (renamed from target/linux/brcm2708/patches-4.19/950-0312-staging-vc-sm-cma-Use-a-void-pointer-as-the-handle-w.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0301-staging-vc-sm-cma-Fix-up-for-64bit-builds.patch (renamed from target/linux/brcm2708/patches-4.19/950-0313-staging-vc-sm-cma-Fix-up-for-64bit-builds.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0302-configs-Enable-the-AD193x-codecs.patch (renamed from target/linux/brcm2708/patches-4.19/950-0314-configs-Enable-the-AD193x-codecs.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0303-overlays-balenaFin-v1.1.0-carrier-board-update.patch (renamed from target/linux/brcm2708/patches-4.19/950-0315-overlays-balenaFin-v1.1.0-carrier-board-update.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0304-gpu-vc4-fkms-Update-driver-to-not-use-plane-crtc.patch (renamed from target/linux/brcm2708/patches-4.19/950-0316-gpu-vc4-fkms-Update-driver-to-not-use-plane-crtc.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0305-drm-vc4-Programming-the-CTM-is-conditional-on-runnin.patch (renamed from target/linux/brcm2708/patches-4.19/950-0317-drm-vc4-Programming-the-CTM-is-conditional-on-runnin.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0306-staging-mmal_vchiq-Add-in-the-Bayer-encoding-formats.patch (renamed from target/linux/brcm2708/patches-4.19/950-0318-staging-mmal_vchiq-Add-in-the-Bayer-encoding-formats.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0307-staging-mmal-vchiq-Always-return-the-param-size-from.patch (renamed from target/linux/brcm2708/patches-4.19/950-0319-staging-mmal-vchiq-Always-return-the-param-size-from.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0308-staging-mmal-vchiq-If-the-VPU-returns-an-error-don-t.patch (renamed from target/linux/brcm2708/patches-4.19/950-0320-staging-mmal-vchiq-If-the-VPU-returns-an-error-don-t.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0309-staging-bcm2835_codec-Query-supported-formats-from-t.patch (renamed from target/linux/brcm2708/patches-4.19/950-0321-staging-bcm2835_codec-Query-supported-formats-from-t.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0310-staging-bcm2835_codec-Add-support-for-the-ISP-as-an-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0322-staging-bcm2835_codec-Add-support-for-the-ISP-as-an-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0311-staging-bcm2835_codec-Add-an-option-for-ignoring-Bay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0323-staging-bcm2835_codec-Add-an-option-for-ignoring-Bay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0312-staging-bcm2835_codec-Fix-handling-of-VB2_MEMORY_DMA.patch (renamed from target/linux/brcm2708/patches-4.19/950-0324-staging-bcm2835_codec-Fix-handling-of-VB2_MEMORY_DMA.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0313-staging-mmal-vchiq-Update-mmal_parameters.h-with-rec.patch (renamed from target/linux/brcm2708/patches-4.19/950-0325-staging-mmal-vchiq-Update-mmal_parameters.h-with-rec.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0314-staging-bcm2835_codec-Include-timing-info-in-SPS-hea.patch (renamed from target/linux/brcm2708/patches-4.19/950-0326-staging-bcm2835_codec-Include-timing-info-in-SPS-hea.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0315-drm-vc4-Don-t-wait-for-vblank-on-fkms-cursor-updates.patch (renamed from target/linux/brcm2708/patches-4.19/950-0327-drm-vc4-Don-t-wait-for-vblank-on-fkms-cursor-updates.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0316-Fix-for-Pisound-kernel-module-in-Real-Time-kernel-co.patch (renamed from target/linux/brcm2708/patches-4.19/950-0328-Fix-for-Pisound-kernel-module-in-Real-Time-kernel-co.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0317-Added-mute-stream-func.patch (renamed from target/linux/brcm2708/patches-4.19/950-0329-Added-mute-stream-func.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0318-lan78xx-EEE-support-is-now-a-PHY-property.patch (renamed from target/linux/brcm2708/patches-4.19/950-0330-lan78xx-EEE-support-is-now-a-PHY-property.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0319-staging-vc_sm_cma-Remove-erroneous-misc_deregister.patch (renamed from target/linux/brcm2708/patches-4.19/950-0332-staging-vc_sm_cma-Remove-erroneous-misc_deregister.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0320-vcsm-Fix-makefile-include-on-out-of-tree-builds.patch (renamed from target/linux/brcm2708/patches-4.19/950-0333-vcsm-Fix-makefile-include-on-out-of-tree-builds.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0321-vcsm-Remove-set-but-unused-variable.patch (renamed from target/linux/brcm2708/patches-4.19/950-0334-vcsm-Remove-set-but-unused-variable.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0322-vcsm-Reduce-scope-of-local-functions.patch (renamed from target/linux/brcm2708/patches-4.19/950-0335-vcsm-Reduce-scope-of-local-functions.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0323-staging-bcm2835-codec-NULL-component-handle-on-queue.patch (renamed from target/linux/brcm2708/patches-4.19/950-0336-staging-bcm2835-codec-NULL-component-handle-on-queue.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0324-staging-vc-sm-cma-Remove-the-debugfs-directory-on-re.patch (renamed from target/linux/brcm2708/patches-4.19/950-0337-staging-vc-sm-cma-Remove-the-debugfs-directory-on-re.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0325-staging-vc-sm-cma-Use-devm_-allocs-for-sm_state.patch (renamed from target/linux/brcm2708/patches-4.19/950-0338-staging-vc-sm-cma-Use-devm_-allocs-for-sm_state.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0326-staging-vc-sm-cma-Don-t-fail-if-debugfs-calls-fail.patch (renamed from target/linux/brcm2708/patches-4.19/950-0339-staging-vc-sm-cma-Don-t-fail-if-debugfs-calls-fail.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0327-staging-vc-sm-cma-Ensure-mutex-and-idr-are-destroyed.patch (renamed from target/linux/brcm2708/patches-4.19/950-0340-staging-vc-sm-cma-Ensure-mutex-and-idr-are-destroyed.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0328-staging-bcm2835_codec-Clean-up-logging-on-unloading-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0341-staging-bcm2835_codec-Clean-up-logging-on-unloading-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0329-bcm2835-sdhost-Allow-for-sg-entries-that-cross-pages.patch (renamed from target/linux/brcm2708/patches-4.19/950-0342-bcm2835-sdhost-Allow-for-sg-entries-that-cross-pages.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0330-overlays-sdio-Added-4-bit-support-on-GPIOs-34-39.-29.patch (renamed from target/linux/brcm2708/patches-4.19/950-0343-overlays-sdio-Added-4-bit-support-on-GPIOs-34-39.-29.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0331-overlays-Fix-multiple-instantiation-of-sc16is7xx.patch (renamed from target/linux/brcm2708/patches-4.19/950-0344-overlays-Fix-multiple-instantiation-of-sc16is7xx.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0331-video-bcm2708_fb-Try-allocating-on-the-ARM-and-passi.patch162
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0332-bcm2835-mmc-Fix-DMA-channel-leak.patch (renamed from target/linux/brcm2708/patches-4.19/950-0345-bcm2835-mmc-Fix-DMA-channel-leak.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0333-bcm2835-mmc-Fix-struct-mmc_host-leak-on-probe.patch (renamed from target/linux/brcm2708/patches-4.19/950-0346-bcm2835-mmc-Fix-struct-mmc_host-leak-on-probe.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0334-bcm2835-mmc-Fix-duplicate-free_irq-on-remove.patch (renamed from target/linux/brcm2708/patches-4.19/950-0347-bcm2835-mmc-Fix-duplicate-free_irq-on-remove.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0335-bcm2835-mmc-Handle-mmc_add_host-errors.patch (renamed from target/linux/brcm2708/patches-4.19/950-0348-bcm2835-mmc-Handle-mmc_add_host-errors.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0336-bcm2835-mmc-Deduplicate-reset-of-driver-data-on-remo.patch (renamed from target/linux/brcm2708/patches-4.19/950-0349-bcm2835-mmc-Deduplicate-reset-of-driver-data-on-remo.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0337-overlays-Add-max17040-support-to-i2c-sensor.patch (renamed from target/linux/brcm2708/patches-4.19/950-0350-overlays-Add-max17040-support-to-i2c-sensor.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0338-media-bcm2835-unicam-Add-support-for-enum-framesizes.patch (renamed from target/linux/brcm2708/patches-4.19/950-0351-media-bcm2835-unicam-Add-support-for-enum-framesizes.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0339-staging-bcm2835-codec-Refactor-default-resolution-co.patch (renamed from target/linux/brcm2708/patches-4.19/950-0352-staging-bcm2835-codec-Refactor-default-resolution-co.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0340-nvmem-add-type-attribute.patch (renamed from target/linux/brcm2708/patches-4.19/950-0353-nvmem-add-type-attribute.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0341-rtc-rv3028-add-new-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0354-rtc-rv3028-add-new-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0342-overlays-Add-rv3028-to-i2c-rtc.patch (renamed from target/linux/brcm2708/patches-4.19/950-0355-overlays-Add-rv3028-to-i2c-rtc.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0343-ASoC-tlv320aic32x4-SND_SOC_DAPM_MICBIAS-is-deprecate.patch (renamed from target/linux/brcm2708/patches-4.19/950-0356-ASoC-tlv320aic32x4-SND_SOC_DAPM_MICBIAS-is-deprecate.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0344-ASoC-tlv320aic32x4-Break-out-clock-setting-into-sepa.patch (renamed from target/linux/brcm2708/patches-4.19/950-0357-ASoC-tlv320aic32x4-Break-out-clock-setting-into-sepa.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0345-ASoC-tlv320aic32x4-Properly-Set-Processing-Blocks.patch (renamed from target/linux/brcm2708/patches-4.19/950-0358-ASoC-tlv320aic32x4-Properly-Set-Processing-Blocks.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0346-ASoC-tlv320aic32x4-Model-PLL-in-CCF.patch (renamed from target/linux/brcm2708/patches-4.19/950-0359-ASoC-tlv320aic32x4-Model-PLL-in-CCF.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0347-ASoC-tlv320aic32x4-Model-CODEC_CLKIN-in-CCF.patch (renamed from target/linux/brcm2708/patches-4.19/950-0360-ASoC-tlv320aic32x4-Model-CODEC_CLKIN-in-CCF.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0348-ASoC-tlv320aic32x4-Model-DAC-ADC-dividers-in-CCF.patch (renamed from target/linux/brcm2708/patches-4.19/950-0361-ASoC-tlv320aic32x4-Model-DAC-ADC-dividers-in-CCF.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0349-ASoC-tlv320aic32x4-Model-BDIV-divider-in-CCF.patch (renamed from target/linux/brcm2708/patches-4.19/950-0362-ASoC-tlv320aic32x4-Model-BDIV-divider-in-CCF.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0350-ASoC-tlv320aic32x4-Control-clock-gating-with-CCF.patch (renamed from target/linux/brcm2708/patches-4.19/950-0363-ASoC-tlv320aic32x4-Control-clock-gating-with-CCF.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0351-ASoC-tlv320aic32x4-Move-aosr-and-dosr-setting-to-sep.patch (renamed from target/linux/brcm2708/patches-4.19/950-0364-ASoC-tlv320aic32x4-Move-aosr-and-dosr-setting-to-sep.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0352-ASoC-tlv320aic32x4-Dynamically-Determine-Clocking.patch (renamed from target/linux/brcm2708/patches-4.19/950-0365-ASoC-tlv320aic32x4-Dynamically-Determine-Clocking.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0353-ASoC-tlv320aic32x4-Restructure-set_dai_sysclk.patch (renamed from target/linux/brcm2708/patches-4.19/950-0366-ASoC-tlv320aic32x4-Restructure-set_dai_sysclk.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0354-ASoC-tlv320aic32x4-Remove-mclk-references.patch (renamed from target/linux/brcm2708/patches-4.19/950-0367-ASoC-tlv320aic32x4-Remove-mclk-references.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0355-ASoC-tlv320aic32x4-Allow-192000-Sample-Rate.patch (renamed from target/linux/brcm2708/patches-4.19/950-0368-ASoC-tlv320aic32x4-Allow-192000-Sample-Rate.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0356-ASoC-tlv320aic32x4-Only-enable-with-common-clock.patch (renamed from target/linux/brcm2708/patches-4.19/950-0369-ASoC-tlv320aic32x4-Only-enable-with-common-clock.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0357-Audiophonics-I-Sabre-9038Q2M-DAC-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0370-Audiophonics-I-Sabre-9038Q2M-DAC-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0358-ASoC-tlv320aic32x4-Change-author-s-name.patch (renamed from target/linux/brcm2708/patches-4.19/950-0371-ASoC-tlv320aic32x4-Change-author-s-name.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0359-ASoC-tlv320aic32x4-Update-copyright-and-use-SPDX-ide.patch (renamed from target/linux/brcm2708/patches-4.19/950-0372-ASoC-tlv320aic32x4-Update-copyright-and-use-SPDX-ide.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0360-ASoC-tlv320aic32x4-Add-Switch-for-Setting-Common-Mod.patch (renamed from target/linux/brcm2708/patches-4.19/950-0373-ASoC-tlv320aic32x4-Add-Switch-for-Setting-Common-Mod.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0361-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch (renamed from target/linux/brcm2708/patches-4.19/950-0374-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0362-dtoverlays-Add-Support-for-the-UDRC-DRAWS.patch (renamed from target/linux/brcm2708/patches-4.19/950-0375-dtoverlays-Add-Support-for-the-UDRC-DRAWS.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0363-dwc_otg-only-do_split-when-we-actually-need-to-do-a-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0376-dwc_otg-only-do_split-when-we-actually-need-to-do-a-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0364-Input-ili210x-fetch-touchscreen-geometry-from-DT.patch (renamed from target/linux/brcm2708/patches-4.19/950-0377-Input-ili210x-fetch-touchscreen-geometry-from-DT.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0365-Input-ili210x-add-DT-binding-document.patch (renamed from target/linux/brcm2708/patches-4.19/950-0378-Input-ili210x-add-DT-binding-document.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0366-BCM2708-Add-core-Device-Tree-support-ilitek251x.patch (renamed from target/linux/brcm2708/patches-4.19/950-0379-BCM2708-Add-core-Device-Tree-support-ilitek251x.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0367-dwc_otg-fix-locking-around-dequeueing-and-killing-UR.patch (renamed from target/linux/brcm2708/patches-4.19/950-0380-dwc_otg-fix-locking-around-dequeueing-and-killing-UR.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0368-rtc-rv3028-Add-backup-switchover-mode-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0381-rtc-rv3028-Add-backup-switchover-mode-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0369-dt-bindings-rv3028-backup-switchover-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0382-dt-bindings-rv3028-backup-switchover-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0370-overlays-Add-rv3028-backup-switchover-support-to-i2c.patch (renamed from target/linux/brcm2708/patches-4.19/950-0383-overlays-Add-rv3028-backup-switchover-support-to-i2c.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0371-Maxim-MAX98357A-I2S-DAC-overlay-2935.patch (renamed from target/linux/brcm2708/patches-4.19/950-0384-Maxim-MAX98357A-I2S-DAC-overlay-2935.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0372-sound-Fixes-for-audioinjector-octo-under-4.19.patch (renamed from target/linux/brcm2708/patches-4.19/950-0385-sound-Fixes-for-audioinjector-octo-under-4.19.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0373-overlays-Add-PiGlow-overlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0387-overlays-Add-PiGlow-overlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0374-staging-bcm2835-audio-Clean-up-mutex-locks.patch (renamed from target/linux/brcm2708/patches-4.19/950-0391-staging-bcm2835-audio-Clean-up-mutex-locks.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0375-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0392-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0376-staging-bcm2835-audio-Clean-up-include-files-in-bcm2.patch (renamed from target/linux/brcm2708/patches-4.19/950-0393-staging-bcm2835-audio-Clean-up-include-files-in-bcm2.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0377-staging-bcm2835-audio-Remove-redundant-substream-mas.patch (renamed from target/linux/brcm2708/patches-4.19/950-0394-staging-bcm2835-audio-Remove-redundant-substream-mas.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0378-staging-bcm2835-audio-Fix-mute-controls-volume-handl.patch (renamed from target/linux/brcm2708/patches-4.19/950-0395-staging-bcm2835-audio-Fix-mute-controls-volume-handl.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0379-staging-bcm2835-audio-Remove-redundant-function-call.patch (renamed from target/linux/brcm2708/patches-4.19/950-0396-staging-bcm2835-audio-Remove-redundant-function-call.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0380-staging-bcm2835-audio-Remove-superfluous-open-flag.patch (renamed from target/linux/brcm2708/patches-4.19/950-0397-staging-bcm2835-audio-Remove-superfluous-open-flag.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0381-staging-bcm2835-audio-Drop-useless-running-flag-and-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0398-staging-bcm2835-audio-Drop-useless-running-flag-and-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0382-staging-bcm2835-audio-Fix-incorrect-draining-handlin.patch (renamed from target/linux/brcm2708/patches-4.19/950-0399-staging-bcm2835-audio-Fix-incorrect-draining-handlin.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0383-staging-bcm2835-audio-Kill-unused-spinlock.patch (renamed from target/linux/brcm2708/patches-4.19/950-0400-staging-bcm2835-audio-Kill-unused-spinlock.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0384-staging-bcm2835-audio-Use-PCM-runtime-values-instead.patch (renamed from target/linux/brcm2708/patches-4.19/950-0401-staging-bcm2835-audio-Use-PCM-runtime-values-instead.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0385-staging-bcm2835-audio-Drop-unnecessary-pcm-indirect-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0402-staging-bcm2835-audio-Drop-unnecessary-pcm-indirect-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0386-Revert-cgroup-Disable-cgroup-memory-by-default.patch63
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0386-staging-bcm2835-audio-Drop-useless-NULL-check.patch (renamed from target/linux/brcm2708/patches-4.19/950-0403-staging-bcm2835-audio-Drop-useless-NULL-check.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0387-staging-bcm2835-audio-Propagate-parameter-setup-erro.patch (renamed from target/linux/brcm2708/patches-4.19/950-0404-staging-bcm2835-audio-Propagate-parameter-setup-erro.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0388-Revert-bcm2835-interpolate-audio-delay.patch71
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0388-staging-bcm2835-audio-Drop-debug-messages-in-bcm2835.patch (renamed from target/linux/brcm2708/patches-4.19/950-0405-staging-bcm2835-audio-Drop-debug-messages-in-bcm2835.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0389-Revert-staging-bcm2835-audio-Enable-compile-test.patch22
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0389-staging-bcm2835-audio-Drop-superfluous-mutex-lock-du.patch (renamed from target/linux/brcm2708/patches-4.19/950-0406-staging-bcm2835-audio-Drop-superfluous-mutex-lock-du.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0390-Revert-staging-bcm2835-audio-use-module_platform_dri.patch42
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0390-staging-bcm2835-audio-Add-10ms-period-constraint.patch (renamed from target/linux/brcm2708/patches-4.19/950-0407-staging-bcm2835-audio-Add-10ms-period-constraint.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0391-staging-bcm2835-audio-Make-single-vchi-handle.patch (renamed from target/linux/brcm2708/patches-4.19/950-0408-staging-bcm2835-audio-Make-single-vchi-handle.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0392-staging-bcm2835-audio-Code-refactoring-of-vchiq-acce.patch (renamed from target/linux/brcm2708/patches-4.19/950-0409-staging-bcm2835-audio-Code-refactoring-of-vchiq-acce.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0393-staging-bcm2835-audio-Operate-non-atomic-PCM-ops.patch (renamed from target/linux/brcm2708/patches-4.19/950-0410-staging-bcm2835-audio-Operate-non-atomic-PCM-ops.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0394-staging-bcm2835-audio-Use-card-private_data.patch (renamed from target/linux/brcm2708/patches-4.19/950-0411-staging-bcm2835-audio-Use-card-private_data.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0395-staging-bcm2835-audio-Use-standard-error-print-helpe.patch (renamed from target/linux/brcm2708/patches-4.19/950-0412-staging-bcm2835-audio-Use-standard-error-print-helpe.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0396-staging-bcm2835-audio-Remove-unnecessary-header-file.patch (renamed from target/linux/brcm2708/patches-4.19/950-0413-staging-bcm2835-audio-Remove-unnecessary-header-file.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0397-staging-bcm2835-audio-Move-module-parameter-descript.patch (renamed from target/linux/brcm2708/patches-4.19/950-0414-staging-bcm2835-audio-Move-module-parameter-descript.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0398-staging-bcm2835-audio-Use-coherent-device-buffers.patch (renamed from target/linux/brcm2708/patches-4.19/950-0415-staging-bcm2835-audio-Use-coherent-device-buffers.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0399-staging-bcm2835-audio-Set-SNDRV_PCM_INFO_SYNC_APPLPT.patch (renamed from target/linux/brcm2708/patches-4.19/950-0416-staging-bcm2835-audio-Set-SNDRV_PCM_INFO_SYNC_APPLPT.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0400-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch (renamed from target/linux/brcm2708/patches-4.19/950-0417-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0401-staging-bcm2835-audio-Simplify-kctl-creation-helpers.patch (renamed from target/linux/brcm2708/patches-4.19/950-0418-staging-bcm2835-audio-Simplify-kctl-creation-helpers.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0402-staging-bcm2835-audio-Simplify-card-object-managemen.patch (renamed from target/linux/brcm2708/patches-4.19/950-0419-staging-bcm2835-audio-Simplify-card-object-managemen.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0403-staging-bcm2835-audio-unify-FOURCC-command-definitio.patch (renamed from target/linux/brcm2708/patches-4.19/950-0420-staging-bcm2835-audio-unify-FOURCC-command-definitio.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0404-staging-bcm2835-audio-don-t-initialize-memory-twice.patch (renamed from target/linux/brcm2708/patches-4.19/950-0421-staging-bcm2835-audio-don-t-initialize-memory-twice.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0405-staging-bcm2835-audio-reorder-variable-declarations-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0422-staging-bcm2835-audio-reorder-variable-declarations-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0406-staging-bcm2835-audio-use-anonymous-union-in-struct-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0423-staging-bcm2835-audio-use-anonymous-union-in-struct-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0407-staging-bcm2835-audio-more-generic-probe-function-na.patch (renamed from target/linux/brcm2708/patches-4.19/950-0424-staging-bcm2835-audio-more-generic-probe-function-na.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0408-staging-bcm2835-audio-rename-platform_driver-structu.patch (renamed from target/linux/brcm2708/patches-4.19/950-0425-staging-bcm2835-audio-rename-platform_driver-structu.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0409-staging-bcm2835-audio-update-TODO.patch (renamed from target/linux/brcm2708/patches-4.19/950-0426-staging-bcm2835-audio-update-TODO.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0410-staging-bcm2835-audio-interpolate-audio-delay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0427-staging-bcm2835-audio-interpolate-audio-delay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0411-staging-bcm2835-audio-Enable-compile-test.patch (renamed from target/linux/brcm2708/patches-4.19/950-0428-staging-bcm2835-audio-Enable-compile-test.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0412-staging-bcm2835-audio-use-module_platform_driver-mac.patch (renamed from target/linux/brcm2708/patches-4.19/950-0429-staging-bcm2835-audio-use-module_platform_driver-mac.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0413-staging-bcm2835-audio-double-free-in-init-error-path.patch (renamed from target/linux/brcm2708/patches-4.19/950-0431-staging-bcm2835-audio-double-free-in-init-error-path.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0414-dts-Increase-default-coherent-pool-size.patch (renamed from target/linux/brcm2708/patches-4.19/950-0432-dts-Increase-default-coherent-pool-size.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0415-lan78xx-use-default-alignment-for-rx-buffers.patch (renamed from target/linux/brcm2708/patches-4.19/950-0435-lan78xx-use-default-alignment-for-rx-buffers.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0416-staging-bcm2835-codec-Correct-port-width-calc-for-tr.patch (renamed from target/linux/brcm2708/patches-4.19/950-0436-staging-bcm2835-codec-Correct-port-width-calc-for-tr.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0417-staging-bcm2835-codec-Remove-height-padding-for-ISP-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0437-staging-bcm2835-codec-Remove-height-padding-for-ISP-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0418-staging-mmal-vchiq-Free-the-event-context-for-contro.patch (renamed from target/linux/brcm2708/patches-4.19/950-0438-staging-mmal-vchiq-Free-the-event-context-for-contro.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0419-BCM270X_DT-Also-set-coherent_pool-1M-for-BT-Pis.patch (renamed from target/linux/brcm2708/patches-4.19/950-0439-BCM270X_DT-Also-set-coherent_pool-1M-for-BT-Pis.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0420-arm-dts-overlays-rpi-sense-add-upstream-humidity-com.patch (renamed from target/linux/brcm2708/patches-4.19/950-0440-arm-dts-overlays-rpi-sense-add-upstream-humidity-com.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0421-staging-mmal-vchiq-Fix-memory-leak-in-error-path.patch (renamed from target/linux/brcm2708/patches-4.19/950-0441-staging-mmal-vchiq-Fix-memory-leak-in-error-path.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0422-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch (renamed from target/linux/brcm2708/patches-4.19/950-0442-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0423-Added-IQaudIO-Pi-Codec-board-support-2969.patch (renamed from target/linux/brcm2708/patches-4.19/950-0444-Added-IQaudIO-Pi-Codec-board-support-2969.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0424-w1-ds2408-reset-on-output_write-retry-with-readback.patch (renamed from target/linux/brcm2708/patches-4.19/950-0446-w1-ds2408-reset-on-output_write-retry-with-readback.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0425-w1-ds2482-cosmetic-fixes-after-54865314f5a1.patch (renamed from target/linux/brcm2708/patches-4.19/950-0447-w1-ds2482-cosmetic-fixes-after-54865314f5a1.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0426-sound-pcm512x-codec-Adding-352.8kHz-samplerate-suppo.patch (renamed from target/linux/brcm2708/patches-4.19/950-0448-sound-pcm512x-codec-Adding-352.8kHz-samplerate-suppo.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0427-ASoC-decommissioning-driver-for-3Dlab-Nano-soundcard.patch (renamed from target/linux/brcm2708/patches-4.19/950-0449-ASoC-decommissioning-driver-for-3Dlab-Nano-soundcard.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0428-.gitignore-Add-.dtbo-explicitly.patch (renamed from target/linux/brcm2708/patches-4.19/950-0450-.gitignore-Add-.dtbo-explicitly.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0429-Bluetooth-Check-key-sizes-only-when-Secure-Simple-Pa.patch (renamed from target/linux/brcm2708/patches-4.19/950-0451-Bluetooth-Check-key-sizes-only-when-Secure-Simple-Pa.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0430-staging-bcm2835-audio-Drop-DT-dependency.patch105
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0430-usb-dwc_otg-Clean-up-interrupt-claiming-code.patch (renamed from target/linux/brcm2708/patches-4.19/950-0452-usb-dwc_otg-Clean-up-interrupt-claiming-code.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0431-overlays-Delete-the-deprecated-sdio-1bit-overlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0453-overlays-Delete-the-deprecated-sdio-1bit-overlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0432-overlays-Remove-upstream-aux-interrupt-overlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0454-overlays-Remove-upstream-aux-interrupt-overlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0433-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch96
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0433-overlays-Standardise-on-compatible-brcm-bcm2835.patch (renamed from target/linux/brcm2708/patches-4.19/950-0455-overlays-Standardise-on-compatible-brcm-bcm2835.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0434-smsc95xx-dynamically-fix-up-TX-buffer-alignment-with.patch62
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0434-vc4-Remove-interrupt-and-DMA-trampling.patch (renamed from target/linux/brcm2708/patches-4.19/950-0456-vc4-Remove-interrupt-and-DMA-trampling.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0435-BCM270X_DT-Add-non-removable-clone-of-mmc-node.patch (renamed from target/linux/brcm2708/patches-4.19/950-0457-BCM270X_DT-Add-non-removable-clone-of-mmc-node.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0436-BCM270X_DT-usb-Refactor-DTS-and-overlays.patch (renamed from target/linux/brcm2708/patches-4.19/950-0458-BCM270X_DT-usb-Refactor-DTS-and-overlays.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0437-overlays-Update-upstream-overlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0459-overlays-Update-upstream-overlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0438-w1-ds2408-Fix-typo-after-49695ac46861-reset-on-outpu.patch (renamed from target/linux/brcm2708/patches-4.19/950-0460-w1-ds2408-Fix-typo-after-49695ac46861-reset-on-outpu.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0439-BCM270X_DT-Rename-Pi-Zero-W-DT-files.patch (renamed from target/linux/brcm2708/patches-4.19/950-0461-BCM270X_DT-Rename-Pi-Zero-W-DT-files.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0440-BCM270X_DT-Create-bcm2708-rpi-zero.dts.patch (renamed from target/linux/brcm2708/patches-4.19/950-0462-BCM270X_DT-Create-bcm2708-rpi-zero.dts.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0441-overlays-Fix-mmc-related-overlays-after-refactor.patch (renamed from target/linux/brcm2708/patches-4.19/950-0463-overlays-Fix-mmc-related-overlays-after-refactor.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0442-Fixed-48k-timing-issue.patch (renamed from target/linux/brcm2708/patches-4.19/950-0464-Fixed-48k-timing-issue.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0443-Revert-video-bcm2708_fb-Try-allocating-on-the-ARM-an.patch164
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0443-staging-bcm2835-codec-Convert-V4L2-nsec-timestamps-t.patch (renamed from target/linux/brcm2708/patches-4.19/950-0465-staging-bcm2835-codec-Convert-V4L2-nsec-timestamps-t.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0444-staging-bcm2835-codec-Add-support-for-setting-S_PARM.patch (renamed from target/linux/brcm2708/patches-4.19/950-0466-staging-bcm2835-codec-Add-support-for-setting-S_PARM.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0445-Revert-smsc95xx-dynamically-fix-up-TX-buffer-alignme.patch60
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0445-w1-w1-gpio-Make-GPIO-an-output-for-strong-pullup.patch (renamed from target/linux/brcm2708/patches-4.19/950-0467-w1-w1-gpio-Make-GPIO-an-output-for-strong-pullup.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0446-overlays-Update-w1-gpio-and-w1-gpio-pullup.patch (renamed from target/linux/brcm2708/patches-4.19/950-0468-overlays-Update-w1-gpio-and-w1-gpio-pullup.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0447-bcm2835-sdhost-Fix-DMA-channel-leak-on-error-remove.patch (renamed from target/linux/brcm2708/patches-4.19/950-0469-bcm2835-sdhost-Fix-DMA-channel-leak-on-error-remove.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0448-i2c-bcm2835-Model-Divider-in-CCF.patch (renamed from target/linux/brcm2708/patches-4.19/950-0470-i2c-bcm2835-Model-Divider-in-CCF.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0449-staging-vc04_services-Use-correct-cache-line-size.patch (renamed from target/linux/brcm2708/patches-4.19/950-0471-staging-vc04_services-Use-correct-cache-line-size.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0450-tty-amba-pl011-allow-shared-interrupt.patch (renamed from target/linux/brcm2708/patches-4.19/950-0472-tty-amba-pl011-allow-shared-interrupt.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0451-ARM-bcm283x-Reduce-register-ranges-for-UART-SPI-and-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0473-ARM-bcm283x-Reduce-register-ranges-for-UART-SPI-and-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0452-ARM-bcm283x-Extend-the-WDT-DT-node-out-to-cover-the-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0474-ARM-bcm283x-Extend-the-WDT-DT-node-out-to-cover-the-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0453-ARM-dts-Add-label-to-bcm2835-RNG.patch (renamed from target/linux/brcm2708/patches-4.19/950-0475-ARM-dts-Add-label-to-bcm2835-RNG.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0454-dts-Use-fb-rather-than-leds-for-dpi-overlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0476-dts-Use-fb-rather-than-leds-for-dpi-overlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0455-BCM270X_DT-Minor-tidy-up.patch (renamed from target/linux/brcm2708/patches-4.19/950-0477-BCM270X_DT-Minor-tidy-up.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0456-arm-bcm2835-Fix-FIQ-early-ioremap.patch (renamed from target/linux/brcm2708/patches-4.19/950-0478-arm-bcm2835-Fix-FIQ-early-ioremap.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0457-Fix-copy_from_user-if-BCM2835_FAST_MEMCPY-n.patch (renamed from target/linux/brcm2708/patches-4.19/950-0479-Fix-copy_from_user-if-BCM2835_FAST_MEMCPY-n.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0458-PCI-brcmstb-Add-Broadcom-STB-PCIe-host-controller-dr.patch (renamed from target/linux/brcm2708/patches-4.19/950-0480-PCI-brcmstb-Add-Broadcom-STB-PCIe-host-controller-dr.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0459-PCI-brcmstb-Add-dma-range-mapping-for-inbound-traffi.patch (renamed from target/linux/brcm2708/patches-4.19/950-0481-PCI-brcmstb-Add-dma-range-mapping-for-inbound-traffi.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0460-PCI-brcmstb-Add-MSI-capability.patch (renamed from target/linux/brcm2708/patches-4.19/950-0482-PCI-brcmstb-Add-MSI-capability.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0461-dt-bindings-pci-Add-DT-docs-for-Brcmstb-PCIe-device.patch (renamed from target/linux/brcm2708/patches-4.19/950-0483-dt-bindings-pci-Add-DT-docs-for-Brcmstb-PCIe-device.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0462-pcie-brcmstb-Changes-for-BCM2711.patch (renamed from target/linux/brcm2708/patches-4.19/950-0484-pcie-brcmstb-Changes-for-BCM2711.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0463-arm-bcm2835-DMA-can-only-address-1GB.patch (renamed from target/linux/brcm2708/patches-4.19/950-0485-arm-bcm2835-DMA-can-only-address-1GB.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0464-mmc-bcm2835-sdhost-Support-64-bit-physical-addresses.patch (renamed from target/linux/brcm2708/patches-4.19/950-0486-mmc-bcm2835-sdhost-Support-64-bit-physical-addresses.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0465-mmc-sdhci-Mask-spurious-interrupts.patch (renamed from target/linux/brcm2708/patches-4.19/950-0487-mmc-sdhci-Mask-spurious-interrupts.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0466-mmc-sdhci-iproc-Add-support-for-emmc2-of-the-BCM2838.patch (renamed from target/linux/brcm2708/patches-4.19/950-0488-mmc-sdhci-iproc-Add-support-for-emmc2-of-the-BCM2838.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0467-hwrng-iproc-rng200-Add-BCM2838-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0489-hwrng-iproc-rng200-Add-BCM2838-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0468-thermal-brcmstb_thermal-Add-BCM2838-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0490-thermal-brcmstb_thermal-Add-BCM2838-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0469-vchiq-Add-36-bit-address-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0491-vchiq-Add-36-bit-address-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0470-bcm2835-pcm.c-Support-multichannel-audio.patch (renamed from target/linux/brcm2708/patches-4.19/950-0492-bcm2835-pcm.c-Support-multichannel-audio.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0471-bcmgenet-constrain-max-DMA-burst-length.patch (renamed from target/linux/brcm2708/patches-4.19/950-0493-bcmgenet-constrain-max-DMA-burst-length.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0472-bcmgenet-Better-coalescing-parameter-defaults.patch (renamed from target/linux/brcm2708/patches-4.19/950-0494-bcmgenet-Better-coalescing-parameter-defaults.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0473-net-genet-enable-link-energy-detect-powerdown-for-ex.patch (renamed from target/linux/brcm2708/patches-4.19/950-0495-net-genet-enable-link-energy-detect-powerdown-for-ex.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0474-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch (renamed from target/linux/brcm2708/patches-4.19/950-0496-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0475-phy-bcm54213pe-configure-the-LED-outputs-to-be-more-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0497-phy-bcm54213pe-configure-the-LED-outputs-to-be-more-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0476-dwc_otg-Choose-appropriate-IRQ-handover-strategy.patch (renamed from target/linux/brcm2708/patches-4.19/950-0498-dwc_otg-Choose-appropriate-IRQ-handover-strategy.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0477-usb-xhci-Disable-the-XHCI-5-second-timeout.patch (renamed from target/linux/brcm2708/patches-4.19/950-0499-usb-xhci-Disable-the-XHCI-5-second-timeout.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0478-usb-xhci-Show-that-the-VIA-VL805-supports-LPM.patch (renamed from target/linux/brcm2708/patches-4.19/950-0500-usb-xhci-Show-that-the-VIA-VL805-supports-LPM.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0479-spi-bcm2835-enable-shared-interrupt-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0503-spi-bcm2835-enable-shared-interrupt-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0480-drivers-char-add-chardev-for-mmap-ing-Argon-control-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0504-drivers-char-add-chardev-for-mmap-ing-Argon-control-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0481-clk-bcm2835-Don-t-wait-for-pllh-lock.patch (renamed from target/linux/brcm2708/patches-4.19/950-0505-clk-bcm2835-Don-t-wait-for-pllh-lock.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0482-bcm2835-pm-Move-bcm2835-watchdog-s-DT-probe-to-an-MF.patch (renamed from target/linux/brcm2708/patches-4.19/950-0506-bcm2835-pm-Move-bcm2835-watchdog-s-DT-probe-to-an-MF.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0483-soc-bcm-bcm2835-pm-Add-support-for-power-domains-und.patch (renamed from target/linux/brcm2708/patches-4.19/950-0507-soc-bcm-bcm2835-pm-Add-support-for-power-domains-und.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0484-soc-bcm-bcm2835-pm-Fix-PM_IMAGE_PERI-power-domain-su.patch (renamed from target/linux/brcm2708/patches-4.19/950-0508-soc-bcm-bcm2835-pm-Fix-PM_IMAGE_PERI-power-domain-su.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0485-soc-bcm-bcm2835-pm-Fix-error-paths-of-initialization.patch (renamed from target/linux/brcm2708/patches-4.19/950-0509-soc-bcm-bcm2835-pm-Fix-error-paths-of-initialization.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0486-soc-bcm-bcm2835-pm-Add-support-for-2711.patch (renamed from target/linux/brcm2708/patches-4.19/950-0510-soc-bcm-bcm2835-pm-Add-support-for-2711.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0487-drm-expand-drm_syncobj_find_fence-to-support-timelin.patch (renamed from target/linux/brcm2708/patches-4.19/950-0511-drm-expand-drm_syncobj_find_fence-to-support-timelin.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0488-drm-v3d-Fix-a-use-after-free-race-accessing-the-sche.patch (renamed from target/linux/brcm2708/patches-4.19/950-0512-drm-v3d-Fix-a-use-after-free-race-accessing-the-sche.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0489-drm-v3d-Add-a-little-debugfs-entry-for-measuring-the.patch (renamed from target/linux/brcm2708/patches-4.19/950-0513-drm-v3d-Add-a-little-debugfs-entry-for-measuring-the.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0490-drm-v3d-Update-a-comment-about-what-uses-v3d_job_dep.patch (renamed from target/linux/brcm2708/patches-4.19/950-0514-drm-v3d-Update-a-comment-about-what-uses-v3d_job_dep.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0491-drm-v3d-Clean-up-the-reservation-object-setup.patch (renamed from target/linux/brcm2708/patches-4.19/950-0515-drm-v3d-Clean-up-the-reservation-object-setup.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0492-drm-v3d-Add-support-for-submitting-jobs-to-the-TFU.patch (renamed from target/linux/brcm2708/patches-4.19/950-0516-drm-v3d-Add-support-for-submitting-jobs-to-the-TFU.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0493-drm-v3d-Drop-the-dev-argument-to-lock-unlock-of-BO-r.patch (renamed from target/linux/brcm2708/patches-4.19/950-0517-drm-v3d-Drop-the-dev-argument-to-lock-unlock-of-BO-r.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0494-drm-v3d-Add-missing-fence-timeline-name-for-TFU.patch (renamed from target/linux/brcm2708/patches-4.19/950-0518-drm-v3d-Add-missing-fence-timeline-name-for-TFU.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0495-drm-v3d-Add-more-tracepoints-for-V3D-GPU-rendering.patch (renamed from target/linux/brcm2708/patches-4.19/950-0519-drm-v3d-Add-more-tracepoints-for-V3D-GPU-rendering.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0496-drm-v3d-Drop-unused-v3d_flush_caches.patch (renamed from target/linux/brcm2708/patches-4.19/950-0520-drm-v3d-Drop-unused-v3d_flush_caches.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0497-drm-v3d-Don-t-bother-flushing-L1TD-at-job-start.patch (renamed from target/linux/brcm2708/patches-4.19/950-0521-drm-v3d-Don-t-bother-flushing-L1TD-at-job-start.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0498-drm-v3d-Drop-the-wait-for-L2T-flush-to-complete.patch (renamed from target/linux/brcm2708/patches-4.19/950-0522-drm-v3d-Drop-the-wait-for-L2T-flush-to-complete.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0499-drm-v3d-Stop-trying-to-flush-L2C-on-V3D-3.3.patch (renamed from target/linux/brcm2708/patches-4.19/950-0523-drm-v3d-Stop-trying-to-flush-L2C-on-V3D-3.3.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0500-drm-v3d-Invalidate-the-caches-from-the-outside-in.patch (renamed from target/linux/brcm2708/patches-4.19/950-0524-drm-v3d-Invalidate-the-caches-from-the-outside-in.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0501-drm-v3d-Fix-BO-stats-accounting-for-dma-buf-imported.patch (renamed from target/linux/brcm2708/patches-4.19/950-0525-drm-v3d-Fix-BO-stats-accounting-for-dma-buf-imported.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0501-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.mousep.patch122
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0502-drm-v3d-Update-top-level-kerneldoc-for-the-addition-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0526-drm-v3d-Update-top-level-kerneldoc-for-the-addition-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0502-pinctrl-bcm2835-Add-support-for-BCM2838.patch90
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0503-drm-vc4-Fix-oops-at-boot-with-firmwarekms-on-4.19.patch (renamed from target/linux/brcm2708/patches-4.19/950-0527-drm-vc4-Fix-oops-at-boot-with-firmwarekms-on-4.19.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0504-drm-v3d-Add-support-for-V3D-v4.2.patch (renamed from target/linux/brcm2708/patches-4.19/950-0529-drm-v3d-Add-support-for-V3D-v4.2.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0505-drm-v3d-Don-t-try-to-set-OVRTMUOUT-on-V3D-4.x.patch (renamed from target/linux/brcm2708/patches-4.19/950-0530-drm-v3d-Don-t-try-to-set-OVRTMUOUT-on-V3D-4.x.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0506-drm-v3d-Make-sure-the-GPU-is-on-when-measuring-clock.patch (renamed from target/linux/brcm2708/patches-4.19/950-0531-drm-v3d-Make-sure-the-GPU-is-on-when-measuring-clock.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0507-drm-v3d-Add-support-for-2711.patch (renamed from target/linux/brcm2708/patches-4.19/950-0532-drm-v3d-Add-support-for-2711.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0508-drm-v3d-Skip-MMU-flush-if-the-device-is-currently-of.patch (renamed from target/linux/brcm2708/patches-4.19/950-0533-drm-v3d-Skip-MMU-flush-if-the-device-is-currently-of.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0509-drm-v3d-Hook-up-the-runtime-PM-ops.patch (renamed from target/linux/brcm2708/patches-4.19/950-0534-drm-v3d-Hook-up-the-runtime-PM-ops.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0510-drm-v3d-HACK-gut-runtime-pm-for-now.patch (renamed from target/linux/brcm2708/patches-4.19/950-0535-drm-v3d-HACK-gut-runtime-pm-for-now.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0511-drm-v3d-Update-to-upstream-IRQ-code.patch (renamed from target/linux/brcm2708/patches-4.19/950-0536-drm-v3d-Update-to-upstream-IRQ-code.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0512-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch (renamed from target/linux/brcm2708/patches-4.19/950-0537-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0513-drm-v3d-Refactor-job-management.patch (renamed from target/linux/brcm2708/patches-4.19/950-0538-drm-v3d-Refactor-job-management.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0514-drm-v3d-Add-missing-implicit-synchronization.patch (renamed from target/linux/brcm2708/patches-4.19/950-0539-drm-v3d-Add-missing-implicit-synchronization.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0515-drm-vc4-Fix-synchronization-firmwarekms-against-GL-r.patch (renamed from target/linux/brcm2708/patches-4.19/950-0540-drm-vc4-Fix-synchronization-firmwarekms-against-GL-r.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0516-drm-vc4-Make-sure-that-vblank-waits-work-without-v3d.patch (renamed from target/linux/brcm2708/patches-4.19/950-0541-drm-vc4-Make-sure-that-vblank-waits-work-without-v3d.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0517-drm-vc4-Expose-the-format-modifiers-for-firmware-kms.patch (renamed from target/linux/brcm2708/patches-4.19/950-0542-drm-vc4-Expose-the-format-modifiers-for-firmware-kms.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0518-drm-vc4-Fix-vblank-timestamping-for-firmwarekms.patch (renamed from target/linux/brcm2708/patches-4.19/950-0543-drm-vc4-Fix-vblank-timestamping-for-firmwarekms.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0519-gpu-vc4-fkms-Switch-to-the-newer-mailbox-frame-buffe.patch (renamed from target/linux/brcm2708/patches-4.19/950-0544-gpu-vc4-fkms-Switch-to-the-newer-mailbox-frame-buffe.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0520-drm-vc4-Add-an-overlay-plane-to-vc4-firmware-kms.patch (renamed from target/linux/brcm2708/patches-4.19/950-0545-drm-vc4-Add-an-overlay-plane-to-vc4-firmware-kms.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0521-drm-vc4-Increase-max-screen-size-to-4096x4096.patch (renamed from target/linux/brcm2708/patches-4.19/950-0546-drm-vc4-Increase-max-screen-size-to-4096x4096.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0522-drm-vc4-Add-support-for-multiple-displays-to-fkms.patch (renamed from target/linux/brcm2708/patches-4.19/950-0547-drm-vc4-Add-support-for-multiple-displays-to-fkms.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0523-drm-vc4-Fix-build-warning.patch (renamed from target/linux/brcm2708/patches-4.19/950-0548-drm-vc4-Fix-build-warning.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0524-drm-vc4-Select-display-to-blank-during-initialisatio.patch (renamed from target/linux/brcm2708/patches-4.19/950-0549-drm-vc4-Select-display-to-blank-during-initialisatio.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0525-drm-vc4-Remove-now-unused-structure.patch (renamed from target/linux/brcm2708/patches-4.19/950-0550-drm-vc4-Remove-now-unused-structure.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0526-drm-vc4-Query-the-display-ID-for-each-display-in-FKM.patch (renamed from target/linux/brcm2708/patches-4.19/950-0551-drm-vc4-Query-the-display-ID-for-each-display-in-FKM.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0527-drm-vc4-Set-the-display-number-when-querying-the-dis.patch (renamed from target/linux/brcm2708/patches-4.19/950-0552-drm-vc4-Set-the-display-number-when-querying-the-dis.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0528-drm-vc4-Need-to-call-drm_crtc_vblank_-on-off-from-vc.patch (renamed from target/linux/brcm2708/patches-4.19/950-0553-drm-vc4-Need-to-call-drm_crtc_vblank_-on-off-from-vc.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0529-drm-vc4-Add-support-for-H-V-flips-on-each-plane-for-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0554-drm-vc4-Add-support-for-H-V-flips-on-each-plane-for-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0530-drm-vc4-Remove-unused-vc4_fkms_cancel_page_flip-func.patch (renamed from target/linux/brcm2708/patches-4.19/950-0555-drm-vc4-Remove-unused-vc4_fkms_cancel_page_flip-func.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0531-drm-vc4-Iterate-over-all-planes-in-vc4_crtc_-dis-en-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0556-drm-vc4-Iterate-over-all-planes-in-vc4_crtc_-dis-en-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0532-drm-vc4-Bring-fkms-into-line-with-kms-in-blocking-do.patch (renamed from target/linux/brcm2708/patches-4.19/950-0557-drm-vc4-Bring-fkms-into-line-with-kms-in-blocking-do.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0533-drm-vc4-Increase-max_width-height-to-7680.patch (renamed from target/linux/brcm2708/patches-4.19/950-0558-drm-vc4-Increase-max_width-height-to-7680.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0534-drm-vc4-FKMS-reads-the-EDID-from-fw-and-supports-mod.patch (renamed from target/linux/brcm2708/patches-4.19/950-0559-drm-vc4-FKMS-reads-the-EDID-from-fw-and-supports-mod.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0535-clk-bcm2835-Add-support-for-setting-leaf-clock-rates.patch (renamed from target/linux/brcm2708/patches-4.19/950-0560-clk-bcm2835-Add-support-for-setting-leaf-clock-rates.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0536-clk-bcm2835-Allow-reparenting-leaf-clocks-while-they.patch (renamed from target/linux/brcm2708/patches-4.19/950-0561-clk-bcm2835-Allow-reparenting-leaf-clocks-while-they.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0537-drm-v3d-Add-support-for-compute-shader-dispatch.patch (renamed from target/linux/brcm2708/patches-4.19/950-0562-drm-v3d-Add-support-for-compute-shader-dispatch.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0538-drm-v3d-Clock-V3D-down-when-not-in-use.patch (renamed from target/linux/brcm2708/patches-4.19/950-0563-drm-v3d-Clock-V3D-down-when-not-in-use.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0539-drm-vc4-firmware-kms-Remove-incorrect-overscan-suppo.patch (renamed from target/linux/brcm2708/patches-4.19/950-0565-drm-vc4-firmware-kms-Remove-incorrect-overscan-suppo.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0540-drm-vc4-Log-flags-in-fkms-mode-set.patch (renamed from target/linux/brcm2708/patches-4.19/950-0566-drm-vc4-Log-flags-in-fkms-mode-set.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0541-drm-vc4-firmware-kms-Fix-DSI-display-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0567-drm-vc4-firmware-kms-Fix-DSI-display-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0542-drm-vc4-Probe-DPI-DSI-timings-from-the-firmware.patch (renamed from target/linux/brcm2708/patches-4.19/950-0568-drm-vc4-Probe-DPI-DSI-timings-from-the-firmware.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0543-drm-vc4-handle-the-case-where-there-are-no-available.patch (renamed from target/linux/brcm2708/patches-4.19/950-0569-drm-vc4-handle-the-case-where-there-are-no-available.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0544-drm-vc4-Support-the-VEC-in-FKMS.patch (renamed from target/linux/brcm2708/patches-4.19/950-0570-drm-vc4-Support-the-VEC-in-FKMS.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0545-drm-vc4-Fixup-typo-when-setting-HDMI-aspect-ratio.patch (renamed from target/linux/brcm2708/patches-4.19/950-0571-drm-vc4-Fixup-typo-when-setting-HDMI-aspect-ratio.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0546-drm-vc4-Correct-SAND-support-for-FKMS.patch (renamed from target/linux/brcm2708/patches-4.19/950-0572-drm-vc4-Correct-SAND-support-for-FKMS.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0547-drm-vc4-fkms-to-query-the-VPU-for-HDMI-clock-limits.patch (renamed from target/linux/brcm2708/patches-4.19/950-0573-drm-vc4-fkms-to-query-the-VPU-for-HDMI-clock-limits.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0548-drm-vc4-Max-resolution-of-7680-is-conditional-on-bei.patch (renamed from target/linux/brcm2708/patches-4.19/950-0574-drm-vc4-Max-resolution-of-7680-is-conditional-on-bei.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0549-staging-vc-sm-cma-Remove-obsolete-comment-and-make-f.patch (renamed from target/linux/brcm2708/patches-4.19/950-0575-staging-vc-sm-cma-Remove-obsolete-comment-and-make-f.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0550-staging-vc-sm-cma-Add-in-allocation-for-VPU-requests.patch (renamed from target/linux/brcm2708/patches-4.19/950-0576-staging-vc-sm-cma-Add-in-allocation-for-VPU-requests.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0551-staging-vc-sm-cma-Update-TODO.patch (renamed from target/linux/brcm2708/patches-4.19/950-0577-staging-vc-sm-cma-Update-TODO.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0552-staging-vc-sm-cma-Add-in-userspace-allocation-API.patch (renamed from target/linux/brcm2708/patches-4.19/950-0578-staging-vc-sm-cma-Add-in-userspace-allocation-API.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0553-staging-vcsm-cma-Add-cache-control-ioctls.patch (renamed from target/linux/brcm2708/patches-4.19/950-0579-staging-vcsm-cma-Add-cache-control-ioctls.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0554-staging-vcsm-cma-Alter-dev-node-permissions-to-0666.patch (renamed from target/linux/brcm2708/patches-4.19/950-0580-staging-vcsm-cma-Alter-dev-node-permissions-to-0666.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0555-staging-vcsm-cma-Drop-logging-level-on-messages-in-v.patch (renamed from target/linux/brcm2708/patches-4.19/950-0581-staging-vcsm-cma-Drop-logging-level-on-messages-in-v.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0556-staging-vcsm-cma-Fixup-the-alloc-code-handling-of-ke.patch (renamed from target/linux/brcm2708/patches-4.19/950-0582-staging-vcsm-cma-Fixup-the-alloc-code-handling-of-ke.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0557-Pulled-in-the-multi-frame-buffer-support-from-the-Pi.patch (renamed from target/linux/brcm2708/patches-4.19/950-0583-Pulled-in-the-multi-frame-buffer-support-from-the-Pi.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0558-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch (renamed from target/linux/brcm2708/patches-4.19/950-0584-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0559-ARM-dts-Add-bcm2711-rpi-4-b.dts-and-components.patch (renamed from target/linux/brcm2708/patches-4.19/950-0585-ARM-dts-Add-bcm2711-rpi-4-b.dts-and-components.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0560-overlays-Add-i2c3-6-and-uart2-5-overlays.patch (renamed from target/linux/brcm2708/patches-4.19/950-0586-overlays-Add-i2c3-6-and-uart2-5-overlays.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0561-spi-devicetree-add-overlays-for-spi-3-to-6.patch (renamed from target/linux/brcm2708/patches-4.19/950-0587-spi-devicetree-add-overlays-for-spi-3-to-6.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0562-overlays-Add-the-spi-gpio40-45-overlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0588-overlays-Add-the-spi-gpio40-45-overlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0563-config-Permit-LPAE-and-PCIE_BRCMSTB-on-BCM2835.patch (renamed from target/linux/brcm2708/patches-4.19/950-0589-config-Permit-LPAE-and-PCIE_BRCMSTB-on-BCM2835.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0564-2711-Add-basic-64-bit-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0590-2711-Add-basic-64-bit-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0564-HACK-clk-bcm2835-Add-BCM2838_CLOCK_EMMC2-support.patch72
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0565-ARM-dts-bcm283x-Correct-vchiq-compatible-string-2840.patch (renamed from target/linux/brcm2708/patches-4.19/950-0591-ARM-dts-bcm283x-Correct-vchiq-compatible-string-2840.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0566-arm-dts-Change-downstream-vchiq-compatible-string.patch (renamed from target/linux/brcm2708/patches-4.19/950-0592-arm-dts-Change-downstream-vchiq-compatible-string.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0567-bcm2835-dma-Add-proper-40-bit-DMA-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0593-bcm2835-dma-Add-proper-40-bit-DMA-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0568-BCM270X_DT-Leave-bulk-channel-in-dma-channel-mask.patch (renamed from target/linux/brcm2708/patches-4.19/950-0594-BCM270X_DT-Leave-bulk-channel-in-dma-channel-mask.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0569-SQUASH-bcm2835-dma-Remove-debugging.patch (renamed from target/linux/brcm2708/patches-4.19/950-0595-SQUASH-bcm2835-dma-Remove-debugging.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0570-dts-Include-CSI-lane-config-for-csi1.patch (renamed from target/linux/brcm2708/patches-4.19/950-0596-dts-Include-CSI-lane-config-for-csi1.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0571-drm-vc4-Fix-T-format-modifiers-in-FKMS.patch (renamed from target/linux/brcm2708/patches-4.19/950-0597-drm-vc4-Fix-T-format-modifiers-in-FKMS.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0572-bcm2711-dts-Disable-the-v3d-node-by-default.patch (renamed from target/linux/brcm2708/patches-4.19/950-0598-bcm2711-dts-Disable-the-v3d-node-by-default.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0573-drm-vc4-Remove-340MHz-clock-limit-from-FKMS-now-scra.patch (renamed from target/linux/brcm2708/patches-4.19/950-0599-drm-vc4-Remove-340MHz-clock-limit-from-FKMS-now-scra.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0574-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch (renamed from target/linux/brcm2708/patches-4.19/950-0601-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0575-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch (renamed from target/linux/brcm2708/patches-4.19/950-0602-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0576-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch (renamed from target/linux/brcm2708/patches-4.19/950-0603-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0577-drm-vc4-Add-status-of-which-display-is-updated-throu.patch (renamed from target/linux/brcm2708/patches-4.19/950-0604-drm-vc4-Add-status-of-which-display-is-updated-throu.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0578-drm-vc4-In-FKMS-look-at-the-modifiers-correctly-for-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0605-drm-vc4-In-FKMS-look-at-the-modifiers-correctly-for-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0579-arm-dts-Fix-Pi4-PWR-LED-configuration.patch (renamed from target/linux/brcm2708/patches-4.19/950-0606-arm-dts-Fix-Pi4-PWR-LED-configuration.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0580-bcm2838.dtsi-Correct-gic400-memory-address-ranges.patch (renamed from target/linux/brcm2708/patches-4.19/950-0607-bcm2838.dtsi-Correct-gic400-memory-address-ranges.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0581-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch (renamed from target/linux/brcm2708/patches-4.19/950-0608-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0582-drm-vc4-Limit-fkms-to-modes-85Hz.patch (renamed from target/linux/brcm2708/patches-4.19/950-0609-drm-vc4-Limit-fkms-to-modes-85Hz.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0583-arm-bcm2835-Add-bcm2838-compatible-string.patch (renamed from target/linux/brcm2708/patches-4.19/950-0610-arm-bcm2835-Add-bcm2838-compatible-string.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0584-arm-dts-Improve-the-bcm27xx-inclusion-hierarchy.patch (renamed from target/linux/brcm2708/patches-4.19/950-0611-arm-dts-Improve-the-bcm27xx-inclusion-hierarchy.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0585-arm-dts-First-draft-of-upstream-Pi4-DTS.patch (renamed from target/linux/brcm2708/patches-4.19/950-0612-arm-dts-First-draft-of-upstream-Pi4-DTS.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0586-overlays-Fix-compatible-string-for-ds1307-RTC.patch (renamed from target/linux/brcm2708/patches-4.19/950-0613-overlays-Fix-compatible-string-for-ds1307-RTC.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0587-overlays-Fix-further-maxim-ds1307-references.patch (renamed from target/linux/brcm2708/patches-4.19/950-0614-overlays-Fix-further-maxim-ds1307-references.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0588-overlays-Cosmetic-change-to-upstream-overlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0615-overlays-Cosmetic-change-to-upstream-overlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0589-w1-ds2805-rename-w1_family-struct-fixing-c-p-typo.patch (renamed from target/linux/brcm2708/patches-4.19/950-0616-w1-ds2805-rename-w1_family-struct-fixing-c-p-typo.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0590-w1-ds2413-output_write-cosmetic-fixes-simplify.patch (renamed from target/linux/brcm2708/patches-4.19/950-0617-w1-ds2413-output_write-cosmetic-fixes-simplify.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0591-w1-ds2413-add-retry-support-to-state_read.patch (renamed from target/linux/brcm2708/patches-4.19/950-0618-w1-ds2413-add-retry-support-to-state_read.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0592-w1-ds2413-when-the-slave-is-not-responding-during-re.patch (renamed from target/linux/brcm2708/patches-4.19/950-0619-w1-ds2413-when-the-slave-is-not-responding-during-re.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0593-w1-ds2413-fix-state-byte-comparision.patch (renamed from target/linux/brcm2708/patches-4.19/950-0620-w1-ds2413-fix-state-byte-comparision.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0594-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch (renamed from target/linux/brcm2708/patches-4.19/950-0621-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0595-video-bcm2708_fb-Revert-cma-allocation-attempt.patch (renamed from target/linux/brcm2708/patches-4.19/950-0622-video-bcm2708_fb-Revert-cma-allocation-attempt.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0596-drm-vc4-Add-support-for-color-encoding-on-YUV-planes.patch (renamed from target/linux/brcm2708/patches-4.19/950-0623-drm-vc4-Add-support-for-color-encoding-on-YUV-planes.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0597-arm-dts-Add-coherent_pool-1M-to-Pi-4-bootargs.patch (renamed from target/linux/brcm2708/patches-4.19/950-0624-arm-dts-Add-coherent_pool-1M-to-Pi-4-bootargs.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0598-overlays-Correct-gpio-fan-gpio-flags-for-4.19.patch (renamed from target/linux/brcm2708/patches-4.19/950-0625-overlays-Correct-gpio-fan-gpio-flags-for-4.19.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0599-staging-vcsm-cma-Remove-cache-manipulation-ioctl-fro.patch (renamed from target/linux/brcm2708/patches-4.19/950-0626-staging-vcsm-cma-Remove-cache-manipulation-ioctl-fro.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0600-Revert-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.patch113
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0600-staging-vcsm-cma-Rework-to-use-dma-APIs-not-CMA.patch (renamed from target/linux/brcm2708/patches-4.19/950-0627-staging-vcsm-cma-Rework-to-use-dma-APIs-not-CMA.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0601-staging-vc-sm-cma-Fix-the-few-remaining-coding-style.patch (renamed from target/linux/brcm2708/patches-4.19/950-0628-staging-vc-sm-cma-Fix-the-few-remaining-coding-style.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0602-media-videodev2.h-add-new-capabilities-for-buffer-ty.patch (renamed from target/linux/brcm2708/patches-4.19/950-0630-media-videodev2.h-add-new-capabilities-for-buffer-ty.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0603-media-vb2-set-reqbufs-create_bufs-capabilities.patch (renamed from target/linux/brcm2708/patches-4.19/950-0631-media-vb2-set-reqbufs-create_bufs-capabilities.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0604-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch (renamed from target/linux/brcm2708/patches-4.19/950-0632-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0605-overlays-Add-real-parameters-to-the-rpi-poe-overlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0633-overlays-Add-real-parameters-to-the-rpi-poe-overlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0606-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch (renamed from target/linux/brcm2708/patches-4.19/950-0634-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0607-i2c-bcm2835-Move-IRQ-request-after-clock-code-in-pro.patch (renamed from target/linux/brcm2708/patches-4.19/950-0635-i2c-bcm2835-Move-IRQ-request-after-clock-code-in-pro.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0608-i2c-bcm2835-Ensure-clock-exists-when-probing.patch (renamed from target/linux/brcm2708/patches-4.19/950-0636-i2c-bcm2835-Ensure-clock-exists-when-probing.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0609-overlays-i2c-gpio-Fix-the-bus-parameter.patch (renamed from target/linux/brcm2708/patches-4.19/950-0637-overlays-i2c-gpio-Fix-the-bus-parameter.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0610-tty-amba-pl011-Make-TX-optimisation-conditional.patch (renamed from target/linux/brcm2708/patches-4.19/950-0638-tty-amba-pl011-Make-TX-optimisation-conditional.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0611-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch (renamed from target/linux/brcm2708/patches-4.19/950-0639-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0612-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch (renamed from target/linux/brcm2708/patches-4.19/950-0640-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0613-arm64-bcm2835-Add-missing-dependency-on-MFD_CORE.patch (renamed from target/linux/brcm2708/patches-4.19/950-0641-arm64-bcm2835-Add-missing-dependency-on-MFD_CORE.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0614-overlays-Add-PCF2129-RTC.patch (renamed from target/linux/brcm2708/patches-4.19/950-0642-overlays-Add-PCF2129-RTC.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0615-overlays-dpi18-and-dpi24-vc4-compatibility.patch (renamed from target/linux/brcm2708/patches-4.19/950-0643-overlays-dpi18-and-dpi24-vc4-compatibility.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0616-overlays-Add-i2c0-and-i2c1-for-regularity.patch (renamed from target/linux/brcm2708/patches-4.19/950-0644-overlays-Add-i2c0-and-i2c1-for-regularity.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0617-Pisound-Remove-spinlock-usage-around-spi_sync.patch (renamed from target/linux/brcm2708/patches-4.19/950-0645-Pisound-Remove-spinlock-usage-around-spi_sync.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0618-arm64-mm-Limit-the-DMA-zone-for-arm64.patch (renamed from target/linux/brcm2708/patches-4.19/950-0646-arm64-mm-Limit-the-DMA-zone-for-arm64.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0619-drm-vc4-Query-firmware-for-custom-HDMI-mode.patch (renamed from target/linux/brcm2708/patches-4.19/950-0647-drm-vc4-Query-firmware-for-custom-HDMI-mode.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0620-drm-vc4-Pass-the-drm-vrefresh-to-the-firmware-on-mod.patch (renamed from target/linux/brcm2708/patches-4.19/950-0648-drm-vc4-Pass-the-drm-vrefresh-to-the-firmware-on-mod.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0621-overlays-audremap-Support-GPIOs-18-19.patch (renamed from target/linux/brcm2708/patches-4.19/950-0649-overlays-audremap-Support-GPIOs-18-19.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0622-drm-connector-Fix-drm_mode_create_tv_properties-doc.patch (renamed from target/linux/brcm2708/patches-4.19/950-0650-drm-connector-Fix-drm_mode_create_tv_properties-doc.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0623-drm-connector-Clarify-the-unit-of-TV-margins.patch (renamed from target/linux/brcm2708/patches-4.19/950-0651-drm-connector-Clarify-the-unit-of-TV-margins.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0624-drm-connector-Allow-creation-of-margin-props-alone.patch (renamed from target/linux/brcm2708/patches-4.19/950-0652-drm-connector-Allow-creation-of-margin-props-alone.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0625-drm-vc4-Take-margin-setup-into-account-when-updating.patch (renamed from target/linux/brcm2708/patches-4.19/950-0653-drm-vc4-Take-margin-setup-into-account-when-updating.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0626-drm-vc4-Attach-margin-props-to-the-HDMI-connector.patch (renamed from target/linux/brcm2708/patches-4.19/950-0654-drm-vc4-Attach-margin-props-to-the-HDMI-connector.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0627-drm-vc4-Add-support-for-margins-to-fkms.patch (renamed from target/linux/brcm2708/patches-4.19/950-0655-drm-vc4-Add-support-for-margins-to-fkms.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0628-drm-vc4-Ensure-zpos-is-always-initialised.patch (renamed from target/linux/brcm2708/patches-4.19/950-0656-drm-vc4-Ensure-zpos-is-always-initialised.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0629-Revert-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-bu.patch55
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0629-dts-bcm2838-add-missing-properties-for-pmu-and-gic-n.patch (renamed from target/linux/brcm2708/patches-4.19/950-0657-dts-bcm2838-add-missing-properties-for-pmu-and-gic-n.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0630-adds-the-Hifiberry-DAC-ADC-PRO-version.patch (renamed from target/linux/brcm2708/patches-4.19/950-0658-adds-the-Hifiberry-DAC-ADC-PRO-version.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0631-codecs-Correct-Katana-minimum-volume.patch (renamed from target/linux/brcm2708/patches-4.19/950-0659-codecs-Correct-Katana-minimum-volume.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0632-drm-vc4-A-present-but-empty-dmas-disables-audio.patch (renamed from target/linux/brcm2708/patches-4.19/950-0660-drm-vc4-A-present-but-empty-dmas-disables-audio.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0633-overlays-Add-audio-parameter-to-vc4-kms-v3d.patch (renamed from target/linux/brcm2708/patches-4.19/950-0661-overlays-Add-audio-parameter-to-vc4-kms-v3d.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0634-overlays-Update-the-upstream-overlay.patch (renamed from target/linux/brcm2708/patches-4.19/950-0662-overlays-Update-the-upstream-overlay.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0635-Fixup-FKMS-interrupt-handing-for-non-existent-displa.patch (renamed from target/linux/brcm2708/patches-4.19/950-0663-Fixup-FKMS-interrupt-handing-for-non-existent-displa.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0636-drivers-char-Use-correct-name-for-the-Raspberry-Pi-v.patch (renamed from target/linux/brcm2708/patches-4.19/950-0664-drivers-char-Use-correct-name-for-the-Raspberry-Pi-v.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0637-driver-char-rpivid-also-support-legacy-name.patch (renamed from target/linux/brcm2708/patches-4.19/950-0665-driver-char-rpivid-also-support-legacy-name.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0638-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch (renamed from target/linux/brcm2708/patches-4.19/950-0666-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0639-drm-vc4-Add-Broadcast-RGB-connector-property.patch (renamed from target/linux/brcm2708/patches-4.19/950-0667-drm-vc4-Add-Broadcast-RGB-connector-property.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0640-drm-connector-Add-documentation-for-drm_cmdline_mode.patch (renamed from target/linux/brcm2708/patches-4.19/950-0668-drm-connector-Add-documentation-for-drm_cmdline_mode.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0641-drm-modes-Rewrite-the-command-line-parser.patch (renamed from target/linux/brcm2708/patches-4.19/950-0669-drm-modes-Rewrite-the-command-line-parser.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0642-drm-modes-Support-modes-names-on-the-command-line.patch (renamed from target/linux/brcm2708/patches-4.19/950-0670-drm-modes-Support-modes-names-on-the-command-line.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0643-drm-modes-Allow-to-specify-rotation-and-reflection-o.patch (renamed from target/linux/brcm2708/patches-4.19/950-0671-drm-modes-Allow-to-specify-rotation-and-reflection-o.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0644-drm-connector-Introduce-a-TV-margins-structure.patch (renamed from target/linux/brcm2708/patches-4.19/950-0672-drm-connector-Introduce-a-TV-margins-structure.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0645-drm-modes-Parse-overscan-properties.patch (renamed from target/linux/brcm2708/patches-4.19/950-0673-drm-modes-Parse-overscan-properties.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0646-drm-atomic-Add-a-function-to-reset-connector-TV-prop.patch (renamed from target/linux/brcm2708/patches-4.19/950-0674-drm-atomic-Add-a-function-to-reset-connector-TV-prop.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0647-drm-vc4-hdmi-Set-default-state-margin-at-reset.patch (renamed from target/linux/brcm2708/patches-4.19/950-0675-drm-vc4-hdmi-Set-default-state-margin-at-reset.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0648-drm-vc4-fkms-Set-default-state-margin-at-reset.patch (renamed from target/linux/brcm2708/patches-4.19/950-0676-drm-vc4-fkms-Set-default-state-margin-at-reset.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0649-drm-modes-Don-t-apply-cmdline-s-rotation-if-it-wasn-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0677-drm-modes-Don-t-apply-cmdline-s-rotation-if-it-wasn-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0650-staging-bcm2835-codec-switch-to-multi-planar-API.patch (renamed from target/linux/brcm2708/patches-4.19/950-0678-staging-bcm2835-codec-switch-to-multi-planar-API.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0651-staging-bcm2835-codec-implement-V4L2_CID_MIN_BUFFERS.patch (renamed from target/linux/brcm2708/patches-4.19/950-0679-staging-bcm2835-codec-implement-V4L2_CID_MIN_BUFFERS.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0652-staging-bcm2835-codec-set-device_caps-in-struct-vide.patch (renamed from target/linux/brcm2708/patches-4.19/950-0680-staging-bcm2835-codec-set-device_caps-in-struct-vide.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0653-Add-HDMI1-facility-to-the-driver.patch (renamed from target/linux/brcm2708/patches-4.19/950-0681-Add-HDMI1-facility-to-the-driver.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0654-overlays-Add-baudrate-parameter-to-i2c3-i2c6.patch (renamed from target/linux/brcm2708/patches-4.19/950-0682-overlays-Add-baudrate-parameter-to-i2c3-i2c6.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0655-drm-vc4-Resolve-the-vblank-warnings-on-mode-switchin.patch (renamed from target/linux/brcm2708/patches-4.19/950-0683-drm-vc4-Resolve-the-vblank-warnings-on-mode-switchin.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0656-drm-vc4-Remove-unused-mode-variable.patch (renamed from target/linux/brcm2708/patches-4.19/950-0684-drm-vc4-Remove-unused-mode-variable.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0657-staging-bcm2835-codec-Expand-logging-on-format-setti.patch (renamed from target/linux/brcm2708/patches-4.19/950-0685-staging-bcm2835-codec-Expand-logging-on-format-setti.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0658-staging-bcm2835-codec-Correct-bytesperline-on-format.patch (renamed from target/linux/brcm2708/patches-4.19/950-0686-staging-bcm2835-codec-Correct-bytesperline-on-format.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0659-drm-vc4-Add-missing-NULL-check-to-vc4_crtc_consume_e.patch (renamed from target/linux/brcm2708/patches-4.19/950-0687-drm-vc4-Add-missing-NULL-check-to-vc4_crtc_consume_e.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0660-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch (renamed from target/linux/brcm2708/patches-4.19/950-0688-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0661-drm-vc4-Fix-TILE_Y_OFFSET-definitions.patch (renamed from target/linux/brcm2708/patches-4.19/950-0689-drm-vc4-Fix-TILE_Y_OFFSET-definitions.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0662-drm-vc4-Define-missing-PITCH0_SINK_PIX-field.patch (renamed from target/linux/brcm2708/patches-4.19/950-0690-drm-vc4-Define-missing-PITCH0_SINK_PIX-field.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0663-drm-vc4-Use-drm_atomic_helper_check_plane_state-to-s.patch (renamed from target/linux/brcm2708/patches-4.19/950-0691-drm-vc4-Use-drm_atomic_helper_check_plane_state-to-s.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0664-drm-vc4-Move-offsets-adjustment-out-of-setup_clippin.patch (renamed from target/linux/brcm2708/patches-4.19/950-0692-drm-vc4-Move-offsets-adjustment-out-of-setup_clippin.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0665-drm-vc4-Fix-X-Y-positioning-of-planes-using-T_TILES-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0693-drm-vc4-Fix-X-Y-positioning-of-planes-using-T_TILES-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0666-drm-vc4-Fix-NULL-pointer-dereference-in-the-async-up.patch (renamed from target/linux/brcm2708/patches-4.19/950-0694-drm-vc4-Fix-NULL-pointer-dereference-in-the-async-up.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0667-ARM-dts-bcm2711-rpi-4-b-I2C-aliases-and-pulls.patch (renamed from target/linux/brcm2708/patches-4.19/950-0695-ARM-dts-bcm2711-rpi-4-b-I2C-aliases-and-pulls.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0668-xhci-Use-more-event-ring-segment-table-entries.patch (renamed from target/linux/brcm2708/patches-4.19/950-0696-xhci-Use-more-event-ring-segment-table-entries.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0669-dwc_otg-use-align_buf-for-small-IN-control-transfers.patch (renamed from target/linux/brcm2708/patches-4.19/950-0697-dwc_otg-use-align_buf-for-small-IN-control-transfers.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0670-Ported-pcie-brcmstb-bounce-buffer-implementation-to-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0698-Ported-pcie-brcmstb-bounce-buffer-implementation-to-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0671-configs-arm64-vcm2711-Enable-V3D.patch (renamed from target/linux/brcm2708/patches-4.19/950-0699-configs-arm64-vcm2711-Enable-V3D.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0672-overlays-sc16ic752-i2c-Fix-xtal-parameter.patch (renamed from target/linux/brcm2708/patches-4.19/950-0700-overlays-sc16ic752-i2c-Fix-xtal-parameter.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0673-vc-sm-cma-Fix-compatibility-ioctl.patch (renamed from target/linux/brcm2708/patches-4.19/950-0701-vc-sm-cma-Fix-compatibility-ioctl.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0674-staging-bcm2835-codec-add-support-for-V4L2_CID_MPEG_.patch (renamed from target/linux/brcm2708/patches-4.19/950-0702-staging-bcm2835-codec-add-support-for-V4L2_CID_MPEG_.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0675-staging-bcm2835-codec-remove-unnecessary-padding-on-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0703-staging-bcm2835-codec-remove-unnecessary-padding-on-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0676-arm-dts-add-missing-Raspberry-Pi-model-names.patch (renamed from target/linux/brcm2708/patches-4.19/950-0704-arm-dts-add-missing-Raspberry-Pi-model-names.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0677-arch-arm-Add-model-string-to-cpuinfo.patch (renamed from target/linux/brcm2708/patches-4.19/950-0705-arch-arm-Add-model-string-to-cpuinfo.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0678-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch (renamed from target/linux/brcm2708/patches-4.19/950-0706-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0679-media-dt-bindings-Add-binding-for-the-Sony-IMX219-se.patch (renamed from target/linux/brcm2708/patches-4.19/950-0707-media-dt-bindings-Add-binding-for-the-Sony-IMX219-se.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0680-media-i2c-Add-driver-for-Sony-IMX219-sensor.patch (renamed from target/linux/brcm2708/patches-4.19/950-0708-media-i2c-Add-driver-for-Sony-IMX219-sensor.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0681-dtoverlays-Add-overlay-for-the-Sony-IMX219-image-sen.patch (renamed from target/linux/brcm2708/patches-4.19/950-0709-dtoverlays-Add-overlay-for-the-Sony-IMX219-image-sen.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0682-staging-bcm2835-codec-Fix-non-documentation-comment-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0710-staging-bcm2835-codec-Fix-non-documentation-comment-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0683-staging-bcm2835-codec-Fix-declaration-of-roles.patch (renamed from target/linux/brcm2708/patches-4.19/950-0711-staging-bcm2835-codec-Fix-declaration-of-roles.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0684-staging-bcm2835-codec-Add-role-to-device-name.patch (renamed from target/linux/brcm2708/patches-4.19/950-0712-staging-bcm2835-codec-Add-role-to-device-name.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0685-staging-bcm2835-codec-Pass-driver-context-to-create-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0713-staging-bcm2835-codec-Pass-driver-context-to-create-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0686-staging-bcm2835-codec-add-media-controller-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0714-staging-bcm2835-codec-add-media-controller-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0687-media-bcm2835-unicam-Reduce-scope-of-local-function.patch (renamed from target/linux/brcm2708/patches-4.19/950-0715-media-bcm2835-unicam-Reduce-scope-of-local-function.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0688-media-bcm2835-unicam-add-media-controller-support.patch (renamed from target/linux/brcm2708/patches-4.19/950-0716-media-bcm2835-unicam-add-media-controller-support.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0689-Limit-max_req_size-under-arm64-or-any-other-platform.patch (renamed from target/linux/brcm2708/patches-4.19/950-0717-Limit-max_req_size-under-arm64-or-any-other-platform.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0690-Add-missing-dma_unmap_sg-calls-to-free-relevant-swio.patch (renamed from target/linux/brcm2708/patches-4.19/950-0718-Add-missing-dma_unmap_sg-calls-to-free-relevant-swio.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0691-overlays-mcp23017-rename-the-GPIO-pins-node-with-the.patch (renamed from target/linux/brcm2708/patches-4.19/950-0719-overlays-mcp23017-rename-the-GPIO-pins-node-with-the.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0692-overlays-mcp23017-Add-option-for-not-connecting-the-.patch (renamed from target/linux/brcm2708/patches-4.19/950-0720-overlays-mcp23017-Add-option-for-not-connecting-the-.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0693-v4l2-Add-a-Greyworld-AWB-mode.patch (renamed from target/linux/brcm2708/patches-4.19/950-0721-v4l2-Add-a-Greyworld-AWB-mode.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0694-staging-bcm2835-camera-Add-greyworld-AWB-mode.patch (renamed from target/linux/brcm2708/patches-4.19/950-0722-staging-bcm2835-camera-Add-greyworld-AWB-mode.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0695-PCI-brcmstb-Fix-compilation-warning.patch (renamed from target/linux/brcm2708/patches-4.19/950-0723-PCI-brcmstb-Fix-compilation-warning.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0696-drm-vc4-Fix-for-margins-in-composite-SDTV-mode-3223.patch (renamed from target/linux/brcm2708/patches-4.19/950-0724-drm-vc4-Fix-for-margins-in-composite-SDTV-mode-3223.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0697-Add-Hifiberry-DAC-DSP-soundcard-driver-3224.patch (renamed from target/linux/brcm2708/patches-4.19/950-0725-Add-Hifiberry-DAC-DSP-soundcard-driver-3224.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0698-staging-bcm2835-codec-Allow-height-of-1920.patch (renamed from target/linux/brcm2708/patches-4.19/950-0726-staging-bcm2835-codec-Allow-height-of-1920.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0699-staging-bcm2835-codec-Correct-g-s_selection-API-MPLA.patch (renamed from target/linux/brcm2708/patches-4.19/950-0727-staging-bcm2835-codec-Correct-g-s_selection-API-MPLA.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0700-regulator-gpio-Allow-nonexclusive-GPIO-access.patch (renamed from target/linux/brcm2708/patches-4.19/950-0728-regulator-gpio-Allow-nonexclusive-GPIO-access.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0701-gpio-Enable-nonexclusive-gpiods-from-DT-nodes.patch (renamed from target/linux/brcm2708/patches-4.19/950-0729-gpio-Enable-nonexclusive-gpiods-from-DT-nodes.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0702-Fix-poll-rate-on-touchscreen-3238.patch (renamed from target/linux/brcm2708/patches-4.19/950-0730-Fix-poll-rate-on-touchscreen-3238.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0703-dts-Add-DTS-for-Pi-2B-rev-1.2-with-BCM2837-3235.patch (renamed from target/linux/brcm2708/patches-4.19/950-0731-dts-Add-DTS-for-Pi-2B-rev-1.2-with-BCM2837-3235.patch)0
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0704-drm-v3d-clean-caches-at-the-end-of-render-jobs-on-re.patch177
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0705-staging-bcm2835-audio-Fix-draining-behavior-regressi.patch56
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0706-bcm2708_fb-Fix-layout-of-struct-vc4_display_settings.patch34
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0707-ARM-dts-bcm283x-Fix-DTC-warning-for-memory-node.patch68
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0708-ARM-dts-bcm27xx-Fix-DTC-warning-for-memory-node.patch52
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0709-ARM-bcm283x-Enable-DMA-support-for-SPI-controller.patch42
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0710-ARM-dts-bcm2835-rpi-Drop-unnecessary-address-cells-s.patch30
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0711-ARM-dts-bcm2708-rpi-Define-the-downstream-MMC-interf.patch40
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0712-ARM-dts-bcm283x-Define-MMC-interfaces-at-board-level.patch194
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0713-ARM-dts-bcm2835-rpi-zero-w-Fix-bus-width-of-sdhci.patch28
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0714-ARM-dts-bcm2708-rpi-Define-the-downstream-HDMI-power.patch24
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0715-ARM-dts-bcm283x-Enable-HDMI-at-board-level.patch163
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0716-clk-bcm2835-Introduce-SoC-specific-clock-registratio.patch597
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0717-clk-bcm2835-Add-BCM2711_CLOCK_EMMC2-support.patch91
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0718-ARM-bcm-Switch-board-clk-and-pinctrl-to-bcm2711-comp.patch71
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0719-pinctrl-bcm2835-Switch-to-SPDX-identifier.patch62
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0720-pinctrl-bcm2835-declare-pin-config-as-generic.patch27
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0721-pinctrl-bcm2835-Direct-GPIO-config-changes-to-generi.patch37
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0722-pinctrl-bcm2835-Add-support-for-BCM2711-pull-up-func.patch183
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0723-Rename-HDMI-ALSA-device-names-check-for-enable-state.patch139
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0724-pcie-brcmstb-bounce64.c-dev_err-dev_info-for-info-me.patch25
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0725-overlays-gpio-shutdown-Add-debounce-parameter.patch48
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0726-overlays-fix-compatible-for-RPi4.patch204
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0727-bcm2711-Retain-support-for-old-dtbs.patch55
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0728-media-bcm2835-unicam-Add-support-for-raw14-formats.patch49
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0729-media-bcm2835-unicam-Rework-to-not-cache-the-list-of.patch387
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0730-media-bcm2835-unicam-Support-unpacking-CSI-format-to.patch254
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0731-media-bcm2835-unicam-Add-support-for-luma-greyscale-.patch50
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0732-drm-vc4-Add-support-for-YUV-color-encodings-and-rang.patch138
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0733-drm-vc4-Fix-negative-X-Y-positioning-on-SAND-planes.patch68
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0734-drm-vc4-Add-support-for-H-V-flips.patch135
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0735-drm-vc4-Correct-handling-of-rotation-parameter-in-fk.patch87
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0736-overlays-Add-w5500-overlay.patch113
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0737-media-bcm2835-unicam-Replace-hard-coded-loop-limit-w.patch44
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0738-media-bcm2835-unicam-Fix-one-to-many-mapping-for-YUY.patch144
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0739-dt-bindings-Add-binding-for-the-Infineon-IRS1125-sen.patch66
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0740-media-i2c-Add-a-driver-for-the-Infineon-IRS1125-dept.patch1231
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0741-dtoverlays-Add-an-overlay-for-the-Infineon-IRS1125.patch149
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0742-rpi-wm8804-soundcard-Fixed-MCLKDIV-for-Allo-Digione.patch42
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0743-dts-bcm2838-Disable-DWC-OTG-block-by-default.patch23
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0744-staging-bcm2835-codec-Add-support-for-ENUM_FRAMESIZE.patch98
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0745-staging-bcm2835-codec-Correct-buffer-type-check-on-G.patch25
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0746-staging-bcm2835-codec-Set-default-and-error-check-ti.patch37
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0747-staging-bcm2835-codec-Fix-imbalance-in-dma_buf_get-d.patch30
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0748-drm-vc4-Added-calls-for-firmware-display-blank-unbla.patch87
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0749-rpi-poe-fan-fix-def_pwm1-writes.patch21
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0750-net-phy-bcm54xx-Encode-link-speed-and-activity-into-.patch67
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0751-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch119
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0752-overlays-smi-fix-typo-in-comment-3320.patch23
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0753-net-phy-2711-Change-the-default-ethernet-LED-actions.patch33
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0754-overlays-README-Remove-trailing-whitespace.patch21
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0755-overlays-Add-apds9960-overlay.patch103
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0756-arm-dts-overlays-pitft35-resistive-add-upstream-comp.patch27
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0757-clk-bcm2835-Avoid-null-pointer-exception.patch29
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0758-v3d_drv-Handle-missing-clock-more-gracefully.patch25
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0759-cpufreq-scpi-scmi-Fix-freeing-of-dynamic-OPPs.patch197
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0760-clk-bcm283x-add-driver-interfacing-with-Raspberry-Pi.patch349
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0761-cpufreq-add-driver-for-Raspberry-Pi.patch161
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0762-firmware-raspberrypi-register-clk-device.patch57
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0763-clk-raspberrypi-register-platform-device-for-raspber.patch65
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0764-clk-bcm2835-remove-pllb.patch56
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0765-v3d_drv-Allow-clock-retrieval-by-name.patch23
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0766-v3d_gem-Kick-the-clock-so-firmware-knows-we-are-usin.patch27
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0767-clk-raspberrypi-Allow-cpufreq-driver-to-also-adjust-.patch25
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0768-clk-raspberrypi-Also-support-v3d-clock.patch640
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0769-clk-bcm2835-Disable-v3d-clock.patch58
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0770-fixup-clk-raspberrypi-Also-support-v3d-clock.patch29
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0771-fixup-clk-raspberrypi-Also-support-v3d-clock.patch36
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0772-raspberrypi-cpufreq-Only-report-integer-pll-divisor-.patch40
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0773-fixup-clk-raspberrypi-Also-support-v3d-clock.patch54
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0774-arm-dts-Correct-Pi-4B-LED-values.patch39
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0775-drm-v3d-Set-dma_mask-as-well-as-coherent_dma_mask.patch25
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0776-arm-dts-2711-Add-pcie0-alias.patch24
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0777-spidev-Completely-disable-the-DT-warning.patch32
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0778-drm-vc4-Disable-V3D-interactions-if-the-v3d-componen.patch (renamed from target/linux/brcm2708/patches-4.19/950-0528-drm-vc4-Disable-V3D-interactions-if-the-v3d-componen.patch)60
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0779-sound-soc-only-first-codec-is-master-in-multicodec-s.patch34
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0780-Allow-simultaneous-use-of-JustBoom-DAC-and-Digi.patch435
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0781-dwc_otg-checking-the-urb-transfer_buffer-too-early-3.patch59
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0782-overlays-Make-mcp342x-run-time-compatible.patch209
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0783-overlays-dht11-Allow-multiple-instantiation.patch34
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0784-overlays-i2c-rtc-Add-pcf85363-support.patch56
803 files changed, 8999 insertions, 2031 deletions
diff --git a/target/linux/brcm2708/bcm2711/config-4.19 b/target/linux/brcm2708/bcm2711/config-4.19
index 3c7d005fba..9d4671de8d 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
index 0517999883..0517999883 100644
--- 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
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 91e27c36cc..0000000000
--- 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 <phil@raspberrypi.org>
-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
index 30a65ff35e..30a65ff35e 100644
--- 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
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
index 41d6c8d363..41d6c8d363 100644
--- 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
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
index 05bc4a0f4d..05bc4a0f4d 100644
--- 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
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
index 1eca3a9265..1eca3a9265 100644
--- 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
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
index a08cd13456..a08cd13456 100644
--- 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
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
index ce3bf61911..ce3bf61911 100644
--- 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
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
index dc83b7f8ef..dc83b7f8ef 100644
--- 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
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
index e1f6950156..e1f6950156 100644
--- 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
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
index 6665d4d112..6665d4d112 100644
--- 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
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
index 30ab0504ae..30ab0504ae 100644
--- 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
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
index 6d5d7d4d8b..6d5d7d4d8b 100644
--- 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
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
index e4a1d7f660..e4a1d7f660 100644
--- 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
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
index 63f1f9f74a..63f1f9f74a 100644
--- 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
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
index 2838360a00..2838360a00 100644
--- 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
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
index 2df0d37b8d..2df0d37b8d 100644
--- 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
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
index fcb401c090..fcb401c090 100644
--- 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
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
index 7fd6024715..7fd6024715 100644
--- 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
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
index d6372ec7cb..d6372ec7cb 100644
--- 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
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
index 76a53fea0d..76a53fea0d 100644
--- 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
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
index 9007aba3f0..9007aba3f0 100644
--- 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
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
index 0881053ab2..0881053ab2 100644
--- 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
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
index 847d8f5102..847d8f5102 100644
--- 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
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
index 1d6fdacfa8..1d6fdacfa8 100644
--- 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
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
index 8768351034..8768351034 100644
--- 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
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
index 30ac2a883c..30ac2a883c 100644
--- 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
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
index d7514a5525..d7514a5525 100644
--- 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
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
index 26c08cd1a2..26c08cd1a2 100644
--- 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
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
index a553d5a854..a553d5a854 100644
--- 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
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
index 346a575050..346a575050 100644
--- 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
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
index f77b3fd8e0..f77b3fd8e0 100644
--- 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
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
index 17d6137728..17d6137728 100644
--- 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
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
index 46bcb45e01..46bcb45e01 100644
--- 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
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
index b154d6ee75..b154d6ee75 100644
--- 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
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
index b3b73b8073..b3b73b8073 100644
--- 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
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
index 17663b294f..17663b294f 100644
--- 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
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
index 1916ac6944..1916ac6944 100644
--- 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
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
index 6afffd2a16..6afffd2a16 100644
--- 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
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
index a947f27654..a947f27654 100644
--- 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
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
index c7cb1e6d86..c7cb1e6d86 100644
--- 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
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
index 8688431a11..8688431a11 100644
--- 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
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
index b9cf14453c..b9cf14453c 100644
--- 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
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
index cf26302f71..cf26302f71 100644
--- 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
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
index e55c04ac2d..e55c04ac2d 100644
--- 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
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
index 2851cebfb2..2851cebfb2 100644
--- 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
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
index e6bb9fa388..e6bb9fa388 100644
--- 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
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
index 72b9cfc131..72b9cfc131 100644
--- 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
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
index b3839f6ad7..b3839f6ad7 100644
--- 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
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
index 16c15d59f2..16c15d59f2 100644
--- 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
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
index 409b289416..409b289416 100644
--- 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
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
index 6f7b31e4d0..6f7b31e4d0 100644
--- 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
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
index 430059cddf..430059cddf 100644
--- 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
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
index 0278156959..0278156959 100644
--- 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
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
index a6d04a90b5..a6d04a90b5 100644
--- 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
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
index e656c05a55..e656c05a55 100644
--- 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
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
index 6eab0b5944..6eab0b5944 100644
--- 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
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
index eb21558df6..eb21558df6 100644
--- 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
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
index a335e2dcba..a335e2dcba 100644
--- 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
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
index edb1703200..edb1703200 100644
--- 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
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
index 0cfe2583b3..0cfe2583b3 100644
--- 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
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
index 68957f35db..68957f35db 100644
--- 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
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
index b4a67473dc..b4a67473dc 100644
--- 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
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
index 1316727f46..1316727f46 100644
--- 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
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
index de72049435..de72049435 100644
--- 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
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
index fa1d346702..fa1d346702 100644
--- 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
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
index 0c7e218fc3..0c7e218fc3 100644
--- 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
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
index 9b0750f24b..9b0750f24b 100644
--- 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
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
index 5e9e34b73e..5e9e34b73e 100644
--- 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
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
index 363fd90df2..363fd90df2 100644
--- 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
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
index 046fe436bc..046fe436bc 100644
--- 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
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
index 4d5c4a747a..4d5c4a747a 100644
--- 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
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
index 36784e9b41..36784e9b41 100644
--- 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
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
index a9605818c9..a9605818c9 100644
--- 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
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
index d742e6d988..d742e6d988 100644
--- 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
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
index ea2c91164f..ea2c91164f 100644
--- 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
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
index db8af937b7..db8af937b7 100644
--- 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
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 9c4462c1b4..0000000000
--- 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 <info@crazy-audio.com>
-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 <daniel@matuschek.net>
----
- 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
index 1ba0b774b4..1ba0b774b4 100644
--- 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
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
index f3c06f4fff..f3c06f4fff 100644
--- 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
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
index 6259fdc101..6259fdc101 100644
--- 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
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
index e3caf880ea..e3caf880ea 100644
--- 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
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
index 756fd3a507..756fd3a507 100644
--- 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
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
index 4e49856630..4e49856630 100644
--- 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
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
index 85b8edb15e..85b8edb15e 100644
--- 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
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
index 235a72fe25..235a72fe25 100644
--- 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
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
index 53506d1475..53506d1475 100644
--- 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
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
index bd7a3a04e1..bd7a3a04e1 100644
--- 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
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
index dad88e1728..dad88e1728 100644
--- 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
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
index 02de46bdc2..02de46bdc2 100644
--- 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
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
index 13f97962f9..13f97962f9 100644
--- 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
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
index 1709d4d959..1709d4d959 100644
--- 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
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
index b0e4152fc4..b0e4152fc4 100644
--- 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
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
index 545be8004e..545be8004e 100644
--- 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
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 f08cbebc47..0000000000
--- 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 <phil@raspberrypi.org>
-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 <phil@raspberrypi.org>
----
- 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
index 3e60981b89..3e60981b89 100644
--- 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
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
index 8f574a3226..8f574a3226 100644
--- 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
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
index b4db1d7c60..b4db1d7c60 100644
--- 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
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
index a61a137cb6..a61a137cb6 100644
--- 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
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
index be69fe72c7..be69fe72c7 100644
--- 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
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
index c916ebfa96..c916ebfa96 100644
--- 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
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
index 2a52b0f98a..2a52b0f98a 100644
--- 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
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
index 94a180f061..94a180f061 100644
--- 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
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
index fbccc12e8f..fbccc12e8f 100644
--- 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
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
index 764edb66ff..764edb66ff 100644
--- 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
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
index 43b200db16..43b200db16 100644
--- 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
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
index 0b9398fda7..0b9398fda7 100644
--- 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
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
index cf3b876537..cf3b876537 100644
--- 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
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
index 65fc0978a8..65fc0978a8 100644
--- 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
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
index ed4e65f11c..ed4e65f11c 100644
--- 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
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
index 6103e82d88..6103e82d88 100644
--- 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
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
index 9c5e9138a5..9c5e9138a5 100644
--- 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
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
index 1b734b56ac..1b734b56ac 100644
--- 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
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
index a1a9fa6c88..a1a9fa6c88 100644
--- 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
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
index 4851e066ac..4851e066ac 100644
--- 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
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
index 17867c330a..17867c330a 100644
--- 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
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
index 60e7294c05..60e7294c05 100644
--- 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
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
index 8e06168f06..8e06168f06 100644
--- 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
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
index 281f273e8d..281f273e8d 100644
--- 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
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
index d3e91be8db..d3e91be8db 100644
--- 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
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
index 1e3944b859..1e3944b859 100644
--- 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
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
index a1dfb00af7..a1dfb00af7 100644
--- 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
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
index f7bc93fdb8..f7bc93fdb8 100644
--- 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
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
index b393306408..b393306408 100644
--- 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
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
index d67c9381ed..d67c9381ed 100644
--- 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
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
index e6836b5066..e6836b5066 100644
--- 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
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
index 3fcd3d9344..3fcd3d9344 100644
--- 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
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
index b4c4f5aab4..b4c4f5aab4 100644
--- 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
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
index 40a6652527..40a6652527 100644
--- 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
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 55cd26b25b..0000000000
--- 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 <wm4@nowhere>
-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
index ea9846d099..ea9846d099 100644
--- 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
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
index 24803abb29..24803abb29 100644
--- 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
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
index 6f22881731..6f22881731 100644
--- 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
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
index f48b8eab99..f48b8eab99 100644
--- 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
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
index ef8e1eaaa8..ef8e1eaaa8 100644
--- 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
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
index 7e5286eaac..7e5286eaac 100644
--- 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
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
index 56d9d9aca1..56d9d9aca1 100644
--- 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
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
index cd188a7170..cd188a7170 100644
--- 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
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
index 727624086a..727624086a 100644
--- 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
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
index 567052f0fb..567052f0fb 100644
--- 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
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
index 583b2c8b5d..583b2c8b5d 100644
--- 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
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
index 642bd2b39d..642bd2b39d 100644
--- 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
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
index cedc79284b..cedc79284b 100644
--- 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
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
index f252490382..f252490382 100644
--- 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
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
index 52bd49af5e..52bd49af5e 100644
--- 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
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
index 8e35113fdc..8e35113fdc 100644
--- 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
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
index c8f375942e..c8f375942e 100644
--- 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
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
index af447c1704..af447c1704 100644
--- 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
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
index 8547b4fdde..8547b4fdde 100644
--- 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
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
index ae35e8b7db..ae35e8b7db 100644
--- 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
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
index 0ea76db503..0ea76db503 100644
--- 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
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
index 7a93d2fd23..7a93d2fd23 100644
--- 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
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
index 2c0493777b..2c0493777b 100644
--- 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
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
index c6a9e355c5..c6a9e355c5 100644
--- 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
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
index c7c4fa86df..c7c4fa86df 100644
--- 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
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
index b9a4f52e5a..b9a4f52e5a 100644
--- 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
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
index 6e81c149d8..6e81c149d8 100644
--- 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
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
index 12e1289734..12e1289734 100644
--- 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
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
index ca363a1344..ca363a1344 100644
--- 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
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
index 00e852d7f1..00e852d7f1 100644
--- 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
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
index 42dc7e1bc7..42dc7e1bc7 100644
--- 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
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
index 80a5d900d6..80a5d900d6 100644
--- 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
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
index edbc12081d..edbc12081d 100644
--- 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
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
index 937ac1a65c..937ac1a65c 100644
--- 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
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
index 26d36ea43c..26d36ea43c 100644
--- 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
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
index 89d389c9c1..89d389c9c1 100644
--- 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
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
index 6cb1134b9d..6cb1134b9d 100644
--- 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
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
index 65108f9710..65108f9710 100644
--- 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
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
index 0dcd6771d0..0dcd6771d0 100644
--- 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
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
index 5f394a9bd1..5f394a9bd1 100644
--- 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
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
index 77fdd348d9..77fdd348d9 100644
--- 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
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
index 7c857c4631..7c857c4631 100644
--- 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
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
index b48db8b0d1..b48db8b0d1 100644
--- 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
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
index 551a60ce9e..551a60ce9e 100644
--- 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
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
index a78a9f3157..a78a9f3157 100644
--- 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
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
index a5f0c76dd1..a5f0c76dd1 100644
--- 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
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
index 9348af8350..9348af8350 100644
--- 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
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
index 8a71d944ea..8a71d944ea 100644
--- 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
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
index cc9af044e0..cc9af044e0 100644
--- 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
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
index 1a660d608b..1a660d608b 100644
--- 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
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
index f73d9c9617..f73d9c9617 100644
--- 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
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
index 7edd25f9eb..7edd25f9eb 100644
--- 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
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
index cb89142dff..cb89142dff 100644
--- 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
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
index f7749ed553..f7749ed553 100644
--- 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
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
index b55e89f492..b55e89f492 100644
--- 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
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 583b95bf89..0000000000
--- 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 <hias@horus.com>
-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 <hias@horus.com>
----
- 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
index 53d055893d..53d055893d 100644
--- 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
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
index 63f3911434..63f3911434 100644
--- 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
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
index c67acaa50d..c67acaa50d 100644
--- 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
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
index f9c1daa212..f9c1daa212 100644
--- 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
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
index b0613d2ade..b0613d2ade 100644
--- 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
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
index 340f60dd88..340f60dd88 100644
--- 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
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
index 8faa68c19e..8faa68c19e 100644
--- 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
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
index 51c7732beb..51c7732beb 100644
--- 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
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
index 0c6e627993..0c6e627993 100644
--- 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
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
index 8d9848a7e6..8d9848a7e6 100644
--- 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
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
index 28ee4e7f44..28ee4e7f44 100644
--- 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
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
index 161949da18..161949da18 100644
--- 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
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
index 19c59f6077..19c59f6077 100644
--- 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
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
index b32699d09f..b32699d09f 100644
--- 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
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
index 9cf02e9ab9..9cf02e9ab9 100644
--- 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
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
index a568366855..a568366855 100644
--- 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
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
index 38409de017..38409de017 100644
--- 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
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
index 96236f36d5..96236f36d5 100644
--- 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
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
index 81328b2cdc..087e3e5025 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 <dave.stevenson@raspberrypi.org>
--- 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
index 9d2ae1bb3a..9d2ae1bb3a 100644
--- 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
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
index 12afc4a1f8..12afc4a1f8 100644
--- 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
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 793fc21396..0000000000
--- 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 <stefan.wahren@i2se.com>
-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 <stefan.wahren@i2se.com>
----
- 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 3c6bfd4db2..0000000000
--- 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 <stefan.wahren@i2se.com>
-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 <stefan.wahren@i2se.com>
----
- 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
index 96116cb8d5..96116cb8d5 100644
--- 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
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 a9f077675c..0000000000
--- 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 <stefan.wahren@i2se.com>
-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 <stefan.wahren@i2se.com>
----
- .../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
index 616cacefa2..616cacefa2 100644
--- 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
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 62b2c88875..0000000000
--- 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 <stefan.wahren@i2se.com>
-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 <stefan.wahren@i2se.com>
----
- .../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 <linux/platform_device.h>
-
- #include <linux/init.h>
-+#include <linux/dma-mapping.h>
-+#include <linux/of_device.h>
- #include <linux/slab.h>
- #include <linux/module.h>
--#include <linux/of.h>
-
- #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
index 2041ebbd72..2041ebbd72 100644
--- 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
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
index 4788eebc68..4788eebc68 100644
--- 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
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
index 38bcbbd2d9..38bcbbd2d9 100644
--- 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
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
index e6d5875341..e6d5875341 100644
--- 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
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
index 7797510096..7797510096 100644
--- 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
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
index 6aa8e93118..6aa8e93118 100644
--- 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
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
index 2780112b39..2780112b39 100644
--- 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
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
index 8d6b7a931b..8d6b7a931b 100644
--- 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
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
index 85c7f1ea3b..85c7f1ea3b 100644
--- 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
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
index dbfa67cfe6..dbfa67cfe6 100644
--- 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
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
index 802ff8b33f..802ff8b33f 100644
--- 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
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
index 11e6f1fb1a..11e6f1fb1a 100644
--- 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
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
index 0feb273566..0feb273566 100644
--- 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
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
index 56d62f5d4f..56d62f5d4f 100644
--- 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
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
index 53fb95d793..53fb95d793 100644
--- 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
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
index 34bbe82a5d..34bbe82a5d 100644
--- 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
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
index 254664b0b7..254664b0b7 100644
--- 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
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
index 2d3b5408a5..2d3b5408a5 100644
--- 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
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
index 02723056cf..02723056cf 100644
--- 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
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
index 920249e6b4..920249e6b4 100644
--- 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
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
index 1cd23da288..1cd23da288 100644
--- 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
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
index 7e4100f96a..7e4100f96a 100644
--- 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
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
index 401b8bfa09..401b8bfa09 100644
--- 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
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
index dd6554142d..dd6554142d 100644
--- 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
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
index 468f036982..468f036982 100644
--- 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
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
index b79bdb8412..b79bdb8412 100644
--- 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
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
index 9688bc868a..9688bc868a 100644
--- 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
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
index 6c54743645..6c54743645 100644
--- 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
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
index 9e9af47a37..9e9af47a37 100644
--- 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
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
index 4f16e0bfda..4f16e0bfda 100644
--- 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
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
index 8c69f65cc2..8c69f65cc2 100644
--- 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
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
index fbaa3c2d40..fbaa3c2d40 100644
--- 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
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
index 0a6552b7fd..0a6552b7fd 100644
--- 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
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
index c9461eb59d..51cc4a4632 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 <dave.stevenson@raspberrypi.org>
--- 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
index d04e261b45..6bfa52dfe6 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 <dave.stevenson@raspberrypi.org>
--- 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
index 9659b10956..9659b10956 100644
--- 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
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
index 7e86b09840..7e86b09840 100644
--- 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
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
index 16539aa305..16539aa305 100644
--- 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
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
index e33553625d..e33553625d 100644
--- 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
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
index 02162129b4..02162129b4 100644
--- 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
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
index 40260a6573..40260a6573 100644
--- 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
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
index 40bfc01441..40bfc01441 100644
--- 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
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
index a41e46b1e8..a41e46b1e8 100644
--- 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
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
index 84d8a89659..84d8a89659 100644
--- 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
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
index 96d2ad4699..96d2ad4699 100644
--- 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
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
index 09ff03e81b..09ff03e81b 100644
--- 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
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 8bc16911ca..0000000000
--- 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 <sheu@chromium.org>
-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 <sheu@chromium.org>
-Reviewed-by: Pawel Osciak <posciak@chromium.org>
-Reviewed-by: Tomasz Figa <tfiga@chromium.org>
-Signed-off-by: Tomasz Figa <tfiga@chromium.org>
----
- .../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
index 37f1cb53fc..37f1cb53fc 100644
--- 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
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
index 761b6dcfcf..761b6dcfcf 100644
--- 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
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
index 1ab87d5a54..1ab87d5a54 100644
--- 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
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 aeaf8bf1a7..0000000000
--- 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 <dave.stevenson@raspberrypi.org>
-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 <dave.stevenson@raspberrypi.org>
----
- .../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
index 1e85d9f23c..1e85d9f23c 100644
--- 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
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 ea5d5d2949..0000000000
--- 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 <dave.stevenson@raspberrypi.org>
-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 <dave.stevenson@raspberrypi.org>
----
- .../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 <linux/platform_device.h>
-
- #include <linux/init.h>
--#include <linux/dma-mapping.h>
--#include <linux/of_device.h>
- #include <linux/slab.h>
- #include <linux/module.h>
-+#include <linux/of.h>
-
- #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
index 42a9f112e9..42a9f112e9 100644
--- 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
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
index fd5f88ff03..fd5f88ff03 100644
--- 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
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
index 9cd839e045..9cd839e045 100644
--- 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
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
index 8136e3ffa0..8136e3ffa0 100644
--- 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
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
index 967cc76442..967cc76442 100644
--- 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
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
index 44f295a89e..44f295a89e 100644
--- 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
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
index d104c65cc3..d104c65cc3 100644
--- 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
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
index a9b55722e5..a9b55722e5 100644
--- 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
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
index 0ec06ca246..0ec06ca246 100644
--- 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
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
index 2e20c64b8b..2e20c64b8b 100644
--- 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
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
index c4e78a1e21..c4e78a1e21 100644
--- 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
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
index e562e1cffe..e562e1cffe 100644
--- 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
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
index b0beb6d5c8..b0beb6d5c8 100644
--- 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
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
index e0b6adf2ae..e0b6adf2ae 100644
--- 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
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
index ee4fbbda2d..ee4fbbda2d 100644
--- 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
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
index 0647b0532a..0647b0532a 100644
--- 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
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
index cadf49ebc8..cadf49ebc8 100644
--- 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
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
index d014697a3a..d014697a3a 100644
--- 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
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
index 9d6471052d..9d6471052d 100644
--- 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
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
index e88afb0550..e88afb0550 100644
--- 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
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
index 0946b77037..0946b77037 100644
--- 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
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
index 760a7bfdc8..760a7bfdc8 100644
--- 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
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
index c1e5bb355b..c1e5bb355b 100644
--- 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
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
index 24a332fa60..24a332fa60 100644
--- 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
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
index c8e3e221ce..c8e3e221ce 100644
--- 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
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
index eb53480080..eb53480080 100644
--- 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
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
index 3c6dc09f09..3c6dc09f09 100644
--- 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
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
index 43bb8cee3a..43bb8cee3a 100644
--- 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
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
index ff564390cf..ff564390cf 100644
--- 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
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
index ec0d0d882b..ec0d0d882b 100644
--- 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
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
index e68cf7b2f9..e68cf7b2f9 100644
--- 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
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
index f1a09c4922..f1a09c4922 100644
--- 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
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
index cc99a11c94..cc99a11c94 100644
--- 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
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
index edc9336804..edc9336804 100644
--- 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
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
index 31e050aa55..31e050aa55 100644
--- 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
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
index 8709eef289..8709eef289 100644
--- 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
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
index 6a43d94d1a..6a43d94d1a 100644
--- 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
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
index 521641434b..521641434b 100644
--- 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
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
index 29f7ee3984..29f7ee3984 100644
--- 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
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
index 4dc414119b..4dc414119b 100644
--- 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
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
index b4567d8fdc..b4567d8fdc 100644
--- 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
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
index 6690dfcd42..6690dfcd42 100644
--- 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
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
index 1280251403..1280251403 100644
--- 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
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
index 121f855f1c..121f855f1c 100644
--- 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
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
index 603b394b0f..603b394b0f 100644
--- 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
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
index 5eec74e42a..5eec74e42a 100644
--- 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
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
index df59acd249..df59acd249 100644
--- 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
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
index fcdcc4ab48..fcdcc4ab48 100644
--- 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
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
index 7e3373e489..7e3373e489 100644
--- 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
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
index 98162a0e80..98162a0e80 100644
--- 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
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
index 5e5f1a7bf8..5e5f1a7bf8 100644
--- 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
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
index 545541f105..545541f105 100644
--- 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
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
index 657d70d82a..657d70d82a 100644
--- 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
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
index 7ab46e82fe..7ab46e82fe 100644
--- 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
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
index 7d4bab5222..7d4bab5222 100644
--- 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
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
index 4f49925d97..4f49925d97 100644
--- 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
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
index 962c3deafb..962c3deafb 100644
--- 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
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
index 267cad41a6..267cad41a6 100644
--- 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
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
index 311ae66770..311ae66770 100644
--- 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
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
index ee5d01d3aa..ee5d01d3aa 100644
--- 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
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
index aeea6c88ae..aeea6c88ae 100644
--- 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
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
index 70b73dd714..70b73dd714 100644
--- 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
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
index f8b7ca28ad..f8b7ca28ad 100644
--- 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
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
index 6133840b71..6133840b71 100644
--- 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
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
index 4bf0c78222..4bf0c78222 100644
--- 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
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
index e16e12da3c..e16e12da3c 100644
--- 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
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
index f823f670e4..f823f670e4 100644
--- 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
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
index 86fd110342..86fd110342 100644
--- 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
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 d709214664..0000000000
--- 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 <dave.stevenson@raspberrypi.org>
-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 <dave.stevenson@raspberrypi.org>
----
- 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
index 1122e3c3e2..1122e3c3e2 100644
--- 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
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
index 9ec4404bef..9ec4404bef 100644
--- 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
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
index 0ca7c11822..0ca7c11822 100644
--- 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
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
index 3762f4b70a..3762f4b70a 100644
--- 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
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
index ed3910d7a1..ed3910d7a1 100644
--- 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
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
index e87cf1a95f..e87cf1a95f 100644
--- 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
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
index c1686f55cd..c1686f55cd 100644
--- 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
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
index cd592e27da..cd592e27da 100644
--- 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
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
index 661ba8e33d..661ba8e33d 100644
--- 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
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
index 6a00e82300..6a00e82300 100644
--- 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
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
index 22280224f1..22280224f1 100644
--- 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
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
index aa5f12a5ca..aa5f12a5ca 100644
--- 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
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
index 3a63be1784..3a63be1784 100644
--- 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
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
index cae096bd95..cae096bd95 100644
--- 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
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
index 4e0ddb9124..4e0ddb9124 100644
--- 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
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
index 928d05a1d0..928d05a1d0 100644
--- 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
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
index fc671a4705..fc671a4705 100644
--- 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
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
index 708e449275..708e449275 100644
--- 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
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
index c056c34ad7..c056c34ad7 100644
--- 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
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
index 85b008e5a4..85b008e5a4 100644
--- 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
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
index 94552065eb..94552065eb 100644
--- 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
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
index 5caebcb27d..5caebcb27d 100644
--- 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
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
index bee58524cd..bee58524cd 100644
--- 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
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
index 15ded09f36..15ded09f36 100644
--- 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
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
index d995353ef4..d995353ef4 100644
--- 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
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
index ba10100241..ba10100241 100644
--- 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
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
index 8c4cdd568b..8c4cdd568b 100644
--- 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
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
index b967edafa0..b967edafa0 100644
--- 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
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
index 1d57237059..1d57237059 100644
--- 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
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
index 98514255df..98514255df 100644
--- 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
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
index ecc637c3a2..ecc637c3a2 100644
--- 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
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
index d2a9973fa8..d2a9973fa8 100644
--- 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
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
index 84c99ffa5a..84c99ffa5a 100644
--- 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
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
index 5eb3703b78..5eb3703b78 100644
--- 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
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
index 0967821a4c..0967821a4c 100644
--- 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
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
index 53e2c98ce5..53e2c98ce5 100644
--- 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
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
index 7eac71099d..7eac71099d 100644
--- 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
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
index 040bd60339..040bd60339 100644
--- 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
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
index 769f2461a0..769f2461a0 100644
--- 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
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
index e149912edb..e149912edb 100644
--- 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
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
index 27c81bc123..27c81bc123 100644
--- 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
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
index 4c3e76a512..4c3e76a512 100644
--- 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
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
index 531fe9e818..531fe9e818 100644
--- 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
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
index ac5c0a0d75..ac5c0a0d75 100644
--- 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
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
index e1cf501f37..e1cf501f37 100644
--- 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
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
index b2af97443c..b2af97443c 100644
--- 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
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
index de29b17d21..de29b17d21 100644
--- 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
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
index 482c9ba5cc..482c9ba5cc 100644
--- 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
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
index 121846d802..121846d802 100644
--- 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
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
index 2a8197c68d..2a8197c68d 100644
--- 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
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
index fe308694d7..fe308694d7 100644
--- 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
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
index f337c61b4b..f337c61b4b 100644
--- 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
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
index ffe06fef60..ffe06fef60 100644
--- 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
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
index 8012631bd4..8012631bd4 100644
--- 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
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 36d3ee1ac3..0000000000
--- 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 <p33m@github.com>
-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
index ab5a0ed8a2..ab5a0ed8a2 100644
--- 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
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
index dc6525089c..dc6525089c 100644
--- 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
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 9b4f6d741b..0000000000
--- 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 <popcornmix@gmail.com>
-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
index 96a4d732c1..96a4d732c1 100644
--- 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
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 841768b718..0000000000
--- 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 <popcornmix@gmail.com>
-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
index a70081159f..a70081159f 100644
--- 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
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 6a28d80b7e..0000000000
--- 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 <popcornmix@gmail.com>
-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
index 07e96f61ed..07e96f61ed 100644
--- 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
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
index eb6538dff3..eb6538dff3 100644
--- 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
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
index 37ebd8b673..37ebd8b673 100644
--- 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
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
index 722804ff63..722804ff63 100644
--- 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
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
index d4d61ce0fb..d4d61ce0fb 100644
--- 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
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
index 63cd0b01b8..63cd0b01b8 100644
--- 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
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
index 989e0e43d6..989e0e43d6 100644
--- 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
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
index 5db4daa5cd..5db4daa5cd 100644
--- 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
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
index dfd4b975f9..dfd4b975f9 100644
--- 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
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
index 5b38ca5e31..5b38ca5e31 100644
--- 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
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
index 6ead1b4ccf..6ead1b4ccf 100644
--- 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
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
index ec0530ba2a..ec0530ba2a 100644
--- 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
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
index 523e54361d..523e54361d 100644
--- 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
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
index fa24932b1b..fa24932b1b 100644
--- 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
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
index f5c7781c20..f5c7781c20 100644
--- 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
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
index 6b9ac81b97..6b9ac81b97 100644
--- 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
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
index e212a942ec..e212a942ec 100644
--- 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
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
index 6b03e1e43a..6b03e1e43a 100644
--- 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
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
index 05128020f7..05128020f7 100644
--- 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
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
index 8f24d154cb..8f24d154cb 100644
--- 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
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
index cf5f11c091..cf5f11c091 100644
--- 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
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
index 3605c41fa8..3605c41fa8 100644
--- 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
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
index a0a5f765e8..a0a5f765e8 100644
--- 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
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
index 95b9d7a1d1..95b9d7a1d1 100644
--- 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
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
index e39aeb089d..e39aeb089d 100644
--- 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
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
index 9608504500..9608504500 100644
--- 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
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
index 9e25fe1016..9e25fe1016 100644
--- 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
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
index 6f99736d6a..6f99736d6a 100644
--- 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
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
index edd4c7864b..edd4c7864b 100644
--- 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
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
index 6b67955ee3..6b67955ee3 100644
--- 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
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
index 568cd82e56..568cd82e56 100644
--- 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
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
index bfa88dd4f7..bfa88dd4f7 100644
--- 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
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
index f761ad7872..f761ad7872 100644
--- 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
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
index b063e38854..b063e38854 100644
--- 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
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
index afdc22e2d1..afdc22e2d1 100644
--- 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
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
index 3766707063..3766707063 100644
--- 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
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
index 346cda887f..346cda887f 100644
--- 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
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
index 97d69c695b..97d69c695b 100644
--- 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
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
index 6a4566abd8..6a4566abd8 100644
--- 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
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
index 28c7450564..28c7450564 100644
--- 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
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 f9369565bd..0000000000
--- 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 <stefan.wahren@i2se.com>
-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 <stefan.wahren@i2se.com>
-Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- .../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 <linux/init.h>
- #include <linux/slab.h>
- #include <linux/module.h>
--#include <linux/of.h>
-
- #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
index ba021f1e22..ba021f1e22 100644
--- 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
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
index dac4386448..dac4386448 100644
--- 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
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
index c6e54f3fda..c6e54f3fda 100644
--- 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
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 c831dc8139..0000000000
--- 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 <popcornmix@gmail.com>
-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 <linux/init.h>
- #include <linux/slab.h>
- #include <linux/module.h>
-+#include <linux/of.h>
-
- #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
index b1f95e3445..b1f95e3445 100644
--- 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
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 6891ec28a0..0000000000
--- 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 <p33m@github.com>
-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
index 34fe856ee0..34fe856ee0 100644
--- 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
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
index 8e854bdbc8..8e854bdbc8 100644
--- 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
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
index 162c28ee84..162c28ee84 100644
--- 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
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
index 45476681e1..45476681e1 100644
--- 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
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
index c3d32ee648..c3d32ee648 100644
--- 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
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
index 37bb4fd61e..37bb4fd61e 100644
--- 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
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
index fa60926439..fa60926439 100644
--- 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
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
index 468aa30608..468aa30608 100644
--- 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
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
index 541e18ac06..541e18ac06 100644
--- 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
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 2ad3299595..0000000000
--- 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 <dave.stevenson@raspberrypi.org>
-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 <dave.stevenson@raspberrypi.org>
----
- 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
index 48bb146741..48bb146741 100644
--- 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
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
index ac75d4768f..ac75d4768f 100644
--- 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
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 8da9deaa6e..0000000000
--- 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 <p33m@github.com>
-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
index 6229fdc38d..6229fdc38d 100644
--- 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
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
index f19a6380ce..f19a6380ce 100644
--- 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
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
index 13ea94a130..13ea94a130 100644
--- 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
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
index dc251a60c4..dc251a60c4 100644
--- 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
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
index c6b0606087..c6b0606087 100644
--- 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
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
index 5d316bd314..5d316bd314 100644
--- 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
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
index 53fc19c0f2..53fc19c0f2 100644
--- 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
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
index 84a691343f..84a691343f 100644
--- 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
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
index 3d35540bda..3d35540bda 100644
--- 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
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
index 9c7d073b5a..9c7d073b5a 100644
--- 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
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
index 70325f7768..70325f7768 100644
--- 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
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
index d320e40c41..d320e40c41 100644
--- 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
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
index b06b21404e..b06b21404e 100644
--- 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
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
index 88431e2aca..88431e2aca 100644
--- 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
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
index 75615e372f..75615e372f 100644
--- 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
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
index 856bf2bdf4..856bf2bdf4 100644
--- 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
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
index 632e986e50..632e986e50 100644
--- 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
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
index b44ec4c4e2..b44ec4c4e2 100644
--- 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
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
index 89919c1d79..89919c1d79 100644
--- 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
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
index a2aeeea2dd..a2aeeea2dd 100644
--- 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
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
index 1aa0a17965..1aa0a17965 100644
--- 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
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
index d960766911..d960766911 100644
--- 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
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
index c2a29a01ca..c2a29a01ca 100644
--- 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
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
index 6bc76ed6e6..6bc76ed6e6 100644
--- 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
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
index e1eec5d9d9..e1eec5d9d9 100644
--- 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
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
index 47898dbd94..47898dbd94 100644
--- 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
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
index 54ead878b0..54ead878b0 100644
--- 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
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
index e045886c78..e045886c78 100644
--- 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
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
index 2c0557b65b..2c0557b65b 100644
--- 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
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
index 354cd08f22..354cd08f22 100644
--- 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
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
index 15af5a7ca4..15af5a7ca4 100644
--- 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
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
index 083e0c7f1e..083e0c7f1e 100644
--- 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
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
index abc576d690..abc576d690 100644
--- 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
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
index 239e142eda..239e142eda 100644
--- 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
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
index f929b3a969..f929b3a969 100644
--- 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
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
index fb358aa45f..fb358aa45f 100644
--- 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
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
index e8ab380b5d..e8ab380b5d 100644
--- 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
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
index ff15427b5c..ff15427b5c 100644
--- 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
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
index 229dbe520c..229dbe520c 100644
--- 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
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
index 05ae67aeee..05ae67aeee 100644
--- 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
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
index 0f3ea9a9f2..0f3ea9a9f2 100644
--- 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
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
index 4c87289455..4c87289455 100644
--- 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
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
index 2b4d34e3fe..2b4d34e3fe 100644
--- 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
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
index 126452f974..126452f974 100644
--- 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
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
index 847bb2089b..847bb2089b 100644
--- 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
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
index e5068090ab..e5068090ab 100644
--- 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
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
index 94156e72b4..94156e72b4 100644
--- 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
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
index 99b1a69c09..99b1a69c09 100644
--- 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
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
index e39c19190e..e39c19190e 100644
--- 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
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
index d56e04547f..d56e04547f 100644
--- 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
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
index 0b54645107..0b54645107 100644
--- 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
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
index aba98eb97f..aba98eb97f 100644
--- 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
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
index 164e29f673..164e29f673 100644
--- 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
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
index 5a72f9c71f..5a72f9c71f 100644
--- 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
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
index b1094778b5..b1094778b5 100644
--- 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
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
index 7682ab677e..7682ab677e 100644
--- 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
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
index fc2b566357..fc2b566357 100644
--- 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
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 c48d16db91..0000000000
--- 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 <jonathan@raspberrypi.org>
-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 <jonathan@raspberrypi.org>
----
- 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
index df8cc1a352..df8cc1a352 100644
--- 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
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 cb4fc3b708..0000000000
--- 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 <tim.gover@raspberrypi.org>
-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
index aaeeb944fc..aaeeb944fc 100644
--- 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
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
index 35fc072d8a..35fc072d8a 100644
--- 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
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
index a6d0d26b47..a6d0d26b47 100644
--- 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
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
index 30cb228964..30cb228964 100644
--- 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
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
index 1d723db61d..1d723db61d 100644
--- 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
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
index 57f8e508c6..57f8e508c6 100644
--- 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
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
index 3286cd0fbd..3286cd0fbd 100644
--- 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
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
index 654ef432f3..654ef432f3 100644
--- 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
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
index 3c15cc1915..3c15cc1915 100644
--- 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
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
index 55408a0042..55408a0042 100644
--- 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
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
index 1192b166d4..1192b166d4 100644
--- 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
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
index 9c902c64d3..9c902c64d3 100644
--- 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
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
index 6a3a6b142d..6a3a6b142d 100644
--- 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
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
index 32eba1c885..32eba1c885 100644
--- 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
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
index 7eb5a95f68..7eb5a95f68 100644
--- 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
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
index 4fb6f66625..4fb6f66625 100644
--- 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
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
index ad729c54aa..ad729c54aa 100644
--- 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
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
index f3e2851087..f3e2851087 100644
--- 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
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
index c81e7fc919..c81e7fc919 100644
--- 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
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
index 06f8cf4148..06f8cf4148 100644
--- 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
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
index 3e6273afd3..3e6273afd3 100644
--- 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
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
index 0391767e48..0391767e48 100644
--- 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
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
index 08c0995138..08c0995138 100644
--- 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
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
index 1c349449c5..1c349449c5 100644
--- 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
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
index 236caaf32f..236caaf32f 100644
--- 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
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
index c9ce67fba5..c9ce67fba5 100644
--- 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
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
index c3f48ecbde..c3f48ecbde 100644
--- 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
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
index 4b6cb39850..4b6cb39850 100644
--- 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
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
index ca1b777b4b..ca1b777b4b 100644
--- 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
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
index af29bdab81..af29bdab81 100644
--- 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
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
index f2c97479ae..f2c97479ae 100644
--- 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
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
index db83c12f59..db83c12f59 100644
--- 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
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
index ca70b9ddbf..ca70b9ddbf 100644
--- 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
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
index 490466d7da..490466d7da 100644
--- 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
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
index 6db0729839..6db0729839 100644
--- 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
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
index b4c2c3b5e2..b4c2c3b5e2 100644
--- 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
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
index db3f195c45..db3f195c45 100644
--- 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
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
index 59f6f797c8..59f6f797c8 100644
--- 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
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
index b45df39e4f..b45df39e4f 100644
--- 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
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
index 1a27777ac7..1a27777ac7 100644
--- 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
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
index 346d32e2d6..346d32e2d6 100644
--- 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
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
index 29db708769..29db708769 100644
--- 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
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
index 69320e89fd..69320e89fd 100644
--- 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
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
index 4299928ab3..4299928ab3 100644
--- 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
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
index 7f917bdd45..7f917bdd45 100644
--- 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
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
index 83e1845ff9..83e1845ff9 100644
--- 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
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
index 86c86afb75..86c86afb75 100644
--- 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
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
index 105309b439..105309b439 100644
--- 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
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
index c4d303a57d..c4d303a57d 100644
--- 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
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
index 53a936e993..53a936e993 100644
--- 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
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
index 500ec5f0bc..500ec5f0bc 100644
--- 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
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
index ee3d1de7d2..ee3d1de7d2 100644
--- 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
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
index 320552e6c8..320552e6c8 100644
--- 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
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
index 5e5c6bc2de..5e5c6bc2de 100644
--- 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
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
index 883d947c22..883d947c22 100644
--- 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
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
index e3ee39abba..e3ee39abba 100644
--- 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
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
index 16980a8ba3..16980a8ba3 100644
--- 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
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
index d1d8f72a0a..d1d8f72a0a 100644
--- 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
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
index 27de73d301..27de73d301 100644
--- 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
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
index 26930baadd..26930baadd 100644
--- 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
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
index a38cc6537e..a38cc6537e 100644
--- 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
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
index 892914befa..892914befa 100644
--- 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
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 3a9fa5e715..0000000000
--- 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 <wahrenst@gmx.net>
-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 <wahrenst@gmx.net>
----
- 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
index 29f3cdb32a..29f3cdb32a 100644
--- 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
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
index 4fda05ef6d..4fda05ef6d 100644
--- 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
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
index 7ca14c805e..7ca14c805e 100644
--- 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
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
index 20d08ba26c..20d08ba26c 100644
--- 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
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
index f8d988067d..f8d988067d 100644
--- 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
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
index 74cb946313..74cb946313 100644
--- 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
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
index 6d3da8da8d..6d3da8da8d 100644
--- 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
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
index eec00db56a..eec00db56a 100644
--- 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
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
index 3e3d0704d6..3e3d0704d6 100644
--- 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
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
index 99c4e4df3f..99c4e4df3f 100644
--- 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
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
index d66b9716a1..d66b9716a1 100644
--- 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
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
index 59263196c8..59263196c8 100644
--- 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
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
index dd5b284ccd..dd5b284ccd 100644
--- 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
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
index a72f1420df..a72f1420df 100644
--- 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
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
index 34772d59b1..34772d59b1 100644
--- 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
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
index 75999d02a6..75999d02a6 100644
--- 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
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
index 808fdaf0ca..808fdaf0ca 100644
--- 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
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
index b95a4db6d3..b95a4db6d3 100644
--- 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
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
index 1099608c75..1099608c75 100644
--- 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
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
index 875d8917c2..875d8917c2 100644
--- 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
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
index 0fa4cf338d..0fa4cf338d 100644
--- 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
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
index 220cd5e092..220cd5e092 100644
--- 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
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
index 30dcaf4000..30dcaf4000 100644
--- 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
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
index 51db874675..51db874675 100644
--- 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
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
index 2f33f638c2..2f33f638c2 100644
--- 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
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
index 6c0a304f1c..6c0a304f1c 100644
--- 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
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
index 07c6157ca5..07c6157ca5 100644
--- 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
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
index 9d7a94159e..9d7a94159e 100644
--- 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
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
index 3d3b74efc2..3d3b74efc2 100644
--- 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
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
index 63b8e8bdb3..63b8e8bdb3 100644
--- 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
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
index 1eed4f7277..1eed4f7277 100644
--- 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
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
index ad3732d484..ad3732d484 100644
--- 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
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
index 222de5bafb..222de5bafb 100644
--- 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
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
index 765874ef29..765874ef29 100644
--- 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
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
index 38bff7a7f6..38bff7a7f6 100644
--- 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
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 0ad70eb1e0..0000000000
--- 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 <popcornmix@gmail.com>
-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
index e8896c09a0..e8896c09a0 100644
--- 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
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
index 6c61023cad..6c61023cad 100644
--- 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
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
index 8f3e72c447..8f3e72c447 100644
--- 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
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
index 52f999ec14..52f999ec14 100644
--- 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
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
index 755ca34440..755ca34440 100644
--- 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
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
index 51dd1d7661..51dd1d7661 100644
--- 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
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
index 669306d15b..669306d15b 100644
--- 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
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
index b363e753ea..b363e753ea 100644
--- 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
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
index 4a468f0291..4a468f0291 100644
--- 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
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
index 9a6d15506e..9a6d15506e 100644
--- 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
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
index 8d40afb444..8d40afb444 100644
--- 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
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
index 3e413c7d00..3e413c7d00 100644
--- 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
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
index 280cddf9f2..280cddf9f2 100644
--- 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
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
index c82ac8d61d..c82ac8d61d 100644
--- 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
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
index 7bddfdc6aa..7bddfdc6aa 100644
--- 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
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
index 0b3e8ec079..0b3e8ec079 100644
--- 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
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
index 5b2c17bed7..5b2c17bed7 100644
--- 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
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
index 5dee4cb1d1..5dee4cb1d1 100644
--- 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
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
index 41261cd0d1..41261cd0d1 100644
--- 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
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
index 00d0252deb..00d0252deb 100644
--- 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
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
index 9f5b9e14a0..9f5b9e14a0 100644
--- 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
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
index 667e104b47..667e104b47 100644
--- 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
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
index 8cc04b78d9..8cc04b78d9 100644
--- 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
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
index 85b56a3511..85b56a3511 100644
--- 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
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
index 1b242f46e3..1b242f46e3 100644
--- 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
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
index a50be7a986..a50be7a986 100644
--- 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
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
index 906caba71e..906caba71e 100644
--- 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
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
index 12f1606db0..12f1606db0 100644
--- 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
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
index bd13a32d2f..bd13a32d2f 100644
--- 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
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 8161bb2659..0000000000
--- 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 <dave.stevenson@raspberrypi.org>
-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 <dave.stevenson@raspberrypi.org>
----
- .../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
index 553c16c9dd..553c16c9dd 100644
--- 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
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
index 427053d2dc..427053d2dc 100644
--- 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
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
index fca281014e..fca281014e 100644
--- 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
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
index 2d38456ae6..2d38456ae6 100644
--- 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
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
index a70d50eecd..a70d50eecd 100644
--- 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
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
index 6cec8140f0..6cec8140f0 100644
--- 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
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
index 2626658d16..2626658d16 100644
--- 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
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
index 92ecf120ba..92ecf120ba 100644
--- 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
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
index 34dd24208c..34dd24208c 100644
--- 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
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
index 8c00945122..8c00945122 100644
--- 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
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
index 26da5d94f2..26da5d94f2 100644
--- 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
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
index 16b84bc037..16b84bc037 100644
--- 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
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
index 24c25d6944..24c25d6944 100644
--- 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
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
index aee684a955..aee684a955 100644
--- 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
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
index f9ba856c44..f9ba856c44 100644
--- 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
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
index 7c6f415402..7c6f415402 100644
--- 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
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
index f8de9b5fc3..f8de9b5fc3 100644
--- 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
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
index 9f509437d8..9f509437d8 100644
--- 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
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
index b1b554ed52..b1b554ed52 100644
--- 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
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
index c9e095f6e5..c9e095f6e5 100644
--- 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
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
index 4cb0a543c0..4cb0a543c0 100644
--- 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
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
index ce590c9645..ce590c9645 100644
--- 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
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
index cd19bc2573..cd19bc2573 100644
--- 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
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
index f7243f34b1..f7243f34b1 100644
--- 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
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
index 7594d16a41..7594d16a41 100644
--- 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
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
index 5ec631f7fd..5ec631f7fd 100644
--- 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
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
index e88bfc6be8..e88bfc6be8 100644
--- 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
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
index e12cac2c85..e12cac2c85 100644
--- 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
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
index f74fc4b730..f74fc4b730 100644
--- 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
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
index 96f3351c04..96f3351c04 100644
--- 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
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
index 8a97747e17..8a97747e17 100644
--- 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
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
index beeeb2f9f1..beeeb2f9f1 100644
--- 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
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
index bffed9e856..bffed9e856 100644
--- 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
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
index b1be6322f1..b1be6322f1 100644
--- 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
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
index 3ead02cbbf..3ead02cbbf 100644
--- 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
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
index 9820c91d60..9820c91d60 100644
--- 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
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
index 6197d9076a..6197d9076a 100644
--- 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
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
index c9e779878b..c9e779878b 100644
--- 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
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
index daae20c0d5..daae20c0d5 100644
--- 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
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
index 0949f97f62..0949f97f62 100644
--- 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
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
index fbfef019b0..fbfef019b0 100644
--- 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
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
index c69a8ca16e..c69a8ca16e 100644
--- 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
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
index e09e57b6c4..e09e57b6c4 100644
--- 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
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
index d148696640..d148696640 100644
--- 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
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
index af453ec307..af453ec307 100644
--- 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
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
index aabb005703..aabb005703 100644
--- 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
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
index 3bdbb0b3aa..3bdbb0b3aa 100644
--- 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
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
index 516e2a5147..516e2a5147 100644
--- 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
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
index cd33961de1..cd33961de1 100644
--- 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
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
index 5e29b47e57..5e29b47e57 100644
--- 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
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
index 30fa9b3081..30fa9b3081 100644
--- 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
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
index 70b9d54c4e..70b9d54c4e 100644
--- 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
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
index 9be42a6a24..9be42a6a24 100644
--- 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
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
index 116d16899c..116d16899c 100644
--- 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
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
index 05ea839e00..05ea839e00 100644
--- 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
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
index 4afdf8c698..4afdf8c698 100644
--- 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
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
index 083e75b21f..083e75b21f 100644
--- 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
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
index a42fa7dfe1..a42fa7dfe1 100644
--- 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
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
index 1e9d4b445f..1e9d4b445f 100644
--- 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
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
index e84721258d..e84721258d 100644
--- 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
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
index 87b4e9b58a..87b4e9b58a 100644
--- 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
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
index 0a14126fbd..0a14126fbd 100644
--- 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
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
index 09dbf4a021..09dbf4a021 100644
--- 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
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
index e6376d7f68..e6376d7f68 100644
--- 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
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
index aca98372a2..aca98372a2 100644
--- 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
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
index a1e4149771..a1e4149771 100644
--- 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
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
index 978a656100..978a656100 100644
--- 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
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
index 203804df6f..203804df6f 100644
--- 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
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
index 0ff97759d9..0ff97759d9 100644
--- 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
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
index 3004f89c9a..3004f89c9a 100644
--- 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
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
index 36c5d1c23a..36c5d1c23a 100644
--- 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
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
index e0ffaae209..e0ffaae209 100644
--- 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
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
index e8e63a2798..e8e63a2798 100644
--- 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
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
index b47c8190fc..b47c8190fc 100644
--- 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
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
index 1f690a2582..1f690a2582 100644
--- 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
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 0000000000..ff7c346f5f
--- /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 <itoral@igalia.com>
+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 <itoral@igalia.com>
+---
+ 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 0000000000..76279ec813
--- /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 <tiwai@suse.de>
+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 <tiwai@suse.de>
+---
+ 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 0000000000..adb14fb710
--- /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 <mbrown@fensystems.co.uk>
+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 <mbrown@fensystems.co.uk>
+---
+ 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 0000000000..b593d7fb0c
--- /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 <wahrenst@gmx.net>
+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 <stefan.wahren@i2se.com>
+Tested-by: Peter Robinson <pbrobinson@gmail.com>
+Reviewed-by: Eric Anholt <eric@anholt.net>
+---
+ 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 <dt-bindings/power/raspberrypi-power.h>
+
+ / {
+- 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 0000000000..3a424b3a67
--- /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 <wahrenst@gmx.net>
+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 <wahrenst@gmx.net>
+---
+ 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 0000000000..27cd2aff50
--- /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 <lukas@wunner.de>
+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 <nsaenzjulienne@suse.de>
+Signed-off-by: Lukas Wunner <lukas@wunner.de>
+Reviewed-by: Eric Anholt <eric@anholt.net>
+Reviewed-by: Martin Sperl <kernel@martin.sperl.org>
+Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
+Cc: Martin Sperl <kernel@martin.sperl.org>
+Cc: Noralf Trønnes <noralf@tronnes.org>
+---
+ 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 0000000000..6986ae9289
--- /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 <stefan.wahren@i2se.com>
+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 <stefan.wahren@i2se.com>
+Reviewed-by: Eric Anholt <eric@anholt.net>
+---
+ 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 0000000000..184d397ed9
--- /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 <wahrenst@gmx.net>
+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 <wahrenst@gmx.net>
+---
+ 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 0000000000..7ad61b65fb
--- /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 <wahrenst@gmx.net>
+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 <wahrenst@gmx.net>
+Acked-by: Eric Anholt <eric@anholt.net>
+---
+ 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 0000000000..06dd01329f
--- /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 <wahrenst@gmx.net>
+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 <phil@raspberrypi.org>
+Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
+---
+ 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 0000000000..764169fc62
--- /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 <wahrenst@gmx.net>
+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 <wahrenst@gmx.net>
+---
+ 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 0000000000..82e126e8ff
--- /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 <wahrenst@gmx.net>
+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 <wahrenst@gmx.net>
+Reviewed-by: Eric Anholt <eric@anholt.net>
+---
+ 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 0000000000..52f716e74d
--- /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 <wahrenst@gmx.net>
+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 <f.fainelli@gmail.com>
+Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
+Reviewed-by: Matthias Brugger <mbrugger@suse.com>
+Acked-by: Eric Anholt <eric@anholt.net>
+Reviewed-by: Eric Anholt <eric@anholt.net>
+---
+ 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 <linux/debugfs.h>
+ #include <linux/delay.h>
+ #include <linux/module.h>
+-#include <linux/of.h>
++#include <linux/of_device.h>
+ #include <linux/platform_device.h>
+ #include <linux/slab.h>
+ #include <dt-bindings/clock/bcm2835.h>
+@@ -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 0000000000..8d4b7c9e0b
--- /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 <wahrenst@gmx.net>
+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 <wahrenst@gmx.net>
+Reviewed-by: Matthias Brugger <mbrugger@suse.com>
+Acked-by: Eric Anholt <eric@anholt.net>
+Reviewed-by: Eric Anholt <eric@anholt.net>
+---
+ 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 = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
+- 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 0000000000..eac69b44ac
--- /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 <wahrenst@gmx.net>
+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 <wahrenst@gmx.net>
+---
+ 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 0000000000..e45c65724a
--- /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 <stefan.wahren@i2se.com>
+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 <simon@arlott.org>
+Cc: Stephen Warren <swarren@wwwdotorg.org>
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+Reviewed-by: Eric Anholt <eric@anholt.net>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+---
+ 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 <linux/bitmap.h>
+--- 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 <stefan.wahren@i2se.com>
+- *
+- * 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 0000000000..d1ffc9b877
--- /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 <stefan.wahren@i2se.com>
+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 <stefan.wahren@i2se.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+---
+ 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 0000000000..e3d23010b9
--- /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 <stefan.wahren@i2se.com>
+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 <stefan.wahren@i2se.com>
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+---
+ 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 0000000000..e06247753d
--- /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 <wahrenst@gmx.net>
+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 <wahrenst@gmx.net>
+Acked-by: Eric Anholt <eric@anholt.net>
+---
+ 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 0000000000..fa3c3a6339
--- /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 <james.hughes@raspberrypi.org>
+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 <james.hughes@raspberrypi.org>
+---
+ .../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 <linux/of.h>
+
+ #include "bcm2835.h"
++#include <soc/bcm2835/raspberrypi-firmware.h>
+
+-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 0000000000..aefa3b856b
--- /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 <bos@je-eigen-domein.nl>
+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 0000000000..d928458b78
--- /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 <phil@raspberrypi.org>
+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 <phil@raspberrypi.org>
+---
+ 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 0000000000..f11066f622
--- /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 <mbrugger@suse.com>
+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 <mbrugger@suse.com>
+---
+ 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 0000000000..14f086c5c8
--- /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 <phil@raspberrypi.org>
+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 <phil@raspberrypi.org>
+---
+ 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 0000000000..f7fe151a2d
--- /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 <dave.stevenson@raspberrypi.org>
+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 <dave.stevenson@raspberrypi.org>
+---
+ .../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 0000000000..3a638710f7
--- /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 <dave.stevenson@raspberrypi.org>
+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 <dave.stevenson@raspberrypi.org>
+---
+ .../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 0000000000..199c4961e8
--- /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 <dave.stevenson@raspberrypi.org>
+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 <dave.stevenson@raspberrypi.org>
+---
+ .../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 0000000000..61a817ab6b
--- /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 <dave.stevenson@raspberrypi.org>
+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 <dave.stevenson@raspberrypi.org>
+---
+ .../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 0000000000..76129fec22
--- /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 <dave.stevenson@raspberrypi.org>
+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 <dave.stevenson@raspberrypi.org>
+---
+ 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 0000000000..8c8bb69e77
--- /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 <boris.brezillon@bootlin.com>
+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 <boris.brezillon@bootlin.com>
+Reviewed-by: Eric Anholt <eric@anholt.net>
+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 0000000000..4c9cb7699e
--- /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 <dave.stevenson@raspberrypi.org>
+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 <dave.stevenson@raspberrypi.org>
+---
+ 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 0000000000..d08b7f00c7
--- /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 <dave.stevenson@raspberrypi.org>
+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 <dave.stevenson@raspberrypi.org>
+---
+ 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 0000000000..2641a5b0b1
--- /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 <phil@raspberrypi.org>
+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 <phil@raspberrypi.org>
+---
+ 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,<param>=<val>
++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,<param>=<val>
+--- /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 = <&eth1_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 = <&eth1>, "interrupts:0",
++ <&eth1_pins>, "brcm,pins:0";
++ speed = <&eth1>, "spi-max-frequency:0";
++ cs = <&eth1>, "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 0000000000..cb9a82b127
--- /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 <dave.stevenson@raspberrypi.org>
+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 <dave.stevenson@raspberrypi.org>
+---
+ 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 0000000000..3c881a1bfc
--- /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 <dave.stevenson@raspberrypi.org>
+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 <dave.stevenson@raspberrypi.org>
+---
+ .../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 0000000000..4291f9fee5
--- /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 <markus.proeller@pieye.org>
+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 <markus.proeller@pieye.org>
+---
+ .../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 0000000000..9b882fc8f8
--- /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 <markus.proeller@pieye.org>
+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 <markus.proeller@pieye.org>
+---
+ 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 <roliveir@synopsys.com>
++ *
++ * 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 <linux/clk.h>
++#include <linux/delay.h>
++#include <linux/gpio/consumer.h>
++#include <linux/i2c.h>
++#include <linux/init.h>
++#include <linux/io.h>
++#include <linux/module.h>
++#include <linux/of_graph.h>
++#include <linux/slab.h>
++#include <linux/videodev2.h>
++#include <linux/firmware.h>
++#include <media/v4l2-device.h>
++#include <media/v4l2-fwnode.h>
++#include <media/v4l2-image-sizes.h>
++#include <media/v4l2-mediabus.h>
++#include <media/v4l2-ctrls.h>
++
++#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 <markus.proeller@pieye.org>");
++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 <roliveir@synopsys.com>
++ *
++ * 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 <linux/v4l2-controls.h>
++#include <linux/types.h>
++
++#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 0000000000..1202d10d31
--- /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 <markus.proeller@pieye.org>
+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 <markus.proeller@pieye.org>
+---
+ 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,<param>=<val>
++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 0000000000..952e26664c
--- /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 <phil@raspberrypi.org>
+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 <phil@raspberrypi.org>
+---
+ 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 0000000000..83cd3397e9
--- /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 <phil@raspberrypi.org>
+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 <phil@raspberrypi.org>
+---
+ 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 = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
++ 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 0000000000..9c9a0bf6bb
--- /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 <dave.stevenson@raspberrypi.org>
+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 <dave.stevenson@raspberrypi.org>
+---
+ .../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 0000000000..1049a4d12d
--- /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 <dave.stevenson@raspberrypi.org>
+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 <dave.stevenson@raspberrypi.org>
+---
+ .../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 0000000000..896149fb1e
--- /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 <dave.stevenson@raspberrypi.org>
+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 <dave.stevenson@raspberrypi.org>
+---
+ .../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 0000000000..20550d4cb1
--- /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 <dave.stevenson@raspberrypi.org>
+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 <dave.stevenson@raspberrypi.org>
+---
+ .../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 0000000000..fbfcd747cd
--- /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 <james.hughes@raspberrypi.org>
+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 <james.hughes@raspberrypi.org>
+---
+ 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 0000000000..bf5975edef
--- /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 <serge@raspberrypi.org>
+Date: Thu, 31 Oct 2019 13:37:16 +0000
+Subject: [PATCH] rpi-poe-fan: fix def_pwm1 writes
+
+Signed-off-by: Serge Schneider <serge@raspberrypi.org>
+---
+ 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 0000000000..9a5e29c208
--- /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 <olteanv@gmail.com>
+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 <olteanv@gmail.com>
+Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ 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 0000000000..1b922420c0
--- /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 <james.hughes@raspberrypi.org>
+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 <james.hughes@raspberrypi.org>
+---
+ 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 0000000000..6b388e0579
--- /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 <texier.pj2@gmail.com>
+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 <pjtexier@koncepto.io>
+---
+ 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 0000000000..b00afccd00
--- /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 <james.hughes@raspberrypi.org>
+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 0000000000..099c44497b
--- /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 <pelwell@users.noreply.github.com>
+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 0000000000..0848a23c88
--- /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 <m.kaplan@evva.com>
+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 <m.kaplan@evva.com>
+---
+ 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,<param>=<val>
++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 0000000000..e80205bd04
--- /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 <pbrobinson@gmail.com>
+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 <pbrobinson@gmail.com>
+---
+ 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 0000000000..a0939d77a0
--- /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 <popcornmix@gmail.com>
+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 <popcornmix@gmail.com>
+---
+ 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 0000000000..292773ffe9
--- /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 <popcornmix@gmail.com>
+Date: Fri, 23 Aug 2019 16:34:38 +0100
+Subject: [PATCH] v3d_drv: Handle missing clock more gracefully
+
+Signed-off-by: popcornmix <popcornmix@gmail.com>
+---
+ 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 0000000000..45c0594c53
--- /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 <viresh.kumar@linaro.org>
+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 <stable@vger.kernel.org> # v4.20
+Reported-by: Valentin Schneider <valentin.schneider@arm.com>
+Fixes: 2a4eb7358aba "OPP: Don't remove dynamic OPPs from _dev_pm_opp_remove_table()"
+Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
+Tested-by: Valentin Schneider <valentin.schneider@arm.com>
+Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+---
+ 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 0000000000..53428fcbda
--- /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 <nsaenzjulienne@suse.de>
+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 <nsaenzjulienne@suse.de>
+Acked-by: Eric Anholt <eric@anholt.net>
+Signed-off-by: Stephen Boyd <sboyd@kernel.org>
+---
+ 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 <nsaenzjulienne@suse.de>
++ */
++
++#include <linux/clkdev.h>
++#include <linux/clk-provider.h>
++#include <linux/io.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++
++#include <soc/bcm2835/raspberrypi-firmware.h>
++
++#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 <nsaenzjulienne@suse.de>");
++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 0000000000..7785caf129
--- /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 <nsaenzjulienne@suse.de>
+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 <nsaenzjulienne@suse.de>
+Acked-by: Eric Anholt <eric@anholt.net>
+Reviewed-by: Stephen Boyd <sboyd@kernel.org>
+Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
+Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
+---
+ 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 <nsaenzjulienne@suse.de>
++ */
++
++#include <linux/clk.h>
++#include <linux/cpu.h>
++#include <linux/cpufreq.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/pm_opp.h>
++
++#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 <nsaenzjulienne@suse.de");
++MODULE_DESCRIPTION("Raspberry Pi cpufreq driver");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS("platform:raspberrypi-cpufreq");
diff --git a/target/linux/brcm2708/patches-4.19/950-0762-firmware-raspberrypi-register-clk-device.patch b/target/linux/brcm2708/patches-4.19/950-0762-firmware-raspberrypi-register-clk-device.patch
new file mode 100644
index 0000000000..2886ab18a3
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0762-firmware-raspberrypi-register-clk-device.patch
@@ -0,0 +1,57 @@
+From e7f2fcf4bf0b0a227f564fcdde46f3bdd326c1b2 Mon Sep 17 00:00:00 2001
+From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
+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 <nsaenzjulienne@suse.de>
+Acked-by: Eric Anholt <eric@anholt.net>
+Signed-off-by: Stephen Boyd <sboyd@kernel.org>
+---
+ 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 0000000000..be4d83485f
--- /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 <nsaenzjulienne@suse.de>
+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 <nsaenzjulienne@suse.de>
+Acked-by: Eric Anholt <eric@anholt.net>
+Signed-off-by: Stephen Boyd <sboyd@kernel.org>
+---
+ 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 0000000000..af9dde3362
--- /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 <nsaenzjulienne@suse.de>
+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 <nsaenzjulienne@suse.de>
+Acked-by: Eric Anholt <eric@anholt.net>
+Signed-off-by: Stephen Boyd <sboyd@kernel.org>
+---
+ 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 0000000000..b5ce5bd4ac
--- /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 <popcornmix@gmail.com>
+Date: Mon, 9 Sep 2019 23:50:44 +0100
+Subject: [PATCH] v3d_drv: Allow clock retrieval by name
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ 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 0000000000..f10e2465f4
--- /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 <popcornmix@gmail.com>
+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 <popcornmix@gmail.com>
+---
+ 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 0000000000..419902ae9c
--- /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 <popcornmix@gmail.com>
+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 <popcornmix@gmail.com>
+---
+ 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 0000000000..c145f2faa6
--- /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 <popcornmix@gmail.com>
+Date: Wed, 21 Aug 2019 14:55:56 +0100
+Subject: [PATCH] clk-raspberrypi: Also support v3d clock
+
+Signed-off-by: popcornmix <popcornmix@gmail.com>
+---
+ 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 <linux/io.h>
+ #include <linux/module.h>
+ #include <linux/platform_device.h>
+-
++#include <dt-bindings/clock/bcm2835.h>
+ #include <soc/bcm2835/raspberrypi-firmware.h>
+
+ #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, &divider->min_rate, &divider->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, &divider->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 0000000000..34de4de8aa
--- /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 <popcornmix@gmail.com>
+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 <popcornmix@gmail.com>
+---
+ 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 0000000000..64efff7754
--- /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 <popcornmix@gmail.com>
+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 0000000000..a15f41f45a
--- /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 <popcornmix@gmail.com>
+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 0000000000..04406c8026
--- /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 <popcornmix@gmail.com>
+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 <linux/clk.h>
+ #include <linux/cpu.h>
+ #include <linux/cpufreq.h>
++#include <linux/math64.h>
+ #include <linux/module.h>
+ #include <linux/platform_device.h>
+ #include <linux/pm_opp.h>
+@@ -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 0000000000..0239b19ff2
--- /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 <popcornmix@gmail.com>
+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 0000000000..4f2e46b71a
--- /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 <phil@raspberrypi.org>
+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 <phil@raspberrypi.org>
+---
+ 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 0000000000..313aa8c3ae
--- /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 <phil@raspberrypi.org>
+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 <phil@raspberrypi.org>
+---
+ 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 0000000000..1f86f9d7fa
--- /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 <phil@raspberrypi.org>
+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 <phil@raspberrypi.org>
+---
+ 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 0000000000..70959de2bc
--- /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 <phil@raspberrypi.org>
+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 <phil@raspberrypi.org>
+---
+ 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
index 2adc642492..afc94da40b 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 <eric@anholt.net>
-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 <eric@anholt.net>
+Link: https://patchwork.freedesktop.org/patch/msgid/20190401183559.3823-2-eric@anholt.net
+Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
---
- 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 <eric@anholt.net>
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 <eric@anholt.net>
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 <eric@anholt.net>
+ 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 <eric@anholt.net>
+ 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 <eric@anholt.net>
+ 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 <eric@anholt.net>
+ 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 <eric@anholt.net>
+ 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 0000000000..dcfbb9dd1a
--- /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 <johannes@krude.de>
+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 <johannes@krude.de>
+---
+ 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 0000000000..c8b4820c93
--- /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 <johannes@krude.de>
+Date: Sat, 16 Nov 2019 13:14:43 +0100
+Subject: [PATCH] Allow simultaneous use of JustBoom DAC and Digi
+
+Signed-off-by: Johannes Krude <johannes@krude.de>
+---
+ 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<n>-<m> Enables
+ on SPI<n>, CS#<m>.
+
+
++Name: justboom-both
++Info: Simultaneous usage of an justboom-dac and justboom-digi based
++ card
++Load: dtoverlay=justboom-both,<param>=<val>
++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 <johannes@krude.de
++ *
++ * Driver for when connecting simultaneously justboom-digi and justboom-dac
++ *
++ * Based upon code from:
++ * justboom-digi.c
++ * by Milan Neskovic <info@justboom.co>
++ * justboom-dac.c
++ * by Milan Neskovic <info@justboom.co>
++ *
++ * 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 <linux/module.h>
++#include <linux/platform_device.h>
++
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++#include <sound/jack.h>
++
++#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 <johannes@krude.de>");
++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 0000000000..8a28f73029
--- /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 <hui.wang@canonical.com>
+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 <hui.wang@canonical.com>
+---
+ 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 0000000000..900cbb2ca8
--- /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 <phil@raspberrypi.org>
+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 <phil@raspberrypi.org>
+---
+ .../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 0000000000..5eed1baff8
--- /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 <phil@raspberrypi.org>
+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 <phil@raspberrypi.org>
+---
+ 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 0000000000..af040962f2
--- /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 <phil@raspberrypi.org>
+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 <phil@raspberrypi.org>
+---
+ 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",