From 8865c1f6b684273cb0c7b0bf744fab3411172fef Mon Sep 17 00:00:00 2001 From: geos_one Date: Wed, 10 Dec 2008 16:34:22 +0000 Subject: [PATCH] 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 --- media-sound/alsa-driver/Manifest | 3 + .../alsa-driver/alsa-driver-1.0.18a.ebuild | 184 ++++++++ .../files/alsa-driver-1.0.18a-xa3530.patch | 416 ++++++++++++++++++ sys-kernel/geos_one-sources/Manifest | 8 +- 4 files changed, 610 insertions(+), 1 deletion(-) create mode 100644 media-sound/alsa-driver/Manifest create mode 100644 media-sound/alsa-driver/alsa-driver-1.0.18a.ebuild create mode 100644 media-sound/alsa-driver/files/alsa-driver-1.0.18a-xa3530.patch diff --git a/media-sound/alsa-driver/Manifest b/media-sound/alsa-driver/Manifest new file mode 100644 index 00000000..48bf8986 --- /dev/null +++ b/media-sound/alsa-driver/Manifest @@ -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 diff --git a/media-sound/alsa-driver/alsa-driver-1.0.18a.ebuild b/media-sound/alsa-driver/alsa-driver-1.0.18a.ebuild new file mode 100644 index 00000000..648ca27f --- /dev/null +++ b/media-sound/alsa-driver/alsa-driver-1.0.18a.ebuild @@ -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 +} diff --git a/media-sound/alsa-driver/files/alsa-driver-1.0.18a-xa3530.patch b/media-sound/alsa-driver/files/alsa-driver-1.0.18a-xa3530.patch new file mode 100644 index 00000000..ec10e2bd --- /dev/null +++ b/media-sound/alsa-driver/files/alsa-driver-1.0.18a-xa3530.patch @@ -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, ++ }, + }; + + diff --git a/sys-kernel/geos_one-sources/Manifest b/sys-kernel/geos_one-sources/Manifest index df3e8995..c298248f 100644 --- a/sys-kernel/geos_one-sources/Manifest +++ b/sys-kernel/geos_one-sources/Manifest @@ -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