All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Vincent Lejeune <vljn@ovi.com>
Cc: alsa-devel@alsa-project.org
Subject: Re: ASUS Phoebus (CMI8888) HDA Support
Date: Thu, 07 Aug 2014 10:01:27 +0200	[thread overview]
Message-ID: <s5hd2cc3ezs.wl%tiwai@suse.de> (raw)
In-Reply-To: <1407344869.9841.YahooMailNeo@web161503.mail.bf1.yahoo.com>

At Wed, 6 Aug 2014 10:07:49 -0700,
Vincent Lejeune wrote:
> 
> It looks like GPIO mask is frozen, I don't know why :
> 
> [vlj@localhost alsa]$ hda-verb /dev/snd/hwC1D1  0x1 SET_GPIO_MASK 1
> nid = 0x1, verb = 0x716, param = 0x1
> value = 0x0
> [vlj@localhost alsa]$ hda-verb /dev/snd/hwC1D1  0x1 GET_GPIO_MASK 1
> nid = 0x1, verb = 0xf16, param = 0x1
> value = 0x0
> [vlj@localhost alsa]$ 

What about other bits, e.g. 0x02, 0x04, 0x08, ... 0x80?

> 
> hwC1D1 is the phoebus  according to hda-verb /dev/snd/hwC1D1  0x1 PARAMETERS SUBSYSTEM_ID
> and it reports 8 input gpio
> 
> [vlj@localhost alsa]$ hda-verb /dev/snd/hwC1D1  0x1 PARAMETERS GPIO_CAP
> nid = 0x1, verb = 0xf00, param = 0x11
> value = 0x80000

I thought of the false value (-1), but the GPIO_COUNT mask is 0xff, so
0x0f must be a valid response from the codec.

> but with mask set to 0, I can't pass any data to them...

Yep.

Another thing to check is to listen from the headphone output jack.
The line out jacks are set up without the headphone amp bit while the
HP jack is set up with it.  It might be that the HP amp bit is
mandatory on this board.


Takashi

