aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2019-12-23 17:25:19 +0100
committerÁlvaro Fernández Rojas <noltari@gmail.com>2019-12-24 18:49:49 +0100
commitc2308a7e4adbb2acc8ff149f91d1ca46801c135e (patch)
treeffc720dc7c05c331d6569fc3c2f0772fb375e419
parent67dcc43f3a22dc3a7ac07a7065971b426feeb043 (diff)
downloadupstream-c2308a7e4adbb2acc8ff149f91d1ca46801c135e.tar.gz
upstream-c2308a7e4adbb2acc8ff149f91d1ca46801c135e.tar.bz2
upstream-c2308a7e4adbb2acc8ff149f91d1ca46801c135e.zip
brcm2708: update to latest patches from RPi Foundation
Also removes reverted patches. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
-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 3c7d005fba6..9d4671de8d0 100644
--- a/target/linux/brcm2708/bcm2711/config-4.19
+++ b/target/linux/brcm2708/bcm2711/config-4.19
@@ -102,13 +102,14 @@ CONFIG_ARM_AMBA=y
CONFIG_ARM_ARCH_TIMER=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
-CONFIG_ARM_BCM2835_CPUFREQ=y
+# CONFIG_ARM_BCM2835_CPUFREQ is not set
CONFIG_ARM_GIC=y
CONFIG_ARM_GIC_V2M=y
CONFIG_ARM_GIC_V3=y
CONFIG_ARM_GIC_V3_ITS=y
CONFIG_ARM_GIC_V3_ITS_PCI=y
CONFIG_ARM_PSCI_FW=y
+CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
# CONFIG_ARM_SCMI_PROTOCOL is not set
# CONFIG_ARM_SP805_WATCHDOG is not set
CONFIG_ARM_TIMER_SP804=y
@@ -148,6 +149,7 @@ CONFIG_CAVIUM_ERRATUM_23154=y
CONFIG_CAVIUM_ERRATUM_27456=y
CONFIG_CLKDEV_LOOKUP=y
CONFIG_CLKSRC_MMIO=y
+CONFIG_CLK_RASPBERRYPI=y
CONFIG_CLONE_BACKWARDS=y
CONFIG_CMA=y
CONFIG_CMA_ALIGNMENT=8
@@ -163,7 +165,8 @@ CONFIG_COMMON_CLK=y
CONFIG_COMMON_CLK_XGENE=y
CONFIG_CONFIGFS_FS=y
CONFIG_CONSOLE_TRANSLATIONS=y
-# CONFIG_CPUFREQ_DT is not set
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPUFREQ_DT_PLATDEV=y
# CONFIG_CPU_BIG_ENDIAN is not set
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
@@ -253,6 +256,7 @@ CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
CONFIG_GENERIC_CSUM=y
CONFIG_GENERIC_EARLY_IOREMAP=y
CONFIG_GENERIC_IDLE_POLL_SETUP=y
@@ -461,6 +465,7 @@ CONFIG_PM_CLK=y
CONFIG_PM_GENERIC_DOMAINS=y
CONFIG_PM_GENERIC_DOMAINS_OF=y
CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_OPP=y
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
CONFIG_POWER_RESET=y
diff --git a/target/linux/brcm2708/patches-4.19/950-0011-spi-bcm2835-Support-pin-groups-other-than-7-11.patch b/target/linux/brcm2708/patches-4.19/950-0010-spi-bcm2835-Support-pin-groups-other-than-7-11.patch
index 0517999883c..0517999883c 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 91e27c36ccc..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0010-spidev-Add-spidev-compatible-string-to-silence-warni.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From e21d0b86f4a9c2c1f61e183e5dfcc1cf37058ca1 Mon Sep 17 00:00:00 2001
-From: Phil Elwell <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 30a65ff35e0..30a65ff35e0 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 41d6c8d3639..41d6c8d3639 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 05bc4a0f4dd..05bc4a0f4dd 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 1eca3a9265f..1eca3a9265f 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 a08cd13456f..a08cd13456f 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 ce3bf61911a..ce3bf61911a 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 dc83b7f8efe..dc83b7f8efe 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 e1f69501568..e1f69501568 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 6665d4d112e..6665d4d112e 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 30ab0504aeb..30ab0504aeb 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 6d5d7d4d8b4..6d5d7d4d8b4 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 e4a1d7f660a..e4a1d7f660a 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 63f1f9f74a3..63f1f9f74a3 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 2838360a000..2838360a000 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 2df0d37b8d9..2df0d37b8d9 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 fcb401c090c..fcb401c090c 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 7fd60247152..7fd60247152 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 d6372ec7cb0..d6372ec7cb0 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 76a53fea0d9..76a53fea0d9 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 9007aba3f0b..9007aba3f0b 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 0881053ab2a..0881053ab2a 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 847d8f51025..847d8f51025 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 1d6fdacfa80..1d6fdacfa80 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 87683510345..87683510345 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 30ac2a883ce..30ac2a883ce 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 d7514a55254..d7514a55254 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 26c08cd1a26..26c08cd1a26 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 a553d5a8543..a553d5a8543 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 346a575050a..346a575050a 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 f77b3fd8e0e..f77b3fd8e0e 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 17d6137728d..17d6137728d 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 46bcb45e011..46bcb45e011 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 b154d6ee75f..b154d6ee75f 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 b3b73b8073a..b3b73b8073a 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 17663b294f7..17663b294f7 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 1916ac6944a..1916ac6944a 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 6afffd2a16e..6afffd2a16e 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 a947f276548..a947f276548 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 c7cb1e6d867..c7cb1e6d867 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 8688431a11c..8688431a11c 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 b9cf14453c5..b9cf14453c5 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 cf26302f710..cf26302f710 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 e55c04ac2d9..e55c04ac2d9 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 2851cebfb29..2851cebfb29 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 e6bb9fa3880..e6bb9fa3880 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 72b9cfc1316..72b9cfc1316 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 b3839f6ad7d..b3839f6ad7d 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 16c15d59f2a..16c15d59f2a 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 409b2894164..409b2894164 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 6f7b31e4d0c..6f7b31e4d0c 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 430059cddf0..430059cddf0 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 02781569595..02781569595 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 a6d04a90b51..a6d04a90b51 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 e656c05a55a..e656c05a55a 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 6eab0b5944a..6eab0b5944a 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 eb21558df60..eb21558df60 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 a335e2dcba0..a335e2dcba0 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 edb17032009..edb17032009 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 0cfe2583b3e..0cfe2583b3e 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 68957f35dbb..68957f35dbb 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 b4a67473dc7..b4a67473dc7 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 1316727f467..1316727f467 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 de72049435a..de72049435a 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 fa1d3467027..fa1d3467027 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 0c7e218fc3d..0c7e218fc3d 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 9b0750f24b2..9b0750f24b2 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 5e9e34b73e8..5e9e34b73e8 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 363fd90df20..363fd90df20 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 046fe436bcd..046fe436bcd 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 4d5c4a747a6..4d5c4a747a6 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 36784e9b415..36784e9b415 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 a9605818c9e..a9605818c9e 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 d742e6d9881..d742e6d9881 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 ea2c91164fe..ea2c91164fe 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 db8af937b78..db8af937b78 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 9c4462c1b4e..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0085-ASoC-wm8804-MCLK-configuration-options-32-bit.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From f77d4bf8ea9217d57be6982a6fdfa9f5f9c9b927 Mon Sep 17 00:00:00 2001
-From: Daniel Matuschek <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 1ba0b774b46..1ba0b774b46 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 f3c06f4fffd..f3c06f4fffd 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 6259fdc1013..6259fdc1013 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 e3caf880ea6..e3caf880ea6 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 756fd3a5079..756fd3a5079 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 4e498566302..4e498566302 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 85b8edb15eb..85b8edb15eb 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 235a72fe25a..235a72fe25a 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 53506d1475c..53506d1475c 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 bd7a3a04e19..bd7a3a04e19 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 dad88e1728a..dad88e1728a 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 02de46bdc27..02de46bdc27 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 13f97962f91..13f97962f91 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 1709d4d959f..1709d4d959f 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 b0e4152fc47..b0e4152fc47 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 545be8004e8..545be8004e8 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 f08cbebc474..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0102-cgroup-Disable-cgroup-memory-by-default.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 7ae6ba03434344f90403936ae79bfd7ba005b49c Mon Sep 17 00:00:00 2001
-From: Phil Elwell <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 3e60981b89d..3e60981b89d 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 8f574a3226f..8f574a3226f 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 b4db1d7c605..b4db1d7c605 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 a61a137cb60..a61a137cb60 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 be69fe72c72..be69fe72c72 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 c916ebfa969..c916ebfa969 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 2a52b0f98a8..2a52b0f98a8 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 94a180f0611..94a180f0611 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 fbccc12e8fd..fbccc12e8fd 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 764edb66ff6..764edb66ff6 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 43b200db16e..43b200db16e 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 0b9398fda7f..0b9398fda7f 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 cf3b8765377..cf3b8765377 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 65fc0978a8c..65fc0978a8c 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 ed4e65f11c5..ed4e65f11c5 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 6103e82d884..6103e82d884 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 9c5e9138a53..9c5e9138a53 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 1b734b56acb..1b734b56acb 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 a1a9fa6c887..a1a9fa6c887 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 4851e066acc..4851e066acc 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 17867c330ae..17867c330ae 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 60e7294c058..60e7294c058 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 8e06168f060..8e06168f060 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 281f273e8d0..281f273e8d0 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 d3e91be8db8..d3e91be8db8 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 1e3944b859f..1e3944b859f 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 a1dfb00af7c..a1dfb00af7c 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 f7bc93fdb88..f7bc93fdb88 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 b3933064087..b3933064087 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 d67c9381ed7..d67c9381ed7 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 e6836b50665..e6836b50665 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 3fcd3d93446..3fcd3d93446 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 b4c4f5aab47..b4c4f5aab47 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 40a66525271..40a66525271 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 55cd26b25bc..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0135-bcm2835-interpolate-audio-delay.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 652b0ec2ab2d2e2af7bb4f7d62a4020a20720677 Mon Sep 17 00:00:00 2001
-From: wm4 <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 ea9846d099b..ea9846d099b 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 24803abb295..24803abb295 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 6f228817317..6f228817317 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 f48b8eab992..f48b8eab992 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 ef8e1eaaa8d..ef8e1eaaa8d 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 7e5286eaac8..7e5286eaac8 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 56d9d9aca1f..56d9d9aca1f 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 cd188a7170e..cd188a7170e 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 727624086a6..727624086a6 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 567052f0fb4..567052f0fb4 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 583b2c8b5dd..583b2c8b5dd 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 642bd2b39df..642bd2b39df 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 cedc79284bd..cedc79284bd 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 f2524903825..f2524903825 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 52bd49af5e2..52bd49af5e2 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 8e35113fdcf..8e35113fdcf 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 c8f375942ed..c8f375942ed 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 af447c17042..af447c17042 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 8547b4fdde2..8547b4fdde2 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 ae35e8b7db8..ae35e8b7db8 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 0ea76db5032..0ea76db5032 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 7a93d2fd23e..7a93d2fd23e 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 2c0493777b8..2c0493777b8 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 c6a9e355c5d..c6a9e355c5d 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 c7c4fa86dfc..c7c4fa86dfc 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 b9a4f52e5a6..b9a4f52e5a6 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 6e81c149d83..6e81c149d83 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 12e1289734b..12e1289734b 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 ca363a13441..ca363a13441 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 00e852d7f1c..00e852d7f1c 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 42dc7e1bc70..42dc7e1bc70 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 80a5d900d68..80a5d900d68 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 edbc12081dd..edbc12081dd 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 937ac1a65c9..937ac1a65c9 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 26d36ea43ce..26d36ea43ce 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 89d389c9c1d..89d389c9c1d 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 6cb1134b9df..6cb1134b9df 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 65108f97100..65108f97100 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 0dcd6771d08..0dcd6771d08 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 5f394a9bd1d..5f394a9bd1d 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 77fdd348d9c..77fdd348d9c 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 7c857c4631d..7c857c4631d 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 b48db8b0d18..b48db8b0d18 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 551a60ce9e5..551a60ce9e5 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 a78a9f3157b..a78a9f3157b 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 a5f0c76dd17..a5f0c76dd17 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 9348af83503..9348af83503 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 8a71d944ea7..8a71d944ea7 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 cc9af044e0c..cc9af044e0c 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 1a660d608b3..1a660d608b3 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 f73d9c96179..f73d9c96179 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 7edd25f9eb6..7edd25f9eb6 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 cb89142dff3..cb89142dff3 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 f7749ed5539..f7749ed5539 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 b55e89f4920..b55e89f4920 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 583b95bf896..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0190-Revert-ASoC-wm8804-MCLK-configuration-options-32-bit.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 7c62d38653565e900504f821586e1b1d47f25594 Mon Sep 17 00:00:00 2001
-From: Matthias Reichl <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 53d055893d3..53d055893d3 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 63f3911434b..63f3911434b 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 c67acaa50da..c67acaa50da 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 f9c1daa212c..f9c1daa212c 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 b0613d2ade9..b0613d2ade9 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 340f60dd88c..340f60dd88c 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 8faa68c19e4..8faa68c19e4 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 51c7732bebc..51c7732bebc 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 0c6e6279934..0c6e6279934 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 8d9848a7e65..8d9848a7e65 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 28ee4e7f44c..28ee4e7f44c 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 161949da18e..161949da18e 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 19c59f60778..19c59f60778 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 b32699d09fa..b32699d09fa 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 9cf02e9ab9b..9cf02e9ab9b 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 a5683668557..a5683668557 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 38409de0178..38409de0178 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 96236f36d51..96236f36d51 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 81328b2cdcb..087e3e50253 100644
--- a/target/linux/brcm2708/patches-4.19/950-0218-staging-vchiq_arm-Improve-error-handling-on-loading-.patch
+++ b/target/linux/brcm2708/patches-4.19/950-0209-staging-vchiq_arm-Improve-error-handling-on-loading-.patch
@@ -16,28 +16,22 @@ Signed-off-by: Dave Stevenson <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 9d2ae1bb3a5..9d2ae1bb3a5 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 12afc4a1f87..12afc4a1f87 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 793fc213962..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0211-staging-vchiq_arm-Register-a-platform-device-for-the.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 0ca486925a32b7c95752ff250afdd59bcf6c8574 Mon Sep 17 00:00:00 2001
-From: Stefan Wahren <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 3c6bfd4db2c..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0212-staging-bcm2835-audio-Enable-compile-test.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From d08cc93a489df7707afaaa693afd2e7a153c85a3 Mon Sep 17 00:00:00 2001
-From: Stefan Wahren <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 96116cb8d54..96116cb8d54 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 a9f077675c7..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0213-staging-bcm2835-audio-use-module_platform_driver-mac.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From f1aada1b4c974fa756e299c15b62c76e478e652e Mon Sep 17 00:00:00 2001
-From: Stefan Wahren <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 616cacefa20..616cacefa20 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 62b2c888751..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0214-staging-bcm2835-audio-Drop-DT-dependency.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From ba833c9b912d2ca6fe23d700c4bd6f61742d5e04 Mon Sep 17 00:00:00 2001
-From: Stefan Wahren <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 2041ebbd728..2041ebbd728 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 4788eebc68a..4788eebc68a 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 38bcbbd2d9a..38bcbbd2d9a 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 e6d58753411..e6d58753411 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 7797510096c..7797510096c 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 6aa8e93118d..6aa8e93118d 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 2780112b394..2780112b394 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 8d6b7a931ba..8d6b7a931ba 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 85c7f1ea3b5..85c7f1ea3b5 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 dbfa67cfe66..dbfa67cfe66 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 802ff8b33fc..802ff8b33fc 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 11e6f1fb1af..11e6f1fb1af 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 0feb2735660..0feb2735660 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 56d62f5d4f2..56d62f5d4f2 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 53fb95d7934..53fb95d7934 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 34bbe82a5de..34bbe82a5de 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 254664b0b7b..254664b0b7b 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 2d3b5408a50..2d3b5408a50 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 02723056cfd..02723056cfd 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 920249e6b4a..920249e6b4a 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 1cd23da2889..1cd23da2889 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 7e4100f96a8..7e4100f96a8 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 401b8bfa09b..401b8bfa09b 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 dd6554142dd..dd6554142dd 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 468f0369827..468f0369827 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 b79bdb8412b..b79bdb8412b 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 9688bc868a5..9688bc868a5 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 6c547436453..6c547436453 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 9e9af47a370..9e9af47a370 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 4f16e0bfda8..4f16e0bfda8 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 8c69f65cc23..8c69f65cc23 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 fbaa3c2d40e..fbaa3c2d40e 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 0a6552b7fd2..0a6552b7fd2 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 c9461eb59d1..51cc4a4632a 100644
--- a/target/linux/brcm2708/patches-4.19/950-0256-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch
+++ b/target/linux/brcm2708/patches-4.19/950-0247-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch
@@ -14,18 +14,18 @@ Signed-off-by: Dave Stevenson <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 d04e261b453..6bfa52dfe65 100644
--- a/target/linux/brcm2708/patches-4.19/950-0257-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch
+++ b/target/linux/brcm2708/patches-4.19/950-0248-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch
@@ -14,15 +14,15 @@ Signed-off-by: Dave Stevenson <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 9659b10956a..9659b10956a 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 7e86b09840e..7e86b09840e 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 16539aa305a..16539aa305a 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 e33553625d9..e33553625d9 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 02162129b48..02162129b48 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 40260a6573d..40260a6573d 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 40bfc014413..40bfc014413 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 a41e46b1e80..a41e46b1e80 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 84d8a89659c..84d8a89659c 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 96d2ad46990..96d2ad46990 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 09ff03e81bb..09ff03e81bb 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 8bc16911cad..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0259-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From cf6f8129b6af78116e00b1d781e0bcc8c4b73890 Mon Sep 17 00:00:00 2001
-From: John Sheu <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 37f1cb53fc6..37f1cb53fc6 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 761b6dcfcf3..761b6dcfcf3 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 1ab87d5a547..1ab87d5a547 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 aeaf8bf1a72..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0262-Revert-staging-vchiq_arm-Register-a-platform-device-.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From d679d6ff3fd138f55b8bbeaf7750c3c980944295 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <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 1e85d9f23c3..1e85d9f23c3 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 ea5d5d29499..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0263-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From 28e06d43dd44a45d307848bed588fc65d7c79d83 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <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 42a9f112e90..42a9f112e90 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 fd5f88ff03b..fd5f88ff03b 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 9cd839e045f..9cd839e045f 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 8136e3ffa0e..8136e3ffa0e 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 967cc764424..967cc764424 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 44f295a89e8..44f295a89e8 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 d104c65cc3f..d104c65cc3f 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 a9b55722e5f..a9b55722e5f 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 0ec06ca246e..0ec06ca246e 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 2e20c64b8bc..2e20c64b8bc 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 c4e78a1e21b..c4e78a1e21b 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 e562e1cffe9..e562e1cffe9 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 b0beb6d5c84..b0beb6d5c84 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 e0b6adf2aec..e0b6adf2aec 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 ee4fbbda2dc..ee4fbbda2dc 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 0647b0532a7..0647b0532a7 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 cadf49ebc83..cadf49ebc83 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 d014697a3ad..d014697a3ad 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 9d6471052d3..9d6471052d3 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 e88afb0550e..e88afb0550e 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 0946b77037e..0946b77037e 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 760a7bfdc83..760a7bfdc83 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 c1e5bb355b5..c1e5bb355b5 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 24a332fa601..24a332fa601 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 c8e3e221ce1..c8e3e221ce1 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 eb53480080b..eb53480080b 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 3c6dc09f091..3c6dc09f091 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 43bb8cee3a5..43bb8cee3a5 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 ff564390cff..ff564390cff 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 ec0d0d882bf..ec0d0d882bf 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 e68cf7b2f9c..e68cf7b2f9c 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 f1a09c49226..f1a09c49226 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 cc99a11c940..cc99a11c940 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 edc93368044..edc93368044 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 31e050aa55e..31e050aa55e 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 8709eef2898..8709eef2898 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 6a43d94d1ae..6a43d94d1ae 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 521641434bd..521641434bd 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 29f7ee39847..29f7ee39847 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 4dc414119b1..4dc414119b1 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 b4567d8fdcc..b4567d8fdcc 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 6690dfcd42f..6690dfcd42f 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 1280251403b..1280251403b 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 121f855f1c4..121f855f1c4 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 603b394b0f7..603b394b0f7 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 5eec74e42ac..5eec74e42ac 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 df59acd249d..df59acd249d 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 fcdcc4ab482..fcdcc4ab482 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 7e3373e4891..7e3373e4891 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 98162a0e80e..98162a0e80e 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 5e5f1a7bf8b..5e5f1a7bf8b 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 545541f1056..545541f1056 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 657d70d82a3..657d70d82a3 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 7ab46e82fe9..7ab46e82fe9 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 7d4bab52226..7d4bab52226 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 4f49925d97d..4f49925d97d 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 962c3deafbd..962c3deafbd 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 267cad41a62..267cad41a62 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 311ae667706..311ae667706 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 ee5d01d3aab..ee5d01d3aab 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 aeea6c88ae2..aeea6c88ae2 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 70b73dd714b..70b73dd714b 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 f8b7ca28ad3..f8b7ca28ad3 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 6133840b716..6133840b716 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 4bf0c78222a..4bf0c78222a 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 e16e12da3cf..e16e12da3cf 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 f823f670e46..f823f670e46 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 86fd1103423..86fd1103423 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 d7092146649..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0331-video-bcm2708_fb-Try-allocating-on-the-ARM-and-passi.patch
+++ /dev/null
@@ -1,162 +0,0 @@
-From a9a47ea599c12d29526138cd6e48f6c9eac19358 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <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 1122e3c3e2d..1122e3c3e2d 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 9ec4404beff..9ec4404beff 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 0ca7c11822e..0ca7c11822e 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 3762f4b70a4..3762f4b70a4 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 ed3910d7a19..ed3910d7a19 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 e87cf1a95ff..e87cf1a95ff 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 c1686f55cd6..c1686f55cd6 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 cd592e27da2..cd592e27da2 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 661ba8e33d9..661ba8e33d9 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 6a00e82300f..6a00e82300f 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 22280224f1f..22280224f1f 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 aa5f12a5ca5..aa5f12a5ca5 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 3a63be17843..3a63be17843 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 cae096bd959..cae096bd959 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 4e0ddb91246..4e0ddb91246 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 928d05a1d00..928d05a1d00 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 fc671a4705e..fc671a4705e 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 708e4492751..708e4492751 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 c056c34ad77..c056c34ad77 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 85b008e5a49..85b008e5a49 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 94552065eb6..94552065eb6 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 5caebcb27d9..5caebcb27d9 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 bee58524cd7..bee58524cd7 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 15ded09f364..15ded09f364 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 d995353ef47..d995353ef47 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 ba101002418..ba101002418 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 8c4cdd568b8..8c4cdd568b8 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 b967edafa0d..b967edafa0d 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 1d572370597..1d572370597 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 98514255df5..98514255df5 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 ecc637c3a29..ecc637c3a29 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 d2a9973fa8c..d2a9973fa8c 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 84c99ffa5a5..84c99ffa5a5 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 5eb3703b782..5eb3703b782 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 0967821a4c6..0967821a4c6 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 53e2c98ce5c..53e2c98ce5c 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 7eac71099dc..7eac71099dc 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 040bd603391..040bd603391 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 769f2461a0a..769f2461a0a 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 e149912edbd..e149912edbd 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 27c81bc123f..27c81bc123f 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 4c3e76a5122..4c3e76a5122 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 531fe9e818b..531fe9e818b 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 ac5c0a0d75e..ac5c0a0d75e 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 e1cf501f37b..e1cf501f37b 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 b2af97443ca..b2af97443ca 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 de29b17d218..de29b17d218 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 482c9ba5cc7..482c9ba5cc7 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 121846d8028..121846d8028 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 2a8197c68da..2a8197c68da 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 fe308694d7c..fe308694d7c 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 f337c61b4b3..f337c61b4b3 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 ffe06fef601..ffe06fef601 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 8012631bd44..8012631bd44 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 36d3ee1ac3a..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0386-Revert-cgroup-Disable-cgroup-memory-by-default.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 49b6bb41655247c123cdc46dd49276a107c8b1d2 Mon Sep 17 00:00:00 2001
-From: P33M <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 ab5a0ed8a23..ab5a0ed8a23 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 dc6525089c6..dc6525089c6 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 9b4f6d741b0..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0388-Revert-bcm2835-interpolate-audio-delay.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 83251570f16ec848694dac016cbdb55b1d28496d Mon Sep 17 00:00:00 2001
-From: popcornmix <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 96a4d732c1b..96a4d732c1b 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 841768b7184..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0389-Revert-staging-bcm2835-audio-Enable-compile-test.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From e276e2d7b80259819e399eb3956ca92e5ddafbc3 Mon Sep 17 00:00:00 2001
-From: popcornmix <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 a70081159f2..a70081159f2 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 6a28d80b7ed..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0390-Revert-staging-bcm2835-audio-use-module_platform_dri.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 576521feaa6a03f45839c28f1ce0588e4e49b0ca Mon Sep 17 00:00:00 2001
-From: popcornmix <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 07e96f61edd..07e96f61edd 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 eb6538dff35..eb6538dff35 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 37ebd8b6732..37ebd8b6732 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 722804ff63a..722804ff63a 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 d4d61ce0fb8..d4d61ce0fb8 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 63cd0b01b86..63cd0b01b86 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 989e0e43d6c..989e0e43d6c 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 5db4daa5cd0..5db4daa5cd0 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 dfd4b975f95..dfd4b975f95 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 5b38ca5e31a..5b38ca5e31a 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 6ead1b4ccf2..6ead1b4ccf2 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 ec0530ba2a0..ec0530ba2a0 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 523e54361de..523e54361de 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 fa24932b1b6..fa24932b1b6 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 f5c7781c205..f5c7781c205 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 6b9ac81b972..6b9ac81b972 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 e212a942ec8..e212a942ec8 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 6b03e1e43a1..6b03e1e43a1 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 05128020f75..05128020f75 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 8f24d154cbd..8f24d154cbd 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 cf5f11c0919..cf5f11c0919 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 3605c41fa8b..3605c41fa8b 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 a0a5f765e8c..a0a5f765e8c 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 95b9d7a1d13..95b9d7a1d13 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 e39aeb089dd..e39aeb089dd 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 96085045008..96085045008 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 9e25fe1016b..9e25fe1016b 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 6f99736d6ae..6f99736d6ae 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 edd4c7864be..edd4c7864be 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 6b67955ee3a..6b67955ee3a 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 568cd82e56a..568cd82e56a 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 bfa88dd4f7a..bfa88dd4f7a 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 f761ad78724..f761ad78724 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 b063e38854f..b063e38854f 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 afdc22e2d17..afdc22e2d17 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 3766707063a..3766707063a 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 346cda887fb..346cda887fb 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 97d69c695b9..97d69c695b9 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 6a4566abd82..6a4566abd82 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 28c7450564c..28c7450564c 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 f9369565bdc..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0430-staging-bcm2835-audio-Drop-DT-dependency.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 1ddeeda8208bc269c90aad4bd8bb878f7436f62d Mon Sep 17 00:00:00 2001
-From: Stefan Wahren <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 ba021f1e228..ba021f1e228 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 dac43864481..dac43864481 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 c6e54f3fda8..c6e54f3fda8 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 c831dc8139e..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0433-Revert-staging-bcm2835-audio-Drop-DT-dependency.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From 369f591ee78af2d53c67f561daeb963cc4aa60aa Mon Sep 17 00:00:00 2001
-From: popcornmix <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 b1f95e34452..b1f95e34452 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 6891ec28a0e..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0434-smsc95xx-dynamically-fix-up-TX-buffer-alignment-with.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 26c79197da4b2911e10c600d79839a82a43a06ff Mon Sep 17 00:00:00 2001
-From: P33M <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 34fe856ee0b..34fe856ee0b 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 8e854bdbc88..8e854bdbc88 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 162c28ee84d..162c28ee84d 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 45476681e19..45476681e19 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 c3d32ee6482..c3d32ee6482 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 37bb4fd61ef..37bb4fd61ef 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 fa609264397..fa609264397 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 468aa30608f..468aa30608f 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 541e18ac064..541e18ac064 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 2ad3299595b..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0443-Revert-video-bcm2708_fb-Try-allocating-on-the-ARM-an.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-From 71a27bf49d7a64959b7e60d780a1f899ead34f5f Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <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 48bb146741c..48bb146741c 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 ac75d4768f6..ac75d4768f6 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 8da9deaa6eb..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0445-Revert-smsc95xx-dynamically-fix-up-TX-buffer-alignme.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 89bb75e008adf061e3e396de76020b00ea0d6123 Mon Sep 17 00:00:00 2001
-From: P33M <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 6229fdc38d0..6229fdc38d0 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 f19a6380cea..f19a6380cea 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 13ea94a130e..13ea94a130e 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 dc251a60c4b..dc251a60c4b 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 c6b0606087c..c6b0606087c 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 5d316bd3141..5d316bd3141 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 53fc19c0f20..53fc19c0f20 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 84a691343f7..84a691343f7 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 3d35540bdac..3d35540bdac 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 9c7d073b5a3..9c7d073b5a3 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 70325f7768a..70325f7768a 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 d320e40c41d..d320e40c41d 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 b06b21404e9..b06b21404e9 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 88431e2acaf..88431e2acaf 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 75615e372f5..75615e372f5 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 856bf2bdf4d..856bf2bdf4d 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 632e986e50a..632e986e50a 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 b44ec4c4e24..b44ec4c4e24 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 89919c1d799..89919c1d799 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 a2aeeea2dd5..a2aeeea2dd5 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 1aa0a179651..1aa0a179651 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 d9607669119..d9607669119 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 c2a29a01cad..c2a29a01cad 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 6bc76ed6e62..6bc76ed6e62 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 e1eec5d9d93..e1eec5d9d93 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 47898dbd94a..47898dbd94a 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 54ead878b00..54ead878b00 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 e045886c784..e045886c784 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 2c0557b65b6..2c0557b65b6 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 354cd08f22c..354cd08f22c 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 15af5a7ca49..15af5a7ca49 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 083e0c7f1e6..083e0c7f1e6 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 abc576d6908..abc576d6908 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 239e142edac..239e142edac 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 f929b3a9690..f929b3a9690 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 fb358aa45f7..fb358aa45f7 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 e8ab380b5d3..e8ab380b5d3 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 ff15427b5cc..ff15427b5cc 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 229dbe520cc..229dbe520cc 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 05ae67aeeed..05ae67aeeed 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 0f3ea9a9f2d..0f3ea9a9f2d 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 4c87289455b..4c87289455b 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 2b4d34e3fe0..2b4d34e3fe0 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 126452f9741..126452f9741 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 847bb2089b9..847bb2089b9 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 e5068090ab7..e5068090ab7 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 94156e72b48..94156e72b48 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 99b1a69c094..99b1a69c094 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 e39c19190e5..e39c19190e5 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 d56e04547f2..d56e04547f2 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 0b546451079..0b546451079 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 aba98eb97ff..aba98eb97ff 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 164e29f6736..164e29f6736 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 5a72f9c71fb..5a72f9c71fb 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 b1094778b5d..b1094778b5d 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 7682ab677e9..7682ab677e9 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 fc2b5663576..fc2b5663576 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 c48d16db91f..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0501-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.mousep.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From fa776ef749c924cd3ff3ffa257d7a63a27224399 Mon Sep 17 00:00:00 2001
-From: Jonathan Bell <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 df8cc1a352c..df8cc1a352c 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 cb4fc3b708c..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0502-pinctrl-bcm2835-Add-support-for-BCM2838.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 9fdab9bd6324314cbdfe96a6da5edef6c29ed5e6 Mon Sep 17 00:00:00 2001
-From: Tim Gover <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 aaeeb944fc8..aaeeb944fc8 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 35fc072d8af..35fc072d8af 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 a6d0d26b47c..a6d0d26b47c 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 30cb228964a..30cb228964a 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 1d723db61d3..1d723db61d3 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 57f8e508c62..57f8e508c62 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 3286cd0fbd1..3286cd0fbd1 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 654ef432f34..654ef432f34 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 3c15cc1915d..3c15cc1915d 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 55408a00425..55408a00425 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 1192b166d45..1192b166d45 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 9c902c64d34..9c902c64d34 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 6a3a6b142dc..6a3a6b142dc 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 32eba1c8851..32eba1c8851 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 7eb5a95f68e..7eb5a95f68e 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 4fb6f666250..4fb6f666250 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 ad729c54aae..ad729c54aae 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 f3e2851087d..f3e2851087d 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 c81e7fc9199..c81e7fc9199 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 06f8cf4148f..06f8cf4148f 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 3e6273afd32..3e6273afd32 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 0391767e48c..0391767e48c 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 08c0995138d..08c0995138d 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 1c349449c54..1c349449c54 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 236caaf32fe..236caaf32fe 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 c9ce67fba5f..c9ce67fba5f 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 c3f48ecbde4..c3f48ecbde4 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 4b6cb398508..4b6cb398508 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 ca1b777b4b7..ca1b777b4b7 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 af29bdab811..af29bdab811 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 f2c97479ae1..f2c97479ae1 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 db83c12f59e..db83c12f59e 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 ca70b9ddbf0..ca70b9ddbf0 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 490466d7da7..490466d7da7 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 6db07298399..6db07298399 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 b4c2c3b5e26..b4c2c3b5e26 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 db3f195c45b..db3f195c45b 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 59f6f797c80..59f6f797c80 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 b45df39e4f8..b45df39e4f8 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 1a27777ac70..1a27777ac70 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 346d32e2d68..346d32e2d68 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 29db7087699..29db7087699 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 69320e89fd4..69320e89fd4 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 4299928ab3f..4299928ab3f 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 7f917bdd450..7f917bdd450 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 83e1845ff91..83e1845ff91 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 86c86afb755..86c86afb755 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 105309b4394..105309b4394 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 c4d303a57de..c4d303a57de 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 53a936e9937..53a936e9937 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 500ec5f0bcc..500ec5f0bcc 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 ee3d1de7d2c..ee3d1de7d2c 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 320552e6c80..320552e6c80 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 5e5c6bc2de4..5e5c6bc2de4 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 883d947c223..883d947c223 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 e3ee39abbae..e3ee39abbae 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 16980a8ba3e..16980a8ba3e 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 d1d8f72a0ab..d1d8f72a0ab 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 27de73d3013..27de73d3013 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 26930baadd5..26930baadd5 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 a38cc6537e2..a38cc6537e2 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 892914befab..892914befab 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 3a9fa5e7158..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0564-HACK-clk-bcm2835-Add-BCM2838_CLOCK_EMMC2-support.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From e5cefebc24b7684f4f84a539259612c8f5a4975b Mon Sep 17 00:00:00 2001
-From: Stefan Wahren <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 29f3cdb32ac..29f3cdb32ac 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 4fda05ef6d4..4fda05ef6d4 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 7ca14c805e6..7ca14c805e6 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 20d08ba26cc..20d08ba26cc 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 f8d988067d3..f8d988067d3 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 74cb9463133..74cb9463133 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 6d3da8da8d7..6d3da8da8d7 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 eec00db56af..eec00db56af 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 3e3d0704d65..3e3d0704d65 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 99c4e4df3f9..99c4e4df3f9 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 d66b9716a1a..d66b9716a1a 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 59263196c87..59263196c87 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 dd5b284ccd1..dd5b284ccd1 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 a72f1420df0..a72f1420df0 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 34772d59b18..34772d59b18 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 75999d02a6a..75999d02a6a 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 808fdaf0cac..808fdaf0cac 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 b95a4db6d3a..b95a4db6d3a 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 1099608c75b..1099608c75b 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 875d8917c26..875d8917c26 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 0fa4cf338d2..0fa4cf338d2 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 220cd5e092a..220cd5e092a 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 30dcaf40005..30dcaf40005 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 51db874675c..51db874675c 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 2f33f638c20..2f33f638c20 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 6c0a304f1c7..6c0a304f1c7 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 07c6157ca51..07c6157ca51 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 9d7a94159ec..9d7a94159ec 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 3d3b74efc28..3d3b74efc28 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 63b8e8bdb32..63b8e8bdb32 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 1eed4f7277a..1eed4f7277a 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 ad3732d4845..ad3732d4845 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 222de5bafb0..222de5bafb0 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 765874ef293..765874ef293 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 38bff7a7f69..38bff7a7f69 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 0ad70eb1e03..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0600-Revert-usb-xhci-hack-xhci_urb_enqueue-to-support-hid.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 5f6feeaf528cf922a82f11e5b0711f5fe9d7538d Mon Sep 17 00:00:00 2001
-From: popcornmix <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 e8896c09a09..e8896c09a09 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 6c61023cad1..6c61023cad1 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 8f3e72c4477..8f3e72c4477 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 52f999ec14a..52f999ec14a 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 755ca344409..755ca344409 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 51dd1d76613..51dd1d76613 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 669306d15ba..669306d15ba 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 b363e753eac..b363e753eac 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 4a468f02912..4a468f02912 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 9a6d15506eb..9a6d15506eb 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 8d40afb4443..8d40afb4443 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 3e413c7d006..3e413c7d006 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 280cddf9f25..280cddf9f25 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 c82ac8d61d3..c82ac8d61d3 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 7bddfdc6aa0..7bddfdc6aa0 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 0b3e8ec0793..0b3e8ec0793 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 5b2c17bed7b..5b2c17bed7b 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 5dee4cb1d15..5dee4cb1d15 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 41261cd0d14..41261cd0d14 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 00d0252deb9..00d0252deb9 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 9f5b9e14a07..9f5b9e14a07 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 667e104b479..667e104b479 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 8cc04b78d92..8cc04b78d92 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 85b56a35117..85b56a35117 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 1b242f46e31..1b242f46e31 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 a50be7a9865..a50be7a9865 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 906caba71e3..906caba71e3 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 12f1606db0a..12f1606db0a 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 bd13a32d2fd..bd13a32d2fd 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 8161bb2659e..00000000000
--- a/target/linux/brcm2708/patches-4.19/950-0629-Revert-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-bu.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 768ab361410487b05561de854a994a2888cd430a Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <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 553c16c9dd7..553c16c9dd7 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 427053d2dca..427053d2dca 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 fca281014e9..fca281014e9 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 2d38456ae61..2d38456ae61 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 a70d50eecd7..a70d50eecd7 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 6cec8140f0f..6cec8140f0f 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 2626658d168..2626658d168 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 92ecf120ba0..92ecf120ba0 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 34dd24208ce..34dd24208ce 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 8c009451226..8c009451226 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 26da5d94f23..26da5d94f23 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 16b84bc037e..16b84bc037e 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 24c25d69440..24c25d69440 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 aee684a9552..aee684a9552 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 f9ba856c448..f9ba856c448 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 7c6f415402b..7c6f415402b 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 f8de9b5fc35..f8de9b5fc35 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 9f509437d81..9f509437d81 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 b1b554ed527..b1b554ed527 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 c9e095f6e51..c9e095f6e51 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 4cb0a543c08..4cb0a543c08 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 ce590c96451..ce590c96451 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 cd19bc25731..cd19bc25731 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 f7243f34b14..f7243f34b14 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 7594d16a41e..7594d16a41e 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 5ec631f7fd0..5ec631f7fd0 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 e88bfc6be86..e88bfc6be86 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 e12cac2c85e..e12cac2c85e 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 f74fc4b730f..f74fc4b730f 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 96f3351c04a..96f3351c04a 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 8a97747e174..8a97747e174 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 beeeb2f9f13..beeeb2f9f13 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 bffed9e8568..bffed9e8568 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 b1be6322f1b..b1be6322f1b 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 3ead02cbbf9..3ead02cbbf9 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 9820c91d606..9820c91d606 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 6197d9076a7..6197d9076a7 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 c9e779878bf..c9e779878bf 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 daae20c0d5a..daae20c0d5a 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 0949f97f62b..0949f97f62b 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 fbfef019b0b..fbfef019b0b 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 c69a8ca16ed..c69a8ca16ed 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 e09e57b6c41..e09e57b6c41 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 d1486966403..d1486966403 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 af453ec3076..af453ec3076 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 aabb0057031..aabb0057031 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 3bdbb0b3aac..3bdbb0b3aac 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 516e2a5147b..516e2a5147b 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 cd33961de1f..cd33961de1f 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 5e29b47e57a..5e29b47e57a 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 30fa9b30813..30fa9b30813 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 70b9d54c4e7..70b9d54c4e7 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 9be42a6a247..9be42a6a247 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 116d16899c9..116d16899c9 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 05ea839e007..05ea839e007 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 4afdf8c6985..4afdf8c6985 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 083e75b21f8..083e75b21f8 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 a42fa7dfe1c..a42fa7dfe1c 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 1e9d4b445f9..1e9d4b445f9 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 e84721258d9..e84721258d9 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 87b4e9b58af..87b4e9b58af 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 0a14126fbd0..0a14126fbd0 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 09dbf4a021d..09dbf4a021d 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 e6376d7f684..e6376d7f684 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 aca98372a23..aca98372a23 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 a1e4149771a..a1e4149771a 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 978a6561004..978a6561004 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 203804df6f1..203804df6f1 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 0ff97759d99..0ff97759d99 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 3004f89c9ad..3004f89c9ad 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 36c5d1c23a0..36c5d1c23a0 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 e0ffaae209b..e0ffaae209b 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 e8e63a2798c..e8e63a2798c 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 b47c8190fc3..b47c8190fc3 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 1f690a2582b..1f690a2582b 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 00000000000..ff7c346f5f6
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0704-drm-v3d-clean-caches-at-the-end-of-render-jobs-on-re.patch
@@ -0,0 +1,177 @@
+From bc4661703d132ae1fb91d66641c64851eae44959 Mon Sep 17 00:00:00 2001
+From: Iago Toral Quiroga <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 00000000000..76279ec813f
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0705-staging-bcm2835-audio-Fix-draining-behavior-regressi.patch
@@ -0,0 +1,56 @@
+From 9dd926d29051324d8621ca2a18bbdd568523ac93 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <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 00000000000..adb14fb710b
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0706-bcm2708_fb-Fix-layout-of-struct-vc4_display_settings.patch
@@ -0,0 +1,34 @@
+From c6be127c2f4d5f75c60d3778594093ff51593a6e Mon Sep 17 00:00:00 2001
+From: Michael Brown <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 00000000000..b593d7fb0cb
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0707-ARM-dts-bcm283x-Fix-DTC-warning-for-memory-node.patch
@@ -0,0 +1,68 @@
+From b640129382a37105cf2577f251103e550381b797 Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..3a424b3a674
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0708-ARM-dts-bcm27xx-Fix-DTC-warning-for-memory-node.patch
@@ -0,0 +1,52 @@
+From 10524e83179ad016a379ea99364d6912812a9aa5 Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..27cd2aff50f
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0709-ARM-bcm283x-Enable-DMA-support-for-SPI-controller.patch
@@ -0,0 +1,42 @@
+From cce15c51f1afbb1aa9d5f7779c9f7c0a17b39701 Mon Sep 17 00:00:00 2001
+From: Lukas Wunner <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 00000000000..6986ae9289f
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0710-ARM-dts-bcm2835-rpi-Drop-unnecessary-address-cells-s.patch
@@ -0,0 +1,30 @@
+From de002983174698762ecd3e42ab5a4b1bceb80af1 Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..184d397ed91
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0711-ARM-dts-bcm2708-rpi-Define-the-downstream-MMC-interf.patch
@@ -0,0 +1,40 @@
+From c31c8018e7cef83c827c913a10ac06b465813b22 Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..7ad61b65fb6
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0712-ARM-dts-bcm283x-Define-MMC-interfaces-at-board-level.patch
@@ -0,0 +1,194 @@
+From a1905aed89ee45f6662f03b77dc604ff1a169671 Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..06dd01329f8
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0713-ARM-dts-bcm2835-rpi-zero-w-Fix-bus-width-of-sdhci.patch
@@ -0,0 +1,28 @@
+From c60d699be1eb26a14157cfa5b1ac0cf8afce0dcb Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..764169fc620
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0714-ARM-dts-bcm2708-rpi-Define-the-downstream-HDMI-power.patch
@@ -0,0 +1,24 @@
+From 51908b138907d25df02687c514d59373b2a32f18 Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..82e126e8ff5
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0715-ARM-dts-bcm283x-Enable-HDMI-at-board-level.patch
@@ -0,0 +1,163 @@
+From a3cbeaaee57b7bda4e921bb2cff649fb56c0292d Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..52f716e74dd
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0716-clk-bcm2835-Introduce-SoC-specific-clock-registratio.patch
@@ -0,0 +1,597 @@
+From 125afc5cf080b29e9114d89f6052fa4a936a3f19 Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..8d4b7c9e0b5
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0717-clk-bcm2835-Add-BCM2711_CLOCK_EMMC2-support.patch
@@ -0,0 +1,91 @@
+From b4c6046e1c55ddf211215191be9ea6316238889b Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..eac69b44ac3
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0718-ARM-bcm-Switch-board-clk-and-pinctrl-to-bcm2711-comp.patch
@@ -0,0 +1,71 @@
+From 30972497979c65781bb8170743447b45b6dfd3cd Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..e45c65724a9
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0719-pinctrl-bcm2835-Switch-to-SPDX-identifier.patch
@@ -0,0 +1,62 @@
+From e60428993b9ba03e2389eeb61c4b5efaa80b9e05 Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..d1ffc9b877f
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0720-pinctrl-bcm2835-declare-pin-config-as-generic.patch
@@ -0,0 +1,27 @@
+From 2729832886181a4f8bfe1e2c028a7bdb92004ce7 Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..e3d23010b91
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0721-pinctrl-bcm2835-Direct-GPIO-config-changes-to-generi.patch
@@ -0,0 +1,37 @@
+From 289685a9b369bda990c4f22bbc7659ad492e6dbb Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..e06247753d1
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0722-pinctrl-bcm2835-Add-support-for-BCM2711-pull-up-func.patch
@@ -0,0 +1,183 @@
+From 268bd5b5557ccb0ac4eae998ad7c6261c240b89b Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <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 00000000000..fa3c3a63391
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0723-Rename-HDMI-ALSA-device-names-check-for-enable-state.patch
@@ -0,0 +1,139 @@
+From 1ed6ab5bf2180bd96a78f27fde848f57f4d6b636 Mon Sep 17 00:00:00 2001
+From: James Hughes <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 00000000000..aefa3b856bf
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0724-pcie-brcmstb-bounce64.c-dev_err-dev_info-for-info-me.patch
@@ -0,0 +1,25 @@
+From 592f7ebf2755acc81cd794b73916f3b2bcccaa68 Mon Sep 17 00:00:00 2001
+From: Floris Bos <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 00000000000..d928458b785
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0725-overlays-gpio-shutdown-Add-debounce-parameter.patch
@@ -0,0 +1,48 @@
+From 499e28e3a38f0de843b07bf4bbf7692b07c5e3ba Mon Sep 17 00:00:00 2001
+From: Phil Elwell <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 00000000000..f11066f6225
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0726-overlays-fix-compatible-for-RPi4.patch
@@ -0,0 +1,204 @@
+From 8ad712b22e410a5d13bc6678fbee4a5b0ec9b518 Mon Sep 17 00:00:00 2001
+From: Matthias Brugger <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 00000000000..14f086c5c84
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0727-bcm2711-Retain-support-for-old-dtbs.patch
@@ -0,0 +1,55 @@
+From 7d7f6a80f12fb6e7ba903d070512970e304bcd02 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <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 00000000000..f7fe151a2d9
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0728-media-bcm2835-unicam-Add-support-for-raw14-formats.patch
@@ -0,0 +1,49 @@
+From 13b916fa2b8a99c9953073316e102e9d027dd708 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <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 00000000000..3a638710f74
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0729-media-bcm2835-unicam-Rework-to-not-cache-the-list-of.patch
@@ -0,0 +1,387 @@
+From 2c51b8e533a8b43bde18072c9dbbd0fc5084bbe7 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <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 00000000000..199c4961e86
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0730-media-bcm2835-unicam-Support-unpacking-CSI-format-to.patch
@@ -0,0 +1,254 @@
+From 5ae0488f5fc682877ae2a5d454f70884e62120ef Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <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 00000000000..61a817ab6bf
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0731-media-bcm2835-unicam-Add-support-for-luma-greyscale-.patch
@@ -0,0 +1,50 @@
+From 253dd469e6403b6c2afd25d4f8338a0c1588583f Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <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 00000000000..76129fec22f
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0732-drm-vc4-Add-support-for-YUV-color-encodings-and-rang.patch
@@ -0,0 +1,138 @@
+From 799c83fb9b72bcd473099e3da1395c92a5a581ff Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <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 00000000000..8c8bb69e772
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0733-drm-vc4-Fix-negative-X-Y-positioning-on-SAND-planes.patch
@@ -0,0 +1,68 @@
+From a8af2085e26bcefad8fb65e2b44d12777a84e219 Mon Sep 17 00:00:00 2001
+From: Boris Brezillon <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 00000000000..4c9cb7699e3
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0734-drm-vc4-Add-support-for-H-V-flips.patch
@@ -0,0 +1,135 @@
+From 1246d16c393a2f5790e5492053f26e6b0b62cec8 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <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 00000000000..d08b7f00c7f
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0735-drm-vc4-Correct-handling-of-rotation-parameter-in-fk.patch
@@ -0,0 +1,87 @@
+From e99a60f018524bf7b1ba382e3994c22ebcdbafe6 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <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 00000000000..2641a5b0b1d
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0736-overlays-Add-w5500-overlay.patch
@@ -0,0 +1,113 @@
+From cb9a896a799393b3cb5947bef3c95eb5ffb44776 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <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 00000000000..cb9a82b1276
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0737-media-bcm2835-unicam-Replace-hard-coded-loop-limit-w.patch
@@ -0,0 +1,44 @@
+From 1a013467030ffd6f1958b8a4db1b5312213fb9bd Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <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 00000000000..3c881a1bfc1
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0738-media-bcm2835-unicam-Fix-one-to-many-mapping-for-YUY.patch
@@ -0,0 +1,144 @@
+From 94d77466473f3abcf799ac44b8038766ab32f27c Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <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 00000000000..4291f9fee55
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0739-dt-bindings-Add-binding-for-the-Infineon-IRS1125-sen.patch
@@ -0,0 +1,66 @@
+From b4f8b92cdfd8ad2e04cdd3f0a73aa4e95d172fb1 Mon Sep 17 00:00:00 2001
+From: Markus Proeller <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 00000000000..9b882fc8f8d
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0740-media-i2c-Add-a-driver-for-the-Infineon-IRS1125-dept.patch
@@ -0,0 +1,1231 @@
+From c09b42cb057ddf8bd20d57c6b0ffd94f3e15ea7c Mon Sep 17 00:00:00 2001
+From: Markus Proeller <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 00000000000..1202d10d312
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0741-dtoverlays-Add-an-overlay-for-the-Infineon-IRS1125.patch
@@ -0,0 +1,149 @@
+From 89af5d7df7f548744bd675d96295c0f45e24b31f Mon Sep 17 00:00:00 2001
+From: Markus Proeller <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 00000000000..952e26664ce
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0742-rpi-wm8804-soundcard-Fixed-MCLKDIV-for-Allo-Digione.patch
@@ -0,0 +1,42 @@
+From 09ad53f0267e4b5433c27c77b3945d584ac0a6ba Mon Sep 17 00:00:00 2001
+From: Phil Elwell <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 00000000000..83cd3397e94
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0743-dts-bcm2838-Disable-DWC-OTG-block-by-default.patch
@@ -0,0 +1,23 @@
+From 2e3db17d59143bfaf15423feb7eed68893e04f66 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <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 00000000000..9c9a0bf6bbc
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0744-staging-bcm2835-codec-Add-support-for-ENUM_FRAMESIZE.patch
@@ -0,0 +1,98 @@
+From 9894906ad424f266853b61a6996b2da8b119c6e6 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <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 00000000000..1049a4d12d3
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0745-staging-bcm2835-codec-Correct-buffer-type-check-on-G.patch
@@ -0,0 +1,25 @@
+From 9783756bf18033f321161393814dc1dd99c1704a Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <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 00000000000..896149fb1e1
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0746-staging-bcm2835-codec-Set-default-and-error-check-ti.patch
@@ -0,0 +1,37 @@
+From 4d6c40ebfe10dd2fdc64bd7607e51275d5524e47 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <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 00000000000..20550d4cb1a
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0747-staging-bcm2835-codec-Fix-imbalance-in-dma_buf_get-d.patch
@@ -0,0 +1,30 @@
+From 4542b5d7b4e00b11dd37d93986b624c58b198765 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <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 00000000000..fbfcd747cd1
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0748-drm-vc4-Added-calls-for-firmware-display-blank-unbla.patch
@@ -0,0 +1,87 @@
+From ebb8a4e93e242311d319098ea56e4ef4d92c4d19 Mon Sep 17 00:00:00 2001
+From: James Hughes <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 00000000000..bf5975edefd
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0749-rpi-poe-fan-fix-def_pwm1-writes.patch
@@ -0,0 +1,21 @@
+From 633c64173636b2f6acebfddb3d2b69c92bbbcd07 Mon Sep 17 00:00:00 2001
+From: Serge Schneider <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 00000000000..9a5e29c2082
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0750-net-phy-bcm54xx-Encode-link-speed-and-activity-into-.patch
@@ -0,0 +1,67 @@
+From b1e290ec968186530ec59479adfba89d2cfe21c8 Mon Sep 17 00:00:00 2001
+From: Vladimir Oltean <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 00000000000..1b922420c05
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0751-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch
@@ -0,0 +1,119 @@
+From 2679834327b5b8db8a7b0c90b632b81c35f9e271 Mon Sep 17 00:00:00 2001
+From: James Hughes <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 00000000000..6b388e05792
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0752-overlays-smi-fix-typo-in-comment-3320.patch
@@ -0,0 +1,23 @@
+From f12c4ba9fd01e17bd79b461b203674e92dd253e9 Mon Sep 17 00:00:00 2001
+From: Pierre-jean Texier <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 00000000000..b00afccd00b
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0753-net-phy-2711-Change-the-default-ethernet-LED-actions.patch
@@ -0,0 +1,33 @@
+From 7d9c69b325c94d59de94cb699a8314ba2c83ab1d Mon Sep 17 00:00:00 2001
+From: James Hughes <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 00000000000..099c44497b2
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0754-overlays-README-Remove-trailing-whitespace.patch
@@ -0,0 +1,21 @@
+From f5505e5d9fbfd11921c39cd55a433877d6d0d6e4 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <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 00000000000..0848a23c886
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0755-overlays-Add-apds9960-overlay.patch
@@ -0,0 +1,103 @@
+From c1e8593fd7fc6a8e7745a6c82c1c19a8fceee70f Mon Sep 17 00:00:00 2001
+From: Michael Kaplan <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 00000000000..e80205bd04b
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0756-arm-dts-overlays-pitft35-resistive-add-upstream-comp.patch
@@ -0,0 +1,27 @@
+From 49a4a7e355452ce4372c99b2219d7ff8ff613f3f Mon Sep 17 00:00:00 2001
+From: Peter Robinson <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 00000000000..a0939d77a01
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0757-clk-bcm2835-Avoid-null-pointer-exception.patch
@@ -0,0 +1,29 @@
+From 5b8a217fe818bc038592b8a5284ba0c18948fabf Mon Sep 17 00:00:00 2001
+From: popcornmix <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 00000000000..292773ffe9e
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0758-v3d_drv-Handle-missing-clock-more-gracefully.patch
@@ -0,0 +1,25 @@
+From 9048bbff0eca6d74d41fa58875f31560381b3ca3 Mon Sep 17 00:00:00 2001
+From: popcornmix <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 00000000000..45c0594c534
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0759-cpufreq-scpi-scmi-Fix-freeing-of-dynamic-OPPs.patch
@@ -0,0 +1,197 @@
+From 84a8cbf64731568c0750137ec38091a46b81d502 Mon Sep 17 00:00:00 2001
+From: Viresh Kumar <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 00000000000..53428fcbda0
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0760-clk-bcm283x-add-driver-interfacing-with-Raspberry-Pi.patch
@@ -0,0 +1,349 @@
+From 35306211392a8c17ba6cde2a6b5d1beb61ca7d54 Mon Sep 17 00:00:00 2001
+From: Nicolas Saenz Julienne <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 00000000000..7785caf129b
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0761-cpufreq-add-driver-for-Raspberry-Pi.patch
@@ -0,0 +1,161 @@
+From 1c0d3626312369837bc18051ed6c9611323fce87 Mon Sep 17 00:00:00 2001
+From: Nicolas Saenz Julienne <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 00000000000..2886ab18a35
--- /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 00000000000..be4d83485f5
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0763-clk-raspberrypi-register-platform-device-for-raspber.patch
@@ -0,0 +1,65 @@
+From b39d5caa499559be6c309b9fd8f8b2f992504e18 Mon Sep 17 00:00:00 2001
+From: Nicolas Saenz Julienne <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 00000000000..af9dde3362f
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0764-clk-bcm2835-remove-pllb.patch
@@ -0,0 +1,56 @@
+From 04ebfc3e25eaa3dd77544b4b950497990b1a327e Mon Sep 17 00:00:00 2001
+From: Nicolas Saenz Julienne <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 00000000000..b5ce5bd4ac0
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0765-v3d_drv-Allow-clock-retrieval-by-name.patch
@@ -0,0 +1,23 @@
+From 2b08d751023fcdf3c37317dc769ce199ba361415 Mon Sep 17 00:00:00 2001
+From: popcornmix <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 00000000000..f10e2465f46
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0766-v3d_gem-Kick-the-clock-so-firmware-knows-we-are-usin.patch
@@ -0,0 +1,27 @@
+From ccf2b80332ba86e5a69f7e3a0f097d9558ad5c95 Mon Sep 17 00:00:00 2001
+From: popcornmix <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 00000000000..419902ae9ca
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0767-clk-raspberrypi-Allow-cpufreq-driver-to-also-adjust-.patch
@@ -0,0 +1,25 @@
+From 801156c2f2d2d074a1d966f59fc63d8056b3cef9 Mon Sep 17 00:00:00 2001
+From: popcornmix <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 00000000000..c145f2faa63
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0768-clk-raspberrypi-Also-support-v3d-clock.patch
@@ -0,0 +1,640 @@
+From 679f68410271a32f200e48b501027f68bd114d5c Mon Sep 17 00:00:00 2001
+From: popcornmix <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 00000000000..34de4de8aa6
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0769-clk-bcm2835-Disable-v3d-clock.patch
@@ -0,0 +1,58 @@
+From e8e99169991da84d59f1ed70de9621e31b67d505 Mon Sep 17 00:00:00 2001
+From: popcornmix <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 00000000000..64efff77547
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0770-fixup-clk-raspberrypi-Also-support-v3d-clock.patch
@@ -0,0 +1,29 @@
+From c4374e446b6957234432d5c3f5d5f89f1acb807d Mon Sep 17 00:00:00 2001
+From: popcornmix <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 00000000000..a15f41f45a0
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0771-fixup-clk-raspberrypi-Also-support-v3d-clock.patch
@@ -0,0 +1,36 @@
+From 05c745c001c8c82bbba8a6d953ad77ad25c92c5f Mon Sep 17 00:00:00 2001
+From: popcornmix <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 00000000000..04406c80267
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0772-raspberrypi-cpufreq-Only-report-integer-pll-divisor-.patch
@@ -0,0 +1,40 @@
+From 1c038a58f4183602fc1699d68b21f5e22a12176d Mon Sep 17 00:00:00 2001
+From: popcornmix <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 00000000000..0239b19ff22
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0773-fixup-clk-raspberrypi-Also-support-v3d-clock.patch
@@ -0,0 +1,54 @@
+From afb2cfe3056fc643cee8ae25991f4b9c22d48bef Mon Sep 17 00:00:00 2001
+From: popcornmix <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 00000000000..4f2e46b71ab
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0774-arm-dts-Correct-Pi-4B-LED-values.patch
@@ -0,0 +1,39 @@
+From ea1e25b4c0a055b31a0217ffbfd6972c28643912 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <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 00000000000..313aa8c3ae7
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0775-drm-v3d-Set-dma_mask-as-well-as-coherent_dma_mask.patch
@@ -0,0 +1,25 @@
+From 75e50217c8c8d9ab8dc84547fd149d9bfe32ae5d Mon Sep 17 00:00:00 2001
+From: Phil Elwell <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 00000000000..1f86f9d7faf
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0776-arm-dts-2711-Add-pcie0-alias.patch
@@ -0,0 +1,24 @@
+From 11febee7b0326ade03f45238f136b7830d317e2e Mon Sep 17 00:00:00 2001
+From: Phil Elwell <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 00000000000..70959de2bca
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0777-spidev-Completely-disable-the-DT-warning.patch
@@ -0,0 +1,32 @@
+From ce0e4cf60033eb7e15266b329183f945f2a82c61 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <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 2adc6424925..afc94da40bc 100644
--- a/target/linux/brcm2708/patches-4.19/950-0528-drm-vc4-Disable-V3D-interactions-if-the-v3d-componen.patch
+++ b/target/linux/brcm2708/patches-4.19/950-0778-drm-vc4-Disable-V3D-interactions-if-the-v3d-componen.patch
@@ -1,21 +1,31 @@
-From f69f2b1354e0a548d2cb6dfdc07d37efb426eee0 Mon Sep 17 00:00:00 2001
+From 7140cf0d83c10f93ca8212edb17697baf9cafb45 Mon Sep 17 00:00:00 2001
From: Eric Anholt <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 00000000000..dcfbb9dd1ad
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0779-sound-soc-only-first-codec-is-master-in-multicodec-s.patch
@@ -0,0 +1,34 @@
+From 4ca89eb8570cb86314a5a7b55a15d15f53ce5757 Mon Sep 17 00:00:00 2001
+From: Johannes Krude <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 00000000000..c8b4820c937
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0780-Allow-simultaneous-use-of-JustBoom-DAC-and-Digi.patch
@@ -0,0 +1,435 @@
+From 8f11db84e124da59b8a717d66fc424ef070f4be0 Mon Sep 17 00:00:00 2001
+From: Johannes Krude <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 00000000000..8a28f730297
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0781-dwc_otg-checking-the-urb-transfer_buffer-too-early-3.patch
@@ -0,0 +1,59 @@
+From 2a15e634d80f78cf2d8aa16ecf0f3cf930e277b4 Mon Sep 17 00:00:00 2001
+From: Hui Wang <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 00000000000..900cbb2ca85
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0782-overlays-Make-mcp342x-run-time-compatible.patch
@@ -0,0 +1,209 @@
+From e650f4bfbe9a09e5b75d702884a8ba8d9df6ccdf Mon Sep 17 00:00:00 2001
+From: Phil Elwell <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 00000000000..5eed1baff85
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0783-overlays-dht11-Allow-multiple-instantiation.patch
@@ -0,0 +1,34 @@
+From 26e95c876831692f28894041c5a1db5934715939 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <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 00000000000..af040962f20
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0784-overlays-i2c-rtc-Add-pcf85363-support.patch
@@ -0,0 +1,56 @@
+From b85f76a63d5f1b13220c61244469d55487db84f1 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <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",