add alsa-driver for my new lappi

git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@645 6952d904-891a-0410-993b-d76249ca496b
This commit is contained in:
geos_one 2008-12-10 16:34:22 +00:00
parent d07a6b5ae8
commit 8865c1f6b6
4 changed files with 610 additions and 1 deletions

View File

@ -0,0 +1,3 @@
AUX alsa-driver-1.0.18a-xa3530.patch 14509 RMD160 7b64bd5303d4e646957c1e49a53adfb012b3de8e SHA1 148a444560bb9473325147d44a6f813b084d4819 SHA256 6236e6e64d09284c13f16aaefb20e54e891d5b7f1d93cdb64cf5d6901f94761c
DIST alsa-driver-1.0.18a.tar.bz2 2833780 RMD160 c06c0b68999802da80becb58ea86596f031fa406 SHA1 c8ca0d2f9093f697ee519c45c13dd7d166f6fb2a SHA256 31148e6722da1ffbbc96504a106ef2f9a06cfcc0843c3306996d4379abaff833
EBUILD alsa-driver-1.0.18a.ebuild 7102 RMD160 c98c0db344be82006c042f6712509353330c0c4b SHA1 0c7e87d6d5e866799491cfcccb942c7fc4abc4ce SHA256 b6794884f489c519899effe18f359d3c3cbf2451123bf4d06bf5924d740bac52

View File

