diff -Naur oss-v4.1-build080226-old/kernel/drv/hdaudio/hdaudio_codecids.h oss-v4.1-build080226-new/kernel/drv/hdaudio/hdaudio_codecids.h --- oss-v4.1-build080226-old/kernel/drv/hdaudio/hdaudio_codecids.h 2008-02-26 06:13:36.000000000 -0300 +++ oss-v4.1-build080226-new/kernel/drv/hdaudio/hdaudio_codecids.h 2008-03-10 01:59:34.000000000 -0300 @@ -1022,6 +1022,7 @@ extern int hdaudio_scaleoP_mixer_init (int dev, hdaudio_mixer_t * mixer, int cad, int top_group); extern int hdaudio_abit_AA8_mixer_init (int dev, hdaudio_mixer_t * mixer, int cad, int top_group); extern int hdaudio_ferrari5k_mixer_init (int dev, hdaudio_mixer_t * mixer, int cad, int top_group); +extern int hdaudio_travelmate4060_mixer_init (int dev, hdaudio_mixer_t * mixer, int cad, int top_group); extern int hdaudio_vaio_vgn_mixer_init (int dev, hdaudio_mixer_t * mixer, int cad, int top_group); static const codec_desc_t subdevices[] = { @@ -1039,6 +1040,7 @@ {0x10250000, "Ferrari5k/ALC883", VF_ALC88X_HACK, (char **) &alc883remap, 0, hdaudio_ferrari5k_mixer_init, 0x10ec0883, 0x1025010a}, {0x10250000, "Acer_aspire5052/ALC883", VF_ALC88X_HACK, (char **) &alc883remap, 0, hdaudio_ferrari5k_mixer_init, 0x10ec0883, 0x1025010f}, + {0x1025160d, "Acer_travelmate4060/ALC260", VF_NONE, (char **) &alc260remap, 0, hdaudio_travelmate4060_mixer_init, 0x10ec0260, 0x1025008f}, /* **** Sony Vaio VGN-AR51 *** diff -Naur oss-v4.1-build080226-old/kernel/drv/hdaudio/hdaudio_travelmate4060.c oss-v4.1-build080226-new/kernel/drv/hdaudio/hdaudio_travelmate4060.c --- oss-v4.1-build080226-old/kernel/drv/hdaudio/hdaudio_travelmate4060.c 1969-12-31 21:00:00.000000000 -0300 +++ oss-v4.1-build080226-new/kernel/drv/hdaudio/hdaudio_travelmate4060.c 2008-03-12 20:23:07.000000000 -0300 @@ -0,0 +1,37 @@ +/* + * + * This file is part of Open Sound System. + * + * Copyright (C) 2008 Paulo Matias + * + * I hereby grant permanent and irrevocable permission for + * 4Front Technologies to use and sublicense this code + * unrestrictedly. + * + * Permission is granted for third parties to use this code + * under the terms of either BSD, GPL v2 or CDDL licenses. + * + */ +/* Codec index is 0 */ +/* Codec vendor 10ec:0260 */ +/* HD codec revision 1.0 (4.0) (0x00100400) */ +/* Subsystem ID 1025160d */ +#include "hdaudio_cfg.h" +#include "hdaudio.h" +#include "hdaudio_codec.h" +#include "hdaudio_dedicated.h" +#include "hdaudio_mixers.h" + +int +hdaudio_travelmate4060_mixer_init (int dev, hdaudio_mixer_t * mixer, int cad, int top_group) +{ + DDB(cmn_err(CE_CONT, "hdaudio_travelmate4060_mixer_init got called.\n")); + + /* Acer TravelMate 4060 and similar Aspire series, with ALC260 codec, need + * that we init GPIO to get internal speaker and headphone jack working. */ + corb_write(mixer, cad, 0x01, 0, SET_GPIO_ENABLE, 1); + corb_write(mixer, cad, 0x01, 0, SET_GPIO_DIR, 1); + corb_write(mixer, cad, 0x01, 0, SET_GPIO_DATA, 1); + + return hdaudio_generic_mixer_init(dev, mixer, cad, top_group); +}