]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
brcm2708: update to latest patches from RPi foundation
authorÁlvaro Fernández Rojas <noltari@gmail.com>
Tue, 4 Feb 2020 18:02:53 +0000 (19:02 +0100)
committerÁlvaro Fernández Rojas <noltari@gmail.com>
Tue, 4 Feb 2020 18:14:13 +0000 (19:14 +0100)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
618 files changed:
target/linux/brcm2708/modules/sound.mk
target/linux/brcm2708/patches-4.19/950-0202-staging-bcm2835-camera-Move-module-info-to-the-end.patch [moved from target/linux/brcm2708/patches-4.19/950-0203-staging-bcm2835-camera-Move-module-info-to-the-end.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0203-staging-vchiq_arm-Fix-platform-device-unregistration.patch [moved from target/linux/brcm2708/patches-4.19/950-0204-staging-vchiq_arm-Fix-platform-device-unregistration.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0204-staging-vchiq_arm-Fix-camera-device-registration.patch [moved from target/linux/brcm2708/patches-4.19/950-0205-staging-vchiq_arm-Fix-camera-device-registration.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0205-staging-bcm2835-camera-Provide-more-specific-probe-e.patch [moved from target/linux/brcm2708/patches-4.19/950-0206-staging-bcm2835-camera-Provide-more-specific-probe-e.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0206-staging-bcm2835-camera-Add-hint-about-possible-fault.patch [moved from target/linux/brcm2708/patches-4.19/950-0207-staging-bcm2835-camera-Add-hint-about-possible-fault.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0207-staging-vchiq_arm-Improve-error-handling-on-loading-.patch [moved from target/linux/brcm2708/patches-4.19/950-0209-staging-vchiq_arm-Improve-error-handling-on-loading-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0208-staging-bcm2835-camera-Do-not-bulk-receive-from-serv.patch [moved from target/linux/brcm2708/patches-4.19/950-0210-staging-bcm2835-camera-Do-not-bulk-receive-from-serv.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0209-staging-bcm2835-camera-Ensure-H264-header-bytes-get-.patch [moved from target/linux/brcm2708/patches-4.19/950-0211-staging-bcm2835-camera-Ensure-H264-header-bytes-get-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0210-staging-bcm2835-camera-Correctly-denote-key-frames-i.patch [moved from target/linux/brcm2708/patches-4.19/950-0212-staging-bcm2835-camera-Correctly-denote-key-frames-i.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0211-staging-bcm2835-camera-Return-early-on-errors.patch [moved from target/linux/brcm2708/patches-4.19/950-0213-staging-bcm2835-camera-Return-early-on-errors.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0212-staging-bcm2835-camera-Remove-dead-email-addresses.patch [moved from target/linux/brcm2708/patches-4.19/950-0214-staging-bcm2835-camera-Remove-dead-email-addresses.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0213-staging-bcm2835-camera-Fix-comment-style-violations.patch [moved from target/linux/brcm2708/patches-4.19/950-0215-staging-bcm2835-camera-Fix-comment-style-violations.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0214-staging-bcm2835-camera-Fix-spacing-around-operators.patch [moved from target/linux/brcm2708/patches-4.19/950-0216-staging-bcm2835-camera-Fix-spacing-around-operators.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0215-staging-bcm2835-camera-Reduce-length-of-enum-names.patch [moved from target/linux/brcm2708/patches-4.19/950-0217-staging-bcm2835-camera-Reduce-length-of-enum-names.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0216-staging-bcm2835-camera-Fix-multiple-line-dereference.patch [moved from target/linux/brcm2708/patches-4.19/950-0218-staging-bcm2835-camera-Fix-multiple-line-dereference.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0217-staging-bcm2835-camera-Fix-brace-style-issues.patch [moved from target/linux/brcm2708/patches-4.19/950-0219-staging-bcm2835-camera-Fix-brace-style-issues.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0218-staging-bcm2835-camera-Fix-missing-lines-between-ite.patch [moved from target/linux/brcm2708/patches-4.19/950-0220-staging-bcm2835-camera-Fix-missing-lines-between-ite.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0219-staging-bcm2835-camera-Fix-logical-continuation-spli.patch [moved from target/linux/brcm2708/patches-4.19/950-0221-staging-bcm2835-camera-Fix-logical-continuation-spli.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0220-staging-bcm2835-camera-Fix-open-parenthesis-alignmen.patch [moved from target/linux/brcm2708/patches-4.19/950-0222-staging-bcm2835-camera-Fix-open-parenthesis-alignmen.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0221-staging-bcm2835-camera-Set-sequence-number-correctly.patch [moved from target/linux/brcm2708/patches-4.19/950-0223-staging-bcm2835-camera-Set-sequence-number-correctly.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0222-staging-bcm2835-camera-Ensure-timestamps-never-go-ba.patch [moved from target/linux/brcm2708/patches-4.19/950-0224-staging-bcm2835-camera-Ensure-timestamps-never-go-ba.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0223-staging-bcm2835-camera-Avoid-unneeded-internal-decla.patch [moved from target/linux/brcm2708/patches-4.19/950-0225-staging-bcm2835-camera-Avoid-unneeded-internal-decla.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0224-staging-bcm2835-camera-Add-multiple-inclusion-protec.patch [moved from target/linux/brcm2708/patches-4.19/950-0226-staging-bcm2835-camera-Add-multiple-inclusion-protec.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0225-staging-bcm2835-camera-Unify-header-inclusion-define.patch [moved from target/linux/brcm2708/patches-4.19/950-0227-staging-bcm2835-camera-Unify-header-inclusion-define.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0226-staging-bcm2835-camera-Fix-alignment-should-match-op.patch [moved from target/linux/brcm2708/patches-4.19/950-0228-staging-bcm2835-camera-Fix-alignment-should-match-op.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0227-staging-bcm2835-camera-Fix-multiple-assignments-shou.patch [moved from target/linux/brcm2708/patches-4.19/950-0229-staging-bcm2835-camera-Fix-multiple-assignments-shou.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0228-staging-bcm2835-camera-Fix-up-all-formatting-in-mmal.patch [moved from target/linux/brcm2708/patches-4.19/950-0230-staging-bcm2835-camera-Fix-up-all-formatting-in-mmal.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0229-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch [moved from target/linux/brcm2708/patches-4.19/950-0231-staging-bcm2835-camera-Use-enums-for-max-value-in-co.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0230-staging-bcm2835-camera-Correct-V4L2_CID_COLORFX_CBCR.patch [moved from target/linux/brcm2708/patches-4.19/950-0232-staging-bcm2835-camera-Correct-V4L2_CID_COLORFX_CBCR.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0231-staging-bcm2835-camera-Remove-amend-some-obsolete-co.patch [moved from target/linux/brcm2708/patches-4.19/950-0233-staging-bcm2835-camera-Remove-amend-some-obsolete-co.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0232-staging-vc04_services-Split-vchiq-mmal-into-a-module.patch [moved from target/linux/brcm2708/patches-4.19/950-0234-staging-vc04_services-Split-vchiq-mmal-into-a-module.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0233-staging-mmal-vchiq-Allocate-and-free-components-as-r.patch [moved from target/linux/brcm2708/patches-4.19/950-0235-staging-mmal-vchiq-Allocate-and-free-components-as-r.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0234-staging-mmal-vchiq-Avoid-use-of-bool-in-structures.patch [moved from target/linux/brcm2708/patches-4.19/950-0236-staging-mmal-vchiq-Avoid-use-of-bool-in-structures.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0235-staging-mmal-vchiq-Make-timeout-a-defined-parameter.patch [moved from target/linux/brcm2708/patches-4.19/950-0237-staging-mmal-vchiq-Make-timeout-a-defined-parameter.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0236-staging-mmal-vchiq-Make-a-mmal_buf-struct-for-passin.patch [moved from target/linux/brcm2708/patches-4.19/950-0238-staging-mmal-vchiq-Make-a-mmal_buf-struct-for-passin.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0237-staging-mmal-vchiq-Add-support-for-event-callbacks.patch [moved from target/linux/brcm2708/patches-4.19/950-0239-staging-mmal-vchiq-Add-support-for-event-callbacks.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0238-staging-vc04_services-Support-sending-data-to-MMAL-p.patch [moved from target/linux/brcm2708/patches-4.19/950-0240-staging-vc04_services-Support-sending-data-to-MMAL-p.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0239-staging-vc04_services-Fixup-vchiq-mmal-include-order.patch [moved from target/linux/brcm2708/patches-4.19/950-0241-staging-vc04_services-Fixup-vchiq-mmal-include-order.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0240-staging-vc04_services-Add-new-vc-sm-cma-driver.patch [moved from target/linux/brcm2708/patches-4.19/950-0242-staging-vc04_services-Add-new-vc-sm-cma-driver.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0241-staging-vc-sm-cma-Fixup-driver-for-older-VCHI-APIs.patch [moved from target/linux/brcm2708/patches-4.19/950-0243-staging-vc-sm-cma-Fixup-driver-for-older-VCHI-APIs.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0242-staging-vc04_services-Use-vc-sm-cma-to-support-zero-.patch [moved from target/linux/brcm2708/patches-4.19/950-0244-staging-vc04_services-Use-vc-sm-cma-to-support-zero-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0243-media-videobuf2-Allow-exporting-of-a-struct-dmabuf.patch [moved from target/linux/brcm2708/patches-4.19/950-0245-media-videobuf2-Allow-exporting-of-a-struct-dmabuf.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0244-staging-vc04_services-Add-a-V4L2-M2M-codec-driver.patch [moved from target/linux/brcm2708/patches-4.19/950-0246-staging-vc04_services-Add-a-V4L2-M2M-codec-driver.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0245-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch [moved from target/linux/brcm2708/patches-4.19/950-0247-staging-vchiq_arm-Register-bcm2835-codec-as-a-platfo.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0246-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch [moved from target/linux/brcm2708/patches-4.19/950-0248-staging-vchiq_arm-Register-vcsm-cma-as-a-platform-dr.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0247-staging-bcm2835-camera-Fix-stride-on-RGB3-BGR3-forma.patch [moved from target/linux/brcm2708/patches-4.19/950-0249-staging-bcm2835-camera-Fix-stride-on-RGB3-BGR3-forma.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0248-tpm-Make-SECURITYFS-a-weak-dependency.patch [moved from target/linux/brcm2708/patches-4.19/950-0250-tpm-Make-SECURITYFS-a-weak-dependency.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0249-Add-overlay-for-SLB9760-Iridium-LetsTrust-TPM.patch [moved from target/linux/brcm2708/patches-4.19/950-0251-Add-overlay-for-SLB9760-Iridium-LetsTrust-TPM.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0250-ASoC-add-driver-for-3Dlab-Nano-soundcard-2758.patch [moved from target/linux/brcm2708/patches-4.19/950-0252-ASoC-add-driver-for-3Dlab-Nano-soundcard-2758.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0251-overlays-Update-README-with-removal-of-lirc-rpi.patch [moved from target/linux/brcm2708/patches-4.19/950-0253-overlays-Update-README-with-removal-of-lirc-rpi.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0252-staging-bcm2835-camera-Check-the-error-for-REPEAT_SE.patch [moved from target/linux/brcm2708/patches-4.19/950-0254-staging-bcm2835-camera-Check-the-error-for-REPEAT_SE.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0253-gpio-ir-change-default-pull-configuration-to-up.patch [moved from target/linux/brcm2708/patches-4.19/950-0255-gpio-ir-change-default-pull-configuration-to-up.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0254-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch [moved from target/linux/brcm2708/patches-4.19/950-0256-firmware-raspberrypi-Report-the-fw-variant-during-pr.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0255-firmware-raspberrypi-Report-the-fw-git-hash-during-p.patch [moved from target/linux/brcm2708/patches-4.19/950-0257-firmware-raspberrypi-Report-the-fw-git-hash-during-p.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0256-arm64-dts-broadcom-Enable-fixups-for-overlays.patch [moved from target/linux/brcm2708/patches-4.19/950-0258-arm64-dts-broadcom-Enable-fixups-for-overlays.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0257-dtoverlays-fe-pi-audio-fix-sgtl5000-compatible-strin.patch [moved from target/linux/brcm2708/patches-4.19/950-0259-dtoverlays-fe-pi-audio-fix-sgtl5000-compatible-strin.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0258-bcm2835_smi-re-add-dereference-to-fix-DMA-transfers.patch [moved from target/linux/brcm2708/patches-4.19/950-0260-bcm2835_smi-re-add-dereference-to-fix-DMA-transfers.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0259-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch [moved from target/linux/brcm2708/patches-4.19/950-0261-lan78xx-Debounce-link-events-to-minimize-poll-storm.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0260-ASoC-Add-support-for-AudioSense-Pi-add-on-soundcard.patch [moved from target/linux/brcm2708/patches-4.19/950-0262-ASoC-Add-support-for-AudioSense-Pi-add-on-soundcard.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0261-BCM270X-Adding-device-tree-support-for-AudioSense-Pi.patch [moved from target/linux/brcm2708/patches-4.19/950-0263-BCM270X-Adding-device-tree-support-for-AudioSense-Pi.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0262-overlays-sdio-Add-enhanced-1-bit-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0264-overlays-sdio-Add-enhanced-1-bit-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0263-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch [moved from target/linux/brcm2708/patches-4.19/950-0265-dwc_otg-fix-bug-with-port_addr-assignment-for-single.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0264-Added-driver-for-the-HiFiBerry-DAC-ADC-2694.patch [moved from target/linux/brcm2708/patches-4.19/950-0266-Added-driver-for-the-HiFiBerry-DAC-ADC-2694.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0265-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch [moved from target/linux/brcm2708/patches-4.19/950-0267-pwm-Send-a-uevent-on-the-pwmchip-device-upon-channel.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0266-overlays-Add-ssd1306-overlay-for-OLED-display.patch [moved from target/linux/brcm2708/patches-4.19/950-0268-overlays-Add-ssd1306-overlay-for-OLED-display.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0267-overlays-mcp23017-Support-the-MCP23008.patch [moved from target/linux/brcm2708/patches-4.19/950-0269-overlays-mcp23017-Support-the-MCP23008.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0268-overlays-Add-mcp342x-overlay.patch [moved from target/linux/brcm2708/patches-4.19/950-0270-overlays-Add-mcp342x-overlay.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0269-char-vcio-Add-compat-ioctl-handling.patch [moved from target/linux/brcm2708/patches-4.19/950-0271-char-vcio-Add-compat-ioctl-handling.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0270-char-vcio-Fail-probe-if-rpi_firmware-is-not-found.patch [moved from target/linux/brcm2708/patches-4.19/950-0272-char-vcio-Fail-probe-if-rpi_firmware-is-not-found.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0271-staging-mmal-vchiq-Fix-client_component-for-64-bit-k.patch [moved from target/linux/brcm2708/patches-4.19/950-0273-staging-mmal-vchiq-Fix-client_component-for-64-bit-k.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0272-staging-bcm2835-camera-Add-sanity-checks-for-queue_s.patch [moved from target/linux/brcm2708/patches-4.19/950-0274-staging-bcm2835-camera-Add-sanity-checks-for-queue_s.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0273-staging-bcm2835-camera-Set-the-field-value-within-ea.patch [moved from target/linux/brcm2708/patches-4.19/950-0275-staging-bcm2835-camera-Set-the-field-value-within-ea.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0274-char-vc_mem-Fix-up-compat-ioctls-for-64bit-kernel.patch [moved from target/linux/brcm2708/patches-4.19/950-0276-char-vc_mem-Fix-up-compat-ioctls-for-64bit-kernel.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0275-char-vc_mem-Fix-all-coding-style-issues.patch [moved from target/linux/brcm2708/patches-4.19/950-0277-char-vc_mem-Fix-all-coding-style-issues.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0276-clk-clk-bcm2835-Use-zd-when-printing-size_t.patch [moved from target/linux/brcm2708/patches-4.19/950-0278-clk-clk-bcm2835-Use-zd-when-printing-size_t.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0277-mfd-Add-rpi_sense_core-of-compatible-string.patch [moved from target/linux/brcm2708/patches-4.19/950-0279-mfd-Add-rpi_sense_core-of-compatible-string.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0278-gpu-vc4_firmware_kms-Fix-up-64-bit-compile-warnings.patch [moved from target/linux/brcm2708/patches-4.19/950-0280-gpu-vc4_firmware_kms-Fix-up-64-bit-compile-warnings.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0279-input-rpi-ft5406-Clear-build-warning-on-64-bit-build.patch [moved from target/linux/brcm2708/patches-4.19/950-0281-input-rpi-ft5406-Clear-build-warning-on-64-bit-build.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0280-dtoverlays-Correct-DT-handling-camera-GPIOs.patch [moved from target/linux/brcm2708/patches-4.19/950-0282-dtoverlays-Correct-DT-handling-camera-GPIOs.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0281-media-ov5647-Use-gpiod_set_value_cansleep.patch [moved from target/linux/brcm2708/patches-4.19/950-0283-media-ov5647-Use-gpiod_set_value_cansleep.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0282-media-bcm2835-unicam-Power-on-subdev-on-open-release.patch [moved from target/linux/brcm2708/patches-4.19/950-0284-media-bcm2835-unicam-Power-on-subdev-on-open-release.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0283-audioinjector-octo-revert-to-dummy-supplies.patch [moved from target/linux/brcm2708/patches-4.19/950-0285-audioinjector-octo-revert-to-dummy-supplies.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0284-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch [moved from target/linux/brcm2708/patches-4.19/950-0286-staging-bcm2835-camera-Correct-ctrl-min-max-step-def.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0285-staging-bcm2835-codec-variable-vb2-may-be-used-unini.patch [moved from target/linux/brcm2708/patches-4.19/950-0287-staging-bcm2835-codec-variable-vb2-may-be-used-unini.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0286-staging-bcm2835-codec-Fix-potentially-uninitialised-.patch [moved from target/linux/brcm2708/patches-4.19/950-0288-staging-bcm2835-codec-Fix-potentially-uninitialised-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0287-video-bcm2708_fb-Add-compat_ioctl-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0289-video-bcm2708_fb-Add-compat_ioctl-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0288-video-bcm2708_fb-Fix-warnings-on-64-bit-builds.patch [moved from target/linux/brcm2708/patches-4.19/950-0290-video-bcm2708_fb-Fix-warnings-on-64-bit-builds.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0289-video-bcm2708_fb-Clean-up-coding-style-issues.patch [moved from target/linux/brcm2708/patches-4.19/950-0291-video-bcm2708_fb-Clean-up-coding-style-issues.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0290-bcm2835-dma-Add-support-for-per-channel-flags.patch [moved from target/linux/brcm2708/patches-4.19/950-0292-bcm2835-dma-Add-support-for-per-channel-flags.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0291-bcm283x-Set-the-DISDEBUG-flag-for-SD-transfers.patch [moved from target/linux/brcm2708/patches-4.19/950-0293-bcm283x-Set-the-DISDEBUG-flag-for-SD-transfers.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0292-ASoC-pcm512x-Implement-the-digital_mute-interface.patch [moved from target/linux/brcm2708/patches-4.19/950-0294-ASoC-pcm512x-Implement-the-digital_mute-interface.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0293-ASoC-pcm512x-Fix-a-double-unlock-in-pcm512x_digital_.patch [moved from target/linux/brcm2708/patches-4.19/950-0295-ASoC-pcm512x-Fix-a-double-unlock-in-pcm512x_digital_.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0294-usb-dwc_otg-Clean-up-build-warnings-on-64bit-kernels.patch [moved from target/linux/brcm2708/patches-4.19/950-0296-usb-dwc_otg-Clean-up-build-warnings-on-64bit-kernels.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0295-usb-dwc_otg-Use-dma-allocation-for-mphi-dummy_send-b.patch [moved from target/linux/brcm2708/patches-4.19/950-0297-usb-dwc_otg-Use-dma-allocation-for-mphi-dummy_send-b.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0296-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch [moved from target/linux/brcm2708/patches-4.19/950-0298-staging-vchiq_arm-Set-up-dma-ranges-on-child-devices.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0297-staging-vc-sm-cma-Correct-DMA-configuration.patch [moved from target/linux/brcm2708/patches-4.19/950-0299-staging-vc-sm-cma-Correct-DMA-configuration.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0298-staging-vc-sm-cma-Use-a-void-pointer-as-the-handle-w.patch [moved from target/linux/brcm2708/patches-4.19/950-0300-staging-vc-sm-cma-Use-a-void-pointer-as-the-handle-w.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0299-staging-vc-sm-cma-Fix-up-for-64bit-builds.patch [moved from target/linux/brcm2708/patches-4.19/950-0301-staging-vc-sm-cma-Fix-up-for-64bit-builds.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0300-configs-Enable-the-AD193x-codecs.patch [moved from target/linux/brcm2708/patches-4.19/950-0302-configs-Enable-the-AD193x-codecs.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0301-overlays-balenaFin-v1.1.0-carrier-board-update.patch [moved from target/linux/brcm2708/patches-4.19/950-0303-overlays-balenaFin-v1.1.0-carrier-board-update.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0302-gpu-vc4-fkms-Update-driver-to-not-use-plane-crtc.patch [moved from target/linux/brcm2708/patches-4.19/950-0304-gpu-vc4-fkms-Update-driver-to-not-use-plane-crtc.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0303-drm-vc4-Programming-the-CTM-is-conditional-on-runnin.patch [moved from target/linux/brcm2708/patches-4.19/950-0305-drm-vc4-Programming-the-CTM-is-conditional-on-runnin.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0304-staging-mmal_vchiq-Add-in-the-Bayer-encoding-formats.patch [moved from target/linux/brcm2708/patches-4.19/950-0306-staging-mmal_vchiq-Add-in-the-Bayer-encoding-formats.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0305-staging-mmal-vchiq-Always-return-the-param-size-from.patch [moved from target/linux/brcm2708/patches-4.19/950-0307-staging-mmal-vchiq-Always-return-the-param-size-from.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0306-staging-mmal-vchiq-If-the-VPU-returns-an-error-don-t.patch [moved from target/linux/brcm2708/patches-4.19/950-0308-staging-mmal-vchiq-If-the-VPU-returns-an-error-don-t.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0307-staging-bcm2835_codec-Query-supported-formats-from-t.patch [moved from target/linux/brcm2708/patches-4.19/950-0309-staging-bcm2835_codec-Query-supported-formats-from-t.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0308-staging-bcm2835_codec-Add-support-for-the-ISP-as-an-.patch [moved from target/linux/brcm2708/patches-4.19/950-0310-staging-bcm2835_codec-Add-support-for-the-ISP-as-an-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0309-staging-bcm2835_codec-Add-an-option-for-ignoring-Bay.patch [moved from target/linux/brcm2708/patches-4.19/950-0311-staging-bcm2835_codec-Add-an-option-for-ignoring-Bay.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0310-staging-bcm2835_codec-Fix-handling-of-VB2_MEMORY_DMA.patch [moved from target/linux/brcm2708/patches-4.19/950-0312-staging-bcm2835_codec-Fix-handling-of-VB2_MEMORY_DMA.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0311-staging-mmal-vchiq-Update-mmal_parameters.h-with-rec.patch [moved from target/linux/brcm2708/patches-4.19/950-0313-staging-mmal-vchiq-Update-mmal_parameters.h-with-rec.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0312-staging-bcm2835_codec-Include-timing-info-in-SPS-hea.patch [moved from target/linux/brcm2708/patches-4.19/950-0314-staging-bcm2835_codec-Include-timing-info-in-SPS-hea.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0313-drm-vc4-Don-t-wait-for-vblank-on-fkms-cursor-updates.patch [moved from target/linux/brcm2708/patches-4.19/950-0315-drm-vc4-Don-t-wait-for-vblank-on-fkms-cursor-updates.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0314-Fix-for-Pisound-kernel-module-in-Real-Time-kernel-co.patch [moved from target/linux/brcm2708/patches-4.19/950-0316-Fix-for-Pisound-kernel-module-in-Real-Time-kernel-co.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0315-Added-mute-stream-func.patch [moved from target/linux/brcm2708/patches-4.19/950-0317-Added-mute-stream-func.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0316-lan78xx-EEE-support-is-now-a-PHY-property.patch [moved from target/linux/brcm2708/patches-4.19/950-0318-lan78xx-EEE-support-is-now-a-PHY-property.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0317-staging-vc_sm_cma-Remove-erroneous-misc_deregister.patch [moved from target/linux/brcm2708/patches-4.19/950-0319-staging-vc_sm_cma-Remove-erroneous-misc_deregister.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0318-vcsm-Fix-makefile-include-on-out-of-tree-builds.patch [moved from target/linux/brcm2708/patches-4.19/950-0320-vcsm-Fix-makefile-include-on-out-of-tree-builds.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0319-vcsm-Remove-set-but-unused-variable.patch [moved from target/linux/brcm2708/patches-4.19/950-0321-vcsm-Remove-set-but-unused-variable.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0320-vcsm-Reduce-scope-of-local-functions.patch [moved from target/linux/brcm2708/patches-4.19/950-0322-vcsm-Reduce-scope-of-local-functions.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0321-staging-bcm2835-codec-NULL-component-handle-on-queue.patch [moved from target/linux/brcm2708/patches-4.19/950-0323-staging-bcm2835-codec-NULL-component-handle-on-queue.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0322-staging-vc-sm-cma-Remove-the-debugfs-directory-on-re.patch [moved from target/linux/brcm2708/patches-4.19/950-0324-staging-vc-sm-cma-Remove-the-debugfs-directory-on-re.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0323-staging-vc-sm-cma-Use-devm_-allocs-for-sm_state.patch [moved from target/linux/brcm2708/patches-4.19/950-0325-staging-vc-sm-cma-Use-devm_-allocs-for-sm_state.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0324-staging-vc-sm-cma-Don-t-fail-if-debugfs-calls-fail.patch [moved from target/linux/brcm2708/patches-4.19/950-0326-staging-vc-sm-cma-Don-t-fail-if-debugfs-calls-fail.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0325-staging-vc-sm-cma-Ensure-mutex-and-idr-are-destroyed.patch [moved from target/linux/brcm2708/patches-4.19/950-0327-staging-vc-sm-cma-Ensure-mutex-and-idr-are-destroyed.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0326-staging-bcm2835_codec-Clean-up-logging-on-unloading-.patch [moved from target/linux/brcm2708/patches-4.19/950-0328-staging-bcm2835_codec-Clean-up-logging-on-unloading-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0327-bcm2835-sdhost-Allow-for-sg-entries-that-cross-pages.patch [moved from target/linux/brcm2708/patches-4.19/950-0329-bcm2835-sdhost-Allow-for-sg-entries-that-cross-pages.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0328-overlays-sdio-Added-4-bit-support-on-GPIOs-34-39.-29.patch [moved from target/linux/brcm2708/patches-4.19/950-0330-overlays-sdio-Added-4-bit-support-on-GPIOs-34-39.-29.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0329-overlays-Fix-multiple-instantiation-of-sc16is7xx.patch [moved from target/linux/brcm2708/patches-4.19/950-0331-overlays-Fix-multiple-instantiation-of-sc16is7xx.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0330-bcm2835-mmc-Fix-DMA-channel-leak.patch [moved from target/linux/brcm2708/patches-4.19/950-0332-bcm2835-mmc-Fix-DMA-channel-leak.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0331-bcm2835-mmc-Fix-struct-mmc_host-leak-on-probe.patch [moved from target/linux/brcm2708/patches-4.19/950-0333-bcm2835-mmc-Fix-struct-mmc_host-leak-on-probe.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0332-bcm2835-mmc-Fix-duplicate-free_irq-on-remove.patch [moved from target/linux/brcm2708/patches-4.19/950-0334-bcm2835-mmc-Fix-duplicate-free_irq-on-remove.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0333-bcm2835-mmc-Handle-mmc_add_host-errors.patch [moved from target/linux/brcm2708/patches-4.19/950-0335-bcm2835-mmc-Handle-mmc_add_host-errors.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0334-bcm2835-mmc-Deduplicate-reset-of-driver-data-on-remo.patch [moved from target/linux/brcm2708/patches-4.19/950-0336-bcm2835-mmc-Deduplicate-reset-of-driver-data-on-remo.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0335-overlays-Add-max17040-support-to-i2c-sensor.patch [moved from target/linux/brcm2708/patches-4.19/950-0337-overlays-Add-max17040-support-to-i2c-sensor.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0336-media-bcm2835-unicam-Add-support-for-enum-framesizes.patch [moved from target/linux/brcm2708/patches-4.19/950-0338-media-bcm2835-unicam-Add-support-for-enum-framesizes.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0337-staging-bcm2835-codec-Refactor-default-resolution-co.patch [moved from target/linux/brcm2708/patches-4.19/950-0339-staging-bcm2835-codec-Refactor-default-resolution-co.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0338-nvmem-add-type-attribute.patch [moved from target/linux/brcm2708/patches-4.19/950-0340-nvmem-add-type-attribute.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0339-rtc-rv3028-add-new-driver.patch [moved from target/linux/brcm2708/patches-4.19/950-0341-rtc-rv3028-add-new-driver.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0340-overlays-Add-rv3028-to-i2c-rtc.patch [moved from target/linux/brcm2708/patches-4.19/950-0342-overlays-Add-rv3028-to-i2c-rtc.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0341-ASoC-tlv320aic32x4-SND_SOC_DAPM_MICBIAS-is-deprecate.patch [moved from target/linux/brcm2708/patches-4.19/950-0343-ASoC-tlv320aic32x4-SND_SOC_DAPM_MICBIAS-is-deprecate.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0342-ASoC-tlv320aic32x4-Break-out-clock-setting-into-sepa.patch [moved from target/linux/brcm2708/patches-4.19/950-0344-ASoC-tlv320aic32x4-Break-out-clock-setting-into-sepa.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0343-ASoC-tlv320aic32x4-Properly-Set-Processing-Blocks.patch [moved from target/linux/brcm2708/patches-4.19/950-0345-ASoC-tlv320aic32x4-Properly-Set-Processing-Blocks.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0344-ASoC-tlv320aic32x4-Model-PLL-in-CCF.patch [moved from target/linux/brcm2708/patches-4.19/950-0346-ASoC-tlv320aic32x4-Model-PLL-in-CCF.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0345-ASoC-tlv320aic32x4-Model-CODEC_CLKIN-in-CCF.patch [moved from target/linux/brcm2708/patches-4.19/950-0347-ASoC-tlv320aic32x4-Model-CODEC_CLKIN-in-CCF.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0346-ASoC-tlv320aic32x4-Model-DAC-ADC-dividers-in-CCF.patch [moved from target/linux/brcm2708/patches-4.19/950-0348-ASoC-tlv320aic32x4-Model-DAC-ADC-dividers-in-CCF.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0347-ASoC-tlv320aic32x4-Model-BDIV-divider-in-CCF.patch [moved from target/linux/brcm2708/patches-4.19/950-0349-ASoC-tlv320aic32x4-Model-BDIV-divider-in-CCF.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0348-ASoC-tlv320aic32x4-Control-clock-gating-with-CCF.patch [moved from target/linux/brcm2708/patches-4.19/950-0350-ASoC-tlv320aic32x4-Control-clock-gating-with-CCF.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0349-ASoC-tlv320aic32x4-Move-aosr-and-dosr-setting-to-sep.patch [moved from target/linux/brcm2708/patches-4.19/950-0351-ASoC-tlv320aic32x4-Move-aosr-and-dosr-setting-to-sep.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0350-ASoC-tlv320aic32x4-Dynamically-Determine-Clocking.patch [moved from target/linux/brcm2708/patches-4.19/950-0352-ASoC-tlv320aic32x4-Dynamically-Determine-Clocking.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0351-ASoC-tlv320aic32x4-Restructure-set_dai_sysclk.patch [moved from target/linux/brcm2708/patches-4.19/950-0353-ASoC-tlv320aic32x4-Restructure-set_dai_sysclk.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0352-ASoC-tlv320aic32x4-Remove-mclk-references.patch [moved from target/linux/brcm2708/patches-4.19/950-0354-ASoC-tlv320aic32x4-Remove-mclk-references.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0353-ASoC-tlv320aic32x4-Allow-192000-Sample-Rate.patch [moved from target/linux/brcm2708/patches-4.19/950-0355-ASoC-tlv320aic32x4-Allow-192000-Sample-Rate.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0354-ASoC-tlv320aic32x4-Only-enable-with-common-clock.patch [moved from target/linux/brcm2708/patches-4.19/950-0356-ASoC-tlv320aic32x4-Only-enable-with-common-clock.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0355-Audiophonics-I-Sabre-9038Q2M-DAC-driver.patch [moved from target/linux/brcm2708/patches-4.19/950-0357-Audiophonics-I-Sabre-9038Q2M-DAC-driver.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0356-ASoC-tlv320aic32x4-Change-author-s-name.patch [moved from target/linux/brcm2708/patches-4.19/950-0358-ASoC-tlv320aic32x4-Change-author-s-name.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0357-ASoC-tlv320aic32x4-Update-copyright-and-use-SPDX-ide.patch [moved from target/linux/brcm2708/patches-4.19/950-0359-ASoC-tlv320aic32x4-Update-copyright-and-use-SPDX-ide.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0358-ASoC-tlv320aic32x4-Add-Switch-for-Setting-Common-Mod.patch [moved from target/linux/brcm2708/patches-4.19/950-0360-ASoC-tlv320aic32x4-Add-Switch-for-Setting-Common-Mod.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0359-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch [moved from target/linux/brcm2708/patches-4.19/950-0361-ASoC-tlv320aic32x4-Add-Playback-PowerTune-Controls.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0360-dtoverlays-Add-Support-for-the-UDRC-DRAWS.patch [moved from target/linux/brcm2708/patches-4.19/950-0362-dtoverlays-Add-Support-for-the-UDRC-DRAWS.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0361-dwc_otg-only-do_split-when-we-actually-need-to-do-a-.patch [moved from target/linux/brcm2708/patches-4.19/950-0363-dwc_otg-only-do_split-when-we-actually-need-to-do-a-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0362-Input-ili210x-fetch-touchscreen-geometry-from-DT.patch [moved from target/linux/brcm2708/patches-4.19/950-0364-Input-ili210x-fetch-touchscreen-geometry-from-DT.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0363-Input-ili210x-add-DT-binding-document.patch [moved from target/linux/brcm2708/patches-4.19/950-0365-Input-ili210x-add-DT-binding-document.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0364-BCM2708-Add-core-Device-Tree-support-ilitek251x.patch [moved from target/linux/brcm2708/patches-4.19/950-0366-BCM2708-Add-core-Device-Tree-support-ilitek251x.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0365-dwc_otg-fix-locking-around-dequeueing-and-killing-UR.patch [moved from target/linux/brcm2708/patches-4.19/950-0367-dwc_otg-fix-locking-around-dequeueing-and-killing-UR.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0366-rtc-rv3028-Add-backup-switchover-mode-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0368-rtc-rv3028-Add-backup-switchover-mode-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0367-dt-bindings-rv3028-backup-switchover-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0369-dt-bindings-rv3028-backup-switchover-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0368-overlays-Add-rv3028-backup-switchover-support-to-i2c.patch [moved from target/linux/brcm2708/patches-4.19/950-0370-overlays-Add-rv3028-backup-switchover-support-to-i2c.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0369-Maxim-MAX98357A-I2S-DAC-overlay-2935.patch [moved from target/linux/brcm2708/patches-4.19/950-0371-Maxim-MAX98357A-I2S-DAC-overlay-2935.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0370-sound-Fixes-for-audioinjector-octo-under-4.19.patch [moved from target/linux/brcm2708/patches-4.19/950-0372-sound-Fixes-for-audioinjector-octo-under-4.19.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0371-overlays-Add-PiGlow-overlay.patch [moved from target/linux/brcm2708/patches-4.19/950-0373-overlays-Add-PiGlow-overlay.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0372-staging-bcm2835-audio-Clean-up-mutex-locks.patch [moved from target/linux/brcm2708/patches-4.19/950-0374-staging-bcm2835-audio-Clean-up-mutex-locks.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0373-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch [moved from target/linux/brcm2708/patches-4.19/950-0375-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0374-staging-bcm2835-audio-Clean-up-include-files-in-bcm2.patch [moved from target/linux/brcm2708/patches-4.19/950-0376-staging-bcm2835-audio-Clean-up-include-files-in-bcm2.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0375-staging-bcm2835-audio-Remove-redundant-substream-mas.patch [moved from target/linux/brcm2708/patches-4.19/950-0377-staging-bcm2835-audio-Remove-redundant-substream-mas.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0376-staging-bcm2835-audio-Fix-mute-controls-volume-handl.patch [moved from target/linux/brcm2708/patches-4.19/950-0378-staging-bcm2835-audio-Fix-mute-controls-volume-handl.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0377-staging-bcm2835-audio-Remove-redundant-function-call.patch [moved from target/linux/brcm2708/patches-4.19/950-0379-staging-bcm2835-audio-Remove-redundant-function-call.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0378-staging-bcm2835-audio-Remove-superfluous-open-flag.patch [moved from target/linux/brcm2708/patches-4.19/950-0380-staging-bcm2835-audio-Remove-superfluous-open-flag.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0379-staging-bcm2835-audio-Drop-useless-running-flag-and-.patch [moved from target/linux/brcm2708/patches-4.19/950-0381-staging-bcm2835-audio-Drop-useless-running-flag-and-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0380-staging-bcm2835-audio-Fix-incorrect-draining-handlin.patch [moved from target/linux/brcm2708/patches-4.19/950-0382-staging-bcm2835-audio-Fix-incorrect-draining-handlin.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0381-staging-bcm2835-audio-Kill-unused-spinlock.patch [moved from target/linux/brcm2708/patches-4.19/950-0383-staging-bcm2835-audio-Kill-unused-spinlock.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0382-staging-bcm2835-audio-Use-PCM-runtime-values-instead.patch [moved from target/linux/brcm2708/patches-4.19/950-0384-staging-bcm2835-audio-Use-PCM-runtime-values-instead.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0383-staging-bcm2835-audio-Drop-unnecessary-pcm-indirect-.patch [moved from target/linux/brcm2708/patches-4.19/950-0385-staging-bcm2835-audio-Drop-unnecessary-pcm-indirect-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0384-staging-bcm2835-audio-Drop-useless-NULL-check.patch [moved from target/linux/brcm2708/patches-4.19/950-0386-staging-bcm2835-audio-Drop-useless-NULL-check.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0385-staging-bcm2835-audio-Propagate-parameter-setup-erro.patch [moved from target/linux/brcm2708/patches-4.19/950-0387-staging-bcm2835-audio-Propagate-parameter-setup-erro.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0386-staging-bcm2835-audio-Drop-debug-messages-in-bcm2835.patch [moved from target/linux/brcm2708/patches-4.19/950-0388-staging-bcm2835-audio-Drop-debug-messages-in-bcm2835.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0387-staging-bcm2835-audio-Drop-superfluous-mutex-lock-du.patch [moved from target/linux/brcm2708/patches-4.19/950-0389-staging-bcm2835-audio-Drop-superfluous-mutex-lock-du.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0388-staging-bcm2835-audio-Add-10ms-period-constraint.patch [moved from target/linux/brcm2708/patches-4.19/950-0390-staging-bcm2835-audio-Add-10ms-period-constraint.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0389-staging-bcm2835-audio-Make-single-vchi-handle.patch [moved from target/linux/brcm2708/patches-4.19/950-0391-staging-bcm2835-audio-Make-single-vchi-handle.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0390-staging-bcm2835-audio-Code-refactoring-of-vchiq-acce.patch [moved from target/linux/brcm2708/patches-4.19/950-0392-staging-bcm2835-audio-Code-refactoring-of-vchiq-acce.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0391-staging-bcm2835-audio-Operate-non-atomic-PCM-ops.patch [moved from target/linux/brcm2708/patches-4.19/950-0393-staging-bcm2835-audio-Operate-non-atomic-PCM-ops.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0392-staging-bcm2835-audio-Use-card-private_data.patch [moved from target/linux/brcm2708/patches-4.19/950-0394-staging-bcm2835-audio-Use-card-private_data.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0393-staging-bcm2835-audio-Use-standard-error-print-helpe.patch [moved from target/linux/brcm2708/patches-4.19/950-0395-staging-bcm2835-audio-Use-standard-error-print-helpe.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0394-staging-bcm2835-audio-Remove-unnecessary-header-file.patch [moved from target/linux/brcm2708/patches-4.19/950-0396-staging-bcm2835-audio-Remove-unnecessary-header-file.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0395-staging-bcm2835-audio-Move-module-parameter-descript.patch [moved from target/linux/brcm2708/patches-4.19/950-0397-staging-bcm2835-audio-Move-module-parameter-descript.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0396-staging-bcm2835-audio-Use-coherent-device-buffers.patch [moved from target/linux/brcm2708/patches-4.19/950-0398-staging-bcm2835-audio-Use-coherent-device-buffers.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0397-staging-bcm2835-audio-Set-SNDRV_PCM_INFO_SYNC_APPLPT.patch [moved from target/linux/brcm2708/patches-4.19/950-0399-staging-bcm2835-audio-Set-SNDRV_PCM_INFO_SYNC_APPLPT.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0398-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch [moved from target/linux/brcm2708/patches-4.19/950-0400-staging-bcm2835-audio-Simplify-PCM-creation-helpers.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0399-staging-bcm2835-audio-Simplify-kctl-creation-helpers.patch [moved from target/linux/brcm2708/patches-4.19/950-0401-staging-bcm2835-audio-Simplify-kctl-creation-helpers.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0400-staging-bcm2835-audio-Simplify-card-object-managemen.patch [moved from target/linux/brcm2708/patches-4.19/950-0402-staging-bcm2835-audio-Simplify-card-object-managemen.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0401-staging-bcm2835-audio-unify-FOURCC-command-definitio.patch [moved from target/linux/brcm2708/patches-4.19/950-0403-staging-bcm2835-audio-unify-FOURCC-command-definitio.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0402-staging-bcm2835-audio-don-t-initialize-memory-twice.patch [moved from target/linux/brcm2708/patches-4.19/950-0404-staging-bcm2835-audio-don-t-initialize-memory-twice.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0403-staging-bcm2835-audio-reorder-variable-declarations-.patch [moved from target/linux/brcm2708/patches-4.19/950-0405-staging-bcm2835-audio-reorder-variable-declarations-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0404-staging-bcm2835-audio-use-anonymous-union-in-struct-.patch [moved from target/linux/brcm2708/patches-4.19/950-0406-staging-bcm2835-audio-use-anonymous-union-in-struct-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0405-staging-bcm2835-audio-more-generic-probe-function-na.patch [moved from target/linux/brcm2708/patches-4.19/950-0407-staging-bcm2835-audio-more-generic-probe-function-na.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0406-staging-bcm2835-audio-rename-platform_driver-structu.patch [moved from target/linux/brcm2708/patches-4.19/950-0408-staging-bcm2835-audio-rename-platform_driver-structu.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0407-staging-bcm2835-audio-update-TODO.patch [moved from target/linux/brcm2708/patches-4.19/950-0409-staging-bcm2835-audio-update-TODO.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0408-staging-bcm2835-audio-interpolate-audio-delay.patch [moved from target/linux/brcm2708/patches-4.19/950-0410-staging-bcm2835-audio-interpolate-audio-delay.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0409-staging-bcm2835-audio-Enable-compile-test.patch [moved from target/linux/brcm2708/patches-4.19/950-0411-staging-bcm2835-audio-Enable-compile-test.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0410-staging-bcm2835-audio-use-module_platform_driver-mac.patch [moved from target/linux/brcm2708/patches-4.19/950-0412-staging-bcm2835-audio-use-module_platform_driver-mac.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0411-staging-bcm2835-audio-double-free-in-init-error-path.patch [moved from target/linux/brcm2708/patches-4.19/950-0413-staging-bcm2835-audio-double-free-in-init-error-path.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0412-dts-Increase-default-coherent-pool-size.patch [moved from target/linux/brcm2708/patches-4.19/950-0414-dts-Increase-default-coherent-pool-size.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0413-lan78xx-use-default-alignment-for-rx-buffers.patch [moved from target/linux/brcm2708/patches-4.19/950-0415-lan78xx-use-default-alignment-for-rx-buffers.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0414-staging-bcm2835-codec-Correct-port-width-calc-for-tr.patch [moved from target/linux/brcm2708/patches-4.19/950-0416-staging-bcm2835-codec-Correct-port-width-calc-for-tr.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0415-staging-bcm2835-codec-Remove-height-padding-for-ISP-.patch [moved from target/linux/brcm2708/patches-4.19/950-0417-staging-bcm2835-codec-Remove-height-padding-for-ISP-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0416-staging-mmal-vchiq-Free-the-event-context-for-contro.patch [moved from target/linux/brcm2708/patches-4.19/950-0418-staging-mmal-vchiq-Free-the-event-context-for-contro.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0417-BCM270X_DT-Also-set-coherent_pool-1M-for-BT-Pis.patch [moved from target/linux/brcm2708/patches-4.19/950-0419-BCM270X_DT-Also-set-coherent_pool-1M-for-BT-Pis.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0418-arm-dts-overlays-rpi-sense-add-upstream-humidity-com.patch [moved from target/linux/brcm2708/patches-4.19/950-0420-arm-dts-overlays-rpi-sense-add-upstream-humidity-com.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0419-staging-mmal-vchiq-Fix-memory-leak-in-error-path.patch [moved from target/linux/brcm2708/patches-4.19/950-0421-staging-mmal-vchiq-Fix-memory-leak-in-error-path.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0420-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch [moved from target/linux/brcm2708/patches-4.19/950-0422-staging-vchiq-mmal-Fix-memory-leak-of-vchiq-instance.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0421-Added-IQaudIO-Pi-Codec-board-support-2969.patch [moved from target/linux/brcm2708/patches-4.19/950-0423-Added-IQaudIO-Pi-Codec-board-support-2969.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0422-w1-ds2408-reset-on-output_write-retry-with-readback.patch [moved from target/linux/brcm2708/patches-4.19/950-0424-w1-ds2408-reset-on-output_write-retry-with-readback.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0423-w1-ds2482-cosmetic-fixes-after-54865314f5a1.patch [moved from target/linux/brcm2708/patches-4.19/950-0425-w1-ds2482-cosmetic-fixes-after-54865314f5a1.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0424-sound-pcm512x-codec-Adding-352.8kHz-samplerate-suppo.patch [moved from target/linux/brcm2708/patches-4.19/950-0426-sound-pcm512x-codec-Adding-352.8kHz-samplerate-suppo.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0425-ASoC-decommissioning-driver-for-3Dlab-Nano-soundcard.patch [moved from target/linux/brcm2708/patches-4.19/950-0427-ASoC-decommissioning-driver-for-3Dlab-Nano-soundcard.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0426-.gitignore-Add-.dtbo-explicitly.patch [moved from target/linux/brcm2708/patches-4.19/950-0428-.gitignore-Add-.dtbo-explicitly.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0427-Bluetooth-Check-key-sizes-only-when-Secure-Simple-Pa.patch [moved from target/linux/brcm2708/patches-4.19/950-0429-Bluetooth-Check-key-sizes-only-when-Secure-Simple-Pa.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0428-usb-dwc_otg-Clean-up-interrupt-claiming-code.patch [moved from target/linux/brcm2708/patches-4.19/950-0430-usb-dwc_otg-Clean-up-interrupt-claiming-code.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0429-overlays-Delete-the-deprecated-sdio-1bit-overlay.patch [moved from target/linux/brcm2708/patches-4.19/950-0431-overlays-Delete-the-deprecated-sdio-1bit-overlay.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0430-overlays-Remove-upstream-aux-interrupt-overlay.patch [moved from target/linux/brcm2708/patches-4.19/950-0432-overlays-Remove-upstream-aux-interrupt-overlay.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0431-overlays-Standardise-on-compatible-brcm-bcm2835.patch [moved from target/linux/brcm2708/patches-4.19/950-0433-overlays-Standardise-on-compatible-brcm-bcm2835.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0432-vc4-Remove-interrupt-and-DMA-trampling.patch [moved from target/linux/brcm2708/patches-4.19/950-0434-vc4-Remove-interrupt-and-DMA-trampling.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0433-BCM270X_DT-Add-non-removable-clone-of-mmc-node.patch [moved from target/linux/brcm2708/patches-4.19/950-0435-BCM270X_DT-Add-non-removable-clone-of-mmc-node.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0434-BCM270X_DT-usb-Refactor-DTS-and-overlays.patch [moved from target/linux/brcm2708/patches-4.19/950-0436-BCM270X_DT-usb-Refactor-DTS-and-overlays.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0435-overlays-Update-upstream-overlay.patch [moved from target/linux/brcm2708/patches-4.19/950-0437-overlays-Update-upstream-overlay.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0436-w1-ds2408-Fix-typo-after-49695ac46861-reset-on-outpu.patch [moved from target/linux/brcm2708/patches-4.19/950-0438-w1-ds2408-Fix-typo-after-49695ac46861-reset-on-outpu.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0437-BCM270X_DT-Rename-Pi-Zero-W-DT-files.patch [moved from target/linux/brcm2708/patches-4.19/950-0439-BCM270X_DT-Rename-Pi-Zero-W-DT-files.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0438-BCM270X_DT-Create-bcm2708-rpi-zero.dts.patch [moved from target/linux/brcm2708/patches-4.19/950-0440-BCM270X_DT-Create-bcm2708-rpi-zero.dts.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0439-overlays-Fix-mmc-related-overlays-after-refactor.patch [moved from target/linux/brcm2708/patches-4.19/950-0441-overlays-Fix-mmc-related-overlays-after-refactor.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0440-Fixed-48k-timing-issue.patch [moved from target/linux/brcm2708/patches-4.19/950-0442-Fixed-48k-timing-issue.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0441-staging-bcm2835-codec-Convert-V4L2-nsec-timestamps-t.patch [moved from target/linux/brcm2708/patches-4.19/950-0443-staging-bcm2835-codec-Convert-V4L2-nsec-timestamps-t.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0442-staging-bcm2835-codec-Add-support-for-setting-S_PARM.patch [moved from target/linux/brcm2708/patches-4.19/950-0444-staging-bcm2835-codec-Add-support-for-setting-S_PARM.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0443-w1-w1-gpio-Make-GPIO-an-output-for-strong-pullup.patch [moved from target/linux/brcm2708/patches-4.19/950-0445-w1-w1-gpio-Make-GPIO-an-output-for-strong-pullup.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0444-overlays-Update-w1-gpio-and-w1-gpio-pullup.patch [moved from target/linux/brcm2708/patches-4.19/950-0446-overlays-Update-w1-gpio-and-w1-gpio-pullup.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0445-bcm2835-sdhost-Fix-DMA-channel-leak-on-error-remove.patch [moved from target/linux/brcm2708/patches-4.19/950-0447-bcm2835-sdhost-Fix-DMA-channel-leak-on-error-remove.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0446-i2c-bcm2835-Model-Divider-in-CCF.patch [moved from target/linux/brcm2708/patches-4.19/950-0448-i2c-bcm2835-Model-Divider-in-CCF.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0447-staging-vc04_services-Use-correct-cache-line-size.patch [moved from target/linux/brcm2708/patches-4.19/950-0449-staging-vc04_services-Use-correct-cache-line-size.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0448-tty-amba-pl011-allow-shared-interrupt.patch [moved from target/linux/brcm2708/patches-4.19/950-0450-tty-amba-pl011-allow-shared-interrupt.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0449-ARM-bcm283x-Reduce-register-ranges-for-UART-SPI-and-.patch [moved from target/linux/brcm2708/patches-4.19/950-0451-ARM-bcm283x-Reduce-register-ranges-for-UART-SPI-and-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0450-ARM-bcm283x-Extend-the-WDT-DT-node-out-to-cover-the-.patch [moved from target/linux/brcm2708/patches-4.19/950-0452-ARM-bcm283x-Extend-the-WDT-DT-node-out-to-cover-the-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0451-ARM-dts-Add-label-to-bcm2835-RNG.patch [moved from target/linux/brcm2708/patches-4.19/950-0453-ARM-dts-Add-label-to-bcm2835-RNG.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0452-dts-Use-fb-rather-than-leds-for-dpi-overlay.patch [moved from target/linux/brcm2708/patches-4.19/950-0454-dts-Use-fb-rather-than-leds-for-dpi-overlay.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0453-BCM270X_DT-Minor-tidy-up.patch [moved from target/linux/brcm2708/patches-4.19/950-0455-BCM270X_DT-Minor-tidy-up.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0454-arm-bcm2835-Fix-FIQ-early-ioremap.patch [moved from target/linux/brcm2708/patches-4.19/950-0456-arm-bcm2835-Fix-FIQ-early-ioremap.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0455-Fix-copy_from_user-if-BCM2835_FAST_MEMCPY-n.patch [moved from target/linux/brcm2708/patches-4.19/950-0457-Fix-copy_from_user-if-BCM2835_FAST_MEMCPY-n.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0456-PCI-brcmstb-Add-Broadcom-STB-PCIe-host-controller-dr.patch [moved from target/linux/brcm2708/patches-4.19/950-0458-PCI-brcmstb-Add-Broadcom-STB-PCIe-host-controller-dr.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0457-PCI-brcmstb-Add-dma-range-mapping-for-inbound-traffi.patch [moved from target/linux/brcm2708/patches-4.19/950-0459-PCI-brcmstb-Add-dma-range-mapping-for-inbound-traffi.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0458-PCI-brcmstb-Add-MSI-capability.patch [moved from target/linux/brcm2708/patches-4.19/950-0460-PCI-brcmstb-Add-MSI-capability.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0459-dt-bindings-pci-Add-DT-docs-for-Brcmstb-PCIe-device.patch [moved from target/linux/brcm2708/patches-4.19/950-0461-dt-bindings-pci-Add-DT-docs-for-Brcmstb-PCIe-device.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0460-pcie-brcmstb-Changes-for-BCM2711.patch [moved from target/linux/brcm2708/patches-4.19/950-0462-pcie-brcmstb-Changes-for-BCM2711.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0461-arm-bcm2835-DMA-can-only-address-1GB.patch [moved from target/linux/brcm2708/patches-4.19/950-0463-arm-bcm2835-DMA-can-only-address-1GB.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0462-mmc-bcm2835-sdhost-Support-64-bit-physical-addresses.patch [moved from target/linux/brcm2708/patches-4.19/950-0464-mmc-bcm2835-sdhost-Support-64-bit-physical-addresses.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0463-mmc-sdhci-Mask-spurious-interrupts.patch [moved from target/linux/brcm2708/patches-4.19/950-0465-mmc-sdhci-Mask-spurious-interrupts.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0464-mmc-sdhci-iproc-Add-support-for-emmc2-of-the-BCM2838.patch [moved from target/linux/brcm2708/patches-4.19/950-0466-mmc-sdhci-iproc-Add-support-for-emmc2-of-the-BCM2838.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0465-hwrng-iproc-rng200-Add-BCM2838-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0467-hwrng-iproc-rng200-Add-BCM2838-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0466-thermal-brcmstb_thermal-Add-BCM2838-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0468-thermal-brcmstb_thermal-Add-BCM2838-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0467-vchiq-Add-36-bit-address-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0469-vchiq-Add-36-bit-address-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0468-bcm2835-pcm.c-Support-multichannel-audio.patch [moved from target/linux/brcm2708/patches-4.19/950-0470-bcm2835-pcm.c-Support-multichannel-audio.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0469-bcmgenet-constrain-max-DMA-burst-length.patch [moved from target/linux/brcm2708/patches-4.19/950-0471-bcmgenet-constrain-max-DMA-burst-length.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0470-bcmgenet-Better-coalescing-parameter-defaults.patch [moved from target/linux/brcm2708/patches-4.19/950-0472-bcmgenet-Better-coalescing-parameter-defaults.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0471-net-genet-enable-link-energy-detect-powerdown-for-ex.patch [moved from target/linux/brcm2708/patches-4.19/950-0473-net-genet-enable-link-energy-detect-powerdown-for-ex.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0472-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch [moved from target/linux/brcm2708/patches-4.19/950-0474-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0473-phy-bcm54213pe-configure-the-LED-outputs-to-be-more-.patch [moved from target/linux/brcm2708/patches-4.19/950-0475-phy-bcm54213pe-configure-the-LED-outputs-to-be-more-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0474-dwc_otg-Choose-appropriate-IRQ-handover-strategy.patch [moved from target/linux/brcm2708/patches-4.19/950-0476-dwc_otg-Choose-appropriate-IRQ-handover-strategy.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0475-usb-xhci-Disable-the-XHCI-5-second-timeout.patch [moved from target/linux/brcm2708/patches-4.19/950-0477-usb-xhci-Disable-the-XHCI-5-second-timeout.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0476-usb-xhci-Show-that-the-VIA-VL805-supports-LPM.patch [moved from target/linux/brcm2708/patches-4.19/950-0478-usb-xhci-Show-that-the-VIA-VL805-supports-LPM.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0477-spi-bcm2835-enable-shared-interrupt-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0479-spi-bcm2835-enable-shared-interrupt-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0478-drivers-char-add-chardev-for-mmap-ing-Argon-control-.patch [moved from target/linux/brcm2708/patches-4.19/950-0480-drivers-char-add-chardev-for-mmap-ing-Argon-control-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0479-clk-bcm2835-Don-t-wait-for-pllh-lock.patch [moved from target/linux/brcm2708/patches-4.19/950-0481-clk-bcm2835-Don-t-wait-for-pllh-lock.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0480-bcm2835-pm-Move-bcm2835-watchdog-s-DT-probe-to-an-MF.patch [moved from target/linux/brcm2708/patches-4.19/950-0482-bcm2835-pm-Move-bcm2835-watchdog-s-DT-probe-to-an-MF.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0481-soc-bcm-bcm2835-pm-Add-support-for-power-domains-und.patch [moved from target/linux/brcm2708/patches-4.19/950-0483-soc-bcm-bcm2835-pm-Add-support-for-power-domains-und.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0482-soc-bcm-bcm2835-pm-Fix-PM_IMAGE_PERI-power-domain-su.patch [moved from target/linux/brcm2708/patches-4.19/950-0484-soc-bcm-bcm2835-pm-Fix-PM_IMAGE_PERI-power-domain-su.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0483-soc-bcm-bcm2835-pm-Fix-error-paths-of-initialization.patch [moved from target/linux/brcm2708/patches-4.19/950-0485-soc-bcm-bcm2835-pm-Fix-error-paths-of-initialization.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0484-soc-bcm-bcm2835-pm-Add-support-for-2711.patch [moved from target/linux/brcm2708/patches-4.19/950-0486-soc-bcm-bcm2835-pm-Add-support-for-2711.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0485-drm-expand-drm_syncobj_find_fence-to-support-timelin.patch [moved from target/linux/brcm2708/patches-4.19/950-0487-drm-expand-drm_syncobj_find_fence-to-support-timelin.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0486-drm-v3d-Fix-a-use-after-free-race-accessing-the-sche.patch [moved from target/linux/brcm2708/patches-4.19/950-0488-drm-v3d-Fix-a-use-after-free-race-accessing-the-sche.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0487-drm-v3d-Add-a-little-debugfs-entry-for-measuring-the.patch [moved from target/linux/brcm2708/patches-4.19/950-0489-drm-v3d-Add-a-little-debugfs-entry-for-measuring-the.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0488-drm-v3d-Update-a-comment-about-what-uses-v3d_job_dep.patch [moved from target/linux/brcm2708/patches-4.19/950-0490-drm-v3d-Update-a-comment-about-what-uses-v3d_job_dep.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0489-drm-v3d-Clean-up-the-reservation-object-setup.patch [moved from target/linux/brcm2708/patches-4.19/950-0491-drm-v3d-Clean-up-the-reservation-object-setup.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0490-drm-v3d-Add-support-for-submitting-jobs-to-the-TFU.patch [moved from target/linux/brcm2708/patches-4.19/950-0492-drm-v3d-Add-support-for-submitting-jobs-to-the-TFU.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0491-drm-v3d-Drop-the-dev-argument-to-lock-unlock-of-BO-r.patch [moved from target/linux/brcm2708/patches-4.19/950-0493-drm-v3d-Drop-the-dev-argument-to-lock-unlock-of-BO-r.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0492-drm-v3d-Add-missing-fence-timeline-name-for-TFU.patch [moved from target/linux/brcm2708/patches-4.19/950-0494-drm-v3d-Add-missing-fence-timeline-name-for-TFU.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0493-drm-v3d-Add-more-tracepoints-for-V3D-GPU-rendering.patch [moved from target/linux/brcm2708/patches-4.19/950-0495-drm-v3d-Add-more-tracepoints-for-V3D-GPU-rendering.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0494-drm-v3d-Drop-unused-v3d_flush_caches.patch [moved from target/linux/brcm2708/patches-4.19/950-0496-drm-v3d-Drop-unused-v3d_flush_caches.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0495-drm-v3d-Don-t-bother-flushing-L1TD-at-job-start.patch [moved from target/linux/brcm2708/patches-4.19/950-0497-drm-v3d-Don-t-bother-flushing-L1TD-at-job-start.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0496-drm-v3d-Drop-the-wait-for-L2T-flush-to-complete.patch [moved from target/linux/brcm2708/patches-4.19/950-0498-drm-v3d-Drop-the-wait-for-L2T-flush-to-complete.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0497-drm-v3d-Stop-trying-to-flush-L2C-on-V3D-3.3.patch [moved from target/linux/brcm2708/patches-4.19/950-0499-drm-v3d-Stop-trying-to-flush-L2C-on-V3D-3.3.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0498-drm-v3d-Invalidate-the-caches-from-the-outside-in.patch [moved from target/linux/brcm2708/patches-4.19/950-0500-drm-v3d-Invalidate-the-caches-from-the-outside-in.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0499-drm-v3d-Fix-BO-stats-accounting-for-dma-buf-imported.patch [moved from target/linux/brcm2708/patches-4.19/950-0501-drm-v3d-Fix-BO-stats-accounting-for-dma-buf-imported.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0500-drm-v3d-Update-top-level-kerneldoc-for-the-addition-.patch [moved from target/linux/brcm2708/patches-4.19/950-0502-drm-v3d-Update-top-level-kerneldoc-for-the-addition-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0501-drm-vc4-Fix-oops-at-boot-with-firmwarekms-on-4.19.patch [moved from target/linux/brcm2708/patches-4.19/950-0503-drm-vc4-Fix-oops-at-boot-with-firmwarekms-on-4.19.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0502-drm-v3d-Add-support-for-V3D-v4.2.patch [moved from target/linux/brcm2708/patches-4.19/950-0504-drm-v3d-Add-support-for-V3D-v4.2.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0503-drm-v3d-Don-t-try-to-set-OVRTMUOUT-on-V3D-4.x.patch [moved from target/linux/brcm2708/patches-4.19/950-0505-drm-v3d-Don-t-try-to-set-OVRTMUOUT-on-V3D-4.x.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0504-drm-v3d-Make-sure-the-GPU-is-on-when-measuring-clock.patch [moved from target/linux/brcm2708/patches-4.19/950-0506-drm-v3d-Make-sure-the-GPU-is-on-when-measuring-clock.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0505-drm-v3d-Add-support-for-2711.patch [moved from target/linux/brcm2708/patches-4.19/950-0507-drm-v3d-Add-support-for-2711.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0506-drm-v3d-Skip-MMU-flush-if-the-device-is-currently-of.patch [moved from target/linux/brcm2708/patches-4.19/950-0508-drm-v3d-Skip-MMU-flush-if-the-device-is-currently-of.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0507-drm-v3d-Hook-up-the-runtime-PM-ops.patch [moved from target/linux/brcm2708/patches-4.19/950-0509-drm-v3d-Hook-up-the-runtime-PM-ops.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0508-drm-v3d-HACK-gut-runtime-pm-for-now.patch [moved from target/linux/brcm2708/patches-4.19/950-0510-drm-v3d-HACK-gut-runtime-pm-for-now.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0509-drm-v3d-Update-to-upstream-IRQ-code.patch [moved from target/linux/brcm2708/patches-4.19/950-0511-drm-v3d-Update-to-upstream-IRQ-code.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0510-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch [moved from target/linux/brcm2708/patches-4.19/950-0512-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0511-drm-v3d-Refactor-job-management.patch [moved from target/linux/brcm2708/patches-4.19/950-0513-drm-v3d-Refactor-job-management.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0512-drm-v3d-Add-missing-implicit-synchronization.patch [moved from target/linux/brcm2708/patches-4.19/950-0514-drm-v3d-Add-missing-implicit-synchronization.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0513-drm-vc4-Fix-synchronization-firmwarekms-against-GL-r.patch [moved from target/linux/brcm2708/patches-4.19/950-0515-drm-vc4-Fix-synchronization-firmwarekms-against-GL-r.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0514-drm-vc4-Make-sure-that-vblank-waits-work-without-v3d.patch [moved from target/linux/brcm2708/patches-4.19/950-0516-drm-vc4-Make-sure-that-vblank-waits-work-without-v3d.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0515-drm-vc4-Expose-the-format-modifiers-for-firmware-kms.patch [moved from target/linux/brcm2708/patches-4.19/950-0517-drm-vc4-Expose-the-format-modifiers-for-firmware-kms.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0516-drm-vc4-Fix-vblank-timestamping-for-firmwarekms.patch [moved from target/linux/brcm2708/patches-4.19/950-0518-drm-vc4-Fix-vblank-timestamping-for-firmwarekms.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0517-gpu-vc4-fkms-Switch-to-the-newer-mailbox-frame-buffe.patch [moved from target/linux/brcm2708/patches-4.19/950-0519-gpu-vc4-fkms-Switch-to-the-newer-mailbox-frame-buffe.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0518-drm-vc4-Add-an-overlay-plane-to-vc4-firmware-kms.patch [moved from target/linux/brcm2708/patches-4.19/950-0520-drm-vc4-Add-an-overlay-plane-to-vc4-firmware-kms.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0519-drm-vc4-Increase-max-screen-size-to-4096x4096.patch [moved from target/linux/brcm2708/patches-4.19/950-0521-drm-vc4-Increase-max-screen-size-to-4096x4096.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0520-drm-vc4-Add-support-for-multiple-displays-to-fkms.patch [moved from target/linux/brcm2708/patches-4.19/950-0522-drm-vc4-Add-support-for-multiple-displays-to-fkms.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0521-drm-vc4-Fix-build-warning.patch [moved from target/linux/brcm2708/patches-4.19/950-0523-drm-vc4-Fix-build-warning.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0522-drm-vc4-Select-display-to-blank-during-initialisatio.patch [moved from target/linux/brcm2708/patches-4.19/950-0524-drm-vc4-Select-display-to-blank-during-initialisatio.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0523-drm-vc4-Remove-now-unused-structure.patch [moved from target/linux/brcm2708/patches-4.19/950-0525-drm-vc4-Remove-now-unused-structure.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0524-drm-vc4-Query-the-display-ID-for-each-display-in-FKM.patch [moved from target/linux/brcm2708/patches-4.19/950-0526-drm-vc4-Query-the-display-ID-for-each-display-in-FKM.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0525-drm-vc4-Set-the-display-number-when-querying-the-dis.patch [moved from target/linux/brcm2708/patches-4.19/950-0527-drm-vc4-Set-the-display-number-when-querying-the-dis.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0526-drm-vc4-Need-to-call-drm_crtc_vblank_-on-off-from-vc.patch [moved from target/linux/brcm2708/patches-4.19/950-0528-drm-vc4-Need-to-call-drm_crtc_vblank_-on-off-from-vc.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0527-drm-vc4-Add-support-for-H-V-flips-on-each-plane-for-.patch [moved from target/linux/brcm2708/patches-4.19/950-0529-drm-vc4-Add-support-for-H-V-flips-on-each-plane-for-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0528-drm-vc4-Remove-unused-vc4_fkms_cancel_page_flip-func.patch [moved from target/linux/brcm2708/patches-4.19/950-0530-drm-vc4-Remove-unused-vc4_fkms_cancel_page_flip-func.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0529-drm-vc4-Iterate-over-all-planes-in-vc4_crtc_-dis-en-.patch [moved from target/linux/brcm2708/patches-4.19/950-0531-drm-vc4-Iterate-over-all-planes-in-vc4_crtc_-dis-en-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0530-drm-vc4-Bring-fkms-into-line-with-kms-in-blocking-do.patch [moved from target/linux/brcm2708/patches-4.19/950-0532-drm-vc4-Bring-fkms-into-line-with-kms-in-blocking-do.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0531-drm-vc4-Increase-max_width-height-to-7680.patch [moved from target/linux/brcm2708/patches-4.19/950-0533-drm-vc4-Increase-max_width-height-to-7680.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0532-drm-vc4-FKMS-reads-the-EDID-from-fw-and-supports-mod.patch [moved from target/linux/brcm2708/patches-4.19/950-0534-drm-vc4-FKMS-reads-the-EDID-from-fw-and-supports-mod.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0533-clk-bcm2835-Add-support-for-setting-leaf-clock-rates.patch [moved from target/linux/brcm2708/patches-4.19/950-0535-clk-bcm2835-Add-support-for-setting-leaf-clock-rates.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0534-clk-bcm2835-Allow-reparenting-leaf-clocks-while-they.patch [moved from target/linux/brcm2708/patches-4.19/950-0536-clk-bcm2835-Allow-reparenting-leaf-clocks-while-they.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0535-drm-v3d-Add-support-for-compute-shader-dispatch.patch [moved from target/linux/brcm2708/patches-4.19/950-0537-drm-v3d-Add-support-for-compute-shader-dispatch.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0536-drm-v3d-Clock-V3D-down-when-not-in-use.patch [moved from target/linux/brcm2708/patches-4.19/950-0538-drm-v3d-Clock-V3D-down-when-not-in-use.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0537-drm-vc4-firmware-kms-Remove-incorrect-overscan-suppo.patch [moved from target/linux/brcm2708/patches-4.19/950-0539-drm-vc4-firmware-kms-Remove-incorrect-overscan-suppo.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0538-drm-vc4-Log-flags-in-fkms-mode-set.patch [moved from target/linux/brcm2708/patches-4.19/950-0540-drm-vc4-Log-flags-in-fkms-mode-set.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0539-drm-vc4-firmware-kms-Fix-DSI-display-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0541-drm-vc4-firmware-kms-Fix-DSI-display-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0540-drm-vc4-Probe-DPI-DSI-timings-from-the-firmware.patch [moved from target/linux/brcm2708/patches-4.19/950-0542-drm-vc4-Probe-DPI-DSI-timings-from-the-firmware.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0541-drm-vc4-handle-the-case-where-there-are-no-available.patch [moved from target/linux/brcm2708/patches-4.19/950-0543-drm-vc4-handle-the-case-where-there-are-no-available.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0542-drm-vc4-Support-the-VEC-in-FKMS.patch [moved from target/linux/brcm2708/patches-4.19/950-0544-drm-vc4-Support-the-VEC-in-FKMS.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0543-drm-vc4-Fixup-typo-when-setting-HDMI-aspect-ratio.patch [moved from target/linux/brcm2708/patches-4.19/950-0545-drm-vc4-Fixup-typo-when-setting-HDMI-aspect-ratio.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0544-drm-vc4-Correct-SAND-support-for-FKMS.patch [moved from target/linux/brcm2708/patches-4.19/950-0546-drm-vc4-Correct-SAND-support-for-FKMS.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0545-drm-vc4-fkms-to-query-the-VPU-for-HDMI-clock-limits.patch [moved from target/linux/brcm2708/patches-4.19/950-0547-drm-vc4-fkms-to-query-the-VPU-for-HDMI-clock-limits.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0546-drm-vc4-Max-resolution-of-7680-is-conditional-on-bei.patch [moved from target/linux/brcm2708/patches-4.19/950-0548-drm-vc4-Max-resolution-of-7680-is-conditional-on-bei.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0547-staging-vc-sm-cma-Remove-obsolete-comment-and-make-f.patch [moved from target/linux/brcm2708/patches-4.19/950-0549-staging-vc-sm-cma-Remove-obsolete-comment-and-make-f.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0548-staging-vc-sm-cma-Add-in-allocation-for-VPU-requests.patch [moved from target/linux/brcm2708/patches-4.19/950-0550-staging-vc-sm-cma-Add-in-allocation-for-VPU-requests.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0549-staging-vc-sm-cma-Update-TODO.patch [moved from target/linux/brcm2708/patches-4.19/950-0551-staging-vc-sm-cma-Update-TODO.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0550-staging-vc-sm-cma-Add-in-userspace-allocation-API.patch [moved from target/linux/brcm2708/patches-4.19/950-0552-staging-vc-sm-cma-Add-in-userspace-allocation-API.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0551-staging-vcsm-cma-Add-cache-control-ioctls.patch [moved from target/linux/brcm2708/patches-4.19/950-0553-staging-vcsm-cma-Add-cache-control-ioctls.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0552-staging-vcsm-cma-Alter-dev-node-permissions-to-0666.patch [moved from target/linux/brcm2708/patches-4.19/950-0554-staging-vcsm-cma-Alter-dev-node-permissions-to-0666.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0553-staging-vcsm-cma-Drop-logging-level-on-messages-in-v.patch [moved from target/linux/brcm2708/patches-4.19/950-0555-staging-vcsm-cma-Drop-logging-level-on-messages-in-v.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0554-staging-vcsm-cma-Fixup-the-alloc-code-handling-of-ke.patch [moved from target/linux/brcm2708/patches-4.19/950-0556-staging-vcsm-cma-Fixup-the-alloc-code-handling-of-ke.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0555-Pulled-in-the-multi-frame-buffer-support-from-the-Pi.patch [moved from target/linux/brcm2708/patches-4.19/950-0557-Pulled-in-the-multi-frame-buffer-support-from-the-Pi.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0556-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch [moved from target/linux/brcm2708/patches-4.19/950-0558-ARM-dts-bcm283x-Move-BCM2835-6-7-specific-to-bcm2835.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0557-ARM-dts-Add-bcm2711-rpi-4-b.dts-and-components.patch [moved from target/linux/brcm2708/patches-4.19/950-0559-ARM-dts-Add-bcm2711-rpi-4-b.dts-and-components.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0558-overlays-Add-i2c3-6-and-uart2-5-overlays.patch [moved from target/linux/brcm2708/patches-4.19/950-0560-overlays-Add-i2c3-6-and-uart2-5-overlays.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0559-spi-devicetree-add-overlays-for-spi-3-to-6.patch [moved from target/linux/brcm2708/patches-4.19/950-0561-spi-devicetree-add-overlays-for-spi-3-to-6.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0560-overlays-Add-the-spi-gpio40-45-overlay.patch [moved from target/linux/brcm2708/patches-4.19/950-0562-overlays-Add-the-spi-gpio40-45-overlay.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0561-config-Permit-LPAE-and-PCIE_BRCMSTB-on-BCM2835.patch [moved from target/linux/brcm2708/patches-4.19/950-0563-config-Permit-LPAE-and-PCIE_BRCMSTB-on-BCM2835.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0562-2711-Add-basic-64-bit-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0564-2711-Add-basic-64-bit-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0563-ARM-dts-bcm283x-Correct-vchiq-compatible-string-2840.patch [moved from target/linux/brcm2708/patches-4.19/950-0565-ARM-dts-bcm283x-Correct-vchiq-compatible-string-2840.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0564-arm-dts-Change-downstream-vchiq-compatible-string.patch [moved from target/linux/brcm2708/patches-4.19/950-0566-arm-dts-Change-downstream-vchiq-compatible-string.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0565-bcm2835-dma-Add-proper-40-bit-DMA-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0567-bcm2835-dma-Add-proper-40-bit-DMA-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0566-BCM270X_DT-Leave-bulk-channel-in-dma-channel-mask.patch [moved from target/linux/brcm2708/patches-4.19/950-0568-BCM270X_DT-Leave-bulk-channel-in-dma-channel-mask.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0567-SQUASH-bcm2835-dma-Remove-debugging.patch [moved from target/linux/brcm2708/patches-4.19/950-0569-SQUASH-bcm2835-dma-Remove-debugging.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0568-dts-Include-CSI-lane-config-for-csi1.patch [moved from target/linux/brcm2708/patches-4.19/950-0570-dts-Include-CSI-lane-config-for-csi1.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0569-drm-vc4-Fix-T-format-modifiers-in-FKMS.patch [moved from target/linux/brcm2708/patches-4.19/950-0571-drm-vc4-Fix-T-format-modifiers-in-FKMS.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0570-bcm2711-dts-Disable-the-v3d-node-by-default.patch [moved from target/linux/brcm2708/patches-4.19/950-0572-bcm2711-dts-Disable-the-v3d-node-by-default.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0571-drm-vc4-Remove-340MHz-clock-limit-from-FKMS-now-scra.patch [moved from target/linux/brcm2708/patches-4.19/950-0573-drm-vc4-Remove-340MHz-clock-limit-from-FKMS-now-scra.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0572-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch [moved from target/linux/brcm2708/patches-4.19/950-0574-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0573-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch [moved from target/linux/brcm2708/patches-4.19/950-0575-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0574-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch [moved from target/linux/brcm2708/patches-4.19/950-0576-usbhid-call-usb_fixup_endpoint-after-mangling-interv.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0575-drm-vc4-Add-status-of-which-display-is-updated-throu.patch [moved from target/linux/brcm2708/patches-4.19/950-0577-drm-vc4-Add-status-of-which-display-is-updated-throu.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0576-drm-vc4-In-FKMS-look-at-the-modifiers-correctly-for-.patch [moved from target/linux/brcm2708/patches-4.19/950-0578-drm-vc4-In-FKMS-look-at-the-modifiers-correctly-for-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0577-arm-dts-Fix-Pi4-PWR-LED-configuration.patch [moved from target/linux/brcm2708/patches-4.19/950-0579-arm-dts-Fix-Pi4-PWR-LED-configuration.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0578-bcm2838.dtsi-Correct-gic400-memory-address-ranges.patch [moved from target/linux/brcm2708/patches-4.19/950-0580-bcm2838.dtsi-Correct-gic400-memory-address-ranges.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0579-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch [moved from target/linux/brcm2708/patches-4.19/950-0581-staging-vchiq-Use-the-old-dma-controller-for-OF-conf.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0580-drm-vc4-Limit-fkms-to-modes-85Hz.patch [moved from target/linux/brcm2708/patches-4.19/950-0582-drm-vc4-Limit-fkms-to-modes-85Hz.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0581-arm-bcm2835-Add-bcm2838-compatible-string.patch [moved from target/linux/brcm2708/patches-4.19/950-0583-arm-bcm2835-Add-bcm2838-compatible-string.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0582-arm-dts-Improve-the-bcm27xx-inclusion-hierarchy.patch [moved from target/linux/brcm2708/patches-4.19/950-0584-arm-dts-Improve-the-bcm27xx-inclusion-hierarchy.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0583-arm-dts-First-draft-of-upstream-Pi4-DTS.patch [moved from target/linux/brcm2708/patches-4.19/950-0585-arm-dts-First-draft-of-upstream-Pi4-DTS.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0584-overlays-Fix-compatible-string-for-ds1307-RTC.patch [moved from target/linux/brcm2708/patches-4.19/950-0586-overlays-Fix-compatible-string-for-ds1307-RTC.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0585-overlays-Fix-further-maxim-ds1307-references.patch [moved from target/linux/brcm2708/patches-4.19/950-0587-overlays-Fix-further-maxim-ds1307-references.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0586-overlays-Cosmetic-change-to-upstream-overlay.patch [moved from target/linux/brcm2708/patches-4.19/950-0588-overlays-Cosmetic-change-to-upstream-overlay.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0587-w1-ds2805-rename-w1_family-struct-fixing-c-p-typo.patch [moved from target/linux/brcm2708/patches-4.19/950-0589-w1-ds2805-rename-w1_family-struct-fixing-c-p-typo.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0588-w1-ds2413-output_write-cosmetic-fixes-simplify.patch [moved from target/linux/brcm2708/patches-4.19/950-0590-w1-ds2413-output_write-cosmetic-fixes-simplify.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0589-w1-ds2413-add-retry-support-to-state_read.patch [moved from target/linux/brcm2708/patches-4.19/950-0591-w1-ds2413-add-retry-support-to-state_read.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0590-w1-ds2413-when-the-slave-is-not-responding-during-re.patch [moved from target/linux/brcm2708/patches-4.19/950-0592-w1-ds2413-when-the-slave-is-not-responding-during-re.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0591-w1-ds2413-fix-state-byte-comparision.patch [moved from target/linux/brcm2708/patches-4.19/950-0593-w1-ds2413-fix-state-byte-comparision.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0592-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch [moved from target/linux/brcm2708/patches-4.19/950-0594-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0593-video-bcm2708_fb-Revert-cma-allocation-attempt.patch [moved from target/linux/brcm2708/patches-4.19/950-0595-video-bcm2708_fb-Revert-cma-allocation-attempt.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0594-drm-vc4-Add-support-for-color-encoding-on-YUV-planes.patch [moved from target/linux/brcm2708/patches-4.19/950-0596-drm-vc4-Add-support-for-color-encoding-on-YUV-planes.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0595-arm-dts-Add-coherent_pool-1M-to-Pi-4-bootargs.patch [moved from target/linux/brcm2708/patches-4.19/950-0597-arm-dts-Add-coherent_pool-1M-to-Pi-4-bootargs.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0596-overlays-Correct-gpio-fan-gpio-flags-for-4.19.patch [moved from target/linux/brcm2708/patches-4.19/950-0598-overlays-Correct-gpio-fan-gpio-flags-for-4.19.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0597-staging-vcsm-cma-Remove-cache-manipulation-ioctl-fro.patch [moved from target/linux/brcm2708/patches-4.19/950-0599-staging-vcsm-cma-Remove-cache-manipulation-ioctl-fro.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0598-staging-vcsm-cma-Rework-to-use-dma-APIs-not-CMA.patch [moved from target/linux/brcm2708/patches-4.19/950-0600-staging-vcsm-cma-Rework-to-use-dma-APIs-not-CMA.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0599-staging-vc-sm-cma-Fix-the-few-remaining-coding-style.patch [moved from target/linux/brcm2708/patches-4.19/950-0601-staging-vc-sm-cma-Fix-the-few-remaining-coding-style.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0600-media-videodev2.h-add-new-capabilities-for-buffer-ty.patch [moved from target/linux/brcm2708/patches-4.19/950-0602-media-videodev2.h-add-new-capabilities-for-buffer-ty.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0601-media-vb2-set-reqbufs-create_bufs-capabilities.patch [moved from target/linux/brcm2708/patches-4.19/950-0603-media-vb2-set-reqbufs-create_bufs-capabilities.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0602-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch [moved from target/linux/brcm2708/patches-4.19/950-0604-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-buffers.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0603-overlays-Add-real-parameters-to-the-rpi-poe-overlay.patch [moved from target/linux/brcm2708/patches-4.19/950-0605-overlays-Add-real-parameters-to-the-rpi-poe-overlay.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0604-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch [moved from target/linux/brcm2708/patches-4.19/950-0606-overlays-Rename-pi3-overlays-to-be-less-model-specif.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0605-i2c-bcm2835-Move-IRQ-request-after-clock-code-in-pro.patch [moved from target/linux/brcm2708/patches-4.19/950-0607-i2c-bcm2835-Move-IRQ-request-after-clock-code-in-pro.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0606-i2c-bcm2835-Ensure-clock-exists-when-probing.patch [moved from target/linux/brcm2708/patches-4.19/950-0608-i2c-bcm2835-Ensure-clock-exists-when-probing.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0607-overlays-i2c-gpio-Fix-the-bus-parameter.patch [moved from target/linux/brcm2708/patches-4.19/950-0609-overlays-i2c-gpio-Fix-the-bus-parameter.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0608-tty-amba-pl011-Make-TX-optimisation-conditional.patch [moved from target/linux/brcm2708/patches-4.19/950-0610-tty-amba-pl011-Make-TX-optimisation-conditional.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0609-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch [moved from target/linux/brcm2708/patches-4.19/950-0611-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0610-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch [moved from target/linux/brcm2708/patches-4.19/950-0612-i2c-bcm2835-Set-clock-stretch-timeout-to-35ms.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0611-arm64-bcm2835-Add-missing-dependency-on-MFD_CORE.patch [moved from target/linux/brcm2708/patches-4.19/950-0613-arm64-bcm2835-Add-missing-dependency-on-MFD_CORE.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0612-overlays-Add-PCF2129-RTC.patch [moved from target/linux/brcm2708/patches-4.19/950-0614-overlays-Add-PCF2129-RTC.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0613-overlays-dpi18-and-dpi24-vc4-compatibility.patch [moved from target/linux/brcm2708/patches-4.19/950-0615-overlays-dpi18-and-dpi24-vc4-compatibility.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0614-overlays-Add-i2c0-and-i2c1-for-regularity.patch [moved from target/linux/brcm2708/patches-4.19/950-0616-overlays-Add-i2c0-and-i2c1-for-regularity.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0615-Pisound-Remove-spinlock-usage-around-spi_sync.patch [moved from target/linux/brcm2708/patches-4.19/950-0617-Pisound-Remove-spinlock-usage-around-spi_sync.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0616-arm64-mm-Limit-the-DMA-zone-for-arm64.patch [moved from target/linux/brcm2708/patches-4.19/950-0618-arm64-mm-Limit-the-DMA-zone-for-arm64.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0617-drm-vc4-Query-firmware-for-custom-HDMI-mode.patch [moved from target/linux/brcm2708/patches-4.19/950-0619-drm-vc4-Query-firmware-for-custom-HDMI-mode.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0618-drm-vc4-Pass-the-drm-vrefresh-to-the-firmware-on-mod.patch [moved from target/linux/brcm2708/patches-4.19/950-0620-drm-vc4-Pass-the-drm-vrefresh-to-the-firmware-on-mod.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0619-overlays-audremap-Support-GPIOs-18-19.patch [moved from target/linux/brcm2708/patches-4.19/950-0621-overlays-audremap-Support-GPIOs-18-19.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0620-drm-connector-Fix-drm_mode_create_tv_properties-doc.patch [moved from target/linux/brcm2708/patches-4.19/950-0622-drm-connector-Fix-drm_mode_create_tv_properties-doc.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0621-drm-connector-Clarify-the-unit-of-TV-margins.patch [moved from target/linux/brcm2708/patches-4.19/950-0623-drm-connector-Clarify-the-unit-of-TV-margins.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0622-drm-connector-Allow-creation-of-margin-props-alone.patch [moved from target/linux/brcm2708/patches-4.19/950-0624-drm-connector-Allow-creation-of-margin-props-alone.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0623-drm-vc4-Take-margin-setup-into-account-when-updating.patch [moved from target/linux/brcm2708/patches-4.19/950-0625-drm-vc4-Take-margin-setup-into-account-when-updating.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0624-drm-vc4-Attach-margin-props-to-the-HDMI-connector.patch [moved from target/linux/brcm2708/patches-4.19/950-0626-drm-vc4-Attach-margin-props-to-the-HDMI-connector.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0625-drm-vc4-Add-support-for-margins-to-fkms.patch [moved from target/linux/brcm2708/patches-4.19/950-0627-drm-vc4-Add-support-for-margins-to-fkms.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0626-drm-vc4-Ensure-zpos-is-always-initialised.patch [moved from target/linux/brcm2708/patches-4.19/950-0628-drm-vc4-Ensure-zpos-is-always-initialised.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0627-dts-bcm2838-add-missing-properties-for-pmu-and-gic-n.patch [moved from target/linux/brcm2708/patches-4.19/950-0629-dts-bcm2838-add-missing-properties-for-pmu-and-gic-n.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0628-adds-the-Hifiberry-DAC-ADC-PRO-version.patch [moved from target/linux/brcm2708/patches-4.19/950-0630-adds-the-Hifiberry-DAC-ADC-PRO-version.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0629-codecs-Correct-Katana-minimum-volume.patch [moved from target/linux/brcm2708/patches-4.19/950-0631-codecs-Correct-Katana-minimum-volume.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0630-drm-vc4-A-present-but-empty-dmas-disables-audio.patch [moved from target/linux/brcm2708/patches-4.19/950-0632-drm-vc4-A-present-but-empty-dmas-disables-audio.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0631-overlays-Add-audio-parameter-to-vc4-kms-v3d.patch [moved from target/linux/brcm2708/patches-4.19/950-0633-overlays-Add-audio-parameter-to-vc4-kms-v3d.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0632-overlays-Update-the-upstream-overlay.patch [moved from target/linux/brcm2708/patches-4.19/950-0634-overlays-Update-the-upstream-overlay.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0633-Fixup-FKMS-interrupt-handing-for-non-existent-displa.patch [moved from target/linux/brcm2708/patches-4.19/950-0635-Fixup-FKMS-interrupt-handing-for-non-existent-displa.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0634-drivers-char-Use-correct-name-for-the-Raspberry-Pi-v.patch [moved from target/linux/brcm2708/patches-4.19/950-0636-drivers-char-Use-correct-name-for-the-Raspberry-Pi-v.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0635-driver-char-rpivid-also-support-legacy-name.patch [moved from target/linux/brcm2708/patches-4.19/950-0637-driver-char-rpivid-also-support-legacy-name.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0636-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch [moved from target/linux/brcm2708/patches-4.19/950-0638-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0637-drm-vc4-Add-Broadcast-RGB-connector-property.patch [moved from target/linux/brcm2708/patches-4.19/950-0639-drm-vc4-Add-Broadcast-RGB-connector-property.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0638-drm-connector-Add-documentation-for-drm_cmdline_mode.patch [moved from target/linux/brcm2708/patches-4.19/950-0640-drm-connector-Add-documentation-for-drm_cmdline_mode.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0639-drm-modes-Rewrite-the-command-line-parser.patch [moved from target/linux/brcm2708/patches-4.19/950-0641-drm-modes-Rewrite-the-command-line-parser.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0640-drm-modes-Support-modes-names-on-the-command-line.patch [moved from target/linux/brcm2708/patches-4.19/950-0642-drm-modes-Support-modes-names-on-the-command-line.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0641-drm-modes-Allow-to-specify-rotation-and-reflection-o.patch [moved from target/linux/brcm2708/patches-4.19/950-0643-drm-modes-Allow-to-specify-rotation-and-reflection-o.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0642-drm-connector-Introduce-a-TV-margins-structure.patch [moved from target/linux/brcm2708/patches-4.19/950-0644-drm-connector-Introduce-a-TV-margins-structure.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0643-drm-modes-Parse-overscan-properties.patch [moved from target/linux/brcm2708/patches-4.19/950-0645-drm-modes-Parse-overscan-properties.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0644-drm-atomic-Add-a-function-to-reset-connector-TV-prop.patch [moved from target/linux/brcm2708/patches-4.19/950-0646-drm-atomic-Add-a-function-to-reset-connector-TV-prop.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0645-drm-vc4-hdmi-Set-default-state-margin-at-reset.patch [moved from target/linux/brcm2708/patches-4.19/950-0647-drm-vc4-hdmi-Set-default-state-margin-at-reset.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0646-drm-vc4-fkms-Set-default-state-margin-at-reset.patch [moved from target/linux/brcm2708/patches-4.19/950-0648-drm-vc4-fkms-Set-default-state-margin-at-reset.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0647-drm-modes-Don-t-apply-cmdline-s-rotation-if-it-wasn-.patch [moved from target/linux/brcm2708/patches-4.19/950-0649-drm-modes-Don-t-apply-cmdline-s-rotation-if-it-wasn-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0648-staging-bcm2835-codec-switch-to-multi-planar-API.patch [moved from target/linux/brcm2708/patches-4.19/950-0650-staging-bcm2835-codec-switch-to-multi-planar-API.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0649-staging-bcm2835-codec-implement-V4L2_CID_MIN_BUFFERS.patch [moved from target/linux/brcm2708/patches-4.19/950-0651-staging-bcm2835-codec-implement-V4L2_CID_MIN_BUFFERS.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0650-staging-bcm2835-codec-set-device_caps-in-struct-vide.patch [moved from target/linux/brcm2708/patches-4.19/950-0652-staging-bcm2835-codec-set-device_caps-in-struct-vide.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0651-Add-HDMI1-facility-to-the-driver.patch [moved from target/linux/brcm2708/patches-4.19/950-0653-Add-HDMI1-facility-to-the-driver.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0652-overlays-Add-baudrate-parameter-to-i2c3-i2c6.patch [moved from target/linux/brcm2708/patches-4.19/950-0654-overlays-Add-baudrate-parameter-to-i2c3-i2c6.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0653-drm-vc4-Resolve-the-vblank-warnings-on-mode-switchin.patch [moved from target/linux/brcm2708/patches-4.19/950-0655-drm-vc4-Resolve-the-vblank-warnings-on-mode-switchin.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0654-drm-vc4-Remove-unused-mode-variable.patch [moved from target/linux/brcm2708/patches-4.19/950-0656-drm-vc4-Remove-unused-mode-variable.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0655-staging-bcm2835-codec-Expand-logging-on-format-setti.patch [moved from target/linux/brcm2708/patches-4.19/950-0657-staging-bcm2835-codec-Expand-logging-on-format-setti.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0656-staging-bcm2835-codec-Correct-bytesperline-on-format.patch [moved from target/linux/brcm2708/patches-4.19/950-0658-staging-bcm2835-codec-Correct-bytesperline-on-format.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0657-drm-vc4-Add-missing-NULL-check-to-vc4_crtc_consume_e.patch [moved from target/linux/brcm2708/patches-4.19/950-0659-drm-vc4-Add-missing-NULL-check-to-vc4_crtc_consume_e.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0658-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch [moved from target/linux/brcm2708/patches-4.19/950-0660-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0659-drm-vc4-Fix-TILE_Y_OFFSET-definitions.patch [moved from target/linux/brcm2708/patches-4.19/950-0661-drm-vc4-Fix-TILE_Y_OFFSET-definitions.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0660-drm-vc4-Define-missing-PITCH0_SINK_PIX-field.patch [moved from target/linux/brcm2708/patches-4.19/950-0662-drm-vc4-Define-missing-PITCH0_SINK_PIX-field.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0661-drm-vc4-Use-drm_atomic_helper_check_plane_state-to-s.patch [moved from target/linux/brcm2708/patches-4.19/950-0663-drm-vc4-Use-drm_atomic_helper_check_plane_state-to-s.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0662-drm-vc4-Move-offsets-adjustment-out-of-setup_clippin.patch [moved from target/linux/brcm2708/patches-4.19/950-0664-drm-vc4-Move-offsets-adjustment-out-of-setup_clippin.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0663-drm-vc4-Fix-X-Y-positioning-of-planes-using-T_TILES-.patch [moved from target/linux/brcm2708/patches-4.19/950-0665-drm-vc4-Fix-X-Y-positioning-of-planes-using-T_TILES-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0664-drm-vc4-Fix-NULL-pointer-dereference-in-the-async-up.patch [moved from target/linux/brcm2708/patches-4.19/950-0666-drm-vc4-Fix-NULL-pointer-dereference-in-the-async-up.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0665-ARM-dts-bcm2711-rpi-4-b-I2C-aliases-and-pulls.patch [moved from target/linux/brcm2708/patches-4.19/950-0667-ARM-dts-bcm2711-rpi-4-b-I2C-aliases-and-pulls.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0666-xhci-Use-more-event-ring-segment-table-entries.patch [moved from target/linux/brcm2708/patches-4.19/950-0668-xhci-Use-more-event-ring-segment-table-entries.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0667-dwc_otg-use-align_buf-for-small-IN-control-transfers.patch [moved from target/linux/brcm2708/patches-4.19/950-0669-dwc_otg-use-align_buf-for-small-IN-control-transfers.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0668-Ported-pcie-brcmstb-bounce-buffer-implementation-to-.patch [moved from target/linux/brcm2708/patches-4.19/950-0670-Ported-pcie-brcmstb-bounce-buffer-implementation-to-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0669-configs-arm64-vcm2711-Enable-V3D.patch [moved from target/linux/brcm2708/patches-4.19/950-0671-configs-arm64-vcm2711-Enable-V3D.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0670-overlays-sc16ic752-i2c-Fix-xtal-parameter.patch [moved from target/linux/brcm2708/patches-4.19/950-0672-overlays-sc16ic752-i2c-Fix-xtal-parameter.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0671-vc-sm-cma-Fix-compatibility-ioctl.patch [moved from target/linux/brcm2708/patches-4.19/950-0673-vc-sm-cma-Fix-compatibility-ioctl.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0672-staging-bcm2835-codec-add-support-for-V4L2_CID_MPEG_.patch [moved from target/linux/brcm2708/patches-4.19/950-0674-staging-bcm2835-codec-add-support-for-V4L2_CID_MPEG_.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0673-staging-bcm2835-codec-remove-unnecessary-padding-on-.patch [moved from target/linux/brcm2708/patches-4.19/950-0675-staging-bcm2835-codec-remove-unnecessary-padding-on-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0674-arm-dts-add-missing-Raspberry-Pi-model-names.patch [moved from target/linux/brcm2708/patches-4.19/950-0676-arm-dts-add-missing-Raspberry-Pi-model-names.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0675-arch-arm-Add-model-string-to-cpuinfo.patch [moved from target/linux/brcm2708/patches-4.19/950-0677-arch-arm-Add-model-string-to-cpuinfo.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0676-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch [moved from target/linux/brcm2708/patches-4.19/950-0678-arch-arm64-Add-Revision-Serial-Model-to-cpuinfo.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0677-media-dt-bindings-Add-binding-for-the-Sony-IMX219-se.patch [moved from target/linux/brcm2708/patches-4.19/950-0679-media-dt-bindings-Add-binding-for-the-Sony-IMX219-se.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0678-media-i2c-Add-driver-for-Sony-IMX219-sensor.patch [moved from target/linux/brcm2708/patches-4.19/950-0680-media-i2c-Add-driver-for-Sony-IMX219-sensor.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0679-dtoverlays-Add-overlay-for-the-Sony-IMX219-image-sen.patch [moved from target/linux/brcm2708/patches-4.19/950-0681-dtoverlays-Add-overlay-for-the-Sony-IMX219-image-sen.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0680-staging-bcm2835-codec-Fix-non-documentation-comment-.patch [moved from target/linux/brcm2708/patches-4.19/950-0682-staging-bcm2835-codec-Fix-non-documentation-comment-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0681-staging-bcm2835-codec-Fix-declaration-of-roles.patch [moved from target/linux/brcm2708/patches-4.19/950-0683-staging-bcm2835-codec-Fix-declaration-of-roles.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0682-staging-bcm2835-codec-Add-role-to-device-name.patch [moved from target/linux/brcm2708/patches-4.19/950-0684-staging-bcm2835-codec-Add-role-to-device-name.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0683-staging-bcm2835-codec-Pass-driver-context-to-create-.patch [moved from target/linux/brcm2708/patches-4.19/950-0685-staging-bcm2835-codec-Pass-driver-context-to-create-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0684-staging-bcm2835-codec-add-media-controller-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0686-staging-bcm2835-codec-add-media-controller-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0685-media-bcm2835-unicam-Reduce-scope-of-local-function.patch [moved from target/linux/brcm2708/patches-4.19/950-0687-media-bcm2835-unicam-Reduce-scope-of-local-function.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0686-media-bcm2835-unicam-add-media-controller-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0688-media-bcm2835-unicam-add-media-controller-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0687-Limit-max_req_size-under-arm64-or-any-other-platform.patch [moved from target/linux/brcm2708/patches-4.19/950-0689-Limit-max_req_size-under-arm64-or-any-other-platform.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0688-Add-missing-dma_unmap_sg-calls-to-free-relevant-swio.patch [moved from target/linux/brcm2708/patches-4.19/950-0690-Add-missing-dma_unmap_sg-calls-to-free-relevant-swio.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0689-overlays-mcp23017-rename-the-GPIO-pins-node-with-the.patch [moved from target/linux/brcm2708/patches-4.19/950-0691-overlays-mcp23017-rename-the-GPIO-pins-node-with-the.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0690-overlays-mcp23017-Add-option-for-not-connecting-the-.patch [moved from target/linux/brcm2708/patches-4.19/950-0692-overlays-mcp23017-Add-option-for-not-connecting-the-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0691-v4l2-Add-a-Greyworld-AWB-mode.patch [moved from target/linux/brcm2708/patches-4.19/950-0693-v4l2-Add-a-Greyworld-AWB-mode.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0692-staging-bcm2835-camera-Add-greyworld-AWB-mode.patch [moved from target/linux/brcm2708/patches-4.19/950-0694-staging-bcm2835-camera-Add-greyworld-AWB-mode.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0693-PCI-brcmstb-Fix-compilation-warning.patch [moved from target/linux/brcm2708/patches-4.19/950-0695-PCI-brcmstb-Fix-compilation-warning.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0694-drm-vc4-Fix-for-margins-in-composite-SDTV-mode-3223.patch [moved from target/linux/brcm2708/patches-4.19/950-0696-drm-vc4-Fix-for-margins-in-composite-SDTV-mode-3223.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0695-Add-Hifiberry-DAC-DSP-soundcard-driver-3224.patch [moved from target/linux/brcm2708/patches-4.19/950-0697-Add-Hifiberry-DAC-DSP-soundcard-driver-3224.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0696-staging-bcm2835-codec-Allow-height-of-1920.patch [moved from target/linux/brcm2708/patches-4.19/950-0698-staging-bcm2835-codec-Allow-height-of-1920.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0697-staging-bcm2835-codec-Correct-g-s_selection-API-MPLA.patch [moved from target/linux/brcm2708/patches-4.19/950-0699-staging-bcm2835-codec-Correct-g-s_selection-API-MPLA.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0698-regulator-gpio-Allow-nonexclusive-GPIO-access.patch [moved from target/linux/brcm2708/patches-4.19/950-0700-regulator-gpio-Allow-nonexclusive-GPIO-access.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0699-gpio-Enable-nonexclusive-gpiods-from-DT-nodes.patch [moved from target/linux/brcm2708/patches-4.19/950-0701-gpio-Enable-nonexclusive-gpiods-from-DT-nodes.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0700-Fix-poll-rate-on-touchscreen-3238.patch [moved from target/linux/brcm2708/patches-4.19/950-0702-Fix-poll-rate-on-touchscreen-3238.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0701-dts-Add-DTS-for-Pi-2B-rev-1.2-with-BCM2837-3235.patch [moved from target/linux/brcm2708/patches-4.19/950-0703-dts-Add-DTS-for-Pi-2B-rev-1.2-with-BCM2837-3235.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0702-drm-v3d-clean-caches-at-the-end-of-render-jobs-on-re.patch [moved from target/linux/brcm2708/patches-4.19/950-0704-drm-v3d-clean-caches-at-the-end-of-render-jobs-on-re.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0703-staging-bcm2835-audio-Fix-draining-behavior-regressi.patch [moved from target/linux/brcm2708/patches-4.19/950-0705-staging-bcm2835-audio-Fix-draining-behavior-regressi.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0704-bcm2708_fb-Fix-layout-of-struct-vc4_display_settings.patch [moved from target/linux/brcm2708/patches-4.19/950-0706-bcm2708_fb-Fix-layout-of-struct-vc4_display_settings.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0705-ARM-dts-bcm283x-Fix-DTC-warning-for-memory-node.patch [moved from target/linux/brcm2708/patches-4.19/950-0707-ARM-dts-bcm283x-Fix-DTC-warning-for-memory-node.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0706-ARM-dts-bcm27xx-Fix-DTC-warning-for-memory-node.patch [moved from target/linux/brcm2708/patches-4.19/950-0708-ARM-dts-bcm27xx-Fix-DTC-warning-for-memory-node.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0707-ARM-bcm283x-Enable-DMA-support-for-SPI-controller.patch [moved from target/linux/brcm2708/patches-4.19/950-0709-ARM-bcm283x-Enable-DMA-support-for-SPI-controller.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0708-ARM-dts-bcm2835-rpi-Drop-unnecessary-address-cells-s.patch [moved from target/linux/brcm2708/patches-4.19/950-0710-ARM-dts-bcm2835-rpi-Drop-unnecessary-address-cells-s.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0709-ARM-dts-bcm2708-rpi-Define-the-downstream-MMC-interf.patch [moved from target/linux/brcm2708/patches-4.19/950-0711-ARM-dts-bcm2708-rpi-Define-the-downstream-MMC-interf.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0710-ARM-dts-bcm283x-Define-MMC-interfaces-at-board-level.patch [moved from target/linux/brcm2708/patches-4.19/950-0712-ARM-dts-bcm283x-Define-MMC-interfaces-at-board-level.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0711-ARM-dts-bcm2835-rpi-zero-w-Fix-bus-width-of-sdhci.patch [moved from target/linux/brcm2708/patches-4.19/950-0713-ARM-dts-bcm2835-rpi-zero-w-Fix-bus-width-of-sdhci.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0712-ARM-dts-bcm2708-rpi-Define-the-downstream-HDMI-power.patch [moved from target/linux/brcm2708/patches-4.19/950-0714-ARM-dts-bcm2708-rpi-Define-the-downstream-HDMI-power.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0713-ARM-dts-bcm283x-Enable-HDMI-at-board-level.patch [moved from target/linux/brcm2708/patches-4.19/950-0715-ARM-dts-bcm283x-Enable-HDMI-at-board-level.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0714-clk-bcm2835-Introduce-SoC-specific-clock-registratio.patch [moved from target/linux/brcm2708/patches-4.19/950-0716-clk-bcm2835-Introduce-SoC-specific-clock-registratio.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0715-clk-bcm2835-Add-BCM2711_CLOCK_EMMC2-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0717-clk-bcm2835-Add-BCM2711_CLOCK_EMMC2-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0716-ARM-bcm-Switch-board-clk-and-pinctrl-to-bcm2711-comp.patch [moved from target/linux/brcm2708/patches-4.19/950-0718-ARM-bcm-Switch-board-clk-and-pinctrl-to-bcm2711-comp.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0717-pinctrl-bcm2835-Switch-to-SPDX-identifier.patch [moved from target/linux/brcm2708/patches-4.19/950-0719-pinctrl-bcm2835-Switch-to-SPDX-identifier.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0718-pinctrl-bcm2835-declare-pin-config-as-generic.patch [moved from target/linux/brcm2708/patches-4.19/950-0720-pinctrl-bcm2835-declare-pin-config-as-generic.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0719-pinctrl-bcm2835-Direct-GPIO-config-changes-to-generi.patch [moved from target/linux/brcm2708/patches-4.19/950-0721-pinctrl-bcm2835-Direct-GPIO-config-changes-to-generi.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0720-pinctrl-bcm2835-Add-support-for-BCM2711-pull-up-func.patch [moved from target/linux/brcm2708/patches-4.19/950-0722-pinctrl-bcm2835-Add-support-for-BCM2711-pull-up-func.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0721-Rename-HDMI-ALSA-device-names-check-for-enable-state.patch [moved from target/linux/brcm2708/patches-4.19/950-0723-Rename-HDMI-ALSA-device-names-check-for-enable-state.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0722-pcie-brcmstb-bounce64.c-dev_err-dev_info-for-info-me.patch [moved from target/linux/brcm2708/patches-4.19/950-0724-pcie-brcmstb-bounce64.c-dev_err-dev_info-for-info-me.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0723-overlays-gpio-shutdown-Add-debounce-parameter.patch [moved from target/linux/brcm2708/patches-4.19/950-0725-overlays-gpio-shutdown-Add-debounce-parameter.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0724-overlays-fix-compatible-for-RPi4.patch [moved from target/linux/brcm2708/patches-4.19/950-0726-overlays-fix-compatible-for-RPi4.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0725-bcm2711-Retain-support-for-old-dtbs.patch [moved from target/linux/brcm2708/patches-4.19/950-0727-bcm2711-Retain-support-for-old-dtbs.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0726-media-bcm2835-unicam-Add-support-for-raw14-formats.patch [moved from target/linux/brcm2708/patches-4.19/950-0728-media-bcm2835-unicam-Add-support-for-raw14-formats.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0727-media-bcm2835-unicam-Rework-to-not-cache-the-list-of.patch [moved from target/linux/brcm2708/patches-4.19/950-0729-media-bcm2835-unicam-Rework-to-not-cache-the-list-of.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0728-media-bcm2835-unicam-Support-unpacking-CSI-format-to.patch [moved from target/linux/brcm2708/patches-4.19/950-0730-media-bcm2835-unicam-Support-unpacking-CSI-format-to.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0729-media-bcm2835-unicam-Add-support-for-luma-greyscale-.patch [moved from target/linux/brcm2708/patches-4.19/950-0731-media-bcm2835-unicam-Add-support-for-luma-greyscale-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0730-drm-vc4-Add-support-for-YUV-color-encodings-and-rang.patch [moved from target/linux/brcm2708/patches-4.19/950-0732-drm-vc4-Add-support-for-YUV-color-encodings-and-rang.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0731-drm-vc4-Fix-negative-X-Y-positioning-on-SAND-planes.patch [moved from target/linux/brcm2708/patches-4.19/950-0733-drm-vc4-Fix-negative-X-Y-positioning-on-SAND-planes.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0732-drm-vc4-Add-support-for-H-V-flips.patch [moved from target/linux/brcm2708/patches-4.19/950-0734-drm-vc4-Add-support-for-H-V-flips.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0733-drm-vc4-Correct-handling-of-rotation-parameter-in-fk.patch [moved from target/linux/brcm2708/patches-4.19/950-0735-drm-vc4-Correct-handling-of-rotation-parameter-in-fk.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0734-overlays-Add-w5500-overlay.patch [moved from target/linux/brcm2708/patches-4.19/950-0736-overlays-Add-w5500-overlay.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0735-media-bcm2835-unicam-Replace-hard-coded-loop-limit-w.patch [moved from target/linux/brcm2708/patches-4.19/950-0737-media-bcm2835-unicam-Replace-hard-coded-loop-limit-w.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0736-media-bcm2835-unicam-Fix-one-to-many-mapping-for-YUY.patch [moved from target/linux/brcm2708/patches-4.19/950-0738-media-bcm2835-unicam-Fix-one-to-many-mapping-for-YUY.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0737-dt-bindings-Add-binding-for-the-Infineon-IRS1125-sen.patch [moved from target/linux/brcm2708/patches-4.19/950-0739-dt-bindings-Add-binding-for-the-Infineon-IRS1125-sen.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0738-media-i2c-Add-a-driver-for-the-Infineon-IRS1125-dept.patch [moved from target/linux/brcm2708/patches-4.19/950-0740-media-i2c-Add-a-driver-for-the-Infineon-IRS1125-dept.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0739-dtoverlays-Add-an-overlay-for-the-Infineon-IRS1125.patch [moved from target/linux/brcm2708/patches-4.19/950-0741-dtoverlays-Add-an-overlay-for-the-Infineon-IRS1125.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0740-rpi-wm8804-soundcard-Fixed-MCLKDIV-for-Allo-Digione.patch [moved from target/linux/brcm2708/patches-4.19/950-0742-rpi-wm8804-soundcard-Fixed-MCLKDIV-for-Allo-Digione.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0741-dts-bcm2838-Disable-DWC-OTG-block-by-default.patch [moved from target/linux/brcm2708/patches-4.19/950-0743-dts-bcm2838-Disable-DWC-OTG-block-by-default.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0742-staging-bcm2835-codec-Add-support-for-ENUM_FRAMESIZE.patch [moved from target/linux/brcm2708/patches-4.19/950-0744-staging-bcm2835-codec-Add-support-for-ENUM_FRAMESIZE.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0743-staging-bcm2835-codec-Correct-buffer-type-check-on-G.patch [moved from target/linux/brcm2708/patches-4.19/950-0745-staging-bcm2835-codec-Correct-buffer-type-check-on-G.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0744-staging-bcm2835-codec-Set-default-and-error-check-ti.patch [moved from target/linux/brcm2708/patches-4.19/950-0746-staging-bcm2835-codec-Set-default-and-error-check-ti.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0745-staging-bcm2835-codec-Fix-imbalance-in-dma_buf_get-d.patch [moved from target/linux/brcm2708/patches-4.19/950-0747-staging-bcm2835-codec-Fix-imbalance-in-dma_buf_get-d.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0746-drm-vc4-Added-calls-for-firmware-display-blank-unbla.patch [moved from target/linux/brcm2708/patches-4.19/950-0748-drm-vc4-Added-calls-for-firmware-display-blank-unbla.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0747-rpi-poe-fan-fix-def_pwm1-writes.patch [moved from target/linux/brcm2708/patches-4.19/950-0749-rpi-poe-fan-fix-def_pwm1-writes.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0748-net-phy-bcm54xx-Encode-link-speed-and-activity-into-.patch [moved from target/linux/brcm2708/patches-4.19/950-0750-net-phy-bcm54xx-Encode-link-speed-and-activity-into-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0749-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch [moved from target/linux/brcm2708/patches-4.19/950-0751-net-phy-2711-Allow-ethernet-LED-mode-to-be-set-via-d.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0750-overlays-smi-fix-typo-in-comment-3320.patch [moved from target/linux/brcm2708/patches-4.19/950-0752-overlays-smi-fix-typo-in-comment-3320.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0751-net-phy-2711-Change-the-default-ethernet-LED-actions.patch [moved from target/linux/brcm2708/patches-4.19/950-0753-net-phy-2711-Change-the-default-ethernet-LED-actions.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0752-overlays-README-Remove-trailing-whitespace.patch [moved from target/linux/brcm2708/patches-4.19/950-0754-overlays-README-Remove-trailing-whitespace.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0753-overlays-Add-apds9960-overlay.patch [moved from target/linux/brcm2708/patches-4.19/950-0755-overlays-Add-apds9960-overlay.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0754-arm-dts-overlays-pitft35-resistive-add-upstream-comp.patch [moved from target/linux/brcm2708/patches-4.19/950-0756-arm-dts-overlays-pitft35-resistive-add-upstream-comp.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0755-clk-bcm2835-Avoid-null-pointer-exception.patch [moved from target/linux/brcm2708/patches-4.19/950-0757-clk-bcm2835-Avoid-null-pointer-exception.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0756-v3d_drv-Handle-missing-clock-more-gracefully.patch [moved from target/linux/brcm2708/patches-4.19/950-0758-v3d_drv-Handle-missing-clock-more-gracefully.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0757-cpufreq-scpi-scmi-Fix-freeing-of-dynamic-OPPs.patch [moved from target/linux/brcm2708/patches-4.19/950-0759-cpufreq-scpi-scmi-Fix-freeing-of-dynamic-OPPs.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0758-clk-bcm283x-add-driver-interfacing-with-Raspberry-Pi.patch [moved from target/linux/brcm2708/patches-4.19/950-0760-clk-bcm283x-add-driver-interfacing-with-Raspberry-Pi.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0759-cpufreq-add-driver-for-Raspberry-Pi.patch [moved from target/linux/brcm2708/patches-4.19/950-0761-cpufreq-add-driver-for-Raspberry-Pi.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0760-firmware-raspberrypi-register-clk-device.patch [moved from target/linux/brcm2708/patches-4.19/950-0762-firmware-raspberrypi-register-clk-device.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0761-clk-raspberrypi-register-platform-device-for-raspber.patch [moved from target/linux/brcm2708/patches-4.19/950-0763-clk-raspberrypi-register-platform-device-for-raspber.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0762-clk-bcm2835-remove-pllb.patch [moved from target/linux/brcm2708/patches-4.19/950-0764-clk-bcm2835-remove-pllb.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0763-v3d_drv-Allow-clock-retrieval-by-name.patch [moved from target/linux/brcm2708/patches-4.19/950-0765-v3d_drv-Allow-clock-retrieval-by-name.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0764-v3d_gem-Kick-the-clock-so-firmware-knows-we-are-usin.patch [moved from target/linux/brcm2708/patches-4.19/950-0766-v3d_gem-Kick-the-clock-so-firmware-knows-we-are-usin.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0765-clk-raspberrypi-Allow-cpufreq-driver-to-also-adjust-.patch [moved from target/linux/brcm2708/patches-4.19/950-0767-clk-raspberrypi-Allow-cpufreq-driver-to-also-adjust-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0766-clk-raspberrypi-Also-support-v3d-clock.patch [moved from target/linux/brcm2708/patches-4.19/950-0768-clk-raspberrypi-Also-support-v3d-clock.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0767-clk-bcm2835-Disable-v3d-clock.patch [moved from target/linux/brcm2708/patches-4.19/950-0769-clk-bcm2835-Disable-v3d-clock.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0768-fixup-clk-raspberrypi-Also-support-v3d-clock.patch [moved from target/linux/brcm2708/patches-4.19/950-0770-fixup-clk-raspberrypi-Also-support-v3d-clock.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0769-fixup-clk-raspberrypi-Also-support-v3d-clock.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0770-raspberrypi-cpufreq-Only-report-integer-pll-divisor-.patch [moved from target/linux/brcm2708/patches-4.19/950-0772-raspberrypi-cpufreq-Only-report-integer-pll-divisor-.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0771-fixup-clk-raspberrypi-Also-support-v3d-clock.patch
target/linux/brcm2708/patches-4.19/950-0772-arm-dts-Correct-Pi-4B-LED-values.patch [moved from target/linux/brcm2708/patches-4.19/950-0774-arm-dts-Correct-Pi-4B-LED-values.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0773-drm-v3d-Set-dma_mask-as-well-as-coherent_dma_mask.patch [moved from target/linux/brcm2708/patches-4.19/950-0775-drm-v3d-Set-dma_mask-as-well-as-coherent_dma_mask.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0773-fixup-clk-raspberrypi-Also-support-v3d-clock.patch [deleted file]
target/linux/brcm2708/patches-4.19/950-0774-arm-dts-2711-Add-pcie0-alias.patch [moved from target/linux/brcm2708/patches-4.19/950-0776-arm-dts-2711-Add-pcie0-alias.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0775-spidev-Completely-disable-the-DT-warning.patch [moved from target/linux/brcm2708/patches-4.19/950-0777-spidev-Completely-disable-the-DT-warning.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0776-drm-vc4-Disable-V3D-interactions-if-the-v3d-componen.patch [moved from target/linux/brcm2708/patches-4.19/950-0778-drm-vc4-Disable-V3D-interactions-if-the-v3d-componen.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0777-sound-soc-only-first-codec-is-master-in-multicodec-s.patch [moved from target/linux/brcm2708/patches-4.19/950-0779-sound-soc-only-first-codec-is-master-in-multicodec-s.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0778-Allow-simultaneous-use-of-JustBoom-DAC-and-Digi.patch [moved from target/linux/brcm2708/patches-4.19/950-0780-Allow-simultaneous-use-of-JustBoom-DAC-and-Digi.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0779-dwc_otg-checking-the-urb-transfer_buffer-too-early-3.patch [moved from target/linux/brcm2708/patches-4.19/950-0781-dwc_otg-checking-the-urb-transfer_buffer-too-early-3.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0780-overlays-Make-mcp342x-run-time-compatible.patch [moved from target/linux/brcm2708/patches-4.19/950-0782-overlays-Make-mcp342x-run-time-compatible.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0781-overlays-dht11-Allow-multiple-instantiation.patch [moved from target/linux/brcm2708/patches-4.19/950-0783-overlays-dht11-Allow-multiple-instantiation.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0782-overlays-i2c-rtc-Add-pcf85363-support.patch [moved from target/linux/brcm2708/patches-4.19/950-0784-overlays-i2c-rtc-Add-pcf85363-support.patch with 100% similarity]
target/linux/brcm2708/patches-4.19/950-0783-pinctrl-bcm2835-Remove-gpiochip-on-error.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0784-pinctrl-bcm2835-Change-init-order-for-gpio-hogs.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0785-Pisound-MIDI-communication-fixes-for-scaled-down-CPU.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0786-leds-pca963x-Fix-open-drain-initialization.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0787-add-BME680-to-i2c-sensor-overlay.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0788-dwc_otg-constrain-endpoint-max-packet-and-transfer-s.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0789-dwc_otg-fiq_fsm-pause-when-cancelling-split-transact.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0790-dwc_otg-fiq_fsm-add-a-barrier-on-entry-into-FIQ-hand.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0791-Add-universal-device-tree-overlay-for-SPI-devices.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0792-sound-Add-the-HiFiBerry-DAC-HD-version.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0793-Initialise-rpi-firmware-before-clk-bcm2835.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0794-Fix-master-mode-settings-of-HiFiBerry-DAC-ADC-PRO-ca.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0795-overlays-Use-preferred-compatible-strings.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0796-tty-amba-pl011-Add-un-throttle-support.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0797-Fix-i2c-pwm-pca9685a-overlay.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0798-adds-LED-OFF-feature-to-HiFiBerry-DAC-ADC-PRO-sound-.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0799-adds-LED-OFF-feature-to-HiFiBerry-DAC-ADC-sound-card.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0800-adds-LED-OFF-feature-to-HiFiBerry-DAC-DAC-PRO-sound-.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0801-pisound-Added-reading-Pisound-board-hardware-revisio.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0802-mmc-sdhci-iproc-Fix-vmmc-regulators-on-iProc.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0803-ARM-dts-Declare-RPi-4B-SD-card-power-regulator.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0804-pcie-brcmstb-Bounce-buffer-support-is-for-BCM2711B0.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0805-bcm2838.dtsi-Use-BCM2711-PCIe-compatible-string.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0806-ARM-dts-Remove-bcm2838-rpi-4-b.dts.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0807-tty-amba-pl011-Avoid-rare-write-when-full-error.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0808-usb-xhci-Raspberry-Pi-FW-loader-for-VIA-VL805.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0809-overlays-Correct-the-eth_led-colour-assignments.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0810-overlays-Remove-hack-from-uart0-overlay.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0811-ARM-dts-Add-sd_poll_once-dtparam-to-bcm283x-2711.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0812-overlays-Add-ssd1306-spi-overlay-3440.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0813-overlays-Add-sh1106-spi-and-ssd1351-spi-overlays-344.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0814-overlays-dwc2-Increase-RX-FIFO-size.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0815-overlays-Fix-mcp23017-s-addr-parameter.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0816-overlays-fix-sh1106-spi-ssd1306-spi-and-ssd1351-spi-.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.19/950-0817-Fix-a-sh1106-spi-ssd1306-spi-ssd1351-spi-overlays.patch [new file with mode: 0644]

index 16764d369df792ed26c1f9a2ad8463644e6d31df..b7da77b854f0ef5a3714a1e6e381d708547445da 100644 (file)
@@ -532,6 +532,33 @@ endef
 $(eval $(call KernelPackage,sound-soc-hifiberry-dacplusdsp))
 
 
+define KernelPackage/sound-soc-hifiberry-dacplushd
+  TITLE:=Support for HifiBerry DAC+HD
+  KCONFIG:= \
+    CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSHD \
+    CONFIG_SND_SOC_PCM179X \
+    CONFIG_SND_SOC_PCM179X_I2C
+  FILES:= \
+    $(LINUX_DIR)/drivers/clk/clk-hifiberry-dachd.ko \
+    $(LINUX_DIR)/sound/soc/bcm/snd-soc-hifiberry-dacplushd.ko \
+    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm179x-codec.ko \
+    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm179x-i2c.ko
+  AUTOLOAD:=$(call AutoLoad,68,clk-hifiberry-dachd snd-soc-pcm179x-codec \
+    snd-soc-pcm179x-i2c snd-soc-hifiberry-dacplushd)
+  DEPENDS:= \
+    kmod-sound-soc-bcm2835-i2s \
+    +kmod-i2c-bcm2835 \
+    +kmod-regmap-i2c
+  $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-hifiberry-dacplushd/description
+  This package contains support for HifiBerry DAC+HD
+endef
+
+$(eval $(call KernelPackage,sound-soc-hifiberry-dacplushd))
+
+
 define KernelPackage/sound-soc-hifiberry-dacplusadc-pro
   TITLE:=Support for HifiBerry DAC+ADC PRO
   KCONFIG:= \
@@ -704,6 +731,32 @@ endef
 $(eval $(call KernelPackage,sound-soc-i-sabe-q2m))
 
 
+define KernelPackage/sound-soc-justboom-both
+  TITLE:=Support for JustBoom DAC and Digi
+  KCONFIG:= \
+    CONFIG_SND_BCM2708_SOC_JUSTBOOM_BOTH \
+    CONFIG_SND_SOC_PCM512x \
+    CONFIG_SND_SOC_WM8804
+  FILES:= \
+    $(LINUX_DIR)/sound/soc/bcm/snd-soc-justboom-both.ko \
+    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804.ko
+  AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x snd-soc-wm8804 \
+    snd-soc-justboom-both)
+  DEPENDS:= \
+    kmod-sound-soc-bcm2835-i2s \
+    +kmod-sound-soc-rpi-wm8804-soundcard \
+    +kmod-i2c-bcm2835
+  $(call AddDepends/sound)
+endef
+
+define KernelPackage/sound-soc-justboom-both/description
+  This package contains support for JustBoom DAC and Digi
+endef
+
+$(eval $(call KernelPackage,sound-soc-justboom-both))
+
+
 define KernelPackage/sound-soc-justboom-dac
   TITLE:=Support for JustBoom DAC
   KCONFIG:= \
diff --git a/target/linux/brcm2708/patches-4.19/950-0769-fixup-clk-raspberrypi-Also-support-v3d-clock.patch b/target/linux/brcm2708/patches-4.19/950-0769-fixup-clk-raspberrypi-Also-support-v3d-clock.patch
new file mode 100644 (file)
index 0000000..a15f41f
--- /dev/null
@@ -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,
+ };
index a15f41f45a0b57a2586b9a62627d90d89ddd1d92..0239b19ff22c435f15339ab4950500b56680be6c 100644 (file)
@@ -1,36 +1,54 @@
-From 05c745c001c8c82bbba8a6d953ad77ad25c92c5f Mon Sep 17 00:00:00 2001
+From afb2cfe3056fc643cee8ae25991f4b9c22d48bef Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
-Date: Thu, 7 Nov 2019 14:11:08 +0000
+Date: Thu, 7 Nov 2019 14:23:38 +0000
 Subject: [PATCH] fixup! clk-raspberrypi: Also support v3d clock
 
 ---
- drivers/clk/bcm/clk-raspberrypi.c | +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
+ 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
-@@ -351,21 +351,21 @@ static const struct clk_ops raspberrypi_
+@@ -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,
+-      //.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,
+-      //.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,
+-      //.determine_rate = raspberrypi_clock_determine_rate,
++      .determine_rate = raspberrypi_clock_determine_rate,
  };
  
  
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
deleted file mode 100644 (file)
index 0239b19..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-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-0783-pinctrl-bcm2835-Remove-gpiochip-on-error.patch b/target/linux/brcm2708/patches-4.19/950-0783-pinctrl-bcm2835-Remove-gpiochip-on-error.patch
new file mode 100644 (file)
index 0000000..d976e37
--- /dev/null
@@ -0,0 +1,25 @@
+From e1bbcb1097b9d968ae61397a66a73a440a0ce705 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Mon, 6 Jan 2020 16:04:30 +0000
+Subject: [PATCH] pinctrl: bcm2835: Remove gpiochip on error
+
+A failure in gpiochip_irqchip_add leads to a leak of a gpiochip. Fix
+the leak with the use of devm_gpiochip_add_data.
+
+Fixes: 85ae9e512f43 ("pinctrl: bcm2835: switch to GPIOLIB_IRQCHIP")
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ drivers/pinctrl/bcm/pinctrl-bcm2835.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
++++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+@@ -1140,7 +1140,7 @@ static int bcm2835_pinctrl_probe(struct
+               raw_spin_lock_init(&pc->irq_lock[i]);
+       }
+-      err = gpiochip_add_data(&pc->gpio_chip, pc);
++      err = devm_gpiochip_add_data(dev, &pc->gpio_chip, pc);
+       if (err) {
+               dev_err(dev, "could not add GPIO chip\n");
+               return err;
diff --git a/target/linux/brcm2708/patches-4.19/950-0784-pinctrl-bcm2835-Change-init-order-for-gpio-hogs.patch b/target/linux/brcm2708/patches-4.19/950-0784-pinctrl-bcm2835-Change-init-order-for-gpio-hogs.patch
new file mode 100644 (file)
index 0000000..09166b7
--- /dev/null
@@ -0,0 +1,82 @@
+From 0b3764707993123148b4e94d44ff282b111c8edb Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Mon, 6 Jan 2020 14:05:42 +0000
+Subject: [PATCH] pinctrl: bcm2835: Change init order for gpio hogs
+
+pinctrl-bcm2835 is a combined pinctrl/gpio driver. Currently the gpio
+side is registered first, but this breaks gpio hogs (which are
+configured during gpiochip_add_data). Part of the hog initialisation
+is a call to pinctrl_gpio_request, and since the pinctrl driver hasn't
+yet been registered this results in an -EPROBE_DEFER from which it can
+never recover.
+
+Change the initialisation sequence to register the pinctrl driver
+first.
+
+See: https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=260600
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ drivers/pinctrl/bcm/pinctrl-bcm2835.c | 34 +++++++++++++--------------
+ 1 file changed, 17 insertions(+), 17 deletions(-)
+
+--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
++++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+@@ -1140,9 +1140,25 @@ static int bcm2835_pinctrl_probe(struct
+               raw_spin_lock_init(&pc->irq_lock[i]);
+       }
++      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))
++              return PTR_ERR(pc->pctl_dev);
++
++      pc->gpio_range = bcm2835_pinctrl_gpio_range;
++      pc->gpio_range.base = pc->gpio_chip.base;
++      pc->gpio_range.gc = &pc->gpio_chip;
++      pinctrl_add_gpio_range(pc->pctl_dev, &pc->gpio_range);
++
+       err = devm_gpiochip_add_data(dev, &pc->gpio_chip, pc);
+       if (err) {
+               dev_err(dev, "could not add GPIO chip\n");
++              pinctrl_remove_gpio_range(pc->pctl_dev, &pc->gpio_range);
+               return err;
+       }
+@@ -1150,6 +1166,7 @@ static int bcm2835_pinctrl_probe(struct
+                                  0, handle_level_irq, IRQ_TYPE_NONE);
+       if (err) {
+               dev_info(dev, "could not add irqchip\n");
++              pinctrl_remove_gpio_range(pc->pctl_dev, &pc->gpio_range);
+               return err;
+       }
+@@ -1172,23 +1189,6 @@ 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);
+-              return PTR_ERR(pc->pctl_dev);
+-      }
+-
+-      pc->gpio_range = bcm2835_pinctrl_gpio_range;
+-      pc->gpio_range.base = pc->gpio_chip.base;
+-      pc->gpio_range.gc = &pc->gpio_chip;
+-      pinctrl_add_gpio_range(pc->pctl_dev, &pc->gpio_range);
+-
+       return 0;
+ }
diff --git a/target/linux/brcm2708/patches-4.19/950-0785-Pisound-MIDI-communication-fixes-for-scaled-down-CPU.patch b/target/linux/brcm2708/patches-4.19/950-0785-Pisound-MIDI-communication-fixes-for-scaled-down-CPU.patch
new file mode 100644 (file)
index 0000000..c363e1d
--- /dev/null
@@ -0,0 +1,100 @@
+From 5b12b655f266ea29e91a7b7a46385df05bb70ed8 Mon Sep 17 00:00:00 2001
+From: Giedrius <giedrius@blokas.io>
+Date: Tue, 7 Jan 2020 11:04:21 +0200
+Subject: [PATCH] Pisound: MIDI communication fixes for scaled down
+ CPU.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* Increased maximum SPI communication speed to avoid running too slow
+  when the CPU is scaled down and losing MIDI data.
+
+* Keep track of buffer usage in millibytes for higher precision.
+
+Signed-off-by: Giedrius Trainavičius <giedrius@blokas.io>
+---
+ sound/soc/bcm/pisound.c | 31 ++++++++++++++++++-------------
+ 1 file changed, 18 insertions(+), 13 deletions(-)
+
+--- a/sound/soc/bcm/pisound.c
++++ b/sound/soc/bcm/pisound.c
+@@ -1,6 +1,6 @@
+ /*
+  * Pisound Linux kernel module.
+- * Copyright (C) 2016-2019  Vilniaus Blokas UAB, https://blokas.io/pisound
++ * Copyright (C) 2016-2020  Vilniaus Blokas UAB, https://blokas.io/pisound
+  *
+  * This program is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU General Public License
+@@ -326,7 +326,7 @@ static void spi_transfer(const uint8_t *
+       transfer.tx_buf = txbuf;
+       transfer.rx_buf = rxbuf;
+       transfer.len = len;
+-      transfer.speed_hz = 100000;
++      transfer.speed_hz = 150000;
+       transfer.delay_usecs = 10;
+       spi_message_add_tail(&transfer, &msg);
+@@ -403,9 +403,9 @@ static struct spi_device *pisnd_spi_find
+ static void pisnd_work_handler(struct work_struct *work)
+ {
+       enum { TRANSFER_SIZE = 4 };
+-      enum { PISOUND_OUTPUT_BUFFER_SIZE = 128 };
+-      enum { MIDI_BYTES_PER_SECOND = 3125 };
+-      int out_buffer_used = 0;
++      enum { PISOUND_OUTPUT_BUFFER_SIZE_MILLIBYTES = 127 * 1000 };
++      enum { MIDI_MILLIBYTES_PER_JIFFIE = (3125 * 1000) / HZ };
++      int out_buffer_used_millibytes = 0;
+       unsigned long now;
+       uint8_t val;
+       uint8_t txbuf[TRANSFER_SIZE];
+@@ -445,7 +445,9 @@ static void pisnd_work_handler(struct wo
+                       had_data = false;
+                       memset(txbuf, 0, sizeof(txbuf));
+                       for (i = 0; i < sizeof(txbuf) &&
+-                              out_buffer_used < PISOUND_OUTPUT_BUFFER_SIZE;
++                              ((out_buffer_used_millibytes+1000 <
++                              PISOUND_OUTPUT_BUFFER_SIZE_MILLIBYTES) ||
++                              g_ledFlashDurationChanged);
+                               i += 2) {
+                               val = 0;
+@@ -458,7 +460,7 @@ static void pisnd_work_handler(struct wo
+                               } else if (kfifo_get(&spi_fifo_out, &val)) {
+                                       txbuf[i+0] = 0x0f;
+                                       txbuf[i+1] = val;
+-                                      ++out_buffer_used;
++                                      out_buffer_used_millibytes += 1000;
+                               }
+                       }
+@@ -469,12 +471,14 @@ static void pisnd_work_handler(struct wo
+                        * rate.
+                        */
+                       now = jiffies;
+-                      out_buffer_used -=
+-                              (MIDI_BYTES_PER_SECOND / HZ) /
+-                              (now - last_transfer_at);
+-                      if (out_buffer_used < 0)
+-                              out_buffer_used = 0;
+-                      last_transfer_at = now;
++                      if (now != last_transfer_at) {
++                              out_buffer_used_millibytes -=
++                                      (now - last_transfer_at) *
++                                      MIDI_MILLIBYTES_PER_JIFFIE;
++                              if (out_buffer_used_millibytes < 0)
++                                      out_buffer_used_millibytes = 0;
++                              last_transfer_at = now;
++                      }
+                       for (i = 0; i < sizeof(rxbuf); i += 2) {
+                               if (rxbuf[i]) {
+@@ -489,6 +493,7 @@ static void pisnd_work_handler(struct wo
+                       || !kfifo_is_empty(&spi_fifo_out)
+                       || pisnd_spi_has_more()
+                       || g_ledFlashDurationChanged
++                      || out_buffer_used_millibytes != 0
+                       );
+               if (!kfifo_is_empty(&spi_fifo_in) && g_recvCallback)
diff --git a/target/linux/brcm2708/patches-4.19/950-0786-leds-pca963x-Fix-open-drain-initialization.patch b/target/linux/brcm2708/patches-4.19/950-0786-leds-pca963x-Fix-open-drain-initialization.patch
new file mode 100644 (file)
index 0000000..e63d4c6
--- /dev/null
@@ -0,0 +1,61 @@
+From 1738aaf187e0c8e97fbdd9661960b835f45e8985 Mon Sep 17 00:00:00 2001
+From: Zahari Petkov <zahari@balena.io>
+Date: Mon, 18 Nov 2019 23:02:55 +0200
+Subject: [PATCH] leds: pca963x: Fix open-drain initialization
+
+commit 697529091ac7a0a90ca349b914bb30641c13c753 upstream.
+
+Before commit bb29b9cccd95 ("leds: pca963x: Add bindings to invert
+polarity") Mode register 2 was initialized directly with either 0x01
+or 0x05 for open-drain or totem pole (push-pull) configuration.
+
+Afterwards, MODE2 initialization started using bitwise operations on
+top of the default MODE2 register value (0x05). Using bitwise OR for
+setting OUTDRV with 0x01 and 0x05 does not produce correct results.
+When open-drain is used, instead of setting OUTDRV to 0, the driver
+keeps it as 1:
+
+Open-drain: 0x05 | 0x01 -> 0x05 (0b101 - incorrect)
+Totem pole: 0x05 | 0x05 -> 0x05 (0b101 - correct but still wrong)
+
+Now OUTDRV setting uses correct bitwise operations for initialization:
+
+Open-drain: 0x05 & ~0x04 -> 0x01 (0b001 - correct)
+Totem pole: 0x05 | 0x04 -> 0x05 (0b101 - correct)
+
+Additional MODE2 register definitions are introduced now as well.
+
+Fixes: bb29b9cccd95 ("leds: pca963x: Add bindings to invert polarity")
+Signed-off-by: Zahari Petkov <zahari@balena.io>
+Signed-off-by: Pavel Machek <pavel@ucw.cz>
+---
+ drivers/leds/leds-pca963x.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+--- a/drivers/leds/leds-pca963x.c
++++ b/drivers/leds/leds-pca963x.c
+@@ -43,6 +43,8 @@
+ #define PCA963X_LED_PWM               0x2     /* Controlled through PWM */
+ #define PCA963X_LED_GRP_PWM   0x3     /* Controlled through PWM/GRPPWM */
++#define PCA963X_MODE2_OUTDRV  0x04    /* Open-drain or totem pole */
++#define PCA963X_MODE2_INVRT   0x10    /* Normal or inverted direction */
+ #define PCA963X_MODE2_DMBLNK  0x20    /* Enable blinking */
+ #define PCA963X_MODE1         0x00
+@@ -462,12 +464,12 @@ static int pca963x_probe(struct i2c_clie
+                                                   PCA963X_MODE2);
+               /* Configure output: open-drain or totem pole (push-pull) */
+               if (pdata->outdrv == PCA963X_OPEN_DRAIN)
+-                      mode2 |= 0x01;
++                      mode2 &= ~PCA963X_MODE2_OUTDRV;
+               else
+-                      mode2 |= 0x05;
++                      mode2 |= PCA963X_MODE2_OUTDRV;
+               /* Configure direction: normal or inverted */
+               if (pdata->dir == PCA963X_INVERTED)
+-                      mode2 |= 0x10;
++                      mode2 |= PCA963X_MODE2_INVRT;
+               i2c_smbus_write_byte_data(pca963x->chip->client, PCA963X_MODE2,
+                                         mode2);
+       }
diff --git a/target/linux/brcm2708/patches-4.19/950-0787-add-BME680-to-i2c-sensor-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0787-add-BME680-to-i2c-sensor-overlay.patch
new file mode 100644 (file)
index 0000000..55e34e2
--- /dev/null
@@ -0,0 +1,67 @@
+From ca88aee39825dd81ef1e8306b5947c5ae3918d1a Mon Sep 17 00:00:00 2001
+From: Willem Remie <w.remie@drebble.io>
+Date: Thu, 9 Jan 2020 21:16:49 +0100
+Subject: [PATCH] add BME680 to i2c-sensor overlay
+
+---
+ arch/arm/boot/dts/overlays/README             |  7 +++++--
+ .../boot/dts/overlays/i2c-sensor-overlay.dts  | 19 ++++++++++++++++++-
+ 2 files changed, 23 insertions(+), 3 deletions(-)
+
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -1159,12 +1159,15 @@ Name:   i2c-sensor
+ Info:   Adds support for a number of I2C barometric pressure and temperature
+         sensors on i2c_arm
+ Load:   dtoverlay=i2c-sensor,<param>=<val>
+-Params: addr                    Set the address for the BME280, BMP280, DS1621,
+-                                HDC100X, LM75, SHT3x or TMP102
++Params: addr                    Set the address for the BME280, BME680, BMP280,
++                                DS1621, HDC100X, LM75, SHT3x or TMP102
+         bme280                  Select the Bosch Sensortronic BME280
+                                 Valid addresses 0x76-0x77, default 0x76
++        bme680                  Select the Bosch Sensortronic BME680
++                                Valid addresses 0x76-0x77, default 0x76
++
+         bmp085                  Select the Bosch Sensortronic BMP085
+         bmp180                  Select the Bosch Sensortronic BMP180
+--- a/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts
++++ b/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts
+@@ -216,10 +216,26 @@
+               };
+       };
++      fragment@14 {
++              target = <&i2c_arm>;
++              __dormant__ {
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++                      status = "okay";
++
++                      bme680: bme680@76 {
++                              compatible = "bosch,bme680";
++                              reg = <0x76>;
++                              status = "okay";
++                      };
++              };
++      };
++
++
+       __overrides__ {
+               addr =  <&bme280>,"reg:0", <&bmp280>,"reg:0", <&tmp102>,"reg:0",
+                       <&lm75>,"reg:0", <&hdc100x>,"reg:0", <&sht3x>,"reg:0",
+-                      <&ds1621>,"reg:0";
++                      <&ds1621>,"reg:0", <&bme680>,"reg:0";
+               bme280 = <0>,"+0";
+               bmp085 = <0>,"+1";
+               bmp180 = <0>,"+2";
+@@ -235,5 +251,6 @@
+               sht3x = <0>,"+11";
+               ds1621 = <0>,"+12";
+               max17040 = <0>,"+13";
++              bme680 = <0>,"+14";
+       };
+ };
diff --git a/target/linux/brcm2708/patches-4.19/950-0788-dwc_otg-constrain-endpoint-max-packet-and-transfer-s.patch b/target/linux/brcm2708/patches-4.19/950-0788-dwc_otg-constrain-endpoint-max-packet-and-transfer-s.patch
new file mode 100644 (file)
index 0000000..ae110ad
--- /dev/null
@@ -0,0 +1,43 @@
+From 7ae8ef63c14ca2fea76c9db5799321f1b3e31c36 Mon Sep 17 00:00:00 2001
+From: Jonathan Bell <jonathan@raspberrypi.org>
+Date: Tue, 7 Jan 2020 10:08:19 +0000
+Subject: [PATCH] dwc_otg: constrain endpoint max packet and transfer
+ size on split IN
+
+The hcd would unconditionally set the transfer length to the endpoint
+packet size for non-isoc IN transfers. If the remaining buffer length
+was less than the length of returned data, random memory would get
+scribbled over, with bad effects if it crossed a page boundary.
+
+Force a babble error if this happens by limiting the max transfer size
+to the available buffer space. DMA will stop writing to memory on a
+babble condition.
+
+The hardware expects xfersize to be an integer multiple of maxpacket
+size, so override hcchar.b.mps as well.
+
+Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
+---
+ drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
+@@ -1813,7 +1813,7 @@ int fiq_fsm_queue_split_transaction(dwc_
+       st->nr_errors = 0;
+       st->hcchar_copy.d32 = 0;
+-      st->hcchar_copy.b.mps = hc->max_packet;
++      st->hcchar_copy.b.mps = min_t(uint32_t, hc->xfer_len, hc->max_packet);
+       st->hcchar_copy.b.epdir = hc->ep_is_in;
+       st->hcchar_copy.b.devaddr = hc->dev_addr;
+       st->hcchar_copy.b.epnum = hc->ep_num;
+@@ -1858,7 +1858,7 @@ int fiq_fsm_queue_split_transaction(dwc_
+       st->hctsiz_copy.b.pid = hc->data_pid_start;
+       if (hc->ep_is_in || (hc->xfer_len > hc->max_packet)) {
+-              hc->xfer_len = hc->max_packet;
++              hc->xfer_len = min_t(uint32_t, hc->xfer_len, hc->max_packet);
+       } else if (!hc->ep_is_in && (hc->xfer_len > 188)) {
+               hc->xfer_len = 188;
+       }
diff --git a/target/linux/brcm2708/patches-4.19/950-0789-dwc_otg-fiq_fsm-pause-when-cancelling-split-transact.patch b/target/linux/brcm2708/patches-4.19/950-0789-dwc_otg-fiq_fsm-pause-when-cancelling-split-transact.patch
new file mode 100644 (file)
index 0000000..53c93a5
--- /dev/null
@@ -0,0 +1,95 @@
+From af6743f045159970b95f6426de13c0fb82678e67 Mon Sep 17 00:00:00 2001
+From: Jonathan Bell <jonathan@raspberrypi.org>
+Date: Wed, 8 Jan 2020 12:48:09 +0000
+Subject: [PATCH] dwc_otg: fiq_fsm: pause when cancelling split
+ transactions
+
+Non-periodic splits will DMA to/from the driver-provided transfer_buffer,
+which may be freed immediately after the dequeue call returns. Block until
+we know the transfer is complete.
+
+A similar delay is needed when cleaning up disconnects, as the FIQ could
+have started a periodic transfer in the previous microframe to the one
+that triggered a disconnect.
+
+Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
+---
+ drivers/usb/host/dwc_otg/dwc_otg_hcd.c    | 33 +++++++++++++++++++++--
+ drivers/usb/host/dwc_otg/dwc_otg_os_dep.h |  1 +
+ 2 files changed, 32 insertions(+), 2 deletions(-)
+
+--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
+@@ -175,6 +175,7 @@ static void kill_urbs_in_qh_list(dwc_otg
+       dwc_list_link_t *qh_item, *qh_tmp;
+       dwc_otg_qh_t *qh;
+       dwc_otg_qtd_t *qtd, *qtd_tmp;
++      int quiesced = 0;
+       DWC_LIST_FOREACH_SAFE(qh_item, qh_tmp, qh_list) {
+               qh = DWC_LIST_ENTRY(qh_item, dwc_otg_qh_t, qh_list_entry);
+@@ -198,8 +199,17 @@ static void kill_urbs_in_qh_list(dwc_otg
+                               qh->channel->halt_status = DWC_OTG_HC_XFER_URB_DEQUEUE;
+                               qh->channel->halt_pending = 1;
+                               if (hcd->fiq_state->channel[n].fsm == FIQ_HS_ISOC_TURBO ||
+-                                      hcd->fiq_state->channel[n].fsm == FIQ_HS_ISOC_SLEEPING)
++                                  hcd->fiq_state->channel[n].fsm == FIQ_HS_ISOC_SLEEPING)
+                                       hcd->fiq_state->channel[n].fsm = FIQ_HS_ISOC_ABORTED;
++                              /* We're called from disconnect callback or in the middle of freeing the HCD here,
++                               * so FIQ is disabled, top-level interrupts masked and we're holding the spinlock.
++                               * No further URBs will be submitted, but wait 1 microframe for any previously
++                               * submitted periodic DMA to finish.
++                               */
++                              if (!quiesced) {
++                                      udelay(125);
++                                      quiesced = 1;
++                              }
+                       } else {
+                               dwc_otg_hc_halt(hcd->core_if, qh->channel,
+                                               DWC_OTG_HC_XFER_URB_DEQUEUE);
+@@ -600,15 +610,34 @@ int dwc_otg_hcd_urb_dequeue(dwc_otg_hcd_
+                       /* In FIQ FSM mode, we need to shut down carefully.
+                        * The FIQ may attempt to restart a disabled channel */
+                       if (fiq_fsm_enable && (hcd->fiq_state->channel[n].fsm != FIQ_PASSTHROUGH)) {
++                              int retries = 3;
++                              int running = 0;
++                              enum fiq_fsm_state state;
++
+                               local_fiq_disable();
+                               fiq_fsm_spin_lock(&hcd->fiq_state->lock);
+                               qh->channel->halt_status = DWC_OTG_HC_XFER_URB_DEQUEUE;
+                               qh->channel->halt_pending = 1;
+                               if (hcd->fiq_state->channel[n].fsm == FIQ_HS_ISOC_TURBO ||
+-                                      hcd->fiq_state->channel[n].fsm == FIQ_HS_ISOC_SLEEPING)
++                                  hcd->fiq_state->channel[n].fsm == FIQ_HS_ISOC_SLEEPING)
+                                       hcd->fiq_state->channel[n].fsm = FIQ_HS_ISOC_ABORTED;
+                               fiq_fsm_spin_unlock(&hcd->fiq_state->lock);
+                               local_fiq_enable();
++
++                              if (dwc_qh_is_non_per(qh)) {
++                                      do {
++                                              state = READ_ONCE(hcd->fiq_state->channel[n].fsm);
++                                              running = (state != FIQ_NP_SPLIT_DONE) &&
++                                                        (state != FIQ_NP_SPLIT_LS_ABORTED) &&
++                                                        (state != FIQ_NP_SPLIT_HS_ABORTED);
++                                              if (!running)
++                                                      break;
++                                              udelay(125);
++                                      } while(--retries);
++                                      if (!retries)
++                                              DWC_WARN("Timed out waiting for FSM NP transfer to complete on %d",
++                                                       qh->channel->hc_num);
++                              }
+                       } else {
+                               dwc_otg_hc_halt(hcd->core_if, qh->channel,
+                                               DWC_OTG_HC_XFER_URB_DEQUEUE);
+--- a/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
++++ b/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
+@@ -27,6 +27,7 @@
+ #include <linux/workqueue.h>
+ #include <linux/stat.h>
+ #include <linux/pci.h>
++#include <linux/compiler.h>
+ #include <linux/version.h>
diff --git a/target/linux/brcm2708/patches-4.19/950-0790-dwc_otg-fiq_fsm-add-a-barrier-on-entry-into-FIQ-hand.patch b/target/linux/brcm2708/patches-4.19/950-0790-dwc_otg-fiq_fsm-add-a-barrier-on-entry-into-FIQ-hand.patch
new file mode 100644 (file)
index 0000000..dc48605
--- /dev/null
@@ -0,0 +1,49 @@
+From b2d43d61a1d6d070664f10d12b3c8b6df11eb21d Mon Sep 17 00:00:00 2001
+From: Jonathan Bell <jonathan@raspberrypi.org>
+Date: Mon, 13 Jan 2020 15:54:55 +0000
+Subject: [PATCH] dwc_otg: fiq_fsm: add a barrier on entry into FIQ
+ handler(s)
+
+On BCM2835, there is no hardware guarantee that multiple outstanding
+reads to different peripherals will complete in-order. The FIQ code
+uses peripheral reads without barriers for performance, so in the case
+where a read to a slow peripheral was issued immediately prior to FIQ
+entry, the first peripheral read that the FIQ did could end up with
+wrong read data returned.
+
+Add dsb(sy) on entry so that all outstanding reads are retired.
+
+The FIQ only issues reads to the dwc_otg core, so per-read barriers
+in the handler itself are not required.
+
+On BCM2836 and BCM2837 the barrier is not strictly required due to
+differences in how the peripheral bus is implemented, but having
+arch-specific handlers that introduce different latencies is risky.
+
+Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
+---
+ drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c
++++ b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c
+@@ -1259,6 +1259,9 @@ void notrace dwc_otg_fiq_fsm(struct fiq_
+       haintmsk_data_t haintmsk;
+       int kick_irq = 0;
++      /* Ensure peripheral reads issued prior to FIQ entry are complete */
++      dsb(sy);
++
+       gintsts_handled.d32 = 0;
+       haint_handled.d32 = 0;
+@@ -1379,6 +1382,9 @@ void notrace dwc_otg_fiq_nop(struct fiq_
+       gintmsk_data_t gintmsk;
+       hfnum_data_t hfnum;
++      /* Ensure peripheral reads issued prior to FIQ entry are complete */
++      dsb(sy);
++
+       fiq_fsm_spin_lock(&state->lock);
+       hfnum.d32 = FIQ_READ(state->dwc_regs_base + HFNUM);
+       gintsts.d32 = FIQ_READ(state->dwc_regs_base + GINTSTS);
diff --git a/target/linux/brcm2708/patches-4.19/950-0791-Add-universal-device-tree-overlay-for-SPI-devices.patch b/target/linux/brcm2708/patches-4.19/950-0791-Add-universal-device-tree-overlay-for-SPI-devices.patch
new file mode 100644 (file)
index 0000000..ce027e7
--- /dev/null
@@ -0,0 +1,273 @@
+From 4d19be9132ca10cf582450a86dcb2c41f227f589 Mon Sep 17 00:00:00 2001
+From: Ed Spiridonov <edo.rus@gmail.com>
+Date: Tue, 10 Dec 2019 22:45:04 +0300
+Subject: [PATCH] Add universal device tree overlay for SPI devices
+
+Just specify the SPI address and device name ("compatible" property).
+This overlay lacks any device-specific parameter support!
+(some of them could be added later)
+
+Examples:
+1. SPI NOR flash on spi0.1, maximum SPI clock frequency 45MHz:
+    dtoverlay=anyspi:spi0-1,dev="jedec,spi-nor",speed=45000000
+2. MCP3204 ADC on spi1.2, maximum SPI clock frequency 500kHz:
+    dtoverlay=anyspi:spi1-2,dev="microchip,mcp3204"
+
+Signed-off-by: Ed Spiridonov <edo.rus@gmail.com>
+---
+ arch/arm/boot/dts/overlays/Makefile           |   1 +
+ arch/arm/boot/dts/overlays/README             |  23 ++
+ arch/arm/boot/dts/overlays/anyspi-overlay.dts | 205 ++++++++++++++++++
+ 3 files changed, 229 insertions(+)
+ create mode 100755 arch/arm/boot/dts/overlays/anyspi-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 \
++      anyspi.dtbo \
+       apds9960.dtbo \
+       applepi-dac.dtbo \
+       at86rf233.dtbo \
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -441,6 +441,29 @@ Params: 24db_digital_gain       Allow ga
+                                 better voice quality. (default Off)
++Name:   anyspi
++Info:   Universal device tree overlay for SPI devices
++
++        Just specify the SPI address and device name ("compatible" property).
++        This overlay lacks any device-specific parameter support!
++
++        For devices on spi1 or spi2, the interfaces should be enabled
++        with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays.
++
++        Examples:
++        1. SPI NOR flash on spi0.1, maximum SPI clock frequency 45MHz:
++            dtoverlay=anyspi:spi0-1,dev="jedec,spi-nor",speed=45000000
++        2. MCP3204 ADC on spi1.2, maximum SPI clock frequency 500kHz:
++            dtoverlay=anyspi:spi1-2,dev="microchip,mcp3204"
++Load:   dtoverlay=anyspi,<param>=<val>
++Params: spi<n>-<m>              Configure device at spi<n>, cs<m>
++                                (boolean, required)
++        dev                     Set device name to search compatible module
++                                (string, required)
++        speed                   Set SPI clock frequency in Hz
++                                (integer, optional, default 500000)
++
++
+ Name:   apds9960
+ Info:   Configures the AVAGO APDS9960 digital proximity, ambient light, RGB and
+         gesture sensor
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/anyspi-overlay.dts
+@@ -0,0 +1,205 @@
++/*
++ * Universal device tree overlay for SPI devices
++ */
++
++/dts-v1/;
++/plugin/;
++
++/ {
++      compatible = "brcm,bcm2835";
++
++      fragment@0 {
++              target = <&spidev0>;
++              __dormant__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@1 {
++              target = <&spidev1>;
++              __dormant__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@2 {
++              target-path = "spi1/spidev@0";
++              __dormant__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@3 {
++              target-path = "spi1/spidev@1";
++              __dormant__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@4 {
++              target-path = "spi1/spidev@2";
++              __dormant__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@5 {
++              target-path = "spi2/spidev@0";
++              __dormant__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@6 {
++              target-path = "spi2/spidev@1";
++              __dormant__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@7 {
++              target-path = "spi2/spidev@2";
++              __dormant__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@8 {
++              target = <&spi0>;
++              __dormant__ {
++                      status = "okay";
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++
++                      anyspi_00: anyspi@0 {
++                              reg = <0>;
++                              spi-max-frequency = <500000>;
++                      };
++              };
++      };
++
++      fragment@9 {
++              target = <&spi0>;
++              __dormant__ {
++                      status = "okay";
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++
++                      anyspi_01: anyspi@1 {
++                              reg = <1>;
++                              spi-max-frequency = <500000>;
++                      };
++              };
++      };
++
++      fragment@10 {
++              target = <&spi1>;
++              __dormant__ {
++                      status = "okay";
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++
++                      anyspi_10: anyspi@0 {
++                              reg = <0>;
++                              spi-max-frequency = <500000>;
++                      };
++              };
++      };
++
++      fragment@11 {
++              target = <&spi1>;
++              __dormant__ {
++                      status = "okay";
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++
++                      anyspi_11: anyspi@1 {
++                              reg = <1>;
++                              spi-max-frequency = <500000>;
++                      };
++              };
++      };
++
++      fragment@12 {
++              target = <&spi1>;
++              __dormant__ {
++                      status = "okay";
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++
++                      anyspi_12: anyspi@2 {
++                              reg = <2>;
++                              spi-max-frequency = <500000>;
++                      };
++              };
++      };
++
++      fragment@13 {
++              target = <&spi2>;
++              __dormant__ {
++                      status = "okay";
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++
++                      anyspi_20: anyspi@0 {
++                              reg = <0>;
++                              spi-max-frequency = <500000>;
++                      };
++              };
++      };
++
++      fragment@14 {
++              target = <&spi2>;
++              __dormant__ {
++                      status = "okay";
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++
++                      anyspi_21: anyspi@1 {
++                              reg = <1>;
++                              spi-max-frequency = <500000>;
++                      };
++              };
++      };
++
++      fragment@15 {
++              target = <&spi2>;
++              __dormant__ {
++                      status = "okay";
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++
++                      anyspi_22: anyspi@2 {
++                              reg = <2>;
++                              spi-max-frequency = <500000>;
++                      };
++              };
++      };
++
++      __overrides__ {
++              spi0-0 = <0>, "+0+8";
++              spi0-1 = <0>, "+1+9";
++              spi1-0 = <0>, "+2+10";
++              spi1-1 = <0>, "+3+11";
++              spi1-2 = <0>, "+4+12";
++              spi2-0 = <0>, "+5+13";
++              spi2-1 = <0>, "+6+14";
++              spi2-2 = <0>, "+7+15";
++              dev = <&anyspi_00>,"compatible",
++                    <&anyspi_01>,"compatible",
++                    <&anyspi_10>,"compatible",
++                    <&anyspi_11>,"compatible",
++                    <&anyspi_12>,"compatible",
++                    <&anyspi_20>,"compatible",
++                    <&anyspi_21>,"compatible",
++                    <&anyspi_22>,"compatible";
++              speed = <&anyspi_00>, "spi-max-frequency:0",
++                      <&anyspi_01>, "spi-max-frequency:0",
++                      <&anyspi_10>, "spi-max-frequency:0",
++                      <&anyspi_11>, "spi-max-frequency:0",
++                      <&anyspi_12>, "spi-max-frequency:0",
++                      <&anyspi_20>, "spi-max-frequency:0",
++                      <&anyspi_21>, "spi-max-frequency:0",
++                      <&anyspi_22>, "spi-max-frequency:0";
++      };
++};
diff --git a/target/linux/brcm2708/patches-4.19/950-0792-sound-Add-the-HiFiBerry-DAC-HD-version.patch b/target/linux/brcm2708/patches-4.19/950-0792-sound-Add-the-HiFiBerry-DAC-HD-version.patch
new file mode 100644 (file)
index 0000000..c8b8fd5
--- /dev/null
@@ -0,0 +1,776 @@
+From bb4781b1dac98688a3cf64cf728a64d811ca6add Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Schambacher?=
+ <j-schambacher@users.noreply.github.com>
+Date: Tue, 21 Jan 2020 15:58:39 +0100
+Subject: [PATCH] sound: Add the HiFiBerry DAC+HD version
+
+This adds the driver for the DAC+HD version supporting HiFiBerry's
+PCM179x based DACs. It also adds PLL control for clock generation.
+
+Signed-off-by: Joerg Schambacher <joerg@i2audio.com>
+---
+ arch/arm/boot/dts/overlays/Makefile           |   1 +
+ arch/arm/boot/dts/overlays/README             |   6 +
+ .../overlays/hifiberry-dacplushd-overlay.dts  | 106 ++++++
+ drivers/clk/Makefile                          |   1 +
+ drivers/clk/clk-hifiberry-dachd.c             | 333 ++++++++++++++++++
+ sound/soc/bcm/Kconfig                         |   7 +
+ sound/soc/bcm/Makefile                        |   2 +
+ sound/soc/bcm/hifiberry_dacplushd.c           | 235 ++++++++++++
+ 13 files changed, 696 insertions(+)
+ create mode 100644 arch/arm/boot/dts/overlays/hifiberry-dacplushd-overlay.dts
+ create mode 100644 drivers/clk/clk-hifiberry-dachd.c
+ create mode 100644 sound/soc/bcm/hifiberry_dacplushd.c
+
+--- a/arch/arm/boot/dts/overlays/Makefile
++++ b/arch/arm/boot/dts/overlays/Makefile
+@@ -57,6 +57,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
+       hifiberry-dacplusadc.dtbo \
+       hifiberry-dacplusadcpro.dtbo \
+       hifiberry-dacplusdsp.dtbo \
++      hifiberry-dacplushd.dtbo \
+       hifiberry-digi.dtbo \
+       hifiberry-digi-pro.dtbo \
+       hy28a.dtbo \
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -956,6 +956,12 @@ Load:   dtoverlay=hifiberry-dacplusdsp
+ Params: <None>
++Name:   hifiberry-dacplushd
++Info:   Configures the HifiBerry DAC+ HD audio card
++Load:   dtoverlay=hifiberry-dacplushd
++Params: <None>
++
++
+ Name:   hifiberry-digi
+ Info:   Configures the HifiBerry Digi and Digi+ audio card
+ Load:   dtoverlay=hifiberry-digi
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/hifiberry-dacplushd-overlay.dts
+@@ -0,0 +1,106 @@
++// Definitions for HiFiBerry DAC+ HD
++/dts-v1/;
++/plugin/;
++
++#include <dt-bindings/gpio/gpio.h>
++
++/ {
++      compatible = "brcm,bcm2835";
++
++      fragment@0 {
++              target-path = "/clocks";
++              __overlay__ {
++                      dachd_osc: pll_dachd_osc {
++                              compatible = "hifiberry,dachd-clk";
++                              #clock-cells = <0>;
++                      };
++              };
++      };
++
++      fragment@1 {
++              target = <&i2s>;
++              __overlay__ {
++                      status = "okay";
++              };
++      };
++
++      fragment@2 {
++              target = <&i2c1>;
++              __overlay__ {
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++                      status = "okay";
++
++                      pcm1792a@4c {
++                              compatible = "ti,pcm1792a";
++                              #sound-dai-cells = <0>;
++                              #clock-cells = <0>;
++                              clocks = <&dachd_osc>;
++                              reg = <0x4c>;
++                              status = "okay";
++                      };
++                      pll: pll@62 {
++                              compatible = "hifiberry,dachd-clk";
++                              #clock-cells = <0>;
++                              reg = <0x62>;
++                              clocks = <&dachd_osc>;
++                              status = "okay";
++                              common_pll_regs = [
++                                      02 53 03 00 07 20 0F 00
++                                      10 0D 11 1D 12 0D 13 8C
++                                      14 8C 15 8C 16 8C 17 8C
++                                      18 2A 1C 00 1D 0F 1F 00
++                                      2A 00 2C 00 2F 00 30 00
++                                      31 00 32 00 34 00 37 00
++                                      38 00 39 00 3A 00 3B 01
++                                      3E 00 3F 00 40 00 41 00
++                                      5A 00 5B 00 95 00 96 00
++                                      97 00 98 00 99 00 9A 00
++                                      9B 00 A2 00 A3 00 A4 00
++                                      B7 92 ];
++                              192k_pll_regs = [
++                                      1A 0C 1B 35 1E F0 20 09
++                                      21 50 2B 02 2D 10 2E 40
++                                      33 01 35 22 36 80 3C 22
++                                      3D 46 ];
++                              96k_pll_regs = [
++                                      1A 0C 1B 35 1E F0 20 09
++                                      21 50 2B 02 2D 10 2E 40
++                                      33 01 35 47 36 00 3C 32
++                                      3D 46 ];
++                              48k_pll_regs = [
++                                      1A 0C 1B 35 1E F0 20 09
++                                      21 50 2B 02 2D 10 2E 40
++                                      33 01 35 90 36 00 3C 42
++                                      3D 46 ];
++                              176k4_pll_regs = [
++                                      1A 3D 1B 09 1E F3 20 13
++                                      21 75 2B 04 2D 11 2E E0
++                                      33 02 35 25 36 C0 3C 22
++                                      3D 7A ];
++                              88k2_pll_regs = [
++                                      1A 3D 1B 09 1E F3 20 13
++                                      21 75 2B 04 2D 11 2E E0
++                                      33 01 35 4D 36 80 3C 32
++                                      3D 7A ];
++                              44k1_pll_regs = [
++                                      1A 3D 1B 09 1E F3 20 13
++                                      21 75 2B 04 2D 11 2E E0
++                                      33 01 35 9D 36 00 3C 42
++                                      3D 7A ];
++                      };
++              };
++      };
++
++      fragment@3 {
++              target = <&sound>;
++              __overlay__ {
++                      compatible = "hifiberry,hifiberry-dacplushd";
++                      i2s-controller = <&i2s>;
++                      clocks = <&pll 0>;
++                      reset-gpio = <&gpio 16 GPIO_ACTIVE_LOW>;
++                      status = "okay";
++              };
++      };
++
++};
+--- a/drivers/clk/Makefile
++++ b/drivers/clk/Makefile
+@@ -32,6 +32,7 @@ obj-$(CONFIG_COMMON_CLK_ASPEED)              += clk-
+ obj-$(CONFIG_ARCH_HIGHBANK)           += clk-highbank.o
+ obj-$(CONFIG_CLK_HSDK)                        += clk-hsdk-pll.o
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS) += clk-hifiberry-dacpro.o
++obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSHD) += clk-hifiberry-dachd.o
+ obj-$(CONFIG_COMMON_CLK_MAX77686)     += clk-max77686.o
+ obj-$(CONFIG_COMMON_CLK_MAX9485)      += clk-max9485.o
+ obj-$(CONFIG_ARCH_MOXART)             += clk-moxart.o
+--- /dev/null
++++ b/drivers/clk/clk-hifiberry-dachd.c
+@@ -0,0 +1,333 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Clock Driver for HiFiBerry DAC+ HD
++ *
++ * Author: Joerg Schambacher, i2Audio GmbH for HiFiBerry
++ *         Copyright 2020
++ *
++ * 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/clk-provider.h>
++#include <linux/clk.h>
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/of.h>
++#include <linux/slab.h>
++#include <linux/platform_device.h>
++#include <linux/i2c.h>
++#include <linux/regmap.h>
++
++#define NO_PLL_RESET                  0
++#define PLL_RESET                     1
++#define HIFIBERRY_PLL_MAX_REGISTER    256
++#define DEFAULT_RATE                  44100
++
++static struct reg_default hifiberry_pll_reg_defaults[] = {
++      {0x02, 0x53}, {0x03, 0x00}, {0x07, 0x20}, {0x0F, 0x00},
++      {0x10, 0x0D}, {0x11, 0x1D}, {0x12, 0x0D}, {0x13, 0x8C},
++      {0x14, 0x8C}, {0x15, 0x8C}, {0x16, 0x8C}, {0x17, 0x8C},
++      {0x18, 0x2A}, {0x1C, 0x00}, {0x1D, 0x0F}, {0x1F, 0x00},
++      {0x2A, 0x00}, {0x2C, 0x00}, {0x2F, 0x00}, {0x30, 0x00},
++      {0x31, 0x00}, {0x32, 0x00}, {0x34, 0x00}, {0x37, 0x00},
++      {0x38, 0x00}, {0x39, 0x00}, {0x3A, 0x00}, {0x3B, 0x01},
++      {0x3E, 0x00}, {0x3F, 0x00}, {0x40, 0x00}, {0x41, 0x00},
++      {0x5A, 0x00}, {0x5B, 0x00}, {0x95, 0x00}, {0x96, 0x00},
++      {0x97, 0x00}, {0x98, 0x00}, {0x99, 0x00}, {0x9A, 0x00},
++      {0x9B, 0x00}, {0xA2, 0x00}, {0xA3, 0x00}, {0xA4, 0x00},
++      {0xB7, 0x92},
++      {0x1A, 0x3D}, {0x1B, 0x09}, {0x1E, 0xF3}, {0x20, 0x13},
++      {0x21, 0x75}, {0x2B, 0x04}, {0x2D, 0x11}, {0x2E, 0xE0},
++      {0x3D, 0x7A},
++      {0x35, 0x9D}, {0x36, 0x00}, {0x3C, 0x42},
++      { 177, 0xAC},
++};
++static struct reg_default common_pll_regs[HIFIBERRY_PLL_MAX_REGISTER];
++static int num_common_pll_regs;
++static struct reg_default dedicated_192k_pll_regs[HIFIBERRY_PLL_MAX_REGISTER];
++static int num_dedicated_192k_pll_regs;
++static struct reg_default dedicated_96k_pll_regs[HIFIBERRY_PLL_MAX_REGISTER];
++static int num_dedicated_96k_pll_regs;
++static struct reg_default dedicated_48k_pll_regs[HIFIBERRY_PLL_MAX_REGISTER];
++static int num_dedicated_48k_pll_regs;
++static struct reg_default dedicated_176k4_pll_regs[HIFIBERRY_PLL_MAX_REGISTER];
++static int num_dedicated_176k4_pll_regs;
++static struct reg_default dedicated_88k2_pll_regs[HIFIBERRY_PLL_MAX_REGISTER];
++static int num_dedicated_88k2_pll_regs;
++static struct reg_default dedicated_44k1_pll_regs[HIFIBERRY_PLL_MAX_REGISTER];
++static int num_dedicated_44k1_pll_regs;
++
++/**
++ * struct clk_hifiberry_drvdata - Common struct to the HiFiBerry DAC HD Clk
++ * @hw: clk_hw for the common clk framework
++ */
++struct clk_hifiberry_drvdata {
++      struct regmap *regmap;
++      struct clk *clk;
++      struct clk_hw hw;
++      unsigned long rate;
++};
++
++#define to_hifiberry_clk(_hw) \
++      container_of(_hw, struct clk_hifiberry_drvdata, hw)
++
++static int clk_hifiberry_dachd_write_pll_regs(struct regmap *regmap,
++                              struct reg_default *regs,
++                              int num, int do_pll_reset)
++{
++      int i;
++      int ret = 0;
++      char pll_soft_reset[] = { 177, 0xAC, };
++
++      for (i = 0; i < num; i++) {
++              ret |= regmap_write(regmap, regs[i].reg, regs[i].def);
++              if (ret)
++                      return ret;
++      }
++      if (do_pll_reset) {
++              ret |= regmap_write(regmap, pll_soft_reset[0],
++                                              pll_soft_reset[1]);
++              mdelay(10);
++      }
++      return ret;
++}
++
++static unsigned long clk_hifiberry_dachd_recalc_rate(struct clk_hw *hw,
++      unsigned long parent_rate)
++{
++      return to_hifiberry_clk(hw)->rate;
++}
++
++static long clk_hifiberry_dachd_round_rate(struct clk_hw *hw,
++      unsigned long rate, unsigned long *parent_rate)
++{
++      return rate;
++}
++
++static int clk_hifiberry_dachd_set_rate(struct clk_hw *hw,
++      unsigned long rate, unsigned long parent_rate)
++{
++      int ret;
++      struct clk_hifiberry_drvdata *drvdata = to_hifiberry_clk(hw);
++
++      switch (rate) {
++      case 44100:
++              ret = clk_hifiberry_dachd_write_pll_regs(drvdata->regmap,
++                      dedicated_44k1_pll_regs, num_dedicated_44k1_pll_regs,
++                      PLL_RESET);
++              break;
++      case 88200:
++              ret = clk_hifiberry_dachd_write_pll_regs(drvdata->regmap,
++                      dedicated_88k2_pll_regs, num_dedicated_88k2_pll_regs,
++                      PLL_RESET);
++              break;
++      case 176400:
++              ret = clk_hifiberry_dachd_write_pll_regs(drvdata->regmap,
++                      dedicated_176k4_pll_regs, num_dedicated_176k4_pll_regs,
++                      PLL_RESET);
++              break;
++      case 48000:
++              ret = clk_hifiberry_dachd_write_pll_regs(drvdata->regmap,
++                      dedicated_48k_pll_regs, num_dedicated_48k_pll_regs,
++                      PLL_RESET);
++              break;
++      case 96000:
++              ret = clk_hifiberry_dachd_write_pll_regs(drvdata->regmap,
++                      dedicated_96k_pll_regs, num_dedicated_96k_pll_regs,
++                      PLL_RESET);
++              break;
++      case 192000:
++              ret = clk_hifiberry_dachd_write_pll_regs(drvdata->regmap,
++                      dedicated_192k_pll_regs, num_dedicated_192k_pll_regs,
++                      PLL_RESET);
++              break;
++      default:
++              ret = -EINVAL;
++              break;
++      }
++      to_hifiberry_clk(hw)->rate = rate;
++
++      return ret;
++}
++
++const struct clk_ops clk_hifiberry_dachd_rate_ops = {
++      .recalc_rate = clk_hifiberry_dachd_recalc_rate,
++      .round_rate = clk_hifiberry_dachd_round_rate,
++      .set_rate = clk_hifiberry_dachd_set_rate,
++};
++
++static int clk_hifiberry_get_prop_values(struct device *dev,
++                                      char *prop_name,
++                                      struct reg_default *regs)
++{
++      int ret;
++      int i;
++      u8 tmp[2 * HIFIBERRY_PLL_MAX_REGISTER];
++
++      ret = of_property_read_variable_u8_array(dev->of_node, prop_name,
++                      tmp, 0, 2 * HIFIBERRY_PLL_MAX_REGISTER);
++      if (ret < 0)
++              return ret;
++      if (ret & 1) {
++              dev_err(dev,
++                      "%s <%s> -> #%i odd number of bytes for reg/val pairs!",
++                      __func__,
++                      prop_name,
++                      ret);
++              return -EINVAL;
++      }
++      ret /= 2;
++      for (i = 0; i < ret; i++) {
++              regs[i].reg = (u32)tmp[2 * i];
++              regs[i].def = (u32)tmp[2 * i + 1];
++      }
++      return ret;
++}
++
++
++static int clk_hifiberry_dachd_dt_parse(struct device *dev)
++{
++      num_common_pll_regs = clk_hifiberry_get_prop_values(dev,
++                              "common_pll_regs", common_pll_regs);
++      num_dedicated_44k1_pll_regs = clk_hifiberry_get_prop_values(dev,
++                              "44k1_pll_regs", dedicated_44k1_pll_regs);
++      num_dedicated_88k2_pll_regs = clk_hifiberry_get_prop_values(dev,
++                              "88k2_pll_regs", dedicated_88k2_pll_regs);
++      num_dedicated_176k4_pll_regs = clk_hifiberry_get_prop_values(dev,
++                              "176k4_pll_regs", dedicated_176k4_pll_regs);
++      num_dedicated_48k_pll_regs = clk_hifiberry_get_prop_values(dev,
++                              "48k_pll_regs", dedicated_48k_pll_regs);
++      num_dedicated_96k_pll_regs = clk_hifiberry_get_prop_values(dev,
++                              "96k_pll_regs", dedicated_96k_pll_regs);
++      num_dedicated_192k_pll_regs = clk_hifiberry_get_prop_values(dev,
++                              "192k_pll_regs", dedicated_192k_pll_regs);
++      return 0;
++}
++
++
++static int clk_hifiberry_dachd_remove(struct device *dev)
++{
++      of_clk_del_provider(dev->of_node);
++      return 0;
++}
++
++const struct regmap_config hifiberry_pll_regmap = {
++      .reg_bits = 8,
++      .val_bits = 8,
++      .max_register = HIFIBERRY_PLL_MAX_REGISTER,
++      .reg_defaults = hifiberry_pll_reg_defaults,
++      .num_reg_defaults = ARRAY_SIZE(hifiberry_pll_reg_defaults),
++      .cache_type = REGCACHE_RBTREE,
++};
++EXPORT_SYMBOL_GPL(hifiberry_pll_regmap);
++
++
++static int clk_hifiberry_dachd_i2c_probe(struct i2c_client *i2c,
++                           const struct i2c_device_id *id)
++{
++      struct clk_hifiberry_drvdata *hdclk;
++      int ret = 0;
++      struct clk_init_data init;
++      struct device *dev = &i2c->dev;
++      struct device_node *dev_node = dev->of_node;
++      struct regmap_config config = hifiberry_pll_regmap;
++
++      hdclk = devm_kzalloc(&i2c->dev,
++                      sizeof(struct clk_hifiberry_drvdata), GFP_KERNEL);
++      if (!hdclk)
++              return -ENOMEM;
++
++      i2c_set_clientdata(i2c, hdclk);
++
++      hdclk->regmap = devm_regmap_init_i2c(i2c, &config);
++
++      if (IS_ERR(hdclk->regmap))
++              return PTR_ERR(hdclk->regmap);
++
++      /* start PLL to allow detection of DAC */
++      ret = clk_hifiberry_dachd_write_pll_regs(hdclk->regmap,
++                              hifiberry_pll_reg_defaults,
++                              ARRAY_SIZE(hifiberry_pll_reg_defaults),
++                              PLL_RESET);
++      if (ret)
++              return ret;
++
++      clk_hifiberry_dachd_dt_parse(dev);
++
++      /* restart PLL with configs from DTB */
++      ret = clk_hifiberry_dachd_write_pll_regs(hdclk->regmap, common_pll_regs,
++                                      num_common_pll_regs, PLL_RESET);
++      if (ret)
++              return ret;
++
++      init.name = "clk-hifiberry-dachd";
++      init.ops = &clk_hifiberry_dachd_rate_ops;
++      init.flags = CLK_IS_BASIC;
++      init.parent_names = NULL;
++      init.num_parents = 0;
++
++      hdclk->hw.init = &init;
++
++      hdclk->clk = devm_clk_register(dev, &hdclk->hw);
++      if (IS_ERR(hdclk->clk)) {
++              dev_err(dev, "unable to register %s\n", init.name);
++              return PTR_ERR(hdclk->clk);
++      }
++
++      ret = of_clk_add_provider(dev_node, of_clk_src_simple_get, hdclk->clk);
++      if (ret != 0) {
++              dev_err(dev, "Cannot of_clk_add_provider");
++              return ret;
++      }
++
++      ret = clk_set_rate(hdclk->hw.clk, DEFAULT_RATE);
++      if (ret != 0) {
++              dev_err(dev, "Cannot set rate : %d\n",  ret);
++              return -EINVAL;
++      }
++
++      return ret;
++}
++
++static int clk_hifiberry_dachd_i2c_remove(struct i2c_client *i2c)
++{
++      clk_hifiberry_dachd_remove(&i2c->dev);
++      return 0;
++}
++
++static const struct i2c_device_id clk_hifiberry_dachd_i2c_id[] = {
++      { "dachd-clk", },
++      { }
++};
++MODULE_DEVICE_TABLE(i2c, clk_hifiberry_dachd_i2c_id);
++
++static const struct of_device_id clk_hifiberry_dachd_of_match[] = {
++      { .compatible = "hifiberry,dachd-clk", },
++      { }
++};
++MODULE_DEVICE_TABLE(of, clk_hifiberry_dachd_of_match);
++
++static struct i2c_driver clk_hifiberry_dachd_i2c_driver = {
++      .probe          = clk_hifiberry_dachd_i2c_probe,
++      .remove         = clk_hifiberry_dachd_i2c_remove,
++      .id_table       = clk_hifiberry_dachd_i2c_id,
++      .driver         = {
++              .name   = "dachd-clk",
++              .of_match_table = of_match_ptr(clk_hifiberry_dachd_of_match),
++      },
++};
++
++module_i2c_driver(clk_hifiberry_dachd_i2c_driver);
++
++
++MODULE_DESCRIPTION("HiFiBerry DAC+ HD clock driver");
++MODULE_AUTHOR("Joerg Schambacher <joerg@i2audio.com>");
++MODULE_LICENSE("GPL v2");
++MODULE_ALIAS("platform:clk-hifiberry-dachd");
+--- a/sound/soc/bcm/Kconfig
++++ b/sound/soc/bcm/Kconfig
+@@ -40,6 +40,13 @@ config SND_BCM2708_SOC_HIFIBERRY_DACPLUS
+         help
+          Say Y or M if you want to add support for HifiBerry DAC+.
++config SND_BCM2708_SOC_HIFIBERRY_DACPLUSHD
++        tristate "Support for HifiBerry DAC+ HD"
++        depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S
++        select SND_SOC_PCM179X_I2C
++        help
++         Say Y or M if you want to add support for HifiBerry DAC+ HD.
++
+ config SND_BCM2708_SOC_HIFIBERRY_DACPLUSADC
+         tristate "Support for HifiBerry DAC+ADC"
+         depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S
+--- a/sound/soc/bcm/Makefile
++++ b/sound/soc/bcm/Makefile
+@@ -13,6 +13,7 @@ snd-soc-googlevoicehat-codec-objs := goo
+ # BCM2708 Machine Support
+ snd-soc-hifiberry-dacplus-objs := hifiberry_dacplus.o
++snd-soc-hifiberry-dacplushd-objs := hifiberry_dacplushd.o
+ snd-soc-hifiberry-dacplusadc-objs := hifiberry_dacplusadc.o
+ snd-soc-hifiberry-dacplusadcpro-objs := hifiberry_dacplusadcpro.o
+ snd-soc-hifiberry-dacplusdsp-objs := hifiberry_dacplusdsp.o
+@@ -40,6 +41,7 @@ snd-soc-rpi-wm8804-soundcard-objs := rpi
+ obj-$(CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD)  += snd-soc-googlevoicehat-codec.o
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS) += snd-soc-hifiberry-dacplus.o
++obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSHD) += snd-soc-hifiberry-dacplushd.o
+ 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
+--- /dev/null
++++ b/sound/soc/bcm/hifiberry_dacplushd.c
+@@ -0,0 +1,235 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * ASoC Driver for HiFiBerry DAC+ HD
++ *
++ * Author:    Joerg Schambacher, i2Audio GmbH for HiFiBerry
++ *            Copyright 2020
++ *
++ * 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 <linux/kernel.h>
++#include <linux/delay.h>
++#include <linux/module.h>
++#include <linux/of.h>
++#include <linux/delay.h>
++#include <linux/gpio.h>
++#include <linux/gpio/consumer.h>
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++#include <linux/i2c.h>
++#include <linux/clk.h>
++
++#include "../codecs/pcm179x.h"
++
++#define DEFAULT_RATE          44100
++
++struct brd_drv_data {
++      struct regmap *regmap;
++      struct clk *sclk;
++};
++
++static struct brd_drv_data drvdata;
++static struct gpio_desc *reset_gpio;
++static const unsigned int hb_dacplushd_rates[] = {
++      192000, 96000, 48000, 176400, 88200, 44100,
++};
++
++static struct snd_pcm_hw_constraint_list hb_dacplushd_constraints = {
++      .list = hb_dacplushd_rates,
++      .count = ARRAY_SIZE(hb_dacplushd_rates),
++};
++
++static int snd_rpi_hb_dacplushd_startup(struct snd_pcm_substream *substream)
++{
++      /* constraints for standard sample rates */
++      snd_pcm_hw_constraint_list(substream->runtime, 0,
++                              SNDRV_PCM_HW_PARAM_RATE,
++                              &hb_dacplushd_constraints);
++      return 0;
++}
++
++static void snd_rpi_hifiberry_dacplushd_set_sclk(
++              struct snd_soc_component *component,
++              int sample_rate)
++{
++      if (!IS_ERR(drvdata.sclk))
++              clk_set_rate(drvdata.sclk, sample_rate);
++}
++
++static int snd_rpi_hifiberry_dacplushd_init(struct snd_soc_pcm_runtime *rtd)
++{
++      struct snd_soc_dai_link *dai = rtd->dai_link;
++      struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
++
++      dai->name = "HiFiBerry DAC+ HD";
++      dai->stream_name = "HiFiBerry DAC+ HD HiFi";
++      dai->dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
++              | SND_SOC_DAIFMT_CBM_CFM;
++
++      /* allow only fixed 32 clock counts per channel */
++      snd_soc_dai_set_bclk_ratio(cpu_dai, 32*2);
++
++      return 0;
++}
++
++static int snd_rpi_hifiberry_dacplushd_hw_params(
++      struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params)
++{
++      int ret = 0;
++      struct snd_soc_pcm_runtime *rtd = substream->private_data;
++
++      struct snd_soc_component *component = rtd->codec_dai->component;
++
++      snd_rpi_hifiberry_dacplushd_set_sclk(component, params_rate(params));
++      return ret;
++}
++
++/* machine stream operations */
++static struct snd_soc_ops snd_rpi_hifiberry_dacplushd_ops = {
++      .startup = snd_rpi_hb_dacplushd_startup,
++      .hw_params = snd_rpi_hifiberry_dacplushd_hw_params,
++};
++
++static struct snd_soc_dai_link snd_rpi_hifiberry_dacplushd_dai[] = {
++{
++      .name           = "HiFiBerry DAC+ HD",
++      .stream_name    = "HiFiBerry DAC+ HD HiFi",
++      .cpu_dai_name   = "bcm2708-i2s.0",
++      .codec_dai_name = "pcm179x-hifi",
++      .platform_name  = "bcm2708-i2s.0",
++      .codec_name     = "pcm179x.1-004c",
++      .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
++                              SND_SOC_DAIFMT_CBS_CFS,
++      .ops            = &snd_rpi_hifiberry_dacplushd_ops,
++      .init           = snd_rpi_hifiberry_dacplushd_init,
++},
++};
++
++/* audio machine driver */
++static struct snd_soc_card snd_rpi_hifiberry_dacplushd = {
++      .name         = "snd_rpi_hifiberry_dacplushd",
++      .driver_name  = "HifiberryDacplusHD",
++      .owner        = THIS_MODULE,
++      .dai_link     = snd_rpi_hifiberry_dacplushd_dai,
++      .num_links    = ARRAY_SIZE(snd_rpi_hifiberry_dacplushd_dai),
++};
++
++static int snd_rpi_hifiberry_dacplushd_probe(struct platform_device *pdev)
++{
++      int ret = 0;
++      static int dac_reset_done;
++      struct device *dev = &pdev->dev;
++      struct device_node *dev_node = dev->of_node;
++
++      snd_rpi_hifiberry_dacplushd.dev = &pdev->dev;
++
++      /* get GPIO and release DAC from RESET */
++      if (!dac_reset_done) {
++              reset_gpio = gpiod_get(&pdev->dev, "reset", GPIOD_OUT_LOW);
++              if (IS_ERR(reset_gpio)) {
++                      dev_err(&pdev->dev, "gpiod_get() failed\n");
++                      return -EINVAL;
++              }
++              dac_reset_done = 1;
++      }
++      if (!IS_ERR(reset_gpio))
++              gpiod_set_value(reset_gpio, 0);
++      msleep(1);
++      if (!IS_ERR(reset_gpio))
++              gpiod_set_value(reset_gpio, 1);
++      msleep(1);
++      if (!IS_ERR(reset_gpio))
++              gpiod_set_value(reset_gpio, 0);
++
++      if (pdev->dev.of_node) {
++              struct device_node *i2s_node;
++              struct snd_soc_dai_link *dai;
++
++              dai = &snd_rpi_hifiberry_dacplushd_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;
++              } else {
++                      return -EPROBE_DEFER;
++              }
++
++      }
++
++      ret = devm_snd_soc_register_card(&pdev->dev,
++                      &snd_rpi_hifiberry_dacplushd);
++      if (ret && ret != -EPROBE_DEFER) {
++              dev_err(&pdev->dev,
++                      "snd_soc_register_card() failed: %d\n", ret);
++              return ret;
++      }
++      if (ret == -EPROBE_DEFER)
++              return ret;
++
++      dev_set_drvdata(dev, &drvdata);
++      if (dev_node == NULL) {
++              dev_err(&pdev->dev, "Device tree node not found\n");
++              return -ENODEV;
++      }
++
++      drvdata.sclk = devm_clk_get(dev, NULL);
++      if (IS_ERR(drvdata.sclk)) {
++              drvdata.sclk = ERR_PTR(-ENOENT);
++              return -ENODEV;
++      }
++
++      clk_set_rate(drvdata.sclk, DEFAULT_RATE);
++
++      return ret;
++}
++
++static int snd_rpi_hifiberry_dacplushd_remove(struct platform_device *pdev)
++{
++      if (IS_ERR(reset_gpio))
++              return -EINVAL;
++
++      /* put DAC into RESET and release GPIO */
++      gpiod_set_value(reset_gpio, 0);
++      gpiod_put(reset_gpio);
++
++      return 0;
++}
++
++static const struct of_device_id snd_rpi_hifiberry_dacplushd_of_match[] = {
++      { .compatible = "hifiberry,hifiberry-dacplushd", },
++      {},
++};
++
++MODULE_DEVICE_TABLE(of, snd_rpi_hifiberry_dacplushd_of_match);
++
++static struct platform_driver snd_rpi_hifiberry_dacplushd_driver = {
++      .driver = {
++              .name   = "snd-rpi-hifiberry-dacplushd",
++              .owner  = THIS_MODULE,
++              .of_match_table = snd_rpi_hifiberry_dacplushd_of_match,
++      },
++      .probe          = snd_rpi_hifiberry_dacplushd_probe,
++      .remove         = snd_rpi_hifiberry_dacplushd_remove,
++};
++
++module_platform_driver(snd_rpi_hifiberry_dacplushd_driver);
++
++MODULE_AUTHOR("Joerg Schambacher <joerg@i2audio.com>");
++MODULE_DESCRIPTION("ASoC Driver for HiFiBerry DAC+ HD");
++MODULE_LICENSE("GPL v2");
diff --git a/target/linux/brcm2708/patches-4.19/950-0793-Initialise-rpi-firmware-before-clk-bcm2835.patch b/target/linux/brcm2708/patches-4.19/950-0793-Initialise-rpi-firmware-before-clk-bcm2835.patch
new file mode 100644 (file)
index 0000000..3a68193
--- /dev/null
@@ -0,0 +1,47 @@
+From 43551a95378230b8d062e107e012573739af2bf1 Mon Sep 17 00:00:00 2001
+From: Luke Hinds <7058938+lukehinds@users.noreply.github.com>
+Date: Wed, 22 Jan 2020 16:03:00 +0000
+Subject: [PATCH] Initialise rpi-firmware before clk-bcm2835
+
+The IMA (Integrity Measurement Architecture) looks for a TPM (Trusted
+Platform Module) having been registered when it initialises; otherwise
+it assumes there is no TPM. It has been observed on BCM2835 that IMA
+is initialised before TPM, and that initialising the BCM2835 clock
+driver before the firmware driver has the effect of reversing this
+order.
+
+Change the firmware driver to initialise at core_initcall, delaying the
+BCM2835 clock driver to postcore_initcall.
+
+See: https://github.com/raspberrypi/linux/issues/3291
+     https://github.com/raspberrypi/linux/pull/3297
+
+Signed-off-by: Luke Hinds <lhinds@redhat.com>
+Co-authored-by: Phil Elwell <phil@raspberrypi.org>
+---
+ drivers/clk/bcm/clk-bcm2835.c  | 2 +-
+ drivers/firmware/raspberrypi.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/clk/bcm/clk-bcm2835.c
++++ b/drivers/clk/bcm/clk-bcm2835.c
+@@ -2388,7 +2388,7 @@ static int __init __bcm2835_clk_driver_i
+ {
+       return platform_driver_register(&bcm2835_clk_driver);
+ }
+-core_initcall(__bcm2835_clk_driver_init);
++postcore_initcall(__bcm2835_clk_driver_init);
+ MODULE_AUTHOR("Eric Anholt <eric@anholt.net>");
+ MODULE_DESCRIPTION("BCM2835 clock driver");
+--- a/drivers/firmware/raspberrypi.c
++++ b/drivers/firmware/raspberrypi.c
+@@ -404,7 +404,7 @@ out2:
+ out1:
+       return ret;
+ }
+-subsys_initcall(rpi_firmware_init);
++core_initcall(rpi_firmware_init);
+ static void __init rpi_firmware_exit(void)
+ {
diff --git a/target/linux/brcm2708/patches-4.19/950-0794-Fix-master-mode-settings-of-HiFiBerry-DAC-ADC-PRO-ca.patch b/target/linux/brcm2708/patches-4.19/950-0794-Fix-master-mode-settings-of-HiFiBerry-DAC-ADC-PRO-ca.patch
new file mode 100644 (file)
index 0000000..020118d
--- /dev/null
@@ -0,0 +1,26 @@
+From 898cec85907f8f171264c8be281a9ac2979b1655 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Schambacher?=
+ <j-schambacher@users.noreply.github.com>
+Date: Thu, 23 Jan 2020 13:32:13 +0100
+Subject: [PATCH] Fix master mode settings of HiFiBerry DAC+ADC PRO
+ card (#3424)
+
+This patch fixes the board DAI setting when in master-mode.
+Wrong setting could have caused random pop noise.
+
+Signed-off-by: Joerg Schambacher <joerg@i2audio.com>
+---
+ sound/soc/bcm/hifiberry_dacplusadcpro.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/sound/soc/bcm/hifiberry_dacplusadcpro.c
++++ b/sound/soc/bcm/hifiberry_dacplusadcpro.c
+@@ -285,6 +285,8 @@ static int snd_rpi_hifiberry_dacplusadcp
+               dai->name = "HiFiBerry DAC+ADC Pro";
+               dai->stream_name = "HiFiBerry DAC+ADC Pro HiFi";
++              dai->dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
++                      | SND_SOC_DAIFMT_CBM_CFM;
+               // set DAC DAI configuration
+               ret = snd_soc_dai_set_fmt(rtd->codec_dais[0],
diff --git a/target/linux/brcm2708/patches-4.19/950-0795-overlays-Use-preferred-compatible-strings.patch b/target/linux/brcm2708/patches-4.19/950-0795-overlays-Use-preferred-compatible-strings.patch
new file mode 100644 (file)
index 0000000..7e5921d
--- /dev/null
@@ -0,0 +1,72 @@
+From 0a865ae13d5f98594562ebe5713caec65ab689e5 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Fri, 24 Jan 2020 09:02:37 +0000
+Subject: [PATCH] overlays: Use preferred compatible strings
+
+Make sure all overlays have correct compatible strings before enabling
+the automated checking.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ arch/arm/boot/dts/overlays/hifiberry-dacplusadcpro-overlay.dts | 2 +-
+ arch/arm/boot/dts/overlays/iqaudio-codec-overlay.dts           | 2 +-
+ arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts               | 2 ++
+ arch/arm/boot/dts/overlays/pwm-overlay.dts                     | 2 ++
+ arch/arm/boot/dts/overlays/smi-dev-overlay.dts                 | 2 ++
+ 5 files changed, 8 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/boot/dts/overlays/hifiberry-dacplusadcpro-overlay.dts
++++ b/arch/arm/boot/dts/overlays/hifiberry-dacplusadcpro-overlay.dts
+@@ -3,7 +3,7 @@
+ /plugin/;
+ / {
+-      compatible = "brcm,bcm2708";
++      compatible = "brcm,bcm2835";
+       fragment@0 {
+               target-path = "/clocks";
+--- a/arch/arm/boot/dts/overlays/iqaudio-codec-overlay.dts
++++ b/arch/arm/boot/dts/overlays/iqaudio-codec-overlay.dts
+@@ -3,7 +3,7 @@
+ /plugin/;
+ / {
+-      compatible = "brcm,bcm2708";
++      compatible = "brcm,bcm2835";
+       fragment@0 {
+               target = <&i2s>;
+--- a/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts
++++ b/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts
+@@ -17,6 +17,8 @@ N.B.:
+ */
+ / {
++      compatible = "brcm,bcm2835";
++
+       fragment@0 {
+               target = <&gpio>;
+               __overlay__ {
+--- a/arch/arm/boot/dts/overlays/pwm-overlay.dts
++++ b/arch/arm/boot/dts/overlays/pwm-overlay.dts
+@@ -15,6 +15,8 @@ N.B.:
+ */
+ / {
++      compatible = "brcm,bcm2835";
++
+       fragment@0 {
+               target = <&gpio>;
+               __overlay__ {
+--- a/arch/arm/boot/dts/overlays/smi-dev-overlay.dts
++++ b/arch/arm/boot/dts/overlays/smi-dev-overlay.dts
+@@ -5,6 +5,8 @@
+ /plugin/;
+ /{
++      compatible = "brcm,bcm2835";
++
+       fragment@0 {
+               target = <&soc>;
+               __overlay__ {
diff --git a/target/linux/brcm2708/patches-4.19/950-0796-tty-amba-pl011-Add-un-throttle-support.patch b/target/linux/brcm2708/patches-4.19/950-0796-tty-amba-pl011-Add-un-throttle-support.patch
new file mode 100644 (file)
index 0000000..0ab6cf2
--- /dev/null
@@ -0,0 +1,61 @@
+From d4f4b57c667141ca98711cfcb30ae2b8deb1a034 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Fri, 24 Jan 2020 11:38:28 +0000
+Subject: [PATCH] tty: amba-pl011: Add un/throttle support
+
+The PL011 driver lacks throttle and unthrottle methods. As a result,
+sending more data to the Pi than it can immediately sink while CRTSCTS
+is enabled causes a NULL pointer to be followed.
+
+Add a throttle handler that disables the RX interrupts, and an
+unthrottle handler that reenables them.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ drivers/tty/serial/amba-pl011.c | 28 ++++++++++++++++++++++++++++
+ 1 file changed, 28 insertions(+)
+
+--- a/drivers/tty/serial/amba-pl011.c
++++ b/drivers/tty/serial/amba-pl011.c
+@@ -1323,6 +1323,32 @@ static void pl011_start_tx(struct uart_p
+               pl011_start_tx_pio(uap);
+ }
++static void pl011_throttle(struct uart_port *port)
++{
++      struct uart_amba_port *uap =
++          container_of(port, struct uart_amba_port, port);
++      unsigned long flags;
++
++      spin_lock_irqsave(&uap->port.lock, flags);
++      uap->im &= ~(UART011_RTIM | UART011_RXIM);
++      pl011_write(uap->im, uap, REG_IMSC);
++      spin_unlock_irqrestore(&uap->port.lock, flags);
++}
++
++static void pl011_unthrottle(struct uart_port *port)
++{
++      struct uart_amba_port *uap =
++          container_of(port, struct uart_amba_port, port);
++      unsigned long flags;
++
++      spin_lock_irqsave(&uap->port.lock, flags);
++      uap->im |= UART011_RTIM;
++      if (!pl011_dma_rx_running(uap))
++          uap->im |= UART011_RXIM;
++      pl011_write(uap->im, uap, REG_IMSC);
++      spin_unlock_irqrestore(&uap->port.lock, flags);
++}
++
+ static void pl011_stop_rx(struct uart_port *port)
+ {
+       struct uart_amba_port *uap =
+@@ -2165,6 +2191,8 @@ static const struct uart_ops amba_pl011_
+       .stop_tx        = pl011_stop_tx,
+       .start_tx       = pl011_start_tx,
+       .stop_rx        = pl011_stop_rx,
++      .throttle       = pl011_throttle,
++      .unthrottle     = pl011_unthrottle,
+       .enable_ms      = pl011_enable_ms,
+       .break_ctl      = pl011_break_ctl,
+       .startup        = pl011_startup,
diff --git a/target/linux/brcm2708/patches-4.19/950-0797-Fix-i2c-pwm-pca9685a-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0797-Fix-i2c-pwm-pca9685a-overlay.patch
new file mode 100644 (file)
index 0000000..e01e7fd
--- /dev/null
@@ -0,0 +1,20 @@
+From 493aa5b9a2f57003dd0a16946eb56b08650090b4 Mon Sep 17 00:00:00 2001
+From: MikeDK <m.kaplan@evva.com>
+Date: Sun, 26 Jan 2020 23:33:54 +0100
+Subject: [PATCH] Fix i2c-pwm-pca9685a overlay
+
+---
+ arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts
++++ b/arch/arm/boot/dts/overlays/i2c-pwm-pca9685a-overlay.dts
+@@ -13,7 +13,7 @@
+                       status = "okay";
+                       pca: pca@40 {
+-                              compatible = "nxp,pca9685";
++                              compatible = "nxp,pca9685-pwm";
+                               #pwm-cells = <2>;
+                               reg = <0x40>;
+                               status = "okay";
diff --git a/target/linux/brcm2708/patches-4.19/950-0798-adds-LED-OFF-feature-to-HiFiBerry-DAC-ADC-PRO-sound-.patch b/target/linux/brcm2708/patches-4.19/950-0798-adds-LED-OFF-feature-to-HiFiBerry-DAC-ADC-PRO-sound-.patch
new file mode 100644 (file)
index 0000000..233e368
--- /dev/null
@@ -0,0 +1,89 @@
+From c23190019110e3314041f2184552a8343de55117 Mon Sep 17 00:00:00 2001
+From: j-schambacher <joerg@i2audio.com>
+Date: Mon, 27 Jan 2020 17:45:51 +0100
+Subject: [PATCH] adds LED OFF feature to HiFiBerry DAC+ADC PRO sound
+ card
+
+This adds a DT overlay parameter 'leds_off' which allows
+to switch off the onboard activity LEDs at all times
+which has been requested by some users.
+
+Signed-off-by: Joerg Schambacher <joerg@i2audio.com>
+---
+ arch/arm/boot/dts/overlays/README                 |  2 ++
+ .../overlays/hifiberry-dacplusadcpro-overlay.dts  |  1 +
+ sound/soc/bcm/hifiberry_dacplusadcpro.c           | 15 +++++++++++++--
+ 3 files changed, 16 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -948,6 +948,8 @@ Params: 24db_digital_gain       Allow ga
+                                 that does not result in clipping/distortion!)
+         slave                   Force DAC+ADC Pro into slave mode, using Pi as
+                                 master for bit clock and frame clock.
++        leds_off                If set to 'true' the onboard indicator LEDs
++                                are switched off at all times.
+ Name:   hifiberry-dacplusdsp
+--- a/arch/arm/boot/dts/overlays/hifiberry-dacplusadcpro-overlay.dts
++++ b/arch/arm/boot/dts/overlays/hifiberry-dacplusadcpro-overlay.dts
+@@ -60,5 +60,6 @@
+               24db_digital_gain =
+                       <&hifiberry_dacplusadcpro>,"hifiberry-dacplusadcpro,24db_digital_gain?";
+               slave = <&hifiberry_dacplusadcpro>,"hifiberry-dacplusadcpro,slave?";
++              leds_off = <&hifiberry_dacplusadcpro>,"hifiberry-dacplusadcpro,leds_off?";
+       };
+ };
+--- a/sound/soc/bcm/hifiberry_dacplusadcpro.c
++++ b/sound/soc/bcm/hifiberry_dacplusadcpro.c
+@@ -54,6 +54,7 @@ struct pcm512x_priv {
+ static bool slave;
+ static bool snd_rpi_hifiberry_is_dacpro;
+ static bool digital_gain_0db_limit = true;
++static bool leds_off;
+ static const unsigned int pcm186x_adc_input_channel_sel_value[] = {
+       0x00, 0x01, 0x02, 0x03, 0x10
+@@ -321,7 +322,10 @@ static int snd_rpi_hifiberry_dacplusadcp
+       snd_soc_component_update_bits(dac, PCM512x_GPIO_EN, 0x08, 0x08);
+       snd_soc_component_update_bits(dac, PCM512x_GPIO_OUTPUT_4, 0x0f, 0x02);
+-      snd_soc_component_update_bits(dac, PCM512x_GPIO_CONTROL_1, 0x08, 0x08);
++      if (leds_off)
++              snd_soc_component_update_bits(dac, PCM512x_GPIO_CONTROL_1, 0x08, 0x00);
++      else
++              snd_soc_component_update_bits(dac, PCM512x_GPIO_CONTROL_1, 0x08, 0x08);
+       ret = pcm1863_add_controls(adc);
+       if (ret < 0)
+@@ -331,7 +335,10 @@ static int snd_rpi_hifiberry_dacplusadcp
+       /* set GPIO2 to output, GPIO3 input */
+       snd_soc_component_write(adc, PCM186X_GPIO3_2_CTRL, 0x00);
+       snd_soc_component_write(adc, PCM186X_GPIO3_2_DIR_CTRL, 0x04);
+-      snd_soc_component_update_bits(adc, PCM186X_GPIO_IN_OUT, 0x40, 0x40);
++      if (leds_off)
++              snd_soc_component_update_bits(adc, PCM186X_GPIO_IN_OUT, 0x40, 0x00);
++      else
++              snd_soc_component_update_bits(adc, PCM186X_GPIO_IN_OUT, 0x40, 0x40);
+       if (digital_gain_0db_limit) {
+               int ret;
+@@ -417,6 +424,8 @@ static int snd_rpi_hifiberry_dacplusadcp
+       struct snd_soc_component *dac = rtd->codec_dais[0]->component;
+       struct snd_soc_component *adc = rtd->codec_dais[1]->component;
++      if (leds_off)
++              return 0;
+       /* switch on respective LED */
+       if (!substream->stream)
+               snd_soc_component_update_bits(dac, PCM512x_GPIO_CONTROL_1, 0x08, 0x08);
+@@ -508,6 +517,8 @@ static int snd_rpi_hifiberry_dacplusadcp
+               pdev->dev.of_node, "hifiberry-dacplusadcpro,24db_digital_gain");
+       slave = of_property_read_bool(pdev->dev.of_node,
+                                       "hifiberry-dacplusadcpro,slave");
++      leds_off = of_property_read_bool(pdev->dev.of_node,
++                                      "hifiberry-dacplusadcpro,leds_off");
+       ret = snd_soc_register_card(&snd_rpi_hifiberry_dacplusadcpro);
+       if (ret && ret != -EPROBE_DEFER)
+               dev_err(&pdev->dev,
diff --git a/target/linux/brcm2708/patches-4.19/950-0799-adds-LED-OFF-feature-to-HiFiBerry-DAC-ADC-sound-card.patch b/target/linux/brcm2708/patches-4.19/950-0799-adds-LED-OFF-feature-to-HiFiBerry-DAC-ADC-sound-card.patch
new file mode 100644 (file)
index 0000000..2bc0306
--- /dev/null
@@ -0,0 +1,76 @@
+From ee513338448ddbb72ac8f76e7053865fe926a18c Mon Sep 17 00:00:00 2001
+From: j-schambacher <joerg@i2audio.com>
+Date: Mon, 27 Jan 2020 20:37:34 +0100
+Subject: [PATCH] adds LED OFF feature to HiFiBerry DAC+ADC sound card
+
+This adds a DT overlay parameter 'leds_off' which allows
+to switch off the onboard activity LEDs at all times
+which has been requested by some users.
+
+Signed-off-by: Joerg Schambacher <joerg@i2audio.com>
+---
+ arch/arm/boot/dts/overlays/README                      |  2 ++
+ .../boot/dts/overlays/hifiberry-dacplusadc-overlay.dts |  1 +
+ sound/soc/bcm/hifiberry_dacplusadc.c                   | 10 +++++++++-
+ 3 files changed, 12 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -927,6 +927,8 @@ Params: 24db_digital_gain       Allow ga
+                                 that does not result in clipping/distortion!)
+         slave                   Force DAC+ Pro into slave mode, using Pi as
+                                 master for bit clock and frame clock.
++        leds_off                If set to 'true' the onboard indicator LEDs
++                                are switched off at all times.
+ Name:   hifiberry-dacplusadcpro
+--- a/arch/arm/boot/dts/overlays/hifiberry-dacplusadc-overlay.dts
++++ b/arch/arm/boot/dts/overlays/hifiberry-dacplusadc-overlay.dts
+@@ -67,5 +67,6 @@
+               24db_digital_gain =
+                       <&hifiberry_dacplusadc>,"hifiberry,24db_digital_gain?";
+               slave = <&hifiberry_dacplusadc>,"hifiberry-dacplusadc,slave?";
++              leds_off = <&hifiberry_dacplusadc>,"hifiberry-dacplusadc,leds_off?";
+       };
+ };
+--- a/sound/soc/bcm/hifiberry_dacplusadc.c
++++ b/sound/soc/bcm/hifiberry_dacplusadc.c
+@@ -54,6 +54,7 @@ struct pcm512x_priv {
+ static bool slave;
+ static bool snd_rpi_hifiberry_is_dacpro;
+ static bool digital_gain_0db_limit = true;
++static bool leds_off;
+ static void snd_rpi_hifiberry_dacplusadc_select_clk(struct snd_soc_component *component,
+       int clk_id)
+@@ -175,7 +176,10 @@ static int snd_rpi_hifiberry_dacplusadc_
+       snd_soc_component_update_bits(component, PCM512x_GPIO_EN, 0x08, 0x08);
+       snd_soc_component_update_bits(component, PCM512x_GPIO_OUTPUT_4, 0x0f, 0x02);
+-      snd_soc_component_update_bits(component, PCM512x_GPIO_CONTROL_1, 0x08, 0x08);
++      if (leds_off)
++              snd_soc_component_update_bits(component, PCM512x_GPIO_CONTROL_1, 0x08, 0x00);
++      else
++              snd_soc_component_update_bits(component, PCM512x_GPIO_CONTROL_1, 0x08, 0x08);
+       if (digital_gain_0db_limit) {
+               int ret;
+@@ -256,6 +260,8 @@ static int snd_rpi_hifiberry_dacplusadc_
+       struct snd_soc_pcm_runtime *rtd = substream->private_data;
+       struct snd_soc_component *component = rtd->codec_dai->component;
++      if (leds_off)
++              return 0;
+       snd_soc_component_update_bits(component, PCM512x_GPIO_CONTROL_1,
+                                        0x08, 0x08);
+       hifiberry_dacplusadc_LED_cnt++;
+@@ -347,6 +353,8 @@ static int snd_rpi_hifiberry_dacplusadc_
+               pdev->dev.of_node, "hifiberry,24db_digital_gain");
+       slave = of_property_read_bool(pdev->dev.of_node,
+                                       "hifiberry-dacplusadc,slave");
++      leds_off = of_property_read_bool(pdev->dev.of_node,
++                                      "hifiberry-dacplusadc,leds_off");
+       ret = devm_snd_soc_register_card(&pdev->dev,
+                                                &snd_rpi_hifiberry_dacplusadc);
diff --git a/target/linux/brcm2708/patches-4.19/950-0800-adds-LED-OFF-feature-to-HiFiBerry-DAC-DAC-PRO-sound-.patch b/target/linux/brcm2708/patches-4.19/950-0800-adds-LED-OFF-feature-to-HiFiBerry-DAC-DAC-PRO-sound-.patch
new file mode 100644 (file)
index 0000000..68763fe
--- /dev/null
@@ -0,0 +1,77 @@
+From 5eccee0e620b799558d89ebee29280116ad37e4f Mon Sep 17 00:00:00 2001
+From: j-schambacher <joerg@i2audio.com>
+Date: Mon, 27 Jan 2020 20:58:24 +0100
+Subject: [PATCH] adds LED OFF feature to HiFiBerry DAC+/DAC+PRO sound
+ cards
+
+This adds a DT overlay parameter 'leds_off' which allows
+to switch off the onboard activity LEDs at all times
+which has been requested by some users.
+
+Signed-off-by: Joerg Schambacher <joerg@i2audio.com>
+---
+ arch/arm/boot/dts/overlays/README                      |  2 ++
+ .../boot/dts/overlays/hifiberry-dacplus-overlay.dts    |  1 +
+ sound/soc/bcm/hifiberry_dacplus.c                      | 10 +++++++++-
+ 3 files changed, 12 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -906,6 +906,8 @@ Params: 24db_digital_gain       Allow ga
+                                 that does not result in clipping/distortion!)
+         slave                   Force DAC+ Pro into slave mode, using Pi as
+                                 master for bit clock and frame clock.
++        leds_off                If set to 'true' the onboard indicator LEDs
++                                are switched off at all times.
+ Name:   hifiberry-dacplusadc
+--- a/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts
++++ b/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts
+@@ -55,5 +55,6 @@
+               24db_digital_gain =
+                       <&hifiberry_dacplus>,"hifiberry,24db_digital_gain?";
+               slave = <&hifiberry_dacplus>,"hifiberry-dacplus,slave?";
++              leds_off = <&hifiberry_dacplus>,"hifiberry-dacplus,leds_off?";
+       };
+ };
+--- a/sound/soc/bcm/hifiberry_dacplus.c
++++ b/sound/soc/bcm/hifiberry_dacplus.c
+@@ -50,6 +50,7 @@ struct pcm512x_priv {
+ static bool slave;
+ static bool snd_rpi_hifiberry_is_dacpro;
+ static bool digital_gain_0db_limit = true;
++static bool leds_off;
+ static void snd_rpi_hifiberry_dacplus_select_clk(struct snd_soc_component *component,
+       int clk_id)
+@@ -171,7 +172,10 @@ static int snd_rpi_hifiberry_dacplus_ini
+       snd_soc_component_update_bits(component, PCM512x_GPIO_EN, 0x08, 0x08);
+       snd_soc_component_update_bits(component, PCM512x_GPIO_OUTPUT_4, 0x0f, 0x02);
+-      snd_soc_component_update_bits(component, PCM512x_GPIO_CONTROL_1, 0x08, 0x08);
++      if (leds_off)
++              snd_soc_component_update_bits(component, PCM512x_GPIO_CONTROL_1, 0x08, 0x00);
++      else
++              snd_soc_component_update_bits(component, PCM512x_GPIO_CONTROL_1, 0x08, 0x08);
+       if (digital_gain_0db_limit)
+       {
+@@ -251,6 +255,8 @@ static int snd_rpi_hifiberry_dacplus_sta
+       struct snd_soc_pcm_runtime *rtd = substream->private_data;
+       struct snd_soc_component *component = rtd->codec_dai->component;
++      if (leds_off)
++              return 0;
+       snd_soc_component_update_bits(component, PCM512x_GPIO_CONTROL_1, 0x08, 0x08);
+       return 0;
+ }
+@@ -319,6 +325,8 @@ static int snd_rpi_hifiberry_dacplus_pro
+                       pdev->dev.of_node, "hifiberry,24db_digital_gain");
+               slave = of_property_read_bool(pdev->dev.of_node,
+                                               "hifiberry-dacplus,slave");
++              leds_off = of_property_read_bool(pdev->dev.of_node,
++                                              "hifiberry-dacplus,leds_off");
+       }
+       ret = devm_snd_soc_register_card(&pdev->dev,
diff --git a/target/linux/brcm2708/patches-4.19/950-0801-pisound-Added-reading-Pisound-board-hardware-revisio.patch b/target/linux/brcm2708/patches-4.19/950-0801-pisound-Added-reading-Pisound-board-hardware-revisio.patch
new file mode 100644 (file)
index 0000000..bb6afe3
--- /dev/null
@@ -0,0 +1,201 @@
+From a879ab9cad6b598c08988404934273d3cbfbd993 Mon Sep 17 00:00:00 2001
+From: gtrainavicius <gtrainavicius@users.noreply.github.com>
+Date: Tue, 28 Jan 2020 14:16:37 +0200
+Subject: [PATCH] pisound: Added reading Pisound board hardware
+ revision and exposing it (#3425)
+
+pisound: Added reading Pisound board hardware revision and exposing it in kernel log and sysfs file:
+
+/sys/kernel/pisound/hw_version
+
+Signed-off-by: Giedrius <giedrius@blokas.io>
+---
+ sound/soc/bcm/pisound.c | 86 ++++++++++++++++++++++++++++-------------
+ 1 file changed, 59 insertions(+), 27 deletions(-)
+
+--- a/sound/soc/bcm/pisound.c
++++ b/sound/soc/bcm/pisound.c
+@@ -51,7 +51,8 @@ static void pisnd_spi_set_callback(pisnd
+ static const char *pisnd_spi_get_serial(void);
+ static const char *pisnd_spi_get_id(void);
+-static const char *pisnd_spi_get_version(void);
++static const char *pisnd_spi_get_fw_version(void);
++static const char *pisnd_spi_get_hw_version(void);
+ static int pisnd_midi_init(struct snd_card *card);
+ static void pisnd_midi_uninit(void);
+@@ -222,7 +223,9 @@ static pisnd_spi_recv_cb g_recvCallback;
+ static char g_serial_num[11];
+ static char g_id[25];
+-static char g_version[5];
++enum { MAX_VERSION_STR_LEN = 6 };
++static char g_fw_version[MAX_VERSION_STR_LEN];
++static char g_hw_version[MAX_VERSION_STR_LEN];
+ static uint8_t g_ledFlashDuration;
+ static bool    g_ledFlashDurationChanged;
+@@ -558,7 +561,8 @@ static int spi_read_info(void)
+       char *p;
+       memset(g_serial_num, 0, sizeof(g_serial_num));
+-      memset(g_version, 0, sizeof(g_version));
++      memset(g_fw_version, 0, sizeof(g_fw_version));
++      strcpy(g_hw_version, "1.0"); // Assume 1.0 hw version.
+       memset(g_id, 0, sizeof(g_id));
+       tmp = spi_transfer16(0);
+@@ -581,12 +585,28 @@ static int spi_read_info(void)
+                               return -EINVAL;
+                       snprintf(
+-                              g_version,
+-                              sizeof(g_version),
++                              g_fw_version,
++                              MAX_VERSION_STR_LEN,
+                               "%x.%02x",
+                               buffer[0],
+                               buffer[1]
+                               );
++
++                      g_fw_version[MAX_VERSION_STR_LEN-1] = '\0';
++                      break;
++              case 3:
++                      if (n != 2)
++                              return -EINVAL;
++
++                      snprintf(
++                              g_hw_version,
++                              MAX_VERSION_STR_LEN,
++                              "%x.%x",
++                              buffer[0],
++                              buffer[1]
++                      );
++
++                      g_hw_version[MAX_VERSION_STR_LEN-1] = '\0';
+                       break;
+               case 1:
+                       if (n >= sizeof(g_serial_num))
+@@ -596,12 +616,14 @@ static int spi_read_info(void)
+                       break;
+               case 2:
+                       {
+-                              if (n >= sizeof(g_id))
++                              if (n*2 >= sizeof(g_id))
+                                       return -EINVAL;
+                               p = g_id;
+                               for (j = 0; j < n; ++j)
+                                       p += sprintf(p, "%02x", buffer[j]);
++
++                              *p = '\0';
+                       }
+                       break;
+               default:
+@@ -619,7 +641,8 @@ static int pisnd_spi_init(struct device
+       memset(g_serial_num, 0, sizeof(g_serial_num));
+       memset(g_id, 0, sizeof(g_id));
+-      memset(g_version, 0, sizeof(g_version));
++      memset(g_fw_version, 0, sizeof(g_fw_version));
++      memset(g_hw_version, 0, sizeof(g_hw_version));
+       spi = pisnd_spi_find_device();
+@@ -729,26 +752,22 @@ static void pisnd_spi_set_callback(pisnd
+ static const char *pisnd_spi_get_serial(void)
+ {
+-      if (strlen(g_serial_num))
+-              return g_serial_num;
+-
+-      return "";
++      return g_serial_num;
+ }
+ static const char *pisnd_spi_get_id(void)
+ {
+-      if (strlen(g_id))
+-              return g_id;
+-
+-      return "";
++      return g_id;
+ }
+-static const char *pisnd_spi_get_version(void)
++static const char *pisnd_spi_get_fw_version(void)
+ {
+-      if (strlen(g_version))
+-              return g_version;
++      return g_fw_version;
++}
+-      return "";
++static const char *pisnd_spi_get_hw_version(void)
++{
++      return g_hw_version;
+ }
+ static const struct of_device_id pisound_of_match[] = {
+@@ -1054,13 +1073,22 @@ static ssize_t pisnd_id_show(
+       return sprintf(buf, "%s\n", pisnd_spi_get_id());
+ }
+-static ssize_t pisnd_version_show(
++static ssize_t pisnd_fw_version_show(
+       struct kobject *kobj,
+       struct kobj_attribute *attr,
+       char *buf
+       )
+ {
+-      return sprintf(buf, "%s\n", pisnd_spi_get_version());
++      return sprintf(buf, "%s\n", pisnd_spi_get_fw_version());
++}
++
++static ssize_t pisnd_hw_version_show(
++      struct kobject *kobj,
++      struct kobj_attribute *attr,
++      char *buf
++)
++{
++      return sprintf(buf, "%s\n", pisnd_spi_get_hw_version());
+ }
+ static ssize_t pisnd_led_store(
+@@ -1085,15 +1113,18 @@ static struct kobj_attribute pisnd_seria
+       __ATTR(serial, 0444, pisnd_serial_show, NULL);
+ static struct kobj_attribute pisnd_id_attribute =
+       __ATTR(id, 0444, pisnd_id_show, NULL);
+-static struct kobj_attribute pisnd_version_attribute =
+-      __ATTR(version, 0444, pisnd_version_show, NULL);
++static struct kobj_attribute pisnd_fw_version_attribute =
++      __ATTR(version, 0444, pisnd_fw_version_show, NULL);
++static struct kobj_attribute pisnd_hw_version_attribute =
++__ATTR(hw_version, 0444, pisnd_hw_version_show, NULL);
+ static struct kobj_attribute pisnd_led_attribute =
+       __ATTR(led, 0644, NULL, pisnd_led_store);
+ static struct attribute *attrs[] = {
+       &pisnd_serial_attribute.attr,
+       &pisnd_id_attribute.attr,
+-      &pisnd_version_attribute.attr,
++      &pisnd_fw_version_attribute.attr,
++      &pisnd_hw_version_attribute.attr,
+       &pisnd_led_attribute.attr,
+       NULL
+ };
+@@ -1112,9 +1143,10 @@ static int pisnd_probe(struct platform_d
+       }
+       printi("Detected Pisound card:\n");
+-      printi("\tSerial:  %s\n", pisnd_spi_get_serial());
+-      printi("\tVersion: %s\n", pisnd_spi_get_version());
+-      printi("\tId:      %s\n", pisnd_spi_get_id());
++      printi("\tSerial:           %s\n", pisnd_spi_get_serial());
++      printi("\tFirmware Version: %s\n", pisnd_spi_get_fw_version());
++      printi("\tHardware Version: %s\n", pisnd_spi_get_hw_version());
++      printi("\tId:               %s\n", pisnd_spi_get_id());
+       pisnd_kobj = kobject_create_and_add("pisound", kernel_kobj);
+       if (!pisnd_kobj) {
diff --git a/target/linux/brcm2708/patches-4.19/950-0802-mmc-sdhci-iproc-Fix-vmmc-regulators-on-iProc.patch b/target/linux/brcm2708/patches-4.19/950-0802-mmc-sdhci-iproc-Fix-vmmc-regulators-on-iProc.patch
new file mode 100644 (file)
index 0000000..5046fc9
--- /dev/null
@@ -0,0 +1,46 @@
+From 5ee0de9d7abd644d4cb678fe26ac5130a1a8075f Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Fri, 2 Aug 2019 15:20:11 +0100
+Subject: [PATCH] mmc: sdhci-iproc: Fix vmmc regulators on iProc
+
+The Linux support for controlling card power via regulators appears to
+be contentious. I would argue that the default behaviour is contrary to
+the SDHCI spec - turning off the power writes a reserved value to the
+SD Bus Voltage Select field of the Power Control Register, which
+seems to kill the Arasan/iProc controller - but fortunately there is a
+hook in sdhci_ops to override the behaviour. Borrow the implementation
+from sdhci_arasan_set_power.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ drivers/mmc/host/sdhci-iproc.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+--- a/drivers/mmc/host/sdhci-iproc.c
++++ b/drivers/mmc/host/sdhci-iproc.c
+@@ -162,6 +162,17 @@ static void sdhci_iproc_writeb(struct sd
+       sdhci_iproc_writel(host, newval, reg & ~3);
+ }
++static void sdhci_iproc_set_power(struct sdhci_host *host, unsigned char mode,
++                                unsigned short vdd)
++{
++      if (!IS_ERR(host->mmc->supply.vmmc)) {
++              struct mmc_host *mmc = host->mmc;
++
++              mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, vdd);
++      }
++      sdhci_set_power_noreg(host, mode, vdd);
++}
++
+ static const struct sdhci_ops sdhci_iproc_ops = {
+       .set_clock = sdhci_set_clock,
+       .get_max_clock = sdhci_pltfm_clk_get_max_clock,
+@@ -178,6 +189,7 @@ static const struct sdhci_ops sdhci_ipro
+       .write_w = sdhci_iproc_writew,
+       .write_b = sdhci_iproc_writeb,
+       .set_clock = sdhci_set_clock,
++      .set_power = sdhci_iproc_set_power,
+       .get_max_clock = sdhci_pltfm_clk_get_max_clock,
+       .set_bus_width = sdhci_set_bus_width,
+       .reset = sdhci_reset,
diff --git a/target/linux/brcm2708/patches-4.19/950-0803-ARM-dts-Declare-RPi-4B-SD-card-power-regulator.patch b/target/linux/brcm2708/patches-4.19/950-0803-ARM-dts-Declare-RPi-4B-SD-card-power-regulator.patch
new file mode 100644 (file)
index 0000000..f08fd3d
--- /dev/null
@@ -0,0 +1,43 @@
+From 03bd617d5ba9124a59e86f285385b95415962af7 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Tue, 30 Jul 2019 12:37:02 +0100
+Subject: [PATCH] ARM: dts: Declare RPi 4B SD card power regulator
+
+Later revisions of the Raspberry Pi 4B have a separate control over the
+SD card power. Expose that control to Linux as a fixed regulator with
+a GPIO enable.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 11 +++++++++++
+ arch/arm/configs/bcm2711_defconfig    |  2 +-
+ arch/arm64/configs/bcm2711_defconfig  |  2 +-
+ 3 files changed, 13 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
+@@ -122,6 +122,16 @@
+               states = <1800000 0x1
+                         3300000 0x0>;
+       };
++
++      sd_vcc_reg: sd_vcc_reg {
++              compatible = "regulator-fixed";
++              regulator-name = "vcc-sd";
++              regulator-min-microvolt = <3300000>;
++              regulator-max-microvolt = <3300000>;
++              regulator-boot-on;
++              enable-active-high;
++              gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>;
++      };
+ };
+ &sdhost {
+@@ -132,6 +142,7 @@
+       status = "okay";
+       broken-cd;
+       vqmmc-supply = <&sd_io_1v8_reg>;
++      vmmc-supply = <&sd_vcc_reg>;
+ };
+ &leds {
diff --git a/target/linux/brcm2708/patches-4.19/950-0804-pcie-brcmstb-Bounce-buffer-support-is-for-BCM2711B0.patch b/target/linux/brcm2708/patches-4.19/950-0804-pcie-brcmstb-Bounce-buffer-support-is-for-BCM2711B0.patch
new file mode 100644 (file)
index 0000000..05172eb
--- /dev/null
@@ -0,0 +1,88 @@
+From 4b777f389e22abb364e398f45673e54bcda9cc55 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Fri, 12 Jul 2019 11:41:25 +0100
+Subject: [PATCH] pcie-brcmstb: Bounce buffer support is for BCM2711B0
+
+Add a new compatible string to identify BCM2711B0, as later revisions
+don't require the bounce buffer support.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ drivers/pci/controller/pcie-brcmstb.c | 31 +++++++++++++++++++++++----
+ 1 file changed, 27 insertions(+), 4 deletions(-)
+
+--- a/drivers/pci/controller/pcie-brcmstb.c
++++ b/drivers/pci/controller/pcie-brcmstb.c
+@@ -206,6 +206,8 @@ enum pcie_type {
+       BCM7435,
+       GENERIC,
+       BCM7278,
++      BCM2711B0,
++      BCM2711,
+ };
+ struct brcm_window {
+@@ -302,6 +304,20 @@ static const int pcie_offsets[] = {
+       [EXT_CFG_DATA]   = 0x8000,
+ };
++static const struct pcie_cfg_data bcm2711b0_cfg = {
++      .reg_field_info = pcie_reg_field_info,
++      .offsets        = pcie_offsets,
++      .max_burst_size = BURST_SIZE_128,
++      .type           = BCM2711B0,
++};
++
++static const struct pcie_cfg_data bcm2711_cfg = {
++      .reg_field_info = pcie_reg_field_info,
++      .offsets        = pcie_offsets,
++      .max_burst_size = BURST_SIZE_128,
++      .type           = BCM2711,
++};
++
+ static const struct pcie_cfg_data bcm7435_cfg = {
+       .reg_field_info = pcie_reg_field_info,
+       .offsets        = pcie_offsets,
+@@ -312,7 +328,7 @@ static const struct pcie_cfg_data bcm743
+ static const struct pcie_cfg_data generic_cfg = {
+       .reg_field_info = pcie_reg_field_info,
+       .offsets        = pcie_offsets,
+-      .max_burst_size = BURST_SIZE_128, // before BURST_SIZE_512
++      .max_burst_size = BURST_SIZE_512,
+       .type           = GENERIC,
+ };
+@@ -380,7 +396,7 @@ static unsigned int bounce_buffer = 32*1
+ module_param(bounce_buffer, uint, 0644);
+ MODULE_PARM_DESC(bounce_buffer, "Size of bounce buffer");
+-static unsigned int bounce_threshold = 0xc0000000;
++static unsigned int bounce_threshold;
+ module_param(bounce_threshold, uint, 0644);
+ MODULE_PARM_DESC(bounce_threshold, "Bounce threshold");
+@@ -1681,6 +1697,8 @@ static int brcm_pcie_remove(struct platf
+ }
+ static const struct of_device_id brcm_pcie_match[] = {
++      { .compatible = "brcm,bcm2711b0-pcie", .data = &bcm2711b0_cfg },
++      { .compatible = "brcm,bcm2711-pcie", .data = &bcm2711_cfg },
+       { .compatible = "brcm,bcm7425-pcie", .data = &bcm7425_cfg },
+       { .compatible = "brcm,bcm7435-pcie", .data = &bcm7435_cfg },
+       { .compatible = "brcm,bcm7278-pcie", .data = &bcm7278_cfg },
+@@ -1736,8 +1754,13 @@ static int brcm_pcie_probe(struct platfo
+       if (IS_ERR(base))
+               return PTR_ERR(base);
+-      /* To Do: Add hardware check if this ever gets fixed */
+-      if (max_pfn > (bounce_threshold/PAGE_SIZE)) {
++      if (!bounce_threshold) {
++              /* PCIe on BCM2711B0 can only address 3GB */
++              if (pcie->type == BCM2711B0 || pcie->type == GENERIC)
++                      bounce_threshold = 0xc0000000;
++      }
++
++      if (bounce_threshold && (max_pfn > (bounce_threshold/PAGE_SIZE))) {
+               int ret;
+               ret = brcm_pcie_bounce_init(&pdev->dev, bounce_buffer,
+                                           (dma_addr_t)bounce_threshold);
diff --git a/target/linux/brcm2708/patches-4.19/950-0805-bcm2838.dtsi-Use-BCM2711-PCIe-compatible-string.patch b/target/linux/brcm2708/patches-4.19/950-0805-bcm2838.dtsi-Use-BCM2711-PCIe-compatible-string.patch
new file mode 100644 (file)
index 0000000..9286c9b
--- /dev/null
@@ -0,0 +1,29 @@
+From bacf6a02fe12125d2d675f0c6238d9265d31b45f Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Fri, 12 Jul 2019 11:43:03 +0100
+Subject: [PATCH] bcm2838.dtsi: Use BCM2711 PCIe compatible string
+
+The BCM2711 PCIe controller has a limited address range in the B0
+silicon, and the driver uses a compatible string to identify the
+limitation. The current Pi 4 firmware will override the compatible
+string if it detects a downstream DTB and it is running on a newer
+revision but set the default value to enable the workaround for
+backwards-compatibility with old firmware.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ arch/arm/boot/dts/bcm2838.dtsi | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/bcm2838.dtsi
++++ b/arch/arm/boot/dts/bcm2838.dtsi
+@@ -327,7 +327,8 @@
+                       #interrupt-cells = <1>;
+                       #size-cells = <2>;
+                       bus-range = <0x0 0x01>;
+-                      compatible = "brcm,bcm7211-pcie", "brcm,bcm7445-pcie",
++                      compatible = "brcm,bcm2711b0-pcie", // Safe value
++                                   "brcm,bcm2711-pcie",
+                                    "brcm,pci-plat-dev";
+                       max-link-speed = <2>;
+                       tot-num-pcie = <1>;
diff --git a/target/linux/brcm2708/patches-4.19/950-0806-ARM-dts-Remove-bcm2838-rpi-4-b.dts.patch b/target/linux/brcm2708/patches-4.19/950-0806-ARM-dts-Remove-bcm2838-rpi-4-b.dts.patch
new file mode 100644 (file)
index 0000000..7a0b8c5
--- /dev/null
@@ -0,0 +1,146 @@
+From 8aa8fd89094952e3201b927fb846ba61b30cab6b Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Wed, 29 Jan 2020 11:29:06 +0000
+Subject: [PATCH] ARM: dts: Remove bcm2838-rpi-4-b.dts
+
+Upstream are not going to use the bcm2838 identifier, so begin the
+cleanup by removing the suggested upstream Pi 4 .dts file.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ arch/arm/boot/dts/Makefile            |   1 -
+ arch/arm/boot/dts/bcm2838-rpi-4-b.dts | 118 --------------------------
+ 2 files changed, 119 deletions(-)
+ delete mode 100644 arch/arm/boot/dts/bcm2838-rpi-4-b.dts
+
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -95,7 +95,6 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
+       bcm2836-rpi-2-b.dtb \
+       bcm2837-rpi-3-b.dtb \
+       bcm2837-rpi-3-b-plus.dtb \
+-      bcm2838-rpi-4-b.dtb \
+       bcm2835-rpi-zero.dtb \
+       bcm2835-rpi-zero-w.dtb
+ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+--- a/arch/arm/boot/dts/bcm2838-rpi-4-b.dts
++++ /dev/null
+@@ -1,118 +0,0 @@
+-// SPDX-License-Identifier: GPL-2.0
+-/dts-v1/;
+-#include "bcm2838.dtsi"
+-#include "bcm2835-rpi.dtsi"
+-#include "bcm2838-rpi.dtsi"
+-
+-/ {
+-      compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
+-      model = "Raspberry Pi 4 Model B";
+-
+-      chosen {
+-              /* 8250 auxiliary UART instead of pl011 */
+-              stdout-path = "serial1:115200n8";
+-      };
+-
+-      memory@0 {
+-              reg = <0 0 0x40000000>;
+-      };
+-
+-      leds {
+-              act {
+-                      gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
+-              };
+-
+-              pwr {
+-                      label = "PWR";
+-                      gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
+-              };
+-      };
+-
+-      wifi_pwrseq: wifi-pwrseq {
+-              compatible = "mmc-pwrseq-simple";
+-              reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
+-      };
+-
+-      sd_io_1v8_reg: sd_io_1v8_reg {
+-              status = "okay";
+-              compatible = "regulator-gpio";
+-              vin-supply = <&vdd_5v0_reg>;
+-              regulator-name = "vdd-sd-io";
+-              regulator-min-microvolt = <1800000>;
+-              regulator-max-microvolt = <3300000>;
+-              regulator-boot-on;
+-              regulator-always-on;
+-              regulator-settling-time-us = <5000>;
+-
+-              gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>;
+-              states = <1800000 0x1
+-                        3300000 0x0>;
+-      };
+-};
+-
+-&firmware {
+-      expgpio: gpio {
+-              compatible = "raspberrypi,firmware-gpio";
+-              gpio-controller;
+-              #gpio-cells = <2>;
+-              gpio-line-names = "BT_ON",
+-                                "WL_ON",
+-                                "PWR_LED_OFF",
+-                                "GLOBAL_RESET",
+-                                "VDD_SD_IO_SEL",
+-                                "CAM_GPIO",
+-                                "",
+-                                "";
+-              status = "okay";
+-      };
+-};
+-
+-&pwm1 {
+-      pinctrl-names = "default";
+-      pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>;
+-      status = "okay";
+-};
+-
+-/* SDHCI is used to control the SDIO for wireless */
+-&sdhci {
+-      #address-cells = <1>;
+-      #size-cells = <0>;
+-      pinctrl-names = "default";
+-      pinctrl-0 = <&emmc_gpio34>;
+-      status = "okay";
+-      bus-width = <4>;
+-      non-removable;
+-      mmc-pwrseq = <&wifi_pwrseq>;
+-
+-      brcmf: wifi@1 {
+-              reg = <1>;
+-              compatible = "brcm,bcm4329-fmac";
+-      };
+-};
+-
+-/* EMMC2 is used to drive the SD card */
+-&emmc2 {
+-      status = "okay";
+-      broken-cd;
+-      vqmmc-supply = <&sd_io_1v8_reg>;
+-};
+-
+-/* uart0 communicates with the BT module */
+-&uart0 {
+-      pinctrl-names = "default";
+-      pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>;
+-      status = "okay";
+-
+-      bluetooth {
+-              compatible = "brcm,bcm43438-bt";
+-              max-speed = <2000000>;
+-              shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
+-      };
+-};
+-
+-/* uart1 is mapped to the pin header */
+-&uart1 {
+-      pinctrl-names = "default";
+-      pinctrl-0 = <&uart1_gpio14>;
+-      status = "okay";
+-};
diff --git a/target/linux/brcm2708/patches-4.19/950-0807-tty-amba-pl011-Avoid-rare-write-when-full-error.patch b/target/linux/brcm2708/patches-4.19/950-0807-tty-amba-pl011-Avoid-rare-write-when-full-error.patch
new file mode 100644 (file)
index 0000000..8deb882
--- /dev/null
@@ -0,0 +1,42 @@
+From 8ef5143f743a4e922fdf0029f81452d3d7003daf Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Wed, 29 Jan 2020 09:35:19 +0000
+Subject: [PATCH] tty: amba-pl011: Avoid rare write-when-full error
+
+Under some circumstances on BCM283x processors data loss can be
+observed - a single byte missing from the TX output stream. These bytes
+are always the last byte of a batch of 8 written from pl011_tx_chars
+when from_irq is true, meaning that the FIFO full flag is not checked
+before writing.
+
+The transmit optimisation relies on the FIFO being half-empty when the
+TX interrupt is raised. Instrumenting the driver further showed that
+the failure case correlated with the TX FIFO full flag being set at the
+point where the last byte was written to the data register, which
+explains the data loss but not how the FIFO appeared to be prematurely
+full. A possible explanation is that a FIFO write was in flight at the
+time the interrupt was raised, but as yet there is no hypothesis as to
+how this might occur.
+
+In the absence of a clear understanding of the failure mechanism, avoid
+the problem by checking the FIFO levels before writing the last byte of
+the group, which will have minimal performance impact.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ drivers/tty/serial/amba-pl011.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/tty/serial/amba-pl011.c
++++ b/drivers/tty/serial/amba-pl011.c
+@@ -1444,6 +1444,10 @@ static bool pl011_tx_chars(struct uart_a
+               if (likely(from_irq) && count-- == 0)
+                       break;
++              if (likely(from_irq) && count == 0 &&
++                  pl011_read(uap, REG_FR) & UART01x_FR_TXFF)
++                      break;
++
+               if (!pl011_tx_char(uap, xmit->buf[xmit->tail], from_irq))
+                       break;
diff --git a/target/linux/brcm2708/patches-4.19/950-0808-usb-xhci-Raspberry-Pi-FW-loader-for-VIA-VL805.patch b/target/linux/brcm2708/patches-4.19/950-0808-usb-xhci-Raspberry-Pi-FW-loader-for-VIA-VL805.patch
new file mode 100644 (file)
index 0000000..ba1e9d4
--- /dev/null
@@ -0,0 +1,84 @@
+From fd483c4e43a983d90c308c4d668e83be4fd6a392 Mon Sep 17 00:00:00 2001
+From: Tim Gover <990920+timg236@users.noreply.github.com>
+Date: Wed, 15 Jan 2020 11:26:19 +0000
+Subject: [PATCH] usb: xhci: Raspberry Pi FW loader for VIA VL805
+
+The VL805 FW may either be loaded from an SPI EEPROM or alternatively
+loaded directly by the VideoCore firmware. A PCI reset will reset
+the VL805 XHCI controller on the Raspberry Pi4 requiring the firmware
+to be reloaded if an SPI EEPROM is not present.
+
+Use a VideoCore mailbox to trigger the loading of the VL805
+firmware (if necessary) after a PCI reset.
+
+Signed-off-by: Tim Gover <tim.gover@raspberrypi.org>
+---
+ drivers/usb/host/pci-quirks.c              | 31 +++++++++++++++++++++-
+ include/soc/bcm2835/raspberrypi-firmware.h |  2 +-
+ 2 files changed, 31 insertions(+), 2 deletions(-)
+
+--- a/drivers/usb/host/pci-quirks.c
++++ b/drivers/usb/host/pci-quirks.c
+@@ -18,7 +18,7 @@
+ #include <linux/dmi.h>
+ #include "pci-quirks.h"
+ #include "xhci-ext-caps.h"
+-
++#include <soc/bcm2835/raspberrypi-firmware.h>
+ #define UHCI_USBLEGSUP                0xc0            /* legacy support */
+ #define UHCI_USBCMD           0               /* command register */
+@@ -632,6 +632,32 @@ EXPORT_SYMBOL_GPL(usb_amd_pt_check_port)
+ #endif /* CONFIG_PCI_DISABLE_COMMON_QUIRKS */
++/* The VL805 firmware may either be loaded from an EEPROM or by the BIOS into
++ * memory. If run from memory it must be reloaded after a PCI fundmental reset.
++ * The Raspberry Pi firmware acts as the BIOS in this case.
++ */
++static void usb_vl805_init(struct pci_dev *pdev)
++{
++#if IS_ENABLED(CONFIG_RASPBERRYPI_FIRMWARE)
++      struct rpi_firmware *fw;
++      struct {
++              u32 dev_addr;
++      } packet;
++      int ret;
++
++      fw = rpi_firmware_get(NULL);
++      if (!fw)
++              return;
++
++      packet.dev_addr = (pdev->bus->number << 20) |
++              (PCI_SLOT(pdev->devfn) << 15) | (PCI_FUNC(pdev->devfn) << 12);
++
++      dev_dbg(&pdev->dev, "RPI_FIRMWARE_NOTIFY_XHCI_RESET %x", packet.dev_addr);
++      ret = rpi_firmware_property(fw, RPI_FIRMWARE_NOTIFY_XHCI_RESET,
++                      &packet, sizeof(packet));
++#endif
++}
++
+ #if IS_ENABLED(CONFIG_USB_UHCI_HCD)
+ /*
+@@ -1226,6 +1252,9 @@ hc_init:
+       if (pdev->vendor == PCI_VENDOR_ID_INTEL)
+               usb_enable_intel_xhci_ports(pdev);
++      if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483)
++              usb_vl805_init(pdev);
++
+       op_reg_base = base + XHCI_HC_LENGTH(readl(base));
+       /* Wait for the host controller to be ready before writing any
+--- a/include/soc/bcm2835/raspberrypi-firmware.h
++++ b/include/soc/bcm2835/raspberrypi-firmware.h
+@@ -98,7 +98,7 @@ enum rpi_firmware_property_tag {
+       RPI_FIRMWARE_SET_PERIPH_REG =                         0x00038045,
+       RPI_FIRMWARE_GET_POE_HAT_VAL =                        0x00030049,
+       RPI_FIRMWARE_SET_POE_HAT_VAL =                        0x00030050,
+-
++      RPI_FIRMWARE_NOTIFY_XHCI_RESET =                      0x00030058,
+       /* Dispmanx TAGS */
+       RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE =                   0x00040001,
diff --git a/target/linux/brcm2708/patches-4.19/950-0809-overlays-Correct-the-eth_led-colour-assignments.patch b/target/linux/brcm2708/patches-4.19/950-0809-overlays-Correct-the-eth_led-colour-assignments.patch
new file mode 100644 (file)
index 0000000..1130964
--- /dev/null
@@ -0,0 +1,51 @@
+From 8a120b47005fccce4534f8a73c3a3deda92f95fa Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Wed, 29 Jan 2020 14:32:51 +0000
+Subject: [PATCH] overlays: Correct the eth_led* colour assignments
+
+See: https://github.com/raspberrypi/firmware/issues/1311
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ arch/arm/boot/dts/overlays/README | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -109,27 +109,28 @@ 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
+-                                values are:
++        eth_led0                Set mode of LED0 - amber on Pi3B+ (default "1"),
++                                green on Pi4 (default "0").
++                                The legal values are:
+                                 Pi3B+
+-                                0=link/activity    1=link1000/activity (default)
++                                0=link/activity          1=link1000/activity
+                                 2=link100/activity       3=link10/activity
+                                 4=link100/1000/activity  5=link10/1000/activity
+                                 6=link10/100/activity    14=off    15=on
+                                 Pi4
+-                                0=Speed/Activity (default)       1=Speed
+-                                2=Speed/Flash activity   3=FDX
++                                0=Speed/Activity         1=Speed
++                                2=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 "8"). See eth_led0 for legal
+-                                values.
++        eth_led1                Set mode of LED1 - green on Pi3B (default "6"),
++                                amber on Pi4 (default "8"). 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
diff --git a/target/linux/brcm2708/patches-4.19/950-0810-overlays-Remove-hack-from-uart0-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0810-overlays-Remove-hack-from-uart0-overlay.patch
new file mode 100644 (file)
index 0000000..ca582b8
--- /dev/null
@@ -0,0 +1,45 @@
+From b006cc7ddfa96c044068ef367c0bc82c2d221ca3 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Tue, 1 Oct 2019 10:19:50 +0100
+Subject: [PATCH] overlays: Remove hack from uart0 overlay
+
+The uart0 overlay contained a hack to return GPIOs 14 and 15 to inputs
+when the UART0 function was moved to alternative pins. This has the
+unwanted side effect of claiming GPIOs 14 & 15, preventing them being
+used for something else.
+
+See: https://github.com/raspberrypi/linux/issues/2856
+     https://www.raspberrypi.org/forums/viewtopic.php?f=98&t=252911
+
+Signed-off-by: Stefan Enge <stefan.enge@escatec.com>
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ arch/arm/boot/dts/overlays/uart0-overlay.dts | 13 ++++++-------
+ 1 file changed, 6 insertions(+), 7 deletions(-)
+
+--- a/arch/arm/boot/dts/overlays/uart0-overlay.dts
++++ b/arch/arm/boot/dts/overlays/uart0-overlay.dts
+@@ -17,17 +17,16 @@
+               target = <&gpio>;
+               __overlay__ {
+                       uart0_pins: uart0_pins {
+-                              brcm,pins = <14 15 14 15>;
+-                              brcm,function = <0 0 4 4>; /* alt0 */
+-                              brcm,pull = <0 0 0 2>;
++                              brcm,pins = <14 15>;
++                              brcm,function = <4>; /* alt0 */
++                              brcm,pull = <0 2>;
+                       };
+               };
+       };
+       __overrides__ {
+-              txd0_pin = <&uart0_pins>,"brcm,pins:8";
+-              rxd0_pin = <&uart0_pins>,"brcm,pins:12";
+-              pin_func = <&uart0_pins>,"brcm,function:8",
+-                         <&uart0_pins>,"brcm,function:12";
++              txd0_pin = <&uart0_pins>,"brcm,pins:0";
++              rxd0_pin = <&uart0_pins>,"brcm,pins:4";
++              pin_func = <&uart0_pins>,"brcm,function:0";
+       };
+ };
diff --git a/target/linux/brcm2708/patches-4.19/950-0811-ARM-dts-Add-sd_poll_once-dtparam-to-bcm283x-2711.patch b/target/linux/brcm2708/patches-4.19/950-0811-ARM-dts-Add-sd_poll_once-dtparam-to-bcm283x-2711.patch
new file mode 100644 (file)
index 0000000..449380b
--- /dev/null
@@ -0,0 +1,59 @@
+From d7044f06dea839c61a01e6016a4b9dee15543f8d Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Thu, 30 Jan 2020 09:47:00 +0000
+Subject: [PATCH] ARM: dts: Add sd_poll_once dtparam to bcm283x/2711
+
+The old sdtweak overlay allowed the SD interface to be effectively
+disabled unless there was a card present at boot time, but that
+overlay doesn't work on bcm2711 and has largely been replaced by
+a set of sd_* dtparams (which have the advantage of being board-
+specific.
+
+Add an sd_poll_once dtparam to allow the same functionality on
+all Raspberry Pi boards.
+
+See: https://github.com/raspberrypi/linux/issues/3286
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ arch/arm/boot/dts/bcm2708-rpi.dtsi    | 1 +
+ arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 2 ++
+ arch/arm/boot/dts/overlays/README     | 7 +++++++
+ 3 files changed, 10 insertions(+)
+
+--- a/arch/arm/boot/dts/bcm2708-rpi.dtsi
++++ b/arch/arm/boot/dts/bcm2708-rpi.dtsi
+@@ -92,6 +92,7 @@
+               watchdog = <&watchdog>,"status";
+               random = <&random>,"status";
+               sd_overclock = <&sdhost>,"brcm,overclock-50:0";
++              sd_poll_once = <&sdhost>,"non-removable?";
+               sd_force_pio = <&sdhost>,"brcm,force-pio?";
+               sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
+               sd_debug     = <&sdhost>,"brcm,debug";
+--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
+@@ -349,5 +349,7 @@
+               eth_led0 = <&phy1>,"led-modes:0";
+               eth_led1 = <&phy1>,"led-modes:4";
++
++              sd_poll_once = <&emmc2>, "non-removable?";
+       };
+ };
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -165,6 +165,13 @@ Params:
+         sd_overclock            Clock (in MHz) to use when the MMC framework
+                                 requests 50MHz
++        sd_poll_once            Looks for a card once after booting. Useful
++                                for network booting scenarios to avoid the
++                                overhead of continuous polling. N.B. Using
++                                this option restricts the system to using a
++                                single card per boot (or none at all).
++                                (default off)
++
+         sd_force_pio            Disable DMA support for SD driver (default off)
+         sd_pio_limit            Number of blocks above which to use DMA for
diff --git a/target/linux/brcm2708/patches-4.19/950-0812-overlays-Add-ssd1306-spi-overlay-3440.patch b/target/linux/brcm2708/patches-4.19/950-0812-overlays-Add-ssd1306-spi-overlay-3440.patch
new file mode 100644 (file)
index 0000000..e27893d
--- /dev/null
@@ -0,0 +1,132 @@
+From db048a80e63c66607b3bd73fa641802ec83bf166 Mon Sep 17 00:00:00 2001
+From: MikeDK <m.kaplan@evva.com>
+Date: Fri, 31 Jan 2020 10:57:21 +0100
+Subject: [PATCH] overlays: Add ssd1306-spi overlay (#3440)
+
+Add an overlay for SSD1306 based OLED boards using SPI.
+This will load the staging fbtft driver.
+
+Signed-off-by: Michael Kaplan <m.kaplan@evva.com>
+---
+ arch/arm/boot/dts/overlays/Makefile           |  1 +
+ arch/arm/boot/dts/overlays/README             | 12 +++
+ .../boot/dts/overlays/ssd1306-spi-overlay.dts | 82 +++++++++++++++++++
+ 3 files changed, 95 insertions(+)
+ create mode 100644 arch/arm/boot/dts/overlays/ssd1306-spi-overlay.dts
+
+--- a/arch/arm/boot/dts/overlays/Makefile
++++ b/arch/arm/boot/dts/overlays/Makefile
+@@ -168,6 +168,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
+       spi6-1cs.dtbo \
+       spi6-2cs.dtbo \
+       ssd1306.dtbo \
++      ssd1306-spi.dtbo \
+       superaudioboard.dtbo \
+       sx150x.dtbo \
+       tc358743.dtbo \
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -2428,6 +2428,18 @@ Params: address                 Location
+         https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf
++Name:   ssd1306-spi
++Info:   Overlay for SSD1306 OLED via SPI using fbtft staging driver.
++Load:   dtoverlay=ssd1306-spi,<param>=<val>
++Params: speed                   SPI bus speed (default 10000000)
++        rotate                  Display rotation (0, 90, 180 or 270; default 0)
++        fps                     Delay between frame updates (default 25)
++        debug                   Debug output level (0-7; default 0)
++        dc_pin                  GPIO pin for D/C (default 24)
++        reset_pin               GPIO pin for RESET (default 25)
++        height                  Display height (32 or 64; default 64)
++
++
+ Name:   superaudioboard
+ Info:   Configures the SuperAudioBoard sound card
+ Load:   dtoverlay=superaudioboard,<param>=<val>
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/ssd1306-spi-overlay.dts
+@@ -0,0 +1,82 @@
++/*
++ * Device Tree overlay for SSD1306 based SPI OLED display
++ *
++ */
++
++/dts-v1/;
++/plugin/;
++
++/ {
++      compatible = "brcm,bcm2835";
++
++      fragment@0 {
++              target = <&spi0>;
++              __overlay__ {
++                      status = "okay";
++              };
++      };
++
++      fragment@1 {
++              target = <&spidev0>;
++              __overlay__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@2 {
++              target = <&spidev1>;
++              __overlay__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@3 {
++              target = <&gpio>;
++              __overlay__ {
++                      ssd1306_pins: ssd1306_pins {
++                                brcm,pins = <25 24>;
++                                brcm,function = <1 1>; /* out out */
++                      };
++              };
++      };
++
++      fragment@4 {
++              target = <&spi0>;
++              __overlay__ {
++                      /* needed to avoid dtc warning */
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++
++                      ssd1306: ssd1306@0{
++                              compatible = "solomon,ssd1306";
++                              reg = <0>;
++                              pinctrl-names = "default";
++                              pinctrl-0 = <&ssd1306_pins>;
++
++                              spi-max-frequency = <10000000>;
++                              bgr = <0>;
++                              bpp = <1>;
++                              rotate = <0>;
++                              fps = <25>;
++                              buswidth = <8>;
++                              reset-gpios = <&gpio 25 0>;
++                              dc-gpios = <&gpio 24 0>;
++                              debug = <0>;
++
++                              solomon,height = <64>;
++                              solomon,width = <128>;
++                              solomon,page-offset = <0>;
++                      };
++              };
++      };
++
++      __overrides__ {
++              speed           = <&ssd1306>,"spi-max-frequency:0";
++              rotate          = <&ssd1306>,"rotate:0";
++              fps             = <&ssd1306>,"fps:0";
++              debug           = <&ssd1306>,"debug:0";
++              dc_pin          = <&ssd1306>,"dc-gpios:4>";
++              reset_pin       = <&ssd1306>,"reset-gpios:4>";
++              height          = <&ssd1306>,"solomon,height:0>";
++      };
++};
diff --git a/target/linux/brcm2708/patches-4.19/950-0813-overlays-Add-sh1106-spi-and-ssd1351-spi-overlays-344.patch b/target/linux/brcm2708/patches-4.19/950-0813-overlays-Add-sh1106-spi-and-ssd1351-spi-overlays-344.patch
new file mode 100644 (file)
index 0000000..4dc8e09
--- /dev/null
@@ -0,0 +1,248 @@
+From 1b8ea7066ee06404e0148702bc3e85a191f6d867 Mon Sep 17 00:00:00 2001
+From: MikeDK <m.kaplan@evva.com>
+Date: Fri, 31 Jan 2020 12:45:43 +0100
+Subject: [PATCH] overlays: Add sh1106-spi and ssd1351-spi overlays
+ (#3442)
+
+Add overlays for SH1106 and SSD1351 based OLED displays.
+SH1106 is present in many 1.3 inch OLEDs and SSD1351 is present in
+1.5 inch RGB OLEDs from AliExpress.
+
+This will load the staging fbtft drivers.
+
+Signed-off-by: Michael Kaplan <m.kaplan@evva.com>
+---
+ arch/arm/boot/dts/overlays/Makefile           |  2 +
+ arch/arm/boot/dts/overlays/README             | 23 ++++++
+ .../boot/dts/overlays/sh1106-spi-overlay.dts  | 82 +++++++++++++++++++
+ .../boot/dts/overlays/ssd1351-spi-overlay.dts | 81 ++++++++++++++++++
+ 4 files changed, 188 insertions(+)
+ create mode 100644 arch/arm/boot/dts/overlays/sh1106-spi-overlay.dts
+ create mode 100644 arch/arm/boot/dts/overlays/ssd1351-spi-overlay.dts
+
+--- a/arch/arm/boot/dts/overlays/Makefile
++++ b/arch/arm/boot/dts/overlays/Makefile
+@@ -145,6 +145,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
+       sdhost.dtbo \
+       sdio.dtbo \
+       sdtweak.dtbo \
++      sh1106-spi.dtbo \
+       smi.dtbo \
+       smi-dev.dtbo \
+       smi-nand.dtbo \
+@@ -169,6 +170,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
+       spi6-2cs.dtbo \
+       ssd1306.dtbo \
+       ssd1306-spi.dtbo \
++      ssd1351-spi.dtbo \
+       superaudioboard.dtbo \
+       sx150x.dtbo \
+       tc358743.dtbo \
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -2145,6 +2145,18 @@ Params: overclock_50            Clock (i
+                                 (default on)
++Name:   sh1106-spi
++Info:   Overlay for SH1106 OLED via SPI using fbtft staging driver.
++Load:   dtoverlay=sh1106-spi,<param>=<val>
++Params: speed                   SPI bus speed (default 4000000)
++        rotate                  Display rotation (0, 90, 180 or 270; default 0)
++        fps                     Delay between frame updates (default 25)
++        debug                   Debug output level (0-7; default 0)
++        dc_pin                  GPIO pin for D/C (default 24)
++        reset_pin               GPIO pin for RESET (default 25)
++        height                  Display height (32 or 64; default 64)
++
++
+ Name:   smi
+ Info:   Enables the Secondary Memory Interface peripheral. Uses GPIOs 2-25!
+ Load:   dtoverlay=smi
+@@ -2440,6 +2452,17 @@ Params: speed                   SPI bus
+         height                  Display height (32 or 64; default 64)
++Name:   ssd1351-spi
++Info:   Overlay for SSD1351 OLED via SPI using fbtft staging driver.
++Load:   dtoverlay=ssd1351-spi,<param>=<val>
++Params: speed                   SPI bus speed (default 4500000)
++        rotate                  Display rotation (0, 90, 180 or 270; default 0)
++        fps                     Delay between frame updates (default 25)
++        debug                   Debug output level (0-7; default 0)
++        dc_pin                  GPIO pin for D/C (default 24)
++        reset_pin               GPIO pin for RESET (default 25)
++
++
+ Name:   superaudioboard
+ Info:   Configures the SuperAudioBoard sound card
+ Load:   dtoverlay=superaudioboard,<param>=<val>
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/sh1106-spi-overlay.dts
+@@ -0,0 +1,82 @@
++/*
++ * Device Tree overlay for SH1106 based SPI OLED display
++ *
++ */
++
++/dts-v1/;
++/plugin/;
++
++/ {
++      compatible = "brcm,bcm2835";
++
++      fragment@0 {
++              target = <&spi0>;
++              __overlay__ {
++                      status = "okay";
++              };
++      };
++
++      fragment@1 {
++              target = <&spidev0>;
++              __overlay__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@2 {
++              target = <&spidev1>;
++              __overlay__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@3 {
++              target = <&gpio>;
++              __overlay__ {
++                      sh1106_pins: sh1106_pins {
++                                brcm,pins = <25 24>;
++                                brcm,function = <1 1>; /* out out */
++                      };
++              };
++      };
++
++      fragment@4 {
++              target = <&spi0>;
++              __overlay__ {
++                      /* needed to avoid dtc warning */
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++
++                      sh1106: sh1106@0{
++                              compatible = "sinowealth,sh1106";
++                              reg = <0>;
++                              pinctrl-names = "default";
++                              pinctrl-0 = <&sh1106_pins>;
++
++                              spi-max-frequency = <4000000>;
++                              bgr = <0>;
++                              bpp = <1>;
++                              rotate = <0>;
++                              fps = <25>;
++                              buswidth = <8>;
++                              reset-gpios = <&gpio 25 0>;
++                              dc-gpios = <&gpio 24 0>;
++                              debug = <0>;
++
++                              sinowealth,height = <64>;
++                              sinowealth,width = <128>;
++                              sinowealth,page-offset = <0>;
++                      };
++              };
++      };
++
++      __overrides__ {
++              speed           = <&sh1106>,"spi-max-frequency:0";
++              rotate          = <&sh1106>,"rotate:0";
++              fps             = <&sh1106>,"fps:0";
++              debug           = <&sh1106>,"debug:0";
++              dc_pin          = <&sh1106>,"dc-gpios:4>";
++              reset_pin       = <&sh1106>,"reset-gpios:4>";
++              height          = <&sh1106>,"sinowealth,height:0>";
++      };
++};
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/ssd1351-spi-overlay.dts
+@@ -0,0 +1,81 @@
++/*
++ * Device Tree overlay for SSD1351 based SPI OLED display
++ *
++ */
++
++/dts-v1/;
++/plugin/;
++
++/ {
++      compatible = "brcm,bcm2835";
++
++      fragment@0 {
++              target = <&spi0>;
++              __overlay__ {
++                      status = "okay";
++              };
++      };
++
++      fragment@1 {
++              target = <&spidev0>;
++              __overlay__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@2 {
++              target = <&spidev1>;
++              __overlay__ {
++                      status = "disabled";
++              };
++      };
++
++      fragment@3 {
++              target = <&gpio>;
++              __overlay__ {
++                      ssd1351_pins: ssd1351_pins {
++                                brcm,pins = <25 24>;
++                                brcm,function = <1 1>; /* out out */
++                      };
++              };
++      };
++
++      fragment@4 {
++              target = <&spi0>;
++              __overlay__ {
++                      /* needed to avoid dtc warning */
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++
++                      ssd1351: ssd1351@0{
++                              compatible = "solomon,ssd1351";
++                              reg = <0>;
++                              pinctrl-names = "default";
++                              pinctrl-0 = <&ssd1351_pins>;
++
++                              spi-max-frequency = <4500000>;
++                              bgr = <0>;
++                              bpp = <16>;
++                              rotate = <0>;
++                              fps = <25>;
++                              buswidth = <8>;
++                              reset-gpios = <&gpio 25 0>;
++                              dc-gpios = <&gpio 24 0>;
++                              debug = <0>;
++
++                              solomon,height = <128>;
++                              solomon,width = <128>;
++                              solomon,page-offset = <0>;
++                      };
++              };
++      };
++
++      __overrides__ {
++              speed           = <&ssd1351>,"spi-max-frequency:0";
++              rotate          = <&ssd1351>,"rotate:0";
++              fps             = <&ssd1351>,"fps:0";
++              debug           = <&ssd1351>,"debug:0";
++              dc_pin          = <&ssd1351>,"dc-gpios:4>";
++              reset_pin       = <&ssd1351>,"reset-gpios:4>";
++      };
++};
diff --git a/target/linux/brcm2708/patches-4.19/950-0814-overlays-dwc2-Increase-RX-FIFO-size.patch b/target/linux/brcm2708/patches-4.19/950-0814-overlays-dwc2-Increase-RX-FIFO-size.patch
new file mode 100644 (file)
index 0000000..a8e7bd3
--- /dev/null
@@ -0,0 +1,32 @@
+From 389107911744588cce5e06c23a058c9cfb641f33 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.com>
+Date: Tue, 4 Feb 2020 13:03:21 +0000
+Subject: [PATCH] overlays: dwc2: Increase RX FIFO size
+
+The previous version of the dwc2 overlay set the RX FIFO size to
+256 4-byte words. This sounds large enough for a 1024 byte packet (the
+largest isochronous high speed packet allowed), but it doesn't take
+into account some extra space needed by the hardware.
+
+Minas Harutyunyan at Synopsys (the source of the DWC OTG design)
+came up with a more correct value, 301, but since there is spare packet
+RAM this can be increased to 558 to allow two packets per frame.
+
+See: https://github.com/raspberrypi/linux/issues/3447
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.com>
+---
+ arch/arm/boot/dts/overlays/dwc2-overlay.dts | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/boot/dts/overlays/dwc2-overlay.dts
++++ b/arch/arm/boot/dts/overlays/dwc2-overlay.dts
+@@ -12,7 +12,7 @@
+                       compatible = "brcm,bcm2835-usb";
+                       dr_mode = "otg";
+                       g-np-tx-fifo-size = <32>;
+-                      g-rx-fifo-size = <256>;
++                      g-rx-fifo-size = <558>;
+                       g-tx-fifo-size = <512 512 512 512 512 256 256>;
+                       status = "okay";
+               };
diff --git a/target/linux/brcm2708/patches-4.19/950-0815-overlays-Fix-mcp23017-s-addr-parameter.patch b/target/linux/brcm2708/patches-4.19/950-0815-overlays-Fix-mcp23017-s-addr-parameter.patch
new file mode 100644 (file)
index 0000000..f1750b2
--- /dev/null
@@ -0,0 +1,46 @@
+From 11ef396f6e72b22469e1c8aebf5fd50488a9431d Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.com>
+Date: Tue, 4 Feb 2020 15:22:55 +0000
+Subject: [PATCH] overlays: Fix mcp23017's addr parameter
+
+The addr parameter of the mcp23017 overlay was broken by the addition
+of the noints parameter; splitting the mcp node in two without also
+modifying the second half from the addr parameter would cause the two
+halves to separate. Change the implementation strategy to patch
+fragment 2 (as was originally proposed). This will prevent the
+overlay from being applied at runtime until the "dtoverlay" command
+is improved, but the overlay already has this restriction due to
+fragment 3 so this isn't a step backwards.
+
+See: https://github.com/raspberrypi/linux/issues/3449
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.com>
+---
+ arch/arm/boot/dts/overlays/mcp23017-overlay.dts | 16 +++++++---------
+ 1 file changed, 7 insertions(+), 9 deletions(-)
+
+--- a/arch/arm/boot/dts/overlays/mcp23017-overlay.dts
++++ b/arch/arm/boot/dts/overlays/mcp23017-overlay.dts
+@@ -48,15 +48,13 @@
+       };
+       fragment@4 {
+-              target = <&i2c1>;
+-              __overlay__ {
+-                      mcp23017_irq: mcp@20 {
+-                              #interrupt-cells=<2>;
+-                              interrupt-parent = <&gpio>;
+-                              interrupts = <4 2>;
+-                              interrupt-controller;
+-                              microchip,irq-mirror;
+-                      };
++              target = <&mcp23017>;
++              mcp23017_irq: __overlay__ {
++                      #interrupt-cells=<2>;
++                      interrupt-parent = <&gpio>;
++                      interrupts = <4 2>;
++                      interrupt-controller;
++                      microchip,irq-mirror;
+               };
+       };
diff --git a/target/linux/brcm2708/patches-4.19/950-0816-overlays-fix-sh1106-spi-ssd1306-spi-and-ssd1351-spi-.patch b/target/linux/brcm2708/patches-4.19/950-0816-overlays-fix-sh1106-spi-ssd1306-spi-and-ssd1351-spi-.patch
new file mode 100644 (file)
index 0000000..837e7bf
--- /dev/null
@@ -0,0 +1,81 @@
+From f80af7bdb76f767a236eeb55b6ea210023180cd6 Mon Sep 17 00:00:00 2001
+From: Michael Kaplan <m.kaplan@evva.com>
+Date: Tue, 4 Feb 2020 16:14:48 +0100
+Subject: [PATCH] overlays: fix sh1106-spi, ssd1306-spi and ssd1351-spi overlays
+
+---
+ .../arm/boot/dts/overlays/sh1106-spi-overlay.dts | 16 +++++++++-------
+ .../boot/dts/overlays/ssd1306-spi-overlay.dts    | 16 +++++++++-------
+ .../boot/dts/overlays/ssd1351-spi-overlay.dts    | 14 ++++++++------
+ 3 files changed, 26 insertions(+), 20 deletions(-)
+
+--- a/arch/arm/boot/dts/overlays/sh1106-spi-overlay.dts
++++ b/arch/arm/boot/dts/overlays/sh1106-spi-overlay.dts
+@@ -71,12 +71,14 @@
+       };
+       __overrides__ {
+-              speed           = <&sh1106>,"spi-max-frequency:0";
+-              rotate          = <&sh1106>,"rotate:0";
+-              fps             = <&sh1106>,"fps:0";
+-              debug           = <&sh1106>,"debug:0";
+-              dc_pin          = <&sh1106>,"dc-gpios:4>";
+-              reset_pin       = <&sh1106>,"reset-gpios:4>";
+-              height          = <&sh1106>,"sinowealth,height:0>";
++              speed     = <&sh1106>,"spi-max-frequency:0";
++              rotate    = <&sh1106>,"rotate:0";
++              fps       = <&sh1106>,"fps:0";
++              debug     = <&sh1106>,"debug:0";
++              dc_pin    = <&sh1106>,"dc-gpios:4",
++                          <&sh1106_pins>,"brcm,pins:4;
++              reset_pin = <&sh1106>,"reset-gpios:4",
++                          <&sh1106_pins>,"brcm,pins:0;
++              height    = <&sh1106>,"sinowealth,height:0";
+       };
+ };
+--- a/arch/arm/boot/dts/overlays/ssd1306-spi-overlay.dts
++++ b/arch/arm/boot/dts/overlays/ssd1306-spi-overlay.dts
+@@ -71,12 +71,14 @@
+       };
+       __overrides__ {
+-              speed           = <&ssd1306>,"spi-max-frequency:0";
+-              rotate          = <&ssd1306>,"rotate:0";
+-              fps             = <&ssd1306>,"fps:0";
+-              debug           = <&ssd1306>,"debug:0";
+-              dc_pin          = <&ssd1306>,"dc-gpios:4>";
+-              reset_pin       = <&ssd1306>,"reset-gpios:4>";
+-              height          = <&ssd1306>,"solomon,height:0>";
++              speed     = <&ssd1306>,"spi-max-frequency:0";
++              rotate    = <&ssd1306>,"rotate:0";
++              fps       = <&ssd1306>,"fps:0";
++              debug     = <&ssd1306>,"debug:0";
++              dc_pin    = <&ssd1306>,"dc-gpios:4";
++                          <&ssd1306_pins>,"brcm,pins:4";
++              reset_pin = <&ssd1306>,"reset-gpios:4";
++                          <&ssd1306_pins>,"brcm,pins:0";
++              height    = <&ssd1306>,"solomon,height:0";
+       };
+ };
+--- a/arch/arm/boot/dts/overlays/ssd1351-spi-overlay.dts
++++ b/arch/arm/boot/dts/overlays/ssd1351-spi-overlay.dts
+@@ -71,11 +71,13 @@
+       };
+       __overrides__ {
+-              speed           = <&ssd1351>,"spi-max-frequency:0";
+-              rotate          = <&ssd1351>,"rotate:0";
+-              fps             = <&ssd1351>,"fps:0";
+-              debug           = <&ssd1351>,"debug:0";
+-              dc_pin          = <&ssd1351>,"dc-gpios:4>";
+-              reset_pin       = <&ssd1351>,"reset-gpios:4>";
++              speed     = <&ssd1351>,"spi-max-frequency:0";
++              rotate    = <&ssd1351>,"rotate:0";
++              fps       = <&ssd1351>,"fps:0";
++              debug     = <&ssd1351>,"debug:0";
++              dc_pin    = <&ssd1351>,"dc-gpios:4",
++                          <&ssd1351_pins>,"brcm,pins:4";
++              reset_pin = <&ssd1351>,"reset-gpios:4";
++                          <&ssd1351_pins>,"brcm,pins:0";
+       };
+ };
diff --git a/target/linux/brcm2708/patches-4.19/950-0817-Fix-a-sh1106-spi-ssd1306-spi-ssd1351-spi-overlays.patch b/target/linux/brcm2708/patches-4.19/950-0817-Fix-a-sh1106-spi-ssd1306-spi-ssd1351-spi-overlays.patch
new file mode 100644 (file)
index 0000000..aa472ff
--- /dev/null
@@ -0,0 +1,50 @@
+From 45754db702ff044e45ba14efdcf3708151e25c5f Mon Sep 17 00:00:00 2001
+From: Jason Kim <sukbeom.kim@gmail.com>
+Date: Wed, 5 Feb 2020 01:48:10 +0900
+Subject: [PATCH] Fix a sh1106-spi, ssd1306-spi, ssd1351-spi overlays
+
+---
+ arch/arm/boot/dts/overlays/sh1106-spi-overlay.dts  | 4 ++--
+ arch/arm/boot/dts/overlays/ssd1306-spi-overlay.dts | 4 ++--
+ arch/arm/boot/dts/overlays/ssd1351-spi-overlay.dts | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+--- a/arch/arm/boot/dts/overlays/sh1106-spi-overlay.dts
++++ b/arch/arm/boot/dts/overlays/sh1106-spi-overlay.dts
+@@ -76,9 +76,9 @@
+               fps       = <&sh1106>,"fps:0";
+               debug     = <&sh1106>,"debug:0";
+               dc_pin    = <&sh1106>,"dc-gpios:4",
+-                          <&sh1106_pins>,"brcm,pins:4;
++                          <&sh1106_pins>,"brcm,pins:4";
+               reset_pin = <&sh1106>,"reset-gpios:4",
+-                          <&sh1106_pins>,"brcm,pins:0;
++                          <&sh1106_pins>,"brcm,pins:0";
+               height    = <&sh1106>,"sinowealth,height:0";
+       };
+ };
+--- a/arch/arm/boot/dts/overlays/ssd1306-spi-overlay.dts
++++ b/arch/arm/boot/dts/overlays/ssd1306-spi-overlay.dts
+@@ -75,9 +75,9 @@
+               rotate    = <&ssd1306>,"rotate:0";
+               fps       = <&ssd1306>,"fps:0";
+               debug     = <&ssd1306>,"debug:0";
+-              dc_pin    = <&ssd1306>,"dc-gpios:4";
++              dc_pin    = <&ssd1306>,"dc-gpios:4",
+                           <&ssd1306_pins>,"brcm,pins:4";
+-              reset_pin = <&ssd1306>,"reset-gpios:4";
++              reset_pin = <&ssd1306>,"reset-gpios:4",
+                           <&ssd1306_pins>,"brcm,pins:0";
+               height    = <&ssd1306>,"solomon,height:0";
+       };
+--- a/arch/arm/boot/dts/overlays/ssd1351-spi-overlay.dts
++++ b/arch/arm/boot/dts/overlays/ssd1351-spi-overlay.dts
+@@ -77,7 +77,7 @@
+               debug     = <&ssd1351>,"debug:0";
+               dc_pin    = <&ssd1351>,"dc-gpios:4",
+                           <&ssd1351_pins>,"brcm,pins:4";
+-              reset_pin = <&ssd1351>,"reset-gpios:4";
++              reset_pin = <&ssd1351>,"reset-gpios:4",
+                           <&ssd1351_pins>,"brcm,pins:0";
+       };
+ };