@ -0,0 +1,184 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-sound/alsa-driver/alsa-driver-1.0.18.ebuild,v 1.1 2008/11/05 04:36:31 beandog Exp $
inherit autotools linux-mod flag-o-matic eutils multilib linux-info
MY_P="${P/_rc/rc}"
S="${WORKDIR}/${MY_P}"
DESCRIPTION="Advanced Linux Sound Architecture kernel modules"
HOMEPAGE="http://www.alsa-project.org/"
if [[ ${MY_P} == ${MY_P/_p*/} ]]; then
SRC_URI="mirror://alsaproject/driver/${MY_P}.tar.bz2"
else # Gentoo snapshots
SRC_URI="mirror://gentoo/${MY_P}.tar.bz2"
fi
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~mips ~ppc ~ppc64 ~x86"
IUSE="oss debug midi"
IUSE_CARDS="seq-dummy dummy virmidi mtpav mts64 serial-u16550 mpu401
loopback portman2x4 ad1848-lib adlib ad1816a ad1848
als100 azt2320 cmi8330 cs4231 cs4232 cs4236 dt019x es968 es1688 es18xx
gusclassic gusextreme gusmax interwave interwave-stb opl3sa2
opti92x-ad1848 opti92x-cs4231 opti93x miro sb8 sb16 sbawe sgalaxy
sscape wavefront pc98-cs4232 msnd-pinnacle ad1889 als300 als4000
ali5451 atiixp atiixp-modem au8810 au8820 au8830 azt3328 bt87x ca0106
cmipci cs4281 cs46xx cs5535audio darla20 gina20 layla20 darla24 gina24
layla24 mona mia echo3g indigo indigoio indigodj emu10k1 emu10k1x
ens1370 ens1371 es1938 es1968 fm801 fm801-tea575x hda-intel hdsp hdspm
ice1712 ice1724 intel8x0 intel8x0m korg1212 maestro3 mixart nm256
pcxhr riptide rme32 rme96 rme9652 sonicvibes trident via82xx
via82xx-modem vx222 ymfpci pdplus asihpi powermac aoa
aoa-fabric-layout aoa-onyx aoa-tas aoa-toonie aoa-soundbus
aoa-soundbus-i2s sa11xx-uda1341 armaaci s3c2410 pxa2xx-i2sound au1x00
usb-audio usb-usx2y usb-us122l vxpocket pdaudiocf sun-amd7930 sun-cs4231 sun-dbri
harmony soc at91-soc at91-soc-eti-b1-wm8731 pxa2xx-soc
pxa2xx-soc-corgi pxa2xx-soc-spitz pxa2xx-soc-poodle pxa2xx-soc-tosa hifier
ml403-ac97cr oxygen pxa2xx-soc-e800 sis7019 virtuoso"
for iuse_card in ${IUSE_CARDS}; do
IUSE="${IUSE} alsa_cards_${iuse_card}"
done
RDEPEND="virtual/modutils"
DEPEND="${RDEPEND}
>=media-sound/alsa-headers-1.0.17
virtual/linux-sources
sys-apps/debianutils"
PROVIDE="virtual/alsa"
pkg_setup() {
# By default, drivers for all supported cards will be compiled.
# If you want to only compile for specific card(s), set ALSA_CARDS
# environment to a space-separated list of drivers that you want to build.
# For example:
#
# env ALSA_CARDS='emu10k1 intel8x0 ens1370' emerge alsa-driver
#
ALSA_CARDS=${ALSA_CARDS:-${IUSE_ALSA_CARDS}}
local PNP_DRIVERS="interwave interwave-stb"
local PNP_ERROR="Some of the drivers you selected require PnP support in your kernel (${PNP_DRIVERS}). Either enable PnP in your kernel or trim which drivers get compiled using ALSA_CARDS in /etc/make.conf."
local ISA_DRIVERS="cs4232 msnd-pinnacle adlib ad1816a ad1848 als100 azt2320
cmi8330 cs4231 cs4236 dt019x es968 es1688 es18xx gusclassic gusextreme gusmax
interwave interwave-stb opl3sa2 opti92x-ad1848 opti92x-cs4231 opti93x miro sb8
sb16 sbawe sb16_csp sgalaxy sscape wavefront"
local ISA_ERROR="Some of the drivers you selected require ISA support in your kernel ($(echo $ISA_DRIVERS)). Either enable ISA in your kernel or trim which drivers get compiled using ALSA_CARDS in /etc/make.conf."
local FW_DRIVERS="darla20 gina20 layla20 darla24 gina24 layla24 mona mia echo3g indigo
indigoio indigodj emu10k1 korg1212 maestro3 riptide ymfpci asihpi"
local FW_LOADER_ERROR="Some of the drivers you selected require 'Userspace firmware loading support' in your kernel (${FW_DRIVERS}). Either enable that feature or trim which drivers get compiled using ALSA_CARDS in /etc/make.conf."
local PARPORT_DRIVERS="portman2x4"
local PARPORT_ERROR="Some if the drivers you selected require Parallel Port support (${PARPORT_DRIVERS}). Either enable that feature or trim which drivers get compiled using ALSA_CARDS in /etc/make.conf."
local TMP_ALSA_CARDS
local CHECK_PNP
local CHECK_ISA
local CHECK_FW
local CHECK_PARPORT
for card in ${ALSA_CARDS}; do
if has alsa_cards_${card} ${IUSE} && use alsa_cards_${card}; then
TMP_ALSA_CARDS="${TMP_ALSA_CARDS} ${card}"
has ${card} ${PNP_DRIVERS} && CHECK_PNP="PNP"
has ${card} ${ISA_DRIVERS} && CHECK_ISA="ISA"
has ${card} ${FW_DRIVERS} && CHECK_FW="FW_LOADER"
has ${card} ${PARPORT_DRIVERS} && CHECK_PARPORT="PARPORT"
fi
done
ALSA_CARDS="${TMP_ALSA_CARDS}"
local CONFIG_CHECK="!SND SOUND ${CHECK_PNP} ${CHECK_ISA} ${CHECK_FW} ${CHECK_PARPORT}"
local SND_ERROR="ALSA is already compiled into the kernel. This is the recommended configuration, don't emerge alsa-driver."
local SOUND_ERROR="Your kernel doesn't have sound support enabled."
local SOUND_PRIME_ERROR="Your kernel is configured to use the deprecated OSS drivers. Please disable them and re-emerge alsa-driver."
linux-mod_pkg_setup
if [[ ${PROFILE_ARCH} == "sparc64" ]] ; then
export CBUILD=${CBUILD-${CHOST}}
export CHOST="sparc64-unknown-linux-gnu"
fi
}
src_unpack() {
unpack ${A}
cd "${S}"
epatch "${FILESDIR}"/alsa-driver-1.0.18a-xa3530.patch
convert_to_m "${S}/Makefile"
sed -i -e 's:\(.*depmod\):#\1:' "${S}/Makefile"
eautoconf
}
src_compile() {
local myABI=${ABI:-${DEFAULT_ABI}}
# Should fix bug #46901
is-flag "-malign-double" && filter-flags "-fomit-frame-pointer"
append-flags "-I${KV_DIR}/arch/$(tc-arch-kernel)/include"
econf $(use_with oss) \
$(use_with oss pcm-oss-plugins) \
$(use_with debug debug full) \
--with-kernel="${KV_DIR}" \
--with-build="${KV_OUT_DIR}" \
--with-redhat=no \
--with-suse=no \
--with-isapnp=auto \
$(use_with midi sequencer) \
--with-cards="${ALSA_CARDS} \
--with-card-options=all" || die "econf failed"
# linux-mod_src_compile doesn't work well with alsa
ARCH=$(tc-arch-kernel)
ABI=${KERNEL_ABI}
emake LDFLAGS="$(raw-ldflags)" HOSTCC="$(tc-getBUILD_CC)" CC="$(tc-getCC)" || die "Make Failed"
ARCH=$(tc-arch)
ABI=${myABI}
}
src_install() {
emake DESTDIR="${D}" install-modules || die "make install failed"
dodoc CARDS-STATUS FAQ README WARNING TODO SUPPORTED_KERNELS
if kernel_is 2 6; then
# mv the drivers somewhere they won't be killed by the kernel's make modules_install
mv "${D}/lib/modules/${KV_FULL}/kernel/sound" "${D}/lib/modules/${KV_FULL}/${PN}"
rmdir "${D}/lib/modules/${KV_FULL}/kernel" &> /dev/null
fi
}
pkg_postinst() {
elog
elog "Remember that all mixer channels will be MUTED by default."
elog "Use the 'alsamixer' program to unmute them, then save your"
elog "mixer settings with /etc/init.d/alsasound save"
elog
elog "If you experience problems, please try building the in-kernel"
elog "ALSA drivers instead. This ebuild is unsupported."
elog
linux-mod_pkg_postinst
if kernel_is 2 6 && [ -e "${ROOT}/lib/modules/${KV_FULL}/kernel/sound" ]; then
# Cleanup if they had older alsa installed
for file in $(find "${ROOT}/lib/modules/${KV_FULL}/${PN}" -type f); do
rm -f ${file//${KV_FULL}\/${PN}/${KV_FULL}\/kernel\/sound}
done
find "${ROOT}/lib/modules/${KV_FULL}/kernel/sound" -type d -print0 | xargs --null rmdir
fi
}

View File

@ -0,0 +1,416 @@
diff -uNr alsa-driver-1.0.18a.orig/alsa-kernel/pci/hda/patch_realtek.c alsa-driver-1.0.18a/alsa-kernel/pci/hda/patch_realtek.c
--- alsa-driver-1.0.18a.orig/alsa-kernel/pci/hda/patch_realtek.c 2008-11-12 11:02:25.000000000 +0100
+++ alsa-driver-1.0.18a/alsa-kernel/pci/hda/patch_realtek.c 2008-12-04 21:43:59.000000000 +0100
@@ -216,6 +216,7 @@
ALC883_TARGA_2ch_DIG,
ALC883_ACER,
ALC883_ACER_ASPIRE,
+ ALC888_ACER_ASPIRE_4930G,
ALC883_MEDION,
ALC883_MEDION_MD2,
ALC883_LAPTOP_EAPD,
@@ -229,9 +230,11 @@
ALC883_MITAC,
ALC883_CLEVO_M720,
ALC883_FUJITSU_PI2515,
+ ALC888_FUJITSU_XA3530,
ALC883_3ST_6ch_INTEL,
ALC888_ASUS_M90V,
ALC888_ASUS_EEE1601,
+ ALC1200_ASUS_P5Q,
ALC883_AUTO,
ALC883_MODEL_LAST,
};
@@ -381,11 +384,15 @@
{
struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
struct alc_spec *spec = codec->spec;
- const struct hda_input_mux *imux = spec->input_mux;
+ const struct hda_input_mux *imux;
unsigned int adc_idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
+ unsigned int mux_idx;
hda_nid_t nid = spec->capsrc_nids ?
spec->capsrc_nids[adc_idx] : spec->adc_nids[adc_idx];
+ mux_idx = adc_idx >= spec->num_mux_defs ? 0 : adc_idx;
+ imux = &spec->input_mux[mux_idx];
+
if (spec->is_mix_capture) {
/* Matrix-mixer style (e.g. ALC882) */
unsigned int *cur_val = &spec->cur_mux[adc_idx];
@@ -406,10 +413,7 @@
return 1;
} else {
/* MUX style (e.g. ALC880) */
- unsigned int mux_idx;
- mux_idx = adc_idx >= spec->num_mux_defs ? 0 : adc_idx;
- return snd_hda_input_mux_put(codec, &spec->input_mux[mux_idx],
- ucontrol, nid,
+ return snd_hda_input_mux_put(codec, imux, ucontrol, nid,
&spec->cur_mux[adc_idx]);
}
}
@@ -1153,6 +1157,226 @@
}
/*
+ * ALC888
+ */
+
+/*
+ * 2ch mode
+ */
+static struct hda_verb alc888_4ST_ch2_intel_init[] = {
+/* Mic-in jack as mic in */
+ { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 },
+ { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE },
+/* Line-in jack as Line in */
+ { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN },
+ { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE },
+/* Line-Out as Front */
+ { 0x17, AC_VERB_SET_CONNECT_SEL, 0x00},
+ { } /* end */
+};
+
+/*
+ * 4ch mode
+ */
+static struct hda_verb alc888_4ST_ch4_intel_init[] = {
+/* Mic-in jack as mic in */
+ { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 },
+ { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE },
+/* Line-in jack as Surround */
+ { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
+ { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
+/* Line-Out as Front */
+ { 0x17, AC_VERB_SET_CONNECT_SEL, 0x00},
+ { } /* end */
+};
+
+/*
+ * 6ch mode
+ */
+static struct hda_verb alc888_4ST_ch6_intel_init[] = {
+/* Mic-in jack as CLFE */
+ { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
+ { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
+/* Line-in jack as Surround */
+ { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
+ { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
+/* Line-Out as CLFE (workaround because Mic-in is not loud enough) */
+ { 0x17, AC_VERB_SET_CONNECT_SEL, 0x03},
+ { } /* end */
+};
+
+/*
+ * 8ch mode
+ */
+static struct hda_verb alc888_4ST_ch8_intel_init[] = {
+/* Mic-in jack as CLFE */
+ { 0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
+ { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
+/* Line-in jack as Surround */
+ { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
+ { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
+/* Line-Out as Side */
+ { 0x17, AC_VERB_SET_CONNECT_SEL, 0x03},
+ { } /* end */
+};
+
+static struct hda_channel_mode alc888_4ST_8ch_intel_modes[4] = {
+ { 2, alc888_4ST_ch2_intel_init },
+ { 4, alc888_4ST_ch4_intel_init },
+ { 6, alc888_4ST_ch6_intel_init },
+ { 8, alc888_4ST_ch8_intel_init },
+};
+
+/*
+ * ALC888 Fujitsu Siemens Amillo xa3530
+ */
+
+static struct hda_verb alc888_fujitsu_xa3530_verbs[] = {
+/* Front Mic: set to PIN_IN (empty by default) */
+ {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
+/* Connect Internal HP to Front */
+ {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+ {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
+ {0x14, AC_VERB_SET_CONNECT_SEL, 0x00},
+/* Connect Bass HP to Front */
+ {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+ {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
+ {0x15, AC_VERB_SET_CONNECT_SEL, 0x00},
+/* Connect Line-Out side jack (SPDIF) to Side */
+ {0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+ {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
+ {0x17, AC_VERB_SET_CONNECT_SEL, 0x03},
+/* Connect Mic jack to CLFE */
+ {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+ {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
+ {0x18, AC_VERB_SET_CONNECT_SEL, 0x02},
+/* Connect Line-in jack to Surround */
+ {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+ {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
+ {0x1a, AC_VERB_SET_CONNECT_SEL, 0x01},
+/* Connect HP out jack to Front */
+ {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+ {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
+ {0x1b, AC_VERB_SET_CONNECT_SEL, 0x00},
+/* Enable unsolicited event for HP jack and Line-out jack */
+ {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN},
+ {0x17, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN},
+ {}
+};
+
+static void alc888_fujitsu_xa3530_automute(struct hda_codec *codec)
+{
+ unsigned int present;
+ unsigned int bits;
+ /* Line out presence */
+ present = snd_hda_codec_read(codec, 0x17, 0,
+ AC_VERB_GET_PIN_SENSE, 0) & 0x80000000;
+ /* HP out presence */
+ present = present || snd_hda_codec_read(codec, 0x1b, 0,
+ AC_VERB_GET_PIN_SENSE, 0) & 0x80000000;
+ bits = present ? HDA_AMP_MUTE : 0;
+ /* Toggle internal speakers muting */
+ snd_hda_codec_amp_stereo(codec, 0x14, HDA_OUTPUT, 0,
+ HDA_AMP_MUTE, bits);
+ /* Toggle internal bass muting */
+ snd_hda_codec_amp_stereo(codec, 0x15, HDA_OUTPUT, 0,
+ HDA_AMP_MUTE, bits);
+}
+
+static void alc888_fujitsu_xa3530_unsol_event(struct hda_codec *codec,
+ unsigned int res)
+{
+ if (res >> 26 == ALC880_HP_EVENT)
+ alc888_fujitsu_xa3530_automute(codec);
+}
+
+
+/*
+ * ALC888 Acer Aspire 4930G model
+ */
+
+static struct hda_verb alc888_acer_aspire_4930g_verbs[] = {
+/* Front Mic: set to PIN_IN (empty by default) */
+ {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
+/* Unselect Front Mic by default in input mixer 3 */
+ {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0xb)},
+/* Enable unsolicited event for HP jack */
+ {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN},
+/* Connect Internal HP to front */
+ {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+ {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
+ {0x14, AC_VERB_SET_CONNECT_SEL, 0x00},
+/* Connect HP out to front */
+ {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+ {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
+ {0x15, AC_VERB_SET_CONNECT_SEL, 0x00},
+ { }
+};
+
+static struct hda_input_mux alc888_2_capture_sources[2] = {
+ /* Front mic only available on one ADC */
+ {
+ .num_items = 4,
+ .items = {
+ { "Mic", 0x0 },
+ { "Line", 0x2 },
+ { "CD", 0x4 },
+ { "Front Mic", 0xb },
+ },
+ },
+ {
+ .num_items = 3,
+ .items = {
+ { "Mic", 0x0 },
+ { "Line", 0x2 },
+ { "CD", 0x4 },
+ },
+ }
+};
+
+static struct snd_kcontrol_new alc888_base_mixer[] = {
+ HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT),
+ HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT),
+ HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT),
+ HDA_BIND_MUTE("Surround Playback Switch", 0x0d, 2, HDA_INPUT),
+ HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x0e, 1, 0x0,
+ HDA_OUTPUT),
+ HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x0e, 2, 0x0, HDA_OUTPUT),
+ HDA_BIND_MUTE_MONO("Center Playback Switch", 0x0e, 1, 2, HDA_INPUT),
+ HDA_BIND_MUTE_MONO("LFE Playback Switch", 0x0e, 2, 2, HDA_INPUT),
+ HDA_CODEC_VOLUME("Side Playback Volume", 0x0f, 0x0, HDA_OUTPUT),
+ HDA_BIND_MUTE("Side Playback Switch", 0x0f, 2, HDA_INPUT),
+ HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT),
+ HDA_CODEC_MUTE("CD Playback Switch", 0x0b, 0x04, HDA_INPUT),
+ HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT),
+ HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT),
+ HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT),
+ HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT),
+ HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT),
+ HDA_CODEC_VOLUME("PC Speaker Playback Volume", 0x0b, 0x05, HDA_INPUT),
+ HDA_CODEC_MUTE("PC Speaker Playback Switch", 0x0b, 0x05, HDA_INPUT),
+ { } /* end */
+};
+
+static void alc888_acer_aspire_4930g_automute(struct hda_codec *codec)
+{
+ unsigned int present;
+ unsigned int bits;
+ present = snd_hda_codec_read(codec, 0x15, 0,
+ AC_VERB_GET_PIN_SENSE, 0) & 0x80000000;
+ bits = present ? HDA_AMP_MUTE : 0;
+ snd_hda_codec_amp_stereo(codec, 0x14, HDA_OUTPUT, 0,
+ HDA_AMP_MUTE, bits);
+}
+
+static void alc888_acer_aspire_4930g_unsol_event(struct hda_codec *codec,
+ unsigned int res)
+{
+ if (res >> 26 == ALC880_HP_EVENT)
+ alc888_acer_aspire_4930g_automute(codec);
+}
+
+/*
* ALC880 3-stack model
*
* DAC: Front = 0x02 (0x0c), Surr = 0x05 (0x0f), CLFE = 0x04 (0x0e)
@@ -6868,6 +7092,8 @@
#define ALC883_DIGOUT_NID 0x06
#define ALC883_DIGIN_NID 0x0a
+#define ALC1200_DIGOUT_NID 0x10
+
static hda_nid_t alc883_dac_nids[4] = {
/* front, rear, clfe, rear_surr */
0x02, 0x03, 0x04, 0x05
@@ -6883,8 +7109,15 @@
0x08,
};
+static hda_nid_t alc883_adc_nids_rev[2] = {
+ /* ADC2-1 */
+ 0x09, 0x08
+};
+
static hda_nid_t alc883_capsrc_nids[2] = { 0x23, 0x22 };
+static hda_nid_t alc883_capsrc_nids_rev[2] = { 0x22, 0x23 };
+
/* input MUX */
/* FIXME: should be a matrix-type input source selection */
@@ -8176,6 +8409,7 @@
[ALC883_TARGA_2ch_DIG] = "targa-2ch-dig",
[ALC883_ACER] = "acer",
[ALC883_ACER_ASPIRE] = "acer-aspire",
+ [ALC888_ACER_ASPIRE_4930G] = "acer-aspire-4930g",
[ALC883_MEDION] = "medion",
[ALC883_MEDION_MD2] = "medion-md2",
[ALC883_LAPTOP_EAPD] = "laptop-eapd",
@@ -8189,7 +8423,9 @@
[ALC883_MITAC] = "mitac",
[ALC883_CLEVO_M720] = "clevo-m720",
[ALC883_FUJITSU_PI2515] = "fujitsu-pi2515",
+ [ALC888_FUJITSU_XA3530] = "fujitsu-xa3530",
[ALC883_3ST_6ch_INTEL] = "3stack-6ch-intel",
+ [ALC1200_ASUS_P5Q] = "asus-p5q",
[ALC883_AUTO] = "auto",
};
@@ -8200,6 +8436,8 @@
SND_PCI_QUIRK(0x1025, 0x0110, "Acer Aspire", ALC883_ACER_ASPIRE),
SND_PCI_QUIRK(0x1025, 0x0112, "Acer Aspire 9303", ALC883_ACER_ASPIRE),
SND_PCI_QUIRK(0x1025, 0x0121, "Acer Aspire 5920G", ALC883_ACER_ASPIRE),
+ SND_PCI_QUIRK(0x1025, 0x013e, "Acer Aspire 4930G",
+ ALC888_ACER_ASPIRE_4930G),
SND_PCI_QUIRK(0x1025, 0, "Acer laptop", ALC883_ACER), /* default Acer */
SND_PCI_QUIRK(0x1028, 0x020d, "Dell Inspiron 530", ALC888_6ST_DELL),
SND_PCI_QUIRK(0x103c, 0x2a3d, "HP Pavillion", ALC883_6ST_DIG),
@@ -8208,6 +8446,7 @@
SND_PCI_QUIRK(0x103c, 0x2a61, "HP Nettle", ALC883_6ST_DIG),
SND_PCI_QUIRK(0x1043, 0x1873, "Asus M90V", ALC888_ASUS_M90V),
SND_PCI_QUIRK(0x1043, 0x8249, "Asus M2A-VM HDMI", ALC883_3ST_6ch_DIG),
+ SND_PCI_QUIRK(0x1043, 0x82fe, "Asus P5Q-EM HDMI", ALC1200_ASUS_P5Q),
SND_PCI_QUIRK(0x1043, 0x835f, "Asus Eee 1601", ALC888_ASUS_EEE1601),
SND_PCI_QUIRK(0x105b, 0x0ce8, "Foxconn P35AX-S", ALC883_6ST_DIG),
SND_PCI_QUIRK(0x105b, 0x6668, "Foxconn", ALC883_6ST_DIG),
@@ -8245,6 +8484,7 @@
SND_PCI_QUIRK(0x15d9, 0x8780, "Supermicro PDSBA", ALC883_3ST_6ch),
SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_MEDION),
SND_PCI_QUIRK(0x1734, 0x1108, "Fujitsu AMILO Pi2515", ALC883_FUJITSU_PI2515),
+ SND_PCI_QUIRK(0x1734, 0x113d, "Fujitsu AMILO Xa3530", ALC888_FUJITSU_XA3530),
SND_PCI_QUIRK(0x17aa, 0x101e, "Lenovo 101e", ALC883_LENOVO_101E_2ch),
SND_PCI_QUIRK(0x17aa, 0x2085, "Lenovo NB0763", ALC883_LENOVO_NB0763),
SND_PCI_QUIRK(0x17aa, 0x3bfc, "Lenovo NB0763", ALC883_LENOVO_NB0763),
@@ -8370,6 +8610,26 @@
.unsol_event = alc883_acer_aspire_unsol_event,
.init_hook = alc883_acer_aspire_automute,
},
+ [ALC888_ACER_ASPIRE_4930G] = {
+ .mixers = { alc888_base_mixer,
+ alc883_chmode_mixer },
+ .init_verbs = { alc883_init_verbs, alc880_gpio1_init_verbs,
+ alc888_acer_aspire_4930g_verbs },
+ .num_dacs = ARRAY_SIZE(alc883_dac_nids),
+ .dac_nids = alc883_dac_nids,
+ .num_adc_nids = ARRAY_SIZE(alc883_adc_nids_rev),
+ .adc_nids = alc883_adc_nids_rev,
+ .capsrc_nids = alc883_capsrc_nids_rev,
+ .dig_out_nid = ALC883_DIGOUT_NID,
+ .num_channel_mode = ARRAY_SIZE(alc883_3ST_6ch_modes),
+ .channel_mode = alc883_3ST_6ch_modes,
+ .need_dac_fix = 1,
+ .num_mux_defs =
+ ARRAY_SIZE(alc888_2_capture_sources),
+ .input_mux = alc888_2_capture_sources,
+ .unsol_event = alc888_acer_aspire_4930g_unsol_event,
+ .init_hook = alc888_acer_aspire_4930g_automute,
+ },
[ALC883_MEDION] = {
.mixers = { alc883_fivestack_mixer,
alc883_chmode_mixer },
@@ -8513,6 +8773,23 @@
.unsol_event = alc883_2ch_fujitsu_pi2515_unsol_event,
.init_hook = alc883_2ch_fujitsu_pi2515_automute,
},
+ [ALC888_FUJITSU_XA3530] = {
+ .mixers = { alc888_base_mixer, alc883_chmode_mixer },
+ .init_verbs = { alc883_init_verbs, alc888_fujitsu_xa3530_verbs },
+ .num_dacs = ARRAY_SIZE(alc883_dac_nids),
+ .dac_nids = alc883_dac_nids,
+ .num_adc_nids = ARRAY_SIZE(alc883_adc_nids_rev),
+ .adc_nids = alc883_adc_nids_rev,
+ .capsrc_nids = alc883_capsrc_nids_rev,
+ .dig_out_nid = ALC883_DIGOUT_NID,
+ .num_channel_mode = ARRAY_SIZE(alc888_4ST_8ch_intel_modes),
+ .channel_mode = alc888_4ST_8ch_intel_modes,
+ .num_mux_defs =
+ ARRAY_SIZE(alc888_2_capture_sources),
+ .input_mux = alc888_2_capture_sources,
+ .unsol_event = alc888_fujitsu_xa3530_unsol_event,
+ .init_hook = alc888_fujitsu_xa3530_automute,
+ },
[ALC888_LENOVO_SKY] = {
.mixers = { alc888_lenovo_sky_mixer, alc883_chmode_mixer },
.init_verbs = { alc883_init_verbs, alc888_lenovo_sky_verbs},
@@ -8555,6 +8832,17 @@
.unsol_event = alc883_eee1601_unsol_event,
.init_hook = alc883_eee1601_inithook,
},
+ [ALC1200_ASUS_P5Q] = {
+ .mixers = { alc883_base_mixer, alc883_chmode_mixer },
+ .init_verbs = { alc883_init_verbs },
+ .num_dacs = ARRAY_SIZE(alc883_dac_nids),
+ .dac_nids = alc883_dac_nids,
+ .dig_out_nid = ALC1200_DIGOUT_NID,
+ .dig_in_nid = ALC883_DIGIN_NID,
+ .num_channel_mode = ARRAY_SIZE(alc883_sixstack_modes),
+ .channel_mode = alc883_sixstack_modes,
+ .input_mux = &alc883_capture_source,
+ },
};

View File

@ -1,21 +1,27 @@
DIST 2.6.27-AA2.3.tgz 174461 RMD160 f8331da198101995600217cf5446b5fda796cb44 SHA1 19fd3af92b98ed52301045072788d0369895f927 SHA256 82534e7978e2fef2f5555f770987b6651a6efdd3c8c3fe04c5f738a4f0918d98
DIST 2.6.27-AA2.3.tgz 94287 RMD160 f189132cc009c41024b199ae0b0505891453d442 SHA1 3a42dfc858b6f80a78b99b63a805db784653ab23 SHA256 e1ff7139dc6c344ad2a069aa69d45cbd411872480335132b8e90368798afaaf6
DIST 2.6.27.4-ext4.tar.gz 167096 RMD160 943c56a52034f0423a3517c97a2ab0faac18b6b8 SHA1 3b83be52ef9c11915e3a07a79f7cc06c2722e90b SHA256 ec041900086ca6e3a2e2b3f4ae1ae2fcfbdca6dbe9b3484e5fb16ba7e0252f62
DIST 2.6.28-AA2.3.tgz 94123 RMD160 3499f7118e7cf8a9003fefdd2ca8eb643ec8fe31 SHA1 ad7b89ad04716f7289ce061ec04b2769b4460be5 SHA256 600abf3fbe28742a7de1da6e67584857e980e2e84a16ec3f658f6afe465f45fd
DIST UnionFS_2.5-AppArmor_2.3.patch 10524 RMD160 808fce3fb3eb2f7d98ed95b654f44908ed5d8e19 SHA1 727db0d207a308bfccf7ad547f4976aa50a1ccaf SHA256 5fa66d26774d388c643151bb975e65354e5c7193dfc0ac3a83ff761bed18eba1
DIST acpi-dsdt-initrd-v0.9c-2.6.26.patch 10058 RMD160 f568e92e79d95892e8e56396f83b2628bd34fd6e SHA1 0581b78d842ba8ba4a3be58974a2abbcf67124a2 SHA256 4c63609b13ea1a4abbd27e173c96cdd62faa51758e934607403471c518a7290f
DIST acpi-dsdt-initrd-v0.9c-2.6.28.patch 9992 RMD160 3d29ad2cdc6232282a85569979368c85a76879b1 SHA1 a219e0896346936a402d6f188174271d8e706eff SHA256 286a88dd244addc0f0bab1b8cb20cd435a471c1927b55220e892bdec1a0ea759
DIST genpatches-2.6.27-4.base.tar.bz2 23928 RMD160 d50a94ec3038dd80d38a52d139f2f4185792df49 SHA1 b671e45b169920b7b6b056ec373620e2df840358 SHA256 d0c321279ce26750cd159a5d4a736182dca871fb12574f256786df03e99f12f6
DIST genpatches-2.6.27-4.extras.tar.bz2 41456 RMD160 bd6e5fc57d4895c23401f22892f630097174aead SHA1 35a86799ee1d4f55e347b2f01f64e4abbda8a7ae SHA256 384ecb94815261a960dd57b942206d73e2a7ad0e4d883400860a47f01573bd41
DIST genpatches-2.6.27-5.base.tar.bz2 66486 RMD160 3ca48c4498fc9847aa25fd4892f7b22488bf5088 SHA1 69871df039a229e53313c46174587c804cda4fb6 SHA256 2c479c575a7c5d40f87e87b38152ea9de37b3f4ca2e1df398d22de37e5eec05d
DIST genpatches-2.6.27-5.extras.tar.bz2 41426 RMD160 397613722743a32ab81400e012f55218ae22364c SHA1 fc53b3275807e628cbdce2a3b6e6f55bfae56256 SHA256 623210e5c141e99ae65f8729e44a242e3e6799bf5d0d3dba5d74db10766862aa
DIST genpatches-2.6.27-6.base.tar.bz2 81909 RMD160 01613128158ea5e59b155dcce7b05dd44685c4f0 SHA1 6d37177472f80dd85371a183570e748ea3aaba1c SHA256 86c43daf525ad7fb7ddbe71806a2132dd57b294e6efa5ab3c30e0fd6661ededb
DIST genpatches-2.6.27-6.extras.tar.bz2 41456 RMD160 bd6e5fc57d4895c23401f22892f630097174aead SHA1 35a86799ee1d4f55e347b2f01f64e4abbda8a7ae SHA256 384ecb94815261a960dd57b942206d73e2a7ad0e4d883400860a47f01573bd41
DIST genpatches-2.6.27-7.extras.tar.bz2 41456 RMD160 bd6e5fc57d4895c23401f22892f630097174aead SHA1 35a86799ee1d4f55e347b2f01f64e4abbda8a7ae SHA256 384ecb94815261a960dd57b942206d73e2a7ad0e4d883400860a47f01573bd41
DIST hda_realtek_xa3530.diff.bz2 3246 RMD160 4e65261a1d90971ed9fc57662cb2f4e9868a59e6 SHA1 9b363b2e5511d06d9d3552475d5df0baa1e05db1 SHA256 801cf43fddf060beedf0dfe6b8944be0ee5e508b68246a5251d0a432dd314967
DIST linux-2.6.27.tar.bz2 50355835 RMD160 5be4595ad824a4af67c1ec0c692838ad0c31f0c0 SHA1 8425ec3be2652f9d511911ff4fcf99039d4574be SHA256 0e99bf9e83f4d1ae0c656741a84dfddfa9c4d2469cf35475f5939d02dc3e4393
DIST patch-2.6.28-rc7.bz2 9786476 RMD160 0b7a996828c7e5c50394e0063dc6810ce2ef3c1b SHA1 3ff6a7c1c23dce0637aa21c99e6064b1644a2f6f SHA256 fbb5ee21210a4e4e1fe25941c6e16ec0fe8634817e6c96145128f376ba0c640b
DIST reiser4-for-2.6.27.patch.bz2 449626 RMD160 d4efaac12976068799cb32ce7c157bf086161e77 SHA1 95e94375bd691f7453f39d4fca7873b5eb92fcc0 SHA256 24f5e1eceaa513bace23ee34c50051e9cdf21bf20a36eb2b19706375d928962f
DIST tuxonice-3.0-rc7a-for-2.6.27-rc3.patch.bz2 113142 RMD160 99cde80e345320fe786ec1218c73f0a0226a412d SHA1 37063e593b20e1cc7b356bd9600ed471f010610c SHA256 b62d43d8ddf127c05463dbacc17267a58fd24ade0da2aedf44047f1ac9356f7c
DIST tuxonice-3.0-rc7a-for-2.6.28-rc7.patch.bz2 113481 RMD160 711221651982eef0692a74e16fd24ff216fbfc8a SHA1 9845621db0545716e2bc09742b1d1f08ab2f779d SHA256 cd7e061e6b143db351f1e4c5fe4c94536d5efe22e49c45f560734c144234ae8e
DIST unionfs-2.5_for_2.6.27-rc6.diff.gz 79653 RMD160 76865cec929c03aebec728e1526c0e4e0cf49d87 SHA1 82be9b593102a6053433c1964c9b7b4fbfc2ede6 SHA256 15a79b5c88f5a76877f2940736edac3416e29c9e38411d2417f3d81d10a52bd4
EBUILD geos_one-sources-2.6.27-r3.ebuild 2818 RMD160 b0fd5f2325e676f63333ae05e348be85d8867a96 SHA1 c130971e016e3c9270a376db5d867c9875a8cb0e SHA256 3c42da9bc2f3867dc81ebec207504ae7fc62938db8a2dbdd66b660ae31d3ef52
EBUILD geos_one-sources-2.6.27-r4.ebuild 3188 RMD160 b1a913ed142b956140c8a2ea48baa7b11642dff7 SHA1 692ad5d09c4e135e640c5a1828c26ab71ddebf23 SHA256 14e836f0b0837b705c1d569f42eaa3fdd89c26f8cef11eaec136afe9c1fecdac
EBUILD geos_one-sources-2.6.27-r5.ebuild 3265 RMD160 0c586971609d1e16df2da29e50845fad2608843a SHA1 a9c6278c6bfa00a9f08d560d0831e6bbb9ae7cac SHA256 2a5b2925d26f802c10a734581ff803f9a000de6eabdb61b260729f32f5fe2efa
EBUILD geos_one-sources-2.6.27.ebuild 2818 RMD160 69ef8455d7c694d38fed4f5cfefa2887d8b034e9 SHA1 53d881b5df29947ff7783b2cc25f6c4e1997be9d SHA256 e5051c904dfbc282d6e37c9e9f9710d74f9932f8a1b1a120371f14cd6c241fa9
EBUILD geos_one-sources-2.6.28_rc7.ebuild 2951 RMD160 b18a295844a99d529362aaef5b261e70eb3e63fc SHA1 35cb4d06e6cdeb5be81f1d09bcb8df9547f89712 SHA256 b6a91fc09f7c39ef475c1afa6928ce18e94330091c05f3daffa12c3b45238145
MISC ChangeLog 1659 RMD160 8d6a21ddb135824976a04a75e0ac363de2a5705f SHA1 c06475def1e2cb208b8a68f6dfc171d8ddd8aeca SHA256 79e86a999cd1eb0d7bdc3c1d8df55041fc0138c781a2e957e45371e93c894190
MISC metadata.xml 413 RMD160 7e4e48d47e48804072f4ce93e1948fda82433a90 SHA1 cd61cf36ba79f6635ab7b7957f31609ecf52cc90 SHA256 74fe6520890eaf800a1759f3e4f772fd0e433e5de9cf775a50c7af95b199518b