All of lore.kernel.org
 help / color / mirror / Atom feed
From: Massimo Del Fedele <max@veneto.com>
To: alsa-devel@alsa-project.org
Subject: Fix for Asus G75 notebook subwoofer
Date: Wed, 31 Oct 2012 17:49:39 +0100	[thread overview]
Message-ID: <k6rkr2$usv$1@ger.gmane.org> (raw)

This code fixes surround path of asus G75; i'll drop here as a function to be called
before codec initialization (I did it in static int patch_vt2002P() ) because I don't
know how to detect the notebook and apply it only when needed (I'm new to alsa code).

/* Fixes for Asus G75 subwoofer
    pin 24 is marked as speaker by bios -- should mark as line
    pin 33 has a wrong connection to out-of-range nid #3e
*/
  static int fix_asus_g75_subwoofer(struct hda_codec *codec)
  {
	/* right connection to pin widget #33 */
	hda_nid_t conn[8] = {0x1c};
	unsigned int conf;
	
	/* Fix connection of pin widget #33 on VT1802p
	 * reported connection (33-1e) refers to non-existent widget #1e which in turn
	 * reports a connection to #1c; we skip nonexistent 1e widget landing directly
	 * on 1c one
	 */
  	snd_hda_override_conn_list(codec, 0x33, 1, conn);

	// pin 24 should be marked as line out pin (not speaker as in bios)
	// and as AC_JACK_PORT_COMPLEX connection to avoid to be taken by autoparser as a speaker
	conf = snd_hda_codec_get_pincfg(codec, 0x24);
	conf = conf & ~AC_DEFCFG_DEVICE;
	conf = (conf & ~AC_DEFCFG_PORT_CONN) | (AC_JACK_PORT_COMPLEX << AC_DEFCFG_PORT_CONN_SHIFT);
	snd_hda_codec_set_pincfg(codec, 0x24, conf);
	
	// pin 33 should be marked as line out pin (not speaker as in bios)
	// and as AC_JACK_PORT_COMPLEX, not AC_JACK_PORT_NONE as in bios
	conf = snd_hda_codec_get_pincfg(codec, 0x33);
	conf = conf & ~AC_DEFCFG_DEVICE;
	conf = (conf & ~AC_DEFCFG_PORT_CONN) | (AC_JACK_PORT_COMPLEX << AC_DEFCFG_PORT_CONN_SHIFT);
	snd_hda_codec_set_pincfg(codec, 0x33, conf);

	return 0;
}

I guess that the fix on NID #33 should be applied anyways on VT1802p, because by now it connects to a non-existing widget
(well, it does exist but is not documented and out of NID range; it should be a stereo-to-mono mixer).
BTW, also NID #34, which has 2 connections, has one of them to non-existing nid above; in my case it does no harm :

Widget #24 -- ANALOG STEREO PIN COMPLEX
	Input from widgets :  14 3e       <-- widget 3e is out of range, but connects to 1c widget
	Connection type : JACK
	Device          : LINE OUT
	Does NOT support unsolicited response
	Out amp  present
	In amp NOT present

Ciao

Max

             reply	other threads:[~2012-10-31 16:49 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-31 16:49 Massimo Del Fedele [this message]
2012-11-01  8:11 ` Fix for Asus G75 notebook subwoofer Raymond Yau
2012-11-01 11:15   ` Massimo Del Fedele
2012-11-02  1:44     ` Raymond Yau
2012-11-02 14:57       ` Massimo Del Fedele
2012-11-03  0:37         ` Raymond Yau
2012-11-03  9:04           ` Massimo Del Fedele
2012-11-04  6:27         ` Raymond Yau
2012-11-04  9:31           ` Massimo Del Fedele
2012-11-07  0:50             ` Raymond Yau
2012-11-06  8:36 ` Takashi Iwai
2012-11-06  8:57   ` Massimo Del Fedele
2012-11-06  9:06     ` Takashi Iwai
2012-11-06 14:18       ` Massimo Del Fedele
2012-11-06 14:24         ` Takashi Iwai
2012-11-06 17:23           ` Massimo Del Fedele
2012-11-07  8:56             ` Takashi Iwai
2012-11-07  8:56             ` Takashi Iwai
2012-11-07 13:37               ` Massimo Del Fedele
2012-11-07 13:45                 ` Takashi Iwai
2012-11-07 15:51                   ` Massimo Del Fedele
2012-11-07 15:54                     ` Takashi Iwai
2012-11-07 17:02                       ` Massimo Del Fedele
2012-11-07 17:13                         ` 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='k6rkr2$usv$1@ger.gmane.org' \
    --to=max@veneto.com \
    --cc=alsa-devel@alsa-project.org \
    /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.