All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: alsa-devel@alsa-project.org
Cc: tiwai@suse.de,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
	Daniel Drake <drake@endlessm.com>,
	Hui Wang <hui.wang@canonical.com>,
	Curtis Malainey <cujomalainey@google.com>,
	broonie@kernel.org
Subject: [PATCH 4/6] ALSA: hda: intel-nhlt: handle NHLT VENDOR_DEFINED DMIC geometry
Date: Fri, 19 Jul 2019 12:06:08 -0500	[thread overview]
Message-ID: <20190719170610.17610-5-pierre-louis.bossart@linux.intel.com> (raw)
In-Reply-To: <20190719170610.17610-1-pierre-louis.bossart@linux.intel.com>

The NHLT spec defines a VENDOR_DEFINED geometry, which requires
reading additional information to figure out the number of
microphones.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
 include/sound/intel-nhlt.h | 10 ++++++++--
 sound/hda/intel-nhlt.c     |  6 +++++-
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/include/sound/intel-nhlt.h b/include/sound/intel-nhlt.h
index 857922f03931..f657fd8fc0ad 100644
--- a/include/sound/intel-nhlt.h
+++ b/include/sound/intel-nhlt.h
@@ -96,16 +96,22 @@ struct nhlt_resource_desc  {
 #define MIC_ARRAY_2CH 2
 #define MIC_ARRAY_4CH 4
 
-struct nhlt_tdm_config {
+struct nhlt_device_specific_config {
 	u8 virtual_slot;
 	u8 config_type;
 } __packed;
 
 struct nhlt_dmic_array_config {
-	struct nhlt_tdm_config tdm_config;
+	struct nhlt_device_specific_config device_config;
 	u8 array_type;
 } __packed;
 
+struct nhlt_vendor_dmic_array_config {
+	struct nhlt_dmic_array_config dmic_config;
+	u8 nb_mics;
+	/* TODO add vendor mic config */
+} __packed;
+
 enum {
 	NHLT_MIC_ARRAY_2CH_SMALL = 0xa,
 	NHLT_MIC_ARRAY_2CH_BIG = 0xb,
diff --git a/sound/hda/intel-nhlt.c b/sound/hda/intel-nhlt.c
index 7ba871e470f2..441ee39520a8 100644
--- a/sound/hda/intel-nhlt.c
+++ b/sound/hda/intel-nhlt.c
@@ -58,6 +58,7 @@ int intel_nhlt_get_dmic_geo(struct device *dev, struct nhlt_acpi_table *nhlt)
 {
 	struct nhlt_endpoint *epnt;
 	struct nhlt_dmic_array_config *cfg;
+	struct nhlt_vendor_dmic_array_config *cfg_vendor;
 	unsigned int dmic_geo = 0;
 	u8 j;
 
@@ -81,7 +82,10 @@ int intel_nhlt_get_dmic_geo(struct device *dev, struct nhlt_acpi_table *nhlt)
 			case NHLT_MIC_ARRAY_4CH_2ND_GEOM:
 				dmic_geo = MIC_ARRAY_4CH;
 				break;
-
+			case NHLT_MIC_ARRAY_VENDOR_DEFINED:
+				cfg_vendor = (struct nhlt_vendor_dmic_array_config *)cfg;
+				dmic_geo = cfg_vendor->nb_mics;
+				break;
 			default:
 				dev_warn(dev, "undefined DMIC array_type 0x%0x\n",
 					 cfg->array_type);
-- 
2.20.1

  parent reply	other threads:[~2019-07-19 17:06 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-19 17:06 [PATCH 0/6] ALSA/HDA: abort probe when DMICs are detected Pierre-Louis Bossart
2019-07-19 17:06 ` [PATCH 1/6] ASoC: Intel: Skylake: move NHLT header to common directory Pierre-Louis Bossart
2019-07-19 17:06 ` [PATCH 2/6] ALSA: hda: move parts of NHLT code to new module Pierre-Louis Bossart
2019-07-19 17:06 ` [PATCH 3/6] ALSA: hda: intel-nhlt: remove useless OR operation Pierre-Louis Bossart
2019-07-19 18:09   ` Takashi Iwai
2019-07-19 18:20     ` Pierre-Louis Bossart
2019-07-19 18:30       ` Takashi Iwai
2019-07-19 17:06 ` Pierre-Louis Bossart [this message]
2019-07-19 17:06 ` [PATCH 5/6] ASoC: Intel: Skylake: use common NHLT module Pierre-Louis Bossart
2019-07-19 17:06 ` [PATCH 6/6] ALSA: hda/intel: stop probe if DMICS are detected on Skylake+ platforms Pierre-Louis Bossart
2019-07-19 18:13   ` Takashi Iwai
2019-07-19 18:29     ` Pierre-Louis Bossart
2019-07-19 18:55       ` Takashi Iwai
2019-07-19 20:21         ` Pierre-Louis Bossart

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=20190719170610.17610-5-pierre-louis.bossart@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=cujomalainey@google.com \
    --cc=drake@endlessm.com \
    --cc=hui.wang@canonical.com \
    --cc=tiwai@suse.de \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.