From 86c191c4cb6365aa142e478db01554e8d51b6008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20Rodr=C3=ADguez?= Date: Sun, 14 Oct 2012 22:54:48 +0200 Subject: [PATCH] Deleted files no longer needed --- helpers/DATA/linux/deblob/deblob-3.0 | 2445 ----------------- helpers/DATA/plymouth/trisquel-logo-sugar.png | Bin 37260 -> 0 bytes helpers/DATA/plymouth/trisquel-logo.png | Bin 29656 -> 0 bytes helpers/DATA/plymouth/trisquel-logo16.png | Bin 1958 -> 0 bytes 4 files changed, 2445 deletions(-) delete mode 100755 helpers/DATA/linux/deblob/deblob-3.0 delete mode 100644 helpers/DATA/plymouth/trisquel-logo-sugar.png delete mode 100644 helpers/DATA/plymouth/trisquel-logo.png delete mode 100644 helpers/DATA/plymouth/trisquel-logo16.png diff --git a/helpers/DATA/linux/deblob/deblob-3.0 b/helpers/DATA/linux/deblob/deblob-3.0 deleted file mode 100755 index afccd6f..0000000 --- a/helpers/DATA/linux/deblob/deblob-3.0 +++ /dev/null @@ -1,2445 +0,0 @@ -#!/bin/sh - -# Copyright (C) 2008, 2009, 2010, 2011 Alexandre Oliva -# Copyright (C) 2008 Jeff Moe -# Copyright (C) 2009 Rubén Rodríguez -# -# 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=3.0 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/gpu/drm/nouveau/nva3_copy.fuc.h \ - drivers/gpu/drm/nouveau/nva3_copy.fuc \ - drivers/gpu/drm/nouveau/nvc0_copy.fuc.h \ - drivers/gpu/drm/nouveau/nva3_copy.fuc \ - 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 \ - firmware/isci/isci_firmware.bin.ihex \ - drivers/scsi/isci/firmware/create_fw.c \ -; 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 , -2,5 s,Linux version [0-9.]*,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 \ -\ -#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 - -######## -# tty # -######## - -announce COMPUTONE - "Computone IntelliPort Plus serial" -drop_fw_file firmware/intelliport2.bin.ihex firmware/intelliport2.bin -reject_firmware drivers/staging/tty/ip2/ip2main.c -clean_blob drivers/staging/tty/ip2/ip2main.c -clean_kconfig drivers/staging/tty/Kconfig 'COMPUTONE' -clean_mk CONFIG_COMPUTONE drivers/staging/tty/Makefile - -announce CYCLADES - "Cyclades async mux support" -reject_firmware drivers/tty/cyclades.c -clean_blob drivers/tty/cyclades.c -clean_kconfig drivers/tty/Kconfig 'CYCLADES' -clean_mk CONFIG_CYCLADES drivers/tty/Makefile - -announce ISI - "Multi-Tech multiport card support" -reject_firmware drivers/tty/isicom.c -clean_blob drivers/tty/isicom.c -clean_kconfig drivers/tty/Kconfig 'ISI' -clean_mk CONFIG_ISI drivers/tty/Makefile - -announce MOXA_INTELLIO - "Moxa Intellio support" -reject_firmware drivers/tty/moxa.c -clean_blob drivers/tty/moxa.c -clean_kconfig drivers/tty/Kconfig 'MOXA_INTELLIO' -clean_mk CONFIG_MOXA_INTELLIO drivers/tty/Makefile - -# gpu drm - -announce DRM_NOUVEAU - "Nouveau (nVidia) cards" -reject_firmware drivers/gpu/drm/nouveau/nvc0_graph.c -clean_blob drivers/gpu/drm/nouveau/nvc0_graph.c -clean_kconfig drivers/gpu/drm/nouveau/Kconfig 'DRM_NOUVEAU' -clean_mk CONFIG_DRM_NOUVEAU drivers/gpu/drm/nouveau/Makefile - -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 -reject_firmware drivers/gpu/drm/radeon/ni.c -clean_blob drivers/gpu/drm/radeon/ni.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" -reject_firmware drivers/media/dvb/dvb-usb/dib0700_devices.c -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_TECHNISAT_USB2 - "Technisat DVB-S/S2 USB2.0 support" -clean_blob drivers/media/dvb/dvb-usb/technisat-usb2.c -clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_TECHNISAT_USB2' -clean_mk CONFIG_DVB_USB_TECHNISAT_USB2 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_DRXD - "Micronas DRXD driver" -reject_firmware drivers/media/dvb/frontends/drxd_hard.c -clean_blob drivers/media/dvb/frontends/drxd_hard.c -clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_DRXD' -clean_mk CONFIG_DVB_DRXD 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 -reject_firmware drivers/media/video/cx23885/cx23885-cards.c -clean_blob drivers/media/video/cx23885/cx23885-cards.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 - "left-over DABUSB firmware" -clean_fw firmware/dabusb/bitstream.bin.ihex firmware/dabusb/bitstream.bin -clean_fw firmware/dabusb/firmware.HEX firmware/dabusb/firmware.fw - -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_GSPCA_VICAM - "USB 3com HomeConnect, AKA vicam" -drop_fw_file firmware/vicam/firmware.H16 firmware/vicam/firmware.fw -reject_firmware drivers/media/video/gspca/vicam.c -clean_blob drivers/media/video/gspca/vicam.c -clean_kconfig drivers/media/video/gspca/Kconfig 'USB_GSPCA_VICAM' -clean_mk CONFIG_USB_GSPCA_VICAM drivers/media/video/gspca/Makefile - -# radio - -announce RADIO_WL1273 - "Texas Instruments WL1273 I2C FM Radio" -reject_firmware drivers/media/radio/radio-wl1273.c -clean_blob drivers/media/radio/radio-wl1273.c -clean_kconfig drivers/media/radio/Kconfig 'RADIO_WL1273' -clean_mk CONFIG_RADIO_WL1273 drivers/media/radio/Makefile - -announce RADIO_WL128X - "Texas Instruments WL128x FM Radio" -clean_blob drivers/media/radio/wl128x/fmdrv_common.h -reject_firmware drivers/media/radio/wl128x/fmdrv_common.c -clean_blob drivers/media/radio/wl128x/fmdrv_common.c -clean_kconfig drivers/media/radio/Kconfig 'RADIO_WL128X' -clean_mk CONFIG_RADIO_WL128X drivers/media/radio/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.2.1a.fw.ihex firmware/bnx2/bnx2-mips-09-6.2.1a.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.2.1.fw.ihex firmware/bnx2/bnx2-mips-06-6.2.1.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.2.9.0.fw.ihex firmware/bnx2x/bnx2x-e1-6.2.9.0.fw -drop_fw_file firmware/bnx2x/bnx2x-e1h-6.2.9.0.fw.ihex firmware/bnx2x/bnx2x-e1h-6.2.9.0.fw -drop_fw_file firmware/bnx2x/bnx2x-e2-6.2.9.0.fw.ihex firmware/bnx2x/bnx2x-e2-6.2.9.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" -reject_firmware drivers/net/r8169.c -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 - -announce VXGE - "Exar X3100 Series 10GbE PCIe Server Adapter" -reject_firmware drivers/net/vxge/vxge-main.c -clean_blob drivers/net/vxge/vxge-main.c -clean_kconfig drivers/net/Kconfig 'VXGE' -clean_mk CONFIG_VXGE drivers/net/vxge/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 -reject_firmware drivers/net/tokenring/3c359.c -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 BRCMSMAC_PCI - "Broadcom IEEE802.11n PCIe SoftMAC WLAN driver" -clean_blob drivers/staging/brcm80211/README -reject_firmware drivers/staging/brcm80211/brcmsmac/wl_mac80211.c -clean_blob drivers/staging/brcm80211/brcmsmac/wl_mac80211.c -clean_kconfig drivers/staging/brcm80211/Kconfig 'BRCMSMAC' -clean_mk CONFIG_BRCMSMAC drivers/staging/brcm80211/Makefile - -announce BRCMFMAC - "Broadcom IEEE802.11n embedded FullMAC WLAN driver" -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_blob drivers/staging/wlags49_h2/ap_h2.c -clean_blob drivers/staging/wlags49_h2/sta_h2.c -echo 'extern int deblobbed; /*(DEBLOBBED)*/' > drivers/staging/wlags49_h2/ap_h2.c -echo 'extern int deblobbed; /*(DEBLOBBED)*/' > drivers/staging/wlags49_h2/sta_h2.c -clean_blob drivers/staging/wlags49_h2/wl_profile.c -clean_sed ' - s,\(.*hcf_status = \)dhf_download_fw(.*&fw_image );,//& /*(DEBLOBBED)*/\n\1HCF_ERR_INCOMP_FW;, -' drivers/staging/wlags49_h2/wl_main.c 'reject built-in non-Free firmware' -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" -# Some pieces of the firmware images are most definitely data, but -# others seem to be code. -clean_blob drivers/staging/wlags49_h2/ap_h25.c -clean_blob drivers/staging/wlags49_h2/sta_h25.c -echo 'extern int deblobbed; /*(DEBLOBBED)*/' > drivers/staging/wlags49_h2/ap_h25.c -echo 'extern int deblobbed; /*(DEBLOBBED)*/' > 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/iwlegacy/iwl3945-base.c -clean_blob drivers/net/wireless/iwlegacy/iwl3945-base.c -clean_blob drivers/net/wireless/iwlegacy/iwl-3945.h -clean_kconfig drivers/net/wireless/iwlegacy/Kconfig 'IWL3945' -clean_mk CONFIG_IWL3945 drivers/net/wireless/iwlegacy/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_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_blob drivers/net/wireless/iwlwifi/iwl-2000.c -clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWLAGN' -clean_mk CONFIG_IWLAGN drivers/net/wireless/iwlwifi/Makefile - -announce IWL4965 - "Intel Wireless WiFi 4965AGN" -reject_firmware drivers/net/wireless/iwlegacy/iwl4965-base.c -clean_blob drivers/net/wireless/iwlegacy/iwl4965-base.c -clean_blob drivers/net/wireless/iwlegacy/iwl-4965.c -clean_kconfig drivers/net/wireless/iwlegacy/Kconfig 'IWL4965' -clean_mk CONFIG_IWL4965 drivers/net/wireless/iwlegacy/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 MWIFIEX_SDIO - "Marvell WiFi-Ex Driver" -clean_blob drivers/net/wireless/mwifiex/README -reject_firmware drivers/net/wireless/mwifiex/main.c -clean_blob drivers/net/wireless/mwifiex/main.h -clean_blob drivers/net/wireless/mwifiex/sdio.c -clean_kconfig drivers/net/wireless/mwifiex/Kconfig 'MWIFIEX_SDIO' -clean_mk CONFIG_MWIFIEX_SDIO drivers/net/wireless/mwifiex/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/include/osapi_linux.h -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 RTL8192CE - "Realtek RTL8192CE/RTL8188CE Wireless Network Adapter" -reject_firmware drivers/net/wireless/rtlwifi/rtl8192ce/sw.c -clean_blob drivers/net/wireless/rtlwifi/rtl8192ce/sw.c -clean_kconfig drivers/net/wireless/rtlwifi/Kconfig RTL8192CE -clean_mk CONFIG_RTL8192CE drivers/net/wireless/rtlwifi/rtl8192ce/Makefile - -announce RTL8192CU - "Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter" -reject_firmware drivers/net/wireless/rtlwifi/rtl8192cu/sw.c -clean_blob drivers/net/wireless/rtlwifi/rtl8192cu/sw.c -clean_kconfig drivers/net/wireless/rtlwifi/Kconfig RTL8192CU -clean_mk CONFIG_RTL8192CU drivers/net/wireless/rtlwifi/rtl8192cu/Makefile - -announce RTL8192SE - "Realtek RTL8192SE/RTL8191SE PCIe Wireless Network Adapter" -reject_firmware drivers/net/wireless/rtlwifi/rtl8192se/sw.c -clean_blob drivers/net/wireless/rtlwifi/rtl8192se/sw.c -clean_kconfig drivers/net/wireless/rtlwifi/Kconfig RTL8192SE -clean_mk CONFIG_RTL8192SE drivers/net/wireless/rtlwifi/rtl8192se/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_kconfig drivers/staging/rtl8192u/Kconfig 'RTL8192U' -clean_mk CONFIG_RTL8192U drivers/staging/rtl8192u/Makefile - -announce R8712U - "RealTek RTL8712U (RTL8192SU) Wireless LAN NIC driver" -reject_firmware drivers/staging/rtl8712/hal_init.c -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" -reject_firmware drivers/staging/vt6656/firmware.c -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 WL12XX - "TI wl12xx support" -reject_firmware drivers/net/wireless/wl12xx/main.c -clean_blob drivers/net/wireless/wl12xx/wl12xx.h -clean_kconfig drivers/net/wireless/wl12xx/Kconfig 'WL12XX' -clean_mk CONFIG_WL12XX drivers/net/wireless/wl12xx/Makefile - -announce WL12XX_SDIO - "TI wl12xx SDIO support" -clean_blob drivers/net/wireless/wl12xx/sdio.c -clean_kconfig drivers/net/wireless/wl12xx/Kconfig 'WL12XX_SDIO' -clean_mk CONFIG_WL12XX_SDIO drivers/net/wireless/wl12xx/Makefile - -announce WL12XX_SDIO_TEST - "TI wl12xx SDIO testing support" -reject_firmware drivers/net/wireless/wl12xx/sdio_test.c -clean_kconfig drivers/net/wireless/wl12xx/Kconfig 'WL12XX_SDIO_TEST' -clean_mk CONFIG_WL12XX_SDIO_TEST drivers/net/wireless/wl12xx/Makefile - -announce WL12XX_SPI - "TI wl12xx SPI support" -clean_blob drivers/net/wireless/wl12xx/spi.c -clean_kconfig drivers/net/wireless/wl12xx/Kconfig 'WL12XX_SPI' -clean_mk CONFIG_WL12XX_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 - -# CAN - -announce CAN_SOFTING - "Softing Gmbh CAN generic support" -reject_firmware drivers/net/can/softing/softing_fw.c -clean_kconfig drivers/net/can/softing/Kconfig 'CAN_SOFTING' -clean_mk CONFIG_CAN_SOFTING drivers/net/can/softing/Makefile - -announce CAN_SOFTING_CS - "Softing Gmbh CAN pcmcia cards" -clean_blob drivers/net/can/softing/softing_cs.c -clean_blob drivers/net/can/softing/softing_platform.h -clean_sed ' -/^config CAN_SOFTING_CS$/,${ - /You need firmware/i\ - /*(DEBLOBBED)*/ - /You need firmware/,/softing-fw.*tar\.gz/d -}' drivers/net/can/softing/Kconfig 'removed firmware notes' -clean_kconfig drivers/net/can/softing/Kconfig 'CAN_SOFTING_CS' -clean_mk CONFIG_CAN_SOFTING_CS drivers/net/can/softing/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/tty/serial/serial_cs.c -# clean_kconfig drivers/tty/serial/Kconfig 'SERIAL_8250_CS' -# clean_mk CONFIG_SERIAL_8250_CS drivers/tty/serial/Makefile - -announce SERIAL_ICOM - "IBM Multiport Serial Adapter" -reject_firmware drivers/tty/serial/icom.c -clean_blob drivers/tty/serial/icom.c -clean_kconfig drivers/tty/serial/Kconfig 'SERIAL_ICOM' -clean_mk CONFIG_SERIAL_ICOM drivers/tty/serial/Makefile - -announce SERIAL_QE - "Freescale QUICC Engine serial port support" -reject_firmware drivers/tty/serial/ucc_uart.c -clean_blob drivers/tty/serial/ucc_uart.c -clean_kconfig drivers/tty/serial/Kconfig 'SERIAL_QE' -clean_mk CONFIG_SERIAL_QE drivers/tty/serial/Makefile - -######### -# input # -######### - -announce TOUCHSCREEN_ATMEL_MXT - "Atmel mXT I2C Touchscreen" -reject_firmware drivers/input/touchscreen/atmel_mxt_ts.c -clean_blob drivers/input/touchscreen/atmel_mxt_ts.c -clean_kconfig drivers/input/touchscreen/Kconfig 'TOUCHSCREEN_ATMEL_MXT' -clean_mk CONFIG_TOUCHSCREEN_ATMEL_MXT 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 - - -####### -# MMC # -####### - -announce MMC_VUB300 - "VUB300 USB to SDIO/SD/MMC Host Controller support" -clean_sed ' -/^config MMC_VUB300/,/^config /{ - /Some SDIO cards/i\ - /*(DEBLOBBED)*/ - /Some SDIO cards/,/obtainable data rate\.$/d -} -' drivers/mmc/host/Kconfig "removed firmware notes" -reject_firmware drivers/mmc/host/vub300.c -clean_blob drivers/mmc/host/vub300.c -clean_kconfig drivers/mmc/host/Kconfig 'MMC_VUB300' -clean_mk CONFIG_MMC_VUB300 drivers/mmc/host/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" -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_LPFC - "Emulex LightPulse Fibre Channel Support" -# The firmware name is built out of Vital Product Data read from the -# adapter. The firmware is definitely code, and I couldn't find -# evidence it is Free, so I'm disabling it. It's not clear whether -# this is the hardware or the software inducing to the installation of -# non-Free firmware. -reject_firmware drivers/scsi/lpfc/lpfc_init.c -clean_kconfig drivers/scsi/Kconfig 'SCSI_LPFC' -clean_mk CONFIG_SCSI_LPFC drivers/scsi/lpfc/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_STORAGE_ENE_UB6250 - "USB ENE card reader support" -reject_firmware drivers/usb/storage/ene_ub6250.c -clean_blob drivers/usb/storage/ene_ub6250.c -clean_kconfig drivers/usb/storage/Kconfig 'USB_STORAGE_ENE_UB6250' -clean_mk 'CONFIG_USB_STORAGE_ENE_UB6250' drivers/usb/storage/Makefile - -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" -reject_firmware drivers/staging/intel_sst/intel_sst_drv_interface.c -clean_blob 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 codecs" -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_WM8994 - "WM8994 ALSA Soc Audio codecs" -reject_firmware sound/soc/codecs/wm8958-dsp2.c -clean_blob sound/soc/codecs/wm8958-dsp2.c -clean_kconfig sound/soc/codecs/Kconfig 'SND_SOC_WM8994' -clean_mk CONFIG_SND_SOC_WM8994 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 - -announce SND_USB_6FIRE - "TerraTec DMX 6Fire USB" -reject_firmware sound/usb/6fire/firmware.c -clean_blob sound/usb/6fire/firmware.c -clean_kconfig sound/usb/Kconfig 'SND_USB_6FIRE' -clean_mk 'CONFIG_SND_USB_6FIRE' sound/usb/6fire/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/helpers/DATA/plymouth/trisquel-logo-sugar.png b/helpers/DATA/plymouth/trisquel-logo-sugar.png deleted file mode 100644 index aebf45aca40e39d20b710f84c3dad0bffd4e0fb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37260 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

