Re: [PATCH v5 04/12] i3c: master: Add support for devices using SETAASA

Akhil R <[email protected]>
Newsgroups org.infradead.lists.linux-i3c,dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-hwmon
Message-ID <[email protected]>
On Wed, 24 Jun 2026 13:57:46 -0400, Frank Li wrote:
...
...
>> [Severity: High]
>> Is it possible that sending the SETAASA broadcast before direct SETDASA
>> assignments breaks initialization for devices that natively support SETAASA
>> but are configured for SETDASA?
>>
>> According to the I3C specification, any device on the bus natively supporting
>> SETAASA will respond to this broadcast by adopting its static address as its
>> dynamic address.
>>
>> After this broadcast, the driver iterates through devices and attempts to
>> assign custom dynamic addresses via direct SETDASA commands:
>>
>> drivers/i3c/master.c:i3c_master_early_i3c_dev_add() {
>>     ...
>> 	ret = i3c_master_setdasa_locked(master, i3cdev->info.static_addr,
>> 					i3cdev->boardinfo->init_dyn_addr);
>>     ...
>> }
>>
>> Since the target device already adopted its dynamic address during the
>> SETAASA broadcast, it is no longer in the unassigned state and will NACK
>> the subsequent SETDASA command.
> 
> Look like correct, but I am not sure if target will NACK SETDASA. Or should
> use SETNEWDA for SETAASA method.

Yes, this looks valid for mixed device buses. I can move
i3c_master_setaasa_locked() after the SETDASA handling and before
i3c_master_do_daa() in the same function, so SETDASA-assigned devices will
ignore the later SETAASA broadcast. Does that sound good to you?

Best Regards,
Akhil

-- 
linux-i3c mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-i3c
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.