diff --git a/packages/audio/rpi-cirrus-config/config/rpi-cirrus-config.sh.sample b/packages/audio/rpi-cirrus-config/config/rpi-cirrus-config.sh.sample
new file mode 100644
index 0000000000..76fdb71bdb
--- /dev/null
+++ b/packages/audio/rpi-cirrus-config/config/rpi-cirrus-config.sh.sample
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# Sample user config script to setup Cirrus Logic Audio Card
+
+# load helper functions and definitions
+. /usr/lib/alsa/rpi-cirrus-functions.sh
+
+# enable output to S/PDIF, line out and headset out
+playback_to_spdif
+playback_to_lineout
+playback_to_headset
+
+# disable noise gate - this can cut off the first few ms of playback
+mixer 'Noise Gate Switch' off
+
+# Uncomment this line to enable output to speakers
+# playback_to_speakers
+
+# example: mix line in and headset in into line out using a high-pass filter
+# - line in gain is set to +8dB
+# - headset in gain is set to +20dB
+# - line in and headset in are mixed together in the filter, each using
+# a gain of -3dB (volume 29). line in uses input 1, headset in input 2
+# - first input of line out is connected to audio signal from RPi/Kodi,
+# using a -3dB gain
+# - second input of line out is connected to output of the filter
+#
+# mixer "${line_out} Digital Switch" off # mute output
+# setup_line_in 8
+# setup_headset_in 20
+# setup_filter "High-Pass" "240,3"
+# set_mixer $filter_signals $line_in_signals 29 1
+# set_mixer $filter_signals $headset_in_signals 29 2
+# set_mixer $line_out_signals $rpi_out_signals 29 1
+# set_mixer $line_out_signals $filter_signals 29 2
+# mixer "${line_out} Digital Switch" on # unmute output
diff --git a/packages/audio/rpi-cirrus-config/modprobe.d/rpi-cirrus.conf b/packages/audio/rpi-cirrus-config/modprobe.d/rpi-cirrus.conf
new file mode 100644
index 0000000000..2b3237d29f
--- /dev/null
+++ b/packages/audio/rpi-cirrus-config/modprobe.d/rpi-cirrus.conf
@@ -0,0 +1 @@
+softdep arizona-spi pre: arizona-ldo1
diff --git a/packages/audio/rpi-cirrus-config/package.mk b/packages/audio/rpi-cirrus-config/package.mk
new file mode 100644
index 0000000000..36d1daf757
--- /dev/null
+++ b/packages/audio/rpi-cirrus-config/package.mk
@@ -0,0 +1,46 @@
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2016-2017 Team LibreELEC
+#
+# LibreELEC is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# LibreELEC 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with LibreELEC. If not, see .
+################################################################################
+
+PKG_NAME="rpi-cirrus-config"
+PKG_VERSION="0.0.1"
+PKG_ARCH="any"
+PKG_LICENSE="GPL"
+PKG_SITE="https://github.com/HiassofT/rpi-cirrus-config"
+PKG_URL="https://github.com/HiassofT/rpi-cirrus-config/archive/$PKG_VERSION.tar.gz"
+PKG_DEPENDS_TARGET="alsa-utils"
+PKG_SECTION="driver"
+PKG_SHORTDESC="Config scripts for the Wolfson/Cirrus Logic audio card"
+PKG_LONGDESC="Config scripts for the Wolfson/Cirrus Logic audio card"
+
+make_target() {
+ : #
+}
+
+makeinstall_target() {
+ mkdir -p $INSTALL/usr/lib/udev
+ install -m 0755 $PKG_DIR/scripts/rpi-cirrus-config $INSTALL/usr/lib/udev/rpi-cirrus-config
+
+ mkdir -p $INSTALL/usr/share/alsa/cards
+ cp alsa/RPiCirrus.conf $INSTALL/usr/share/alsa/cards
+
+ mkdir -p $INSTALL/usr/lib/alsa
+ cp mixer-scripts/rpi-cirrus-functions.sh $INSTALL/usr/lib/alsa
+
+ mkdir -p $INSTALL/usr/config
+ cp -PR $PKG_DIR/config/* $INSTALL/usr/config
+}
diff --git a/packages/audio/rpi-cirrus-config/scripts/rpi-cirrus-config b/packages/audio/rpi-cirrus-config/scripts/rpi-cirrus-config
new file mode 100755
index 0000000000..d8bda0b07c
--- /dev/null
+++ b/packages/audio/rpi-cirrus-config/scripts/rpi-cirrus-config
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+# setup default mixer settings for Cirrus Logic Audio Card
+
+. /etc/profile
+
+if [ -f $HOME/.config/sound.conf ] ; then
+ alsactl restore -f $HOME/.config/sound.conf
+else
+ if [ -r $HOME/.config/rpi-cirrus-config.sh ] ; then
+ progress "Setting up Cirrus Logic Audio Card with user config"
+ sh $HOME/.config/rpi-cirrus-config.sh
+ else
+ progress "Setting up Cirrus Logic Audio Card"
+
+ # load helper functions and definitions
+ . /usr/lib/alsa/rpi-cirrus-functions.sh
+
+ playback_to_spdif
+ playback_to_lineout
+ playback_to_headset
+ mixer 'Noise Gate Switch' off
+ fi
+fi
diff --git a/packages/audio/rpi-cirrus-config/udev.d/90-alsa-restore.rules b/packages/audio/rpi-cirrus-config/udev.d/90-alsa-restore.rules
new file mode 100644
index 0000000000..a9df1fa923
--- /dev/null
+++ b/packages/audio/rpi-cirrus-config/udev.d/90-alsa-restore.rules
@@ -0,0 +1,32 @@
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2016 Team LibreELEC
+#
+# LibreELEC is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# LibreELEC 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with LibreELEC. If not, see .
+################################################################################
+
+# When a sound device is detected, restore the volume settings
+SUBSYSTEM=="sound", KERNEL=="controlC*", NAME="snd/%k", ACTION=="add", GOTO="alsa_restore_go"
+GOTO="alsa_restore_end"
+
+LABEL="alsa_restore_go"
+
+# Separate config-script for RPi-Cirrus card
+DRIVERS=="snd-rpi-cirrus", RUN+="rpi-cirrus-config", GOTO="alsa_restore_end"
+
+# Default config-script for all other cards
+RUN+="soundconfig %k"
+
+LABEL="alsa_restore_end"
+
diff --git a/packages/linux/package.mk b/packages/linux/package.mk
index c939158529..211a6cd9a2 100644
--- a/packages/linux/package.mk
+++ b/packages/linux/package.mk
@@ -59,7 +59,7 @@ case "$LINUX" in
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET imx6-status-led imx6-soc-fan irqbalanced"
;;
*)
- PKG_VERSION="4.9.8"
+ PKG_VERSION="4.9.13"
PKG_URL="http://www.kernel.org/pub/linux/kernel/v4.x/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_PATCH_DIRS="default"
;;
diff --git a/projects/RPi/linux/linux.arm.conf b/projects/RPi/linux/linux.arm.conf
index 8c59816d08..88f6d6f286 100644
--- a/projects/RPi/linux/linux.arm.conf
+++ b/projects/RPi/linux/linux.arm.conf
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm 4.9.6 Kernel Configuration
+# Linux/arm 4.9.13 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_ARM_HAS_SG_CHAIN=y
@@ -961,6 +961,7 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
CONFIG_RFKILL=m
CONFIG_RFKILL_LEDS=y
CONFIG_RFKILL_INPUT=y
+# CONFIG_RFKILL_REGULATOR is not set
# CONFIG_RFKILL_GPIO is not set
# CONFIG_NET_9P is not set
# CONFIG_CAIF is not set
@@ -1565,6 +1566,7 @@ CONFIG_INPUT_MISC=y
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
# CONFIG_INPUT_CM109 is not set
+# CONFIG_INPUT_REGULATOR_HAPTIC is not set
CONFIG_INPUT_UINPUT=y
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
@@ -1890,6 +1892,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_LP8727 is not set
# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_MANAGER is not set
# CONFIG_CHARGER_BQ2415X is not set
# CONFIG_CHARGER_BQ24190 is not set
# CONFIG_CHARGER_BQ24257 is not set
@@ -2200,7 +2203,41 @@ CONFIG_MFD_WM5102=y
# CONFIG_MFD_WM831X_SPI is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_WM8994 is not set
-# CONFIG_REGULATOR is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_ACT8865 is not set
+# CONFIG_REGULATOR_AD5398 is not set
+CONFIG_REGULATOR_ARIZONA=m
+# CONFIG_REGULATOR_DA9210 is not set
+# CONFIG_REGULATOR_DA9211 is not set
+# CONFIG_REGULATOR_FAN53555 is not set
+# CONFIG_REGULATOR_GPIO is not set
+# CONFIG_REGULATOR_ISL9305 is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_LP872X is not set
+# CONFIG_REGULATOR_LP8755 is not set
+# CONFIG_REGULATOR_LTC3589 is not set
+# CONFIG_REGULATOR_LTC3676 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_MAX8973 is not set
+# CONFIG_REGULATOR_MT6311 is not set
+# CONFIG_REGULATOR_PFUZE100 is not set
+# CONFIG_REGULATOR_PV88060 is not set
+# CONFIG_REGULATOR_PV88080 is not set
+# CONFIG_REGULATOR_PV88090 is not set
+# CONFIG_REGULATOR_TPS51632 is not set
+# CONFIG_REGULATOR_TPS62360 is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_TPS6524X is not set
CONFIG_MEDIA_SUPPORT=m
#
@@ -2686,6 +2723,7 @@ CONFIG_SND_PCM=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
+CONFIG_SND_COMPRESS_OFFLOAD=m
CONFIG_SND_JACK=y
CONFIG_SND_JACK_INPUT_DEV=y
# CONFIG_SND_SEQUENCER is not set
@@ -2732,6 +2770,7 @@ CONFIG_SND_USB_TONEPORT=m
CONFIG_SND_USB_VARIAX=m
CONFIG_SND_SOC=m
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
+CONFIG_SND_SOC_COMPRESS=y
# CONFIG_SND_SOC_AMD_ACP is not set
# CONFIG_SND_ATMEL_SOC is not set
CONFIG_SND_BCM2835_SOC_I2S=m
@@ -2739,6 +2778,7 @@ CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC=m
CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS=m
CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI=m
CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP=m
+CONFIG_SND_BCM2708_SOC_RPI_CIRRUS=m
CONFIG_SND_BCM2708_SOC_RPI_DAC=m
CONFIG_SND_BCM2708_SOC_RPI_PROTO=m
CONFIG_SND_BCM2708_SOC_JUSTBOOM_DAC=m
@@ -2750,6 +2790,7 @@ CONFIG_SND_BCM2708_SOC_ADAU1977_ADC=m
CONFIG_SND_AUDIOINJECTOR_PI_SOUNDCARD=m
CONFIG_SND_DIGIDAC1_SOUNDCARD=m
CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO=m
+CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO_V2=m
CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC=m
CONFIG_SND_PISOUND=m
# CONFIG_SND_DESIGNWARE_I2S is not set
@@ -2774,6 +2815,8 @@ CONFIG_SND_SOC_I2C_AND_SPI=m
#
# CODEC drivers
#
+CONFIG_SND_SOC_ARIZONA=m
+CONFIG_SND_SOC_WM_ADSP=m
# CONFIG_SND_SOC_AC97_CODEC is not set
# CONFIG_SND_SOC_ADAU1701 is not set
CONFIG_SND_SOC_ADAU1977=m
@@ -2837,6 +2880,7 @@ CONFIG_SND_SOC_TAS5713=m
# CONFIG_SND_SOC_TLV320AIC31XX is not set
# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_TS3A227E is not set
+CONFIG_SND_SOC_WM5102=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
# CONFIG_SND_SOC_WM8580 is not set
@@ -3204,6 +3248,7 @@ CONFIG_LEDS_GPIO=y
# CONFIG_LEDS_PCA955X is not set
# CONFIG_LEDS_PCA963X is not set
# CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_REGULATOR is not set
# CONFIG_LEDS_BD2802 is not set
# CONFIG_LEDS_LT3593 is not set
# CONFIG_LEDS_TCA6507 is not set
diff --git a/projects/RPi/options b/projects/RPi/options
index 97b38d543d..bb0e503a5f 100644
--- a/projects/RPi/options
+++ b/projects/RPi/options
@@ -140,4 +140,4 @@
# for a list of additinoal drivers see packages/linux-drivers
# Space separated list is supported,
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
- ADDITIONAL_DRIVERS="$ADDITIONAL_DRIVERS media_build"
+ ADDITIONAL_DRIVERS="$ADDITIONAL_DRIVERS media_build rpi-cirrus-config"
diff --git a/projects/RPi/patches/linux/linux-01-RPi_support.patch b/projects/RPi/patches/linux/linux-01-RPi_support.patch
index bebef04465..051688a41f 100644
--- a/projects/RPi/patches/linux/linux-01-RPi_support.patch
+++ b/projects/RPi/patches/linux/linux-01-RPi_support.patch
@@ -1,7 +1,7 @@
-From 3df8aa3aa981f3c463d793b69fa23c5aab53fec2 Mon Sep 17 00:00:00 2001
+From 5b3bce3c7cc7c2c353709f0197c86cc09978922b Mon Sep 17 00:00:00 2001
From: Steve Glendinning
Date: Thu, 19 Feb 2015 18:47:12 +0000
-Subject: [PATCH 001/140] smsx95xx: fix crimes against truesize
+Subject: [PATCH 001/187] 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.
@@ -48,10 +48,10 @@ index 831aa33d078ae7d2dd57fdded5de71d1eb915f99..b77935bded8c0ff7808b00f170ff10e5
usbnet_skb_return(dev, ax_skb);
}
-From aefca8fa1aefb12cc7ac1862b4c6e94c1ec9e74c Mon Sep 17 00:00:00 2001
+From f1b3225d7b4b1bf55b5daf2c95a19b7565b08b52 Mon Sep 17 00:00:00 2001
From: Sam Nazarko
Date: Fri, 1 Apr 2016 17:27:21 +0100
-Subject: [PATCH 002/140] smsc95xx: Experimental: Enable turbo_mode and
+Subject: [PATCH 002/187] smsc95xx: Experimental: Enable turbo_mode and
packetsize=2560 by default
See: http://forum.kodi.tv/showthread.php?tid=285288
@@ -94,10 +94,10 @@ index b77935bded8c0ff7808b00f170ff10e594300ad0..693f163684de921404738e33244881e0
netif_dbg(dev, ifup, dev->net, "rx_urb_size=%ld\n",
-From a4774fe88b0a06562a7b6c5d3181f13e7444a3f0 Mon Sep 17 00:00:00 2001
+From 1d04650c28a39de8e0e3158e17cc84c5580fa1a6 Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Tue, 26 Mar 2013 17:26:38 +0000
-Subject: [PATCH 003/140] Allow mac address to be set in smsc95xx
+Subject: [PATCH 003/187] Allow mac address to be set in smsc95xx
Signed-off-by: popcornmix
---
@@ -193,10 +193,10 @@ index 693f163684de921404738e33244881e0aab92ec9..df60c989fc229bf0aab3c27e95ccd453
eth_hw_addr_random(dev->net);
netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n");
-From 0b4480a51b80954e34605c9bf42947d97e37d1c3 Mon Sep 17 00:00:00 2001
+From 7cb0c34c77963aac8b7c282986088eb479ea3362 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Fri, 13 Mar 2015 12:43:36 +0000
-Subject: [PATCH 004/140] Protect __release_resource against resources without
+Subject: [PATCH 004/187] Protect __release_resource against resources without
parents
Without this patch, removing a device tree overlay can crash here.
@@ -224,10 +224,10 @@ index 9b5f04404152c296af3a96132f27cfc80ffa9af9..f8a9af6e6b915812be2ba2c1c2b40106
for (;;) {
tmp = *p;
-From 029f649c29d81583b412cb6ff5792a3cf9102a95 Mon Sep 17 00:00:00 2001
+From 1c0b6f37973324f7ce3557f57d11133d2c9372cf Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Thu, 18 Dec 2014 16:07:15 -0800
-Subject: [PATCH 005/140] mm: Remove the PFN busy warning
+Subject: [PATCH 005/187] mm: Remove the PFN busy warning
See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is
expected sometimes when using CMA. However, that commit still spams
@@ -252,10 +252,10 @@ index f4a02e240fb68acbaa0d3a0c7ac5a498c051a272..0e1fba92702858ceaf2f92a1d5fa53d5
goto done;
}
-From 3fad09910dafeb93a351aefa90ca4fd490f68c84 Mon Sep 17 00:00:00 2001
+From a1116c4d3195b96d0f79fbeccc9d454bc3fa967a Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Fri, 4 Dec 2015 17:41:50 +0000
-Subject: [PATCH 006/140] irq-bcm2836: Prevent spurious interrupts, and trap
+Subject: [PATCH 006/187] irq-bcm2836: Prevent spurious interrupts, and trap
them early
The old arch-specific IRQ macros included a dsb to ensure the
@@ -282,10 +282,10 @@ index d96b2c947e74e3edab3917551c64fbd1ced0f34c..93e3f7660c4230c9f1dd3b195958cb49
#endif
} else if (stat) {
-From 0c9c73fafac86e96a1d1fb59b13aac0ce6d70692 Mon Sep 17 00:00:00 2001
+From 3ea010e54a24c8e7a8aaad6811b7864d1352ed63 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Fri, 12 Jun 2015 19:01:05 +0200
-Subject: [PATCH 007/140] irqchip: bcm2835: Add FIQ support
+Subject: [PATCH 007/187] irqchip: bcm2835: Add FIQ support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -414,10 +414,10 @@ index 44d7c38dde479d771f3552e914bf8c1c1f5019f7..42ff5e6a8e0d532f5b60a1e7af7cc4d9
}
-From 3b662c4466e336bab7ebb438b65bd5487d30305d Mon Sep 17 00:00:00 2001
+From c91bab759ca14e6ed6ff31b71f104c7535fa69f0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Fri, 23 Oct 2015 16:26:55 +0200
-Subject: [PATCH 008/140] irqchip: irq-bcm2835: Add 2836 FIQ support
+Subject: [PATCH 008/187] irqchip: irq-bcm2835: Add 2836 FIQ support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -516,10 +516,10 @@ index 42ff5e6a8e0d532f5b60a1e7af7cc4d941bd5008..eccf6ed025299cb480884f5bcbe77abf
for (b = 0; b < NR_BANKS; b++) {
for (i = 0; i < bank_irqs[b]; i++) {
-From 21a313f8517a1be2b0962710ffe9ad94e7334ba1 Mon Sep 17 00:00:00 2001
+From 22f4e30205024f86c31328e8fc0e6a624417a9a4 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Tue, 14 Jul 2015 10:26:09 +0100
-Subject: [PATCH 009/140] spidev: Add "spidev" compatible string to silence
+Subject: [PATCH 009/187] spidev: Add "spidev" compatible string to silence
warning
See: https://github.com/raspberrypi/linux/issues/1054
@@ -540,10 +540,10 @@ index 2e05046f866bd01bf87edcdeff0d5b76d4d0aea7..d780491b8013a4e97fa843958964454e
};
MODULE_DEVICE_TABLE(of, spidev_dt_ids);
-From 0059a02a50c6d01a399024cad56ec5254c645fd0 Mon Sep 17 00:00:00 2001
+From 1b90d0328bad60569b3876ef844d31aca382814c Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Tue, 30 Jun 2015 14:12:42 +0100
-Subject: [PATCH 010/140] serial: 8250: Don't crash when nr_uarts is 0
+Subject: [PATCH 010/187] serial: 8250: Don't crash when nr_uarts is 0
---
drivers/tty/serial/8250/8250_core.c | 2 ++
@@ -563,10 +563,10 @@ index e8819aa20415603c80547e382838a8fa3ce54792..cf9c7d2e3f95e1a19410247a89c2e49c
for (i = 0; i < nr_uarts; i++) {
struct uart_8250_port *up = &serial8250_ports[i];
-From c9d0e1314de3cde0674ef5a2c8688b1dc10b2091 Mon Sep 17 00:00:00 2001
+From de236bea6bfc0787a78afda32e0dab3dd6cf716d Mon Sep 17 00:00:00 2001
From: notro
Date: Thu, 10 Jul 2014 13:59:47 +0200
-Subject: [PATCH 011/140] pinctrl-bcm2835: Set base to 0 give expected gpio
+Subject: [PATCH 011/187] pinctrl-bcm2835: Set base to 0 give expected gpio
numbering
Signed-off-by: Noralf Tronnes
@@ -588,10 +588,10 @@ index fa77165fab2c1348163979da507df17e7168c49b..d11e2e4ea189466e686d762cb6c6fef9
.can_sleep = false,
};
-From c7ab4eb8e79ceaa923a7c9f4e14dc085a1934a29 Mon Sep 17 00:00:00 2001
+From 190101af65ca984d506d90d97a109bab83f8cb0f Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Tue, 24 Feb 2015 13:40:50 +0000
-Subject: [PATCH 012/140] pinctrl-bcm2835: Fix interrupt handling for GPIOs
+Subject: [PATCH 012/187] pinctrl-bcm2835: Fix interrupt handling for GPIOs
28-31 and 46-53
Contrary to the documentation, the BCM2835 GPIO controller actually has
@@ -737,10 +737,10 @@ index d11e2e4ea189466e686d762cb6c6fef9111ecf8e..107ad7d58de8f8a7f55e09c9cdcf7d66
},
};
-From a5a46d240c25576b901f0afa76575c1ab4a1469a Mon Sep 17 00:00:00 2001
+From 258765d54675e739f457d478218ea3a10bee5c84 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Thu, 26 Feb 2015 09:58:22 +0000
-Subject: [PATCH 013/140] pinctrl-bcm2835: Only request the interrupts listed
+Subject: [PATCH 013/187] pinctrl-bcm2835: Only request the interrupts listed
in the DTB
Although the GPIO controller can generate three interrupts (four counting
@@ -767,10 +767,10 @@ index 107ad7d58de8f8a7f55e09c9cdcf7d66fa7ab66b..644bdecbcfcb79d3b84a33769265fca5
pc->irq_data[i].irqgroup = i;
-From 403ea1795165839348e5953b80ec4da31b639f8e Mon Sep 17 00:00:00 2001
+From dd4ea5e4cac6ee63d4f97a9cddc1c5d52ec87c5b Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Fri, 6 May 2016 12:32:47 +0100
-Subject: [PATCH 014/140] pinctrl-bcm2835: Return pins to inputs when freed
+Subject: [PATCH 014/187] pinctrl-bcm2835: Return pins to inputs when freed
When dynamically unloading overlays, it is important that freed pins are
restored to being inputs to prevent functions from being enabled in
@@ -811,10 +811,10 @@ index 644bdecbcfcb79d3b84a33769265fca5d3d0c9e5..81a66cba2ab0f7e3ae179de7edd10122
.get_function_name = bcm2835_pmx_get_function_name,
.get_function_groups = bcm2835_pmx_get_function_groups,
-From d4a8fe93bffd4cab698a2630ee7125da93d55d8a Mon Sep 17 00:00:00 2001
+From 6c2da0e15244836a68c33f3c661bed8c7395d102 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Wed, 24 Jun 2015 14:10:44 +0100
-Subject: [PATCH 015/140] spi-bcm2835: Support pin groups other than 7-11
+Subject: [PATCH 015/187] 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
@@ -895,10 +895,10 @@ index f35cc10772f6670397ea923ad30158270dd68578..5dfe20ffc2866fa6789825016c585175
/* and set up the "mode" and level */
dev_info(&spi->dev, "setting up native-CS%i as GPIO %i\n",
-From fa79e1013557f418119bd9dd2c0cf4c51eb4c093 Mon Sep 17 00:00:00 2001
+From bfe6009cfa1d1d3bafd5178c7e57a7a5d1ce3ee6 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Fri, 1 Jul 2016 22:09:24 +0100
-Subject: [PATCH 016/140] spi-bcm2835: Disable forced software CS
+Subject: [PATCH 016/187] spi-bcm2835: Disable forced software CS
Select software CS in bcm2708_common.dtsi, and disable the automatic
conversion in the driver to allow hardware CS to be re-enabled with an
@@ -932,10 +932,10 @@ index 5dfe20ffc2866fa6789825016c585175a29705b6..8493474d286f7a1ac6454a22c61c8c2c
return 0;
}
-From 85bb42acd1c5a045d372d187c26b77c6bf1b617a Mon Sep 17 00:00:00 2001
+From f8573fdb3818a34ffb20e355e886b1714bc26619 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Tue, 8 Nov 2016 21:35:38 +0000
-Subject: [PATCH 017/140] spi-bcm2835: Remove unused code
+Subject: [PATCH 017/187] spi-bcm2835: Remove unused code
---
drivers/spi/spi-bcm2835.c | 61 -----------------------------------------------
@@ -1023,10 +1023,10 @@ index 8493474d286f7a1ac6454a22c61c8c2cef9121bf..33d75ad38a7f77d085321ace9101900a
}
-From c33ee72bce07fc83e4797ebea1bce97c0b301ba2 Mon Sep 17 00:00:00 2001
+From 6444138c2aae35d68ae725f3282c412806c039c6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Wed, 3 Jun 2015 12:26:13 +0200
-Subject: [PATCH 018/140] ARM: bcm2835: Set Serial number and Revision
+Subject: [PATCH 018/187] ARM: bcm2835: Set Serial number and Revision
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -1079,10 +1079,10 @@ index 0c1edfc98696da0e0bb7f4a18cdfbcdd27a9795d..8f152266ba9b470df2eaaed9ebcf158e
static const char * const bcm2835_compat[] = {
-From b4e0c1c3facd38ef5e615248c42dba90d2622257 Mon Sep 17 00:00:00 2001
+From 46b3c73e94090e79f781794efa9eb5c3baca7182 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Sat, 3 Oct 2015 22:22:55 +0200
-Subject: [PATCH 019/140] dmaengine: bcm2835: Load driver early and support
+Subject: [PATCH 019/187] dmaengine: bcm2835: Load driver early and support
legacy API
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
@@ -1185,10 +1185,10 @@ index e18dc596cf2447fa9ef7e41b62d9396e29043426..80d35f760b4a4a51e60c355a84d538ba
MODULE_ALIAS("platform:bcm2835-dma");
MODULE_DESCRIPTION("BCM2835 DMA engine driver");
-From 05f9e93200ec5d5e27c8a93f69588180cddda924 Mon Sep 17 00:00:00 2001
+From 5370c41f35ce93bf75842234ebe2e095478d70fb Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Mon, 25 Jan 2016 17:25:12 +0000
-Subject: [PATCH 020/140] firmware: Updated mailbox header
+Subject: [PATCH 020/187] firmware: Updated mailbox header
---
include/soc/bcm2835/raspberrypi-firmware.h | 11 +++++++++++
@@ -1251,10 +1251,10 @@ index 3fb357193f09914fe21f8555a4b8613f74f22bc3..227a107214a02deadcca3db202da265e
RPI_FIRMWARE_GET_COMMAND_LINE = 0x00050001,
RPI_FIRMWARE_GET_DMA_CHANNELS = 0x00060001,
-From c9cb54929b3466ed0da304563e22739477055d3b Mon Sep 17 00:00:00 2001
+From 69546c227775515917c1b037b28ce39307e73482 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Mon, 9 May 2016 17:28:18 -0700
-Subject: [PATCH 021/140] clk: bcm2835: Mark GPIO clocks enabled at boot as
+Subject: [PATCH 021/187] clk: bcm2835: Mark GPIO clocks enabled at boot as
critical.
These divide off of PLLD_PER and are used for the ethernet and wifi
@@ -1292,10 +1292,10 @@ index 3bbd2a58db470a89b870a793e59ddf9fc4f48e57..7040c6426e35c11608121893b662c601
init.ops = &bcm2835_vpu_clock_clk_ops;
} else {
-From 6c8399fb8dcc815aa9d6b4488a519785912ea983 Mon Sep 17 00:00:00 2001
+From 7682665c3927a4ad4f3826477d390a700aa9bbbe Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Wed, 15 Jun 2016 16:48:41 +0100
-Subject: [PATCH 022/140] rtc: Add SPI alias for pcf2123 driver
+Subject: [PATCH 022/187] rtc: Add SPI alias for pcf2123 driver
Without this alias, Device Tree won't cause the driver
to be loaded.
@@ -1315,10 +1315,10 @@ index 8895f77726e8da5444afcd602dceff8f25a9b3fd..1833b8853ceb0e6147cceb93a00e558c
MODULE_LICENSE("GPL");
+MODULE_ALIAS("spi:rtc-pcf2123");
-From 259f169ef05f12bc7fed007befc11ed6c66dd9c8 Mon Sep 17 00:00:00 2001
+From 051fa2bc6b71ceb8fcf127bcdc0e9967c4bd3076 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Fri, 7 Oct 2016 16:50:59 +0200
-Subject: [PATCH 023/140] watchdog: bcm2835: Support setting reboot partition
+Subject: [PATCH 023/187] watchdog: bcm2835: Support setting reboot partition
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -1442,10 +1442,10 @@ index 4dddd8298a227d64862f2e92954a465f2e44b3f6..1f545e024422f59280932713e6a1b051
register_restart_handler(&wdt->restart_handler);
if (pm_power_off == NULL)
-From 79d93260c98e0164ca89c9f7c767528d7a3aaeae Mon Sep 17 00:00:00 2001
+From da7d9873080833fc0776c9dd62e2663654c6bd63 Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Tue, 5 Apr 2016 19:40:12 +0100
-Subject: [PATCH 024/140] reboot: Use power off rather than busy spinning when
+Subject: [PATCH 024/187] reboot: Use power off rather than busy spinning when
halt is requested
---
@@ -1468,10 +1468,10 @@ index 3fa867a2aae672755c6ce6448f4148c989dbf964..80dca8dcd6709034b643c6a3f35729e0
/*
-From 9799ea4ba8ae1e6c586a3dd728ad75f68830e93f Mon Sep 17 00:00:00 2001
+From a5e16e1716206bbe5006cbc44bafbfd938745b94 Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Wed, 9 Nov 2016 13:02:52 +0000
-Subject: [PATCH 025/140] bcm: Make RASPBERRYPI_POWER depend on PM
+Subject: [PATCH 025/187] bcm: Make RASPBERRYPI_POWER depend on PM
---
drivers/soc/bcm/Kconfig | 1 +
@@ -1490,10 +1490,10 @@ index a39b0d58ddd0fdf0ac1cc7295f8aafb12546e226..e037a6dd79d1881a09e3ca9115782709
help
This enables support for the RPi power domains which can be enabled
-From 261269cc41f6b77f7264f0e44f9b9da5cc36de00 Mon Sep 17 00:00:00 2001
+From 540071d235f5bef9c51be32bedd1c50b310bcf5a Mon Sep 17 00:00:00 2001
From: Martin Sperl
Date: Fri, 2 Sep 2016 16:45:27 +0100
-Subject: [PATCH 026/140] Register the clocks early during the boot process, so
+Subject: [PATCH 026/187] Register the clocks early during the boot process, so
that special/critical clocks can get enabled early on in the boot process
avoiding the risk of disabling a clock, pll_divider or pll when a claiming
driver fails to install propperly - maybe it needs to defer.
@@ -1538,10 +1538,10 @@ index 7040c6426e35c11608121893b662c601cd8d6543..21e2a538ff0d0ab4e63adff9b93705f3
MODULE_AUTHOR("Eric Anholt ");
MODULE_DESCRIPTION("BCM2835 clock driver");
-From a195976d635c3672cae684d6338655aa25f6d98c Mon Sep 17 00:00:00 2001
+From 1885a738a3b5e11b5af867075b97e6fd283d90d4 Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Tue, 6 Dec 2016 17:05:39 +0000
-Subject: [PATCH 027/140] bcm2835-rng: Avoid initialising if already enabled
+Subject: [PATCH 027/187] bcm2835-rng: Avoid initialising if already enabled
Avoids the 0x40000 cycles of warmup again if firmware has already used it
---
@@ -1567,10 +1567,10 @@ index 574211a495491d9d6021dcaefe4274a63ed02055..e66c0fca8c6090e32f72796c0877a1cf
err = hwrng_register(&bcm2835_rng_ops);
if (err) {
-From 6c52812a34fa4ab0d40b57fef10d23fe2fb0768b Mon Sep 17 00:00:00 2001
+From ebd93733bef0834994066fd061e1d64ec524c3f3 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Wed, 24 Aug 2016 16:28:44 +0100
-Subject: [PATCH 028/140] kbuild: Ignore dtco targets when filtering symbols
+Subject: [PATCH 028/187] kbuild: Ignore dtco targets when filtering symbols
---
scripts/Kbuild.include | 2 +-
@@ -1590,10 +1590,10 @@ index 179219845dfcdfbeb586d12c5ec1296095d9fbf4..e0743e44f84188667a0c322e8c3d36f1
esac | tr ";" "\n" | sed -rn 's/^.*=== __KSYM_(.*) ===.*$$/KSYM_\1/p'
-From 8ee6fd93aa3328d325524b8503714e3b4839d1b9 Mon Sep 17 00:00:00 2001
+From 517f6e19e36779402ddfae837f071613d0a07c0e Mon Sep 17 00:00:00 2001
From: Robert Tiemann
Date: Mon, 20 Jul 2015 11:01:25 +0200
-Subject: [PATCH 029/140] BCM2835_DT: Fix I2S register map
+Subject: [PATCH 029/187] BCM2835_DT: Fix I2S register map
---
Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++--
@@ -1631,10 +1631,10 @@ index 65783de0aedf3da79adc36fd077b7a89954ddb6b..a89fe4220fdc3f26f75ee66daf187554
dmas = <&dma 2>,
<&dma 3>;
-From 28a1aeb6b49ffdf5cb5ba9e326df962c270c1f34 Mon Sep 17 00:00:00 2001
+From 39da7256f238d3c92e4cd96a6585ceb5534e26ff Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Sun, 12 May 2013 12:24:19 +0100
-Subject: [PATCH 030/140] Main bcm2708/bcm2709 linux port
+Subject: [PATCH 030/187] Main bcm2708/bcm2709 linux port
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -1841,10 +1841,10 @@ index cfb4b4496dd9f61362dea012176c146120fada07..d9c6c217c4d6a2408abe2665bf7f2700
MODULE_AUTHOR("Lubomir Rintel ");
MODULE_DESCRIPTION("BCM2835 mailbox IPC driver");
-From 4c7d2ae77def863967cbc6e73597d92fe0fb24e7 Mon Sep 17 00:00:00 2001
+From 93b5a8b8dcfe84da8fd054e50b8d1fe3dfe7c7fc Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Wed, 1 May 2013 19:46:17 +0100
-Subject: [PATCH 031/140] Add dwc_otg driver
+Subject: [PATCH 031/187] Add dwc_otg driver
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -62901,10 +62901,10 @@ index 0000000000000000000000000000000000000000..cdc9963176e5a4a0d5250613b61e26c5
+test_main();
+0;
-From a5db9164cfc4fdbd25b20962f3da042cdc75a4dc Mon Sep 17 00:00:00 2001
+From 39343516c1962fb3e7e035858d8b97ad6f301bc0 Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Wed, 17 Jun 2015 17:06:34 +0100
-Subject: [PATCH 032/140] bcm2708 framebuffer driver
+Subject: [PATCH 032/187] bcm2708 framebuffer driver
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -66363,10 +66363,10 @@ index 3c14e43b82fefe1d32f591d1b2f61d2cd28d0fa8..7626beb6a5bb8df601ddf0f6e6909d1f
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0
-From 5ab35842ff7cc211dcfbf1113953778923097496 Mon Sep 17 00:00:00 2001
+From 252a798d80da007d2d636ebcb8ce481b06e3e661 Mon Sep 17 00:00:00 2001
From: Florian Meier
Date: Fri, 22 Nov 2013 14:22:53 +0100
-Subject: [PATCH 033/140] dmaengine: Add support for BCM2708
+Subject: [PATCH 033/187] dmaengine: Add support for BCM2708
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -66997,10 +66997,10 @@ index 0000000000000000000000000000000000000000..c5bfff2765be4606077e6c8af73040ec
+
+#endif /* _PLAT_BCM2708_DMA_H */
-From feab5b6b38842fca38720e0b2e9bfdc66d41c991 Mon Sep 17 00:00:00 2001
+From 891e1563c5b2d17a95c286e41b975cc88fc6041d Mon Sep 17 00:00:00 2001
From: gellert
Date: Fri, 15 Aug 2014 16:35:06 +0100
-Subject: [PATCH 034/140] MMC: added alternative MMC driver
+Subject: [PATCH 034/187] MMC: added alternative MMC driver
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -68750,10 +68750,10 @@ index 0000000000000000000000000000000000000000..4fe8d1fe44578fbefcd48f8c327ba3d0
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Gellert Weisz");
-From 3d0f0b3db1b62e5d913517ce305913cc71803ef1 Mon Sep 17 00:00:00 2001
+From 04187758f889fda7564f2ced4508a61ab561d3ec Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Wed, 25 Mar 2015 17:49:47 +0000
-Subject: [PATCH 035/140] Adding bcm2835-sdhost driver, and an overlay to
+Subject: [PATCH 035/187] Adding bcm2835-sdhost driver, and an overlay to
enable it
BCM2835 has two SD card interfaces. This driver uses the other one.
@@ -71158,10 +71158,10 @@ index 0000000000000000000000000000000000000000..a9bc79bfdbb71807819dfe2d8f165144
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Phil Elwell");
-From f6be5bc28ee258731e13b5e917d69f601d062014 Mon Sep 17 00:00:00 2001
+From 0c952d59003067b51766f343f3808bdef9b63d12 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Wed, 11 May 2016 12:50:33 +0100
-Subject: [PATCH 036/140] mmc: Add MMC_QUIRK_ERASE_BROKEN for some cards
+Subject: [PATCH 036/187] mmc: Add MMC_QUIRK_ERASE_BROKEN for some cards
Some SD cards have been found that corrupt data when small blocks
are erased. Add a quirk to indicate that ERASE should not be used,
@@ -71297,10 +71297,10 @@ index 73fad83acbcb6a157587180516f9ffe7c61eb7d7..e7c9d3098ac06e3c6554fa3373a311f9
unsigned int erase_shift; /* if erase unit is power 2 */
unsigned int pref_erase; /* in sectors */
-From a079bbcd1d23f00392eb79d7bcad867844f84cd9 Mon Sep 17 00:00:00 2001
+From d3833aa3ee47d3efd66073d4696567be1e21481e Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Wed, 3 Jul 2013 00:31:47 +0100
-Subject: [PATCH 037/140] cma: Add vc_cma driver to enable use of CMA
+Subject: [PATCH 037/187] cma: Add vc_cma driver to enable use of CMA
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -72636,10 +72636,10 @@ index 0000000000000000000000000000000000000000..be2819d5d41f9d5ed65daf8eedb94c9e
+
+#endif /* VC_CMA_H */
-From 340dfdd9f8dfad3f60665cac7f19d774c001b0de Mon Sep 17 00:00:00 2001
+From a6713fca54e802f6585314cf3a9d408b6fd6a5cd Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Mon, 26 Mar 2012 22:15:50 +0100
-Subject: [PATCH 038/140] bcm2708: alsa sound driver
+Subject: [PATCH 038/187] bcm2708: alsa sound driver
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -75374,10 +75374,10 @@ index 0000000000000000000000000000000000000000..af3e6eb690113fc32ce9e06bd2f0f294
+
+#endif // _VC_AUDIO_DEFS_H_
-From 079c7a4a324b1baa4e727c9e3dfacf503345bb18 Mon Sep 17 00:00:00 2001
+From df6bec6bf36ad61d9f5a468cdc6d86b5b5087ffb Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Fri, 28 Oct 2016 15:36:43 +0100
-Subject: [PATCH 039/140] vc_mem: Add vc_mem driver for querying firmware
+Subject: [PATCH 039/187] vc_mem: Add vc_mem driver for querying firmware
memory addresses
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
@@ -75901,10 +75901,10 @@ index 0000000000000000000000000000000000000000..20a475377eb3078ea1ecaef2b24efc35
+
+#endif /* _VC_MEM_H */
-From 148da7d48af0416c716b0103bcc14d01cc97d09b Mon Sep 17 00:00:00 2001
+From 6fba2c3459adf4e1d4a621da9b5afad5a619ba61 Mon Sep 17 00:00:00 2001
From: Tim Gover
Date: Tue, 22 Jul 2014 15:41:04 +0100
-Subject: [PATCH 040/140] vcsm: VideoCore shared memory service for BCM2835
+Subject: [PATCH 040/187] vcsm: VideoCore shared memory service for BCM2835
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -80311,10 +80311,10 @@ index 0000000000000000000000000000000000000000..334f36d0d697b047df2922b5f2db67f3
+
+#endif /* __VMCS_SM_IOCTL_H__INCLUDED__ */
-From f035c5328fecc8970b9a9713cd345d56f5e81f98 Mon Sep 17 00:00:00 2001
+From 60c74f5fe52b96703e250e1a24feee4087af7ae4 Mon Sep 17 00:00:00 2001
From: Luke Wren
Date: Fri, 21 Aug 2015 23:14:48 +0100
-Subject: [PATCH 041/140] Add /dev/gpiomem device for rootless user GPIO access
+Subject: [PATCH 041/187] Add /dev/gpiomem device for rootless user GPIO access
Signed-off-by: Luke Wren
@@ -80625,10 +80625,10 @@ index 0000000000000000000000000000000000000000..911f5b7393ed48ceed8751f06967ae64
+MODULE_DESCRIPTION("gpiomem driver for accessing GPIO from userspace");
+MODULE_AUTHOR("Luke Wren ");
-From ddedd1f135c5311bb4615dda5b285ce688cc50d4 Mon Sep 17 00:00:00 2001
+From 15610d99528e08cd09431d4fb8e096f8a1429c30 Mon Sep 17 00:00:00 2001
From: Luke Wren
Date: Sat, 5 Sep 2015 01:14:45 +0100
-Subject: [PATCH 042/140] Add SMI driver
+Subject: [PATCH 042/187] Add SMI driver
Signed-off-by: Luke Wren
---
@@ -82579,10 +82579,10 @@ index 0000000000000000000000000000000000000000..ee3a75edfc033eeb0d90a687ffb68b10
+
+#endif /* BCM2835_SMI_H */
-From 6e5058f6cb203dd31935ba03eeff0d98c7531bcf Mon Sep 17 00:00:00 2001
+From c1fc2e3713740d34d3ebffa23562f5517a11e856 Mon Sep 17 00:00:00 2001
From: Martin Sperl
Date: Tue, 26 Apr 2016 14:59:21 +0000
-Subject: [PATCH 043/140] MISC: bcm2835: smi: use clock manager and fix reload
+Subject: [PATCH 043/187] MISC: bcm2835: smi: use clock manager and fix reload
issues
Use clock manager instead of self-made clockmanager.
@@ -82752,10 +82752,10 @@ index 63a4ea08b9930a3a31a985f0a1d969b488ed49ec..1261540703127d1d63b9f3c87042c6e5
return 0;
}
-From 83148030b231764e7a5fc14bd2c9ccc6a104a872 Mon Sep 17 00:00:00 2001
+From e33564f1fb6810986eea99d15e1dcfb08854db26 Mon Sep 17 00:00:00 2001
From: Luke Wren
Date: Sat, 5 Sep 2015 01:16:10 +0100
-Subject: [PATCH 044/140] Add SMI NAND driver
+Subject: [PATCH 044/187] Add SMI NAND driver
Signed-off-by: Luke Wren
---
@@ -83120,10 +83120,10 @@ index 0000000000000000000000000000000000000000..02adda6da18bd0ba9ab19a104975b79d
+ ("Driver for NAND chips using Broadcom Secondary Memory Interface");
+MODULE_AUTHOR("Luke Wren ");
-From e12517458be7d5ec0eccc2c23db2b78badd54587 Mon Sep 17 00:00:00 2001
+From fe1ebea96978a74e9d6629319d75e909a2939568 Mon Sep 17 00:00:00 2001
From: Aron Szabo
Date: Sat, 16 Jun 2012 12:15:55 +0200
-Subject: [PATCH 045/140] lirc: added support for RaspberryPi GPIO
+Subject: [PATCH 045/187] 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
@@ -83986,10 +83986,10 @@ index 0000000000000000000000000000000000000000..fb69624ccef00ddbdccf8256d6baf1b1
+
+#endif
-From 91eeb6693671b5ae0220f4a276b84e6597266cb9 Mon Sep 17 00:00:00 2001
+From 4a06b6a752541356b941a1456561d6919ce271de Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Wed, 3 Jul 2013 00:49:20 +0100
-Subject: [PATCH 046/140] Add cpufreq driver
+Subject: [PATCH 046/187] Add cpufreq driver
Signed-off-by: popcornmix
---
@@ -84256,10 +84256,10 @@ index 0000000000000000000000000000000000000000..414fbdc10dfbfc6e4bb47870a7af3fd5
+module_init(bcm2835_cpufreq_module_init);
+module_exit(bcm2835_cpufreq_module_exit);
-From c83d1bbc2d9feaf23252482682824babbbd7bbd9 Mon Sep 17 00:00:00 2001
+From 55f87fdafb41219c6dfe09205b99995f04344afc Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Tue, 26 Mar 2013 19:24:24 +0000
-Subject: [PATCH 047/140] Added hwmon/thermal driver for reporting core
+Subject: [PATCH 047/187] Added hwmon/thermal driver for reporting core
temperature. Thanks Dorian
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
@@ -84425,10 +84425,10 @@ index 0000000000000000000000000000000000000000..c63fb9f9d143e19612a18fe530c7b2b3
+MODULE_DESCRIPTION("Thermal driver for bcm2835 chip");
+MODULE_LICENSE("GPL");
-From d34838cfa7c139fa069b7e038d3ea2b56c50a353 Mon Sep 17 00:00:00 2001
+From 7364dbd24a0a0dabf31282739cef4e8e525180b4 Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Wed, 17 Jun 2015 15:44:08 +0100
-Subject: [PATCH 048/140] Add Chris Boot's i2c driver
+Subject: [PATCH 048/187] Add Chris Boot's i2c driver
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -85093,10 +85093,10 @@ index 0000000000000000000000000000000000000000..962f2e5c7455d91bf32925d785f5f16b
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:" DRV_NAME);
-From e826eaf145a568f477ab9e5554a563233ad7fb49 Mon Sep 17 00:00:00 2001
+From 3e28d525179e460d15f4597ac3ba3cb3dd5c0654 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Fri, 26 Jun 2015 14:27:06 +0200
-Subject: [PATCH 049/140] char: broadcom: Add vcio module
+Subject: [PATCH 049/187] char: broadcom: Add vcio module
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -85322,10 +85322,10 @@ index 0000000000000000000000000000000000000000..c19bc2075c77879563ef5e59038b5a14
+MODULE_DESCRIPTION("Mailbox userspace access");
+MODULE_LICENSE("GPL");
-From 2838aca7eb2ef14cb94ac43921fc2db291af96a7 Mon Sep 17 00:00:00 2001
+From 14f966c1540fbc4564e283cd04f45ac4f7589c88 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Fri, 26 Jun 2015 14:25:01 +0200
-Subject: [PATCH 050/140] firmware: bcm2835: Support ARCH_BCM270x
+Subject: [PATCH 050/187] firmware: bcm2835: Support ARCH_BCM270x
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -85408,10 +85408,10 @@ index dd506cd3a5b874f9e1acd07efb8cd151bb6145d1..3f070bd38a91511c986e3fb114b15bd4
MODULE_AUTHOR("Eric Anholt ");
MODULE_DESCRIPTION("Raspberry Pi firmware driver");
-From 35fa034f52f341a95e10034b2f36e2af05fee117 Mon Sep 17 00:00:00 2001
+From 63c40ffcafaf4fd2b6dac73ffce0ff20fa13bfa4 Mon Sep 17 00:00:00 2001
From: Vincent Sanders
Date: Wed, 30 Jan 2013 12:45:18 +0000
-Subject: [PATCH 051/140] bcm2835: add v4l2 camera device
+Subject: [PATCH 051/187] bcm2835: add v4l2 camera device
- Supports raw YUV capture, preview, JPEG and H264.
- Uses videobuf2 for data transfer, using dma_buf.
@@ -93153,10 +93153,10 @@ index 0000000000000000000000000000000000000000..9d1d11e4a53e510c04a416d92d195a7d
+
+#endif /* MMAL_VCHIQ_H */
-From 59799351c2a2951565e10b2ef69ccff34f94fd30 Mon Sep 17 00:00:00 2001
+From d8f6d2d3da8a446c4435eedc19eeb78a4c55dccf Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Mon, 11 May 2015 09:00:42 +0100
-Subject: [PATCH 052/140] scripts: Add mkknlimg and knlinfo scripts from tools
+Subject: [PATCH 052/187] scripts: Add mkknlimg and knlinfo scripts from tools
repo
The Raspberry Pi firmware looks for a trailer on the kernel image to
@@ -93676,10 +93676,10 @@ index 0000000000000000000000000000000000000000..60206de7fa9a49bd027c635306674a29
+ return $trailer;
+}
-From 913a79481bedcfed6727e899ab3f5a9291328f55 Mon Sep 17 00:00:00 2001
+From e279a8b4fd6b3065f278b8dc178e21fa71b9e7ac Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Mon, 10 Aug 2015 09:49:15 +0100
-Subject: [PATCH 053/140] scripts/dtc: Update to upstream version 1.4.1
+Subject: [PATCH 053/187] scripts/dtc: Update to upstream version 1.4.1
Includes the new localfixups format.
@@ -96530,10 +96530,10 @@ index ad9b05ae698b0495ecbda42ffcf4743555313a27..2595dfda020fd9e03f0beff5006f229d
-#define DTC_VERSION "DTC 1.4.1-g53bf130b"
+#define DTC_VERSION "DTC 1.4.1-g25efc119"
-From 2ad7caa56296821bfab4ce0e808a0d1d2c8ac9f4 Mon Sep 17 00:00:00 2001
+From f5bb88317d954b3a76cebb7611c5695d9873fca5 Mon Sep 17 00:00:00 2001
From: notro
Date: Wed, 9 Jul 2014 14:46:08 +0200
-Subject: [PATCH 054/140] BCM2708: Add core Device Tree support
+Subject: [PATCH 054/187] BCM2708: Add core Device Tree support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -106661,10 +106661,10 @@ index 0a07f9014944ed92a8e2e42983ae43be60b3e471..1967878a843461c3ff1f473b9a030eb0
# Bzip2
-From f760337032ce3078b0ecfe2ec8420bbdf173151d Mon Sep 17 00:00:00 2001
+From 2bed5e08a6bc8c22915d5794f36108b06b9d8063 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Fri, 6 Feb 2015 13:50:57 +0000
-Subject: [PATCH 055/140] BCM270x_DT: Add pwr_led, and the required "input"
+Subject: [PATCH 055/187] BCM270x_DT: Add pwr_led, and the required "input"
trigger
The "input" trigger makes the associated GPIO an input. This is to support
@@ -106840,10 +106840,10 @@ index ddfcb2df3656cf0ab6aebd1fa3d624a6ec2e94e9..271563eb835f9018712e2076a88f341d
/* Set LED brightness level
* Must not sleep. Use brightness_set_blocking for drivers
-From c19ea76c6206a3e5a897cef2da65d82c6dd76430 Mon Sep 17 00:00:00 2001
+From d4cbcc3c16c64a448532c80d64b33cf2f41696f5 Mon Sep 17 00:00:00 2001
From: Siarhei Siamashka
Date: Mon, 17 Jun 2013 13:32:11 +0300
-Subject: [PATCH 056/140] fbdev: add FBIOCOPYAREA ioctl
+Subject: [PATCH 056/187] fbdev: add FBIOCOPYAREA ioctl
Based on the patch authored by Ali Gholami Rudi at
https://lkml.org/lkml/2009/7/13/153
@@ -107095,10 +107095,10 @@ index fb795c3b3c178ad3cd7c9e9e4547ffd492bac181..703fa8a70574323abe2fb32599254582
__u32 dx; /* screen-relative */
__u32 dy;
-From 11db806d75a8958fb706d8a1b4e67818a04d68c7 Mon Sep 17 00:00:00 2001
+From 6bf48a366444156dea2df2500dc242cab2a45bdb Mon Sep 17 00:00:00 2001
From: Harm Hanemaaijer
Date: Thu, 20 Jun 2013 20:21:39 +0200
-Subject: [PATCH 057/140] Speed up console framebuffer imageblit function
+Subject: [PATCH 057/187] 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
@@ -107307,10 +107307,10 @@ index a2bb276a8b2463eee98eb237c4647bc00cd93601..436494fba15abecb400ef28688466faf
start_index, pitch_index);
} else
-From d387edf492067aa0d298b90829b784f640375e7c Mon Sep 17 00:00:00 2001
+From 0e0fdde1881539adf417ed1ac11b8b48c7094b59 Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Wed, 8 May 2013 11:46:50 +0100
-Subject: [PATCH 058/140] enabling the realtime clock 1-wire chip DS1307 and
+Subject: [PATCH 058/187] 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
@@ -107560,10 +107560,10 @@ index d58594a3232492e33f1dd4babd3798b03e0f0203..feae94256256316fd9d850c3d83325af
unsigned int ext_pullup_enable_pin;
unsigned int pullup_duration;
-From 06dbec311ec4beeac31e1567b5ca499210d1f21e Mon Sep 17 00:00:00 2001
+From 1859374c090dd68d2a7bbbc582e83fa48488db2e Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Wed, 18 Dec 2013 22:16:19 +0000
-Subject: [PATCH 059/140] config: Enable CONFIG_MEMCG, but leave it disabled
+Subject: [PATCH 059/187] config: Enable CONFIG_MEMCG, but leave it disabled
(due to memory cost). Enable with cgroup_enable=memory.
---
@@ -107571,10 +107571,10 @@ Subject: [PATCH 059/140] config: Enable CONFIG_MEMCG, but leave it disabled
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
-index 85bc9beb046d9a6deda2e3564f4d5bd01d6fc27b..4acdbef46a8f0556469b5580a39c18ce0496c69d 100644
+index 4e2f3de0e40bff4caef5ee9c587ea19140d07f85..4b687fba53c58e744e04608a9510f9b811f26343 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
-@@ -5629,7 +5629,7 @@ int __init cgroup_init_early(void)
+@@ -5626,7 +5626,7 @@ int __init cgroup_init_early(void)
return 0;
}
@@ -107583,7 +107583,7 @@ index 85bc9beb046d9a6deda2e3564f4d5bd01d6fc27b..4acdbef46a8f0556469b5580a39c18ce
/**
* cgroup_init - cgroup initialization
-@@ -6166,6 +6166,28 @@ static int __init cgroup_no_v1(char *str)
+@@ -6163,6 +6163,28 @@ static int __init cgroup_no_v1(char *str)
}
__setup("cgroup_no_v1=", cgroup_no_v1);
@@ -107613,10 +107613,10 @@ index 85bc9beb046d9a6deda2e3564f4d5bd01d6fc27b..4acdbef46a8f0556469b5580a39c18ce
* css_tryget_online_from_dir - get corresponding css from a cgroup dentry
* @dentry: directory dentry of interest
-From 5f6748b37accdf94cb360cfaa92bca5fdb0a161f Mon Sep 17 00:00:00 2001
+From 7035848318b6cc55db1b828570129c7cd23a2d2a Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Mon, 14 Jul 2014 22:02:09 +0100
-Subject: [PATCH 060/140] hid: Reduce default mouse polling interval to 60Hz
+Subject: [PATCH 060/187] hid: Reduce default mouse polling interval to 60Hz
Reduces overhead when using X
---
@@ -107652,10 +107652,10 @@ index ae83af649a607f67239f1a64bf45dd4b5770cc7d..4a7af9d0b910f59d17421ce14138400d
ret = -ENOMEM;
if (usb_endpoint_dir_in(endpoint)) {
-From 712bd947a275fcc4a96363de2aa980111522620a Mon Sep 17 00:00:00 2001
+From 68fc43e57e288e2f60ea3e59cd277e74a3a2b109 Mon Sep 17 00:00:00 2001
From: Gordon Hollingworth
Date: Tue, 12 May 2015 14:47:56 +0100
-Subject: [PATCH 061/140] rpi-ft5406: Add touchscreen driver for pi LCD display
+Subject: [PATCH 061/187] rpi-ft5406: Add touchscreen driver for pi LCD display
Fix driver detection failure Check that the buffer response is non-zero meaning the touchscreen was detected
@@ -108013,10 +108013,10 @@ index 227a107214a02deadcca3db202da265eba1fdd21..b0f6e33bd30c35664ceee057f4c3ad32
RPI_FIRMWARE_FRAMEBUFFER_SET_BACKLIGHT = 0x0004800f,
-From e1102cfabcece5b4bbd51993bfcf5dcba5470d18 Mon Sep 17 00:00:00 2001
+From 9131e111f37da1075c3b1f3625e67e589c6e3af6 Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Mon, 28 Nov 2016 16:50:04 +0000
-Subject: [PATCH 062/140] Improve __copy_to_user and __copy_from_user
+Subject: [PATCH 062/187] Improve __copy_to_user and __copy_from_user
performance
Provide a __copy_from_user that uses memcpy. On BCM2708, use
@@ -109591,10 +109591,10 @@ index 333dc3c2e5ffbb2c5ab8fcfb6115b6162643cf20..46b787a6474ffa857da9b663948863ec
bool "Broadcom BCM63xx DSL SoC"
depends on ARCH_MULTI_V7
-From 565555340550efa6093ef922d0571d795fbce5ee Mon Sep 17 00:00:00 2001
+From 28e35276915860933d56d6054ad6dcf71810e451 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Thu, 25 Jun 2015 12:16:11 +0100
-Subject: [PATCH 063/140] gpio-poweroff: Allow it to work on Raspberry Pi
+Subject: [PATCH 063/187] 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
@@ -109629,10 +109629,10 @@ index be3d81ff51cc3f510d85e4eed7a52960e51e7bc1..a030ae9fb1fca325061c093696e82186
"%s: pm_power_off function already registered",
__func__);
-From 2e658b6085a2f857761590e8a780cc19898f3393 Mon Sep 17 00:00:00 2001
+From d7a46aff991220634c119c16d7c55031ba08dc82 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Tue, 14 Jul 2015 14:32:47 +0100
-Subject: [PATCH 064/140] mfd: Add Raspberry Pi Sense HAT core driver
+Subject: [PATCH 064/187] mfd: Add Raspberry Pi Sense HAT core driver
---
drivers/input/joystick/Kconfig | 8 +
@@ -110497,10 +110497,10 @@ index 0000000000000000000000000000000000000000..56196dc2af10e464a1e3f98b028dca1c
+
+#endif
-From b463377320e7c95cfe9df94c1fdb7c4cb29d6f35 Mon Sep 17 00:00:00 2001
+From 22848b7aff35ce2e22d395920ac76333cfe9602e Mon Sep 17 00:00:00 2001
From: Florian Meier
Date: Fri, 22 Nov 2013 19:19:08 +0100
-Subject: [PATCH 065/140] ASoC: Add support for HifiBerry DAC
+Subject: [PATCH 065/187] ASoC: Add support for HifiBerry DAC
This adds a machine driver for the HifiBerry DAC.
It is a sound card that can
@@ -110675,10 +110675,10 @@ index 0000000000000000000000000000000000000000..45f2b770ad9e67728ca599a7445d6ae9
+MODULE_DESCRIPTION("ASoC Driver for HifiBerry DAC");
+MODULE_LICENSE("GPL v2");
-From 13807585114080c341126a924de8217edf913e94 Mon Sep 17 00:00:00 2001
+From 7034f481906a088fdfb40bb40862b84ea9974dd0 Mon Sep 17 00:00:00 2001
From: Florian Meier
Date: Mon, 25 Jan 2016 15:48:59 +0000
-Subject: [PATCH 066/140] ASoC: Add support for Rpi-DAC
+Subject: [PATCH 066/187] ASoC: Add support for Rpi-DAC
---
sound/soc/bcm/Kconfig | 7 +++
@@ -110962,10 +110962,10 @@ index 0000000000000000000000000000000000000000..afe1b419582aa40c4b2729d242bb13cd
+MODULE_AUTHOR("Florian Meier ");
+MODULE_LICENSE("GPL v2");
-From c7d9bc61bef1c8a08f68d7e0c7685d922fd0da47 Mon Sep 17 00:00:00 2001
+From cbc5d55c367907407b52f7a66930778f6930c536 Mon Sep 17 00:00:00 2001
From: Daniel Matuschek
Date: Wed, 15 Jan 2014 21:41:23 +0100
-Subject: [PATCH 067/140] ASoC: wm8804: Implement MCLK configuration options,
+Subject: [PATCH 067/187] 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
@@ -111014,10 +111014,10 @@ index af95d648265b3e92e345101542b332aee35191d4..513f56ba132929662802d15cdc653af3
.component_driver = {
.dapm_widgets = wm8804_dapm_widgets,
-From 7635da3016caa5b541a80e584a8538125e0b5299 Mon Sep 17 00:00:00 2001
+From 35a5b16cceab45a8c8d790c34aff2f2087e518c0 Mon Sep 17 00:00:00 2001
From: Daniel Matuschek
Date: Wed, 15 Jan 2014 21:42:08 +0100
-Subject: [PATCH 068/140] ASoC: BCM:Add support for HiFiBerry Digi. Driver is
+Subject: [PATCH 068/187] ASoC: BCM:Add support for HiFiBerry Digi. Driver is
based on the patched WM8804 driver.
Signed-off-by: Daniel Matuschek
@@ -111361,10 +111361,10 @@ index 0000000000000000000000000000000000000000..19dc953b7227ba86123fc7a2ba654499
+MODULE_DESCRIPTION("ASoC Driver for HifiBerry Digi");
+MODULE_LICENSE("GPL v2");
-From bd440ceb58ec584d192d8c0c38c9252119be750c Mon Sep 17 00:00:00 2001
+From 88cac05c9cf1c8b8cfe2c7305aafa139fa51eb36 Mon Sep 17 00:00:00 2001
From: Gordon Garrity
Date: Sat, 8 Mar 2014 16:56:57 +0000
-Subject: [PATCH 069/140] Add IQaudIO Sound Card support for Raspberry Pi
+Subject: [PATCH 069/187] Add IQaudIO Sound Card support for Raspberry Pi
Set a limit of 0dB on Digital Volume Control
@@ -111694,10 +111694,10 @@ index 0000000000000000000000000000000000000000..4e8e6dec14bcf4a1ff286c43742d4097
+MODULE_DESCRIPTION("ASoC Driver for IQAudio DAC");
+MODULE_LICENSE("GPL v2");
-From ab186ec6221b540210504627441a75479f04eb06 Mon Sep 17 00:00:00 2001
+From ed73721503a6da0935a3e51d5331e114250c4e89 Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Mon, 25 Jul 2016 17:06:50 +0100
-Subject: [PATCH 070/140] iqaudio-dac: Compile fix - untested
+Subject: [PATCH 070/187] iqaudio-dac: Compile fix - untested
---
sound/soc/bcm/iqaudio-dac.c | 6 +++++-
@@ -111721,10 +111721,10 @@ index 4e8e6dec14bcf4a1ff286c43742d4097249d6777..aa15bc4b49ca95edec905fddd8fd0a6d
if (dapm->dev != codec_dai->dev)
return 0;
-From 92c77bd4247436d8160e450644faa37a0da6aad5 Mon Sep 17 00:00:00 2001
+From 541f36eeb4c4f38d428639c81e883c39268dd5e4 Mon Sep 17 00:00:00 2001
From: Daniel Matuschek
Date: Mon, 4 Aug 2014 10:06:56 +0200
-Subject: [PATCH 071/140] Added support for HiFiBerry DAC+
+Subject: [PATCH 071/187] 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.
@@ -112354,10 +112354,10 @@ index 72b19e62f6267698aea45d2410d616d91c1825cb..c6839ef6e16754ed9de2698507b8986a
dev_err(dev, "No LRCLK?\n");
return -EINVAL;
-From 3247df6b45b656dc288ef26723abd9a0888ddf49 Mon Sep 17 00:00:00 2001
+From fc90457b4e4754c9669542fb77325c6089b87c89 Mon Sep 17 00:00:00 2001
From: Daniel Matuschek
Date: Mon, 4 Aug 2014 11:09:58 +0200
-Subject: [PATCH 072/140] Added driver for HiFiBerry Amp amplifier add-on board
+Subject: [PATCH 072/187] 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.
@@ -112372,15 +112372,19 @@ reported correctly by a non-zero return code.
HiFiBerry Amp: fix device-tree problems
Some code to load the driver based on device-tree-overlays was missing. This is added by this patch.
+
+hifiberry-amp: Adjust for ALSA object refactoring
+
+See: https://github.com/raspberrypi/linux/issues/1775
---
sound/soc/bcm/Kconfig | 7 +
sound/soc/bcm/Makefile | 2 +
sound/soc/bcm/hifiberry_amp.c | 129 +++++++++++++++
sound/soc/codecs/Kconfig | 4 +
sound/soc/codecs/Makefile | 2 +
- sound/soc/codecs/tas5713.c | 369 ++++++++++++++++++++++++++++++++++++++++++
+ sound/soc/codecs/tas5713.c | 371 ++++++++++++++++++++++++++++++++++++++++++
sound/soc/codecs/tas5713.h | 210 ++++++++++++++++++++++++
- 7 files changed, 723 insertions(+)
+ 7 files changed, 725 insertions(+)
create mode 100644 sound/soc/bcm/hifiberry_amp.c
create mode 100644 sound/soc/codecs/tas5713.c
create mode 100644 sound/soc/codecs/tas5713.h
@@ -112404,23 +112408,24 @@ index 4473cc728097bda0ce9fe68d4a9da348ec41f8b3..b1d877407dd69c9bd6b2787b0a559f41
tristate "Support for RPi-DAC"
depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S
diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
-index 203afc03167acbcad15e836209956bc5ab151157..a4838e2cf8e93c9285836f95f4151daea33e1bd1 100644
+index 203afc03167acbcad15e836209956bc5ab151157..8ffe0725ba10307b5636a252b6bb8d61ecfe2591 100644
--- a/sound/soc/bcm/Makefile
+++ b/sound/soc/bcm/Makefile
-@@ -12,11 +12,13 @@ obj-$(CONFIG_SND_SOC_CYGNUS) += snd-soc-cygnus.o
+@@ -9,12 +9,14 @@ snd-soc-cygnus-objs := cygnus-pcm.o cygnus-ssp.o
+ obj-$(CONFIG_SND_SOC_CYGNUS) += snd-soc-cygnus.o
+
+ # BCM2708 Machine Support
++snd-soc-hifiberry-amp-objs := hifiberry_amp.o
snd-soc-hifiberry-dac-objs := hifiberry_dac.o
snd-soc-hifiberry-dacplus-objs := hifiberry_dacplus.o
snd-soc-hifiberry-digi-objs := hifiberry_digi.o
-+snd-soc-hifiberry-amp-objs := hifiberry_amp.o
snd-soc-rpi-dac-objs := rpi-dac.o
snd-soc-iqaudio-dac-objs := iqaudio-dac.o
++obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) += snd-soc-hifiberry-amp.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
obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI) += snd-soc-hifiberry-digi.o
-+obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) += snd-soc-hifiberry-amp.o
- obj-$(CONFIG_SND_BCM2708_SOC_RPI_DAC) += snd-soc-rpi-dac.o
- obj-$(CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC) += snd-soc-iqaudio-dac.o
diff --git a/sound/soc/bcm/hifiberry_amp.c b/sound/soc/bcm/hifiberry_amp.c
new file mode 100644
index 0000000000000000000000000000000000000000..d17c29780507dc31c50f1d567ff5cea7c8241ff5
@@ -112600,10 +112605,10 @@ index 77786e7f44a7fa22d9b5beed3eb687e2b7a28526..5a2db0d2fe2f49920eeccfecef62c969
obj-$(CONFIG_SND_SOC_TLV320AIC23_SPI) += snd-soc-tlv320aic23-spi.o
diff --git a/sound/soc/codecs/tas5713.c b/sound/soc/codecs/tas5713.c
new file mode 100644
-index 0000000000000000000000000000000000000000..9b2713861dcbed751842ca29c88eb1eae5867411
+index 0000000000000000000000000000000000000000..560234d58a6b0a6e7fd3a63e8de73339ee002b1c
--- /dev/null
+++ b/sound/soc/codecs/tas5713.c
-@@ -0,0 +1,369 @@
+@@ -0,0 +1,371 @@
+/*
+ * ASoC Driver for TAS5713
+ *
@@ -112838,8 +112843,10 @@ index 0000000000000000000000000000000000000000..9b2713861dcbed751842ca29c88eb1ea
+static struct snd_soc_codec_driver soc_codec_dev_tas5713 = {
+ .probe = tas5713_probe,
+ .remove = tas5713_remove,
-+ .controls = tas5713_snd_controls,
-+ .num_controls = ARRAY_SIZE(tas5713_snd_controls),
++ .component_driver = {
++ .controls = tas5713_snd_controls,
++ .num_controls = ARRAY_SIZE(tas5713_snd_controls),
++ },
+};
+
+
@@ -113190,835 +113197,10 @@ index 0000000000000000000000000000000000000000..8f019e04898754d2f87e9630137be9e8
+
+#endif /* _TAS5713_H */
-From 73485d00032dc13327d26e44a0038505651b35f7 Mon Sep 17 00:00:00 2001
-From: popcornmix
-Date: Mon, 12 Dec 2016 16:26:54 +0000
-Subject: [PATCH 073/140] Revert "Added driver for HiFiBerry Amp amplifier
- add-on board"
-
-This reverts commit 3e6b00833d92a50cbcc9922deb6e1bc8fcdbb587.
----
- sound/soc/bcm/Kconfig | 7 -
- sound/soc/bcm/Makefile | 2 -
- sound/soc/bcm/hifiberry_amp.c | 129 ---------------
- sound/soc/codecs/Kconfig | 4 -
- sound/soc/codecs/Makefile | 2 -
- sound/soc/codecs/tas5713.c | 369 ------------------------------------------
- sound/soc/codecs/tas5713.h | 210 ------------------------
- 7 files changed, 723 deletions(-)
- delete mode 100644 sound/soc/bcm/hifiberry_amp.c
- delete mode 100644 sound/soc/codecs/tas5713.c
- delete mode 100644 sound/soc/codecs/tas5713.h
-
-diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
-index b1d877407dd69c9bd6b2787b0a559f4113bc21f2..4473cc728097bda0ce9fe68d4a9da348ec41f8b3 100644
---- a/sound/soc/bcm/Kconfig
-+++ b/sound/soc/bcm/Kconfig
-@@ -38,13 +38,6 @@ config SND_BCM2708_SOC_HIFIBERRY_DIGI
- help
- Say Y or M if you want to add support for HifiBerry Digi S/PDIF output board.
-
--config SND_BCM2708_SOC_HIFIBERRY_AMP
-- tristate "Support for the HifiBerry Amp"
-- depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S
-- select SND_SOC_TAS5713
-- help
-- Say Y or M if you want to add support for the HifiBerry Amp amplifier board.
--
- config SND_BCM2708_SOC_RPI_DAC
- tristate "Support for RPi-DAC"
- depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S
-diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
-index a4838e2cf8e93c9285836f95f4151daea33e1bd1..203afc03167acbcad15e836209956bc5ab151157 100644
---- a/sound/soc/bcm/Makefile
-+++ b/sound/soc/bcm/Makefile
-@@ -12,13 +12,11 @@ obj-$(CONFIG_SND_SOC_CYGNUS) += snd-soc-cygnus.o
- snd-soc-hifiberry-dac-objs := hifiberry_dac.o
- snd-soc-hifiberry-dacplus-objs := hifiberry_dacplus.o
- snd-soc-hifiberry-digi-objs := hifiberry_digi.o
--snd-soc-hifiberry-amp-objs := hifiberry_amp.o
- snd-soc-rpi-dac-objs := rpi-dac.o
- snd-soc-iqaudio-dac-objs := iqaudio-dac.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
- obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI) += snd-soc-hifiberry-digi.o
--obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) += snd-soc-hifiberry-amp.o
- obj-$(CONFIG_SND_BCM2708_SOC_RPI_DAC) += snd-soc-rpi-dac.o
- obj-$(CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC) += snd-soc-iqaudio-dac.o
-diff --git a/sound/soc/bcm/hifiberry_amp.c b/sound/soc/bcm/hifiberry_amp.c
-deleted file mode 100644
-index d17c29780507dc31c50f1d567ff5cea7c8241ff5..0000000000000000000000000000000000000000
---- a/sound/soc/bcm/hifiberry_amp.c
-+++ /dev/null
-@@ -1,129 +0,0 @@
--/*
-- * ASoC Driver for HifiBerry AMP
-- *
-- * Author: Sebastian Eickhoff
-- * Copyright 2014
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * version 2 as published by the Free Software Foundation.
-- *
-- * This program is distributed in the hope that it will be useful, but
-- * WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- * General Public License for more details.
-- */
--
--#include
--#include
--
--#include
--#include
--#include
--#include
--#include
--
--static int snd_rpi_hifiberry_amp_init(struct snd_soc_pcm_runtime *rtd)
--{
-- // ToDo: init of the dsp-registers.
-- return 0;
--}
--
--static int snd_rpi_hifiberry_amp_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;
--
-- return snd_soc_dai_set_bclk_ratio(cpu_dai, 64);
--}
--
--static struct snd_soc_ops snd_rpi_hifiberry_amp_ops = {
-- .hw_params = snd_rpi_hifiberry_amp_hw_params,
--};
--
--static struct snd_soc_dai_link snd_rpi_hifiberry_amp_dai[] = {
-- {
-- .name = "HifiBerry AMP",
-- .stream_name = "HifiBerry AMP HiFi",
-- .cpu_dai_name = "bcm2708-i2s.0",
-- .codec_dai_name = "tas5713-hifi",
-- .platform_name = "bcm2708-i2s.0",
-- .codec_name = "tas5713.1-001b",
-- .dai_fmt = SND_SOC_DAIFMT_I2S |
-- SND_SOC_DAIFMT_NB_NF |
-- SND_SOC_DAIFMT_CBS_CFS,
-- .ops = &snd_rpi_hifiberry_amp_ops,
-- .init = snd_rpi_hifiberry_amp_init,
-- },
--};
--
--
--static struct snd_soc_card snd_rpi_hifiberry_amp = {
-- .name = "snd_rpi_hifiberry_amp",
-- .driver_name = "HifiberryAmp",
-- .owner = THIS_MODULE,
-- .dai_link = snd_rpi_hifiberry_amp_dai,
-- .num_links = ARRAY_SIZE(snd_rpi_hifiberry_amp_dai),
--};
--
--static const struct of_device_id snd_rpi_hifiberry_amp_of_match[] = {
-- { .compatible = "hifiberry,hifiberry-amp", },
-- {},
--};
--MODULE_DEVICE_TABLE(of, snd_rpi_hifiberry_amp_of_match);
--
--
--static int snd_rpi_hifiberry_amp_probe(struct platform_device *pdev)
--{
-- int ret = 0;
--
-- snd_rpi_hifiberry_amp.dev = &pdev->dev;
--
-- if (pdev->dev.of_node) {
-- struct device_node *i2s_node;
-- struct snd_soc_dai_link *dai = &snd_rpi_hifiberry_amp_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_hifiberry_amp);
--
-- if (ret != 0) {
-- dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n", ret);
-- }
--
-- return ret;
--}
--
--
--static int snd_rpi_hifiberry_amp_remove(struct platform_device *pdev)
--{
-- return snd_soc_unregister_card(&snd_rpi_hifiberry_amp);
--}
--
--
--static struct platform_driver snd_rpi_hifiberry_amp_driver = {
-- .driver = {
-- .name = "snd-hifiberry-amp",
-- .owner = THIS_MODULE,
-- .of_match_table = snd_rpi_hifiberry_amp_of_match,
-- },
-- .probe = snd_rpi_hifiberry_amp_probe,
-- .remove = snd_rpi_hifiberry_amp_remove,
--};
--
--
--module_platform_driver(snd_rpi_hifiberry_amp_driver);
--
--
--MODULE_AUTHOR("Sebastian Eickhoff ");
--MODULE_DESCRIPTION("ASoC driver for HiFiBerry-AMP");
--MODULE_LICENSE("GPL v2");
-diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
-index 9824cdd04b0c11c45b8cedd0187a0eba8f1dc2d4..74a93e52bdc8116df3db08aaf98fffa1e6f6cc1b 100644
---- a/sound/soc/codecs/Kconfig
-+++ b/sound/soc/codecs/Kconfig
-@@ -139,7 +139,6 @@ config SND_SOC_ALL_CODECS
- select SND_SOC_TFA9879 if I2C
- select SND_SOC_TLV320AIC23_I2C if I2C
- select SND_SOC_TLV320AIC23_SPI if SPI_MASTER
-- select SND_SOC_TAS5713 if I2C
- select SND_SOC_TLV320AIC26 if SPI_MASTER
- select SND_SOC_TLV320AIC31XX if I2C
- select SND_SOC_TLV320AIC32X4_I2C if I2C
-@@ -822,9 +821,6 @@ config SND_SOC_TFA9879
- tristate "NXP Semiconductors TFA9879 amplifier"
- depends on I2C
-
--config SND_SOC_TAS5713
-- tristate
--
- config SND_SOC_TLV320AIC23
- tristate
-
-diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
-index 5a2db0d2fe2f49920eeccfecef62c969ae2e99a1..77786e7f44a7fa22d9b5beed3eb687e2b7a28526 100644
---- a/sound/soc/codecs/Makefile
-+++ b/sound/soc/codecs/Makefile
-@@ -144,7 +144,6 @@ snd-soc-tas5086-objs := tas5086.o
- snd-soc-tas571x-objs := tas571x.o
- snd-soc-tas5720-objs := tas5720.o
- snd-soc-tfa9879-objs := tfa9879.o
--snd-soc-tas5713-objs := tas5713.o
- snd-soc-tlv320aic23-objs := tlv320aic23.o
- snd-soc-tlv320aic23-i2c-objs := tlv320aic23-i2c.o
- snd-soc-tlv320aic23-spi-objs := tlv320aic23-spi.o
-@@ -367,7 +366,6 @@ obj-$(CONFIG_SND_SOC_TAS5086) += snd-soc-tas5086.o
- obj-$(CONFIG_SND_SOC_TAS571X) += snd-soc-tas571x.o
- obj-$(CONFIG_SND_SOC_TAS5720) += snd-soc-tas5720.o
- obj-$(CONFIG_SND_SOC_TFA9879) += snd-soc-tfa9879.o
--obj-$(CONFIG_SND_SOC_TAS5713) += snd-soc-tas5713.o
- obj-$(CONFIG_SND_SOC_TLV320AIC23) += snd-soc-tlv320aic23.o
- obj-$(CONFIG_SND_SOC_TLV320AIC23_I2C) += snd-soc-tlv320aic23-i2c.o
- obj-$(CONFIG_SND_SOC_TLV320AIC23_SPI) += snd-soc-tlv320aic23-spi.o
-diff --git a/sound/soc/codecs/tas5713.c b/sound/soc/codecs/tas5713.c
-deleted file mode 100644
-index 9b2713861dcbed751842ca29c88eb1eae5867411..0000000000000000000000000000000000000000
---- a/sound/soc/codecs/tas5713.c
-+++ /dev/null
-@@ -1,369 +0,0 @@
--/*
-- * ASoC Driver for TAS5713
-- *
-- * Author: Sebastian Eickhoff
-- * Copyright 2014
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * version 2 as published by the Free Software Foundation.
-- *
-- * This program is distributed in the hope that it will be useful, but
-- * WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- * General Public License for more details.
-- */
--
--#include
--#include
--#include
--#include
--#include
--#include
--#include
--#include
--#include
--#include
--#include
--#include
--#include
--#include
--#include
--#include
--#include
--
--#include
--#include
--#include
--#include
--
--#include "tas5713.h"
--
--
--static struct i2c_client *i2c;
--
--struct tas5713_priv {
-- struct regmap *regmap;
-- int mclk_div;
-- struct snd_soc_codec *codec;
--};
--
--static struct tas5713_priv *priv_data;
--
--
--
--
--/*
-- * _ _ ___ _ ___ _ _
-- * /_\ | | / __| /_\ / __|___ _ _| |_ _ _ ___| |___
-- * / _ \| |__\__ \/ _ \ | (__/ _ \ ' \ _| '_/ _ \ (_-<
-- * /_/ \_\____|___/_/ \_\ \___\___/_||_\__|_| \___/_/__/
-- *
-- */
--
--static const DECLARE_TLV_DB_SCALE(tas5713_vol_tlv, -10000, 50, 1);
--
--
--static const struct snd_kcontrol_new tas5713_snd_controls[] = {
-- SOC_SINGLE_TLV ("Master" , TAS5713_VOL_MASTER, 0, 248, 1, tas5713_vol_tlv),
-- SOC_DOUBLE_R_TLV("Channels" , TAS5713_VOL_CH1, TAS5713_VOL_CH2, 0, 248, 1, tas5713_vol_tlv)
--};
--
--
--
--
--/*
-- * __ __ _ _ ___ _
-- * | \/ |__ _ __| |_ (_)_ _ ___ | \ _ _(_)_ _____ _ _
-- * | |\/| / _` / _| ' \| | ' \/ -_) | |) | '_| \ V / -_) '_|
-- * |_| |_\__,_\__|_||_|_|_||_\___| |___/|_| |_|\_/\___|_|
-- *
-- */
--
--static int tas5713_hw_params(struct snd_pcm_substream *substream,
-- struct snd_pcm_hw_params *params,
-- struct snd_soc_dai *dai)
--{
-- u16 blen = 0x00;
--
-- struct snd_soc_codec *codec;
-- codec = dai->codec;
-- priv_data->codec = dai->codec;
--
-- switch (params_format(params)) {
-- case SNDRV_PCM_FORMAT_S16_LE:
-- blen = 0x03;
-- break;
-- case SNDRV_PCM_FORMAT_S20_3LE:
-- blen = 0x1;
-- break;
-- case SNDRV_PCM_FORMAT_S24_LE:
-- blen = 0x04;
-- break;
-- case SNDRV_PCM_FORMAT_S32_LE:
-- blen = 0x05;
-- break;
-- default:
-- dev_err(dai->dev, "Unsupported word length: %u\n",
-- params_format(params));
-- return -EINVAL;
-- }
--
-- // set word length
-- snd_soc_update_bits(codec, TAS5713_SERIAL_DATA_INTERFACE, 0x7, blen);
--
-- return 0;
--}
--
--
--static int tas5713_mute_stream(struct snd_soc_dai *dai, int mute, int stream)
--{
-- unsigned int val = 0;
--
-- struct tas5713_priv *tas5713;
-- struct snd_soc_codec *codec = dai->codec;
-- tas5713 = snd_soc_codec_get_drvdata(codec);
--
-- if (mute) {
-- val = TAS5713_SOFT_MUTE_ALL;
-- }
--
-- return regmap_write(tas5713->regmap, TAS5713_SOFT_MUTE, val);
--}
--
--
--static const struct snd_soc_dai_ops tas5713_dai_ops = {
-- .hw_params = tas5713_hw_params,
-- .mute_stream = tas5713_mute_stream,
--};
--
--
--static struct snd_soc_dai_driver tas5713_dai = {
-- .name = "tas5713-hifi",
-- .playback = {
-- .stream_name = "Playback",
-- .channels_min = 2,
-- .channels_max = 2,
-- .rates = SNDRV_PCM_RATE_8000_48000,
-- .formats = (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE ),
-- },
-- .ops = &tas5713_dai_ops,
--};
--
--
--
--
--/*
-- * ___ _ ___ _
-- * / __|___ __| |___ __ | \ _ _(_)_ _____ _ _
-- * | (__/ _ \/ _` / -_) _| | |) | '_| \ V / -_) '_|
-- * \___\___/\__,_\___\__| |___/|_| |_|\_/\___|_|
-- *
-- */
--
--static int tas5713_remove(struct snd_soc_codec *codec)
--{
-- struct tas5713_priv *tas5713;
--
-- tas5713 = snd_soc_codec_get_drvdata(codec);
--
-- return 0;
--}
--
--
--static int tas5713_probe(struct snd_soc_codec *codec)
--{
-- struct tas5713_priv *tas5713;
-- int i, ret;
--
-- i2c = container_of(codec->dev, struct i2c_client, dev);
--
-- tas5713 = snd_soc_codec_get_drvdata(codec);
--
-- // Reset error
-- ret = snd_soc_write(codec, TAS5713_ERROR_STATUS, 0x00);
-- if (ret < 0) return ret;
--
-- // Trim oscillator
-- ret = snd_soc_write(codec, TAS5713_OSC_TRIM, 0x00);
-- if (ret < 0) return ret;
-- msleep(1000);
--
-- // Reset error
-- ret = snd_soc_write(codec, TAS5713_ERROR_STATUS, 0x00);
-- if (ret < 0) return ret;
--
-- // Clock mode: 44/48kHz, MCLK=64xfs
-- ret = snd_soc_write(codec, TAS5713_CLOCK_CTRL, 0x60);
-- if (ret < 0) return ret;
--
-- // I2S 24bit
-- ret = snd_soc_write(codec, TAS5713_SERIAL_DATA_INTERFACE, 0x05);
-- if (ret < 0) return ret;
--
-- // Unmute
-- ret = snd_soc_write(codec, TAS5713_SYSTEM_CTRL2, 0x00);
-- if (ret < 0) return ret;
-- ret = snd_soc_write(codec, TAS5713_SOFT_MUTE, 0x00);
-- if (ret < 0) return ret;
--
-- // Set volume to 0db
-- ret = snd_soc_write(codec, TAS5713_VOL_MASTER, 0x00);
-- if (ret < 0) return ret;
--
-- // Now start programming the default initialization sequence
-- for (i = 0; i < ARRAY_SIZE(tas5713_init_sequence); ++i) {
-- ret = i2c_master_send(i2c,
-- tas5713_init_sequence[i].data,
-- tas5713_init_sequence[i].size);
-- if (ret < 0) {
-- printk(KERN_INFO "TAS5713 CODEC PROBE: InitSeq returns: %d\n", ret);
-- }
-- }
--
-- // Unmute
-- ret = snd_soc_write(codec, TAS5713_SYSTEM_CTRL2, 0x00);
-- if (ret < 0) return ret;
--
-- return 0;
--}
--
--
--static struct snd_soc_codec_driver soc_codec_dev_tas5713 = {
-- .probe = tas5713_probe,
-- .remove = tas5713_remove,
-- .controls = tas5713_snd_controls,
-- .num_controls = ARRAY_SIZE(tas5713_snd_controls),
--};
--
--
--
--
--/*
-- * ___ ___ ___ ___ _
-- * |_ _|_ ) __| | \ _ _(_)_ _____ _ _
-- * | | / / (__ | |) | '_| \ V / -_) '_|
-- * |___/___\___| |___/|_| |_|\_/\___|_|
-- *
-- */
--
--static const struct reg_default tas5713_reg_defaults[] = {
-- { 0x07 ,0x80 }, // R7 - VOL_MASTER - -40dB
-- { 0x08 , 30 }, // R8 - VOL_CH1 - 0dB
-- { 0x09 , 30 }, // R9 - VOL_CH2 - 0dB
-- { 0x0A ,0x80 }, // R10 - VOL_HEADPHONE - -40dB
--};
--
--
--static bool tas5713_reg_volatile(struct device *dev, unsigned int reg)
--{
-- switch (reg) {
-- case TAS5713_DEVICE_ID:
-- case TAS5713_ERROR_STATUS:
-- return true;
-- default:
-- return false;
-- }
--}
--
--
--static const struct of_device_id tas5713_of_match[] = {
-- { .compatible = "ti,tas5713", },
-- { }
--};
--MODULE_DEVICE_TABLE(of, tas5713_of_match);
--
--
--static struct regmap_config tas5713_regmap_config = {
-- .reg_bits = 8,
-- .val_bits = 8,
--
-- .max_register = TAS5713_MAX_REGISTER,
-- .volatile_reg = tas5713_reg_volatile,
--
-- .cache_type = REGCACHE_RBTREE,
-- .reg_defaults = tas5713_reg_defaults,
-- .num_reg_defaults = ARRAY_SIZE(tas5713_reg_defaults),
--};
--
--
--static int tas5713_i2c_probe(struct i2c_client *i2c,
-- const struct i2c_device_id *id)
--{
-- int ret;
--
-- priv_data = devm_kzalloc(&i2c->dev, sizeof *priv_data, GFP_KERNEL);
-- if (!priv_data)
-- return -ENOMEM;
--
-- priv_data->regmap = devm_regmap_init_i2c(i2c, &tas5713_regmap_config);
-- if (IS_ERR(priv_data->regmap)) {
-- ret = PTR_ERR(priv_data->regmap);
-- return ret;
-- }
--
-- i2c_set_clientdata(i2c, priv_data);
--
-- ret = snd_soc_register_codec(&i2c->dev,
-- &soc_codec_dev_tas5713, &tas5713_dai, 1);
--
-- return ret;
--}
--
--
--static int tas5713_i2c_remove(struct i2c_client *i2c)
--{
-- snd_soc_unregister_codec(&i2c->dev);
-- i2c_set_clientdata(i2c, NULL);
--
-- kfree(priv_data);
--
-- return 0;
--}
--
--
--static const struct i2c_device_id tas5713_i2c_id[] = {
-- { "tas5713", 0 },
-- { }
--};
--
--MODULE_DEVICE_TABLE(i2c, tas5713_i2c_id);
--
--
--static struct i2c_driver tas5713_i2c_driver = {
-- .driver = {
-- .name = "tas5713",
-- .owner = THIS_MODULE,
-- .of_match_table = tas5713_of_match,
-- },
-- .probe = tas5713_i2c_probe,
-- .remove = tas5713_i2c_remove,
-- .id_table = tas5713_i2c_id
--};
--
--
--static int __init tas5713_modinit(void)
--{
-- int ret = 0;
--
-- ret = i2c_add_driver(&tas5713_i2c_driver);
-- if (ret) {
-- printk(KERN_ERR "Failed to register tas5713 I2C driver: %d\n",
-- ret);
-- }
--
-- return ret;
--}
--module_init(tas5713_modinit);
--
--
--static void __exit tas5713_exit(void)
--{
-- i2c_del_driver(&tas5713_i2c_driver);
--}
--module_exit(tas5713_exit);
--
--
--MODULE_AUTHOR("Sebastian Eickhoff ");
--MODULE_DESCRIPTION("ASoC driver for TAS5713");
--MODULE_LICENSE("GPL v2");
-diff --git a/sound/soc/codecs/tas5713.h b/sound/soc/codecs/tas5713.h
-deleted file mode 100644
-index 8f019e04898754d2f87e9630137be9e8f612a342..0000000000000000000000000000000000000000
---- a/sound/soc/codecs/tas5713.h
-+++ /dev/null
-@@ -1,210 +0,0 @@
--/*
-- * ASoC Driver for TAS5713
-- *
-- * Author: Sebastian Eickhoff
-- * Copyright 2014
-- *
-- * 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.
-- */
--
--#ifndef _TAS5713_H
--#define _TAS5713_H
--
--
--// TAS5713 I2C-bus register addresses
--
--#define TAS5713_CLOCK_CTRL 0x00
--#define TAS5713_DEVICE_ID 0x01
--#define TAS5713_ERROR_STATUS 0x02
--#define TAS5713_SYSTEM_CTRL1 0x03
--#define TAS5713_SERIAL_DATA_INTERFACE 0x04
--#define TAS5713_SYSTEM_CTRL2 0x05
--#define TAS5713_SOFT_MUTE 0x06
--#define TAS5713_VOL_MASTER 0x07
--#define TAS5713_VOL_CH1 0x08
--#define TAS5713_VOL_CH2 0x09
--#define TAS5713_VOL_HEADPHONE 0x0A
--#define TAS5713_VOL_CONFIG 0x0E
--#define TAS5713_MODULATION_LIMIT 0x10
--#define TAS5713_IC_DLY_CH1 0x11
--#define TAS5713_IC_DLY_CH2 0x12
--#define TAS5713_IC_DLY_CH3 0x13
--#define TAS5713_IC_DLY_CH4 0x14
--
--#define TAS5713_START_STOP_PERIOD 0x1A
--#define TAS5713_OSC_TRIM 0x1B
--#define TAS5713_BKND_ERR 0x1C
--
--#define TAS5713_INPUT_MUX 0x20
--#define TAS5713_SRC_SELECT_CH4 0x21
--#define TAS5713_PWM_MUX 0x25
--
--#define TAS5713_CH1_BQ0 0x29
--#define TAS5713_CH1_BQ1 0x2A
--#define TAS5713_CH1_BQ2 0x2B
--#define TAS5713_CH1_BQ3 0x2C
--#define TAS5713_CH1_BQ4 0x2D
--#define TAS5713_CH1_BQ5 0x2E
--#define TAS5713_CH1_BQ6 0x2F
--#define TAS5713_CH1_BQ7 0x58
--#define TAS5713_CH1_BQ8 0x59
--
--#define TAS5713_CH2_BQ0 0x30
--#define TAS5713_CH2_BQ1 0x31
--#define TAS5713_CH2_BQ2 0x32
--#define TAS5713_CH2_BQ3 0x33
--#define TAS5713_CH2_BQ4 0x34
--#define TAS5713_CH2_BQ5 0x35
--#define TAS5713_CH2_BQ6 0x36
--#define TAS5713_CH2_BQ7 0x5C
--#define TAS5713_CH2_BQ8 0x5D
--
--#define TAS5713_CH4_BQ0 0x5A
--#define TAS5713_CH4_BQ1 0x5B
--#define TAS5713_CH3_BQ0 0x5E
--#define TAS5713_CH3_BQ1 0x5F
--
--#define TAS5713_DRC1_SOFTENING_FILTER_ALPHA_OMEGA 0x3B
--#define TAS5713_DRC1_ATTACK_RELEASE_RATE 0x3C
--#define TAS5713_DRC2_SOFTENING_FILTER_ALPHA_OMEGA 0x3E
--#define TAS5713_DRC2_ATTACK_RELEASE_RATE 0x3F
--#define TAS5713_DRC1_ATTACK_RELEASE_THRES 0x40
--#define TAS5713_DRC2_ATTACK_RELEASE_THRES 0x43
--#define TAS5713_DRC_CTRL 0x46
--
--#define TAS5713_BANK_SW_CTRL 0x50
--#define TAS5713_CH1_OUTPUT_MIXER 0x51
--#define TAS5713_CH2_OUTPUT_MIXER 0x52
--#define TAS5713_CH1_INPUT_MIXER 0x53
--#define TAS5713_CH2_INPUT_MIXER 0x54
--#define TAS5713_OUTPUT_POST_SCALE 0x56
--#define TAS5713_OUTPUT_PRESCALE 0x57
--
--#define TAS5713_IDF_POST_SCALE 0x62
--
--#define TAS5713_CH1_INLINE_MIXER 0x70
--#define TAS5713_CH1_INLINE_DRC_EN_MIXER 0x71
--#define TAS5713_CH1_R_CHANNEL_MIXER 0x72
--#define TAS5713_CH1_L_CHANNEL_MIXER 0x73
--#define TAS5713_CH2_INLINE_MIXER 0x74
--#define TAS5713_CH2_INLINE_DRC_EN_MIXER 0x75
--#define TAS5713_CH2_L_CHANNEL_MIXER 0x76
--#define TAS5713_CH2_R_CHANNEL_MIXER 0x77
--
--#define TAS5713_UPDATE_DEV_ADDR_KEY 0xF8
--#define TAS5713_UPDATE_DEV_ADDR_REG 0xF9
--
--#define TAS5713_REGISTER_COUNT 0x46
--#define TAS5713_MAX_REGISTER 0xF9
--
--
--// Bitmasks for registers
--#define TAS5713_SOFT_MUTE_ALL 0x07
--
--
--
--struct tas5713_init_command {
-- const int size;
-- const char *const data;
--};
--
--static const struct tas5713_init_command tas5713_init_sequence[] = {
--
-- // Trim oscillator
-- { .size = 2, .data = "\x1B\x00" },
-- // System control register 1 (0x03): block DC
-- { .size = 2, .data = "\x03\x80" },
-- // Mute everything
-- { .size = 2, .data = "\x05\x40" },
-- // Modulation limit register (0x10): 97.7%
-- { .size = 2, .data = "\x10\x02" },
-- // Interchannel delay registers
-- // (0x11, 0x12, 0x13, and 0x14): BD mode
-- { .size = 2, .data = "\x11\xB8" },
-- { .size = 2, .data = "\x12\x60" },
-- { .size = 2, .data = "\x13\xA0" },
-- { .size = 2, .data = "\x14\x48" },
-- // PWM shutdown group register (0x19): no shutdown
-- { .size = 2, .data = "\x19\x00" },
-- // Input multiplexer register (0x20): BD mode
-- { .size = 2, .data = "\x20\x00\x89\x77\x72" },
-- // PWM output mux register (0x25)
-- // Channel 1 --> OUTA, channel 1 neg --> OUTB
-- // Channel 2 --> OUTC, channel 2 neg --> OUTD
-- { .size = 5, .data = "\x25\x01\x02\x13\x45" },
-- // DRC control (0x46): DRC off
-- { .size = 5, .data = "\x46\x00\x00\x00\x00" },
-- // BKND_ERR register (0x1C): 299ms reset period
-- { .size = 2, .data = "\x1C\x07" },
-- // Mute channel 3
-- { .size = 2, .data = "\x0A\xFF" },
-- // Volume configuration register (0x0E): volume slew 512 steps
-- { .size = 2, .data = "\x0E\x90" },
-- // Clock control register (0x00): 44/48kHz, MCLK=64xfs
-- { .size = 2, .data = "\x00\x60" },
-- // Bank switch and eq control (0x50): no bank switching
-- { .size = 5, .data = "\x50\x00\x00\x00\x00" },
-- // Volume registers (0x07, 0x08, 0x09, 0x0A)
-- { .size = 2, .data = "\x07\x20" },
-- { .size = 2, .data = "\x08\x30" },
-- { .size = 2, .data = "\x09\x30" },
-- { .size = 2, .data = "\x0A\xFF" },
-- // 0x72, 0x73, 0x76, 0x77 input mixer:
-- // no intermix between channels
-- { .size = 5, .data = "\x72\x00\x00\x00\x00" },
-- { .size = 5, .data = "\x73\x00\x80\x00\x00" },
-- { .size = 5, .data = "\x76\x00\x00\x00\x00" },
-- { .size = 5, .data = "\x77\x00\x80\x00\x00" },
-- // 0x70, 0x71, 0x74, 0x75 inline DRC mixer:
-- // no inline DRC inmix
-- { .size = 5, .data = "\x70\x00\x80\x00\x00" },
-- { .size = 5, .data = "\x71\x00\x00\x00\x00" },
-- { .size = 5, .data = "\x74\x00\x80\x00\x00" },
-- { .size = 5, .data = "\x75\x00\x00\x00\x00" },
-- // 0x56, 0x57 Output scale
-- { .size = 5, .data = "\x56\x00\x80\x00\x00" },
-- { .size = 5, .data = "\x57\x00\x02\x00\x00" },
-- // 0x3B, 0x3c
-- { .size = 9, .data = "\x3B\x00\x08\x00\x00\x00\x78\x00\x00" },
-- { .size = 9, .data = "\x3C\x00\x00\x01\x00\xFF\xFF\xFF\x00" },
-- { .size = 9, .data = "\x3E\x00\x08\x00\x00\x00\x78\x00\x00" },
-- { .size = 9, .data = "\x3F\x00\x00\x01\x00\xFF\xFF\xFF\x00" },
-- { .size = 9, .data = "\x40\x00\x00\x01\x00\xFF\xFF\xFF\x00" },
-- { .size = 9, .data = "\x43\x00\x00\x01\x00\xFF\xFF\xFF\x00" },
-- // 0x51, 0x52: output mixer
-- { .size = 9, .data = "\x51\x00\x80\x00\x00\x00\x00\x00\x00" },
-- { .size = 9, .data = "\x52\x00\x80\x00\x00\x00\x00\x00\x00" },
-- // PEQ defaults
-- { .size = 21, .data = "\x29\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x2A\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x2B\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x2C\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x2D\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x2E\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x2F\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x30\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x31\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x32\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x33\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x34\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x35\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x36\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x58\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x59\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x5C\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x5D\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x5E\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x5F\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x5A\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-- { .size = 21, .data = "\x5B\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
--};
--
--
--#endif /* _TAS5713_H */
-
-From d57832b2c5b4c66930109bb8f3093c2cb7af4f07 Mon Sep 17 00:00:00 2001
+From 888492e69472efb4ee72996b3910af74eefa1ce1 Mon Sep 17 00:00:00 2001
From: Ryan Coe
Date: Sat, 31 Jan 2015 18:25:49 -0700
-Subject: [PATCH 074/140] Update ds1307 driver for device-tree support
+Subject: [PATCH 073/187] Update ds1307 driver for device-tree support
Signed-off-by: Ryan Coe
---
@@ -114045,10 +113227,10 @@ index 4e31036ee2596dec93accd26f627c5b95591ae9f..b92044cf03e750afa521a93519500e9d
.driver = {
.name = "rtc-ds1307",
-From bb9ce0a15501a541ebe0848eaac02cbb6528f18e Mon Sep 17 00:00:00 2001
+From d692e87173ff13253c5e1443ea7ba8761db07411 Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb
Date: Wed, 25 Mar 2015 09:26:17 +0100
-Subject: [PATCH 075/140] Add driver for rpi-proto
+Subject: [PATCH 074/187] 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
@@ -114068,10 +113250,10 @@ Signed-off-by: Waldemar Brodkorb
create mode 100644 sound/soc/bcm/rpi-proto.c
diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
-index 4473cc728097bda0ce9fe68d4a9da348ec41f8b3..ac0dbaf29b821c4b21855f22104a986f6e0849ec 100644
+index b1d877407dd69c9bd6b2787b0a559f4113bc21f2..eb5a5a14731bc7a144ac421d89e6a9f5ccfbd235 100644
--- a/sound/soc/bcm/Kconfig
+++ b/sound/soc/bcm/Kconfig
-@@ -45,6 +45,13 @@ config SND_BCM2708_SOC_RPI_DAC
+@@ -52,6 +52,13 @@ config SND_BCM2708_SOC_RPI_DAC
help
Say Y or M if you want to add support for RPi-DAC.
@@ -114086,17 +113268,18 @@ index 4473cc728097bda0ce9fe68d4a9da348ec41f8b3..ac0dbaf29b821c4b21855f22104a986f
tristate "Support for IQaudIO-DAC"
depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S
diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
-index 203afc03167acbcad15e836209956bc5ab151157..3badc43cbe1fcb6972829a6d5eb3143cfa812da9 100644
+index 8ffe0725ba10307b5636a252b6bb8d61ecfe2591..5793c83cf2f53a831f5f49bb46b5bd4515d711a7 100644
--- a/sound/soc/bcm/Makefile
+++ b/sound/soc/bcm/Makefile
-@@ -13,10 +13,12 @@ snd-soc-hifiberry-dac-objs := hifiberry_dac.o
+@@ -14,6 +14,7 @@ snd-soc-hifiberry-dac-objs := hifiberry_dac.o
snd-soc-hifiberry-dacplus-objs := hifiberry_dacplus.o
snd-soc-hifiberry-digi-objs := hifiberry_digi.o
snd-soc-rpi-dac-objs := rpi-dac.o
+snd-soc-rpi-proto-objs := rpi-proto.o
snd-soc-iqaudio-dac-objs := iqaudio-dac.o
- obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC) += snd-soc-hifiberry-dac.o
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) += snd-soc-hifiberry-amp.o
+@@ -21,4 +22,5 @@ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC) += snd-soc-hifiberry-dac.o
obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS) += snd-soc-hifiberry-dacplus.o
obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI) += snd-soc-hifiberry-digi.o
obj-$(CONFIG_SND_BCM2708_SOC_RPI_DAC) += snd-soc-rpi-dac.o
@@ -114263,10 +113446,10 @@ index 0000000000000000000000000000000000000000..9db678e885efd63d84d60a098a84ed67
+MODULE_DESCRIPTION("ASoC Driver for Raspberry Pi connected to PROTO board (WM8731)");
+MODULE_LICENSE("GPL");
-From b167c67288fd6fe5abff0115b02b5a76e1b92a7b Mon Sep 17 00:00:00 2001
+From 618f202699b0a0ae85c2ae4ba2fa63614a89cd63 Mon Sep 17 00:00:00 2001
From: Jan Grulich
Date: Mon, 24 Aug 2015 16:03:47 +0100
-Subject: [PATCH 076/140] RaspiDAC3 support
+Subject: [PATCH 075/187] RaspiDAC3 support
Signed-off-by: Jan Grulich
@@ -114284,10 +113467,10 @@ Signed-off-by: Matthias Reichl
create mode 100644 sound/soc/bcm/raspidac3.c
diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
-index ac0dbaf29b821c4b21855f22104a986f6e0849ec..c59c835757a51aa8ad72933d35a83b73a889477c 100644
+index eb5a5a14731bc7a144ac421d89e6a9f5ccfbd235..a2e74be19fa79e3354583b3d110ecb3286e20f3d 100644
--- a/sound/soc/bcm/Kconfig
+++ b/sound/soc/bcm/Kconfig
-@@ -58,3 +58,11 @@ config SND_BCM2708_SOC_IQAUDIO_DAC
+@@ -65,3 +65,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.
@@ -114300,18 +113483,18 @@ index ac0dbaf29b821c4b21855f22104a986f6e0849ec..c59c835757a51aa8ad72933d35a83b73
+ help
+ Say Y or M if you want to add support for RaspiDAC Rev.3x.
diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
-index 3badc43cbe1fcb6972829a6d5eb3143cfa812da9..07d2b52376b1d16e427cf6f51cbf4779d6219ce0 100644
+index 5793c83cf2f53a831f5f49bb46b5bd4515d711a7..c078798106818e3a23f4fbb8068c9ff143b8a2c7 100644
--- a/sound/soc/bcm/Makefile
+++ b/sound/soc/bcm/Makefile
-@@ -15,6 +15,7 @@ snd-soc-hifiberry-digi-objs := hifiberry_digi.o
+@@ -16,6 +16,7 @@ snd-soc-hifiberry-digi-objs := hifiberry_digi.o
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_AMP) += snd-soc-hifiberry-amp.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
-@@ -22,3 +23,4 @@ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI) += snd-soc-hifiberry-digi.o
+@@ -24,3 +25,4 @@ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI) += snd-soc-hifiberry-digi.o
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
@@ -114509,10 +113692,10 @@ index 0000000000000000000000000000000000000000..dd9eeea2af0382307f437e6db09d1546
+MODULE_DESCRIPTION("ASoC Driver for RaspiDAC Rev.3x");
+MODULE_LICENSE("GPL v2");
-From af90a75803c25ed57bc3099fe73d5224c79a8f82 Mon Sep 17 00:00:00 2001
+From 3dfb83d89a6a376903e882e6d72bd75197298f72 Mon Sep 17 00:00:00 2001
From: Aaron Shaw
Date: Thu, 7 Apr 2016 21:26:21 +0100
-Subject: [PATCH 077/140] Add Support for JustBoom Audio boards
+Subject: [PATCH 076/187] Add Support for JustBoom Audio boards
justboom-dac: Adjust for ALSA API change
@@ -114530,10 +113713,10 @@ Signed-off-by: Phil Elwell
create mode 100644 sound/soc/bcm/justboom-digi.c
diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
-index c59c835757a51aa8ad72933d35a83b73a889477c..b2f6339c318cdfe3516d73952a5be1fd32bc1156 100644
+index a2e74be19fa79e3354583b3d110ecb3286e20f3d..1130c52314ece624a5555ec0819edf39667f3990 100644
--- a/sound/soc/bcm/Kconfig
+++ b/sound/soc/bcm/Kconfig
-@@ -52,6 +52,20 @@ config SND_BCM2708_SOC_RPI_PROTO
+@@ -59,6 +59,20 @@ config SND_BCM2708_SOC_RPI_PROTO
help
Say Y or M if you want to add support for Audio Codec Board PROTO (WM8731).
@@ -114555,10 +113738,10 @@ index c59c835757a51aa8ad72933d35a83b73a889477c..b2f6339c318cdfe3516d73952a5be1fd
tristate "Support for IQaudIO-DAC"
depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S
diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
-index 07d2b52376b1d16e427cf6f51cbf4779d6219ce0..cb8ab1901b172bdee0bd9cddd2f2e7ab2f36c16a 100644
+index c078798106818e3a23f4fbb8068c9ff143b8a2c7..94f5a29386d4e164be428f35d98b007f79dad663 100644
--- a/sound/soc/bcm/Makefile
+++ b/sound/soc/bcm/Makefile
-@@ -12,6 +12,8 @@ obj-$(CONFIG_SND_SOC_CYGNUS) += snd-soc-cygnus.o
+@@ -13,6 +13,8 @@ snd-soc-hifiberry-amp-objs := hifiberry_amp.o
snd-soc-hifiberry-dac-objs := hifiberry_dac.o
snd-soc-hifiberry-dacplus-objs := hifiberry_dacplus.o
snd-soc-hifiberry-digi-objs := hifiberry_digi.o
@@ -114567,7 +113750,7 @@ index 07d2b52376b1d16e427cf6f51cbf4779d6219ce0..cb8ab1901b172bdee0bd9cddd2f2e7ab
snd-soc-rpi-dac-objs := rpi-dac.o
snd-soc-rpi-proto-objs := rpi-proto.o
snd-soc-iqaudio-dac-objs := iqaudio-dac.o
-@@ -20,6 +22,8 @@ snd-soc-raspidac3-objs := raspidac3.o
+@@ -22,6 +24,8 @@ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) += snd-soc-hifiberry-amp.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
obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI) += snd-soc-hifiberry-digi.o
@@ -114966,10 +114149,10 @@ index 0000000000000000000000000000000000000000..91acb666380faa3c0deb2230f8a0f8bb
+MODULE_DESCRIPTION("ASoC Driver for JustBoom PI Digi HAT Sound Card");
+MODULE_LICENSE("GPL v2");
-From 0c2b4b8751a7d5b17e6b819610f8a48cea1f98f6 Mon Sep 17 00:00:00 2001
+From cac71895bacf68bfa77f1af57f1a3c621cbad0fc Mon Sep 17 00:00:00 2001
From: Andrey Grodzovsky
Date: Tue, 3 May 2016 22:10:59 -0400
-Subject: [PATCH 078/140] ARM: adau1977-adc: Add basic machine driver for
+Subject: [PATCH 077/187] ARM: adau1977-adc: Add basic machine driver for
adau1977 codec driver.
This commit adds basic support for the codec usage including: Device tree overlay,
@@ -114985,10 +114168,10 @@ Signed-off-by: Andrey Grodzovsky
create mode 100644 sound/soc/bcm/adau1977-adc.c
diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
-index b2f6339c318cdfe3516d73952a5be1fd32bc1156..190a79dffa53a34c2df9b2c9b5160065c759de65 100644
+index 1130c52314ece624a5555ec0819edf39667f3990..0dbeea9227ec59e0072be4f850b11202485aa2cc 100644
--- a/sound/soc/bcm/Kconfig
+++ b/sound/soc/bcm/Kconfig
-@@ -80,3 +80,10 @@ config SND_BCM2708_SOC_RASPIDAC3
+@@ -87,3 +87,10 @@ config SND_BCM2708_SOC_RASPIDAC3
select SND_SOC_TPA6130A2
help
Say Y or M if you want to add support for RaspiDAC Rev.3x.
@@ -115000,7 +114183,7 @@ index b2f6339c318cdfe3516d73952a5be1fd32bc1156..190a79dffa53a34c2df9b2c9b5160065
+ help
+ Say Y or M if you want to add support for ADAU1977 ADC.
diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
-index cb8ab1901b172bdee0bd9cddd2f2e7ab2f36c16a..9dd0785532aae24f3366cc2910d4dbc558cb0e5d 100644
+index 94f5a29386d4e164be428f35d98b007f79dad663..8c20ce506f2b0d653be39ceb9224503a0ef63c39 100644
--- a/sound/soc/bcm/Makefile
+++ b/sound/soc/bcm/Makefile
@@ -9,6 +9,7 @@ snd-soc-cygnus-objs := cygnus-pcm.o cygnus-ssp.o
@@ -115008,17 +114191,17 @@ index cb8ab1901b172bdee0bd9cddd2f2e7ab2f36c16a..9dd0785532aae24f3366cc2910d4dbc5
# BCM2708 Machine Support
+snd-soc-adau1977-adc-objs := adau1977-adc.o
+ snd-soc-hifiberry-amp-objs := hifiberry_amp.o
snd-soc-hifiberry-dac-objs := hifiberry_dac.o
snd-soc-hifiberry-dacplus-objs := hifiberry_dacplus.o
- snd-soc-hifiberry-digi-objs := hifiberry_digi.o
-@@ -19,6 +20,7 @@ snd-soc-rpi-proto-objs := rpi-proto.o
+@@ -20,6 +21,7 @@ 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_ADAU1977_ADC) += snd-soc-adau1977-adc.o
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) += snd-soc-hifiberry-amp.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
- obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI) += snd-soc-hifiberry-digi.o
diff --git a/sound/soc/bcm/adau1977-adc.c b/sound/soc/bcm/adau1977-adc.c
new file mode 100644
index 0000000000000000000000000000000000000000..6e2ee027926ee63c89222f75ceb89e3d2434b0e1
@@ -115151,10 +114334,10 @@ index 0000000000000000000000000000000000000000..6e2ee027926ee63c89222f75ceb89e3d
+MODULE_DESCRIPTION("ASoC Driver for ADAU1977 ADC");
+MODULE_LICENSE("GPL v2");
-From 35cd58d093a51d20d9f093eb1963fee33e6d9a07 Mon Sep 17 00:00:00 2001
+From c7210de20ddd76773a54e4cb89f3a6f361379352 Mon Sep 17 00:00:00 2001
From: Matt Flax
Date: Mon, 16 May 2016 21:36:31 +1000
-Subject: [PATCH 079/140] New AudioInjector.net Pi soundcard with low jitter
+Subject: [PATCH 078/187] New AudioInjector.net Pi soundcard with low jitter
audio in and out.
Contains the sound/soc/bcm ALSA machine driver and necessary alterations to the Kconfig and Makefile.
@@ -115173,10 +114356,10 @@ This patch adds headphone and microphone capability to the Audio Injector sound
create mode 100644 sound/soc/bcm/audioinjector-pi-soundcard.c
diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
-index 190a79dffa53a34c2df9b2c9b5160065c759de65..eb16c3a7fb316eb5938a54dfa864f66f9b167eb0 100644
+index 0dbeea9227ec59e0072be4f850b11202485aa2cc..0ebfea3c1cbb59513741818cf65ea8ecc4767515 100644
--- a/sound/soc/bcm/Kconfig
+++ b/sound/soc/bcm/Kconfig
-@@ -87,3 +87,10 @@ config SND_BCM2708_SOC_ADAU1977_ADC
+@@ -94,3 +94,10 @@ config SND_BCM2708_SOC_ADAU1977_ADC
select SND_SOC_ADAU1977_I2C
help
Say Y or M if you want to add support for ADAU1977 ADC.
@@ -115188,18 +114371,18 @@ index 190a79dffa53a34c2df9b2c9b5160065c759de65..eb16c3a7fb316eb5938a54dfa864f66f
+ help
+ Say Y or M if you want to add support for audioinjector.net Pi Hat
diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
-index 9dd0785532aae24f3366cc2910d4dbc558cb0e5d..a68469644535a38305bb5b0f3780e03e0ca4f519 100644
+index 8c20ce506f2b0d653be39ceb9224503a0ef63c39..4d4189b6d0c57645c5ec19554f1e77d4ccc716d6 100644
--- a/sound/soc/bcm/Makefile
+++ b/sound/soc/bcm/Makefile
-@@ -19,6 +19,7 @@ snd-soc-rpi-dac-objs := rpi-dac.o
+@@ -20,6 +20,7 @@ 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
+snd-soc-audioinjector-pi-soundcard-objs := audioinjector-pi-soundcard.o
obj-$(CONFIG_SND_BCM2708_SOC_ADAU1977_ADC) += snd-soc-adau1977-adc.o
- obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC) += snd-soc-hifiberry-dac.o
-@@ -30,3 +31,5 @@ obj-$(CONFIG_SND_BCM2708_SOC_RPI_DAC) += snd-soc-rpi-dac.o
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) += snd-soc-hifiberry-amp.o
+@@ -32,3 +33,5 @@ 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
@@ -115405,10 +114588,10 @@ index 0000000000000000000000000000000000000000..ef54e0f07ea03f59e9957b5d98f3e7fd
+MODULE_ALIAS("platform:audioinjector-pi-soundcard");
+
-From fc549ae82d8c88a4b51d129b4ed5f4aa1ef55b62 Mon Sep 17 00:00:00 2001
+From d2611b7c324fff94443f868061b6651906baa155 Mon Sep 17 00:00:00 2001
From: DigitalDreamtime
Date: Thu, 30 Jun 2016 18:38:42 +0100
-Subject: [PATCH 080/140] Add IQAudIO Digi WM8804 board support
+Subject: [PATCH 079/187] Add IQAudIO Digi WM8804 board support
Support IQAudIO Digi board with iqaudio_digi machine driver and
iqaudio-digi-wm8804-audio overlay.
@@ -115425,10 +114608,10 @@ Signed-off-by: DigitalDreamtime
create mode 100644 sound/soc/bcm/iqaudio_digi.c
diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
-index eb16c3a7fb316eb5938a54dfa864f66f9b167eb0..9cba69ab877ef73beb2dff2f4f82d1d243f7c604 100644
+index 0ebfea3c1cbb59513741818cf65ea8ecc4767515..24723d09e7bda0c6c06292b159220b180310b12b 100644
--- a/sound/soc/bcm/Kconfig
+++ b/sound/soc/bcm/Kconfig
-@@ -73,6 +73,13 @@ config SND_BCM2708_SOC_IQAUDIO_DAC
+@@ -80,6 +80,13 @@ config SND_BCM2708_SOC_IQAUDIO_DAC
help
Say Y or M if you want to add support for IQaudIO-DAC.
@@ -115443,10 +114626,10 @@ index eb16c3a7fb316eb5938a54dfa864f66f9b167eb0..9cba69ab877ef73beb2dff2f4f82d1d2
tristate "Support for RaspiDAC Rev.3x"
depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S
diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
-index a68469644535a38305bb5b0f3780e03e0ca4f519..fa2739206b79a9f9d2e1173b2099e1156e4e08c8 100644
+index 4d4189b6d0c57645c5ec19554f1e77d4ccc716d6..ee41d6bbdbbda2913aba143a59b4953e800bdb3c 100644
--- a/sound/soc/bcm/Makefile
+++ b/sound/soc/bcm/Makefile
-@@ -18,6 +18,7 @@ snd-soc-justboom-digi-objs := justboom-digi.o
+@@ -19,6 +19,7 @@ snd-soc-justboom-digi-objs := justboom-digi.o
snd-soc-rpi-dac-objs := rpi-dac.o
snd-soc-rpi-proto-objs := rpi-proto.o
snd-soc-iqaudio-dac-objs := iqaudio-dac.o
@@ -115454,7 +114637,7 @@ index a68469644535a38305bb5b0f3780e03e0ca4f519..fa2739206b79a9f9d2e1173b2099e115
snd-soc-raspidac3-objs := raspidac3.o
snd-soc-audioinjector-pi-soundcard-objs := audioinjector-pi-soundcard.o
-@@ -30,6 +31,7 @@ obj-$(CONFIG_SND_BCM2708_SOC_JUSTBOOM_DIGI) += snd-soc-justboom-digi.o
+@@ -32,6 +33,7 @@ obj-$(CONFIG_SND_BCM2708_SOC_JUSTBOOM_DIGI) += snd-soc-justboom-digi.o
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
@@ -115708,10 +114891,10 @@ index 0000000000000000000000000000000000000000..9b6e829bcb5b1762a853775e78163196
+MODULE_DESCRIPTION("ASoC Driver for IQAudIO WM8804 Digi");
+MODULE_LICENSE("GPL v2");
-From bd20905a5f6f0e22433f9e56d83dc838c77d16b3 Mon Sep 17 00:00:00 2001
+From f33b80d08fc3c8155844b48da5fe553be1f41f44 Mon Sep 17 00:00:00 2001
From: escalator2015
Date: Tue, 24 May 2016 16:20:09 +0100
-Subject: [PATCH 081/140] New driver for RRA DigiDAC1 soundcard using WM8741 +
+Subject: [PATCH 080/187] New driver for RRA DigiDAC1 soundcard using WM8741 +
WM8804
---
@@ -115722,10 +114905,10 @@ Subject: [PATCH 081/140] New driver for RRA DigiDAC1 soundcard using WM8741 +
create mode 100644 sound/soc/bcm/digidac1-soundcard.c
diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
-index 9cba69ab877ef73beb2dff2f4f82d1d243f7c604..2be5b64fb0d5dcad0d5747626015a6886c3c273b 100644
+index 24723d09e7bda0c6c06292b159220b180310b12b..c432ef568823787baeccd296be0c107ca8c124ab 100644
--- a/sound/soc/bcm/Kconfig
+++ b/sound/soc/bcm/Kconfig
-@@ -101,3 +101,11 @@ config SND_AUDIOINJECTOR_PI_SOUNDCARD
+@@ -108,3 +108,11 @@ config SND_AUDIOINJECTOR_PI_SOUNDCARD
select SND_SOC_WM8731
help
Say Y or M if you want to add support for audioinjector.net Pi Hat
@@ -115738,18 +114921,18 @@ index 9cba69ab877ef73beb2dff2f4f82d1d243f7c604..2be5b64fb0d5dcad0d5747626015a688
+ help
+ Say Y or M if you want to add support for Red Rocks Audio DigiDAC1 board.
diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
-index fa2739206b79a9f9d2e1173b2099e1156e4e08c8..a5c30c0bdacafb2bd09b6ac2f8a3bdc6a85a8404 100644
+index ee41d6bbdbbda2913aba143a59b4953e800bdb3c..855f4dbe574fcb725b0309710611fa381e1e29d6 100644
--- a/sound/soc/bcm/Makefile
+++ b/sound/soc/bcm/Makefile
-@@ -21,6 +21,7 @@ snd-soc-iqaudio-dac-objs := iqaudio-dac.o
+@@ -22,6 +22,7 @@ snd-soc-iqaudio-dac-objs := iqaudio-dac.o
snd-soc-iqaudio-digi-objs := iqaudio_digi.o
snd-soc-raspidac3-objs := raspidac3.o
snd-soc-audioinjector-pi-soundcard-objs := audioinjector-pi-soundcard.o
+snd-soc-digidac1-soundcard-objs := digidac1-soundcard.o
obj-$(CONFIG_SND_BCM2708_SOC_ADAU1977_ADC) += snd-soc-adau1977-adc.o
- obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC) += snd-soc-hifiberry-dac.o
-@@ -34,4 +35,5 @@ obj-$(CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC) += snd-soc-iqaudio-dac.o
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) += snd-soc-hifiberry-amp.o
+@@ -36,4 +37,5 @@ obj-$(CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC) += snd-soc-iqaudio-dac.o
obj-$(CONFIG_SND_BCM2708_SOC_IQAUDIO_DIGI) += snd-soc-iqaudio-digi.o
obj-$(CONFIG_SND_BCM2708_SOC_RASPIDAC3) += snd-soc-raspidac3.o
obj-$(CONFIG_SND_AUDIOINJECTOR_PI_SOUNDCARD) += snd-soc-audioinjector-pi-soundcard.o
@@ -116184,10 +115367,10 @@ index 0000000000000000000000000000000000000000..446796e7e4c14a7d95b2f2a01211d9a0
+MODULE_DESCRIPTION("ASoC Driver for RRA DigiDAC1");
+MODULE_LICENSE("GPL v2");
-From d769f04e989d8ca654b67d64f021982382e75f47 Mon Sep 17 00:00:00 2001
+From 4948d886046e68390cb574d40b9741681c040a11 Mon Sep 17 00:00:00 2001
From: DigitalDreamtime
Date: Sat, 2 Jul 2016 16:26:19 +0100
-Subject: [PATCH 082/140] Add support for Dion Audio LOCO DAC-AMP HAT
+Subject: [PATCH 081/187] Add support for Dion Audio LOCO DAC-AMP HAT
Using dedicated machine driver and pcm5102a codec driver.
@@ -116200,10 +115383,10 @@ Signed-off-by: DigitalDreamtime
create mode 100644 sound/soc/bcm/dionaudio_loco.c
diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
-index 2be5b64fb0d5dcad0d5747626015a6886c3c273b..b8cb5eb7af9b3e6d8d100926e04bfef629641d1d 100644
+index c432ef568823787baeccd296be0c107ca8c124ab..668d163c37051dddafa6ee6d0984705966c883ef 100644
--- a/sound/soc/bcm/Kconfig
+++ b/sound/soc/bcm/Kconfig
-@@ -109,3 +109,10 @@ config SND_DIGIDAC1_SOUNDCARD
+@@ -116,3 +116,10 @@ config SND_DIGIDAC1_SOUNDCARD
select SND_SOC_WM8741
help
Say Y or M if you want to add support for Red Rocks Audio DigiDAC1 board.
@@ -116215,18 +115398,18 @@ index 2be5b64fb0d5dcad0d5747626015a6886c3c273b..b8cb5eb7af9b3e6d8d100926e04bfef6
+ help
+ Say Y or M if you want to add support for Dion Audio LOCO.
diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
-index a5c30c0bdacafb2bd09b6ac2f8a3bdc6a85a8404..28cdf019dbc7aafda194c83817d260ad1a477666 100644
+index 855f4dbe574fcb725b0309710611fa381e1e29d6..fca9d682bbd2e7821ae01aefc7a5a94e0880a41e 100644
--- a/sound/soc/bcm/Makefile
+++ b/sound/soc/bcm/Makefile
-@@ -22,6 +22,7 @@ snd-soc-iqaudio-digi-objs := iqaudio_digi.o
+@@ -23,6 +23,7 @@ snd-soc-iqaudio-digi-objs := iqaudio_digi.o
snd-soc-raspidac3-objs := raspidac3.o
snd-soc-audioinjector-pi-soundcard-objs := audioinjector-pi-soundcard.o
snd-soc-digidac1-soundcard-objs := digidac1-soundcard.o
+snd-soc-dionaudio-loco-objs := dionaudio_loco.o
obj-$(CONFIG_SND_BCM2708_SOC_ADAU1977_ADC) += snd-soc-adau1977-adc.o
- obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC) += snd-soc-hifiberry-dac.o
-@@ -36,4 +37,4 @@ obj-$(CONFIG_SND_BCM2708_SOC_IQAUDIO_DIGI) += snd-soc-iqaudio-digi.o
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) += snd-soc-hifiberry-amp.o
+@@ -38,4 +39,4 @@ obj-$(CONFIG_SND_BCM2708_SOC_IQAUDIO_DIGI) += snd-soc-iqaudio-digi.o
obj-$(CONFIG_SND_BCM2708_SOC_RASPIDAC3) += snd-soc-raspidac3.o
obj-$(CONFIG_SND_AUDIOINJECTOR_PI_SOUNDCARD) += snd-soc-audioinjector-pi-soundcard.o
obj-$(CONFIG_SND_DIGIDAC1_SOUNDCARD) += snd-soc-digidac1-soundcard.o
@@ -116360,10 +115543,10 @@ index 0000000000000000000000000000000000000000..89e65317512bc774453ac8d0d5b0ff98
+MODULE_DESCRIPTION("ASoC Driver for DionAudio LOCO");
+MODULE_LICENSE("GPL v2");
-From f8dbc341d0ecfa295a817771e693b2e37612c20c Mon Sep 17 00:00:00 2001
+From 852ce462975b2c46948a559739463d913ede1326 Mon Sep 17 00:00:00 2001
From: Clive Messer
Date: Mon, 19 Sep 2016 14:01:04 +0100
-Subject: [PATCH 083/140] Allo Piano DAC boards: Initial 2 channel (stereo)
+Subject: [PATCH 082/187] Allo Piano DAC boards: Initial 2 channel (stereo)
support (#1645)
Add initial 2 channel (stereo) support for Allo Piano DAC (2.0/2.1) boards,
@@ -116388,10 +115571,10 @@ Tested-by: Clive Messer
create mode 100644 sound/soc/bcm/allo-piano-dac.c
diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
-index b8cb5eb7af9b3e6d8d100926e04bfef629641d1d..4f0330a6c06115f077938cba3dc744d4ae10f056 100644
+index 668d163c37051dddafa6ee6d0984705966c883ef..4e83bd6b1703a0bd3de60ad8c799e0cd3bc16b66 100644
--- a/sound/soc/bcm/Kconfig
+++ b/sound/soc/bcm/Kconfig
-@@ -116,3 +116,10 @@ config SND_BCM2708_SOC_DIONAUDIO_LOCO
+@@ -123,3 +123,10 @@ config SND_BCM2708_SOC_DIONAUDIO_LOCO
select SND_SOC_PCM5102a
help
Say Y or M if you want to add support for Dion Audio LOCO.
@@ -116403,18 +115586,18 @@ index b8cb5eb7af9b3e6d8d100926e04bfef629641d1d..4f0330a6c06115f077938cba3dc744d4
+ help
+ Say Y or M if you want to add support for Allo Piano DAC.
diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
-index 28cdf019dbc7aafda194c83817d260ad1a477666..4b94a42efecaee41df37f3c59fddefa5fe78521c 100644
+index fca9d682bbd2e7821ae01aefc7a5a94e0880a41e..64f007f8ba38276a42e0bd8db92544db9412544b 100644
--- a/sound/soc/bcm/Makefile
+++ b/sound/soc/bcm/Makefile
-@@ -23,6 +23,7 @@ snd-soc-raspidac3-objs := raspidac3.o
+@@ -24,6 +24,7 @@ snd-soc-raspidac3-objs := raspidac3.o
snd-soc-audioinjector-pi-soundcard-objs := audioinjector-pi-soundcard.o
snd-soc-digidac1-soundcard-objs := digidac1-soundcard.o
snd-soc-dionaudio-loco-objs := dionaudio_loco.o
+snd-soc-allo-piano-dac-objs := allo-piano-dac.o
obj-$(CONFIG_SND_BCM2708_SOC_ADAU1977_ADC) += snd-soc-adau1977-adc.o
- obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC) += snd-soc-hifiberry-dac.o
-@@ -38,3 +39,4 @@ obj-$(CONFIG_SND_BCM2708_SOC_RASPIDAC3) += snd-soc-raspidac3.o
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) += snd-soc-hifiberry-amp.o
+@@ -40,3 +41,4 @@ obj-$(CONFIG_SND_BCM2708_SOC_RASPIDAC3) += snd-soc-raspidac3.o
obj-$(CONFIG_SND_AUDIOINJECTOR_PI_SOUNDCARD) += snd-soc-audioinjector-pi-soundcard.o
obj-$(CONFIG_SND_DIGIDAC1_SOUNDCARD) += snd-soc-digidac1-soundcard.o
obj-$(CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO) += snd-soc-dionaudio-loco.o
@@ -116570,10 +115753,10 @@ index 0000000000000000000000000000000000000000..8e8e62e5a36a279b425ed4655cfbac99
+MODULE_DESCRIPTION("ALSA ASoC Machine Driver for Allo Piano DAC");
+MODULE_LICENSE("GPL v2");
-From e1275c43efe1053a9916fb11e27b286338f87195 Mon Sep 17 00:00:00 2001
+From cd1a43e18d800ec4c2c8a7c5350bc1e13b267169 Mon Sep 17 00:00:00 2001
From: gtrainavicius
Date: Sun, 23 Oct 2016 12:06:53 +0300
-Subject: [PATCH 084/140] Support for Blokas Labs pisound board
+Subject: [PATCH 083/187] Support for Blokas Labs pisound board
Pisound dynamic overlay (#1760)
@@ -116724,10 +115907,10 @@ index 7cdfc29ba4fbffd3216376677922e7ae26019055..5197e656a3d741d14bd9dd6c812b4b93
- };
};
diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
-index 4f0330a6c06115f077938cba3dc744d4ae10f056..a0ef6a028136beb27ed13a4136712a70a60f2966 100644
+index 4e83bd6b1703a0bd3de60ad8c799e0cd3bc16b66..d024377e8450fb5402dcb5ea27161f774b04a8ec 100644
--- a/sound/soc/bcm/Kconfig
+++ b/sound/soc/bcm/Kconfig
-@@ -123,3 +123,9 @@ config SND_BCM2708_SOC_ALLO_PIANO_DAC
+@@ -130,3 +130,9 @@ config SND_BCM2708_SOC_ALLO_PIANO_DAC
select SND_SOC_PCM512x_I2C
help
Say Y or M if you want to add support for Allo Piano DAC.
@@ -116738,18 +115921,18 @@ index 4f0330a6c06115f077938cba3dc744d4ae10f056..a0ef6a028136beb27ed13a4136712a70
+ help
+ Say Y or M if you want to add support for Blokas Labs pisound.
diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
-index 4b94a42efecaee41df37f3c59fddefa5fe78521c..f720a3d3b5832844ee6d0558317c728f00c40b65 100644
+index 64f007f8ba38276a42e0bd8db92544db9412544b..bb1df438540193652ec5464e8bc51f636a1b844e 100644
--- a/sound/soc/bcm/Makefile
+++ b/sound/soc/bcm/Makefile
-@@ -24,6 +24,7 @@ snd-soc-audioinjector-pi-soundcard-objs := audioinjector-pi-soundcard.o
+@@ -25,6 +25,7 @@ snd-soc-audioinjector-pi-soundcard-objs := audioinjector-pi-soundcard.o
snd-soc-digidac1-soundcard-objs := digidac1-soundcard.o
snd-soc-dionaudio-loco-objs := dionaudio_loco.o
snd-soc-allo-piano-dac-objs := allo-piano-dac.o
+snd-soc-pisound-objs := pisound.o
obj-$(CONFIG_SND_BCM2708_SOC_ADAU1977_ADC) += snd-soc-adau1977-adc.o
- obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC) += snd-soc-hifiberry-dac.o
-@@ -40,3 +41,4 @@ obj-$(CONFIG_SND_AUDIOINJECTOR_PI_SOUNDCARD) += snd-soc-audioinjector-pi-soundca
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) += snd-soc-hifiberry-amp.o
+@@ -42,3 +43,4 @@ obj-$(CONFIG_SND_AUDIOINJECTOR_PI_SOUNDCARD) += snd-soc-audioinjector-pi-soundca
obj-$(CONFIG_SND_DIGIDAC1_SOUNDCARD) += snd-soc-digidac1-soundcard.o
obj-$(CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO) += snd-soc-dionaudio-loco.o
obj-$(CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC) += snd-soc-allo-piano-dac.o
@@ -117750,10 +116933,10 @@ index 0000000000000000000000000000000000000000..4b8545487d06e4ea70073a5d063fb231
+MODULE_DESCRIPTION("ASoC Driver for pisound, http://blokas.io/pisound");
+MODULE_LICENSE("GPL v2");
-From cb9c788998e6d04f2095a3d079a294389886f22a Mon Sep 17 00:00:00 2001
+From 7b14e374b8add26dc1d2d883d190e43c85820325 Mon Sep 17 00:00:00 2001
From: P33M
Date: Wed, 21 Oct 2015 14:55:21 +0100
-Subject: [PATCH 085/140] rpi_display: add backlight driver and overlay
+Subject: [PATCH 084/187] rpi_display: add backlight driver and overlay
Add a mailbox-driven backlight controller for the Raspberry Pi DSI
touchscreen display. Requires updated GPU firmware to recognise the
@@ -117922,10 +117105,10 @@ index 0000000000000000000000000000000000000000..14a0d9b037395497c1fdae2961feccd5
+MODULE_DESCRIPTION("Raspberry Pi mailbox based Backlight Driver");
+MODULE_LICENSE("GPL");
-From 1e42c44b40a1be7fc26e92375504e9008156490a Mon Sep 17 00:00:00 2001
+From 3b430599904c04d437a81f7a1c287bc6e4c35532 Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Tue, 23 Feb 2016 19:56:04 +0000
-Subject: [PATCH 086/140] bcm2835-virtgpio: Virtual GPIO driver
+Subject: [PATCH 085/187] bcm2835-virtgpio: Virtual GPIO driver
Add a virtual GPIO driver that uses the firmware mailbox interface to
request that the VPU toggles LEDs.
@@ -118199,10 +117382,10 @@ index b0f6e33bd30c35664ceee057f4c3ad32b914291d..e92278968b2b979db2a1f855f70e7aaf
RPI_FIRMWARE_FRAMEBUFFER_SET_BACKLIGHT = 0x0004800f,
-From c8452a4f0c6aecede8c8cd2e0f8d571df62f7d77 Mon Sep 17 00:00:00 2001
+From e46e675846fab8bd468653486071b72afbd6ef6b Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Tue, 23 Feb 2016 17:26:48 +0000
-Subject: [PATCH 087/140] amba_pl011: Don't use DT aliases for numbering
+Subject: [PATCH 086/187] amba_pl011: Don't use DT aliases for numbering
The pl011 driver looks for DT aliases of the form "serial",
and if found uses as the device ID. This can cause
@@ -118231,10 +117414,10 @@ index e2c33b9528d82ed7a2c27d083d7b1d222da68178..5a11ff833e1fd112ba04df3a427cd94b
uap->old_cr = 0;
uap->port.dev = dev;
-From d1429c129c393594f65f2da36b42687973498747 Mon Sep 17 00:00:00 2001
+From 6324540ac51de67caef39b5281b005c77372e74d Mon Sep 17 00:00:00 2001
From: Pantelis Antoniou
Date: Wed, 3 Dec 2014 13:23:28 +0200
-Subject: [PATCH 088/140] OF: DT-Overlay configfs interface
+Subject: [PATCH 087/187] OF: DT-Overlay configfs interface
This is a port of Pantelis Antoniou's v3 port that makes use of the
new upstreamed configfs support for binary attributes.
@@ -118666,10 +117849,10 @@ index 0000000000000000000000000000000000000000..0037e6868a6cda8706c88194c6a4454b
+}
+late_initcall(of_cfs_init);
-From 375ba3269f5ef7044260d9ee190c936fc72c9836 Mon Sep 17 00:00:00 2001
+From bfbb95a2357ad45f96920b21216a0061d89ae04a Mon Sep 17 00:00:00 2001
From: Cheong2K
Date: Fri, 26 Feb 2016 18:20:10 +0800
-Subject: [PATCH 089/140] brcm: adds support for BCM43341 wifi
+Subject: [PATCH 088/187] brcm: adds support for BCM43341 wifi
brcmfmac: Disable power management
@@ -118832,10 +118015,10 @@ index d0407d9ad7827cd756b6311410ffe2d9a7cacc78..f1fb8a3c7a3211e8429585861f2f42e0
#define BRCM_CC_4335_CHIP_ID 0x4335
#define BRCM_CC_4339_CHIP_ID 0x4339
-From 5c75e3d1bc4df013f745e78385f458613bf7b32e Mon Sep 17 00:00:00 2001
+From d08b3b2e366e63348adc2ed3601f184bc00aa80c Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Thu, 17 Dec 2015 13:37:07 +0000
-Subject: [PATCH 090/140] hci_h5: Don't send conf_req when ACTIVE
+Subject: [PATCH 089/187] hci_h5: Don't send conf_req when ACTIVE
Without this patch, a modem and kernel can continuously bombard each
other with conf_req and conf_rsp messages, in a demented game of tag.
@@ -118858,10 +118041,10 @@ index 0879d64b1caf58afb6e5d494c07d9ab7e7cdf983..5161ab30fd533d50f516bb93d5b9f402
if (H5_HDR_LEN(hdr) > 2)
h5->tx_win = (data[2] & 0x07);
-From 1fbc772f5f537bdab6e27783d6acc2d10e7aecec Mon Sep 17 00:00:00 2001
+From 3490894ce5d697151ca18d1125e865f0aa5cd499 Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Mon, 13 Apr 2015 17:16:29 +0100
-Subject: [PATCH 091/140] config: Add default configs
+Subject: [PATCH 090/187] config: Add default configs
---
arch/arm/configs/bcm2709_defconfig | 1297 +++++++++++++++++++++++++++++++++++
@@ -121488,10 +120671,10 @@ index 0000000000000000000000000000000000000000..8acee9f31202ec14f2933d92dd70831c
+CONFIG_CRC_ITU_T=y
+CONFIG_LIBCRC32C=y
-From e565c8cc4a7024d22170905c846b8545cd7fa662 Mon Sep 17 00:00:00 2001
+From 9d9231cb2087d2b16c74d7be316aa81d23f94929 Mon Sep 17 00:00:00 2001
From: Michael Zoran
Date: Wed, 24 Aug 2016 03:35:56 -0700
-Subject: [PATCH 092/140] Add arm64 configuration and device tree differences.
+Subject: [PATCH 091/187] Add arm64 configuration and device tree differences.
Disable MMC_BCM2835_SDHOST and MMC_BCM2835 since these drivers are crashing
at the moment.
@@ -122906,10 +122089,10 @@ index 0000000000000000000000000000000000000000..d7406f5a4620151044b8f716b4d10bb8
+CONFIG_LIBCRC32C=y
+CONFIG_BCM2708_VCHIQ=n
-From 35fd48cb4edfef0dbf91800e07655db35533305a Mon Sep 17 00:00:00 2001
+From 20fb3a0e5c039dbdef223ca31bdf8e56e50ae601 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Mon, 7 Mar 2016 15:05:11 +0000
-Subject: [PATCH 093/140] vchiq_arm: Tweak the logging output
+Subject: [PATCH 092/187] vchiq_arm: Tweak the logging output
Signed-off-by: Phil Elwell
---
@@ -122984,10 +122167,10 @@ index 2c98da4307dff994a00dc246574ef0aaee05d5da..160db24aeea33a8296923501009c1f02
switch (type) {
-From 7ec1488f0ba404ea96cfee0f8f28bbdbab20a7d6 Mon Sep 17 00:00:00 2001
+From 601d9ca790405317d2d4b02bb9b88b7397bf3ddb Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Wed, 23 Mar 2016 14:16:25 +0000
-Subject: [PATCH 094/140] vchiq_arm: Access the dequeue_pending flag locked
+Subject: [PATCH 093/187] vchiq_arm: Access the dequeue_pending flag locked
Reading through this code looking for another problem (now found in userland)
the use of dequeue_pending outside a lock didn't seem safe.
@@ -123045,10 +122228,10 @@ index 7b6cd4d80621e38ff6d47fcd87b45fbe9cd4259b..d8669fa7f39b077877eca1829ba9538b
return add_completion(instance, reason, header, user_service,
-From f17f2d01f807587bb82898dad5753c74ad5e966c Mon Sep 17 00:00:00 2001
+From 2f27e6a032314fbb27c3859a96fa49fe99b53b04 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Wed, 23 Mar 2016 20:53:47 +0000
-Subject: [PATCH 095/140] vchiq_arm: Service callbacks must not fail
+Subject: [PATCH 094/187] vchiq_arm: Service callbacks must not fail
Service callbacks are not allowed to return an error. The internal callback
that delivers events and messages to user tasks does not enqueue them if
@@ -123074,10 +122257,10 @@ index d8669fa7f39b077877eca1829ba9538bf2e21a82..54552c6ce54f413c9781ba279b936f98
DEBUG_TRACE(SERVICE_CALLBACK_LINE);
}
-From 357aa48f33262ca57a65682b9b9e70a13ecada2d Mon Sep 17 00:00:00 2001
+From c04c96f22141ed319200757d1c1dad8cbd2e3658 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Thu, 21 Apr 2016 13:49:32 +0100
-Subject: [PATCH 096/140] vchiq_arm: Add completion records under the mutex
+Subject: [PATCH 095/187] vchiq_arm: Add completion records under the mutex
An issue was observed when flushing openmax components
which generate a large number of messages returning
@@ -123140,10 +122323,10 @@ index 54552c6ce54f413c9781ba279b936f98be4f47b0..bde8955b7d8505d73579b77b5b392154
return VCHIQ_SUCCESS;
-From e55fbce2a8a409274e1f13ceceb9fa856f3241bf Mon Sep 17 00:00:00 2001
+From 5305ba9a2ed0c51be45ee36fa9c547413341612c Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Mon, 20 Jun 2016 13:51:44 +0100
-Subject: [PATCH 097/140] vchiq_arm: Avoid use of mutex in add_completion
+Subject: [PATCH 096/187] vchiq_arm: Avoid use of mutex in add_completion
Claiming the completion_mutex within add_completion did prevent some
messages appearing twice, but provokes a deadlock caused by vcsm using
@@ -123337,10 +122520,10 @@ index 160db24aeea33a8296923501009c1f02bc41e599..71a3bedc55314f3b22dbff40c05dedf0
up(&state->slot_available_event);
}
-From 79c80fcffa0edd56fd39cde6225a8595d20b8e13 Mon Sep 17 00:00:00 2001
+From 3f088bf35e3319a4efcf593c7eb717429f59c783 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Mon, 3 Oct 2016 10:14:10 -0700
-Subject: [PATCH 098/140] staging/vchi: Convert to current get_user_pages()
+Subject: [PATCH 097/187] staging/vchi: Convert to current get_user_pages()
arguments.
Signed-off-by: Eric Anholt
@@ -123377,10 +122560,10 @@ index e5cdda12c7e5c35c69eb96991cfdb8326def167f..085d37588c59198b4e5f00b9249bb842
num_pages, /* len */
0, /* gup_flags */
-From 1e387fd101bc3670fe99c7470ccce6a0a73a82ef Mon Sep 17 00:00:00 2001
+From aca21ab5ab5b57a8f013380ff7f2b9dfff14636a Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Mon, 3 Oct 2016 10:16:03 -0700
-Subject: [PATCH 099/140] staging/vchi: Update for rename of
+Subject: [PATCH 098/187] staging/vchi: Update for rename of
page_cache_release() to put_page().
Signed-off-by: Eric Anholt
@@ -123425,10 +122608,10 @@ index 085d37588c59198b4e5f00b9249bb8421695854f..5a2b8fb459ebe086ec229f37b6381bdb
kfree(pages);
}
-From fa0f59766f7817bbafb26e74fabadf9770cd0c54 Mon Sep 17 00:00:00 2001
+From 789222dfdfbfdcfbc2513f3680fc13c1dded8050 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Mon, 3 Oct 2016 10:21:17 -0700
-Subject: [PATCH 100/140] drivers/vchi: Remove dependency on CONFIG_BROKEN.
+Subject: [PATCH 099/187] drivers/vchi: Remove dependency on CONFIG_BROKEN.
The driver builds now.
@@ -123450,10 +122633,10 @@ index 9676fb29075a457109e4d4235f086987aec74868..db8e1beb89f9f8c48ea5964016c8285e
help
Kernel to VideoCore communication interface for the
-From 348cb13e9eb0943b5a3d2ccc9f8447bd906fafb9 Mon Sep 17 00:00:00 2001
+From 13af1452d680d811bb10721f7b08b9b6a2718ccc Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Wed, 14 Sep 2016 09:16:19 +0100
-Subject: [PATCH 101/140] raspberrypi-firmware: Export the general transaction
+Subject: [PATCH 100/187] raspberrypi-firmware: Export the general transaction
function.
The vc4-firmware-kms module is going to be doing the MBOX FB call.
@@ -123497,10 +122680,10 @@ index e92278968b2b979db2a1f855f70e7aafb224fa98..09e3d871d110eb0762ebdb5ea3293537
#endif /* __SOC_RASPBERRY_FIRMWARE_H__ */
-From 1464fdba20dabf739325675298b8cfc94751a531 Mon Sep 17 00:00:00 2001
+From abd4f74c5ead8e51449e3196fda2868f07db87b2 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Wed, 14 Sep 2016 09:18:09 +0100
-Subject: [PATCH 102/140] raspberrypi-firmware: Define the MBOX channel in the
+Subject: [PATCH 101/187] raspberrypi-firmware: Define the MBOX channel in the
header.
Signed-off-by: Eric Anholt
@@ -123522,10 +122705,10 @@ index 09e3d871d110eb0762ebdb5ea329353738d58661..2859db09e25bb945251e85edb39bc434
enum rpi_firmware_property_status {
-From da93c067a6faf0915da62d4763d15fec197e4632 Mon Sep 17 00:00:00 2001
+From 223f7c7232f19ded00dad5e51e2ac13f3c004d1c Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Wed, 14 Sep 2016 08:39:33 +0100
-Subject: [PATCH 103/140] drm/vc4: Add a mode for using the closed firmware for
+Subject: [PATCH 102/187] drm/vc4: Add a mode for using the closed firmware for
display.
Signed-off-by: Eric Anholt
@@ -124292,10 +123475,10 @@ index 0000000000000000000000000000000000000000..d18a1dae51a2275846c9826b5bf1ba57
+ },
+};
-From 0c64daf4fec58a7f3bc174a3d73e3ac845f65b86 Mon Sep 17 00:00:00 2001
+From 2c21818d67bd9603071d0920fa147617c8ef5d57 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Sat, 17 Sep 2016 15:07:10 +0200
-Subject: [PATCH 104/140] i2c: bcm2835: Fix hang for writing messages larger
+Subject: [PATCH 103/187] i2c: bcm2835: Fix hang for writing messages larger
than 16 bytes
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
@@ -124385,10 +123568,10 @@ index d4f3239b56865919e1b781b20a7c5ebcd76b4eb9..f283b714aa79e2e4685ed95b04b6b289
i2c_dev->msg_buf_remaining = msg->len;
reinit_completion(&i2c_dev->completion);
-From 0aaf65741593a9fd06e98263363832bd498cc2f7 Mon Sep 17 00:00:00 2001
+From bd85fc46ace73c104fa58bc8f0747609ffef341b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Fri, 23 Sep 2016 18:24:38 +0200
-Subject: [PATCH 105/140] i2c: bcm2835: Protect against unexpected TXW/RXR
+Subject: [PATCH 104/187] i2c: bcm2835: Protect against unexpected TXW/RXR
interrupts
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
@@ -124513,10 +123696,10 @@ index f283b714aa79e2e4685ed95b04b6b289f7e9eee7..d2ba1a4de36af512e8e3c97251bd3537
return -ETIMEDOUT;
}
-From 37f07694782131d58654fdddec13530647665c41 Mon Sep 17 00:00:00 2001
+From 7410e42e332b47dd3ac0b0fc44953b24f941429f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Mon, 19 Sep 2016 17:19:41 +0200
-Subject: [PATCH 106/140] i2c: bcm2835: Use dev_dbg logging on transfer errors
+Subject: [PATCH 105/187] i2c: bcm2835: Use dev_dbg logging on transfer errors
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -124548,10 +123731,10 @@ index d2ba1a4de36af512e8e3c97251bd3537ae61591a..54d510abd46a117c9238fc6d7edec840
if (i2c_dev->msg_err & BCM2835_I2C_S_ERR)
return -EREMOTEIO;
-From ecacf486b572638bc4f48ec95ce7487176db6379 Mon Sep 17 00:00:00 2001
+From 588f321b996ccfac8f507323d61c8a530d0e67a5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Thu, 22 Sep 2016 22:05:50 +0200
-Subject: [PATCH 107/140] i2c: bcm2835: Can't support I2C_M_IGNORE_NAK
+Subject: [PATCH 106/187] i2c: bcm2835: Can't support I2C_M_IGNORE_NAK
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -124595,10 +123778,10 @@ index 54d510abd46a117c9238fc6d7edec84019d1f60d..565ef69ce61423544dc0558c85ef318b
if (i2c_dev->msg_err & BCM2835_I2C_S_ERR)
-From f1d345c2d724219a84d35c6b5a0f7c245a350fdc Mon Sep 17 00:00:00 2001
+From 6b38636136ea4492ede6905ae66c53d1c72630d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Fri, 23 Sep 2016 04:54:27 +0200
-Subject: [PATCH 108/140] i2c: bcm2835: Add support for Repeated Start
+Subject: [PATCH 107/187] i2c: bcm2835: Add support for Repeated Start
Condition
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
@@ -124780,10 +123963,10 @@ index 565ef69ce61423544dc0558c85ef318b0ae9c324..241e08ae7c27cec23fad3c1bf3ebad3a
static u32 bcm2835_i2c_func(struct i2c_adapter *adap)
-From a4506104d5e6a1163413848796c70bafeb83b529 Mon Sep 17 00:00:00 2001
+From fcb0461ba98a06eb4fe21701f8f075cf9926d437 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Fri, 23 Sep 2016 04:57:17 +0200
-Subject: [PATCH 109/140] i2c: bcm2835: Support i2c-dev ioctl I2C_TIMEOUT
+Subject: [PATCH 108/187] i2c: bcm2835: Support i2c-dev ioctl I2C_TIMEOUT
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -124820,10 +124003,10 @@ index 241e08ae7c27cec23fad3c1bf3ebad3a4d2a8e6f..d2085dd3742eabebc537621968088261
bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C,
BCM2835_I2C_C_CLEAR);
-From bc8206e909535c9cf57538b0c5121b98a880017f Mon Sep 17 00:00:00 2001
+From 8e1ede04b3ed0f4caa6f350bf079c5c39536d786 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Tue, 27 Sep 2016 01:00:08 +0200
-Subject: [PATCH 110/140] i2c: bcm2835: Add support for dynamic clock
+Subject: [PATCH 109/187] i2c: bcm2835: Add support for dynamic clock
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -124939,10 +124122,10 @@ index d2085dd3742eabebc537621968088261f8dc7ea8..c3436f627028477f7e21b47e079fd5ab
irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
if (!irq) {
-From 15d85dfe50f97f181498356e9ef735aa45adcd1d Mon Sep 17 00:00:00 2001
+From 3e3241d385371be14a6beb09565a5046ae9474dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?=
Date: Tue, 1 Nov 2016 15:15:41 +0100
-Subject: [PATCH 111/140] i2c: bcm2835: Add debug support
+Subject: [PATCH 110/187] i2c: bcm2835: Add debug support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -125131,10 +124314,10 @@ index c3436f627028477f7e21b47e079fd5ab06ec188a..8642f580ce41803bd22c76a0fa80d083
if (i2c_dev->msg_err & BCM2835_I2C_S_ERR)
return -EREMOTEIO;
-From e28b55c5e8d7411c32f6ec15101276060c71c7d1 Mon Sep 17 00:00:00 2001
+From 64556f2c8cd15271c6932c41e3c1722ea5c2a7a2 Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Sat, 31 Dec 2016 14:15:50 +0000
-Subject: [PATCH 112/140] arm64: Add CONFIG_ARCH_BCM2835
+Subject: [PATCH 111/187] arm64: Add CONFIG_ARCH_BCM2835
---
arch/arm64/configs/bcmrpi3_defconfig | 1 +
@@ -125150,10 +124333,10 @@ index d7406f5a4620151044b8f716b4d10bb818648e06..53da5c7a33e5898a66e549fb0c39fe3d
CONFIG_BCM2708_VCHIQ=n
+CONFIG_ARCH_BCM2835=y
-From 504cbe6331e8e2fb20532f2cd78d39dc04f5ff54 Mon Sep 17 00:00:00 2001
+From 23096cda9201811a9f0a7e5ae9bacd047deb126b Mon Sep 17 00:00:00 2001
From: Alex Tucker
Date: Tue, 13 Dec 2016 19:50:18 +0000
-Subject: [PATCH 113/140] Add support for Silicon Labs Si7013/20/21
+Subject: [PATCH 112/187] Add support for Silicon Labs Si7013/20/21
humidity/temperature sensor.
---
@@ -125228,10 +124411,10 @@ index f6d134c095af2398fc55ae7d2b0e86456c30627c..31bda8da4cb6a56bfe493a81b9189009
};
};
-From 7fd3189681ab1e4bcde0efba4d7b9cb92f5bce72 Mon Sep 17 00:00:00 2001
+From 272d577c609238d107527ed6b7120d2b4c3f373c Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Tue, 3 Jan 2017 21:27:46 +0000
-Subject: [PATCH 114/140] Document the si7020 option
+Subject: [PATCH 113/187] Document the si7020 option
---
arch/arm/boot/dts/overlays/README | 3 +++
@@ -125252,10 +124435,10 @@ index 81d991803be335e5a1bc3bb0a8c7a2c9f5c392bd..e8fa4ccb44c34a20485c4e6155467af9
Name: i2c0-bcm2708
Info: Enable the i2c_bcm2708 driver for the i2c0 bus. Not all pin combinations
-From ceb29f8e53ca711738de6c72eeb9d9cb3a857575 Mon Sep 17 00:00:00 2001
+From 0a5470acf780e9ce5aff826f1f9592f298f0df08 Mon Sep 17 00:00:00 2001
From: Giedrius Trainavicius
Date: Thu, 5 Jan 2017 02:38:16 +0200
-Subject: [PATCH 115/140] pisound improvements:
+Subject: [PATCH 114/187] pisound improvements:
* Added a writable sysfs object to enable scripts / user space software
to blink MIDI activity LEDs for variable duration.
@@ -125549,958 +124732,10 @@ index 4b8545487d06e4ea70073a5d063fb2310b3b94d0..ba70734b89e61a11201657406223f0b3
};
-From f431961cbef359e679dcecd15eac69489e537d07 Mon Sep 17 00:00:00 2001
-From: Phil Elwell
-Date: Mon, 9 Jan 2017 09:23:06 +0000
-Subject: [PATCH 116/140] Revert "Revert "Added driver for HiFiBerry Amp
- amplifier add-on board""
-
-This reverts commit bf84babd8fffcb79c60f1342c2416f8e1e4b7af9.
----
- sound/soc/bcm/Kconfig | 7 +
- sound/soc/bcm/Makefile | 2 +
- sound/soc/bcm/hifiberry_amp.c | 129 +++++++++++++++
- sound/soc/codecs/Kconfig | 4 +
- sound/soc/codecs/Makefile | 2 +
- sound/soc/codecs/tas5713.c | 369 ++++++++++++++++++++++++++++++++++++++++++
- sound/soc/codecs/tas5713.h | 210 ++++++++++++++++++++++++
- 7 files changed, 723 insertions(+)
- create mode 100644 sound/soc/bcm/hifiberry_amp.c
- create mode 100644 sound/soc/codecs/tas5713.c
- create mode 100644 sound/soc/codecs/tas5713.h
-
-diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
-index a0ef6a028136beb27ed13a4136712a70a60f2966..d024377e8450fb5402dcb5ea27161f774b04a8ec 100644
---- a/sound/soc/bcm/Kconfig
-+++ b/sound/soc/bcm/Kconfig
-@@ -38,6 +38,13 @@ config SND_BCM2708_SOC_HIFIBERRY_DIGI
- help
- Say Y or M if you want to add support for HifiBerry Digi S/PDIF output board.
-
-+config SND_BCM2708_SOC_HIFIBERRY_AMP
-+ tristate "Support for the HifiBerry Amp"
-+ depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S
-+ select SND_SOC_TAS5713
-+ help
-+ Say Y or M if you want to add support for the HifiBerry Amp amplifier board.
-+
- config SND_BCM2708_SOC_RPI_DAC
- tristate "Support for RPi-DAC"
- depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S
-diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
-index f720a3d3b5832844ee6d0558317c728f00c40b65..bb1df438540193652ec5464e8bc51f636a1b844e 100644
---- a/sound/soc/bcm/Makefile
-+++ b/sound/soc/bcm/Makefile
-@@ -10,6 +10,7 @@ obj-$(CONFIG_SND_SOC_CYGNUS) += snd-soc-cygnus.o
-
- # BCM2708 Machine Support
- snd-soc-adau1977-adc-objs := adau1977-adc.o
-+snd-soc-hifiberry-amp-objs := hifiberry_amp.o
- snd-soc-hifiberry-dac-objs := hifiberry_dac.o
- snd-soc-hifiberry-dacplus-objs := hifiberry_dacplus.o
- snd-soc-hifiberry-digi-objs := hifiberry_digi.o
-@@ -27,6 +28,7 @@ snd-soc-allo-piano-dac-objs := allo-piano-dac.o
- snd-soc-pisound-objs := pisound.o
-
- obj-$(CONFIG_SND_BCM2708_SOC_ADAU1977_ADC) += snd-soc-adau1977-adc.o
-+obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP) += snd-soc-hifiberry-amp.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
- obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI) += snd-soc-hifiberry-digi.o
-diff --git a/sound/soc/bcm/hifiberry_amp.c b/sound/soc/bcm/hifiberry_amp.c
-new file mode 100644
-index 0000000000000000000000000000000000000000..d17c29780507dc31c50f1d567ff5cea7c8241ff5
---- /dev/null
-+++ b/sound/soc/bcm/hifiberry_amp.c
-@@ -0,0 +1,129 @@
-+/*
-+ * ASoC Driver for HifiBerry AMP
-+ *
-+ * Author: Sebastian Eickhoff
-+ * Copyright 2014
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * version 2 as published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * General Public License for more details.
-+ */
-+
-+#include
-+#include
-+
-+#include
-+#include
-+#include
-+#include
-+#include
-+
-+static int snd_rpi_hifiberry_amp_init(struct snd_soc_pcm_runtime *rtd)
-+{
-+ // ToDo: init of the dsp-registers.
-+ return 0;
-+}
-+
-+static int snd_rpi_hifiberry_amp_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;
-+
-+ return snd_soc_dai_set_bclk_ratio(cpu_dai, 64);
-+}
-+
-+static struct snd_soc_ops snd_rpi_hifiberry_amp_ops = {
-+ .hw_params = snd_rpi_hifiberry_amp_hw_params,
-+};
-+
-+static struct snd_soc_dai_link snd_rpi_hifiberry_amp_dai[] = {
-+ {
-+ .name = "HifiBerry AMP",
-+ .stream_name = "HifiBerry AMP HiFi",
-+ .cpu_dai_name = "bcm2708-i2s.0",
-+ .codec_dai_name = "tas5713-hifi",
-+ .platform_name = "bcm2708-i2s.0",
-+ .codec_name = "tas5713.1-001b",
-+ .dai_fmt = SND_SOC_DAIFMT_I2S |
-+ SND_SOC_DAIFMT_NB_NF |
-+ SND_SOC_DAIFMT_CBS_CFS,
-+ .ops = &snd_rpi_hifiberry_amp_ops,
-+ .init = snd_rpi_hifiberry_amp_init,
-+ },
-+};
-+
-+
-+static struct snd_soc_card snd_rpi_hifiberry_amp = {
-+ .name = "snd_rpi_hifiberry_amp",
-+ .driver_name = "HifiberryAmp",
-+ .owner = THIS_MODULE,
-+ .dai_link = snd_rpi_hifiberry_amp_dai,
-+ .num_links = ARRAY_SIZE(snd_rpi_hifiberry_amp_dai),
-+};
-+
-+static const struct of_device_id snd_rpi_hifiberry_amp_of_match[] = {
-+ { .compatible = "hifiberry,hifiberry-amp", },
-+ {},
-+};
-+MODULE_DEVICE_TABLE(of, snd_rpi_hifiberry_amp_of_match);
-+
-+
-+static int snd_rpi_hifiberry_amp_probe(struct platform_device *pdev)
-+{
-+ int ret = 0;
-+
-+ snd_rpi_hifiberry_amp.dev = &pdev->dev;
-+
-+ if (pdev->dev.of_node) {
-+ struct device_node *i2s_node;
-+ struct snd_soc_dai_link *dai = &snd_rpi_hifiberry_amp_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_hifiberry_amp);
-+
-+ if (ret != 0) {
-+ dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n", ret);
-+ }
-+
-+ return ret;
-+}
-+
-+
-+static int snd_rpi_hifiberry_amp_remove(struct platform_device *pdev)
-+{
-+ return snd_soc_unregister_card(&snd_rpi_hifiberry_amp);
-+}
-+
-+
-+static struct platform_driver snd_rpi_hifiberry_amp_driver = {
-+ .driver = {
-+ .name = "snd-hifiberry-amp",
-+ .owner = THIS_MODULE,
-+ .of_match_table = snd_rpi_hifiberry_amp_of_match,
-+ },
-+ .probe = snd_rpi_hifiberry_amp_probe,
-+ .remove = snd_rpi_hifiberry_amp_remove,
-+};
-+
-+
-+module_platform_driver(snd_rpi_hifiberry_amp_driver);
-+
-+
-+MODULE_AUTHOR("Sebastian Eickhoff ");
-+MODULE_DESCRIPTION("ASoC driver for HiFiBerry-AMP");
-+MODULE_LICENSE("GPL v2");
-diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
-index 74a93e52bdc8116df3db08aaf98fffa1e6f6cc1b..9824cdd04b0c11c45b8cedd0187a0eba8f1dc2d4 100644
---- a/sound/soc/codecs/Kconfig
-+++ b/sound/soc/codecs/Kconfig
-@@ -139,6 +139,7 @@ config SND_SOC_ALL_CODECS
- select SND_SOC_TFA9879 if I2C
- select SND_SOC_TLV320AIC23_I2C if I2C
- select SND_SOC_TLV320AIC23_SPI if SPI_MASTER
-+ select SND_SOC_TAS5713 if I2C
- select SND_SOC_TLV320AIC26 if SPI_MASTER
- select SND_SOC_TLV320AIC31XX if I2C
- select SND_SOC_TLV320AIC32X4_I2C if I2C
-@@ -821,6 +822,9 @@ config SND_SOC_TFA9879
- tristate "NXP Semiconductors TFA9879 amplifier"
- depends on I2C
-
-+config SND_SOC_TAS5713
-+ tristate
-+
- config SND_SOC_TLV320AIC23
- tristate
-
-diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
-index 77786e7f44a7fa22d9b5beed3eb687e2b7a28526..5a2db0d2fe2f49920eeccfecef62c969ae2e99a1 100644
---- a/sound/soc/codecs/Makefile
-+++ b/sound/soc/codecs/Makefile
-@@ -144,6 +144,7 @@ snd-soc-tas5086-objs := tas5086.o
- snd-soc-tas571x-objs := tas571x.o
- snd-soc-tas5720-objs := tas5720.o
- snd-soc-tfa9879-objs := tfa9879.o
-+snd-soc-tas5713-objs := tas5713.o
- snd-soc-tlv320aic23-objs := tlv320aic23.o
- snd-soc-tlv320aic23-i2c-objs := tlv320aic23-i2c.o
- snd-soc-tlv320aic23-spi-objs := tlv320aic23-spi.o
-@@ -366,6 +367,7 @@ obj-$(CONFIG_SND_SOC_TAS5086) += snd-soc-tas5086.o
- obj-$(CONFIG_SND_SOC_TAS571X) += snd-soc-tas571x.o
- obj-$(CONFIG_SND_SOC_TAS5720) += snd-soc-tas5720.o
- obj-$(CONFIG_SND_SOC_TFA9879) += snd-soc-tfa9879.o
-+obj-$(CONFIG_SND_SOC_TAS5713) += snd-soc-tas5713.o
- obj-$(CONFIG_SND_SOC_TLV320AIC23) += snd-soc-tlv320aic23.o
- obj-$(CONFIG_SND_SOC_TLV320AIC23_I2C) += snd-soc-tlv320aic23-i2c.o
- obj-$(CONFIG_SND_SOC_TLV320AIC23_SPI) += snd-soc-tlv320aic23-spi.o
-diff --git a/sound/soc/codecs/tas5713.c b/sound/soc/codecs/tas5713.c
-new file mode 100644
-index 0000000000000000000000000000000000000000..9b2713861dcbed751842ca29c88eb1eae5867411
---- /dev/null
-+++ b/sound/soc/codecs/tas5713.c
-@@ -0,0 +1,369 @@
-+/*
-+ * ASoC Driver for TAS5713
-+ *
-+ * Author: Sebastian Eickhoff
-+ * Copyright 2014
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * version 2 as published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * General Public License for more details.
-+ */
-+
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+
-+#include
-+#include
-+#include
-+#include
-+
-+#include "tas5713.h"
-+
-+
-+static struct i2c_client *i2c;
-+
-+struct tas5713_priv {
-+ struct regmap *regmap;
-+ int mclk_div;
-+ struct snd_soc_codec *codec;
-+};
-+
-+static struct tas5713_priv *priv_data;
-+
-+
-+
-+
-+/*
-+ * _ _ ___ _ ___ _ _
-+ * /_\ | | / __| /_\ / __|___ _ _| |_ _ _ ___| |___
-+ * / _ \| |__\__ \/ _ \ | (__/ _ \ ' \ _| '_/ _ \ (_-<
-+ * /_/ \_\____|___/_/ \_\ \___\___/_||_\__|_| \___/_/__/
-+ *
-+ */
-+
-+static const DECLARE_TLV_DB_SCALE(tas5713_vol_tlv, -10000, 50, 1);
-+
-+
-+static const struct snd_kcontrol_new tas5713_snd_controls[] = {
-+ SOC_SINGLE_TLV ("Master" , TAS5713_VOL_MASTER, 0, 248, 1, tas5713_vol_tlv),
-+ SOC_DOUBLE_R_TLV("Channels" , TAS5713_VOL_CH1, TAS5713_VOL_CH2, 0, 248, 1, tas5713_vol_tlv)
-+};
-+
-+
-+
-+
-+/*
-+ * __ __ _ _ ___ _
-+ * | \/ |__ _ __| |_ (_)_ _ ___ | \ _ _(_)_ _____ _ _
-+ * | |\/| / _` / _| ' \| | ' \/ -_) | |) | '_| \ V / -_) '_|
-+ * |_| |_\__,_\__|_||_|_|_||_\___| |___/|_| |_|\_/\___|_|
-+ *
-+ */
-+
-+static int tas5713_hw_params(struct snd_pcm_substream *substream,
-+ struct snd_pcm_hw_params *params,
-+ struct snd_soc_dai *dai)
-+{
-+ u16 blen = 0x00;
-+
-+ struct snd_soc_codec *codec;
-+ codec = dai->codec;
-+ priv_data->codec = dai->codec;
-+
-+ switch (params_format(params)) {
-+ case SNDRV_PCM_FORMAT_S16_LE:
-+ blen = 0x03;
-+ break;
-+ case SNDRV_PCM_FORMAT_S20_3LE:
-+ blen = 0x1;
-+ break;
-+ case SNDRV_PCM_FORMAT_S24_LE:
-+ blen = 0x04;
-+ break;
-+ case SNDRV_PCM_FORMAT_S32_LE:
-+ blen = 0x05;
-+ break;
-+ default:
-+ dev_err(dai->dev, "Unsupported word length: %u\n",
-+ params_format(params));
-+ return -EINVAL;
-+ }
-+
-+ // set word length
-+ snd_soc_update_bits(codec, TAS5713_SERIAL_DATA_INTERFACE, 0x7, blen);
-+
-+ return 0;
-+}
-+
-+
-+static int tas5713_mute_stream(struct snd_soc_dai *dai, int mute, int stream)
-+{
-+ unsigned int val = 0;
-+
-+ struct tas5713_priv *tas5713;
-+ struct snd_soc_codec *codec = dai->codec;
-+ tas5713 = snd_soc_codec_get_drvdata(codec);
-+
-+ if (mute) {
-+ val = TAS5713_SOFT_MUTE_ALL;
-+ }
-+
-+ return regmap_write(tas5713->regmap, TAS5713_SOFT_MUTE, val);
-+}
-+
-+
-+static const struct snd_soc_dai_ops tas5713_dai_ops = {
-+ .hw_params = tas5713_hw_params,
-+ .mute_stream = tas5713_mute_stream,
-+};
-+
-+
-+static struct snd_soc_dai_driver tas5713_dai = {
-+ .name = "tas5713-hifi",
-+ .playback = {
-+ .stream_name = "Playback",
-+ .channels_min = 2,
-+ .channels_max = 2,
-+ .rates = SNDRV_PCM_RATE_8000_48000,
-+ .formats = (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE ),
-+ },
-+ .ops = &tas5713_dai_ops,
-+};
-+
-+
-+
-+
-+/*
-+ * ___ _ ___ _
-+ * / __|___ __| |___ __ | \ _ _(_)_ _____ _ _
-+ * | (__/ _ \/ _` / -_) _| | |) | '_| \ V / -_) '_|
-+ * \___\___/\__,_\___\__| |___/|_| |_|\_/\___|_|
-+ *
-+ */
-+
-+static int tas5713_remove(struct snd_soc_codec *codec)
-+{
-+ struct tas5713_priv *tas5713;
-+
-+ tas5713 = snd_soc_codec_get_drvdata(codec);
-+
-+ return 0;
-+}
-+
-+
-+static int tas5713_probe(struct snd_soc_codec *codec)
-+{
-+ struct tas5713_priv *tas5713;
-+ int i, ret;
-+
-+ i2c = container_of(codec->dev, struct i2c_client, dev);
-+
-+ tas5713 = snd_soc_codec_get_drvdata(codec);
-+
-+ // Reset error
-+ ret = snd_soc_write(codec, TAS5713_ERROR_STATUS, 0x00);
-+ if (ret < 0) return ret;
-+
-+ // Trim oscillator
-+ ret = snd_soc_write(codec, TAS5713_OSC_TRIM, 0x00);
-+ if (ret < 0) return ret;
-+ msleep(1000);
-+
-+ // Reset error
-+ ret = snd_soc_write(codec, TAS5713_ERROR_STATUS, 0x00);
-+ if (ret < 0) return ret;
-+
-+ // Clock mode: 44/48kHz, MCLK=64xfs
-+ ret = snd_soc_write(codec, TAS5713_CLOCK_CTRL, 0x60);
-+ if (ret < 0) return ret;
-+
-+ // I2S 24bit
-+ ret = snd_soc_write(codec, TAS5713_SERIAL_DATA_INTERFACE, 0x05);
-+ if (ret < 0) return ret;
-+
-+ // Unmute
-+ ret = snd_soc_write(codec, TAS5713_SYSTEM_CTRL2, 0x00);
-+ if (ret < 0) return ret;
-+ ret = snd_soc_write(codec, TAS5713_SOFT_MUTE, 0x00);
-+ if (ret < 0) return ret;
-+
-+ // Set volume to 0db
-+ ret = snd_soc_write(codec, TAS5713_VOL_MASTER, 0x00);
-+ if (ret < 0) return ret;
-+
-+ // Now start programming the default initialization sequence
-+ for (i = 0; i < ARRAY_SIZE(tas5713_init_sequence); ++i) {
-+ ret = i2c_master_send(i2c,
-+ tas5713_init_sequence[i].data,
-+ tas5713_init_sequence[i].size);
-+ if (ret < 0) {
-+ printk(KERN_INFO "TAS5713 CODEC PROBE: InitSeq returns: %d\n", ret);
-+ }
-+ }
-+
-+ // Unmute
-+ ret = snd_soc_write(codec, TAS5713_SYSTEM_CTRL2, 0x00);
-+ if (ret < 0) return ret;
-+
-+ return 0;
-+}
-+
-+
-+static struct snd_soc_codec_driver soc_codec_dev_tas5713 = {
-+ .probe = tas5713_probe,
-+ .remove = tas5713_remove,
-+ .controls = tas5713_snd_controls,
-+ .num_controls = ARRAY_SIZE(tas5713_snd_controls),
-+};
-+
-+
-+
-+
-+/*
-+ * ___ ___ ___ ___ _
-+ * |_ _|_ ) __| | \ _ _(_)_ _____ _ _
-+ * | | / / (__ | |) | '_| \ V / -_) '_|
-+ * |___/___\___| |___/|_| |_|\_/\___|_|
-+ *
-+ */
-+
-+static const struct reg_default tas5713_reg_defaults[] = {
-+ { 0x07 ,0x80 }, // R7 - VOL_MASTER - -40dB
-+ { 0x08 , 30 }, // R8 - VOL_CH1 - 0dB
-+ { 0x09 , 30 }, // R9 - VOL_CH2 - 0dB
-+ { 0x0A ,0x80 }, // R10 - VOL_HEADPHONE - -40dB
-+};
-+
-+
-+static bool tas5713_reg_volatile(struct device *dev, unsigned int reg)
-+{
-+ switch (reg) {
-+ case TAS5713_DEVICE_ID:
-+ case TAS5713_ERROR_STATUS:
-+ return true;
-+ default:
-+ return false;
-+ }
-+}
-+
-+
-+static const struct of_device_id tas5713_of_match[] = {
-+ { .compatible = "ti,tas5713", },
-+ { }
-+};
-+MODULE_DEVICE_TABLE(of, tas5713_of_match);
-+
-+
-+static struct regmap_config tas5713_regmap_config = {
-+ .reg_bits = 8,
-+ .val_bits = 8,
-+
-+ .max_register = TAS5713_MAX_REGISTER,
-+ .volatile_reg = tas5713_reg_volatile,
-+
-+ .cache_type = REGCACHE_RBTREE,
-+ .reg_defaults = tas5713_reg_defaults,
-+ .num_reg_defaults = ARRAY_SIZE(tas5713_reg_defaults),
-+};
-+
-+
-+static int tas5713_i2c_probe(struct i2c_client *i2c,
-+ const struct i2c_device_id *id)
-+{
-+ int ret;
-+
-+ priv_data = devm_kzalloc(&i2c->dev, sizeof *priv_data, GFP_KERNEL);
-+ if (!priv_data)
-+ return -ENOMEM;
-+
-+ priv_data->regmap = devm_regmap_init_i2c(i2c, &tas5713_regmap_config);
-+ if (IS_ERR(priv_data->regmap)) {
-+ ret = PTR_ERR(priv_data->regmap);
-+ return ret;
-+ }
-+
-+ i2c_set_clientdata(i2c, priv_data);
-+
-+ ret = snd_soc_register_codec(&i2c->dev,
-+ &soc_codec_dev_tas5713, &tas5713_dai, 1);
-+
-+ return ret;
-+}
-+
-+
-+static int tas5713_i2c_remove(struct i2c_client *i2c)
-+{
-+ snd_soc_unregister_codec(&i2c->dev);
-+ i2c_set_clientdata(i2c, NULL);
-+
-+ kfree(priv_data);
-+
-+ return 0;
-+}
-+
-+
-+static const struct i2c_device_id tas5713_i2c_id[] = {
-+ { "tas5713", 0 },
-+ { }
-+};
-+
-+MODULE_DEVICE_TABLE(i2c, tas5713_i2c_id);
-+
-+
-+static struct i2c_driver tas5713_i2c_driver = {
-+ .driver = {
-+ .name = "tas5713",
-+ .owner = THIS_MODULE,
-+ .of_match_table = tas5713_of_match,
-+ },
-+ .probe = tas5713_i2c_probe,
-+ .remove = tas5713_i2c_remove,
-+ .id_table = tas5713_i2c_id
-+};
-+
-+
-+static int __init tas5713_modinit(void)
-+{
-+ int ret = 0;
-+
-+ ret = i2c_add_driver(&tas5713_i2c_driver);
-+ if (ret) {
-+ printk(KERN_ERR "Failed to register tas5713 I2C driver: %d\n",
-+ ret);
-+ }
-+
-+ return ret;
-+}
-+module_init(tas5713_modinit);
-+
-+
-+static void __exit tas5713_exit(void)
-+{
-+ i2c_del_driver(&tas5713_i2c_driver);
-+}
-+module_exit(tas5713_exit);
-+
-+
-+MODULE_AUTHOR("Sebastian Eickhoff ");
-+MODULE_DESCRIPTION("ASoC driver for TAS5713");
-+MODULE_LICENSE("GPL v2");
-diff --git a/sound/soc/codecs/tas5713.h b/sound/soc/codecs/tas5713.h
-new file mode 100644
-index 0000000000000000000000000000000000000000..8f019e04898754d2f87e9630137be9e8f612a342
---- /dev/null
-+++ b/sound/soc/codecs/tas5713.h
-@@ -0,0 +1,210 @@
-+/*
-+ * ASoC Driver for TAS5713
-+ *
-+ * Author: Sebastian Eickhoff
-+ * Copyright 2014
-+ *
-+ * 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.
-+ */
-+
-+#ifndef _TAS5713_H
-+#define _TAS5713_H
-+
-+
-+// TAS5713 I2C-bus register addresses
-+
-+#define TAS5713_CLOCK_CTRL 0x00
-+#define TAS5713_DEVICE_ID 0x01
-+#define TAS5713_ERROR_STATUS 0x02
-+#define TAS5713_SYSTEM_CTRL1 0x03
-+#define TAS5713_SERIAL_DATA_INTERFACE 0x04
-+#define TAS5713_SYSTEM_CTRL2 0x05
-+#define TAS5713_SOFT_MUTE 0x06
-+#define TAS5713_VOL_MASTER 0x07
-+#define TAS5713_VOL_CH1 0x08
-+#define TAS5713_VOL_CH2 0x09
-+#define TAS5713_VOL_HEADPHONE 0x0A
-+#define TAS5713_VOL_CONFIG 0x0E
-+#define TAS5713_MODULATION_LIMIT 0x10
-+#define TAS5713_IC_DLY_CH1 0x11
-+#define TAS5713_IC_DLY_CH2 0x12
-+#define TAS5713_IC_DLY_CH3 0x13
-+#define TAS5713_IC_DLY_CH4 0x14
-+
-+#define TAS5713_START_STOP_PERIOD 0x1A
-+#define TAS5713_OSC_TRIM 0x1B
-+#define TAS5713_BKND_ERR 0x1C
-+
-+#define TAS5713_INPUT_MUX 0x20
-+#define TAS5713_SRC_SELECT_CH4 0x21
-+#define TAS5713_PWM_MUX 0x25
-+
-+#define TAS5713_CH1_BQ0 0x29
-+#define TAS5713_CH1_BQ1 0x2A
-+#define TAS5713_CH1_BQ2 0x2B
-+#define TAS5713_CH1_BQ3 0x2C
-+#define TAS5713_CH1_BQ4 0x2D
-+#define TAS5713_CH1_BQ5 0x2E
-+#define TAS5713_CH1_BQ6 0x2F
-+#define TAS5713_CH1_BQ7 0x58
-+#define TAS5713_CH1_BQ8 0x59
-+
-+#define TAS5713_CH2_BQ0 0x30
-+#define TAS5713_CH2_BQ1 0x31
-+#define TAS5713_CH2_BQ2 0x32
-+#define TAS5713_CH2_BQ3 0x33
-+#define TAS5713_CH2_BQ4 0x34
-+#define TAS5713_CH2_BQ5 0x35
-+#define TAS5713_CH2_BQ6 0x36
-+#define TAS5713_CH2_BQ7 0x5C
-+#define TAS5713_CH2_BQ8 0x5D
-+
-+#define TAS5713_CH4_BQ0 0x5A
-+#define TAS5713_CH4_BQ1 0x5B
-+#define TAS5713_CH3_BQ0 0x5E
-+#define TAS5713_CH3_BQ1 0x5F
-+
-+#define TAS5713_DRC1_SOFTENING_FILTER_ALPHA_OMEGA 0x3B
-+#define TAS5713_DRC1_ATTACK_RELEASE_RATE 0x3C
-+#define TAS5713_DRC2_SOFTENING_FILTER_ALPHA_OMEGA 0x3E
-+#define TAS5713_DRC2_ATTACK_RELEASE_RATE 0x3F
-+#define TAS5713_DRC1_ATTACK_RELEASE_THRES 0x40
-+#define TAS5713_DRC2_ATTACK_RELEASE_THRES 0x43
-+#define TAS5713_DRC_CTRL 0x46
-+
-+#define TAS5713_BANK_SW_CTRL 0x50
-+#define TAS5713_CH1_OUTPUT_MIXER 0x51
-+#define TAS5713_CH2_OUTPUT_MIXER 0x52
-+#define TAS5713_CH1_INPUT_MIXER 0x53
-+#define TAS5713_CH2_INPUT_MIXER 0x54
-+#define TAS5713_OUTPUT_POST_SCALE 0x56
-+#define TAS5713_OUTPUT_PRESCALE 0x57
-+
-+#define TAS5713_IDF_POST_SCALE 0x62
-+
-+#define TAS5713_CH1_INLINE_MIXER 0x70
-+#define TAS5713_CH1_INLINE_DRC_EN_MIXER 0x71
-+#define TAS5713_CH1_R_CHANNEL_MIXER 0x72
-+#define TAS5713_CH1_L_CHANNEL_MIXER 0x73
-+#define TAS5713_CH2_INLINE_MIXER 0x74
-+#define TAS5713_CH2_INLINE_DRC_EN_MIXER 0x75
-+#define TAS5713_CH2_L_CHANNEL_MIXER 0x76
-+#define TAS5713_CH2_R_CHANNEL_MIXER 0x77
-+
-+#define TAS5713_UPDATE_DEV_ADDR_KEY 0xF8
-+#define TAS5713_UPDATE_DEV_ADDR_REG 0xF9
-+
-+#define TAS5713_REGISTER_COUNT 0x46
-+#define TAS5713_MAX_REGISTER 0xF9
-+
-+
-+// Bitmasks for registers
-+#define TAS5713_SOFT_MUTE_ALL 0x07
-+
-+
-+
-+struct tas5713_init_command {
-+ const int size;
-+ const char *const data;
-+};
-+
-+static const struct tas5713_init_command tas5713_init_sequence[] = {
-+
-+ // Trim oscillator
-+ { .size = 2, .data = "\x1B\x00" },
-+ // System control register 1 (0x03): block DC
-+ { .size = 2, .data = "\x03\x80" },
-+ // Mute everything
-+ { .size = 2, .data = "\x05\x40" },
-+ // Modulation limit register (0x10): 97.7%
-+ { .size = 2, .data = "\x10\x02" },
-+ // Interchannel delay registers
-+ // (0x11, 0x12, 0x13, and 0x14): BD mode
-+ { .size = 2, .data = "\x11\xB8" },
-+ { .size = 2, .data = "\x12\x60" },
-+ { .size = 2, .data = "\x13\xA0" },
-+ { .size = 2, .data = "\x14\x48" },
-+ // PWM shutdown group register (0x19): no shutdown
-+ { .size = 2, .data = "\x19\x00" },
-+ // Input multiplexer register (0x20): BD mode
-+ { .size = 2, .data = "\x20\x00\x89\x77\x72" },
-+ // PWM output mux register (0x25)
-+ // Channel 1 --> OUTA, channel 1 neg --> OUTB
-+ // Channel 2 --> OUTC, channel 2 neg --> OUTD
-+ { .size = 5, .data = "\x25\x01\x02\x13\x45" },
-+ // DRC control (0x46): DRC off
-+ { .size = 5, .data = "\x46\x00\x00\x00\x00" },
-+ // BKND_ERR register (0x1C): 299ms reset period
-+ { .size = 2, .data = "\x1C\x07" },
-+ // Mute channel 3
-+ { .size = 2, .data = "\x0A\xFF" },
-+ // Volume configuration register (0x0E): volume slew 512 steps
-+ { .size = 2, .data = "\x0E\x90" },
-+ // Clock control register (0x00): 44/48kHz, MCLK=64xfs
-+ { .size = 2, .data = "\x00\x60" },
-+ // Bank switch and eq control (0x50): no bank switching
-+ { .size = 5, .data = "\x50\x00\x00\x00\x00" },
-+ // Volume registers (0x07, 0x08, 0x09, 0x0A)
-+ { .size = 2, .data = "\x07\x20" },
-+ { .size = 2, .data = "\x08\x30" },
-+ { .size = 2, .data = "\x09\x30" },
-+ { .size = 2, .data = "\x0A\xFF" },
-+ // 0x72, 0x73, 0x76, 0x77 input mixer:
-+ // no intermix between channels
-+ { .size = 5, .data = "\x72\x00\x00\x00\x00" },
-+ { .size = 5, .data = "\x73\x00\x80\x00\x00" },
-+ { .size = 5, .data = "\x76\x00\x00\x00\x00" },
-+ { .size = 5, .data = "\x77\x00\x80\x00\x00" },
-+ // 0x70, 0x71, 0x74, 0x75 inline DRC mixer:
-+ // no inline DRC inmix
-+ { .size = 5, .data = "\x70\x00\x80\x00\x00" },
-+ { .size = 5, .data = "\x71\x00\x00\x00\x00" },
-+ { .size = 5, .data = "\x74\x00\x80\x00\x00" },
-+ { .size = 5, .data = "\x75\x00\x00\x00\x00" },
-+ // 0x56, 0x57 Output scale
-+ { .size = 5, .data = "\x56\x00\x80\x00\x00" },
-+ { .size = 5, .data = "\x57\x00\x02\x00\x00" },
-+ // 0x3B, 0x3c
-+ { .size = 9, .data = "\x3B\x00\x08\x00\x00\x00\x78\x00\x00" },
-+ { .size = 9, .data = "\x3C\x00\x00\x01\x00\xFF\xFF\xFF\x00" },
-+ { .size = 9, .data = "\x3E\x00\x08\x00\x00\x00\x78\x00\x00" },
-+ { .size = 9, .data = "\x3F\x00\x00\x01\x00\xFF\xFF\xFF\x00" },
-+ { .size = 9, .data = "\x40\x00\x00\x01\x00\xFF\xFF\xFF\x00" },
-+ { .size = 9, .data = "\x43\x00\x00\x01\x00\xFF\xFF\xFF\x00" },
-+ // 0x51, 0x52: output mixer
-+ { .size = 9, .data = "\x51\x00\x80\x00\x00\x00\x00\x00\x00" },
-+ { .size = 9, .data = "\x52\x00\x80\x00\x00\x00\x00\x00\x00" },
-+ // PEQ defaults
-+ { .size = 21, .data = "\x29\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x2A\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x2B\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x2C\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x2D\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x2E\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x2F\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x30\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x31\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x32\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x33\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x34\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x35\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x36\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x58\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x59\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x5C\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x5D\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x5E\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x5F\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x5A\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+ { .size = 21, .data = "\x5B\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" },
-+};
-+
-+
-+#endif /* _TAS5713_H */
-
-From 6114307aaa8e31dd0d336fbd67eefd50444a58b3 Mon Sep 17 00:00:00 2001
-From: Phil Elwell
-Date: Mon, 9 Jan 2017 09:42:09 +0000
-Subject: [PATCH 117/140] hifiberry-amp: Adjust for ALSA object refactoring
-
-See: https://github.com/raspberrypi/linux/issues/1775
----
- sound/soc/codecs/tas5713.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/sound/soc/codecs/tas5713.c b/sound/soc/codecs/tas5713.c
-index 9b2713861dcbed751842ca29c88eb1eae5867411..560234d58a6b0a6e7fd3a63e8de73339ee002b1c 100644
---- a/sound/soc/codecs/tas5713.c
-+++ b/sound/soc/codecs/tas5713.c
-@@ -232,8 +232,10 @@ static int tas5713_probe(struct snd_soc_codec *codec)
- static struct snd_soc_codec_driver soc_codec_dev_tas5713 = {
- .probe = tas5713_probe,
- .remove = tas5713_remove,
-- .controls = tas5713_snd_controls,
-- .num_controls = ARRAY_SIZE(tas5713_snd_controls),
-+ .component_driver = {
-+ .controls = tas5713_snd_controls,
-+ .num_controls = ARRAY_SIZE(tas5713_snd_controls),
-+ },
- };
-
-
-
-From 8640eb5ad8ecd1ed2eff1428f4ef19d9a0f5af18 Mon Sep 17 00:00:00 2001
-From: Giedrius Trainavicius
-Date: Sun, 8 Jan 2017 15:58:54 +0200
-Subject: [PATCH 118/140] bcm2835-i2s: Changes for allowing asymmetric sample
- formats.
-
-This is achieved by making changes only to the requested
-stream direction format, keeping the other stream direction
-configuration intact.
-
-Signed-off-by: Giedrius Trainavicius
----
- sound/soc/bcm/bcm2835-i2s.c | 54 +++++++++++++++++++++++++++++++--------------
- 1 file changed, 38 insertions(+), 16 deletions(-)
-
-diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c
-index 6ba20498202ed36906b52096893a88867a79269f..171c2401dfe192740fca3356268aff6432f284ea 100644
---- a/sound/soc/bcm/bcm2835-i2s.c
-+++ b/sound/soc/bcm/bcm2835-i2s.c
-@@ -237,7 +237,9 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
- unsigned int sampling_rate = params_rate(params);
- unsigned int data_length, data_delay, bclk_ratio;
- unsigned int ch1pos, ch2pos, mode, format;
-+ unsigned int previous_ftxp, previous_frxp;
- uint32_t csreg;
-+ bool packed;
-
- /*
- * If a stream is already enabled,
-@@ -320,26 +322,46 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
- return -EINVAL;
- }
-
-- /*
-- * Set format for both streams.
-- * We cannot set another frame length
-- * (and therefore word length) anyway,
-- * so the format will be the same.
-- */
-- regmap_write(dev->i2s_regmap, BCM2835_I2S_RXC_A_REG, format);
-- regmap_write(dev->i2s_regmap, BCM2835_I2S_TXC_A_REG, format);
-+ /* Set the format for the matching stream direction. */
-+ switch (substream->stream) {
-+ case SNDRV_PCM_STREAM_PLAYBACK:
-+ regmap_write(dev->i2s_regmap, BCM2835_I2S_TXC_A_REG, format);
-+ break;
-+ case SNDRV_PCM_STREAM_CAPTURE:
-+ regmap_write(dev->i2s_regmap, BCM2835_I2S_RXC_A_REG, format);
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-
- /* Setup the I2S mode */
-+ /* Keep existing FTXP and FRXP values. */
-+ regmap_read(dev->i2s_regmap, BCM2835_I2S_MODE_A_REG, &mode);
-+
-+ previous_ftxp = mode & BCM2835_I2S_FTXP;
-+ previous_frxp = mode & BCM2835_I2S_FRXP;
-+
- mode = 0;
-
-- if (data_length <= 16) {
-- /*
-- * Use frame packed mode (2 channels per 32 bit word)
-- * We cannot set another frame length in the second stream
-- * (and therefore word length) anyway,
-- * so the format will be the same.
-- */
-- mode |= BCM2835_I2S_FTXP | BCM2835_I2S_FRXP;
-+ /*
-+ * Retain the frame packed mode (2 channels per 32 bit word)
-+ * of the other direction stream intact. The formats of each
-+ * direction can be different as long as the frame length is
-+ * shared for both.
-+ */
-+ packed = data_length <= 16;
-+
-+ switch (substream->stream) {
-+ case SNDRV_PCM_STREAM_PLAYBACK:
-+ mode |= previous_frxp;
-+ mode |= packed ? BCM2835_I2S_FTXP : 0;
-+ break;
-+ case SNDRV_PCM_STREAM_CAPTURE:
-+ mode |= previous_ftxp;
-+ mode |= packed ? BCM2835_I2S_FRXP : 0;
-+ break;
-+ default:
-+ return -EINVAL;
- }
-
- mode |= BCM2835_I2S_FLEN(bclk_ratio - 1);
-
-From ecf8e89a531ac228706cc49b6caed1d4dfe4adc7 Mon Sep 17 00:00:00 2001
+From 6d7eabf9e6c2652ed71b4fa01951a7e19f47a985 Mon Sep 17 00:00:00 2001
From: Aaron Shaw
Date: Tue, 10 Jan 2017 16:05:41 +0000
-Subject: [PATCH 119/140] Add driver_name property
+Subject: [PATCH 115/187] Add driver_name property
Add driver name property for use with 5.1 passthrough audio in LibreElec and other Kodi based OSs
---
@@ -126520,10 +124755,10 @@ index 8fd50dbe681508a2cfe8fdde1c9fedbe9a507fa7..05a224ec712d06b8b7587ab6b8bb562d
.dai_link = snd_rpi_justboom_dac_dai,
.num_links = ARRAY_SIZE(snd_rpi_justboom_dac_dai),
-From 66434539f08795819e610de5df739cf461205bc1 Mon Sep 17 00:00:00 2001
+From 48c21dc46d473a6362e66bfcae1b7cfe1996a497 Mon Sep 17 00:00:00 2001
From: Aaron Shaw
Date: Tue, 10 Jan 2017 16:11:04 +0000
-Subject: [PATCH 120/140] Add driver_name paramater
+Subject: [PATCH 116/187] Add driver_name paramater
Add driver_name parameter for use with 5.1 passthrough audio in LibreElec and other Kodi OSs
---
@@ -126543,10 +124778,10 @@ index 91acb666380faa3c0deb2230f8a0f8bbec59417b..abfdc5c4dd5811e6847bddda4921abe3
.dai_link = snd_rpi_justboom_digi_dai,
.num_links = ARRAY_SIZE(snd_rpi_justboom_digi_dai),
-From 296fcf4cadef94895b86e0d6f1cd5480675cc94b Mon Sep 17 00:00:00 2001
+From ee8c66d4165cfa623d1050d2cf48078bae5769d2 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Wed, 11 Jan 2017 13:01:21 +0000
-Subject: [PATCH 121/140] BCM270X_DT: Add pi3-disable-wifi overlay
+Subject: [PATCH 117/187] BCM270X_DT: Add pi3-disable-wifi overlay
pi3-disable-wifi is a minimal overlay to disable the onboard WiFi.
@@ -126607,10 +124842,10 @@ index 0000000000000000000000000000000000000000..017199554bf2f4e381efcc7bb71e750c
+ };
+};
-From 0b46fbc4be5ddfec19dbaf619a9c9ef3d8559df3 Mon Sep 17 00:00:00 2001
+From 6a3c02c8633387502a4d76347a540ba402ee8d09 Mon Sep 17 00:00:00 2001
From: Electron752
Date: Thu, 12 Jan 2017 07:07:08 -0800
-Subject: [PATCH 122/140] ARM64: Make it work again on 4.9 (#1790)
+Subject: [PATCH 118/187] ARM64: Make it work again on 4.9 (#1790)
* Invoke the dtc compiler with the same options used in arm mode.
* ARM64 now uses the bcm2835 platform just like ARM32.
@@ -127015,10 +125250,10 @@ index 53da5c7a33e5898a66e549fb0c39fe3da555ca87..c7e891d72969a388d9b135a36dbfc9c9
-CONFIG_BCM2708_VCHIQ=n
-CONFIG_ARCH_BCM2835=y
-From 070417bfe80223f042349b5322d0694e249c6125 Mon Sep 17 00:00:00 2001
+From 5189f9eb2e9e8f1b4e916f2c37b14c564eae6366 Mon Sep 17 00:00:00 2001
From: Electron752
Date: Sat, 14 Jan 2017 02:54:26 -0800
-Subject: [PATCH 123/140] ARM64: Enable Kernel Address Space Randomization
+Subject: [PATCH 119/187] ARM64: Enable Kernel Address Space Randomization
(#1792)
Randomization allows the mapping between virtual addresses and physical
@@ -127050,10 +125285,10 @@ index c7e891d72969a388d9b135a36dbfc9c9cb609bf8..974d8889c0cf695eb88b57bbef11bc5a
CONFIG_BINFMT_MISC=y
CONFIG_COMPAT=y
-From 8b1dcc577913872e592b15aead4e90e1e2e7184c Mon Sep 17 00:00:00 2001
+From e5169833aa70954251b7c3486f5706c4f3dd8ccb Mon Sep 17 00:00:00 2001
From: Michael Zoran
Date: Sun, 15 Jan 2017 07:31:59 -0800
-Subject: [PATCH 124/140] ARM64: Enable RTL8187/RTL8192CU wifi in build config
+Subject: [PATCH 120/187] ARM64: Enable RTL8187/RTL8192CU wifi in build config
These drivers build now, so they can be enabled back
in the build configuration just like they are for
@@ -127078,10 +125313,10 @@ index 974d8889c0cf695eb88b57bbef11bc5aa556b635..4670a490dfb1e582ec24a3b39a3cb9b2
CONFIG_ZD1211RW=m
CONFIG_MAC80211_HWSIM=m
-From e3e2c6018b7d88fc2d66e5646e8f026ebd54c3ef Mon Sep 17 00:00:00 2001
+From a825be7b435a9666323b636455d8547c6a4e3ac0 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Mon, 16 Jan 2017 14:53:12 +0000
-Subject: [PATCH 125/140] BCM270X_DT: Add spi0-cs overlay
+Subject: [PATCH 121/187] BCM270X_DT: Add spi0-cs overlay
The spi0-cs overlay allows the software chip selectts to be modified
using the cs0_pin and cs1_pin parameters.
@@ -127169,10 +125404,10 @@ index 0000000000000000000000000000000000000000..7f79029d043c04d7496c7c3480450c69
+ };
+};
-From f59b0251d9406e66fdea34d7bf00b996ed949084 Mon Sep 17 00:00:00 2001
+From ddbcf48e6e8560635ca6c7284b3c04d36b3c86f3 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Fri, 1 Jul 2016 22:09:24 +0100
-Subject: [PATCH 126/140] spi-bcm2835: Disable forced software CS
+Subject: [PATCH 122/187] spi-bcm2835: Disable forced software CS
Select software CS in bcm2708_common.dtsi, and disable the automatic
conversion in the driver to allow hardware CS to be re-enabled with an
@@ -127198,10 +125433,10 @@ index 74dd21b7373c7564ede01d84a4f63b93a6d52fa7..51cdefbf5eb265f49bd05e0aa91dfbee
i2c0: i2c@7e205000 {
-From 96fc8668c38ec7d5d97a85851a8f61c2ad16e619 Mon Sep 17 00:00:00 2001
+From 51b4a593707de53db9daa9b8933a16ff5d383671 Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Mon, 16 Jan 2017 16:33:54 +0000
-Subject: [PATCH 127/140] config: Add CONFIG_TCP_CONG_BBR See:
+Subject: [PATCH 123/187] config: Add CONFIG_TCP_CONG_BBR See:
https://github.com/raspberrypi/linux/issues/1784
---
@@ -127236,103 +125471,10 @@ index 8acee9f31202ec14f2933d92dd70831cda8d7b51..219f67051a2542329449b0099165ae28
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_INET6_AH=m
-From aad9e6a0506b7365903934a6b86d8d960e5274f3 Mon Sep 17 00:00:00 2001
-From: Phil Elwell
-Date: Mon, 16 Jan 2017 21:02:26 +0000
-Subject: [PATCH 128/140] Revert "bcm2835-i2s: Changes for allowing asymmetric
- sample formats."
-
-This reverts commit f5a6236a32e82068122301d246a94ca755d61704.
-
-See: https://github.com/raspberrypi/linux/issues/1799
-
-Signed-off-by: Phil Elwell
----
- sound/soc/bcm/bcm2835-i2s.c | 54 ++++++++++++++-------------------------------
- 1 file changed, 16 insertions(+), 38 deletions(-)
-
-diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c
-index 171c2401dfe192740fca3356268aff6432f284ea..6ba20498202ed36906b52096893a88867a79269f 100644
---- a/sound/soc/bcm/bcm2835-i2s.c
-+++ b/sound/soc/bcm/bcm2835-i2s.c
-@@ -237,9 +237,7 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
- unsigned int sampling_rate = params_rate(params);
- unsigned int data_length, data_delay, bclk_ratio;
- unsigned int ch1pos, ch2pos, mode, format;
-- unsigned int previous_ftxp, previous_frxp;
- uint32_t csreg;
-- bool packed;
-
- /*
- * If a stream is already enabled,
-@@ -322,46 +320,26 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
- return -EINVAL;
- }
-
-- /* Set the format for the matching stream direction. */
-- switch (substream->stream) {
-- case SNDRV_PCM_STREAM_PLAYBACK:
-- regmap_write(dev->i2s_regmap, BCM2835_I2S_TXC_A_REG, format);
-- break;
-- case SNDRV_PCM_STREAM_CAPTURE:
-- regmap_write(dev->i2s_regmap, BCM2835_I2S_RXC_A_REG, format);
-- break;
-- default:
-- return -EINVAL;
-- }
-+ /*
-+ * Set format for both streams.
-+ * We cannot set another frame length
-+ * (and therefore word length) anyway,
-+ * so the format will be the same.
-+ */
-+ regmap_write(dev->i2s_regmap, BCM2835_I2S_RXC_A_REG, format);
-+ regmap_write(dev->i2s_regmap, BCM2835_I2S_TXC_A_REG, format);
-
- /* Setup the I2S mode */
-- /* Keep existing FTXP and FRXP values. */
-- regmap_read(dev->i2s_regmap, BCM2835_I2S_MODE_A_REG, &mode);
--
-- previous_ftxp = mode & BCM2835_I2S_FTXP;
-- previous_frxp = mode & BCM2835_I2S_FRXP;
--
- mode = 0;
-
-- /*
-- * Retain the frame packed mode (2 channels per 32 bit word)
-- * of the other direction stream intact. The formats of each
-- * direction can be different as long as the frame length is
-- * shared for both.
-- */
-- packed = data_length <= 16;
--
-- switch (substream->stream) {
-- case SNDRV_PCM_STREAM_PLAYBACK:
-- mode |= previous_frxp;
-- mode |= packed ? BCM2835_I2S_FTXP : 0;
-- break;
-- case SNDRV_PCM_STREAM_CAPTURE:
-- mode |= previous_ftxp;
-- mode |= packed ? BCM2835_I2S_FRXP : 0;
-- break;
-- default:
-- return -EINVAL;
-+ if (data_length <= 16) {
-+ /*
-+ * Use frame packed mode (2 channels per 32 bit word)
-+ * We cannot set another frame length in the second stream
-+ * (and therefore word length) anyway,
-+ * so the format will be the same.
-+ */
-+ mode |= BCM2835_I2S_FTXP | BCM2835_I2S_FRXP;
- }
-
- mode |= BCM2835_I2S_FLEN(bclk_ratio - 1);
-
-From 7ce4883feb777ba20f03f111fe3e6a208a21f2d4 Mon Sep 17 00:00:00 2001
+From 7729ddc311ba53dd238d7271dd2d023d6e02e8e8 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Tue, 17 Jan 2017 11:34:58 +0000
-Subject: [PATCH 129/140] BCM270X_DT: Enable UART0 on CM3
+Subject: [PATCH 124/187] BCM270X_DT: Enable UART0 on CM3
Signed-off-by: Phil Elwell
---
@@ -127355,10 +125497,10 @@ index 41874c25a84226c0e4af92ec4059e0a571fe6123..3ba6e621856c288ae4694f758604619f
sdhost_pins: sdhost_pins {
brcm,pins = <48 49 50 51 52 53>;
-From 1b279d3d8a778bf7c085e15e02351b5fc336a95b Mon Sep 17 00:00:00 2001
+From eb2a61b5b76a74ec88f6806ad3f17e21087f56ce Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Tue, 17 Jan 2017 14:39:39 +0000
-Subject: [PATCH 130/140] config: Add CONFIG_MD_M25P80 and CONFIG_MD_SPI_NOR
+Subject: [PATCH 125/187] config: Add CONFIG_MD_M25P80 and CONFIG_MD_SPI_NOR
See: https://github.com/raspberrypi/linux/issues/1781
@@ -127397,10 +125539,10 @@ index 219f67051a2542329449b0099165ae2885022bec..c4898d63d74718097ec3a1d1fe60b230
CONFIG_OF_CONFIGFS=y
CONFIG_ZRAM=m
-From 5623259cfc13aef68cff35a43f080fe9d084bfb3 Mon Sep 17 00:00:00 2001
+From c1ec27e76b5fcd2382170a75115de85200d4ab26 Mon Sep 17 00:00:00 2001
From: Michael Zoran
Date: Sat, 14 Jan 2017 21:33:51 -0800
-Subject: [PATCH 131/140] ARM64/DWC_OTG: Port dwc_otg driver to ARM64
+Subject: [PATCH 126/187] ARM64/DWC_OTG: Port dwc_otg driver to ARM64
In ARM64, the FIQ mechanism used by this driver is not current
implemented. As a workaround, reqular IRQ is used instead
@@ -127743,10 +125885,10 @@ index 6b2c7d0c93f36a63863ff4b0ecc1f3eab77e058b..d7b700ff17821ad1944e36721fe6b2db
/** The OS page size */
#define DWC_OS_PAGE_SIZE PAGE_SIZE
-From 8573f30283e6c0e99e42ce97ef61203e936daab7 Mon Sep 17 00:00:00 2001
+From aef6479d8851c123def265acb03814ce7e5210b1 Mon Sep 17 00:00:00 2001
From: Michael Zoran
Date: Sat, 14 Jan 2017 21:43:57 -0800
-Subject: [PATCH 132/140] ARM64: Round-Robin dispatch IRQs between CPUs.
+Subject: [PATCH 127/187] ARM64: Round-Robin dispatch IRQs between CPUs.
IRQ-CPU mapping is round robined on ARM64 to increase
concurrency and allow multiple interrupts to be serviced
@@ -127820,10 +125962,10 @@ index 93e3f7660c4230c9f1dd3b195958cb498949b0ca..486bcbfb32305ee417f6b3be7e91a3ff
.name = "bcm2836-gpu",
.irq_mask = bcm2836_arm_irqchip_mask_gpu_irq,
-From c705045a8d00541a9af2d3a1a10369bd50e2709c Mon Sep 17 00:00:00 2001
+From dd7b1d1f7f28f380616a77bff9440adea1c73aa2 Mon Sep 17 00:00:00 2001
From: Michael Zoran
Date: Sat, 14 Jan 2017 21:45:03 -0800
-Subject: [PATCH 133/140] ARM64: Enable DWC_OTG Driver In ARM64 Build
+Subject: [PATCH 128/187] ARM64: Enable DWC_OTG Driver In ARM64 Build
Config(bcmrpi3_defconfig)
Signed-off-by: Michael Zoran
@@ -127844,10 +125986,10 @@ index 4670a490dfb1e582ec24a3b39a3cb9b2488b1864..8c4392344eb4495689c220d5d176ee8c
CONFIG_USB_STORAGE=y
CONFIG_USB_STORAGE_REALTEK=m
-From d0b7366a47e0582ee9848bda8ffa3d5996e97c1b Mon Sep 17 00:00:00 2001
+From 39d91c3f6eb913b61b5041cd1816770ebac505ed Mon Sep 17 00:00:00 2001
From: Michael Zoran
Date: Sat, 14 Jan 2017 21:46:04 -0800
-Subject: [PATCH 134/140] ARM64: Use dwc_otg driver by default for USB.
+Subject: [PATCH 129/187] ARM64: Use dwc_otg driver by default for USB.
If it breaks on anybody, they can use the standard device tree
overlays to switch back to the dwc2 driver.
@@ -127873,10 +126015,10 @@ index f6def5d7e5d622cf09e8f87332c7374fe28da08b..3e134a1208610b90e2d0fc22f03c6e9f
-};
-#endif
-From 5723ba9c29dc308ee19f7da6b70a4925ba54ca1c Mon Sep 17 00:00:00 2001
+From 7813c02fe43f9d4455abe5ac1c6b796470eade2d Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Mon, 23 Jan 2017 17:36:50 +0000
-Subject: [PATCH 135/140] BCM270X_DT: Add reference to audio_pins to CM dtb
+Subject: [PATCH 130/187] BCM270X_DT: Add reference to audio_pins to CM dtb
The CM1 dtb contains an empty audio_pins node, but no reference to it.
Adding the usual pinctrl reference from the audio node enables the
@@ -127904,10 +126046,10 @@ index eb8662f0d222b4c0a9a2bcb8bccb13e86a0006b3..10be69972bd1440f574e35d515f3d6a0
hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
};
-From ba726d8da740161357c3b7a9e255625c5a1304bf Mon Sep 17 00:00:00 2001
+From 8410bf895888f1f20bf80d48a36f96383f76de9b Mon Sep 17 00:00:00 2001
From: popcornmix
Date: Wed, 25 Jan 2017 11:30:38 +0000
-Subject: [PATCH 136/140] config: Add additional network scheduling modules
+Subject: [PATCH 131/187] config: Add additional network scheduling modules
---
arch/arm/configs/bcm2709_defconfig | 4 ++++
@@ -127959,10 +126101,10 @@ index c4898d63d74718097ec3a1d1fe60b2307a6a3140..b448eaa866c200f48351819072c7fefc
CONFIG_NET_SCH_PLUG=m
CONFIG_NET_CLS_BASIC=m
-From 2cd75a8398d19b0323ff47b166fbe612fb7b5c97 Mon Sep 17 00:00:00 2001
+From 1ab4fe548cc9dbe6dedfee18ddca1811c5562ab2 Mon Sep 17 00:00:00 2001
From: chris johnson
Date: Sun, 22 Jan 2017 03:27:31 +0000
-Subject: [PATCH 137/140] ASoC: A simple-card overlay for ADAU7002
+Subject: [PATCH 132/187] ASoC: A simple-card overlay for ADAU7002
Usage: `dtoverlay=adau7002-simple`
---
@@ -128060,10 +126202,10 @@ index 0000000000000000000000000000000000000000..e67e6625d7967abc92cf00cb604d4c12
+ };
+};
-From 0570bcd7820363a26cf7bfbed6665a1d9268c702 Mon Sep 17 00:00:00 2001
+From 1c434c14fb7e622ff23d95f0837b94614127f701 Mon Sep 17 00:00:00 2001
From: Phil Elwell
Date: Wed, 25 Jan 2017 21:17:23 +0000
-Subject: [PATCH 138/140] config: Add SND_SOC_ADAU7002 codec module
+Subject: [PATCH 133/187] config: Add SND_SOC_ADAU7002 codec module
As there is now an overlay requiring it, build the codec module.
@@ -128098,10 +126240,10 @@ index b448eaa866c200f48351819072c7fefcd8ad8132..5105a592c9bcfee1cc6a8b50fd1c6c32
CONFIG_SND_SOC_WM8804_I2C=m
CONFIG_SND_SIMPLE_CARD=m
-From 87966e84bc93b3e7abda4b1d4fef3e2e0f4db1d6 Mon Sep 17 00:00:00 2001
+From f1af816d887be644255e2ece60875757d156a5d8 Mon Sep 17 00:00:00 2001
From: Scott Ellis
Date: Fri, 27 Jan 2017 06:42:42 -0500
-Subject: [PATCH 139/140] Add overlay for mcp3008 adc (#1818)
+Subject: [PATCH 134/187] Add overlay for mcp3008 adc (#1818)
Some example usage:
@@ -128387,10 +126529,10 @@ index 0000000000000000000000000000000000000000..06bf4264959c380d8a9f90f74e780397
+ };
+};
-From 2b2775a3943171ed31f958d5ad86ff478b8ce351 Mon Sep 17 00:00:00 2001
+From ec652ea2f70a6db722dbbc2fc2ac274fe6b4f008 Mon Sep 17 00:00:00 2001
From: ED6E0F17
Date: Fri, 3 Feb 2017 14:52:42 +0000
-Subject: [PATCH 140/140] usb: dwc2: Avoid suspending if we're in gadget mode
+Subject: [PATCH 135/187] usb: dwc2: Avoid suspending if we're in gadget mode
(#1825)
I've found when booting HiKey with the usb gadget cable attached
@@ -128441,3 +126583,8896 @@ index df5a065780054f21841ca9f08b8ab118922c530b..619ccfe1eafc4643b16970f8a1129ff9
if (!hsotg->core_params->hibernation)
goto skip_power_saving;
+
+From d909483370a6c9793a9d4295933a17c3e04102d0 Mon Sep 17 00:00:00 2001
+From: JamesH65
+Date: Mon, 6 Feb 2017 15:24:47 +0000
+Subject: [PATCH 136/187] gpio_mem: Remove unnecessary dev_info output (#1830)
+
+The open function was spamming syslog every time
+called, so have removed call completely.
+---
+ drivers/char/broadcom/bcm2835-gpiomem.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/drivers/char/broadcom/bcm2835-gpiomem.c b/drivers/char/broadcom/bcm2835-gpiomem.c
+index 911f5b7393ed48ceed8751f06967ae6463453f9c..f5e7f1ba8fb6f18dee77fad06a17480c6603cb4e 100644
+--- a/drivers/char/broadcom/bcm2835-gpiomem.c
++++ b/drivers/char/broadcom/bcm2835-gpiomem.c
+@@ -76,8 +76,6 @@ 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;
+
+From 8c9140191f4c6753156aec36e31a253c34b9f54e Mon Sep 17 00:00:00 2001
+From: Matthias Reichl
+Date: Sun, 22 Jan 2017 12:49:36 +0100
+Subject: [PATCH 137/187] config: Enable regulator support
+
+Signed-off-by: Matthias Reichl
+---
+ arch/arm/configs/bcm2709_defconfig | 2 ++
+ arch/arm/configs/bcmrpi_defconfig | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig
+index 31163b59b9c6f2cc4f4f94afe1b10bd1a195470f..611b63c3fdf18f1df6288bb229f827ecd1619958 100644
+--- a/arch/arm/configs/bcm2709_defconfig
++++ b/arch/arm/configs/bcm2709_defconfig
+@@ -664,6 +664,8 @@ CONFIG_STMPE_SPI=y
+ CONFIG_MFD_ARIZONA_I2C=m
+ CONFIG_MFD_ARIZONA_SPI=m
+ CONFIG_MFD_WM5102=y
++CONFIG_REGULATOR=y
++CONFIG_REGULATOR_FIXED_VOLTAGE=m
+ CONFIG_MEDIA_SUPPORT=m
+ CONFIG_MEDIA_CAMERA_SUPPORT=y
+ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig
+index 5105a592c9bcfee1cc6a8b50fd1c6c32f1381158..74bc0d81bcb4d7f6676368926cdcc10e581fbcae 100644
+--- a/arch/arm/configs/bcmrpi_defconfig
++++ b/arch/arm/configs/bcmrpi_defconfig
+@@ -658,6 +658,8 @@ CONFIG_STMPE_SPI=y
+ CONFIG_MFD_ARIZONA_I2C=m
+ CONFIG_MFD_ARIZONA_SPI=m
+ CONFIG_MFD_WM5102=y
++CONFIG_REGULATOR=y
++CONFIG_REGULATOR_FIXED_VOLTAGE=m
+ CONFIG_MEDIA_SUPPORT=m
+ CONFIG_MEDIA_CAMERA_SUPPORT=y
+ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+
+From 1abcd09eb0db59b22c78234508194f6c4e71429f Mon Sep 17 00:00:00 2001
+From: Matthias Reichl
+Date: Sun, 22 Jan 2017 12:49:36 +0100
+Subject: [PATCH 138/187] BCM270x DT: expose 3.3V and 5V system rails
+
+Signed-off-by: Matthias Reichl
+---
+ arch/arm/boot/dts/bcm270x.dtsi | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/arch/arm/boot/dts/bcm270x.dtsi b/arch/arm/boot/dts/bcm270x.dtsi
+index a46cb4a8b1419edd95e0e07c18b0f373222dc2bf..36d853715f2379e1952ce3d3be58dd670e305159 100644
+--- a/arch/arm/boot/dts/bcm270x.dtsi
++++ b/arch/arm/boot/dts/bcm270x.dtsi
+@@ -138,4 +138,20 @@
+ status = "disabled";
+ };
+ };
++
++ vdd_5v0_reg: fixedregulator_5v0 {
++ compatible = "regulator-fixed";
++ regulator-name = "5v0";
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ regulator-always-on;
++ };
++
++ vdd_3v3_reg: fixedregulator_3v3 {
++ compatible = "regulator-fixed";
++ regulator-name = "3v3";
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ regulator-always-on;
++ };
+ };
+
+From 3b33b3f1a3395b6dbc560073e2374b11e2d89228 Mon Sep 17 00:00:00 2001
+From: Matthias Reichl
+Date: Sun, 22 Jan 2017 12:49:36 +0100
+Subject: [PATCH 139/187] BCM270x DT: Consolidate audio card overlays
+
+Reference 3.3V / 5V system rails instead of instantiating local
+regulators.
+
+Add missing power supply properties for codecs where these are
+required according to the DT bindings docs.
+
+Signed-off-by: Matthias Reichl
+---
+ .../arm/boot/dts/overlays/adau1977-adc-overlay.dts | 19 ++--------
+ .../dts/overlays/akkordion-iqdacplus-overlay.dts | 3 ++
+ .../dts/overlays/hifiberry-dacplus-overlay.dts | 3 ++
+ .../boot/dts/overlays/hifiberry-digi-overlay.dts | 2 +
+ .../dts/overlays/hifiberry-digi-pro-overlay.dts | 2 +
+ arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts | 3 ++
+ .../boot/dts/overlays/iqaudio-dacplus-overlay.dts | 3 ++
+ .../overlays/iqaudio-digi-wm8804-audio-overlay.dts | 4 +-
+ .../arm/boot/dts/overlays/justboom-dac-overlay.dts | 3 ++
+ .../boot/dts/overlays/justboom-digi-overlay.dts | 2 +
+ arch/arm/boot/dts/overlays/raspidac3-overlay.dts | 4 ++
+ .../overlays/rra-digidac1-wm8741-audio-overlay.dts | 44 +++-------------------
+ 12 files changed, 36 insertions(+), 56 deletions(-)
+
+diff --git a/arch/arm/boot/dts/overlays/adau1977-adc-overlay.dts b/arch/arm/boot/dts/overlays/adau1977-adc-overlay.dts
+index 24fcd58fd1dc61d97a77def3d5d1f7c65130dde6..1aaca71c1b677e414ada9a3f94e60e5e2cf30815 100644
+--- a/arch/arm/boot/dts/overlays/adau1977-adc-overlay.dts
++++ b/arch/arm/boot/dts/overlays/adau1977-adc-overlay.dts
+@@ -6,19 +6,6 @@
+ compatible = "brcm,bcm2708";
+
+ fragment@0 {
+- target = <&soc>;
+-
+- __overlay__ {
+- codec_supply: fixedregulator@0 {
+- compatible = "regulator-fixed";
+- regulator-name = "AVDD";
+- regulator-min-microvolt = <3300000>;
+- regulator-max-microvolt = <3300000>;
+- };
+- };
+- };
+-
+- fragment@1 {
+ target = <&i2c>;
+
+ __overlay__ {
+@@ -30,19 +17,19 @@
+ compatible = "adi,adau1977";
+ reg = <0x11>;
+ reset-gpios = <&gpio 5 0>;
+- AVDD-supply = <&codec_supply>;
++ AVDD-supply = <&vdd_3v3_reg>;
+ };
+ };
+ };
+
+- fragment@2 {
++ fragment@1 {
+ target = <&i2s>;
+ __overlay__ {
+ status = "okay";
+ };
+ };
+
+- fragment@3 {
++ fragment@2 {
+ target = <&sound>;
+ __overlay__ {
+ compatible = "adi,adau1977-adc";
+diff --git a/arch/arm/boot/dts/overlays/akkordion-iqdacplus-overlay.dts b/arch/arm/boot/dts/overlays/akkordion-iqdacplus-overlay.dts
+index 208849d5c39274ed0aa557f63a19430a451a95f5..241d03b9b79ef5e833cc28819003946a9eb319fd 100644
+--- a/arch/arm/boot/dts/overlays/akkordion-iqdacplus-overlay.dts
++++ b/arch/arm/boot/dts/overlays/akkordion-iqdacplus-overlay.dts
+@@ -23,6 +23,9 @@
+ #sound-dai-cells = <0>;
+ compatible = "ti,pcm5122";
+ reg = <0x4c>;
++ AVDD-supply = <&vdd_3v3_reg>;
++ DVDD-supply = <&vdd_3v3_reg>;
++ CPVDD-supply = <&vdd_3v3_reg>;
+ status = "okay";
+ };
+ };
+diff --git a/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts b/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts
+index 2f078d4747ccfdc5172e24b18ce65454f1219b9d..b4dc99633b9d409565c0443de378a4460c7a966a 100644
+--- a/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts
++++ b/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts
+@@ -34,6 +34,9 @@
+ compatible = "ti,pcm5122";
+ reg = <0x4d>;
+ clocks = <&dacpro_osc>;
++ AVDD-supply = <&vdd_3v3_reg>;
++ DVDD-supply = <&vdd_3v3_reg>;
++ CPVDD-supply = <&vdd_3v3_reg>;
+ status = "okay";
+ };
+ };
+diff --git a/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts b/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts
+index f5e41f48ba4fed92194ff5a63d13c70bb2d1c091..64cb1e00343b57e3d7dee864416e558dc3163117 100644
+--- a/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts
++++ b/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts
+@@ -23,6 +23,8 @@
+ #sound-dai-cells = <0>;
+ compatible = "wlf,wm8804";
+ reg = <0x3b>;
++ PVDD-supply = <&vdd_3v3_reg>;
++ DVDD-supply = <&vdd_3v3_reg>;
+ status = "okay";
+ };
+ };
+diff --git a/arch/arm/boot/dts/overlays/hifiberry-digi-pro-overlay.dts b/arch/arm/boot/dts/overlays/hifiberry-digi-pro-overlay.dts
+index 2a26d9cfffb0f3d7958eb3756ca7c4ba28400e1c..d02479ca4a25c3b2da75fe737fd457b1882c20b1 100644
+--- a/arch/arm/boot/dts/overlays/hifiberry-digi-pro-overlay.dts
++++ b/arch/arm/boot/dts/overlays/hifiberry-digi-pro-overlay.dts
+@@ -23,6 +23,8 @@
+ #sound-dai-cells = <0>;
+ compatible = "wlf,wm8804";
+ reg = <0x3b>;
++ PVDD-supply = <&vdd_3v3_reg>;
++ DVDD-supply = <&vdd_3v3_reg>;
+ status = "okay";
+ };
+ };
+diff --git a/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts b/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts
+index 0d35c85382bb5766b3eeb9de1bd4a94621229e4b..f16586f05971f69b928200d212015982e388ce96 100644
+--- a/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts
++++ b/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts
+@@ -23,6 +23,9 @@
+ #sound-dai-cells = <0>;
+ compatible = "ti,pcm5122";
+ reg = <0x4c>;
++ AVDD-supply = <&vdd_3v3_reg>;
++ DVDD-supply = <&vdd_3v3_reg>;
++ CPVDD-supply = <&vdd_3v3_reg>;
+ status = "okay";
+ };
+ };
+diff --git a/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts b/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts
+index d4bad8742a985e2f15eed19ca52ef283a74fefb9..4dcf17515f95589addd5194cf825be813d1e0c98 100644
+--- a/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts
++++ b/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts
+@@ -23,6 +23,9 @@
+ #sound-dai-cells = <0>;
+ compatible = "ti,pcm5122";
+ reg = <0x4c>;
++ AVDD-supply = <&vdd_3v3_reg>;
++ DVDD-supply = <&vdd_3v3_reg>;
++ CPVDD-supply = <&vdd_3v3_reg>;
+ status = "okay";
+ };
+ };
+diff --git a/arch/arm/boot/dts/overlays/iqaudio-digi-wm8804-audio-overlay.dts b/arch/arm/boot/dts/overlays/iqaudio-digi-wm8804-audio-overlay.dts
+index da4fbfdfdbbbcf2505b9eb4789ddb779ec72cea8..b86e1e5edc89fb78fd1ab8482bfff6c7ec4ec9f5 100644
+--- a/arch/arm/boot/dts/overlays/iqaudio-digi-wm8804-audio-overlay.dts
++++ b/arch/arm/boot/dts/overlays/iqaudio-digi-wm8804-audio-overlay.dts
+@@ -24,8 +24,8 @@
+ compatible = "wlf,wm8804";
+ reg = <0x3b>;
+ status = "okay";
+- // DVDD-supply = <®_3v3>;
+- // PVDD-supply = <®_3v3>;
++ DVDD-supply = <&vdd_3v3_reg>;
++ PVDD-supply = <&vdd_3v3_reg>;
+ };
+ };
+ };
+diff --git a/arch/arm/boot/dts/overlays/justboom-dac-overlay.dts b/arch/arm/boot/dts/overlays/justboom-dac-overlay.dts
+index 312632ad376d5b8c8ff1dbf31fa03d0d18181d94..2b8dba0c231b20ac7660152356a06abeacc83c2d 100644
+--- a/arch/arm/boot/dts/overlays/justboom-dac-overlay.dts
++++ b/arch/arm/boot/dts/overlays/justboom-dac-overlay.dts
+@@ -23,6 +23,9 @@
+ #sound-dai-cells = <0>;
+ compatible = "ti,pcm5122";
+ reg = <0x4d>;
++ AVDD-supply = <&vdd_3v3_reg>;
++ DVDD-supply = <&vdd_3v3_reg>;
++ CPVDD-supply = <&vdd_3v3_reg>;
+ status = "okay";
+ };
+ };
+diff --git a/arch/arm/boot/dts/overlays/justboom-digi-overlay.dts b/arch/arm/boot/dts/overlays/justboom-digi-overlay.dts
+index cbbede9a541166ba257122918081982016e0b7eb..1212e3ff591b6071604ee4a519c89ec50ac95d00 100644
+--- a/arch/arm/boot/dts/overlays/justboom-digi-overlay.dts
++++ b/arch/arm/boot/dts/overlays/justboom-digi-overlay.dts
+@@ -23,6 +23,8 @@
+ #sound-dai-cells = <0>;
+ compatible = "wlf,wm8804";
+ reg = <0x3b>;
++ PVDD-supply = <&vdd_3v3_reg>;
++ DVDD-supply = <&vdd_3v3_reg>;
+ status = "okay";
+ };
+ };
+diff --git a/arch/arm/boot/dts/overlays/raspidac3-overlay.dts b/arch/arm/boot/dts/overlays/raspidac3-overlay.dts
+index 2fac57ca179fcf114655ea91dbef419c16aceb79..2c3c97813f22c94eff6da2193aff0920ac7c39b1 100644
+--- a/arch/arm/boot/dts/overlays/raspidac3-overlay.dts
++++ b/arch/arm/boot/dts/overlays/raspidac3-overlay.dts
+@@ -23,12 +23,16 @@
+ #sound-dai-cells = <0>;
+ compatible = "ti,pcm5122";
+ reg = <0x4c>;
++ AVDD-supply = <&vdd_3v3_reg>;
++ DVDD-supply = <&vdd_3v3_reg>;
++ CPVDD-supply = <&vdd_3v3_reg>;
+ status = "okay";
+ };
+
+ tpa6130a2: tpa6130a2@60 {
+ compatible = "ti,tpa6130a2";
+ reg = <0x60>;
++ Vdd-supply = <&vdd_3v3_reg>;
+ status = "okay";
+ };
+ };
+diff --git a/arch/arm/boot/dts/overlays/rra-digidac1-wm8741-audio-overlay.dts b/arch/arm/boot/dts/overlays/rra-digidac1-wm8741-audio-overlay.dts
+index 16b1247bfa618ff85936ddf78c3aea58075eaa67..f8d48233e28c7c18509b4a95692f6aff29ea33fd 100644
+--- a/arch/arm/boot/dts/overlays/rra-digidac1-wm8741-audio-overlay.dts
++++ b/arch/arm/boot/dts/overlays/rra-digidac1-wm8741-audio-overlay.dts
+@@ -6,45 +6,13 @@
+ compatible = "brcm,bcm2708";
+
+ fragment@0 {
+- target-path = "/";
+- __overlay__ {
+- aliases {
+- ldo0 = &ldo0;
+- ldo1 = &ldo1;
+- };
+- };
+- };
+-
+- fragment@1 {
+- target-path = "/soc";
+- __overlay__ {
+-
+- ldo1: ldo1 {
+- compatible = "regulator-fixed";
+- regulator-name = "DC_5V";
+- regulator-min-microvolt = <5000000>;
+- regulator-max-microvolt = <5000000>;
+- regulator-always-on;
+- };
+-
+- ldo0: ldo0 {
+- compatible = "regulator-fixed";
+- regulator-name = "DC_3V3";
+- regulator-min-microvolt = <3300000>;
+- regulator-max-microvolt = <3300000>;
+- regulator-always-on;
+- };
+- };
+- };
+-
+- fragment@2 {
+ target = <&i2s>;
+ __overlay__ {
+ status = "okay";
+ };
+ };
+
+- fragment@3 {
++ fragment@1 {
+ target = <&i2c1>;
+ __overlay__ {
+ #address-cells = <1>;
+@@ -56,21 +24,21 @@
+ compatible = "wlf,wm8804";
+ reg = <0x3b>;
+ status = "okay";
+- PVDD-supply = <&ldo0>;
+- DVDD-supply = <&ldo0>;
++ PVDD-supply = <&vdd_3v3_reg>;
++ DVDD-supply = <&vdd_3v3_reg>;
+ };
+
+ wm8742: wm8741@1a {
+ compatible = "wlf,wm8741";
+ reg = <0x1a>;
+ status = "okay";
+- AVDD-supply = <&ldo1>;
+- DVDD-supply = <&ldo0>;
++ AVDD-supply = <&vdd_5v0_reg>;
++ DVDD-supply = <&vdd_3v3_reg>;
+ };
+ };
+ };
+
+- fragment@4 {
++ fragment@2 {
+ target = <&sound>;
+ __overlay__ {
+ compatible = "rra,digidac1-soundcard";
+
+From 1cc84b5f80871ee81f439f4e7571edef15242a6f Mon Sep 17 00:00:00 2001
+From: Matthias Reichl
+Date: Sun, 22 Jan 2017 12:49:37 +0100
+Subject: [PATCH 140/187] ASoC: Add driver for Cirrus Logic Audio Card
+
+Note: due to problems with deferred probing of regulators
+the following softdep should be added to a modprobe.d file
+
+softdep arizona-spi pre: arizona-ldo1
+
+Signed-off-by: Matthias Reichl
+---
+ arch/arm/boot/dts/overlays/Makefile | 1 +
+ arch/arm/boot/dts/overlays/README | 6 +
+ .../dts/overlays/rpi-cirrus-wm5102-overlay.dts | 146 +++
+ sound/soc/bcm/Kconfig | 9 +
+ sound/soc/bcm/Makefile | 2 +
+ sound/soc/bcm/rpi-cirrus.c | 1003 ++++++++++++++++++++
+ 6 files changed, 1167 insertions(+)
+ create mode 100644 arch/arm/boot/dts/overlays/rpi-cirrus-wm5102-overlay.dts
+ create mode 100644 sound/soc/bcm/rpi-cirrus.c
+
+diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
+index e915dff8a4cdf5af3df0aa519b3ee08dd970d831..0a7d30cd573060964bb081ee6617d5b77a17b974 100644
+--- a/arch/arm/boot/dts/overlays/Makefile
++++ b/arch/arm/boot/dts/overlays/Makefile
+@@ -68,6 +68,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
+ qca7000.dtbo \
+ raspidac3.dtbo \
+ rpi-backlight.dtbo \
++ rpi-cirrus-wm5102.dtbo \
+ rpi-dac.dtbo \
+ rpi-display.dtbo \
+ rpi-ft5406.dtbo \
+diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
+index aa9b6128c397b33e9c40eec29476d8352933c237..46228fd324fc4c52eb0ba50316b4c02f8245bf04 100644
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -995,6 +995,12 @@ Load: dtoverlay=rpi-backlight
+ Params:
+
+
++Name: rpi-cirrus-wm5102
++Info: Configures the Cirrus Logic Audio Card
++Load: dtoverlay=rpi-cirrus-wm5102
++Params:
++
++
+ Name: rpi-dac
+ Info: Configures the RPi DAC audio card
+ Load: dtoverlay=rpi-dac
+diff --git a/arch/arm/boot/dts/overlays/rpi-cirrus-wm5102-overlay.dts b/arch/arm/boot/dts/overlays/rpi-cirrus-wm5102-overlay.dts
+new file mode 100644
+index 0000000000000000000000000000000000000000..cf85f0af224067cf58053a143664f0716d5ce71a
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/rpi-cirrus-wm5102-overlay.dts
+@@ -0,0 +1,146 @@
++// Definitions for the Cirrus Logic Audio Card
++/dts-v1/;
++/plugin/;
++#include
++#include
++#include
++
++/ {
++ compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
++
++ fragment@0 {
++ target = <&i2s>;
++ __overlay__ {
++ status = "okay";
++ };
++ };
++
++ fragment@1 {
++ target = <&gpio>;
++ __overlay__ {
++ wlf_pins: wlf_pins {
++ brcm,pins = <17 22 27 8>;
++ brcm,function = <
++ BCM2835_FSEL_GPIO_OUT
++ BCM2835_FSEL_GPIO_OUT
++ BCM2835_FSEL_GPIO_IN
++ BCM2835_FSEL_GPIO_OUT
++ >;
++ };
++ };
++ };
++
++ fragment@2 {
++ target-path = "/";
++ __overlay__ {
++ rpi_cirrus_reg_1v8: rpi_cirrus_reg_1v8 {
++ compatible = "regulator-fixed";
++ regulator-name = "RPi-Cirrus 1v8";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ regulator-always-on;
++ };
++ };
++ };
++
++ fragment@3 {
++ target = <&spi0>;
++ __overlay__ {
++ #address-cells = <1>;
++ #size-cells = <0>;
++ status = "okay";
++
++ spidev@0{
++ status = "disabled";
++ };
++
++ spidev@1{
++ status = "disabled";
++ };
++
++ wm5102@1{
++ compatible = "wlf,wm5102";
++ reg = <1>;
++
++ spi-max-frequency = <500000>;
++
++ interrupt-parent = <&gpio>;
++ interrupts = <27 8>;
++ interrupt-controller;
++ #interrupt-cells = <2>;
++
++ gpio-controller;
++ #gpio-cells = <2>;
++
++ LDOVDD-supply = <&rpi_cirrus_reg_1v8>;
++ AVDD-supply = <&rpi_cirrus_reg_1v8>;
++ DBVDD1-supply = <&rpi_cirrus_reg_1v8>;
++ DBVDD2-supply = <&vdd_3v3_reg>;
++ DBVDD3-supply = <&vdd_3v3_reg>;
++ CPVDD-supply = <&rpi_cirrus_reg_1v8>;
++ SPKVDDL-supply = <&vdd_5v0_reg>;
++ SPKVDDR-supply = <&vdd_5v0_reg>;
++ DCVDD-supply = <&arizona_ldo1>;
++
++ wlf,reset = <&gpio 17 GPIO_ACTIVE_HIGH>;
++ wlf,ldoena = <&gpio 22 GPIO_ACTIVE_HIGH>;
++ wlf,gpio-defaults = <
++ ARIZONA_GP_DEFAULT
++ ARIZONA_GP_DEFAULT
++ ARIZONA_GP_DEFAULT
++ ARIZONA_GP_DEFAULT
++ ARIZONA_GP_DEFAULT
++ >;
++ wlf,micd-configs = <0 1 0>;
++ wlf,dmic-ref = <
++ ARIZONA_DMIC_MICVDD
++ ARIZONA_DMIC_MICBIAS2
++ ARIZONA_DMIC_MICVDD
++ ARIZONA_DMIC_MICVDD
++ >;
++ wlf,inmode = <
++ ARIZONA_INMODE_DIFF
++ ARIZONA_INMODE_DMIC
++ ARIZONA_INMODE_SE
++ ARIZONA_INMODE_DIFF
++ >;
++ status = "okay";
++
++ arizona_ldo1: ldo1 {
++ regulator-name = "LDO1";
++ // default constraints as in
++ // arizona-ldo1.c
++ regulator-min-microvolt = <1200000>;
++ regulator-max-microvolt = <1800000>;
++ };
++ };
++ };
++ };
++
++ fragment@4 {
++ target = <&i2c1>;
++ __overlay__ {
++ status = "okay";
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ wm8804@3b {
++ compatible = "wlf,wm8804";
++ reg = <0x3b>;
++ status = "okay";
++ PVDD-supply = <&vdd_3v3_reg>;
++ DVDD-supply = <&vdd_3v3_reg>;
++ wlf,reset-gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
++ };
++ };
++ };
++
++ fragment@5 {
++ target = <&sound>;
++ __overlay__ {
++ compatible = "wlf,rpi-cirrus";
++ i2s-controller = <&i2s>;
++ status = "okay";
++ };
++ };
++};
+diff --git a/sound/soc/bcm/Kconfig b/sound/soc/bcm/Kconfig
+index d024377e8450fb5402dcb5ea27161f774b04a8ec..10f6b201777946af8e8e78d2ffb0b0cff38093df 100644
+--- a/sound/soc/bcm/Kconfig
++++ b/sound/soc/bcm/Kconfig
+@@ -45,6 +45,15 @@ config SND_BCM2708_SOC_HIFIBERRY_AMP
+ help
+ Say Y or M if you want to add support for the HifiBerry Amp amplifier board.
+
++config SND_BCM2708_SOC_RPI_CIRRUS
++ tristate "Support for Cirrus Logic Audio Card"
++ depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S
++ select SND_SOC_WM5102
++ select SND_SOC_WM8804
++ help
++ Say Y or M if you want to add support for the Wolfson and
++ Cirrus Logic audio cards.
++
+ config SND_BCM2708_SOC_RPI_DAC
+ tristate "Support for RPi-DAC"
+ depends on SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S
+diff --git a/sound/soc/bcm/Makefile b/sound/soc/bcm/Makefile
+index bb1df438540193652ec5464e8bc51f636a1b844e..84c2b20ce2e51b525797ee58de95734ee7847e15 100644
+--- a/sound/soc/bcm/Makefile
++++ b/sound/soc/bcm/Makefile
+@@ -16,6 +16,7 @@ snd-soc-hifiberry-dacplus-objs := hifiberry_dacplus.o
+ snd-soc-hifiberry-digi-objs := hifiberry_digi.o
+ snd-soc-justboom-dac-objs := justboom-dac.o
+ snd-soc-justboom-digi-objs := justboom-digi.o
++snd-soc-rpi-cirrus-objs := rpi-cirrus.o
+ snd-soc-rpi-dac-objs := rpi-dac.o
+ snd-soc-rpi-proto-objs := rpi-proto.o
+ snd-soc-iqaudio-dac-objs := iqaudio-dac.o
+@@ -34,6 +35,7 @@ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS) += snd-soc-hifiberry-dacplus.o
+ obj-$(CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI) += snd-soc-hifiberry-digi.o
+ obj-$(CONFIG_SND_BCM2708_SOC_JUSTBOOM_DAC) += snd-soc-justboom-dac.o
+ obj-$(CONFIG_SND_BCM2708_SOC_JUSTBOOM_DIGI) += snd-soc-justboom-digi.o
++obj-$(CONFIG_SND_BCM2708_SOC_RPI_CIRRUS) += snd-soc-rpi-cirrus.o
+ 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
+diff --git a/sound/soc/bcm/rpi-cirrus.c b/sound/soc/bcm/rpi-cirrus.c
+new file mode 100644
+index 0000000000000000000000000000000000000000..ac8651ddff7bd3701dffe22c7fb88352f912dff3
+--- /dev/null
++++ b/sound/soc/bcm/rpi-cirrus.c
+@@ -0,0 +1,1003 @@
++/*
++ * ASoC machine driver for Cirrus Logic Audio Card
++ * (with WM5102 and WM8804 codecs)
++ *
++ * Copyright 2015-2017 Matthias Reichl
++ *
++ * Based on rpi-cirrus-sound-pi driver (c) Wolfson / Cirrus Logic Inc.
++ *
++ * 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.
++ */
++
++#include