diff options
author | Joshua Ismael Haase Hernández <hahj87@gmail.com> | 2011-09-19 11:59:33 -0500 |
---|---|---|
committer | Joshua Ismael Haase Hernández <hahj87@gmail.com> | 2011-09-19 11:59:33 -0500 |
commit | e40531aab32ff93b1f9da20d8a43a440d8dffaca (patch) | |
tree | 837260c74cb8eef56e640ee52b2e329e13719276 /libre | |
parent | 6fab33c9210eaa90d0a0179f7e49c339ea88990f (diff) | |
parent | 171f25215eee368fe64f1eed02ce49de090f4b0d (diff) |
Merge branch 'master' of gitpar:abslibre-mips64el
Diffstat (limited to 'libre')
51 files changed, 2962 insertions, 538 deletions
diff --git a/libre/audacious-plugins-libre/PKGBUILD b/libre/audacious-plugins-libre/PKGBUILD index 0b6af2cd2..e0607a940 100644 --- a/libre/audacious-plugins-libre/PKGBUILD +++ b/libre/audacious-plugins-libre/PKGBUILD @@ -1,33 +1,48 @@ # $Id$ -# Contributor: Alexander Fehr <pizzapunk gmail com> -# Contributor: William Rea <sillywilly@gmail.com> +# Arch Contributor: Alexander Fehr <pizzapunk gmail com> +# Arch Contributor: William Rea <sillywilly@gmail.com> +# Arch maintainer: Gaetan Bisson <bisson@archlinux.org> +# Parabola maintainer: Brendan Tildesley pkgname=audacious-plugins-libre -pkgver=2.5.1 -pkgrel=2 +pkgver=3.1 +pkgrel=1 pkgdesc='Plugins for Audacious without unfree plugins' -arch=('i686' 'x86_64' 'mips64el') url='http://audacious-media-player.org/' -license=('GPL') +arch=('i686' 'x86_64' 'mips64el') +license=('GPL' 'GPL3' 'LGPL' 'custom') + +# Licensing issues: +# The plugins 'scrobbler', stereoplugin', 'wavepack' and 'plugin_echo' have no license notice +# but I've been informed by an upstream dev, <nenolod>, that they are all GPL of some type. +# +# The plugin 'psf' is currently BSD+noncommercial, but is apparently being changed to GPL. +# However, 'psf' is apparently an emulator for running non-free code, so I'll leave it out. +# +# All the other custom licensed plugins I think are mostly modified BSD or ISC. + provides=("audacious-plugins=$pkgver") replaces=("${pkgname%-libre}") conflicts=("${pkgname%-libre}") makedepends=("audacious>=${pkgver}" - 'alsa-lib' 'pulseaudio' 'jack' 'lame' 'libvorbis' 'flac' - 'faad2' 'ffmpeg' 'fluidsynth' 'libcdio' 'libsidplay' 'wavpack' + 'oss' 'alsa-lib' 'pulseaudio' 'jack2' 'lame' 'libvorbis' 'flac' + 'mpg123' 'faad2' 'ffmpeg' 'libmodplug' 'fluidsynth' 'libcdio' 'libsidplay' 'wavpack' 'libnotify' 'lirc-utils' 'curl' 'libmtp' 'neon' 'libmms' 'libcue') -optdepends=('alsa-lib: Advanced Linux Sound Arch. output' +optdepends=('oss: Open Sound System v4 output' + 'alsa-lib: Advanced Linux Sound Arch. output' 'pulseaudio: PulseAudio output' - 'jack: Jack Audio Connection Kit output' + 'jack2: Jack Audio Connection Kit output' 'lame: FileWriter MP3 output' 'libvorbis: Vorbis input, FileWriter Vorbis output' 'flac: FLAC input, FileWriter FLAC output' + 'mpg123: MP3 input' 'faad2: AAC input' 'ffmpeg: ffaudio input' + 'libmodplug: modplug input' 'fluidsynth: MIDI FluidSynth backend input' 'libcdio: CD Digital Audio input' 'libsidplay: Commodore 64 audio input' @@ -42,44 +57,77 @@ optdepends=('alsa-lib: Advanced Linux Sound Arch. output' 'libmms: libmms-based mms transport' 'libcue: CUE playlist format') -source=("http://repo.parabolagnulinux.org/other/$pkgname-$pkgver.tar.gz") +source=("http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}.tar.xz") +sha1sums=('d5f2ef19cda220d6fa7dd26c514c5c22c8dd7b42') -# Source PKGBUILD and run this function from the shell +# Retrieve upstream & remove plugins 'psf' & 'usf' due to issues mentioned above. Repackage as -libre mksource(){ - tmpdir=$(mktemp -d /tmp/audacious-XXXX) - pushd $tmpdir >/dev/null - wget "http://distfiles.atheme.org/${pkgname%-libre}-$pkgver.tgz" -O - -q | tar xzf - - - rm -rvf ${pkgname%-libre}-$pkgver/src/{u,p}sf/ + [ -f ${pkgname%-libre}-$pkgver.tar.gz ] || wget http://distfiles.atheme.org/${pkgname%-libre}-$pkgver.tar.gz + tar xzf ${pkgname%-libre}-${pkgver}.tar.gz - mv -v ${pkgname%-libre}-$pkgver ${pkgname}-$pkgver + rm -rvf ${pkgname%-libre}-$pkgver/src/{p,u}usf/ + sed -i s/enable_psf=yes/enable_psf=no/ ${pkgname%-libre}-$pkgver/configure - tar czf ${pkgname}-${pkgver}.tar.gz ${pkgname}-${pkgver}/ + mv -v ${pkgname%-libre}-$pkgver ${pkgname}-$pkgver + tar cJf ${pkgname}-${pkgver}.tar.xz ${pkgname}-${pkgver}/ + rm -rf ${pkgname}-${pkgver} + echo "${pkgname}-${pkgver}.tar.xz is your new -libre source package." - echo "You can find the sources at $tmpdir" - - popd >/dev/null } build() { - cd "$srcdir/$pkgname-$pkgver" - - sed 's/libavcore >= 0.12.0//g' -i configure # FS#23549 - - [[ $CARCH == x86_64 ]] && extraopts='' || extraopts='--disable-sse2' - ./configure \ - --prefix=/usr \ - --enable-chardet \ - --enable-amidiplug \ - --disable-adplug \ - --disable-psf \ - $extraopts \ + cd "${srcdir}/${pkgname}-${pkgver}" + + # hack to enable global hotkeys with gtk3 + sed -e 's/gdk-x11-2.0/gdk-x11-3.0/g' -i configure + + # Get license notices out of custom-licensed packages + cd src + tmpdir=$(mktemp -d /tmp/${pkgname}-${pkgver}-XXXX) + head -n 18 albumart/albumart.c | cut -c 4- | tail -n 17 > ${tmpdir}/LICENSE.albumart + head -n 17 alsa/alsa.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.alsa + head -n 18 cairo-spectrum/cairo-spectrum.c | cut -c 4- | tail -n 17 > ${tmpdir}/LICENSE.cairo-spectrum + head -n 17 compressor/compressor.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.compressor + head -n 17 crossfade/crossfade.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.crossfade + head -n 18 crystalizer/crystalizer.c | cut -c 4- | tail -n 17 > ${tmpdir}/LICENSE.crystalizer + head -n 22 dockalbumart/dockalbumart.c | cut -c 4- | tail -n 21 > ${tmpdir}/LICENSE.dockalbumart + head -n 18 lyricwiki/lyricwiki.c | cut -c 4- | tail -n 17 > ${tmpdir}/LICENSE.lyricwiki + head -n 19 mpg123/mpg123.c | cut -c 4- | tail -n 18 > ${tmpdir}/LICENSE.mpg123 + head -n 17 openal/openal.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.openal + head -n 17 resample/resample.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.resample + head -n 18 roaraudio-vio/roaraudio-vio.c | cut -c 4- | tail -n 17 > ${tmpdir}/LICENSE.roaraudio-vio + head -n 17 unix-io/unix-io.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.unix-io + head -n 18 voice_removal/voice_removal.c | cut -c 4- | tail -n 17 > ${tmpdir}/LICENSE.voice_removal + head -n 25 xsf/corlett.c | cut -c 2- | tail -n 23 > ${tmpdir}/LICENSE.xfs + l=${pkgdir}/usr/share/licenses/${pkgname}/ + install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} + cd .. + pushd $tmpdir + install -m644 LICENSE.albumart $l + install -m644 LICENSE.alsa $l + install -m644 LICENSE.cairo-spectrum $l + install -m644 LICENSE.compressor $l + install -m644 LICENSE.crossfade $l + install -m644 LICENSE.crystalizer $l + install -m644 LICENSE.dockalbumart $l + install -m644 LICENSE.lyricwiki $l + install -m644 LICENSE.mpg123 $l + install -m644 LICENSE.openal $l + install -m644 LICENSE.resample $l + install -m644 LICENSE.roaraudio-vio $l + install -m644 LICENSE.unix-io $l + install -m644 LICENSE.voice_removal $l + install -m644 LICENSE.xfs $l + popd + + ./configure --prefix=/usr \ + --enable-amidiplug \ + --disable-adplug make } package() { - cd "$srcdir/$pkgname-$pkgver" - make DESTDIR="$pkgdir" install + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install } -md5sums=('510b325eb3b13621b6f0e6745f6d0961') diff --git a/libre/crosstool-ng/PKGBUILD b/libre/crosstool-ng/PKGBUILD index e59e1b037..c836e7a24 100644 --- a/libre/crosstool-ng/PKGBUILD +++ b/libre/crosstool-ng/PKGBUILD @@ -2,22 +2,21 @@ # Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar> pkgname=crosstool-ng -pkgver=1.11.3 -pkgrel=2 +pkgver=1.13.0 +pkgrel=1 pkgdesc="A versatile cross toolchain generator (eglibc addons patch)" arch=('i686' 'x86_64' 'mips64el') url="http://crosstool-ng.org/" license=(GPL2) -depends=('cvs') +depends=('cvs' 'curl') +makedepends=('libtool') optdepends=('subversion: for retrieving eglibc sources') -source=(http://crosstool-ng.org/download/${pkgname}/${pkgname}-${pkgver}.tar.bz2 - libc_ports_short_name.patch) -md5sums=('3830cbdcc7e1a60c93caeaf98f718187' - '0a95af7e6ba35e02e38c71a3121b4448') +source=(http://crosstool-ng.org/download/${pkgname}/${pkgname}-${pkgver}.tar.bz2) + #libc_ports_short_name.patch) build() { cd $srcdir/$pkgname-$pkgver - patch -Np1 -i $srcdir/libc_ports_short_name.patch + #patch -Np1 -i $srcdir/libc_ports_short_name.patch ./configure --prefix=/usr make @@ -27,3 +26,4 @@ package() { cd $srcdir/$pkgname-$pkgver make DESTDIR=$pkgdir install } +md5sums=('55fba9f37b9f9ed0aeb6c50fbd8b6429') diff --git a/libre/epdfview-libre/0001-When-using-Poppler-0.17.0-I-needed-to-swap-the-blue-.patch b/libre/epdfview-libre/0001-When-using-Poppler-0.17.0-I-needed-to-swap-the-blue-.patch new file mode 100644 index 000000000..e077a15cf --- /dev/null +++ b/libre/epdfview-libre/0001-When-using-Poppler-0.17.0-I-needed-to-swap-the-blue-.patch @@ -0,0 +1,60 @@ +From d30496f52b85f82947bd07b9bd60f8482843ece8 Mon Sep 17 00:00:00 2001 +From: jordi <jordi@cb4bfb15-1111-0410-82e2-95233c8f1c7e> +Date: Tue, 5 Jul 2011 09:23:38 +0000 +Subject: [PATCH 1/2] When using Poppler 0.17.0, I needed to swap the blue and + red channels, otherwise the colors (other than black + and white) looked wierd. + +git-svn-id: svn://svn.emma-soft.com/epdfview/trunk@367 cb4bfb15-1111-0410-82e2-95233c8f1c7e +--- + src/PDFDocument.cxx | 20 ++++++++++++++++++++ + 1 files changed, 20 insertions(+), 0 deletions(-) + +diff --git a/src/PDFDocument.cxx b/src/PDFDocument.cxx +index df5d75f..63b3513 100644 +--- a/src/PDFDocument.cxx ++++ b/src/PDFDocument.cxx +@@ -20,6 +20,7 @@ + #include <time.h> + #include <poppler.h> + #include <unistd.h> ++#include <algorithm> + #include "epdfview.h" + + using namespace ePDFView; +@@ -33,6 +34,24 @@ static PageLayout convertPageLayout (gint pageLayout); + static PageMode convertPageMode (gint pageMode); + static gchar *getAbsoluteFileName (const gchar *fileName); + ++namespace ++{ ++ void ++ convert_bgra_to_rgba (guint8 *data, int width, int height) ++ { ++ using std::swap; ++ ++ for (int y = 0; y < height; y++) ++ { ++ for (int x = 0; x < width; x++) ++ { ++ swap(data[0], data[2]); ++ data += 4; ++ } ++ } ++ } ++} ++ + /// + /// @brief Constructs a new PDFDocument object. + /// +@@ -650,6 +669,7 @@ PDFDocument::renderPage (gint pageNum) + poppler_page_render (page, context); + cairo_destroy(context); + cairo_surface_destroy (surface); ++ convert_bgra_to_rgba(renderedPage->getData (), width, height); + #else // !HAVE_POPPLER_0_17_0 + // Create the pixbuf from the data and render to it. + GdkPixbuf *pixbuf = gdk_pixbuf_new_from_data (renderedPage->getData (), +-- +1.7.7 + diff --git a/libre/epdfview-libre/PKGBUILD b/libre/epdfview-libre/PKGBUILD new file mode 100644 index 000000000..9923ad1cf --- /dev/null +++ b/libre/epdfview-libre/PKGBUILD @@ -0,0 +1,49 @@ +# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu> +# $Id: PKGBUILD 57042 2011-10-19 06:13:49Z schuay $ +# Maintainer: schuay <jakob.gruber@gmail.com> +# Contributor: Tom K <tomk@runbox.com> +# Contributor: Thayer Williams <thayer@archlinux.org> + +pkgname=epdfview-libre +_pkgname=epdfview +pkgver=0.1.8 +pkgrel=3 +pkgdesc="A free lightweight PDF document viewer." +url="http://www.emma-soft.com/projects/epdfview/" +arch=('i686' 'x86_64' 'mips64el') +license=('GPL') +depends=('poppler-glib' 'desktop-file-utils' 'hicolor-icon-theme' 'gtk2' 'xdg-utils') +makedepends=('pkgconfig') +provides=('epdfview') +conflicts=('epdfview') +replaces=('epdfview') +install='epdfview.install' +source=("http://www.emma-soft.com/projects/${_pkgname}/chrome/site/releases/${_pkgname}-${pkgver}.tar.bz2" + "${_pkgname}.desktop.patch" + "0001-When-using-Poppler-0.17.0-I-needed-to-swap-the-blue-.patch") +md5sums=('e50285b01612169b2594fea375f53ae4' + 'fbf22bbabdbb7544db615ac5775d57e2' + '7f9ea101a41f5b4e999fd024f423d41f') + +build() { + cd "${srcdir}/${_pkgname}-${pkgver}" + + patch -Np0 -i "${srcdir}/${_pkgname}.desktop.patch" + patch -Np1 -i "${srcdir}/0001-When-using-Poppler-0.17.0-I-needed-to-swap-the-blue-.patch" + + # Use xdg-open as default browser. + sed -r '/DEFAULT_EXTERNAL_BROWSER_COMMAND_LINE/s/firefox[^ ]*/xdg-open/' -i src/Config.cxx + + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var + make +} +package() { + cd "${srcdir}/${_pkgname}-${pkgver}" + + make DESTDIR="${pkgdir}" install + + for size in 24 32 48; do + install -Dm644 data/icon_${_pkgname}-${size}.png \ + "${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/${_pkgname}.png" + done +} diff --git a/libre/epdfview-libre/epdfview.desktop.patch b/libre/epdfview-libre/epdfview.desktop.patch new file mode 100644 index 000000000..d86fc3088 --- /dev/null +++ b/libre/epdfview-libre/epdfview.desktop.patch @@ -0,0 +1,11 @@ +--- data/epdfview.desktop.bak 2009-04-05 16:55:56.000000000 -0700 ++++ data/epdfview.desktop 2009-04-05 16:56:33.000000000 -0700 +@@ -7,7 +7,7 @@ + GenericName=PDF Viewer + GenericName[ca]=Visor PDF + GenericName[es]=Visor PDF +-Icon=icon_epdfview-48 ++Icon=epdfview + Name=ePDFViewer + Name[ca]=ePDFViewer + Name[es]=ePDFViewer diff --git a/libre/epdfview-libre/epdfview.install b/libre/epdfview-libre/epdfview.install new file mode 100644 index 000000000..c317fbaca --- /dev/null +++ b/libre/epdfview-libre/epdfview.install @@ -0,0 +1,12 @@ +post_install() { + update-desktop-database -q + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} diff --git a/libre/ghostscript-libre/PKGBUILD b/libre/ghostscript-libre/PKGBUILD index 80a61b2af..81796c041 100644 --- a/libre/ghostscript-libre/PKGBUILD +++ b/libre/ghostscript-libre/PKGBUILD @@ -3,12 +3,12 @@ # Maintainer (Parabola): xihh pkgname=ghostscript-libre -pkgver=9.02 -pkgrel=2 +pkgver=9.04 +pkgrel=5 pkgdesc="An interpreter for the PostScript language without non-free files" arch=('i686' 'x86_64' 'mips64el') license=('GPL3') #non free files removed -depends=('libxt' 'libcups' 'fontconfig' 'jasper' 'zlib' 'libpng' 'libjpeg' 'libtiff') +depends=('libxt' 'libcups' 'fontconfig' 'jasper' 'zlib' 'libpng' 'libjpeg' 'libtiff' 'lcms') # 'lcms2' won't get used) # move in libpaper from community? makedepends=('gtk2' 'gnutls') optdepends=('texlive-core: needed for dvipdf' 'gtk2: needed for gsx') @@ -16,17 +16,18 @@ conflicts=('ghostscript') replaces=('ghostscript-lrpng' 'ghostscript') provides=('ghostscript-lprng' "ghostscript=$pkgver") url="http://www.ghostscript.com/" -source=(http://downloads.ghostscript.com/public/ghostscript-${pkgver}.tar.bz2) +source=(https://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-${pkgrel}-any.src.tar.xz + ghostscript-cups-rgbw.patch) options=('!libtool' '!makeflags') -md5sums=('f67151444bd56a7904579fc75a083dd6') build() { cd ${srcdir}/ghostscript-${pkgver} + + # fix broken color printing https://bugs.archlinux.org/task/25519 + patch -Np1 -i ${srcdir}/ghostscript-cups-rgbw.patch # force it to use system-libs - rm -rf jpeg libpng zlib jasper expat tiff - # delete non-free packages - grep -l "are not altered" Resource/CMap/* | xargs rm -fv + rm -rf jpeg libpng zlib jasper expat tiff freetype lcms ./configure --prefix=/usr \ --enable-dynamic \ @@ -36,7 +37,11 @@ build() { --with-x \ --with-drivers=ALL\ --with-fontpath=/usr/share/fonts/Type1:/usr/share/fonts \ - --disable-compile-inits # needed for linking with system-zlib + --with-install-cups \ + --enable-fontconfig \ + --enable-freetype \ + --without-luratech \ + --disable-compile-inits #--help # needed for linking with system-zlib make # Build IJS @@ -65,3 +70,5 @@ package() { cd ${srcdir}/ghostscript-${pkgver}/ijs make DESTDIR=${pkgdir} install } +md5sums=('ac8f77c94a6b5d5f0170c2e6db38c6bb' + 'fd89baafac6589dc93ba71a48c2ba9b4') diff --git a/libre/ghostscript-libre/SRCBUILD b/libre/ghostscript-libre/SRCBUILD new file mode 100644 index 000000000..dc28e857e --- /dev/null +++ b/libre/ghostscript-libre/SRCBUILD @@ -0,0 +1,32 @@ +# $Id: PKGBUILD 123066 2011-05-07 23:01:49Z stephane $ +# Maintainer: AndyRTR <andyrtr@archlinux.org> +# Maintainer (Parabola): xihh + +pkgname=ghostscript-libre +pkgver=9.04 +pkgrel=5 +pkgdesc="An interpreter for the PostScript language without non-free files" +arch=('any') +license=('GPL3') #non free files removed +url="http://www.ghostscript.com/" +source=(http://downloads.ghostscript.com/public/ghostscript-${pkgver}.tar.bz2) +md5sums=('9f6899e821ab6d78ab2c856f10fa3023') +options=(!strip !docs !libtool !emptydirs !zipman !purge) + +build() { + cd ${srcdir}/ghostscript-${pkgver} + + export PKGEXT=.src.tar.xz + + # delete non-free packages + grep -l "are not altered" Resource/CMap/* | xargs rm -fv +} + +package() { + cd ${srcdir} + export PKGEXT=.src.tar.xz + export PKGDEST=${startdir} + + mv ghostscript-${pkgver} ${pkgdir}/ + +} diff --git a/libre/ghostscript-libre/ghostscript-cups-rgbw.patch b/libre/ghostscript-libre/ghostscript-cups-rgbw.patch new file mode 100644 index 000000000..00f99c844 --- /dev/null +++ b/libre/ghostscript-libre/ghostscript-cups-rgbw.patch @@ -0,0 +1,264 @@ +diff -up ghostscript-9.04/cups/gdevcups.c.cups-rgbw ghostscript-9.04/cups/gdevcups.c +--- ghostscript-9.04/cups/gdevcups.c.cups-rgbw 2011-08-05 12:12:21.000000000 +0100 ++++ ghostscript-9.04/cups/gdevcups.c 2011-08-22 10:54:24.614010581 +0100 +@@ -225,6 +225,7 @@ typedef struct gx_device_cups_s + unsigned short EncodeLUT[gx_max_color_value + 1];/* RGB value to output color LUT */ + int Density[CUPS_MAX_VALUE + 1];/* Density LUT */ + int Matrix[3][3][CUPS_MAX_VALUE + 1];/* Color transform matrix LUT */ ++ int user_icc; + int cupsRasterVersion; + + /* Used by cups_put_params(): */ +@@ -426,6 +427,7 @@ gx_device_cups gs_cups_device = + {0x00}, /* EncodeLUT */ + {0x00}, /* Density */ + {0x00}, /* Matrix */ ++ 0, + 3 /* cupsRasterVersion */ + }; + +@@ -1182,15 +1184,18 @@ cups_map_cmyk(gx_device *pdev, /* I - D + + case CUPS_CSPACE_RGB : + case CUPS_CSPACE_RGBW : ++ c0 = c + k; ++ c1 = m + k; ++ c2 = y + k; + if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) { +- c0 = c; +- c1 = m; +- c2 = y; +- c3 = k; +- } else { +- c0 = c + k; +- c1 = m + k; +- c2 = y + k; ++ if ((k >= frac_1 - 1) || ++ ((c0 >= frac_1) && (c1 >= frac_1) && (c2 >= frac_1))) { ++ c0 = frac_1; ++ c1 = frac_1; ++ c2 = frac_1; ++ c3 = frac_1; ++ } else ++ c3 = 0; + } + + if (c0 < 0) +@@ -1212,11 +1217,12 @@ cups_map_cmyk(gx_device *pdev, /* I - D + out[2] = frac_1 - (frac)cups->Density[c2]; + + if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) { +- if (c3 < 0) +- c3 = 0; +- else if (c3 > frac_1) +- c3 = frac_1; +- out[3] = frac_1 - (frac)cups->Density[c3]; ++ if (c3 == 0) ++ out[3] = frac_1; ++ else if (c3 == frac_1) ++ out[3] = 0; ++ else ++ out[3] = frac_1; + } + break; + +@@ -2034,10 +2040,15 @@ cups_map_color_rgb(gx_device *pdev, + * cups->DecodeLUT actually maps to RGBW, not CMYK... + */ + +- k = cups->DecodeLUT[c3]; +- c = cups->DecodeLUT[c0] + k - gx_max_color_value; +- m = cups->DecodeLUT[c1] + k - gx_max_color_value; +- y = cups->DecodeLUT[c2] + k - gx_max_color_value; ++ if (c3 == 0) { ++ c = 0; ++ m = 0; ++ y = 0; ++ } else { ++ c = cups->DecodeLUT[c0]; ++ m = cups->DecodeLUT[c1]; ++ y = cups->DecodeLUT[c2]; ++ } + + if (c > gx_max_color_value) + prgb[0] = gx_max_color_value; +@@ -2282,20 +2293,20 @@ cups_map_rgb_color(gx_device *pdev, + switch (cups->header.cupsBitsPerColor) + { + default : +- i = 0x0e; ++ i = 0x00; + break; + case 2 : +- i = 0xfc; ++ i = 0x00; + break; + case 4 : +- i = 0xfff0; ++ i = 0x0000; + break; + case 8 : +- i = 0xffffff00; ++ i = 0x00000000; + break; + #ifdef GX_COLOR_INDEX_TYPE + case 16 : +- i = 0xffffffffffff0000; ++ i = 0x0000000000000000; + break; + #endif /* GX_COLOR_INDEX_TYPE */ + } +@@ -2929,7 +2940,10 @@ cups_put_params(gx_device *pdev, /* + int xflip = 0, + yflip = 0; + int found = 0; +- ++ gs_param_string icc_pro_dummy; ++ int old_cmps = cups->color_info.num_components; ++ int old_depth = cups->color_info.depth; ++ + #ifdef DEBUG + dprintf2("DEBUG2: cups_put_params(%p, %p)\n", pdev, plist); + #endif /* DEBUG */ +@@ -3024,6 +3038,11 @@ cups_put_params(gx_device *pdev, /* + margins_set = param_read_float_array(plist, "Margins", &arrayval) == 0; + color_set = param_read_int(plist, "cupsColorSpace", &intval) == 0 || + param_read_int(plist, "cupsBitsPerColor", &intval) == 0; ++ ++ if (!cups->user_icc) { ++ cups->user_icc = param_read_string(plist, "OutputICCProfile", &icc_pro_dummy) == 0; ++ } ++ + /* We set the old dimensions to 1 if we have a color depth change, so + that memory reallocation gets forced. This is perhaps not the correct + approach to prevent crashes like in bug 690435. We keep it for the +@@ -3134,12 +3153,20 @@ cups_put_params(gx_device *pdev, /* + if ((code = gdev_prn_put_params(pdev, plist)) < 0) + return (code); + ++ /* If cups_set_color_info() changed the color model of the device we want to ++ * force the raster memory to be recreated/reinitialized ++ */ ++ if (cups->color_info.num_components != old_cmps || cups->color_info.depth != old_depth) { ++ width_old = 0; ++ height_old = 0; ++ } ++ else { + /* pdev->width/height may have been changed by the call to + * gdev_prn_put_params() + */ +- width_old = pdev->width; +- height_old = pdev->height; +- ++ width_old = pdev->width; ++ height_old = pdev->height; ++ } + /* + * Update margins/sizes as needed... + */ +@@ -4044,22 +4071,88 @@ cups_set_color_info(gx_device *pdev) /* + for (k = 0; k <= CUPS_MAX_VALUE; k ++) + cups->Density[k] = k; + } +- /* Set up the ICC profile for ghostscript to use based upon the color space. +- This is different than the PPD profile above which appears to be some sort +- of matrix based TRC profile */ +- switch (cups->header.cupsColorSpace) { +- /* Use RGB profile for this */ +- case CUPS_CSPACE_RGBW: +- if (pdev->icc_struct == NULL) { +- pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory); +- } +- if (pdev->icc_struct->device_profile[gsDEFAULTPROFILE] == NULL) { +- code = gsicc_set_device_profile(pdev, pdev->memory, +- DEFAULT_RGB_ICC, gsDEFAULTPROFILE); +- } +- break; +- default: +- break; ++ if (!cups->user_icc) { ++ /* Set up the ICC profile for ghostscript to use based upon the color space. ++ This is different than the PPD profile above which appears to be some sort ++ of matrix based TRC profile */ ++ switch (cups->header.cupsColorSpace) ++ { ++ default : ++ case CUPS_CSPACE_RGBW : ++ case CUPS_CSPACE_RGB : ++ case CUPS_CSPACE_RGBA : ++ case CUPS_CSPACE_CMY : ++ case CUPS_CSPACE_YMC : ++# ifdef CUPS_RASTER_HAVE_COLORIMETRIC ++ case CUPS_CSPACE_CIELab : ++ case CUPS_CSPACE_ICC1 : ++ case CUPS_CSPACE_ICC2 : ++ case CUPS_CSPACE_ICC3 : ++ case CUPS_CSPACE_ICC4 : ++ case CUPS_CSPACE_ICC5 : ++ case CUPS_CSPACE_ICC6 : ++ case CUPS_CSPACE_ICC7 : ++ case CUPS_CSPACE_ICC8 : ++ case CUPS_CSPACE_ICC9 : ++ case CUPS_CSPACE_ICCA : ++ case CUPS_CSPACE_ICCB : ++ case CUPS_CSPACE_ICCC : ++ case CUPS_CSPACE_ICCD : ++ case CUPS_CSPACE_ICCE : ++ case CUPS_CSPACE_ICCF : ++# endif /* CUPS_RASTER_HAVE_COLORIMETRIC */ ++ if (!pdev->icc_struct || (pdev->icc_struct && ++ pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsRGB)) { ++ ++ if (pdev->icc_struct) { ++ rc_decrement(pdev->icc_struct, "cups_set_color_info"); ++ } ++ pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory); ++ ++ code = gsicc_set_device_profile(pdev, pdev->memory, ++ (char *)DEFAULT_RGB_ICC, gsDEFAULTPROFILE); ++ } ++ break; ++ ++ case CUPS_CSPACE_W : ++ case CUPS_CSPACE_WHITE : ++ case CUPS_CSPACE_K : ++ case CUPS_CSPACE_GOLD : ++ case CUPS_CSPACE_SILVER : ++ if (!pdev->icc_struct || (pdev->icc_struct && ++ pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsGRAY)) { ++ ++ if (pdev->icc_struct) { ++ rc_decrement(pdev->icc_struct, "cups_set_color_info"); ++ } ++ pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory); ++ ++ code = gsicc_set_device_profile(pdev, pdev->memory->non_gc_memory, ++ (char *)DEFAULT_GRAY_ICC, gsDEFAULTPROFILE); ++ } ++ break; ++ case CUPS_CSPACE_KCMYcm : ++# ifdef CUPS_RASTER_HAVE_COLORIMETRIC ++ case CUPS_CSPACE_CIEXYZ : ++#endif ++ case CUPS_CSPACE_CMYK : ++ case CUPS_CSPACE_YMCK : ++ case CUPS_CSPACE_KCMY : ++ case CUPS_CSPACE_GMCK : ++ case CUPS_CSPACE_GMCS : ++ if (!pdev->icc_struct || (pdev->icc_struct && ++ pdev->icc_struct->device_profile[gsDEFAULTPROFILE]->data_cs != gsCMYK)) { ++ ++ if (pdev->icc_struct) { ++ rc_decrement(pdev->icc_struct, "cups_set_color_info"); ++ } ++ pdev->icc_struct = gsicc_new_device_profile_array(pdev->memory); ++ ++ code = gsicc_set_device_profile(pdev, pdev->memory, ++ (char *)DEFAULT_CMYK_ICC, gsDEFAULTPROFILE); ++ } ++ break; ++ } + } + } + + diff --git a/libre/gnustep-base-libre/PKGBUILD b/libre/gnustep-base-libre/PKGBUILD new file mode 100644 index 000000000..9017c71b4 --- /dev/null +++ b/libre/gnustep-base-libre/PKGBUILD @@ -0,0 +1,39 @@ +# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu> +# $Id: PKGBUILD 56058 2011-09-29 17:45:33Z spupykin $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Maintainer: Vesa Kaihlavirta <vegai@iki.fi> +# Contributor: Sebastian Sareyko <public@nooms.de> + +_pkgname=gnustep-base +pkgname=gnustep-base-libre +pkgver=1.23.0 +pkgrel=1 +pkgdesc="The GNUstep base package with exceptions enabled" +arch=('i686' 'x86_64') +url="http://www.gnustep.org/" +license=("GPL" "LGPL") +depends=(libxslt avahi gmp gcc-libs openssl libffi gnustep-make-libre gnutls) +makedepends=(gcc-objc) +conflicts=('gnustep-base-svn' 'gnustep-base') +provides=('gnustep-base') +groups=('gnustep-core') +options=('!emptydirs' '!makeflags') +source=(ftp://ftp.gnustep.org/pub/gnustep/core/$_pkgname-$pkgver.tar.gz) +md5sums=('c898a1b6cdc98e83639f319876bdbba6') + +build() { + cd "$srcdir/$_pkgname-$pkgver" + source /etc/profile.d/GNUstep.sh + ./configure --prefix=/usr --sysconfdir=/etc/GNUstep \ + --with-ffi-include=/usr/lib/libffi-`pacman -Q libffi | cut -f2 -d\ |cut -f1 -d-`/include/ + # fix file ownership + sed -i 's/tar -xf $(TIMEZONE_ARCHIVE);/tar -xf $(TIMEZONE_ARCHIVE);chown -R root:root * ;/' NSTimeZones/Makefile.postamble + sed -i 's|.*gnutls_transport_set_lowat.*||' Source/GSSocketStream.m + make VERBOSE=1 +} + +package() { + cd "$srcdir/$_pkgname-$pkgver" + make DESTDIR="$pkgdir" install + chown -R root.root "$pkgdir/" +} diff --git a/libre/gnustep-make-libre/PKGBUILD b/libre/gnustep-make-libre/PKGBUILD new file mode 100644 index 000000000..dedf944a3 --- /dev/null +++ b/libre/gnustep-make-libre/PKGBUILD @@ -0,0 +1,31 @@ +# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu> +# $Id: PKGBUILD 56053 2011-09-29 17:24:54Z spupykin $ +# Maintainer: Vesa Kaihlavirta <vegai@iki.fi> +# Contributor: Sebastian Sareyko <public@nooms.de> + +_pkgname=gnustep-make +pkgname=gnustep-make-libre +pkgver=2.6.1 +pkgrel=1 +pkgdesc="The GNUstep make package with exceptions enabled" +arch=('any') +url="http://www.gnustep.org/" +license=('GPL') +depends=('glibc') +conflicts=('gnustep-make-svn' 'gnustep-make') +provides=('gnustep-make') +groups=('gnustep-core') +source=(ftp://ftp.gnustep.org/pub/gnustep/core/${_pkgname}-$pkgver.tar.gz) +md5sums=('071b3a807ca3ec93cda75ac210adc263') + +build() { + cd $srcdir/${_pkgname}-$pkgver + # The option is not needed, but makes clear why we rebuild this. + ./configure --prefix=/usr --sysconfdir=/etc/GNUstep \ + --enable-native-objc-exceptions + make + make DESTDIR=$pkgdir install + install -D -m755 \ + $pkgdir/usr/share/GNUstep/Makefiles/GNUstep.sh \ + $pkgdir/etc/profile.d/GNUstep.sh +} diff --git a/libre/initscripts/PKGBUILD b/libre/initscripts/PKGBUILD index 7828e7eb4..3c5212895 100644 --- a/libre/initscripts/PKGBUILD +++ b/libre/initscripts/PKGBUILD @@ -1,32 +1,33 @@ -# $Id: PKGBUILD 120250 2011-04-21 17:00:05Z ibiru $ +# $Id: PKGBUILD 140751 2011-10-18 16:38:38Z tomegun $ # Maintainer: Tom Gundersen <teg@jklm.no> # Maintainer: Thomas Bächler <thomas@archlinux.org> # Maintainer: Aaron Griffin <aaron@archlinux.org> # Maintainer (Parabola): Nicolas Reynolds <fauno@kiwwwi.com.ar> pkgname=initscripts -pkgver=2011.06.4 -pkgrel=2 +pkgver=2011.10.3 +pkgrel=1 pkgdesc="System initialization/bootup scripts (Parabola branding)" arch=('i686' 'x86_64' 'mips64el') url="http://parabolagnulinux.org" license=('GPL2') groups=('base') backup=(etc/inittab etc/rc.conf etc/rc.local etc/rc.local.shutdown etc/conf.d/wireless) -depends=('glibc' 'bash' 'grep' 'coreutils' 'udev>=171' 'iproute2' +depends=('glibc' 'bash' 'grep' 'coreutils' 'udev>=173' 'iproute2' 'ncurses' 'kbd' 'findutils' 'sysvinit') optdepends=('bridge-utils: Network bridging support' 'dhcpcd: DHCP network configuration' 'net-tools: legacy network support' 'wireless_tools: Wireless networking') +makedepends=(asciidoc) install=initscripts.install -source=("https://projects.parabolagnulinux.org/initscripts.git/snapshot/initscripts-${pkgver}.tar.bz2" +source=("https://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}.tar.gz" 'wireless.conf.d') -md5sums=('df73e4c4043d4eaf6502ca6738c549aa' - '027576534885b8d5dded9be546057b12') package() { cd ${srcdir}/${pkgname}-${pkgver} make DESTDIR=${pkgdir} install install -D -m644 ${srcdir}/wireless.conf.d ${pkgdir}/etc/conf.d/wireless } +md5sums=('4783d7297925bc0722367b0eed8cb53a' + '027576534885b8d5dded9be546057b12') diff --git a/libre/initscripts/initscripts.install b/libre/initscripts/initscripts.install index 56f69248a..963713bee 100644 --- a/libre/initscripts/initscripts.install +++ b/libre/initscripts/initscripts.install @@ -8,4 +8,12 @@ post_upgrade() { echo "Blacklisting of modules is no longer supported in rc.conf," echo "please add blacklist entries to /etc/modprobe.d/ instead." fi + if [ "$(vercmp $2 2011.07.2)" -lt 0 ]; then + echo "VERBOSE= in rc.conf no longer has any effect." + echo "Please append 'quiet' to your kernel command line." + fi + if [ "$(vercmp $2 2011.10.1)" -lt 0 ]; then + echo "If using non-bash-compatible shell, please set LANG in /etc/locale.conf," + echo "as LOCALE in /etc/rc.conf no longer works." + fi } diff --git a/libre/initscripts/parabola-branding.patch b/libre/initscripts/parabola-branding.patch deleted file mode 100644 index a309f9a4c..000000000 --- a/libre/initscripts/parabola-branding.patch +++ /dev/null @@ -1,52 +0,0 @@ -diff -auN initscripts-2011.02.1/PKGBUILD initscripts-2011.02.1-parabola//PKGBUILD ---- initscripts-2011.02.1/PKGBUILD 2011-02-01 15:34:45.000000000 -0300 -+++ initscripts-2011.02.1-parabola//PKGBUILD 2011-02-28 11:06:11.000000000 -0300 -@@ -1,9 +1,9 @@ - pkgname=initscripts-git - pkgver=$(date +%s) - pkgrel=$(git log --pretty=format:%h |head -n 1) --pkgdesc="System initialization/bootup scripts" -+pkgdesc="System initialization/bootup scripts, rebranded for Parabola" - arch=('i686' 'x86_64') --url="http://www.archlinux.org" -+url="http://parabolagnulinux.org" - license=('GPL') - groups=('base') - conflicts=('initscripts') -diff -auN initscripts-2011.02.1/functions initscripts-2011.02.1-parabola//functions ---- initscripts-2011.02.1/functions 2011-02-01 15:34:45.000000000 -0300 -+++ initscripts-2011.02.1-parabola//functions 2011-02-28 11:13:46.000000000 -0300 -@@ -53,7 +53,7 @@ - if [[ $USECOLOR = YES || $USECOLOR = yes ]]; then - C_MAIN="\033[1;37;40m" # main text - -- C_OTHER="\033[1;34;40m" # prefix & brackets -+ C_OTHER="\033[0;35;40m" # prefix & brackets - C_SEPARATOR="\033[1;30;40m" # separator - - C_BUSY="\033[0;36;40m" # busy -diff -auN initscripts-2011.02.1/rc.conf initscripts-2011.02.1-parabola//rc.conf ---- initscripts-2011.02.1/rc.conf 2011-02-01 15:34:45.000000000 -0300 -+++ initscripts-2011.02.1-parabola//rc.conf 2011-02-28 11:06:37.000000000 -0300 -@@ -1,5 +1,5 @@ - # --# /etc/rc.conf - Main Configuration for Arch Linux -+# /etc/rc.conf - Main Configuration for Parabola GNU/Linux-Libre - # - - # ----------------------------------------------------------------------- -diff -auN initscripts-2011.02.1/rc.sysinit initscripts-2011.02.1-parabola//rc.sysinit ---- initscripts-2011.02.1/rc.sysinit 2011-02-01 15:34:45.000000000 -0300 -+++ initscripts-2011.02.1-parabola//rc.sysinit 2011-02-28 11:08:29.000000000 -0300 -@@ -7,8 +7,9 @@ - . /etc/rc.d/functions - - echo " " --printhl "Arch Linux\n" --printhl "${C_H2}http://www.archlinux.org" -+printhl "Parabola GNU/Linux-Libre\n" -+printhl "${C_H2}http://parabolagnulinux.org\n" -+printhl "You're booting into a libre version of Archlinux." - printsep - - run_hook sysinit_start diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD index f77102426..45e458d5e 100644 --- a/libre/linux-libre/PKGBUILD +++ b/libre/linux-libre/PKGBUILD @@ -8,8 +8,8 @@ pkgbase=linux-libre pkgname=('linux-libre' 'linux-libre-headers' 'linux-libre-docs') # Build stock -LIBRE kernel # pkgname=linux-custom # Build kernel with a different name _kernelname=${pkgname#linux-libre} -_basekernel=3.0 -pkgver=${_basekernel}.7 +_basekernel=3.1 +pkgver=${_basekernel}.2 pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url="http://linux-libre.fsfla.org/" @@ -26,8 +26,10 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-li 'Kbuild' 'Kbuild.platforms' 'boot-logo.patch' - 'fix-i915.patch' - 'change-default-console-loglevel.patch') + 'change-default-console-loglevel.patch' + 'i915-fix-ghost-tv-output.patch' + 'i915-fix-incorrect-error-message.patch' + 'usb-add-reset-resume-quirk-for-several-webcams.patch') build() { cd "${srcdir}/linux-${_basekernel}" @@ -37,8 +39,23 @@ build() { # Add freedo as boot logo patch -Np1 -i "${srcdir}/boot-logo.patch" - # fix #19234 i1915 display size - patch -Np1 -i "${srcdir}/fix-i915.patch" + # Some chips detect a ghost TV output + # mailing list discussion: http://lists.freedesktop.org/archives/intel-gfx/2011-April/010371.html + # Arch Linux bug report: FS#19234 + # + # It is unclear why this patch wasn't merged upstream, it was accepted, + # then dropped because the reasoning was unclear. However, it is clearly + # needed. + patch -Np1 -i "${srcdir}/i915-fix-ghost-tv-output.patch" + + # In 3.1.1, a DRM_DEBUG message is falsely declared as DRM_ERROR. This + # worries users, as this message is displayed even at loglevel 4. Fix + # this. + patch -Np1 -i "${srcdir}/i915-fix-incorrect-error-message.patch" + + # Add the USB_QUIRK_RESET_RESUME for several webcams + # FS#26528 + patch -Np1 -i "${srcdir}/usb-add-reset-resume-quirk-for-several-webcams.patch" # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param) # remove this when a Kconfig knob is made available by upstream @@ -48,7 +65,7 @@ build() { if [ "$CARCH" == "mips64el" ]; then sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre|" Makefile msg2 "Adding loongson-community patches" - patch -Np1 -i "${srcdir}/${_basekernel}-*-loongson-community.patch" + patch -Np1 -i ${srcdir}/${_basekernel}-*-loongson-community.patch patch -Np0 -i "${srcdir}/lxo-config.patch" # ensure N32 @@ -62,15 +79,8 @@ build() { sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config fi - # remove the "-libre" extraversion from Makefile - sed -i 's|^EXTRAVERSION =.*$|EXTRAVERSION =|g' Makefile - sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|# CONFIG_LOCALVERSION_AUTO is not set|g" ./.config - - # remove the sublevel from Makefile - # this ensures our kernel version is always 3.X-LIBRE - # this way, minor kernel updates will not break external modules - # we need to change this soon, see FS#16702 - sed -ri 's|^(SUBLEVEL =).*|\1|' Makefile + # set extraversion to pkgrel + sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile # get kernel version make prepare @@ -156,8 +166,13 @@ package_linux-libre() { rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build} # remove the firmware rm -rf "${pkgdir}/lib/firmware" - # gzip -9 all modules to safe 100MB of space + # gzip -9 all modules to save 100MB of space find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \; + # make room for external modules + ln -s "../extramodules-${_basekernel}${_kernelname:--LIBRE}" "${pkgdir}/lib/modules/${_kernver}/extramodules" + # add real version for building modules and running depmod from post_install/upgrade + mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--LIBRE}" + echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--LIBRE}/version" } package_linux-libre-headers() { @@ -320,18 +335,10 @@ package_linux-libre-docs() { cd "${srcdir}/linux-${_basekernel}" mkdir -p "${pkgdir}/usr/src/linux-${_kernver}" - cp -r Documentation "${pkgdir}/usr/src/linux-${_kernver}" + cp -al Documentation "${pkgdir}/usr/src/linux-${_kernver}" find "${pkgdir}" -type f -exec chmod 444 {} \; find "${pkgdir}" -type d -exec chmod 755 {} \; # remove a file already in linux package rm -f "${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile" } -md5sums=('44e7bc20c235a193f9b6123a8d5e9509' - '8840c46301f6eb425b9ab456d1ca7b7f' - '8089b63fdecf93735f178eb2907ce61e' - '4cc90e12cab492c1d61183c47683bd52' - 'a8a3843046926eb7ab81312cd438c5c5' - '04b21c79df0a952c22d681dd4f4562df' - '263725f20c0b9eb9c353040792d644e5' - '9d3c56a4b999c8bfbd4018089a62f662') diff --git a/libre/linux-libre/config.i686 b/libre/linux-libre/config.i686 index 4cc6d10cc..43bf1d3c3 100644 --- a/libre/linux-libre/config.i686 +++ b/libre/linux-libre/config.i686 @@ -1,6 +1,6 @@ # -# Automatically generated make config: don't edit -# Linux/i386 3.0 Kernel Configuration +# Automatically generated file; DO NOT EDIT. +# Linux/i386 3.1.1-1 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -164,6 +164,7 @@ CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y +CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y @@ -210,6 +211,7 @@ CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y # # GCOV-based kernel profiling @@ -223,12 +225,13 @@ CONFIG_MODULES=y CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODVERSIONS is not set +CONFIG_MODVERSIONS=y # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y +# CONFIG_BLK_DEV_BSGLIB is not set # CONFIG_BLK_DEV_INTEGRITY is not set CONFIG_BLK_DEV_THROTTLING=y @@ -291,6 +294,7 @@ CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y CONFIG_X86_32_IRIS=m CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_PARAVIRT_GUEST=y +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set # CONFIG_XEN_PRIVILEGED_GUEST is not set CONFIG_KVM_CLOCK=y CONFIG_KVM_GUEST=y @@ -330,6 +334,7 @@ CONFIG_X86_GENERIC=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_CMPXCHG=y CONFIG_CMPXCHG_LOCAL=y +CONFIG_CMPXCHG_DOUBLE=y CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_XADD=y # CONFIG_X86_PPRO_FENCE is not set @@ -354,7 +359,6 @@ CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y # CONFIG_IOMMU_HELPER is not set -CONFIG_IOMMU_API=y CONFIG_NR_CPUS=8 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y @@ -362,6 +366,7 @@ CONFIG_SCHED_MC=y # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y @@ -469,10 +474,10 @@ CONFIG_CAN_PM_TRACE=y # CONFIG_PM_TRACE_RTC is not set CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y -CONFIG_ACPI_PROCFS=y +# CONFIG_ACPI_PROCFS is not set # CONFIG_ACPI_PROCFS_POWER is not set CONFIG_ACPI_EC_DEBUGFS=m -CONFIG_ACPI_PROC_EVENT=y +# CONFIG_ACPI_PROC_EVENT is not set CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m CONFIG_ACPI_BUTTON=m @@ -491,11 +496,12 @@ CONFIG_ACPI_PCI_SLOT=m CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=m CONFIG_ACPI_SBS=m -CONFIG_ACPI_HED=m +CONFIG_ACPI_HED=y CONFIG_ACPI_CUSTOM_METHOD=m CONFIG_ACPI_APEI=y -CONFIG_ACPI_APEI_GHES=m +CONFIG_ACPI_APEI_GHES=y CONFIG_ACPI_APEI_PCIEAER=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y CONFIG_ACPI_APEI_EINJ=m CONFIG_ACPI_APEI_ERST_DEBUG=m CONFIG_SFI=y @@ -511,7 +517,7 @@ CONFIG_APM_DO_ENABLE=y # CPU Frequency scaling # CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_TABLE=m CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y @@ -568,9 +574,6 @@ CONFIG_PCI_MMCONFIG=y CONFIG_PCI_OLPC=y CONFIG_PCI_DOMAINS=y # CONFIG_PCI_CNB20LE_QUIRK is not set -CONFIG_DMAR=y -# CONFIG_DMAR_DEFAULT_ON is not set -CONFIG_DMAR_FLOPPY_WA=y CONFIG_PCIEPORTBUS=y CONFIG_HOTPLUG_PCI_PCIE=m CONFIG_PCIEAER=y @@ -593,7 +596,10 @@ CONFIG_ISA=y # CONFIG_MCA is not set # CONFIG_SCx200 is not set CONFIG_OLPC=y -CONFIG_OLPC_XO1=m +CONFIG_OLPC_XO1_PM=y +CONFIG_OLPC_XO1_RTC=y +CONFIG_OLPC_XO1_SCI=y +CONFIG_OLPC_XO15_SCI=y CONFIG_AMD_NB=y CONFIG_PCCARD=m CONFIG_PCMCIA=m @@ -854,6 +860,7 @@ CONFIG_IP_SET_HASH_IPPORTIP=m CONFIG_IP_SET_HASH_IPPORTNET=m CONFIG_IP_SET_HASH_NET=m CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_VS=m # CONFIG_IP_VS_IPV6 is not set @@ -1245,6 +1252,13 @@ CONFIG_CAIF=m CONFIG_CAIF_NETDEV=m CONFIG_CEPH_LIB=m # CONFIG_CEPH_LIB_PRETTYDEBUG is not set +CONFIG_NFC=m + +# +# Near Field Communication (NFC) devices +# +CONFIG_PN544_NFC=m +CONFIG_NFC_PN533=m # # Device Drivers @@ -1264,6 +1278,8 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=m CONFIG_CONNECTOR=m CONFIG_MTD=m # CONFIG_MTD_DEBUG is not set @@ -1410,6 +1426,7 @@ CONFIG_OF_NET=y CONFIG_OF_SPI=y CONFIG_OF_MDIO=m CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m @@ -1440,6 +1457,7 @@ CONFIG_BLK_DEV_DAC960=m # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m CONFIG_BLK_DEV_DRBD=m # CONFIG_DRBD_FAULT_INJECTION is not set @@ -1488,6 +1506,7 @@ CONFIG_TI_DAC7512=m CONFIG_VMWARE_BALLOON=m CONFIG_BMP085=m # CONFIG_PCH_PHUB is not set +CONFIG_USB_SWITCH_FSA9480=m CONFIG_C2PORT=m CONFIG_C2PORT_DURAMAR_2150=m @@ -1499,6 +1518,7 @@ CONFIG_EEPROM_AT25=m CONFIG_EEPROM_LEGACY=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m +CONFIG_EEPROM_93XX46=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y @@ -1512,89 +1532,7 @@ CONFIG_IWMC3200TOP=m CONFIG_TI_ST=m CONFIG_SENSORS_LIS3_I2C=m CONFIG_HAVE_IDE=y -CONFIG_IDE=m - -# -# Please see Documentation/ide/ide.txt for help/info on IDE drives -# -CONFIG_IDE_XFER_MODE=y -CONFIG_IDE_TIMINGS=y -CONFIG_IDE_ATAPI=y -CONFIG_IDE_LEGACY=y -# CONFIG_BLK_DEV_IDE_SATA is not set -CONFIG_IDE_GD=m -CONFIG_IDE_GD_ATA=y -CONFIG_IDE_GD_ATAPI=y -CONFIG_BLK_DEV_IDECS=m -CONFIG_BLK_DEV_DELKIN=m -CONFIG_BLK_DEV_IDECD=m -CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y -CONFIG_BLK_DEV_IDETAPE=m -CONFIG_BLK_DEV_IDEACPI=y -# CONFIG_IDE_TASK_IOCTL is not set -CONFIG_IDE_PROC_FS=y - -# -# IDE chipset support/bugfixes -# -CONFIG_IDE_GENERIC=m -CONFIG_BLK_DEV_PLATFORM=m -CONFIG_BLK_DEV_CMD640=m -# CONFIG_BLK_DEV_CMD640_ENHANCED is not set -CONFIG_BLK_DEV_IDEPNP=m -CONFIG_BLK_DEV_IDEDMA_SFF=y - -# -# PCI IDE chipsets support -# -CONFIG_BLK_DEV_IDEPCI=y -# CONFIG_BLK_DEV_OFFBOARD is not set -CONFIG_BLK_DEV_GENERIC=m -CONFIG_BLK_DEV_OPTI621=m -CONFIG_BLK_DEV_RZ1000=m -CONFIG_BLK_DEV_IDEDMA_PCI=y -CONFIG_BLK_DEV_AEC62XX=m -CONFIG_BLK_DEV_ALI15X3=m -CONFIG_BLK_DEV_AMD74XX=m -CONFIG_BLK_DEV_ATIIXP=m -CONFIG_BLK_DEV_CMD64X=m -CONFIG_BLK_DEV_TRIFLEX=m -CONFIG_BLK_DEV_CS5520=m -CONFIG_BLK_DEV_CS5530=m -CONFIG_BLK_DEV_CS5535=m -CONFIG_BLK_DEV_CS5536=m -CONFIG_BLK_DEV_HPT366=m -CONFIG_BLK_DEV_JMICRON=m -CONFIG_BLK_DEV_SC1200=m -CONFIG_BLK_DEV_PIIX=m -CONFIG_BLK_DEV_IT8172=m -CONFIG_BLK_DEV_IT8213=m -CONFIG_BLK_DEV_IT821X=m -CONFIG_BLK_DEV_NS87415=m -CONFIG_BLK_DEV_PDC202XX_OLD=m -CONFIG_BLK_DEV_PDC202XX_NEW=m -CONFIG_BLK_DEV_SVWKS=m -CONFIG_BLK_DEV_SIIMAGE=m -CONFIG_BLK_DEV_SIS5513=m -CONFIG_BLK_DEV_SLC90E66=m -CONFIG_BLK_DEV_TRM290=m -CONFIG_BLK_DEV_VIA82CXXX=m -CONFIG_BLK_DEV_TC86C001=m - -# -# Other IDE chipsets support -# - -# -# Note: most of these also require special kernel boot parameters -# -CONFIG_BLK_DEV_4DRIVES=m -CONFIG_BLK_DEV_ALI14XX=m -CONFIG_BLK_DEV_DTC2278=m -CONFIG_BLK_DEV_HT6560B=m -CONFIG_BLK_DEV_QD65XX=m -CONFIG_BLK_DEV_UMC8672=m -CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_IDE is not set # # SCSI device support @@ -1671,6 +1609,7 @@ CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=m # CONFIG_SCSI_MVSAS_DEBUG is not set +CONFIG_SCSI_MVSAS_TASKLET=y CONFIG_SCSI_DPT_I2O=m CONFIG_SCSI_ADVANSYS=m CONFIG_SCSI_IN2000=m @@ -1888,8 +1827,8 @@ CONFIG_TCM_IBLOCK=m CONFIG_TCM_FILEIO=m CONFIG_TCM_PSCSI=m CONFIG_LOOPBACK_TARGET=m -# CONFIG_LOOPBACK_TARGET_CDB_DEBUG is not set CONFIG_TCM_FC=m +CONFIG_ISCSI_TARGET=m CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m @@ -2067,6 +2006,7 @@ CONFIG_R8169=m CONFIG_SIS190=m CONFIG_SKGE=m # CONFIG_SKGE_DEBUG is not set +CONFIG_SKGE_GENESIS=y CONFIG_SKY2=m # CONFIG_SKY2_DEBUG is not set CONFIG_VIA_VELOCITY=m @@ -2153,10 +2093,13 @@ CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_WPC=y CONFIG_B43=m +CONFIG_B43_BCMA=y +CONFIG_B43_SSB=y CONFIG_B43_PCI_AUTOSELECT=y CONFIG_B43_PCICORE_AUTOSELECT=y CONFIG_B43_PCMCIA=y CONFIG_B43_SDIO=y +CONFIG_B43_BCMA_PIO=y CONFIG_B43_PIO=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_LP=y @@ -2260,6 +2203,7 @@ CONFIG_RT2X00_LIB_LEDS=y # CONFIG_RT2X00_DEBUG is not set CONFIG_RTL8192CE=m CONFIG_RTL8192SE=m +CONFIG_RTL8192DE=m CONFIG_RTL8192CU=m CONFIG_RTLWIFI=m CONFIG_RTL8192C_COMMON=m @@ -2372,6 +2316,7 @@ CONFIG_IEEE802154_FAKEHARD=m CONFIG_CAIF_TTY=m CONFIG_CAIF_SPI_SLAVE=m CONFIG_CAIF_SPI_SYNC=y +CONFIG_CAIF_HSI=m CONFIG_RIONET=m CONFIG_RIONET_TX_SIZE=128 CONFIG_RIONET_RX_SIZE=128 @@ -2713,12 +2658,16 @@ CONFIG_INPUT_AD714X=m CONFIG_INPUT_AD714X_I2C=m CONFIG_INPUT_AD714X_SPI=m CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_MMA8450=m +CONFIG_INPUT_MPU3050=m CONFIG_INPUT_APANEL=m CONFIG_INPUT_WISTRON_BTNS=m CONFIG_INPUT_ATLAS_BTNS=m CONFIG_INPUT_ATI_REMOTE=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_KXTJ9=m +# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m @@ -2988,13 +2937,13 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_GPIOLIB=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=m CONFIG_GPIO_MAX730X=m # # Memory mapped GPIO drivers: # -CONFIG_GPIO_BASIC_MMIO_CORE=m -CONFIG_GPIO_BASIC_MMIO=m +CONFIG_GPIO_GENERIC_PLATFORM=m CONFIG_GPIO_IT8761E=m CONFIG_GPIO_SCH=m CONFIG_GPIO_VX855=m @@ -3006,13 +2955,14 @@ CONFIG_GPIO_MAX7300=m CONFIG_GPIO_MAX732X=m CONFIG_GPIO_PCA953X=m CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_TPS65912=m CONFIG_GPIO_WM831X=m CONFIG_GPIO_ADP5588=m # # PCI GPIO expanders: # -CONFIG_GPIO_CS5535=m +CONFIG_GPIO_CS5535=y CONFIG_GPIO_LANGWELL=y CONFIG_GPIO_PCH=m CONFIG_GPIO_ML_IOH=m @@ -3144,18 +3094,22 @@ CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LTC4261=m CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m CONFIG_SENSORS_MAX1111=m CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_PCF8591=m CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_MAX16064=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m @@ -3172,7 +3126,9 @@ CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m @@ -3207,6 +3163,7 @@ CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=y CONFIG_THERMAL_HWMON=y CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set # @@ -3292,6 +3249,7 @@ CONFIG_BCMA_POSSIBLE=y # Broadcom specific AMBA # CONFIG_BCMA=m +CONFIG_BCMA_BLOCKIO=y CONFIG_BCMA_HOST_PCI_POSSIBLE=y CONFIG_BCMA_HOST_PCI=y # CONFIG_BCMA_DEBUG is not set @@ -3304,6 +3262,8 @@ CONFIG_UCB1400_CORE=m CONFIG_TPS6105X=m CONFIG_TPS65010=m CONFIG_TPS6507X=m +CONFIG_MFD_TPS65912=y +CONFIG_MFD_TPS65912_SPI=y # CONFIG_MFD_TMIO is not set CONFIG_MFD_WM8400=m CONFIG_MFD_WM831X=y @@ -3348,6 +3308,7 @@ CONFIG_REGULATOR_MC13892=m CONFIG_REGULATOR_TPS6105X=m CONFIG_REGULATOR_TPS65023=m CONFIG_REGULATOR_TPS6507X=m +CONFIG_REGULATOR_TPS65912=m CONFIG_REGULATOR_ISL6271A=m CONFIG_REGULATOR_AD5398=m CONFIG_REGULATOR_AB8500=y @@ -3362,6 +3323,7 @@ CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m CONFIG_VIDEO_V4L2_SUBDEV_API=y CONFIG_DVB_CORE=m +CONFIG_DVB_NET=y CONFIG_VIDEO_MEDIA=m # @@ -3378,6 +3340,7 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_JVC_DECODER=m CONFIG_IR_SONY_DECODER=m CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m CONFIG_IR_LIRC_CODEC=m CONFIG_IR_ENE=m CONFIG_IR_IMON=m @@ -3406,6 +3369,7 @@ CONFIG_MEDIA_TUNER_MT2131=m CONFIG_MEDIA_TUNER_QT1010=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MXL5005S=m CONFIG_MEDIA_TUNER_MXL5007T=m CONFIG_MEDIA_TUNER_MC44S803=m @@ -3424,6 +3388,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_V4L2_MEM2MEM_DEV=m CONFIG_VIDEOBUF2_CORE=m CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m CONFIG_VIDEOBUF2_VMALLOC=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set @@ -3502,6 +3467,11 @@ CONFIG_VIDEO_MT9V032=m CONFIG_VIDEO_TCM825X=m # +# Flash devices +# +CONFIG_VIDEO_ADP1653=m + +# # Video improvement chips # CONFIG_VIDEO_UPD64031A=m @@ -3567,6 +3537,7 @@ CONFIG_SOC_CAMERA_RJ54N1=m CONFIG_SOC_CAMERA_TW9910=m CONFIG_SOC_CAMERA_PLATFORM=m CONFIG_SOC_CAMERA_OV2640=m +CONFIG_SOC_CAMERA_OV5642=m CONFIG_SOC_CAMERA_OV6650=m CONFIG_SOC_CAMERA_OV772X=m CONFIG_SOC_CAMERA_OV9640=m @@ -3595,6 +3566,7 @@ CONFIG_USB_GSPCA_OV534_9=m CONFIG_USB_GSPCA_PAC207=m CONFIG_USB_GSPCA_PAC7302=m CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m CONFIG_USB_GSPCA_SN9C2028=m CONFIG_USB_GSPCA_SN9C20X=m CONFIG_USB_GSPCA_SONIXB=m @@ -3626,6 +3598,7 @@ CONFIG_VIDEO_HDPVR=m CONFIG_VIDEO_EM28XX=m CONFIG_VIDEO_EM28XX_ALSA=m CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=y CONFIG_VIDEO_TLG2300=m CONFIG_VIDEO_CX231XX=m CONFIG_VIDEO_CX231XX_RC=y @@ -3782,6 +3755,11 @@ CONFIG_DVB_HOPPER=m CONFIG_DVB_NGENE=m # +# Supported ddbridge ('Octopus') Adapters +# +CONFIG_DVB_DDBRIDGE=m + +# # Supported DVB Frontends # # CONFIG_DVB_FE_CUSTOMISE is not set @@ -3795,6 +3773,12 @@ CONFIG_DVB_STV090x=m CONFIG_DVB_STV6110x=m # +# Multistandard (cable + terrestrial) frontends +# +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m + +# # DVB-S (satellite) frontends # CONFIG_DVB_CX24110=m @@ -4033,6 +4017,7 @@ CONFIG_LCD_VGG2432A4=m CONFIG_LCD_PLATFORM=m CONFIG_LCD_S6E63M0=m CONFIG_LCD_LD9040=m +CONFIG_LCD_AMS369FG06=m CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=m CONFIG_BACKLIGHT_PROGEAR=m @@ -4074,7 +4059,7 @@ CONFIG_FONT_8x16=y # CONFIG_FONT_SUN8x16 is not set # CONFIG_FONT_SUN12x22 is not set # CONFIG_FONT_10x18 is not set -CONFIG_LOGO=y +# CONFIG_LOGO is not set CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y # CONFIG_SOUND_OSS_CORE_PRECLAIM is not set @@ -4159,6 +4144,7 @@ CONFIG_SND_SSCAPE=m CONFIG_SND_WAVEFRONT=m CONFIG_SND_MSND_PINNACLE=m CONFIG_SND_MSND_CLASSIC=m +CONFIG_SND_TEA575X=m CONFIG_SND_PCI=y CONFIG_SND_AD1889=m CONFIG_SND_ALS300=m @@ -4208,8 +4194,8 @@ CONFIG_SND_ES1968_INPUT=y CONFIG_SND_ES1968_RADIO=y CONFIG_SND_FM801=m CONFIG_SND_FM801_TEA575X_BOOL=y -CONFIG_SND_TEA575X=m CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y @@ -4217,6 +4203,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=1 CONFIG_SND_HDA_INPUT_JACK=y CONFIG_SND_HDA_PATCH_LOADER=y CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y @@ -4224,6 +4211,7 @@ CONFIG_SND_HDA_CODEC_HDMI=y CONFIG_SND_HDA_CODEC_CIRRUS=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y +CONFIG_SND_HDA_CODEC_CA0132=y CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y @@ -4293,7 +4281,7 @@ CONFIG_USB_HIDDEV=y # CONFIG_HID_A4TECH=m CONFIG_HID_ACRUX=m -CONFIG_HID_ACRUX_FF=m +CONFIG_HID_ACRUX_FF=y CONFIG_HID_APPLE=m CONFIG_HID_BELKIN=m CONFIG_HID_CHERRY=m @@ -4305,6 +4293,8 @@ CONFIG_DRAGONRISE_FF=y CONFIG_HID_EMS_FF=m CONFIG_HID_ELECOM=m CONFIG_HID_EZKEY=m +CONFIG_HID_HOLTEK=m +CONFIG_HOLTEK_FF=y CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m CONFIG_HID_UCLOGIC=m @@ -4342,6 +4332,7 @@ CONFIG_HID_ROCCAT_KOVAPLUS=m CONFIG_HID_ROCCAT_PYRA=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m CONFIG_GREENASIA_FF=y @@ -4352,6 +4343,7 @@ CONFIG_HID_THRUSTMASTER=m CONFIG_THRUSTMASTER_FF=y CONFIG_HID_WACOM=m CONFIG_HID_WACOM_POWER_SUPPLY=y +CONFIG_HID_WIIMOTE=m CONFIG_HID_ZEROPLUS=m CONFIG_ZEROPLUS_FF=y CONFIG_HID_ZYDACRON=m @@ -4421,6 +4413,7 @@ CONFIG_USB_TMC=m CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_DATAFAB=m CONFIG_USB_STORAGE_FREECOM=m CONFIG_USB_STORAGE_ISD200=m @@ -4547,20 +4540,20 @@ CONFIG_USB_GADGET=m # CONFIG_USB_GADGET_DEBUG_FILES is not set # CONFIG_USB_GADGET_DEBUG_FS is not set CONFIG_USB_GADGET_VBUS_DRAW=2 -CONFIG_USB_GADGET_SELECTED=y -# CONFIG_USB_GADGET_FUSB300 is not set -# CONFIG_USB_GADGET_R8A66597 is not set -# CONFIG_USB_GADGET_PXA_U2O is not set -# CONFIG_USB_GADGET_M66592 is not set -# CONFIG_USB_GADGET_AMD5536UDC is not set -# CONFIG_USB_GADGET_CI13XXX_PCI is not set -CONFIG_USB_GADGET_NET2280=y +CONFIG_USB_FUSB300=m +CONFIG_USB_R8A66597=m +CONFIG_USB_M66592=m +CONFIG_USB_AMD5536UDC=m +CONFIG_USB_CI13XXX_PCI=m +CONFIG_USB_NET2272=m +CONFIG_USB_NET2272_DMA=y CONFIG_USB_NET2280=m -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LANGWELL is not set -# CONFIG_USB_GADGET_EG20T is not set -# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GOKU=m +CONFIG_USB_LANGWELL=m +CONFIG_USB_EG20T=m +CONFIG_USB_DUMMY_HCD=m CONFIG_USB_GADGET_DUALSPEED=y +CONFIG_USB_GADGET_SUPERSPEED=y # CONFIG_USB_ZERO is not set CONFIG_USB_AUDIO=m CONFIG_USB_ETH=m @@ -4618,7 +4611,6 @@ CONFIG_SDIO_UART=m CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_RICOH_MMC=y -CONFIG_MMC_SDHCI_OF=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_WBSD=m CONFIG_MMC_TIFM_SD=m @@ -4650,12 +4642,9 @@ CONFIG_LEDS_CLASS=y # CONFIG_LEDS_LM3530=m CONFIG_LEDS_NET5501=m -CONFIG_LEDS_ALIX2=m CONFIG_LEDS_PCA9532=m CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_GPIO=m -CONFIG_LEDS_GPIO_PLATFORM=y -CONFIG_LEDS_GPIO_OF=y CONFIG_LEDS_LP3944=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m @@ -4675,7 +4664,6 @@ CONFIG_LEDS_TRIGGERS=y # LED Triggers # CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_IDE_DISK=y CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m CONFIG_LEDS_TRIGGER_GPIO=m @@ -4684,8 +4672,6 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # # iptables trigger is under Netfilter config (LED target) # -CONFIG_NFC_DEVICES=y -CONFIG_PN544_NFC=m CONFIG_ACCESSIBILITY=y CONFIG_A11Y_BRAILLE_CONSOLE=y # CONFIG_INFINIBAND is not set @@ -4824,11 +4810,15 @@ CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m CONFIG_UIO_NETX=m +CONFIG_VIRTIO=y +CONFIG_VIRTIO_RING=y + +# +# Virtio drivers +# +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m CONFIG_STAGING=y -# CONFIG_DIGIEPCA is not set -# CONFIG_RISCOM8 is not set -# CONFIG_SPECIALIX is not set -# CONFIG_COMPUTONE is not set CONFIG_ET131X=m # CONFIG_ET131X_DEBUG is not set CONFIG_SLICOSS=m @@ -4941,6 +4931,7 @@ CONFIG_COMEDI_AMPLC_PCI224=m CONFIG_COMEDI_AMPLC_PCI230=m CONFIG_COMEDI_CONTEC_PCI_DIO=m CONFIG_COMEDI_DT3000=m +CONFIG_COMEDI_DYNA_PCI10XX=m CONFIG_COMEDI_UNIOXX5=m CONFIG_COMEDI_GSC_HPDI=m CONFIG_COMEDI_ICP_MULTI=m @@ -5033,7 +5024,6 @@ CONFIG_HYPERV_MOUSE=m # CONFIG_VME_BUS is not set CONFIG_DX_SEP=m # CONFIG_IIO is not set -CONFIG_CS5535_GPIO=m CONFIG_XVMALLOC=y CONFIG_ZRAM=m # CONFIG_ZRAM_DEBUG is not set @@ -5043,6 +5033,7 @@ CONFIG_WLAGS49_H25=m CONFIG_FB_SM7XX=m CONFIG_VIDEO_DT3155=m CONFIG_DT3155_CCIR=y +CONFIG_DT3155_STREAMING=y CONFIG_CRYSTALHD=m CONFIG_FB_XGI=m CONFIG_LIRC_STAGING=y @@ -5057,12 +5048,9 @@ CONFIG_LIRC_SIR=m CONFIG_LIRC_TTUSBIR=m CONFIG_LIRC_ZILOG=m CONFIG_EASYCAP=m -CONFIG_EASYCAP_SND=y -# CONFIG_EASYCAP_OSS is not set # CONFIG_EASYCAP_DEBUG is not set CONFIG_SOLO6X10=m CONFIG_ACPI_QUICKSTART=m -CONFIG_MACH_NO_WESTBRIDGE=y CONFIG_ATH6K_LEGACY=m CONFIG_AR600x_SD31_XXX=y # CONFIG_AR600x_WB31_XXX is not set @@ -5109,10 +5097,9 @@ CONFIG_SPEAKUP_SYNTH_DUMMY=m CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m CONFIG_DRM_PSB=m - -# -# Altera FPGA firmware download module -# +CONFIG_DRM_PSB_MRST=y +CONFIG_DRM_PSB_MFLD=y +CONFIG_DRM_PSB_CDV=y CONFIG_ALTERA_STAPL=m CONFIG_INTEL_MEI=m CONFIG_X86_PLATFORM_DEVICES=y @@ -5160,7 +5147,17 @@ CONFIG_XO15_EBOOK=m CONFIG_SAMSUNG_LAPTOP=m CONFIG_MXM_WMI=m CONFIG_INTEL_OAKTRAIL=m +CONFIG_SAMSUNG_Q10=m CONFIG_CLKSRC_I8253=y +CONFIG_CLKEVT_I8253=y +CONFIG_I8253_LOCK=y +CONFIG_CLKBLD_I8253=y +CONFIG_IOMMU_API=y +CONFIG_IOMMU_SUPPORT=y +CONFIG_DMAR=y +# CONFIG_DMAR_DEFAULT_ON is not set +CONFIG_DMAR_FLOPPY_WA=y +CONFIG_VIRT_DRIVERS=y # # Firmware Drivers @@ -5326,6 +5323,7 @@ CONFIG_LOGFS=m CONFIG_CRAMFS=m CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_ZLIB=y CONFIG_SQUASHFS_LZO=y CONFIG_SQUASHFS_XZ=y # CONFIG_SQUASHFS_EMBEDDED is not set @@ -5341,6 +5339,7 @@ CONFIG_PSTORE=y CONFIG_UFS_FS=m # CONFIG_UFS_FS_WRITE is not set # CONFIG_UFS_DEBUG is not set +CONFIG_ORE=m CONFIG_EXOFS_FS=m # CONFIG_EXOFS_DEBUG is not set CONFIG_NETWORK_FILESYSTEMS=y @@ -5354,7 +5353,6 @@ CONFIG_NFS_FSCACHE=y CONFIG_NFS_USE_KERNEL_DNS=y # CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m -# CONFIG_NFSD_DEPRECATED is not set CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y @@ -5503,7 +5501,7 @@ CONFIG_DEBUG_MUTEXES=y # CONFIG_PROVE_LOCKING is not set # CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_STACKTRACE=y # CONFIG_DEBUG_STACK_USAGE is not set @@ -5631,6 +5629,11 @@ CONFIG_SECURITY_PATH=y # CONFIG_SECURITY_SELINUX is not set # CONFIG_SECURITY_SMACK is not set CONFIG_SECURITY_TOMOYO=y +CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048 +CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024 +# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set +CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init" +CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init" CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0 # CONFIG_IMA is not set @@ -5776,10 +5779,6 @@ CONFIG_KVM_AMD=m CONFIG_KVM_MMU_AUDIT=y CONFIG_VHOST_NET=m CONFIG_LGUEST=m -CONFIG_VIRTIO=y -CONFIG_VIRTIO_RING=y -CONFIG_VIRTIO_PCI=m -CONFIG_VIRTIO_BALLOON=m CONFIG_BINARY_PRINTF=y # @@ -5795,6 +5794,7 @@ CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m +CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=m @@ -5814,6 +5814,7 @@ CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y +CONFIG_GENERIC_ALLOCATOR=y CONFIG_REED_SOLOMON=m CONFIG_REED_SOLOMON_DEC16=y CONFIG_TEXTSEARCH=y @@ -5829,3 +5830,5 @@ CONFIG_CPU_RMAP=y CONFIG_NLATTR=y CONFIG_LRU_CACHE=m CONFIG_AVERAGE=y +CONFIG_CORDIC=m +CONFIG_LLIST=y diff --git a/libre/linux-libre/config.x86_64 b/libre/linux-libre/config.x86_64 index de4d3a424..6011a797a 100644 --- a/libre/linux-libre/config.x86_64 +++ b/libre/linux-libre/config.x86_64 @@ -1,6 +1,6 @@ # -# Automatically generated make config: don't edit -# Linux/x86_64 3.0 Kernel Configuration +# Automatically generated file; DO NOT EDIT. +# Linux/x86_64 3.1.1-1 Kernel Configuration # CONFIG_64BIT=y # CONFIG_X86_32 is not set @@ -12,6 +12,7 @@ CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y @@ -165,6 +166,7 @@ CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y +CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y @@ -211,6 +213,7 @@ CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y # # GCOV-based kernel profiling @@ -224,11 +227,12 @@ CONFIG_MODULES=y CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODVERSIONS is not set +CONFIG_MODVERSIONS=y # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_BLK_DEV_BSG=y +# CONFIG_BLK_DEV_BSGLIB is not set # CONFIG_BLK_DEV_INTEGRITY is not set CONFIG_BLK_DEV_THROTTLING=y CONFIG_BLOCK_COMPAT=y @@ -290,6 +294,7 @@ CONFIG_X86_MPPARSE=y CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_PARAVIRT_GUEST=y +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set CONFIG_XEN=y CONFIG_XEN_DOM0=y CONFIG_XEN_PRIVILEGED_GUEST=y @@ -314,6 +319,7 @@ CONFIG_GENERIC_CPU=y CONFIG_X86_INTERNODE_CACHE_SHIFT=7 CONFIG_X86_CMPXCHG=y CONFIG_CMPXCHG_LOCAL=y +CONFIG_CMPXCHG_DOUBLE=y CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_XADD=y CONFIG_X86_WP_WORKS_OK=y @@ -331,11 +337,8 @@ CONFIG_DMI=y CONFIG_GART_IOMMU=y CONFIG_CALGARY_IOMMU=y CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y -CONFIG_AMD_IOMMU=y -# CONFIG_AMD_IOMMU_STATS is not set CONFIG_SWIOTLB=y CONFIG_IOMMU_HELPER=y -CONFIG_IOMMU_API=y # CONFIG_MAXSMP is not set CONFIG_NR_CPUS=64 CONFIG_SCHED_SMT=y @@ -344,6 +347,7 @@ CONFIG_SCHED_MC=y # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y @@ -457,10 +461,10 @@ CONFIG_CAN_PM_TRACE=y # CONFIG_PM_TRACE_RTC is not set CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y -CONFIG_ACPI_PROCFS=y +# CONFIG_ACPI_PROCFS is not set # CONFIG_ACPI_PROCFS_POWER is not set CONFIG_ACPI_EC_DEBUGFS=m -CONFIG_ACPI_PROC_EVENT=y +# CONFIG_ACPI_PROC_EVENT is not set CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m CONFIG_ACPI_BUTTON=m @@ -481,11 +485,12 @@ CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=m CONFIG_ACPI_HOTPLUG_MEMORY=m CONFIG_ACPI_SBS=m -CONFIG_ACPI_HED=m +CONFIG_ACPI_HED=y CONFIG_ACPI_CUSTOM_METHOD=m CONFIG_ACPI_APEI=y -CONFIG_ACPI_APEI_GHES=m +CONFIG_ACPI_APEI_GHES=y CONFIG_ACPI_APEI_PCIEAER=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y CONFIG_ACPI_APEI_EINJ=m CONFIG_ACPI_APEI_ERST_DEBUG=m CONFIG_SFI=y @@ -540,10 +545,6 @@ CONFIG_PCI_MMCONFIG=y CONFIG_PCI_XEN=y CONFIG_PCI_DOMAINS=y # CONFIG_PCI_CNB20LE_QUIRK is not set -CONFIG_DMAR=y -# CONFIG_DMAR_DEFAULT_ON is not set -CONFIG_DMAR_FLOPPY_WA=y -# CONFIG_INTR_REMAP is not set CONFIG_PCIEPORTBUS=y CONFIG_HOTPLUG_PCI_PCIE=m CONFIG_PCIEAER=y @@ -822,6 +823,7 @@ CONFIG_IP_SET_HASH_IPPORTIP=m CONFIG_IP_SET_HASH_IPPORTNET=m CONFIG_IP_SET_HASH_NET=m CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_VS=m # CONFIG_IP_VS_IPV6 is not set @@ -1210,6 +1212,13 @@ CONFIG_CAIF=m CONFIG_CAIF_NETDEV=m CONFIG_CEPH_LIB=m # CONFIG_CEPH_LIB_PRETTYDEBUG is not set +CONFIG_NFC=m + +# +# Near Field Communication (NFC) devices +# +CONFIG_PN544_NFC=m +CONFIG_NFC_PN533=m # # Device Drivers @@ -1229,6 +1238,8 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set CONFIG_SYS_HYPERVISOR=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=m CONFIG_CONNECTOR=m CONFIG_MTD=m # CONFIG_MTD_DEBUG is not set @@ -1383,6 +1394,7 @@ CONFIG_BLK_DEV_DAC960=m # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m CONFIG_BLK_DEV_DRBD=m # CONFIG_DRBD_FAULT_INJECTION is not set @@ -1433,6 +1445,7 @@ CONFIG_TI_DAC7512=m CONFIG_VMWARE_BALLOON=m CONFIG_BMP085=m CONFIG_PCH_PHUB=m +CONFIG_USB_SWITCH_FSA9480=m CONFIG_C2PORT=m CONFIG_C2PORT_DURAMAR_2150=m @@ -1444,6 +1457,7 @@ CONFIG_EEPROM_AT25=m CONFIG_EEPROM_LEGACY=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m +CONFIG_EEPROM_93XX46=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y @@ -1457,72 +1471,7 @@ CONFIG_IWMC3200TOP=m CONFIG_TI_ST=m CONFIG_SENSORS_LIS3_I2C=m CONFIG_HAVE_IDE=y -CONFIG_IDE=m - -# -# Please see Documentation/ide/ide.txt for help/info on IDE drives -# -CONFIG_IDE_XFER_MODE=y -CONFIG_IDE_TIMINGS=y -CONFIG_IDE_ATAPI=y -# CONFIG_BLK_DEV_IDE_SATA is not set -CONFIG_IDE_GD=m -CONFIG_IDE_GD_ATA=y -CONFIG_IDE_GD_ATAPI=y -CONFIG_BLK_DEV_IDECS=m -CONFIG_BLK_DEV_DELKIN=m -CONFIG_BLK_DEV_IDECD=m -CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y -CONFIG_BLK_DEV_IDETAPE=m -CONFIG_BLK_DEV_IDEACPI=y -# CONFIG_IDE_TASK_IOCTL is not set -CONFIG_IDE_PROC_FS=y - -# -# IDE chipset support/bugfixes -# -CONFIG_IDE_GENERIC=m -CONFIG_BLK_DEV_PLATFORM=m -CONFIG_BLK_DEV_CMD640=m -# CONFIG_BLK_DEV_CMD640_ENHANCED is not set -CONFIG_BLK_DEV_IDEPNP=m -CONFIG_BLK_DEV_IDEDMA_SFF=y - -# -# PCI IDE chipsets support -# -CONFIG_BLK_DEV_IDEPCI=y -# CONFIG_BLK_DEV_OFFBOARD is not set -CONFIG_BLK_DEV_GENERIC=m -CONFIG_BLK_DEV_OPTI621=m -CONFIG_BLK_DEV_RZ1000=m -CONFIG_BLK_DEV_IDEDMA_PCI=y -CONFIG_BLK_DEV_AEC62XX=m -CONFIG_BLK_DEV_ALI15X3=m -CONFIG_BLK_DEV_AMD74XX=m -CONFIG_BLK_DEV_ATIIXP=m -CONFIG_BLK_DEV_CMD64X=m -CONFIG_BLK_DEV_TRIFLEX=m -CONFIG_BLK_DEV_CS5520=m -CONFIG_BLK_DEV_CS5530=m -CONFIG_BLK_DEV_HPT366=m -CONFIG_BLK_DEV_JMICRON=m -CONFIG_BLK_DEV_SC1200=m -CONFIG_BLK_DEV_PIIX=m -CONFIG_BLK_DEV_IT8172=m -CONFIG_BLK_DEV_IT8213=m -CONFIG_BLK_DEV_IT821X=m -CONFIG_BLK_DEV_NS87415=m -CONFIG_BLK_DEV_PDC202XX_OLD=m -CONFIG_BLK_DEV_PDC202XX_NEW=m -CONFIG_BLK_DEV_SVWKS=m -CONFIG_BLK_DEV_SIIMAGE=m -CONFIG_BLK_DEV_SIS5513=m -CONFIG_BLK_DEV_SLC90E66=m -CONFIG_BLK_DEV_TRM290=m -CONFIG_BLK_DEV_VIA82CXXX=m -CONFIG_BLK_DEV_TC86C001=m -CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_IDE is not set # # SCSI device support @@ -1596,6 +1545,7 @@ CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=m # CONFIG_SCSI_MVSAS_DEBUG is not set +CONFIG_SCSI_MVSAS_TASKLET=y CONFIG_SCSI_DPT_I2O=m CONFIG_SCSI_ADVANSYS=m CONFIG_SCSI_ARCMSR=m @@ -1791,8 +1741,8 @@ CONFIG_TCM_IBLOCK=m CONFIG_TCM_FILEIO=m CONFIG_TCM_PSCSI=m CONFIG_LOOPBACK_TARGET=m -# CONFIG_LOOPBACK_TARGET_CDB_DEBUG is not set CONFIG_TCM_FC=m +CONFIG_ISCSI_TARGET=m CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m @@ -1940,6 +1890,7 @@ CONFIG_R8169=m CONFIG_SIS190=m CONFIG_SKGE=m # CONFIG_SKGE_DEBUG is not set +CONFIG_SKGE_GENESIS=y CONFIG_SKY2=m # CONFIG_SKY2_DEBUG is not set CONFIG_VIA_VELOCITY=m @@ -2026,10 +1977,13 @@ CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_WPC=y CONFIG_B43=m +CONFIG_B43_BCMA=y +CONFIG_B43_SSB=y CONFIG_B43_PCI_AUTOSELECT=y CONFIG_B43_PCICORE_AUTOSELECT=y CONFIG_B43_PCMCIA=y CONFIG_B43_SDIO=y +CONFIG_B43_BCMA_PIO=y CONFIG_B43_PIO=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_LP=y @@ -2133,6 +2087,7 @@ CONFIG_RT2X00_LIB_LEDS=y # CONFIG_RT2X00_DEBUG is not set CONFIG_RTL8192CE=m CONFIG_RTL8192SE=m +CONFIG_RTL8192DE=m CONFIG_RTL8192CU=m CONFIG_RTLWIFI=m CONFIG_RTL8192C_COMMON=m @@ -2245,6 +2200,7 @@ CONFIG_IEEE802154_FAKEHARD=m CONFIG_CAIF_TTY=m CONFIG_CAIF_SPI_SLAVE=m CONFIG_CAIF_SPI_SYNC=y +CONFIG_CAIF_HSI=m CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_NETDEV_BACKEND=m CONFIG_RIONET=m @@ -2566,11 +2522,15 @@ CONFIG_INPUT_AD714X=m CONFIG_INPUT_AD714X_I2C=m CONFIG_INPUT_AD714X_SPI=m CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_MMA8450=m +CONFIG_INPUT_MPU3050=m CONFIG_INPUT_APANEL=m CONFIG_INPUT_ATLAS_BTNS=m CONFIG_INPUT_ATI_REMOTE=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_KXTJ9=m +# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m @@ -2833,13 +2793,13 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_GPIOLIB=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=m CONFIG_GPIO_MAX730X=m # # Memory mapped GPIO drivers: # -CONFIG_GPIO_BASIC_MMIO_CORE=m -CONFIG_GPIO_BASIC_MMIO=m +CONFIG_GPIO_GENERIC_PLATFORM=m CONFIG_GPIO_IT8761E=m CONFIG_GPIO_SCH=m CONFIG_GPIO_VX855=m @@ -2851,6 +2811,7 @@ CONFIG_GPIO_MAX7300=m CONFIG_GPIO_MAX732X=m CONFIG_GPIO_PCA953X=m CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_TPS65912=m CONFIG_GPIO_WM831X=m CONFIG_GPIO_ADP5588=m @@ -2988,18 +2949,22 @@ CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LTC4261=m CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m CONFIG_SENSORS_MAX1111=m CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_PCF8591=m CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_MAX16064=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m @@ -3016,7 +2981,9 @@ CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m @@ -3051,6 +3018,7 @@ CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=y CONFIG_THERMAL_HWMON=y CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set # @@ -3129,6 +3097,7 @@ CONFIG_BCMA_POSSIBLE=y # Broadcom specific AMBA # CONFIG_BCMA=m +CONFIG_BCMA_BLOCKIO=y CONFIG_BCMA_HOST_PCI_POSSIBLE=y CONFIG_BCMA_HOST_PCI=y # CONFIG_BCMA_DEBUG is not set @@ -3141,6 +3110,8 @@ CONFIG_UCB1400_CORE=m CONFIG_TPS6105X=m CONFIG_TPS65010=m CONFIG_TPS6507X=m +CONFIG_MFD_TPS65912=y +CONFIG_MFD_TPS65912_SPI=y # CONFIG_MFD_TMIO is not set CONFIG_MFD_WM8400=m CONFIG_MFD_WM831X=y @@ -3185,6 +3156,7 @@ CONFIG_REGULATOR_MC13892=m CONFIG_REGULATOR_TPS6105X=m CONFIG_REGULATOR_TPS65023=m CONFIG_REGULATOR_TPS6507X=m +CONFIG_REGULATOR_TPS65912=m CONFIG_REGULATOR_ISL6271A=m CONFIG_REGULATOR_AD5398=m CONFIG_REGULATOR_AB8500=y @@ -3199,6 +3171,7 @@ CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m CONFIG_VIDEO_V4L2_SUBDEV_API=y CONFIG_DVB_CORE=m +CONFIG_DVB_NET=y CONFIG_VIDEO_MEDIA=m # @@ -3215,6 +3188,7 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_JVC_DECODER=m CONFIG_IR_SONY_DECODER=m CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_MCE_KBD_DECODER=m CONFIG_IR_LIRC_CODEC=m CONFIG_IR_ENE=m CONFIG_IR_IMON=m @@ -3243,6 +3217,7 @@ CONFIG_MEDIA_TUNER_MT2131=m CONFIG_MEDIA_TUNER_QT1010=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MXL5005S=m CONFIG_MEDIA_TUNER_MXL5007T=m CONFIG_MEDIA_TUNER_MC44S803=m @@ -3261,6 +3236,7 @@ CONFIG_VIDEO_TUNER=m CONFIG_V4L2_MEM2MEM_DEV=m CONFIG_VIDEOBUF2_CORE=m CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m CONFIG_VIDEOBUF2_VMALLOC=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set @@ -3339,6 +3315,11 @@ CONFIG_VIDEO_MT9V032=m CONFIG_VIDEO_TCM825X=m # +# Flash devices +# +CONFIG_VIDEO_ADP1653=m + +# # Video improvement chips # CONFIG_VIDEO_UPD64031A=m @@ -3403,6 +3384,7 @@ CONFIG_SOC_CAMERA_RJ54N1=m CONFIG_SOC_CAMERA_TW9910=m CONFIG_SOC_CAMERA_PLATFORM=m CONFIG_SOC_CAMERA_OV2640=m +CONFIG_SOC_CAMERA_OV5642=m CONFIG_SOC_CAMERA_OV6650=m CONFIG_SOC_CAMERA_OV772X=m CONFIG_SOC_CAMERA_OV9640=m @@ -3431,6 +3413,7 @@ CONFIG_USB_GSPCA_OV534_9=m CONFIG_USB_GSPCA_PAC207=m CONFIG_USB_GSPCA_PAC7302=m CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m CONFIG_USB_GSPCA_SN9C2028=m CONFIG_USB_GSPCA_SN9C20X=m CONFIG_USB_GSPCA_SONIXB=m @@ -3462,6 +3445,7 @@ CONFIG_VIDEO_HDPVR=m CONFIG_VIDEO_EM28XX=m CONFIG_VIDEO_EM28XX_ALSA=m CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=y CONFIG_VIDEO_TLG2300=m CONFIG_VIDEO_CX231XX=m CONFIG_VIDEO_CX231XX_RC=y @@ -3606,6 +3590,11 @@ CONFIG_DVB_HOPPER=m CONFIG_DVB_NGENE=m # +# Supported ddbridge ('Octopus') Adapters +# +CONFIG_DVB_DDBRIDGE=m + +# # Supported DVB Frontends # # CONFIG_DVB_FE_CUSTOMISE is not set @@ -3619,6 +3608,12 @@ CONFIG_DVB_STV090x=m CONFIG_DVB_STV6110x=m # +# Multistandard (cable + terrestrial) frontends +# +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m + +# # DVB-S (satellite) frontends # CONFIG_DVB_CX24110=m @@ -3850,6 +3845,7 @@ CONFIG_LCD_VGG2432A4=m CONFIG_LCD_PLATFORM=m CONFIG_LCD_S6E63M0=m CONFIG_LCD_LD9040=m +CONFIG_LCD_AMS369FG06=m CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=m CONFIG_BACKLIGHT_PROGEAR=m @@ -3890,7 +3886,7 @@ CONFIG_FONT_8x16=y # CONFIG_FONT_SUN8x16 is not set # CONFIG_FONT_SUN12x22 is not set # CONFIG_FONT_10x18 is not set -CONFIG_LOGO=y +# CONFIG_LOGO is not set CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y # CONFIG_SOUND_OSS_CORE_PRECLAIM is not set @@ -3939,6 +3935,7 @@ CONFIG_SND_AC97_POWER_SAVE=y CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 CONFIG_SND_SB_COMMON=m CONFIG_SND_SB16_DSP=m +CONFIG_SND_TEA575X=m CONFIG_SND_PCI=y CONFIG_SND_AD1889=m CONFIG_SND_ALS300=m @@ -3988,8 +3985,8 @@ CONFIG_SND_ES1968_INPUT=y CONFIG_SND_ES1968_RADIO=y CONFIG_SND_FM801=m CONFIG_SND_FM801_TEA575X_BOOL=y -CONFIG_SND_TEA575X=m CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y @@ -3997,6 +3994,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=1 CONFIG_SND_HDA_INPUT_JACK=y CONFIG_SND_HDA_PATCH_LOADER=y CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y @@ -4004,6 +4002,7 @@ CONFIG_SND_HDA_CODEC_HDMI=y CONFIG_SND_HDA_CODEC_CIRRUS=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y +CONFIG_SND_HDA_CODEC_CA0132=y CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y @@ -4072,7 +4071,7 @@ CONFIG_USB_HIDDEV=y # CONFIG_HID_A4TECH=m CONFIG_HID_ACRUX=m -CONFIG_HID_ACRUX_FF=m +CONFIG_HID_ACRUX_FF=y CONFIG_HID_APPLE=m CONFIG_HID_BELKIN=m CONFIG_HID_CHERRY=m @@ -4084,6 +4083,8 @@ CONFIG_DRAGONRISE_FF=y CONFIG_HID_EMS_FF=m CONFIG_HID_ELECOM=m CONFIG_HID_EZKEY=m +CONFIG_HID_HOLTEK=m +CONFIG_HOLTEK_FF=y CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m CONFIG_HID_UCLOGIC=m @@ -4121,6 +4122,7 @@ CONFIG_HID_ROCCAT_KOVAPLUS=m CONFIG_HID_ROCCAT_PYRA=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m CONFIG_GREENASIA_FF=y @@ -4131,6 +4133,7 @@ CONFIG_HID_THRUSTMASTER=m CONFIG_THRUSTMASTER_FF=y CONFIG_HID_WACOM=m CONFIG_HID_WACOM_POWER_SUPPLY=y +CONFIG_HID_WIIMOTE=m CONFIG_HID_ZEROPLUS=m CONFIG_ZEROPLUS_FF=y CONFIG_HID_ZYDACRON=m @@ -4200,6 +4203,7 @@ CONFIG_USB_TMC=m CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_DATAFAB=m CONFIG_USB_STORAGE_FREECOM=m CONFIG_USB_STORAGE_ISD200=m @@ -4326,20 +4330,18 @@ CONFIG_USB_GADGET=m # CONFIG_USB_GADGET_DEBUG_FILES is not set # CONFIG_USB_GADGET_DEBUG_FS is not set CONFIG_USB_GADGET_VBUS_DRAW=2 -CONFIG_USB_GADGET_SELECTED=y -# CONFIG_USB_GADGET_FUSB300 is not set -# CONFIG_USB_GADGET_R8A66597 is not set -# CONFIG_USB_GADGET_PXA_U2O is not set -# CONFIG_USB_GADGET_M66592 is not set -# CONFIG_USB_GADGET_AMD5536UDC is not set -# CONFIG_USB_GADGET_CI13XXX_PCI is not set -CONFIG_USB_GADGET_NET2280=y +CONFIG_USB_R8A66597=m +CONFIG_USB_M66592=m +CONFIG_USB_AMD5536UDC=m +CONFIG_USB_CI13XXX_PCI=m +CONFIG_USB_NET2272=m +CONFIG_USB_NET2272_DMA=y CONFIG_USB_NET2280=m -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LANGWELL is not set -# CONFIG_USB_GADGET_EG20T is not set -# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GOKU=m +CONFIG_USB_EG20T=m +CONFIG_USB_DUMMY_HCD=m CONFIG_USB_GADGET_DUALSPEED=y +CONFIG_USB_GADGET_SUPERSPEED=y # CONFIG_USB_ZERO is not set CONFIG_USB_AUDIO=m CONFIG_USB_ETH=m @@ -4433,7 +4435,6 @@ CONFIG_LEDS_ALIX2=m CONFIG_LEDS_PCA9532=m CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_GPIO=m -CONFIG_LEDS_GPIO_PLATFORM=y CONFIG_LEDS_LP3944=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m @@ -4453,7 +4454,6 @@ CONFIG_LEDS_TRIGGERS=y # LED Triggers # CONFIG_LEDS_TRIGGER_TIMER=m -CONFIG_LEDS_TRIGGER_IDE_DISK=y CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m CONFIG_LEDS_TRIGGER_GPIO=m @@ -4462,8 +4462,6 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # # iptables trigger is under Netfilter config (LED target) # -CONFIG_NFC_DEVICES=y -CONFIG_PN544_NFC=m CONFIG_ACCESSIBILITY=y CONFIG_A11Y_BRAILLE_CONSOLE=y # CONFIG_INFINIBAND is not set @@ -4599,11 +4597,21 @@ CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m CONFIG_UIO_NETX=m +CONFIG_VIRTIO=m +CONFIG_VIRTIO_RING=m + +# +# Virtio drivers +# +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m # # Xen driver support # CONFIG_XEN_BALLOON=y +# CONFIG_XEN_SELFBALLOONING is not set +CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DEV_EVTCHN=m CONFIG_XEN_BACKEND=y @@ -4615,11 +4623,9 @@ CONFIG_XEN_GNTDEV=m CONFIG_XEN_GRANT_DEV_ALLOC=m CONFIG_XEN_PLATFORM_PCI=m CONFIG_SWIOTLB_XEN=y +CONFIG_XEN_TMEM=y +CONFIG_XEN_PCIDEV_BACKEND=m CONFIG_STAGING=y -# CONFIG_DIGIEPCA is not set -# CONFIG_RISCOM8 is not set -# CONFIG_SPECIALIX is not set -# CONFIG_COMPUTONE is not set CONFIG_ET131X=m # CONFIG_ET131X_DEBUG is not set CONFIG_SLICOSS=m @@ -4690,6 +4696,7 @@ CONFIG_COMEDI_AMPLC_PCI224=m CONFIG_COMEDI_AMPLC_PCI230=m CONFIG_COMEDI_CONTEC_PCI_DIO=m CONFIG_COMEDI_DT3000=m +CONFIG_COMEDI_DYNA_PCI10XX=m CONFIG_COMEDI_UNIOXX5=m CONFIG_COMEDI_GSC_HPDI=m CONFIG_COMEDI_ICP_MULTI=m @@ -4788,6 +4795,7 @@ CONFIG_WLAGS49_H25=m CONFIG_FB_SM7XX=m CONFIG_VIDEO_DT3155=m CONFIG_DT3155_CCIR=y +CONFIG_DT3155_STREAMING=y CONFIG_CRYSTALHD=m CONFIG_FB_XGI=m CONFIG_LIRC_STAGING=y @@ -4802,12 +4810,9 @@ CONFIG_LIRC_SIR=m CONFIG_LIRC_TTUSBIR=m CONFIG_LIRC_ZILOG=m CONFIG_EASYCAP=m -CONFIG_EASYCAP_SND=y -# CONFIG_EASYCAP_OSS is not set # CONFIG_EASYCAP_DEBUG is not set CONFIG_SOLO6X10=m CONFIG_ACPI_QUICKSTART=m -CONFIG_MACH_NO_WESTBRIDGE=y CONFIG_ATH6K_LEGACY=m CONFIG_AR600x_SD31_XXX=y # CONFIG_AR600x_WB31_XXX is not set @@ -4854,10 +4859,9 @@ CONFIG_SPEAKUP_SYNTH_DUMMY=m CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m CONFIG_DRM_PSB=m - -# -# Altera FPGA firmware download module -# +CONFIG_DRM_PSB_MRST=y +CONFIG_DRM_PSB_MFLD=y +CONFIG_DRM_PSB_CDV=y CONFIG_ALTERA_STAPL=m CONFIG_INTEL_MEI=m CONFIG_X86_PLATFORM_DEVICES=y @@ -4903,6 +4907,19 @@ CONFIG_XO15_EBOOK=m CONFIG_SAMSUNG_LAPTOP=m CONFIG_MXM_WMI=m CONFIG_INTEL_OAKTRAIL=m +CONFIG_SAMSUNG_Q10=m +CONFIG_CLKEVT_I8253=y +CONFIG_I8253_LOCK=y +CONFIG_CLKBLD_I8253=y +CONFIG_IOMMU_API=y +CONFIG_IOMMU_SUPPORT=y +CONFIG_AMD_IOMMU=y +# CONFIG_AMD_IOMMU_STATS is not set +CONFIG_DMAR=y +# CONFIG_DMAR_DEFAULT_ON is not set +CONFIG_DMAR_FLOPPY_WA=y +# CONFIG_INTR_REMAP is not set +CONFIG_VIRT_DRIVERS=y # # Firmware Drivers @@ -5069,6 +5086,7 @@ CONFIG_LOGFS=m CONFIG_CRAMFS=m CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_ZLIB=y CONFIG_SQUASHFS_LZO=y CONFIG_SQUASHFS_XZ=y # CONFIG_SQUASHFS_EMBEDDED is not set @@ -5084,6 +5102,7 @@ CONFIG_PSTORE=y CONFIG_UFS_FS=m # CONFIG_UFS_FS_WRITE is not set # CONFIG_UFS_DEBUG is not set +CONFIG_ORE=m CONFIG_EXOFS_FS=m # CONFIG_EXOFS_DEBUG is not set CONFIG_NETWORK_FILESYSTEMS=y @@ -5097,7 +5116,6 @@ CONFIG_NFS_FSCACHE=y CONFIG_NFS_USE_KERNEL_DNS=y # CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m -# CONFIG_NFSD_DEPRECATED is not set CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y @@ -5245,7 +5263,7 @@ CONFIG_DEBUG_MUTEXES=y # CONFIG_PROVE_LOCKING is not set # CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_STACKTRACE=y # CONFIG_DEBUG_STACK_USAGE is not set @@ -5372,6 +5390,11 @@ CONFIG_SECURITY_PATH=y # CONFIG_SECURITY_SELINUX is not set # CONFIG_SECURITY_SMACK is not set CONFIG_SECURITY_TOMOYO=y +CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048 +CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024 +# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set +CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init" +CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init" CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0 # CONFIG_IMA is not set @@ -5516,10 +5539,6 @@ CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m CONFIG_KVM_MMU_AUDIT=y CONFIG_VHOST_NET=m -CONFIG_VIRTIO=m -CONFIG_VIRTIO_RING=m -CONFIG_VIRTIO_PCI=m -CONFIG_VIRTIO_BALLOON=m CONFIG_BINARY_PRINTF=y # @@ -5535,6 +5554,7 @@ CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m +CONFIG_CRC8=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=m CONFIG_LZO_COMPRESS=y @@ -5553,6 +5573,7 @@ CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y +CONFIG_GENERIC_ALLOCATOR=y CONFIG_REED_SOLOMON=m CONFIG_REED_SOLOMON_DEC16=y CONFIG_TEXTSEARCH=y @@ -5568,3 +5589,5 @@ CONFIG_CPU_RMAP=y CONFIG_NLATTR=y CONFIG_LRU_CACHE=m CONFIG_AVERAGE=y +CONFIG_CORDIC=m +CONFIG_LLIST=y diff --git a/libre/linux-libre/dib0700-fix.patch b/libre/linux-libre/dib0700-fix.patch new file mode 100644 index 000000000..48f07e6fd --- /dev/null +++ b/libre/linux-libre/dib0700-fix.patch @@ -0,0 +1,1487 @@ +commit 198c545cd7306dc90aaae1d61e64175e70a70dc8 +Author: Patrick Boettcher <Patrick.Boettcher@dibcom.fr> +Date: Wed Aug 3 17:08:21 2011 +0200 + + [media] DiBcom: protect the I2C bufer access + + This patch protect the I2C buffer access in order to manage concurrent + access. This protection is done using mutex. + Furthermore, for the dib9000, if a pid filtering command is + received during the tuning, this pid filtering command is delayed to + avoid any concurrent access issue. + + Cc: Mauro Carvalho Chehab <mchehab@redhat.com> + Cc: Florian Mickler <florian@mickler.org> + Cc: stable@kernel.org + + Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr> + Signed-off-by: Patrick Boettcher <Patrick.Boettcher@dibcom.fr> + +diff --git a/drivers/media/dvb/frontends/dib0070.c b/drivers/media/dvb/frontends/dib0070.c +index 1d47d4d..dc1cb17 100644 +--- a/drivers/media/dvb/frontends/dib0070.c ++++ b/drivers/media/dvb/frontends/dib0070.c +@@ -27,6 +27,7 @@ + #include <linux/kernel.h> + #include <linux/slab.h> + #include <linux/i2c.h> ++#include <linux/mutex.h> + + #include "dvb_frontend.h" + +@@ -78,10 +79,18 @@ struct dib0070_state { + struct i2c_msg msg[2]; + u8 i2c_write_buffer[3]; + u8 i2c_read_buffer[2]; ++ struct mutex i2c_buffer_lock; + }; + +-static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg) ++static u16 dib0070_read_reg(struct dib0070_state *state, u8 reg) + { ++ u16 ret; ++ ++ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } ++ + state->i2c_write_buffer[0] = reg; + + memset(state->msg, 0, 2 * sizeof(struct i2c_msg)); +@@ -96,13 +105,23 @@ static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg) + + if (i2c_transfer(state->i2c, state->msg, 2) != 2) { + printk(KERN_WARNING "DiB0070 I2C read failed\n"); +- return 0; +- } +- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; ++ ret = 0; ++ } else ++ ret = (state->i2c_read_buffer[0] << 8) ++ | state->i2c_read_buffer[1]; ++ ++ mutex_unlock(&state->i2c_buffer_lock); ++ return ret; + } + + static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val) + { ++ int ret; ++ ++ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return -EINVAL; ++ } + state->i2c_write_buffer[0] = reg; + state->i2c_write_buffer[1] = val >> 8; + state->i2c_write_buffer[2] = val & 0xff; +@@ -115,9 +134,12 @@ static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val) + + if (i2c_transfer(state->i2c, state->msg, 1) != 1) { + printk(KERN_WARNING "DiB0070 I2C write failed\n"); +- return -EREMOTEIO; +- } +- return 0; ++ ret = -EREMOTEIO; ++ } else ++ ret = 0; ++ ++ mutex_unlock(&state->i2c_buffer_lock); ++ return ret; + } + + #define HARD_RESET(state) do { \ +@@ -734,6 +756,7 @@ struct dvb_frontend *dib0070_attach(struct dvb_frontend *fe, struct i2c_adapter + state->cfg = cfg; + state->i2c = i2c; + state->fe = fe; ++ mutex_init(&state->i2c_buffer_lock); + fe->tuner_priv = state; + + if (dib0070_reset(fe) != 0) +diff --git a/drivers/media/dvb/frontends/dib0090.c b/drivers/media/dvb/frontends/dib0090.c +index c9c935a..b174d1c 100644 +--- a/drivers/media/dvb/frontends/dib0090.c ++++ b/drivers/media/dvb/frontends/dib0090.c +@@ -27,6 +27,7 @@ + #include <linux/kernel.h> + #include <linux/slab.h> + #include <linux/i2c.h> ++#include <linux/mutex.h> + + #include "dvb_frontend.h" + +@@ -196,6 +197,7 @@ struct dib0090_state { + struct i2c_msg msg[2]; + u8 i2c_write_buffer[3]; + u8 i2c_read_buffer[2]; ++ struct mutex i2c_buffer_lock; + }; + + struct dib0090_fw_state { +@@ -208,10 +210,18 @@ struct dib0090_fw_state { + struct i2c_msg msg; + u8 i2c_write_buffer[2]; + u8 i2c_read_buffer[2]; ++ struct mutex i2c_buffer_lock; + }; + + static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg) + { ++ u16 ret; ++ ++ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } ++ + state->i2c_write_buffer[0] = reg; + + memset(state->msg, 0, 2 * sizeof(struct i2c_msg)); +@@ -226,14 +236,24 @@ static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg) + + if (i2c_transfer(state->i2c, state->msg, 2) != 2) { + printk(KERN_WARNING "DiB0090 I2C read failed\n"); +- return 0; +- } ++ ret = 0; ++ } else ++ ret = (state->i2c_read_buffer[0] << 8) ++ | state->i2c_read_buffer[1]; + +- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; ++ mutex_unlock(&state->i2c_buffer_lock); ++ return ret; + } + + static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val) + { ++ int ret; ++ ++ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return -EINVAL; ++ } ++ + state->i2c_write_buffer[0] = reg & 0xff; + state->i2c_write_buffer[1] = val >> 8; + state->i2c_write_buffer[2] = val & 0xff; +@@ -246,13 +266,23 @@ static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val) + + if (i2c_transfer(state->i2c, state->msg, 1) != 1) { + printk(KERN_WARNING "DiB0090 I2C write failed\n"); +- return -EREMOTEIO; +- } +- return 0; ++ ret = -EREMOTEIO; ++ } else ++ ret = 0; ++ ++ mutex_unlock(&state->i2c_buffer_lock); ++ return ret; + } + + static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg) + { ++ u16 ret; ++ ++ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } ++ + state->i2c_write_buffer[0] = reg; + + memset(&state->msg, 0, sizeof(struct i2c_msg)); +@@ -262,13 +292,24 @@ static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg) + state->msg.len = 2; + if (i2c_transfer(state->i2c, &state->msg, 1) != 1) { + printk(KERN_WARNING "DiB0090 I2C read failed\n"); +- return 0; +- } +- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; ++ ret = 0; ++ } else ++ ret = (state->i2c_read_buffer[0] << 8) ++ | state->i2c_read_buffer[1]; ++ ++ mutex_unlock(&state->i2c_buffer_lock); ++ return ret; + } + + static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val) + { ++ int ret; ++ ++ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return -EINVAL; ++ } ++ + state->i2c_write_buffer[0] = val >> 8; + state->i2c_write_buffer[1] = val & 0xff; + +@@ -279,9 +320,12 @@ static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val) + state->msg.len = 2; + if (i2c_transfer(state->i2c, &state->msg, 1) != 1) { + printk(KERN_WARNING "DiB0090 I2C write failed\n"); +- return -EREMOTEIO; +- } +- return 0; ++ ret = -EREMOTEIO; ++ } else ++ ret = 0; ++ ++ mutex_unlock(&state->i2c_buffer_lock); ++ return ret; + } + + #define HARD_RESET(state) do { if (cfg->reset) { if (cfg->sleep) cfg->sleep(fe, 0); msleep(10); cfg->reset(fe, 1); msleep(10); cfg->reset(fe, 0); msleep(10); } } while (0) +@@ -2440,6 +2484,7 @@ struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapte + st->config = config; + st->i2c = i2c; + st->fe = fe; ++ mutex_init(&st->i2c_buffer_lock); + fe->tuner_priv = st; + + if (config->wbd == NULL) +@@ -2471,6 +2516,7 @@ struct dvb_frontend *dib0090_fw_register(struct dvb_frontend *fe, struct i2c_ada + st->config = config; + st->i2c = i2c; + st->fe = fe; ++ mutex_init(&st->i2c_buffer_lock); + fe->tuner_priv = st; + + if (dib0090_fw_reset_digital(fe, st->config) != 0) +diff --git a/drivers/media/dvb/frontends/dib7000m.c b/drivers/media/dvb/frontends/dib7000m.c +index 79cb1c2..dbb76d7 100644 +--- a/drivers/media/dvb/frontends/dib7000m.c ++++ b/drivers/media/dvb/frontends/dib7000m.c +@@ -11,6 +11,7 @@ + #include <linux/kernel.h> + #include <linux/slab.h> + #include <linux/i2c.h> ++#include <linux/mutex.h> + + #include "dvb_frontend.h" + +@@ -55,6 +56,7 @@ struct dib7000m_state { + struct i2c_msg msg[2]; + u8 i2c_write_buffer[4]; + u8 i2c_read_buffer[2]; ++ struct mutex i2c_buffer_lock; + }; + + enum dib7000m_power_mode { +@@ -69,6 +71,13 @@ enum dib7000m_power_mode { + + static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg) + { ++ u16 ret; ++ ++ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } ++ + state->i2c_write_buffer[0] = (reg >> 8) | 0x80; + state->i2c_write_buffer[1] = reg & 0xff; + +@@ -85,11 +94,21 @@ static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg) + if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2) + dprintk("i2c read error on %d",reg); + +- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; ++ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; ++ mutex_unlock(&state->i2c_buffer_lock); ++ ++ return ret; + } + + static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val) + { ++ int ret; ++ ++ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return -EINVAL; ++ } ++ + state->i2c_write_buffer[0] = (reg >> 8) & 0xff; + state->i2c_write_buffer[1] = reg & 0xff; + state->i2c_write_buffer[2] = (val >> 8) & 0xff; +@@ -101,7 +120,10 @@ static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val) + state->msg[0].buf = state->i2c_write_buffer; + state->msg[0].len = 4; + +- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; ++ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? ++ -EREMOTEIO : 0); ++ mutex_unlock(&state->i2c_buffer_lock); ++ return ret; + } + static void dib7000m_write_tab(struct dib7000m_state *state, u16 *buf) + { +@@ -1385,6 +1407,7 @@ struct dvb_frontend * dib7000m_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, + demod = &st->demod; + demod->demodulator_priv = st; + memcpy(&st->demod.ops, &dib7000m_ops, sizeof(struct dvb_frontend_ops)); ++ mutex_init(&st->i2c_buffer_lock); + + st->timf_default = cfg->bw->timf; + +diff --git a/drivers/media/dvb/frontends/dib7000p.c b/drivers/media/dvb/frontends/dib7000p.c +index 0c9f40c..292bc19 100644 +--- a/drivers/media/dvb/frontends/dib7000p.c ++++ b/drivers/media/dvb/frontends/dib7000p.c +@@ -10,6 +10,7 @@ + #include <linux/kernel.h> + #include <linux/slab.h> + #include <linux/i2c.h> ++#include <linux/mutex.h> + + #include "dvb_math.h" + #include "dvb_frontend.h" +@@ -68,6 +69,7 @@ struct dib7000p_state { + struct i2c_msg msg[2]; + u8 i2c_write_buffer[4]; + u8 i2c_read_buffer[2]; ++ struct mutex i2c_buffer_lock; + }; + + enum dib7000p_power_mode { +@@ -81,6 +83,13 @@ static int dib7090_set_diversity_in(struct dvb_frontend *fe, int onoff); + + static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg) + { ++ u16 ret; ++ ++ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } ++ + state->i2c_write_buffer[0] = reg >> 8; + state->i2c_write_buffer[1] = reg & 0xff; + +@@ -97,11 +106,20 @@ static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg) + if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2) + dprintk("i2c read error on %d", reg); + +- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; ++ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; ++ mutex_unlock(&state->i2c_buffer_lock); ++ return ret; + } + + static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val) + { ++ int ret; ++ ++ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return -EINVAL; ++ } ++ + state->i2c_write_buffer[0] = (reg >> 8) & 0xff; + state->i2c_write_buffer[1] = reg & 0xff; + state->i2c_write_buffer[2] = (val >> 8) & 0xff; +@@ -113,7 +131,10 @@ static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val) + state->msg[0].buf = state->i2c_write_buffer; + state->msg[0].len = 4; + +- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; ++ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? ++ -EREMOTEIO : 0); ++ mutex_unlock(&state->i2c_buffer_lock); ++ return ret; + } + + static void dib7000p_write_tab(struct dib7000p_state *state, u16 * buf) +@@ -1646,6 +1667,7 @@ int dib7000p_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 defau + return -ENOMEM; + + dpst->i2c_adap = i2c; ++ mutex_init(&dpst->i2c_buffer_lock); + + for (k = no_of_demods - 1; k >= 0; k--) { + dpst->cfg = cfg[k]; +@@ -2324,6 +2346,7 @@ struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, + demod = &st->demod; + demod->demodulator_priv = st; + memcpy(&st->demod.ops, &dib7000p_ops, sizeof(struct dvb_frontend_ops)); ++ mutex_init(&st->i2c_buffer_lock); + + dib7000p_write_word(st, 1287, 0x0003); /* sram lead in, rdy */ + +@@ -2333,8 +2356,9 @@ struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, + st->version = dib7000p_read_word(st, 897); + + /* FIXME: make sure the dev.parent field is initialized, or else +- request_firmware() will hit an OOPS (this should be moved somewhere +- more common) */ ++ request_firmware() will hit an OOPS (this should be moved somewhere ++ more common) */ ++ st->i2c_master.gated_tuner_i2c_adap.dev.parent = i2c_adap->dev.parent; + + dibx000_init_i2c_master(&st->i2c_master, DIB7000P, st->i2c_adap, st->i2c_addr); + +diff --git a/drivers/media/dvb/frontends/dib8000.c b/drivers/media/dvb/frontends/dib8000.c +index 7d2ea11..fe284d5 100644 +--- a/drivers/media/dvb/frontends/dib8000.c ++++ b/drivers/media/dvb/frontends/dib8000.c +@@ -10,6 +10,8 @@ + #include <linux/kernel.h> + #include <linux/slab.h> + #include <linux/i2c.h> ++#include <linux/mutex.h> ++ + #include "dvb_math.h" + + #include "dvb_frontend.h" +@@ -37,6 +39,7 @@ struct i2c_device { + u8 addr; + u8 *i2c_write_buffer; + u8 *i2c_read_buffer; ++ struct mutex *i2c_buffer_lock; + }; + + struct dib8000_state { +@@ -77,6 +80,7 @@ struct dib8000_state { + struct i2c_msg msg[2]; + u8 i2c_write_buffer[4]; + u8 i2c_read_buffer[2]; ++ struct mutex i2c_buffer_lock; + }; + + enum dib8000_power_mode { +@@ -86,24 +90,39 @@ enum dib8000_power_mode { + + static u16 dib8000_i2c_read16(struct i2c_device *i2c, u16 reg) + { ++ u16 ret; + struct i2c_msg msg[2] = { +- {.addr = i2c->addr >> 1, .flags = 0, +- .buf = i2c->i2c_write_buffer, .len = 2}, +- {.addr = i2c->addr >> 1, .flags = I2C_M_RD, +- .buf = i2c->i2c_read_buffer, .len = 2}, ++ {.addr = i2c->addr >> 1, .flags = 0, .len = 2}, ++ {.addr = i2c->addr >> 1, .flags = I2C_M_RD, .len = 2}, + }; + ++ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } ++ ++ msg[0].buf = i2c->i2c_write_buffer; + msg[0].buf[0] = reg >> 8; + msg[0].buf[1] = reg & 0xff; ++ msg[1].buf = i2c->i2c_read_buffer; + + if (i2c_transfer(i2c->adap, msg, 2) != 2) + dprintk("i2c read error on %d", reg); + +- return (msg[1].buf[0] << 8) | msg[1].buf[1]; ++ ret = (msg[1].buf[0] << 8) | msg[1].buf[1]; ++ mutex_unlock(i2c->i2c_buffer_lock); ++ return ret; + } + + static u16 dib8000_read_word(struct dib8000_state *state, u16 reg) + { ++ u16 ret; ++ ++ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } ++ + state->i2c_write_buffer[0] = reg >> 8; + state->i2c_write_buffer[1] = reg & 0xff; + +@@ -120,7 +139,10 @@ static u16 dib8000_read_word(struct dib8000_state *state, u16 reg) + if (i2c_transfer(state->i2c.adap, state->msg, 2) != 2) + dprintk("i2c read error on %d", reg); + +- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; ++ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; ++ mutex_unlock(&state->i2c_buffer_lock); ++ ++ return ret; + } + + static u32 dib8000_read32(struct dib8000_state *state, u16 reg) +@@ -135,22 +157,35 @@ static u32 dib8000_read32(struct dib8000_state *state, u16 reg) + + static int dib8000_i2c_write16(struct i2c_device *i2c, u16 reg, u16 val) + { +- struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0, +- .buf = i2c->i2c_write_buffer, .len = 4}; ++ struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0, .len = 4}; + int ret = 0; + ++ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return -EINVAL; ++ } ++ ++ msg.buf = i2c->i2c_write_buffer; + msg.buf[0] = (reg >> 8) & 0xff; + msg.buf[1] = reg & 0xff; + msg.buf[2] = (val >> 8) & 0xff; + msg.buf[3] = val & 0xff; + + ret = i2c_transfer(i2c->adap, &msg, 1) != 1 ? -EREMOTEIO : 0; ++ mutex_unlock(i2c->i2c_buffer_lock); + + return ret; + } + + static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val) + { ++ int ret; ++ ++ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return -EINVAL; ++ } ++ + state->i2c_write_buffer[0] = (reg >> 8) & 0xff; + state->i2c_write_buffer[1] = reg & 0xff; + state->i2c_write_buffer[2] = (val >> 8) & 0xff; +@@ -162,7 +197,11 @@ static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val) + state->msg[0].buf = state->i2c_write_buffer; + state->msg[0].len = 4; + +- return i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; ++ ret = (i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ? ++ -EREMOTEIO : 0); ++ mutex_unlock(&state->i2c_buffer_lock); ++ ++ return ret; + } + + static const s16 coeff_2k_sb_1seg_dqpsk[8] = { +@@ -2434,8 +2473,15 @@ int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 defau + if (!client.i2c_read_buffer) { + dprintk("%s: not enough memory", __func__); + ret = -ENOMEM; +- goto error_memory; ++ goto error_memory_read; ++ } ++ client.i2c_buffer_lock = kzalloc(sizeof(struct mutex), GFP_KERNEL); ++ if (!client.i2c_buffer_lock) { ++ dprintk("%s: not enough memory", __func__); ++ ret = -ENOMEM; ++ goto error_memory_lock; + } ++ mutex_init(client.i2c_buffer_lock); + + for (k = no_of_demods - 1; k >= 0; k--) { + /* designated i2c address */ +@@ -2476,8 +2522,10 @@ int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 defau + } + + error: ++ kfree(client.i2c_buffer_lock); ++error_memory_lock: + kfree(client.i2c_read_buffer); +-error_memory: ++error_memory_read: + kfree(client.i2c_write_buffer); + + return ret; +@@ -2581,6 +2629,8 @@ struct dvb_frontend *dib8000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, s + state->i2c.addr = i2c_addr; + state->i2c.i2c_write_buffer = state->i2c_write_buffer; + state->i2c.i2c_read_buffer = state->i2c_read_buffer; ++ mutex_init(&state->i2c_buffer_lock); ++ state->i2c.i2c_buffer_lock = &state->i2c_buffer_lock; + state->gpio_val = cfg->gpio_val; + state->gpio_dir = cfg->gpio_dir; + +diff --git a/drivers/media/dvb/frontends/dib9000.c b/drivers/media/dvb/frontends/dib9000.c +index a085588..b931074 100644 +--- a/drivers/media/dvb/frontends/dib9000.c ++++ b/drivers/media/dvb/frontends/dib9000.c +@@ -38,6 +38,15 @@ struct i2c_device { + #define DibInitLock(lock) mutex_init(lock) + #define DibFreeLock(lock) + ++struct dib9000_pid_ctrl { ++#define DIB9000_PID_FILTER_CTRL 0 ++#define DIB9000_PID_FILTER 1 ++ u8 cmd; ++ u8 id; ++ u16 pid; ++ u8 onoff; ++}; ++ + struct dib9000_state { + struct i2c_device i2c; + +@@ -99,6 +108,10 @@ struct dib9000_state { + struct i2c_msg msg[2]; + u8 i2c_write_buffer[255]; + u8 i2c_read_buffer[255]; ++ DIB_LOCK demod_lock; ++ u8 get_frontend_internal; ++ struct dib9000_pid_ctrl pid_ctrl[10]; ++ s8 pid_ctrl_index; /* -1: empty list; -2: do not use the list */ + }; + + static const u32 fe_info[44] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +@@ -1743,19 +1756,56 @@ EXPORT_SYMBOL(dib9000_set_gpio); + int dib9000_fw_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff) + { + struct dib9000_state *state = fe->demodulator_priv; +- u16 val = dib9000_read_word(state, 294 + 1) & 0xffef; ++ u16 val; ++ int ret; ++ ++ if ((state->pid_ctrl_index != -2) && (state->pid_ctrl_index < 9)) { ++ /* postpone the pid filtering cmd */ ++ dprintk("pid filter cmd postpone"); ++ state->pid_ctrl_index++; ++ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER_CTRL; ++ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff; ++ return 0; ++ } ++ ++ DibAcquireLock(&state->demod_lock); ++ ++ val = dib9000_read_word(state, 294 + 1) & 0xffef; + val |= (onoff & 0x1) << 4; + + dprintk("PID filter enabled %d", onoff); +- return dib9000_write_word(state, 294 + 1, val); ++ ret = dib9000_write_word(state, 294 + 1, val); ++ DibReleaseLock(&state->demod_lock); ++ return ret; ++ + } + EXPORT_SYMBOL(dib9000_fw_pid_filter_ctrl); + + int dib9000_fw_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff) + { + struct dib9000_state *state = fe->demodulator_priv; ++ int ret; ++ ++ if (state->pid_ctrl_index != -2) { ++ /* postpone the pid filtering cmd */ ++ dprintk("pid filter postpone"); ++ if (state->pid_ctrl_index < 9) { ++ state->pid_ctrl_index++; ++ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER; ++ state->pid_ctrl[state->pid_ctrl_index].id = id; ++ state->pid_ctrl[state->pid_ctrl_index].pid = pid; ++ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff; ++ } else ++ dprintk("can not add any more pid ctrl cmd"); ++ return 0; ++ } ++ ++ DibAcquireLock(&state->demod_lock); + dprintk("Index %x, PID %d, OnOff %d", id, pid, onoff); +- return dib9000_write_word(state, 300 + 1 + id, onoff ? (1 << 13) | pid : 0); ++ ret = dib9000_write_word(state, 300 + 1 + id, ++ onoff ? (1 << 13) | pid : 0); ++ DibReleaseLock(&state->demod_lock); ++ return ret; + } + EXPORT_SYMBOL(dib9000_fw_pid_filter); + +@@ -1778,6 +1828,7 @@ static void dib9000_release(struct dvb_frontend *demod) + DibFreeLock(&state->platform.risc.mbx_lock); + DibFreeLock(&state->platform.risc.mem_lock); + DibFreeLock(&state->platform.risc.mem_mbx_lock); ++ DibFreeLock(&state->demod_lock); + dibx000_exit_i2c_master(&st->i2c_master); + + i2c_del_adapter(&st->tuner_adap); +@@ -1795,14 +1846,19 @@ static int dib9000_sleep(struct dvb_frontend *fe) + { + struct dib9000_state *state = fe->demodulator_priv; + u8 index_frontend; +- int ret; ++ int ret = 0; + ++ DibAcquireLock(&state->demod_lock); + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { + ret = state->fe[index_frontend]->ops.sleep(state->fe[index_frontend]); + if (ret < 0) +- return ret; ++ goto error; + } +- return dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0); ++ ret = dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0); ++ ++error: ++ DibReleaseLock(&state->demod_lock); ++ return ret; + } + + static int dib9000_fe_get_tune_settings(struct dvb_frontend *fe, struct dvb_frontend_tune_settings *tune) +@@ -1816,7 +1872,10 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par + struct dib9000_state *state = fe->demodulator_priv; + u8 index_frontend, sub_index_frontend; + fe_status_t stat; +- int ret; ++ int ret = 0; ++ ++ if (state->get_frontend_internal == 0) ++ DibAcquireLock(&state->demod_lock); + + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { + state->fe[index_frontend]->ops.read_status(state->fe[index_frontend], &stat); +@@ -1846,14 +1905,15 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par + state->fe[index_frontend]->dtv_property_cache.rolloff; + } + } +- return 0; ++ ret = 0; ++ goto return_value; + } + } + + /* get the channel from master chip */ + ret = dib9000_fw_get_channel(fe, fep); + if (ret != 0) +- return ret; ++ goto return_value; + + /* synchronize the cache with the other frontends */ + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { +@@ -1866,8 +1926,12 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par + state->fe[index_frontend]->dtv_property_cache.code_rate_LP = fe->dtv_property_cache.code_rate_LP; + state->fe[index_frontend]->dtv_property_cache.rolloff = fe->dtv_property_cache.rolloff; + } ++ ret = 0; + +- return 0; ++return_value: ++ if (state->get_frontend_internal == 0) ++ DibReleaseLock(&state->demod_lock); ++ return ret; + } + + static int dib9000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state) +@@ -1912,6 +1976,10 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par + dprintk("dib9000: must specify bandwidth "); + return 0; + } ++ ++ state->pid_ctrl_index = -1; /* postpone the pid filtering cmd */ ++ DibAcquireLock(&state->demod_lock); ++ + fe->dtv_property_cache.delivery_system = SYS_DVBT; + + /* set the master status */ +@@ -1974,13 +2042,18 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par + /* check the tune result */ + if (exit_condition == 1) { /* tune failed */ + dprintk("tune failed"); ++ DibReleaseLock(&state->demod_lock); ++ /* tune failed; put all the pid filtering cmd to junk */ ++ state->pid_ctrl_index = -1; + return 0; + } + + dprintk("tune success on frontend%i", index_frontend_success); + + /* synchronize all the channel cache */ ++ state->get_frontend_internal = 1; + dib9000_get_frontend(state->fe[0], fep); ++ state->get_frontend_internal = 0; + + /* retune the other frontends with the found channel */ + channel_status.status = CHANNEL_STATUS_PARAMETERS_SET; +@@ -2025,6 +2098,28 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par + /* turn off the diversity for the last frontend */ + dib9000_fw_set_diversity_in(state->fe[index_frontend - 1], 0); + ++ DibReleaseLock(&state->demod_lock); ++ if (state->pid_ctrl_index >= 0) { ++ u8 index_pid_filter_cmd; ++ u8 pid_ctrl_index = state->pid_ctrl_index; ++ ++ state->pid_ctrl_index = -2; ++ for (index_pid_filter_cmd = 0; ++ index_pid_filter_cmd <= pid_ctrl_index; ++ index_pid_filter_cmd++) { ++ if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER_CTRL) ++ dib9000_fw_pid_filter_ctrl(state->fe[0], ++ state->pid_ctrl[index_pid_filter_cmd].onoff); ++ else if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER) ++ dib9000_fw_pid_filter(state->fe[0], ++ state->pid_ctrl[index_pid_filter_cmd].id, ++ state->pid_ctrl[index_pid_filter_cmd].pid, ++ state->pid_ctrl[index_pid_filter_cmd].onoff); ++ } ++ } ++ /* do not postpone any more the pid filtering */ ++ state->pid_ctrl_index = -2; ++ + return 0; + } + +@@ -2041,6 +2136,7 @@ static int dib9000_read_status(struct dvb_frontend *fe, fe_status_t * stat) + u8 index_frontend; + u16 lock = 0, lock_slave = 0; + ++ DibAcquireLock(&state->demod_lock); + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) + lock_slave |= dib9000_read_lock(state->fe[index_frontend]); + +@@ -2059,6 +2155,8 @@ static int dib9000_read_status(struct dvb_frontend *fe, fe_status_t * stat) + if ((lock & 0x0008) || (lock_slave & 0x0008)) + *stat |= FE_HAS_LOCK; + ++ DibReleaseLock(&state->demod_lock); ++ + return 0; + } + +@@ -2066,10 +2164,14 @@ static int dib9000_read_ber(struct dvb_frontend *fe, u32 * ber) + { + struct dib9000_state *state = fe->demodulator_priv; + u16 *c; ++ int ret = 0; + ++ DibAcquireLock(&state->demod_lock); + DibAcquireLock(&state->platform.risc.mem_mbx_lock); +- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) +- return -EIO; ++ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { ++ ret = -EIO; ++ goto error; ++ } + dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, + state->i2c_read_buffer, 16 * 2); + DibReleaseLock(&state->platform.risc.mem_mbx_lock); +@@ -2077,7 +2179,10 @@ static int dib9000_read_ber(struct dvb_frontend *fe, u32 * ber) + c = (u16 *)state->i2c_read_buffer; + + *ber = c[10] << 16 | c[11]; +- return 0; ++ ++error: ++ DibReleaseLock(&state->demod_lock); ++ return ret; + } + + static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) +@@ -2086,7 +2191,9 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) + u8 index_frontend; + u16 *c = (u16 *)state->i2c_read_buffer; + u16 val; ++ int ret = 0; + ++ DibAcquireLock(&state->demod_lock); + *strength = 0; + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { + state->fe[index_frontend]->ops.read_signal_strength(state->fe[index_frontend], &val); +@@ -2097,8 +2204,10 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) + } + + DibAcquireLock(&state->platform.risc.mem_mbx_lock); +- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) +- return -EIO; ++ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { ++ ret = -EIO; ++ goto error; ++ } + dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2); + DibReleaseLock(&state->platform.risc.mem_mbx_lock); + +@@ -2107,7 +2216,10 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) + *strength = 65535; + else + *strength += val; +- return 0; ++ ++error: ++ DibReleaseLock(&state->demod_lock); ++ return ret; + } + + static u32 dib9000_get_snr(struct dvb_frontend *fe) +@@ -2151,6 +2263,7 @@ static int dib9000_read_snr(struct dvb_frontend *fe, u16 * snr) + u8 index_frontend; + u32 snr_master; + ++ DibAcquireLock(&state->demod_lock); + snr_master = dib9000_get_snr(fe); + for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) + snr_master += dib9000_get_snr(state->fe[index_frontend]); +@@ -2161,6 +2274,8 @@ static int dib9000_read_snr(struct dvb_frontend *fe, u16 * snr) + } else + *snr = 0; + ++ DibReleaseLock(&state->demod_lock); ++ + return 0; + } + +@@ -2168,15 +2283,22 @@ static int dib9000_read_unc_blocks(struct dvb_frontend *fe, u32 * unc) + { + struct dib9000_state *state = fe->demodulator_priv; + u16 *c = (u16 *)state->i2c_read_buffer; ++ int ret = 0; + ++ DibAcquireLock(&state->demod_lock); + DibAcquireLock(&state->platform.risc.mem_mbx_lock); +- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) +- return -EIO; ++ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { ++ ret = -EIO; ++ goto error; ++ } + dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2); + DibReleaseLock(&state->platform.risc.mem_mbx_lock); + + *unc = c[12]; +- return 0; ++ ++error: ++ DibReleaseLock(&state->demod_lock); ++ return ret; + } + + int dib9000_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 default_addr, u8 first_addr) +@@ -2322,6 +2444,10 @@ struct dvb_frontend *dib9000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, c + DibInitLock(&st->platform.risc.mbx_lock); + DibInitLock(&st->platform.risc.mem_lock); + DibInitLock(&st->platform.risc.mem_mbx_lock); ++ DibInitLock(&st->demod_lock); ++ st->get_frontend_internal = 0; ++ ++ st->pid_ctrl_index = -2; + + st->fe[0] = fe; + fe->demodulator_priv = st; +diff --git a/drivers/media/dvb/frontends/dibx000_common.c b/drivers/media/dvb/frontends/dibx000_common.c +index dc5d17a..774d507 100644 +--- a/drivers/media/dvb/frontends/dibx000_common.c ++++ b/drivers/media/dvb/frontends/dibx000_common.c +@@ -1,4 +1,5 @@ + #include <linux/i2c.h> ++#include <linux/mutex.h> + + #include "dibx000_common.h" + +@@ -10,6 +11,13 @@ MODULE_PARM_DESC(debug, "turn on debugging (default: 0)"); + + static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val) + { ++ int ret; ++ ++ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return -EINVAL; ++ } ++ + mst->i2c_write_buffer[0] = (reg >> 8) & 0xff; + mst->i2c_write_buffer[1] = reg & 0xff; + mst->i2c_write_buffer[2] = (val >> 8) & 0xff; +@@ -21,11 +29,21 @@ static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val) + mst->msg[0].buf = mst->i2c_write_buffer; + mst->msg[0].len = 4; + +- return i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0; ++ ret = i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0; ++ mutex_unlock(&mst->i2c_buffer_lock); ++ ++ return ret; + } + + static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg) + { ++ u16 ret; ++ ++ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } ++ + mst->i2c_write_buffer[0] = reg >> 8; + mst->i2c_write_buffer[1] = reg & 0xff; + +@@ -42,7 +60,10 @@ static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg) + if (i2c_transfer(mst->i2c_adap, mst->msg, 2) != 2) + dprintk("i2c read error on %d", reg); + +- return (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1]; ++ ret = (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1]; ++ mutex_unlock(&mst->i2c_buffer_lock); ++ ++ return ret; + } + + static int dibx000_is_i2c_done(struct dibx000_i2c_master *mst) +@@ -257,6 +278,7 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap, + struct i2c_msg msg[], int num) + { + struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap); ++ int ret; + + if (num > 32) { + dprintk("%s: too much I2C message to be transmitted (%i).\ +@@ -264,10 +286,15 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap, + return -ENOMEM; + } + +- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); +- + dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_GPIO_6_7); + ++ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return -EINVAL; ++ } ++ ++ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); ++ + /* open the gate */ + dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1); + mst->msg[0].addr = mst->i2c_addr; +@@ -282,7 +309,11 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap, + mst->msg[num + 1].buf = &mst->i2c_write_buffer[4]; + mst->msg[num + 1].len = 4; + +- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO; ++ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? ++ num : -EIO); ++ ++ mutex_unlock(&mst->i2c_buffer_lock); ++ return ret; + } + + static struct i2c_algorithm dibx000_i2c_gated_gpio67_algo = { +@@ -294,6 +325,7 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap, + struct i2c_msg msg[], int num) + { + struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap); ++ int ret; + + if (num > 32) { + dprintk("%s: too much I2C message to be transmitted (%i).\ +@@ -301,10 +333,14 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap, + return -ENOMEM; + } + +- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); +- + dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_TUNER); + ++ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return -EINVAL; ++ } ++ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); ++ + /* open the gate */ + dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1); + mst->msg[0].addr = mst->i2c_addr; +@@ -319,7 +355,10 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap, + mst->msg[num + 1].buf = &mst->i2c_write_buffer[4]; + mst->msg[num + 1].len = 4; + +- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO; ++ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? ++ num : -EIO); ++ mutex_unlock(&mst->i2c_buffer_lock); ++ return ret; + } + + static struct i2c_algorithm dibx000_i2c_gated_tuner_algo = { +@@ -390,8 +429,18 @@ static int i2c_adapter_init(struct i2c_adapter *i2c_adap, + int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev, + struct i2c_adapter *i2c_adap, u8 i2c_addr) + { +- u8 tx[4]; +- struct i2c_msg m = {.addr = i2c_addr >> 1,.buf = tx,.len = 4 }; ++ int ret; ++ ++ mutex_init(&mst->i2c_buffer_lock); ++ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { ++ dprintk("could not acquire lock"); ++ return -EINVAL; ++ } ++ memset(mst->msg, 0, sizeof(struct i2c_msg)); ++ mst->msg[0].addr = i2c_addr >> 1; ++ mst->msg[0].flags = 0; ++ mst->msg[0].buf = mst->i2c_write_buffer; ++ mst->msg[0].len = 4; + + mst->device_rev = device_rev; + mst->i2c_adap = i2c_adap; +@@ -431,9 +480,12 @@ int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev, + "DiBX000: could not initialize the master i2c_adapter\n"); + + /* initialize the i2c-master by closing the gate */ +- dibx000_i2c_gate_ctrl(mst, tx, 0, 0); ++ dibx000_i2c_gate_ctrl(mst, mst->i2c_write_buffer, 0, 0); ++ ++ ret = (i2c_transfer(i2c_adap, mst->msg, 1) == 1); ++ mutex_unlock(&mst->i2c_buffer_lock); + +- return i2c_transfer(i2c_adap, &m, 1) == 1; ++ return ret; + } + + EXPORT_SYMBOL(dibx000_init_i2c_master); +diff --git a/drivers/media/dvb/frontends/dibx000_common.h b/drivers/media/dvb/frontends/dibx000_common.h +index f031165..5e01147 100644 +--- a/drivers/media/dvb/frontends/dibx000_common.h ++++ b/drivers/media/dvb/frontends/dibx000_common.h +@@ -33,6 +33,7 @@ struct dibx000_i2c_master { + struct i2c_msg msg[34]; + u8 i2c_write_buffer[8]; + u8 i2c_read_buffer[2]; ++ struct mutex i2c_buffer_lock; + }; + + extern int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, +commit 45cbff13693d645fa5dcbba964e802e1746b2e57 +Author: Olivier Grenie <olivier.grenie@dibcom.fr> +Date: Mon Aug 1 17:45:58 2011 +0200 + + [media] dib0700: protect the dib0700 buffer access + + This patch protects the common buffer access inside the dib0700 in order + to manage concurrent access. This protection is done using mutex. + + Cc: Mauro Carvalho Chehab <mchehab@redhat.com> + Cc: Florian Mickler <florian@mickler.org> + Cc: stable@kernel.org + + Signed-off-by: Javier Marcet <javier@marcet.info> + Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr> + Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr> + +diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c +index 5eb91b4..291b645 100644 +--- a/drivers/media/dvb/dvb-usb/dib0700_core.c ++++ b/drivers/media/dvb/dvb-usb/dib0700_core.c +@@ -30,6 +30,11 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion, + struct dib0700_state *st = d->priv; + int ret; + ++ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } ++ + ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), + REQUEST_GET_VERSION, + USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, +@@ -46,6 +51,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion, + if (fwtype != NULL) + *fwtype = (st->buf[12] << 24) | (st->buf[13] << 16) | + (st->buf[14] << 8) | st->buf[15]; ++ mutex_unlock(&d->usb_mutex); + return ret; + } + +@@ -108,7 +114,12 @@ int dib0700_ctrl_rd(struct dvb_usb_device *d, u8 *tx, u8 txlen, u8 *rx, u8 rxlen + int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_dir, u8 gpio_val) + { + struct dib0700_state *st = d->priv; +- s16 ret; ++ int ret; ++ ++ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } + + st->buf[0] = REQUEST_SET_GPIO; + st->buf[1] = gpio; +@@ -116,6 +127,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_ + + ret = dib0700_ctrl_wr(d, st->buf, 3); + ++ mutex_unlock(&d->usb_mutex); + return ret; + } + +@@ -125,6 +137,11 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets) + int ret; + + if (st->fw_version >= 0x10201) { ++ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } ++ + st->buf[0] = REQUEST_SET_USB_XFER_LEN; + st->buf[1] = (nb_ts_packets >> 8) & 0xff; + st->buf[2] = nb_ts_packets & 0xff; +@@ -132,6 +149,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets) + deb_info("set the USB xfer len to %i Ts packet\n", nb_ts_packets); + + ret = dib0700_ctrl_wr(d, st->buf, 3); ++ mutex_unlock(&d->usb_mutex); + } else { + deb_info("this firmware does not allow to change the USB xfer len\n"); + ret = -EIO; +@@ -208,6 +226,10 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg, + + } else { + /* Write request */ ++ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } + st->buf[0] = REQUEST_NEW_I2C_WRITE; + st->buf[1] = msg[i].addr << 1; + st->buf[2] = (en_start << 7) | (en_stop << 6) | +@@ -227,6 +249,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg, + USB_TYPE_VENDOR | USB_DIR_OUT, + 0, 0, st->buf, msg[i].len + 4, + USB_CTRL_GET_TIMEOUT); ++ mutex_unlock(&d->usb_mutex); + if (result < 0) { + deb_info("i2c write error (status = %d)\n", result); + break; +@@ -249,6 +272,10 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap, + + if (mutex_lock_interruptible(&d->i2c_mutex) < 0) + return -EAGAIN; ++ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } + + for (i = 0; i < num; i++) { + /* fill in the address */ +@@ -279,6 +306,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap, + break; + } + } ++ mutex_unlock(&d->usb_mutex); + mutex_unlock(&d->i2c_mutex); + + return i; +@@ -337,7 +365,12 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll, + u16 pll_loopdiv, u16 free_div, u16 dsuScaler) + { + struct dib0700_state *st = d->priv; +- s16 ret; ++ int ret; ++ ++ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } + + st->buf[0] = REQUEST_SET_CLOCK; + st->buf[1] = (en_pll << 7) | (pll_src << 6) | +@@ -352,6 +385,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll, + st->buf[9] = dsuScaler & 0xff; /* LSB */ + + ret = dib0700_ctrl_wr(d, st->buf, 10); ++ mutex_unlock(&d->usb_mutex); + + return ret; + } +@@ -360,10 +394,16 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz) + { + struct dib0700_state *st = d->priv; + u16 divider; ++ int ret; + + if (scl_kHz == 0) + return -EINVAL; + ++ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } ++ + st->buf[0] = REQUEST_SET_I2C_PARAM; + divider = (u16) (30000 / scl_kHz); + st->buf[1] = 0; +@@ -379,7 +419,11 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz) + deb_info("setting I2C speed: %04x %04x %04x (%d kHz).", + (st->buf[2] << 8) | (st->buf[3]), (st->buf[4] << 8) | + st->buf[5], (st->buf[6] << 8) | st->buf[7], scl_kHz); +- return dib0700_ctrl_wr(d, st->buf, 8); ++ ++ ret = dib0700_ctrl_wr(d, st->buf, 8); ++ mutex_unlock(&d->usb_mutex); ++ ++ return ret; + } + + +@@ -515,6 +559,11 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) + } + } + ++ if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } ++ + st->buf[0] = REQUEST_ENABLE_VIDEO; + /* this bit gives a kind of command, + * rather than enabling something or not */ +@@ -548,7 +597,10 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) + + deb_info("data for streaming: %x %x\n", st->buf[1], st->buf[2]); + +- return dib0700_ctrl_wr(adap->dev, st->buf, 4); ++ ret = dib0700_ctrl_wr(adap->dev, st->buf, 4); ++ mutex_unlock(&adap->dev->usb_mutex); ++ ++ return ret; + } + + int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) +@@ -557,6 +609,11 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) + struct dib0700_state *st = d->priv; + int new_proto, ret; + ++ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { ++ dprintk("could not acquire lock"); ++ return 0; ++ } ++ + st->buf[0] = REQUEST_SET_RC; + st->buf[1] = 0; + st->buf[2] = 0; +@@ -567,23 +624,29 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) + else if (rc_type == RC_TYPE_NEC) + new_proto = 0; + else if (rc_type == RC_TYPE_RC6) { +- if (st->fw_version < 0x10200) +- return -EINVAL; ++ if (st->fw_version < 0x10200) { ++ ret = -EINVAL; ++ goto out; ++ } + + new_proto = 2; +- } else +- return -EINVAL; ++ } else { ++ ret = -EINVAL; ++ goto out; ++ } + + st->buf[1] = new_proto; + + ret = dib0700_ctrl_wr(d, st->buf, 3); + if (ret < 0) { + err("ir protocol setup failed"); +- return ret; ++ goto out; + } + + d->props.rc.core.protocol = rc_type; + ++out: ++ mutex_unlock(&d->usb_mutex); + return ret; + } + +commit aeb2d456b746164a4bd19e53de0a6678ca63fcad +Author: Olivier Grenie <olivier.grenie@dibcom.fr> +Date: Thu Aug 4 18:10:03 2011 +0200 + + [media] dib0700: correct error message + + The goal of this patch is to correct a previous patch. In case of error, + the err() function should be used instead of dprintk() function. + + Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr> + +diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c +index 291b645..b693ed1 100644 +--- a/drivers/media/dvb/dvb-usb/dib0700_core.c ++++ b/drivers/media/dvb/dvb-usb/dib0700_core.c +@@ -31,7 +31,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion, + int ret; + + if (mutex_lock_interruptible(&d->usb_mutex) < 0) { +- dprintk("could not acquire lock"); ++ err("could not acquire lock"); + return 0; + } + +@@ -117,7 +117,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_ + int ret; + + if (mutex_lock_interruptible(&d->usb_mutex) < 0) { +- dprintk("could not acquire lock"); ++ err("could not acquire lock"); + return 0; + } + +@@ -138,7 +138,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets) + + if (st->fw_version >= 0x10201) { + if (mutex_lock_interruptible(&d->usb_mutex) < 0) { +- dprintk("could not acquire lock"); ++ err("could not acquire lock"); + return 0; + } + +@@ -227,7 +227,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg, + } else { + /* Write request */ + if (mutex_lock_interruptible(&d->usb_mutex) < 0) { +- dprintk("could not acquire lock"); ++ err("could not acquire lock"); + return 0; + } + st->buf[0] = REQUEST_NEW_I2C_WRITE; +@@ -273,7 +273,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap, + if (mutex_lock_interruptible(&d->i2c_mutex) < 0) + return -EAGAIN; + if (mutex_lock_interruptible(&d->usb_mutex) < 0) { +- dprintk("could not acquire lock"); ++ err("could not acquire lock"); + return 0; + } + +@@ -368,7 +368,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll, + int ret; + + if (mutex_lock_interruptible(&d->usb_mutex) < 0) { +- dprintk("could not acquire lock"); ++ err("could not acquire lock"); + return 0; + } + +@@ -400,7 +400,7 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz) + return -EINVAL; + + if (mutex_lock_interruptible(&d->usb_mutex) < 0) { +- dprintk("could not acquire lock"); ++ err("could not acquire lock"); + return 0; + } + +@@ -560,7 +560,7 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) + } + + if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) { +- dprintk("could not acquire lock"); ++ err("could not acquire lock"); + return 0; + } + +@@ -610,7 +610,7 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) + int new_proto, ret; + + if (mutex_lock_interruptible(&d->usb_mutex) < 0) { +- dprintk("could not acquire lock"); ++ err("could not acquire lock"); + return 0; + } + diff --git a/libre/linux-libre/i915-fix-ghost-tv-output.patch b/libre/linux-libre/i915-fix-ghost-tv-output.patch new file mode 100644 index 000000000..3b631361a --- /dev/null +++ b/libre/linux-libre/i915-fix-ghost-tv-output.patch @@ -0,0 +1,26 @@ +Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> +Tested-by: Santi <santi@agolina.net> +--- + drivers/gpu/drm/i915/intel_tv.c | 9 +++++++++ + 1 files changed, 9 insertions(+), 0 deletions(-) + +diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c +index dc83b7a..c8f67bf 100644 +--- a/drivers/gpu/drm/i915/intel_tv.c ++++ b/drivers/gpu/drm/i915/intel_tv.c +@@ -1267,6 +1267,15 @@ + DAC_B_0_7_V | + DAC_C_0_7_V); + ++ /* ++ * The TV sense state should be cleared to zero on cantiga platform. Otherwise ++ * the TV is misdetected. This is hardware requirement. ++ */ ++ if (IS_GM45(dev)) ++ tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL | ++ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL); ++ ++ + I915_WRITE(TV_CTL, tv_ctl); + I915_WRITE(TV_DAC, tv_dac); + POSTING_READ(TV_DAC); diff --git a/libre/linux-libre/i915-fix-incorrect-error-message.patch b/libre/linux-libre/i915-fix-incorrect-error-message.patch new file mode 100644 index 000000000..e1addbb05 --- /dev/null +++ b/libre/linux-libre/i915-fix-incorrect-error-message.patch @@ -0,0 +1,22 @@ +commit 6c76e0b94e484ffbdf38d2fe2769b6ca9aa99de4 +Author: Thomas Bächler <thomas@archlinux.org> +Date: Mon Oct 31 19:16:18 2011 +0100 + + Change accidental error message to debug message. + + According to https://lkml.org/lkml/2011/9/19/80, this is not supposed + to be an error message, but a debug message. This worries users. + +diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c +index 04411ad..02d5794 100644 +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -5172,7 +5172,7 @@ static void ironlake_update_pch_refclk(struct drm_device *dev) + } else { + /* Enable SSC on PCH eDP if needed */ + if (intel_panel_use_ssc(dev_priv)) { +- DRM_ERROR("enabling SSC on PCH\n"); ++ DRM_DEBUG("enabling SSC on PCH\n"); + temp |= DREF_SUPERSPREAD_SOURCE_ENABLE; + } + } diff --git a/libre/linux-libre/iwlagn-fix-NULL-pointer-dereference.patch b/libre/linux-libre/iwlagn-fix-NULL-pointer-dereference.patch new file mode 100644 index 000000000..a53a3a425 --- /dev/null +++ b/libre/linux-libre/iwlagn-fix-NULL-pointer-dereference.patch @@ -0,0 +1,38 @@ +This fix regression introduced by commit: + +commit 15b3f3b006b42a678523cad989bfd60b76bf4403 +Author: Wey-Yi Guy <wey-yi.w.guy@intel.com> +Date: Fri Jun 3 07:54:13 2011 -0700 + + iwlagn: set smps mode after assoc for 1000 device + +Also remove unneeded brackets on the way. + +Address: +https://bugzilla.redhat.com/show_bug.cgi?id=744155 + +If fix will not get 3.1 release, it should be applied in 3.1 stable. + +Cc: stable@kernel.org # 3.1+ +Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> +--- + drivers/net/wireless/iwlwifi/iwl-agn-rxon.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c +index ca632f9..5004342 100644 +--- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c ++++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c +@@ -296,8 +296,8 @@ static int iwlagn_rxon_connect(struct iwl_priv *priv, + return ret; + } + +- if ((ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION) && +- priv->cfg->ht_params->smps_mode) ++ if (ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION && ++ priv->cfg->ht_params && priv->cfg->ht_params->smps_mode) + ieee80211_request_smps(ctx->vif, + priv->cfg->ht_params->smps_mode); + +-- +1.7.1 diff --git a/libre/linux-libre/linux-libre.install b/libre/linux-libre/linux-libre.install index 6f7ae815a..772e15b24 100644 --- a/libre/linux-libre/linux-libre.install +++ b/libre/linux-libre/linux-libre.install @@ -2,7 +2,7 @@ # arg 2: the old package version KERNEL_NAME= -KERNEL_VERSION=3.0-LIBRE +KERNEL_VERSION=3.1.2-1-LIBRE post_install () { # updating module dependencies @@ -45,9 +45,8 @@ post_upgrade() { if grep "^[^#]*[[:space:]]/boot" etc/fstab 2>&1 >/dev/null; then if ! grep "[[:space:]]/boot" etc/mtab 2>&1 >/dev/null; then - echo "WARNING: /boot appears to be a seperate partition but is not mounted" - echo " This is most likely not what you want. Please mount your /boot" - echo " partition and reinstall the kernel unless you are sure this is OK" + echo "WARNING: /boot appears to be a seperate partition but is not mounted." + echo " You probably just broke your system. Congratulations." fi fi diff --git a/libre/linux-libre/md-raid10-fix-bug-when-activating-a-hot-spare.patch b/libre/linux-libre/md-raid10-fix-bug-when-activating-a-hot-spare.patch new file mode 100644 index 000000000..79be53afb --- /dev/null +++ b/libre/linux-libre/md-raid10-fix-bug-when-activating-a-hot-spare.patch @@ -0,0 +1,41 @@ +From 7fcc7c8acf0fba44d19a713207af7e58267c1179 Mon Sep 17 00:00:00 2001 +From: NeilBrown <neilb@suse.de> +Date: Mon, 31 Oct 2011 12:59:44 +1100 +Subject: md/raid10: Fix bug when activating a hot-spare. + +From: NeilBrown <neilb@suse.de> + +commit 7fcc7c8acf0fba44d19a713207af7e58267c1179 upstream. + +This is a fairly serious bug in RAID10. + +When a RAID10 array is degraded and a hot-spare is activated, the +spare does not take up the empty slot, but rather replaces the first +working device. +This is likely to make the array non-functional. It would normally +be possible to recover the data, but that would need care and is not +guaranteed. + +This bug was introduced in commit + 2bb77736ae5dca0a189829fbb7379d43364a9dac +which first appeared in 3.1. + +Signed-off-by: NeilBrown <neilb@suse.de> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/md/raid10.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/md/raid10.c ++++ b/drivers/md/raid10.c +@@ -1337,7 +1337,7 @@ static int raid10_add_disk(mddev_t *mdde + mirror_info_t *p = &conf->mirrors[mirror]; + if (p->recovery_disabled == mddev->recovery_disabled) + continue; +- if (!p->rdev) ++ if (p->rdev) + continue; + + disk_stack_limits(mddev->gendisk, rdev->bdev, + diff --git a/libre/linux-libre/usb-add-reset-resume-quirk-for-several-webcams.patch b/libre/linux-libre/usb-add-reset-resume-quirk-for-several-webcams.patch new file mode 100644 index 000000000..9e570dd3f --- /dev/null +++ b/libre/linux-libre/usb-add-reset-resume-quirk-for-several-webcams.patch @@ -0,0 +1,99 @@ +commit 2394d67e446bf616a0885167d5f0d397bdacfdfc +Author: Oliver Neukum <oneukum@suse.de> +Date: Tue Sep 13 08:42:21 2011 +0200 + + USB: add RESET_RESUME for webcams shown to be quirky + + The new runtime PM code has shown that many webcams suffer + from a race condition that may crash them upon resume. + Runtime PM is especially prone to show the problem because + it retains power to the cameras at all times. However + system suspension may also crash the devices and retain + power to the devices. + The only way to solve this problem without races is in + usbcore with the RESET_RESUME quirk. + + Signed-off-by: Oliver Neukum <oneukum@suse.de> + Signed-off-by: stable <stable@kernel.org> + Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c +index 81ce6a8..38f0510 100644 +--- a/drivers/usb/core/quirks.c ++++ b/drivers/usb/core/quirks.c +@@ -38,6 +38,24 @@ static const struct usb_device_id usb_quirk_list[] = { + /* Creative SB Audigy 2 NX */ + { USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME }, + ++ /* Logitech Webcam C200 */ ++ { USB_DEVICE(0x046d, 0x0802), .driver_info = USB_QUIRK_RESET_RESUME }, ++ ++ /* Logitech Webcam C250 */ ++ { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, ++ ++ /* Logitech Webcam B/C500 */ ++ { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, ++ ++ /* Logitech Webcam Pro 9000 */ ++ { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME }, ++ ++ /* Logitech Webcam C310 */ ++ { USB_DEVICE(0x046d, 0x081b), .driver_info = USB_QUIRK_RESET_RESUME }, ++ ++ /* Logitech Webcam C270 */ ++ { USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME }, ++ + /* Logitech Harmony 700-series */ + { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT }, + +@@ -69,6 +87,9 @@ static const struct usb_device_id usb_quirk_list[] = { + { USB_DEVICE(0x06a3, 0x0006), .driver_info = + USB_QUIRK_CONFIG_INTF_STRINGS }, + ++ /* Guillemot Webcam Hercules Dualpix Exchange*/ ++ { USB_DEVICE(0x06f8, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, ++ + /* M-Systems Flash Disk Pioneers */ + { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME }, + +commit 5b253d88cc6c65a23cefc457a5a4ef139913c5fc +Author: Jon Levell <linuxusb@coralbark.net> +Date: Thu Sep 29 20:42:52 2011 +0100 + + USB: add quirk for Logitech C300 web cam + + My webcam is a Logitech C300 and I get "chipmunk"ed squeaky sound. + The following trivial patch fixes it. + + Signed-off-by: Jon Levell <linuxusb@coralbark.net> + Cc: stable <stable@kernel.org> + Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c +index 38f0510..d6a8d82 100644 +--- a/drivers/usb/core/quirks.c ++++ b/drivers/usb/core/quirks.c +@@ -44,6 +44,9 @@ static const struct usb_device_id usb_quirk_list[] = { + /* Logitech Webcam C250 */ + { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, + ++ /* Logitech Webcam C300 */ ++ { USB_DEVICE(0x046d, 0x0805), .driver_info = USB_QUIRK_RESET_RESUME }, ++ + /* Logitech Webcam B/C500 */ + { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, + +diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c +index d6a8d82..caa1991 100644 +--- a/drivers/usb/core/quirks.c ++++ b/drivers/usb/core/quirks.c +@@ -50,6 +50,9 @@ static const struct usb_device_id usb_quirk_list[] = { + /* Logitech Webcam B/C500 */ + { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, + ++ /* Logitech Webcam C600 */ ++ { USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME }, ++ + /* Logitech Webcam Pro 9000 */ + { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME }, + diff --git a/libre/mplayer-libre/PKGBUILD b/libre/mplayer-libre/PKGBUILD index 8798778d5..d5f6be604 100644 --- a/libre/mplayer-libre/PKGBUILD +++ b/libre/mplayer-libre/PKGBUILD @@ -5,7 +5,7 @@ _pkgbase=mplayer pkgbase=mplayer-libre pkgname=('mplayer-libre' 'mencoder-libre') -pkgver=34174 +pkgver=34344 pkgrel=1 arch=('i686' 'x86_64') makedepends=('libxxf86dga' 'libxxf86vm' 'libmad' 'cdparanoia' 'libxinerama' 'sdl' 'lame' 'libtheora' 'xvidcore' 'libmng' 'libxss' 'libgl' 'smbclient' @@ -18,9 +18,9 @@ makedepends=('libxxf86dga' 'libxxf86vm' 'libmad' 'cdparanoia' 'libxinerama' 'sdl 'libpulse' 'fribidi' 'unzip' 'mesa' 'live-media' 'yasm' 'git' 'fontconfig' 'mpg123' 'ladspa' 'libass') license=('GPL') url="http://www.mplayerhq.hu/" -options=(!buildflags !emptydirs !distcc) +options=(!buildflags !emptydirs) source=(ftp://ftp.archlinux.org/other/${_pkgbase}/${_pkgbase}-${pkgver}.tar.xz mplayer.desktop) -md5sums=('73225e0be6c5db51d7cbf2a0dd1d25a2' +md5sums=('e4016248418b8f9d55b540d68b6cfee2' 'c0d6ef795cf6de48e3b87ff7c23f0319') build() { @@ -39,6 +39,7 @@ build() { --disable-mga \ --disable-ass-internal \ --enable-xvmc \ + --enable-radio \ --language=all \ --confdir=/etc/mplayer [ "$CARCH" = "i686" ] && sed 's|-march=i486|-march=i686|g' -i config.mak diff --git a/libre/pacman/PKGBUILD b/libre/pacman/PKGBUILD index 29d7d2b9c..c8b423486 100644 --- a/libre/pacman/PKGBUILD +++ b/libre/pacman/PKGBUILD @@ -3,7 +3,7 @@ pkgname=pacman pkgver=3.5.4 -pkgrel=4 +pkgrel=4.2 pkgdesc="A library-based package manager with dependency support" arch=('i686' 'x86_64' 'mips64el') url="http://www.archlinux.org/pacman/" @@ -61,7 +61,7 @@ package() { mycarch="mips64el" mychost="mips64el-unknown-linux-gnu" myflags="-O2 -march=loongson2f -mabi=n32 -pipe -mplt -Wa,-mfix-loongson2f-nop -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2" - myldflags="" + myldflags="-Wl,--as-needed" ;; esac install -m644 $srcdir/makepkg.conf $pkgdir/etc/ @@ -80,9 +80,9 @@ package() { } # vim: set ts=2 sw=2 et: -md5sums=('c36c18ed4d8ec69c0ecb4f9684266901' - 'c7e6dbee04b7c492febea4366519b91d' - '8809642ed398d2b9b98c5974b8b5e348' - '3b2e740853e3d1463885675809d4c6ff' +md5sums=('2dd3a85d55ee3dd89abd349aa837447c' + 'ba85525fe868f030bef209b0487dd5a5' + '7aaccf24479f396d4a5987c8ccd2f3a2' + '150a2854816cd67b1608e00f99701c1c' 'be10d3d2e533515a0470237761415568' - '15d09319fae475f20ba11dd56e832c65') + '749a4ddc6d8418d8d031f1c9b4e09d6f') diff --git a/libre/sqlite3/PKGBUILD b/libre/sqlite3/PKGBUILD index 9cf45373a..9e380bd73 100644 --- a/libre/sqlite3/PKGBUILD +++ b/libre/sqlite3/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 124333 2011-05-19 19:31:27Z andyrtr $ +# $Id: PKGBUILD 138719 2011-09-27 17:41:55Z andyrtr $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> # Contributor: Tom Newsom <Jeepster@gmx.co.uk> @@ -8,10 +8,10 @@ pkgbase="sqlite3" pkgname=('sqlite3' 'sqlite3-tcl') -_amalgamationver=3070603 +_amalgamationver=3070800 _amalgamationver2=${_amalgamationver/00/} pkgver=${_amalgamationver2//0/.} -pkgrel=1 +pkgrel=2 pkgdesc="A C library that implements an SQL database engine" arch=('i686' 'x86_64' 'mips64el') license=('custom') @@ -21,6 +21,10 @@ source=( # tarball containing the amalgamation for SQLite 3.7.5 together with a http://www.sqlite.org/sqlite-autoconf-$_amalgamationver.tar.gz license.txt) options=('!libtool' '!emptydirs') +md5sums=('6bfb46d73caaa1bbbcd2b52184b6c542' + 'c1cdbc5544034d9012e421e75a5e4890') +sha1sums=('34852cfd49ddea440eb26a35ad32deee0176a724' + 'f34f6daa4ab3073d74e774aad21d66878cf26853') build() { export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_SECURE_DELETE" diff --git a/libre/texlive-bin-libre/PKGBUILD b/libre/texlive-bin-libre/PKGBUILD index 48ec8778d..dd1c32a40 100644 --- a/libre/texlive-bin-libre/PKGBUILD +++ b/libre/texlive-bin-libre/PKGBUILD @@ -5,15 +5,15 @@ pkgname=texlive-bin-libre pkgver=2011.1 _luatex_ver=0.70.1 -pkgrel=2 +pkgrel=4 pkgdesc="TeX Live binaries" license=('GPL') arch=('i686' 'x86_64' 'mips64el') -depends=('t1lib' 'gd' 'libgraphite' 'poppler' 'libsigsegv' 'zziplib') -makedepends=('perl' 'clisp' 'ffcall') +depends=('t1lib' 'gd' 'libgraphite' 'poppler>=0.18.1' 'libsigsegv' 'zziplib') +makedepends=('perl' 'clisp' 'ffcall' 'pkg-config') optdepends=('ed: for texconfig') provides=('lcdf-typetools' 'kpathsea' 'xindy' 'pdfjam' 'texlive-bin') -conflicts=('pdfjam') +conflicts=('pdfjam' 'texlive-bin' 'poppler>=0.19') replaces=('texlive-bin') options=('!libtool') url='http://tug.org/texlive/' @@ -24,7 +24,8 @@ source=('texmf.cnf' 'archlinux-build.patch' 'http://mirrors.kernel.org/archlinux/other/texlive/texlive-bin-source-20110724.tar.xz' 'http://mirrors.kernel.org/archlinux/other/texlive/texlive-bin-texmf-20110724.tar.xz' - "http://foundry.supelec.fr/gf/download/frsrelease/392/1730/luatex-beta-${_luatex_ver}.tar.bz2" + # "http://foundry.supelec.fr/gf/download/frsrelease/392/1730/luatex-beta-${_luatex_ver}.tar.bz2" + 'http://ftp.archlinux.org/other/texlive/luatex-svn4356.tar.xz' ) backup=(etc/texmf/web2c/texmf.cnf \ etc/texmf/chktex/chktexrc \ @@ -46,7 +47,7 @@ md5sums=('ff30d6813babd2e41c414365eea9c147' '94ef5571a54262790ab64d6d044dd10c' '58e8ab64188eaf15897b7acf472dca9f' '9f7ae1aa24afd9e34289ac10a8f9e87b' - 'c9348d4381170204b1a1b0440d8b6918') + 'e7f0197559ef865d8c01683dab3b8526') build() { cd $srcdir @@ -55,7 +56,8 @@ build() { rm -rf source/{extra/{djgpp,xz},libs/{freetype2,gd,xpdf,libpng,zziplib,zlib,t1lib,poppler,graphite},utils/dialog} rm -rf luatex-beta-0.70.1/source/libs/{libpng,zziplib,zlib,poppler} # Building LuaTeX - cd luatex-beta-${_luatex_ver} + # cd luatex-beta-${_luatex_ver} + cd luatex patch -p0 -i ../fix-fontforge-encoding.patch (cd source && ./texk/web2c/luatexdir/getluatexsvnversion.sh) mkdir build @@ -73,6 +75,7 @@ build() { --without-system-icu \ --without-system-kpathsea \ --with-system-freetype2 \ + --with-system-xpdf \ --with-system-poppler \ --with-freetype2-libdir=/usr/lib \ --with-freetype2-include=/usr/include/freetype2 \ @@ -234,7 +237,7 @@ package() { rm -rf ${pkgdir}/usr/{texmf,texmf-dist} ## install luatex binary - cd $srcdir/luatex-beta-${_luatex_ver}/build/texk/web2c + cd $srcdir/luatex/build/texk/web2c ./libtool --mode=install install -m755 luatex $pkgdir/usr/bin/ cd $pkgdir/usr/bin /bin/ln -s luatex texlua diff --git a/libre/unarchiver/PKGBUILD b/libre/unarchiver/PKGBUILD index 36928ad2c..84bab9c17 100644 --- a/libre/unarchiver/PKGBUILD +++ b/libre/unarchiver/PKGBUILD @@ -6,7 +6,7 @@ pkgdesc="An Objective-C application for uncompressing archive files" arch=('x86_64' 'i686' 'mips64el') url="http://wakaba.c3.cx/s/apps/unarchiver.html" license=('LGPL2.1') -depends=('gnustep-base>=1.23.0-1.1' 'openssl' 'bzip2' 'icu' 'gcc-libs' 'zlib') +depends=('gnustep-base-libre>=1.23.0' 'openssl' 'bzip2' 'icu' 'gcc-libs' 'zlib') conflicts=('gnustep-base>=1.24') makedepends=('gcc-objc') source=(http://theunarchiver.googlecode.com/files/TheUnarchiver"$pkgver"_src.zip) diff --git a/libre/ununrar/PKGBUILD b/libre/ununrar/PKGBUILD new file mode 100644 index 000000000..050cfb484 --- /dev/null +++ b/libre/ununrar/PKGBUILD @@ -0,0 +1,22 @@ +# Maintainer: Michał Masłowski <mtjm@mtjm.eu> + +pkgname=ununrar +pkgver=0.0a0dev20110715 +pkgrel=1 +pkgdesc="An unrar-compatible interface to Unarchiver" +arch=('any') +url="http://hg.mtjm.eu/ununrar/" +license=('AGPL') +depends=('python2' 'python2-distribute' 'unarchiver') +provides=('unrar' 'unrar-libre') +conflicts=('unrar' 'unrar-libre') +options=(!emptydirs) +source=("http://mtjm.eu/releases/Ununrar-${pkgver}.tar.gz") +sha512sums=('ea2a6805c16be3aad81b18e5e9e044d73ca2f8f87ce078c35e64cdffb12d5f0e4c96e66901af54f388349edbb88c6252ed0e0329e9813cce5e7b9b480802cf44') + +package() { + cd "$srcdir/Ununrar-$pkgver" + python2 setup.py install --root=$pkgdir/ --optimize=1 +} + +# vim:set ts=2 sw=2 et: diff --git a/libre/virtualbox/10-vboxdrv.rules b/libre/virtualbox-libre/10-vboxdrv.rules index a6cfe0a05..37403ae2f 100644 --- a/libre/virtualbox/10-vboxdrv.rules +++ b/libre/virtualbox-libre/10-vboxdrv.rules @@ -3,4 +3,3 @@ SUBSYSTEM=="usb_device", ACTION=="add", RUN="/usr/share/virtualbox/VBoxCreateUSB SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers" SUBSYSTEM=="usb_device", ACTION=="remove", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor" SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor" - diff --git a/libre/virtualbox/18-system-xorg.patch b/libre/virtualbox-libre/18-system-xorg.patch index baca4bc5b..baca4bc5b 100644 --- a/libre/virtualbox/18-system-xorg.patch +++ b/libre/virtualbox-libre/18-system-xorg.patch diff --git a/libre/virtualbox/60-vboxguest.rules b/libre/virtualbox-libre/60-vboxguest.rules index d64575709..d64575709 100644 --- a/libre/virtualbox/60-vboxguest.rules +++ b/libre/virtualbox-libre/60-vboxguest.rules diff --git a/libre/virtualbox/LocalConfig.kmk b/libre/virtualbox-libre/LocalConfig.kmk index 97123a296..e5cbcebcd 100644 --- a/libre/virtualbox/LocalConfig.kmk +++ b/libre/virtualbox-libre/LocalConfig.kmk @@ -17,4 +17,3 @@ VBOX_BLD_PYTHON = python2 VBOX_JAVA_HOME = /usr/lib/jvm/java-6-openjdk VBOX_GCC_WERR = VBOX_GCC_WARN = - diff --git a/libre/virtualbox/PKGBUILD b/libre/virtualbox-libre/PKGBUILD index bfd784c0d..45b870e64 100644 --- a/libre/virtualbox/PKGBUILD +++ b/libre/virtualbox-libre/PKGBUILD @@ -7,29 +7,27 @@ # * Package with --pkg "virtualbox-parabola-additions virtualbox-parabola-modules" # Based on #Maintainer: Ionut Biru <ibiru@archlinux.org> -pkgbase=virtualbox -pkgname=('virtualbox' 'virtualbox-parabola-additions' 'virtualbox-parabola-modules' 'virtualbox-sdk') +pkgbase=virtualbox-libre +pkgname=('virtualbox-libre' 'virtualbox-parabola-additions' 'virtualbox-sdk' 'virtualbox-source') pkgver=4.1.4 -pkgrel=2 +pkgrel=3 arch=('i686' 'x86_64') url='http://virtualbox.org' license=('GPL' 'custom') makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libxcursor' 'qt' 'libidl2' 'sdl_ttf' 'alsa-lib' 'libpulse' 'libxtst' -'xalan-c' 'sdl' 'libxmu' 'curl' 'python2' 'linux-libre-headers' 'mesa' 'libxrandr' 'libxinerama' 'libvncserver' 'openjdk6' 'gsoap' 'vde2' -'xorg-server-devel' 'xf86driproto' 'libxcomposite' 'pkgconfig') +'xalan-c' 'sdl' 'libxmu' 'curl' 'python2' 'linux-libre-headers' 'mesa' 'libxrandr' 'libxinerama' 'libvncserver' 'openjdk6' 'gsoap' 'vde2') [[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc') source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2 virtualbox-4-makeself-check.patch virtualbox-4-mkisofs-check.patch - 10-vboxdrv.rules 60-vboxguest.rules vboxdrv-reference.patch LocalConfig.kmk vboxbuild + 10-vboxdrv.rules vboxdrv-reference.patch LocalConfig.kmk vboxbuild change_default_driver_dir.patch vbox-service.conf vbox-service.rc) -_kernver=3.0-LIBRE -options=(!distcc) + +_extramodules=extramodules-3.1-LIBRE +_kernver="$(cat /lib/modules/${_extramodules}/version)" build() { cd "$srcdir/VirtualBox-${pkgver}_OSE" - patch -Np1 -i "$srcdir/virtualbox-4-makeself-check.patch" - patch -Np1 -i "$srcdir/virtualbox-4-mkisofs-check.patch" patch -Np1 -i "$srcdir/vboxdrv-reference.patch" patch -Np1 -i "$srcdir/change_default_driver_dir.patch" @@ -38,22 +36,24 @@ build() { ./configure --disable-docs \ --enable-webservice \ --enable-vde \ + --enable-vnc \ + --nofatal \ --with-linux=/usr/src/linux-${_kernver} source ./env.sh kmk all - - export KERN_DIR=/usr/src/linux-${_kernver} - make -C "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src" - make -C "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src/vboxvideo" sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' "out/linux.$BUILD_PLATFORM_ARCH/release/bin/vboxshell.py" } -package_virtualbox() { +package_virtualbox-libre() { pkgdesc="Powerful x86 virtualization for enterprise as well as home use" - depends=('libxml2' 'libxcursor' 'libidl2' 'libxinerama' 'sdl' 'libxmu' 'curl' 'libvncserver' 'libpng' 'linux-libre-headers' 'gcc' 'make') + depends=('virtualbox-modules' 'libxml2' 'libxcursor' 'libidl2' 'libxinerama' 'sdl' 'libxmu' 'curl' 'libvncserver' 'libpng') optdepends=('qt: for VirtualBox GUI' 'vde2: Virtual Distributed Ethernet support' - 'virtualbox-sdk: developer kit') + 'virtualbox-sdk: developer kit' + 'virtualbox-source: host kernel source modules for non-stock kernels') + replaces=('virtualbox') + conflicts=('virtualbox') + provides=("virtualbox=$pkgver") replaces=('virtualbox-ose') conflicts=('virtualbox-ose') @@ -113,6 +113,17 @@ package_virtualbox() { "$pkgdir/usr/share/licenses/virtualbox/LICENSE" install -D -m 0644 "$srcdir/10-vboxdrv.rules" \ "$pkgdir/lib/udev/rules.d/10-vboxdrv.rules" +} + +package_virtualbox-source() { + pkgdesc="VirtualBox kernel modules source" + depends=(linux-libre-headers gcc make) + install=virtualbox-source.install + + source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh" + mkdir -p $pkgdir/usr/lib/virtualbox + + cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin" #sources for modules cp -r src ${pkgdir}/usr/lib/virtualbox @@ -121,7 +132,7 @@ package_virtualbox() { } package_virtualbox-sdk() { - pkgdesc=" VirtualBox Software Developer Kit (SDK)" + pkgdesc="VirtualBox Software Developer Kit (SDK)" depends=('python2') mkdir -p "$pkgdir/usr/lib/virtualbox" @@ -170,43 +181,23 @@ package_virtualbox-parabola-additions(){ # install sample config install -D -m644 "${srcdir}/vbox-service.conf" "${pkgdir}/etc/conf.d/vbox-service" } - -package_virtualbox-parabola-modules(){ - pkgdesc="Additions only for Parabola guests (kernel modules)" - license=('GPL') - install=virtualbox-parabola-modules.install - depends=('linux-libre>=3.0' 'linux-libre<3.1') - replaces=('virtualbox-guest-modules' 'virtualbox-archlinux-modules') - conflicts=('virtualbox-guest-modules' 'virtualbox-archlinux-modules') - provides=("virtualbox-archlinux-modules=${pkgver}") - - source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh" - - cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src" - - install -D -m644 vboxguest.ko \ - "$pkgdir/lib/modules/$_kernver/misc/vboxguest.ko" - - install -D -m644 vboxsf.ko \ - "$pkgdir/lib/modules/$_kernver/misc/vboxsf.ko" - - install -D -m644 vboxvideo.ko \ - "$pkgdir/lib/modules/$_kernver/misc/vboxvideo.ko" - - install -D -m 0644 "$srcdir/60-vboxguest.rules" \ - "$pkgdir/lib/udev/rules.d/60-vboxguest.rules" - - sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" "$startdir/virtualbox-parabola-modules.install" -} +md5sums=('dc6e6801b3823332b6ca2e9915221aae' + 'bc048d1e58d84ece4a186199ee48d4c8' + '5f85710e0b8606de967716ded7b2d351' + 'cc3f278bc273011aa95277500a76f677' + '78ffa67ff131680f1d2b6f06d4325c5b' + 'a82d698e7868315cdf876cfb02fd2268' + '97e193f050574dd272a38e5ee5ebe62b' + '3c08ad30b89add47d3f45121200a5360' + '778d865e56e31cc592fbfa257fdcfce7') md5sums=('dc6e6801b3823332b6ca2e9915221aae' 'a9f22ccaacb207e0e1c5450fede82d06' 'b7cbcf89a30c712fed4435dea28d1703' - 'cee0c968c923760181ae060eab1c2e58' - '13ff08388a54fd48cc04523380f26af6' - '47349d711ecb5fbc105a18f9f936953b' - '0d91f80ce6a4985db8d2f8f65a61458e' - '47d6ee4f673bf31babbb7b4edb61e547' - '6df8eb5173c4f84faedb4962c4d5f0ef' - 'b978dfdbff377e00ddecb24cb3218ed2' - '2460dedb8bdce85f9d7e075742e94d24') + '5f85710e0b8606de967716ded7b2d351' + 'cc3f278bc273011aa95277500a76f677' + '78ffa67ff131680f1d2b6f06d4325c5b' + 'a82d698e7868315cdf876cfb02fd2268' + '97e193f050574dd272a38e5ee5ebe62b' + '3c08ad30b89add47d3f45121200a5360' + '778d865e56e31cc592fbfa257fdcfce7') diff --git a/libre/virtualbox/change_default_driver_dir.patch b/libre/virtualbox-libre/change_default_driver_dir.patch index f6dc7e1a0..d8531499d 100644 --- a/libre/virtualbox/change_default_driver_dir.patch +++ b/libre/virtualbox-libre/change_default_driver_dir.patch @@ -16,4 +16,3 @@ diff -Nur VirtualBox-4.1.0_OSE.orig/src/VBox/Additions/common/crOpenGL/fakedri_d #ifdef DEBUG_DRI_CALLS #define SWDRI_SHOWNAME(pext, func) \ - diff --git a/libre/virtualbox/vbox-service.conf b/libre/virtualbox-libre/vbox-service.conf index 31262af37..9d4ec629f 100644 --- a/libre/virtualbox/vbox-service.conf +++ b/libre/virtualbox-libre/vbox-service.conf @@ -1,3 +1,2 @@ # VBoxService -h VBOX_SERVICE_OPTION="" - diff --git a/libre/virtualbox/vbox-service.rc b/libre/virtualbox-libre/vbox-service.rc index 381e3d751..c1af2134d 100644 --- a/libre/virtualbox/vbox-service.rc +++ b/libre/virtualbox-libre/vbox-service.rc @@ -37,4 +37,3 @@ esac exit 0 # vim:set ts=2 sw=2 ft=sh et: - diff --git a/libre/virtualbox/vboxbuild b/libre/virtualbox-libre/vboxbuild index 66f5812ab..cfc3c0a66 100644 --- a/libre/virtualbox/vboxbuild +++ b/libre/virtualbox-libre/vboxbuild @@ -29,7 +29,7 @@ if (( ${#MODLIST[*]} )); then modprobe -ar "${MODLIST[@]}" && stat_done || stat_fail fi -for kdir in /lib/modules/*; do +for kdir in /lib/modules/[2-3]*; do if [[ ! -d $kdir/kernel ]]; then # found a stale kernel mods=("$kdir/misc/vbox"{drv,netadp,netflt,pci}.ko*) @@ -76,4 +76,3 @@ if (( ${#MODLIST[*]} )); then modprobe -a "${MODLIST[@]}" && stat_done || stat_fail fi - diff --git a/libre/virtualbox/vboxdrv-reference.patch b/libre/virtualbox-libre/vboxdrv-reference.patch index 14e26d114..c310dbc8d 100644 --- a/libre/virtualbox/vboxdrv-reference.patch +++ b/libre/virtualbox-libre/vboxdrv-reference.patch @@ -43,4 +43,3 @@ diff -Nur VirtualBox-4.1.0_OSE.orig/src/VBox/Installer/linux/VBox.sh VirtualBox- and if that is not successful, try to re-install the package. - diff --git a/libre/virtualbox/virtualbox-4-makeself-check.patch b/libre/virtualbox-libre/virtualbox-4-makeself-check.patch index 57862b41e..57862b41e 100644 --- a/libre/virtualbox/virtualbox-4-makeself-check.patch +++ b/libre/virtualbox-libre/virtualbox-4-makeself-check.patch diff --git a/libre/virtualbox/virtualbox-4-mkisofs-check.patch b/libre/virtualbox-libre/virtualbox-4-mkisofs-check.patch index d43962148..d43962148 100644 --- a/libre/virtualbox/virtualbox-4-mkisofs-check.patch +++ b/libre/virtualbox-libre/virtualbox-4-mkisofs-check.patch diff --git a/libre/virtualbox/virtualbox-parabola-modules.install b/libre/virtualbox-libre/virtualbox-parabola-modules.install index 75d28784a..75d28784a 100644 --- a/libre/virtualbox/virtualbox-parabola-modules.install +++ b/libre/virtualbox-libre/virtualbox-parabola-modules.install diff --git a/libre/virtualbox-libre/virtualbox-source.install b/libre/virtualbox-libre/virtualbox-source.install new file mode 100644 index 000000000..14537f23d --- /dev/null +++ b/libre/virtualbox-libre/virtualbox-source.install @@ -0,0 +1,13 @@ +post_install() { +/bin/cat << EOF +===> To compile the modules do /usr/bin/vboxbuild +EOF + +} + +post_upgrade() { +/bin/cat << EOF +===> To recompile the modules do /usr/bin/vboxbuild +EOF +} + diff --git a/libre/virtualbox-libre/virtualbox.install b/libre/virtualbox-libre/virtualbox.install new file mode 100644 index 000000000..b2d2e8858 --- /dev/null +++ b/libre/virtualbox-libre/virtualbox.install @@ -0,0 +1,34 @@ +utils() { + if [ -x usr/bin/update-mime-database ]; then + update-mime-database usr/share/mime > /dev/null 2>&1 + fi + + if [ -x usr/bin/xdg-icon-resource ]; then + xdg-icon-resource forceupdate --theme hicolor > /dev/null 2>&1 + fi + + if [ -x usr/bin/update-desktop-database ]; then + usr/bin/update-desktop-database -q + fi +} + +post_install() { + getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers + utils +} + +post_upgrade() { + getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers + utils + if [ "$(vercmp $2 4.1.4-3)" -lt 0 ]; then +/bin/cat << EOF +===> Starting with virtualbox version 4.1.4-3, kernel modules handling is done by virtualbox-modules. +===> Use virtualbox-source package if you don't use our stock linux package. +EOF + fi +} + +post_remove() { + groupdel vboxusers >/dev/null 2>&1 || true + utils +} diff --git a/libre/virtualbox-parabola-modules/60-vboxguest.rules b/libre/virtualbox-parabola-modules/60-vboxguest.rules new file mode 100644 index 000000000..6285f7249 --- /dev/null +++ b/libre/virtualbox-parabola-modules/60-vboxguest.rules @@ -0,0 +1,2 @@ +ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600" +ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666" diff --git a/libre/virtualbox-parabola-modules/LocalConfig.kmk b/libre/virtualbox-parabola-modules/LocalConfig.kmk new file mode 100644 index 000000000..af79f90cd --- /dev/null +++ b/libre/virtualbox-parabola-modules/LocalConfig.kmk @@ -0,0 +1,19 @@ +VBOX_WITH_ADDITION_DRIVERS = +VBOX_WITH_INSTALLER = 1 +VBOX_WITH_LINUX_ADDITIONS = 1 +VBOX_WITH_X11_ADDITIONS = +VBOX_WITH_TESTCASES = +VBOX_WITH_TESTSUITE = +VBOX_WITH_ORIGIN := +VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox +VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH) +VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH) +VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox +VBOX_PATH_APP_DOCS := /usr/share/virtualbox +VBOX_WITH_REGISTRATION_REQUEST = +VBOX_WITH_UPDATE_REQUEST = +VBOX_WITH_VNC := 1 +VBOX_BLD_PYTHON = python2 +VBOX_JAVA_HOME = /usr/lib/jvm/java-6-openjdk +VBOX_GCC_WERR = +VBOX_GCC_WARN = diff --git a/libre/virtualbox-parabola-modules/PKGBUILD b/libre/virtualbox-parabola-modules/PKGBUILD new file mode 100644 index 000000000..d077c092a --- /dev/null +++ b/libre/virtualbox-parabola-modules/PKGBUILD @@ -0,0 +1,103 @@ +# $Id: PKGBUILD 57345 2011-10-26 09:57:11Z ibiru $ +#Maintainer: Ionut Biru <ibiru@archlinux.org> + +pkgbase=virtualbox-modules +pkgname=('virtualbox-modules' 'virtualbox-parabola-modules') +pkgver=4.1.4 +pkgrel=3.1 +arch=('i686' 'x86_64') +url='http://virtualbox.org' +license=('GPL') +makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'libidl2' 'xalan-c' 'sdl' 'linux-headers' 'linux-libre') +[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc') +source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2 + LocalConfig.kmk 60-vboxguest.rules) +md5sums=('dc6e6801b3823332b6ca2e9915221aae' + '4c88bd122677a35f68abd76eb01b378b' + 'ed1341881437455d9735875ddf455fbe') + +_extramodules=extramodules-3.1-LIBRE + +build() { + _kernver="$(cat /lib/modules/${_extramodules}/version)" + + export KERN_DIR=/lib/modules/${_kernver}/build + export KERN_INCL=/usr/src/linux-${_kernver}/include/ + + cd "$srcdir/VirtualBox-${pkgver}_OSE" + + cp "$srcdir/LocalConfig.kmk" . + + ./configure \ + --with-linux=/usr/src/linux-${_kernver} \ + --disable-java \ + --disable-docs \ + --disable-xpcom \ + --disable-python \ + --disable-sdl-ttf \ + --disable-alsa \ + --disable-pulse \ + --disable-dbus \ + --disable-opengl \ + --build-headless \ + --nofatal + source ./env.sh + kmk all + + make -C "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src" + make -C "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src" +} + +package_virtualbox-parabola-modules(){ + pkgdesc="Additions only for Parabola guests (kernel modules)" + license=('GPL') + install=virtualbox-parabola-modules.install + depends=('linux>=3.1' 'linux<3.2') + replaces=('virtualbox-guest-modules' 'virtualbox-archlinux-modules') + conflicts=('virtualbox-guest-modules' 'virtualbox-archlinux-modules') + provides=("virtualbox-archlinux-modules=$pkgver") + + source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh" + + cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src" + + for module in vboxguest.ko vboxsf.ko vboxvideo.ko; do + install -D -m644 ${module} \ + "$pkgdir/lib/modules/${_extramodules}/${module}" + done + + install -D -m 0644 "$srcdir/60-vboxguest.rules" \ + "$pkgdir/lib/udev/rules.d/60-vboxguest.rules" + + find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \; + + sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "$startdir/virtualbox-parabola-modules.install" +} + +package_virtualbox-modules(){ + pkgdesc="Kernel modules for VirtualBox" + license=('GPL') + install=virtualbox-modules.install + depends=('linux>=3.1' 'linux<3.2') + + source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh" + + + cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/src" + + install -D -m644 vboxdrv.ko \ + "$pkgdir/lib/modules/${_extramodules}/vboxdrv.ko" + + install -D -m644 vboxnetadp.ko \ + "$pkgdir/lib/modules/${_extramodules}/vboxnetadp.ko" + + install -D -m644 vboxnetflt.ko \ + "$pkgdir/lib/modules/${_extramodules}/vboxnetflt.ko" + + install -D -m644 vboxpci.ko \ + "$pkgdir/lib/modules/${_extramodules}/vboxpci.ko" + + find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \; + + sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "$startdir/virtualbox-modules.install" +} diff --git a/libre/virtualbox-parabola-modules/virtualbox-modules.install b/libre/virtualbox-parabola-modules/virtualbox-modules.install new file mode 100644 index 000000000..b57135999 --- /dev/null +++ b/libre/virtualbox-parabola-modules/virtualbox-modules.install @@ -0,0 +1,19 @@ +post_install() { +/bin/cat << EOF +===> You must load vboxdrv module before starting VirtualBox: +===> # modprobe vboxdrv +EOF + EXTRAMODULES='extramodules-3.1-LIBRE' + depmod $(cat /lib/modules/$EXTRAMODULES/version) +} + +post_upgrade() { + EXTRAMODULES='extramodules-3.1-LIBRE' + depmod $(cat /lib/modules/$EXTRAMODULES/version) + rmmod vboxdrv || echo 'In order to use the new version, reload all virtualbox modules manually.' +} + +post_remove() { + EXTRAMODULES='extramodules-3.1-LIBRE' + depmod $(cat /lib/modules/$EXTRAMODULES/version) +} diff --git a/libre/virtualbox-parabola-modules/virtualbox-parabola-modules.install b/libre/virtualbox-parabola-modules/virtualbox-parabola-modules.install new file mode 100644 index 000000000..8801d8c49 --- /dev/null +++ b/libre/virtualbox-parabola-modules/virtualbox-parabola-modules.install @@ -0,0 +1,17 @@ +post_install() { +cat << EOF +===> You may want to load vboxguest, vboxsf and vboxvideo +EOF + EXTRAMODULES='extramodules-3.1-LIBRE' + depmod $(cat /lib/modules/$EXTRAMODULES/version) +} + +post_upgrade() { + EXTRAMODULES='extramodules-3.1-LIBRE' + depmod $(cat /lib/modules/$EXTRAMODULES/version) +} + +post_remove() { + EXTRAMODULES='extramodules-3.1-LIBRE' + depmod $(cat /lib/modules/$EXTRAMODULES/version) +} diff --git a/libre/virtualbox/virtualbox.install b/libre/virtualbox/virtualbox.install deleted file mode 100644 index 238b0561f..000000000 --- a/libre/virtualbox/virtualbox.install +++ /dev/null @@ -1,52 +0,0 @@ -utils() { - if [ -x usr/bin/update-mime-database ]; then - update-mime-database usr/share/mime > /dev/null 2>&1 - fi - - if [ -x usr/bin/xdg-icon-resource ]; then - xdg-icon-resource forceupdate --theme hicolor > /dev/null 2>&1 - fi - - if [ -x usr/bin/update-desktop-database ]; then - usr/bin/update-desktop-database -q - fi -} - -post_install() { - getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers - /bin/cat << EOF - -===> In order to run VirtualBox, you have to be in the 'vboxusers' group. -===> -===> If you want to be able to install guest additions, you have to install -===> 'virtualbox-additions' package. -===> -===> You must load vboxdrv module before starting VirtualBox: -===> # modprobe vboxdrv -===> -===> For networking you must load vboxnetflt or vboxnetadp. -===> -===> For PCI passthrough support load vboxpci module. -===> -===> To load it automatically, add vboxdrv module -===> to the MODULES array in /etc/rc.conf. - -*** To compile the modules do /usr/bin/vboxbuild *** - -EOF - utils -} - -post_upgrade() { - getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers - /bin/cat << EOF -*** To recompile the modules do /usr/bin/vboxbuild *** -EOF - utils -} - -post_remove() { - groupdel vboxusers >/dev/null 2>&1 || true - utils -} - |