brcm2708: update 4.1 patches
authorFelix Fietkau <nbd@openwrt.org>
Fri, 11 Sep 2015 16:32:00 +0000 (16:32 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 11 Sep 2015 16:32:00 +0000 (16:32 +0000)
As usual, this patches were taken (and rebased) from
https://github.com/raspberrypi/linux/commits/rpi-4.1.y

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
SVN-Revision: 46853

169 files changed:
target/linux/brcm2708/bcm2708/config-4.1
target/linux/brcm2708/bcm2709/config-4.1
target/linux/brcm2708/patches-4.1/0001-Main-bcm2708-bcm2709-linux-port.patch
target/linux/brcm2708/patches-4.1/0002-Add-bcm2708_gpio-driver.patch
target/linux/brcm2708/patches-4.1/0003-mailbox-bcm2708-Add-bcm2708-vcio.patch
target/linux/brcm2708/patches-4.1/0004-Add-dwc_otg-driver.patch
target/linux/brcm2708/patches-4.1/0005-bcm2708-watchdog-driver.patch
target/linux/brcm2708/patches-4.1/0006-bcm2708-framebuffer-driver.patch
target/linux/brcm2708/patches-4.1/0007-dmaengine-Add-support-for-BCM2708.patch
target/linux/brcm2708/patches-4.1/0008-MMC-added-alternative-MMC-driver.patch
target/linux/brcm2708/patches-4.1/0009-Adding-bcm2835-sdhost-driver-and-an-overlay-to-enabl.patch
target/linux/brcm2708/patches-4.1/0010-cma-Add-vc_cma-driver-to-enable-use-of-CMA.patch
target/linux/brcm2708/patches-4.1/0011-bcm2708-alsa-sound-driver.patch
target/linux/brcm2708/patches-4.1/0012-bcm2708-vchiq-driver.patch
target/linux/brcm2708/patches-4.1/0013-vc_mem-Add-vc_mem-driver.patch
target/linux/brcm2708/patches-4.1/0014-vcsm-VideoCore-shared-memory-service-for-BCM2835.patch
target/linux/brcm2708/patches-4.1/0015-Add-hwrng-hardware-random-number-generator-driver.patch
target/linux/brcm2708/patches-4.1/0016-lirc-added-support-for-RaspberryPi-GPIO.patch
target/linux/brcm2708/patches-4.1/0017-Add-cpufreq-driver.patch
target/linux/brcm2708/patches-4.1/0018-Added-hwmon-thermal-driver-for-reporting-core-temper.patch
target/linux/brcm2708/patches-4.1/0019-Add-Chris-Boot-s-spi-driver.patch
target/linux/brcm2708/patches-4.1/0020-Add-Chris-Boot-s-i2c-driver.patch
target/linux/brcm2708/patches-4.1/0021-bcm2835-add-v4l2-camera-device.patch
target/linux/brcm2708/patches-4.1/0022-scripts-dtc-Update-to-upstream-version-with-overlay-.patch
target/linux/brcm2708/patches-4.1/0023-scripts-Add-mkknlimg-and-knlinfo-scripts-from-tools-.patch
target/linux/brcm2708/patches-4.1/0024-fdt-Add-support-for-the-CONFIG_CMDLINE_EXTEND-option.patch
target/linux/brcm2708/patches-4.1/0025-BCM2708-Add-core-Device-Tree-support.patch
target/linux/brcm2708/patches-4.1/0026-fbdev-add-FBIOCOPYAREA-ioctl.patch
target/linux/brcm2708/patches-4.1/0029-Speed-up-console-framebuffer-imageblit-function.patch
target/linux/brcm2708/patches-4.1/0030-Allow-mac-address-to-be-set-in-smsc95xx.patch
target/linux/brcm2708/patches-4.1/0031-enabling-the-realtime-clock-1-wire-chip-DS1307-and-1.patch
target/linux/brcm2708/patches-4.1/0032-Added-Device-IDs-for-August-DVB-T-205.patch
target/linux/brcm2708/patches-4.1/0033-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch
target/linux/brcm2708/patches-4.1/0034-ASoC-Add-support-for-BCM2708.patch
target/linux/brcm2708/patches-4.1/0035-ASoC-Add-support-for-PCM5102A-codec.patch
target/linux/brcm2708/patches-4.1/0036-BCM2708-Add-I2S-support-to-board-file.patch
target/linux/brcm2708/patches-4.1/0037-ASoC-Add-support-for-HifiBerry-DAC.patch
target/linux/brcm2708/patches-4.1/0038-BCM2708-Add-HifiBerry-DAC-to-board-file.patch
target/linux/brcm2708/patches-4.1/0039-ASoC-BCM2708-Add-support-for-RPi-DAC.patch
target/linux/brcm2708/patches-4.1/0040-ASoC-wm8804-Implement-MCLK-configuration-options-add.patch
target/linux/brcm2708/patches-4.1/0041-ASoC-BCM-Add-support-for-HiFiBerry-Digi.-Driver-is-b.patch
target/linux/brcm2708/patches-4.1/0042-BCM2708-Added-support-for-HiFiBerry-Digi-board-Board.patch
target/linux/brcm2708/patches-4.1/0043-ASoC-wm8804-Set-idle_bias_off-to-false-Idle-bias-has.patch
target/linux/brcm2708/patches-4.1/0044-Add-IQaudIO-Sound-Card-support-for-Raspberry-Pi.patch
target/linux/brcm2708/patches-4.1/0045-vmstat-Workaround-for-issue-where-dirty-page-count-g.patch
target/linux/brcm2708/patches-4.1/0046-hid-Reduce-default-mouse-polling-interval-to-60Hz.patch
target/linux/brcm2708/patches-4.1/0047-Added-support-for-HiFiBerry-DAC.patch
target/linux/brcm2708/patches-4.1/0048-Added-driver-for-HiFiBerry-Amp-amplifier-add-on-boar.patch
target/linux/brcm2708/patches-4.1/0049-bcm2708-Allow-option-card-devices-to-be-configured-v.patch
target/linux/brcm2708/patches-4.1/0050-Adding-Device-Tree-support-for-some-RPi-audio-cards.patch
target/linux/brcm2708/patches-4.1/0051-Added-support-to-reserve-enable-a-GPIO-pin-to-be-use.patch
target/linux/brcm2708/patches-4.1/0052-Update-ds1307-driver-for-device-tree-support.patch
target/linux/brcm2708/patches-4.1/0053-BCM270x_DT-Add-pwr_led-and-the-required-input-trigge.patch
target/linux/brcm2708/patches-4.1/0054-bcm2709-Simplify-and-strip-down-IRQ-handler.patch
target/linux/brcm2708/patches-4.1/0055-Fix-LED-input-trigger-implementation-for-3.19.patch
target/linux/brcm2708/patches-4.1/0056-pinctrl-bcm2835-Set-base-to-0-give-expected-gpio-num.patch
target/linux/brcm2708/patches-4.1/0057-pinctrl-bcm2835-bcm2835_gpio_direction_output-must-s.patch
target/linux/brcm2708/patches-4.1/0058-pinctrl-bcm2835-Fix-interrupt-handling-for-GPIOs-28-.patch
target/linux/brcm2708/patches-4.1/0059-pinctrl-bcm2835-Only-request-the-interrupts-listed-i.patch
target/linux/brcm2708/patches-4.1/0060-enc28j60-Add-device-tree-compatible-string-and-an-ov.patch
target/linux/brcm2708/patches-4.1/0061-Add-driver-for-rpi-proto.patch
target/linux/brcm2708/patches-4.1/0062-Add-Device-Tree-support-for-RPi-DAC.patch
target/linux/brcm2708/patches-4.1/0063-config-Add-default-configs.patch
target/linux/brcm2708/patches-4.1/0064-smsx95xx-fix-crimes-against-truesize.patch
target/linux/brcm2708/patches-4.1/0065-smsc95xx-Disable-turbo-mode-by-default.patch
target/linux/brcm2708/patches-4.1/0066-Add-blk_pos-parameter-to-mmc-multi_io_quirk-callback.patch
target/linux/brcm2708/patches-4.1/0067-bcm2835-bcm2835_defconfig.patch
target/linux/brcm2708/patches-4.1/0068-BCM270x_DT-Add-mailbox-bcm2708-vcio.patch
target/linux/brcm2708/patches-4.1/0069-rpi-ft5406-Add-touchscreen-driver-for-pi-LCD-display.patch
target/linux/brcm2708/patches-4.1/0070-Improve-__copy_to_user-and-__copy_from_user-performa.patch
target/linux/brcm2708/patches-4.1/0071-bcm2835-audio-Create-the-platform-device-if-the-DT-n.patch
target/linux/brcm2708/patches-4.1/0072-ARM-bcm2835-Set-Serial-number-and-Revision.patch
target/linux/brcm2708/patches-4.1/0073-platform-Add-force_core-command-line-setting-to-boot.patch
target/linux/brcm2708/patches-4.1/0074-mach-bcm270x-Enable-the-building-of-pinctrl-bcm2835.patch
target/linux/brcm2708/patches-4.1/0075-BCM270X_DT-Document-the-i2s-mmap-overlay.patch
target/linux/brcm2708/patches-4.1/0076-bcm2835-sdhost-Improve-error-handling-and-recovery.patch
target/linux/brcm2708/patches-4.1/0077-ARM-bcm2835-Add-the-Raspberry-Pi-firmware-driver.patch
target/linux/brcm2708/patches-4.1/0078-config-Enable-ZSMALLOC-ZRAM-and-PGTABLE_MAPPING.patch
target/linux/brcm2708/patches-4.1/0079-Add-rpi-ft5406-overlay-Add-rpi-ft5406-driver-as-modu.patch
target/linux/brcm2708/patches-4.1/0080-Fix-driver-detection-failure-Check-that-the-buffer-r.patch
target/linux/brcm2708/patches-4.1/0081-config-Enable-8250-serial-port.patch
target/linux/brcm2708/patches-4.1/0082-config-Enable-POWER_RESET_GPIO.patch
target/linux/brcm2708/patches-4.1/0083-bcm2708-vcio-Remove-restriction-of-only-a-single-ins.patch
target/linux/brcm2708/patches-4.1/0084-BCM270X_DT-Create-a-core-clock-use-it-for-SPI-and-sd.patch
target/linux/brcm2708/patches-4.1/0085-BCM270X_DT-Add-MCP7941X-to-i2c-rtc-overlay.patch
target/linux/brcm2708/patches-4.1/0086-dts-overlays-document-DHT11-overlay.patch
target/linux/brcm2708/patches-4.1/0087-gpio-poweroff-Allow-it-to-work-on-Raspberry-Pi.patch
target/linux/brcm2708/patches-4.1/0088-BCM270x_DT-Default-Compute-Module-i2c-i2s-and-spi-su.patch
target/linux/brcm2708/patches-4.1/0089-BCM270X_DT-Sort-nodes-by-bus-address-and-consolidate.patch
target/linux/brcm2708/patches-4.1/0090-i2c-bcm2708-BCM270X_DT-Add-support-for-I2C2.patch
target/linux/brcm2708/patches-4.1/0091-BCM270X_DT-Correct-the-lirc-rpi-overlay-documentatio.patch
target/linux/brcm2708/patches-4.1/0092-bcm2835-sdhost-Further-improve-overclock-back-off.patch
target/linux/brcm2708/patches-4.1/0093-i2c-bcm2708-Increase-timeouts-to-allow-larger-transf.patch
target/linux/brcm2708/patches-4.1/0094-spi-bcm2708-Increase-timeout-from-150ms-to-1s.patch
target/linux/brcm2708/patches-4.1/0095-bcm2708-spi-Don-t-use-static-pin-configuration-with-.patch
target/linux/brcm2708/patches-4.1/0096-bcm2708-i2s-Don-t-use-static-pin-configuration-with-.patch
target/linux/brcm2708/patches-4.1/0097-serial-8250-Don-t-crash-when-nr_uarts-is-0.patch
target/linux/brcm2708/patches-4.1/0098-BCM270X_DT-Add-overlay-to-enable-uart1.patch
target/linux/brcm2708/patches-4.1/0099-spi-bcm2835-Support-pin-groups-other-than-7-11.patch
target/linux/brcm2708/patches-4.1/0100-BCM270X_DT-Change-pio_limit-of-sdhost-driver-to-1.patch
target/linux/brcm2708/patches-4.1/0101-bcm2835-sdhost-Clear-HBLC-for-PIO-mode.patch
target/linux/brcm2708/patches-4.1/0102-BCM270X_DT-I2S-needs-function-Alt2.patch
target/linux/brcm2708/patches-4.1/0103-configs-Incorporate-v4.1-dependency-changes.patch
target/linux/brcm2708/patches-4.1/0104-bcmrpi_defconfigs-Add-SND_SOC_WM8804_I2C-for-HifiBer.patch
target/linux/brcm2708/patches-4.1/0105-squash-BCM270X_DT-I2S-only-needs-Alt2-on-28-31.patch
target/linux/brcm2708/patches-4.1/0106-vchiq_arm-Two-cacheing-fixes.patch
target/linux/brcm2708/patches-4.1/0107-BCM270X_DT-Overlay-for-the-Fen-Logic-VGA666-board.patch
target/linux/brcm2708/patches-4.1/0108-Added-support-for-2-mcp2515-CAN-Bus-IC.patch
target/linux/brcm2708/patches-4.1/0109-mailbox-Enable-BCM2835-mailbox-support.patch
target/linux/brcm2708/patches-4.1/0110-mailbox-bcm2835-Fix-mailbox-full-detection.patch
target/linux/brcm2708/patches-4.1/0111-mailbox-bcm2835-Support-ARCH_BCM270x.patch
target/linux/brcm2708/patches-4.1/0112-ARM-bcm2835-Add-the-firmware-driver-information-to-t.patch
target/linux/brcm2708/patches-4.1/0113-firmware-bcm2835-Add-missing-property-tags.patch
target/linux/brcm2708/patches-4.1/0114-firmware-bcm2835-Support-ARCH_BCM270x.patch
target/linux/brcm2708/patches-4.1/0115-firmware-bcm2835-Support-legacy-mailbox-API.patch
target/linux/brcm2708/patches-4.1/0116-char-broadcom-Add-vcio-module.patch
target/linux/brcm2708/patches-4.1/0117-BCM270x-Switch-to-firmware-driver.patch
target/linux/brcm2708/patches-4.1/0118-bcm2835-Switch-to-firmware-driver.patch
target/linux/brcm2708/patches-4.1/0119-Merge-pull-request-1059-from-pelwell-rpi-4.0.y.patch
target/linux/brcm2708/patches-4.1/0120-vchiq_arm-Sort-out-the-vmalloc-case.patch
target/linux/brcm2708/patches-4.1/0121-spidev-Add-spidev-compatible-string-to-silence-warni.patch
target/linux/brcm2708/patches-4.1/0122-Merge-pull-request-1043-from-XECDesign-sense-4.0.patch
target/linux/brcm2708/patches-4.1/0123-leds-gpio-Implement-the-brightness_get-method.patch
target/linux/brcm2708/patches-4.1/0124-dmaengine-bcm2708-dmaengine-Fix-memory-leak-when-sto.patch
target/linux/brcm2708/patches-4.1/0125-BCM270X_DT-Fix-I2S-register-map.patch
target/linux/brcm2708/patches-4.1/0126-BCM2835_DT-Fix-I2S-register-map.patch
target/linux/brcm2708/patches-4.1/0127-config-Enable-SHT-drivers-for-raspberry-pi.patch
target/linux/brcm2708/patches-4.1/0128-BCM270X_DT-Correct-typo-in-overlays-README.patch
target/linux/brcm2708/patches-4.1/0129-bcm2835-sdhost-Add-the-ERASE-capability.patch
target/linux/brcm2708/patches-4.1/0130-bcm2835-sdhost-Ignore-CRC7-for-MMC-CMD1.patch
target/linux/brcm2708/patches-4.1/0131-BCM270X_DT-Add-unit-address-to-gpio-node-name.patch
target/linux/brcm2708/patches-4.1/0132-BCM270X_DT-Use-i2c_arm-for-rtc-and-bmp085-overlays.patch
target/linux/brcm2708/patches-4.1/0133-BCM2708_DT-CM-dtparams-for-audio-watchdog-and-RNG.patch
target/linux/brcm2708/patches-4.1/0134-vchiq-Use-firmware-API.patch
target/linux/brcm2708/patches-4.1/0135-thermal-bcm2835-Use-firmware-API.patch
target/linux/brcm2708/patches-4.1/0136-cpufreq-bcm2835-Use-firmware-API.patch
target/linux/brcm2708/patches-4.1/0137-fbdev-bcm2708-Use-firmware-API.patch
target/linux/brcm2708/patches-4.1/0138-bcm2835-Add-firmware-property-to-affected-devices.patch
target/linux/brcm2708/patches-4.1/0139-rpi-ft5406-Use-firmware-API.patch
target/linux/brcm2708/patches-4.1/0140-irqchip-bcm2835-Add-FIQ-support.patch
target/linux/brcm2708/patches-4.1/0141-dwc_otg-Add-ARCH_BCM2835-support.patch
target/linux/brcm2708/patches-4.1/0142-bcm2835-Use-DWC_OTG.patch
target/linux/brcm2708/patches-4.1/0143-Fix-RASPBERRYPI_FIRMWARE-dependents.patch
target/linux/brcm2708/patches-4.1/0144-vc_mem-Remove-unnecessary-include.patch
target/linux/brcm2708/patches-4.1/0145-configs-Remove-BCM2708_MBOX.patch
target/linux/brcm2708/patches-4.1/0146-bcm2708-vcio-Remove-module.patch
target/linux/brcm2708/patches-4.1/0147-Revert-firmware-bcm2835-Support-legacy-mailbox-API.patch
target/linux/brcm2708/patches-4.1/0148-pinctrl-bcm2835-Clear-the-event-latch-register-when-.patch
target/linux/brcm2708/patches-4.1/0149-dwc_otg-fiq_fsm-Make-high-speed-isochronous-strided-.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0150-added-basic-docker-support.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0151-bcm2835-camera-planar-packed-stride-length.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0154-BCM270X_DT-Add-pwm-and-pwm-2chan-overlays.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0155-spi-bcm2835-fallback-to-interrupt-for-polling-timeou.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0156-spi-bcm2835-enable-dma-modes-for-transfers-meeting-c.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0157-spi-bcm2835-fix-kbuild-compile-warnings-errors-and-a.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0158-spi-bcm2835-bcm2835_dma_release-can-be-static.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0159-spi-bcm2835-fixed-compile-issues-due-to-embedded-com.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0160-dt-overlay-to-enable-dma-for-spi-driver.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0161-dt-overlay-added-documentation-of-spi-dma-overlay.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0162-rpisense-fb-add-low-light-mode-and-gamma-control.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0163-spi-bcm2835-Fix-buld-error-from-previous-commit.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0164-BCM270X_DT-README-add-note-on-indentation.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0165-bcm2708-dmaengine-Use-more-DMA-channels-but-not-12.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0166-staging-fbtft-Add-reset-to-fbtft_init_display_dt.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0167-BCM270X_DT-mz61581-Revert-to-spi-bcm2708.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0168-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0169-tpa6130a2-Add-headphone-switch-control.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0170-RaspiDAC3-support.patch [new file with mode: 0644]
target/linux/brcm2708/patches-4.1/0171-config-Add-SND_SOC_ADAU1701-module.patch [new file with mode: 0644]

index bc8baaf..e177b98 100644 (file)
@@ -40,6 +40,7 @@ CONFIG_BCM2708_GPIO=y
 CONFIG_BCM2708_VCHIQ=y
 CONFIG_BCM2708_VCMEM=y
 # CONFIG_BCM2708_WDT is not set
+# CONFIG_BCM2835_DEVGPIOMEM is not set
 CONFIG_BCM2835_MBOX=y
 CONFIG_BCM2835_WDT=y
 CONFIG_BCM_VCIO=y
index 9896464..c8153cd 100644 (file)
@@ -47,6 +47,7 @@ CONFIG_BCM2708_VCHIQ=y
 CONFIG_BCM2708_VCMEM=y
 # CONFIG_BCM2708_WDT is not set
 CONFIG_BCM2709_DT=y
+# CONFIG_BCM2835_DEVGPIOMEM is not set
 CONFIG_BCM2835_MBOX=y
 CONFIG_BCM2835_WDT=y
 CONFIG_BCM_VCIO=y
index dbb839c..80ad8c3 100644 (file)
@@ -1,7 +1,7 @@
-From 6f0468a9f44474189135066bbeb8eecf8d99bebf Mon Sep 17 00:00:00 2001
+From 401f5d164bd797fe7c1d39fa3edfd0d517edaa62 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Sun, 12 May 2013 12:24:19 +0100
-Subject: [PATCH 001/148] Main bcm2708/bcm2709 linux port
+Subject: [PATCH 001/171] Main bcm2708/bcm2709 linux port
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index f61534e..386ebfb 100644 (file)
@@ -1,7 +1,7 @@
-From 0dcdc1b4040137f2e273f85355f8bcc431a83ca6 Mon Sep 17 00:00:00 2001
+From 26ba306075567b5627c4633f1b9cf1e8be963b08 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Wed, 8 Oct 2014 18:50:05 +0100
-Subject: [PATCH 002/148] Add bcm2708_gpio driver
+Subject: [PATCH 002/171] Add bcm2708_gpio driver
 
 Signed-off-by: popcornmix <popcornmix@gmail.com>
 
index 7aaf586..c357644 100644 (file)
@@ -1,7 +1,7 @@
-From 4646501204922076db934dad7ec5c2d170daf104 Mon Sep 17 00:00:00 2001
+From a198016611e2c5dc9b3867b489eda80d4499f890 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 1 May 2015 19:11:03 +0200
-Subject: [PATCH 003/148] mailbox: bcm2708: Add bcm2708-vcio
+Subject: [PATCH 003/171] mailbox: bcm2708: Add bcm2708-vcio
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index ae50ec3..12db8d7 100644 (file)
@@ -1,7 +1,7 @@
-From a941db3fbb5241762f38ec031140ea47becfaeaa Mon Sep 17 00:00:00 2001
+From 5a6024182390194a4e0b3f05e20226dd89f7fa9d Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Wed, 1 May 2013 19:46:17 +0100
-Subject: [PATCH 004/148] Add dwc_otg driver
+Subject: [PATCH 004/171] Add dwc_otg driver
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index b38b51a..7dfbad9 100644 (file)
@@ -1,7 +1,7 @@
-From 85e2240b7c7cdcaf410a3746c07ceea0504fcf21 Mon Sep 17 00:00:00 2001
+From 5ec663250bcf18ee6d5792ab03ca49b15e2ea882 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Wed, 1 May 2013 19:54:32 +0100
-Subject: [PATCH 005/148] bcm2708 watchdog driver
+Subject: [PATCH 005/171] bcm2708 watchdog driver
 
 Signed-off-by: popcornmix <popcornmix@gmail.com>
 ---
index 6ce2ae6..65006d0 100644 (file)
@@ -1,7 +1,7 @@
-From 4c7a97f1aaca30131495af59d21e1ba1f4be79d0 Mon Sep 17 00:00:00 2001
+From e41668dfdc984723c914401293db5757f5981330 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Wed, 17 Jun 2015 17:06:34 +0100
-Subject: [PATCH 006/148] bcm2708 framebuffer driver
+Subject: [PATCH 006/171] bcm2708 framebuffer driver
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 402b89a..9f22587 100644 (file)
@@ -1,7 +1,7 @@
-From 8ac096712e565eea7627dbba7b72c0d13e9798b0 Mon Sep 17 00:00:00 2001
+From 04a4ceef489437512b4d40071e049950d56fbb27 Mon Sep 17 00:00:00 2001
 From: Florian Meier <florian.meier@koalo.de>
 Date: Fri, 22 Nov 2013 14:22:53 +0100
-Subject: [PATCH 007/148] dmaengine: Add support for BCM2708
+Subject: [PATCH 007/171] dmaengine: Add support for BCM2708
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index db4680a..0d1ddb7 100644 (file)
@@ -1,7 +1,7 @@
-From d95bfdd2012a3dc5ae6feea819121d11ead9dbfc Mon Sep 17 00:00:00 2001
+From 3b0b17e88492b2b230b8ebfbee410f1ce1bd9472 Mon Sep 17 00:00:00 2001
 From: gellert <gellert@raspberrypi.org>
 Date: Fri, 15 Aug 2014 16:35:06 +0100
-Subject: [PATCH 008/148] MMC: added alternative MMC driver
+Subject: [PATCH 008/171] MMC: added alternative MMC driver
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index d4fc4e6..1f8d0b1 100644 (file)
@@ -1,7 +1,7 @@
-From 216f8f57dfe55688478495957bfda34d66cde9df Mon Sep 17 00:00:00 2001
+From 1f881b06a8bc697d0e662687152fdc9309ff051a Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Wed, 25 Mar 2015 17:49:47 +0000
-Subject: [PATCH 009/148] Adding bcm2835-sdhost driver, and an overlay to
+Subject: [PATCH 009/171] Adding bcm2835-sdhost driver, and an overlay to
  enable it
 
 BCM2835 has two SD card interfaces. This driver uses the other one.
index 1ef245b..afea233 100644 (file)
@@ -1,7 +1,7 @@
-From 656283956919c31ba61b1ebbb28531b408ad9cd5 Mon Sep 17 00:00:00 2001
+From 58f193da0a65393b6e4415529c93e443c0218cd1 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Wed, 3 Jul 2013 00:31:47 +0100
-Subject: [PATCH 010/148] cma: Add vc_cma driver to enable use of CMA
+Subject: [PATCH 010/171] cma: Add vc_cma driver to enable use of CMA
 
 Signed-off-by: popcornmix <popcornmix@gmail.com>
 
index 230eaec..7e6555d 100644 (file)
@@ -1,7 +1,7 @@
-From fdd1856ca99e00dcc9edf4373ffd7e6e080b4293 Mon Sep 17 00:00:00 2001
+From 9479010a140e02e7fadc9d7276368ad31cf09e90 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Mon, 26 Mar 2012 22:15:50 +0100
-Subject: [PATCH 011/148] bcm2708: alsa sound driver
+Subject: [PATCH 011/171] bcm2708: alsa sound driver
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index d34d697..ba6c278 100644 (file)
@@ -1,7 +1,7 @@
-From 48dac350e45f5e45aa29fedb1b79247f9b771233 Mon Sep 17 00:00:00 2001
+From 178b1b7f58f59dfa28882c090a5481b01229175c Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Tue, 2 Jul 2013 23:42:01 +0100
-Subject: [PATCH 012/148] bcm2708 vchiq driver
+Subject: [PATCH 012/171] bcm2708 vchiq driver
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 646afff..ecff3fa 100644 (file)
@@ -1,7 +1,7 @@
-From af60d6d916093924188d0d532dbe181fe58b4e0d Mon Sep 17 00:00:00 2001
+From 7855d7e7caa631b3070612353b823ac4fafad349 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Wed, 17 Jun 2015 16:07:06 +0100
-Subject: [PATCH 013/148] vc_mem: Add vc_mem driver
+Subject: [PATCH 013/171] vc_mem: Add vc_mem driver
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index c6fb14a..448ce00 100644 (file)
@@ -1,7 +1,7 @@
-From 3ba2f11104537f40460f840d40a2cb3427812310 Mon Sep 17 00:00:00 2001
+From a791bc11b84ba34966f21cec50e3bed1a7b5a0f1 Mon Sep 17 00:00:00 2001
 From: Tim Gover <tgover@broadcom.com>
 Date: Tue, 22 Jul 2014 15:41:04 +0100
-Subject: [PATCH 014/148] vcsm: VideoCore shared memory service for BCM2835
+Subject: [PATCH 014/171] vcsm: VideoCore shared memory service for BCM2835
 
 Add experimental support for the VideoCore shared memory service.
 This allows user processes to allocate memory from VideoCore's
index cce4a76..8bc02eb 100644 (file)
@@ -1,7 +1,7 @@
-From b1a1f2fb6ed4ccaf466754512e545cbd5cf7ce3b Mon Sep 17 00:00:00 2001
+From 53bbc98101781c4c4a6a26e987439088423e1d5e Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Wed, 3 Jul 2013 00:51:55 +0100
-Subject: [PATCH 015/148] Add hwrng (hardware random number generator) driver
+Subject: [PATCH 015/171] Add hwrng (hardware random number generator) driver
 
 ---
  drivers/char/hw_random/Kconfig       |  13 +++-
index 496d952..fd176d3 100644 (file)
@@ -1,7 +1,7 @@
-From 5d006d177c4f6071bfb05594d600eecb35a1e9d3 Mon Sep 17 00:00:00 2001
+From 152c53ac6dfbebe4702389526cd04a995a20f71a Mon Sep 17 00:00:00 2001
 From: Aron Szabo <aron@aron.ws>
 Date: Sat, 16 Jun 2012 12:15:55 +0200
-Subject: [PATCH 016/148] lirc: added support for RaspberryPi GPIO
+Subject: [PATCH 016/171] lirc: added support for RaspberryPi GPIO
 
 lirc_rpi: Use read_current_timer to determine transmitter delay. Thanks to jjmz and others
 See: https://github.com/raspberrypi/linux/issues/525
index 725bea8..833f2ae 100644 (file)
@@ -1,7 +1,7 @@
-From 327ed0ed75f77f72f17e0c14bbcd30cdab584817 Mon Sep 17 00:00:00 2001
+From dd3d655617225b79fe9ae53075800fc05c17afca Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Wed, 3 Jul 2013 00:49:20 +0100
-Subject: [PATCH 017/148] Add cpufreq driver
+Subject: [PATCH 017/171] Add cpufreq driver
 
 Signed-off-by: popcornmix <popcornmix@gmail.com>
 ---
index 86a3270..d63ff3c 100644 (file)
@@ -1,7 +1,7 @@
-From 40d8a3f8af68f312479b38b0e704b4fe57c97f4c Mon Sep 17 00:00:00 2001
+From f9f02cbb208f7b5b91851cbec11202cc2f1e4879 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Tue, 26 Mar 2013 19:24:24 +0000
-Subject: [PATCH 018/148] Added hwmon/thermal driver for reporting core
+Subject: [PATCH 018/171] Added hwmon/thermal driver for reporting core
  temperature. Thanks Dorian
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
index 0c02b84..852e071 100644 (file)
@@ -1,7 +1,7 @@
-From f35d4ef360d9428cfe544b75ca3aedbf0a19f503 Mon Sep 17 00:00:00 2001
+From bdf3fc107c0849c132c643f5d88409ab170b06cf Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Wed, 17 Jun 2015 15:41:33 +0100
-Subject: [PATCH 019/148] Add Chris Boot's spi driver.
+Subject: [PATCH 019/171] Add Chris Boot's spi driver.
 
 spi: bcm2708: add device tree support
 
index ab823d0..63dd548 100644 (file)
@@ -1,7 +1,7 @@
-From cc02f1ee1ee91b686290e05cf53df8bc83d03299 Mon Sep 17 00:00:00 2001
+From 33747296c5a59d9a21b6721d4bdfd200efcfede8 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Wed, 17 Jun 2015 15:44:08 +0100
-Subject: [PATCH 020/148] Add Chris Boot's i2c driver
+Subject: [PATCH 020/171] Add Chris Boot's i2c driver
 
 i2c-bcm2708: fixed baudrate
 
index f80484c..b5f1ca0 100644 (file)
@@ -1,7 +1,7 @@
-From 6326185c97e8da25bcd0acacb4a0e9b388f6a76f Mon Sep 17 00:00:00 2001
+From 9860807d0dfd9ee237618f7bc298337491412c6e Mon Sep 17 00:00:00 2001
 From: Vincent Sanders <vincent.sanders@collabora.co.uk>
 Date: Wed, 30 Jan 2013 12:45:18 +0000
-Subject: [PATCH 021/148] bcm2835: add v4l2 camera device
+Subject: [PATCH 021/171] bcm2835: add v4l2 camera device
 
 - Supports raw YUV capture, preview, JPEG and H264.
 - Uses videobuf2 for data transfer, using dma_buf.
index 2392598..ae314a7 100644 (file)
@@ -1,7 +1,7 @@
-From 1383a48ac698b4253bb3dfac6a7407f58cddfa37 Mon Sep 17 00:00:00 2001
+From dc3b7a37d88e3072e1aa50569f8d565325450886 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Fri, 23 Jan 2015 14:48:55 +0000
-Subject: [PATCH 022/148] scripts/dtc: Update to upstream version with overlay
+Subject: [PATCH 022/171] scripts/dtc: Update to upstream version with overlay
  patches
 
 ---
index f444718..33b76ba 100644 (file)
@@ -1,7 +1,7 @@
-From 9c388113f17ae4ea0c516d753d5cf3f69ceb0c87 Mon Sep 17 00:00:00 2001
+From dbdb2233c99ddb69a4b2143bae3450914d387fc1 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Mon, 11 May 2015 09:00:42 +0100
-Subject: [PATCH 023/148] scripts: Add mkknlimg and knlinfo scripts from tools
+Subject: [PATCH 023/171] scripts: Add mkknlimg and knlinfo scripts from tools
  repo
 
 The Raspberry Pi firmware looks for a trailer on the kernel image to
index 5d74e3f..e54e14d 100644 (file)
@@ -1,7 +1,7 @@
-From 2d9c312e5b7a52fc0e311f909bb475ecc68b1199 Mon Sep 17 00:00:00 2001
+From 451f30961d360c125bb9000e57f59ef3e0569b53 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Fri, 5 Dec 2014 17:26:26 +0000
-Subject: [PATCH 024/121] fdt: Add support for the CONFIG_CMDLINE_EXTEND option
+Subject: [PATCH 024/171] fdt: Add support for the CONFIG_CMDLINE_EXTEND option
 
 ---
  drivers/of/fdt.c | 29 ++++++++++++++++++++++++-----
index d906f6a..066cdb4 100644 (file)
@@ -1,7 +1,7 @@
-From c18bed87cf9c823818221355bbe3508a60221080 Mon Sep 17 00:00:00 2001
+From 5c77587f9e377f9e30dfca468bee4532a3a10229 Mon Sep 17 00:00:00 2001
 From: notro <notro@tronnes.org>
 Date: Wed, 9 Jul 2014 14:46:08 +0200
-Subject: [PATCH 025/148] BCM2708: Add core Device Tree support
+Subject: [PATCH 025/171] BCM2708: Add core Device Tree support
 
 Add the bare minimum needed to boot BCM2708 from a Device Tree.
 
index 8af6d2a..81d38a3 100644 (file)
@@ -1,7 +1,7 @@
-From b957660f910ddcf5c7c43ebd20c347d3ef5c220f Mon Sep 17 00:00:00 2001
+From 7099f200c096aaf4cf79e5bfa41ce1e016e607ca Mon Sep 17 00:00:00 2001
 From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
 Date: Mon, 17 Jun 2013 13:32:11 +0300
-Subject: [PATCH 026/148] fbdev: add FBIOCOPYAREA ioctl
+Subject: [PATCH 026/171] fbdev: add FBIOCOPYAREA ioctl
 
 Based on the patch authored by Ali Gholami Rudi at
     https://lkml.org/lkml/2009/7/13/153
index f67b999..8e4c07c 100644 (file)
@@ -1,7 +1,7 @@
-From d8546609674b9071d86c884a750a99be111ff927 Mon Sep 17 00:00:00 2001
+From a82f0ad663b1f3964b5011201b23dd129240bf9f Mon Sep 17 00:00:00 2001
 From: Harm Hanemaaijer <fgenfb@yahoo.com>
 Date: Thu, 20 Jun 2013 20:21:39 +0200
-Subject: [PATCH 029/148] Speed up console framebuffer imageblit function
+Subject: [PATCH 029/171] Speed up console framebuffer imageblit function
 
 Especially on platforms with a slower CPU but a relatively high
 framebuffer fill bandwidth, like current ARM devices, the existing
index 8ef4e90..b1311e2 100644 (file)
@@ -1,7 +1,7 @@
-From aa320d01565ccd90b5e6954b63724076cba88ca5 Mon Sep 17 00:00:00 2001
+From f6fffdcafda0f821fea364d437877a9b6d35c3e0 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Tue, 26 Mar 2013 17:26:38 +0000
-Subject: [PATCH 030/148] Allow mac address to be set in smsc95xx
+Subject: [PATCH 030/171] Allow mac address to be set in smsc95xx
 
 Signed-off-by: popcornmix <popcornmix@gmail.com>
 ---
index 34136ab..bb38e3f 100644 (file)
@@ -1,7 +1,7 @@
-From 4a703aa1cc152189682c173bb4d89ef8f9da6c21 Mon Sep 17 00:00:00 2001
+From 8e0d9ff1afc5b595eebf92b305e3e19af3fe06d9 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Wed, 8 May 2013 11:46:50 +0100
-Subject: [PATCH 031/148] enabling the realtime clock 1-wire chip DS1307 and
+Subject: [PATCH 031/171] enabling the realtime clock 1-wire chip DS1307 and
  1-wire on GPIO4 (as a module)
 
 1-wire: Add support for configuring pin for w1-gpio kernel module
index 4dd51bb..c441260 100644 (file)
@@ -1,7 +1,7 @@
-From 7df25b626767cc1af02e6a3d1168796638616c96 Mon Sep 17 00:00:00 2001
+From 281e90871309b0d1a113c055c86757027de22c8b Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Wed, 3 Jul 2013 00:54:08 +0100
-Subject: [PATCH 032/148] Added Device IDs for August DVB-T 205
+Subject: [PATCH 032/171] Added Device IDs for August DVB-T 205
 
 ---
  drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 4 ++++
index 0343fb1..2a2f9b3 100644 (file)
@@ -1,7 +1,7 @@
-From 7a190806d076ec3adaab102f8dd2cfaca16c1067 Mon Sep 17 00:00:00 2001
+From 3af3746a509957ae4a0daa7b4a561c2a97870916 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Wed, 18 Dec 2013 22:16:19 +0000
-Subject: [PATCH 033/148] config: Enable CONFIG_MEMCG, but leave it disabled
+Subject: [PATCH 033/171] config: Enable CONFIG_MEMCG, but leave it disabled
  (due to memory cost). Enable with cgroup_enable=memory.
 
 ---
index 65fdfd3..216fd79 100644 (file)
@@ -1,7 +1,7 @@
-From 6fb867c30ac9a24482bcccd69c146d526c8e89ec Mon Sep 17 00:00:00 2001
+From b02ef86d5728e7aa67775fc9761f04a2439a6c3a Mon Sep 17 00:00:00 2001
 From: Florian Meier <florian.meier@koalo.de>
 Date: Fri, 22 Nov 2013 14:33:38 +0100
-Subject: [PATCH 034/148] ASoC: Add support for BCM2708
+Subject: [PATCH 034/171] ASoC: Add support for BCM2708
 
 This driver adds support for digital audio (I2S)
 for the BCM2708 SoC that is used by the
index 53b8f48..f8327fe 100644 (file)
@@ -1,7 +1,7 @@
-From 6b65db90e60e189ae7fb310c73f203f422b50a5d Mon Sep 17 00:00:00 2001
+From 8c94146d33d522d6fbf5d2aff70676494631763b Mon Sep 17 00:00:00 2001
 From: Florian Meier <florian.meier@koalo.de>
 Date: Fri, 22 Nov 2013 14:59:51 +0100
-Subject: [PATCH 035/148] ASoC: Add support for PCM5102A codec
+Subject: [PATCH 035/171] ASoC: Add support for PCM5102A codec
 
 Some definitions to support the PCM5102A codec
 by Texas Instruments.
index a63bda2..e2bb203 100644 (file)
@@ -1,7 +1,7 @@
-From 48e87b89080e40af51338d5966480753b09ef7d3 Mon Sep 17 00:00:00 2001
+From 5e5994dd4630230b7b044e458339180e873857ac Mon Sep 17 00:00:00 2001
 From: Florian Meier <florian.meier@koalo.de>
 Date: Fri, 22 Nov 2013 19:04:54 +0100
-Subject: [PATCH 036/148] BCM2708: Add I2S support to board file
+Subject: [PATCH 036/171] BCM2708: Add I2S support to board file
 
 Adds the required initializations for I2S
 to the board file of mach-bcm2708.
index 6c1e38e..6415b73 100644 (file)
@@ -1,7 +1,7 @@
-From 0d1e38720f4aacf46480fdfb54b1d699ec08d619 Mon Sep 17 00:00:00 2001
+From fe18c4e02b8b0007e110b2029e021154b3ab2dd0 Mon Sep 17 00:00:00 2001
 From: Florian Meier <florian.meier@koalo.de>
 Date: Fri, 22 Nov 2013 19:19:08 +0100
-Subject: [PATCH 037/148] ASoC: Add support for HifiBerry DAC
+Subject: [PATCH 037/171] ASoC: Add support for HifiBerry DAC
 
 This adds a machine driver for the HifiBerry DAC.
 It is a sound card that can
index 6f5c239..f09e278 100644 (file)
@@ -1,7 +1,7 @@
-From 33a09a3e03ad860ab2783a2ba2f4b79f763ec756 Mon Sep 17 00:00:00 2001
+From e750b2fa5d490c5f0106f654d2270fae20ab7d18 Mon Sep 17 00:00:00 2001
 From: Florian Meier <florian.meier@koalo.de>
 Date: Fri, 22 Nov 2013 19:21:34 +0100
-Subject: [PATCH 038/148] BCM2708: Add HifiBerry DAC to board file
+Subject: [PATCH 038/171] BCM2708: Add HifiBerry DAC to board file
 
 This adds the initalization of the HifiBerry DAC
 to the mach-bcm2708 board file.
index 09ab274..d9f847b 100644 (file)
@@ -1,7 +1,7 @@
-From 2a71fe357bbabc53e589759ad980f9f4645f6d99 Mon Sep 17 00:00:00 2001
+From cebfb216daf7118a86d4b07086baedaa4ee298e7 Mon Sep 17 00:00:00 2001
 From: Florian Meier <florian.meier@koalo.de>
 Date: Fri, 6 Dec 2013 20:50:28 +0100
-Subject: [PATCH 039/148] ASoC: BCM2708: Add support for RPi-DAC
+Subject: [PATCH 039/171] ASoC: BCM2708: Add support for RPi-DAC
 
 This adds a machine driver for the RPi-DAC.
 
index f962993..19d8ecd 100644 (file)
@@ -1,7 +1,7 @@
-From e6bf0295904cdcd9076615b25e3e9708a7aa26f4 Mon Sep 17 00:00:00 2001
+From 463e74adc05d41470cfecde946f98ebc59d89b4f Mon Sep 17 00:00:00 2001
 From: Daniel Matuschek <info@crazy-audio.com>
 Date: Wed, 15 Jan 2014 21:41:23 +0100
-Subject: [PATCH 040/148] ASoC: wm8804: Implement MCLK configuration options,
+Subject: [PATCH 040/171] ASoC: wm8804: Implement MCLK configuration options,
  add 32bit support WM8804 can run with PLL frequencies of 256xfs and 128xfs
  for most sample rates. At 192kHz only 128xfs is supported. The existing
  driver selects 128xfs automatically for some lower samples rates. By using an
index 380055e..5261db5 100644 (file)
@@ -1,7 +1,7 @@
-From 3c00a5d6f700aadbddae2d1ce66bf1c005e57630 Mon Sep 17 00:00:00 2001
+From 7bcd053aa8b06e2be569213d0b7d0e72ab8da91e Mon Sep 17 00:00:00 2001
 From: Daniel Matuschek <info@crazy-audio.com>
 Date: Wed, 15 Jan 2014 21:42:08 +0100
-Subject: [PATCH 041/148] ASoC: BCM:Add support for HiFiBerry Digi. Driver is
+Subject: [PATCH 041/171] ASoC: BCM:Add support for HiFiBerry Digi. Driver is
  based on the patched WM8804 driver.
 
 Signed-off-by: Daniel Matuschek <daniel@matuschek.net>
index 628d939..5f83d6d 100644 (file)
@@ -1,7 +1,7 @@
-From ab2549a74dcee90dc017a08091ee4580550aa914 Mon Sep 17 00:00:00 2001
+From e47c3fdeecb7a3e138d44660de5ab2128a34265f Mon Sep 17 00:00:00 2001
 From: Daniel Matuschek <info@crazy-audio.com>
 Date: Thu, 16 Jan 2014 07:26:08 +0100
-Subject: [PATCH 042/148] BCM2708: Added support for HiFiBerry Digi board Board
+Subject: [PATCH 042/171] BCM2708: Added support for HiFiBerry Digi board Board
  initalization by I2C
 
 Signed-off-by: Daniel Matuschek <daniel@matuschek.net>
index db857e1..e3a4d09 100644 (file)
@@ -1,7 +1,7 @@
-From 66e9a2c228b82d81b46de10621f4621098e169f9 Mon Sep 17 00:00:00 2001
+From 4e065559dadaff17498a017691adc096e7bbae2e Mon Sep 17 00:00:00 2001
 From: Daniel Matuschek <info@crazy-audio.com>
 Date: Thu, 16 Jan 2014 07:36:35 +0100
-Subject: [PATCH 043/148] ASoC: wm8804: Set idle_bias_off to false Idle bias
+Subject: [PATCH 043/171] ASoC: wm8804: Set idle_bias_off to false Idle bias
  has been change to remove warning on driver startup
 
 Signed-off-by: Daniel Matuschek <daniel@matuschek.net>
index a030d41..5fcfeeb 100644 (file)
@@ -1,7 +1,7 @@
-From e2af7e8bdcf9e9ab3899eee75e821ba2976a86c6 Mon Sep 17 00:00:00 2001
+From 070ed9f4445bde2a425c65543278a89cbc68857c Mon Sep 17 00:00:00 2001
 From: Gordon Garrity <gordon@iqaudio.com>
 Date: Sat, 8 Mar 2014 16:56:57 +0000
-Subject: [PATCH 044/148] Add IQaudIO Sound Card support for Raspberry Pi
+Subject: [PATCH 044/171] Add IQaudIO Sound Card support for Raspberry Pi
 
 Set a limit of 0dB on Digital Volume Control
 
index de0eb96..590dd5b 100644 (file)
@@ -1,7 +1,7 @@
-From 8cf49e40e46b9bef3ba7cb250153135329015a0e Mon Sep 17 00:00:00 2001
+From 60c815a4d391146705c0213642be0e3568ea1b7b Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Wed, 18 Jun 2014 13:42:01 +0100
-Subject: [PATCH 045/148] vmstat: Workaround for issue where dirty page count
+Subject: [PATCH 045/171] vmstat: Workaround for issue where dirty page count
  goes negative
 
 See:
index 4ce53d5..e904f32 100644 (file)
@@ -1,7 +1,7 @@
-From ef61715b2dadf9e237c3d3efdff54838dafdc058 Mon Sep 17 00:00:00 2001
+From adb07aff7d57f6bf072cb98591015ed6f7556478 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Mon, 14 Jul 2014 22:02:09 +0100
-Subject: [PATCH 046/148] hid: Reduce default mouse polling interval to 60Hz
+Subject: [PATCH 046/171] hid: Reduce default mouse polling interval to 60Hz
 
 Reduces overhead when using X
 ---
index 3239253..aba36eb 100644 (file)
@@ -1,7 +1,7 @@
-From 2ed5cd5830ee0d32b50fdb9865c904897eed9bc3 Mon Sep 17 00:00:00 2001
+From 1408165cd6474613fb414f10d4c9a26f46c07c2b Mon Sep 17 00:00:00 2001
 From: Daniel Matuschek <info@crazy-audio.com>
 Date: Mon, 4 Aug 2014 10:06:56 +0200
-Subject: [PATCH 047/148] Added support for HiFiBerry DAC+
+Subject: [PATCH 047/171] Added support for HiFiBerry DAC+
 
 The driver is based on the HiFiBerry DAC driver. However HiFiBerry DAC+ uses
 a different codec chip (PCM5122), therefore a new driver is necessary.
index c34879f..c1db167 100644 (file)
@@ -1,7 +1,7 @@
-From 304bf1caf8484bec3ae645839761b1ed320227c3 Mon Sep 17 00:00:00 2001
+From e4f72f2ce26695642af17308eb52c676aac0cbf8 Mon Sep 17 00:00:00 2001
 From: Daniel Matuschek <info@crazy-audio.com>
 Date: Mon, 4 Aug 2014 11:09:58 +0200
-Subject: [PATCH 048/148] Added driver for HiFiBerry Amp amplifier add-on board
+Subject: [PATCH 048/171] Added driver for HiFiBerry Amp amplifier add-on board
 
 The driver contains a low-level hardware driver for the TAS5713 and the
 drivers for the Raspberry Pi I2S subsystem.
index b069c10..cce07d1 100644 (file)
@@ -1,7 +1,7 @@
-From ed44696bbccff9cf2feede419b4e335f18e686ea Mon Sep 17 00:00:00 2001
+From b70b00c9ffe01ba04c66fac70abdf04ad72ffb1d Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Mon, 13 Apr 2015 19:14:18 +0100
-Subject: [PATCH 049/148] bcm2708: Allow option card devices to be configured
+Subject: [PATCH 049/171] bcm2708: Allow option card devices to be configured
  via DT
 
 If the kernel is built with Device Tree support, and if a DT blob
index 674c768..4c108ef 100644 (file)
@@ -1,7 +1,7 @@
-From 7549b31790752c201683aa1d3839eae680b88ba6 Mon Sep 17 00:00:00 2001
+From e5d0825e8b8af3bd83248b5227f819a243dc6e44 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Mon, 13 Apr 2015 18:45:39 +0100
-Subject: [PATCH 050/148] Adding Device Tree support for some RPi audio cards
+Subject: [PATCH 050/171] Adding Device Tree support for some RPi audio cards
 
 ---
  arch/arm/mach-bcm2709/bcm2709.c   | 143 ++++++++++++++++++++++++++++++++++++++
index 6595193..22c8d16 100644 (file)
@@ -1,7 +1,7 @@
-From 98aa7a02be7161b743f1def20715d9c4e21e2a1e Mon Sep 17 00:00:00 2001
+From 9ec46a1866cc3e5f1f672fbf5d8763d28f4eba61 Mon Sep 17 00:00:00 2001
 From: Timo Kokkonen <tjko@iki.fi>
 Date: Wed, 29 Oct 2014 23:30:30 -0700
-Subject: [PATCH 051/148] Added support to reserve/enable a GPIO pin to be used
+Subject: [PATCH 051/171] Added support to reserve/enable a GPIO pin to be used
  from pps-gpio module (LinuxPPS). Enable PPS modules in default config for
  RPi.
 
index 2875735..bd935b2 100644 (file)
@@ -1,7 +1,7 @@
-From 3dc6b954bfb66e359c10a2e6c947b7eb3d9d93b3 Mon Sep 17 00:00:00 2001
+From fd5059a51e8a6e1ee8898d441496902ef25aa5d1 Mon Sep 17 00:00:00 2001
 From: Ryan Coe <bluemrp9@gmail.com>
 Date: Sat, 31 Jan 2015 18:25:49 -0700
-Subject: [PATCH 052/148] Update ds1307 driver for device-tree support
+Subject: [PATCH 052/171] Update ds1307 driver for device-tree support
 
 Signed-off-by: Ryan Coe <bluemrp9@gmail.com>
 ---
index d6a4e07..31498d5 100644 (file)
@@ -1,7 +1,7 @@
-From 175e672036450144fc2e984a22dc26dce271ca82 Mon Sep 17 00:00:00 2001
+From ade319d70297e1258ae65ff733ae56b6ad51ec96 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Fri, 6 Feb 2015 13:50:57 +0000
-Subject: [PATCH 053/148] BCM270x_DT: Add pwr_led, and the required "input"
+Subject: [PATCH 053/171] BCM270x_DT: Add pwr_led, and the required "input"
  trigger
 
 The "input" trigger makes the associated GPIO an input.  This is to support
index 5415e27..c29f189 100644 (file)
@@ -1,7 +1,7 @@
-From 39a6ff9b1ecb74c734606429647a9d783c7504f1 Mon Sep 17 00:00:00 2001
+From 06384c65ff1a351b024c19d4bc0febaf8fcead5d Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Fri, 20 Jun 2014 17:19:27 +0100
-Subject: [PATCH 054/148] bcm2709: Simplify and strip down IRQ handler
+Subject: [PATCH 054/171] bcm2709: Simplify and strip down IRQ handler
 
 ---
  arch/arm/include/asm/entry-macro-multi.S         |   2 +
index 516a280..3faf453 100644 (file)
@@ -1,7 +1,7 @@
-From d34fbe19c2d2c7bb36c2f6432529f8404144a135 Mon Sep 17 00:00:00 2001
+From 461dee6548a8872f4325c2a5b06be89abec33293 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Thu, 12 Feb 2015 11:17:53 +0000
-Subject: [PATCH 055/148] Fix LED "input" trigger implementation for 3.19
+Subject: [PATCH 055/171] Fix LED "input" trigger implementation for 3.19
 
 ---
  drivers/leds/leds-gpio.c             | 10 +++++++++-
index eda2d27..b6a77c2 100644 (file)
@@ -1,7 +1,7 @@
-From 430d332d3e87818f380939f70e9f6ad1d7ee4a56 Mon Sep 17 00:00:00 2001
+From 4c6915169fd00a9e67f75ebb4cd06b857c85e14f Mon Sep 17 00:00:00 2001
 From: notro <notro@tronnes.org>
 Date: Thu, 10 Jul 2014 13:59:47 +0200
-Subject: [PATCH 056/148] pinctrl-bcm2835: Set base to 0 give expected gpio
+Subject: [PATCH 056/171] pinctrl-bcm2835: Set base to 0 give expected gpio
  numbering
 
 Signed-off-by: Noralf Tronnes <notro@tronnes.org>
index e9538c0..02ff6fb 100644 (file)
@@ -1,7 +1,7 @@
-From 6a57f03cd6d659fb9851d9da5c56d2273de441b1 Mon Sep 17 00:00:00 2001
+From 9c59564e8d49582902e182a63eb7874da8bd37ac Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Wed, 4 Feb 2015 10:02:24 +0000
-Subject: [PATCH 057/148] pinctrl-bcm2835: bcm2835_gpio_direction_output must
+Subject: [PATCH 057/171] pinctrl-bcm2835: bcm2835_gpio_direction_output must
  set the value
 
 ---
index bf46ca1..b89350a 100644 (file)
@@ -1,7 +1,7 @@
-From cb824c3bbea4e7a8d970f2b0b6739bb6c739400e Mon Sep 17 00:00:00 2001
+From 713683712ac68c709d93bd0f22b3bfb69a5f6f24 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Tue, 24 Feb 2015 13:40:50 +0000
-Subject: [PATCH 058/148] pinctrl-bcm2835: Fix interrupt handling for GPIOs
+Subject: [PATCH 058/171] pinctrl-bcm2835: Fix interrupt handling for GPIOs
  28-31 and 46-53
 
 Contrary to the documentation, the BCM2835 GPIO controller actually has
index afeeaa2..6fbdd23 100644 (file)
@@ -1,7 +1,7 @@
-From 7b6f8a3a905ffa22aea67b0e0c2ad5551598e01f Mon Sep 17 00:00:00 2001
+From aed134d5558d95d0dd7e9ed9946469df3aaffc88 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Thu, 26 Feb 2015 09:58:22 +0000
-Subject: [PATCH 059/148] pinctrl-bcm2835: Only request the interrupts listed
+Subject: [PATCH 059/171] pinctrl-bcm2835: Only request the interrupts listed
  in the DTB
 
 Although the GPIO controller can generate three interrupts (four counting
index 9e12b3c..85bf00f 100644 (file)
@@ -1,7 +1,7 @@
-From c00a18aab58f8f35d01a203d6a6812e9d9c27aad Mon Sep 17 00:00:00 2001
+From 17b8fc6380028724a3c1e67b132818a3ad9d06d3 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Fri, 27 Feb 2015 15:10:24 +0000
-Subject: [PATCH 060/148] enc28j60: Add device tree compatible string and an
+Subject: [PATCH 060/171] enc28j60: Add device tree compatible string and an
  overlay
 
 ---
index 7eef78d..80daeb3 100644 (file)
@@ -1,7 +1,7 @@
-From 09dce3fc3ac247ed3f09649d03498b50e7bda3f7 Mon Sep 17 00:00:00 2001
+From 45764fde4d7a1651812511d66cb5c888c8f90b1c Mon Sep 17 00:00:00 2001
 From: Waldemar Brodkorb <wbrodkorb@conet.de>
 Date: Wed, 25 Mar 2015 09:26:17 +0100
-Subject: [PATCH 061/148] Add driver for rpi-proto
+Subject: [PATCH 061/171] Add driver for rpi-proto
 
 Forward port of 3.10.x driver from https://github.com/koalo
 We are using a custom board and would like to use rpi 3.18.x
index eb56919..9936686 100644 (file)
@@ -1,7 +1,7 @@
-From 6bebfa1c83eaef7e74130d772af46882136fe7e6 Mon Sep 17 00:00:00 2001
+From 4ca7cab423cf8252fd5c3f70e0e172b08f30eab6 Mon Sep 17 00:00:00 2001
 From: Clive Messer <clive.m.messer@gmail.com>
 Date: Thu, 2 Apr 2015 12:22:55 +0100
-Subject: [PATCH 062/148] Add Device Tree support for RPi-DAC.
+Subject: [PATCH 062/171] Add Device Tree support for RPi-DAC.
 
 ---
  sound/soc/bcm/rpi-dac.c     | 21 +++++++++++++++++++++
index 549b6eb..e7ebcad 100644 (file)
@@ -1,7 +1,7 @@
-From 587f77c07d823708192c2d3d9232d9bdd826b845 Mon Sep 17 00:00:00 2001
+From 634fa57de42fce5ed25f81b2e2b59f8edd64620f Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Mon, 13 Apr 2015 17:16:29 +0100
-Subject: [PATCH 063/148] config: Add default configs
+Subject: [PATCH 063/171] config: Add default configs
 
 ---
  arch/arm/configs/bcm2709_defconfig | 1204 ++++++++++++++++++++++++++++++++++++
index ea05503..3187e92 100644 (file)
@@ -1,7 +1,7 @@
-From 3c0758bef1d20342889a1b8f2a61e1911eef9f5d Mon Sep 17 00:00:00 2001
+From 0bc4283840ab64da84c8853ffe625f85d4c1ab52 Mon Sep 17 00:00:00 2001
 From: Steve Glendinning <steve.glendinning@smsc.com>
 Date: Thu, 19 Feb 2015 18:47:12 +0000
-Subject: [PATCH 064/148] smsx95xx: fix crimes against truesize
+Subject: [PATCH 064/171] smsx95xx: fix crimes against truesize
 
 smsc95xx is adjusting truesize when it shouldn't, and following a recent patch from Eric this is now triggering warnings.
 
index d1847bb..6d40f25 100644 (file)
@@ -1,7 +1,7 @@
-From 167467c3b8bf94b09d40e60267454dacb90ec8ea Mon Sep 17 00:00:00 2001
+From 5339a416569f6f751859ca0534e8571f63e88138 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Fri, 17 Apr 2015 16:58:45 +0100
-Subject: [PATCH 065/148] smsc95xx: Disable turbo mode by default
+Subject: [PATCH 065/171] smsc95xx: Disable turbo mode by default
 
 ---
  drivers/net/usb/smsc95xx.c | 2 +-
index b15e5b8..16cf17d 100644 (file)
@@ -1,7 +1,7 @@
-From 3394c3b27330d5d20e11d02210b4e63a53cd22e0 Mon Sep 17 00:00:00 2001
+From 15a557851ec3e164a5f766543c133b0bbae1e988 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Fri, 17 Apr 2015 19:30:22 +0100
-Subject: [PATCH 066/148] Add blk_pos parameter to mmc multi_io_quirk callback
+Subject: [PATCH 066/171] Add blk_pos parameter to mmc multi_io_quirk callback
 
 ---
  drivers/mmc/card/block.c          | 1 +
index ea60467..185a8c5 100644 (file)
@@ -1,7 +1,7 @@
-From b64bc32acd5a5c13259516a95ae1564ac4b2f1cb Mon Sep 17 00:00:00 2001
+From 9ebff814cb85c6a89d814719ddbd8a173ae00096 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Wed, 29 Apr 2015 17:24:02 +0200
-Subject: [PATCH 067/148] bcm2835: bcm2835_defconfig
+Subject: [PATCH 067/171] bcm2835: bcm2835_defconfig
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index ce87263..5b909c8 100644 (file)
@@ -1,7 +1,7 @@
-From 95bce14bde6d7235c1852cc555624d1f8c110f69 Mon Sep 17 00:00:00 2001
+From ff16594cfebb06205fc70fd8d14de57acae92502 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 1 May 2015 23:00:15 +0200
-Subject: [PATCH 068/148] BCM270x_DT: Add mailbox bcm2708-vcio
+Subject: [PATCH 068/171] BCM270x_DT: Add mailbox bcm2708-vcio
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 0a8bad8..cd13ccd 100644 (file)
@@ -1,7 +1,7 @@
-From 510d194d2dbfafc448fc82f9d74a676f75e96323 Mon Sep 17 00:00:00 2001
+From 899b0e6b639a2f2ae386ef314a25388903fd40c0 Mon Sep 17 00:00:00 2001
 From: Gordon Hollingworth <gordon@raspberrypi.org>
 Date: Tue, 12 May 2015 14:47:56 +0100
-Subject: [PATCH 069/148] rpi-ft5406: Add touchscreen driver for pi LCD display
+Subject: [PATCH 069/171] rpi-ft5406: Add touchscreen driver for pi LCD display
 
 ---
  drivers/input/touchscreen/Kconfig             |   7 +
index 1385d1c..001d028 100644 (file)
@@ -1,7 +1,7 @@
-From e8c84e58d7e57adb7cd10dd471222eb944b3bc62 Mon Sep 17 00:00:00 2001
+From 275c3679e7e3be706d11e5b60a1c75249b108343 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Mon, 13 Oct 2014 11:47:53 +0100
-Subject: [PATCH 070/148] Improve __copy_to_user and __copy_from_user
+Subject: [PATCH 070/171] Improve __copy_to_user and __copy_from_user
  performance
 
 Provide a __copy_from_user that uses memcpy. On BCM2708, use
index dae3d09..1564477 100644 (file)
@@ -1,7 +1,7 @@
-From 628dbab26b97ba2ea43791e2f1587115dc4e224b Mon Sep 17 00:00:00 2001
+From 1236bce6c9de357503fc9a8546288c765a94d00c Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Wed, 27 May 2015 17:22:15 +0100
-Subject: [PATCH 071/148] bcm2835-audio: Create the platform device if the DT
+Subject: [PATCH 071/171] bcm2835-audio: Create the platform device if the DT
  node is disabled
 
 For backwards compatibility, allow the built-in ALSA driver to be enabled
index 086a75b..f637fe9 100644 (file)
@@ -1,7 +1,7 @@
-From 577a59069e50c2c675d7be5c024a1501f24271a4 Mon Sep 17 00:00:00 2001
+From ceb4d98acd8bb3f0934c8519769d4b7258b648dd Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Wed, 3 Jun 2015 12:26:13 +0200
-Subject: [PATCH 072/148] ARM: bcm2835: Set Serial number and Revision
+Subject: [PATCH 072/171] ARM: bcm2835: Set Serial number and Revision
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 7ba1057..f99e1db 100644 (file)
@@ -1,7 +1,7 @@
-From 2b0194651fab870c094638cbda17b36d43353e2e Mon Sep 17 00:00:00 2001
+From 6c898089019ae79598f0d7608cc63a60c3964aca Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Tue, 16 Jun 2015 17:47:27 +0100
-Subject: [PATCH 073/148] platform: Add force_core command line setting to boot
+Subject: [PATCH 073/171] platform: Add force_core command line setting to boot
  from a different core number
 
 ---
index 878bcfb..a32d16d 100644 (file)
@@ -1,7 +1,7 @@
-From 84aca867e5cb35ba0abdcd4a9963a55e64c31c56 Mon Sep 17 00:00:00 2001
+From 70bc0daf8746308750f5f50e2b35780af0600064 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Thu, 18 Jun 2015 17:46:17 +0100
-Subject: [PATCH 074/148] mach-bcm270x: Enable the building of pinctrl-bcm2835
+Subject: [PATCH 074/171] mach-bcm270x: Enable the building of pinctrl-bcm2835
 
 ---
  drivers/pinctrl/Makefile | 1 +
index 18d8e5a..0a3f7f8 100644 (file)
@@ -1,7 +1,7 @@
-From 10b20886a5c2f337e6607f8bd24dff7fdaa1186d Mon Sep 17 00:00:00 2001
+From 4bf502d06dbd4c7f4bb89e3ba1a6306c39d1710a Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Fri, 19 Jun 2015 16:41:39 +0100
-Subject: [PATCH 075/148] BCM270X_DT: Document the i2s-mmap overlay
+Subject: [PATCH 075/171] BCM270X_DT: Document the i2s-mmap overlay
 
 ---
  arch/arm/boot/dts/overlays/README | 6 ++++++
index 859dc03..cf75897 100644 (file)
@@ -1,7 +1,7 @@
-From 23d5b7edb052559fcac15a305d3f665aa432831c Mon Sep 17 00:00:00 2001
+From 16e7c9f047567799b3309217c44ac071b4677c63 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Wed, 17 Jun 2015 11:36:53 +0100
-Subject: [PATCH 076/148] bcm2835-sdhost: Improve error handling and recovery
+Subject: [PATCH 076/171] bcm2835-sdhost: Improve error handling and recovery
 
 1) Expose the hw_reset method to the MMC framework, removing many
    internal calls by the driver.
index ec668de..292cfed 100644 (file)
@@ -1,7 +1,7 @@
-From dc305fc3389b68e35f7ef905884073eb947e52f3 Mon Sep 17 00:00:00 2001
+From 4a41e2e553ae0fe0766aa54108da5661b305ee05 Mon Sep 17 00:00:00 2001
 From: Eric Anholt <eric@anholt.net>
 Date: Thu, 4 Jun 2015 13:11:46 -0700
-Subject: [PATCH 077/148] ARM: bcm2835: Add the Raspberry Pi firmware driver
+Subject: [PATCH 077/171] ARM: bcm2835: Add the Raspberry Pi firmware driver
 
 This gives us a function for making mailbox property channel requests
 of the firmware, which is most notable in that it will let us get and
index 3597bf9..67fb657 100644 (file)
@@ -1,7 +1,7 @@
-From 4c2c484dd79a0a4f56e31d228cebf9735ce1a9ac Mon Sep 17 00:00:00 2001
+From b0c824459ac639a528c6d1cfcbafdb9d88ec303b Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Sun, 22 Mar 2015 13:33:23 +0000
-Subject: [PATCH 078/148] config: Enable ZSMALLOC, ZRAM and PGTABLE_MAPPING
+Subject: [PATCH 078/171] config: Enable ZSMALLOC, ZRAM and PGTABLE_MAPPING
 
 ---
  arch/arm/configs/bcm2709_defconfig | 4 ++++
index 7db1853..ec90d03 100644 (file)
@@ -1,7 +1,7 @@
-From 81aedd19fa0515db2fbb474951be86ca692c394e Mon Sep 17 00:00:00 2001
+From 0d1f25af42a19f652489abfb637a9e05920115fe Mon Sep 17 00:00:00 2001
 From: Gordon Hollingworth <gordon@fiveninjas.com>
 Date: Mon, 22 Jun 2015 16:27:07 +0100
-Subject: [PATCH 079/148] Add rpi-ft5406 overlay Add rpi-ft5406 driver as
+Subject: [PATCH 079/171] Add rpi-ft5406 overlay Add rpi-ft5406 driver as
  module
 
 ---
index b4cedef..8f62474 100644 (file)
@@ -1,7 +1,7 @@
-From 94b88ebdb90e6b3ae6eca18355a2ff318041318f Mon Sep 17 00:00:00 2001
+From 0e76c9361112e7a88d08b3bf3d23c6ba936de01e Mon Sep 17 00:00:00 2001
 From: Gordon Hollingworth <gordon@fiveninjas.com>
 Date: Tue, 23 Jun 2015 09:53:40 +0100
-Subject: [PATCH 080/148] Fix driver detection failure Check that the buffer
+Subject: [PATCH 080/171] Fix driver detection failure Check that the buffer
  response is non-zero meaning the touchscreen was detected
 
 ---
index 9059931..17220c9 100644 (file)
@@ -1,7 +1,7 @@
-From 5c2ff90c5b6087442f8ba6a9f7bc6557b6db62e8 Mon Sep 17 00:00:00 2001
+From 1bf89f45672e473ad8b24207714b1dad0cb6eaf9 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Tue, 23 Jun 2015 13:24:01 +0100
-Subject: [PATCH 081/148] config: Enable 8250 serial port
+Subject: [PATCH 081/171] config: Enable 8250 serial port
 
 ---
  arch/arm/configs/bcm2709_defconfig | 7 +++++++
index cddc679..28f25d3 100644 (file)
@@ -1,7 +1,7 @@
-From 2272606d5aee8fc6f420f3edce8c0ef9f11dc1f0 Mon Sep 17 00:00:00 2001
+From dd5ba35cd8aa9cda437ea874aaf3f21c7397fb54 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Tue, 23 Jun 2015 14:10:58 +0100
-Subject: [PATCH 082/148] config: Enable POWER_RESET_GPIO
+Subject: [PATCH 082/171] config: Enable POWER_RESET_GPIO
 
 ---
  arch/arm/configs/bcm2709_defconfig | 2 ++
index e035f4b..d5518fe 100644 (file)
@@ -1,7 +1,7 @@
-From 9fa64d590a4f206f604b4b78bf61fc17c94e1d5d Mon Sep 17 00:00:00 2001
+From 4e5881da660ecbdb759d1730defdc091999b1893 Mon Sep 17 00:00:00 2001
 From: popcornmix <popcornmix@gmail.com>
 Date: Fri, 26 Jun 2015 17:37:38 +0100
-Subject: [PATCH 083/148] bcm2708-vcio: Remove restriction of only a single
+Subject: [PATCH 083/171] bcm2708-vcio: Remove restriction of only a single
  instance being open
 
 We need more than one process to be able to use mailbox interface (e.g. HW cursor in fbturbo and hello_fft).
index d6276ce..f8deea0 100644 (file)
@@ -1,7 +1,7 @@
-From de3f225e647da316e52ed34b4129a6b512f2892f Mon Sep 17 00:00:00 2001
+From 4a613efefd7ee59661a1f73fd9ebd5656ed33bd2 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Fri, 26 Jun 2015 08:39:19 +0100
-Subject: [PATCH 084/148] BCM270X_DT: Create a "core" clock, use it for SPI and
+Subject: [PATCH 084/171] BCM270X_DT: Create a "core" clock, use it for SPI and
  sdhost
 
 ---
index be3be78..694e68a 100644 (file)
@@ -1,7 +1,7 @@
-From 016d0929fffe98d94188cff48aa4454e78942855 Mon Sep 17 00:00:00 2001
+From 124d2c655233f0b53ec262321586f0500f4eb610 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Wed, 24 Jun 2015 09:24:31 +0100
-Subject: [PATCH 085/148] BCM270X_DT: Add MCP7941X to i2c-rtc overlay
+Subject: [PATCH 085/171] BCM270X_DT: Add MCP7941X to i2c-rtc overlay
 
 ---
  arch/arm/boot/dts/overlays/README              | 3 +++
index bc5eab3..d5fdd54 100644 (file)
@@ -1,7 +1,7 @@
-From c9695bc0ae507aceb723b385eaf8733b9b8a3c45 Mon Sep 17 00:00:00 2001
+From f820aa6457e3c07a1a994a68c67e044810c482ae Mon Sep 17 00:00:00 2001
 From: P33M <P33M@github.com>
 Date: Wed, 24 Jun 2015 11:23:06 +0100
-Subject: [PATCH 086/148] dts/overlays: document DHT11 overlay
+Subject: [PATCH 086/171] dts/overlays: document DHT11 overlay
 
 ---
  arch/arm/boot/dts/overlays/README | 8 ++++++++
index 04e3c58..d3395d0 100644 (file)
@@ -1,7 +1,7 @@
-From f8d5316066987cfd355c2da083a411ff41515ed4 Mon Sep 17 00:00:00 2001
+From 54167a0f6d3ccb6a507eb270a52d17ef9f3723ec Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Thu, 25 Jun 2015 12:16:11 +0100
-Subject: [PATCH 087/148] gpio-poweroff: Allow it to work on Raspberry Pi
+Subject: [PATCH 087/171] gpio-poweroff: Allow it to work on Raspberry Pi
 
 The Raspberry Pi firmware manages the power-down and reboot
 process. To do this it installs a pm_power_off handler, causing
index c9b36ca..099a626 100644 (file)
@@ -1,7 +1,7 @@
-From 23fdc62943363c31ca68bde9e7598fcee9b27cbf Mon Sep 17 00:00:00 2001
+From afb4d6a911d50ca4a64371a64650c4a89181fa70 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Wed, 17 Jun 2015 17:10:40 +0100
-Subject: [PATCH 088/148] BCM270x_DT: Default Compute Module i2c, i2s and spi
+Subject: [PATCH 088/171] BCM270x_DT: Default Compute Module i2c, i2s and spi
  support
 
 ---
index b7508a2..0e1782c 100644 (file)
@@ -1,7 +1,7 @@
-From e9b92372565ede53c177c0edb5417d59c5c5b732 Mon Sep 17 00:00:00 2001
+From 0bdd14471d586c546f3bfcbf062fbdbe92500aff Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Mon, 22 Jun 2015 14:21:55 +0100
-Subject: [PATCH 089/148] BCM270X_DT: Sort nodes by bus address, and
+Subject: [PATCH 089/171] BCM270X_DT: Sort nodes by bus address, and
  consolidate aliases
 
 ---
index 44b9b81..dcd57fb 100644 (file)
@@ -1,7 +1,7 @@
-From fe34b48346183c588118ffe74360b2bc341a51e4 Mon Sep 17 00:00:00 2001
+From 779a2505afac554e6ebb5d0cd3979df9a10fbba9 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Mon, 22 Jun 2015 14:23:03 +0100
-Subject: [PATCH 090/148] i2c-bcm2708/BCM270X_DT: Add support for I2C2
+Subject: [PATCH 090/171] i2c-bcm2708/BCM270X_DT: Add support for I2C2
 
 The third I2C bus (I2C2) is normally reserved for HDMI use. Careless
 use of this bus can break an attached display - use with caution.
index a67d642..71648df 100644 (file)
@@ -1,7 +1,7 @@
-From 66fd44f83b2525c3ced483c041b5d23d6f0c8a9b Mon Sep 17 00:00:00 2001
+From d4f2ba8b1bb04c7d98c438d1b0fa698c3d15c377 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Mon, 29 Jun 2015 12:14:02 +0100
-Subject: [PATCH 091/148] BCM270X_DT: Correct the lirc-rpi overlay
+Subject: [PATCH 091/171] BCM270X_DT: Correct the lirc-rpi overlay
  documentation
 
 The polarity of the "sense" parameter was inverted with respect to reality.
index f67ba09..106415e 100644 (file)
@@ -1,7 +1,7 @@
-From cf43a49e4ace4cbf98e135db16d47b4ee1378273 Mon Sep 17 00:00:00 2001
+From da37f481a3f0b884c3ef6dc2a8d57beb85bc9978 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Thu, 25 Jun 2015 08:47:09 +0100
-Subject: [PATCH 092/148] bcm2835-sdhost: Further improve overclock back-off
+Subject: [PATCH 092/171] bcm2835-sdhost: Further improve overclock back-off
 
 ---
  drivers/mmc/host/bcm2835-sdhost.c | 144 +++++++++++++++++++++-----------------
index 248f524..9241192 100644 (file)
@@ -1,7 +1,7 @@
-From 7d7e3c816b4ea9993e03d6ca1c4f4093572b25a8 Mon Sep 17 00:00:00 2001
+From 1c2ab70602031acf8dee59ab16f46a24b71f5fb0 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Tue, 30 Jun 2015 10:28:59 +0100
-Subject: [PATCH 093/148] i2c-bcm2708: Increase timeouts to allow larger
+Subject: [PATCH 093/171] i2c-bcm2708: Increase timeouts to allow larger
  transfers
 
 Use the timeout value provided by the I2C_TIMEOUT ioctl when waiting
index ac7cb2f..01257ed 100644 (file)
@@ -1,7 +1,7 @@
-From bb1fa51567d23d5ff27e4011257ee25bb97675d8 Mon Sep 17 00:00:00 2001
+From 1afcb794cb00c4fffa69f52b303970d785ace445 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Tue, 30 Jun 2015 10:33:52 +0100
-Subject: [PATCH 094/148] spi-bcm2708: Increase timeout from 150ms to 1s
+Subject: [PATCH 094/171] spi-bcm2708: Increase timeout from 150ms to 1s
 
 See: https://github.com/raspberrypi/linux/issues/260
 ---
index 4e1ba94..e43cdb4 100644 (file)
@@ -1,7 +1,7 @@
-From 83a08affef9c792cbb0e986909e734ef9932a12e Mon Sep 17 00:00:00 2001
+From 569d970e387865052fe7e4c3dc0707efeb916af8 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Mon, 15 Jun 2015 09:59:38 +0100
-Subject: [PATCH 095/148] bcm2708-spi: Don't use static pin configuration with
+Subject: [PATCH 095/171] bcm2708-spi: Don't use static pin configuration with
  DT
 
 Also remove superfluous error checking - the SPI framework ensures the
index eadaeae..8c483cc 100644 (file)
@@ -1,7 +1,7 @@
-From 93ad20e6fe455b39b7bc0c970435a414ca49f09c Mon Sep 17 00:00:00 2001
+From 4d8a21adf20d84a9d5792e2f1fba32ecdd33872a Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Mon, 15 Jun 2015 10:10:59 +0100
-Subject: [PATCH 096/148] bcm2708-i2s: Don't use static pin configuration with
+Subject: [PATCH 096/171] bcm2708-i2s: Don't use static pin configuration with
  DT
 
 ---
index 0872eef..8566584 100644 (file)
@@ -1,7 +1,7 @@
-From 376c2c5f17f41d25e0da6c42544bd337b219af82 Mon Sep 17 00:00:00 2001
+From 3e379748c62a7b9b70d790bdd192ac9a3a8b6586 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Tue, 30 Jun 2015 14:12:42 +0100
-Subject: [PATCH 097/148] serial: 8250: Don't crash when nr_uarts is 0
+Subject: [PATCH 097/171] serial: 8250: Don't crash when nr_uarts is 0
 
 ---
  drivers/tty/serial/8250/8250_core.c | 2 ++
index 27e2440..ccf6835 100644 (file)
@@ -1,7 +1,7 @@
-From 00a68898d386e94e95cadca325b152b2094909d7 Mon Sep 17 00:00:00 2001
+From 98e84cdbce80fe8a8177fb1f42800af76b3da9ac Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Fri, 26 Jun 2015 08:50:11 +0100
-Subject: [PATCH 098/148] BCM270X_DT: Add overlay to enable uart1
+Subject: [PATCH 098/171] BCM270X_DT: Add overlay to enable uart1
 
 N.B. The UART1 clock is derived from the core clock. The firmware
 will update clock-frequency if core_freq is set, but be aware
index 90739e2..f414d10 100644 (file)
@@ -1,7 +1,7 @@
-From f2758fa42f4dc6a584648ce4fdaeab1ba2956cab Mon Sep 17 00:00:00 2001
+From 9ba47405b715872da8e0704767563da5f377f59a Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Wed, 24 Jun 2015 14:10:44 +0100
-Subject: [PATCH 099/148] spi-bcm2835: Support pin groups other than 7-11
+Subject: [PATCH 099/171] spi-bcm2835: Support pin groups other than 7-11
 
 The spi-bcm2835 driver automatically uses GPIO chip-selects due to
 some unreliability of the native ones. In doing so it chooses the
index 105819e..905328d 100644 (file)
@@ -1,7 +1,7 @@
-From 7b204cc61246f8d36e5c26782ed6db027ece669c Mon Sep 17 00:00:00 2001
+From dcdcf9bbe4b8129ec95d3b49469512df565575cb Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Tue, 30 Jun 2015 17:37:38 +0100
-Subject: [PATCH 100/148] BCM270X_DT: Change pio_limit of sdhost driver to 1
+Subject: [PATCH 100/171] BCM270X_DT: Change pio_limit of sdhost driver to 1
 
 ---
  arch/arm/boot/dts/overlays/sdhost-overlay.dts | 2 +-
index 79d40ec..d034a50 100644 (file)
@@ -1,7 +1,7 @@
-From 7b1af4332860714520c332a83e05654a5cee1478 Mon Sep 17 00:00:00 2001
+From c4b4cd3f5e0c6be67124fac4a7bbb5fb45de616c Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Wed, 1 Jul 2015 12:51:52 +0100
-Subject: [PATCH 101/148] bcm2835-sdhost: Clear HBLC for PIO mode
+Subject: [PATCH 101/171] bcm2835-sdhost: Clear HBLC for PIO mode
 
 Also update pio_limit default in overlay README.
 ---
index 19efe86..fc898e6 100644 (file)
@@ -1,7 +1,7 @@
-From ee7ce47e28ef800120d1d52bf2aa72cb26192855 Mon Sep 17 00:00:00 2001
+From 078b8d9d1396bfb7c39b0e6a083ebf4818175f22 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Fri, 3 Jul 2015 12:21:01 +0100
-Subject: [PATCH 102/148] BCM270X_DT: I2S needs function Alt2
+Subject: [PATCH 102/171] BCM270X_DT: I2S needs function Alt2
 
 ---
  arch/arm/boot/dts/bcm2708-rpi-b-plus.dts | 2 +-
index 11e1f0f..ba5531e 100644 (file)
@@ -1,7 +1,7 @@
-From 662a767720003f3283d5222c32e2084b10868069 Mon Sep 17 00:00:00 2001
+From 9b4cdc0c703e872255cd735f4ab4d7be10ab5494 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 26 Jun 2015 14:16:15 +0200
-Subject: [PATCH 103/148] configs: Incorporate v4.1 dependency changes
+Subject: [PATCH 103/171] configs: Incorporate v4.1 dependency changes
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 4e5d9c5..cc7e464 100644 (file)
@@ -1,7 +1,7 @@
-From c08762271e447e9a58c5d8bec603aabfd5b0b016 Mon Sep 17 00:00:00 2001
+From 6b3b5732e77d6a36e9b09b59ccac0f63f2fa3ea3 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Fri, 3 Jul 2015 15:47:33 +0100
-Subject: [PATCH 104/148] bcmrpi_defconfigs: Add SND_SOC_WM8804_I2C (for
+Subject: [PATCH 104/171] bcmrpi_defconfigs: Add SND_SOC_WM8804_I2C (for
  HifiBerry Digi)
 
 4.1 has split out support for the I2C and SPI variants, so it now
index de03d25..19d3762 100644 (file)
@@ -1,7 +1,7 @@
-From b15b535e7efb3bf2cb60f4194fa2503203d7ace5 Mon Sep 17 00:00:00 2001
+From d55d55f560367a7392b531130b87d15ec12576ec Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Sat, 4 Jul 2015 19:55:23 +0100
-Subject: [PATCH 105/148] squash: BCM270X_DT: I2S only needs Alt2 on 28-31
+Subject: [PATCH 105/171] squash: BCM270X_DT: I2S only needs Alt2 on 28-31
 
 See: https://github.com/raspberrypi/linux/issues/1046
 ---
index 81c0242..110d49b 100644 (file)
@@ -1,7 +1,7 @@
-From cc9c5f1595655eee24d4e08d86a1760dc8c7ef36 Mon Sep 17 00:00:00 2001
+From fa6257d47be3fff4cf93de15a0bb59223d6a81b5 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Wed, 8 Jul 2015 14:48:57 +0100
-Subject: [PATCH 106/148] vchiq_arm: Two cacheing fixes
+Subject: [PATCH 106/171] vchiq_arm: Two cacheing fixes
 
 1) Make fragment size vary with cache line size
 Without this patch, non-cache-line-aligned transfers may corrupt
index cfeaa32..1f949b9 100644 (file)
@@ -1,7 +1,7 @@
-From ee874bae0042910abccd54b90e411a852b4569ef Mon Sep 17 00:00:00 2001
+From 4cbd4845d011a08deb7d68956931f26011f3221e Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Tue, 30 Jun 2015 09:10:36 +0100
-Subject: [PATCH 107/148] BCM270X_DT: Overlay for the Fen Logic VGA666 board
+Subject: [PATCH 107/171] BCM270X_DT: Overlay for the Fen Logic VGA666 board
 
 The VGA666 board requires GPIOs 2-21 (so no I2C or UART). Using the
 overlay (instead of a custom dt-blob.bin) has the advantage that it will
index d161740..ea88a5f 100644 (file)
@@ -1,7 +1,7 @@
-From ecc55e30f8eab5fd63c50ff3276ccb77d7d0ce76 Mon Sep 17 00:00:00 2001
+From e3159f966a0094f895f488e799d697110f121f8c Mon Sep 17 00:00:00 2001
 From: petit-miner <cooker5000@gmail.com>
 Date: Fri, 10 Jul 2015 13:59:18 +0200
-Subject: [PATCH 108/148] Added support for 2 mcp2515 CAN Bus IC
+Subject: [PATCH 108/171] Added support for 2 mcp2515 CAN Bus IC
 
 See: https://github.com/raspberrypi/linux/issues/1018
      https://github.com/raspberrypi/linux/pull/1049
index 12818ce..ea455e2 100644 (file)
@@ -1,7 +1,7 @@
-From 97b130d04ed860f89812755c8d576a548b13bd3b Mon Sep 17 00:00:00 2001
+From bde9f0667ad91c2846cd1d392b5a653c196d0834 Mon Sep 17 00:00:00 2001
 From: Lubomir Rintel <lkundrak@v3.sk>
 Date: Tue, 5 May 2015 13:27:45 -0700
-Subject: [PATCH 109/148] mailbox: Enable BCM2835 mailbox support
+Subject: [PATCH 109/171] mailbox: Enable BCM2835 mailbox support
 
 This mailbox driver provides a single mailbox channel to write 32-bit
 values to the VPU and get a 32-bit response.  The Raspberry Pi
index 98a12c8..57d5b6a 100644 (file)
@@ -1,7 +1,7 @@
-From 38a0a5c357245cfe2b359277bc38509fa05c268d Mon Sep 17 00:00:00 2001
+From 012a954f49e5f22ead03df42c2775e2937824462 Mon Sep 17 00:00:00 2001
 From: Eric Anholt <eric@anholt.net>
 Date: Wed, 13 May 2015 13:10:32 -0700
-Subject: [PATCH 110/148] mailbox/bcm2835: Fix mailbox full detection.
+Subject: [PATCH 110/171] mailbox/bcm2835: Fix mailbox full detection.
 
 With the VC reader blocked and the ARM writing, MAIL0_STA reads empty
 permanently while MAIL1_STA goes from empty (0x40000000) to non-empty
index 3321621..be65103 100644 (file)
@@ -1,7 +1,7 @@
-From 593a12b7b0e1daaf0cd335a309bd18e68502daab Mon Sep 17 00:00:00 2001
+From f4e7bad1fa582b3e9890bc0a2de7696c7df5b9b1 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 26 Jun 2015 14:19:30 +0200
-Subject: [PATCH 111/148] mailbox: bcm2835: Support ARCH_BCM270x
+Subject: [PATCH 111/171] mailbox: bcm2835: Support ARCH_BCM270x
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 4a456a9..9cee887 100644 (file)
@@ -1,7 +1,7 @@
-From fe1043e681b28b6fb83c3ce49b3f15e783e84569 Mon Sep 17 00:00:00 2001
+From b1dd56c4c3f12e51f68618b1ffe80e6556bfa1bb Mon Sep 17 00:00:00 2001
 From: Eric Anholt <eric@anholt.net>
 Date: Thu, 4 Jun 2015 13:11:47 -0700
-Subject: [PATCH 112/148] ARM: bcm2835: Add the firmware driver information to
+Subject: [PATCH 112/171] ARM: bcm2835: Add the firmware driver information to
  the RPi DT
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
index 5338973..44fe175 100644 (file)
@@ -1,7 +1,7 @@
-From e7866e5a684f398a01abe84ceaebe0411976f3e9 Mon Sep 17 00:00:00 2001
+From 1bc4dbe1171d83354e7d5148181eeee5f035ae77 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 26 Jun 2015 14:21:20 +0200
-Subject: [PATCH 113/148] firmware: bcm2835: Add missing property tags
+Subject: [PATCH 113/171] firmware: bcm2835: Add missing property tags
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 66d5698..4066682 100644 (file)
@@ -1,7 +1,7 @@
-From 6f0c28f26878f1d675dd660cfaed32822817d4d8 Mon Sep 17 00:00:00 2001
+From 557c84f3819fd730a006af48f582bc7afd2a7bf6 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 26 Jun 2015 14:25:01 +0200
-Subject: [PATCH 114/148] firmware: bcm2835: Support ARCH_BCM270x
+Subject: [PATCH 114/171] firmware: bcm2835: Support ARCH_BCM270x
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index be705fe..bf620da 100644 (file)
@@ -1,7 +1,7 @@
-From 40aa3c4f0c430cd5c574498f4d1d5e9f0bc1cf11 Mon Sep 17 00:00:00 2001
+From cb10982feb7da52315426d1a9980d49482071bb0 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 26 Jun 2015 14:26:10 +0200
-Subject: [PATCH 115/148] firmware: bcm2835: Support legacy mailbox API
+Subject: [PATCH 115/171] firmware: bcm2835: Support legacy mailbox API
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 22fe21b..f871102 100644 (file)
@@ -1,7 +1,7 @@
-From 9b55578b9e72480f02b317b323b016b250554863 Mon Sep 17 00:00:00 2001
+From b04146cc3b6a76d6ab67068803a86ffdc8dcea0b Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 26 Jun 2015 14:27:06 +0200
-Subject: [PATCH 116/148] char: broadcom: Add vcio module
+Subject: [PATCH 116/171] char: broadcom: Add vcio module
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index b13113c..dbae603 100644 (file)
@@ -1,7 +1,7 @@
-From 96b48f6ba14e6e422f1c1d8a4e193ac1e9922c37 Mon Sep 17 00:00:00 2001
+From 50b7d8253ebbadbe4358f76f7ace99da821bd14b Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 26 Jun 2015 14:37:19 +0200
-Subject: [PATCH 117/148] BCM270x: Switch to firmware driver
+Subject: [PATCH 117/171] BCM270x: Switch to firmware driver
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 436e14e..b9c356c 100644 (file)
@@ -1,7 +1,7 @@
-From 8b67d17c70ce88f2ed14aec439e457accce0b37a Mon Sep 17 00:00:00 2001
+From d3412121ceefb00ff13d2f353bd6f5f15c2c3629 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 26 Jun 2015 14:39:21 +0200
-Subject: [PATCH 118/148] bcm2835: Switch to firmware driver
+Subject: [PATCH 118/171] bcm2835: Switch to firmware driver
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index d95e564..3dd44c0 100644 (file)
@@ -1,14 +1,14 @@
-From 35f9c869b55fa358e089d4394205082c5c825a27 Mon Sep 17 00:00:00 2001
+From ea390b711a1c1ceaf30d7a44a6b1eb59249456b6 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <pelwell@users.noreply.github.com>
 Date: Mon, 13 Jul 2015 13:25:31 +0100
-Subject: [PATCH 119/148] Merge pull request #1059 from pelwell/rpi-4.0.y
+Subject: [PATCH 119/171] Merge pull request #1059 from pelwell/rpi-4.0.y
 
 w1_therm: Back-port locking improvements from 4.2-rc1
 ---
- Documentation/ABI/stable/sysfs-driver-w1_ds28ea00 |   6 +
- Documentation/w1/slaves/w1_therm                  |  11 +-
- drivers/w1/slaves/w1_therm.c                      | 162 ++++++++++++++++++++--
- 3 files changed, 163 insertions(+), 16 deletions(-)
+ Documentation/ABI/stable/sysfs-driver-w1_ds28ea00 |   6 ++
+ Documentation/w1/slaves/w1_therm                  |  11 ++-
+ drivers/w1/slaves/w1_therm.c                      | 102 +++++++++++++++++++++-
+ 3 files changed, 117 insertions(+), 2 deletions(-)
  create mode 100644 Documentation/ABI/stable/sysfs-driver-w1_ds28ea00
 
 --- /dev/null
index f512ddf..4a0136c 100644 (file)
@@ -1,7 +1,7 @@
-From dd3754783c478d9d4bb5cfc760194362ad195feb Mon Sep 17 00:00:00 2001
+From bf0e599855469ed27afeb8be37b7af8abe12610b Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Tue, 14 Jul 2015 11:11:51 +0100
-Subject: [PATCH 120/148] vchiq_arm: Sort out the vmalloc case
+Subject: [PATCH 120/171] vchiq_arm: Sort out the vmalloc case
 
 See: https://github.com/raspberrypi/linux/issues/1055
 ---
index d662445..5db9588 100644 (file)
@@ -1,7 +1,7 @@
-From df38d99d8ba198b91a60b770a2e6bc8fa8a444df Mon Sep 17 00:00:00 2001
+From dcf79d117cc9268217f75b59eda5cfdd9c4a9308 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Tue, 14 Jul 2015 10:26:09 +0100
-Subject: [PATCH 121/148] spidev: Add "spidev" compatible string to silence
+Subject: [PATCH 121/171] spidev: Add "spidev" compatible string to silence
  warning
 
 See: https://github.com/raspberrypi/linux/issues/1054
index 59c1c7d..1df76e8 100644 (file)
@@ -1,7 +1,7 @@
-From 910b89499e2db97931afa64b0db1b7d7640af3db Mon Sep 17 00:00:00 2001
+From 78ec7eb29bc516a9489684ff09d716823c9707ea Mon Sep 17 00:00:00 2001
 From: Phil Elwell <pelwell@users.noreply.github.com>
 Date: Tue, 14 Jul 2015 14:32:47 +0100
-Subject: [PATCH 122/148] Merge pull request #1043 from XECDesign/sense-4.0
+Subject: [PATCH 122/171] Merge pull request #1043 from XECDesign/sense-4.0
 
 mfd: Add Raspberry Pi Sense HAT core driver
 ---
index fa803ba..9fcbc9f 100644 (file)
@@ -1,7 +1,7 @@
-From b0482b8fe870cfc43e4f9a00470b267f27900ce7 Mon Sep 17 00:00:00 2001
+From eb6239a15073913d0e1bdef984f0fc0196d724e6 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Wed, 15 Jul 2015 13:46:08 +0100
-Subject: [PATCH 123/148] leds-gpio: Implement the brightness_get method
+Subject: [PATCH 123/171] leds-gpio: Implement the brightness_get method
 
 The power LED uses some clever logic that means it is driven
 by a voltage measuring circuit when configured as input, otherwise
index a952b1f..440188c 100644 (file)
@@ -1,7 +1,7 @@
-From 176730440c132bf74f6f7a7e34b6b9b087e1b55f Mon Sep 17 00:00:00 2001
+From 641ac228b60a8f279a82302bd21434241c8b5253 Mon Sep 17 00:00:00 2001
 From: Robert Tiemann <rtie@gmx.de>
 Date: Fri, 17 Jul 2015 09:50:55 +0200
-Subject: [PATCH 124/148] dmaengine: bcm2708-dmaengine: Fix memory leak when
+Subject: [PATCH 124/171] dmaengine: bcm2708-dmaengine: Fix memory leak when
  stopping a running transfer
 
 ---
index 4b78c05..4a6631e 100644 (file)
@@ -1,7 +1,7 @@
-From 7906fa935ee088391c6a3092374e477f51e799cd Mon Sep 17 00:00:00 2001
+From 5a632aea29485cab29a3882cdef4840bfea0dfad Mon Sep 17 00:00:00 2001
 From: Robert Tiemann <rtie@gmx.de>
 Date: Mon, 20 Jul 2015 11:01:13 +0200
-Subject: [PATCH 125/148] BCM270X_DT: Fix I2S register map
+Subject: [PATCH 125/171] BCM270X_DT: Fix I2S register map
 
 ---
  arch/arm/boot/dts/bcm2708_common.dtsi | 4 ++--
index 1bafc82..d3ec496 100644 (file)
@@ -1,7 +1,7 @@
-From f0618c918f9debe6e75a6b17d06268f264166965 Mon Sep 17 00:00:00 2001
+From 717b0ba4c783ec760698843cfaca991917a6b018 Mon Sep 17 00:00:00 2001
 From: Robert Tiemann <rtie@gmx.de>
 Date: Mon, 20 Jul 2015 11:01:25 +0200
-Subject: [PATCH 126/148] BCM2835_DT: Fix I2S register map
+Subject: [PATCH 126/171] BCM2835_DT: Fix I2S register map
 
 ---
  Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt   | 4 ++--
index e47fb73..af4a02d 100644 (file)
@@ -1,7 +1,7 @@
-From 167dc102f310fd58c9b5143f8a5c4cce65d51b69 Mon Sep 17 00:00:00 2001
+From 5009252fba13a69b9962a8ac38b909c60ea1af17 Mon Sep 17 00:00:00 2001
 From: David Frey <david.frey@sensirion.com>
 Date: Tue, 14 Jul 2015 15:57:36 +0200
-Subject: [PATCH 127/148] config: Enable SHT drivers for raspberry pi
+Subject: [PATCH 127/171] config: Enable SHT drivers for raspberry pi
 
 The SHT temperature and humidity sensors are often used in weather
 station projects.
index 0d2796c..f4c92d0 100644 (file)
@@ -1,7 +1,7 @@
-From 6c9ebd30d2a1c6ec36515b45235be02e61ced87e Mon Sep 17 00:00:00 2001
+From a5a93adfe8a9a39708386e7655e0a34c0a54046b Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Mon, 20 Jul 2015 14:07:14 +0100
-Subject: [PATCH 128/148] BCM270X_DT: Correct typo in overlays/README
+Subject: [PATCH 128/171] BCM270X_DT: Correct typo in overlays/README
 
 ---
  arch/arm/boot/dts/overlays/README | 2 +-
index 9f392cc..c4787c9 100644 (file)
@@ -1,7 +1,7 @@
-From fc3fb877e0c097321d9d8a2a4cb10d5c0d2fc6a0 Mon Sep 17 00:00:00 2001
+From a87e7abc9818c18b1fddd8748f2d5911392e9f6b Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Mon, 20 Jul 2015 10:53:26 +0100
-Subject: [PATCH 129/148] bcm2835-sdhost: Add the ERASE capability
+Subject: [PATCH 129/171] bcm2835-sdhost: Add the ERASE capability
 
 See: https://github.com/raspberrypi/linux/issues/1076
 ---
index 5e738bd..9c4384c 100644 (file)
@@ -1,7 +1,7 @@
-From 34b107a036211e45ce06d2c1406fab77dc4ec3c7 Mon Sep 17 00:00:00 2001
+From 0bb775b407dab3bab972663ef47dde38b0d34c24 Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Mon, 20 Jul 2015 17:32:18 +0100
-Subject: [PATCH 130/148] bcm2835-sdhost: Ignore CRC7 for MMC CMD1
+Subject: [PATCH 130/171] bcm2835-sdhost: Ignore CRC7 for MMC CMD1
 
 It seems that the sdhost interface returns CRC7 errors for CMD1,
 which is the MMC-specific SEND_OP_COND. Returning these errors to
index a35823d..4322f8d 100644 (file)
@@ -1,7 +1,7 @@
-From c9510f8f7162eb3f377ea9895cb6296cc81c0158 Mon Sep 17 00:00:00 2001
+From 35be60b77f30a3714e5cd42108bd819253fa12cd Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Mon, 20 Jul 2015 14:48:21 +0100
-Subject: [PATCH 131/148] BCM270X_DT: Add unit address to gpio node name
+Subject: [PATCH 131/171] BCM270X_DT: Add unit address to gpio node name
 
 ---
  arch/arm/boot/dts/bcm2708_common.dtsi | 2 +-
index 3c1f399..237db4a 100644 (file)
@@ -1,7 +1,7 @@
-From c9dce515346664285992ebac03a5fd9d63e9a964 Mon Sep 17 00:00:00 2001
+From 08b8ff16578a47be720dd09cb7324ff3e40c3caf Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Fri, 24 Jul 2015 10:36:32 +0100
-Subject: [PATCH 132/148] BCM270X_DT: Use i2c_arm for rtc and bmp085 overlays
+Subject: [PATCH 132/171] BCM270X_DT: Use i2c_arm for rtc and bmp085 overlays
 
 ---
  arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts | 2 +-
index abbc143..6d83fd4 100644 (file)
@@ -1,7 +1,7 @@
-From 1126ca25bb63e74218db91e9abbe6bb4ba712f99 Mon Sep 17 00:00:00 2001
+From 95e74bed83011c25340e8d1b11d5dc95e8ff9bbc Mon Sep 17 00:00:00 2001
 From: Phil Elwell <phil@raspberrypi.org>
 Date: Fri, 24 Jul 2015 12:11:31 +0100
-Subject: [PATCH 133/148] BCM2708_DT: CM dtparams for audio, watchdog and RNG
+Subject: [PATCH 133/171] BCM2708_DT: CM dtparams for audio, watchdog and RNG
 
 ---
  arch/arm/boot/dts/bcm2708-rpi-cm.dtsi | 8 ++++----
index 5bf531c..8030328 100644 (file)
@@ -1,7 +1,7 @@
-From e3508264148f91aceb5f557d45eb29986c522f1e Mon Sep 17 00:00:00 2001
+From 91bfc5bf3bfb7830c1c35f8be90dc8c22156502d Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Mon, 20 Jul 2015 12:13:18 +0200
-Subject: [PATCH 134/148] vchiq: Use firmware API
+Subject: [PATCH 134/171] vchiq: Use firmware API
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 6bb294b..395e896 100644 (file)
@@ -1,7 +1,7 @@
-From da339e29c12fc20d13610ed458082104b12e48f1 Mon Sep 17 00:00:00 2001
+From aaff8adb4df57975a4a1334bb274ffce42c071e2 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Mon, 20 Jul 2015 12:17:10 +0200
-Subject: [PATCH 135/148] thermal: bcm2835: Use firmware API
+Subject: [PATCH 135/171] thermal: bcm2835: Use firmware API
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 41a9a85..0af25f3 100644 (file)
@@ -1,7 +1,7 @@
-From b5f2f604151dff8277c10cca8d3eab0ae9b55373 Mon Sep 17 00:00:00 2001
+From 020e1720dc926c944479da4ce0edd7508bc82d21 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Mon, 20 Jul 2015 12:18:36 +0200
-Subject: [PATCH 136/148] cpufreq: bcm2835: Use firmware API
+Subject: [PATCH 136/171] cpufreq: bcm2835: Use firmware API
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index d786ebd..c978c09 100644 (file)
@@ -1,7 +1,7 @@
-From b436501db9136833c1e213d6efdb3b1c6e711bf1 Mon Sep 17 00:00:00 2001
+From f220fe12bab49d45cde9e00cd4aaf2f9bbc5ff5f Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Mon, 20 Jul 2015 12:20:59 +0200
-Subject: [PATCH 137/148] fbdev: bcm2708: Use firmware API
+Subject: [PATCH 137/171] fbdev: bcm2708: Use firmware API
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index dbc387c..3449868 100644 (file)
@@ -1,7 +1,7 @@
-From 9be804b336947fd31728a74a34c7febf44d6b8a5 Mon Sep 17 00:00:00 2001
+From 687c5493ee74d58ee1084d3e01a534a1329f5f70 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Mon, 20 Jul 2015 12:27:17 +0200
-Subject: [PATCH 138/148] bcm2835: Add firmware property to affected devices
+Subject: [PATCH 138/171] bcm2835: Add firmware property to affected devices
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index eabd2cb..4da7d90 100644 (file)
@@ -1,7 +1,7 @@
-From 193a0cacacc91b8c5c3224d0090f342ccd64f45c Mon Sep 17 00:00:00 2001
+From 1c445d2c28dcbd90be62624bd9ae9bd88e564b96 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Tue, 21 Jul 2015 19:09:39 +0200
-Subject: [PATCH 139/148] rpi-ft5406: Use firmware API
+Subject: [PATCH 139/171] rpi-ft5406: Use firmware API
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index c29e9c2..0d68274 100644 (file)
@@ -1,7 +1,7 @@
-From 062df639b84a36bd22559717b84524045025224c Mon Sep 17 00:00:00 2001
+From 0a90a21f533dbbf23a4b219cd9e8f8e3cfe7836a Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 12 Jun 2015 19:01:05 +0200
-Subject: [PATCH 140/148] irqchip: bcm2835: Add FIQ support
+Subject: [PATCH 140/171] irqchip: bcm2835: Add FIQ support
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 211cf01..9c99787 100644 (file)
@@ -1,7 +1,7 @@
-From 5b2e3f5dc51d75e3ed1aefc57f9520feadf63948 Mon Sep 17 00:00:00 2001
+From 509544e075da1920294a4e071bf2cc07e4175b25 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 24 Jul 2015 15:50:04 +0200
-Subject: [PATCH 141/148] dwc_otg: Add ARCH_BCM2835 support
+Subject: [PATCH 141/171] dwc_otg: Add ARCH_BCM2835 support
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 4d8b078..801f311 100644 (file)
@@ -1,7 +1,7 @@
-From cdd86992209a3f4d5b896f05062a5550c39de95b Mon Sep 17 00:00:00 2001
+From 2a920968d6fe0e8e05664b11fa3185309a15ffc9 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 24 Jul 2015 15:50:24 +0200
-Subject: [PATCH 142/148] bcm2835: Use DWC_OTG
+Subject: [PATCH 142/171] bcm2835: Use DWC_OTG
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index bd2a7dc..bf9e55f 100644 (file)
@@ -1,7 +1,7 @@
-From 3817be453657d116131317525915d3e378d46fdc Mon Sep 17 00:00:00 2001
+From 47b2b8452f63267da699d5ca14fd5d2cec845b08 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 24 Jul 2015 19:33:16 +0200
-Subject: [PATCH 143/148] Fix RASPBERRYPI_FIRMWARE dependents
+Subject: [PATCH 143/171] Fix RASPBERRYPI_FIRMWARE dependents
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 3573d28..209b8ad 100644 (file)
@@ -1,7 +1,7 @@
-From 5385d08b17b5eda5ed816978b29f50c6aad560ac Mon Sep 17 00:00:00 2001
+From 0ea3178f01b66564c3f68c0a2531e3d00a2ceb36 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 24 Jul 2015 19:33:46 +0200
-Subject: [PATCH 144/148] vc_mem: Remove unnecessary include
+Subject: [PATCH 144/171] vc_mem: Remove unnecessary include
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index 651e674..a45b47c 100644 (file)
@@ -1,7 +1,7 @@
-From 6661f3e0e7db6a720e8b114510da8240d28db1ae Mon Sep 17 00:00:00 2001
+From 8486034f0a9ea21a67de2c996dfcf354229d1ef5 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 24 Jul 2015 19:34:06 +0200
-Subject: [PATCH 145/148] configs: Remove BCM2708_MBOX
+Subject: [PATCH 145/171] configs: Remove BCM2708_MBOX
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index f36c2d9..a5e0a3c 100644 (file)
@@ -1,7 +1,7 @@
-From 764892688e000751cdebf8fe20564b5fb1862ac1 Mon Sep 17 00:00:00 2001
+From 5df47c75bf7b4f3f913db669ccf5bb6da279751f Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 24 Jul 2015 19:34:31 +0200
-Subject: [PATCH 146/148] bcm2708-vcio: Remove module
+Subject: [PATCH 146/171] bcm2708-vcio: Remove module
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
index a5bcff5..aed71ac 100644 (file)
@@ -1,7 +1,7 @@
-From dc3946ac37e0c7aed74b0041f742a102d37af425 Mon Sep 17 00:00:00 2001
+From 345d2517a2e371b0b21c17f6667f68de602abdd2 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
 Date: Fri, 24 Jul 2015 19:34:55 +0200
-Subject: [PATCH 147/148] Revert "firmware: bcm2835: Support legacy mailbox
+Subject: [PATCH 147/171] Revert "firmware: bcm2835: Support legacy mailbox
  API"
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
index 076ff5a..76afdad 100644 (file)
@@ -1,7 +1,7 @@
-From 2a2dc4e5e4946e75b98c71eacc3660e913dbd302 Mon Sep 17 00:00:00 2001
+From 909e2b2c6b73991394f89769aa3fca05ab146d72 Mon Sep 17 00:00:00 2001
 From: Jonathan Bell <jonathan@raspberrypi.org>
 Date: Tue, 30 Jun 2015 12:35:39 +0100
-Subject: [PATCH 148/148] pinctrl: bcm2835: Clear the event latch register when
+Subject: [PATCH 148/171] pinctrl: bcm2835: Clear the event latch register when
  disabling interrupts
 
 It's possible to hit a race condition if interrupts are generated on a GPIO
diff --git a/target/linux/brcm2708/patches-4.1/0149-dwc_otg-fiq_fsm-Make-high-speed-isochronous-strided-.patch b/target/linux/brcm2708/patches-4.1/0149-dwc_otg-fiq_fsm-Make-high-speed-isochronous-strided-.patch
new file mode 100644 (file)
index 0000000..c3f481f
--- /dev/null
@@ -0,0 +1,134 @@
+From cab5abd144fc154c140f9f522c3c2f81a94aaa74 Mon Sep 17 00:00:00 2001
+From: P33M <P33M@github.com>
+Date: Tue, 4 Aug 2015 01:15:20 +0100
+Subject: [PATCH 149/171] dwc_otg: fiq_fsm: Make high-speed isochronous strided
+ transfers work properly
+
+Certain low-bandwidth high-speed USB devices (specialist audio devices,
+compressed-frame webcams) have packet intervals > 1 microframe.
+
+Stride these transfers in the FIQ by using the start-of-frame interrupt
+to restart the channel at the right time.
+---
+ drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c  | 17 +++++++++++++----
+ drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h  |  5 ++++-
+ drivers/usb/host/dwc_otg/dwc_otg_hcd.c      |  7 ++++++-
+ drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c |  6 ++++--
+ 4 files changed, 27 insertions(+), 8 deletions(-)
+
+--- a/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c
++++ b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c
+@@ -615,8 +615,11 @@ static int notrace noinline fiq_fsm_do_s
+                       break;
+               case FIQ_HS_ISOC_SLEEPING:
+-                      state->channel[n].fsm = FIQ_HS_ISOC_TURBO;
+-                      fiq_fsm_restart_channel(state, n, 0);
++                      /* Is it time to wake this channel yet? */
++                      if (--state->channel[n].uframe_sleeps == 0) {
++                              state->channel[n].fsm = FIQ_HS_ISOC_TURBO;
++                              fiq_fsm_restart_channel(state, n, 0);
++                      }
+                       break;
+               case FIQ_PER_SSPLIT_QUEUED:
+@@ -624,7 +627,7 @@ static int notrace noinline fiq_fsm_do_s
+                               break;
+                       if(!fiq_fsm_tt_in_use(state, num_channels, n)) {
+                               if (!fiq_fsm_too_late(state, n)) {
+-                                      fiq_print(FIQDBG_INT, st, "SOF GO %01d", n);
++                                      fiq_print(FIQDBG_INT, state, "SOF GO %01d", n);
+                                       fiq_fsm_restart_channel(state, n, 0);
+                                       state->channel[n].fsm = FIQ_PER_SSPLIT_STARTED;
+                               } else {
+@@ -1069,8 +1072,14 @@ static int notrace noinline fiq_fsm_do_h
+               if (fiq_fsm_update_hs_isoc(state, n, hcint)) {
+                       /* more transactions to come */
+                       handled = 1;
+-                      restart = 1;
+                       fiq_print(FIQDBG_INT, state, "HSISO M ");
++                      /* For strided transfers, put ourselves to sleep */
++                      if (st->hs_isoc_info.stride > 1) {
++                              st->uframe_sleeps = st->hs_isoc_info.stride - 1;
++                              st->fsm = FIQ_HS_ISOC_SLEEPING;
++                      } else {
++                              restart = 1;
++                      }
+               } else {
+                       st->fsm = FIQ_HS_ISOC_DONE;
+                       fiq_print(FIQDBG_INT, state, "HSISO F ");
+--- a/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h
++++ b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h
+@@ -260,12 +260,13 @@ struct fiq_dma_blob {
+  * @iso_frame:        Pointer to the array of OTG URB iso_frame_descs.
+  * @nrframes: Total length of iso_frame_desc array
+  * @index:    Current index (FIQ-maintained)
+- *
++ * @stride:   Interval in uframes between HS isoc transactions
+  */
+ struct fiq_hs_isoc_info {
+       struct dwc_otg_hcd_iso_packet_desc *iso_desc;
+       unsigned int nrframes;
+       unsigned int index;
++      unsigned int stride;
+ };
+ /**
+@@ -296,6 +297,8 @@ struct fiq_channel_state {
+       /* Hardware bug workaround: sometimes channel halt interrupts are
+        * delayed until the next SOF. Keep track of when we expected to get interrupted. */
+       unsigned int expected_uframe;
++      /* number of uframes remaining (for interval > 1 HS isoc transfers) before next transfer */
++      unsigned int uframe_sleeps;
+       /* in/out for communicating number of dma buffers used, or number of ISOC to do */
+       unsigned int nrpackets;
+       struct fiq_dma_info dma_info;
+--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
+@@ -1678,6 +1678,9 @@ int fiq_fsm_queue_isoc_transaction(dwc_o
+               }
+       }
++      st->hs_isoc_info.stride = qh->interval;
++      st->uframe_sleeps = 0;
++
+       fiq_print(FIQDBG_INT, hcd->fiq_state, "FSMQ  %01d ", hc->hc_num);
+       fiq_print(FIQDBG_INT, hcd->fiq_state, "%08x", st->hcchar_copy.d32);
+       fiq_print(FIQDBG_INT, hcd->fiq_state, "%08x", st->hctsiz_copy.d32);
+@@ -1692,9 +1695,11 @@ int fiq_fsm_queue_isoc_transaction(dwc_o
+       DWC_WRITE_REG32(&hc_regs->hcintmsk, st->hcintmsk_copy.d32);
+       if (hfnum.b.frrem < PERIODIC_FRREM_BACKOFF) {
+               /* Prevent queueing near EOF1. Bad things happen if a periodic
+-               * split transaction is queued very close to EOF.
++               * split transaction is queued very close to EOF. SOF interrupt handler
++               * will wake this channel at the next interrupt.
+                */
+               st->fsm = FIQ_HS_ISOC_SLEEPING;
++              st->uframe_sleeps = 1;
+       } else {
+               st->fsm = FIQ_HS_ISOC_TURBO;
+               st->hcchar_copy.b.chen = 1;
+--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
++++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
+@@ -2297,10 +2297,10 @@ void dwc_otg_fiq_unmangle_isoc(dwc_otg_h
+                       dwc_urb->error_count++;
+               }
+       }
++      qh->sched_frame = dwc_frame_num_inc(qh->sched_frame, qh->interval * (nr_frames - 1));
++
+       //printk_ratelimited(KERN_INFO "%s: HS isochronous of %d/%d frames with %d errors complete\n",
+       //                      __FUNCTION__, i, dwc_urb->packet_count, dwc_urb->error_count);
+-      hcd->fops->complete(hcd, dwc_urb->priv, dwc_urb, 0);
+-      release_channel(hcd, qh->channel, qtd, DWC_OTG_HC_XFER_URB_COMPLETE);
+ }
+ /**
+@@ -2543,6 +2543,8 @@ void dwc_otg_hcd_handle_hc_fsm(dwc_otg_h
+                * fail.
+                */
+               dwc_otg_fiq_unmangle_isoc(hcd, qh, qtd, num);
++              hcd->fops->complete(hcd, qtd->urb->priv, qtd->urb, 0);
++              release_channel(hcd, hc, qtd, DWC_OTG_HC_XFER_URB_COMPLETE);
+               break;
+       case FIQ_PER_SPLIT_LS_ABORTED:
diff --git a/target/linux/brcm2708/patches-4.1/0150-added-basic-docker-support.patch b/target/linux/brcm2708/patches-4.1/0150-added-basic-docker-support.patch
new file mode 100644 (file)
index 0000000..380086e
--- /dev/null
@@ -0,0 +1,62 @@
+From c7f56b36920e86309a5111c56ae5d0fbb96f1961 Mon Sep 17 00:00:00 2001
+From: Uli Middelberg <uli@middelberg.de>
+Date: Wed, 17 Jun 2015 10:36:56 +0200
+Subject: [PATCH 150/171] added basic docker support
+
+---
+ arch/arm/configs/bcm2709_defconfig | 3 +++
+ arch/arm/configs/bcmrpi_defconfig  | 3 +++
+ 2 files changed, 6 insertions(+)
+
+--- a/arch/arm/configs/bcm2709_defconfig
++++ b/arch/arm/configs/bcm2709_defconfig
+@@ -17,6 +17,7 @@ CONFIG_IKCONFIG=m
+ CONFIG_IKCONFIG_PROC=y
+ CONFIG_CGROUP_FREEZER=y
+ CONFIG_CGROUP_DEVICE=y
++CONFIG_CPUSETS=y
+ CONFIG_CGROUP_CPUACCT=y
+ CONFIG_MEMCG=y
+ CONFIG_BLK_CGROUP=y
+@@ -418,6 +419,7 @@ CONFIG_MD_RAID0=m
+ CONFIG_BLK_DEV_DM=m
+ CONFIG_DM_CRYPT=m
+ CONFIG_DM_SNAPSHOT=m
++CONFIG_DM_THIN_PROVISIONING=m
+ CONFIG_DM_MIRROR=m
+ CONFIG_DM_LOG_USERSPACE=m
+ CONFIG_DM_RAID=m
+@@ -1115,6 +1117,7 @@ CONFIG_QFMT_V2=m
+ CONFIG_AUTOFS4_FS=y
+ CONFIG_FUSE_FS=m
+ CONFIG_CUSE=m
++CONFIG_OVERLAY_FS=m
+ CONFIG_FSCACHE=y
+ CONFIG_FSCACHE_STATS=y
+ CONFIG_FSCACHE_HISTOGRAM=y
+--- a/arch/arm/configs/bcmrpi_defconfig
++++ b/arch/arm/configs/bcmrpi_defconfig
+@@ -16,6 +16,7 @@ CONFIG_IKCONFIG=m
+ CONFIG_IKCONFIG_PROC=y
+ CONFIG_CGROUP_FREEZER=y
+ CONFIG_CGROUP_DEVICE=y
++CONFIG_CPUSETS=y
+ CONFIG_CGROUP_CPUACCT=y
+ CONFIG_MEMCG=y
+ CONFIG_BLK_CGROUP=y
+@@ -411,6 +412,7 @@ CONFIG_MD_RAID0=m
+ CONFIG_BLK_DEV_DM=m
+ CONFIG_DM_CRYPT=m
+ CONFIG_DM_SNAPSHOT=m
++CONFIG_DM_THIN_PROVISIONING=m
+ CONFIG_DM_MIRROR=m
+ CONFIG_DM_LOG_USERSPACE=m
+ CONFIG_DM_RAID=m
+@@ -1108,6 +1110,7 @@ CONFIG_QFMT_V2=m
+ CONFIG_AUTOFS4_FS=y
+ CONFIG_FUSE_FS=m
+ CONFIG_CUSE=m
++CONFIG_OVERLAY_FS=m
+ CONFIG_FSCACHE=y
+ CONFIG_FSCACHE_STATS=y
+ CONFIG_FSCACHE_HISTOGRAM=y
diff --git a/target/linux/brcm2708/patches-4.1/0151-bcm2835-camera-planar-packed-stride-length.patch b/target/linux/brcm2708/patches-4.1/0151-bcm2835-camera-planar-packed-stride-length.patch
new file mode 100644 (file)
index 0000000..e93446b
--- /dev/null
@@ -0,0 +1,170 @@
+From 273b9fb93e4b2cfff7aeff8ea559219c2755ee95 Mon Sep 17 00:00:00 2001
+From: Garrett <g@floft.net>
+Date: Thu, 2 Jul 2015 19:32:04 -0500
+Subject: [PATCH 151/171] bcm2835 camera planar/packed stride length
+
+Added a field to the mmal_fmt struct used to compute the bytes per line
+when using a particular format. This results in the correct stride being
+calculated even when the format is planar.
+
+Signed-off-by: Garrett Wilson <g@floft.net>
+---
+ drivers/media/platform/bcm2835/bcm2835-camera.c | 26 +++++++++++++++++++------
+ drivers/media/platform/bcm2835/mmal-common.h    |  1 +
+ 2 files changed, 21 insertions(+), 6 deletions(-)
+
+--- a/drivers/media/platform/bcm2835/bcm2835-camera.c
++++ b/drivers/media/platform/bcm2835/bcm2835-camera.c
+@@ -88,12 +88,13 @@ static const struct v4l2_fract
+ /* video formats */
+ static struct mmal_fmt formats[] = {
+       {
+-       .name = "4:2:0, packed YUV",
++       .name = "4:2:0, planar, YUV",
+        .fourcc = V4L2_PIX_FMT_YUV420,
+        .flags = 0,
+        .mmal = MMAL_ENCODING_I420,
+        .depth = 12,
+        .mmal_component = MMAL_COMPONENT_CAMERA,
++       .ybbp = 1,
+        },
+       {
+        .name = "4:2:2, packed, YUYV",
+@@ -102,6 +103,7 @@ static struct mmal_fmt formats[] = {
+        .mmal = MMAL_ENCODING_YUYV,
+        .depth = 16,
+        .mmal_component = MMAL_COMPONENT_CAMERA,
++       .ybbp = 2,
+        },
+       {
+        .name = "RGB24 (LE)",
+@@ -110,6 +112,7 @@ static struct mmal_fmt formats[] = {
+        .mmal = MMAL_ENCODING_BGR24,
+        .depth = 24,
+        .mmal_component = MMAL_COMPONENT_CAMERA,
++       .ybbp = 3,
+        },
+       {
+        .name = "JPEG",
+@@ -118,6 +121,7 @@ static struct mmal_fmt formats[] = {
+        .mmal = MMAL_ENCODING_JPEG,
+        .depth = 8,
+        .mmal_component = MMAL_COMPONENT_IMAGE_ENCODE,
++       .ybbp = 0,
+        },
+       {
+        .name = "H264",
+@@ -126,6 +130,7 @@ static struct mmal_fmt formats[] = {
+        .mmal = MMAL_ENCODING_H264,
+        .depth = 8,
+        .mmal_component = MMAL_COMPONENT_VIDEO_ENCODE,
++       .ybbp = 0,
+        },
+       {
+        .name = "MJPEG",
+@@ -134,6 +139,7 @@ static struct mmal_fmt formats[] = {
+        .mmal = MMAL_ENCODING_MJPEG,
+        .depth = 8,
+        .mmal_component = MMAL_COMPONENT_VIDEO_ENCODE,
++       .ybbp = 0,
+        },
+       {
+        .name = "4:2:2, packed, YVYU",
+@@ -142,6 +148,7 @@ static struct mmal_fmt formats[] = {
+        .mmal = MMAL_ENCODING_YVYU,
+        .depth = 16,
+        .mmal_component = MMAL_COMPONENT_CAMERA,
++       .ybbp = 2,
+        },
+       {
+        .name = "4:2:2, packed, VYUY",
+@@ -150,6 +157,7 @@ static struct mmal_fmt formats[] = {
+        .mmal = MMAL_ENCODING_VYUY,
+        .depth = 16,
+        .mmal_component = MMAL_COMPONENT_CAMERA,
++       .ybbp = 2,
+        },
+       {
+        .name = "4:2:2, packed, UYVY",
+@@ -158,14 +166,16 @@ static struct mmal_fmt formats[] = {
+        .mmal = MMAL_ENCODING_UYVY,
+        .depth = 16,
+        .mmal_component = MMAL_COMPONENT_CAMERA,
++       .ybbp = 2,
+        },
+       {
+-       .name = "4:2:0, packed, NV12",
++       .name = "4:2:0, planar, NV12",
+        .fourcc = V4L2_PIX_FMT_NV12,
+        .flags = 0,
+        .mmal = MMAL_ENCODING_NV12,
+        .depth = 12,
+        .mmal_component = MMAL_COMPONENT_CAMERA,
++       .ybbp = 1,
+        },
+       {
+        .name = "RGB24 (BE)",
+@@ -174,22 +184,25 @@ static struct mmal_fmt formats[] = {
+        .mmal = MMAL_ENCODING_RGB24,
+        .depth = 24,
+        .mmal_component = MMAL_COMPONENT_CAMERA,
++       .ybbp = 3,
+        },
+       {
+-       .name = "4:2:0, packed YVU",
++       .name = "4:2:0, planar, YVU",
+        .fourcc = V4L2_PIX_FMT_YVU420,
+        .flags = 0,
+        .mmal = MMAL_ENCODING_YV12,
+        .depth = 12,
+        .mmal_component = MMAL_COMPONENT_CAMERA,
++       .ybbp = 1,
+        },
+       {
+-       .name = "4:2:0, packed, NV21",
++       .name = "4:2:0, planar, NV21",
+        .fourcc = V4L2_PIX_FMT_NV21,
+        .flags = 0,
+        .mmal = MMAL_ENCODING_NV21,
+        .depth = 12,
+        .mmal_component = MMAL_COMPONENT_CAMERA,
++       .ybbp = 1,
+        },
+       {
+        .name = "RGB32 (BE)",
+@@ -198,6 +211,7 @@ static struct mmal_fmt formats[] = {
+        .mmal = MMAL_ENCODING_BGRA,
+        .depth = 32,
+        .mmal_component = MMAL_COMPONENT_CAMERA,
++       .ybbp = 4,
+        },
+ };
+@@ -771,7 +785,7 @@ static int vidioc_g_fbuf(struct file *fi
+       a->fmt.width = preview_port->es.video.width;
+       a->fmt.height = preview_port->es.video.height;
+       a->fmt.pixelformat = V4L2_PIX_FMT_YUV420;
+-      a->fmt.bytesperline = (preview_port->es.video.width * 3)>>1;
++      a->fmt.bytesperline = preview_port->es.video.width;
+       a->fmt.sizeimage = (preview_port->es.video.width *
+                              preview_port->es.video.height * 3)>>1;
+       a->fmt.colorspace = V4L2_COLORSPACE_SMPTE170M;
+@@ -894,7 +908,7 @@ static int vidioc_try_fmt_vid_cap(struct
+       v4l_bound_align_image(&f->fmt.pix.width, MIN_WIDTH, MAX_WIDTH, 1,
+                             &f->fmt.pix.height, MIN_HEIGHT, MAX_HEIGHT, 1, 0);
+-      f->fmt.pix.bytesperline = (f->fmt.pix.width * mfmt->depth)>>3;
++      f->fmt.pix.bytesperline = f->fmt.pix.width * mfmt->ybbp;
+       /* Image buffer has to be padded to allow for alignment, even though
+        * we then remove that padding before delivering the buffer.
+--- a/drivers/media/platform/bcm2835/mmal-common.h
++++ b/drivers/media/platform/bcm2835/mmal-common.h
+@@ -30,6 +30,7 @@ struct mmal_fmt {
+       u32   mmal;
+       int   depth;
+       u32   mmal_component;  /* MMAL component index to be used to encode */
++      u32   ybbp;            /* depth of first Y plane for planar formats */
+ };
+ /* buffer for one video frame */
diff --git a/target/linux/brcm2708/patches-4.1/0154-BCM270X_DT-Add-pwm-and-pwm-2chan-overlays.patch b/target/linux/brcm2708/patches-4.1/0154-BCM270X_DT-Add-pwm-and-pwm-2chan-overlays.patch
new file mode 100644 (file)
index 0000000..80bb708
--- /dev/null
@@ -0,0 +1,250 @@
+From 9ace261c44e2a16d13305b34b06a56c1a4838dc5 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Mon, 17 Aug 2015 10:49:44 +0100
+Subject: [PATCH 154/171] BCM270X_DT: Add pwm and pwm-2chan overlays
+
+From the README entries:
+  Legal pin,function combinations for each channel:
+    PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0)            52,5(Alt1)
+    PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1)
+  N.B.:
+    1) Pin 18 is the only one available on all platforms, and
+       it is the one used by the I2S audio interface.
+       Pins 12 and 13 might be better choices on an A+, B+ or Pi2.
+    2) The onboard analogue audio output uses both PWM channels.
+    3) So be careful mixing audio and PWM.
+    4) Currently the clock must have been enabled and configured
+       by other means.
+
+See: https://github.com/raspberrypi/linux/issues/756
+---
+ arch/arm/boot/dts/bcm2708_common.dtsi            | 16 +++++++++
+ arch/arm/boot/dts/overlays/Makefile              |  2 ++
+ arch/arm/boot/dts/overlays/README                | 41 +++++++++++++++++++++
+ arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts | 46 ++++++++++++++++++++++++
+ arch/arm/boot/dts/overlays/pwm-overlay.dts       | 42 ++++++++++++++++++++++
+ arch/arm/configs/bcm2709_defconfig               |  1 +
+ arch/arm/configs/bcmrpi_defconfig                |  1 +
+ drivers/pwm/Kconfig                              |  2 +-
+ 8 files changed, 150 insertions(+), 1 deletion(-)
+ create mode 100644 arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts
+ create mode 100644 arch/arm/boot/dts/overlays/pwm-overlay.dts
+
+--- a/arch/arm/boot/dts/bcm2708_common.dtsi
++++ b/arch/arm/boot/dts/bcm2708_common.dtsi
+@@ -154,6 +154,14 @@
+                       status = "disabled";
+               };
++              pwm: pwm@7e20c000 {
++                      compatible = "brcm,bcm2835-pwm";
++                      reg = <0x7e20c000 0x28>;
++                      clocks = <&clk_pwm>;
++                      #pwm-cells = <2>;
++                      status = "disabled";
++              };
++
+               uart1: uart@7e215040 {
+                       compatible = "brcm,bcm2835-aux-uart", "ns16550";
+                       reg = <0x7e215040 0x40>;
+@@ -279,6 +287,14 @@
+                       clock-output-names = "apb_pclk";
+                       clock-frequency = <126000000>;
+               };
++
++              clk_pwm: clock@5 {
++                       compatible = "fixed-clock";
++                       reg = <3>;
++                       #clock-cells = <0>;
++                       clock-output-names = "pwm";
++                       clock-frequency = <100000000>;
++              };
+       };
+       __overrides__ {
+--- a/arch/arm/boot/dts/overlays/Makefile
++++ b/arch/arm/boot/dts/overlays/Makefile
+@@ -35,6 +35,8 @@ dtb-$(RPI_DT_OVERLAYS) += mz61581-overla
+ dtb-$(RPI_DT_OVERLAYS) += piscreen-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += pitft28-resistive-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += pps-gpio-overlay.dtb
++dtb-$(RPI_DT_OVERLAYS) += pwm-overlay.dtb
++dtb-$(RPI_DT_OVERLAYS) += pwm-2chan-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += rpi-dac-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += rpi-display-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += rpi-ft5406-overlay.dtb
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -410,6 +410,47 @@ Load:   dtoverlay=pps-gpio,<param>=<val>
+ Params: gpiopin                  Input GPIO (default "18")
++Name:   pwm
++Info:   Configures a single PWM channel
++        Legal pin,function combinations for each channel:
++          PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0)            52,5(Alt1)
++          PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1)
++        N.B.:
++          1) Pin 18 is the only one available on all platforms, and
++             it is the one used by the I2S audio interface.
++             Pins 12 and 13 might be better choices on an A+, B+ or Pi2.
++          2) The onboard analogue audio output uses both PWM channels.
++          3) So be careful mixing audio and PWM.
++          4) Currently the clock must have been enabled and configured
++             by other means.
++Load:   dtoverlay=pwm-2chan,<param>=<val>
++Load:   dtoverlay=pwm,<param>=<val>
++Params: pin                      Output pin (default 18) - see table
++        func                     Pin function (default 2 = Alt5) - see above
++        clock                    PWM clock frequency (informational)
++
++
++Name:   pwm-2chan
++Info:   Configures both PWM channels
++        Legal pin,function combinations for each channel:
++          PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0)            52,5(Alt1)
++          PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1)
++        N.B.:
++          1) Pin 18 is the only one available on all platforms, and
++             it is the one used by the I2S audio interface.
++             Pins 12 and 13 might be better choices on an A+, B+ or Pi2.
++          2) The onboard analogue audio output uses both PWM channels.
++          3) So be careful mixing audio and PWM.
++          4) Currently the clock must have been enabled and configured
++             by other means.
++Load:   dtoverlay=pwm-2chan,<param>=<val>
++Params: pin                      Output pin (default 18) - see table
++        pin2                     Output pin for other channel (default 19)
++        func                     Pin function (default 2 = Alt5) - see above
++        func2                    Function for pin2 (default 2 = Alt5)
++        clock                    PWM clock frequency (informational)
++
++
+ Name:   rpi-dac
+ Info:   Configures the RPi DAC audio card
+ Load:   dtoverlay=rpi-dac
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts
+@@ -0,0 +1,46 @@
++/dts-v1/;
++/plugin/;
++
++/*
++This is the 2-channel overlay - only use it if you need both channels.
++
++Legal pin,function combinations for each channel:
++  PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0)            52,5(Alt1)
++  PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1)
++
++N.B.:
++  1) Pin 18 is the only one available on all platforms, and
++     it is the one used by the I2S audio interface.
++     Pins 12 and 13 might be better choices on an A+, B+ or Pi2.
++  2) The onboard analogue audio output uses both PWM channels.
++  3) So be careful mixing audio and PWM.
++*/
++
++/ {
++      fragment@0 {
++              target = <&gpio>;
++              __overlay__ {
++                      pwm_pins: pwm_pins {
++                              brcm,pins = <18 19>;
++                              brcm,function = <2 2>; /* Alt5 */
++                      };
++              };
++      };
++
++      fragment@1 {
++              target = <&pwm>;
++              __overlay__ {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&pwm_pins>;
++                      status = "okay";
++              };
++      };
++
++      __overrides__ {
++              pin   = <&pwm_pins>,"brcm,pins:0";
++              pin2  = <&pwm_pins>,"brcm,pins:4";
++              func  = <&pwm_pins>,"brcm,function:0";
++              func2 = <&pwm_pins>,"brcm,function:4";
++              clock = <&clk_pwm>,"clock-frequency:0";
++      };
++};
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/pwm-overlay.dts
+@@ -0,0 +1,42 @@
++/dts-v1/;
++/plugin/;
++
++/*
++Legal pin,function combinations for each channel:
++  PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0)            52,5(Alt1)
++  PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1)
++
++N.B.:
++  1) Pin 18 is the only one available on all platforms, and
++     it is the one used by the I2S audio interface.
++     Pins 12 and 13 might be better choices on an A+, B+ or Pi2.
++  2) The onboard analogue audio output uses both PWM channels.
++  3) So be careful mixing audio and PWM.
++*/
++
++/ {
++      fragment@0 {
++              target = <&gpio>;
++              __overlay__ {
++                      pwm_pins: pwm_pins {
++                              brcm,pins = <18>;
++                              brcm,function = <2>; /* Alt5 */
++                      };
++              };
++      };
++
++      fragment@1 {
++              target = <&pwm>;
++              __overlay__ {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&pwm_pins>;
++                      status = "okay";
++              };
++      };
++
++      __overrides__ {
++              pin   = <&pwm_pins>,"brcm,pins:0";
++              func  = <&pwm_pins>,"brcm,function:0";
++              clock = <&clk_pwm>,"clock-frequency:0";
++      };
++};
+--- a/arch/arm/configs/bcm2709_defconfig
++++ b/arch/arm/configs/bcm2709_defconfig
+@@ -1089,6 +1089,7 @@ CONFIG_IIO_BUFFER=y
+ CONFIG_IIO_BUFFER_CB=y
+ CONFIG_IIO_KFIFO_BUF=m
+ CONFIG_DHT11=m
++CONFIG_PWM_BCM2835=m
+ CONFIG_RASPBERRYPI_FIRMWARE=y
+ CONFIG_EXT4_FS=y
+ CONFIG_EXT4_FS_POSIX_ACL=y
+--- a/arch/arm/configs/bcmrpi_defconfig
++++ b/arch/arm/configs/bcmrpi_defconfig
+@@ -1082,6 +1082,7 @@ CONFIG_IIO_BUFFER=y
+ CONFIG_IIO_BUFFER_CB=y
+ CONFIG_IIO_KFIFO_BUF=m
+ CONFIG_DHT11=m
++CONFIG_PWM_BCM2835=m
+ CONFIG_RASPBERRYPI_FIRMWARE=y
+ CONFIG_EXT4_FS=y
+ CONFIG_EXT4_FS_POSIX_ACL=y
+--- a/drivers/pwm/Kconfig
++++ b/drivers/pwm/Kconfig
+@@ -85,7 +85,7 @@ config PWM_BCM_KONA
+ config PWM_BCM2835
+       tristate "BCM2835 PWM support"
+-      depends on ARCH_BCM2835
++      depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709
+       help
+         PWM framework driver for BCM2835 controller (Raspberry Pi)
diff --git a/target/linux/brcm2708/patches-4.1/0155-spi-bcm2835-fallback-to-interrupt-for-polling-timeou.patch b/target/linux/brcm2708/patches-4.1/0155-spi-bcm2835-fallback-to-interrupt-for-polling-timeou.patch
new file mode 100644 (file)
index 0000000..49536d0
--- /dev/null
@@ -0,0 +1,136 @@
+From 6b2b193e60989a674562abb13ff8780ca38592f4 Mon Sep 17 00:00:00 2001
+From: Martin Sperl <kernel@martin.sperl.org>
+Date: Wed, 22 Apr 2015 07:33:03 +0000
+Subject: [PATCH 155/171] spi: bcm2835: fallback to interrupt for polling
+ timeouts exceeding 2 jiffies
+
+The polling mode of the driver is designed for transfers that run
+less than 30us - it will only execute under those circumstances.
+So it should run comfortably without getting interrupted by the
+scheduler.
+
+But there are situations where the raspberry pi is so overloaded
+that it can take up to 80 jiffies until the polling thread gets
+rescheduled - this has been observed especially under heavy
+IO situations.
+
+In such a situation we now fall back to the interrupt handler and
+log the situation at debug level.
+
+Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+(cherry picked from commit a750b124cfd27bae1a12df22318db5a2083dfb12)
+---
+ drivers/spi/spi-bcm2835.c | 87 +++++++++++++++++++++++++++--------------------
+ 1 file changed, 50 insertions(+), 37 deletions(-)
+
+--- a/drivers/spi/spi-bcm2835.c
++++ b/drivers/spi/spi-bcm2835.c
+@@ -69,7 +69,7 @@
+ #define BCM2835_SPI_CS_CS_01          0x00000001
+ #define BCM2835_SPI_POLLING_LIMIT_US  30
+-#define BCM2835_SPI_TIMEOUT_MS                30000
++#define BCM2835_SPI_POLLING_JIFFIES   2
+ #define BCM2835_SPI_MODE_BITS (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH \
+                               | SPI_NO_CS | SPI_3WIRE)
+@@ -157,42 +157,6 @@ static irqreturn_t bcm2835_spi_interrupt
+       return IRQ_HANDLED;
+ }
+-static int bcm2835_spi_transfer_one_poll(struct spi_master *master,
+-                                       struct spi_device *spi,
+-                                       struct spi_transfer *tfr,
+-                                       u32 cs,
+-                                       unsigned long xfer_time_us)
+-{
+-      struct bcm2835_spi *bs = spi_master_get_devdata(master);
+-      /* set timeout to 1 second of maximum polling */
+-      unsigned long timeout = jiffies + HZ;
+-
+-      /* enable HW block without interrupts */
+-      bcm2835_wr(bs, BCM2835_SPI_CS, cs | BCM2835_SPI_CS_TA);
+-
+-      /* loop until finished the transfer */
+-      while (bs->rx_len) {
+-              /* read from fifo as much as possible */
+-              bcm2835_rd_fifo(bs);
+-              /* fill in tx fifo as much as possible */
+-              bcm2835_wr_fifo(bs);
+-              /* if we still expect some data after the read,
+-               * check for a possible timeout
+-               */
+-              if (bs->rx_len && time_after(jiffies, timeout)) {
+-                      /* Transfer complete - reset SPI HW */
+-                      bcm2835_spi_reset_hw(master);
+-                      /* and return timeout */
+-                      return -ETIMEDOUT;
+-              }
+-      }
+-
+-      /* Transfer complete - reset SPI HW */
+-      bcm2835_spi_reset_hw(master);
+-      /* and return without waiting for completion */
+-      return 0;
+-}
+-
+ static int bcm2835_spi_transfer_one_irq(struct spi_master *master,
+                                       struct spi_device *spi,
+                                       struct spi_transfer *tfr,
+@@ -229,6 +193,55 @@ static int bcm2835_spi_transfer_one_irq(
+       return 1;
+ }
++static int bcm2835_spi_transfer_one_poll(struct spi_master *master,
++                                       struct spi_device *spi,
++                                       struct spi_transfer *tfr,
++                                       u32 cs,
++                                       unsigned long xfer_time_us)
++{
++      struct bcm2835_spi *bs = spi_master_get_devdata(master);
++      unsigned long timeout;
++
++      /* enable HW block without interrupts */
++      bcm2835_wr(bs, BCM2835_SPI_CS, cs | BCM2835_SPI_CS_TA);
++
++      /* fill in the fifo before timeout calculations
++       * if we are interrupted here, then the data is
++       * getting transferred by the HW while we are interrupted
++       */
++      bcm2835_wr_fifo(bs);
++
++      /* set the timeout */
++      timeout = jiffies + BCM2835_SPI_POLLING_JIFFIES;
++
++      /* loop until finished the transfer */
++      while (bs->rx_len) {
++              /* fill in tx fifo with remaining data */
++              bcm2835_wr_fifo(bs);
++
++              /* read from fifo as much as possible */
++              bcm2835_rd_fifo(bs);
++
++              /* if there is still data pending to read
++               * then check the timeout
++               */
++              if (bs->rx_len && time_after(jiffies, timeout)) {
++                      dev_dbg_ratelimited(&spi->dev,
++                                          "timeout period reached: jiffies: %lu remaining tx/rx: %d/%d - falling back to interrupt mode\n",
++                                          jiffies - timeout,
++                                          bs->tx_len, bs->rx_len);
++                      /* fall back to interrupt mode */
++                      return bcm2835_spi_transfer_one_irq(master, spi,
++                                                          tfr, cs);
++              }
++      }
++
++      /* Transfer complete - reset SPI HW */
++      bcm2835_spi_reset_hw(master);
++      /* and return without waiting for completion */
++      return 0;
++}
++
+ static int bcm2835_spi_transfer_one(struct spi_master *master,
+                                   struct spi_device *spi,
+                                   struct spi_transfer *tfr)
diff --git a/target/linux/brcm2708/patches-4.1/0156-spi-bcm2835-enable-dma-modes-for-transfers-meeting-c.patch b/target/linux/brcm2708/patches-4.1/0156-spi-bcm2835-enable-dma-modes-for-transfers-meeting-c.patch
new file mode 100644 (file)
index 0000000..3521f08
--- /dev/null
@@ -0,0 +1,422 @@
+From abff2f91fd0f8163b065b92786be93562c7e67af Mon Sep 17 00:00:00 2001
+From: Martin Sperl <kernel@martin.sperl.org>
+Date: Sun, 10 May 2015 20:47:28 +0000
+Subject: [PATCH 156/171] spi: bcm2835: enable dma modes for transfers meeting
+ certain conditions
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Conditions per spi_transfer are:
+* transfer.len >= 96 bytes (to avoid mapping overhead costs)
+* transfer.len < 65536 bytes (limitaion by spi-hw block - could get extended)
+* an individual scatter/gather transfer length must be a multiple of 4
+  for anything but the last transfer - spi-hw block limit.
+  (some shortcut has been taken in can_dma to avoid unnecessary mapping of
+   pages which, for which there is a chance that there is a split with a
+   transfer length not a multiple of 4)
+
+If it becomes a necessity these restrictions can get removed by additional
+code.
+
+Note that this patch requires a patch to dma-bcm2835.c by Noralf to
+enable scatter-gather mode inside the dmaengine, which has not been
+merged yet.
+
+That is why no patch to arch/arm/boot/dts/bcm2835.dtsi is included - the
+code works as before without dma when tx/rx are not set, but it writes
+a message warning about dma not used:
+spi-bcm2835 20204000.spi: no tx-dma configuration found - not using dma mode
+
+To enable dma-mode add the following lines to the device-tree:
+        dmas = <&dma 6>, <&dma 7>;
+        dma-names = "tx", "rx";
+
+Tested-by: Noralf Trønnes <noralf@tronnes.org> (private communication)
+Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+(cherry picked from commit 3ecd37edaa2a6ba3246e2c35714be9316b1087fe)
+---
+ drivers/spi/spi-bcm2835.c | 303 +++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 301 insertions(+), 2 deletions(-)
+
+--- a/drivers/spi/spi-bcm2835.c
++++ b/drivers/spi/spi-bcm2835.c
+@@ -23,15 +23,18 @@
+ #include <linux/clk.h>
+ #include <linux/completion.h>
+ #include <linux/delay.h>
++#include <linux/dma-mapping.h>
++#include <linux/dmaengine.h>
+ #include <linux/err.h>
+ #include <linux/interrupt.h>
+ #include <linux/io.h>
+ #include <linux/kernel.h>
+ #include <linux/module.h>
+ #include <linux/of.h>
+-#include <linux/of_irq.h>
+-#include <linux/of_gpio.h>
++#include <linux/of_address.h>
+ #include <linux/of_device.h>
++#include <linux/of_gpio.h>
++#include <linux/of_irq.h>
+ #include <linux/spi/spi.h>
+ /* SPI register offsets */
+@@ -70,6 +73,7 @@
+ #define BCM2835_SPI_POLLING_LIMIT_US  30
+ #define BCM2835_SPI_POLLING_JIFFIES   2
++#define BCM2835_SPI_DMA_MIN_LENGTH    96
+ #define BCM2835_SPI_MODE_BITS (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH \
+                               | SPI_NO_CS | SPI_3WIRE)
+@@ -83,6 +87,7 @@ struct bcm2835_spi {
+       u8 *rx_buf;
+       int tx_len;
+       int rx_len;
++      bool dma_pending;
+ };
+ static inline u32 bcm2835_rd(struct bcm2835_spi *bs, unsigned reg)
+@@ -128,12 +133,15 @@ static void bcm2835_spi_reset_hw(struct
+       /* Disable SPI interrupts and transfer */
+       cs &= ~(BCM2835_SPI_CS_INTR |
+               BCM2835_SPI_CS_INTD |
++              BCM2835_SPI_CS_DMAEN |
+               BCM2835_SPI_CS_TA);
+       /* and reset RX/TX FIFOS */
+       cs |= BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX;
+       /* and reset the SPI_HW */
+       bcm2835_wr(bs, BCM2835_SPI_CS, cs);
++      /* as well as DLEN */
++      bcm2835_wr(bs, BCM2835_SPI_DLEN, 0);
+ }
+ static irqreturn_t bcm2835_spi_interrupt(int irq, void *dev_id)
+@@ -193,6 +201,279 @@ static int bcm2835_spi_transfer_one_irq(
+       return 1;
+ }
++/*
++ * DMA support
++ *
++ * this implementation has currently a few issues in so far as it does
++ * not work arrount limitations of the HW.
++ *
++ * the main one being that DMA transfers are limited to 16 bit
++ * (so 0 to 65535 bytes) by the SPI HW due to BCM2835_SPI_DLEN
++ *
++ * also we currently assume that the scatter-gather fragments are
++ * all multiple of 4 (except the last) - otherwise we would need
++ * to reset the FIFO before subsequent transfers...
++ * this also means that tx/rx transfers sg's need to be of equal size!
++ *
++ * there may be a few more border-cases we may need to address as well
++ * but unfortunately this would mean splitting up the scatter-gather
++ * list making it slightly unpractical...
++ */
++static void bcm2835_spi_dma_done(void *data)
++{
++      struct spi_master *master = data;
++      struct bcm2835_spi *bs = spi_master_get_devdata(master);
++
++      /* reset fifo and HW */
++      bcm2835_spi_reset_hw(master);
++
++      /* and terminate tx-dma as we do not have an irq for it
++       * because when the rx dma will terminate and this callback
++       * is called the tx-dma must have finished - can't get to this
++       * situation otherwise...
++       */
++      dmaengine_terminate_all(master->dma_tx);
++
++      /* mark as no longer pending */
++      bs->dma_pending = 0;
++
++      /* and mark as completed */;
++      complete(&master->xfer_completion);
++}
++
++static int bcm2835_spi_prepare_sg(struct spi_master *master,
++                                struct spi_transfer *tfr,
++                                bool is_tx)
++{
++      struct dma_chan *chan;
++      struct scatterlist *sgl;
++      unsigned int nents;
++      enum dma_transfer_direction dir;
++      unsigned long flags;
++
++      struct dma_async_tx_descriptor *desc;
++      dma_cookie_t cookie;
++
++      if (is_tx) {
++              dir   = DMA_MEM_TO_DEV;
++              chan  = master->dma_tx;
++              nents = tfr->tx_sg.nents;
++              sgl   = tfr->tx_sg.sgl;
++              flags = 0 /* no  tx interrupt */;
++
++      } else {
++              dir   = DMA_DEV_TO_MEM;
++              chan  = master->dma_rx;
++              nents = tfr->rx_sg.nents;
++              sgl   = tfr->rx_sg.sgl;
++              flags = DMA_PREP_INTERRUPT;
++      }
++      /* prepare the channel */
++      desc = dmaengine_prep_slave_sg(chan, sgl, nents, dir, flags);
++      if (!desc)
++              return -EINVAL;
++
++      /* set callback for rx */
++      if (!is_tx) {
++              desc->callback = bcm2835_spi_dma_done;
++              desc->callback_param = master;
++      }
++
++      /* submit it to DMA-engine */
++      cookie = dmaengine_submit(desc);
++
++      return dma_submit_error(cookie);
++}
++
++static inline int bcm2835_check_sg_length(struct sg_table *sgt)
++{
++      int i;
++      struct scatterlist *sgl;
++
++      /* check that the sg entries are word-sized (except for last) */
++      for_each_sg(sgt->sgl, sgl, (int)sgt->nents - 1, i) {
++              if (sg_dma_len(sgl) % 4)
++                      return -EFAULT;
++      }
++
++      return 0;
++}
++
++static int bcm2835_spi_transfer_one_dma(struct spi_master *master,
++                                      struct spi_device *spi,
++                                      struct spi_transfer *tfr,
++                                      u32 cs)
++{
++      struct bcm2835_spi *bs = spi_master_get_devdata(master);
++      int ret;
++
++      /* check that the scatter gather segments are all a multiple of 4 */
++      if (bcm2835_check_sg_length(&tfr->tx_sg) ||
++          bcm2835_check_sg_length(&tfr->rx_sg)) {
++              dev_warn_once(&spi->dev,
++                            "scatter gather segment length is not a multiple of 4 - falling back to interrupt mode\n");
++              return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs);
++      }
++
++      /* setup tx-DMA */
++      ret = bcm2835_spi_prepare_sg(master, tfr, true);
++      if (ret)
++              return ret;
++
++      /* start TX early */
++      dma_async_issue_pending(master->dma_tx);
++
++      /* mark as dma pending */
++      bs->dma_pending = 1;
++
++      /* set the DMA length */
++      bcm2835_wr(bs, BCM2835_SPI_DLEN, tfr->len);
++
++      /* start the HW */
++      bcm2835_wr(bs, BCM2835_SPI_CS,
++                 cs | BCM2835_SPI_CS_TA | BCM2835_SPI_CS_DMAEN);
++
++      /* setup rx-DMA late - to run transfers while
++       * mapping of the rx buffers still takes place
++       * this saves 10us or more.
++       */
++      ret = bcm2835_spi_prepare_sg(master, tfr, false);
++      if (ret) {
++              /* need to reset on errors */
++              dmaengine_terminate_all(master->dma_tx);
++              bcm2835_spi_reset_hw(master);
++              return ret;
++      }
++
++      /* start rx dma late */
++      dma_async_issue_pending(master->dma_rx);
++
++      /* wait for wakeup in framework */
++      return 1;
++}
++
++static bool bcm2835_spi_can_dma(struct spi_master *master,
++                              struct spi_device *spi,
++                              struct spi_transfer *tfr)
++{
++      /* only run for gpio_cs */
++      if (!gpio_is_valid(spi->cs_gpio))
++              return false;
++
++      /* we start DMA efforts only on bigger transfers */
++      if (tfr->len < BCM2835_SPI_DMA_MIN_LENGTH)
++              return false;
++
++      /* BCM2835_SPI_DLEN has defined a max transfer size as
++       * 16 bit, so max is 65535
++       * we can revisit this by using an alternative transfer
++       * method - ideally this would get done without any more
++       * interaction...
++       */
++      if (tfr->len > 65535) {
++              dev_warn_once(&spi->dev,
++                            "transfer size of %d too big for dma-transfer\n",
++                            tfr->len);
++              return false;
++      }
++
++      /* if we run rx/tx_buf with word aligned addresses then we are OK */
++      if (((u32)tfr->tx_buf % 4 == 0) && ((u32)tfr->tx_buf % 4 == 0))
++              return true;
++
++      /* otherwise we only allow transfers within the same page
++       * to avoid wasting time on dma_mapping when it is not practical
++       */
++      if (((u32)tfr->tx_buf % SZ_4K) + tfr->len > SZ_4K) {
++              dev_warn_once(&spi->dev,
++                            "Unaligned spi tx-transfer bridging page\n");
++              return false;
++      }
++      if (((u32)tfr->rx_buf % SZ_4K) + tfr->len > SZ_4K) {
++              dev_warn_once(&spi->dev,
++                            "Unaligned spi tx-transfer bridging page\n");
++              return false;
++      }
++
++      /* return OK */
++      return true;
++}
++
++void bcm2835_dma_release(struct spi_master *master)
++{
++      if (master->dma_tx) {
++              dmaengine_terminate_all(master->dma_tx);
++              dma_release_channel(master->dma_tx);
++              master->dma_tx = NULL;
++      }
++      if (master->dma_rx) {
++              dmaengine_terminate_all(master->dma_rx);
++              dma_release_channel(master->dma_rx);
++              master->dma_rx = NULL;
++      }
++}
++
++void bcm2835_dma_init(struct spi_master *master, struct device *dev)
++{
++      struct dma_slave_config slave_config;
++      const __be32 *addr;
++      dma_addr_t dma_reg_base;
++      int ret;
++
++      /* base address in dma-space */
++      addr = of_get_address(master->dev.of_node, 0, NULL, NULL);
++      if (!addr) {
++              dev_err(dev, "could not get DMA-register address - not using dma mode\n");
++              goto err;
++      }
++      dma_reg_base = be32_to_cpup(addr);
++
++      /* get tx/rx dma */
++      master->dma_tx = dma_request_slave_channel(dev, "tx");
++      if (!master->dma_tx) {
++              dev_err(dev, "no tx-dma configuration found - not using dma mode\n");
++              goto err;
++      }
++      master->dma_rx = dma_request_slave_channel(dev, "rx");
++      if (!master->dma_rx) {
++              dev_err(dev, "no rx-dma configuration found - not using dma mode\n");
++              goto err_release;
++      }
++
++      /* configure DMAs */
++      slave_config.direction = DMA_MEM_TO_DEV;
++      slave_config.dst_addr = (u32)(dma_reg_base + BCM2835_SPI_FIFO);
++      slave_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
++
++      ret = dmaengine_slave_config(master->dma_tx, &slave_config);
++      if (ret)
++              goto err_config;
++
++      slave_config.direction = DMA_DEV_TO_MEM;
++      slave_config.src_addr = (u32)(dma_reg_base + BCM2835_SPI_FIFO);
++      slave_config.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
++
++      ret = dmaengine_slave_config(master->dma_rx, &slave_config);
++      if (ret)
++              goto err_config;
++
++      /* all went well, so set can_dma */
++      master->can_dma = bcm2835_spi_can_dma;
++      master->max_dma_len = 65535; /* limitation by BCM2835_SPI_DLEN */
++      /* need to do TX AND RX DMA, so we need dummy buffers */
++      master->flags = SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX;
++
++      return;
++
++err_config:
++      dev_err(dev, "issue configuring dma: %d - not using DMA mode\n",
++              ret);
++err_release:
++      bcm2835_dma_release(master);
++err:
++      return;
++}
++
+ static int bcm2835_spi_transfer_one_poll(struct spi_master *master,
+                                        struct spi_device *spi,
+                                        struct spi_transfer *tfr,
+@@ -301,12 +582,26 @@ static int bcm2835_spi_transfer_one(stru
+               return bcm2835_spi_transfer_one_poll(master, spi, tfr,
+                                                    cs, xfer_time_us);
++      /* run in dma mode if conditions are right */
++      if (master->can_dma && bcm2835_spi_can_dma(master, spi, tfr))
++              return bcm2835_spi_transfer_one_dma(master, spi, tfr, cs);
++
++      /* run in interrupt-mode */
+       return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs);
+ }
+ static void bcm2835_spi_handle_err(struct spi_master *master,
+                                  struct spi_message *msg)
+ {
++      struct bcm2835_spi *bs = spi_master_get_devdata(master);
++
++      /* if an error occurred and we have an active dma, then terminate */
++      if (bs->dma_pending) {
++              dmaengine_terminate_all(master->dma_tx);
++              dmaengine_terminate_all(master->dma_rx);
++              bs->dma_pending = 0;
++      }
++      /* and reset */
+       bcm2835_spi_reset_hw(master);
+ }
+@@ -505,6 +800,8 @@ static int bcm2835_spi_probe(struct plat
+               goto out_clk_disable;
+       }
++      bcm2835_dma_init(master, &pdev->dev);
++
+       /* initialise the hardware with the default polarities */
+       bcm2835_wr(bs, BCM2835_SPI_CS,
+                  BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX);
+@@ -535,6 +832,8 @@ static int bcm2835_spi_remove(struct pla
+       clk_disable_unprepare(bs->clk);
++      bcm2835_dma_release(master);
++
+       return 0;
+ }
diff --git a/target/linux/brcm2708/patches-4.1/0157-spi-bcm2835-fix-kbuild-compile-warnings-errors-and-a.patch b/target/linux/brcm2708/patches-4.1/0157-spi-bcm2835-fix-kbuild-compile-warnings-errors-and-a.patch
new file mode 100644 (file)
index 0000000..22aff11
--- /dev/null
@@ -0,0 +1,56 @@
+From fb89852f9971a3d5f40be06e2d8017b9b9b56e19 Mon Sep 17 00:00:00 2001
+From: Martin Sperl <kernel@martin.sperl.org>
+Date: Tue, 12 May 2015 10:32:08 +0000
+Subject: [PATCH 157/171] spi: bcm2835: fix kbuild compile warnings/errors and
+ a typo
+
+fixes several warnings/error emmitted by the kbuild system:
+* warn: cast from pointer to integer of different size
+  using size_t instead of u32
+* error: 'SZ_4K' undeclared
+  moved to PAGE_SIZE and PAGE_MASK instead
+
+Review showed also a typo in the same code where tx_buff
+was checked twice instead of checking both rx and tx_buff.
+
+Reported by: Stephen Rothwell <sfr@canb.auug.org.au>
+Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+(cherry picked from commit 7e52be0d576e8f7bc99a606f07b9d000c4340f04)
+---
+ drivers/spi/spi-bcm2835.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+--- a/drivers/spi/spi-bcm2835.c
++++ b/drivers/spi/spi-bcm2835.c
+@@ -20,6 +20,7 @@
+  * GNU General Public License for more details.
+  */
++#include <asm/page.h>
+ #include <linux/clk.h>
+ #include <linux/completion.h>
+ #include <linux/delay.h>
+@@ -378,18 +379,19 @@ static bool bcm2835_spi_can_dma(struct s
+       }
+       /* if we run rx/tx_buf with word aligned addresses then we are OK */
+-      if (((u32)tfr->tx_buf % 4 == 0) && ((u32)tfr->tx_buf % 4 == 0))
++      if ((((size_t)tfr->rx_buf & 3) == 0) &&
++          (((size_t)tfr->tx_buf & 3) == 0))
+               return true;
+       /* otherwise we only allow transfers within the same page
+        * to avoid wasting time on dma_mapping when it is not practical
+        */
+-      if (((u32)tfr->tx_buf % SZ_4K) + tfr->len > SZ_4K) {
++      if (((size_t)tfr->tx_buf & PAGE_MASK) + tfr->len > PAGE_SIZE) {
+               dev_warn_once(&spi->dev,
+                             "Unaligned spi tx-transfer bridging page\n");
+               return false;
+       }
+-      if (((u32)tfr->rx_buf % SZ_4K) + tfr->len > SZ_4K) {
++      if (((size_t)tfr->rx_buf & PAGE_MASK) + tfr->len > PAGE_SIZE) {
+               dev_warn_once(&spi->dev,
+                             "Unaligned spi tx-transfer bridging page\n");
+               return false;
diff --git a/target/linux/brcm2708/patches-4.1/0158-spi-bcm2835-bcm2835_dma_release-can-be-static.patch b/target/linux/brcm2708/patches-4.1/0158-spi-bcm2835-bcm2835_dma_release-can-be-static.patch
new file mode 100644 (file)
index 0000000..8e4b1d4
--- /dev/null
@@ -0,0 +1,32 @@
+From 35801a979c9ede9ec11ad6aca777376a337e392e Mon Sep 17 00:00:00 2001
+From: kbuild test robot <fengguang.wu@intel.com>
+Date: Tue, 12 May 2015 19:43:59 +0800
+Subject: [PATCH 158/171] spi: bcm2835: bcm2835_dma_release() can be static
+
+Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+(cherry picked from commit 29ad1a7a9e08f1d2b6795c5278a0c0fd23679ded)
+---
+ drivers/spi/spi-bcm2835.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/spi/spi-bcm2835.c
++++ b/drivers/spi/spi-bcm2835.c
+@@ -401,7 +401,7 @@ static bool bcm2835_spi_can_dma(struct s
+       return true;
+ }
+-void bcm2835_dma_release(struct spi_master *master)
++static void bcm2835_dma_release(struct spi_master *master)
+ {
+       if (master->dma_tx) {
+               dmaengine_terminate_all(master->dma_tx);
+@@ -415,7 +415,7 @@ void bcm2835_dma_release(struct spi_mast
+       }
+ }
+-void bcm2835_dma_init(struct spi_master *master, struct device *dev)
++static void bcm2835_dma_init(struct spi_master *master, struct device *dev)
+ {
+       struct dma_slave_config slave_config;
+       const __be32 *addr;
diff --git a/target/linux/brcm2708/patches-4.1/0159-spi-bcm2835-fixed-compile-issues-due-to-embedded-com.patch b/target/linux/brcm2708/patches-4.1/0159-spi-bcm2835-fixed-compile-issues-due-to-embedded-com.patch
new file mode 100644 (file)
index 0000000..6f5cee2
--- /dev/null
@@ -0,0 +1,29 @@
+From c36a53b3df68f0311b808f87c186b9623a28ecd9 Mon Sep 17 00:00:00 2001
+From: Martin Sperl <kernel@martin.sperl.org>
+Date: Wed, 22 Jul 2015 07:43:28 +0000
+Subject: [PATCH 159/171] spi: bcm2835: fixed compile issues due to embedded
+ comments... replaced with #if to avoid issues in the future.
+
+Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
+---
+ drivers/spi/spi-bcm2835.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/spi/spi-bcm2835.c
++++ b/drivers/spi/spi-bcm2835.c
+@@ -592,6 +592,7 @@ static int bcm2835_spi_transfer_one(stru
+       return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs);
+ }
++#if 0
+ static void bcm2835_spi_handle_err(struct spi_master *master,
+                                  struct spi_message *msg)
+ {
+@@ -606,6 +607,7 @@ static void bcm2835_spi_handle_err(struc
+       /* and reset */
+       bcm2835_spi_reset_hw(master);
+ }
++#endif
+ static void bcm2835_spi_set_cs(struct spi_device *spi, bool gpio_level)
+ {
diff --git a/target/linux/brcm2708/patches-4.1/0160-dt-overlay-to-enable-dma-for-spi-driver.patch b/target/linux/brcm2708/patches-4.1/0160-dt-overlay-to-enable-dma-for-spi-driver.patch
new file mode 100644 (file)
index 0000000..891d1be
--- /dev/null
@@ -0,0 +1,45 @@
+From 6d356030061c6e90437dbf4b32f95a1fa36d8868 Mon Sep 17 00:00:00 2001
+From: Martin Sperl <kernel@martin.sperl.org>
+Date: Wed, 22 Jul 2015 08:34:41 +0000
+Subject: [PATCH 160/171] dt-overlay to enable dma for spi driver
+
+Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
+---
+ arch/arm/boot/dts/overlays/Makefile            |  1 +
+ arch/arm/boot/dts/overlays/spi-dma-overlay.dts | 20 ++++++++++++++++++++
+ 2 files changed, 21 insertions(+)
+ create mode 100755 arch/arm/boot/dts/overlays/spi-dma-overlay.dts
+
+--- a/arch/arm/boot/dts/overlays/Makefile
++++ b/arch/arm/boot/dts/overlays/Makefile
+@@ -45,6 +45,7 @@ dtb-$(RPI_DT_OVERLAYS) += rpi-sense-over
+ dtb-$(RPI_DT_OVERLAYS) += sdhost-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += spi-bcm2708-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += spi-bcm2835-overlay.dtb
++dtb-$(RPI_DT_OVERLAYS) += spi-dma-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += tinylcd35-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += uart1-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += vga666-overlay.dtb
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/spi-dma-overlay.dts
+@@ -0,0 +1,20 @@
++/*
++ * Device tree overlay for spi-bcm2835 to allow dma
++ */
++
++/dts-v1/;
++/plugin/;
++
++/ {
++      compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
++
++      fragment@0 {
++              target = <&spi0>;
++              __overlay__ {
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++                      dmas = <&dma 6>, <&dma 7>;
++                      dma-names = "tx", "rx";
++              };
++      };
++ };
diff --git a/target/linux/brcm2708/patches-4.1/0161-dt-overlay-added-documentation-of-spi-dma-overlay.patch b/target/linux/brcm2708/patches-4.1/0161-dt-overlay-added-documentation-of-spi-dma-overlay.patch
new file mode 100644 (file)
index 0000000..3c9c27d
--- /dev/null
@@ -0,0 +1,25 @@
+From ad7d23327d85897f4c467a3cde377d73a2769ac3 Mon Sep 17 00:00:00 2001
+From: Martin Sperl <kernel@martin.sperl.org>
+Date: Wed, 22 Jul 2015 12:41:54 +0000
+Subject: [PATCH 161/171] dt: overlay: added documentation of spi-dma overlay
+
+Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
+---
+ arch/arm/boot/dts/overlays/README | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -515,6 +515,12 @@ Load:   dtoverlay=spi-bcm2835
+ Params: <None>
++Name:   spi-dma
++Info:   enables dma modes for spi-bcm2835
++Load:   dtoverlay=spi-dma
++Params: <None>
++
++
+ Name:   tinylcd35
+ Info:   3.5" Color TFT Display by www.tinylcd.com
+         Options: Touch, RTC, keypad
diff --git a/target/linux/brcm2708/patches-4.1/0162-rpisense-fb-add-low-light-mode-and-gamma-control.patch b/target/linux/brcm2708/patches-4.1/0162-rpisense-fb-add-low-light-mode-and-gamma-control.patch
new file mode 100644 (file)
index 0000000..3ebe306
--- /dev/null
@@ -0,0 +1,141 @@
+From a0d9e5b5186d36693a44d5fd85c1fcd43cfeee61 Mon Sep 17 00:00:00 2001
+From: Serge Schneider <serge@raspberrypi.org>
+Date: Mon, 17 Aug 2015 18:06:16 +0100
+Subject: [PATCH 162/171] rpisense-fb: add low-light mode and gamma control
+
+---
+ drivers/video/fbdev/rpisense-fb.c        | 68 +++++++++++++++++++++++++++++---
+ include/linux/mfd/rpisense/framebuffer.h |  6 ++-
+ 2 files changed, 68 insertions(+), 6 deletions(-)
+
+--- a/drivers/video/fbdev/rpisense-fb.c
++++ b/drivers/video/fbdev/rpisense-fb.c
+@@ -19,6 +19,7 @@
+ #include <linux/string.h>
+ #include <linux/mm.h>
+ #include <linux/slab.h>
++#include <linux/uaccess.h>
+ #include <linux/delay.h>
+ #include <linux/fb.h>
+ #include <linux/init.h>
+@@ -26,22 +27,35 @@
+ #include <linux/mfd/rpisense/framebuffer.h>
+ #include <linux/mfd/rpisense/core.h>
++static bool lowlight;
++module_param(lowlight, bool, 0);
++MODULE_PARM_DESC(lowlight, "Reduce LED matrix brightness to one third");
++
+ struct rpisense *rpisense;
+ struct rpisense_fb_param {
+       char __iomem *vmem;
+       u8 *vmem_work;
+       u32 vmemsize;
+-      u8 gamma[32];
++      u8 *gamma;
+ };
++static u8 gamma_default[32] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
++                             0x02, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x07,
++                             0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0E, 0x0F, 0x11,
++                             0x12, 0x14, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F,};
++
++static u8 gamma_low[32] = {0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
++                         0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02,
++                         0x03, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06,
++                         0x06, 0x07, 0x07, 0x08, 0x08, 0x09, 0x0A, 0x0A,};
++
++static u8 gamma_user[32];
++
+ static struct rpisense_fb_param rpisense_fb_param = {
+       .vmem = NULL,
+       .vmemsize = 128,
+-      .gamma = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+-                0x02, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x07,
+-                0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0E, 0x0F, 0x11,
+-                0x12, 0x14, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F,},
++      .gamma = gamma_default,
+ };
+ static struct fb_deferred_io rpisense_fb_defio;
+@@ -127,6 +141,46 @@ static struct fb_deferred_io rpisense_fb
+       .deferred_io    = rpisense_fb_deferred_io,
+ };
++static int rpisense_fb_ioctl(struct fb_info *info, unsigned int cmd,
++                           unsigned long arg)
++{
++      switch (cmd) {
++      case SENSEFB_FBIOGET_GAMMA:
++              if (copy_to_user((void __user *) arg, rpisense_fb_param.gamma,
++                               sizeof(u8[32])))
++                      return -EFAULT;
++              return 0;
++      case SENSEFB_FBIOSET_GAMMA:
++              if (copy_from_user(gamma_user, (void __user *)arg,
++                                 sizeof(u8[32])))
++                      return -EFAULT;
++              rpisense_fb_param.gamma = gamma_user;
++              schedule_delayed_work(&info->deferred_work,
++                                    rpisense_fb_defio.delay);
++              return 0;
++      case SENSEFB_FBIORESET_GAMMA:
++              switch (arg) {
++              case 0:
++                      rpisense_fb_param.gamma = gamma_default;
++                      break;
++              case 1:
++                      rpisense_fb_param.gamma = gamma_low;
++                      break;
++              case 2:
++                      rpisense_fb_param.gamma = gamma_user;
++                      break;
++              default:
++                      return -EINVAL;
++              }
++              schedule_delayed_work(&info->deferred_work,
++                                    rpisense_fb_defio.delay);
++              break;
++      default:
++              return -EINVAL;
++      }
++      return 0;
++}
++
+ static struct fb_ops rpisense_fb_ops = {
+       .owner          = THIS_MODULE,
+       .fb_read        = fb_sys_read,
+@@ -134,6 +188,7 @@ static struct fb_ops rpisense_fb_ops = {
+       .fb_fillrect    = rpisense_fb_fillrect,
+       .fb_copyarea    = rpisense_fb_copyarea,
+       .fb_imageblit   = rpisense_fb_imageblit,
++      .fb_ioctl       = rpisense_fb_ioctl,
+ };
+ static int rpisense_fb_probe(struct platform_device *pdev)
+@@ -171,6 +226,9 @@ static int rpisense_fb_probe(struct plat
+       info->screen_base = rpisense_fb_param.vmem;
+       info->screen_size = rpisense_fb_param.vmemsize;
++      if (lowlight)
++              rpisense_fb_param.gamma = gamma_low;
++
+       fb_deferred_io_init(info);
+       ret = register_framebuffer(info);
+--- a/include/linux/mfd/rpisense/framebuffer.h
++++ b/include/linux/mfd/rpisense/framebuffer.h
+@@ -16,7 +16,11 @@
+ #ifndef __LINUX_RPISENSE_FB_H_
+ #define __LINUX_RPISENSE_FB_H_
+-#include <linux/platform_device.h>
++#define SENSEFB_FBIO_IOC_MAGIC 0xF1
++
++#define SENSEFB_FBIOGET_GAMMA _IO(SENSEFB_FBIO_IOC_MAGIC, 0)
++#define SENSEFB_FBIOSET_GAMMA _IO(SENSEFB_FBIO_IOC_MAGIC, 1)
++#define SENSEFB_FBIORESET_GAMMA _IO(SENSEFB_FBIO_IOC_MAGIC, 2)
+ struct rpisense;
diff --git a/target/linux/brcm2708/patches-4.1/0163-spi-bcm2835-Fix-buld-error-from-previous-commit.patch b/target/linux/brcm2708/patches-4.1/0163-spi-bcm2835-Fix-buld-error-from-previous-commit.patch
new file mode 100644 (file)
index 0000000..101f28e
--- /dev/null
@@ -0,0 +1,27 @@
+From e418efa578dab433bf7e25eaaec809b33351792c Mon Sep 17 00:00:00 2001
+From: popcornmix <popcornmix@gmail.com>
+Date: Tue, 18 Aug 2015 11:50:03 +0100
+Subject: [PATCH 163/171] spi: bcm2835: Fix buld error from previous commit
+
+---
+ drivers/spi/spi-bcm2835.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/drivers/spi/spi-bcm2835.c
++++ b/drivers/spi/spi-bcm2835.c
+@@ -592,7 +592,6 @@ static int bcm2835_spi_transfer_one(stru
+       return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs);
+ }
+-#if 0
+ static void bcm2835_spi_handle_err(struct spi_master *master,
+                                  struct spi_message *msg)
+ {
+@@ -607,7 +606,6 @@ static void bcm2835_spi_handle_err(struc
+       /* and reset */
+       bcm2835_spi_reset_hw(master);
+ }
+-#endif
+ static void bcm2835_spi_set_cs(struct spi_device *spi, bool gpio_level)
+ {
diff --git a/target/linux/brcm2708/patches-4.1/0164-BCM270X_DT-README-add-note-on-indentation.patch b/target/linux/brcm2708/patches-4.1/0164-BCM270X_DT-README-add-note-on-indentation.patch
new file mode 100644 (file)
index 0000000..98650e7
--- /dev/null
@@ -0,0 +1,22 @@
+From a5fcc9f342ed9a3f028b8cbff4a610f1a8816b5d Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Wed, 19 Aug 2015 11:38:10 +0100
+Subject: [PATCH 164/171] BCM270X_DT: README - add note on indentation
+
+---
+ arch/arm/boot/dts/overlays/README | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -74,6 +74,10 @@ behaviour. See the list of overlays belo
+ The Overlay and Parameter Reference
+ ===================================
++N.B. When editing this file, please preserve the indentation levels to make it simple to parse
++programmatically. NO HARD TABS.
++
++
+ Name:   <The base DTB>
+ Info:   Configures the base Raspberry Pi hardware
+ Load:   <loaded automatically>
diff --git a/target/linux/brcm2708/patches-4.1/0165-bcm2708-dmaengine-Use-more-DMA-channels-but-not-12.patch b/target/linux/brcm2708/patches-4.1/0165-bcm2708-dmaengine-Use-more-DMA-channels-but-not-12.patch
new file mode 100644 (file)
index 0000000..a1029dc
--- /dev/null
@@ -0,0 +1,173 @@
+From 4e62a443aa8ffecca7918db93329d8bd8210a92c Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Thu, 20 Aug 2015 13:50:18 +0100
+Subject: [PATCH 165/171] bcm2708-dmaengine: Use more DMA channels (but not 12)
+
+1) Only the bcm2708_fb drivers uses the legacy DMA API, and
+it requires a BULK-capable channel, so all other types
+(FAST, NORMAL and LITE) can be made available to the regular
+DMA API.
+
+2) DMA channels 11-14 share an interrupt. The driver can't
+handle this, so don't use channels 12-14 (12 was used, probably
+because it appears to have an interrupt, but in reality that
+interrupt is for activity on ANY channel). This may explain
+a lockup encountered when running out of DMA channels.
+
+The combined effect of this patch is to leave 7 DMA channels
+available + channel 0 for bcm2708_fb via the legacy API.
+
+See: https://github.com/raspberrypi/linux/issues/1110
+     https://github.com/raspberrypi/linux/issues/1108
+---
+ arch/arm/boot/dts/bcm2708_common.dtsi |  5 ++--
+ drivers/dma/bcm2708-dmaengine.c       | 43 +++++++++++++++++++++++------------
+ 2 files changed, 31 insertions(+), 17 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm2708_common.dtsi
++++ b/arch/arm/boot/dts/bcm2708_common.dtsi
+@@ -59,11 +59,10 @@
+                                    <1 24>,
+                                    <1 25>,
+                                    <1 26>,
+-                                   <1 27>,
+-                                   <1 28>;
++                                   <1 27>;
+                       #dma-cells = <1>;
+-                      brcm,dma-channel-mask = <0x7f35>;
++                      brcm,dma-channel-mask = <0x0f35>;
+               };
+               intc: interrupt-controller {
+--- a/drivers/dma/bcm2708-dmaengine.c
++++ b/drivers/dma/bcm2708-dmaengine.c
+@@ -184,7 +184,7 @@ static void vc_dmaman_init(struct vc_dma
+ }
+ static int vc_dmaman_chan_alloc(struct vc_dmaman *dmaman,
+-                              unsigned preferred_feature_set)
++                              unsigned required_feature_set)
+ {
+       u32 chans;
+       int chan = 0;
+@@ -193,10 +193,8 @@ static int vc_dmaman_chan_alloc(struct v
+       chans = dmaman->chan_available;
+       for (feature = 0; feature < BCM_DMA_FEATURE_COUNT; feature++)
+               /* select the subset of available channels with the desired
+-                 feature so long as some of the candidate channels have that
+-                 feature */
+-              if ((preferred_feature_set & (1 << feature)) &&
+-                  (chans & dmaman->has_feature[feature]))
++                 features */
++              if (required_feature_set & (1 << feature))
+                       chans &= dmaman->has_feature[feature];
+       if (!chans)
+@@ -228,7 +226,7 @@ static int vc_dmaman_chan_free(struct vc
+ /* DMA Manager Monitor */
+-extern int bcm_dma_chan_alloc(unsigned preferred_feature_set,
++extern int bcm_dma_chan_alloc(unsigned required_feature_set,
+                             void __iomem **out_dma_base, int *out_dma_irq)
+ {
+       struct vc_dmaman *dmaman = g_dmaman;
+@@ -240,7 +238,7 @@ extern int bcm_dma_chan_alloc(unsigned p
+               return -ENODEV;
+       mutex_lock(&dmaman->lock);
+-      chan = vc_dmaman_chan_alloc(dmaman, preferred_feature_set);
++      chan = vc_dmaman_chan_alloc(dmaman, required_feature_set);
+       if (chan < 0)
+               goto out;
+@@ -442,6 +440,7 @@ static inline struct bcm2835_desc *to_bc
+       return container_of(t, struct bcm2835_desc, vd.tx);
+ }
++#if 0
+ static void dma_dumpregs(struct bcm2835_chan *c)
+ {
+       pr_debug("-------------DMA DUMPREGS-------------\n");
+@@ -457,6 +456,7 @@ static void dma_dumpregs(struct bcm2835_
+               readl(c->chan_base + BCM2835_DMA_NEXTCB));
+       pr_debug("--------------------------------------\n");
+ }
++#endif
+ static void bcm2835_dma_desc_free(struct virt_dma_desc *vd)
+ {
+@@ -862,6 +862,7 @@ static struct dma_async_tx_descriptor *b
+               uint32_t len = sg_dma_len(sgent);
+               for (j = 0; j < len; j += max_size) {
++                      u32 waits;
+                       struct bcm2835_dma_cb *control_block =
+                               &d->control_block_base[i+splitct];
+@@ -879,7 +880,7 @@ static struct dma_async_tx_descriptor *b
+                       }
+                       /* Common part */
+-                      u32 waits = SDHCI_BCM_DMA_WAITS;
++                      waits = SDHCI_BCM_DMA_WAITS;
+                       if ((dma_debug >> 0) & 0x1f)
+                               waits = (dma_debug >> 0) & 0x1f;
+                       control_block->info |= BCM2835_DMA_WAITS(waits);
+@@ -1074,6 +1075,14 @@ static int bcm2835_dma_probe(struct plat
+       int rc;
+       int i;
+       int irq;
++#ifdef CONFIG_DMA_BCM2708_LEGACY
++      static const u32 wanted_features[] = {
++              BCM_DMA_FEATURE_FAST,
++              BCM_DMA_FEATURE_NORMAL,
++              BCM_DMA_FEATURE_LITE
++      };
++      int j;
++#endif
+       if (!pdev->dev.dma_mask)
+@@ -1120,20 +1129,24 @@ static int bcm2835_dma_probe(struct plat
+       platform_set_drvdata(pdev, od);
+-      for (i = 0; i < 5; i++) {
++      for (i = 0, j = 0; j < ARRAY_SIZE(wanted_features);) {
++
+               void __iomem *chan_base;
+               int chan_id;
+-              chan_id = bcm_dma_chan_alloc(BCM_DMA_FEATURE_LITE,
+-                      &chan_base,
+-                      &irq);
+-
+-              if (chan_id < 0)
+-                      break;
++              chan_id = bcm_dma_chan_alloc(wanted_features[j],
++                                           &chan_base,
++                                           &irq);
++
++              if (chan_id < 0) {
++                      j++;
++                      continue;
++              }
+               rc = bcm2708_dma_chan_init(od, chan_base, chan_id, irq);
+               if (rc)
+                       goto err_no_dma;
++              i++;
+       }
+       if (pdev->dev.of_node) {
+@@ -1146,6 +1159,8 @@ static int bcm2835_dma_probe(struct plat
+               }
+       }
++      dev_info(&pdev->dev, "Initialized %i DMA channels (+ 1 legacy)\n", i);
++
+ #else
+       rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+       if (rc)
diff --git a/target/linux/brcm2708/patches-4.1/0166-staging-fbtft-Add-reset-to-fbtft_init_display_dt.patch b/target/linux/brcm2708/patches-4.1/0166-staging-fbtft-Add-reset-to-fbtft_init_display_dt.patch
new file mode 100644 (file)
index 0000000..d427f22
--- /dev/null
@@ -0,0 +1,32 @@
+From 568f8a45569daead5a9474074994a3b1dd8bcfc7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
+Date: Sat, 11 Jul 2015 18:48:10 +0200
+Subject: [PATCH 166/171] staging: fbtft: Add reset to fbtft_init_display_dt()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When an init sequence is present in the Device Tree,
+fbtft_init_display_dt() is used to initialize the display.
+Add missing reset function call and activation of
+chip select for parallel bus.
+
+Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
+---
+ drivers/staging/fbtft/fbtft-core.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/staging/fbtft/fbtft-core.c
++++ b/drivers/staging/fbtft/fbtft-core.c
+@@ -1074,6 +1074,11 @@ static int fbtft_init_display_dt(struct
+       p = of_prop_next_u32(prop, NULL, &val);
+       if (!p)
+               return -EINVAL;
++
++      par->fbtftops.reset(par);
++      if (par->gpio.cs != -1)
++              gpio_set_value(par->gpio.cs, 0);  /* Activate chip */
++
+       while (p) {
+               if (val & FBTFT_OF_INIT_CMD) {
+                       val &= 0xFFFF;
diff --git a/target/linux/brcm2708/patches-4.1/0167-BCM270X_DT-mz61581-Revert-to-spi-bcm2708.patch b/target/linux/brcm2708/patches-4.1/0167-BCM270X_DT-mz61581-Revert-to-spi-bcm2708.patch
new file mode 100644 (file)
index 0000000..6b16eec
--- /dev/null
@@ -0,0 +1,31 @@
+From 79cc7775c324c4dd392d62db7f50c2933d23cf1f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
+Date: Sun, 19 Jul 2015 18:57:06 +0200
+Subject: [PATCH 167/171] BCM270X_DT: mz61581: Revert to spi-bcm2708
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The MZ61581 display does not work with spi-bcm2835 and software
+chip select. It works before the commit:
+spi: bcm2835: transform native-cs to gpio-cs on first spi_setup
+
+Revert to spi-bcm2708 until the cause has been detected and the
+issue resolved.
+
+Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
+---
+ arch/arm/boot/dts/overlays/mz61581-overlay.dts | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/arch/arm/boot/dts/overlays/mz61581-overlay.dts
++++ b/arch/arm/boot/dts/overlays/mz61581-overlay.dts
+@@ -12,6 +12,8 @@
+       fragment@0 {
+               target = <&spi0>;
+               __overlay__ {
++                      /* does not work with spi-bcm2835 using software chip selects */
++                      compatible = "brcm,bcm2708-spi";
+                       status = "okay";
+                       spidev@0{
diff --git a/target/linux/brcm2708/patches-4.1/0168-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch b/target/linux/brcm2708/patches-4.1/0168-Add-dev-gpiomem-device-for-rootless-user-GPIO-access.patch
new file mode 100644 (file)
index 0000000..a4e4471
--- /dev/null
@@ -0,0 +1,336 @@
+From ba24fdcd3a1f7282dfba9e5137beaa9d0f999969 Mon Sep 17 00:00:00 2001
+From: Luke Wren <luke@raspberrypi.org>
+Date: Fri, 21 Aug 2015 23:14:48 +0100
+Subject: [PATCH 168/171] Add /dev/gpiomem device for rootless user GPIO access
+
+Signed-off-by: Luke Wren <luke@raspberrypi.org>
+---
+ arch/arm/boot/dts/bcm2708.dtsi          |   6 +
+ arch/arm/boot/dts/bcm2709.dtsi          |   6 +
+ drivers/char/broadcom/Kconfig           |   9 ++
+ drivers/char/broadcom/Makefile          |   3 +
+ drivers/char/broadcom/bcm2835-gpiomem.c | 265 ++++++++++++++++++++++++++++++++
+ 5 files changed, 289 insertions(+)
+ create mode 100644 drivers/char/broadcom/bcm2835-gpiomem.c
+
+--- a/arch/arm/boot/dts/bcm2708.dtsi
++++ b/arch/arm/boot/dts/bcm2708.dtsi
+@@ -15,5 +15,11 @@
+               arm-pmu {
+                       compatible = "arm,arm1176-pmu";
+               };
++
++              gpiomem {
++                      compatible = "brcm,bcm2835-gpiomem";
++                      reg = <0x7e200000 0x1000>;
++                      status = "okay";
++              };
+       };
+ };
+--- a/arch/arm/boot/dts/bcm2709.dtsi
++++ b/arch/arm/boot/dts/bcm2709.dtsi
+@@ -16,6 +16,12 @@
+                       compatible = "arm,cortex-a7-pmu";
+                       interrupts = <3 9>;
+               };
++
++              gpiomem {
++                      compatible = "brcm,bcm2835-gpiomem";
++                      reg = <0x7e200000 0x1000>;
++                      status = "okay";
++              };
+       };
+       timer {
+--- a/drivers/char/broadcom/Kconfig
++++ b/drivers/char/broadcom/Kconfig
+@@ -38,3 +38,12 @@ config BCM_VC_SM
+       help
+       Support for the VC shared memory on the Broadcom reference
+       design. Uses the VCHIQ stack.
++
++config BCM2835_DEVGPIOMEM
++      tristate "/dev/gpiomem rootless GPIO access via mmap() on the BCM2835"
++      default m
++      help
++              Provides users with root-free access to the GPIO registers
++              on the 2835. Calling mmap(/dev/gpiomem) will map the GPIO
++              register page to the user's pointer.
++
+--- a/drivers/char/broadcom/Makefile
++++ b/drivers/char/broadcom/Makefile
+@@ -2,3 +2,6 @@ obj-$(CONFIG_BCM_VC_CMA)       += vc_cma/
+ obj-$(CONFIG_BCM2708_VCMEM)   += vc_mem.o
+ obj-$(CONFIG_BCM_VCIO)                += vcio.o
+ obj-$(CONFIG_BCM_VC_SM)         += vc_sm/
++
++obj-$(CONFIG_BCM2835_DEVGPIOMEM)+= bcm2835-gpiomem.o
++
+--- /dev/null
++++ b/drivers/char/broadcom/bcm2835-gpiomem.c
+@@ -0,0 +1,265 @@
++/**
++ * GPIO memory device driver
++ *
++ * Creates a chardev /dev/gpiomem which will provide user access to
++ * the BCM2835's GPIO registers when it is mmap()'d.
++ * No longer need root for user GPIO access, but without relaxing permissions
++ * on /dev/mem.
++ *
++ * Written by Luke Wren <luke@raspberrypi.org>
++ * Copyright (c) 2015, Raspberry Pi (Trading) Ltd.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ *    notice, this list of conditions, and the following disclaimer,
++ *    without modification.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ *    notice, this list of conditions and the following disclaimer in the
++ *    documentation and/or other materials provided with the distribution.
++ * 3. The names of the above-listed copyright holders may not be used
++ *    to endorse or promote products derived from this software without
++ *    specific prior written permission.
++ *
++ * ALTERNATIVELY, this software may be distributed under the terms of the
++ * GNU General Public License ("GPL") version 2, as published by the Free
++ * Software Foundation.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
++ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
++ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
++ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
++ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/of.h>
++#include <linux/platform_device.h>
++#include <linux/mm.h>
++#include <linux/slab.h>
++#include <linux/cdev.h>
++#include <linux/pagemap.h>
++#include <linux/io.h>
++
++#define DEVICE_NAME "bcm2835-gpiomem"
++#define DRIVER_NAME "gpiomem-bcm2835"
++#define DEVICE_MINOR 0
++
++struct bcm2835_gpiomem_instance {
++      unsigned long gpio_regs_phys;
++      struct device *dev;
++};
++
++static struct cdev bcm2835_gpiomem_cdev;
++static dev_t bcm2835_gpiomem_devid;
++static struct class *bcm2835_gpiomem_class;
++static struct device *bcm2835_gpiomem_dev;
++static struct bcm2835_gpiomem_instance *inst;
++
++
++/****************************************************************************
++*
++*   GPIO mem chardev file ops
++*
++***************************************************************************/
++
++static int bcm2835_gpiomem_open(struct inode *inode, struct file *file)
++{
++      int dev = iminor(inode);
++      int ret = 0;
++
++      dev_info(inst->dev, "gpiomem device opened.");
++
++      if (dev != DEVICE_MINOR) {
++              dev_err(inst->dev, "Unknown minor device: %d", dev);
++              ret = -ENXIO;
++      }
++      return ret;
++}
++
++static int bcm2835_gpiomem_release(struct inode *inode, struct file *file)
++{
++      int dev = iminor(inode);
++      int ret = 0;
++
++      if (dev != DEVICE_MINOR) {
++              dev_err(inst->dev, "Unknown minor device %d", dev);
++              ret = -ENXIO;
++      }
++      return ret;
++}
++
++static const struct vm_operations_struct bcm2835_gpiomem_vm_ops = {
++#ifdef CONFIG_HAVE_IOREMAP_PROT
++      .access = generic_access_phys
++#endif
++};
++
++static int bcm2835_gpiomem_mmap(struct file *file, struct vm_area_struct *vma)
++{
++      /* Ignore what the user says - they're getting the GPIO regs
++         whether they like it or not! */
++      unsigned long gpio_page = inst->gpio_regs_phys >> PAGE_SHIFT;
++
++      vma->vm_page_prot = phys_mem_access_prot(file, gpio_page,
++                                               PAGE_SIZE,
++                                               vma->vm_page_prot);
++      vma->vm_ops = &bcm2835_gpiomem_vm_ops;
++      if (remap_pfn_range(vma, vma->vm_start,
++                      gpio_page,
++                      PAGE_SIZE,
++                      vma->vm_page_prot)) {
++              return -EAGAIN;
++      }
++      return 0;
++}
++
++static const struct file_operations
++bcm2835_gpiomem_fops = {
++      .owner = THIS_MODULE,
++      .open = bcm2835_gpiomem_open,
++      .release = bcm2835_gpiomem_release,
++      .mmap = bcm2835_gpiomem_mmap,
++};
++
++
++ /****************************************************************************
++*
++*   Probe and remove functions
++*
++***************************************************************************/
++
++
++static int bcm2835_gpiomem_probe(struct platform_device *pdev)
++{
++      int err;
++      void *ptr_err;
++      struct device *dev = &pdev->dev;
++      struct device_node *node = dev->of_node;
++      struct resource *ioresource;
++
++      /* Allocate buffers and instance data */
++
++      inst = kzalloc(sizeof(struct bcm2835_gpiomem_instance), GFP_KERNEL);
++
++      if (!inst) {
++              err = -ENOMEM;
++              goto failed_inst_alloc;
++      }
++
++      inst->dev = dev;
++
++      /* Create character device entries */
++
++      err = alloc_chrdev_region(&bcm2835_gpiomem_devid,
++                                DEVICE_MINOR, 1, DEVICE_NAME);
++      if (err != 0) {
++              dev_err(inst->dev, "unable to allocate device number");
++              goto failed_alloc_chrdev;
++      }
++      cdev_init(&bcm2835_gpiomem_cdev, &bcm2835_gpiomem_fops);
++      bcm2835_gpiomem_cdev.owner = THIS_MODULE;
++      err = cdev_add(&bcm2835_gpiomem_cdev, bcm2835_gpiomem_devid, 1);
++      if (err != 0) {
++              dev_err(inst->dev, "unable to register device");
++              goto failed_cdev_add;
++      }
++
++      /* Create sysfs entries */
++
++      bcm2835_gpiomem_class = class_create(THIS_MODULE, DEVICE_NAME);
++      ptr_err = bcm2835_gpiomem_class;
++      if (IS_ERR(ptr_err))
++              goto failed_class_create;
++
++      bcm2835_gpiomem_dev = device_create(bcm2835_gpiomem_class, NULL,
++                                      bcm2835_gpiomem_devid, NULL,
++                                      "gpiomem");
++      ptr_err = bcm2835_gpiomem_dev;
++      if (IS_ERR(ptr_err))
++              goto failed_device_create;
++
++      /* Get address from device tree if available (*_resource() correctly
++         converts the bus address in device tree to a physical address),
++         or use hardcoded offset + BCM2708_PERI_BASE if not.
++         (In spite of its name 2708 actually seems to have the correct
++         mach-dependent value on 2709 etc, as it is defined in
++         mach-bcm270x/platform.h) */
++
++      if (node) {
++              ioresource = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++              inst->gpio_regs_phys = ioresource->start;
++      } else {
++              inst->gpio_regs_phys = GPIO_BASE;
++      }
++
++      dev_info(inst->dev, "Initialised: Registers at 0x%08lx",
++              inst->gpio_regs_phys);
++
++      return 0;
++
++failed_device_create:
++      class_destroy(bcm2835_gpiomem_class);
++failed_class_create:
++      cdev_del(&bcm2835_gpiomem_cdev);
++      err = PTR_ERR(ptr_err);
++failed_cdev_add:
++      unregister_chrdev_region(bcm2835_gpiomem_devid, 1);
++failed_alloc_chrdev:
++      kfree(inst);
++failed_inst_alloc:
++      dev_err(inst->dev, "could not load bcm2835_gpiomem");
++      return err;
++}
++
++static int bcm2835_gpiomem_remove(struct platform_device *pdev)
++{
++      struct device *dev = inst->dev;
++
++      kfree(inst);
++      device_destroy(bcm2835_gpiomem_class, bcm2835_gpiomem_devid);
++      class_destroy(bcm2835_gpiomem_class);
++      cdev_del(&bcm2835_gpiomem_cdev);
++      unregister_chrdev_region(bcm2835_gpiomem_devid, 1);
++
++      dev_info(dev, "GPIO mem driver removed - OK");
++      return 0;
++}
++
++ /****************************************************************************
++*
++*   Register the driver with device tree
++*
++***************************************************************************/
++
++static const struct of_device_id bcm2835_gpiomem_of_match[] = {
++      {.compatible = "brcm,bcm2835-gpiomem",},
++      { /* sentinel */ },
++};
++
++MODULE_DEVICE_TABLE(of, bcm2835_gpiomem_of_match);
++
++static struct platform_driver bcm2835_gpiomem_driver = {
++      .probe = bcm2835_gpiomem_probe,
++      .remove = bcm2835_gpiomem_remove,
++      .driver = {
++                 .name = DRIVER_NAME,
++                 .owner = THIS_MODULE,
++                 .of_match_table = bcm2835_gpiomem_of_match,
++                 },
++};
++
++module_platform_driver(bcm2835_gpiomem_driver);
++
++MODULE_ALIAS("platform:gpiomem-bcm2835");
++MODULE_LICENSE("GPL");
++MODULE_DESCRIPTION("gpiomem driver for accessing GPIO from userspace");
++MODULE_AUTHOR("Luke Wren <luke@raspberrypi.org>");
diff --git a/target/linux/brcm2708/patches-4.1/0169-tpa6130a2-Add-headphone-switch-control.patch b/target/linux/brcm2708/patches-4.1/0169-tpa6130a2-Add-headphone-switch-control.patch
new file mode 100644 (file)
index 0000000..d6840a9
--- /dev/null
@@ -0,0 +1,91 @@
+From aa7324f2f5f19ea3b2865897041f5a2838a92ac7 Mon Sep 17 00:00:00 2001
+From: Jan Grulich <jan@grulich.eu>
+Date: Mon, 24 Aug 2015 16:02:34 +0100
+Subject: [PATCH 169/171] tpa6130a2: Add headphone switch control
+
+Signed-off-by: Jan Grulich <jan@grulich.eu>
+---
+ sound/soc/codecs/tpa6130a2.c | 29 ++++++++++++++++++++++++++---
+ 1 file changed, 26 insertions(+), 3 deletions(-)
+
+--- a/sound/soc/codecs/tpa6130a2.c
++++ b/sound/soc/codecs/tpa6130a2.c
+@@ -4,6 +4,7 @@
+  * Copyright (C) Nokia Corporation
+  *
+  * Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
++ * Modified: Jan Grulich <jan@grulich.eu>
+  *
+  * This program is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU General Public License
+@@ -52,6 +53,8 @@ struct tpa6130a2_data {
+       enum tpa_model id;
+ };
++static void tpa6130a2_channel_enable(u8 channel, int enable);
++
+ static int tpa6130a2_i2c_read(int reg)
+ {
+       struct tpa6130a2_data *data;
+@@ -189,7 +192,7 @@ exit:
+ }
+ static int tpa6130a2_get_volsw(struct snd_kcontrol *kcontrol,
+-              struct snd_ctl_elem_value *ucontrol)
++                             struct snd_ctl_elem_value *ucontrol)
+ {
+       struct soc_mixer_control *mc =
+               (struct soc_mixer_control *)kcontrol->private_value;
+@@ -218,7 +221,7 @@ static int tpa6130a2_get_volsw(struct sn
+ }
+ static int tpa6130a2_put_volsw(struct snd_kcontrol *kcontrol,
+-              struct snd_ctl_elem_value *ucontrol)
++                             struct snd_ctl_elem_value *ucontrol)
+ {
+       struct soc_mixer_control *mc =
+               (struct soc_mixer_control *)kcontrol->private_value;
+@@ -255,8 +258,22 @@ static int tpa6130a2_put_volsw(struct sn
+       return 1;
+ }
++static int tpa6130a2_put_hp_sw(struct snd_kcontrol *kcontrol,
++                             struct snd_ctl_elem_value *ucontrol)
++{
++      int enable = ucontrol->value.integer.value[0];
++      unsigned int state;
++
++      state = (tpa6130a2_read(TPA6130A2_REG_VOL_MUTE) & 0x80) == 0;
++      if (state == enable)
++              return 0; /* No change */
++
++      tpa6130a2_channel_enable(TPA6130A2_HP_EN_R | TPA6130A2_HP_EN_L, enable);
++      return 1; /* Changed */
++}
++
+ /*
+- * TPA6130 volume. From -59.5 to 4 dB with increasing step size when going
++ * TPA6130 volume. From -59.5 to +4.0 dB with increasing step size when going
+  * down in gain.
+  */
+ static const unsigned int tpa6130_tlv[] = {
+@@ -278,6 +295,9 @@ static const struct snd_kcontrol_new tpa
+                      TPA6130A2_REG_VOL_MUTE, 0, 0x3f, 0,
+                      tpa6130a2_get_volsw, tpa6130a2_put_volsw,
+                      tpa6130_tlv),
++      SOC_SINGLE_EXT("TPA6130A2 Headphone Playback Switch",
++                     TPA6130A2_REG_VOL_MUTE, 7, 1, 1,
++                     tpa6130a2_get_volsw, tpa6130a2_put_hp_sw),
+ };
+ static const unsigned int tpa6140_tlv[] = {
+@@ -292,6 +312,9 @@ static const struct snd_kcontrol_new tpa
+                      TPA6130A2_REG_VOL_MUTE, 1, 0x1f, 0,
+                      tpa6130a2_get_volsw, tpa6130a2_put_volsw,
+                      tpa6140_tlv),
++      SOC_SINGLE_EXT("TPA6140A2 Headphone Playback Switch",
++                     TPA6130A2_REG_VOL_MUTE, 7, 1, 1,
++                     tpa6130a2_get_volsw, tpa6130a2_put_hp_sw),
+ };
+ /*
diff --git a/target/linux/brcm2708/patches-4.1/0170-RaspiDAC3-support.patch b/target/linux/brcm2708/patches-4.1/0170-RaspiDAC3-support.patch
new file mode 100644 (file)
index 0000000..8de4036
--- /dev/null
@@ -0,0 +1,335 @@
+From 023b465fbab6f672219706bbe19a9fbfa38c6192 Mon Sep 17 00:00:00 2001
+From: Jan Grulich <jan@grulich.eu>
+Date: Mon, 24 Aug 2015 16:03:47 +0100
+Subject: [PATCH 170/171] RaspiDAC3 support
+
+Signed-off-by: Jan Grulich <jan@grulich.eu>
+---
+ arch/arm/boot/dts/overlays/Makefile              |   1 +
+ arch/arm/boot/dts/overlays/README                |   6 +
+ arch/arm/boot/dts/overlays/raspidac3-overlay.dts |  45 ++++++
+ arch/arm/configs/bcm2709_defconfig               |   1 +
+ arch/arm/configs/bcmrpi_defconfig                |   1 +
+ sound/soc/bcm/Kconfig                            |   8 +
+ sound/soc/bcm/Makefile                           |   2 +
+ sound/soc/bcm/raspidac3.c                        | 191 +++++++++++++++++++++++
+ 8 files changed, 255 insertions(+)
+ create mode 100644 arch/arm/boot/dts/overlays/raspidac3-overlay.dts
+ create mode 100644 sound/soc/bcm/raspidac3.c
+
+--- a/arch/arm/boot/dts/overlays/Makefile
++++ b/arch/arm/boot/dts/overlays/Makefile
+@@ -37,6 +37,7 @@ dtb-$(RPI_DT_OVERLAYS) += pitft28-resist
+ dtb-$(RPI_DT_OVERLAYS) += pps-gpio-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += pwm-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += pwm-2chan-overlay.dtb
++dtb-$(RPI_DT_OVERLAYS) += raspidac3-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += rpi-dac-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += rpi-display-overlay.dtb
+ dtb-$(RPI_DT_OVERLAYS) += rpi-ft5406-overlay.dtb
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -455,6 +455,12 @@ Params: pin                      Output
+         clock                    PWM clock frequency (informational)
++Name:   raspidac3
++Info:   Configures the RaspiDAV Rev.3x audio card
++Load:   dtoverlay=raspidac3
++Params: <None>
++
++
+ Name:   rpi-dac
+ Info:   Configures the RPi DAC audio card
+ Load:   dtoverlay=rpi-dac
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/raspidac3-overlay.dts
+@@ -0,0 +1,45 @@
++// Definitions for RaspiDACv3
++/dts-v1/;
++/plugin/;
++
++/ {
++      compatible = "brcm,bcm2708";
++
++      fragment@0 {
++              target = <&sound>;
++              __overlay__ {
++                      compatible = "jg,raspidacv3";
++                      i2s-controller = <&i2s>;
++                      status = "okay";
++              };
++      };
++
++      fragment@1 {
++              target = <&i2s>;
++              __overlay__ {
++                      status = "okay";
++              };
++      };
++
++      fragment@2 {
++              target = <&i2c1>;
++              __overlay__ {
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++                      status = "okay";
++
++                      pcm5122@4c {
++                              #sound-dai-cells = <0>;
++                              compatible = "ti,pcm5122";
++                              reg = <0x4c>;
++                              status = "okay";
++                      };
++
++                      tpa6130a2: tpa6130a2@60 {
++                              compatible = "ti,tpa6130a2";
++                              reg = <0x60>;
++                              status = "okay";
++                      };
++              };
++      };
++};
+--- a/arch/arm/configs/bcm2709_defconfig
++++ b/arch/arm/configs/bcm2709_defconfig
+@@ -830,6 +830,7 @@ CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP=m
+ CONFIG_SND_BCM2708_SOC_RPI_DAC=m
+ CONFIG_SND_BCM2708_SOC_RPI_PROTO=m
+ CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC=m
++CONFIG_SND_BCM2708_SOC_RASPIDAC3=m
+ CONFIG_SND_SOC_WM8804_I2C=m
+ CONFIG_SND_SIMPLE_CARD=m
+ CONFIG_SOUND_PRIME=m
+--- a/arch/arm/configs/bcmrpi_defconfig
++++ b/arch/arm/configs/bcmrpi_defconfig
+@@ -823,6 +823,7 @@ CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP=m
+ CONFIG_SND_BCM2708_SOC_RPI_DAC=m
+ CONFIG_SND_BCM2708_SOC_RPI_PROTO=m
+ CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC=m
++CONFIG_SND_BCM2708_SOC_RASPIDAC3=m
+ CONFIG_SND_SOC_WM8804_I2C=m
+ CONFIG_SND_SIMPLE_CARD=m
+ CONFIG_SOUND_PRIME=m
+--- a/sound/soc/bcm/Kconfig
++++ b/sound/soc/bcm/Kconfig
+@@ -67,3 +67,11 @@ config SND_BCM2708_SOC_IQAUDIO_DAC
+       select SND_SOC_PCM512x_I2C
+       help
+         Say Y or M if you want to add support for IQaudIO-DAC.
++
++config SND_BCM2708_SOC_RASPIDAC3
++      tristate "Support for RaspiDAC Rev.3x"
++      depends on SND_BCM2708_SOC_I2S
++      select SND_SOC_PCM512x_I2C
++      select SND_SOC_TPA6130A2
++      help
++        Say Y or M if you want to add support for RaspiDAC Rev.3x.
+--- a/sound/soc/bcm/Makefile
++++ b/sound/soc/bcm/Makefile
+@@ -16,6 +16,7 @@ snd-soc-hifiberry-amp-objs := hifiberry_
+ snd-soc-rpi-dac-objs := rpi-dac.o
+ snd-soc-rpi-proto-objs := rpi-proto.o
+ snd-soc-iqaudio-dac-objs := iqaudio-dac.o
++snd-soc-raspidac3-objs := raspidac3.o
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC) += snd-soc-hifiberry-dac.o
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS) += snd-soc-hifiberry-dacplus.o
+@@ -24,3 +25,4 @@ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_A
+ obj-$(CONFIG_SND_BCM2708_SOC_RPI_DAC) += snd-soc-rpi-dac.o
+ obj-$(CONFIG_SND_BCM2708_SOC_RPI_PROTO) += snd-soc-rpi-proto.o
+ obj-$(CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC) += snd-soc-iqaudio-dac.o
++obj-$(CONFIG_SND_BCM2708_SOC_RASPIDAC3) += snd-soc-raspidac3.o
+--- /dev/null
++++ b/sound/soc/bcm/raspidac3.c
+@@ -0,0 +1,191 @@
++/*
++ * ASoC Driver for RaspiDAC v3
++ *
++ * Author:    Jan Grulich <jan@grulich.eu>
++ *            Copyright 2015
++ *              based on code by Daniel Matuschek <daniel@hifiberry.com>
++ *            based on code by Florian Meier <florian.meier@koalo.de>
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * version 2 as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * General Public License for more details.
++ */
++
++#include <linux/module.h>
++#include <linux/platform_device.h>
++
++#include <sound/core.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++#include <sound/jack.h>
++#include <sound/soc-dapm.h>
++
++#include "../codecs/pcm512x.h"
++#include "../codecs/tpa6130a2.h"
++
++/* sound card init */
++static int snd_rpi_raspidac3_init(struct snd_soc_pcm_runtime *rtd)
++{
++      int ret;
++      struct snd_soc_card *card = rtd->card;
++      struct snd_soc_codec *codec = rtd->codec;
++      snd_soc_update_bits(codec, PCM512x_GPIO_EN, 0x08, 0x08);
++      snd_soc_update_bits(codec, PCM512x_GPIO_OUTPUT_4, 0xf, 0x02);
++      snd_soc_update_bits(codec, PCM512x_GPIO_CONTROL_1, 0x08,0x00);
++
++      ret = snd_soc_limit_volume(codec, "Digital Playback Volume", 207);
++      if (ret < 0)
++              dev_warn(card->dev, "Failed to set volume limit: %d\n", ret);
++      else {
++              struct snd_kcontrol *kctl;
++
++              ret = tpa6130a2_add_controls(codec);
++              if (ret < 0)
++                      dev_warn(card->dev, "Failed to add TPA6130A2 controls: %d\n",
++                               ret);
++              ret = snd_soc_limit_volume(codec,
++                                         "TPA6130A2 Headphone Playback Volume",
++                                         54);
++              if (ret < 0)
++                      dev_warn(card->dev, "Failed to set TPA6130A2 volume limit: %d\n",
++                               ret);
++              kctl = snd_soc_card_get_kcontrol(card,
++                                               "TPA6130A2 Headphone Playback Volume");
++              if (kctl) {
++                      strcpy(kctl->id.name, "Headphones Playback Volume");
++                      /* disable the volume dB scale so alsamixer works */
++                      kctl->vd[0].access = SNDRV_CTL_ELEM_ACCESS_READWRITE;
++              }
++
++              kctl = snd_soc_card_get_kcontrol(card,
++                                               "TPA6130A2 Headphone Playback Switch");
++              if (kctl)
++                      strcpy(kctl->id.name, "Headphones Playback Switch");
++      }
++
++      return 0;
++}
++
++/* set hw parameters */
++static int snd_rpi_raspidac3_hw_params(struct snd_pcm_substream *substream,
++                                     struct snd_pcm_hw_params *params)
++{
++      struct snd_soc_pcm_runtime *rtd = substream->private_data;
++      struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
++
++      unsigned int sample_bits =
++              snd_pcm_format_physical_width(params_format(params));
++
++      return snd_soc_dai_set_bclk_ratio(cpu_dai, sample_bits * 2);
++}
++
++/* startup */
++static int snd_rpi_raspidac3_startup(struct snd_pcm_substream *substream) {
++      struct snd_soc_pcm_runtime *rtd = substream->private_data;
++      struct snd_soc_codec *codec = rtd->codec;
++      snd_soc_update_bits(codec, PCM512x_GPIO_CONTROL_1, 0x08,0x08);
++      tpa6130a2_stereo_enable(codec, 1);
++      return 0;
++}
++
++/* shutdown */
++static void snd_rpi_raspidac3_shutdown(struct snd_pcm_substream *substream) {
++      struct snd_soc_pcm_runtime *rtd = substream->private_data;
++      struct snd_soc_codec *codec = rtd->codec;
++      snd_soc_update_bits(codec, PCM512x_GPIO_CONTROL_1, 0x08,0x00);
++      tpa6130a2_stereo_enable(codec, 0);
++}
++
++/* machine stream operations */
++static struct snd_soc_ops snd_rpi_raspidac3_ops = {
++      .hw_params = snd_rpi_raspidac3_hw_params,
++      .startup = snd_rpi_raspidac3_startup,
++      .shutdown = snd_rpi_raspidac3_shutdown,
++};
++
++/* interface setup */
++static struct snd_soc_dai_link snd_rpi_raspidac3_dai[] = {
++{
++      .name           = "RaspiDAC Rev.3x",
++      .stream_name    = "RaspiDAC HiFi",
++      .cpu_dai_name   = "bcm2708-i2s.0",
++      .codec_dai_name = "pcm512x-hifi",
++      .platform_name  = "bcm2708-i2s.0",
++      .codec_name     = "pcm512x.1-004c",
++      .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
++                              SND_SOC_DAIFMT_CBS_CFS,
++      .ops            = &snd_rpi_raspidac3_ops,
++      .init           = snd_rpi_raspidac3_init,
++},
++};
++
++/* audio machine driver */
++static struct snd_soc_card snd_rpi_raspidac3 = {
++      .name         = "RaspiDAC Rev.3x HiFi Audio Card",
++      .dai_link     = snd_rpi_raspidac3_dai,
++      .num_links    = ARRAY_SIZE(snd_rpi_raspidac3_dai),
++};
++
++/* sound card test */
++static int snd_rpi_raspidac3_probe(struct platform_device *pdev)
++{
++      int ret = 0;
++
++      snd_rpi_raspidac3.dev = &pdev->dev;
++
++      if (pdev->dev.of_node) {
++          struct device_node *i2s_node;
++          struct snd_soc_dai_link *dai = &snd_rpi_raspidac3_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;
++          }
++      }
++
++      ret = snd_soc_register_card(&snd_rpi_raspidac3);
++      if (ret)
++              dev_err(&pdev->dev,
++                      "snd_soc_register_card() failed: %d\n", ret);
++
++      return ret;
++}
++
++/* sound card disconnect */
++static int snd_rpi_raspidac3_remove(struct platform_device *pdev)
++{
++      return snd_soc_unregister_card(&snd_rpi_raspidac3);
++}
++
++static const struct of_device_id raspidac3_of_match[] = {
++      { .compatible = "jg,raspidacv3", },
++      {},
++};
++MODULE_DEVICE_TABLE(of, raspidac3_of_match);
++
++/* sound card platform driver */
++static struct platform_driver snd_rpi_raspidac3_driver = {
++      .driver = {
++              .name   = "snd-rpi-raspidac3",
++              .owner  = THIS_MODULE,
++              .of_match_table = raspidac3_of_match,
++      },
++      .probe          = snd_rpi_raspidac3_probe,
++      .remove         = snd_rpi_raspidac3_remove,
++};
++
++module_platform_driver(snd_rpi_raspidac3_driver);
++
++MODULE_AUTHOR("Jan Grulich <jan@grulich.eu>");
++MODULE_DESCRIPTION("ASoC Driver for RaspiDAC Rev.3x");
++MODULE_LICENSE("GPL v2");
diff --git a/target/linux/brcm2708/patches-4.1/0171-config-Add-SND_SOC_ADAU1701-module.patch b/target/linux/brcm2708/patches-4.1/0171-config-Add-SND_SOC_ADAU1701-module.patch
new file mode 100644 (file)
index 0000000..69d7fc6
--- /dev/null
@@ -0,0 +1,30 @@
+From 75a0d18d0d9f501f4325cf9917cae681d3dd995a Mon Sep 17 00:00:00 2001
+From: popcornmix <popcornmix@gmail.com>
+Date: Tue, 14 Jul 2015 16:55:02 +0100
+Subject: [PATCH 171/171] config: Add SND_SOC_ADAU1701 module
+
+---
+ arch/arm/configs/bcm2709_defconfig | 1 +
+ arch/arm/configs/bcmrpi_defconfig  | 1 +
+ 2 files changed, 2 insertions(+)
+
+--- a/arch/arm/configs/bcm2709_defconfig
++++ b/arch/arm/configs/bcm2709_defconfig
+@@ -831,6 +831,7 @@ CONFIG_SND_BCM2708_SOC_RPI_DAC=m
+ CONFIG_SND_BCM2708_SOC_RPI_PROTO=m
+ CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC=m
+ CONFIG_SND_BCM2708_SOC_RASPIDAC3=m
++CONFIG_SND_SOC_ADAU1701=m
+ CONFIG_SND_SOC_WM8804_I2C=m
+ CONFIG_SND_SIMPLE_CARD=m
+ CONFIG_SOUND_PRIME=m
+--- a/arch/arm/configs/bcmrpi_defconfig
++++ b/arch/arm/configs/bcmrpi_defconfig
+@@ -824,6 +824,7 @@ CONFIG_SND_BCM2708_SOC_RPI_DAC=m
+ CONFIG_SND_BCM2708_SOC_RPI_PROTO=m
+ CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC=m
+ CONFIG_SND_BCM2708_SOC_RASPIDAC3=m
++CONFIG_SND_SOC_ADAU1701=m
+ CONFIG_SND_SOC_WM8804_I2C=m
+ CONFIG_SND_SIMPLE_CARD=m
+ CONFIG_SOUND_PRIME=m