[alsa-devel] ASUS Phoebus (CMI8888) HDA Support
Vincent Lejeune
vljn at ovi.com
Wed Aug 6 00:26:20 CEST 2014
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.
Le Mardi 5 août 2014 9h25, Takashi Iwai <tiwai at 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, &_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 at alsa-project.org
>http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
>
>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: alsa-info.txt
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20140805/739afc02/attachment-0001.txt>
More information about the Alsa-devel
mailing list