Re: [PATCH] soundwire: debugfs: use controller id instead of link_id

From: Pierre-Louis Bossart
Date: Mon Feb 01 2021 - 11:12:17 EST




On 2/1/21 4:14 AM, Vinod Koul wrote:
On 21-01-21, 17:23, Srinivas Kandagatla wrote:


On 21/01/2021 15:12, Pierre-Louis Bossart wrote:


On 1/21/21 6:03 AM, Srinivas Kandagatla wrote:


On 19/01/2021 19:09, Pierre-Louis Bossart wrote:

currently we have
/sys/kernel/debug/soundwire/master-*

Are you suggesting that we have something like this:

/sys/kernel/debug/soundwire/xyz-controller/master-<LINK-ID> ??

Yes this is what I was thinking about.

Vinod/Pierre,

One Question here,

Why is link_id part of "struct sdw_bus", should it not be part of
"struct sdw_master_device " ?

Given that "There is one Link per each Master"

it's true that link == master == bus at the concept level.

but we have an existing code base with different structures and we can't
break too many things at once.

In the existing flow, the 'bus' is created and setup first, the
sdw_bus_master_add() routine takes a 'bus' argument, and the link_id is
already set. This routine only creates a device and in the rest of the
code we keep using the 'bus' pointer, so there's no real short-term
scope for moving the information into the 'sdw_master_device' structure
- that would be a lot of surgery when nothing is really broken.

I totally agree!

If I understand it correctly in Intel case there will be only one Link ID
per bus.

Yes IIUC there would be one link id per bus.

the ida approach gives us unique id for each master,bus I would like to
propose using that everywhere

We have cases where link2 is not used but link0, 1 and 3 are.
Using the IDA would result in master-0,1,2 being shown, that would throw the integrator off. the link_id is related to hardware and can tolerate gaps, the IDA is typically always increasing and is across the system, not controller specific.

We can debate forever but both pieces of information are useful, so my recommendation is to use both:

snprintf(name, sizeof(name), "master-%d-%d", bus_id, bus->link_id);