ALT Linux kernel packages development
 help / color / mirror / Atom feed
From: nickel@altlinux.org
To: devel-kernel@lists.altlinux.org
Cc: Vasiliy Kovalev <kovalev@altlinux.org>
Subject: [d-kernel] [PATCH 2/3] ASoC: Intel: sof_es8336: modify driver source code for v5.15.x
Date: Tue, 20 Dec 2022 11:10:50 +0300
Message-ID: <20221220081051.299971-3-nickel@altlinux.org> (raw)
In-Reply-To: <20221220081051.299971-1-nickel@altlinux.org>

From: Vasiliy Kovalev <kovalev@altlinux.org>

- readd dmi match info for following laptops:
  Aquarius Cmp NS685U R11
  CHUWI Innovation And Technology Hi10 X
  Kraftway ACCORD S15T
- add dmi match info for laptop HUAWEI D15 Matebook
- in the updated version of the driver, the default GPIO speakers
  configuration card has been changed. Now there is no need to apply
  quirks for some laptop models:
  3Logic Group Graviton N15i
  3Logic Group Graviton N15i-K2
  3Logic Group Lime 15.6
  DEPO Computers DPC156
  ICL Si16
- disable I2S link information from NHLT
- rename function snd_soc_card_jack_new_pins -> snd_soc_card_jack_new:
  there is no need to add the source code for the new function, so we
  will return the link to the existing one
- report the number of DMic's to the UCM:
  when applying the quirk about the presence of digital microphones in
  the system, you should also provide their number to the UCM manager
  for their correct configuration

Signed-off-by: Vasiliy Kovalev <kovalev@altlinux.org>
Signed-off-by: Nikolai Kostrigin <nickel@altlinux.org>
---
 sound/soc/intel/boards/sof_es8336.c | 78 +++++++++++++++++++++--------
 1 file changed, 57 insertions(+), 21 deletions(-)

diff --git a/sound/soc/intel/boards/sof_es8336.c b/sound/soc/intel/boards/sof_es8336.c
index 606cc3242a60f..4499f6b191d95 100644
--- a/sound/soc/intel/boards/sof_es8336.c
+++ b/sound/soc/intel/boards/sof_es8336.c
@@ -261,7 +261,7 @@ static int sof_es8316_init(struct snd_soc_pcm_runtime *runtime)
 	if (ret)
 		return ret;
 
