alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Rakesh Ughreja <rakesh.a.ughreja@intel.com>,
	alsa-devel@alsa-project.org, broonie@kernel.org, tiwai@suse.de,
	liam.r.girdwood@linux.intel.com
Cc: vinod.koul@intel.com, patches.audio@intel.com
Subject: Re: [RFC 02/10] ASoC: Intel: Skylake: Add entry in sst_acpi_mach for HDA codecs
Date: Fri, 1 Dec 2017 12:15:44 -0600	[thread overview]
Message-ID: <ac3f61b8-f9ef-91f3-1e4d-36d88d14d6a0@linux.intel.com> (raw)
In-Reply-To: <1512119648-2700-3-git-send-email-rakesh.a.ughreja@intel.com>

On 12/1/17 3:14 AM, Rakesh Ughreja wrote:
> When no I2S based codecs are detected in the BIOS, check if there are
> any HDA codecs present. If yes, load the corresponding machine driver.

Is this completely correct?
I may be splitting hair but I believe it's possible to have an HDAudio 
codec connected to some pins and an I2S/PDM device on non-conflicting 
pins. The PDM case is very real and isn't related to I2S

You may also want to explain that you *have* to look for non-HDaudio 
stuff first, because otherwise the iDisp codec will be detected but that 
is not sufficient to load the HDaudio machine driver (could be 
iDisp+I2S+PDM)

