summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO16
-rw-r--r--0002-ASoC-max98090-reduce-verbosity-on-PLL-unlock.patch30
-rw-r--r--0003-ASoC-Intel-cht_bsw_max98090-Fix-I2S-config-unused-code.patch35
-rw-r--r--0004-ASoC-Intel-cht_bsw_max98090-add-support-for-Baytrail.patch154
-rw-r--r--0005-ASoC-Intel-atom-use-cht_bsw_max98090-for-Baytrail-Chromebooks.patch34
-rw-r--r--0006-ASoC-ts3a227e-add-acpi-table.patch48
-rw-r--r--0007-ASoc-Intel-cht_bsw_max98090_ti-Fix-jack-initialization.patch87
-rw-r--r--0008-ASoC-Intel-cht_bsw_max98090-add-gpio-based-jack-detection.patch112
-rw-r--r--PKGBUILD26
-rw-r--r--config11
10 files changed, 8 insertions, 545 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 4ec61591135a..ca314b500b1a 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -20,30 +20,16 @@ pkgbase = linux-max98090
source = 60-linux.hook
source = 90-linux.hook
source = linux.preset
- source = 0002-ASoC-max98090-reduce-verbosity-on-PLL-unlock.patch
- source = 0003-ASoC-Intel-cht_bsw_max98090-Fix-I2S-config-unused-code.patch
- source = 0004-ASoC-Intel-cht_bsw_max98090-add-support-for-Baytrail.patch
- source = 0005-ASoC-Intel-atom-use-cht_bsw_max98090-for-Baytrail-Chromebooks.patch
- source = 0006-ASoC-ts3a227e-add-acpi-table.patch
- source = 0007-ASoc-Intel-cht_bsw_max98090_ti-Fix-jack-initialization.patch
- source = 0008-ASoC-Intel-cht_bsw_max98090-add-gpio-based-jack-detection.patch
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
sha256sums = f81d59477e90a130857ce18dc02f4fbe5725854911db1e7ba770c7cd350f96a7
sha256sums = SKIP
sha256sums = e9dcf9aad5977289940cd6e3762af02b87a725ba6c1a9f4af86958dc621e3a84
sha256sums = SKIP
- sha256sums = 928db3bec093115130adacc872d636c03ae021825345950fda5a6dddbf73a45d
+ sha256sums = 69b0e9db10155332f13f6715603970d8c858ef25a97a2b0a3e78170c812ba84d
sha256sums = ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21
sha256sums = 75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919
sha256sums = ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65
- sha256sums = f372da78745f49e5709f2739a1166c39298c91d5eb08d6fb362603481d8395b5
- sha256sums = a1766026aa04cd650da0229399121fc547620617699bbc573c250360182504ed
- sha256sums = fef99b00f76a623a78c2871a204e673d8522f54c4623a529d4839389afefc857
- sha256sums = f09c970935ae9788db015e4ddc2949e909bbd1be81b219ccad0c701e3546cbf7
- sha256sums = 2f19a7f5c9e01516da222f69b40599fabd4e5b3c87aeac3ada78012a6d2904b8
- sha256sums = 60fabf5d05e1176361cceff6ec1720935762e27e3d590b1a267fa9eb7739a607
- sha256sums = b2b20af5ea14de866b0af3e2cbe27ed517bf22c5c97b51b3bcc778062d4b7217
pkgname = linux-max98090
pkgdesc = The Archlinux kernel and modules with a fix for baytrail max98090 sound
diff --git a/0002-ASoC-max98090-reduce-verbosity-on-PLL-unlock.patch b/0002-ASoC-max98090-reduce-verbosity-on-PLL-unlock.patch
deleted file mode 100644
index 5ad5c6dd6da9..000000000000
--- a/0002-ASoC-max98090-reduce-verbosity-on-PLL-unlock.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-'commit b8a3ee820f7b ("ASoC: max98090: Add recovery for PLL lock failure")'
-enabled a workaround PLL unlocked issues, but generates annoying
-dev_info "PLL unlocked" messages at a 10ms rate, usually on startup.
-
-Move to dev_info_ratelimited. This issue doesn't seem to impact audio
-functionality. This trace is commented out in the GalliumOS patches,
-it's better to keep it to check on potential quality issues
-
-Tested on Lenovo 100s (Baytrail Chromebook)
-
-Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
----
- sound/soc/codecs/max98090.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c
-index 13bcfb1..f5075d1 100644
---- a/sound/soc/codecs/max98090.c
-+++ b/sound/soc/codecs/max98090.c
-@@ -2115,7 +2115,7 @@ static void max98090_pll_work(struct work_struct *work)
- if (!snd_soc_codec_is_active(codec))
- return;
-
-- dev_info(codec->dev, "PLL unlocked\n");
-+ dev_info_ratelimited(codec->dev, "PLL unlocked\n");
-
- /* Toggle shutdown OFF then ON */
- snd_soc_update_bits(codec, M98090_REG_DEVICE_SHUTDOWN,
---
-2.9.3
diff --git a/0003-ASoC-Intel-cht_bsw_max98090-Fix-I2S-config-unused-code.patch b/0003-ASoC-Intel-cht_bsw_max98090-Fix-I2S-config-unused-code.patch
deleted file mode 100644
index 48c8ed925e19..000000000000
--- a/0003-ASoC-Intel-cht_bsw_max98090-Fix-I2S-config-unused-code.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-This driver probably never worked, the slots are configured
-for 2ch 16 bit and the SSP2 as 24 bits, the cpu_dai configured as
-LEFT_J and the codec_dai as I2S.
-
-Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
----
- sound/soc/intel/boards/cht_bsw_max98090_ti.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/sound/soc/intel/boards/cht_bsw_max98090_ti.c b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
-index 20755ec..455a55a 100644
---- a/sound/soc/intel/boards/cht_bsw_max98090_ti.c
-+++ b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
-@@ -160,7 +160,7 @@ static int cht_codec_fixup(struct snd_soc_pcm_runtime *rtd,
- return ret;
- }
-
-- fmt = SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_NB_NF
-+ fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
- | SND_SOC_DAIFMT_CBS_CFS;
-
- ret = snd_soc_dai_set_fmt(rtd->cpu_dai, fmt);
-@@ -173,8 +173,8 @@ static int cht_codec_fixup(struct snd_soc_pcm_runtime *rtd,
- rate->min = rate->max = 48000;
- channels->min = channels->max = 2;
-
-- /* set SSP2 to 24-bit */
-- params_set_format(params, SNDRV_PCM_FORMAT_S24_LE);
-+ /* set SSP2 to 16-bit */
-+ params_set_format(params, SNDRV_PCM_FORMAT_S16_LE);
- return 0;
- }
-
---
-2.9.3
diff --git a/0004-ASoC-Intel-cht_bsw_max98090-add-support-for-Baytrail.patch b/0004-ASoC-Intel-cht_bsw_max98090-add-support-for-Baytrail.patch
deleted file mode 100644
index 69128757c1f8..000000000000
--- a/0004-ASoC-Intel-cht_bsw_max98090-add-support-for-Baytrail.patch
+++ /dev/null
@@ -1,154 +0,0 @@
-Distributions such as Fedora, Ubuntu and Gallium don't currently
-have a means to support Baytrail Chromebooks and other platforms
-with the same build [1][2] due to incompatible platform drivers.
-
-Add MCLK management to reuse this machine driver for Baytrail
-platforms and solve this coexistence problem at last. UCM files are
-provided at [3] and will eventually be submitted to the new repo.
-
-The legacy byt-max98090 machine driver is still maintained but can
-only be used when the other Atom/DPCM driver is not compiled in, or
-when users don't want to configure extra mixers required by the
-Atom/sst driver.
-
-Tested on Lenovo 100s Baytrail Chromebook w/ Mr. Chromebox BOOT_STUB
-firmware and Acer R11 Cherrytrail Chromebook
-
-[1] https://bugzilla.redhat.com/show_bug.cgi?id=1335196
-[2] http://mailman.alsa-project.org/pipermail/alsa-devel/2016-August/
-111641.html
-[3] https://github.com/plbossart/UCM/tree/master/byt-max98090
-
-Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
----
- sound/soc/intel/boards/cht_bsw_max98090_ti.c | 78 ++++++++++++++++++++++++++++
- 1 file changed, 78 insertions(+)
-
-diff --git a/sound/soc/intel/boards/cht_bsw_max98090_ti.c b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
-index 455a55a..01bacca 100644
---- a/sound/soc/intel/boards/cht_bsw_max98090_ti.c
-+++ b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
-@@ -23,6 +23,7 @@
- #include <linux/platform_device.h>
- #include <linux/slab.h>
- #include <linux/acpi.h>
-+#include <linux/clk.h>
- #include <sound/pcm.h>
- #include <sound/pcm_params.h>
- #include <sound/soc.h>
-@@ -35,15 +36,60 @@
- #define CHT_CODEC_DAI "HiFi"
-
- struct cht_mc_private {
-+ struct clk *mclk;
- struct snd_soc_jack jack;
- bool ts3a227e_present;
- };
-
-+static inline struct snd_soc_dai *cht_get_codec_dai(struct snd_soc_card *card)
-+{
-+ struct snd_soc_pcm_runtime *rtd;
-+
-+ list_for_each_entry(rtd, &card->rtd_list, list) {
-+ if (!strncmp(rtd->codec_dai->name, CHT_CODEC_DAI,
-+ strlen(CHT_CODEC_DAI)))
-+ return rtd->codec_dai;
-+ }
-+ return NULL;
-+}
-+
-+static int platform_clock_control(struct snd_soc_dapm_widget *w,
-+ struct snd_kcontrol *k, int event)
-+{
-+ struct snd_soc_dapm_context *dapm = w->dapm;
-+ struct snd_soc_card *card = dapm->card;
-+ struct snd_soc_dai *codec_dai;
-+ struct cht_mc_private *ctx = snd_soc_card_get_drvdata(card);
-+ int ret;
-+
-+ codec_dai = cht_get_codec_dai(card);
-+ if (!codec_dai) {
-+ dev_err(card->dev, "Codec dai not found; Unable to set platform clock\n");
-+ return -EIO;
-+ }
-+
-+ if (SND_SOC_DAPM_EVENT_ON(event)) {
-+ ret = clk_prepare_enable(ctx->mclk);
-+ if (ret < 0) {
-+ dev_err(card->dev,
-+ "could not configure MCLK state");
-+ return ret;
-+ }
-+ } else {
-+ clk_disable_unprepare(ctx->mclk);
-+ }
-+
-+ return 0;
-+}
-+
- static const struct snd_soc_dapm_widget cht_dapm_widgets[] = {
- SND_SOC_DAPM_HP("Headphone", NULL),
- SND_SOC_DAPM_MIC("Headset Mic", NULL),
- SND_SOC_DAPM_MIC("Int Mic", NULL),
- SND_SOC_DAPM_SPK("Ext Spk", NULL),
-+ SND_SOC_DAPM_SUPPLY("Platform Clock", SND_SOC_NOPM, 0, 0,
-+ platform_clock_control, SND_SOC_DAPM_PRE_PMU |
-+ SND_SOC_DAPM_POST_PMD),
- };
-
- static const struct snd_soc_dapm_route cht_audio_map[] = {
-@@ -60,6 +106,10 @@ static const struct snd_soc_dapm_route cht_audio_map[] = {
- {"codec_in0", NULL, "ssp2 Rx" },
- {"codec_in1", NULL, "ssp2 Rx" },
- {"ssp2 Rx", NULL, "HiFi Capture"},
-+ {"Headphone", NULL, "Platform Clock"},
-+ {"Headset Mic", NULL, "Platform Clock"},
-+ {"Int Mic", NULL, "Platform Clock"},
-+ {"Ext Spk", NULL, "Platform Clock"},
- };
-
- static const struct snd_kcontrol_new cht_mc_controls[] = {
-@@ -141,6 +191,25 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
- if (ctx->ts3a227e_present)
- snd_soc_jack_notifier_register(jack, &cht_jack_nb);
-
-+ /*
-+ * The firmware might enable the clock at
-+ * boot (this information may or may not
-+ * be reflected in the enable clock register).
-+ * To change the rate we must disable the clock
-+ * first to cover these cases. Due to common
-+ * clock framework restrictions that do not allow
-+ * to disable a clock that has not been enabled,
-+ * we need to enable the clock first.
-+ */
-+ ret = clk_prepare_enable(ctx->mclk);
-+ if (!ret)
-+ clk_disable_unprepare(ctx->mclk);
-+
-+ ret = clk_set_rate(ctx->mclk, CHT_PLAT_CLK_3_HZ);
-+
-+ if (ret)
-+ dev_err(runtime->dev, "unable to set MCLK rate\n");
-+
- return ret;
- }
-
-@@ -294,6 +363,15 @@ static int snd_cht_mc_probe(struct platform_device *pdev)
- /* register the soc card */
- snd_soc_card_cht.dev = &pdev->dev;
- snd_soc_card_set_drvdata(&snd_soc_card_cht, drv);
-+
-+ drv->mclk = devm_clk_get(&pdev->dev, "pmc_plt_clk_3");
-+ if (IS_ERR(drv->mclk)) {
-+ dev_err(&pdev->dev,
-+ "Failed to get MCLK from pmc_plt_clk_3: %ld\n",
-+ PTR_ERR(drv->mclk));
-+ return PTR_ERR(drv->mclk);
-+ }
-+
- ret_val = devm_snd_soc_register_card(&pdev->dev, &snd_soc_card_cht);
- if (ret_val) {
- dev_err(&pdev->dev,
---
-2.9.3
diff --git a/0005-ASoC-Intel-atom-use-cht_bsw_max98090-for-Baytrail-Chromebooks.patch b/0005-ASoC-Intel-atom-use-cht_bsw_max98090-for-Baytrail-Chromebooks.patch
deleted file mode 100644
index 0447122036d1..000000000000
--- a/0005-ASoC-Intel-atom-use-cht_bsw_max98090-for-Baytrail-Chromebooks.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Baytrail Chromebooks used to be managed with legacy driver which
-is not compatible with atom/sst drivers. Reuse CHT driver to
-handle max98098 codec and allow distributions to support all
-Atom platforms with the same build.
-
-The legacy byt-max98090 can still be used but in a build for
-Baytrail+max98090 only.
-
-Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
----
- sound/soc/intel/atom/sst/sst_acpi.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/sound/soc/intel/atom/sst/sst_acpi.c b/sound/soc/intel/atom/sst/sst_acpi.c
-index 0e928d5..ff4a517 100644
---- a/sound/soc/intel/atom/sst/sst_acpi.c
-+++ b/sound/soc/intel/atom/sst/sst_acpi.c
-@@ -536,6 +536,14 @@ static struct sst_acpi_mach sst_acpi_bytcr[] = {
- .board = "cht-bsw",
- .pdata = &byt_rvp_platform_data
- },
-+ /* use CHT driver to Baytrail Chromebooks */
-+ {
-+ .id = "193C9890",
-+ .drv_name = "cht-bsw-max98090",
-+ .fw_filename = "intel/fw_sst_0f28.bin",
-+ .board = "cht-bsw",
-+ .pdata = &byt_rvp_platform_data
-+ },
- #if IS_ENABLED(CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH)
- /*
- * This is always last in the table so that it is selected only when
---
-2.9.3
diff --git a/0006-ASoC-ts3a227e-add-acpi-table.patch b/0006-ASoC-ts3a227e-add-acpi-table.patch
deleted file mode 100644
index 90c5190f2e75..000000000000
--- a/0006-ASoC-ts3a227e-add-acpi-table.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From: "Fang, Yang A" <yang.a.fang at intel.com>
-
-This patch adds the acpi match table for the ts3a227e audio accessory
-detection device. This enables headset features like jack plug/unplug
-notifications, mic presence, and button pressed events.
-
-Signed-off-by: Fang, Yang A <yang.a.fang at intel.com>
-Signed-off-by: Thierry Escande <thierry.escande at collabora.com>
-Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
----
- sound/soc/codecs/ts3a227e.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/sound/soc/codecs/ts3a227e.c b/sound/soc/codecs/ts3a227e.c
-index 4356843..738e04b 100644
---- a/sound/soc/codecs/ts3a227e.c
-+++ b/sound/soc/codecs/ts3a227e.c
-@@ -15,6 +15,7 @@
- #include <linux/module.h>
- #include <linux/of_gpio.h>
- #include <linux/regmap.h>
-+#include <linux/acpi.h>
-
- #include <sound/core.h>
- #include <sound/jack.h>
-@@ -374,11 +375,20 @@ static const struct of_device_id ts3a227e_of_match[] = {
- };
- MODULE_DEVICE_TABLE(of, ts3a227e_of_match);
-
-+#ifdef CONFIG_ACPI
-+static struct acpi_device_id ts3a227e_acpi_match[] = {
-+ { "104C227E", 0 },
-+ {},
-+};
-+MODULE_DEVICE_TABLE(acpi, ts3a227e_acpi_match);
-+#endif
-+
- static struct i2c_driver ts3a227e_driver = {
- .driver = {
- .name = "ts3a227e",
- .pm = &ts3a227e_pm,
- .of_match_table = of_match_ptr(ts3a227e_of_match),
-+ .acpi_match_table = ACPI_PTR(ts3a227e_acpi_match),
- },
- .probe = ts3a227e_i2c_probe,
- .id_table = ts3a227e_i2c_ids,
---
-2.9.3
diff --git a/0007-ASoc-Intel-cht_bsw_max98090_ti-Fix-jack-initialization.patch b/0007-ASoc-Intel-cht_bsw_max98090_ti-Fix-jack-initialization.patch
deleted file mode 100644
index 9d5ac83a3aae..000000000000
--- a/0007-ASoc-Intel-cht_bsw_max98090_ti-Fix-jack-initialization.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From: Thierry Escande <thierry.escande at collabora.com>
-
-If the ts3a227e audio accessory detection hardware is present and its
-driver probed, the jack needs to be created before enabling jack
-detection in the ts3a227e driver. With this patch, the jack is
-instantiated in the max98090 headset init function if the ts3a227e is
-present. This fixes a null pointer dereference as the jack detection
-enabling function in the ts3a driver was called before the jack is
-created.
-
-[minor correction to keep error handling on jack creation the same
-as before by Pierre Bossart]
-
-Signed-off-by: Thierry Escande <thierry.escande at collabora.com>
-Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
----
- sound/soc/intel/boards/cht_bsw_max98090_ti.c | 45 +++++++++++++++++++---------
- 1 file changed, 31 insertions(+), 14 deletions(-)
-
-diff --git a/sound/soc/intel/boards/cht_bsw_max98090_ti.c b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
-index 01bacca..a1502c7 100644
---- a/sound/soc/intel/boards/cht_bsw_max98090_ti.c
-+++ b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
-@@ -166,23 +166,19 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
- struct cht_mc_private *ctx = snd_soc_card_get_drvdata(runtime->card);
- struct snd_soc_jack *jack = &ctx->jack;
-
-- /**
-- * TI supports 4 butons headset detection
-- * KEY_MEDIA
-- * KEY_VOICECOMMAND
-- * KEY_VOLUMEUP
-- * KEY_VOLUMEDOWN
-- */
-- if (ctx->ts3a227e_present)
-- jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
-- SND_JACK_BTN_0 | SND_JACK_BTN_1 |
-- SND_JACK_BTN_2 | SND_JACK_BTN_3;
-- else
-- jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE;
-+ if (ctx->ts3a227e_present) {
-+ /*
-+ * The jack has already been created in the
-+ * cht_max98090_headset_init() function.
-+ */
-+ snd_soc_jack_notifier_register(jack, &cht_jack_nb);
-+ return 0;
-+ }
-+
-+ jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE;
-
- ret = snd_soc_card_jack_new(runtime->card, "Headset Jack",
- jack_type, jack, NULL, 0);
--
- if (ret) {
- dev_err(runtime->dev, "Headset Jack creation failed %d\n", ret);
- return ret;
-@@ -257,6 +253,27 @@ static int cht_max98090_headset_init(struct snd_soc_component *component)
- {
- struct snd_soc_card *card = component->card;
- struct cht_mc_private *ctx = snd_soc_card_get_drvdata(card);
-+ struct snd_soc_jack *jack = &ctx->jack;
-+ int jack_type;
-+ int ret;
-+
-+ /*
-+ * TI supports 4 butons headset detection
-+ * KEY_MEDIA
-+ * KEY_VOICECOMMAND
-+ * KEY_VOLUMEUP
-+ * KEY_VOLUMEDOWN
-+ */
-+ jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE |
-+ SND_JACK_BTN_0 | SND_JACK_BTN_1 |
-+ SND_JACK_BTN_2 | SND_JACK_BTN_3;
-+
-+ ret = snd_soc_card_jack_new(card, "Headset Jack", jack_type,
-+ jack, NULL, 0);
-+ if (ret) {
-+ dev_err(card->dev, "Headset Jack creation failed %d\n", ret);
-+ return ret;
-+ }
-
- return ts3a227e_enable_jack_detect(component, &ctx->jack);
- }
---
-2.9.3
diff --git a/0008-ASoC-Intel-cht_bsw_max98090-add-gpio-based-jack-detection.patch b/0008-ASoC-Intel-cht_bsw_max98090-add-gpio-based-jack-detection.patch
deleted file mode 100644
index 93c4a0b8b030..000000000000
--- a/0008-ASoC-Intel-cht_bsw_max98090-add-gpio-based-jack-detection.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-Jacks are created but only enabled when the external TI chip is
-present, this probably never worked as well. Forklift the gpio-based
-code from the legacy byt-max98090 driver, with however a less strict
-error check. It's fine to let users enjoy their device even if
-jack detection doesn't work - it almost never does without quirks...
-
-Tested on Lenovo100s
-
-CC: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
-Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
----
- sound/soc/intel/boards/cht_bsw_max98090_ti.c | 56 +++++++++++++++++++++++++++-
- 1 file changed, 55 insertions(+), 1 deletion(-)
-
-diff --git a/sound/soc/intel/boards/cht_bsw_max98090_ti.c b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
-index a1502c7..74c047a 100644
---- a/sound/soc/intel/boards/cht_bsw_max98090_ti.c
-+++ b/sound/soc/intel/boards/cht_bsw_max98090_ti.c
-@@ -159,6 +159,40 @@ static struct notifier_block cht_jack_nb = {
- .notifier_call = cht_ti_jack_event,
- };
-
-+static struct snd_soc_jack_pin hs_jack_pins[] = {
-+ {
-+ .pin = "Headphone",
-+ .mask = SND_JACK_HEADPHONE,
-+ },
-+ {
-+ .pin = "Headset Mic",
-+ .mask = SND_JACK_MICROPHONE,
-+ },
-+};
-+
-+static struct snd_soc_jack_gpio hs_jack_gpios[] = {
-+ {
-+ .name = "hp",
-+ .report = SND_JACK_HEADPHONE | SND_JACK_LINEOUT,
-+ .debounce_time = 200,
-+ },
-+ {
-+ .name = "mic",
-+ .invert = 1,
-+ .report = SND_JACK_MICROPHONE,
-+ .debounce_time = 200,
-+ },
-+};
-+
-+static const struct acpi_gpio_params hp_gpios = { 0, 0, false };
-+static const struct acpi_gpio_params mic_gpios = { 1, 0, false };
-+
-+static const struct acpi_gpio_mapping acpi_max98090_gpios[] = {
-+ { "hp-gpios", &hp_gpios, 1 },
-+ { "mic-gpios", &mic_gpios, 1 },
-+ {},
-+};
-+
- static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
- {
- int ret;
-@@ -178,15 +212,29 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
- jack_type = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE;
-
- ret = snd_soc_card_jack_new(runtime->card, "Headset Jack",
-- jack_type, jack, NULL, 0);
-+ jack_type, jack,
-+ hs_jack_pins, ARRAY_SIZE(hs_jack_pins));
- if (ret) {
- dev_err(runtime->dev, "Headset Jack creation failed %d\n", ret);
- return ret;
- }
-
-+
- if (ctx->ts3a227e_present)
- snd_soc_jack_notifier_register(jack, &cht_jack_nb);
-
-+ ret = snd_soc_jack_add_gpiods(runtime->card->dev->parent, jack,
-+ ARRAY_SIZE(hs_jack_gpios),
-+ hs_jack_gpios);
-+ if (ret) {
-+ /*
-+ * flag error but don't bail if jack detect is broken
-+ * due to platform issues or bad BIOS/configuration
-+ */
-+ dev_err(runtime->dev,
-+ "jack detection gpios not added, error %d\n", ret);
-+ }
-+
- /*
- * The firmware might enable the clock at
- * boot (this information may or may not
-@@ -363,6 +411,7 @@ static struct snd_soc_card snd_soc_card_cht = {
-
- static int snd_cht_mc_probe(struct platform_device *pdev)
- {
-+ struct device *dev = &pdev->dev;
- int ret_val = 0;
- struct cht_mc_private *drv;
-
-@@ -375,6 +424,11 @@ static int snd_cht_mc_probe(struct platform_device *pdev)
- /* no need probe TI jack detection chip */
- snd_soc_card_cht.aux_dev = NULL;
- snd_soc_card_cht.num_aux_devs = 0;
-+
-+ ret_val = devm_acpi_dev_add_driver_gpios(dev->parent,
-+ acpi_max98090_gpios);
-+ if (ret_val)
-+ dev_dbg(dev, "Unable to add GPIO mapping table\n");
- }
-
- /* register the soc card */
---
-2.9.3
diff --git a/PKGBUILD b/PKGBUILD
index 383b33a0afc2..7dded5c20d97 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -10,15 +10,6 @@ url="https://www.kernel.org/"
license=('GPL2')
makedepends=('xmlto' 'kmod' 'inetutils' 'bc' 'libelf' 'patch' 'make')
options=('!strip')
-_patches=(
- '0002-ASoC-max98090-reduce-verbosity-on-PLL-unlock.patch'
- '0003-ASoC-Intel-cht_bsw_max98090-Fix-I2S-config-unused-code.patch'
- '0004-ASoC-Intel-cht_bsw_max98090-add-support-for-Baytrail.patch'
- '0005-ASoC-Intel-atom-use-cht_bsw_max98090-for-Baytrail-Chromebooks.patch'
- '0006-ASoC-ts3a227e-add-acpi-table.patch'
- '0007-ASoc-Intel-cht_bsw_max98090_ti-Fix-jack-initialization.patch'
- '0008-ASoC-Intel-cht_bsw_max98090-add-gpio-based-jack-detection.patch'
-)
source=(
"https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz"
"https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.sign"
@@ -28,7 +19,6 @@ source=(
'60-linux.hook' # pacman hook for depmod
'90-linux.hook' # pacman hook for initramfs regeneration
'linux.preset' # standard config files for mkinitcpio ramdisk
- "${_patches[@]}"
)
validpgpkeys=(
@@ -39,17 +29,10 @@ sha256sums=('f81d59477e90a130857ce18dc02f4fbe5725854911db1e7ba770c7cd350f96a7'
'SKIP'
'e9dcf9aad5977289940cd6e3762af02b87a725ba6c1a9f4af86958dc621e3a84'
'SKIP'
- '928db3bec093115130adacc872d636c03ae021825345950fda5a6dddbf73a45d'
+ '69b0e9db10155332f13f6715603970d8c858ef25a97a2b0a3e78170c812ba84d'
'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21'
'75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919'
- 'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65'
- 'f372da78745f49e5709f2739a1166c39298c91d5eb08d6fb362603481d8395b5'
- 'a1766026aa04cd650da0229399121fc547620617699bbc573c250360182504ed'
- 'fef99b00f76a623a78c2871a204e673d8522f54c4623a529d4839389afefc857'
- 'f09c970935ae9788db015e4ddc2949e909bbd1be81b219ccad0c701e3546cbf7'
- '2f19a7f5c9e01516da222f69b40599fabd4e5b3c87aeac3ada78012a6d2904b8'
- '60fabf5d05e1176361cceff6ec1720935762e27e3d590b1a267fa9eb7739a607'
- 'b2b20af5ea14de866b0af3e2cbe27ed517bf22c5c97b51b3bcc778062d4b7217')
+ 'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65')
_kernelname=${pkgbase#linux}
@@ -66,11 +49,6 @@ prepare() {
# https://bugs.archlinux.org/task/56207
-for file in "${_patches[@]}"; do
- echo "Applying patch $(basename $file)..."
- patch -Np1 <"$srcdir/$(basename ${file})"
- done
-
cp -Tf ../config .config
if [ "${_kernelname}" != "" ]; then
diff --git a/config b/config
index 2592220c94d6..b76032981f03 100644
--- a/config
+++ b/config
@@ -4173,7 +4173,6 @@ CONFIG_SND_PCM_IEC958=y
CONFIG_SND_HWDEP=m
CONFIG_SND_SEQ_DEVICE=m
CONFIG_SND_RAWMIDI=m
-CONFIG_SND_COMPRESS_OFFLOAD=m
CONFIG_SND_JACK=y
CONFIG_SND_JACK_INPUT_DEV=y
# CONFIG_SND_OSSEMUL is not set
@@ -4322,7 +4321,6 @@ CONFIG_SND_USB_TONEPORT=m
CONFIG_SND_USB_VARIAX=m
CONFIG_SND_SOC=m
CONFIG_SND_SOC_AC97_BUS=y
-CONFIG_SND_SOC_COMPRESS=y
# CONFIG_SND_SOC_AMD_ACP is not set
# CONFIG_SND_ATMEL_SOC is not set
# CONFIG_SND_DESIGNWARE_I2S is not set
@@ -4342,22 +4340,23 @@ CONFIG_SND_SOC_COMPRESS=y
# CONFIG_SND_SOC_IMX_AUDMUX is not set
# CONFIG_SND_I2S_HI6210_I2S is not set
# CONFIG_SND_SOC_IMG is not set
-CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
-CONFIG_SND_SST_IPC=m
-CONFIG_SND_SST_IPC_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
+CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST_MATCH=m
+CONFIG_SND_SOC_INTEL_BAYTRAIL=m
# CONFIG_SND_SOC_INTEL_HASWELL_MACH is not set
# CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH is not set
# CONFIG_SND_SOC_INTEL_BXT_RT298_MACH is not set
+# CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH is not set
+CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
# CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH is not set
# CONFIG_SND_SOC_INTEL_BROADWELL_MACH is not set
# CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH is not set
# CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH is not set
# CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH is not set
# CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH is not set
-CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
+# CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH is not set
# CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH is not set
# CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH is not set
# CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH is not set