-`%e_xH>ADU`6F{%&6&1VGqN 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�znm~IJqc5km%z<& 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

G&IB+W=$qBCtQb9Mib zY`k32vyyb|&I5^ere~R*oL8}?MB;=YrlkblA)HoXLM6O5tQG+!OV^5e%Bbfve8MZc z9irmuvh&uwpREr33*cUHshj%_#iYiArr2x7bJM&oDElkniG>5_-QoIUc=&%qRhaPn z_H#!?N1yXiZa4fsY1m5Wr4f39g#IjCb4RUY;On=X_N+sLrR8^~)12L8T-~A=%k`HR zX3U+~#E;Qm1+2(vJAK{?d?x>W%5)&_%lTLq#B2maE+W(ANd}i!MuFW-` zimq(l_2#THeIG(2_REx3?&#av1x%>e;?r zqxbepSCF#0Fh~)MvFhOTL2s+C`RA3E|ANysKU=V-J=>_>t$L&PSc|lgbikF$S4qk5;de z5+I;kvS-PUA8mxt%4rfThz`G5x7!MNg0`_^muy>FcKe)UU<}I)y=5snxtoZz$7OrB zsg$c*nBg&q`xNBl76m)K&~k!?WFN%id3kt(z~H5j%d~{EbZG^dM`NEuxfb_7B+*e( zPm(QQpIetjyngnj!<`zFtKh_BK#V=-ONUSITd~?;3q4KKA}Nb?>UveRxv!R$wRskN z{~cQ{1}fGYkZVb(1fjO!yM0RLj*W={p7Ok79RP)uYiRK@YhskfBVrwU%qv3 zKW|~VA1y9aYpz3PBjjF5xM|KB_YZ@n*ST)ko$rl$+lB(PpWIhGaBnoq`1rANGt)n& zGZbfSBwOaH(6IU%q5PA20SsBgRNS)&VllX^b_-t4kR85o6nD zlXkJ(42&bczaN(la^0Ij@j=`K?sCrdwhe(?z~P|_yuhkT6r5e4Jv9IDzR+tD(~NM` zpi%3fMV*9YomWp7Bcv}4-p31(kMSgTtIasu4N-x z!G3Ny?*84{VhjrdNDllyEhA$iH8oX%-vh?2kV@ObbTH7;ooOGzG=UsOX`+xs+W$Z< zXYA(&!s@4E@kv|0mzK;CfjcL{LRD8!rU-psU{>6;eY^E&w>eE=`0v>VknU5PIFx0G zo=sMo5!pwEt^5C|D`vduyCIgt|C7yF+Ol_-vwDVaj6l{AD9+`TdQU8x{2ls+5Ub)_0WZ=(Ut;R$v?ps%gXF zYRX2~OR40Bl^4kKAG4nwGB z|L{ZiR4qOjiao+oL9}}@YblXAU!VXO=dGDCP#>QV7DJg4Nl52WD?LPH4hE@$E=*IFxXOQSY9s zJ@>{~%%`<4qU_Qk9-Afl; z^|p7l2;^=qKidd@O?_T6$w`FS$CyF6fQzS~iL7u@8`R#$asWSb zd}jE4A%&}FS2kD`l^#{X)<3r4>6pt{b>g*9Yrs~~iyM+{ZU(QL%lKe5hLVuf%menY z)YM$Ymk!9{M3~6wlJT^6Ydfr^P_CGlT~9q8hpBZ|UgB2=GR2d&M6d#bOm%Seci7C+ zGZm^Ucu;I>4D?`dfMARercB@8c~>?vt$-@lxJ@B=5}@N|Sse}<<>Z(1<~mr$;X_45 zMIFFcIgtLEJk`?joyoA>*`;Cb39s6DTL2Q=0)XD7#*~4qGr|7uE}-~NlMw-Hypp-b zH$B|8v;wQ$GFVN)-J&z``!)1t?gQNK>%#Oj+!uJMny{mrhr9Xs%>OJzDDD5uYAXN= z$6|$4d= zok1`5dk&^M-Gkjl5WWQ%(AEbu{#pQ?3&Kc?vWkke?~h)XAF|&R@iW2l zfF}%SWOD>?pq~WzobDOf@_!WcIpc)sT+?uVJ%Yg)&gVxKspT%MOLcHqO-_ZL%Jk@? zZ===+CY+!l{~erzSAHW*4lL)F#39d0EWp)6NOufoo;6_l3f@g4`#ZqnZef7}FVqDS zBBY^^=V(5DK=Gk%p(4P4xpUxaWn}`nwFId$1`X_LVJ1KTjDWdHyG diff --git a/helpers/DATA/plymouth/trisquel-logo16.png b/helpers/DATA/plymouth/trisquel-logo16.png deleted file mode 100644 index 14303c5c8578e55f8407fd7b89e09c9f679a6b4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1958 zcmV;X2U+-uP)Px#Fi=cXMF0T+00Ra92NMAdApjFJ1tU%oG-eGvdJa*jC{>dpSD_hSx-oIWM02x1 zd&E;sd*W=eOqSCYv>h%j459|1pTTM-tR^sNS-3LFY`@S;B8!P$=Y;H@dHmw-!djZ?tjOoq4k|q+uSz10elQ3->>! zEzi3@vWpfMYqi?N3$_v63LS8G`KSOmq&MBA!JdiuR50Xvt%`H~FD-|cB4Pvnrlve^ zfHg=zRI9gO%FxQzg?=&Op{5-)t_qXS93f;z9vm`5!1WHqh45z5k)RT!e+OyOhY4AT ziq4od4se2KRfC$vBdfui)S0R*pfVx%icx1iW-O|Q2*+Cr=#)O(Z;=JJmrX+MAM7u) z%+>&}+RqHobefC&?&9IQA;e_2Kj8ZjL>q?;SH{>>&NLm@@!Ta&CsYXw6Lf$e1_^J0 zOh!`-8$6!@jOV%@S>V5!#2A2BZTcXDNQWGtPf0;C5=8wBA+F~UPA9!t4SILrURDq* zZGSU_XmgJ9W%ypn;8{pQ+y&Mf^@m0=SZpIJNJlAsaj;*P>qc7vWy&4_46j<62#Qxf zf^6z}>i}UNn-25tlrOH~{r)}Ode7?Q;)c+CcR?l~7H>721!dnK2RBrxsa*oW5u$et<6Q4Ir zGN;!cUW5A}eWTOuod_13n&NEJrW)8V=V75p`-1q;ozXxoL61wakg4>#z3s3|saXO` zMfx(%p+b4BnuWZSMU@q)wwXu-4uML+%wnp2@|fIJ`A>6vm5 z;!!bzG-P0{E%Q0Q7-5`cS+;hhPBL#Yh%M}_1?W%-H=qxT(bs7Q;<*ti!!$#@9*rPv zs7W*f`l$0&_~Umd?RIPz9{;)S#7Z9naUj{V8BWDwzTZTlJz9wX|pZud1V1ykN&ys7MD2msDqTzvBk{T)VtjeI(z zPj5qs;;|6$H(bm$^zQBxJarU)eqsa7r+bf}FX{IqfWu|*t^VRx+|egpmVT`&V}(h(OulywcZb<|RgySYsdyGVe=joI!pYMafN@ zI?Eu{;y#?A&Jat+e$1rlIIg>Ja32U{!NJ$!QmPE=#!v!JDIQ*Oyj6n>i+OS~iFXx` zxDNL&NI&I)qpHT6J!#w_OU%2dmV4{s_hc#Fhk|-K-U)uVE&{c4vCpQN~&^97LUO4k=6HW=?ZCNW7a}g z$55r8MX=WHWn)Ikv&dHD*Q|%jdlNvNA`Bv!EB!u|cMRgYBQ?<^Z2H>mexKg+V<6H| zFeWzi_QOUgJWa@hk(m7gkVY0Ea|MHp@howW3gLzrX{WCNlYwRxy16%mS?IMD=(2*( z{c;^#NxI^{h+&NWD*r&#Hfz<1Nl@L^ReZ_v$HT|)Xi_32~wfQ1U? zdYe9um2_FE_>^p2#Rj;f8??KP69}e0&wSsLDn2>i?a;>wo?4Mq21I)cydUk**U28i z^=ZIB0!shht|oiX7x5Q>=ybZ>Zo^QL9Wn*;bLL_@TUU)lWpR