reject_firmware () {
#$1 = file
clean_sed '
-s,request\(_ihex\|\)_firmware,reject_firmware,
+s,request\(_ihex\)\?_firmware\(_nowait\)\?,reject_firmware\2,
' "$1" 'disabled non-Free firmware-loading machinery'
}
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'
# 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"
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_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_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_BCM3510'
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_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_blob 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/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 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 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 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 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\|PERM\)_FILE$/, /^config / {
+ /^ default.*msnd\(init\|perm\)\.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\|PERM\)_FILE$/, /^config / {
+ /^ default.*pndsp\(ini\|erm\)\.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
blob 'yamaha[/]yss225_registers\.bin' sound/isa/wavefront/wavefront_fx.c
blobna 'firmware = [&]yss225_registers_firmware;' sound/isa/wavefront/wavefront_fx.c
blob 'static const struct firmware yss225_registers_firmware = {[^;]*};' sound/isa/wavefront/wavefront_fx.c
- blob 'wavefront\.os' sound/isa/wavefront/wavefront_synth.c
+ blob 'ospath[ ]*- Pathname[^\n]ICS2115.*wavefront\.os\([^\n]\|[^.][\n]\)*' Documentation/sound/alsa/ALSA-Configuration.txt
+ blobname 'wavefront\.os' sound/isa/wavefront/wavefront_synth.c
blobna 'and[\n]require the use of[^\n]*propr\?ietary[^:]*' Documentation/arm/IXP4xx
blob 'If you need to use any of the above[^\n]*download[^:]*:[\n ]*http:[^\n]*ixp4[^\n]*' Documentation/arm/IXP4xx
# doesn't require any non-Free firwmare to function, and it
# doesn't actually recommend users to perform updates, so I'm
# leaving it in.
- accept ' req_firm_rc = request_firmware_nowait([^;], "dell_rbu",' drivers/firmware/dell_rbu.c
+ accept ' req_firm_rc = request_firmware_nowait([^;]*, "dell_rbu",' drivers/firmware/dell_rbu.c
+ accept ' *"dell_rbu:%s request_firmware_nowait"' drivers/firmware/dell_rbu.c
blobname 'xc3028-v27\.fw' drivers/media/common/tuners/tuner-xc2028.h
blobname 'xc3028L-v36\.fw' drivers/media/common/tuners/tuner-xc2028.h
accept ' [*] request_firmware() is synchronous' 'drivers/net/iwlwifi/iwl\(3945-base\|-agn\)\.c'
blobname 'libertas_cs\(_helper\)\?\.fw' drivers/net/wireless/libertas/if_cs.c
-
blobname 'sd\(8385\|8686\)\(_helper\)\?\.bin' drivers/net/wireless/libertas/if_sdio.c
-
blobname 'usb8388\(-5\.126\.0\.p5\)\?\.bin' drivers/net/wireless/libertas/if_usb.c
- accept ' lbs_pr_err("request_firmware() failed' drivers/net/wireless/ipw2200.c
+ accept ' lbs_pr_err("request_firmware() failed' drivers/net/wireless/if_usb.c
+ blobna 'o\. Copy the firmware image[^\n]*usb8388\([^\n]\|[\n][ ]*[^ \n]\)*' drivers/net/wireless/libertas/README
+ blobna '\[fw_name=usb8388[^]]*\]' drivers/net/wireless/libertas/README
+
+ blobname 'usb8388\.bin' drivers/base/Kconfig
blobname 'lbtf_usb\.bin' drivers/net/wireless/libertas_tf/if_usb.c
blobname 'isl38\(86\|87usb_bare\|90usb\)' 'drivers/net/wireless/p54/p54\(pci\.c\|usb\.[ch]\)'
+ blobna 'If you enable this\([^\n]\|[\n][ ]*[^ \n]\)*isl3890\([^\n]\|[\n][ ]*[^ \n]\)*' drivers/net/wireless/Kconfig
blobname 'isl38\(77\|86\|90\)' drivers/net/wireless/prism54/islpci_dev.c
blobname '\(pcxhr[/]\)\?\(x[ic]_1_882\.dat\|[ebd]321_512\.[ebd]56\)' sound/pci/pcxhr/pcxhr_hwdep.c
+ blobna 'You need to install[\n]*riptide\.hex[\n]\.[\n]' Documentation/sound/alsa/ALSA-Configuration.txt
blobname 'riptide\.hex' sound/pci/riptide/riptide.c
blobname '\(multi\|digi\)face_firmware\(_rev11\)\?\.bin' sound/pci/rme9652/hdsp.c
accept ' PERMCODESIZE = mod_firmware_load(PERMCODEFILE, [&]PERMCODE);' sound/oss/msnd_pinnacle.c
blobname '\([/]etc[/]sound[/]\)\?pndsp\(ini\|erm\)\.bin' sound/oss/msnd_pinnacle.h
blobname '\([/]etc[/]sound[/]\)\?msnd\(init\|perm\)\.bin' sound/oss/msnd_classic.h
+ blobna '\(Important Notes - Read Before Using\|Obtaining and Creating Firmware Files\)[\n]# ~*\([^\n]\|[\n]# *\([\n]# *\([\n]# *For the[^\n]*[\n]# *~*[\n]\)\?\)\?[^\n ]\)*\.' Documentation/sound/oss/MultiSound
accept ' len = mod_firmware_load(fn, [&]data);[\n] if [^{]* {[\n] printk(KERN_ERR "sscape:' sound/oss/sscape.c
blobname '[/]sndscape[/]scope\.co[dx]' sound/oss/sscape.c
accept ' smw_ucodeLen = mod_firwmare_load(' sound/oss/sb_common.c
blobname '\([/]etc[/]sound[/]\)\?msnd\(init\|perm\)\.bin' sound/oss/sb_common.c
+ blob 'When the module is loaded\([^\n]\|[\n][^\n]\)*[/]pss_synth\([^\n]\|[\n][^\n]\)*' Documentation/sound/oss/PSS
+ blob 'pss_firmware[ \n ]*This parameter\([^\n]\|[\n][^\n]\)*[/]pss_synth\([^\n]\|[\n][^\n]\)*' Documentation/sound/oss/PSS-updates
accept ' pss_synthLen = mod_firmware_load(pss_firmware' sound/oss/pss.c
blobname '\([/]etc[/]sound[/]\)\?pss_synth' sound/oss/pss.c
+ accept ' \$(obj)[/]bin2hex pss_synth' sound/oss/Makefile
+ accept ' *echo '"'"'static \(unsigned char [*] *\|int \)pss_synth\(Len\)\? = \(NULL\|0\);' sound/oss/Makefile
accept ' \.request_firmware = NULL,' drivers/media/dvb/dvb-usb/m920x.c
blobname 'dvb-usb-digitv-02\.fw' drivers/media/dvb/dvb-usb/digitv.c
+ blob 'Driver: \(korg1212\|maestro3\|ymfpci\|smctr\|kaweth\|ttusb-budget\|keyspan\|emi26\|emi62\|tu_usb_3410_5052\|whiteheat\|ip2\|CPiA2\|DABUSB\|USB_VICAM\|USB_SERIAL_EDGEPORT\(_TI\)\?\|SND_SB16_CSP\|CASSINI\) --* \([^\n]\|[\n]*[^\n\-]\)*\([\n][\n]--*[\n][\n]Driver: \(korg1212\|maestro3\|ymfpci\|smctr\|kaweth\|ttusb-budget\|keyspan\|emi26\|emi62\|tu_usb_3410_5052\|whiteheat\|ip2\|CPiA2\|DABUSB\|USB_VICAM\|USB_SERIAL_EDGEPORT\(_TI\)\?\|SND_SB16_CSP\|CASSINI\) --* \([^\n]\|[\n]*[^\n\-]\)*\)*' firmware/WHENCE
+
# This looks suspicious, but it pretty much just sets stuff to zero.
initnc 'static __u8 mode8420\(pro\|con\)\[\] =' drivers/media/video/cs8420.h