reject_firmware () {
#$1 = file
clean_sed '
-s,request\(_ihex\|\)_firmware,reject_firmware,
+s,request\(_ihex\)\?_firmware\(_nowait\)\?,reject_firmware\2,g
' "$1" 'disabled non-Free firmware-loading machinery'
}
+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
- for f in "$@"; do
- clean_sed "
- s,^#define $macro \"[^\"]*\",/*(DEBLOBBED)*/,;
- s,$macro,\"/*(DEBLOBBED)*/\",g" \
- "$f" "disabled non-Free firmware"
- done
+ undefine_macro "$macro" "\"/*(DEBLOBBED)*/\"" \
+ "disabled non-Free firmware" "$@"
}
# First, check that files that contain firmwares and their
#ifndef _LINUX_LIBRE_FIRMWARE_H\
#define _LINUX_LIBRE_FIRMWARE_H\
\
+#include <linux/device.h>\
+\
#define NONFREE_FIRMWARE "/*(DEBLOBBED)*/"\
\
static inline int\
return -EINVAL;\
}\
static inline int\
-reject_firmware(const struct firmware **fw,
+reject_firmware(const struct firmware **fw,\
const char *name, struct device *device)\
{\
- struct firmware *xfw = NULL;\
+ const struct firmware *xfw = NULL;\
int retval;\
- report_missing_free_firmware(device->name, NULL);\
+ report_missing_free_firmware(dev_name(device), NULL);\
retval = request_firmware(&xfw, NONFREE_FIRMWARE, device);\
if (!retval)\
release_firmware(xfw);\
void *context))\
{\
int retval;\
- report_missing_free_firmware(device->name, NULL);\
+ report_missing_free_firmware(dev_name(device), NULL);\
retval = request_firmware_nowait(module, uevent, NONFREE_FIRMWARE,\
device, NULL,\
discard_rejected_firmware);\
clean_kconfig drivers/char/Kconfig 'CYCLADES'
clean_mk CONFIG_CYCLADES drivers/char/Makefile
-announce ISI - "Multi-Tech multiport card support (EXPERIMENTAL)"
+announce ISI - "Multi-Tech multiport card support"
reject_firmware drivers/char/isicom.c
clean_blob drivers/char/isicom.c
clean_kconfig drivers/char/Kconfig 'ISI'
announce DRM_RADEON - "ATI Radeon"
clean_sed '
-/^static int radeon_do_init_cce([^;]*$/,/^}$/{
+/^static int radeon_do_init_cp([^;]*$/,/^}$/{
/^ radeon_cp_load_microcode(dev_priv);$/{
i\
DRM_ERROR("Missing Free microcode!\\n");\
radeon_do_cleanup_cp(dev);\
return -EINVAL;
}
-}
+}' drivers/gpu/drm/radeon/radeon_cp.c 'report missing Free microcode on init'
+clean_sed '
/^static int radeon_do_resume_cp([^;]*$/,/^}$/{
/^ radeon_cp_load_microcode(dev_priv);$/{
i\
DRM_ERROR("Missing Free microcode!\\n");\
return -EINVAL;
}
-}' drivers/gpu/drm/radeon/radeon_cp.c 'report missing Free microcode'
+}' drivers/gpu/drm/radeon/radeon_cp.c 'report missing Free microcode on resume'
+clean_blob drivers/gpu/drm/radeon/radeon_cp.c
clean_blob drivers/gpu/drm/radeon/radeon_microcode.h
clean_kconfig drivers/gpu/drm/Kconfig 'DRM_RADEON'
clean_mk CONFIG_DRM_RADEON drivers/gpu/drm/Makefile
# Media #
#########
-announce DVB - "non-Free firmware scripts and documentation"
-clean_blob Documentation/dvb/get_dvb_firmware
-clean_blob Documentation/dvb/avermedia.txt
-clean_blob Documentation/dvb/opera-firmware.txt
-clean_blob Documentation/dvb/ttusb-dec.txt
-
# media/tuner
announce MEDIA_TUNER_XC2028 - "XCeive xc2028/xc3028 tuners"
drivers/media/video/em28xx/em28xx-cards.c \
drivers/media/dvb/dvb-usb/dib0700_devices.c \
drivers/media/dvb/dvb-usb/cxusb.c
-clean_blob drivers/media/common/tuners/tuner-xc2028.h
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 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
reject_firmware drivers/media/common/tuners/xc5000.c
-clean_blob 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_blob 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
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 (see help for supported devices)"
+announce DVB_USB_DIB0700 - "DiBcom DiB0700 USB DVB devices"
clean_blob drivers/media/dvb/dvb-usb/dib0700_devices.c
clean_kconfig drivers/media/dvb/dvb-usb/Kconfig 'DVB_USB_DIB0700'
clean_mk CONFIG_DVB_USB_DIB0700 drivers/media/dvb/dvb-usb/Makefile
-announce DVB_USB_DIBUSB_MB - "DiBcom USB DVB-T devices (based on the DiB3000M-B) (see help for device list)"
+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) (see help for device list)"
+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
clean_mk CONFIG_DVB_USB_GP8PSK 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
clean_mk CONFIG_DVB_AF9013 drivers/media/dvb/frontends/Makefile
announce DVB_BCM3510 - "Broadcom BCM3510"
-undefault_firmware 'BCM3510' drivers/media/dvb/frontends/bcm3510.[ch]
+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
clean_mk CONFIG_DVB_NXT200X drivers/media/dvb/frontends/Makefile
announce DVB_OR51132 - "Oren OR51132 based"
-undefault_firmware 'OR51211' drivers/media/dvb/frontends/or51132.c
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 '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
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'
' drivers/media/dvb/ttpci/av7110_hw.c 'adjust bootcode loader'
clean_blob drivers/media/dvb/ttpci/av7110_hw.c
reject_firmware drivers/media/dvb/ttpci/av7110.c
-reject_firmware drivers/media/dvb/ttpci/av7110.c
clean_blob drivers/media/dvb/ttpci/av7110.c
+clean_sed '
+/^config DVB_AV7110_FIRMWARE_FILE$/, /^config / {
+ /^ default.*dvb-ttpci-01/ s,".*","/*(DEBLOBBED)*/",;
+}' drivers/media/dvb/ttpci/Kconfig 'removed default firmware'
+clean_kconfig -f drivers/media/dvb/ttpci/Kconfig 'DVB_AV7110_FIRMWARE'
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_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
-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 VIDEO_BT848 - "BT848 Video For Linux"
reject_firmware drivers/media/video/bt8xx/bttv-cards.c
-clean_blob 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
reject_firmware drivers/media/video/cx18/cx18-av-firmware.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-firmware.c
clean_kconfig drivers/media/video/cx18/Kconfig 'VIDEO_CX18'
clean_mk CONFIG_VIDEO_CX18 drivers/media/video/cx18/Makefile
announce VIDEO_SAA7134_DVB - "DVB/ATSC Support for saa7134 based TV cards"
reject_firmware drivers/media/video/saa7134/saa7134-dvb.c
-clean_blob 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
/^#include "bnx2x_init\.h"/,/^$/{
/^$/i\
#define bnx2x_init_block(bp, start, end) \\\
- return printk(KERN_ERR PFX "%s: Missing Free firmware\\n", bp->dev->name),\
- -EINVAL;
+ return (printk(KERN_ERR PFX "%s: Missing Free firmware\\n", bp->dev->name),\\\
+ -EINVAL)
}' drivers/net/bnx2x_main.c 'report missing Free firmware'
clean_kconfig drivers/net/Kconfig 'BNX2X'
clean_mk CONFIG_BNX2X drivers/net/Makefile
clean_mk CONFIG_CASSINI drivers/net/Makefile
announce CHELSIO_T3 - "Chelsio AEL 2005 support"
+reject_firmware drivers/net/cxgb3/cxgb3_main.c
clean_sed '
/^static int ael2005_setup_\(sr\|twinax\)_edc([^;]*$/,/^}$/{
/for.*ARRAY_SIZE(\(sr\|twinax\)_edc)/i\
-}\
CH_ERR(phy->adapter, "Missing Free firwmare\\n");\
err = -EINVAL;
}' drivers/net/cxgb3/ael1002.c 'report missing Free firmware'
+clean_blob drivers/net/cxgb3/cxgb3_main.c
clean_blob drivers/net/cxgb3/ael1002.c
clean_kconfig drivers/net/Kconfig 'CHELSIO_T3'
clean_mk CONFIG_CHELSIO_T3 drivers/net/cxgb3/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.h
clean_kconfig drivers/net/Kconfig 'SPIDER_NET'
clean_mk CONFIG_SPIDER_NET drivers/net/Makefile
# pcmcia
announce PCMCIA_SMC91C92 - "SMC 91Cxx PCMCIA"
-clean_blob drivers/net/pcmcia/ositech.h
clean_sed '
/^\(static int \)\?osi_setup([^;]*$/,/^}$/{
s/^\(.*\)[/][*] Download.*firmware [*][/]/\1printk(KERN_ERR "%s: Missing Free firmware\\n", dev->name);\n\1rc = -EINVAL;\n\1goto free_cfg_mem;\n&/
/^\(static int \)\?smc91c92_resume([^;]*$/,/^}$/{
s/^\(.*\)[/][*] Download.*firmware [*][/]/\1printk(KERN_ERR "%s: Missing Free firmware\\n", dev->name);\n\1return -EINVAL;\n&/
}' drivers/net/pcmcia/smc91c92_cs.c 'report another missing Free firmware'
+clean_blob drivers/net/pcmcia/ositech.h
+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
announce PCCARD - "PCCard (PCMCIA/CardBus) support"
reject_firmware drivers/pcmcia/ds.c
-clean_blob drivers/pcmcia/ds.c
clean_kconfig drivers/pcmcia/Kconfig 'PCCARD'
clean_mk CONFIG_PCCARD drivers/pcmcia/Makefile
clean_file drivers/net/tokenring/3c359_microcode.h
clean_sed '
/^\(static int \)\?xl_hw_reset([^;]*$/,/^}/{
- /printk.*Uploading Microcode/i\
+ /start = .*mc_size/i\
printk(KERN_ERR "%s: Missing Free firmware\\n", dev->name);\
return -EINVAL;
}' drivers/net/tokenring/3c359.c 'report missing Free firmware'
announce IWL3945 - "Intel PRO/Wireless 3945ABG/BG Network Connection"
reject_firmware drivers/net/wireless/iwlwifi/iwl3945-base.c
clean_blob drivers/net/wireless/iwlwifi/iwl3945-base.c
+clean_blob drivers/net/wireless/iwlwifi/iwl-3945.c
clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWL3945'
clean_mk CONFIG_IWL3945 drivers/net/wireless/iwlwifi/Makefile
announce IWLAGN - "Intel Wireless WiFi Next Gen AGN"
reject_firmware drivers/net/wireless/iwlwifi/iwl-agn.c
-clean_blob drivers/net/wireless/iwlwifi/iwl-agn.c
clean_kconfig drivers/net/wireless/iwlwifi/Kconfig 'IWLAGN'
clean_mk CONFIG_IWLAGN drivers/net/wireless/iwlwifi/Makefile
announce LIBERTAS_USB - "Marvell Libertas 8388 USB 802.11b/g cards"
reject_firmware drivers/net/wireless/libertas/if_usb.c
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 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_sed '
+/^config PRISM54$/,/^config /{
+ /If you enable this/,/^$/d;
+}' drivers/net/wireless/Kconfig 'removed firmware notes'
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_blob 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 SOUND_MSNDCLAS - "Support for Turtle Beach MultiSound Classic, Tahiti, Monterey"
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"
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 SOUND_SSCAPE - "Ensoniq SoundScape support"
-reject_firmware sound/oss/sscape.c
clean_blob sound/oss/sscape.c
clean_kconfig sound/oss/Kconfig 'SOUND_SSCAPE'
clean_mk CONFIG_SOUND_SSCAPE sound/oss/Makefile
announce SOUND_TRIX - "MediaTrix AudioTrix Pro support"
-reject_firmware sound/oss/trix.c
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 - "MediaTrix AudioTrix Pro support"
-announce SOUND_PAS - "ProAudioSpectrum 16 support"
+announce SOUND_TRIX - "See above,"
+announce SOUND_PAS - "ProAudioSpectrum 16 support,"
announce SOUND_SB - "100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support"
-reject_firmware sound/oss/sb_common.c
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_SB sound/oss/Makefile
announce SOUND_PSS - "PSS (AD1848, ADSP-2115, ESC614) support"
-reject_firmware sound/oss/pss.c
clean_blob sound/oss/pss.c
clean_kconfig sound/oss/Kconfig 'SOUND_PSS'
+clean_sed '
+/^config PSS_BOOT_FILE$/, /^config / {
+ /^ default.*dsp001\.ld/ s,".*","/*(DEBLOBBED)*/",;
+}' sound/oss/Kconfig 'removed default firmware'
clean_mk CONFIG_SOUND_PSS sound/oss/Makefile
+#################
+# Documentation #
+#################
+
+announce Documentation - "non-Free firmware scripts and documentation"
+clean_blob Documentation/dvb/avermedia.txt
+clean_blob Documentation/dvb/opera-firmware.txt
+clean_blob Documentation/dvb/ttusb-dec.txt
+clean_blob Documentation/sound/alsa/ALSA-Configuration.txt
+clean_blob Documentation/sound/oss/MultiSound
+clean_blob Documentation/sound/oss/PSS
+clean_blob Documentation/sound/oss/PSS-updates
+clean_file Documentation/dvb/get_dvb_firmware
+clean_file Documentation/video4linux/extract_xc3028.pl
+clean_blob drivers/base/Kconfig
+clean_blob firmware/WHENCE
+
exit 0