Linux Sound subsystem development
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Qianghua Wang" <qianghua.wang@senarytech.com>
Cc: linux-sound@vger.kernel.org
Subject: Re: [PATCH] ASoC: sn624x: add support for the SN6245 part ID
Date: Tue, 10 Nov 2026 03:33:05 +0000	[thread overview]
Message-ID: <sashiko-outbox-206121@kernel.org> (raw)
In-Reply-To: <20261110032012.711191-1-qianghua.wang@senarytech.com>

Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Medium] ASoC: Intel: soc-acpi: wrong SoundWire version 0x0 for SN6245
  on ARL/LNL/MTL
--

commit b10667bc93275c45d1fc140d10749355be52e7d6
Author: Qianghua Wang <qianghua.wang@senarytech.com>

ASoC: sn624x: add support for the SN6245 part ID

This commit adds the SN6245 part ID (0x6245) to the SN624x SoundWire
driver ID table, the sdw_utils codec info table, and the Intel SoundWire
ACPI match tables for Arrow Lake, Lunar Lake, Meteor Lake, and Panther
Lake.

Link: https://github.com/thesofproject/linux/issues/6012

> diff --git a/sound/soc/codecs/sn624x-sdca-sdw.c b/sound/soc/codecs/sn624x-sdca-sdw.c
> index 65ea90e440008..079a96bce94e7 100644
> --- a/sound/soc/codecs/sn624x-sdca-sdw.c
> +++ b/sound/soc/codecs/sn624x-sdca-sdw.c
> @@ -1769,6 +1769,8 @@ static void sn624x_sdca_sdw_remove(struct sdw_slave *slave)
>  static const struct sdw_device_id sn624x_sdca_id[] = {
>  	SDW_SLAVE_ENTRY_EXT(0x0496, 0x6242, 0x3, 0x1, 0),
>  	SDW_SLAVE_ENTRY_EXT(0x0496, 0x6244, 0x3, 0x1, 0),
> +	/* SN6245 is register-compatible with SN6244 (jack/amp/dmic). */
> +	SDW_SLAVE_ENTRY_EXT(0x0496, 0x6245, 0x3, 0x1, 0),
>  	SDW_SLAVE_ENTRY_EXT(0x0496, 0x6247, 0x3, 0x1, 0),
>  	{ }
>  };
> diff --git a/sound/soc/intel/common/soc-acpi-intel-arl-match.c b/sound/soc/intel/common/soc-acpi-intel-arl-match.c
> index 1d5f6677bfd87..2fe33280baad0 100644
> --- a/sound/soc/intel/common/soc-acpi-intel-arl-match.c
> +++ b/sound/soc/intel/common/soc-acpi-intel-arl-match.c
> @@ -653,9 +653,11 @@ static const struct snd_soc_acpi_link_adr _sym[] = {			\
>  
>  SN624X_ARL_SINGLE_ADR(sn6242_single_adr, 0x0000000496624201ull);
>  SN624X_ARL_SINGLE_ADR(sn6244_single_adr, 0x0000000496624401ull);
> +SN624X_ARL_SINGLE_ADR(sn6245_single_adr, 0x0000000496624501ull);

[ ... ]

> diff --git a/sound/soc/intel/common/soc-acpi-intel-lnl-match.c b/sound/soc/intel/common/soc-acpi-intel-lnl-match.c
> index a9fef394f176f..5e90e17a97969 100644
> --- a/sound/soc/intel/common/soc-acpi-intel-lnl-match.c
> +++ b/sound/soc/intel/common/soc-acpi-intel-lnl-match.c
> @@ -738,9 +738,11 @@ static const struct snd_soc_acpi_link_adr _sym[] = {			\
>  
>  SN624X_LNL_SINGLE_ADR(sn6242_single_adr, 0x0000000496624201ull);
>  SN624X_LNL_SINGLE_ADR(sn6244_single_adr, 0x0000000496624401ull);
> +SN624X_LNL_SINGLE_ADR(sn6245_single_adr, 0x0000000496624501ull);

[ ... ]

> diff --git a/sound/soc/intel/common/soc-acpi-intel-mtl-match.c b/sound/soc/intel/common/soc-acpi-intel-mtl-match.c
> index 704b4e0d205e2..10c38bc4fb9d6 100644
> --- a/sound/soc/intel/common/soc-acpi-intel-mtl-match.c
> +++ b/sound/soc/intel/common/soc-acpi-intel-mtl-match.c
> @@ -1349,9 +1349,11 @@ static const struct snd_soc_acpi_link_adr _sym[] = {			\
>  
>  SN624X_MTL_SINGLE_ADR(sn6242_single_adr, 0x0000000496624201ull);
>  SN624X_MTL_SINGLE_ADR(sn6244_single_adr, 0x0000000496624401ull);
> +SN624X_MTL_SINGLE_ADR(sn6245_single_adr, 0x0000000496624501ull);

[Severity: Medium]
Should sn6245_single_adr on ARL, LNL, and MTL encode SoundWire version
0x3 (0x0000300496624501ull) instead of 0x0 (0x0000000496624501ull)?

sn624x_sdca_id[] registers SN6245 with sdw_version 0x3, which
sdw_get_device_id() requires in bits 47:44 of the ACPI _ADR before binding
the codec driver.  During machine selection, hda_sdw_machine_select() ->
snd_soc_acpi_sdw_link_slaves_found() compares peripheral->id.sdw_version
against SDW_VERSION(adr) without treating 0 as a wildcard:

sound/soc/soc-acpi.c:snd_soc_acpi_sdw_link_slaves_found() {
	...
		version = SDW_VERSION(adr);
	...
			if (peripheral->bus->link_id == link_id &&
			    peripheral->id.part_id == part_id &&
			    peripheral->id.mfg_id == mfg_id &&
			    peripheral->id.sdw_version == version)
				reported_part_count++;
	...
}

Because 0x0 != 0x3, these ARL, LNL, and MTL entries cannot match an active
SN6245 codec, causing ARL and MTL systems to fail machine selection and
fall back to the HDMI-only HDA machine driver.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261110032012.711191-1-qianghua.wang@senarytech.com?part=1

  reply	other threads:[~2026-11-10  3:33 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-10  3:20 [PATCH] ASoC: sn624x: add support for the SN6245 part ID Qianghua Wang
2026-11-10  3:33 ` sashiko-bot [this message]
2026-11-10  3:47 ` [PATCH v2] " Qianghua Wang
2026-11-10 11:30   ` Mark Brown

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=sashiko-outbox-206121@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=qianghua.wang@senarytech.com \
    --cc=sashiko-reviews@lists.linux.dev \
    /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