-	ret = snd_soc_card_jack_new_pins(card, "Headset",
+	ret = snd_soc_card_jack_new(card, "Headset",
 					 SND_JACK_HEADSET | SND_JACK_BTN_0,
 					 &priv->jack, sof_es8316_jack_pins,
 					 ARRAY_SIZE(sof_es8316_jack_pins));
@@ -303,6 +303,23 @@ static int sof_es8336_quirk_cb(const struct dmi_system_id *id)
  * if the topology file is modified as well.
  */
 static const struct dmi_system_id sof_es8336_quirk_table[] = {
+	{
+		.callback = sof_es8336_quirk_cb,
+		.matches = {
+			/* market name: Aquarius Cmp NS685U R11 */
+			DMI_MATCH(DMI_SYS_VENDOR, "Aquarius"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "NS685U R11"),
+		},
+		.driver_data = (void *)(SOF_ES8336_JD_INVERTED)
+	},
+	{
+		.callback = sof_es8336_quirk_cb,
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "CHUWI Innovation And Technology"),
+			DMI_MATCH(DMI_BOARD_NAME, "Hi10 X"),
+		},
+		.driver_data = (void *)SOF_ES8336_SSP_CODEC(2)
+	},
 	{
 		.callback = sof_es8336_quirk_cb,
 		.matches = {
@@ -311,6 +328,14 @@ static const struct dmi_system_id sof_es8336_quirk_table[] = {
 		},
 		.driver_data = (void *)(SOF_ES8336_SPEAKERS_EN_GPIO1_QUIRK)
 	},
+	{
+		.callback = sof_es8336_quirk_cb,
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "HUAWEI"),
+			DMI_MATCH(DMI_BOARD_NAME, "BOD-WXX9-PCB-B4"),
+		},
+		.driver_data = (void *)(SOF_ES8336_ENABLE_DMIC)
+	},
 	{
 		.callback = sof_es8336_quirk_cb,
 		.matches = {
@@ -320,6 +345,15 @@ static const struct dmi_system_id sof_es8336_quirk_table[] = {
 		.driver_data = (void *)(SOF_ES8336_HEADPHONE_GPIO |
 					SOC_ES8336_HEADSET_MIC1)
 	},
+	{
+		.callback = sof_es8336_quirk_cb,
+		.matches = {
+			/* market name: Kraftway ACCORD S15T */
+			DMI_MATCH(DMI_SYS_VENDOR, "Kraftway"),
+			DMI_MATCH(DMI_BOARD_NAME, "S15T"),
+		},
+		.driver_data = (void *)(SOF_ES8336_JD_INVERTED)
+	},
 	{}
 };
 
@@ -597,25 +631,25 @@ static int sof_es8336_probe(struct platform_device *pdev)
 	 * Because more than one SSP will be enabled for HDMI capture hence wrong codec
 	 * SSP will be set.
 	 */
-	if (mach->tplg_quirk_mask & SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER) {
-		if (!mach->mach_params.i2s_link_mask) {
-			dev_warn(dev, "No I2S link information provided, using SSP0. This may need to be modified with the quirk module parameter\n");
-		} else {
-			/*
-			 * Set configuration based on platform NHLT.
-			 * In this machine driver, we can only support one SSP for the
-			 * ES8336 link.
-			 * In some cases multiple SSPs can be reported by NHLT, starting MSB-first
-			 * seems to pick the right connection.
-			 */
-			unsigned long ssp;
-
-			/* fls returns 1-based results, SSPs indices are 0-based */
-			ssp = fls(mach->mach_params.i2s_link_mask) - 1;
-
-			quirk |= ssp;
-		}
-	}
+//	if (mach->tplg_quirk_mask & SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER) {
+//		if (!mach->mach_params.i2s_link_mask) {
+//			dev_warn(dev, "No I2S link information provided, using SSP0. This may need to be modified with the quirk module parameter\n");
+//		} else {
+//			/*
+//			 * Set configuration based on platform NHLT.
+//			 * In this machine driver, we can only support one SSP for the
+//			 * ES8336 link.
+//			 * In some cases multiple SSPs can be reported by NHLT, starting MSB-first
+//			 * seems to pick the right connection.
+//			 */
+//			unsigned long ssp;
+//
+//			/* fls returns 1-based results, SSPs indices are 0-based */
+//			ssp = fls(mach->mach_params.i2s_link_mask) - 1;
+//
+//			quirk |= ssp;
+//		}
+//	}
 
 	if (mach->mach_params.dmic_num)
 		quirk |= SOF_ES8336_ENABLE_DMIC;
@@ -627,8 +661,10 @@ static int sof_es8336_probe(struct platform_device *pdev)
 	}
 	log_quirks(dev);
 
-	if (quirk & SOF_ES8336_ENABLE_DMIC)
+	if (quirk & SOF_ES8336_ENABLE_DMIC){
 		dmic_be_num = 2;
+		mach->mach_params.dmic_num = 2;
+	}
 
 	/* compute number of dai links */
 	sof_es8336_card.num_links = 1 + dmic_be_num + hdmi_num;
-- 
2.33.5



  parent reply	other threads:[~2022-12-20  8:10 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-20  8:10 [d-kernel] [PATCH 0/3] Backport improved ES8336 codec driver from 6.0 to 5.15 nickel
2022-12-20  8:10 ` [d-kernel] [PATCH 1/3] ASoC: Intel: sof_es8336: copy driver source code from kernel v6.0.9 nickel
2022-12-20  8:10 ` nickel [this message]
2022-12-20  8:10 ` [d-kernel] [PATCH 3/3] ASoC: Intel: sof_es8336: backport Kconfig settings " nickel
2022-12-20 15:14 ` [d-kernel] [PATCH 0/3] Backport improved ES8336 codec driver from 6.0 to 5.15 Vitaly Chikunov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221220081051.299971-3-nickel@altlinux.org \
    --to=nickel@altlinux.org \
    --cc=devel-kernel@lists.altlinux.org \
    --cc=kovalev@altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux kernel packages development

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-kernel/0 devel-kernel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel-kernel devel-kernel/ http://lore.altlinux.org/devel-kernel \
		devel-kernel@altlinux.org devel-kernel@altlinux.ru devel-kernel@altlinux.com
	public-inbox-index devel-kernel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git