All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Kailang <kailang@realtek.com>
Cc: " (alsa-devel@alsa-project.org)" <alsa-devel@alsa-project.org>
Subject: Re: hp_pin was NULL value
Date: Wed, 09 Jan 2019 10:56:26 +0100	[thread overview]
Message-ID: <s5hr2dmgnn9.wl-tiwai@suse.de> (raw)
In-Reply-To: <6FAB7C47BCF00940BB0999A99BE3547A18420EBD@RTITMBSV02.realtek.com.tw>

On Wed, 09 Jan 2019 10:45:25 +0100,
Kailang wrote:
> 
> >>But this made me wonder whether we don't need to call this function at resume as well?  Currently it's called only at probing.
> Yes, it only call at probing. Just need to call it at boot time.
> 
> -----Original Message-----
> From: Takashi Iwai <tiwai@suse.de> 
> Sent: Wednesday, January 9, 2019 5:43 PM
> To: Kailang <kailang@realtek.com>
> Cc: (alsa-devel@alsa-project.org) <alsa-devel@alsa-project.org>
> Subject: Re: hp_pin was NULL value
> 
> On Wed, 09 Jan 2019 10:31:33 +0100,
> Kailang wrote:
> > 
> > Hi Takashi,
> > 
> > Could I move the alc294_hp_init(codec) to below line.
> > Because hp_pin = spec->gen.autocfg.hp_pins[0] was null value when alc294_hp_init(codec) at original line.
> > Or move alc269_parse_auto_config() upward.
> 
> It looks OK to me.  But this made me wonder whether we don't need to call this function at resume as well?  Currently it's called only at probing.

Hrm, but it modifies many COEFs, and are these all preserved with
suspend?  For example, there is also hibernation (S4), which is a
switch from the boot without the audio driver initialization.  Then
we'll resume from the uninitialized state.  I guess other COEF changes
in that area should be moved as the additional init hook as well.

Actually, if we do call this at resume, the change would be easier, a
patch like below.


thanks,

Takashi

--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -7404,6 +7404,20 @@ static void alc294_hp_init(struct hda_codec *codec)
 	msleep(50);
 }
 
+static void alc294_init(struct hda_codec *codec)
+{
+	/* UAJ MIC Vref control by verb */
+	alc_update_coef_idx(codec, 0x6b, 0x0018, (1<<4) | (1<<3));
+	alc294_hp_init(codec);
+}
+
+static void alc700_init(struct hda_codec *codec)
+{
+	/* Combo jack auto trigger control */
+	alc_update_coef_idx(codec, 0x4a, 1 << 15, 0);
+	alc294_hp_init(codec);
+}
+
 /*
  */
 static int patch_alc269(struct hda_codec *codec)
@@ -7528,8 +7542,7 @@ static int patch_alc269(struct hda_codec *codec)
 	case 0x10ec0294:
 		spec->codec_variant = ALC269_TYPE_ALC294;
 		spec->gen.mixer_nid = 0; /* ALC2x4 does not have any loopback mixer path */
-		alc_update_coef_idx(codec, 0x6b, 0x0018, (1<<4) | (1<<3)); /* UAJ MIC Vref control by verb */
-		alc294_hp_init(codec);
+		spec->init_hook = alc294_init;
 		break;
 	case 0x10ec0300:
 		spec->codec_variant = ALC269_TYPE_ALC300;
@@ -7540,8 +7553,7 @@ static int patch_alc269(struct hda_codec *codec)
 	case 0x10ec0703:
 		spec->codec_variant = ALC269_TYPE_ALC700;
 		spec->gen.mixer_nid = 0; /* ALC700 does not have any loopback mixer path */
-		alc_update_coef_idx(codec, 0x4a, 1 << 15, 0); /* Combo jack auto trigger control */
-		alc294_hp_init(codec);
+		spec->init_hook = alc700_init;
 		break;
 
 	}

  reply	other threads:[~2019-01-09  9:56 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-09  9:31 hp_pin was NULL value Kailang
2019-01-09  9:42 ` Takashi Iwai
2019-01-09  9:45   ` Kailang
2019-01-09  9:56     ` Takashi Iwai [this message]
     [not found]     ` <6FAB7C47BCF00940BB0999A99BE3547A18420EE6@RTITMBSV02.realtek.com.tw>
2019-01-09 11:29       ` Takashi Iwai
     [not found]     ` <6FAB7C47BCF00940BB0999A99BE3547A18420F05@RTITMBSV02.realtek.com.tw>
2019-01-09 13:00       ` Takashi Iwai
2019-01-10  3:14         ` Kailang
2019-01-15  2:31         ` Kailang
2019-01-15  6:36           ` Takashi Iwai
2019-01-15  7:43             ` Kailang
2019-01-15  7:53               ` Takashi Iwai
2019-01-15  8:17                 ` Kailang
2019-01-15  8:57                   ` Takashi Iwai
2019-01-15  9:06                     ` Kailang
2019-01-15  9:16                       ` Takashi Iwai
2019-01-15  9:25                         ` Kailang
2019-01-29  8:05                         ` Kailang
2019-01-29  8:28                           ` Takashi Iwai
2019-01-29  8:32                             ` Kailang
2019-01-29  9:11                               ` Takashi Iwai
2019-01-29  8:39                             ` Kailang
2019-01-29 13:22                               ` Takashi Iwai
2019-01-29 15:37                                 ` Takashi Iwai
2019-01-30  6:26                                   ` Kailang

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=s5hr2dmgnn9.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=kailang@realtek.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.