soundwire: bus: allow device number to be unique at system level
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Tue, 23 Aug 2022 04:50:03 +0000 (12:50 +0800)
committerVinod Koul <vkoul@kernel.org>
Tue, 30 Aug 2022 04:46:41 +0000 (10:16 +0530)
commitc60561014257699d81ab392eb6cb6389ad8907df
tree477c21fb7f9ce71f7a81d7020aea5a6b50cd3501
parent88de0a8f48bc2339e8c279315320e6f406ff5f96
soundwire: bus: allow device number to be unique at system level

The SoundWire specification allows the device number to be allocated
at will. When a system includes multiple SoundWire links, the device
number scope is limited to the link to which the device is attached.

However, for integration/debug it can be convenient to have a unique
device number across the system. This patch adds a 'dev_num_ida_min'
field at the bus level, which when set will be used to allocate an
IDA.

The allocation happens when a hardware device reports as ATTACHED. If
any error happens during the enumeration, the allocated IDA is not
freed - the device number will be reused if/when the device re-joins
the bus. The IDA is only freed when the Linux device is unregistered.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20220823045004.2670658-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/bus.c
include/linux/soundwire/sdw.h