Merge pull request #3644 from MilhouseVH/linux5.1.16+

linux (Generic/Allwinner): update to linux-5.1.20
This commit is contained in:
CvH 2019-07-12 18:23:21 +02:00 committed by GitHub
commit 8eb20aa34a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 128 additions and 133 deletions

View File

@ -3,8 +3,8 @@
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="bcm2835-driver"
PKG_VERSION="383fcf5be7f1bcf8d63ca8b471ecd9b8da3cef0b"
PKG_SHA256="538dcf3ed607a0c01f0864b8149c87939205bfe20d42d4e8561331c6b2ef8b60"
PKG_VERSION="025759b8634c2f8df35203be02c19a0633f1cec1"
PKG_SHA256="12a878ea58aab1ed666de2389fd39b7725ad73c940c95616248226366f933a9f"
PKG_LICENSE="nonfree"
PKG_SITE="http://www.broadcom.com"
PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}.tar.xz"

View File

@ -23,14 +23,14 @@ case "$LINUX" in
PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz"
;;
raspberrypi)
PKG_VERSION="a831d7ceefd10b78f17d3fa0cc625d2dfd8ca00e" # 5.1.15
PKG_SHA256="c498c0003c0078e7fbc4980f1fc577d3edd864b1b611d15b25fbe924b68ccf55"
PKG_VERSION="910635051ca64d573f23b7cc6f29277e899008be" # 5.1.16
PKG_SHA256="dde7f76503c971d06726d48e31ea784faa5b740f16a1cd8966fee583821eba8f"
PKG_URL="https://github.com/raspberrypi/linux/archive/$PKG_VERSION.tar.gz"
PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz"
;;
*)
PKG_VERSION="5.1.15"
PKG_SHA256="e8a128702680cea9f37c44bbeb456ea1c2ef1ae1eba0e05dcfc11d7d6cdc1399"
PKG_VERSION="5.1.17"
PKG_SHA256="5935c37966a7883cea6a541684fd4076b8d8d11776d7e76996c62c832b96c43d"
PKG_URL="https://www.kernel.org/pub/linux/kernel/v5.x/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_PATCH_DIRS="default"
;;

View File

@ -3,8 +3,8 @@
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="bcm2835-bootloader"
PKG_VERSION="383fcf5be7f1bcf8d63ca8b471ecd9b8da3cef0b"
PKG_SHA256="dc3b5e57d10258a76959c53b28f295cb4c4c8e626edeb5c796fe420ff8b2dce9"
PKG_VERSION="025759b8634c2f8df35203be02c19a0633f1cec1"
PKG_SHA256="46c75e1e8714010083396792825514a0a03417136efa1970c77309f1c41cd1f2"
PKG_ARCH="arm"
PKG_LICENSE="nonfree"
PKG_SITE="http://www.broadcom.com"

View File