> 
> TODO:
> support for detecting the presence of HDA codec is not implemented.
> it will be implemented in the next revision.
> 
> Signed-off-by: Rakesh Ughreja <rakesh.a.ughreja@intel.com>
> ---
>   sound/soc/intel/skylake/skl.c | 46 ++++++++++++++++++++++++++++++++++++++++---
>   1 file changed, 43 insertions(+), 3 deletions(-)
> 
> diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
> index 27462c0..568a285 100644
> --- a/sound/soc/intel/skylake/skl.c
> +++ b/sound/soc/intel/skylake/skl.c
> @@ -424,6 +424,26 @@ static int skl_free(struct hdac_bus *bus)
>   	return 0;
>   }
>   
> +static struct snd_soc_acpi_mach *skl_probe_hda_machine(
> +					struct snd_soc_acpi_mach *machines)
> +{
> +
> +	struct snd_soc_acpi_mach *mach;
> +
> +	/*
> +	 * FIXME:
> +	 * First check if there are any HDA codecs present on the system
> +	 * then search the match table.
> +	 * For now this function is not detecting the presence of any
> +	 * HDA codecs.

D'oh. so how was this patchset tested then?

> +	 */
> +	for (mach = machines; mach->id[0]; mach++) {
> +		if (!strcmp(mach->id, "HDA_GEN"))

Do you mean to say this was a temporary hack assuming a modified DSDT to 
force the detection of the codec?

And while I am at it in the hair-splitting department, in theory HDAudio 
can work with multiple codecs (each using its own SDI line), did you 
think of this case and how would it impact the machine driver selection?

> +			return mach;
> +	}
> +	return NULL;
> +}
> +
>   static int skl_machine_device_register(struct skl *skl, void *driver_data)
>   {
>   	struct hdac_bus *bus = skl_to_bus(skl);
> @@ -433,9 +453,14 @@ static int skl_machine_device_register(struct skl *skl, void *driver_data)
>   
>   	mach = snd_soc_acpi_find_machine(mach);
>   	if (mach == NULL) {
> -		dev_err(bus->dev, "No matching machine driver found\n");
> -		return -ENODEV;
> +		dev_dbg(bus->dev, "No matching I2S machine driver found\n");
> +		mach = skl_probe_hda_machine(driver_data);
> +		if (mach == NULL) {
> +			dev_err(bus->dev, "No matching machine driver found\n");
> +			return -ENODEV;
> +		}
>   	}
> +
>   	skl->fw_name = mach->fw_filename;
>   
>   	pdev = platform_device_alloc(mach->drv_name, -1);
> @@ -911,6 +936,14 @@ static struct snd_soc_acpi_mach sst_skl_devdata[] = {
>   		.quirk_data = &skl_codecs,
>   		.pdata = &skl_dmic_data
>   	},
> +	{
> +		.id = "HDA_GEN",
> +		.drv_name = "skl_hda_generic",
> +		.fw_filename = "intel/dsp_fw_release.bin",
> +		.machine_quirk = NULL,
> +		.quirk_data = NULL,
> +		.pdata = NULL
> +	},
>   	{}
>   };
>   
> @@ -973,7 +1006,14 @@ static struct snd_soc_acpi_mach sst_kbl_devdata[] = {
>   		.drv_name = "kbl_rt5663",
>   		.fw_filename = "intel/dsp_fw_kbl.bin",
>   	},
> -
> +	{
> +		.id = "HDA_GEN",
> +		.drv_name = "skl_hda_generic",
> +		.fw_filename = "intel/dsp_fw_kbl.bin",
> +		.machine_quirk = NULL,
> +		.quirk_data = NULL,
> +		.pdata = NULL
> +	},
>   	{}
>   };
>   
> 

  reply	other threads:[~2017-12-01 18:15 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-01  9:13 [RFC 00/10] Enable HDA Codec support on Intel Platforms (Series2) Rakesh Ughreja
2017-12-01  9:13 ` [RFC 01/10] ASoC: Intel: Boards: Machine driver for Intel platforms Rakesh Ughreja
2017-12-01 17:58   ` Pierre-Louis Bossart
2017-12-04 10:55     ` Ughreja, Rakesh A
2017-12-04 14:49       ` Pierre-Louis Bossart
2017-12-04 15:10         ` Ughreja, Rakesh A
2017-12-04 15:37           ` Pierre-Louis Bossart
2017-12-06 16:17             ` Vinod Koul
2017-12-07 12:27               ` Ughreja, Rakesh A
2017-12-07 13:05                 ` Pierre-Louis Bossart
2017-12-07 15:21                   ` Ughreja, Rakesh A
2017-12-07 16:33                     ` Pierre-Louis Bossart
2017-12-01  9:14 ` [RFC 02/10] ASoC: Intel: Skylake: Add entry in sst_acpi_mach for HDA codecs Rakesh Ughreja
2017-12-01 18:15   ` Pierre-Louis Bossart [this message]
2017-12-04 16:27     ` Ughreja, Rakesh A
2017-12-01  9:14 ` [RFC 03/10] ASoC: Intel: Skylake: add HDA BE DAIs Rakesh Ughreja
2017-12-01 18:20   ` Pierre-Louis Bossart
2017-12-04 16:14     ` Ughreja, Rakesh A
2017-12-04 16:40       ` Pierre-Louis Bossart
2017-12-04 16:44         ` Ughreja, Rakesh A
2017-12-04 16:51           ` Pierre-Louis Bossart
2017-12-04 17:01             ` Takashi Iwai
2017-12-01  9:14 ` [RFC 04/10] ASoC: Intel: Skylake: use hda_bus instead of hdac_bus Rakesh Ughreja
2017-12-01 18:27   ` Pierre-Louis Bossart
2017-12-04 16:09     ` Ughreja, Rakesh A
2017-12-01  9:14 ` [RFC 05/10] ALSA: hda - make some of the functions externally visible Rakesh Ughreja
2017-12-01 19:26   ` Pierre-Louis Bossart
2017-12-04 15:43     ` Ughreja, Rakesh A
2017-12-04 16:23       ` Takashi Iwai
2017-12-01  9:14 ` [RFC 06/10] ASoC: hdac_hda: add ASoC based HDA codec driver Rakesh Ughreja
2017-12-01 19:36   ` Pierre-Louis Bossart
2017-12-04 15:35     ` Ughreja, Rakesh A
2017-12-01  9:14 ` [RFC 07/10] ALSA: hda: add new API snd_hda_asoc_codec_new for ASoC codec drivers Rakesh Ughreja
2017-12-01  9:14 ` [RFC 08/10] ASoC: hdac_hda: add DAI, widgets and related ops Rakesh Ughreja
2017-12-01  9:14 ` [RFC 09/10] ASoC: hdac_hda: add runtime PM support Rakesh Ughreja
2017-12-01  9:14 ` [RFC 10/10] ASoC: Intel: Boards: add support for HDA codecs Rakesh Ughreja
2017-12-01 14:56 ` [RFC 00/10] Enable HDA Codec support on Intel Platforms (Series2) Takashi Iwai
2017-12-01 19:45   ` Pierre-Louis Bossart
2017-12-01 20:03     ` Takashi Iwai
2017-12-03 17:20       ` Vinod Koul
2017-12-04  3:15         ` Pierre-Louis Bossart
2017-12-04  3:22           ` Vinod Koul
2017-12-04  3:44             ` Pierre-Louis Bossart
2017-12-04  4:21               ` Vinod Koul
2017-12-04 14:52                 ` Pierre-Louis Bossart
2017-12-04 17:17                   ` Vinod Koul
2017-12-04 10:43   ` Ughreja, Rakesh A
2017-12-06 16:06 ` Vinod Koul

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=ac3f61b8-f9ef-91f3-1e4d-36d88d14d6a0@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=liam.r.girdwood@linux.intel.com \
    --cc=patches.audio@intel.com \
    --cc=rakesh.a.ughreja@intel.com \
    --cc=tiwai@suse.de \
    --cc=vinod.koul@intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).