> 
> 
> Le Mercredi 6 août 2014 18h08, Takashi Iwai <tiwai@suse.de> a écrit :
>  
> 
> >
> >
> >At Wed, 6 Aug 2014 09:05:59 -0700,
> >Vincent Lejeune wrote:
> >> 
> >> Ok thank.
> >> 
> >> How can I change GPIOs value ? It looks like the option is not present anymore as hints string option in kernel 3.17. Looking in the realtek patch code suggest to use snd_hda_sequence_write in the patch_cmi8888 function.
> >
> >Just use hda-verb or such to manipulate GPIO bits on the fly.
> >
> >
> >Takashi
> >
> >> 
> >> 
> >> 
> >> Le Mercredi 6 août 2014 14h39, Takashi Iwai <tiwai@suse.de> a écrit :
> >>  
> >> 
> >> >
> >> >
> >> >At Wed, 06 Aug 2014 08:30:56 +0200,
> >> >Takashi Iwai wrote:
> >> >> 
> >> >> At Tue, 5 Aug 2014 15:26:20 -0700,
> >> >> Vincent Lejeune wrote:
> >> >> > 
> >> >> > With this patch, volume is still low but the error message in dmesg disappeared.
> >> >> > I attached an updated alsa-info.txt report. I removed the probe_mask in modprobe.conf.d file so the hdmi output of my video card also appears now.
> >> >> 
> >> >> Is the volume also low from the headphone output?
> >> >> There is no EAPD control found in the codec pins, so the rest
> >> >> possibility is either GPIO or vendor-specific verbs.  Try to adjust
> >> >> each GPIO pin on/off at first.
> >> >
> >> >In anyway, I'm going to merge the fix patch as is.  It's much better
> >> >than nothing.  Let's handle the too-low-volume problem separately.
> >> >
> >> >
> >> >
> >> >Takashi
> >> >
> >> >> 
> >> >> 
> >> >> Takashi
> >> >> 
> >> >> > 
> >> >> > 
> >> >> > 
> >> >> > 
> >> >> > Le Mardi 5 août 2014 9h25, Takashi Iwai <tiwai@suse.de> a écrit :
> >> >> >  
> >> >> > 
> >> >> > >
> >> >> > >
> >> >> > >At Mon, 4 Aug 2014 12:44:00 -0700,
> >> >> > >Vincent Lejeune wrote:
> >> >> > >> 
> >> >> > >> Here it is.
> >> >> > >
> >> >> > >OK, blow is an untested fix patch, based on the latest sound git
> >> >> > >tree.  For applying to the older kernels, you may need some manual
> >> >> > >adjustment.
> >> >> > >
> >> >> > >
> >> >> > >Takashi
> >> >> > >
> >> >> > >---
> >> >> > >diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> >> >> > >index 5db1948699d8..aa302fb03fc5 100644
> >> >> > >--- a/sound/pci/hda/hda_intel.c
> >> >> > >+++ b/sound/pci/hda/hda_intel.c
> >> >> > >@@ -265,6 +265,7 @@ enum {
> >> >> > >    AZX_DRIVER_TERA,
> >> >> > >    AZX_DRIVER_CTX,
> >> >> > >    AZX_DRIVER_CTHDA,
> >> >> > >+    AZX_DRIVER_CMEDIA,
> >> >> > >    AZX_DRIVER_GENERIC,
> >> >> > >    AZX_NUM_DRIVERS, /* keep this as last entry */
> >> >> > >};
> >> >> > >@@ -330,6 +331,7 @@ static char *driver_short_names[] = {
> >> >> > >    [AZX_DRIVER_TERA] = "HDA Teradici", 
> >> >> > >    [AZX_DRIVER_CTX] = "HDA Creative", 
> >> >> > >    [AZX_DRIVER_CTHDA] = "HDA Creative",
> >> >> > >+    [AZX_DRIVER_CMEDIA] = "HDA C-Media",
> >> >> > >    [AZX_DRIVER_GENERIC] = "HD-Audio Generic",
> >> >> > >};
> >> >> > >
> >> >> > >@@ -1373,6 +1375,7 @@ static void azx_check_snoop_available(struct azx *chip)
> >> >> > >        snoop = false;
> >> >> > >        break;
> >> >> > >    case AZX_DRIVER_CTHDA:
> >> >> > >+    case AZX_DRIVER_CMEDIA:
> >> >> > >        snoop = false;
> >> >> > >        break;
> >> >> > >    }
> >> >> > >@@ -2154,6 +2157,10 @@ static const struct pci_device_id azx_ids[] = {
> >> >> > >      .driver_data = AZX_DRIVER_CTX | AZX_DCAPS_CTX_WORKAROUND |
> >> >> > >      AZX_DCAPS_RIRB_PRE_DELAY | AZX_DCAPS_POSFIX_LPIB },
> >> >> > >#endif
> >> >> > >+    /* CM8888 */
> >> >> > >+    { PCI_DEVICE(0x13f6, 0x5011),
> >> >> > >+      .driver_data = AZX_DRIVER_CMEDIA |
> >> >> > >+      AZX_DCAPS_NO_MSI | AZX_DCAPS_POSFIX_LPIB },
> >> >> > >    /* Vortex86MX */
> >> >> > >    { PCI_DEVICE(0x17f3, 0x3010), .driver_data = AZX_DRIVER_GENERIC },
> >> >> > >    /* VMware HDAudio */
> >> >> > >diff --git a/sound/pci/hda/patch_cmedia.c b/sound/pci/hda/patch_cmedia.c
> >> >> > >index ed3d133ffbb6..3ed5d5613bc1 100644
> >> >> > >--- a/sound/pci/hda/patch_cmedia.c
> >> >> > >+++ b/sound/pci/hda/patch_cmedia.c
> >> >> > >@@ -75,15 +75,62 @@ static int patch_cmi9880(struct hda_codec *codec)
> >> >> > >    return err;
> >> >> > >}
> >> >> > >
> >> >> > >+static int patch_cmi8888(struct hda_codec *codec)
> >> >> > >+{
> >> >> > >+    struct cmi_spec *spec;
> >> >> > >+    struct auto_pin_cfg *cfg;
> >> >> > >+    int err;
> >> >> > >+
> >> >> > >+    spec = kzalloc(sizeof(*spec), GFP_KERNEL);
> >> >> > >+    if (!spec)
> >> >> > >+        return -ENOMEM;
> >> >> > >+
> >> >> > >+    codec->spec = spec;
> >> >> > >+    cfg = &spec->gen.autocfg;
> >> >> > >+    snd_hda_gen_spec_init(&spec->gen);
> >> >> > >+
> >> >> > >+    /* mask NID 0x10 from the playback volume selection;
> >> >> > >+     * it's a headphone boost volume handled manually below
> >> >> > >+     */
> >> >> > >+    spec->gen.out_vol_mask = (1ULL << 0x10);
> >> >> > >+
> >> >> > >+    err = snd_hda_parse_pin_defcfg(codec, cfg, NULL, 0);
> >> >> > >+    if (err < 0)
> >> >> > >+        goto error;
> >> >> > >+    err = snd_hda_gen_parse_auto_config(codec, cfg);
> >> >> > >+    if (err < 0)
> >> >> > >+        goto error;
> >> >> > >+
> >> >> > >+    if (get_defcfg_device(snd_hda_codec_get_pincfg(codec, 0x10)) ==
> >> >> > >+        AC_JACK_HP_OUT) {
> >> >> > >+        static const struct snd_kcontrol_new amp_kctl =
> >> >> > >+            HDA_CODEC_VOLUME("Headphone Amp Playback Volume",
> >> >> > >+                     0x10, 0, HDA_OUTPUT);
> >> >> > >+        if (!snd_hda_gen_add_kctl(&spec->gen, NULL, &amp_kctl)) {
> >> >> > >+            err = -ENOMEM;
> >> >> > >+            goto error;
> >> >> > >+        }
> >> >> > >+    }
> >> >> > >+
> >> >> > >+    codec->patch_ops = cmi_auto_patch_ops;
> >> >> > >+    return 0;
> >> >> > >+
> >> >> > >+ error:
> >> >> > >+    snd_hda_gen_free(codec);
> >> >> > >+    return err;
> >> >> > >+}
> >> >> > >+
> >> >> > >/*
> >> >> > >  * patch entries
> >> >> > >  */
> >> >> > >static const struct hda_codec_preset snd_hda_preset_cmedia[] = {
> >> >> > >+    { .id = 0x13f68888, .name = "CMI8888", .patch = patch_cmi8888 },
> >> >> > >    { .id = 0x13f69880, .name = "CMI9880", .patch = patch_cmi9880 },
> >> >> > >      { .id = 0x434d4980, .name = "CMI9880", .patch = patch_cmi9880 },
> >> >> > >    {} /* terminator */
> >> >> > >};
> >> >> > >
> >> >> > >+MODULE_ALIAS("snd-hda-codec-id:13f68888");
> >> >> > >MODULE_ALIAS("snd-hda-codec-id:13f69880");
> >> >> > >MODULE_ALIAS("snd-hda-codec-id:434d4980");
> >> >> > >
> >> >> > >
> >> >> > >_______________________________________________
> >> >> > >Alsa-devel mailing list
> >> >> > >Alsa-devel@alsa-project.org
> >> >> > >http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> >> >> > >
> >> >> > >
> >> >> > >
> >> >_______________________________________________
> >> >Alsa-devel mailing list
> >> >Alsa-devel@alsa-project.org
> >> >http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> >> >
> >> >
> >> >
> >> [2  <text/html; iso-8859-1 (quoted-printable)>]
> >
> >> 
> >_______________________________________________
> >Alsa-devel mailing list
> >Alsa-devel@alsa-project.org
> >http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> >
> >
> >
> [2  <text/html; iso-8859-1 (quoted-printable)>]
> 
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  reply	other threads:[~2014-08-07  8:01 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-03 21:05 ASUS Phoebus (CMI8888) HDA Support Vincent Lejeune
2014-08-04 11:27 ` Takashi Iwai
2014-08-04 18:30   ` Vincent Lejeune
2014-08-04 18:35     ` Vincent Lejeune
2014-08-04 19:06     ` Takashi Iwai
     [not found]       ` <1407181440.71480.YahooMailNeo@web161503.mail.bf1.yahoo.com>
2014-08-05  7:13         ` Takashi Iwai
2014-08-05 22:26           ` Vincent Lejeune
2014-08-06  6:30             ` Takashi Iwai
2014-08-06 12:38               ` Takashi Iwai
2014-08-06 16:05                 ` Vincent Lejeune
2014-08-06 16:07                   ` Takashi Iwai
2014-08-06 17:07                     ` Vincent Lejeune
2014-08-07  8:01                       ` Takashi Iwai [this message]
2014-08-07 17:13                         ` Vincent Lejeune
  -- strict thread matches above, loose matches on Subject: below --
2014-08-03 21:11 Vincent Lejeune
2013-12-04 10:36 Geoffrey McRae
2013-12-04 10:53 ` Clemens Ladisch
2013-12-04 10:57   ` Geoffrey McRae
2013-12-04 11:57     ` Clemens Ladisch
2013-12-04 12:08       ` Geoffrey McRae
2013-12-04 12:18       ` Geoffrey McRae
2013-12-04 22:20       ` Geoffrey McRae
2013-12-04 22:36         ` Geoffrey McRae
2013-12-04 12:42     ` Geoffrey McRae

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=s5hd2cc3ezs.wl%tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=vljn@ovi.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.