Re: [PATCH v30 07/30] ALSA: Add USB audio device jack type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Wed, 06 Nov 2024 20:33:50 +0100,
Wesley Cheng wrote:
> 
> Add an USB jack type, in order to support notifying of a valid USB audio
> device.  Since USB audio devices can have a slew of different
> configurations that reach beyond the basic headset and headphone use cases,
> classify these devices differently.
> 
> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
> Signed-off-by: Wesley Cheng <quic_wcheng@xxxxxxxxxxx>

This one needs an ack from the input subsystem people.


thanks,

Takashi

> ---
>  include/linux/mod_devicetable.h        | 2 +-
>  include/sound/jack.h                   | 4 +++-
>  include/uapi/linux/input-event-codes.h | 3 ++-
>  sound/core/jack.c                      | 6 ++++--
>  4 files changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
> index 4338b1b4ac44..82826f5a3741 100644
> --- a/include/linux/mod_devicetable.h
> +++ b/include/linux/mod_devicetable.h
> @@ -340,7 +340,7 @@ struct pcmcia_device_id {
>  #define INPUT_DEVICE_ID_LED_MAX		0x0f
>  #define INPUT_DEVICE_ID_SND_MAX		0x07
>  #define INPUT_DEVICE_ID_FF_MAX		0x7f
> -#define INPUT_DEVICE_ID_SW_MAX		0x10
> +#define INPUT_DEVICE_ID_SW_MAX		0x11
>  #define INPUT_DEVICE_ID_PROP_MAX	0x1f
>  
>  #define INPUT_DEVICE_ID_MATCH_BUS	1
> diff --git a/include/sound/jack.h b/include/sound/jack.h
> index 1ed90e2109e9..bd3f62281c97 100644
> --- a/include/sound/jack.h
> +++ b/include/sound/jack.h
> @@ -22,6 +22,7 @@ struct input_dev;
>   * @SND_JACK_VIDEOOUT: Video out
>   * @SND_JACK_AVOUT: AV (Audio Video) out
>   * @SND_JACK_LINEIN:  Line in
> + * @SND_JACK_USB: USB audio device
>   * @SND_JACK_BTN_0: Button 0
>   * @SND_JACK_BTN_1: Button 1
>   * @SND_JACK_BTN_2: Button 2
> @@ -43,6 +44,7 @@ enum snd_jack_types {
>  	SND_JACK_VIDEOOUT	= 0x0010,
>  	SND_JACK_AVOUT		= SND_JACK_LINEOUT | SND_JACK_VIDEOOUT,
>  	SND_JACK_LINEIN		= 0x0020,
> +	SND_JACK_USB		= 0x0040,
>  
>  	/* Kept separate from switches to facilitate implementation */
>  	SND_JACK_BTN_0		= 0x4000,
> @@ -54,7 +56,7 @@ enum snd_jack_types {
>  };
>  
>  /* Keep in sync with definitions above */
> -#define SND_JACK_SWITCH_TYPES 6
> +#define SND_JACK_SWITCH_TYPES 7
>  
>  struct snd_jack {
>  	struct list_head kctl_list;
> diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h
> index a4206723f503..f44b9f41d26f 100644
> --- a/include/uapi/linux/input-event-codes.h
> +++ b/include/uapi/linux/input-event-codes.h
> @@ -924,7 +924,8 @@
>  #define SW_MUTE_DEVICE		0x0e  /* set = device disabled */
>  #define SW_PEN_INSERTED		0x0f  /* set = pen inserted */
>  #define SW_MACHINE_COVER	0x10  /* set = cover closed */
> -#define SW_MAX			0x10
> +#define SW_USB_INSERT		0x11  /* set = USB audio device connected */
> +#define SW_MAX			0x11
>  #define SW_CNT			(SW_MAX+1)
>  
>  /*
> diff --git a/sound/core/jack.c b/sound/core/jack.c
> index e4bcecdf89b7..de7c603e92b7 100644
> --- a/sound/core/jack.c
> +++ b/sound/core/jack.c
> @@ -34,6 +34,7 @@ static const int jack_switch_types[SND_JACK_SWITCH_TYPES] = {
>  	SW_JACK_PHYSICAL_INSERT,
>  	SW_VIDEOOUT_INSERT,
>  	SW_LINEIN_INSERT,
> +	SW_USB_INSERT,
>  };
>  #endif /* CONFIG_SND_JACK_INPUT_DEV */
>  
> @@ -241,8 +242,9 @@ static ssize_t jack_kctl_id_read(struct file *file,
>  static const char * const jack_events_name[] = {
>  	"HEADPHONE(0x0001)", "MICROPHONE(0x0002)", "LINEOUT(0x0004)",
>  	"MECHANICAL(0x0008)", "VIDEOOUT(0x0010)", "LINEIN(0x0020)",
> -	"", "", "", "BTN_5(0x0200)", "BTN_4(0x0400)", "BTN_3(0x0800)",
> -	"BTN_2(0x1000)", "BTN_1(0x2000)", "BTN_0(0x4000)", "",
> +	"USB(0x0040)", "", "", "BTN_5(0x0200)", "BTN_4(0x0400)",
> +	"BTN_3(0x0800)", "BTN_2(0x1000)", "BTN_1(0x2000)", "BTN_0(0x4000)",
> +	"",
>  };
>  
>  /* the recommended buffer size is 256 */




[Index of Archives]     [Pulseaudio]     [Linux Audio Users]     [ALSA Devel]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux