On 09/09/2020 15:39, Pierre-Louis Bossart wrote:
Currently slave devices are only added either from device tree or acpi
entries. However lets say, there is wrong or no entry of a slave device
in DT that is enumerated, then there is no way for user to know all
the enumerated devices on the bus.
Sorry Srinivas, I don't understand your point.
The sysfs entries will include all devices that are described in
platform firmware (be it DT or ACPI).
yes that is true, but it will not include all the enumerated devices
on the bus!
In my case on a new board I was trying to figure out what devices are
on the bus even before even adding any device tree entries!
We've seen this before but dynamic debug provides all the information
you need. see e.g. the logs from
https://sof-ci.01.org/linuxpr/PR2425/build4447/devicetest/
jf-cml-rvp-sdw-1 kernel: [ 289.751974] soundwire sdw-master-0: Slave
attached, programming device number
jf-cml-rvp-sdw-1 kernel: [ 289.752121] soundwire sdw-master-0: SDW
Slave Addr: 10025d070000 <<< HERE
Yes, I have noticed this too! This will be printed for every call to
sdw_extract_slave_id()!
...
Now I get your point but
a) you already have a dynamic debug trace to list all devices
b) adding 'undeclared' devices would make things quite murky and is only
half of the solution. We already struggle because we already have
'ghost' devices in sysfs that are not physically present, and no way to
differentiate between the two. If we did add those entries, then we'd
need two new sysfs attributes such as
'declared' and 'enumerated'.
I totally agree with you on dealing with the undeclared devices, which
is unnecessary mess!
May be we could make the enumerated devices discovery bit more verbose!
--srini