diff -auNrp kernel-2.6.26.orig/sound/pci/hda/patch_via.c kernel-2.6.26.new/sound/pci/hda/patch_via.c --- kernel-2.6.26.orig/sound/pci/hda/patch_via.c 2008-10-17 18:58:06.000000000 +0200 +++ kernel-2.6.26.new/sound/pci/hda/patch_via.c 2008-10-17 19:01:21.000000000 +0200 @@ -891,6 +891,49 @@ static int via_auto_init(struct hda_code return 0; } +static int ezono_vt1708_init(struct hda_codec *codec) +{ + /* THis is added because Ezono sound card doesn't support auto detection */ + + /* Port_A PW0 */ + snd_hda_codec_write(codec, 0x1c, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_0, 0x00); + snd_hda_codec_write(codec, 0x1c, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_1, 0xf0); + snd_hda_codec_write(codec, 0x1c, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_2, 0x00); + snd_hda_codec_write(codec, 0x1c, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0x00); + + /* Port_B Pw1 */ + snd_hda_codec_write(codec, 0x1d, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_0, 0x40); + snd_hda_codec_write(codec, 0x1d, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_1, 0xf0); + snd_hda_codec_write(codec, 0x1d, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_2, 0xa0); + snd_hda_codec_write(codec, 0x1d, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0x00); + + /* Port_D PW3 */ + snd_hda_codec_write(codec, 0x1f, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_0, 0x10); + snd_hda_codec_write(codec, 0x1f, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_1, 0xf0); + snd_hda_codec_write(codec, 0x1f, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_2, 0x00); + snd_hda_codec_write(codec, 0x1f, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0x01); + + /* Port_E PW4 */ + snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_0, 0x00); + snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_1, 0xf0); + snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_2, 0x20); + snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0x00); + + /* Port_G PW6 */ + snd_hda_codec_write(codec, 0x22, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_0, 0x02); + snd_hda_codec_write(codec, 0x22, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_1, 0xf0); + snd_hda_codec_write(codec, 0x22, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_2, 0x00); + snd_hda_codec_write(codec, 0x22, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0x00); + + /* Port_H PW7 */ + snd_hda_codec_write(codec, 0x23, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_0, 0x04); + snd_hda_codec_write(codec, 0x23, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_1, 0xf0); + snd_hda_codec_write(codec, 0x23, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_2, 0x00); + snd_hda_codec_write(codec, 0x23, 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, 0x00); + + return 0; +} + static int patch_vt1708(struct hda_codec *codec) { struct via_spec *spec; @@ -902,7 +945,10 @@ static int patch_vt1708(struct hda_codec return -ENOMEM; codec->spec = spec; - + + /* Init Ezono Sound card */ + ezono_vt1708_init(codec); + /* automatic parse from the BIOS config */ err = vt1708_parse_auto_config(codec); if (err < 0) {