[PATCH v9 1/1] alsa: jack: implement software jack injection via debugfs
Takashi Iwai
tiwai at suse.de
Tue Feb 2 10:39:50 CET 2021
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 at suse.de>
> Reviewed-by: Jaroslav Kysela <perex at perex.cz>
> Reviewed-by: Kai Vehmanen <kai.vehmanen at linux.intel.com>
> Signed-off-by: Hui Wang <hui.wang at canonical.com>
Applied now. Thanks.
Takashi
More information about the Alsa-devel
mailing list