From: Cezary Rojewski <cezary.rojewski@intel.com>
To: broonie@kernel.org
Cc: tiwai@suse.com, perex@perex.cz,
amadeuszx.slawinski@linux.intel.com, linux-sound@vger.kernel.org,
hdegoede@redhat.com, Cezary Rojewski <cezary.rojewski@intel.com>
Subject: [PATCH 6/8] ASoC: Intel: avs: Assign unique ID to platform devices
Date: Fri, 4 Apr 2025 11:03:35 +0200 [thread overview]
Message-ID: <20250404090337.3564117-7-cezary.rojewski@intel.com> (raw)
In-Reply-To: <20250404090337.3564117-1-cezary.rojewski@intel.com>
From: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
When creating machine boards there are two types, per endpoint or
compound board. For compound board we can just use I2S mask as its ID,
however, per endpoint can also be separated per TDM, which causes
problem because two boards would have same I2S mask. Shift it and add
the value of TDM to generate a unique ID.
Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
---
sound/soc/intel/avs/board_selection.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/sound/soc/intel/avs/board_selection.c b/sound/soc/intel/avs/board_selection.c
index 30444b67dd91..286d94df5f46 100644
--- a/sound/soc/intel/avs/board_selection.c
+++ b/sound/soc/intel/avs/board_selection.c
@@ -448,6 +448,7 @@ static int avs_register_i2s_board(struct avs_dev *adev, struct snd_soc_acpi_mach
int num_ssps;
char *name;
int ret;
+ int uid;
num_ssps = adev->hw_cfg.i2s_caps.ctrl_count;
if (fls(mach->mach_params.i2s_link_mask) > num_ssps) {
@@ -457,8 +458,11 @@ static int avs_register_i2s_board(struct avs_dev *adev, struct snd_soc_acpi_mach
return -ENODEV;
}
- name = devm_kasprintf(adev->dev, GFP_KERNEL, "%s.%d-platform", mach->drv_name,
- mach->mach_params.i2s_link_mask);
+ uid = mach->mach_params.i2s_link_mask;
+ if (avs_mach_singular_ssp(mach))
+ uid = (uid << AVS_CHANNELS_MAX) + avs_mach_ssp_tdm(mach, avs_mach_ssp_port(mach));
+
+ name = devm_kasprintf(adev->dev, GFP_KERNEL, "%s.%d-platform", mach->drv_name, uid);
if (!name)
return -ENOMEM;
@@ -468,7 +472,7 @@ static int avs_register_i2s_board(struct avs_dev *adev, struct snd_soc_acpi_mach
mach->mach_params.platform = name;
- board = platform_device_register_data(NULL, mach->drv_name, mach->mach_params.i2s_link_mask,
+ board = platform_device_register_data(NULL, mach->drv_name, uid,
(const void *)mach, sizeof(*mach));
if (IS_ERR(board)) {
dev_err(adev->dev, "ssp board register failed\n");
--
2.25.1
next prev parent reply other threads:[~2025-04-04 8:46 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-04 9:03 [PATCH 0/8] ASoC: Intel: avs: 16 channels support Cezary Rojewski
2025-04-04 9:03 ` [PATCH 1/8] lib/string_helpers: Introduce parse_int_array() Cezary Rojewski
2025-04-04 11:06 ` Andy Shevchenko
2025-04-04 11:06 ` Andy Shevchenko
2025-04-04 11:25 ` Cezary Rojewski
2025-04-04 9:03 ` [PATCH 2/8] ALSA: hda: Allow for 16 channels configuration Cezary Rojewski
2025-04-04 14:27 ` Mark Brown
2025-04-04 9:03 ` [PATCH 3/8] ASoC: Intel: avs: Rename AVS_CHANNELS_MAX define Cezary Rojewski
2025-04-04 9:03 ` [PATCH 4/8] ASoC: Intel: avs: Allow for 16 channels configuration Cezary Rojewski
2025-04-04 9:03 ` [PATCH 5/8] ASoC: Intel: avs: Allow to specify custom configurations with i2s_test Cezary Rojewski
2025-04-04 9:03 ` Cezary Rojewski [this message]
2025-04-04 9:03 ` [PATCH 7/8] ASoC: Intel: avs: Iterate over correct number of TDMs Cezary Rojewski
2025-04-04 9:03 ` [PATCH 8/8] ASoC: Intel: avs: Support 16 TDMs in dynamic assignment Cezary Rojewski
2025-04-08 12:49 ` [PATCH 0/8] ASoC: Intel: avs: 16 channels support 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=20250404090337.3564117-7-cezary.rojewski@intel.com \
--to=cezary.rojewski@intel.com \
--cc=amadeuszx.slawinski@linux.intel.com \
--cc=broonie@kernel.org \
--cc=hdegoede@redhat.com \
--cc=linux-sound@vger.kernel.org \
--cc=perex@perex.cz \
--cc=tiwai@suse.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