@ -1,4 +1,4 @@
From 856cf7018cd05c18d1693b04cad6d81450ed2948 Mon Sep 17 00:00:00 2001
From 99b0611417b9864ae57b6646e143f748f80964c9 Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 16 Dec 2018 10:22:09 +0100
Subject: [PATCH 01/15] drm: dw-hdmi: extract dw_hdmi_connector_update_edid()
@ -12,10 +12,10 @@ Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 5971976284bf..e89efed80357 100644
index ab7968c..fb35ee9 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -1905,7 +1905,8 @@ dw_hdmi_connector_detect(struct drm_connector *connector, bool force)
@@ -2059,7 +2059,8 @@ dw_hdmi_connector_detect(struct drm_connector *connector, bool force)
return hdmi->phy.ops->read_hpd(hdmi, hdmi->phy.data);
}
@ -25,7 +25,7 @@ index 5971976284bf..e89efed80357 100644
{
struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi,
connector);
@@ -1924,7 +1925,8 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
@@ -2078,7 +2079,8 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
hdmi->sink_has_audio = drm_detect_monitor_audio(edid);
drm_connector_update_edid_property(connector, edid);
cec_notifier_set_phys_addr_from_edid(hdmi->cec_notifier, edid);
@ -35,7 +35,7 @@ index 5971976284bf..e89efed80357 100644
kfree(edid);
} else {
dev_dbg(hdmi->dev, "failed to get edid\n");
@@ -1933,6 +1935,11 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
@@ -2087,6 +2089,11 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
return ret;
}
@ -48,10 +48,10 @@ index 5971976284bf..e89efed80357 100644
{
struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi,
--
2.20.0
2.14.1
From 5176a54a40006c739c05b109ab32b361d5cae350 Mon Sep 17 00:00:00 2001
From 834da8a94754f25fdfac1995cc7ea72e569e9fbd Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 16 Dec 2018 11:38:43 +0100
Subject: [PATCH 02/15] drm: dw-hdmi: move dw_hdmi_connector_detect()
@ -60,14 +60,14 @@ Move dw_hdmi_connector_detect() it will call dw_hdmi_connector_update_edid().
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 30 +++++++++++------------
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index e89efed80357..b293290ac525 100644
index fb35ee9..eb9e5d8 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -1890,21 +1890,6 @@ static void dw_hdmi_update_phy_mask(struct dw_hdmi *hdmi)
@@ -2044,21 +2044,6 @@ static void dw_hdmi_update_phy_mask(struct dw_hdmi *hdmi)
hdmi->rxsense);
}
@ -89,7 +89,7 @@ index e89efed80357..b293290ac525 100644
static int dw_hdmi_connector_update_edid(struct drm_connector *connector,
bool add_modes)
{
@@ -1935,6 +1920,21 @@ static int dw_hdmi_connector_update_edid(struct drm_connector *connector,
@@ -2089,6 +2074,21 @@ static int dw_hdmi_connector_update_edid(struct drm_connector *connector,
return ret;
}
@ -112,10 +112,10 @@ index e89efed80357..b293290ac525 100644
{
return dw_hdmi_connector_update_edid(connector, true);
--
2.20.0
2.14.1
From 46f3c1a32813d7e822a62188ba820b15e87ba49c Mon Sep 17 00:00:00 2001
From f1d41eb5ac2193f2a6c4a746a9fac27c3bfe7af5 Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 16 Dec 2018 10:22:09 +0100
Subject: [PATCH 03/15] drm: dw-hdmi: update CEC phys addr and EDID on HPD
@ -130,10 +130,10 @@ Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index b293290ac525..6334bfe5c802 100644
index eb9e5d8..d079bde 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -1923,6 +1923,7 @@ static int dw_hdmi_connector_update_edid(struct drm_connector *connector,
@@ -2077,6 +2077,7 @@ static int dw_hdmi_connector_update_edid(struct drm_connector *connector,
static enum drm_connector_status
dw_hdmi_connector_detect(struct drm_connector *connector, bool force)
{
@ -141,7 +141,7 @@ index b293290ac525..6334bfe5c802 100644
struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi,
connector);
@@ -1932,7 +1933,14 @@ dw_hdmi_connector_detect(struct drm_connector *connector, bool force)
@@ -2086,7 +2087,14 @@ dw_hdmi_connector_detect(struct drm_connector *connector, bool force)
dw_hdmi_update_phy_mask(hdmi);
mutex_unlock(&hdmi->mutex);
@ -157,7 +157,7 @@ index b293290ac525..6334bfe5c802 100644
}
static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
@@ -2148,10 +2156,6 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
@@ -2301,10 +2309,6 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
dw_hdmi_setup_rx_sense(hdmi,
phy_stat & HDMI_PHY_HPD,
phy_stat & HDMI_PHY_RX_SENSE);
@ -169,10 +169,10 @@ index b293290ac525..6334bfe5c802 100644
if (intr_stat & HDMI_IH_PHY_STAT0_HPD) {
--
2.20.0
2.14.1
From 2d47e06b748342aa49c7d9871a1fac87f68341be Mon Sep 17 00:00:00 2001
From e20d93cd15aad779acfad254bac23d37ea7b7fe9 Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 16 Dec 2018 10:22:09 +0100
Subject: [PATCH 04/15] Revert "drm/edid: make drm_edid_to_eld() static"
@ -188,10 +188,10 @@ Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index b506e3622b08..694336e678f9 100644
index d947789..cc71a3c 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -3892,7 +3892,7 @@ static void clear_eld(struct drm_connector *connector)
@@ -3970,7 +3970,7 @@ static void clear_eld(struct drm_connector *connector)
connector->audio_latency[1] = 0;
}
@ -200,7 +200,7 @@ index b506e3622b08..694336e678f9 100644
* drm_edid_to_eld - build ELD from EDID
* @connector: connector corresponding to the HDMI/DP sink
* @edid: EDID to parse
@@ -3900,7 +3900,7 @@ static void clear_eld(struct drm_connector *connector)
@@ -3978,7 +3978,7 @@ static void clear_eld(struct drm_connector *connector)
* Fill the ELD (EDID-Like Data) buffer for passing to the audio driver. The
* HDCP and Port_ID ELD fields are left for the graphics driver to fill in.
*/
@ -209,7 +209,7 @@ index b506e3622b08..694336e678f9 100644
{
uint8_t *eld = connector->eld;
u8 *cea;
@@ -3985,6 +3985,7 @@ static void drm_edid_to_eld(struct drm_connector *connector, struct edid *edid)
@@ -4063,6 +4063,7 @@ static void drm_edid_to_eld(struct drm_connector *connector, struct edid *edid)
DRM_DEBUG_KMS("ELD size %d, SAD count %d\n",
drm_eld_size(eld), total_sad_count);
}
@ -218,7 +218,7 @@ index b506e3622b08..694336e678f9 100644
/**
* drm_edid_to_sad - extracts SADs from EDID
diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
index e3c404833115..3942d551be67 100644
index 19b15fd..185870b 100644
--- a/include/drm/drm_edid.h
+++ b/include/drm/drm_edid.h
@@ -333,6 +333,7 @@ struct drm_encoder;
@ -230,10 +230,10 @@ index e3c404833115..3942d551be67 100644
int drm_edid_to_speaker_allocation(struct edid *edid, u8 **sadb);
int drm_av_sync_delay(struct drm_connector *connector,
--
2.20.0
2.14.1
From c9c9158f4f78735c3c220624a89e0354fe4a2807 Mon Sep 17 00:00:00 2001
From 901b76d639e09e7d829b4974c174ab8595310bcd Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 16 Dec 2018 10:22:09 +0100
Subject: [PATCH 05/15] drm: dw-hdmi: update ELD on HPD event
@ -247,10 +247,10 @@ Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 6334bfe5c802..1f36c6944e60 100644
index d079bde..f13ac2c 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -1912,6 +1912,8 @@ static int dw_hdmi_connector_update_edid(struct drm_connector *connector,
@@ -2066,6 +2066,8 @@ static int dw_hdmi_connector_update_edid(struct drm_connector *connector,
cec_notifier_set_phys_addr_from_edid(hdmi->cec_notifier, edid);
if (add_modes)
ret = drm_add_edid_modes(connector, edid);
@ -260,10 +260,10 @@ index 6334bfe5c802..1f36c6944e60 100644
} else {
dev_dbg(hdmi->dev, "failed to get edid\n");
--
2.20.0
2.14.1
From f534ca70362421fa028bd64ec1ece3abf559357e Mon Sep 17 00:00:00 2001
From e77725c0dc43a3d8d8641dea4abfb92225bf6e72 Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 16 Dec 2018 10:22:09 +0100
Subject: [PATCH 06/15] ASoC: hdmi-codec: add hdmi_codec_eld_notify()
@ -277,7 +277,7 @@ Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/include/sound/hdmi-codec.h b/include/sound/hdmi-codec.h
index 9483c55f871b..7cf66a4c79fb 100644
index 9483c55..7cf66a4 100644
--- a/include/sound/hdmi-codec.h
+++ b/include/sound/hdmi-codec.h
@@ -107,6 +107,8 @@ struct hdmi_codec_pdata {
@ -290,7 +290,7 @@ index 9483c55f871b..7cf66a4c79fb 100644
#endif /* __HDMI_CODEC_H__ */
diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c
index d00734d31e04..4bf9ec7f6650 100644
index fb2f0ac..bfb1519 100644
--- a/sound/soc/codecs/hdmi-codec.c
+++ b/sound/soc/codecs/hdmi-codec.c
@@ -285,6 +285,8 @@ struct hdmi_codec_priv {
@ -302,7 +302,7 @@ index d00734d31e04..4bf9ec7f6650 100644
};
static const struct snd_soc_dapm_widget hdmi_widgets[] = {
@@ -649,7 +651,6 @@ static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd,
@@ -648,7 +650,6 @@ static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd,
{
struct snd_soc_dai_driver *drv = dai->driver;
struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai);
@ -310,7 +310,7 @@ index d00734d31e04..4bf9ec7f6650 100644
struct snd_kcontrol_new hdmi_eld_ctl = {
.access = SNDRV_CTL_ELEM_ACCESS_READ |
SNDRV_CTL_ELEM_ACCESS_VOLATILE,
@@ -678,12 +679,27 @@ static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd,
@@ -677,12 +678,27 @@ static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd,
hcp->chmap_idx = HDMI_CODEC_CHMAP_IDX_UNKNOWN;
/* add ELD ctl with the device number corresponding to the PCM stream */
@ -342,10 +342,10 @@ index d00734d31e04..4bf9ec7f6650 100644
static int hdmi_dai_probe(struct snd_soc_dai *dai)
{
--
2.20.0
2.14.1
From e6330c025b17045a1c050b85ac832a6ce5a9b3aa Mon Sep 17 00:00:00 2001
From 2f1f2bdbc0f6d02235310e87c1de7a193dcda178 Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 16 Dec 2018 12:56:33 +0100
Subject: [PATCH 07/15] drm: dw-hdmi: add dw_hdmi_update_eld() callback
@ -357,10 +357,10 @@ Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2 files changed, 17 insertions(+)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 1f36c6944e60..3664a89eddad 100644
index f13ac2c..a7040c1 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -181,6 +181,7 @@ struct dw_hdmi {
@@ -188,6 +188,7 @@ struct dw_hdmi {
struct regmap *regm;
void (*enable_audio)(struct dw_hdmi *hdmi);
void (*disable_audio)(struct dw_hdmi *hdmi);
@ -368,7 +368,7 @@ index 1f36c6944e60..3664a89eddad 100644
struct cec_notifier *cec_notifier;
};
@@ -606,6 +607,19 @@ void dw_hdmi_audio_disable(struct dw_hdmi *hdmi)
@@ -613,6 +614,19 @@ void dw_hdmi_audio_disable(struct dw_hdmi *hdmi)
}
EXPORT_SYMBOL_GPL(dw_hdmi_audio_disable);
@ -388,7 +388,7 @@ index 1f36c6944e60..3664a89eddad 100644
static bool hdmi_bus_fmt_is_rgb(unsigned int bus_format)
{
switch (bus_format) {
@@ -1914,6 +1928,7 @@ static int dw_hdmi_connector_update_edid(struct drm_connector *connector,
@@ -2068,6 +2082,7 @@ static int dw_hdmi_connector_update_edid(struct drm_connector *connector,
ret = drm_add_edid_modes(connector, edid);
else
drm_edid_to_eld(connector, edid);
@ -397,10 +397,10 @@ index 1f36c6944e60..3664a89eddad 100644
} else {
dev_dbg(hdmi->dev, "failed to get edid\n");
diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h
index ccb5aa8468e0..e78be449e763 100644
index 66e7077..323febe 100644
--- a/include/drm/bridge/dw_hdmi.h
+++ b/include/drm/bridge/dw_hdmi.h
@@ -156,6 +156,8 @@ void dw_hdmi_setup_rx_sense(struct dw_hdmi *hdmi, bool hpd, bool rx_sense);
@@ -160,6 +160,8 @@ void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate);
void dw_hdmi_audio_enable(struct dw_hdmi *hdmi);
void dw_hdmi_audio_disable(struct dw_hdmi *hdmi);
void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi);
@ -410,10 +410,10 @@ index ccb5aa8468e0..e78be449e763 100644
/* PHY configuration */
void dw_hdmi_phy_i2c_set_addr(struct dw_hdmi *hdmi, u8 address);
--
2.20.0
2.14.1
From 43d6faaba7ff0d5d832f1642ea0ee6c87584e0f7 Mon Sep 17 00:00:00 2001
From 8a20ea0cfb4c6e97d2ccde1fc77e1f4cdd03e5d2 Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 16 Dec 2018 10:22:09 +0100
Subject: [PATCH 08/15] drm: dw-hdmi-i2s: add .get_eld callback for ALSA SoC
@ -422,12 +422,12 @@ Add get_eld() callback and call hdmi_codec_eld_notify() when ELD has changed.
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
---
.../gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 1 +
.../drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 36 ++++++++++++++++++-
drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 1 +
.../gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 36 +++++++++++++++++++++-
2 files changed, 36 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
index 63b5756f463b..69b8a9734c34 100644
index 63b5756..69b8a97 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
@@ -14,6 +14,7 @@ struct dw_hdmi_audio_data {
@ -439,10 +439,10 @@ index 63b5756f463b..69b8a9734c34 100644
void (*write)(struct dw_hdmi *hdmi, u8 val, int offset);
u8 (*read)(struct dw_hdmi *hdmi, int offset);
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
index 8f9c8a6b46de..609ebad4bd0b 100644
index 5cbb71a..a397505 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
@@ -83,6 +83,32 @@ static void dw_hdmi_i2s_audio_shutdown(struct device *dev, void *data)
@@ -84,6 +84,32 @@ static void dw_hdmi_i2s_audio_shutdown(struct device *dev, void *data)
hdmi_write(audio, HDMI_AUD_CONF0_SW_RESET, HDMI_AUD_CONF0);
}
@ -475,7 +475,7 @@ index 8f9c8a6b46de..609ebad4bd0b 100644
static int dw_hdmi_i2s_get_dai_id(struct snd_soc_component *component,
struct device_node *endpoint)
{
@@ -106,16 +132,19 @@ static int dw_hdmi_i2s_get_dai_id(struct snd_soc_component *component,
@@ -107,16 +133,19 @@ static int dw_hdmi_i2s_get_dai_id(struct snd_soc_component *component,
static struct hdmi_codec_ops dw_hdmi_i2s_ops = {
.hw_params = dw_hdmi_i2s_hw_params,
.audio_shutdown = dw_hdmi_i2s_audio_shutdown,
@ -496,7 +496,7 @@ index 8f9c8a6b46de..609ebad4bd0b 100644
pdata.ops = &dw_hdmi_i2s_ops;
pdata.i2s = 1;
pdata.max_i2s_channels = 6;
@@ -135,13 +164,18 @@ static int snd_dw_hdmi_probe(struct platform_device *pdev)
@@ -136,13 +165,18 @@ static int snd_dw_hdmi_probe(struct platform_device *pdev)
dev_set_drvdata(&pdev->dev, platform);
@ -516,10 +516,10 @@ index 8f9c8a6b46de..609ebad4bd0b 100644
return 0;
--
2.20.0
2.14.1
From dc25172bb38b6e5a39c7254295bf73daf9296120 Mon Sep 17 00:00:00 2001
From dcdde5c3641e7e92b8ead0624d548f918e126b2f Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Mon, 2 Jul 2018 12:21:55 +0200
Subject: [PATCH 09/15] drm: bridge: dw-hdmi: Use AUTO CTS setup mode when
@ -527,14 +527,14 @@ Subject: [PATCH 09/15] drm: bridge: dw-hdmi: Use AUTO CTS setup mode when
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 41 ++++++++++++++---------
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 41 ++++++++++++++++++++-----------
1 file changed, 26 insertions(+), 15 deletions(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 3664a89eddad..3b3834ff2506 100644
index a7040c1..3f46522 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -431,8 +431,12 @@ static void hdmi_set_cts_n(struct dw_hdmi *hdmi, unsigned int cts,
@@ -438,8 +438,12 @@ static void hdmi_set_cts_n(struct dw_hdmi *hdmi, unsigned int cts,
/* nshift factor = 0 */
hdmi_modb(hdmi, 0, HDMI_AUD_CTS3_N_SHIFT_MASK, HDMI_AUD_CTS3);
@ -549,7 +549,7 @@ index 3664a89eddad..3b3834ff2506 100644
hdmi_writeb(hdmi, (cts >> 8) & 0xff, HDMI_AUD_CTS2);
hdmi_writeb(hdmi, cts & 0xff, HDMI_AUD_CTS1);
@@ -502,24 +506,31 @@ static void hdmi_set_clk_regenerator(struct dw_hdmi *hdmi,
@@ -509,24 +513,31 @@ static void hdmi_set_clk_regenerator(struct dw_hdmi *hdmi,
{
unsigned long ftdms = pixel_clk;
unsigned int n, cts;
@ -595,20 +595,20 @@ index 3664a89eddad..3b3834ff2506 100644
spin_lock_irq(&hdmi->audio_lock);
hdmi->audio_n = n;
--
2.20.0
2.14.1
From fd248f45d63ab907ffe75b2889d5a3fa63b68039 Mon Sep 17 00:00:00 2001
From e7b2f400507263f12872db06f4cd69bc80f62c2f Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 25 Mar 2018 22:17:06 +0200
Subject: [PATCH 10/15] ASoC: hdmi-codec: fix channel allocation
---
sound/soc/codecs/hdmi-codec.c | 113 ++++++++++++++++------------------
sound/soc/codecs/hdmi-codec.c | 113 +++++++++++++++++++-----------------------
1 file changed, 52 insertions(+), 61 deletions(-)
diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c
index 4bf9ec7f6650..dc84bfbe7e87 100644
index bfb1519..47632a3 100644
--- a/sound/soc/codecs/hdmi-codec.c
+++ b/sound/soc/codecs/hdmi-codec.c
@@ -202,78 +202,69 @@ static const struct snd_pcm_chmap_elem hdmi_codec_8ch_chmaps[] = {
@ -743,23 +743,23 @@ index 4bf9ec7f6650..dc84bfbe7e87 100644
struct hdmi_codec_priv {
--
2.20.0
2.14.1
From c66fc8b2d97b6c03ab79791578a86c8eb4b099db Mon Sep 17 00:00:00 2001
From 9ea978d398bedf15ffeec2102517f9faae94d82e Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Tue, 10 Jul 2018 20:54:33 +0200
Subject: [PATCH 11/15] drm: dw-hdmi-i2s: add multi-channel lpcm support
---
.../gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 1 +
.../drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 75 ++++++++++++++++++-
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 1 +
drivers/gpu/drm/bridge/synopsys/dw-hdmi.h | 24 ++++++
drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 1 +
.../gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 75 +++++++++++++++++++++-
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 1 +
drivers/gpu/drm/bridge/synopsys/dw-hdmi.h | 24 +++++++
4 files changed, 98 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
index 69b8a9734c34..9e9cbf934d96 100644
index 69b8a97..9e9cbf9 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
@@ -18,6 +18,7 @@ struct dw_hdmi_i2s_audio_data {
@ -771,10 +771,10 @@ index 69b8a9734c34..9e9cbf934d96 100644
#endif
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
index 609ebad4bd0b..637ef1f567fc 100644
index a397505..d0d32a9 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
@@ -32,6 +32,14 @@ static inline u8 hdmi_read(struct dw_hdmi_i2s_audio_data *audio, int offset)
@@ -33,6 +33,14 @@ static inline u8 hdmi_read(struct dw_hdmi_i2s_audio_data *audio, int offset)
return audio->read(hdmi, offset);
}
@ -789,7 +789,7 @@ index 609ebad4bd0b..637ef1f567fc 100644
static int dw_hdmi_i2s_hw_params(struct device *dev, void *data,
struct hdmi_codec_daifmt *fmt,
struct hdmi_codec_params *hparms)
@@ -41,6 +49,7 @@ static int dw_hdmi_i2s_hw_params(struct device *dev, void *data,
@@ -42,6 +50,7 @@ static int dw_hdmi_i2s_hw_params(struct device *dev, void *data,
u8 conf0 = 0;
u8 conf1 = 0;
u8 inputclkfs = 0;
@ -797,7 +797,7 @@ index 609ebad4bd0b..637ef1f567fc 100644
/* it cares I2S only */
if ((fmt->fmt != HDMI_I2S) ||
@@ -49,8 +58,23 @@ static int dw_hdmi_i2s_hw_params(struct device *dev, void *data,
@@ -50,8 +59,23 @@ static int dw_hdmi_i2s_hw_params(struct device *dev, void *data,
return -EINVAL;
}
@ -823,7 +823,7 @@ index 609ebad4bd0b..637ef1f567fc 100644
switch (hparms->sample_width) {
case 16:
@@ -62,12 +86,56 @@ static int dw_hdmi_i2s_hw_params(struct device *dev, void *data,
@@ -63,12 +87,56 @@ static int dw_hdmi_i2s_hw_params(struct device *dev, void *data,
break;
}
@ -880,7 +880,7 @@ index 609ebad4bd0b..637ef1f567fc 100644
dw_hdmi_audio_enable(hdmi);
return 0;
@@ -81,6 +149,7 @@ static void dw_hdmi_i2s_audio_shutdown(struct device *dev, void *data)
@@ -82,6 +150,7 @@ static void dw_hdmi_i2s_audio_shutdown(struct device *dev, void *data)
dw_hdmi_audio_disable(hdmi);
hdmi_write(audio, HDMI_AUD_CONF0_SW_RESET, HDMI_AUD_CONF0);
@ -888,7 +888,7 @@ index 609ebad4bd0b..637ef1f567fc 100644
}
static void dw_hdmi_i2s_update_eld(struct device *dev, u8 *eld)
@@ -147,7 +216,7 @@ static int snd_dw_hdmi_probe(struct platform_device *pdev)
@@ -148,7 +217,7 @@ static int snd_dw_hdmi_probe(struct platform_device *pdev)
pdata.ops = &dw_hdmi_i2s_ops;
pdata.i2s = 1;
@ -898,10 +898,10 @@ index 609ebad4bd0b..637ef1f567fc 100644
memset(&pdevinfo, 0, sizeof(pdevinfo));
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 3b3834ff2506..cad4800f5480 100644
index 3f46522..9718443 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -2542,6 +2542,7 @@ __dw_hdmi_probe(struct platform_device *pdev,
@@ -2697,6 +2697,7 @@ __dw_hdmi_probe(struct platform_device *pdev,
audio.hdmi = hdmi;
audio.write = hdmi_writeb;
audio.read = hdmi_readb;
@ -910,7 +910,7 @@ index 3b3834ff2506..cad4800f5480 100644
hdmi->disable_audio = dw_hdmi_i2s_audio_disable;
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h
index 9d90eb9c46e5..760a087d2c68 100644
index 3f3c616..26d2f1b 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h
@@ -162,6 +162,15 @@
@ -929,7 +929,7 @@ index 9d90eb9c46e5..760a087d2c68 100644
#define HDMI_FC_DATACH0FILL 0x1070
#define HDMI_FC_DATACH1FILL 0x1071
#define HDMI_FC_DATACH2FILL 0x1072
@@ -709,6 +718,8 @@ enum {
@@ -710,6 +719,8 @@ enum {
/* HDMI_FC_AUDSCHNLS7 field values */
HDMI_FC_AUDSCHNLS7_ACCURACY_OFFSET = 4,
HDMI_FC_AUDSCHNLS7_ACCURACY_MASK = 0x30,
@ -938,7 +938,7 @@ index 9d90eb9c46e5..760a087d2c68 100644
/* HDMI_FC_AUDSCHNLS8 field values */
HDMI_FC_AUDSCHNLS8_ORIGSAMPFREQ_MASK = 0xf0,
@@ -716,6 +727,15 @@ enum {
@@ -717,6 +728,15 @@ enum {
HDMI_FC_AUDSCHNLS8_WORDLEGNTH_MASK = 0x0f,
HDMI_FC_AUDSCHNLS8_WORDLEGNTH_OFFSET = 0,
@ -954,7 +954,7 @@ index 9d90eb9c46e5..760a087d2c68 100644
/* FC_AUDSCONF field values */
HDMI_FC_AUDSCONF_AUD_PACKET_SAMPFIT_MASK = 0xF0,
HDMI_FC_AUDSCONF_AUD_PACKET_SAMPFIT_OFFSET = 4,
@@ -868,6 +888,9 @@ enum {
@@ -869,6 +889,9 @@ enum {
/* AUD_CONF0 field values */
HDMI_AUD_CONF0_SW_RESET = 0x80,
@ -964,7 +964,7 @@ index 9d90eb9c46e5..760a087d2c68 100644
HDMI_AUD_CONF0_I2S_ALL_ENABLE = 0x2F,
/* AUD_CONF1 field values */
@@ -941,6 +964,7 @@ enum {
@@ -942,6 +965,7 @@ enum {
HDMI_MC_CLKDIS_PIXELCLK_DISABLE = 0x1,
/* MC_SWRSTZ field values */
@ -973,10 +973,10 @@ index 9d90eb9c46e5..760a087d2c68 100644
/* MC_FLOWCTRL field values */
--
2.20.0
2.14.1
From c2f0a0cfa278e061fbfd3b957603e5f41b525043 Mon Sep 17 00:00:00 2001
From 3996b779435bf09fd5f02b9f8bf08f3d1b42adeb Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Mon, 9 Jul 2018 21:25:15 +0200
Subject: [PATCH 12/15] drm: dw-hdmi: call hdmi_set_cts_n after clock is
@ -987,10 +987,10 @@ Subject: [PATCH 12/15] drm: dw-hdmi: call hdmi_set_cts_n after clock is
1 file changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index cad4800f5480..f955a7c49c05 100644
index 9718443..09fdc9f 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -571,6 +571,11 @@ static void hdmi_enable_audio_clk(struct dw_hdmi *hdmi, bool enable)
@@ -578,6 +578,11 @@ static void hdmi_enable_audio_clk(struct dw_hdmi *hdmi, bool enable)
else
hdmi->mc_clkdis |= HDMI_MC_CLKDIS_AUDCLK_DISABLE;
hdmi_writeb(hdmi, hdmi->mc_clkdis, HDMI_MC_CLKDIS);
@ -1003,20 +1003,20 @@ index cad4800f5480..f955a7c49c05 100644
static void dw_hdmi_ahb_audio_enable(struct dw_hdmi *hdmi)
--
2.20.0
2.14.1
From 9df27c0a0944343f565607bd8389222b18f1f2cc Mon Sep 17 00:00:00 2001
From 76dda0ac795fd63a173c7bcf2b257291d3a8d724 Mon Sep 17 00:00:00 2001
From: Marcus Cooper <codekipper@gmail.com>
Date: Sun, 16 Dec 2018 15:04:16 +0100
Subject: [PATCH 13/15] ASoC: sun4i-i2s: multichannel updates
---
sound/soc/sunxi/sun4i-i2s.c | 394 +++++++++++++++++++++++++-----------
1 file changed, 281 insertions(+), 113 deletions(-)
sound/soc/sunxi/sun4i-i2s.c | 396 +++++++++++++++++++++++++++++++-------------
1 file changed, 280 insertions(+), 116 deletions(-)
diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
index d5ec1a20499d..2e3fc596ab64 100644
index bc128e2..2e3fc59 100644
--- a/sound/soc/sunxi/sun4i-i2s.c
+++ b/sound/soc/sunxi/sun4i-i2s.c
@@ -27,10 +27,11 @@
@ -1032,15 +1032,6 @@ index d5ec1a20499d..2e3fc596ab64 100644
#define SUN4I_I2S_CTRL_TX_EN BIT(2)
#define SUN4I_I2S_CTRL_RX_EN BIT(1)
#define SUN4I_I2S_CTRL_GL_EN BIT(0)
@@ -110,7 +111,7 @@
#define SUN8I_I2S_TX_CHAN_MAP_REG 0x44
#define SUN8I_I2S_TX_CHAN_SEL_REG 0x34
-#define SUN8I_I2S_TX_CHAN_OFFSET_MASK GENMASK(13, 11)
+#define SUN8I_I2S_TX_CHAN_OFFSET_MASK GENMASK(13, 12)
#define SUN8I_I2S_TX_CHAN_OFFSET(offset) (offset << 12)
#define SUN8I_I2S_TX_CHAN_EN_MASK GENMASK(11, 4)
#define SUN8I_I2S_TX_CHAN_EN(num_chan) (((1 << num_chan) - 1) << 4)
@@ -129,15 +130,16 @@
* @has_chsel_offset: SoC uses offset for selecting dai operational mode.
* @reg_offset_txdata: offset of the tx fifo.
@ -1501,7 +1492,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
break;
case SND_SOC_DAIFMT_LEFT_J:
val = SUN4I_I2S_FMT0_FMT_LEFT_J;
@@ -454,12 +564,8 @@ static int sun4i_i2s_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
@@ -454,16 +564,8 @@ static int sun4i_i2s_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
* i2s shares the same setting with the LJ format. Increment
* val so that the bit to value to write is correct.
*/
@ -1511,11 +1502,15 @@ index d5ec1a20499d..2e3fc596ab64 100644
- /* blck offset determines whether i2s or LJ */
- regmap_update_bits(i2s->regmap, SUN8I_I2S_TX_CHAN_SEL_REG,
- SUN8I_I2S_TX_CHAN_OFFSET_MASK,
- SUN8I_I2S_TX_CHAN_OFFSET(offset));
-
- regmap_update_bits(i2s->regmap, SUN8I_I2S_RX_CHAN_SEL_REG,
- SUN8I_I2S_TX_CHAN_OFFSET_MASK,
- SUN8I_I2S_TX_CHAN_OFFSET(offset));
}
regmap_field_write(i2s->field_fmt_mode, val);
@@ -496,10 +602,12 @@ static int sun4i_i2s_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
@@ -500,10 +602,12 @@ static int sun4i_i2s_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
case SND_SOC_DAIFMT_CBS_CFS:
/* BCLK and LRCLK master */
val = SUN4I_I2S_CTRL_MODE_MASTER;
@ -1528,7 +1523,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
break;
default:
dev_err(dai->dev, "Unsupported slave setting: %d\n",
@@ -520,10 +628,12 @@ static int sun4i_i2s_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
@@ -524,10 +628,12 @@ static int sun4i_i2s_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
/* BCLK and LRCLK master */
val = SUN8I_I2S_CTRL_BCLK_OUT |
SUN8I_I2S_CTRL_LRCK_OUT;
@ -1541,7 +1536,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
break;
default:
dev_err(dai->dev, "Unsupported slave setting: %d\n",
@@ -542,6 +652,7 @@ static int sun4i_i2s_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
@@ -546,6 +652,7 @@ static int sun4i_i2s_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
SUN4I_I2S_FIFO_CTRL_RX_MODE_MASK,
SUN4I_I2S_FIFO_CTRL_TX_MODE(1) |
SUN4I_I2S_FIFO_CTRL_RX_MODE(1));
@ -1549,7 +1544,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
return 0;
}
@@ -564,6 +675,11 @@ static void sun4i_i2s_start_capture(struct sun4i_i2s *i2s)
@@ -568,6 +675,11 @@ static void sun4i_i2s_start_capture(struct sun4i_i2s *i2s)
regmap_update_bits(i2s->regmap, SUN4I_I2S_DMA_INT_CTRL_REG,
SUN4I_I2S_DMA_INT_CTRL_RX_DRQ_EN,
SUN4I_I2S_DMA_INT_CTRL_RX_DRQ_EN);
@ -1561,7 +1556,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
}
static void sun4i_i2s_start_playback(struct sun4i_i2s *i2s)
@@ -657,11 +773,25 @@ static int sun4i_i2s_set_sysclk(struct snd_soc_dai *dai, int clk_id,
@@ -661,11 +773,25 @@ static int sun4i_i2s_set_sysclk(struct snd_soc_dai *dai, int clk_id,
return 0;
}
@ -1587,7 +1582,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
};
static int sun4i_i2s_dai_probe(struct snd_soc_dai *dai)
@@ -677,6 +807,13 @@ static int sun4i_i2s_dai_probe(struct snd_soc_dai *dai)
@@ -681,6 +807,13 @@ static int sun4i_i2s_dai_probe(struct snd_soc_dai *dai)
return 0;
}
@ -1601,7 +1596,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
static struct snd_soc_dai_driver sun4i_i2s_dai = {
.probe = sun4i_i2s_dai_probe,
.capture = {
@@ -684,14 +821,14 @@ static struct snd_soc_dai_driver sun4i_i2s_dai = {
@@ -688,14 +821,14 @@ static struct snd_soc_dai_driver sun4i_i2s_dai = {
.channels_min = 2,
.channels_max = 2,
.rates = SNDRV_PCM_RATE_8000_192000,
@ -1618,7 +1613,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
},
.ops = &sun4i_i2s_dai_ops,
.symmetric_rates = 1,
@@ -887,6 +1024,7 @@ static const struct sun4i_i2s_quirks sun4i_a10_i2s_quirks = {
@@ -891,6 +1024,7 @@ static const struct sun4i_i2s_quirks sun4i_a10_i2s_quirks = {
.field_fmt_lrclk = REG_FIELD(SUN4I_I2S_FMT0_REG, 7, 7),
.has_slave_select_bit = true,
.field_fmt_mode = REG_FIELD(SUN4I_I2S_FMT0_REG, 0, 1),
@ -1626,7 +1621,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
.field_txchanmap = REG_FIELD(SUN4I_I2S_TX_CHAN_MAP_REG, 0, 31),
.field_rxchanmap = REG_FIELD(SUN4I_I2S_RX_CHAN_MAP_REG, 0, 31),
.field_txchansel = REG_FIELD(SUN4I_I2S_TX_CHAN_SEL_REG, 0, 2),
@@ -904,6 +1042,7 @@ static const struct sun4i_i2s_quirks sun6i_a31_i2s_quirks = {
@@ -908,6 +1042,7 @@ static const struct sun4i_i2s_quirks sun6i_a31_i2s_quirks = {
.field_fmt_lrclk = REG_FIELD(SUN4I_I2S_FMT0_REG, 7, 7),
.has_slave_select_bit = true,
.field_fmt_mode = REG_FIELD(SUN4I_I2S_FMT0_REG, 0, 1),
@ -1634,7 +1629,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
.field_txchanmap = REG_FIELD(SUN4I_I2S_TX_CHAN_MAP_REG, 0, 31),
.field_rxchanmap = REG_FIELD(SUN4I_I2S_RX_CHAN_MAP_REG, 0, 31),
.field_txchansel = REG_FIELD(SUN4I_I2S_TX_CHAN_SEL_REG, 0, 2),
@@ -931,8 +1070,6 @@ static const struct sun4i_i2s_quirks sun8i_h3_i2s_quirks = {
@@ -935,8 +1070,6 @@ static const struct sun4i_i2s_quirks sun8i_h3_i2s_quirks = {
.has_reset = true,
.reg_offset_txdata = SUN8I_I2S_FIFO_TX_REG,
.sun4i_i2s_regmap = &sun8i_i2s_regmap_config,
@ -1643,7 +1638,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
.fmt_offset = 3,
.has_fmt_set_lrck_period = true,
.has_chcfg = true,
@@ -944,6 +1081,7 @@ static const struct sun4i_i2s_quirks sun8i_h3_i2s_quirks = {
@@ -948,6 +1081,7 @@ static const struct sun4i_i2s_quirks sun8i_h3_i2s_quirks = {
.field_fmt_bclk = REG_FIELD(SUN4I_I2S_FMT0_REG, 7, 7),
.field_fmt_lrclk = REG_FIELD(SUN4I_I2S_FMT0_REG, 19, 19),
.field_fmt_mode = REG_FIELD(SUN4I_I2S_CTRL_REG, 4, 5),
@ -1651,7 +1646,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
.field_txchanmap = REG_FIELD(SUN8I_I2S_TX_CHAN_MAP_REG, 0, 31),
.field_rxchanmap = REG_FIELD(SUN8I_I2S_RX_CHAN_MAP_REG, 0, 31),
.field_txchansel = REG_FIELD(SUN8I_I2S_TX_CHAN_SEL_REG, 0, 2),
@@ -961,6 +1099,7 @@ static const struct sun4i_i2s_quirks sun50i_a64_codec_i2s_quirks = {
@@ -965,6 +1099,7 @@ static const struct sun4i_i2s_quirks sun50i_a64_codec_i2s_quirks = {
.field_fmt_bclk = REG_FIELD(SUN4I_I2S_FMT0_REG, 6, 6),
.field_fmt_lrclk = REG_FIELD(SUN4I_I2S_FMT0_REG, 7, 7),
.field_fmt_mode = REG_FIELD(SUN4I_I2S_FMT0_REG, 0, 1),
@ -1659,7 +1654,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
.field_txchanmap = REG_FIELD(SUN4I_I2S_TX_CHAN_MAP_REG, 0, 31),
.field_rxchanmap = REG_FIELD(SUN4I_I2S_RX_CHAN_MAP_REG, 0, 31),
.field_txchansel = REG_FIELD(SUN4I_I2S_TX_CHAN_SEL_REG, 0, 2),
@@ -1006,6 +1145,12 @@ static int sun4i_i2s_init_regmap_fields(struct device *dev,
@@ -1010,6 +1145,12 @@ static int sun4i_i2s_init_regmap_fields(struct device *dev,
if (IS_ERR(i2s->field_fmt_mode))
return PTR_ERR(i2s->field_fmt_mode);
@ -1672,7 +1667,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
i2s->field_txchanmap =
devm_regmap_field_alloc(dev, i2s->regmap,
i2s->variant->field_txchanmap);
@@ -1033,9 +1178,10 @@ static int sun4i_i2s_init_regmap_fields(struct device *dev,
@@ -1037,9 +1178,10 @@ static int sun4i_i2s_init_regmap_fields(struct device *dev,
static int sun4i_i2s_probe(struct platform_device *pdev)
{
struct sun4i_i2s *i2s;
@ -1684,7 +1679,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
i2s = devm_kzalloc(&pdev->dev, sizeof(*i2s), GFP_KERNEL);
if (!i2s)
@@ -1102,6 +1248,28 @@ static int sun4i_i2s_probe(struct platform_device *pdev)
@@ -1106,6 +1248,28 @@ static int sun4i_i2s_probe(struct platform_device *pdev)
i2s->capture_dma_data.addr = res->start + SUN4I_I2S_FIFO_RX_REG;
i2s->capture_dma_data.maxburst = 8;
@ -1713,7 +1708,7 @@ index d5ec1a20499d..2e3fc596ab64 100644
pm_runtime_enable(&pdev->dev);
if (!pm_runtime_enabled(&pdev->dev)) {
ret = sun4i_i2s_runtime_resume(&pdev->dev);
@@ -1111,7 +1279,7 @@ static int sun4i_i2s_probe(struct platform_device *pdev)
@@ -1115,7 +1279,7 @@ static int sun4i_i2s_probe(struct platform_device *pdev)
ret = devm_snd_soc_register_component(&pdev->dev,
&sun4i_i2s_component,
@ -1723,10 +1718,10 @@ index d5ec1a20499d..2e3fc596ab64 100644
dev_err(&pdev->dev, "Could not register DAI\n");
goto err_suspend;
--
2.20.0
2.14.1
From a5a9334b7830f1ef8d3f10221c067aeeaa24b12f Mon Sep 17 00:00:00 2001
From 7ddf707fed9780e0c72b4750a4aab5e68160493e Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 16 Dec 2018 15:00:59 +0100
Subject: [PATCH 14/15] ASoC: sun4i-i2s: multichannel updates fixes
@ -1736,7 +1731,7 @@ Subject: [PATCH 14/15] ASoC: sun4i-i2s: multichannel updates fixes
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c
index 2e3fc596ab64..c0805bd928bf 100644
index 2e3fc59..c0805bd 100644
--- a/sound/soc/sunxi/sun4i-i2s.c
+++ b/sound/soc/sunxi/sun4i-i2s.c
@@ -451,19 +451,19 @@ static int sun4i_i2s_hw_params(struct snd_pcm_substream *substream,
@ -1832,10 +1827,10 @@ index 2e3fc596ab64..c0805bd928bf 100644
ret = clk_prepare_enable(i2s->mod_clk);
if (ret) {
--
2.20.0
2.14.1
From 7319e6b5ff8af1e23a669c235d5e1a3b165d8cd6 Mon Sep 17 00:00:00 2001
From 774d913eec1ba16c494dafefc626fa4fbd98fdac Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Sun, 16 Dec 2018 20:31:25 +0100
Subject: [PATCH 15/15] fixup! drm: dw-hdmi: add dw_hdmi_update_eld() callback
@ -1845,10 +1840,10 @@ Subject: [PATCH 15/15] fixup! drm: dw-hdmi: add dw_hdmi_update_eld() callback
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c
index dc84bfbe7e87..eac79b2e123c 100644
index 47632a3..f5072dc 100644
--- a/sound/soc/codecs/hdmi-codec.c
+++ b/sound/soc/codecs/hdmi-codec.c
@@ -684,7 +684,9 @@ void hdmi_codec_eld_notify(struct device *dev)
@@ -683,7 +683,9 @@ void hdmi_codec_eld_notify(struct device *dev)
struct hdmi_codec_priv *hcp = dev_get_drvdata(dev);
struct snd_ctl_elem_id id;
@ -1860,5 +1855,5 @@ index dc84bfbe7e87..eac79b2e123c 100644
id = hcp->kctl->id;
--
2.20.0
2.14.1