Re: [PATCH 1/2] ALSA: usb-audio: Add module param mixer_min_mute

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

 



On Fri, 29 Aug 2025 07:10:59 +0200,
Cryolitia PukNgae via B4 Relay wrote:
> 
> From: Cryolitia PukNgae <cryolitia@xxxxxxxxxxxxx>
> 
> As already discussed[1], a module parameter called mixer_min_mute is
> added to make it easier for end users to debug the widespread problem
> without recompiling the kernel, where USB audio devices are muted when
> the volume is set to the minimum value.
> 
> 1.
> https://lore.kernel.org/all/20250827-sound-quirk-min-mute-v1-1-4717aa8a4f6a@xxxxxxxxxxxxx/
> 
> Tested-by: Guoli An <anguoli@xxxxxxxxxxxxx>
> Signed-off-by: Cryolitia PukNgae <cryolitia@xxxxxxxxxxxxx>

Err, maybe I misunderstood your suggestion in the previous patch.
I didn't mean to add a new option, but only about adding the quirk
bit.

Honestly speaking, I don't want to add yet new option for a specific
quirk behavior.  Once when we add, it's sticking almost forever and we
can't delete it any longer.  Also, this option will apply to all USB
connected USB-audio devices, which may have ill effect, too.

What I had in mind instead is to extend the syntax of quirk option.
e.g. it can accept a string like "mixer_min_mute" not only the integer
value.  Or it may have a form like "$vendor:$value" so that it can be
applied no matter which slot it's assigned.


thanks,

Takashi

> ---
>  sound/usb/card.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/sound/usb/card.c b/sound/usb/card.c
> index 0265206a8e8cf31133e8463c98fe0497d8ace89e..bf65727ad213f2897d735c1f3c55bfc3f85971cf 100644
> --- a/sound/usb/card.c
> +++ b/sound/usb/card.c
> @@ -74,6 +74,7 @@ static char *quirk_alias[SNDRV_CARDS];
>  static char *delayed_register[SNDRV_CARDS];
>  static bool implicit_fb[SNDRV_CARDS];
>  static unsigned int quirk_flags[SNDRV_CARDS];
> +static bool mixer_min_mute;
>  
>  bool snd_usb_use_vmalloc = true;
>  bool snd_usb_skip_validation;
> @@ -109,6 +110,9 @@ module_param_named(use_vmalloc, snd_usb_use_vmalloc, bool, 0444);
>  MODULE_PARM_DESC(use_vmalloc, "Use vmalloc for PCM intermediate buffers (default: yes).");
>  module_param_named(skip_validation, snd_usb_skip_validation, bool, 0444);
>  MODULE_PARM_DESC(skip_validation, "Skip unit descriptor validation (default: no).");
> +module_param(mixer_min_mute, bool, 0444);
> +MODULE_PARM_DESC(mixer_min_mute,
> +		 "Set minimum volume control value as mute (default: no).");
>  
>  /*
>   * we keep the snd_usb_audio_t instances by ourselves for merging
> @@ -959,6 +963,9 @@ static int usb_audio_probe(struct usb_interface *intf,
>  	if (ignore_ctl_error)
>  		chip->quirk_flags |= QUIRK_FLAG_IGNORE_CTL_ERROR;
>  
> +	if (mixer_min_mute)
> +		chip->quirk_flags |= QUIRK_FLAG_MIXER_MIN_MUTE;
> +
>  	if (chip->quirk_flags & QUIRK_FLAG_DISABLE_AUTOSUSPEND)
>  		usb_disable_autosuspend(interface_to_usbdev(intf));
>  
> 
> -- 
> 2.51.0
> 
> 




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux