summaryrefslogtreecommitdiffstats
path: root/freed-ora/current
diff options
context:
space:
mode:
authorAlexandre Oliva <lxoliva@fsfla.org>2011-03-17 09:16:06 +0000
committerAlexandre Oliva <lxoliva@fsfla.org>2011-03-17 09:16:06 +0000
commitb2ca97ef073f757f850e7df200f4b38bc74ed5ec (patch)
tree4357b4cec46548fc80040239ec72a6841e3fdcce /freed-ora/current
parent2b640b7ca879059492a80ba5aca007fee4b9b9ac (diff)
downloadlinux-libre-raptor-b2ca97ef073f757f850e7df200f4b38bc74ed5ec.tar.gz
linux-libre-raptor-b2ca97ef073f757f850e7df200f4b38bc74ed5ec.zip
Merged from f15 before starting diverging.
Diffstat (limited to 'freed-ora/current')
-rw-r--r--freed-ora/current/master/ath5k-fix-fast-channel-change.patch213
-rw-r--r--freed-ora/current/master/config-generic4
-rwxr-xr-xfreed-ora/current/master/deblob-2.6.372341
-rwxr-xr-xfreed-ora/current/master/deblob-2.6.382
-rwxr-xr-xfreed-ora/current/master/deblob-check6
-rw-r--r--freed-ora/current/master/drm-i915-gen4-has-non-power-of-two-strides.patch69
-rw-r--r--freed-ora/current/master/drm-nouveau-updates.patch586
-rw-r--r--freed-ora/current/master/kernel.spec125
-rw-r--r--freed-ora/current/master/linux-2.6-utrace-revert-make-ptrace-functions-static.patch47
-rw-r--r--freed-ora/current/master/linux-2.6.37-libre.tar.bz2.sign7
-rw-r--r--freed-ora/current/master/linux-2.6.37-libre.xdelta.bz2bin67979 -> 0 bytes
-rw-r--r--freed-ora/current/master/linux-2.6.37-libre.xdelta.bz2.sign7
-rw-r--r--freed-ora/current/master/linux-2.6.38-libre.tar.bz2.sign7
-rw-r--r--freed-ora/current/master/linux-2.6.38-libre.xdelta.bz2bin0 -> 69904 bytes
-rw-r--r--freed-ora/current/master/linux-2.6.38-libre.xdelta.bz2.sign7
-rw-r--r--freed-ora/current/master/patch-libre-2.6.38-rc6.bz2.sign7
-rw-r--r--freed-ora/current/master/patch-libre-2.6.38-rc6.xdeltabin37155 -> 0 bytes
-rw-r--r--freed-ora/current/master/patch-libre-2.6.38-rc6.xdelta.sign7
-rwxr-xr-xfreed-ora/current/master/scripts/rebase.sh72
-rw-r--r--freed-ora/current/master/sources4
-rw-r--r--freed-ora/current/master/sparc64_fix_build_errors_with_gcc460.patch305
21 files changed, 1136 insertions, 2680 deletions
diff --git a/freed-ora/current/master/ath5k-fix-fast-channel-change.patch b/freed-ora/current/master/ath5k-fix-fast-channel-change.patch
deleted file mode 100644
index cb1cbf392..000000000
--- a/freed-ora/current/master/ath5k-fix-fast-channel-change.patch
+++ /dev/null
@@ -1,213 +0,0 @@
-From sgruszka@redhat.com Thu Feb 3 07:58:52 2011
-Date: Thu, 3 Feb 2011 13:58:51 +0100
-From: Stanislaw Gruszka <sgruszka@redhat.com>
-To: kernel@lists.fedoraproject.org
-Cc: Kyle McMartin <kmcmartin@redhat.com>
-Subject: [PATCH F-15] ath5k: fix fast channel change
-Message-ID: <20110203125134.GA4515@redhat.com>
-
-From: Nick Kossifidis <mickflemm@gmail.com>
-
- Fast channel change fixes:
-
- a) Always set OFDM timings
- b) Don't re-activate PHY
- c) Enable only NF calibration, not AGC
-
-Resolves:
-https://bugzilla.redhat.com/show_bug.cgi?id=672778
-
----
- drivers/net/wireless/ath/ath5k/phy.c | 142 +++++++++++++++++++++-------------
- 1 files changed, 87 insertions(+), 55 deletions(-)
-
-diff --git a/drivers/net/wireless/ath/ath5k/phy.c b/drivers/net/wireless/ath/ath5k/phy.c
-index 78c26fd..d673ab2 100644
---- a/drivers/net/wireless/ath/ath5k/phy.c
-+++ b/drivers/net/wireless/ath/ath5k/phy.c
-@@ -282,6 +282,34 @@ int ath5k_hw_phy_disable(struct ath5k_hw *ah)
- return 0;
- }
-
-+/*
-+ * Wait for synth to settle
-+ */
-+static void ath5k_hw_wait_for_synth(struct ath5k_hw *ah,
-+ struct ieee80211_channel *channel)
-+{
-+ /*
-+ * On 5211+ read activation -> rx delay
-+ * and use it (100ns steps).
-+ */
-+ if (ah->ah_version != AR5K_AR5210) {
-+ u32 delay;
-+ delay = ath5k_hw_reg_read(ah, AR5K_PHY_RX_DELAY) &
-+ AR5K_PHY_RX_DELAY_M;
-+ delay = (channel->hw_value & CHANNEL_CCK) ?
-+ ((delay << 2) / 22) : (delay / 10);
-+ if (ah->ah_bwmode == AR5K_BWMODE_10MHZ)
-+ delay = delay << 1;
-+ if (ah->ah_bwmode == AR5K_BWMODE_5MHZ)
-+ delay = delay << 2;
-+ /* XXX: /2 on turbo ? Let's be safe
-+ * for now */
-+ udelay(100 + delay);
-+ } else {
-+ mdelay(1);
-+ }
-+}
-+
-
- /**********************\
- * RF Gain optimization *
-@@ -3237,6 +3265,13 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
- /* Failed */
- if (i >= 100)
- return -EIO;
-+
-+ /* Set channel and wait for synth */
-+ ret = ath5k_hw_channel(ah, channel);
-+ if (ret)
-+ return ret;
-+
-+ ath5k_hw_wait_for_synth(ah, channel);
- }
-
- /*
-@@ -3251,13 +3286,53 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
- if (ret)
- return ret;
-
-+ /* Write OFDM timings on 5212*/
-+ if (ah->ah_version == AR5K_AR5212 &&
-+ channel->hw_value & CHANNEL_OFDM) {
-+
-+ ret = ath5k_hw_write_ofdm_timings(ah, channel);
-+ if (ret)
-+ return ret;
-+
-+ /* Spur info is available only from EEPROM versions
-+ * greater than 5.3, but the EEPROM routines will use
-+ * static values for older versions */
-+ if (ah->ah_mac_srev >= AR5K_SREV_AR5424)
-+ ath5k_hw_set_spur_mitigation_filter(ah,
-+ channel);
-+ }
-+
-+ /* If we used fast channel switching
-+ * we are done, release RF bus and
-+ * fire up NF calibration.
-+ *
-+ * Note: Only NF calibration due to
-+ * channel change, not AGC calibration
-+ * since AGC is still running !
-+ */
-+ if (fast) {
-+ /*
-+ * Release RF Bus grant
-+ */
-+ AR5K_REG_DISABLE_BITS(ah, AR5K_PHY_RFBUS_REQ,
-+ AR5K_PHY_RFBUS_REQ_REQUEST);
-+
-+ /*
-+ * Start NF calibration
-+ */
-+ AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_AGCCTL,
-+ AR5K_PHY_AGCCTL_NF);
-+
-+ return ret;
-+ }
-+
- /*
- * For 5210 we do all initialization using
- * initvals, so we don't have to modify
- * any settings (5210 also only supports
- * a/aturbo modes)
- */
-- if ((ah->ah_version != AR5K_AR5210) && !fast) {
-+ if (ah->ah_version != AR5K_AR5210) {
-
- /*
- * Write initial RF gain settings
-@@ -3276,22 +3351,6 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
- if (ret)
- return ret;
-
-- /* Write OFDM timings on 5212*/
-- if (ah->ah_version == AR5K_AR5212 &&
-- channel->hw_value & CHANNEL_OFDM) {
--
-- ret = ath5k_hw_write_ofdm_timings(ah, channel);
-- if (ret)
-- return ret;
--
-- /* Spur info is available only from EEPROM versions
-- * greater than 5.3, but the EEPROM routines will use
-- * static values for older versions */
-- if (ah->ah_mac_srev >= AR5K_SREV_AR5424)
-- ath5k_hw_set_spur_mitigation_filter(ah,
-- channel);
-- }
--
- /*Enable/disable 802.11b mode on 5111
- (enable 2111 frequency converter + CCK)*/
- if (ah->ah_radio == AR5K_RF5111) {
-@@ -3322,47 +3381,20 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
- */
- ath5k_hw_reg_write(ah, AR5K_PHY_ACT_ENABLE, AR5K_PHY_ACT);
-
-+ ath5k_hw_wait_for_synth(ah, channel);
-+
- /*
-- * On 5211+ read activation -> rx delay
-- * and use it.
-+ * Perform ADC test to see if baseband is ready
-+ * Set tx hold and check adc test register
- */
-- if (ah->ah_version != AR5K_AR5210) {
-- u32 delay;
-- delay = ath5k_hw_reg_read(ah, AR5K_PHY_RX_DELAY) &
-- AR5K_PHY_RX_DELAY_M;
-- delay = (channel->hw_value & CHANNEL_CCK) ?
-- ((delay << 2) / 22) : (delay / 10);
-- if (ah->ah_bwmode == AR5K_BWMODE_10MHZ)
-- delay = delay << 1;
-- if (ah->ah_bwmode == AR5K_BWMODE_5MHZ)
-- delay = delay << 2;
-- /* XXX: /2 on turbo ? Let's be safe
-- * for now */
-- udelay(100 + delay);
-- } else {
-- mdelay(1);
-- }
--
-- if (fast)
-- /*
-- * Release RF Bus grant
-- */
-- AR5K_REG_DISABLE_BITS(ah, AR5K_PHY_RFBUS_REQ,
-- AR5K_PHY_RFBUS_REQ_REQUEST);
-- else {
-- /*
-- * Perform ADC test to see if baseband is ready
-- * Set tx hold and check adc test register
-- */
-- phy_tst1 = ath5k_hw_reg_read(ah, AR5K_PHY_TST1);
-- ath5k_hw_reg_write(ah, AR5K_PHY_TST1_TXHOLD, AR5K_PHY_TST1);
-- for (i = 0; i <= 20; i++) {
-- if (!(ath5k_hw_reg_read(ah, AR5K_PHY_ADC_TEST) & 0x10))
-- break;
-- udelay(200);
-- }
-- ath5k_hw_reg_write(ah, phy_tst1, AR5K_PHY_TST1);
-+ phy_tst1 = ath5k_hw_reg_read(ah, AR5K_PHY_TST1);
-+ ath5k_hw_reg_write(ah, AR5K_PHY_TST1_TXHOLD, AR5K_PHY_TST1);
-+ for (i = 0; i <= 20; i++) {
-+ if (!(ath5k_hw_reg_read(ah, AR5K_PHY_ADC_TEST) & 0x10))
-+ break;
-+ udelay(200);
- }
-+ ath5k_hw_reg_write(ah, phy_tst1, AR5K_PHY_TST1);
-
- /*
- * Start automatic gain control calibration
diff --git a/freed-ora/current/master/config-generic b/freed-ora/current/master/config-generic
index b4b71eab7..344f5fc07 100644
--- a/freed-ora/current/master/config-generic
+++ b/freed-ora/current/master/config-generic
@@ -427,10 +427,8 @@ CONFIG_BLK_DEV_VIA82CXXX=y
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_BLK_DEV_HD is not set
-CONFIG_VIRTIO=m
CONFIG_VIRTIO_BLK=m
-CONFIG_VIRTIO_RING=m
-CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_NET=m
CONFIG_VMXNET3=m
diff --git a/freed-ora/current/master/deblob-2.6.37 b/freed-ora/current/master/deblob-2.6.37
deleted file mode 100755
index 15955a77e..000000000
--- a/freed-ora/current/master/deblob-2.6.37
+++ /dev/null
@@ -1,2341 +0,0 @@
-#!/bin/sh
-
-# Copyright (C) 2008, 2009, 2010 Alexandre Oliva <lxoliva@fsfla.org>
-# Copyright (C) 2008 Jeff Moe
-# Copyright (C) 2009 Rubén Rodríguez <ruben@gnu.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-# deblob - remove non-free blobs from the vanilla linux kernel
-
-# http://www.fsfla.org/svn/fsfla/software/linux-libre
-
-
-# This script, suited for the kernel version named below, in kver,
-# attempts to remove only non-Free Software bits, without removing
-# Free Software that happens to be in the same file.
-
-# Drivers that currently require non-Free firmware are retained, but
-# firmware included in GPLed sources is replaced with /*(DEBLOBBED)*/
-# if the deblob-check script, that knows how to do this, is present.
-# -lxoliva
-
-
-# See also:
-# http://wiki.debian.org/KernelFirmwareLicensing
-# svn://svn.debian.org/kernel/dists/trunk/linux-2.6/debian/patches/debian/dfsg/files-1
-# http://wiki.gnewsense.org/Builder gen-kernel
-
-# Thanks to Brian Brazil @ gnewsense
-
-
-# For each kver release, start extra with an empty string, then count
-# from 1 if changes are needed that require rebuilding the tarball.
-kver=2.6.37 extra=
-
-case $1 in
---force)
- echo "WARNING: Using the force, ignored errors will be" >&2
- die () {
- echo ERROR: "$@" >&2
- errors=:
- }
- forced=: errors=false
- shift
- ;;
-*)
- die () {
- echo ERROR: "$@" >&2
- echo Use --force to ignore
- exit 1
- }
- forced=false errors=false
- ;;
-esac
-
-check=`echo "$0" | sed 's,[^/]*$,,;s,^$,.,;s,/*$,,'`/deblob-check
-if [ ! -f $check ] ; then
- if $forced; then
- die deblob-check script missing, will remove entire files
- else
- die deblob-check script missing
- fi
- have_check=false
-else
- have_check=:
-fi
-
-filetest () {
- if [ ! -f $1 ]; then
- die $1 does not exist, something is wrong && return 1
- fi
-}
-
-announce () {
- echo
- echo "$@"
-}
-
-clean_file () {
- #$1 = filename
- filetest $1 || return
- rm $1
- echo $1: removed
-}
-
-check_changed () {
- #$1 = filename
- if cmp $1.deblob $1 > /dev/null; then
- rm $1.deblob
- die $1 did not change, something is wrong && return 1
- fi
- mv $1.deblob $1
-}
-
-clean_blob () {
- #$1 = filename
- filetest $1 || return
- if $have_check; then
- name=$1
- set fnord "$@" -d
- shift 2
- $check "$@" -i linux-$kver $name > $name.deblob
- check_changed $name && echo $name: removed blobs
- else
- clean_file $1
- fi
-}
-
-dummy_blob () {
- #$1 = filename
- if test -f $1; then
- die $1 exists, something is wrong && return
- elif test ! -f firmware/Makefile; then
- die firmware/Makefile does not exist, something is wrong && return
- fi
-
- clean_sed "s,`echo $1 | sed s,^firmware/,,`,\$(DEBLOBBED),g" \
- firmware/Makefile "dropped $1"
-}
-
-clean_fw () {
- #$1 = firmware text input, $2 = firmware output
- filetest $1 || return
- if test -f $2; then
- die $2 exists, something is wrong && return
- fi
- clean_blob $1 -s 4
- dummy_blob $2
-}
-
-drop_fw_file () {
- #$1 = firmware text input, $2 = firmware output
- filetest $1 || return
- if test -f $2; then
- die $2 exists, something is wrong && return
- fi
- clean_file $1
- dummy_blob $2
-}
-
-clean_kconfig () {
- #$1 = filename $2 = things to remove
- case $1 in
- -f)
- shift
- ;;
- *)
- if $have_check; then
- return
- fi
- ;;
- esac
- filetest $1 || return
- sed "/^config \\($2\\)\$/{p;i\
- depends on NONFREE
-d;}" $1 > $1.deblob
- check_changed $1 && echo $1: marked config $2 as depending on NONFREE
-}
-
-clean_mk () {
- #$1 = config $2 = Makefile name
- # We don't clean up Makefiles any more --lxoliva
- # sed -i "/\\($1\\)/d" $2
- # echo $2: removed $1 support
- # check_changed $2
- filetest $2 || return
- if sed -n "/\\($1\\)/p" $2 | grep . > /dev/null; then
- :
- else
- die $2 does not contain matches for $1
- fi
-}
-
-clean_sed () {
- #$1 = sed-script $2 = file $3 = comment
- filetest $2 || return
- sed -e "$1" "$2" > "$2".deblob || {
- die $2: failed: ${3-applied sed script $1} && return 1; }
- check_changed $2 && echo $2: ${3-applied sed script $1}
-}
-
-reject_firmware () {
- #$1 = file $2 = pre sed pattern
- filetest $1 || return
- clean_sed "$2"'
-s,request\(_ihex\)\?_firmware\(_nowait\)\?,reject_firmware\2,g
-' "$1" 'disabled non-Free firmware-loading machinery'
-}
-
-maybe_reject_firmware () {
- #$1 = file $2 = pre sed pattern
- filetest $1 || return
- clean_sed "$2"'
-s,request_firmware\(_nowait\)\?,maybe_reject_firmware\1,g
-' "$1" 'retain Free firmware-loading machinery, disabling non-Free one'
-}
-
-undefine_macro () {
- #$1 - macro name
- #$2 - substitution
- #$3 - message
- #rest - file names
- macro=$1 repl=$2 msg=$3; shift 3
- for f in "$@"; do
- clean_sed "
-s,^#define $macro .*\$,/*(DEBLOBBED)*/,;
-s,$macro,$repl,g;
-" "$f" "$msg"
- done
-}
-
-undefault_firmware () {
- #$1 - pattern such that $1_DEFAULT_FIRMWARE is #defined to non-Free firmware
- #$@ other than $1 - file names
- macro="$1"_DEFAULT_FIRMWARE; shift
- undefine_macro "$macro" "\"/*(DEBLOBBED)*/\"" \
- "disabled non-Free firmware" "$@"
-}
-
-# First, check that files that contain firmwares and their
-# corresponding sources are present.
-
-for f in \
- drivers/char/ser_a2232fw.h \
- drivers/char/ser_a2232fw.ax \
- drivers/net/ixp2000/ixp2400_rx.ucode \
- drivers/net/ixp2000/ixp2400_rx.uc \
- drivers/net/ixp2000/ixp2400_tx.ucode \
- drivers/net/ixp2000/ixp2400_rx.uc \
- drivers/net/wan/wanxlfw.inc_shipped \
- drivers/net/wan/wanxlfw.S \
- drivers/net/wireless/atmel.c \
- drivers/net/wireless/atmel.c \
- drivers/scsi/53c700_d.h_shipped \
- drivers/scsi/53c700.scr \
- drivers/scsi/aic7xxx/aic79xx_seq.h_shipped \
- drivers/scsi/aic7xxx/aic79xx.seq \
- drivers/scsi/aic7xxx/aic7xxx_seq.h_shipped \
- drivers/scsi/aic7xxx/aic7xxx.seq \
- drivers/scsi/aic7xxx_old/aic7xxx_seq.c \
- drivers/scsi/aic7xxx_old/aic7xxx.seq \
- drivers/scsi/53c7xx_d.h_shipped \
- drivers/scsi/53c7xx.scr \
- drivers/scsi/sym53c8xx_2/sym_fw1.h \
- drivers/scsi/sym53c8xx_2/sym_fw1.h \
- drivers/scsi/sym53c8xx_2/sym_fw2.h \
- drivers/scsi/sym53c8xx_2/sym_fw2.h \
- firmware/dsp56k/bootstrap.bin.ihex \
- firmware/dsp56k/bootstrap.asm \
- firmware/keyspan_pda/keyspan_pda.HEX \
- firmware/keyspan_pda/keyspan_pda.S \
- firmware/keyspan_pda/xircom_pgs.HEX \
- firmware/keyspan_pda/xircom_pgs.S \
- sound/pci/cs46xx/imgs/cwcdma.h \
- sound/pci/cs46xx/imgs/cwcdma.asp \
-; do
- if test ! $f; then
- die $f is not present, something is amiss && return
- fi
-done
-
-# Identify the tarball.
-grep -q 'EXTRAVERSION.*-libre' Makefile ||
-clean_sed "s,^EXTRAVERSION.*,&-libre$extra,
-" Makefile 'added -libre to EXTRAVERSION'
-
-grep -q Linux-libre README ||
-clean_sed '
-1,3 s,Linux kernel release.*kernel\.org.*,Linux-libre <http://linux-libre.fsfla.org>,
-2,5 s,Linux version 2.6,Linux-libre,
-1,20 s,\(operating system \)\?Unix,Unix kernel,
-/WHAT IS LINUX/i\
-WHAT IS Linux-libre?\
-\
- Linux-libre is a Free version of the kernel Linux (see below),\
- suitable for use with the GNU Operating System in 100% Free\
- GNU/Linux-libre System Distributions.\
- http://www.gnu.org/distros/\
-\
- It removes non-Free components from Linux, that are disguised as\
- source code or distributed in separate files. It also disables\
- run-time requests for non-Free components, shipped separately or as\
- part of Linux, and documentation pointing to them, so as to avoid\
- (Free-)baiting users into the trap of non-Free Software.\
- http://www.fsfla.org/anuncio/2010-11-Linux-2.6.36-libre-debait\
-\
- Linux-libre started within the gNewSense GNU/Linux distribution.\
- It was later adopted by Jeff Moe, who coined its name, and in 2008\
- it became a project maintained by FSF Latin America.\
-\
- The Linux-libre project takes a minimal-changes approach to cleaning\
- up Linux, making no effort to substitute components that need to be\
- removed with functionally equivalent Free ones. Nevertheless, we\
- encourage and support efforts towards doing so.\
- http://libreplanet.org/wiki/LinuxLibre:Devices_that_require_non-free_firmware\
-\
- Our mascot is Freedo, a light-blue penguin that has just come out\
- of the the shower. Although we like penguins, GNU is a much\
- greater contribution to the entire system, so its mascot deserves\
- more promotion. See our web page for their images.\
- http://linux-libre.fsfla.org/\
-
-' README 'added blurb about Linux-libre'
-
-# Add reject_firmware and maybe_reject_firmware
-grep -q _LINUX_LIBRE_FIRMWARE_H include/linux/firmware.h ||
-clean_sed '$i\
-#ifndef _LINUX_LIBRE_FIRMWARE_H\
-#define _LINUX_LIBRE_FIRMWARE_H\
-\
-#include <linux/device.h>\
-\
-#define NONFREE_FIRMWARE "/*(DEBLOBBED)*/"\
-\
-static inline int\
-report_missing_free_firmware(const char *name, const char *what)\
-{\
- printk(KERN_ERR "%s: Missing Free %s\\n", name,\
- what ? what : "firmware");\
- return -EINVAL;\
-}\
-static inline int\
-reject_firmware(const struct firmware **fw,\
- const char *name, struct device *device)\
-{\
- const struct firmware *xfw = NULL;\
- int retval;\
- report_missing_free_firmware(dev_name(device), NULL);\
- retval = request_firmware(&xfw, NONFREE_FIRMWARE, device);\
- if (!retval)\
- release_firmware(xfw);\
- return -EINVAL;\
-}\
-static inline int\
-maybe_reject_firmware(const struct firmware **fw,\
- const char *name, struct device *device)\
-{\
- if (strstr (name, NONFREE_FIRMWARE))\
- return reject_firmware(fw, name, device);\
- else\
- return request_firmware(fw, name, device);\
-}\
-static inline void\
-discard_rejected_firmware(const struct firmware *fw, void *context)\
-{\
- release_firmware(fw);\
-}\
-static inline int\
-reject_firmware_nowait(struct module *module, int uevent,\
- const char *name, struct device *device,\
- gfp_t gfp, void *context,\
- void (*cont)(const struct firmware *fw,\
- void *context))\
-{\
- int retval;\
- report_missing_free_firmware(dev_name(device), NULL);\
- retval = request_firmware_nowait(module, uevent, NONFREE_FIRMWARE,\
- device, gfp, NULL,\
- discard_rejected_firmware);\
- if (retval)\
- return retval;\
- return -EINVAL;\
-}\
-static inline int\
-maybe_reject_firmware_nowait(struct module *module, int uevent,\
- const char *name, struct device *device,\
- gfp_t gfp, void *context,\
- void (*cont)(const struct firmware *fw,\
- void *context))\
-{\
- if (strstr (name, NONFREE_FIRMWARE))\
- return reject_firmware_nowait(module, uevent, name,\
- device, gfp, context, cont);\
- else\
- return request_firmware_nowait(module, uevent, name,\
- device, gfp, context, cont);\
-}\
-\
-#endif /* _LINUX_LIBRE_FIRMWARE_H */\
-' include/linux/firmware.h 'added non-Free firmware notification support'
-
-########
-# Arch #
-########
-
-# x86
-
-announce MICROCODE_AMD - "AMD microcode patch loading support"
-reject_firmware arch/x86/kernel/microcode_amd.c
-clean_blob arch/x86/kernel/microcode_amd.c
-clean_kconfig arch/x86/Kconfig 'MICROCODE_AMD'
-clean_mk CONFIG_MICROCODE_AMD arch/x86/kernel/Makefile
-
-announce MICROCODE_INTEL - "Intel microcode patch loading support"
-reject_firmware arch/x86/kernel/microcode_intel.c
-clean_blob arch/x86/kernel/microcode_intel.c
-clean_kconfig arch/x86/Kconfig 'MICROCODE_INTEL'
-clean_mk CONFIG_MICROCODE_INTEL arch/x86/kernel/Makefile
-
-# arm
-
-announce IXP4XX_NPE - "IXP4xx Network Processor Engine support"
-reject_firmware arch/arm/mach-ixp4xx/ixp4xx_npe.c
-clean_blob Documentation/arm/IXP4xx
-
-announce ARCH_NETX - "Hilscher NetX based"
-clean_sed '
-s,\([" ]\)request_firmware(,\1reject_firmware(,
-' arch/arm/mach-netx/xc.c 'disabled non-Free firmware-loading machinery'
-clean_blob arch/arm/mach-netx/xc.c
-clean_blob drivers/net/netx-eth.c
-clean_kconfig arch/arm/Kconfig 'ARCH_NETX'
-clean_mk CONFIG_ARCH_NETX arch/arm/Makefile
-
-announce WESTBRIDGE_DEVICE_DRIVER - "West Bridge Device Driver"
-reject_firmware drivers/staging/westbridge/astoria/device/cyasdevice.c
-clean_blob drivers/staging/westbridge/astoria/device/cyasdevice.c
-clean_kconfig drivers/staging/westbridge/astoria/device/Kconfig 'WESTBRIDGE_DEVICE_DRIVER'
-clean_mk 'CONFIG_WESTBRIDGE_DEVICE_DRIVER' drivers/staging/westbridge/astoria/device/Makefile
-
-#######
-# ATM #
-#######
-
-announce ATM_AMBASSADOR - "Madge Ambassador, Collage PCI 155 Server"
-reject_firmware drivers/atm/ambassador.c
-clean_blob drivers/atm/ambassador.c
-clean_fw firmware/atmsar11.HEX firmware/atmsar11.fw
-clean_kconfig drivers/atm/Kconfig 'ATM_AMBASSADOR'
-clean_mk CONFIG_ATM_AMBASSADOR drivers/atm/Makefile
-
-announce ATM_FORE200E - "FORE Systems 200E-series"
-reject_firmware drivers/atm/fore200e.c
-clean_blob drivers/atm/fore200e.c
-clean_blob Documentation/networking/fore200e.txt
-clean_blob drivers/atm/.gitignore
-clean_blob Documentation/dontdiff
-clean_kconfig drivers/atm/Kconfig 'ATM_FORE200E'
-clean_mk CONFIG_ATM_FORE200E drivers/atm/Makefile
-
-announce ATM_SOLOS - "Solos ADSL2+ PCI Multiport card driver"
-reject_firmware drivers/atm/solos-pci.c
-clean_blob drivers/atm/solos-pci.c
-clean_kconfig drivers/atm/Kconfig 'ATM_SOLOS'
-clean_mk CONFIG_ATM_SOLOS drivers/atm/Makefile
-
-########
-# char #
-########
-
-announce COMPUTONE - "Computone IntelliPort Plus serial"
-drop_fw_file firmware/intelliport2.bin.ihex firmware/intelliport2.bin
-reject_firmware drivers/char/ip2/ip2main.c
-clean_blob drivers/char/ip2/ip2main.c
-clean_kconfig drivers/char/Kconfig 'COMPUTONE'
-clean_mk CONFIG_COMPUTONE drivers/char/Makefile
-
-announce CYCLADES - "Cyclades async mux support"
-reject_firmware drivers/char/cyclades.c
-clean_blob drivers/char/cyclades.c
-clean_kconfig drivers/char/Kconfig 'CYCLADES'
-clean_mk CONFIG_CYCLADES drivers/char/Makefile
-
-announce ISI - "Multi-Tech multiport card support"
-reject_firmware drivers/char/isicom.c
-clean_blob drivers/char/isicom.c
-clean_kconfig drivers/char/Kconfig 'ISI'
-clean_mk CONFIG_ISI drivers/char/Makefile
-
-announce MOXA_INTELLIO - "Moxa Intellio support"
-reject_firmware drivers/char/moxa.c
-clean_blob drivers/char/moxa.c
-clean_kconfig drivers/char/Kconfig 'MOXA_INTELLIO'
-clean_mk CONFIG_MOXA_INTELLIO drivers/char/Makefile
-
-# gpu drm
-
-announce DRM_MGA - "Matrox g200/g400"
-drop_fw_file firmware/matrox/g200_warp.H16 firmware/matrox/g200_warp.fw
-drop_fw_file firmware/matrox/g400_warp.H16 firmware/matrox/g400_warp.fw
-reject_firmware drivers/gpu/drm/mga/mga_warp.c
-clean_blob drivers/gpu/drm/mga/mga_warp.c
-clean_kconfig drivers/gpu/drm/Kconfig 'DRM_MGA'
-clean_mk CONFIG_DRM_MGA drivers/gpu/drm/Makefile
-
-announce DRM_R128 - "ATI Rage 128"
-drop_fw_file firmware/r128/r128_cce.bin.ihex firmware/r128/r128_cce.bin
-reject_firmware drivers/gpu/drm/r128/r128_cce.c
-clean_blob drivers/gpu/drm/r128/r128_cce.c
-clean_kconfig drivers/gpu/drm/Kconfig 'DRM_R128'
-clean_mk CONFIG_DRM_R128 drivers/gpu/drm/Makefile
-
-announce DRM_RADEON - "ATI Radeon"
-drop_fw_file firmware/radeon/R100_cp.bin.ihex firmware/radeon/R100_cp.bin
-drop_fw_file firmware/radeon/R200_cp.bin.ihex firmware/radeon/R200_cp.bin
-drop_fw_file firmware/radeon/R300_cp.bin.ihex firmware/radeon/R300_cp.bin
-drop_fw_file firmware/radeon/R420_cp.bin.ihex firmware/radeon/R420_cp.bin
-drop_fw_file firmware/radeon/R520_cp.bin.ihex firmware/radeon/R520_cp.bin
-drop_fw_file firmware/radeon/R600_me.bin.ihex firmware/radeon/R600_me.bin
-drop_fw_file firmware/radeon/R600_pfp.bin.ihex firmware/radeon/R600_pfp.bin
-drop_fw_file firmware/radeon/RS600_cp.bin.ihex firmware/radeon/RS600_cp.bin
-drop_fw_file firmware/radeon/RS690_cp.bin.ihex firmware/radeon/RS690_cp.bin
-drop_fw_file firmware/radeon/RS780_me.bin.ihex firmware/radeon/RS780_me.bin
-drop_fw_file firmware/radeon/RS780_pfp.bin.ihex firmware/radeon/RS780_pfp.bin
-drop_fw_file firmware/radeon/RV610_me.bin.ihex firmware/radeon/RV610_me.bin
-drop_fw_file firmware/radeon/RV610_pfp.bin.ihex firmware/radeon/RV610_pfp.bin
-drop_fw_file firmware/radeon/RV620_me.bin.ihex firmware/radeon/RV620_me.bin
-drop_fw_file firmware/radeon/RV620_pfp.bin.ihex firmware/radeon/RV620_pfp.bin
-drop_fw_file firmware/radeon/RV630_me.bin.ihex firmware/radeon/RV630_me.bin
-drop_fw_file firmware/radeon/RV630_pfp.bin.ihex firmware/radeon/RV630_pfp.bin
-drop_fw_file firmware/radeon/RV635_me.bin.ihex firmware/radeon/RV635_me.bin
-drop_fw_file firmware/radeon/RV635_pfp.bin.ihex firmware/radeon/RV635_pfp.bin
-drop_fw_file firmware/radeon/RV670_me.bin.ihex firmware/radeon/RV670_me.bin
-drop_fw_file firmware/radeon/RV670_pfp.bin.ihex firmware/radeon/RV670_pfp.bin
-drop_fw_file firmware/radeon/RV710_me.bin.ihex firmware/radeon/RV710_me.bin
-drop_fw_file firmware/radeon/RV710_pfp.bin.ihex firmware/radeon/RV710_pfp.bin
-drop_fw_file firmware/radeon/RV730_me.bin.ihex firmware/radeon/RV730_me.bin
-drop_fw_file firmware/radeon/RV730_pfp.bin.ihex firmware/radeon/RV730_pfp.bin
-drop_fw_file firmware/radeon/RV770_me.bin.ihex firmware/radeon/RV770_me.bin
-drop_fw_file firmware/radeon/RV770_pfp.bin.ihex firmware/radeon/RV770_pfp.bin
-reject_firmware drivers/gpu/drm/radeon/radeon_cp.c
-clean_blob drivers/gpu/drm/radeon/radeon_cp.c
-reject_firmware drivers/gpu/drm/radeon/r100.c
-clean_blob drivers/gpu/drm/radeon/r100.c
-reject_firmware drivers/gpu/drm/radeon/r600.c
-clean_blob drivers/gpu/drm/radeon/r600.c
-reject_firmware drivers/gpu/drm/radeon/r600_cp.c
-clean_blob drivers/gpu/drm/radeon/r600_cp.c
-clean_kconfig drivers/gpu/drm/Kconfig 'DRM_RADEON'
-clean_mk CONFIG_DRM_RADEON drivers/gpu/drm/Makefile
-
-#######
-# dma #
-#######
-
-announce IMX_SDMA - "i.MX SDMA support"
-reject_firmware drivers/dma/imx-sdma.c
-clean_blob drivers/dma/imx-sdma.c
-clean_kconfig drivers/dma/Kconfig 'IMX_SDMA'
-clean_mk CONFIG_IMX_SDMA drivers/dma/Makefile
-
-#########
-# Media #
-#########
-
-# media/tuner
-
-announce MEDIA_TUNER_XC2028 - "XCeive xc2028/xc3028 tuners"
-undefault_firmware 'XC\(2028\|3028L\)' \
- drivers/media/common/tuners/tuner-xc2028.h \
- drivers/media/video/saa7134/saa7134-cards.c \
- drivers/media/video/ivtv/ivtv-driver.c \
- drivers/media/video/cx18/cx18-driver.c \
- drivers/media/video/cx18/cx18-dvb.c \
- drivers/media/video/cx23885/cx23885-dvb.c \
- drivers/media/video/cx23885/cx23885-video.c \
- drivers/media/video/cx88/cx88-dvb.c \
- drivers/media/video/cx88/cx88-cards.c \
- drivers/media/video/em28xx/em28xx-cards.c \
- drivers/media/dvb/dvb-usb/dib0700_devices.c \
- drivers/media/dvb/dvb-usb/cxusb.c
-reject_firmware drivers/media/common/tuners/tuner-xc2028.c
-clean_kconfig drivers/media/common/tuners/Kconfig 'MEDIA_TUNER_XC2028'
-clean_mk CONFIG_MEDIA_TUNER_XC2028 drivers/media/common/tuners/Makefile
-
-announce VIDEO_TM6000_DVB - "DVB Support for tm6000 based TV cards"
-clean_blob drivers/staging/tm6000/tm6000-cards.c
-clean_kconfig drivers/staging/tm6000/Kconfig 'VIDEO_TM6000_DVB'
-clean_mk CONFIG_VIDEO_TM6000_DVB drivers/staging/tm6000/Makefile
-
-announce MEDIA_TUNER_XC5000 - "Xceive XC5000 silicon tuner"
-undefine_macro 'XC5000_DEFAULT_FIRMWARE_SIZE' 0 \
- 'removed non-Free firmware size' drivers/media/common/tuners/xc5000.c
-undefault_firmware 'XC5000' \
- drivers/media/common/tuners/xc5000.c \
- drivers/media/video/cx231xx/cx231xx-cards.c
-reject_firmware drivers/media/common/tuners/xc5000.c
-clean_kconfig drivers/media/common/tuners/Kconfig 'MEDIA_TUNER_XC5000'
-clean_mk CONFIG_MEDIA_TUNER_XC5000 drivers/media/common/tuners/Makefile
-
-announce DVB_USB - "Support for various USB DVB devices"
-reject_firmware drivers/media/dvb/dvb-usb/dvb-usb-firmware.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB'
-clean_mk CONFIG_DVB_USB drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_AF9005 - "Afatech AF9005 DVB-T USB1.1"
-clean_file drivers/media/dvb/dvb-usb/af9005-script.h
-clean_sed '
-s,^ deb_info("load init script\\n");$, {\n err("Missing Free init script\\n");\n return scriptlen = ret = -EINVAL;\n ,;
-' drivers/media/dvb/dvb-usb/af9005-fe.c 'report missing Free init script'
-clean_blob drivers/media/dvb/dvb-usb/af9005-fe.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9005'
-clean_mk CONFIG_DVB_USB_AF9005 drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_B2C2_FLEXCOP - "Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters"
-reject_firmware drivers/media/dvb/b2c2/flexcop-fe-tuner.c
-
-announce DVB_BT8XX - "BT8xx based PCI cards"
-reject_firmware drivers/media/dvb/bt8xx/dvb-bt8xx.c
-
-announce DVB_USB_A800 - "AVerMedia AverTV DVB-T USB 2.0 (A800)"
-clean_blob drivers/media/dvb/dvb-usb/a800.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_A800'
-clean_mk CONFIG_DVB_USB_A800 drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_AF9005 - "Afatech AF9005 DVB-T USB1.1 support"
-clean_blob drivers/media/dvb/dvb-usb/af9005.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9005'
-clean_mk CONFIG_DVB_USB_AF9005 drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_AF9015 - "Afatech AF9015 DVB-T USB2.0 support"
-clean_blob drivers/media/dvb/dvb-usb/af9015.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AF9015'
-clean_mk CONFIG_DVB_USB_AF9015 drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_AZ6027 - "Azurewave DVB-S/S2 USB2.0 AZ6027 support"
-clean_blob drivers/media/dvb/dvb-usb/az6027.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_AZ6027'
-clean_mk CONFIG_DVB_USB_AZ6027 drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_CXUSB - "Conexant USB2.0 hybrid reference design support"
-clean_blob drivers/media/dvb/dvb-usb/cxusb.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_CXUSB'
-clean_mk CONFIG_DVB_USB_CXUSB drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_DIB0700 - "DiBcom DiB0700 USB DVB devices"
-clean_blob drivers/media/dvb/dvb-usb/dib0700_devices.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIB0700'
-clean_mk CONFIG_DVB_USB_DIB0700 drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_DIBUSB_MB - "DiBcom USB DVB-T devices (based on the DiB3000M-B)"
-clean_blob drivers/media/dvb/dvb-usb/dibusb-mb.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIBUSB_MB'
-clean_mk CONFIG_DVB_USB_DIBUSB_MB drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_DIBUSB_MC - "DiBcom USB DVB-T devices (based on the DiB3000M-C/P)"
-clean_blob drivers/media/dvb/dvb-usb/dibusb-mc.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIBUSB_MC'
-clean_mk CONFIG_DVB_USB_DIBUSB_MC drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_DIGITV - "Nebula Electronics uDigiTV DVB-T USB2.0 support"
-clean_blob drivers/media/dvb/dvb-usb/digitv.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIGITV'
-clean_mk CONFIG_DVB_USB_DIGITV drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_DTT200U - "WideView WT-200U and WT-220U (pen) DVB-T USB2.0 support (Yakumo/Hama/Typhoon/Yuan)"
-clean_blob drivers/media/dvb/dvb-usb/dtt200u.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DTT200U'
-clean_mk CONFIG_DVB_USB_DTT200U drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_DW2102 - "DvbWorld DVB-S/S2 USB2.0 support"
-reject_firmware drivers/media/dvb/dvb-usb/dw2102.c
-clean_blob drivers/media/dvb/dvb-usb/dw2102.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DW2102'
-clean_mk CONFIG_DVB_USB_DW2102 drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_EC168 - "E3C EC168 DVB-T USB2.0 support"
-clean_blob drivers/media/dvb/dvb-usb/ec168.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_EC168'
-clean_mk CONFIG_DVB_USB_EC168 drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_GP8PSK - "GENPIX 8PSK->USB module support"
-reject_firmware drivers/media/dvb/dvb-usb/gp8psk.c
-clean_blob drivers/media/dvb/dvb-usb/gp8psk.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_GP8PSK'
-clean_mk CONFIG_DVB_USB_GP8PSK drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_LME2510 - "LME DM04/QQBOX DVB-S USB2.0 support"
-reject_firmware drivers/media/dvb/dvb-usb/lmedm04.c
-clean_blob drivers/media/dvb/dvb-usb/lmedm04.c
-clean_file Documentation/dvb/lmedm04.txt
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_LME2510'
-clean_mk CONFIG_DVB_USB_LME2510 drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_M920X - "Uli m920x DVB-T USB2.0 support"
-reject_firmware drivers/media/dvb/dvb-usb/m920x.c
-clean_blob drivers/media/dvb/dvb-usb/m920x.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_M920X'
-clean_mk CONFIG_DVB_USB_M920X drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_NOVA_T_USB2 - "Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support"
-clean_blob drivers/media/dvb/dvb-usb/nova-t-usb2.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_NOVA_T_USB2'
-clean_mk CONFIG_DVB_USB_NOVA_T_USB2 drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_OPERA1 - "Opera1 DVB-S USB2.0 receiver"
-reject_firmware drivers/media/dvb/dvb-usb/opera1.c
-clean_blob drivers/media/dvb/dvb-usb/opera1.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_OPERA1'
-clean_mk CONFIG_DVB_USB_OPERA1 drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_TTUSB2 - "Pinnacle 400e DVB-S USB2.0 support"
-clean_blob drivers/media/dvb/dvb-usb/ttusb2.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_TTUSB2'
-clean_mk CONFIG_DVB_USB_TTUSB2 drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_UMT_010 - "HanfTek UMT-010 DVB-T USB2.0 support"
-clean_blob drivers/media/dvb/dvb-usb/umt-010.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_UMT_010'
-clean_mk CONFIG_DVB_USB_UMT_010 drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_VP702X - "TwinhanDTV StarBox and clones DVB-S USB2.0 support"
-clean_blob drivers/media/dvb/dvb-usb/vp702x.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_VP702X'
-clean_mk CONFIG_DVB_USB_VP702X drivers/media/dvb/dvb-usb/Makefile
-
-announce DVB_USB_VP7045 - "TwinhanDTV Alpha/MagicBoxII, DNTV tinyUSB2, Beetle USB2.0 support"
-clean_blob drivers/media/dvb/dvb-usb/vp7045.c
-clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_VP7045'
-clean_mk CONFIG_DVB_USB_VP7045 drivers/media/dvb/dvb-usb/Makefile
-
-# dvb/frontends
-
-announce DVB_AF9013 - "Afatech AF9013 demodulator"
-undefault_firmware 'AF9013' \
- drivers/media/dvb/frontends/af9013.c \
- drivers/media/dvb/frontends/af9013_priv.h
-reject_firmware drivers/media/dvb/frontends/af9013.c
-clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_AF9013'
-clean_mk CONFIG_DVB_AF9013 drivers/media/dvb/frontends/Makefile
-
-announce DVB_BCM3510 - "Broadcom BCM3510"
-undefault_firmware 'BCM3510' drivers/media/dvb/frontends/bcm3510.c
-reject_firmware drivers/media/dvb/frontends/bcm3510.c
-reject_firmware drivers/media/dvb/frontends/bcm3510.h
-clean_sed '
-/You.ll need a firmware/,/dvb-fe-bcm/d;
-' drivers/media/dvb/frontends/bcm3510.c \
- "removed non-Free firmware notes"
-clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_BCM3510'
-clean_mk CONFIG_DVB_BCM3510 drivers/media/dvb/frontends/Makefile
-
-announce DVB_DS3000 - "Montage Tehnology DS3000 based"
-undefault_firmware 'DS3000' \
- drivers/media/dvb/frontends/ds3000.c
-reject_firmware drivers/media/dvb/frontends/ds3000.c
-clean_blob drivers/media/dvb/frontends/ds3000.c
-clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_DS3000'
-clean_mk CONFIG_DVB_DS3000 drivers/media/dvb/frontends/Makefile
-
-announce DVB_LGS8GXX - "Legend Silicon LGS8913/LGS8GL5/LGS8GXX DMB-TH demodulator"
-reject_firmware drivers/media/dvb/frontends/lgs8gxx.c
-clean_blob drivers/media/dvb/frontends/lgs8gxx.c
-clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_LGS8GXX'
-clean_mk CONFIG_DVB_LGS8GXX drivers/media/dvb/frontends/Makefile
-
-announce DVB_NXT200X - "NxtWave Communications NXT2002/NXT2004 based"
-undefault_firmware 'NXT200[24]' drivers/media/dvb/frontends/nxt200x.c
-reject_firmware drivers/media/dvb/frontends/nxt200x.c
-clean_blob drivers/media/dvb/frontends/nxt200x.c
-clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_NXT200X'
-clean_mk CONFIG_DVB_NXT200X drivers/media/dvb/frontends/Makefile
-
-announce DVB_OR51132 - "Oren OR51132 based"
-reject_firmware drivers/media/dvb/frontends/or51132.c
-clean_blob drivers/media/dvb/frontends/or51132.c
-clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_OR51132'
-clean_mk CONFIG_DVB_OR51132 drivers/media/dvb/frontends/Makefile
-
-announce DVB_OR51211 - "Oren OR51211 based"
-undefault_firmware 'OR51211' drivers/media/dvb/frontends/or51211.c
-reject_firmware drivers/media/dvb/frontends/or51211.c
-reject_firmware drivers/media/dvb/frontends/or51211.h
-clean_blob drivers/media/dvb/frontends/or51211.c
-clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_OR51211'
-clean_mk CONFIG_DVB_OR51211 drivers/media/dvb/frontends/Makefile
-
-announce DVB_SP8870 - "Spase sp8870"
-undefault_firmware 'SP8870' drivers/media/dvb/frontends/sp8870.c
-reject_firmware drivers/media/dvb/frontends/sp8870.c
-reject_firmware drivers/media/dvb/frontends/sp8870.h
-clean_blob drivers/media/dvb/frontends/sp8870.c
-clean_kconfig drivers/media/dvb/frontends 'DVB_SP8870'
-clean_mk CONFIG_DVB_SP8870 drivers/media/dvb/frontends/Makefile
-
-announce DVB_CX24116 - "Conexant CX24116 based"
-undefault_firmware CX24116 drivers/media/dvb/frontends/cx24116.c
-reject_firmware drivers/media/dvb/frontends/cx24116.c
-clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_CX24116'
-clean_mk CONFIG_DVB_CX24116 drivers/media/dvb/frontends/Makefile
-
-announce DVB_SP887X - "Spase sp887x based"
-undefault_firmware 'SP887X' drivers/media/dvb/frontends/sp887x.c
-reject_firmware drivers/media/dvb/frontends/sp887x.c
-reject_firmware drivers/media/dvb/frontends/sp887x.h
-clean_blob drivers/media/dvb/frontends/sp887x.c
-clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_SP887X'
-clean_mk CONFIG_DVB_SP887X drivers/media/dvb/frontends/Makefile
-
-announce DVB_TDA10048 - "Philips TDA10048HN based"
-undefine_macro 'TDA10048_DEFAULT_FIRMWARE_SIZE' 0 \
- 'removed non-Free firmware size' drivers/media/dvb/frontends/tda10048.c
-undefault_firmware 'TDA10048' drivers/media/dvb/frontends/tda10048.c
-reject_firmware drivers/media/dvb/frontends/tda10048.c
-clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_TDA10048'
-clean_mk CONFIG_DVB_TDA10048 drivers/media/dvb/frontends/Makefile
-
-announce DVB_TDA1004X - "Philips TDA10045H/TDA10046H"
-undefault_firmware 'TDA1004[56]' drivers/media/dvb/frontends/tda1004x.c
-reject_firmware drivers/media/dvb/frontends/tda1004x.c
-reject_firmware drivers/media/dvb/frontends/tda1004x.h
-clean_blob drivers/media/dvb/frontends/tda1004x.c
-clean_kconfig drivers/media/dvb/frontends 'DVB_TDA1004X'
-clean_mk CONFIG_DVB_TDA1004X drivers/media/dvb/frontends/Makefile
-
-# dvb
-
-announce DVB_AV7110 - "AV7110 cards"
-reject_firmware drivers/media/dvb/ttpci/av7110.c
-clean_blob drivers/media/dvb/ttpci/av7110.c
-clean_kconfig drivers/media/dvb/ttpci/Kconfig 'DVB_AV7110'
-clean_mk CONFIG_DVB_AV7110 drivers/media/dvb/ttpci/Makefile
-
-announce DVB_BUDGET - "Budget cards"
-reject_firmware drivers/media/dvb/ttpci/budget.c
-reject_firmware drivers/media/dvb/frontends/tdhd1.h
-
-announce DVB_BUDGET_AV - "Budget cards with analog video inputs"
-reject_firmware drivers/media/dvb/ttpci/budget-av.c
-
-announce DVB_BUDGET_CI - "Budget cards with onboard CI connector"
-reject_firmware drivers/media/dvb/ttpci/budget-ci.c
-
-announce DVB_DRX397XD - "Micronas DRX3975D/DRX3977D based"
-reject_firmware drivers/media/dvb/frontends/drx397xD.c
-clean_blob drivers/media/dvb/frontends/drx397xD_fw.h
-clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_DRX397XD'
-clean_mk CONFIG_DVB_DRX397XD drivers/media/dvb/frontends/Makefile
-
-announce DVB_NGENE - "Micronas nGene support"
-reject_firmware drivers/media/dvb/ngene/ngene-core.c
-clean_blob drivers/media/dvb/ngene/ngene-core.c
-clean_kconfig drivers/media/dvb/ngene/Kconfig 'DVB_NGENE'
-clean_mk CONFIG_DVB_NGENE drivers/media/dvb/ngene/Makefile
-
-announce DVB_PLUTO2 - "Pluto2 cards"
-reject_firmware drivers/media/dvb/pluto2/pluto2.c
-
-announce SMS_SIANO_MDTV - "Siano SMS1xxx based MDTV receiver"
-reject_firmware drivers/media/dvb/siano/smscoreapi.c
-clean_blob drivers/media/dvb/siano/smscoreapi.c
-clean_blob drivers/media/dvb/siano/sms-cards.c
-clean_kconfig drivers/media/dvb/siano/Kconfig 'SMS_SIANO_MDTV'
-clean_mk CONFIG_SMS_SIANO_MDTV drivers/media/dvb/siano/Makefile
-
-announce SMS_USB_DRV - "Siano's USB interface support"
-reject_firmware drivers/media/dvb/siano/smsusb.c
-clean_blob drivers/media/dvb/siano/smsusb.c
-clean_kconfig drivers/media/dvb/siano/Kconfig 'SMS_USB_DRV'
-clean_mk CONFIG_SMS_USB_DRV drivers/media/dvb/siano/Makefile
-
-announce DVB_TTUSB_BUDGET - "Technotrend/Hauppauge Nova-USB devices"
-drop_fw_file firmware/ttusb-budget/dspbootcode.bin.ihex firmware/ttusb-budget/dspbootcode.bin
-reject_firmware drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
-clean_blob drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
-clean_kconfig drivers/media/dvb/ttusb-budget/Kconfig 'DVB_TTUSB_BUDGET'
-clean_mk CONFIG_DVB_TTUSB_BUDGET drivers/media/dvb/ttusb-budget/Makefile
-
-announce DVB_TTUSB_DEC - "Technotrend/Hauppauge USB DEC devices"
-reject_firmware drivers/media/dvb/ttusb-dec/ttusb_dec.c
-clean_blob drivers/media/dvb/ttusb-dec/ttusb_dec.c
-clean_kconfig drivers/media/dvb/ttusb-dec/Kconfig 'DVB_TTUSB_DEC'
-clean_mk CONFIG_DVB_TTUSB_DEC drivers/media/dvb/ttusb-dec/Makefile
-
-# video
-
-announce VIDEO_BT848 - "BT848 Video For Linux"
-reject_firmware drivers/media/video/bt8xx/bttv-cards.c
-clean_kconfig drivers/media/video/bt8xx/Kconfig 'VIDEO_BT848'
-clean_mk CONFIG_VIDEO_BT848 drivers/media/video/bt8xx/Makefile
-
-announce VIDEO_CPIA2 - "CPiA2 Video For Linux"
-clean_fw firmware/cpia2/stv0672_vp4.bin.ihex firmware/cpia2/stv0672_vp4.bin
-reject_firmware drivers/media/video/cpia2/cpia2_core.c
-clean_blob drivers/media/video/cpia2/cpia2_core.c
-clean_kconfig drivers/media/video/cpia2/Kconfig 'VIDEO_CPIA2'
-clean_mk CONFIG_VIDEO_CPIA2 drivers/media/video/cpia2/Makefile
-
-announce VIDEO_CX18 - "Conexant cx23418 MPEG encoder support"
-reject_firmware drivers/media/video/cx18/cx18-av-firmware.c
-reject_firmware drivers/media/video/cx18/cx18-dvb.c
-reject_firmware drivers/media/video/cx18/cx18-firmware.c
-clean_blob drivers/media/video/cx18/cx18-av-firmware.c
-clean_blob drivers/media/video/cx18/cx18-dvb.c
-clean_blob drivers/media/video/cx18/cx18-firmware.c
-clean_kconfig drivers/media/video/cx18/Kconfig 'VIDEO_CX18'
-clean_mk CONFIG_VIDEO_CX18 drivers/media/video/cx18/Makefile
-
-announce VIDEO_CX231XX - "Conexant cx231xx USB video capture support"
-reject_firmware drivers/media/video/cx231xx/cx231xx-417.c
-clean_blob drivers/media/video/cx231xx/cx231xx-417.c
-clean_kconfig drivers/media/video/cx231xx/Kconfig 'VIDEO_CX231XX'
-clean_mk CONFIG_VIDEO_CX231XX drivers/media/video/cx231xx/Makefile
-
-announce VIDEO_CX23885 - "Conexant cx23885 (2388x successor) support"
-reject_firmware drivers/media/video/cx23885/cx23885-417.c
-clean_blob drivers/media/video/cx23885/cx23885-417.c
-clean_kconfig drivers/media/video/cx23885/Kconfig 'VIDEO_CX23885'
-clean_mk CONFIG_VIDEO_CX23885 drivers/media/video/cx23885/Makefile
-
-announce VIDEO_CX25840 - "Conexant CX2584x audio/video decoders"
-reject_firmware drivers/media/video/cx25840/cx25840-firmware.c
-clean_blob drivers/media/video/cx25840/cx25840-firmware.c
-clean_kconfig drivers/media/video/cx25840/Kconfig 'VIDEO_CX25840'
-clean_mk CONFIG_VIDEO_CX25840 drivers/media/video/cx25840/Makefile
-
-announce VIDEO_CX88_BLACKBIRD - "Blackbird MPEG encoder support (cx2388x + cx23416)"
-reject_firmware drivers/media/video/cx88/cx88-blackbird.c
-clean_kconfig drivers/media/video/cx88/Kconfig 'VIDEO_CX88_BLACKBIRD'
-clean_mk CONFIG_VIDEO_CX88_BLACKBIRD drivers/media/video/cx88/Makefile
-
-announce VIDEO_IVTV - "Conexant cx23416/cx23415 MPEG encoder/decoder support"
-reject_firmware drivers/media/video/ivtv/ivtv-firmware.c
-clean_blob drivers/media/video/ivtv/ivtv-firmware.c
-clean_kconfig drivers/media/video/ivtv/Kconfig 'VIDEO_IVTV'
-clean_mk CONFIG_VIDEO_IVTV drivers/media/video/ivtv/Makefile
-
-announce VIDEO_PVRUSB2 - "Hauppauge WinTV-PVR USB2 support"
-reject_firmware drivers/media/video/pvrusb2/pvrusb2-hdw.c
-clean_blob drivers/media/video/pvrusb2/pvrusb2-devattr.c
-clean_kconfig drivers/media/video/pvrusb2/Kconfig 'VIDEO_PVRUSB2'
-clean_mk CONFIG_VIDEO_PVRUSB2 drivers/media/video/pvrusb2/Makefile
-
-announce "VIDEO_CX23885, VIDEO_CX88_BLACKBIRD, VIDEO_IVTV, VIDEO_PVRUSB2" - "See above"
-clean_blob include/media/cx2341x.h
-
-announce VIDEO_GO7007 - "Go 7007 support"
-reject_firmware drivers/staging/go7007/go7007-driver.c
-clean_blob drivers/staging/go7007/go7007-driver.c
-reject_firmware drivers/staging/go7007/go7007-fw.c
-clean_blob drivers/staging/go7007/go7007-usb.c
-clean_blob drivers/staging/go7007/saa7134-go7007.c
-clean_kconfig drivers/staging/go7007/Kconfig 'VIDEO_GO7007'
-clean_mk CONFIG_VIDEO_GO7007 drivers/staging/go7007/Makefile
-
-announce VIDEO_GO7007_USB_S2250_BOARD - "Sensoray 2250/2251 support"
-reject_firmware drivers/staging/go7007/s2250-loader.c
-clean_blob drivers/staging/go7007/s2250-loader.c
-clean_kconfig drivers/staging/go7007/Kconfig 'VIDEO_GO7007_USB_S2250_BOARD'
-clean_mk CONFIG_VIDEO_GO7007_USB_S2250_BOARD drivers/staging/go7007/Makefile
-
-announce VIDEO_SAA7134_DVB - "DVB/ATSC Support for saa7134 based TV cards"
-reject_firmware drivers/media/video/saa7134/saa7134-dvb.c
-clean_kconfig drivers/media/video/saa7134/Kconfig 'VIDEO_SAA7134_DVB'
-clean_mk CONFIG_VIDEO_SAA7134_DVB drivers/media/video/saa7134/Makefile
-
-announce VIDEO_SAA7164 - "NXP SAA7164 support"
-reject_firmware drivers/media/video/saa7164/saa7164-fw.c
-clean_blob drivers/media/video/saa7164/saa7164-fw.c
-clean_kconfig drivers/media/video/saa7164/Kconfig 'VIDEO_SAA7164'
-clean_mk CONFIG_VIDEO_SAA7164 drivers/media/video/saa7164/Makefile
-
-announce VIDEO_TLG2300 - "Telegent TLG2300 USB video capture support"
-reject_firmware drivers/media/video/tlg2300/pd-main.c
-clean_blob drivers/media/video/tlg2300/pd-main.c
-clean_kconfig drivers/media/video/tlg2300/Kconfig 'VIDEO_TLG2300'
-clean_mk CONFIG_VIDEO_TLG2300 drivers/media/video/tlg2300/Makefile
-
-announce USB_DABUSB - "DABUSB driver"
-clean_fw firmware/dabusb/bitstream.bin.ihex firmware/dabusb/bitstream.bin
-clean_fw firmware/dabusb/firmware.HEX firmware/dabusb/firmware.fw
-reject_firmware drivers/media/video/dabusb.c
-clean_blob drivers/media/video/dabusb.c
-clean_kconfig drivers/media/Kconfig 'USB_DABUSB'
-clean_mk CONFIG_USB_DABUSB drivers/media/video/Makefile
-
-announce USB_S2255 - "USB Sensoray 2255 video capture device"
-reject_firmware drivers/media/video/s2255drv.c
-clean_blob drivers/media/video/s2255drv.c
-clean_kconfig drivers/media/video/Kconfig 'USB_S2255'
-clean_mk CONFIG_USB_S2255 drivers/media/video/Makefile
-
-announce USB_VICAM - "USB 3com HomeConnect, AKA vicam"
-drop_fw_file firmware/vicam/firmware.H16 firmware/vicam/firmware.fw
-reject_firmware drivers/media/video/usbvideo/vicam.c
-clean_blob drivers/media/video/usbvideo/vicam.c
-clean_kconfig drivers/media/video/usbvideo/Kconfig 'USB_VICAM'
-clean_mk CONFIG_USB_VICAM drivers/media/video/usbvideo/Makefile
-
-
-#######
-# net #
-#######
-
-announce ACENIC - "Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit"
-drop_fw_file firmware/acenic/tg1.bin.ihex firmware/acenic/tg1.bin
-drop_fw_file firmware/acenic/tg2.bin.ihex firmware/acenic/tg2.bin
-reject_firmware drivers/net/acenic.c
-clean_blob drivers/net/acenic.c
-clean_kconfig drivers/net/Kconfig 'ACENIC'
-clean_mk CONFIG_ACENIC drivers/net/Makefile
-
-announce ADAPTEC_STARFIRE - "Adaptec Starfire/DuraLAN support"
-clean_fw firmware/adaptec/starfire_rx.bin.ihex firmware/adaptec/starfire_rx.bin
-clean_fw firmware/adaptec/starfire_tx.bin.ihex firmware/adaptec/starfire_tx.bin
-reject_firmware drivers/net/starfire.c
-clean_blob drivers/net/starfire.c
-clean_kconfig drivers/net/Kconfig 'ADAPTEC_STARFIRE'
-clean_mk CONFIG_ADAPTEC_STARFIRE drivers/net/Makefile
-
-announce CONFIG_BNA - "Brocade 1010/1020 10Gb Ethernet Driver support"
-clean_blob drivers/net/bna/bnad.c
-clean_blob drivers/net/bna/cna.h
-reject_firmware drivers/net/bna/cna_fwimg.c
-clean_kconfig drivers/net/Kconfig 'BNA'
-clean_mk CONFIG_BNA drivers/net/bna/Makefile
-
-announce BNX2 - "Broadcom NetXtremeII"
-drop_fw_file firmware/bnx2/bnx2-mips-09-6.0.17.fw.ihex firmware/bnx2/bnx2-mips-09-6.0.17.fw
-drop_fw_file firmware/bnx2/bnx2-rv2p-09-6.0.17.fw.ihex firmware/bnx2/bnx2-rv2p-09-6.0.17.fw
-drop_fw_file firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw.ihex firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw
-drop_fw_file firmware/bnx2/bnx2-mips-06-6.0.15.fw.ihex firmware/bnx2/bnx2-mips-06-6.0.15.fw
-drop_fw_file firmware/bnx2/bnx2-rv2p-06-6.0.15.fw.ihex firmware/bnx2/bnx2-rv2p-06-6.0.15.fw
-reject_firmware drivers/net/bnx2.c
-clean_blob drivers/net/bnx2.c
-clean_kconfig drivers/net/Kconfig 'BNX2'
-clean_mk CONFIG_BNX2 drivers/net/Makefile
-
-announce BNX2X - "Broadcom NetXtremeII 10Gb support"
-drop_fw_file firmware/bnx2x/bnx2x-e1-6.0.34.0.fw.ihex firmware/bnx2x/bnx2x-e1-6.0.34.0.fw
-drop_fw_file firmware/bnx2x/bnx2x-e1h-6.0.34.0.fw.ihex firmware/bnx2x/bnx2x-e1h-6.0.34.0.fw
-drop_fw_file firmware/bnx2x/bnx2x-e2-6.0.34.0.fw.ihex firmware/bnx2x/bnx2x-e2-6.0.34.0.fw
-reject_firmware drivers/net/bnx2x/bnx2x_main.c
-clean_sed '
-/^#include "bnx2x_init\.h"/,/^$/{
- /^$/i\
-#define bnx2x_init_block(bp, start, end) \\\
- return (printk(KERN_ERR "%s: Missing Free firmware\\n", bp->dev->name),\\\
- -EINVAL)
-}' drivers/net/bnx2x/bnx2x_main.c 'report missing Free firmware'
-clean_blob drivers/net/bnx2x/bnx2x_main.c
-clean_blob drivers/net/bnx2x/bnx2x_hsi.h
-clean_blob drivers/net/bnx2x/bnx2x_init_ops.h
-clean_kconfig drivers/net/Kconfig 'BNX2X'
-clean_mk CONFIG_BNX2X drivers/net/Makefile
-
-announce CASSINI - "Sun Cassini"
-drop_fw_file firmware/sun/cassini.bin.ihex firmware/sun/cassini.bin
-reject_firmware drivers/net/cassini.c
-clean_blob drivers/net/cassini.c
-clean_kconfig drivers/net/Kconfig 'CASSINI'
-clean_mk CONFIG_CASSINI drivers/net/Makefile
-
-announce CHELSIO_T3 - "Chelsio AEL 2005 support"
-drop_fw_file firmware/cxgb3/t3b_psram-1.1.0.bin.ihex firmware/cxgb3/t3b_psram-1.1.0.bin
-drop_fw_file firmware/cxgb3/t3c_psram-1.1.0.bin.ihex firmware/cxgb3/t3c_psram-1.1.0.bin
-drop_fw_file firmware/cxgb3/t3fw-7.10.0.bin.ihex firmware/cxgb3/t3fw-7.10.0.bin
-drop_fw_file firmware/cxgb3/ael2005_opt_edc.bin.ihex firmware/cxgb3/ael2005_opt_edc.bin
-drop_fw_file firmware/cxgb3/ael2005_twx_edc.bin.ihex firmware/cxgb3/ael2005_twx_edc.bin
-drop_fw_file firmware/cxgb3/ael2020_twx_edc.bin.ihex firmware/cxgb3/ael2020_twx_edc.bin
-reject_firmware drivers/net/cxgb3/cxgb3_main.c
-clean_blob drivers/net/cxgb3/cxgb3_main.c
-clean_kconfig drivers/net/Kconfig 'CHELSIO_T3'
-clean_mk CONFIG_CHELSIO_T3 drivers/net/cxgb3/Makefile
-
-announce CHELSIO_T4 - "Chelsio Communications T4 Ethernet support"
-reject_firmware drivers/net/cxgb4/cxgb4_main.c
-clean_blob drivers/net/cxgb4/cxgb4_main.c
-clean_kconfig drivers/net/Kconfig 'CHELSIO_T4'
-clean_mk CONFIG_CHELSIO_T4 drivers/net/cxgb4/Makefile
-
-announce E100 - "Intel PRO/100+"
-drop_fw_file firmware/e100/d101m_ucode.bin.ihex firmware/e100/d101m_ucode.bin
-drop_fw_file firmware/e100/d101s_ucode.bin.ihex firmware/e100/d101s_ucode.bin
-drop_fw_file firmware/e100/d102e_ucode.bin.ihex firmware/e100/d102e_ucode.bin
-reject_firmware drivers/net/e100.c
-clean_sed '
-/^static const struct firmware \*e100_\(reject\|request\)_firmware(/,/^}$/{
- s:^\(.*\)return ERR_PTR(err);$:\1netif_err(nic, probe, nic->netdev, "Proceeding without firmware\\n");\n\1return NULL;:
-}' drivers/net/e100.c 'proceed without firmware'
-clean_blob drivers/net/e100.c
-clean_kconfig drivers/net/Kconfig 'E100'
-clean_mk CONFIG_E100 drivers/net/Makefile
-
-announce FT1000_PCMCIA - "Driver for ft1000 pcmcia device."
-clean_file drivers/staging/ft1000/ft1000-pcmcia/ft1000.img
-reject_firmware drivers/staging/ft1000/TODO
-clean_blob drivers/staging/ft1000/ft1000-pcmcia/boot.h
-clean_sed '
-/^static int ft1000_reset_card/,/^}$/ {
- /card_bootload/i\
- return /*(DEBLOBBED)*/ FALSE;
-}
-' drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c \
- 'disabled non-Free firmware-loading machinery'
-reject_firmware drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c
-clean_blob drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c
-clean_kconfig drivers/staging/ft1000/Kconfig 'FT1000_PCMCIA'
-clean_mk CONFIG_FT1000_PCMCIA drivers/staging/ft1000/Makefile
-
-announce FT1000_USB - "Driver for ft1000 USB devices."
-clean_file drivers/staging/ft1000/ft1000-usb/ft3000.img
-reject_firmware drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
-clean_blob drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
-clean_kconfig drivers/staging/ft1000/Kconfig 'FT1000_USB'
-clean_mk CONFIG_FT1000_USB drivers/staging/ft1000/Makefile
-
-announce MYRI_SBUS - "MyriCOM Gigabit Ethernet"
-drop_fw_file firmware/myricom/lanai.bin.ihex firmware/myricom/lanai.bin
-reject_firmware drivers/net/myri_sbus.c
-clean_blob drivers/net/myri_sbus.c
-clean_kconfig drivers/net/Kconfig 'MYRI_SBUS'
-clean_mk CONFIG_MYRI_SBUS drivers/net/Makefile
-
-announce MYRI10GE - "Myricom Myri-10G Ethernet support"
-reject_firmware drivers/net/myri10ge/myri10ge.c
-clean_blob drivers/net/myri10ge/myri10ge.c
-clean_kconfig drivers/net/Kconfig 'MYRI10GE'
-clean_mk CONFIG_MYRI10GE drivers/net/myri10ge/Makefile
-
-announce NETXEN_NIC - "NetXen Multi port (1/10) Gigabit Ethernet NIC"
-reject_firmware drivers/net/netxen/netxen_nic.h
-reject_firmware drivers/net/netxen/netxen_nic_main.c
-reject_firmware drivers/net/netxen/netxen_nic_init.c
-clean_blob drivers/net/netxen/netxen_nic.h
-clean_blob drivers/net/netxen/netxen_nic_main.c
-clean_kconfig drivers/net/Kconfig 'NETXEN_NIC'
-clean_mk CONFIG_NETXEN_NIC drivers/net/Makefile
-
-announce QLCNIC - "QLOGIC QLCNIC 1/10Gb Converged Ethernet NIC Support"
-reject_firmware drivers/net/qlcnic/qlcnic.h
-reject_firmware drivers/net/qlcnic/qlcnic_init.c
-reject_firmware drivers/net/qlcnic/qlcnic_main.c
-clean_blob drivers/net/qlcnic/qlcnic.h
-clean_blob drivers/net/qlcnic/qlcnic_main.c
-clean_kconfig drivers/net/Kconfig 'QLCNIC'
-clean_mk CONFIG_QLCNIC drivers/net/qlcnic/Makefile
-
-announce R8169 - "Realtek 8169 gigabit ethernet support"
-clean_sed '
-/^static void rtl_hw_phy_config(.*)$/,/^}$/{
- /rtl8168d_[12]_hw_phy_config([^,)]*);$/i\
- printk(KERN_ERR PFX "%s: Missing Free firmware\\n", dev->name);
-}
-' drivers/net/r8169.c 'report missing Free firmware'
-clean_blob drivers/net/r8169.c
-clean_kconfig drivers/net/Kconfig R8169
-clean_mk CONFIG_R8169 drivers/net/Makefile
-
-announce SLICOSS - "Alacritech Gigabit IS-NIC cards"
-reject_firmware drivers/staging/slicoss/slicoss.c
-clean_blob drivers/staging/slicoss/slicoss.c
-clean_kconfig drivers/staging/slicoss/Kconfig 'SLICOSS'
-clean_mk CONFIG_SLICOSS drivers/staging/slicoss/Makefile
-
-announce SPIDER_NET - "Spider Gigabit Ethernet driver"
-reject_firmware drivers/net/spider_net.c
-clean_sed 's,spider_fw\.bin,DEBLOBBED.bin,g' \
- drivers/net/spider_net.c 'removed non-Free firmware notes'
-clean_blob drivers/net/spider_net.c
-clean_blob drivers/net/spider_net.h
-clean_kconfig drivers/net/Kconfig 'SPIDER_NET'
-clean_mk CONFIG_SPIDER_NET drivers/net/Makefile
-
-announce TEHUTI - "Tehuti Networks 10G Ethernet"
-drop_fw_file firmware/tehuti/bdx.bin.ihex firmware/tehuti/bdx.bin
-reject_firmware drivers/net/tehuti.c
-clean_blob drivers/net/tehuti.c
-clean_kconfig drivers/net/Kconfig 'TEHUTI'
-clean_mk CONFIG_TEHUTI drivers/net/Makefile
-
-announce TIGON3 - "Broadcom Tigon3"
-drop_fw_file firmware/tigon/tg3.bin.ihex firmware/tigon/tg3.bin
-drop_fw_file firmware/tigon/tg3_tso.bin.ihex firmware/tigon/tg3_tso.bin
-drop_fw_file firmware/tigon/tg3_tso5.bin.ihex firmware/tigon/tg3_tso5.bin
-reject_firmware drivers/net/tg3.c
-clean_blob drivers/net/tg3.c
-clean_kconfig drivers/net/Kconfig 'TIGON3'
-clean_mk CONFIG_TIGON3 drivers/net/Makefile
-
-announce TYPHOON - "3cr990 series Typhoon"
-drop_fw_file firmware/3com/typhoon.bin.ihex firmware/3com/typhoon.bin
-reject_firmware drivers/net/typhoon.c
-clean_blob drivers/net/typhoon.c
-clean_kconfig drivers/net/Kconfig 'TYPHOON'
-clean_mk CONFIG_TYPHOON drivers/net/Makefile
-
-# appletalk
-
-announce COPS - "COPS LocalTalk PC"
-clean_sed '
-/sizeof(\(ff\|lt\)drv_code)/{
- i\
- printk(KERN_INFO "%s: Missing Free firmware.\\n", dev->name);\
- return;
-}
-/\(ff\|lt\)drv_code/d;
-' drivers/net/appletalk/cops.c 'report missing Free firmware'
-clean_blob drivers/net/appletalk/cops.c
-clean_file drivers/net/appletalk/cops_ffdrv.h
-clean_file drivers/net/appletalk/cops_ltdrv.h
-clean_kconfig drivers/net/appletalk/Kconfig 'COPS'
-clean_mk CONFIG_COPS drivers/net/appletalk/Makefile
-
-# hamradio
-
-announce YAM - "YAM driver for AX.25"
-drop_fw_file firmware/yam/1200.bin.ihex firmware/yam/1200.bin
-drop_fw_file firmware/yam/9600.bin.ihex firmware/yam/9600.bin
-reject_firmware drivers/net/hamradio/yam.c
-clean_blob drivers/net/hamradio/yam.c
-clean_kconfig drivers/net/hamradio/Kconfig 'YAM'
-clean_mk CONFIG_YAM drivers/net/hamradio/Makefile
-
-# irda
-
-announce USB_IRDA - "IrDA USB dongles"
-reject_firmware drivers/net/irda/irda-usb.c
-clean_blob drivers/net/irda/irda-usb.c
-clean_kconfig drivers/net/irda/Kconfig 'USB_IRDA'
-clean_mk CONFIG_USB_IRDA drivers/net/irda/Makefile
-
-# pcmcia
-
-announce PCMCIA_SMC91C92 - "SMC 91Cxx PCMCIA"
-drop_fw_file firmware/ositech/Xilinx7OD.bin.ihex firmware/ositech/Xilinx7OD.bin
-reject_firmware drivers/net/pcmcia/smc91c92_cs.c
-clean_blob drivers/net/pcmcia/smc91c92_cs.c
-clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_SMC91C92'
-clean_mk CONFIG_PCMCIA_SMC91C92 drivers/net/pcmcia/Makefile
-
-# CIS files are not software.
-# announce PCCARD - "PCCard (PCMCIA/CardBus) support"
-# reject_firmware drivers/pcmcia/ds.c
-# clean_kconfig drivers/pcmcia/Kconfig 'PCCARD'
-# clean_mk CONFIG_PCCARD drivers/pcmcia/Makefile
-
-announce PCMCIA_3C574 - "3Com 3c574 PCMCIA support"
-# This is not software; it's Free, but GPLed without in-tree sources.
-drop_fw_file firmware/cis/3CCFEM556.cis.ihex firmware/cis/3CCFEM556.cis
-# clean_blob drivers/net/pcmcia/3c574_cs.c
-# clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_3C574'
-# clean_mk CONFIG_PCMCIA_3C574 drivers/net/pcmcia/Makefile
-
-announce PCMCIA_3C589 - "3Com 3c589 PCMCIA support"
-# This is not software; it's Free, but GPLed without in-tree sources.
-drop_fw_file firmware/cis/3CXEM556.cis.ihex firmware/cis/3CXEM556.cis
-# clean_blob drivers/net/pcmcia/3c589_cs.c
-# clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_3C589'
-# clean_mk CONFIG_PCMCIA_3C589 drivers/net/pcmcia/Makefile
-
-announce PCMCIA_PCNET - "NE2000 compatible PCMCIA support"
-# These are not software; they're Free, but GPLed without in-tree sources.
-drop_fw_file firmware/cis/LA-PCM.cis.ihex firmware/cis/LA-PCM.cis
-drop_fw_file firmware/cis/PCMLM28.cis.ihex firmware/cis/PCMLM28.cis
-drop_fw_file firmware/cis/DP83903.cis.ihex firmware/cis/DP83903.cis
-drop_fw_file firmware/cis/NE2K.cis.ihex firmware/cis/NE2K.cis
-drop_fw_file firmware/cis/tamarack.cis.ihex firmware/cis/tamarack.cis
-drop_fw_file firmware/cis/PE-200.cis.ihex firmware/cis/PE-200.cis
-drop_fw_file firmware/cis/PE520.cis.ihex firmware/cis/PE520.cis
-# clean_blob drivers/net/pcmcia/pcnet_cs.c
-# clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_PCNET'
-# clean_mk CONFIG_PCMCIA_PCNET drivers/net/pcmcia/Makefile
-
-# tokenring
-
-announce 3C359 - "3Com 3C359 Token Link Velocity XL adapter"
-drop_fw_file firmware/3com/3C359.bin.ihex firmware/3com/3C359.bin
-clean_blob drivers/net/tokenring/3c359.c
-clean_kconfig drivers/net/tokenring/Kconfig '3C359'
-clean_mk CONFIG_3C359 drivers/net/tokenring/Makefile
-
-announce SMCTR - "SMC ISA/MCA adapter"
-drop_fw_file firmware/tr_smctr.bin.ihex firmware/tr_smctr.bin
-reject_firmware drivers/net/tokenring/smctr.c
-clean_blob drivers/net/tokenring/smctr.c
-clean_kconfig drivers/net/tokenring/Kconfig 'SMCTR'
-clean_mk CONFIG_SMCTR drivers/net/tokenring/Makefile
-
-announce TMS380TR - "Generic TMS380 Token Ring ISA/PCI adapter support"
-reject_firmware drivers/net/tokenring/tms380tr.c
-clean_blob drivers/net/tokenring/tms380tr.c
-clean_kconfig drivers/net/tokenring/Kconfig 'TMS380TR'
-clean_mk CONFIG_TMS380TR drivers/net/tokenring/Makefile
-
-# usb
-
-announce USB_KAWETH - "USB KLSI KL5USB101-based ethernet device support"
-drop_fw_file firmware/kaweth/new_code.bin.ihex firmware/kaweth/new_code.bin
-drop_fw_file firmware/kaweth/new_code_fix.bin.ihex firmware/kaweth/new_code_fix.bin
-drop_fw_file firmware/kaweth/trigger_code.bin.ihex firmware/kaweth/trigger_code.bin
-drop_fw_file firmware/kaweth/trigger_code_fix.bin.ihex firmware/kaweth/trigger_code_fix.bin
-reject_firmware drivers/net/usb/kaweth.c
-clean_blob drivers/net/usb/kaweth.c
-clean_kconfig drivers/net/usb/Kconfig 'USB_KAWETH'
-clean_mk CONFIG_USB_KAWETH drivers/net/usb/Makefile
-
-# wireless
-
-announce ATMEL "Atmel at76c50x chipset 802.11b support"
-reject_firmware drivers/net/wireless/atmel.c
-clean_blob drivers/net/wireless/atmel.c
-clean_kconfig drivers/net/wireless/Kconfig 'ATMEL'
-clean_mk CONFIG_ATMEL drivers/net/wireless/Makefile
-
-announce AT76C50X_USB - "Atmel at76c503/at76c505/at76c505a USB cards"
-reject_firmware drivers/net/wireless/at76c50x-usb.c
-clean_blob drivers/net/wireless/at76c50x-usb.c
-clean_kconfig drivers/net/wireless/Kconfig 'AT76C50X_USB'
-clean_mk CONFIG_AT76C50X_USB drivers/net/wireless/Makefile
-
-announce B43 - "Broadcom 43xx wireless support (mac80211 stack)"
-maybe_reject_firmware drivers/net/wireless/b43/main.c
-clean_sed '
-/^static int b43_upload_microcode(/,/^}$/{
- / if (dev->fw\.opensource) {$/i\
- if (!dev->fw.opensource) {\
- b43err(dev->wl, "Rejected non-Free firmware\\n");\
- err = -EOPNOTSUPP;\
- goto error;\
- }
-}' drivers/net/wireless/b43/main.c 'double-check and reject non-Free firmware'
-# Major portions of firmware filenames not deblobbed.
-clean_blob drivers/net/wireless/b43/main.c
-clean_kconfig drivers/net/wireless/b43/Kconfig 'B43'
-clean_mk CONFIG_B43 drivers/net/wireless/b43/Makefile
-
-announce B43LEGACY - "Broadcom 43xx-legacy wireless support (mac80211 stack)"
-reject_firmware drivers/net/wireless/b43legacy/main.c
-# Major portions of firwmare filenames not deblobbed.
-clean_blob drivers/net/wireless/b43legacy/main.c
-clean_kconfig drivers/net/wireless/b43legacy/Kconfig 'B43LEGACY'
-clean_mk CONFIG_B43LEGACY drivers/net/wireless/b43legacy/Makefile
-
-announce BRCM80211_PCI - "Broadcom IEEE802.11n PCIe SoftMAC WLAN driver"
-clean_blob drivers/staging/brcm80211/README
-reject_firmware drivers/staging/brcm80211/sys/wl_mac80211.c
-clean_blob drivers/staging/brcm80211/sys/wl_mac80211.c
-clean_kconfig drivers/staging/brcm80211/Kconfig 'BRCM80211_PCI'
-clean_mk CONFIG_BRCM80211_PCI drivers/staging/brcm80211/Makefile
-
-announce BRCMFMAC - "Broadcom IEEE802.11n embedded FullMAC WLAN driver"
-clean_blob drivers/staging/brcm80211/brcmfmac/README
-reject_firmware drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c
-clean_blob drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c
-clean_kconfig drivers/staging/brcm80211/Kconfig 'BRCMFMAC'
-clean_mk CONFIG_BRCMFMAC drivers/staging/brcm80211/Makefile
-
-announce HERMES - "Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)"
-reject_firmware drivers/net/wireless/orinoco/fw.c
-clean_blob drivers/net/wireless/orinoco/fw.c
-clean_kconfig drivers/net/wireless/orinoco/Kconfig 'HERMES'
-clean_mk CONFIG_HERMES drivers/net/wireless/orinoco/Makefile
-
-announce ORINOCO_USB - "Agere Orinoco USB support"
-reject_firmware drivers/net/wireless/orinoco/orinoco_usb.c
-clean_blob drivers/net/wireless/orinoco/orinoco_usb.c
-clean_kconfig drivers/net/wireless/orinoco/Kconfig 'ORINOCO_USB'
-clean_mk CONFIG_ORINOCO_USB drivers/net/wireless/orinoco/Makefile
-
-announce WLAGS49_H2 - 'Agere Systems HERMES II Wireless PC Card Model 0110'
-# Some pieces of the firmware images are most definitely data, but
-# others seem to be code.
-clean_file drivers/staging/wlags49_h2/ap_h2.c
-clean_file drivers/staging/wlags49_h2/sta_h2.c
-clean_blob drivers/staging/wlags49_h2/wl_profile.c
-clean_kconfig drivers/staging/wlags49_h2/Kconfig 'WLAGS49_H2'
-clean_mk CONFIG_WLAGS49_H2 drivers/staging/Makefile
-
-announce WLAGS49_H25 - 'Linksys Systems HERMES II.5 Wireless-G_CompactFlash_Card'
-clean_file drivers/staging/wlags49_h2/ap_h25.c
-clean_file drivers/staging/wlags49_h2/sta_h25.c
-clean_kconfig drivers/staging/wlags49_h25/Kconfig 'WLAGS49_H25'
-clean_mk CONFIG_WLAGS49_H25 drivers/staging/Makefile
-
-announce IPW2100 - "Intel PRO/Wireless 2100 Network Connection"
-reject_firmware drivers/net/wireless/ipw2x00/ipw2100.c
-clean_blob drivers/net/wireless/ipw2x00/ipw2100.c
-clean_kconfig drivers/net/wireless/Kconfig 'IPW2100'
-clean_mk CONFIG_IPW2100 drivers/net/wireless/ipw2x00/Makefile
-
-announce IPW2200 - "Intel PRO/Wireless 2200BG and 2915ABG Network Connection"
-reject_firmware drivers/net/wireless/ipw2x00/ipw2200.c
-clean_blob drivers/net/wireless/ipw2x00/ipw2200.c
-clean_kconfig drivers/net/wireless/Kconfig 'IPW2200'
-clean_mk CONFIG_IPW2200 drivers/net/wireless/ipw2x00/Makefile
-
-announce IWL3945 - "Intel PRO/Wireless 3945ABG/BG Network Connection"
-reject_firmware drivers/net/wireless/iwlwifi/iwl3945-base.c
-clean_blob drivers/net/wireless/iwlwifi/iwl3945-base.c
-clean_blob drivers/net/wireless/iwlwifi/iwl-3945.h
-clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWL3945'
-clean_mk CONFIG_IWL3945 drivers/net/wireless/iwlwifi/Makefile
-
-announce IWLAGN - "Intel Wireless WiFi Next Gen AGN"
-reject_firmware drivers/net/wireless/iwlwifi/iwl-agn.c
-clean_blob drivers/net/wireless/iwlwifi/iwl-agn.c
-clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWLAGN'
-clean_mk CONFIG_IWLAGN drivers/net/wireless/iwlwifi/Makefile
-
-announce IWL4965 - "Intel Wireless WiFi 4965AGN"
-clean_blob drivers/net/wireless/iwlwifi/iwl-4965.c
-clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWL4965'
-clean_mk CONFIG_IWL4965 drivers/net/wireless/iwlwifi/Makefile
-
-announce IWL5000 - "Intel Wireless WiFi 5000AGN"
-clean_blob drivers/net/wireless/iwlwifi/iwl-5000.c
-clean_blob drivers/net/wireless/iwlwifi/iwl-6000.c
-clean_blob drivers/net/wireless/iwlwifi/iwl-1000.c
-clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWL5000'
-clean_mk CONFIG_IWL5000 drivers/net/wireless/iwlwifi/Makefile
-
-announce IWM - "Intel Wireless Multicomm 3200 WiFi driver"
-reject_firmware drivers/net/wireless/iwmc3200wifi/fw.c
-clean_blob drivers/net/wireless/iwmc3200wifi/sdio.c
-clean_kconfig drivers/net/wireless/iwmc3200wifi/Kconfig 'IWM'
-clean_mk CONFIG_IWM drivers/net/wireless/iwmc3200wifi/Makefile
-
-announce IWMC3200TOP - "Intel Wireless MultiCom Top Driver"
-reject_firmware drivers/misc/iwmc3200top/fw-download.c
-undefine_macro '_FW_NAME(api)' '"/*(DEBLOBBED)*/"' \
- 'removed non-Free firmware name' drivers/misc/iwmc3200top/iwmc3200top.h
-clean_blob drivers/misc/iwmc3200top/main.c
-clean_kconfig drivers/misc/iwmc3200top/Kconfig 'IWMC3200TOP'
-clean_mk CONFIG_IWMC3200TOP drivers/misc/iwmc3200top/Makefile
-
-announce LIBERTAS - "Marvell 8xxx Libertas WLAN driver support"
-reject_firmware drivers/net/wireless/libertas/main.c '
-/Try user-specified firmware first/{
- :end1
- /request_firmware(helper, user_helper/! {N; b end1;};
- :end2
- /request_firmware(helper, user_helper.*request_firmware(mainfw, user_mainfw/! {N; b end2;};
- /request_firmware(helper, user_helper.*request_firmware(mainfw, user_mainfw/{
- /request_firmware.*request_firmware.*request_firmware/!{p; d;};
- }
-}
-'
-clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS'
-clean_mk CONFIG_LIBERTAS drivers/net/wireless/libertas/Makefile
-
-announce LIBERTAS_CS - "Marvell Libertas 8385 CompactFlash 802.11b/g cards"
-clean_blob drivers/net/wireless/libertas/if_cs.c
-clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_CS'
-clean_mk CONFIG_LIBERTAS_CS drivers/net/wireless/libertas/Makefile
-
-announce LIBERTAS_SDIO - "Marvell Libertas 8385 and 8686 SDIO 802.11b/g cards"
-clean_blob drivers/net/wireless/libertas/if_sdio.c
-clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_SDIO'
-clean_mk CONFIG_LIBERTAS_SDIO drivers/net/wireless/libertas/Makefile
-
-announce LIBERTAS_SPI - "Marvell Libertas 8686 SPI 802.11b/g cards"
-clean_blob drivers/net/wireless/libertas/if_spi.c
-clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_SPI'
-clean_mk CONFIG_LIBERTAS_SPI drivers/net/wireless/libertas/Makefile
-
-announce LIBERTAS_USB - "Marvell Libertas 8388 USB 802.11b/g cards"
-reject_firmware drivers/net/wireless/libertas/if_usb.c '
-/Try user-specified firmware first/{
- /request_firmware/!N;
- /request_firmware/!N;
- /request_firmware/{p; d;};
-}
-'
-clean_blob drivers/net/wireless/libertas/if_usb.c
-clean_blob drivers/net/wireless/libertas/README
-clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_USB'
-clean_mk CONFIG_LIBERTAS_USB drivers/net/wireless/libertas/Makefile
-
-announce LIBERTAS_THINFIRM_USB - "Marvell Libertas 8388 USB 802.11b/g cards with thin firmware"
-reject_firmware drivers/net/wireless/libertas_tf/if_usb.c
-clean_blob drivers/net/wireless/libertas_tf/if_usb.c
-clean_kconfig drivers/net/wireless/Kconfig 'LIBERTAS_THINFIRM_USB'
-clean_mk CONFIG_LIBERTAS_THINFIRM_USB drivers/net/wireless/libertas_tf/Makefile
-
-announce MWL8K - 'Marvell 88W8xxx PCI/PCIe Wireless support'
-reject_firmware drivers/net/wireless/mwl8k.c
-clean_blob drivers/net/wireless/mwl8k.c
-clean_kconfig drivers/net/wireless/Kconfig 'MWL8K'
-clean_mk CONFIG_MWL8K drivers/net/wireless/Makefile
-
-announce ATH6K_LEGACY - "Atheros AR6003 support (non mac80211)"
-reject_firmware drivers/staging/ath6kl/os/linux/ar6000_android.c
-reject_firmware drivers/staging/ath6kl/os/linux/include/osapi_linux.h
-clean_sed '
-/\*firmware_p = firmware = kzalloc/ i\
- return -1;
-' drivers/staging/ath6kl/os/linux/ar6000_android.c \
- 'disabled non-Free firmware loading machinery'
-clean_blob drivers/staging/ath6kl/os/linux/include/ar6000_drv.h
-clean_kconfig drivers/staging/ath6kl/Kconfig 'ATH6K_LEGACY'
-clean_mk CONFIG_ATH6K_LEGACY drivers/staging/ath6kl/Makefile
-
-announce ATH9K_HTC - "Atheros HTC based wireless cards support"
-reject_firmware drivers/net/wireless/ath/ath9k/hif_usb.c
-clean_blob drivers/net/wireless/ath/ath9k/hif_usb.c
-clean_kconfig drivers/net/wireless/ath/ath9k/Kconfig 'ATH9K_HTC'
-clean_mk CONFIG_ATH9K_HTC drivers/net/wireless/ath/ath9k/Makefile
-
-announce PRISM2_USB - "Prism2.5/3 USB driver"
-reject_firmware drivers/staging/wlan-ng/prism2fw.c
-clean_blob drivers/staging/wlan-ng/prism2fw.c
-clean_kconfig drivers/staging/wlan-ng/Kconfig PRISM2_USB
-clean_mk CONFIG_PRISM2_USB drivers/staging/wlan-ng/Makefile
-
-announce P54_PCI - "Prism54 PCI support"
-reject_firmware drivers/net/wireless/p54/p54pci.c
-clean_blob drivers/net/wireless/p54/p54pci.c
-clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_PCI'
-clean_mk CONFIG_P54_PCI drivers/net/wireless/p54/Makefile
-
-announce P54_SPI - "Prism54 SPI (stlc45xx) support"
-# There's support for loading custom 3826.eeprom here, with a default
-# eeprom that is clearly pure data. Without Free 3826.arm, there's
-# little point in trying to retain the ability to load 3826.eeprom, so
-# we drop it altogether.
-reject_firmware drivers/net/wireless/p54/p54spi.c
-clean_blob drivers/net/wireless/p54/p54spi.c
-clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_SPI'
-clean_mk CONFIG_P54_SPI drivers/net/wireless/p54/Makefile
-
-announce P54_USB - "Prism54 USB support"
-reject_firmware drivers/net/wireless/p54/p54usb.c
-clean_blob drivers/net/wireless/p54/p54usb.c
-clean_blob drivers/net/wireless/p54/p54usb.h
-clean_kconfig drivers/net/wireless/p54/Kconfig 'P54_USB'
-clean_mk CONFIG_P54_USB drivers/net/wireless/p54/Makefile
-
-announce PRISM54 - 'Intersil Prism GT/Duette/Indigo PCI/Cardbus'
-reject_firmware drivers/net/wireless/prism54/islpci_dev.c
-clean_blob drivers/net/wireless/prism54/islpci_dev.c
-clean_kconfig drivers/net/wireless/Kconfig 'PRISM54'
-clean_mk CONFIG_PRISM54 drivers/net/wireless/prism54/Makefile
-
-announce RT2X00_LIB_FIRMWARE - "Ralink driver firmware support"
-reject_firmware drivers/net/wireless/rt2x00/rt2x00firmware.c
-clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT2X00_LIB_FIRMWARE'
-clean_mk CONFIG_RT2X00_LIB_FIRMWARE drivers/net/wireless/rt2x00/Makefile
-
-announce RT61PCI - "Ralink rt2501/rt61 (PCI/PCMCIA) support"
-clean_blob drivers/net/wireless/rt2x00/rt61pci.h
-clean_blob drivers/net/wireless/rt2x00/rt61pci.c
-clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT61PCI'
-clean_mk CONFIG_RT61PCI drivers/net/wireless/rt2x00/Makefile
-
-announce RT73USB - "Ralink rt2501/rt73 (USB) support"
-clean_blob drivers/net/wireless/rt2x00/rt73usb.h
-clean_blob drivers/net/wireless/rt2x00/rt73usb.c
-clean_kconfig drivers/net/wireless/rt2x00/Kconfig 'RT73USB'
-clean_mk CONFIG_RT73USB drivers/net/wireless/rt2x00/Makefile
-
-announce RT2800PCI - "Ralink rt2800 (PCI/PCMCIA) support"
-clean_blob drivers/net/wireless/rt2x00/rt2800pci.h
-clean_blob drivers/net/wireless/rt2x00/rt2800pci.c
-clean_kconfig drivers/net/wireless/rt2x00/Kconfig RT2800PCI
-clean_mk CONFIG_RT2800PCI drivers/net/wireless/rt2x00/Makefile
-
-announce RT2800USB - "Ralink rt2800 (USB) support"
-clean_blob drivers/net/wireless/rt2x00/rt2800usb.h
-clean_blob drivers/net/wireless/rt2x00/rt2800usb.c
-clean_kconfig drivers/net/wireless/rt2x00/Kconfig RT2800USB
-clean_mk CONFIG_RT2800USB drivers/net/wireless/rt2x00/Makefile
-
-announce RT2860 - "Ralink 2860/3090 wireless support"
-reject_firmware drivers/staging/rt2860/common/rtmp_mcu.c
-clean_blob drivers/staging/rt2860/common/rtmp_mcu.c
-clean_blob drivers/staging/rt2860/rtmp_def.h
-clean_blob drivers/staging/rt2860/common/ee_efuse.c
-clean_kconfig drivers/staging/rt2860/Kconfig RT2860
-clean_mk CONFIG_RT2860 drivers/staging/rt2860/Makefile
-
-announce RT2870 - "Ralink 2870/3070 wireless support"
-clean_kconfig drivers/staging/rt2870/Kconfig RT2870
-clean_mk CONFIG_RT2870 drivers/staging/rt2870/Makefile
-
-announce RTL8192E - "RealTek RTL8192E Wireless LAN NIC driver"
-reject_firmware drivers/staging/rtl8192e/r819xE_firmware.c
-clean_blob drivers/staging/rtl8192e/r819xE_firmware.c
-clean_kconfig drivers/staging/rtl8192e/Kconfig RTL8192E
-clean_mk CONFIG_RTL8192E drivers/staging/rtl8192e/Makefile
-
-announce RTL8192U - "RealTek RTL8192U Wireless LAN NIC driver"
-reject_firmware drivers/staging/rtl8192u/r819xU_firmware.c
-clean_blob drivers/staging/rtl8192u/r819xU_firmware.c
-clean_blob drivers/staging/rtl8192u/r819xU_firmware_img.c
-clean_kconfig drivers/staging/rtl8192u/Kconfig 'RTL8192U'
-clean_mk CONFIG_RTL8192U drivers/staging/rtl8192u/Makefile
-
-announce R8712U - "RealTek RTL8712U (RTL8192SU) Wireless LAN NIC driver"
-clean_blob drivers/staging/rtl8712/farray.h
-clean_sed '
-/^static u32 rtl871x_open_fw(/i\
-#define rtl871x_open_fw(a,b,c) 0
-' drivers/staging/rtl8712/hal_init.c \
- 'disabling non-Free firmware loading machinery'
-clean_blob drivers/staging/rtl8712/hal_init.c
-clean_kconfig drivers/staging/rtl8712/Kconfig 'R8712U'
-clean_mk CONFIG_R8712U drivers/staging/rtl8712/Makefile
-
-announce VT6656 - "VIA Technologies VT6656 support"
-clean_sed '
-/^FIRMWAREbDownload($/,/^}$/ {
- /PBYTE.*pBuffer/ i\
- PBYTE abyFirmware[1] = { 0 };
- /-->Download firmware/ i\
- printk("vt6656: missing Free firmware\\n");\
- return (FALSE);
-}' drivers/staging/vt6656/firmware.c 'report missing Free firmware'
-clean_blob drivers/staging/vt6656/firmware.c
-clean_kconfig drivers/staging/vt6656/Kconfig 'VT6656'
-clean_mk CONFIG_VT6656 drivers/staging/vt6656/Makefile
-
-announce WL1251 - "TI wl1251 support"
-reject_firmware drivers/net/wireless/wl1251/main.c
-clean_blob drivers/net/wireless/wl1251/main.c
-clean_blob drivers/net/wireless/wl1251/wl1251.h
-clean_kconfig drivers/net/wireless/wl1251/Kconfig 'WL1251'
-clean_mk CONFIG_WL1251 drivers/net/wireless/wl1251/Makefile
-
-announce WL1271 - "TI wl1271 support"
-reject_firmware drivers/net/wireless/wl12xx/wl1271_main.c
-clean_blob drivers/net/wireless/wl12xx/wl1271.h
-clean_kconfig drivers/net/wireless/wl12xx/Kconfig 'WL1271'
-clean_mk CONFIG_WL1271 drivers/net/wireless/wl12xx/Makefile
-
-announce WL1271_SDIO - "TI wl1271 SDIO support"
-clean_blob drivers/net/wireless/wl12xx/wl1271_sdio.c
-clean_kconfig drivers/net/wireless/wl12xx/Kconfig 'WL1271_SDIO'
-clean_mk CONFIG_WL1271_SDIO drivers/net/wireless/wl12xx/Makefile
-
-announce WL1271_SPI - "TI wl1271 SPI support"
-clean_blob drivers/net/wireless/wl12xx/wl1271_spi.c
-clean_kconfig drivers/net/wireless/wl12xx/Kconfig 'WL1271_SPI'
-clean_mk CONFIG_WL1271_SPI drivers/net/wireless/wl12xx/Makefile
-
-announce USB_ZD1201 - "USB ZD1201 based Wireless device support"
-reject_firmware drivers/net/wireless/zd1201.c
-clean_blob drivers/net/wireless/zd1201.c
-clean_kconfig drivers/net/wireless/Kconfig 'USB_ZD1201'
-clean_mk CONFIG_USB_ZD1201 drivers/net/wireless/Makefile
-
-announce ZD1211RW - "ZyDAS ZD1211/ZD1211B USB-wireless support"
-reject_firmware drivers/net/wireless/zd1211rw/zd_usb.c
-clean_blob drivers/net/wireless/zd1211rw/zd_usb.c
-clean_kconfig drivers/net/wireless/zd1211rw/Kconfig 'ZD1211RW'
-clean_mk CONFIG_ZD1211RW drivers/net/wireless/zd1211rw/Makefile
-
-# bluetooth
-
-announce BT_ATH3K - "Atheros firmware download driver"
-reject_firmware drivers/bluetooth/ath3k.c
-clean_blob drivers/bluetooth/ath3k.c
-clean_kconfig drivers/bluetooth/Kconfig 'BT_ATH3K'
-clean_mk CONFIG_BT_ATH3K drivers/bluetooth/Makefile
-
-announce BT_HCIBCM203X - "HCI BCM203x USB driver"
-reject_firmware drivers/bluetooth/bcm203x.c
-clean_blob drivers/bluetooth/bcm203x.c
-clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBCM203X'
-clean_mk CONFIG_BT_HCIBCM203X drivers/bluetooth/Makefile
-
-announce BT_HCIBFUSB - "HCI BlueFRITZ! USB driver"
-reject_firmware drivers/bluetooth/bfusb.c
-clean_blob drivers/bluetooth/bfusb.c
-clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBFUSB'
-clean_mk CONFIG_BT_HCIBFUSB drivers/bluetooth/Makefile
-
-announce BT_HCIBT3C - "HCI BT3C (PC Card) driver"
-reject_firmware drivers/bluetooth/bt3c_cs.c
-clean_blob drivers/bluetooth/bt3c_cs.c
-clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBT3C'
-clean_mk CONFIG_BT_HCIBT3C drivers/bluetooth/Makefile
-
-announce BT_MRVL_SDIO - "Marvell BT-over-SDIO driver"
-reject_firmware drivers/bluetooth/btmrvl_sdio.c
-clean_blob drivers/bluetooth/btmrvl_sdio.c
-clean_blob Documentation/btmrvl.txt
-clean_kconfig drivers/bluetooth/Kconfig 'BT_MRVL_SDIO'
-clean_mk CONFIG_BT_MRVL_SDIO drivers/bluetooth/Makefile
-
-announce TI_ST - "Texas Instruments shared transport line discipline"
-reject_firmware drivers/misc/ti-st/st_kim.c
-clean_blob drivers/misc/ti-st/st_kim.c
-clean_kconfig drivers/misc/ti-st/Kconfig 'TI_ST'
-clean_mk CONFIG_TI_ST drivers/misc/ti-st/Makefile
-
-# wimax
-
-announce WIMAX_I2400M - "Intel Wireless WiMAX Connection 2400"
-reject_firmware drivers/net/wimax/i2400m/fw.c
-clean_blob drivers/net/wimax/i2400m/sdio.c
-clean_blob drivers/net/wimax/i2400m/usb.c
-clean_blob Documentation/wimax/README.i2400m
-clean_kconfig drivers/net/wimax/i2400m/Kconfig 'WIMAX_I2400M'
-clean_mk CONFIG_WIMAX_I2400M drivers/net/wimax/i2400m/Makefile
-
-announce BCM_WIMAX - "Beceem BCS200/BCS220-3 and BCSM250 wimax support"
-clean_blob drivers/staging/bcm/Macros.h
-# This disables loading of the .cfg file as well, but it's useless without
-# the firmware proper.
-clean_sed '
-/^static inline struct file \*open_firmware_file/,/^}$/ {
- /oldfs=get_fs();/i\
- return /*(DEBLOBBED)*/ NULL;
-}' drivers/staging/bcm/Misc.c 'disabled non-Free firmware loading machinery'
-clean_kconfig drivers/staging/bcm/Kconfig 'BCM_WIMAX'
-clean_mk CONFIG_BCM_WIMAX drivers/staging/bcm/Makefile
-
-# infiniband
-
-announce INFINIBAND_QIB - "QLogic PCIe HCA support"
-drop_fw_file firmware/qlogic/sd7220.fw.ihex firmware/qlogic/sd7220.fw
-reject_firmware drivers/infiniband/hw/qib/qib_sd7220.c
-clean_blob drivers/infiniband/hw/qib/qib_sd7220.c
-clean_kconfig drivers/infiniband/hw/qib/Kconfig 'INFINIBAND_QIB'
-clean_mk CONFIG_INFINIBAND_QIB drivers/infiniband/hw/qib/Makefile
-
-########
-# ISDN #
-########
-
-announce ISDN_DIVAS - "Support Eicon DIVA Server cards"
-clean_blob drivers/isdn/hardware/eicon/cardtype.h
-clean_blob drivers/isdn/hardware/eicon/dsp_defs.h
-clean_kconfig drivers/isdn/hardware/eicon/Kconfig 'ISDN_DIVAS'
-clean_mk CONFIG_ISDN_DIVAS drivers/isdn/hardware/eicon/Makefile
-
-announce MISDN_SPEEDFAX - "Support for Sedlbauer Speedfax+"
-reject_firmware drivers/isdn/hardware/mISDN/speedfax.c
-clean_blob drivers/isdn/hardware/mISDN/speedfax.c
-clean_kconfig drivers/isdn/hardware/mISDN/Kconfig 'MISDN_SPEEDFAX'
-clean_mk CONFIG_MISDN_SPEEDFAX drivers/isdn/hardware/mISDN/Makefile
-
-##########
-# Serial #
-##########
-
-announce SERIAL_8250_CS - "8250/16550 PCMCIA device support"
-# These are not software; they're Free, but GPLed without in-tree sources.
-drop_fw_file firmware/cis/MT5634ZLX.cis.ihex firmware/cis/MT5634ZLX.cis
-drop_fw_file firmware/cis/RS-COM-2P.cis.ihex firmware/cis/RS-COM-2P.cis
-drop_fw_file firmware/cis/COMpad2.cis.ihex firmware/cis/COMpad2.cis
-drop_fw_file firmware/cis/COMpad4.cis.ihex firmware/cis/COMpad4.cis
-# These are not software; they're Free, but GPLed without textual sources.
-# It could be assumed that these binaries *are* sources, since they
-# can be trivially converted back to a textual form, without loss,
-# but we're better off safe than sorry, so remove them from our tree.
-drop_fw_file firmware/cis/SW_555_SER.cis.ihex firmware/cis/SW_555_SER.cis
-drop_fw_file firmware/cis/SW_7xx_SER.cis.ihex firmware/cis/SW_7xx_SER.cis
-drop_fw_file firmware/cis/SW_8xx_SER.cis.ihex firmware/cis/SW_8xx_SER.cis
-# clean_blob drivers/serial/serial_cs.c
-# clean_kconfig drivers/serial/Kconfig 'SERIAL_8250_CS'
-# clean_mk CONFIG_SERIAL_8250_CS drivers/serial/Makefile
-
-announce SERIAL_ICOM - "IBM Multiport Serial Adapter"
-reject_firmware drivers/serial/icom.c
-clean_blob drivers/serial/icom.c
-clean_kconfig drivers/serial/Kconfig 'SERIAL_ICOM'
-clean_mk CONFIG_SERIAL_ICOM drivers/serial/Makefile
-
-announce SERIAL_QE - "Freescale QUICC Engine serial port support"
-reject_firmware drivers/serial/ucc_uart.c
-clean_blob drivers/serial/ucc_uart.c
-clean_kconfig drivers/serial/Kconfig 'SERIAL_QE'
-clean_mk CONFIG_SERIAL_QE drivers/serial/Makefile
-
-#########
-# input #
-#########
-
-announce TOUCHSCREEN_QT602240 - "QT602240 I2C Touchscreen"
-reject_firmware drivers/input/touchscreen/qt602240_ts.c
-clean_blob drivers/input/touchscreen/qt602240_ts.c
-clean_kconfig drivers/net/Kconfig 'TOUCHSCREEN_QT602240'
-clean_mk CONFIG_TOUCHSCREEN_QT602240 drivers/input/touchscreen/Makefile
-
-announce LIRC_ZILOG - "Zilog/Hauppauge IR Transmitter"
-reject_firmware drivers/staging/lirc/lirc_zilog.c
-clean_blob drivers/staging/lirc/lirc_zilog.c
-clean_kconfig drivers/staging/lirc/Kconfig 'LIRC_ZILOG'
-clean_mk CONFIG_LIRC_ZILOG drivers/staging/lirc/Makefile
-
-####################
-# Data acquisition #
-####################
-
-announce COMEDI_PCI_DRIVERS - "Data acquisition support Comedi PCI drivers"
-reject_firmware drivers/staging/comedi/drivers/jr3_pci.c
-clean_blob drivers/staging/comedi/drivers/jr3_pci.c
-clean_kconfig drivers/staging/comedi/Kconfig 'COMEDI_PCI_DRIVERS'
-clean_mk CONFIG_COMEDI_PCI_DRIVERS drivers/staging/comedi/drivers/Makefile
-
-announce COMEDI_USBDUX - "ITL USBDUX support"
-reject_firmware drivers/staging/comedi/drivers/usbdux.c
-clean_blob drivers/staging/comedi/drivers/usbdux.c
-clean_kconfig drivers/staging/comedi/Kconfig 'COMEDI_USBDUX'
-clean_mk CONFIG_COMEDI_USBDUX drivers/staging/comedi/drivers/Makefile
-
-announce COMEDI_USBDUXFAST - "ITL USB-DUXfast support"
-reject_firmware drivers/staging/comedi/drivers/usbduxfast.c
-clean_blob drivers/staging/comedi/drivers/usbduxfast.c
-clean_kconfig drivers/staging/comedi/Kconfig 'COMEDI_USBDUXFAST'
-clean_mk CONFIG_COMEDI_USBDUXFAST drivers/staging/comedi/drivers/Makefile
-
-
-########
-# SCSI #
-########
-
-announce SCSI_QLOGICPTI - "PTI Qlogic, ISP Driver"
-drop_fw_file firmware/qlogic/isp1000.bin.ihex firmware/qlogic/isp1000.bin
-reject_firmware drivers/scsi/qlogicpti.c
-clean_blob drivers/scsi/qlogicpti.c
-clean_kconfig drivers/scsi/Kconfig 'SCSI_QLOGICPTI'
-clean_mk CONFIG_SCSI_QLOGICPTI drivers/scsi/Makefile
-
-announce SCSI_ADVANSYS - "AdvanSys SCSI"
-drop_fw_file firmware/advansys/mcode.bin.ihex firmware/advansys/mcode.bin
-drop_fw_file firmware/advansys/3550.bin.ihex firmware/advansys/3550.bin
-drop_fw_file firmware/advansys/38C0800.bin.ihex firmware/advansys/38C0800.bin
-drop_fw_file firmware/advansys/38C1600.bin.ihex firmware/advansys/38C1600.bin
-reject_firmware drivers/scsi/advansys.c
-clean_blob drivers/scsi/advansys.c
-clean_kconfig drivers/scsi/Kconfig 'SCSI_ADVANSYS'
-clean_mk CONFIG_SCSI_ADVANSYS drivers/scsi/Makefile
-
-announce SCSI_QLOGIC_1280 - "Qlogic QLA 1240/1x80/1x160 SCSI"
-drop_fw_file firmware/qlogic/1040.bin.ihex firmware/qlogic/1040.bin
-drop_fw_file firmware/qlogic/1280.bin.ihex firmware/qlogic/1280.bin
-drop_fw_file firmware/qlogic/12160.bin.ihex firmware/qlogic/12160.bin
-reject_firmware drivers/scsi/qla1280.c
-clean_blob drivers/scsi/qla1280.c
-clean_kconfig drivers/scsi/Kconfig 'SCSI_QLOGIC_1280'
-clean_mk CONFIG_SCSI_QLOGIC_1280 drivers/scsi/Makefile
-
-announce SCSI_AIC94XX - "Adaptec AIC94xx SAS/SATA support"
-reject_firmware drivers/scsi/aic94xx/aic94xx_seq.c
-clean_blob drivers/scsi/aic94xx/aic94xx_seq.c
-clean_blob drivers/scsi/aic94xx/aic94xx_seq.h
-clean_kconfig drivers/scsi/aic94xx/Kconfig 'SCSI_AIC94XX'
-clean_mk CONFIG_SCSI_AIC94XX drivers/scsi/aic94xx/Makefile
-
-announce SCSI_BFA_FC - "Brocade BFA Fibre Channel Support"
-clean_blob drivers/scsi/bfa/bfad_im.h
-reject_firmware drivers/scsi/bfa/bfad.c
-clean_blob drivers/scsi/bfa/bfad.c
-clean_kconfig drivers/scsi/Kconfig 'SCSI_BFA_FC'
-clean_mk CONFIG_SCSI_BFA_FC drivers/scsi/bfa/Makefile
-
-announce SCSI_QLA_FC - "QLogic QLA2XXX Fibre Channel Support"
-reject_firmware drivers/scsi/qla2xxx/qla_gbl.h
-reject_firmware drivers/scsi/qla2xxx/qla_init.c
-reject_firmware drivers/scsi/qla2xxx/qla_os.c
-reject_firmware drivers/scsi/qla2xxx/qla_nx.c
-clean_sed '
-/^config SCSI_QLA_FC$/,/^config /{
- /^ By default, firmware/i\
- /*(DEBLOBBED)*/
- /^ By default, firmware/,/ftp:[/][/].*firmware[/]/d
-}' drivers/scsi/qla2xxx/Kconfig 'removed firmware notes'
-clean_blob drivers/scsi/qla2xxx/qla_os.c
-clean_kconfig drivers/scsi/qla2xxx/Kconfig 'SCSI_QLA_FC'
-clean_mk CONFIG_SCSI_QLA_FC drivers/scsi/qla2xxx/Makefile
-
-
-#######
-# USB #
-#######
-
-# atm
-
-announce USB_CXACRU - "Conexant AccessRunner USB support"
-reject_firmware drivers/usb/atm/cxacru.c
-clean_blob drivers/usb/atm/cxacru.c
-clean_kconfig drivers/usb/atm/Kconfig 'USB_CXACRU'
-clean_mk CONFIG_USB_CXACRU drivers/usb/atm/Makefile
-
-announce USB_SPEEDTOUCH - "Speedtouch USB support"
-reject_firmware drivers/usb/atm/speedtch.c
-clean_blob drivers/usb/atm/speedtch.c
-clean_kconfig drivers/usb/atm/Kconfig 'USB_SPEEDTOUCH'
-clean_mk CONFIG_USB_SPEEDTOUCH drivers/usb/atm/Makefile
-
-announce USB_UEAGLEATM - "ADI 930 and eagle USB DSL modem"
-reject_firmware drivers/usb/atm/ueagle-atm.c
-clean_blob drivers/usb/atm/ueagle-atm.c
-clean_kconfig drivers/usb/atm/Kconfig 'USB_UEAGLEATM'
-clean_mk CONFIG_USB_UEAGLEATM drivers/usb/atm/Makefile
-
-# misc
-
-announce USB_EMI26 - "EMI 2|6 USB Audio interface"
-# These files are not under the GPL, better remove them all.
-drop_fw_file firmware/emi26/bitstream.HEX firmware/emi26/bitstream.fw
-drop_fw_file firmware/emi26/firmware.HEX firmware/emi26/firmware.fw
-drop_fw_file firmware/emi26/loader.HEX firmware/emi26/loader.fw
-reject_firmware drivers/usb/misc/emi26.c
-clean_blob drivers/usb/misc/emi26.c
-clean_kconfig drivers/usb/misc/Kconfig 'USB_EMI26'
-clean_mk CONFIG_USB_EMI26 drivers/usb/misc/Makefile
-
-announce USB_EMI62 - "EMI 6|2m USB Audio interface"
-# These files are probably not under the GPL, better remove them all.
-drop_fw_file firmware/emi62/bitstream.HEX firmware/emi62/bitstream.fw
-drop_fw_file firmware/emi62/loader.HEX firmware/emi62/loader.fw
-drop_fw_file firmware/emi62/midi.HEX firmware/emi62/midi.fw
-drop_fw_file firmware/emi62/spdif.HEX firmware/emi62/spdif.fw
-reject_firmware drivers/usb/misc/emi62.c
-clean_blob drivers/usb/misc/emi62.c
-clean_kconfig drivers/usb/misc/Kconfig 'USB_EMI62'
-clean_mk CONFIG_USB_EMI62 drivers/usb/misc/Makefile
-
-announce USB_ISIGHTFW - "iSight firmware loading support"
-reject_firmware drivers/usb/misc/isight_firmware.c
-clean_blob drivers/usb/misc/isight_firmware.c
-clean_kconfig drivers/usb/misc/Kconfig 'USB_ISIGHTFW'
-clean_mk CONFIG_USB_ISIGHTFW drivers/usb/misc/Makefile
-
-# storage
-
-announce USB_ENESTORAGE - "USB ENE card reader support"
-clean_blob drivers/staging/keucr/init.h
-clean_sed '
-/^int ENE_LoadBinCode(/,/^}$/ {
- /kmalloc/i\
- return /*(DEBLOBBED)*/ USB_STOR_TRANSPORT_ERROR;
-}
-' drivers/staging/keucr/init.c 'disable non-Free firmware loading machinery'
-clean_kconfig drivers/staging/keucr/Kconfig 'USB_ENESTORAGE'
-clean_mk 'CONFIG_USB_ENESTORAGE' drivers/staging/keucr/Makefile
-
-# serial
-
-announce USB_SERIAL_KEYSPAN - "USB Keyspan USA-xxx Serial Driver"
-drop_fw_file firmware/keyspan/mpr.HEX firmware/keyspan/mpr.fw
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_MPR'
-drop_fw_file firmware/keyspan/usa18x.HEX firmware/keyspan/usa18x.fw
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA18X'
-drop_fw_file firmware/keyspan/usa19.HEX firmware/keyspan/usa19.fw
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19'
-drop_fw_file firmware/keyspan/usa19qi.HEX firmware/keyspan/usa19qi.fw
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19QI'
-drop_fw_file firmware/keyspan/usa19qw.HEX firmware/keyspan/usa19qw.fw
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19QW'
-drop_fw_file firmware/keyspan/usa19w.HEX firmware/keyspan/usa19w.fw
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19W'
-drop_fw_file firmware/keyspan/usa28.HEX firmware/keyspan/usa28.fw
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28'
-drop_fw_file firmware/keyspan/usa28xa.HEX firmware/keyspan/usa28xa.fw
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28XA'
-drop_fw_file firmware/keyspan/usa28xb.HEX firmware/keyspan/usa28xb.fw
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28XB'
-drop_fw_file firmware/keyspan/usa28x.HEX firmware/keyspan/usa28x.fw
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28X'
-drop_fw_file firmware/keyspan/usa49w.HEX firmware/keyspan/usa49w.fw
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA49W'
-drop_fw_file firmware/keyspan/usa49wlc.HEX firmware/keyspan/usa49wlc.fw
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA49WLC'
-reject_firmware drivers/usb/serial/keyspan.c
-clean_blob drivers/usb/serial/keyspan.c
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN'
-clean_mk CONFIG_USB_SERIAL_KEYSPAN drivers/usb/serial/Makefile
-
-announce USB_SERIAL_KEYSPAN_PDA - "USB Keyspan PDA Single Port Serial Driver"
-clean_sed '
-s,request_ihex_firmware,/*KEYSPAN_PDA*/&,
-' drivers/usb/serial/keyspan_pda.c 'accept Free firmware'
-
-announce USB_SERIAL_EDGEPORT - "USB Inside Out Edgeport Serial Driver"
-clean_fw firmware/edgeport/boot.H16 firmware/edgeport/boot.fw
-clean_fw firmware/edgeport/boot2.H16 firmware/edgeport/boot2.fw
-clean_fw firmware/edgeport/down.H16 firmware/edgeport/down.fw
-clean_fw firmware/edgeport/down2.H16 firmware/edgeport/down2.fw
-reject_firmware drivers/usb/serial/io_edgeport.c
-clean_blob drivers/usb/serial/io_edgeport.c
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_EDGEPORT'
-clean_mk CONFIG_USB_SERIAL_EDGEPORT drivers/usb/serial/Makefile
-
-announce USB_SERIAL_EDGEPORT_TI - "USB Inside Out Edgeport Serial Driver (TI devices)"
-clean_fw firmware/edgeport/down3.bin.ihex firmware/edgeport/down3.bin
-reject_firmware drivers/usb/serial/io_ti.c
-clean_blob drivers/usb/serial/io_ti.c
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_EDGEPORT_TI'
-clean_mk CONFIG_USB_SERIAL_EDGEPORT_TI drivers/usb/serial/Makefile
-
-announce USB_SERIAL_TI - "USB TI 3410/5052 Serial Driver"
-drop_fw_file firmware/ti_3410.fw.ihex firmware/ti_3410.fw
-drop_fw_file firmware/ti_5052.fw.ihex firmware/ti_5052.fw
-drop_fw_file firmware/mts_cdma.fw.ihex firmware/mts_cdma.fw
-drop_fw_file firmware/mts_gsm.fw.ihex firmware/mts_gsm.fw
-drop_fw_file firmware/mts_edge.fw.ihex firmware/mts_edge.fw
-reject_firmware drivers/usb/serial/ti_usb_3410_5052.c
-clean_blob drivers/usb/serial/ti_usb_3410_5052.c
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_TI'
-clean_mk CONFIG_USB_SERIAL_TI drivers/usb/serial/Makefile
-
-announce USB_SERIAL_WHITEHEAT - "USB ConnectTech WhiteHEAT Serial Driver"
-clean_fw firmware/whiteheat.HEX firmware/whiteheat.fw
-clean_fw firmware/whiteheat_loader.HEX firmware/whiteheat_loader.fw
-clean_fw firmware/whiteheat_loader_debug.HEX firmware/whiteheat_loader_debug.fw
-reject_firmware drivers/usb/serial/whiteheat.c
-clean_blob drivers/usb/serial/whiteheat.c
-clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_WHITEHEAT'
-clean_mk CONFIG_USB_SERIAL_WHITEHEAT drivers/usb/serial/Makefile
-
-# uwb
-
-announce UWB_I1480U - Support for Intel Wireless UWB Link 1480 HWA
-reject_firmware drivers/uwb/i1480/dfu/i1480-dfu.h
-reject_firmware drivers/uwb/i1480/dfu/mac.c
-reject_firmware drivers/uwb/i1480/dfu/phy.c
-clean_blob drivers/uwb/i1480/dfu/usb.c
-clean_kconfig drivers/uwb/Kconfig 'UWB_I1480U'
-clean_mk CONFIG_UWB_I1480U drivers/uwb/i1480/dfu/Makefile
-
-
-
-#########
-# Sound #
-#########
-
-announce SND_ASIHPI - "AudioScience ASIxxxx"
-reject_firmware sound/pci/asihpi/hpidspcd.c
-clean_blob sound/pci/asihpi/hpidspcd.c
-clean_blob sound/pci/asihpi/hpioctl.c
-clean_kconfig sound/pci/Kconfig 'SND_ASIHPI'
-clean_mk CONFIG_SND_ASIHPI sound/pci/asihpi/Makefile
-
-announce SND_CS46XX - "Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x"
-# This appears to have been extracted from some non-Free driver
-clean_file sound/pci/cs46xx/cs46xx_image.h
-# The following blobs are definitely extracted from non-Free drivers.
-clean_file sound/pci/cs46xx/imgs/cwc4630.h
-clean_file sound/pci/cs46xx/imgs/cwcasync.h
-clean_file sound/pci/cs46xx/imgs/cwcsnoop.h
-clean_sed '
-/^\(int \)\?snd_cs46xx_download_image([^;]*$/,/^}$/{
- /for.*BA1_MEMORY_COUNT/i\
-#if 0
- /^}$/{
- i\
-#else\
- snd_printk(KERN_ERR "cs46xx: Missing Free firmware\\n");\
- return -EINVAL;\
-#endif
- }
-}
-s/cs46xx_dsp_load_module(chip, [&]cwc\(4630\|async\|snoop\)_module)/(snd_printk(KERN_ERR "cs46xx: Missing Free firmware\\n"),-EINVAL)/
-' sound/pci/cs46xx/cs46xx_lib.c 'report missing Free firmware'
-clean_blob sound/pci/cs46xx/cs46xx_lib.c
-clean_kconfig sound/pci/Kconfig 'SND_CS46XX'
-clean_mk 'CONFIG_SND_CS46XX' sound/pci/cs46xx/Makefile
-
-announce SND_INTEL_SST - "Intel SST (LPE) Driver"
-clean_blob drivers/staging/intel_sst/intel_sst_common.h
-reject_firmware drivers/staging/intel_sst/intel_sst_drv_interface.c
-reject_firmware drivers/staging/intel_sst/intel_sst_dsp.c
-clean_kconfig drivers/staging/intel_sst/Kconfig 'SND_INTEL_SST'
-clean_mk 'CONFIG_SND_INTEL_SST' drivers/staging/intel_sst/Makefile
-
-announce SND_KORG1212 - "Korg 1212 IO"
-drop_fw_file firmware/korg/k1212.dsp.ihex firmware/korg/k1212.dsp
-reject_firmware sound/pci/korg1212/korg1212.c
-clean_blob sound/pci/korg1212/korg1212.c
-clean_kconfig sound/pci/Kconfig 'SND_KORG1212'
-clean_mk 'CONFIG_SND_KORG1212' sound/pci/korg1212/Makefile
-
-announce SND_MAESTRO3 - "ESS Allegro/Maestro3"
-drop_fw_file firmware/ess/maestro3_assp_kernel.fw.ihex firmware/ess/maestro3_assp_kernel.fw
-drop_fw_file firmware/ess/maestro3_assp_minisrc.fw.ihex firmware/ess/maestro3_assp_minisrc.fw
-reject_firmware sound/pci/maestro3.c
-clean_blob sound/pci/maestro3.c
-clean_kconfig sound/pci/Kconfig 'SND_MAESTRO3'
-clean_mk 'CONFIG_SND_MAESTRO3' sound/pci/Makefile
-
-announce SND_YMFPCI - "Yamaha YMF724/740/744/754"
-drop_fw_file firmware/yamaha/ds1_ctrl.fw.ihex firmware/yamaha/ds1_ctrl.fw
-drop_fw_file firmware/yamaha/ds1_dsp.fw.ihex firmware/yamaha/ds1_dsp.fw
-drop_fw_file firmware/yamaha/ds1e_ctrl.fw.ihex firmware/yamaha/ds1e_ctrl.fw
-reject_firmware sound/pci/ymfpci/ymfpci_main.c
-clean_blob sound/pci/ymfpci/ymfpci_main.c
-clean_kconfig sound/pci/Kconfig 'SND_YMFPCI'
-clean_mk 'CONFIG_SND_YMFPCI' sound/pci/ymfpci/Makefile
-
-announce SND_SB16_CSP - "SB16 Advanced Signal Processor"
-drop_fw_file firmware/sb16/alaw_main.csp.ihex firmware/sb16/alaw_main.csp
-drop_fw_file firmware/sb16/mulaw_main.csp.ihex firmware/sb16/mulaw_main.csp
-drop_fw_file firmware/sb16/ima_adpcm_init.csp.ihex firmware/sb16/ima_adpcm_init.csp
-drop_fw_file firmware/sb16/ima_adpcm_capture.csp.ihex firmware/sb16/ima_adpcm_capture.csp
-drop_fw_file firmware/sb16/ima_adpcm_playback.csp.ihex firmware/sb16/ima_adpcm_playback.csp
-reject_firmware sound/isa/sb/sb16_csp.c
-clean_blob sound/isa/sb/sb16_csp.c
-clean_kconfig sound/isa/Kconfig 'SND_SB16_CSP'
-clean_mk 'CONFIG_SND_SB16_CSP' sound/isa/sb/Makefile
-
-announce SND_WAVEFRONT - "Turtle Beach Maui,Tropez,Tropez+ (Wavefront)"
-drop_fw_file firmware/yamaha/yss225_registers.bin.ihex firmware/yamaha/yss225_registers.bin
-reject_firmware sound/isa/wavefront/wavefront_fx.c
-clean_blob sound/isa/wavefront/wavefront_fx.c
-reject_firmware sound/isa/wavefront/wavefront_synth.c
-clean_blob sound/isa/wavefront/wavefront_synth.c
-clean_kconfig sound/isa/Kconfig 'SND_WAVEFRONT'
-clean_mk 'CONFIG_SND_WAVEFRONT' sound/isa/wavefront/Makefile
-
-announce SND_VX_LIB - Digigram VX soundcards
-reject_firmware sound/drivers/vx/vx_hwdep.c
-clean_blob sound/drivers/vx/vx_hwdep.c
-clean_kconfig sound/drivers/Kconfig 'SND_VX_LIB'
-clean_mk CONFIG_SND_VX_LIB sound/drivers/vx/Makefile
-
-announce SND_DARLA20 - "(Echoaudio) Darla20"
-clean_blob sound/pci/echoaudio/darla20.c
-clean_kconfig sound/pci/Kconfig 'SND_DARLA20'
-clean_mk CONFIG_SND_DARLA20 sound/pci/echoaudio/Makefile
-
-announce SND_DARLA24 - "(Echoaudio) Darla24"
-clean_blob sound/pci/echoaudio/darla24.c
-clean_kconfig sound/pci/Kconfig 'SND_DARLA24'
-clean_mk CONFIG_SND_DARLA24 sound/pci/echoaudio/Makefile
-
-announce SND_ECHO3G - "(Echoaudio) 3G cards"
-clean_blob sound/pci/echoaudio/echo3g.c
-clean_kconfig sound/pci/Kconfig 'SND_ECHO3G'
-clean_mk CONFIG_SND_ECHO3G sound/pci/echoaudio/Makefile
-
-announce SND_GINA20 - "(Echoaudio) Gina20"
-clean_blob sound/pci/echoaudio/gina20.c
-clean_kconfig sound/pci/Kconfig 'SND_GINA20'
-clean_mk CONFIG_SND_GINA20 sound/pci/echoaudio/Makefile
-
-announce SND_GINA24 - "(Echoaudio) Gina24"
-clean_blob sound/pci/echoaudio/gina24.c
-clean_kconfig sound/pci/Kconfig 'SND_GINA24'
-clean_mk CONFIG_SND_GINA24 sound/pci/echoaudio/Makefile
-
-announce SND_INDIGO - "(Echoaudio) Indigo"
-clean_blob sound/pci/echoaudio/indigo.c
-clean_kconfig sound/pci/Kconfig 'SND_INDIGO'
-clean_mk CONFIG_SND_INDIGO sound/pci/echoaudio/Makefile
-
-announce SND_INDIGODJ - "(Echoaudio) Indigo DJ"
-clean_blob sound/pci/echoaudio/indigodj.c
-clean_kconfig sound/pci/Kconfig 'SND_INDIGODJ'
-clean_mk CONFIG_SND_INDIGODJ sound/pci/echoaudio/Makefile
-
-announce SND_INDIGODJX - "(Echoaudio) Indigo DJx"
-clean_blob sound/pci/echoaudio/indigodjx.c
-clean_kconfig sound/pci/Kconfig 'SND_INDIGODJX'
-clean_mk CONFIG_SND_INDIGODJX sound/pci/echoaudio/Makefile
-
-announce SND_INDIGOIO - "(Echoaudio) Indigo IO"
-clean_blob sound/pci/echoaudio/indigoio.c
-clean_kconfig sound/pci/Kconfig 'SND_INDIGOIO'
-clean_mk CONFIG_SND_INDIGOIO sound/pci/echoaudio/Makefile
-
-announce SND_INDIGOIOX - "(Echoaudio) Indigo IOx"
-clean_blob sound/pci/echoaudio/indigoiox.c
-clean_kconfig sound/pci/Kconfig 'SND_INDIGOIOX'
-clean_mk CONFIG_SND_INDIGOIOX sound/pci/echoaudio/Makefile
-
-announce SND_LAYLA20 - "(Echoaudio) Layla20"
-clean_blob sound/pci/echoaudio/layla20.c
-clean_kconfig sound/pci/Kconfig 'SND_LAYLA20'
-clean_mk CONFIG_SND_LAYLA20 sound/pci/echoaudio/Makefile
-
-announce SND_LAYLA24 - "(Echoaudio) Layla24"
-clean_blob sound/pci/echoaudio/layla24.c
-clean_kconfig sound/pci/Kconfig 'SND_LAYLA24'
-clean_mk CONFIG_SND_LAYLA24 sound/pci/echoaudio/Makefile
-
-announce SND_MIA - "(Echoaudio) Mia"
-clean_blob sound/pci/echoaudio/mia.c
-clean_kconfig sound/pci/Kconfig 'SND_MIA'
-clean_mk CONFIG_SND_MIA sound/pci/echoaudio/Makefile
-
-announce SND_MONA - "(Echoaudio) Mona"
-clean_blob sound/pci/echoaudio/mona.c
-clean_kconfig sound/pci/Kconfig 'SND_MONA'
-clean_mk CONFIG_SND_MONA sound/pci/echoaudio/Makefile
-
-announce SND_'<(Echoaudio)>' - "(Echoaudio) all of the above "
-reject_firmware sound/pci/echoaudio/echoaudio.c
-clean_blob sound/pci/echoaudio/echoaudio.c
-
-announce SND_EMU10K1 - "Emu10k1 (SB Live!, Audigy, E-mu APS)"
-reject_firmware sound/pci/emu10k1/emu10k1_main.c
-clean_blob sound/pci/emu10k1/emu10k1_main.c
-clean_kconfig sound/pci/Kconfig 'SND_EMU10K1'
-clean_mk CONFIG_SND_EMU10K1 sound/pci/emu10k1/Makefile
-
-announce SND_MIXART - "Digigram miXart"
-reject_firmware sound/pci/mixart/mixart_hwdep.c
-clean_blob sound/pci/mixart/mixart_hwdep.c
-clean_kconfig sound/pci/Kconfig 'SND_MIXART'
-clean_mk CONFIG_SND_MIXART sound/pci/mixart/Makefile
-
-announce SND_PCXHR - "Digigram PCXHR"
-reject_firmware sound/pci/pcxhr/pcxhr_hwdep.c
-clean_blob sound/pci/pcxhr/pcxhr_hwdep.c
-clean_kconfig sound/pci/Kconfig 'SND_PCXHR'
-clean_mk CONFIG_SND_PCXHR sound/pci/pcxhr/Makefile
-
-announce SND_RIPTIDE - "Conexant Riptide"
-reject_firmware sound/pci/riptide/riptide.c
-clean_blob sound/pci/riptide/riptide.c
-clean_kconfig sound/pci/Kconfig 'SND_RIPTIDE'
-clean_mk CONFIG_SND_RIPTIDE sound/pci/riptide/Makefile
-
-# This is ok, patch filenames are supplied as module parameters, and
-# they are text files with patch instructions.
-#announce SND_HDA_PATCH_LOADER - "Support initialization patch loading for HD-audio"
-#reject_firmware sound/pci/hda/hda_hwdep.c
-#clean_kconfig sound/pci/hda/Kconfig 'SND_HDA_PATCH_LOADER'
-
-announce SND_HDSP - "RME Hammerfall DSP Audio"
-reject_firmware sound/pci/rme9652/hdsp.c
-clean_blob sound/pci/rme9652/hdsp.c
-clean_kconfig sound/pci/Kconfig 'SND_HDSP'
-clean_mk CONFIG_SND_HDSP sound/pci/rme9652/Makefile
-
-announce SND_AICA - "Dreamcast Yamaha AICA sound"
-reject_firmware sound/sh/aica.c
-clean_blob sound/sh/aica.c
-clean_kconfig sound/sh/Kconfig 'SND_AICA'
-clean_mk CONFIG_SND_AICA sound/sh/Makefile
-
-announce SND_MSND_PINNACLE - "Support for Turtle Beach MultiSound Pinnacle"
-clean_blob sound/isa/msnd/msnd_pinnacle.h
-reject_firmware sound/isa/msnd/msnd_pinnacle.c
-clean_blob sound/isa/msnd/msnd_pinnacle.c
-clean_kconfig sound/isa/Kconfig 'SND_MSND_PINNACLE'
-clean_mk CONFIG_SND_MSND_PINNACLE sound/isa/msnd/Makefile
-
-announce SND_MSND_CLASSIC - "Support for Turtle Beach MultiSound Classic, Tahiti, Monterey"
-clean_blob sound/isa/msnd/msnd_classic.h
-clean_kconfig sound/isa/Kconfig 'SND_MSND_CLASSIC'
-clean_mk CONFIG_SND_MSND_CLASSIC sound/isa/msnd/Makefile
-
-announce SOUND_MSNDCLAS - "Support for Turtle Beach MultiSound Classic, Tahiti, Monterey (oss)"
-clean_blob sound/oss/msnd_classic.h
-clean_kconfig sound/oss/Kconfig 'SOUND_MSNDCLAS'
-clean_sed '
-/^config MSNDCLAS_INIT_FILE$/, /^config / {
- /^ default.*msndinit\.bin/ s,".*","/*(DEBLOBBED)*/",;
-}
-/^config MSNDCLAS_PERM_FILE$/, /^config / {
- /^ default.*msndperm\.bin/ s,".*","/*(DEBLOBBED)*/",;
-}' sound/oss/Kconfig 'removed default firmware'
-clean_mk CONFIG_SOUND_MSNDCLAS sound/oss/Makefile
-
-announce SOUND_MSNDPIN - "Support for Turtle Beach MultiSound Pinnacle (oss)"
-clean_blob sound/oss/msnd_pinnacle.h
-clean_kconfig sound/oss/Kconfig 'SOUND_MSNDPIN'
-clean_sed '
-/^config MSNDPIN_INIT_FILE$/, /^config / {
- /^ default.*pndspini\.bin/ s,".*","/*(DEBLOBBED)*/",;
-}
-/^config MSNDPIN_PERM_FILE$/, /^config / {
- /^ default.*pndsperm\.bin/ s,".*","/*(DEBLOBBED)*/",;
-}' sound/oss/Kconfig 'removed default firmware'
-clean_mk CONFIG_SOUND_MSNDPIN sound/oss/Makefile
-
-announce SND_SSCAPE - "Ensoniq SoundScape driver"
-reject_firmware sound/isa/sscape.c
-clean_blob sound/isa/sscape.c
-clean_sed '
-/^config SND_SSCAPE$/, /^config / {
- s,"\(scope\|sndscape\)\.co[d?]","/*(DEBLOBBED)*/",g;
-}' sound/isa/Kconfig 'removed firmware names'
-clean_kconfig sound/isa/Kconfig 'SND_SSCAPE'
-clean_mk CONFIG_SND_SSCAPE sound/isa/Makefile
-
-# It's not clear that wm2000_anc.bin is pure data.
-# Check with developer, clean up for now.
-announce SND_SOC_WM2000 - "WM2000 ALSA Soc Audio driver"
-reject_firmware sound/soc/codecs/wm2000.c
-clean_blob sound/soc/codecs/wm2000.c
-clean_kconfig sound/soc/codecs/Kconfig 'SND_SOC_WM2000'
-clean_mk CONFIG_SND_SOC_WM2000 sound/soc/codecs/Makefile
-
-announce SND_SOC_SH4_SIU - "ALSA SoC driver for Renesas SH7343, SH7722 SIU peripheral"
-reject_firmware sound/soc/sh/siu_dai.c
-clean_blob sound/soc/sh/siu_dai.c
-clean_kconfig sound/soc/sh/Kconfig 'SND_SOC_SH4_SIU'
-clean_mk CONFIG_SND_SOC_SH4_SIU sound/soc/sh/Makefile
-
-announce SOUND_TRIX - "MediaTrix AudioTrix Pro support"
-clean_blob sound/oss/trix.c
-clean_kconfig sound/oss/Kconfig 'SOUND_TRIX'
-clean_sed '
-/^config TRIX_BOOT_FILE$/, /^config / {
- /^ default.*trxpro\.hex/ s,".*","/*(DEBLOBBED)*/",;
-}' sound/oss/Kconfig 'removed default firmware'
-clean_mk CONFIG_SOUND_TRIX sound/oss/Makefile
-
-announce SOUND_TRIX - "See above,"
-announce SOUND_PAS - "ProAudioSpectrum 16 support,"
-announce SOUND_SB - "100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support"
-clean_blob sound/oss/sb_common.c
-clean_kconfig sound/oss/Kconfig 'SOUND_PAS'
-clean_kconfig sound/oss/Kconfig 'SOUND_SB'
-clean_mk CONFIG_SOUND_PAS sound/oss/Makefile
-clean_mk CONFIG_SOUND_SB sound/oss/Makefile
-
-announce SOUND_PSS - "PSS (AD1848, ADSP-2115, ESC614) support"
-clean_sed 's,^\( [*] .*synth"\)\.$,\1/*.,' sound/oss/pss.c 'avoid nested comments'
-clean_blob sound/oss/pss.c
-clean_kconfig sound/oss/Kconfig 'SOUND_PSS'
-clean_sed '
-/^config PSS_BOOT_FILE$/, /^config / {
- /^ default.*dsp001\.ld/ s,".*","/*(DEBLOBBED)*/",;
-}' sound/oss/Kconfig 'removed default firmware'
-clean_mk CONFIG_SOUND_PSS sound/oss/Makefile
-
-#################
-# Documentation #
-#################
-
-announce Documentation - "non-Free firmware scripts and documentation"
-clean_blob Documentation/dvb/avermedia.txt
-clean_blob Documentation/dvb/opera-firmware.txt
-clean_blob Documentation/dvb/ttusb-dec.txt
-clean_blob Documentation/sound/alsa/ALSA-Configuration.txt
-clean_blob Documentation/sound/oss/MultiSound
-clean_blob Documentation/sound/oss/PSS
-clean_blob Documentation/sound/oss/PSS-updates
-clean_blob Documentation/sound/oss/README.OSS
-clean_file Documentation/dvb/get_dvb_firmware
-clean_file Documentation/video4linux/extract_xc3028.pl
-clean_sed s,usb8388,whatever,g drivers/base/Kconfig 'removed blob name'
-clean_blob firmware/README.AddingFirmware
-clean_blob firmware/WHENCE
-
-if $errors; then
- echo errors above were ignored because of --force >&2
-fi
-
-exit 0
diff --git a/freed-ora/current/master/deblob-2.6.38 b/freed-ora/current/master/deblob-2.6.38
index 807076ee8..9132ddc8c 100755
--- a/freed-ora/current/master/deblob-2.6.38
+++ b/freed-ora/current/master/deblob-2.6.38
@@ -44,7 +44,7 @@
# For each kver release, start extra with an empty string, then count
# from 1 if changes are needed that require rebuilding the tarball.
-kver=2.6.38 extra=0-
+kver=2.6.38 extra=
case $1 in
--force)
diff --git a/freed-ora/current/master/deblob-check b/freed-ora/current/master/deblob-check
index ec4fdf5a8..0d44ffa2e 100755
--- a/freed-ora/current/master/deblob-check
+++ b/freed-ora/current/master/deblob-check
@@ -1,6 +1,6 @@
#! /bin/sh
-# deblob-check version 2011-02-24.2
+# deblob-check version 2011-03-15
# Inspired in gNewSense's find-firmware script.
# Written by Alexandre Oliva <lxoliva@fsfla.org>
@@ -1907,7 +1907,7 @@ set_except () {
initnc '[ ]static[ ]unsigned[ ]char[ ]static_pad\[\][ ]='
initnc '[ ]static[ ]unsigned[ ]char[ ]table_alaw2ulaw\[\][ ]='
initnc '[ ]static[ ]unsigned[ ]char[ ]table_ulaw2alaw\[\][ ]='
- defsnc '[ ]u32[ ]reg_boundaries\[\][ ]=' drivers/net/bnx2.c
+ defsnc '[ ]\(static[ ]const[ ]\)\?u32[ ]reg_boundaries\[\][ ]=' drivers/net/bnx2.c
initnc '[ ]u8[ ]b\[\][ ]='
initnc '[ ]uint8_t[ ]tx\[\][ ]='
initnc '[ ]unsigned[ ]char[ ]saa7111_regs\[\][ ]='
@@ -2833,7 +2833,7 @@ set_except () {
defsnc 'static[ ]u8[ ]\(init\|c\)_table\[\]=' drivers/media/dvb/frontends/s921_core.c
defsnc 'static[ ]\(u16\|struct[ ]i2c_reg_u16\)[ ]\(bridge\|mt9\(v\(11[12]\|011\)\|m001\)\)_init\[\]\(\[2\]\)\?[ ]=' drivers/media/video/gspca/sn9c20x.c
defsnc '[ ]static[ ]const[ ]struct[ ]struct_initData[ ]initData\[\][ ]=' drivers/media/video/usbvideo/ibmcam.c
- defsnc '[ ]u32[ ]reg_boundaries\[\][ ]=' drivers/net/bnx2.c
+ defsnc '[ ]\(static[ ]const[ ]\)\?u32[ ]reg_boundaries\[\][ ]=' drivers/net/bnx2.c
initnc 'static[ ]const[ ]struct[ ]ath5k_ini_mode[ ]rf\(5413\|24\(13\|25\)\)_ini_mode_end\[\][ ]=' drivers/net/wireless/ath5k/initvals.c
defsnc 'static[ ]u32[ ]\(h_prescale\|v_gain\)\[64\][ ]=' drivers/staging/stradis/stradis.c
;;
diff --git a/freed-ora/current/master/drm-i915-gen4-has-non-power-of-two-strides.patch b/freed-ora/current/master/drm-i915-gen4-has-non-power-of-two-strides.patch
new file mode 100644
index 000000000..f111614bc
--- /dev/null
+++ b/freed-ora/current/master/drm-i915-gen4-has-non-power-of-two-strides.patch
@@ -0,0 +1,69 @@
+From bea96046b4245e9abd65ed7acfed9adfd5f6c639 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu, 3 Mar 2011 23:43:02 +0000
+Subject: [PATCH] drm/i915: Gen4+ has non-power-of-two strides
+
+In c2e0eb16707, we started checking that the buffer was the correct size
+for tiled access by ensuring that the size was a multiple of tiles.
+However, gen4+ complicates the issue by allowing any multiple of 4096
+bytes for the stride and so the simple check based on a power-of-two
+stride was failing for valid bo.
+
+Reported-by: Dan Williams <dcbw@redhat.com>
+Reported-by: Robert Hooker <sarvatt@gmail.com>
+Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+---
+ drivers/gpu/drm/i915/i915_gem_tiling.c | 29 ++++++++++++++---------------
+ 1 files changed, 14 insertions(+), 15 deletions(-)
+
+diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
+index 79a04fd..654f350 100644
+--- a/drivers/gpu/drm/i915/i915_gem_tiling.c
++++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
+@@ -215,6 +215,19 @@ i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode)
+ }
+ }
+
++ if (INTEL_INFO(dev)->gen >= 4) {
++ /* 965+ just needs multiples of tile width */
++ if (stride & (tile_width - 1))
++ return false;
++ } else {
++ /* Pre-965 needs power of two tile widths */
++ if (stride < tile_width)
++ return false;
++
++ if (stride & (stride - 1))
++ return false;
++ }
++
+ if (IS_GEN2(dev) ||
+ (tiling_mode == I915_TILING_Y && HAS_128_BYTE_Y_TILING(dev)))
+ tile_height = 32;
+@@ -226,21 +239,7 @@ i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode)
+ tile_height *= 2;
+
+ /* Size needs to be aligned to a full tile row */
+- if (size & (tile_height * stride - 1))
+- return false;
+-
+- /* 965+ just needs multiples of tile width */
+- if (INTEL_INFO(dev)->gen >= 4) {
+- if (stride & (tile_width - 1))
+- return false;
+- return true;
+- }
+-
+- /* Pre-965 needs power of two tile widths */
+- if (stride < tile_width)
+- return false;
+-
+- if (stride & (stride - 1))
++ if (size % (tile_height * stride))
+ return false;
+
+ return true;
+--
+1.7.4.1
+
diff --git a/freed-ora/current/master/drm-nouveau-updates.patch b/freed-ora/current/master/drm-nouveau-updates.patch
index d012a1c34..3bd652fa6 100644
--- a/freed-ora/current/master/drm-nouveau-updates.patch
+++ b/freed-ora/current/master/drm-nouveau-updates.patch
@@ -1,24 +1,30 @@
drivers/gpu/drm/nouveau/nouveau_bios.c | 25 +--
drivers/gpu/drm/nouveau/nouveau_bo.c | 6 +-
drivers/gpu/drm/nouveau/nouveau_channel.c | 2 +-
+ drivers/gpu/drm/nouveau/nouveau_display.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_dp.c | 2 -
- drivers/gpu/drm/nouveau/nouveau_drv.h | 13 +-
+ drivers/gpu/drm/nouveau/nouveau_drv.h | 15 +-
drivers/gpu/drm/nouveau/nouveau_fence.c | 190 ++++++++++------
- drivers/gpu/drm/nouveau/nouveau_mem.c | 16 +-
+ drivers/gpu/drm/nouveau/nouveau_mem.c | 50 +++-
drivers/gpu/drm/nouveau/nouveau_object.c | 22 ++-
- drivers/gpu/drm/nouveau/nouveau_sgdma.c | 342 +++++++++++++++++++++++++----
+ drivers/gpu/drm/nouveau/nouveau_sgdma.c | 341 +++++++++++++++++++++++++----
drivers/gpu/drm/nouveau/nouveau_state.c | 10 +-
drivers/gpu/drm/nouveau/nouveau_temp.c | 4 +-
- drivers/gpu/drm/nouveau/nv04_fifo.c | 17 ++-
+ drivers/gpu/drm/nouveau/nouveau_util.c | 23 ++-
+ drivers/gpu/drm/nouveau/nouveau_util.h | 4 +
+ drivers/gpu/drm/nouveau/nouveau_vm.c | 13 +-
+ drivers/gpu/drm/nouveau/nv04_fifo.c | 19 ++-
drivers/gpu/drm/nouveau/nv40_fb.c | 59 +++++-
drivers/gpu/drm/nouveau/nv50_display.c | 7 +-
+ drivers/gpu/drm/nouveau/nv50_fb.c | 150 ++++++++++++-
drivers/gpu/drm/nouveau/nv50_fifo.c | 3 +-
drivers/gpu/drm/nouveau/nv50_gpio.c | 13 +-
- drivers/gpu/drm/nouveau/nv50_graph.c | 8 +-
+ drivers/gpu/drm/nouveau/nv50_graph.c | 142 +++++++-----
drivers/gpu/drm/nouveau/nv50_vm.c | 1 -
+ drivers/gpu/drm/nouveau/nv84_crypt.c | 2 +-
drivers/gpu/drm/nouveau/nvc0_fifo.c | 15 +-
drivers/gpu/drm/nouveau/nvc0_graph.c | 2 -
- 20 files changed, 567 insertions(+), 190 deletions(-)
+ 26 files changed, 841 insertions(+), 281 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
index 6bdab89..b8ff1e7 100644
@@ -64,10 +70,10 @@ index 6bdab89..b8ff1e7 100644
if (cte->type == 0xff)
continue;
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
-index d38a4d9..bf260af 100644
+index a521840..53a8000 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
-@@ -382,7 +382,8 @@ nouveau_bo_create_ttm_backend_entry(struct ttm_bo_device *bdev)
+@@ -385,7 +385,8 @@ nouveau_bo_create_ttm_backend_entry(struct ttm_bo_device *bdev)
case NOUVEAU_GART_AGP:
return ttm_agp_backend_init(bdev, dev->agp->bridge);
#endif
@@ -77,7 +83,7 @@ index d38a4d9..bf260af 100644
return nouveau_sgdma_init_ttm(dev);
default:
NV_ERROR(dev, "Unknown GART type %d\n",
-@@ -436,7 +437,8 @@ nouveau_bo_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
+@@ -439,7 +440,8 @@ nouveau_bo_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
TTM_PL_FLAG_WC;
man->default_caching = TTM_PL_FLAG_WC;
break;
@@ -100,6 +106,19 @@ index 3960d66..3d7b316 100644
if (dev_priv->card_type >= NV_50) {
if (dev_priv->card_type < NV_C0) {
+diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
+index 505c6bf..566466b 100644
+--- a/drivers/gpu/drm/nouveau/nouveau_display.c
++++ b/drivers/gpu/drm/nouveau/nouveau_display.c
+@@ -244,7 +244,7 @@ nouveau_crtc_page_flip(struct drm_crtc *crtc, struct drm_framebuffer *fb,
+
+ /* Initialize a page flip struct */
+ *s = (struct nouveau_page_flip_state)
+- { { }, s->event, nouveau_crtc(crtc)->index,
++ { { }, event, nouveau_crtc(crtc)->index,
+ fb->bits_per_pixel, fb->pitch, crtc->x, crtc->y,
+ new_bo->bo.offset };
+
diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c
index 38d5995..7beb82a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_dp.c
@@ -121,7 +140,7 @@ index 38d5995..7beb82a 100644
ret = auxch_rd(encoder, DP_ADJUST_REQUEST_LANE0_1, request, 2);
if (ret)
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h
-index 9821fca..2e3d7fb 100644
+index 982d70b..2cae8e7 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drv.h
+++ b/drivers/gpu/drm/nouveau/nouveau_drv.h
@@ -652,7 +652,6 @@ struct drm_nouveau_private {
@@ -156,6 +175,15 @@ index 9821fca..2e3d7fb 100644
struct nouveau_gpuobj *sg_ctxdma;
struct nouveau_vma vma;
} gart_info;
+@@ -1076,7 +1083,7 @@ extern void nv40_fb_set_tile_region(struct drm_device *dev, int i);
+ /* nv50_fb.c */
+ extern int nv50_fb_init(struct drm_device *);
+ extern void nv50_fb_takedown(struct drm_device *);
+-extern void nv50_fb_vm_trap(struct drm_device *, int display, const char *);
++extern void nv50_fb_vm_trap(struct drm_device *, int display);
+
+ /* nvc0_fb.c */
+ extern int nvc0_fb_init(struct drm_device *);
diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c
index 221b846..8b46392 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fence.c
@@ -476,7 +504,7 @@ index 221b846..8b46392 100644
if (ret)
return ret;
diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.c b/drivers/gpu/drm/nouveau/nouveau_mem.c
-index 26347b7..30bd230 100644
+index b0fb9bd..5b769eb 100644
--- a/drivers/gpu/drm/nouveau/nouveau_mem.c
+++ b/drivers/gpu/drm/nouveau/nouveau_mem.c
@@ -393,11 +393,17 @@ nouveau_mem_vram_init(struct drm_device *dev)
@@ -502,6 +530,47 @@ index 26347b7..30bd230 100644
ret = pci_set_dma_mask(dev->pdev, DMA_BIT_MASK(dma_bits));
if (ret)
+@@ -419,14 +425,32 @@ nouveau_mem_vram_init(struct drm_device *dev)
+ }
+
+ /* reserve space at end of VRAM for PRAMIN */
+- if (dev_priv->chipset == 0x40 || dev_priv->chipset == 0x47 ||
+- dev_priv->chipset == 0x49 || dev_priv->chipset == 0x4b)
+- dev_priv->ramin_rsvd_vram = (2 * 1024 * 1024);
+- else
+- if (dev_priv->card_type >= NV_40)
+- dev_priv->ramin_rsvd_vram = (1 * 1024 * 1024);
+- else
+- dev_priv->ramin_rsvd_vram = (512 * 1024);
++ if (dev_priv->card_type >= NV_50) {
++ dev_priv->ramin_rsvd_vram = 1 * 1024 * 1024;
++ } else
++ if (dev_priv->card_type >= NV_40) {
++ u32 vs = hweight8((nv_rd32(dev, 0x001540) & 0x0000ff00) >> 8);
++ u32 rsvd;
++
++ /* estimate grctx size, the magics come from nv40_grctx.c */
++ if (dev_priv->chipset == 0x40) rsvd = 0x6aa0 * vs;
++ else if (dev_priv->chipset < 0x43) rsvd = 0x4f00 * vs;
++ else if (nv44_graph_class(dev)) rsvd = 0x4980 * vs;
++ else rsvd = 0x4a40 * vs;
++ rsvd += 16 * 1024;
++ rsvd *= dev_priv->engine.fifo.channels;
++
++ /* pciegart table */
++ if (drm_device_is_pcie(dev))
++ rsvd += 512 * 1024;
++
++ /* object storage */
++ rsvd += 512 * 1024;
++
++ dev_priv->ramin_rsvd_vram = round_up(rsvd, 4096);
++ } else {
++ dev_priv->ramin_rsvd_vram = 512 * 1024;
++ }
+
+ ret = dev_priv->engine.vram.init(dev);
+ if (ret)
diff --git a/drivers/gpu/drm/nouveau/nouveau_object.c b/drivers/gpu/drm/nouveau/nouveau_object.c
index 30b6544..3c12461 100644
--- a/drivers/gpu/drm/nouveau/nouveau_object.c
@@ -538,7 +607,7 @@ index 30b6544..3c12461 100644
}
diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
-index 9a250eb..bdbaa54 100644
+index 9a250eb..a26383b 100644
--- a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
+++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c
@@ -74,8 +74,24 @@ nouveau_sgdma_clear(struct ttm_backend *be)
@@ -833,7 +902,7 @@ index 9a250eb..bdbaa54 100644
return &nvbe->backend;
}
-@@ -210,21 +414,71 @@ nouveau_sgdma_init(struct drm_device *dev)
+@@ -210,21 +414,70 @@ nouveau_sgdma_init(struct drm_device *dev)
{
struct drm_nouveau_private *dev_priv = dev->dev_private;
struct nouveau_gpuobj *gpuobj = NULL;
@@ -842,8 +911,7 @@ index 9a250eb..bdbaa54 100644
+ u32 aper_size, align;
+ int ret;
+
-+ if (dev_priv->card_type >= NV_50 ||
-+ dev_priv->ramin_rsvd_vram >= 2 * 1024 * 1024)
++ if (dev_priv->card_type >= NV_50 || drm_device_is_pcie(dev))
+ aper_size = 512 * 1024 * 1024;
+ else
+ aper_size = 64 * 1024 * 1024;
@@ -883,7 +951,7 @@ index 9a250eb..bdbaa54 100644
+ dev_priv->gart_info.type = NOUVEAU_GART_HW;
+ dev_priv->gart_info.func = &nv50_sgdma_backend;
+ } else
-+ if (drm_device_is_pcie(dev) &&
++ if (0 && drm_device_is_pcie(dev) &&
+ dev_priv->chipset != 0x40 && dev_priv->chipset != 0x45) {
+ if (nv44_graph_class(dev)) {
+ dev_priv->gart_info.func = &nv44_sgdma_backend;
@@ -917,7 +985,7 @@ index 9a250eb..bdbaa54 100644
if (ret) {
NV_ERROR(dev, "Error creating sgdma object: %d\n", ret);
return ret;
-@@ -236,25 +490,14 @@ nouveau_sgdma_init(struct drm_device *dev)
+@@ -236,25 +489,14 @@ nouveau_sgdma_init(struct drm_device *dev)
(0 << 14) /* RW */ |
(2 << 16) /* PCI */);
nv_wo32(gpuobj, 4, aper_size - 1);
@@ -945,7 +1013,7 @@ index 9a250eb..bdbaa54 100644
return 0;
}
-@@ -265,6 +508,13 @@ nouveau_sgdma_takedown(struct drm_device *dev)
+@@ -265,6 +507,13 @@ nouveau_sgdma_takedown(struct drm_device *dev)
nouveau_gpuobj_ref(NULL, &dev_priv->gart_info.sg_ctxdma);
nouveau_vm_put(&dev_priv->gart_info.vma);
@@ -1011,8 +1079,90 @@ index 8d9968e..649b041 100644
client = i2c_new_device(&i2c->adapter, info);
if (!client)
+diff --git a/drivers/gpu/drm/nouveau/nouveau_util.c b/drivers/gpu/drm/nouveau/nouveau_util.c
+index fbe0fb1..e51b515 100644
+--- a/drivers/gpu/drm/nouveau/nouveau_util.c
++++ b/drivers/gpu/drm/nouveau/nouveau_util.c
+@@ -47,18 +47,27 @@ nouveau_bitfield_print(const struct nouveau_bitfield *bf, u32 value)
+ printk(" (unknown bits 0x%08x)", value);
+ }
+
+-void
+-nouveau_enum_print(const struct nouveau_enum *en, u32 value)
++const struct nouveau_enum *
++nouveau_enum_find(const struct nouveau_enum *en, u32 value)
+ {
+ while (en->name) {
+- if (value == en->value) {
+- printk("%s", en->name);
+- return;
+- }
+-
++ if (en->value == value)
++ return en;
+ en++;
+ }
+
++ return NULL;
++}
++
++void
++nouveau_enum_print(const struct nouveau_enum *en, u32 value)
++{
++ en = nouveau_enum_find(en, value);
++ if (en) {
++ printk("%s", en->name);
++ return;
++ }
++
+ printk("(unknown enum 0x%08x)", value);
+ }
+
+diff --git a/drivers/gpu/drm/nouveau/nouveau_util.h b/drivers/gpu/drm/nouveau/nouveau_util.h
+index d9ceaea..b97719f 100644
+--- a/drivers/gpu/drm/nouveau/nouveau_util.h
++++ b/drivers/gpu/drm/nouveau/nouveau_util.h
+@@ -36,10 +36,14 @@ struct nouveau_bitfield {
+ struct nouveau_enum {
+ u32 value;
+ const char *name;
++ void *data;
+ };
+
+ void nouveau_bitfield_print(const struct nouveau_bitfield *, u32 value);
+ void nouveau_enum_print(const struct nouveau_enum *, u32 value);
++const struct nouveau_enum *
++nouveau_enum_find(const struct nouveau_enum *, u32 value);
++
+ int nouveau_ratelimit(void);
+
+ #endif
+diff --git a/drivers/gpu/drm/nouveau/nouveau_vm.c b/drivers/gpu/drm/nouveau/nouveau_vm.c
+index 97d82ae..b4658f7 100644
+--- a/drivers/gpu/drm/nouveau/nouveau_vm.c
++++ b/drivers/gpu/drm/nouveau/nouveau_vm.c
+@@ -311,18 +311,7 @@ nouveau_vm_new(struct drm_device *dev, u64 offset, u64 length, u64 mm_offset,
+ vm->spg_shift = 12;
+ vm->lpg_shift = 17;
+ pgt_bits = 27;
+-
+- /* Should be 4096 everywhere, this is a hack that's
+- * currently necessary to avoid an elusive bug that
+- * causes corruption when mixing small/large pages
+- */
+- if (length < (1ULL << 40))
+- block = 4096;
+- else {
+- block = (1 << pgt_bits);
+- if (length < block)
+- block = length;
+- }
++ block = 4096;
+ } else {
+ kfree(vm);
+ return -ENOSYS;
diff --git a/drivers/gpu/drm/nouveau/nv04_fifo.c b/drivers/gpu/drm/nouveau/nv04_fifo.c
-index f89d104..dfa600c 100644
+index f89d104..db465a3 100644
--- a/drivers/gpu/drm/nouveau/nv04_fifo.c
+++ b/drivers/gpu/drm/nouveau/nv04_fifo.c
@@ -379,6 +379,15 @@ out:
@@ -1055,6 +1205,15 @@ index f89d104..dfa600c 100644
if (dma_get != dma_put)
nv_wr32(dev, 0x003244, dma_put);
+@@ -505,7 +516,7 @@ nv04_fifo_isr(struct drm_device *dev)
+
+ if (dev_priv->card_type == NV_50) {
+ if (status & 0x00000010) {
+- nv50_fb_vm_trap(dev, 1, "PFIFO_BAR_FAULT");
++ nv50_fb_vm_trap(dev, nouveau_ratelimit());
+ status &= ~0x00000010;
+ nv_wr32(dev, 0x002100, 0x00000010);
+ }
diff --git a/drivers/gpu/drm/nouveau/nv40_fb.c b/drivers/gpu/drm/nouveau/nv40_fb.c
index f3d9c05..f0ac2a7 100644
--- a/drivers/gpu/drm/nouveau/nv40_fb.c
@@ -1170,6 +1329,185 @@ index 7cc94ed..a804a35 100644
delayed |= clock;
intr1 &= ~clock;
}
+diff --git a/drivers/gpu/drm/nouveau/nv50_fb.c b/drivers/gpu/drm/nouveau/nv50_fb.c
+index 50290de..efc8cd4 100644
+--- a/drivers/gpu/drm/nouveau/nv50_fb.c
++++ b/drivers/gpu/drm/nouveau/nv50_fb.c
+@@ -95,12 +95,109 @@ nv50_fb_takedown(struct drm_device *dev)
+ kfree(priv);
+ }
+
++static struct nouveau_enum vm_dispatch_subclients[] = {
++ { 0x00000000, "GRCTX", NULL },
++ { 0x00000001, "NOTIFY", NULL },
++ { 0x00000002, "QUERY", NULL },
++ { 0x00000003, "COND", NULL },
++ { 0x00000004, "M2M_IN", NULL },
++ { 0x00000005, "M2M_OUT", NULL },
++ { 0x00000006, "M2M_NOTIFY", NULL },
++ {}
++};
++
++static struct nouveau_enum vm_ccache_subclients[] = {
++ { 0x00000000, "CB", NULL },
++ { 0x00000001, "TIC", NULL },
++ { 0x00000002, "TSC", NULL },
++ {}
++};
++
++static struct nouveau_enum vm_prop_subclients[] = {
++ { 0x00000000, "RT0", NULL },
++ { 0x00000001, "RT1", NULL },
++ { 0x00000002, "RT2", NULL },
++ { 0x00000003, "RT3", NULL },
++ { 0x00000004, "RT4", NULL },
++ { 0x00000005, "RT5", NULL },
++ { 0x00000006, "RT6", NULL },
++ { 0x00000007, "RT7", NULL },
++ { 0x00000008, "ZETA", NULL },
++ { 0x00000009, "LOCAL", NULL },
++ { 0x0000000a, "GLOBAL", NULL },
++ { 0x0000000b, "STACK", NULL },
++ { 0x0000000c, "DST2D", NULL },
++ {}
++};
++
++static struct nouveau_enum vm_pfifo_subclients[] = {
++ { 0x00000000, "PUSHBUF", NULL },
++ { 0x00000001, "SEMAPHORE", NULL },
++ {}
++};
++
++static struct nouveau_enum vm_bar_subclients[] = {
++ { 0x00000000, "FB", NULL },
++ { 0x00000001, "IN", NULL },
++ {}
++};
++
++static struct nouveau_enum vm_client[] = {
++ { 0x00000000, "STRMOUT", NULL },
++ { 0x00000003, "DISPATCH", vm_dispatch_subclients },
++ { 0x00000004, "PFIFO_WRITE", NULL },
++ { 0x00000005, "CCACHE", vm_ccache_subclients },
++ { 0x00000006, "PPPP", NULL },
++ { 0x00000007, "CLIPID", NULL },
++ { 0x00000008, "PFIFO_READ", NULL },
++ { 0x00000009, "VFETCH", NULL },
++ { 0x0000000a, "TEXTURE", NULL },
++ { 0x0000000b, "PROP", vm_prop_subclients },
++ { 0x0000000c, "PVP", NULL },
++ { 0x0000000d, "PBSP", NULL },
++ { 0x0000000e, "PCRYPT", NULL },
++ { 0x0000000f, "PCOUNTER", NULL },
++ { 0x00000011, "PDAEMON", NULL },
++ {}
++};
++
++static struct nouveau_enum vm_engine[] = {
++ { 0x00000000, "PGRAPH", NULL },
++ { 0x00000001, "PVP", NULL },
++ { 0x00000004, "PEEPHOLE", NULL },
++ { 0x00000005, "PFIFO", vm_pfifo_subclients },
++ { 0x00000006, "BAR", vm_bar_subclients },
++ { 0x00000008, "PPPP", NULL },
++ { 0x00000009, "PBSP", NULL },
++ { 0x0000000a, "PCRYPT", NULL },
++ { 0x0000000b, "PCOUNTER", NULL },
++ { 0x0000000c, "SEMAPHORE_BG", NULL },
++ { 0x0000000d, "PCOPY", NULL },
++ { 0x0000000e, "PDAEMON", NULL },
++ {}
++};
++
++static struct nouveau_enum vm_fault[] = {
++ { 0x00000000, "PT_NOT_PRESENT", NULL },
++ { 0x00000001, "PT_TOO_SHORT", NULL },
++ { 0x00000002, "PAGE_NOT_PRESENT", NULL },
++ { 0x00000003, "PAGE_SYSTEM_ONLY", NULL },
++ { 0x00000004, "PAGE_READ_ONLY", NULL },
++ { 0x00000006, "NULL_DMAOBJ", NULL },
++ { 0x00000007, "WRONG_MEMTYPE", NULL },
++ { 0x0000000b, "VRAM_LIMIT", NULL },
++ { 0x0000000f, "DMAOBJ_LIMIT", NULL },
++ {}
++};
++
+ void
+-nv50_fb_vm_trap(struct drm_device *dev, int display, const char *name)
++nv50_fb_vm_trap(struct drm_device *dev, int display)
+ {
+ struct drm_nouveau_private *dev_priv = dev->dev_private;
++ const struct nouveau_enum *en, *cl;
+ unsigned long flags;
+ u32 trap[6], idx, chinst;
++ u8 st0, st1, st2, st3;
+ int i, ch;
+
+ idx = nv_rd32(dev, 0x100c90);
+@@ -117,8 +214,8 @@ nv50_fb_vm_trap(struct drm_device *dev, int display, const char *name)
+ if (!display)
+ return;
+
++ /* lookup channel id */
+ chinst = (trap[2] << 16) | trap[1];
+-
+ spin_lock_irqsave(&dev_priv->channels.lock, flags);
+ for (ch = 0; ch < dev_priv->engine.fifo.channels; ch++) {
+ struct nouveau_channel *chan = dev_priv->channels.ptr[ch];
+@@ -131,9 +228,48 @@ nv50_fb_vm_trap(struct drm_device *dev, int display, const char *name)
+ }
+ spin_unlock_irqrestore(&dev_priv->channels.lock, flags);
+
+- NV_INFO(dev, "%s - VM: Trapped %s at %02x%04x%04x status %08x "
+- "channel %d (0x%08x)\n",
+- name, (trap[5] & 0x100 ? "read" : "write"),
+- trap[5] & 0xff, trap[4] & 0xffff, trap[3] & 0xffff,
+- trap[0], ch, chinst);
++ /* decode status bits into something more useful */
++ if (dev_priv->chipset < 0xa3 ||
++ dev_priv->chipset == 0xaa || dev_priv->chipset == 0xac) {
++ st0 = (trap[0] & 0x0000000f) >> 0;
++ st1 = (trap[0] & 0x000000f0) >> 4;
++ st2 = (trap[0] & 0x00000f00) >> 8;
++ st3 = (trap[0] & 0x0000f000) >> 12;
++ } else {
++ st0 = (trap[0] & 0x000000ff) >> 0;
++ st1 = (trap[0] & 0x0000ff00) >> 8;
++ st2 = (trap[0] & 0x00ff0000) >> 16;
++ st3 = (trap[0] & 0xff000000) >> 24;
++ }
++
++ NV_INFO(dev, "VM: trapped %s at 0x%02x%04x%04x on ch %d [0x%08x] ",
++ (trap[5] & 0x00000100) ? "read" : "write",
++ trap[5] & 0xff, trap[4] & 0xffff, trap[3] & 0xffff, ch, chinst);
++
++ en = nouveau_enum_find(vm_engine, st0);
++ if (en)
++ printk("%s/", en->name);
++ else
++ printk("%02x/", st0);
++
++ cl = nouveau_enum_find(vm_client, st2);
++ if (cl)
++ printk("%s/", cl->name);
++ else
++ printk("%02x/", st2);
++
++ if (cl && cl->data) cl = nouveau_enum_find(cl->data, st3);
++ else if (en && en->data) cl = nouveau_enum_find(en->data, st3);
++ else cl = NULL;
++ if (cl)
++ printk("%s", cl->name);
++ else
++ printk("%02x", st3);
++
++ printk(" reason: ");
++ en = nouveau_enum_find(vm_fault, st1);
++ if (en)
++ printk("%s\n", en->name);
++ else
++ printk("0x%08x\n", st1);
+ }
diff --git a/drivers/gpu/drm/nouveau/nv50_fifo.c b/drivers/gpu/drm/nouveau/nv50_fifo.c
index 8dd04c5..c34a074 100644
--- a/drivers/gpu/drm/nouveau/nv50_fifo.c
@@ -1246,10 +1584,195 @@ index 6b149c0..d4f4206 100644
spin_unlock(&priv->lock);
}
diff --git a/drivers/gpu/drm/nouveau/nv50_graph.c b/drivers/gpu/drm/nouveau/nv50_graph.c
-index 37e21d2..c75cff1 100644
+index 37e21d2..a32b301 100644
--- a/drivers/gpu/drm/nouveau/nv50_graph.c
+++ b/drivers/gpu/drm/nouveau/nv50_graph.c
-@@ -912,10 +912,10 @@ nv50_pgraph_trap_handler(struct drm_device *dev, u32 display, u64 inst, u32 chid
+@@ -95,13 +95,41 @@ nv50_graph_init_regs__nv(struct drm_device *dev)
+ }
+
+ static void
+-nv50_graph_init_regs(struct drm_device *dev)
++nv50_graph_init_zcull(struct drm_device *dev)
+ {
++ struct drm_nouveau_private *dev_priv = dev->dev_private;
++ int i;
++
+ NV_DEBUG(dev, "\n");
+
+- nv_wr32(dev, NV04_PGRAPH_DEBUG_3,
+- (1 << 2) /* HW_CONTEXT_SWITCH_ENABLED */);
+- nv_wr32(dev, 0x402ca8, 0x800);
++ switch (dev_priv->chipset & 0xf0) {
++ case 0x50:
++ case 0x80:
++ case 0x90:
++ nv_wr32(dev, 0x402ca8, 0x00000800);
++ break;
++ case 0xa0:
++ default:
++ nv_wr32(dev, 0x402cc0, 0x00000000);
++ if (dev_priv->chipset == 0xa0 ||
++ dev_priv->chipset == 0xaa ||
++ dev_priv->chipset == 0xac) {
++ nv_wr32(dev, 0x402ca8, 0x00000802);
++ } else {
++ nv_wr32(dev, 0x402cc0, 0x00000000);
++ nv_wr32(dev, 0x402ca8, 0x00000002);
++ }
++
++ break;
++ }
++
++ /* zero out zcull regions */
++ for (i = 0; i < 8; i++) {
++ nv_wr32(dev, 0x402c20 + (i * 8), 0x00000000);
++ nv_wr32(dev, 0x402c24 + (i * 8), 0x00000000);
++ nv_wr32(dev, 0x402c28 + (i * 8), 0x00000000);
++ nv_wr32(dev, 0x402c2c + (i * 8), 0x00000000);
++ }
+ }
+
+ static int
+@@ -136,6 +164,7 @@ nv50_graph_init_ctxctl(struct drm_device *dev)
+ }
+ kfree(cp);
+
++ nv_wr32(dev, 0x40008c, 0x00000004); /* HW_CTX_SWITCH_ENABLED */
+ nv_wr32(dev, 0x400320, 4);
+ nv_wr32(dev, NV40_PGRAPH_CTXCTL_CUR, 0);
+ nv_wr32(dev, NV20_PGRAPH_CHANNEL_CTX_POINTER, 0);
+@@ -151,7 +180,7 @@ nv50_graph_init(struct drm_device *dev)
+
+ nv50_graph_init_reset(dev);
+ nv50_graph_init_regs__nv(dev);
+- nv50_graph_init_regs(dev);
++ nv50_graph_init_zcull(dev);
+
+ ret = nv50_graph_init_ctxctl(dev);
+ if (ret)
+@@ -526,11 +555,11 @@ nv86_graph_tlb_flush(struct drm_device *dev)
+
+ static struct nouveau_enum nv50_mp_exec_error_names[] =
+ {
+- { 3, "STACK_UNDERFLOW" },
+- { 4, "QUADON_ACTIVE" },
+- { 8, "TIMEOUT" },
+- { 0x10, "INVALID_OPCODE" },
+- { 0x40, "BREAKPOINT" },
++ { 3, "STACK_UNDERFLOW", NULL },
++ { 4, "QUADON_ACTIVE", NULL },
++ { 8, "TIMEOUT", NULL },
++ { 0x10, "INVALID_OPCODE", NULL },
++ { 0x40, "BREAKPOINT", NULL },
+ {}
+ };
+
+@@ -558,47 +587,47 @@ static struct nouveau_bitfield nv50_graph_trap_ccache[] = {
+
+ /* There must be a *lot* of these. Will take some time to gather them up. */
+ struct nouveau_enum nv50_data_error_names[] = {
+- { 0x00000003, "INVALID_QUERY_OR_TEXTURE" },
+- { 0x00000004, "INVALID_VALUE" },
+- { 0x00000005, "INVALID_ENUM" },
+- { 0x00000008, "INVALID_OBJECT" },
+- { 0x00000009, "READ_ONLY_OBJECT" },
+- { 0x0000000a, "SUPERVISOR_OBJECT" },
+- { 0x0000000b, "INVALID_ADDRESS_ALIGNMENT" },
+- { 0x0000000c, "INVALID_BITFIELD" },
+- { 0x0000000d, "BEGIN_END_ACTIVE" },
+- { 0x0000000e, "SEMANTIC_COLOR_BACK_OVER_LIMIT" },
+- { 0x0000000f, "VIEWPORT_ID_NEEDS_GP" },
+- { 0x00000010, "RT_DOUBLE_BIND" },
+- { 0x00000011, "RT_TYPES_MISMATCH" },
+- { 0x00000012, "RT_LINEAR_WITH_ZETA" },
+- { 0x00000015, "FP_TOO_FEW_REGS" },
+- { 0x00000016, "ZETA_FORMAT_CSAA_MISMATCH" },
+- { 0x00000017, "RT_LINEAR_WITH_MSAA" },
+- { 0x00000018, "FP_INTERPOLANT_START_OVER_LIMIT" },
+- { 0x00000019, "SEMANTIC_LAYER_OVER_LIMIT" },
+- { 0x0000001a, "RT_INVALID_ALIGNMENT" },
+- { 0x0000001b, "SAMPLER_OVER_LIMIT" },
+- { 0x0000001c, "TEXTURE_OVER_LIMIT" },
+- { 0x0000001e, "GP_TOO_MANY_OUTPUTS" },
+- { 0x0000001f, "RT_BPP128_WITH_MS8" },
+- { 0x00000021, "Z_OUT_OF_BOUNDS" },
+- { 0x00000023, "XY_OUT_OF_BOUNDS" },
+- { 0x00000027, "CP_MORE_PARAMS_THAN_SHARED" },
+- { 0x00000028, "CP_NO_REG_SPACE_STRIPED" },
+- { 0x00000029, "CP_NO_REG_SPACE_PACKED" },
+- { 0x0000002a, "CP_NOT_ENOUGH_WARPS" },
+- { 0x0000002b, "CP_BLOCK_SIZE_MISMATCH" },
+- { 0x0000002c, "CP_NOT_ENOUGH_LOCAL_WARPS" },
+- { 0x0000002d, "CP_NOT_ENOUGH_STACK_WARPS" },
+- { 0x0000002e, "CP_NO_BLOCKDIM_LATCH" },
+- { 0x00000031, "ENG2D_FORMAT_MISMATCH" },
+- { 0x0000003f, "PRIMITIVE_ID_NEEDS_GP" },
+- { 0x00000044, "SEMANTIC_VIEWPORT_OVER_LIMIT" },
+- { 0x00000045, "SEMANTIC_COLOR_FRONT_OVER_LIMIT" },
+- { 0x00000046, "LAYER_ID_NEEDS_GP" },
+- { 0x00000047, "SEMANTIC_CLIP_OVER_LIMIT" },
+- { 0x00000048, "SEMANTIC_PTSZ_OVER_LIMIT" },
++ { 0x00000003, "INVALID_QUERY_OR_TEXTURE", NULL },
++ { 0x00000004, "INVALID_VALUE", NULL },
++ { 0x00000005, "INVALID_ENUM", NULL },
++ { 0x00000008, "INVALID_OBJECT", NULL },
++ { 0x00000009, "READ_ONLY_OBJECT", NULL },
++ { 0x0000000a, "SUPERVISOR_OBJECT", NULL },
++ { 0x0000000b, "INVALID_ADDRESS_ALIGNMENT", NULL },
++ { 0x0000000c, "INVALID_BITFIELD", NULL },
++ { 0x0000000d, "BEGIN_END_ACTIVE", NULL },
++ { 0x0000000e, "SEMANTIC_COLOR_BACK_OVER_LIMIT", NULL },
++ { 0x0000000f, "VIEWPORT_ID_NEEDS_GP", NULL },
++ { 0x00000010, "RT_DOUBLE_BIND", NULL },
++ { 0x00000011, "RT_TYPES_MISMATCH", NULL },
++ { 0x00000012, "RT_LINEAR_WITH_ZETA", NULL },
++ { 0x00000015, "FP_TOO_FEW_REGS", NULL },
++ { 0x00000016, "ZETA_FORMAT_CSAA_MISMATCH", NULL },
++ { 0x00000017, "RT_LINEAR_WITH_MSAA", NULL },
++ { 0x00000018, "FP_INTERPOLANT_START_OVER_LIMIT", NULL },
++ { 0x00000019, "SEMANTIC_LAYER_OVER_LIMIT", NULL },
++ { 0x0000001a, "RT_INVALID_ALIGNMENT", NULL },
++ { 0x0000001b, "SAMPLER_OVER_LIMIT", NULL },
++ { 0x0000001c, "TEXTURE_OVER_LIMIT", NULL },
++ { 0x0000001e, "GP_TOO_MANY_OUTPUTS", NULL },
++ { 0x0000001f, "RT_BPP128_WITH_MS8", NULL },
++ { 0x00000021, "Z_OUT_OF_BOUNDS", NULL },
++ { 0x00000023, "XY_OUT_OF_BOUNDS", NULL },
++ { 0x00000027, "CP_MORE_PARAMS_THAN_SHARED", NULL },
++ { 0x00000028, "CP_NO_REG_SPACE_STRIPED", NULL },
++ { 0x00000029, "CP_NO_REG_SPACE_PACKED", NULL },
++ { 0x0000002a, "CP_NOT_ENOUGH_WARPS", NULL },
++ { 0x0000002b, "CP_BLOCK_SIZE_MISMATCH", NULL },
++ { 0x0000002c, "CP_NOT_ENOUGH_LOCAL_WARPS", NULL },
++ { 0x0000002d, "CP_NOT_ENOUGH_STACK_WARPS", NULL },
++ { 0x0000002e, "CP_NO_BLOCKDIM_LATCH", NULL },
++ { 0x00000031, "ENG2D_FORMAT_MISMATCH", NULL },
++ { 0x0000003f, "PRIMITIVE_ID_NEEDS_GP", NULL },
++ { 0x00000044, "SEMANTIC_VIEWPORT_OVER_LIMIT", NULL },
++ { 0x00000045, "SEMANTIC_COLOR_FRONT_OVER_LIMIT", NULL },
++ { 0x00000046, "LAYER_ID_NEEDS_GP", NULL },
++ { 0x00000047, "SEMANTIC_CLIP_OVER_LIMIT", NULL },
++ { 0x00000048, "SEMANTIC_PTSZ_OVER_LIMIT", NULL },
+ {}
+ };
+
+@@ -678,7 +707,6 @@ nv50_pgraph_tp_trap(struct drm_device *dev, int type, uint32_t ustatus_old,
+ tps++;
+ switch (type) {
+ case 6: /* texture error... unknown for now */
+- nv50_fb_vm_trap(dev, display, name);
+ if (display) {
+ NV_ERROR(dev, "magic set %d:\n", i);
+ for (r = ustatus_addr + 4; r <= ustatus_addr + 0x10; r += 4)
+@@ -701,7 +729,6 @@ nv50_pgraph_tp_trap(struct drm_device *dev, int type, uint32_t ustatus_old,
+ uint32_t e1c = nv_rd32(dev, ustatus_addr + 0x14);
+ uint32_t e20 = nv_rd32(dev, ustatus_addr + 0x18);
+ uint32_t e24 = nv_rd32(dev, ustatus_addr + 0x1c);
+- nv50_fb_vm_trap(dev, display, name);
+ /* 2d engine destination */
+ if (ustatus & 0x00000010) {
+ if (display) {
+@@ -912,10 +939,10 @@ nv50_pgraph_trap_handler(struct drm_device *dev, u32 display, u64 inst, u32 chid
printk("\n");
NV_INFO(dev, "PGRAPH - TRAP_CCACHE %08x %08x %08x %08x"
" %08x %08x %08x\n",
@@ -1264,8 +1787,16 @@ index 37e21d2..c75cff1 100644
}
+@@ -1044,6 +1071,7 @@ nv50_graph_isr(struct drm_device *dev)
+ NV_INFO(dev, "PGRAPH - ch %d (0x%010llx) subc %d "
+ "class 0x%04x mthd 0x%04x data 0x%08x\n",
+ chid, inst, subc, class, mthd, data);
++ nv50_fb_vm_trap(dev, 1);
+ }
+ }
+
diff --git a/drivers/gpu/drm/nouveau/nv50_vm.c b/drivers/gpu/drm/nouveau/nv50_vm.c
-index 459ff08..03c1a63 100644
+index 6144156..1f47c75 100644
--- a/drivers/gpu/drm/nouveau/nv50_vm.c
+++ b/drivers/gpu/drm/nouveau/nv50_vm.c
@@ -31,7 +31,6 @@ void
@@ -1276,6 +1807,17 @@ index 459ff08..03c1a63 100644
u64 phys = 0xdeadcafe00000000ULL;
u32 coverage = 0;
+diff --git a/drivers/gpu/drm/nouveau/nv84_crypt.c b/drivers/gpu/drm/nouveau/nv84_crypt.c
+index ec18ae1..fabc7fd 100644
+--- a/drivers/gpu/drm/nouveau/nv84_crypt.c
++++ b/drivers/gpu/drm/nouveau/nv84_crypt.c
+@@ -136,5 +136,5 @@ nv84_crypt_isr(struct drm_device *dev)
+ nv_wr32(dev, 0x102130, stat);
+ nv_wr32(dev, 0x10200c, 0x10);
+
+- nv50_fb_vm_trap(dev, show, "PCRYPT");
++ nv50_fb_vm_trap(dev, show);
+ }
diff --git a/drivers/gpu/drm/nouveau/nvc0_fifo.c b/drivers/gpu/drm/nouveau/nvc0_fifo.c
index e6f92c5..e9f8643 100644
--- a/drivers/gpu/drm/nouveau/nvc0_fifo.c
diff --git a/freed-ora/current/master/kernel.spec b/freed-ora/current/master/kernel.spec
index 852e3b746..81465de70 100644
--- a/freed-ora/current/master/kernel.spec
+++ b/freed-ora/current/master/kernel.spec
@@ -6,7 +6,7 @@ Summary: The Linux kernel
# For a stable, released kernel, released_kernel should be 1. For rawhide
# and/or a kernel built from an rc or git snapshot, released_kernel should
# be 0.
-%global released_kernel 0
+%global released_kernel 1
# Save original buildid for later if it's defined
%if 0%{?buildid:1}
@@ -57,7 +57,7 @@ Summary: The Linux kernel
# base_sublevel is the kernel version we're starting with and patching
# on top of -- for example, 2.6.22-rc7-git1 starts with a 2.6.21 base,
# which yields a base_sublevel of 21.
-%define base_sublevel 37
+%define base_sublevel 38
# librev starts empty, then 1, etc, as the linux-libre tarball
# changes. This is only used to determine which tarball to use.
@@ -65,7 +65,7 @@ Summary: The Linux kernel
# To be inserted between "patch" and "-2.6.".
#define stablelibre -libre
-%define rcrevlibre -libre
+#define rcrevlibre -libre
#define gitrevlibre -libre
# libres (s for suffix) may be bumped for rebuilds in which patches
@@ -96,9 +96,9 @@ Summary: The Linux kernel
# The next upstream release sublevel (base_sublevel+1)
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
# The rc snapshot level
-%define rcrev 6
+%define rcrev 8
# The git snapshot level
-%define gitrev 2
+%define gitrev 4
# Set rpm version accordingly
%define rpmversion 2.6.%{upstream_sublevel}
%endif
@@ -550,7 +550,6 @@ Source0: http://linux-libre.fsfla.org/pub/linux-libre/freed-ora/src/linux-%{kver
Source3: deblob-main
Source4: deblob-%{kversion}
Source5: deblob-check
-Source6: deblob-2.6.%{upstream_sublevel}
Source11: genkey
Source14: find-provides
@@ -638,12 +637,13 @@ Patch09: linux-2.6-upstream-reverts.patch
# Standalone patches
Patch20: linux-2.6-hotfixes.patch
-
+Patch29: linux-2.6-utrace-revert-make-ptrace-functions-static.patch
Patch30: linux-2.6-tracehook.patch
Patch31: linux-2.6-utrace.patch
Patch32: linux-2.6-utrace-ptrace.patch
Patch150: linux-2.6.29-sparc-IOC_TYPECHECK.patch
+Patch151: sparc64_fix_build_errors_with_gcc460.patch
Patch160: linux-2.6-32bit-mmap-exec-randomization.patch
Patch161: linux-2.6-i386-nx-emulation.patch
@@ -699,6 +699,7 @@ Patch1824: drm-intel-next.patch
# make sure the lvds comes back on lid open
Patch1825: drm-intel-make-lvds-work.patch
Patch1826: drm-intel-edp-fixes.patch
+Patch1827: drm-i915-gen4-has-non-power-of-two-strides.patch
Patch1900: linux-2.6-intel-iommu-igfx.patch
@@ -755,8 +756,6 @@ Patch12303: dmar-disable-when-ricoh-multifunction.patch
Patch12421: fs-call-security_d_instantiate-in-d_obtain_alias.patch
-Patch12438: ath5k-fix-fast-channel-change.patch
-
%endif
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -828,6 +827,20 @@ Group: Development/System
License: GPLv2
%description -n perf-libre
This package provides the perf tool and the supporting documentation.
+
+%package -n perf-libre-debuginfo
+Summary: Debug information for package perf
+Group: Development/Debug
+Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release}
+AutoReqProv: no
+%description -n perf-libre-debuginfo
+This package provides debug information for package perf.
+
+# Note that this pattern only works right to match the .build-id
+# symlinks because of the trailing nonmatching alternation and
+# the leading .*, because of find-debuginfo.sh's buggy handling
+# of matching the pattern against the symlinks file.
+%{expand:%%global debuginfo_args %{?debuginfo_args} -p '.*%%{_bindir}/perf(\.debug)?|.*%%{_libexecdir}/perf-core/.*|XXX' -o perf-debuginfo.list}
%endif
@@ -1118,20 +1131,16 @@ perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION =%{?stablelibre:-libre%{?librev}}/
%endif
ApplyPatch patch%{?rcrevlibre}-2.6.%{upstream_sublevel}-rc%{rcrev}.bz2
%if 0%{?gitrev}
-%if "%{rcrevlibre}" != "%{gitrevlibre}"
perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -rc%{rcrev}%{?gitrevlibre:-libre%{?librev}}/" Makefile
-%endif
ApplyPatch patch%{?gitrevlibre}-2.6.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}.bz2
%endif
%else
# pre-{base_sublevel+1}-rc1 case
-%if 0%{?gitrev}
-%if "%{stablerevlibre}" != "%{gitrevlibre}"
- perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -rc%{rcrev}%{?gitrevlibre:-libre%{?librev}}/" Makefile
+%if "%{?stablelibre}" != "%{?gitrevlibre}"
+ perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION =%{?rcrevlibre:-libre%{?librev}}/" Makefile
%endif
ApplyPatch patch%{?gitrevlibre}-2.6.%{base_sublevel}-git%{gitrev}.bz2
%endif
-%endif
cd ..
@@ -1218,6 +1227,7 @@ ApplyOptionalPatch linux-2.6-upstream-reverts.patch -R
ApplyPatch linux-2.6-hotfixes.patch
# Roland's utrace ptrace replacement.
+ApplyPatch linux-2.6-utrace-revert-make-ptrace-functions-static.patch
ApplyPatch linux-2.6-tracehook.patch
ApplyPatch linux-2.6-utrace.patch
ApplyPatch linux-2.6-utrace-ptrace.patch
@@ -1237,6 +1247,7 @@ ApplyPatch linux-2.6-utrace-ptrace.patch
# SPARC64
#
ApplyPatch linux-2.6.29-sparc-IOC_TYPECHECK.patch
+ApplyPatch sparc64_fix_build_errors_with_gcc460.patch
#
# Exec shield
@@ -1350,6 +1361,9 @@ ApplyPatch drm-intel-big-hammer.patch
ApplyPatch drm-intel-make-lvds-work.patch
ApplyPatch linux-2.6-intel-iommu-igfx.patch
ApplyPatch drm-intel-edp-fixes.patch
+# rhbz#681285 (i965: crash in brw_wm_surface_state.c::prepare_wm_surfaces()
+# where intelObj->mt == NULL)
+#ApplyPatch drm-i915-gen4-has-non-power-of-two-strides.patch
# linux1394 git patches
#ApplyPatch linux-2.6-firewire-git-update.patch
@@ -1404,9 +1418,6 @@ ApplyPatch dmar-disable-when-ricoh-multifunction.patch
# rhbz#662344,600690
ApplyPatch fs-call-security_d_instantiate-in-d_obtain_alias.patch
-# rhbz#672778
-ApplyPatch ath5k-fix-fast-channel-change.patch
-
# END OF PATCH APPLICATIONS
%endif
@@ -1725,7 +1736,7 @@ BuildKernel %make_target %kernel_image smp
%if %{with_doc}
# Make the HTML and man pages.
-make %{?_smp_mflags} htmldocs mandocs || %{doc_build_fail}
+make htmldocs mandocs || %{doc_build_fail}
# sometimes non-world-readable files sneak into the kernel source tree
chmod -R a=rX Documentation
@@ -1946,6 +1957,11 @@ fi
%dir %{_libexecdir}/perf-core
%{_libexecdir}/perf-core/*
%{_mandir}/man[1-8]/*
+
+%if %{with_debuginfo}
+%files -f perf-debuginfo.list -n perf-libre-debuginfo
+%defattr(-,root,root)
+%endif
%endif
# This is %%{image_install_path} on an arch where that includes ELF files,
@@ -2010,11 +2026,80 @@ fi
# and build.
%changelog
+* Wed Mar 16 2011 Alexandre Oliva <lxoliva@fsfla.org> -libre
+- Deblobbed to 2.6.38-libre.
+
+* Tue Mar 15 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38-1
+- Linux 2.6.38
+
+* Mon Mar 14 2011 Alexandre Oliva <lxoliva@fsfla.org> -libre
+- Deblobbed patch-libre-2.6.38-rc8-git4 by hand.
+
+* Mon Mar 13 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38-0.rc8.git4.1
+- Linux 2.6.38-rc8-git4
+
+* Thu Mar 10 2011 Chuck Ebbert <cebbert@redhat.com>
+- Linux 2.6.38-rc8-git3
+
+* Thu Mar 10 2011 Alexandre Oliva <lxoliva@fsfla.org> -libre
+- Created patch-libre-2.6.38-rc8 by diffing deblobbed trees.
+
+* Thu Mar 10 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38-0.rc8.git2.1
+- Linux 2.6.38-rc8-git2
+
+* Wed Mar 09 2011 Chuck Ebbert <cebbert@redhat.com>
+- Linux 2.6.38-rc8-git1
+
+* Wed Mar 09 2011 Dennis Gilmore <dennis@ausil.us>
+- apply sparc64 gcc-4.6.0 buildfix patch
+
+* Wed Mar 09 2011 Ben Skeggs <bskeggs@redhat.com> 2.6.38-0.rc8.git0.2
+- nouveau: allow max clients on nv4x (679629), better error reporting
+
+* Tue Mar 08 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38-0.rc8.git0.1
+- Linux 2.6.38-rc8
+
+* Mon Mar 7 2011 Alexandre Oliva <lxoliva@fsfla.org> -libre
+- Created patch-libre-2.6.38-rc7 by diffing deblobbed trees.
+
+* Sat Mar 05 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38-0.rc7.git4.1
+- Linux 2.6.38-rc7-git4
+- Revert upstream commit e3e89cc535223433a619d0969db3fa05cdd946b8
+ for now to fix utrace build.
+
+* Fri Mar 04 2011 Roland McGrath <roland@redhat.com> - 2.6.38-0.rc7.git2.3
+- Split out perf-debuginfo subpackage.
+
+* Fri Mar 04 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38-0.rc7.git2.2
+- Disable drm-i915-gen4-has-non-power-of-two-strides.patch for now, breaks
+ my mutter.
+
+* Fri Mar 04 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38-0.rc7.git2.1
+- Linux 2.6.38-rc7-git2
+- drm-i915-gen4-has-non-power-of-two-strides.patch (#681285)
+
+* Thu Mar 03 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38-0.rc7.git1.1
+- Linux 2.6.38-rc7-git1
+
+* Tue Mar 01 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38-0.rc7.git0.1
+- Linux 2.6.38-rc7
+
+* Fri Feb 25 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38-0.rc6.git6.1
+- Linux 2.6.38-rc6-git6
+- Build in virtio_pci driver so virtio_console will be built-in (#677713)
+
+* Thu Feb 24 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38-0.rc6.git4.1
+- Linux 2.6.38-rc6-git4
+
+* Thu Feb 24 2011 Matthew Garrett <mjg@redhat.com> 2.6.38-0.rc6.git2.2
+- linux-2.6-acpi-fix-implicit-notify.patch: Fix implicit notify when there's
+ more than one device per GPE
+
* Wed Feb 23 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38-0.rc6.git2.1
- Linux 2.6.38-rc6-git2
* Wed Feb 23 2011 Alexandre Oliva <lxoliva@fsfla.org> -libre Thu Feb 24
-- Deblobbed patch-libre-2.6.38-rc6.
+- Created patch-libre-2.6.38-rc6 by diffing deblobbed trees.
* Wed Feb 23 2011 Ben Skeggs <bskeggs@redhat.com> 2.6.38-0.rc6.git0.2
- nouveau: nv4x pciegart fixes, nvc0 accel improvements
diff --git a/freed-ora/current/master/linux-2.6-utrace-revert-make-ptrace-functions-static.patch b/freed-ora/current/master/linux-2.6-utrace-revert-make-ptrace-functions-static.patch
new file mode 100644
index 000000000..5e3dcc21d
--- /dev/null
+++ b/freed-ora/current/master/linux-2.6-utrace-revert-make-ptrace-functions-static.patch
@@ -0,0 +1,47 @@
+Revert:
+commit e3e89cc535223433a619d0969db3fa05cdd946b8
+("Mark ptrace_{traceme,attach,detach} static")
+
+--- b/include/linux/ptrace.h
++++ a/include/linux/ptrace.h
+@@ -102,8 +102,11 @@
+
+ extern long arch_ptrace(struct task_struct *child, long request,
+ unsigned long addr, unsigned long data);
++extern int ptrace_traceme(void);
+ extern int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst, int len);
+ extern int ptrace_writedata(struct task_struct *tsk, char __user *src, unsigned long dst, int len);
++extern int ptrace_attach(struct task_struct *tsk);
++extern int ptrace_detach(struct task_struct *, unsigned int);
+ extern void ptrace_disable(struct task_struct *);
+ extern int ptrace_check_attach(struct task_struct *task, int kill);
+ extern int ptrace_request(struct task_struct *child, long request,
+--- b/kernel/ptrace.c
++++ a/kernel/ptrace.c
+@@ -163,7 +163,7 @@
+ return !err;
+ }
+
++int ptrace_attach(struct task_struct *task)
+-static int ptrace_attach(struct task_struct *task)
+ {
+ int retval;
+
+@@ -219,7 +219,7 @@
+ * Performs checks and sets PT_PTRACED.
+ * Should be used by all ptrace implementations for PTRACE_TRACEME.
+ */
++int ptrace_traceme(void)
+-static int ptrace_traceme(void)
+ {
+ int ret = -EPERM;
+
+@@ -293,7 +293,7 @@
+ return false;
+ }
+
++int ptrace_detach(struct task_struct *child, unsigned int data)
+-static int ptrace_detach(struct task_struct *child, unsigned int data)
+ {
+ bool dead = false;
+
diff --git a/freed-ora/current/master/linux-2.6.37-libre.tar.bz2.sign b/freed-ora/current/master/linux-2.6.37-libre.tar.bz2.sign
deleted file mode 100644
index 86cb2925a..000000000
--- a/freed-ora/current/master/linux-2.6.37-libre.tar.bz2.sign
+++ /dev/null
@@ -1,7 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.16 (GNU/Linux)
-
-iEYEABECAAYFAk0j6U8ACgkQvLfPh359R6c4AgCfZiHKtOWZUgZDiIqgfsJEFZ8A
-Xn8AnRlyv7V5f73YIKJOLDklYsq5LXYq
-=wyA+
------END PGP SIGNATURE-----
diff --git a/freed-ora/current/master/linux-2.6.37-libre.xdelta.bz2 b/freed-ora/current/master/linux-2.6.37-libre.xdelta.bz2
deleted file mode 100644
index 0609241f1..000000000
--- a/freed-ora/current/master/linux-2.6.37-libre.xdelta.bz2
+++ /dev/null
Binary files differ
diff --git a/freed-ora/current/master/linux-2.6.37-libre.xdelta.bz2.sign b/freed-ora/current/master/linux-2.6.37-libre.xdelta.bz2.sign
deleted file mode 100644
index 07c6363ba..000000000
--- a/freed-ora/current/master/linux-2.6.37-libre.xdelta.bz2.sign
+++ /dev/null
@@ -1,7 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.16 (GNU/Linux)
-
-iEYEABECAAYFAk0j6VUACgkQvLfPh359R6e4OQCgm5WqFF4ZCs1Yy2zDfBuADZfT
-apsAnAyTyQT5Tl4cGwyPdGAIGTRUAwOs
-=lJor
------END PGP SIGNATURE-----
diff --git a/freed-ora/current/master/linux-2.6.38-libre.tar.bz2.sign b/freed-ora/current/master/linux-2.6.38-libre.tar.bz2.sign
new file mode 100644
index 000000000..53a66c705
--- /dev/null
+++ b/freed-ora/current/master/linux-2.6.38-libre.tar.bz2.sign
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.16 (GNU/Linux)
+
+iEYEABECAAYFAk1/yJYACgkQvLfPh359R6esiQCfQU+hGDR5+Y4qIn5AxNFmwrTE
+tu0An01vh9eBRhhXmFPV0w1pU787Ylmn
+=RgIS
+-----END PGP SIGNATURE-----
diff --git a/freed-ora/current/master/linux-2.6.38-libre.xdelta.bz2 b/freed-ora/current/master/linux-2.6.38-libre.xdelta.bz2
new file mode 100644
index 000000000..f4f98bd00
--- /dev/null
+++ b/freed-ora/current/master/linux-2.6.38-libre.xdelta.bz2
Binary files differ
diff --git a/freed-ora/current/master/linux-2.6.38-libre.xdelta.bz2.sign b/freed-ora/current/master/linux-2.6.38-libre.xdelta.bz2.sign
new file mode 100644
index 000000000..0c8c9b85b
--- /dev/null
+++ b/freed-ora/current/master/linux-2.6.38-libre.xdelta.bz2.sign
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.16 (GNU/Linux)
+
+iEYEABECAAYFAk1/yKAACgkQvLfPh359R6dsogCgnVNE1Y3HR27pqObXfEF1c0zO
+UwgAn3fMhz8q3ngzvlcssV+4owyjZJqQ
+=QCZA
+-----END PGP SIGNATURE-----
diff --git a/freed-ora/current/master/patch-libre-2.6.38-rc6.bz2.sign b/freed-ora/current/master/patch-libre-2.6.38-rc6.bz2.sign
deleted file mode 100644
index da2d4db96..000000000
--- a/freed-ora/current/master/patch-libre-2.6.38-rc6.bz2.sign
+++ /dev/null
@@ -1,7 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.16 (GNU/Linux)
-
-iEYEABECAAYFAk1mB5IACgkQvLfPh359R6dTnACglBfQJWCGbz2wReSQqOlH01ek
-XIMAn0KFMlJ9OiINUKmM70BHgoBs6ilF
-=8ZlE
------END PGP SIGNATURE-----
diff --git a/freed-ora/current/master/patch-libre-2.6.38-rc6.xdelta b/freed-ora/current/master/patch-libre-2.6.38-rc6.xdelta
deleted file mode 100644
index 0c00e77e6..000000000
--- a/freed-ora/current/master/patch-libre-2.6.38-rc6.xdelta
+++ /dev/null
Binary files differ
diff --git a/freed-ora/current/master/patch-libre-2.6.38-rc6.xdelta.sign b/freed-ora/current/master/patch-libre-2.6.38-rc6.xdelta.sign
deleted file mode 100644
index 3a5fd7504..000000000
--- a/freed-ora/current/master/patch-libre-2.6.38-rc6.xdelta.sign
+++ /dev/null
@@ -1,7 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.16 (GNU/Linux)
-
-iEYEABECAAYFAk1mB48ACgkQvLfPh359R6eN5wCbBcGcUn9Naj031WvSlNKV5rtZ
-8aAAoJprIXaAyOY72SyBKmwIGZ2RpiTt
-=3+ej
------END PGP SIGNATURE-----
diff --git a/freed-ora/current/master/scripts/rebase.sh b/freed-ora/current/master/scripts/rebase.sh
index fc3157b24..ac6522a4c 100755
--- a/freed-ora/current/master/scripts/rebase.sh
+++ b/freed-ora/current/master/scripts/rebase.sh
@@ -1,15 +1,19 @@
#!/bin/bash
+KORG26="http://ftp.kernel.org/pub/linux/kernel/v2.6"
+KORG26SNAPS="${KORG26}/snapshots"
+KORG26TESTING="${KORG26}/testing"
+
if [ ! -f /usr/bin/curl ]; then
echo yum install curl
exit 0
fi
# Current kernel bits
-if [ `grep -c ^patch upstream` -ge 1 ]; then
- export OLD=`grep ^patch upstream | tail -n1 | sed s/patch-// | sed s/\.bz2//`
+if [ `grep -c patch-2.6 sources` -ge 1 ]; then
+ export OLD=`grep patch-2.6 sources | awk '{print $2}' | tail -n1 | sed s/patch-// | sed s/\.bz2//`
else
- export OLD=`grep linux-2.6 upstream | tail -n1 | sed s/linux-// | sed s/\.tar\.bz2//`
+ export OLD=`grep linux-2.6 sources | awk '{print $2}' | tail -n1 | sed s/linux-// | sed s/\.tar\.bz2//`
fi
export OLDBASE=`echo $OLD | sed s/-/\ /g | sed s/2\.6\.// | awk '{ print $1 }'`
if [ `echo $OLD | grep -c rc` -ge 1 ]; then
@@ -97,58 +101,39 @@ if [ "$NEWRC" -eq 0 -a "$NEWGIT" -eq 0 ]; then
perl -p -i -e 's/^%define\ rcrev.*/\%define\ rcrev\ 0/' kernel.spec
perl -p -i -e 's/^%define\ gitrev.*/\%define\ gitrev\ 0/' kernel.spec
- grep -v kernel-2.6.$OLD_TARBALL_BASE .cvsignore >.cvsignore.tmp ; mv .cvsignore.tmp .cvsignore
- echo kernel-2.6.$NEWBASE >> .cvsignore
+ grep -v kernel-2.6.$OLD_TARBALL_BASE .gitignore >.gitignore.tmp ; mv .gitignore.tmp .gitignore
+ echo kernel-2.6.$NEWBASE >> .gitignore
- for i in upstream sources .cvsignore
+ for i in sources .gitignore
do
grep -v linux-2.6.$OLD_TARBALL_BASE.tar.bz2 $i > .$i.tmp; mv .$i.tmp $i
grep -v patch-2.6.$OLDBASE-rc$OLDRC.bz2 $i > .$i.tmp; mv .$i.tmp $i
grep -v patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2 $i > .$i.tmp; mv .$i.tmp $i
done
- echo linux-2.6.$NEWBASE.tar.bz2 >> upstream
-
rm -f linux-2.6.$OLD_TARBALL_BASE.tar.bz2
- rm -f linux-2.6.$OLD_TARBALL_BASE.tar.bz2.sign
rm -f patch-2.6.$OLDBASE-rc$OLDRC.bz2
- rm -f patch-2.6.$OLDBASE-rc$OLDRC.bz2.sign
rm -f patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2
- rm -f patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2.sign
-
- cvs remove linux-2.6.$OLD_TARBALL_BASE.tar.bz2.sign
- cvs remove patch-2.6.$OLDBASE-rc$OLDRC.bz2.sign
- cvs remove patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2.sign
- make download
- make upload FILES=linux-$NEW.tar.bz2
+ curl -O $KORG26/linux-$NEW.tar.bz2
+ fedpkg upload linux-$NEW.tar.bz2
- cvs add linux-$NEW.tar.bz2.sign
-
- bumpspecfile.py kernel.spec "- $NEW"
- make clog
- echo FIXME! Fix up fedora_cvs_origin
- make verrel
exit 1
fi
if [ "$OLDRC" != "$NEWRC" ]; then
echo "Different rc. Rebasing from $OLDRC to $NEWRC"
perl -p -i -e 's/^%define\ rcrev.*/\%define\ rcrev\ $ENV{"NEWRC"}/' kernel.spec
- perl -p -i -e 's/$ENV{OLDBASE}-rc$ENV{OLDRC}.bz2/$ENV{NEWBASE}-rc$ENV{NEWRC}.bz2/' .cvsignore
- perl -p -i -e 's/$ENV{OLDBASE}-rc$ENV{OLDRC}.bz2/$ENV{NEWBASE}-rc$ENV{NEWRC}.bz2/' upstream
+ perl -p -i -e 's/$ENV{OLDBASE}-rc$ENV{OLDRC}.bz2/$ENV{NEWBASE}-rc$ENV{NEWRC}.bz2/' .gitignore
grep -v patch-2.6.$OLDBASE-rc$OLDRC.bz2 sources > .sources.tmp; mv .sources.tmp sources
- grep -v patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2 .cvsignore >.cvsignore.tmp ; mv .cvsignore.tmp .cvsignore
- if [ `grep -c patch-2.6.$NEWBASE-rc$NEWRC.bz2 upstream` -eq 0 ]; then
- echo patch-2.6.$NEWBASE-rc$NEWRC.bz2 >> .cvsignore
- echo patch-2.6.$NEWBASE-rc$NEWRC.bz2 >> upstream
+ grep -v patch-2.6.$OLDBASE-rc$OLDRC-git$OLDGIT.bz2 .gitignore >.gitignore.tmp ; mv .gitignore.tmp .gitignore
+ if [ `grep -c patch-2.6.$NEWBASE-rc$NEWRC.bz2 sources` -eq 0 ]; then
+ echo patch-2.6.$NEWBASE-rc$NEWRC.bz2 >> .gitignore
fi
rm -f patch-2.6.$OLDBASE-rc$OLDRC.bz2
- rm -f patch-2.6.$OLDBASE-rc$OLDRC.bz2.sign
- cvs remove patch-2.6.$OLDBASE-rc$OLDRC.bz2.sign
- make download
- make upload FILES=patch-2.6.$NEWBASE-rc$NEWRC.bz2
- cvs add patch-2.6.$NEWBASE-rc$NEWRC.bz2.sign
+
+ curl -O $KORG26TESTING/patch-2.6.$NEWBASE-rc$NEWRC.bz2
+ fedpkg upload FILES=patch-2.6.$NEWBASE-rc$NEWRC.bz2
# Another awkward (albeit unlikely) corner case.
# Moving from say 26-rc3-git1 to 26-rc4-git1
@@ -167,32 +152,27 @@ if [ "$OLDGIT" != "$NEWGIT" ]; then
perl -p -i -e 's/^%define\ gitrev.*/\%define\ gitrev\ $ENV{"NEWGIT"}/' kernel.spec
if [ "$OLDGIT" -ne 0 ]; then
if [ "$NEWGIT" -ne 0 ]; then
- perl -p -i -e 's/$ENV{OLD}/$ENV{NEW}/' .cvsignore
- perl -p -i -e 's/$ENV{OLD}/$ENV{NEW}/' upstream
+ perl -p -i -e 's/$ENV{OLD}/$ENV{NEW}/' .gitignore
fi
grep -v patch-$OLD.bz2 sources > .sources.tmp; mv .sources.tmp sources
- grep -v patch-$OLD.bz2 upstream > .upstream.tmp; mv .upstream.tmp upstream
else
- echo patch-$NEW.bz2 >> .cvsignore
- echo patch-$NEW.bz2 >> upstream
+ echo patch-$NEW.bz2 >> .gitignore
fi
- make download
- make upload FILES=patch-$NEW.bz2
+ if [ "$NEWGIT" -ne 0 ]; then
+ curl -O $KORG26SNAPS/patch-$NEW.bz2
+ fi
+ fedpkg upload patch-$NEW.bz2
- cvs add patch-$NEW.bz2.sign
if [ "$OLDGIT" -ne 0 ]; then
rm -f patch-$OLD.bz2
- rm -f patch-$OLD.bz2.sign
- cvs remove patch-$OLD.bz2.sign
fi
fi
if [ "$OLDRC" != "$NEWRC" -o "$OLDGIT" != "$NEWGIT" ]; then
perl -p -i -e 's|^ApplyPatch\ git-linus.diff|#ApplyPatch\ git-linus.diff|' kernel.spec
> git-linus.diff
- bumpspecfile.py kernel.spec "- $NEW"
- make clog
+ fedpkg clog
exit 1
else
exit 0
diff --git a/freed-ora/current/master/sources b/freed-ora/current/master/sources
index 46741dc56..bc34d6106 100644
--- a/freed-ora/current/master/sources
+++ b/freed-ora/current/master/sources
@@ -1,3 +1 @@
-3e80c55a0927b4439f3aad4f973f05cc linux-2.6.37-libre.tar.bz2
-35ff89b92aa6b26ff9dd982ca0beb86b patch-libre-2.6.38-rc6.bz2
-3ddbe38f2ca6ae526dd0017fafdf846a patch-2.6.38-rc6-git2.bz2
+21911d61ac22d66e71697a3d5ae092ba linux-2.6.38-libre.tar.bz2
diff --git a/freed-ora/current/master/sparc64_fix_build_errors_with_gcc460.patch b/freed-ora/current/master/sparc64_fix_build_errors_with_gcc460.patch
new file mode 100644
index 000000000..807032c83
--- /dev/null
+++ b/freed-ora/current/master/sparc64_fix_build_errors_with_gcc460.patch
@@ -0,0 +1,305 @@
+From dbb988cf34a62e69c8863f212be212c6841004ba Mon Sep 17 00:00:00 2001
+From: David S. Miller <davem@davemloft.net>
+Date: Sat, 26 Feb 2011 23:40:02 -0800
+Subject: [PATCH] sparc64: Fix build errors with gcc-4.6.0
+
+Most of the warnings emitted (we fail arch/sparc file
+builds with -Werror) were legitimate but harmless, however
+one case (n2_pcr_write) was a genuine bug.
+
+Based almost entirely upon a patch by Sam Ravnborg.
+
+Reported-by: Dennis Gilmore <dennis@ausil.us>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ arch/sparc/kernel/iommu.c | 3 ---
+ arch/sparc/kernel/ldc.c | 28 ++++++++++++++++++----------
+ arch/sparc/kernel/pci.c | 1 +
+ arch/sparc/kernel/pci_common.c | 11 +++++++----
+ arch/sparc/kernel/pci_fire.c | 2 --
+ arch/sparc/kernel/pci_schizo.c | 4 +---
+ arch/sparc/kernel/pci_sun4v.c | 3 +--
+ arch/sparc/kernel/pcr.c | 2 +-
+ arch/sparc/kernel/ptrace_64.c | 3 ++-
+ arch/sparc/kernel/smp_64.c | 11 ++++-------
+ arch/sparc/kernel/traps_64.c | 3 +--
+ 11 files changed, 36 insertions(+), 35 deletions(-)
+
+diff --git a/arch/sparc/kernel/iommu.c b/arch/sparc/kernel/iommu.c
+index 72509d0..6f01e8c 100644
+--- a/arch/sparc/kernel/iommu.c
++++ b/arch/sparc/kernel/iommu.c
+@@ -333,13 +333,10 @@ static void dma_4u_free_coherent(struct device *dev, size_t size,
+ void *cpu, dma_addr_t dvma)
+ {
+ struct iommu *iommu;
+- iopte_t *iopte;
+ unsigned long flags, order, npages;
+
+ npages = IO_PAGE_ALIGN(size) >> IO_PAGE_SHIFT;
+ iommu = dev->archdata.iommu;
+- iopte = iommu->page_table +
+- ((dvma - iommu->page_table_map_base) >> IO_PAGE_SHIFT);
+
+ spin_lock_irqsave(&iommu->lock, flags);
+
+diff --git a/arch/sparc/kernel/ldc.c b/arch/sparc/kernel/ldc.c
+index df39a0f..732b0bc 100644
+--- a/arch/sparc/kernel/ldc.c
++++ b/arch/sparc/kernel/ldc.c
+@@ -790,16 +790,20 @@ static void send_events(struct ldc_channel *lp, unsigned int event_mask)
+ static irqreturn_t ldc_rx(int irq, void *dev_id)
+ {
+ struct ldc_channel *lp = dev_id;
+- unsigned long orig_state, hv_err, flags;
++ unsigned long orig_state, flags;
+ unsigned int event_mask;
+
+ spin_lock_irqsave(&lp->lock, flags);
+
+ orig_state = lp->chan_state;
+- hv_err = sun4v_ldc_rx_get_state(lp->id,
+- &lp->rx_head,
+- &lp->rx_tail,
+- &lp->chan_state);
++
++ /* We should probably check for hypervisor errors here and
++ * reset the LDC channel if we get one.
++ */
++ sun4v_ldc_rx_get_state(lp->id,
++ &lp->rx_head,
++ &lp->rx_tail,
++ &lp->chan_state);
+
+ ldcdbg(RX, "RX state[0x%02lx:0x%02lx] head[0x%04lx] tail[0x%04lx]\n",
+ orig_state, lp->chan_state, lp->rx_head, lp->rx_tail);
+@@ -904,16 +908,20 @@ out:
+ static irqreturn_t ldc_tx(int irq, void *dev_id)
+ {
+ struct ldc_channel *lp = dev_id;
+- unsigned long flags, hv_err, orig_state;
++ unsigned long flags, orig_state;
+ unsigned int event_mask = 0;
+
+ spin_lock_irqsave(&lp->lock, flags);
+
+ orig_state = lp->chan_state;
+- hv_err = sun4v_ldc_tx_get_state(lp->id,
+- &lp->tx_head,
+- &lp->tx_tail,
+- &lp->chan_state);
++
++ /* We should probably check for hypervisor errors here and
++ * reset the LDC channel if we get one.
++ */
++ sun4v_ldc_tx_get_state(lp->id,
++ &lp->tx_head,
++ &lp->tx_tail,
++ &lp->chan_state);
+
+ ldcdbg(TX, " TX state[0x%02lx:0x%02lx] head[0x%04lx] tail[0x%04lx]\n",
+ orig_state, lp->chan_state, lp->tx_head, lp->tx_tail);
+diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c
+index 4137579..f255382 100644
+--- a/arch/sparc/kernel/pci.c
++++ b/arch/sparc/kernel/pci.c
+@@ -675,6 +675,7 @@ static void __devinit pci_bus_register_of_sysfs(struct pci_bus *bus)
+ * humanoid.
+ */
+ err = sysfs_create_file(&dev->dev.kobj, &dev_attr_obppath.attr);
++ (void) err;
+ }
+ list_for_each_entry(child_bus, &bus->children, node)
+ pci_bus_register_of_sysfs(child_bus);
+diff --git a/arch/sparc/kernel/pci_common.c b/arch/sparc/kernel/pci_common.c
+index 6c7a33a..6e3874b 100644
+--- a/arch/sparc/kernel/pci_common.c
++++ b/arch/sparc/kernel/pci_common.c
+@@ -295,14 +295,17 @@ static int sun4v_write_pci_cfg(struct pci_bus *bus_dev, unsigned int devfn,
+ unsigned int bus = bus_dev->number;
+ unsigned int device = PCI_SLOT(devfn);
+ unsigned int func = PCI_FUNC(devfn);
+- unsigned long ret;
+
+ if (config_out_of_range(pbm, bus, devfn, where)) {
+ /* Do nothing. */
+ } else {
+- ret = pci_sun4v_config_put(devhandle,
+- HV_PCI_DEVICE_BUILD(bus, device, func),
+- where, size, value);
++ /* We don't check for hypervisor errors here, but perhaps
++ * we should and influence our return value depending upon
++ * what kind of error is thrown.
++ */
++ pci_sun4v_config_put(devhandle,
++ HV_PCI_DEVICE_BUILD(bus, device, func),
++ where, size, value);
+ }
+ return PCIBIOS_SUCCESSFUL;
+ }
+diff --git a/arch/sparc/kernel/pci_fire.c b/arch/sparc/kernel/pci_fire.c
+index efb896d..75dfeb6 100644
+--- a/arch/sparc/kernel/pci_fire.c
++++ b/arch/sparc/kernel/pci_fire.c
+@@ -214,11 +214,9 @@ static int pci_fire_msi_setup(struct pci_pbm_info *pbm, unsigned long msiqid,
+
+ static int pci_fire_msi_teardown(struct pci_pbm_info *pbm, unsigned long msi)
+ {
+- unsigned long msiqid;
+ u64 val;
+
+ val = upa_readq(pbm->pbm_regs + MSI_MAP(msi));
+- msiqid = (val & MSI_MAP_EQNUM);
+
+ val &= ~MSI_MAP_VALID;
+
+diff --git a/arch/sparc/kernel/pci_schizo.c b/arch/sparc/kernel/pci_schizo.c
+index 445a47a..4620eb7 100644
+--- a/arch/sparc/kernel/pci_schizo.c
++++ b/arch/sparc/kernel/pci_schizo.c
+@@ -1313,7 +1313,7 @@ static int __devinit schizo_pbm_init(struct pci_pbm_info *pbm,
+ const struct linux_prom64_registers *regs;
+ struct device_node *dp = op->dev.of_node;
+ const char *chipset_name;
+- int is_pbm_a, err;
++ int err;
+
+ switch (chip_type) {
+ case PBM_CHIP_TYPE_TOMATILLO:
+@@ -1343,8 +1343,6 @@ static int __devinit schizo_pbm_init(struct pci_pbm_info *pbm,
+ */
+ regs = of_get_property(dp, "reg", NULL);
+
+- is_pbm_a = ((regs[0].phys_addr & 0x00700000) == 0x00600000);
+-
+ pbm->next = pci_pbm_root;
+ pci_pbm_root = pbm;
+
+diff --git a/arch/sparc/kernel/pci_sun4v.c b/arch/sparc/kernel/pci_sun4v.c
+index 743344a..859abfd 100644
+--- a/arch/sparc/kernel/pci_sun4v.c
++++ b/arch/sparc/kernel/pci_sun4v.c
+@@ -580,7 +580,7 @@ static int __devinit pci_sun4v_iommu_init(struct pci_pbm_info *pbm)
+ {
+ static const u32 vdma_default[] = { 0x80000000, 0x80000000 };
+ struct iommu *iommu = pbm->iommu;
+- unsigned long num_tsb_entries, sz, tsbsize;
++ unsigned long num_tsb_entries, sz;
+ u32 dma_mask, dma_offset;
+ const u32 *vdma;
+
+@@ -596,7 +596,6 @@ static int __devinit pci_sun4v_iommu_init(struct pci_pbm_info *pbm)
+
+ dma_mask = (roundup_pow_of_two(vdma[1]) - 1UL);
+ num_tsb_entries = vdma[1] / IO_PAGE_SIZE;
+- tsbsize = num_tsb_entries * sizeof(iopte_t);
+
+ dma_offset = vdma[0];
+
+diff --git a/arch/sparc/kernel/pcr.c b/arch/sparc/kernel/pcr.c
+index 7c2ced6..8ac23e6 100644
+--- a/arch/sparc/kernel/pcr.c
++++ b/arch/sparc/kernel/pcr.c
+@@ -81,7 +81,7 @@ static void n2_pcr_write(u64 val)
+ unsigned long ret;
+
+ ret = sun4v_niagara2_setperf(HV_N2_PERF_SPARC_CTL, val);
+- if (val != HV_EOK)
++ if (ret != HV_EOK)
+ write_pcr(val);
+ }
+
+diff --git a/arch/sparc/kernel/ptrace_64.c b/arch/sparc/kernel/ptrace_64.c
+index 9ccc812..96ee50a 100644
+--- a/arch/sparc/kernel/ptrace_64.c
++++ b/arch/sparc/kernel/ptrace_64.c
+@@ -1086,6 +1086,7 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
+
+ asmlinkage void syscall_trace_leave(struct pt_regs *regs)
+ {
++#ifdef CONFIG_AUDITSYSCALL
+ if (unlikely(current->audit_context)) {
+ unsigned long tstate = regs->tstate;
+ int result = AUDITSC_SUCCESS;
+@@ -1095,7 +1096,7 @@ asmlinkage void syscall_trace_leave(struct pt_regs *regs)
+
+ audit_syscall_exit(result, regs->u_regs[UREG_I0]);
+ }
+-
++#endif
+ if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
+ trace_sys_exit(regs, regs->u_regs[UREG_G1]);
+
+diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
+index 555a76d..3e94a8c 100644
+--- a/arch/sparc/kernel/smp_64.c
++++ b/arch/sparc/kernel/smp_64.c
+@@ -189,7 +189,7 @@ static inline long get_delta (long *rt, long *master)
+ void smp_synchronize_tick_client(void)
+ {
+ long i, delta, adj, adjust_latency = 0, done = 0;
+- unsigned long flags, rt, master_time_stamp, bound;
++ unsigned long flags, rt, master_time_stamp;
+ #if DEBUG_TICK_SYNC
+ struct {
+ long rt; /* roundtrip time */
+@@ -208,10 +208,8 @@ void smp_synchronize_tick_client(void)
+ {
+ for (i = 0; i < NUM_ROUNDS; i++) {
+ delta = get_delta(&rt, &master_time_stamp);
+- if (delta == 0) {
++ if (delta == 0)
+ done = 1; /* let's lock on to this... */
+- bound = rt;
+- }
+
+ if (!done) {
+ if (i > 0) {
+@@ -933,13 +931,12 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
+ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
+ {
+ void *pg_addr;
+- int this_cpu;
+ u64 data0;
+
+ if (tlb_type == hypervisor)
+ return;
+
+- this_cpu = get_cpu();
++ preempt_disable();
+
+ #ifdef CONFIG_DEBUG_DCFLUSH
+ atomic_inc(&dcpage_flushes);
+@@ -964,7 +961,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
+ }
+ __local_flush_dcache_page(page);
+
+- put_cpu();
++ preempt_enable();
+ }
+
+ void __irq_entry smp_new_mmu_context_version_client(int irq, struct pt_regs *regs)
+diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
+index 42ad2ba..9456472 100644
+--- a/arch/sparc/kernel/traps_64.c
++++ b/arch/sparc/kernel/traps_64.c
+@@ -2152,7 +2152,7 @@ static void user_instruction_dump(unsigned int __user *pc)
+
+ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
+ {
+- unsigned long fp, thread_base, ksp;
++ unsigned long fp, ksp;
+ struct thread_info *tp;
+ int count = 0;
+ #ifdef CONFIG_FUNCTION_GRAPH_TRACER
+@@ -2173,7 +2173,6 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
+ flushw_all();
+
+ fp = ksp + STACK_BIAS;
+- thread_base = (unsigned long) tp;
+
+ printk("Call Trace:\n");
+ do {
+--
+1.7.4.1
+
OpenPOWER on IntegriCloud