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@linux.intel.com
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