On 12/9/20 10:44 PM, Takashi Iwai wrote:
On Wed, 09 Dec 2020 15:25:42 +0100,
Jaroslav Kysela wrote:
Dne 09. 12. 20 v 13:43 Hui Wang napsal(a):
After we change sth in the userspace audio stack like alsa-ucm or
pulseaudio, we want to perform remote audio auto test to verify if the
change introduce the regression or not, some of the tests are about
the defaut_sink/default_source or active_port switching, this needs
the audio jack state to be changed to trigger the userspace's audio
device switching.
So far, there is no software ways to change the audio jack state, this
block the auto test.
I'm not convinced to pollute the kernel space with this code. You can use
LD_PRELOAD and simulate this via a shared library or the alsa-lib may be extended.
While I understand this argument, I see the merit of having the
kernel-side injection, too. Wrapping with LD_PRELOAD (or use alsa-lib
plugin) doesn't verify whether the whole jack system works. OTOH, the
jack injection in kernel simulates the closer path to the real use
case, which covers also the call paths inside the kernel.
Though, I'm not sure whether the current design is the best choice.
Basically sysfs is expressed in one value per file (although there are
many exceptions, of course). So creating a node per jack object might
fit better? Or can it better be in debugfs?
OK, got it, will investigate it.
Also, the first patch can be omitted if you just create another
snd_jack_report() function for the user API and put the common code to the
static function in jack.c.
Fully agreed on this point.
Indeed, it is a better and cleaner way, will think about it and
implement it.
Thanks.
thanks,
Takashi