Hi Pierre,
On 5/9/2024 6:07 AM, Pierre-Louis Bossart wrote:
On 5/8/24 19:10, Wesley Cheng wrote:
Hi Pierre,
On 5/7/2024 2:26 PM, Pierre-Louis Bossart wrote:
On 5/7/24 14:51, Wesley Cheng wrote:
Add SND kcontrol to SOC USB, which will allow for userpsace to determine which USB card number and PCM device to offload. This allows for userspace to potentially tag an alternate path for a specific USB SND card and PCM device. Previously, control was absent, and the offload path would be enabled on the last USB SND device which was connected. This logic will continue to be applicable if no mixer input is received for specific device selection.
An example to configure the offload device using tinymix: tinymix -D 0 set 'USB Offload Playback Route Select' 1 0
The above command will configure the offload path to utilize card#1 and PCM stream#0.
I don't know how this is usable in practice. Using card indices is really hard to do, it depends on the order in which devices are plugged-in...
How are the existing mechanisms handling USB audio devices, or what is the identifier being used?
Well it's a mess, that's why I asked.
There are configuration work-arounds to make sure that 'local' accessories are handled first and get repeatable card indices.
So is the intention of the configuration aspect you're thinking of to have an entry that maps a USB device based on some identifier, which will take the offload path by default?
IMO, the concept of this selection of card and PCM device should happen after the application discovers a USB device that is offload capable. For example, maybe the application will use the USB VID/PID to lookup an entry within the configuration. If some offload tag is present, it can further determine which card and PCM devices are associated w/ the USB device? Although this is under the assumption the application has insight to the USB sysfs.
But between USB devices I guess the rule is 'anything goes'. Even if there are two devices connected at boot, the index allocation will depend on probe order. The card names are not necessarily super-useful either, i.e. yesterday I was confused by an USB card named "CODEC" without any details.
That device is very informative :D
Thanks Wesley Cheng