Re: [PATCH 1/3] soundwire: remove bitfield for unique_id, use u8

From: Vinod Koul
Date: Thu Oct 24 2019 - 07:30:02 EST


On 22-10-19, 18:48, Pierre-Louis Bossart wrote:
> There is no good reason why the unique_id needs to be stored as 4
> bits. The code will work without changes with a u8 since all values

Well this was due to the fact the slave id defined by MIPI has unique id
as 4 bits. In fact if you look closely there are other fields in
sdw_slave_id doing this

> are already filtered while parsing the ACPI tables and Slave devID
> registers.
>
> Use u8 representation. This will allow us to encode a
> "IGNORE_UNIQUE_ID" value to account for firmware/BIOS creativity.

Why are we shoving firmware/BIOS issues into the core?

>
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
> ---
> include/linux/soundwire/sdw.h | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/soundwire/sdw.h b/include/linux/soundwire/sdw.h
> index 688b40e65c89..28745b9ba279 100644
> --- a/include/linux/soundwire/sdw.h
> +++ b/include/linux/soundwire/sdw.h
> @@ -403,6 +403,8 @@ int sdw_slave_read_prop(struct sdw_slave *slave);
> * SDW Slave Structures and APIs
> */
>
> +#define SDW_IGNORED_UNIQUE_ID 0xFF
> +
> /**
> * struct sdw_slave_id - Slave ID
> * @mfg_id: MIPI Manufacturer ID
> @@ -418,7 +420,7 @@ struct sdw_slave_id {
> __u16 mfg_id;
> __u16 part_id;
> __u8 class_id;
> - __u8 unique_id:4;
> + __u8 unique_id;
> __u8 sdw_version:4;
> };
>
> --
> 2.20.1

--
~Vinod