On Wed, 27 Jan 2021 09:56:39 +0100, Hui Wang wrote: > > This change adds audio jack injection feature through debugfs, with > this feature, we could validate alsa userspace changes by injecting > plugin or plugout events to the non-phantom audio jacks. > > With this change, the sound core will build the folders > $debugfs_mount_dir/sound/cardN if SND_DEBUG and DEBUG_FS are enabled. > And if users also enable the SND_JACK_INJECTION_DEBUG, the jack > injection nodes will be built in the folder cardN like below: > > $tree $debugfs_mount_dir/sound > $debugfs_mount_dir/sound > ├── card0 > │ ├── HDMI_DP_pcm_10_Jack > │ │ ├── jackin_inject > │ │ ├── kctl_id > │ │ ├── mask_bits > │ │ ├── status > │ │ ├── sw_inject_enable > │ │ └── type > ... > │ └── HDMI_DP_pcm_9_Jack > │ ├── jackin_inject > │ ├── kctl_id > │ ├── mask_bits > │ ├── status > │ ├── sw_inject_enable > │ └── type > └── card1 > ├── HDMI_DP_pcm_5_Jack > │ ├── jackin_inject > │ ├── kctl_id > │ ├── mask_bits > │ ├── status > │ ├── sw_inject_enable > │ └── type > ... > ├── Headphone_Jack > │ ├── jackin_inject > │ ├── kctl_id > │ ├── mask_bits > │ ├── status > │ ├── sw_inject_enable > │ └── type > └── Headset_Mic_Jack > ├── jackin_inject > ├── kctl_id > ├── mask_bits > ├── status > ├── sw_inject_enable > └── type > > The nodes kctl_id, mask_bits, status and type are read-only, users > could check jack or jack_kctl's information through them. > > The nodes sw_inject_enable and jackin_inject are directly used for > injection. The sw_inject_enable is read-write, users could check if > software injection is enabled or not on this jack, and users could > echo 1 or 0 to enable or disable software injection on this jack. Once > the injection is enabled, the jack will not change by hardware events > anymore, once the injection is disabled, the jack will restore the > last reported hardware events to the jack. The jackin_inject is > write-only, if the injection is enabled, users could echo 1 or 0 to > this node to inject plugin or plugout events to this jack. > > For the detailed usage information on these nodes, please refer to > Documentation/sound/designs/jack-injection.rst. > > Reviewed-by: Takashi Iwai <tiwai@xxxxxxx> > Reviewed-by: Jaroslav Kysela <perex@xxxxxxxx> > Reviewed-by: Kai Vehmanen <kai.vehmanen@xxxxxxxxxxxxxxx> > Signed-off-by: Hui Wang <hui.wang@xxxxxxxxxxxxx> Applied now. Thanks. Takashi