Linux Sound subsystem development
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: "Joakim  Zhang" <joakim.zhang@cixtech.com>
Cc: Takashi Iwai <tiwai@suse.de>, Kailang <kailang@realtek.com>,
	"perex@perex.cz" <perex@perex.cz>,
	"tiwai@suse.com" <tiwai@suse.com>,
	"linux-sound@vger.kernel.org" <linux-sound@vger.kernel.org>,
	"chris.chiu@canonical.com" <chris.chiu@canonical.com>,
	Geans_chen <geans_chen@realsil.com.cn>
Subject: Re: [PATCH V1 4/4] ALSA: hda/realtek: fix mic jack detect failed on alc256
Date: Tue, 01 Jul 2025 13:42:03 +0200	[thread overview]
Message-ID: <87tt3w6stw.wl-tiwai@suse.de> (raw)
In-Reply-To: <SEYPR06MB6278A4E87874B8B894A1DAD48241A@SEYPR06MB6278.apcprd06.prod.outlook.com>

On Tue, 01 Jul 2025 12:27:52 +0200,
Joakim  Zhang wrote:
> 
> 
> 
> > -----Original Message-----
> > From: Takashi Iwai <tiwai@suse.de>
> > Sent: Tuesday, July 1, 2025 5:15 PM
> > To: Joakim Zhang <joakim.zhang@cixtech.com>
> > Cc: Takashi Iwai <tiwai@suse.de>; Kailang <kailang@realtek.com>;
> > perex@perex.cz; tiwai@suse.com; linux-sound@vger.kernel.org;
> > chris.chiu@canonical.com; Geans_chen <geans_chen@realsil.com.cn>
> > Subject: Re: [PATCH V1 4/4] ALSA: hda/realtek: fix mic jack detect failed on
> > alc256
> >
> > EXTERNAL EMAIL
> >
> > CAUTION: Suspicious Email from unusual domain.
> >
> > On Tue, 01 Jul 2025 10:40:51 +0200,
> > Joakim  Zhang wrote:
> > >
> > >
> > > Hello,
> > >
> > > > > > -----Original Message-----
> > > > > > From: Takashi Iwai <tiwai@suse.de>
> > > > > > Sent: Tuesday, July 1, 2025 2:43 PM
> > > > > > To: Joakim Zhang <joakim.zhang@cixtech.com>
> > > > > > Cc: Takashi Iwai <tiwai@suse.de>; Kailang <kailang@realtek.com>;
> > > > > > perex@perex.cz; tiwai@suse.com; linux-sound@vger.kernel.org;
> > > > > > chris.chiu@canonical.com; Geans_chen <geans_chen@realsil.com.cn>
> > > > > > Subject: Re: [PATCH V1 4/4] ALSA: hda/realtek: fix mic jack
> > > > > > detect failed on
> > > > > > alc256
> > > > > >
> > > > > > EXTERNAL EMAIL
> > > > > >
> > > > > > CAUTION: Suspicious Email from unusual domain.
> > > > > >
> > > > > > On Tue, 01 Jul 2025 08:35:05 +0200, Joakim  Zhang wrote:
> > > > > > >
> > > > > > >
> > > > > > > Hello Takashi,
> > > > > > >
> > > > > > > Thanks a lot for your help.
> > > > > > >
> > > > > > > > > Hello Kailang,
> > > > > > > > >
> > > > > > > > > I'd like to insert another question through this. That
> > > > > > > > > would be appreciated if
> > > > > > > > you could have a look.
> > > > > > > > >
> > > > > > > > > After system boot, we can see the default mixer status as below:
> > > > > > > > >
> > > > > > > > > root@cix-localhost:~# amixer -c 0 contents
> > > > > > > > > numid=14,iface=CARD,name='Headphone Jack'
> > > > > > > > >   ; type=BOOLEAN,access=r-------,values=1
> > > > > > > > >   : values=on
> > > > > > > > > numid=12,iface=CARD,name='Internal Mic Phantom Jack'
> > > > > > > > >   ; type=BOOLEAN,access=r-------,values=1
> > > > > > > > >   : values=on
> > > > > > > > > numid=13,iface=CARD,name='Mic Jack'
> > > > > > > > >   ; type=BOOLEAN,access=r-------,values=1
> > > > > > > > >   : values=on
> > > > > > > > > numid=15,iface=CARD,name='Speaker Phantom Jack'
> > > > > > > > >   ; type=BOOLEAN,access=r-------,values=1
> > > > > > > > >   : values=on
> > > > > > > > > numid=11,iface=MIXER,name='Master Playback Switch'
> > > > > > > > >   ; type=BOOLEAN,access=rw------,values=1
> > > > > > > > >   : values=on
> > > > > > > > > numid=10,iface=MIXER,name='Master Playback Volume'
> > > > > > > > >   ; type=INTEGER,access=rw---R--,values=1,min=0,max=87,step=0
> > > > > > > > >   : values=60
> > > > > > > > >   | dBscale-min=-65.25dB,step=0.75dB,mute=0
> > > > > > > > > numid=2,iface=MIXER,name='Headphone Playback Switch'
> > > > > > > > >   ; type=BOOLEAN,access=rw------,values=2
> > > > > > > > >   : values=on,on
> > > > > > > > > numid=1,iface=MIXER,name='Headphone Playback Volume'
> > > > > > > > >   ; type=INTEGER,access=rw---R--,values=2,min=0,max=87,step=0
> > > > > > > > >   : values=87,87
> > > > > > > > >   | dBscale-min=-65.25dB,step=0.75dB,mute=0
> > > > > > > > > numid=9,iface=MIXER,name='Mic Boost Volume'
> > > > > > > > >   ; type=INTEGER,access=rw---R--,values=2,min=0,max=3,step=0
> > > > > > > > >   : values=0,0
> > > > > > > > >   | dBscale-min=0.00dB,step=10.00dB,mute=0
> > > > > > > > > numid=7,iface=MIXER,name='Capture Switch'
> > > > > > > > >   ; type=BOOLEAN,access=rw------,values=2
> > > > > > > > >   : values=on,on
> > > > > > > > > numid=6,iface=MIXER,name='Capture Volume'
> > > > > > > > >   ; type=INTEGER,access=rw---R--,values=2,min=0,max=63,step=0
> > > > > > > > >   : values=39,39
> > > > > > > > >   | dBscale-min=-17.25dB,step=0.75dB,mute=0
> > > > > > > > > numid=5,iface=MIXER,name='Auto-Mute Mode'
> > > > > > > > >   ; type=ENUMERATED,access=rw------,values=1,items=2
> > > > > > > > >   ; Item #0 'Disabled'
> > > > > > > > >   ; Item #1 'Enabled'
> > > > > > > > >   : values=1
> > > > > > > > > numid=8,iface=MIXER,name='Internal Mic Boost Volume'
> > > > > > > > >   ; type=INTEGER,access=rw---R--,values=2,min=0,max=3,step=0
> > > > > > > > >   : values=0,0
> > > > > > > > >   | dBscale-min=0.00dB,step=10.00dB,mute=0
> > > > > > > > > numid=4,iface=MIXER,name='Speaker Playback Switch'
> > > > > > > > >   ; type=BOOLEAN,access=rw------,values=2
> > > > > > > > >   : values=off,off
> > > > > > > > > numid=3,iface=MIXER,name='Speaker Playback Volume'
> > > > > > > > >   ; type=INTEGER,access=rw---R--,values=2,min=0,max=87,step=0
> > > > > > > > >   : values=0,0
> > > > > > > > >   | dBscale-min=-65.25dB,step=0.75dB,mute=0
> > > > > > > > > numid=17,iface=PCM,name='Capture Channel Map'
> > > > > > > > >   ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
> > > > > > > > >   : values=0,0
> > > > > > > > >   | container
> > > > > > > > >     | chmap-fixed=FL,FR
> > > > > > > > > numid=16,iface=PCM,name='Playback Channel Map'
> > > > > > > > >   ; type=INTEGER,access=r----R--,values=2,min=0,max=36,step=0
> > > > > > > > >   : values=0,0
> > > > > > > > >   | container
> > > > > > > > >     | chmap-fixed=FL,FR
> > > > > > > > >
> > > > > > > > > It can auto switch 'Headphone Playback Switch'/'Headphone
> > > > > > > > > Playback Volume' and 'Speaker Playback Switch'/'Speaker
> > > > > > > > > Playback Volume', when I plugin the headset or not, but I
> > > > > > > > > have not found the related logic, could you
> > > > > > > > please help clarify a bit?
> > > > > > > >
> > > > > > > > Isn't it "Auto-Mute Mode"?  If it's set, the speaker is
> > > > > > > > muted automatically when the headphone/headset jack is
> > > > > > > > plugged by the kernel
> > > > > > driver itself.
> > > > > > >
> > > > > > > What strange is 'Auto-Mute Mode' would be disabled after
> > > > > > > headset
> > > > > > plugin/out several times, don' t know the reason....
> > > > > >
> > > > > > "Auto-Mute Mode" is a software switch, and it means some program
> > > > > > must have turned it off explicitly.  e.g. the sound server like
> > > > > > pulseaudio or pipewire disables it.
> > > > > >
> > > > > > > However, it seems that speaker and headphone/headset still can
> > > > > > > auto
> > > > > > switch. Please see below mixer status.
> > > > > >
> > > > > > Usually pulseaudio/pipewire takes over and does the switching.
> > > > >
> > > > > OK, I see, I will dig into it, could you please tell me is there
> > > > > any other software
> > > > switches in the mixers?
> > > >
> > > > Any mixer program can change...  But basically the auto-mute is a
> > > > task of the sound daemon.
> > >
> > > I disable both pulseaudio and pipewire from the Debian, and enable the
> > auto-mute, when the headset plugin but the switch not set correctly.
> > > 'Headphone Playback Switch'/'Headphone Playback Volume' not set, but
> > 'Speaker Playback Switch'/'Speaker Playback Volume' enabled.
> > > Are there any other possible reasons?
> >
> > The auto-mute doesn't change the mixer state.  It switches internally, either by
> > adjusting the pin control or the amp.
> 
> OK, is that means all mixers setting should done by users based on Jack status?

