[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <59da8a18-752a-bc8c-c8c5-19d75d8c87fb@linux.intel.com>
Date: Thu, 15 Jun 2023 18:23:46 +0200
From: Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>
To: "Mukunda,Vijendar" <vijendar.mukunda@....com>, broonie@...nel.org
Cc: alsa-devel@...a-project.org, Basavaraj.Hiregoudar@....com,
Sunil-kumar.Dommati@....com, Mastan.Katragadda@....com,
Arungopal.kondaveeti@....com, mario.limonciello@....com,
Liam Girdwood <lgirdwood@...il.com>,
Jaroslav Kysela <perex@...ex.cz>,
Takashi Iwai <tiwai@...e.com>,
Syed Saba Kareem <Syed.SabaKareem@....com>,
open list <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH V4 1/9] ASoC: amd: ps: create platform devices based on
acp config
On 6/13/23 07:42, Mukunda,Vijendar wrote:
> On 12/06/23 23:39, Pierre-Louis Bossart wrote:
>> =
>>> +static int sdw_amd_scan_controller(struct device *dev)
>>> +{
>>> + struct acp63_dev_data *acp_data;
>>> + struct fwnode_handle *link;
>>> + char name[32];
>>> + u32 sdw_manager_bitmap;
>>> + u8 count = 0;
>>> + u32 acp_sdw_power_mode = 0;
>>> + int index;
>>> + int ret;
>>> +
>>> + acp_data = dev_get_drvdata(dev);
>>> + /*
>>> + * Current implementation is based on MIPI DisCo 2.0 spec.
>>> + * Found controller, find links supported.
>>> + */
>>> + ret = fwnode_property_read_u32_array((acp_data->sdw_fw_node), "mipi-sdw-manager-list",
>>> + &sdw_manager_bitmap, 1);
>>> +
>>> + if (ret) {
>>> + dev_err(dev, "Failed to read mipi-sdw-manager-list: %d\n", ret);
>>> + return -EINVAL;
>>> + }
>>> + count = hweight32(sdw_manager_bitmap);
>>> + /* Check count is within bounds */
>>> + if (count > AMD_SDW_MAX_MANAGERS) {
>>> + dev_err(dev, "Manager count %d exceeds max %d\n", count, AMD_SDW_MAX_MANAGERS);
>>> + return -EINVAL;
>>> + }
>> nit-pick: the count is not enough, you should also check that only bits
>> 0 and 1 are set in mipi-sdw-manager-list...
> As per our design for PS platform,
> we will go with two bit map values as 0x03 and 0x01.
> 1. As per ACP PIN CONFIG, we support Single SDW Manager instance
> which refers to SW0 manager instance. For this, we need to use bitmap
> value as 0x01.
> 2. Other bit map value - 0x03 will be used to populate two SoundWire
> manager instances.
> We have extra sub property "amd-sdw-enable" to invoke the init sequence
> for SoundWire manager.
>
> As we are supporting two bit map value combinations here, it's not required
> to check bit set value. count value is enough to know manager instance count.
> It doesn't break anything.
Not a blocker but you underestimate the creativity of UEFI BIOS writers...
Powered by blists - more mailing lists