The mixer settings are exposed to user-space and user-space programs
can read or change them, sure.  But it's not clear what is your exact
purpose or goal, so I can't answer much better than that.

The auto-mute feature is implemented in the kernel driver level, so
that the automatic muting via jack plug can work without the sound
daemon.  The auto-muted state isn't exposed to user-space via ALSA
control API (mixer elements), and it looks as  if it were muted by the
hardware.  Actually there are hardware that do the auto-muting in the
hardware level, too.


Takashi

  reply	other threads:[~2025-07-01 11:42 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-19  2:08 [PATCH V1 0/4] ALSA: hda: jack detect fixes joakim.zhang
2025-06-19  2:08 ` [PATCH V1 1/4] ALSA: hda: fix controller cannot suspend when codec using jackpoll joakim.zhang
2025-06-20 12:00   ` Takashi Iwai
2025-06-21  6:12     ` 回复: " Joakim  Zhang
2025-06-19  2:08 ` [PATCH V1 2/4] ALSA: hda: add no_pin_sense_update flag for jack detection joakim.zhang
2025-06-20 12:11   ` Takashi Iwai
2025-06-21  6:14     ` 回复: " Joakim  Zhang
2025-06-23 10:39       ` Joakim  Zhang
2025-06-23 13:11         ` Takashi Iwai
2025-06-19  2:08 ` [PATCH V1 3/4] ALSA: hda: disable jackpoll_in_suspend when system shutdown joakim.zhang
2025-06-20 12:12   ` Takashi Iwai
2025-06-19  2:08 ` [PATCH V1 4/4] ALSA: hda/realtek: fix mic jack detect failed on alc256 joakim.zhang
2025-06-20 12:13   ` Takashi Iwai
2025-06-24  2:31     ` Kailang
2025-06-24  3:32       ` Joakim  Zhang
2025-06-24  6:17         ` Kailang
2025-06-25  1:32           ` Joakim  Zhang
2025-06-25  3:05             ` Kailang
2025-06-26  3:44               ` Joakim  Zhang
2025-06-26  5:51                 ` Kailang
2025-07-01  3:28                   ` Joakim  Zhang
2025-07-01  5:51                     ` Takashi Iwai
2025-07-01  6:35                       ` Joakim  Zhang
2025-07-01  6:42                         ` Takashi Iwai
2025-07-01  6:48                           ` Joakim  Zhang
2025-07-01  6:50                             ` Takashi Iwai
2025-07-01  8:40                               ` Joakim  Zhang
2025-07-01  9:14                                 ` Takashi Iwai
2025-07-01 10:27                                   ` Joakim  Zhang
2025-07-01 11:42                                     ` Takashi Iwai [this message]
2025-07-02  1:59                                       ` Joakim  Zhang
2025-07-02 14:27                                         ` Takashi Iwai
2025-07-03  1:39                                           ` Joakim  Zhang
2025-06-20 11:51 ` [PATCH V1 0/4] ALSA: hda: jack detect fixes Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87tt3w6stw.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=chris.chiu@canonical.com \
    --cc=geans_chen@realsil.com.cn \
    --cc=joakim.zhang@cixtech.com \
    --cc=kailang@realtek.com \
    --cc=linux-sound@vger.kernel.org \
    --cc=perex@perex.cz \
    --cc=tiwai@suse.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox