From 80e0a2a65279159f88440b0e6eb994ad228ca400 Mon Sep 17 00:00:00 2001 From: lxoliva Date: Sun, 8 Mar 2009 10:19:58 +0000 Subject: [PATCH] Revamped everything we already deblobbed before, save for staging drivers. git-svn-id: http://www.fsfla.org/svn/fsfla/software/linux-libre/scripts@4750 559672b5-ba27-0410-b829-e8f1faed8b1b --- deblob-2.6.28 | 280 ++++++++++++++++++++++++++++----------------- deblob-2.6.28-todo | 14 --- deblob-check | 84 ++++++++++++-- 3 files changed, 250 insertions(+), 128 deletions(-) diff --git a/deblob-2.6.28 b/deblob-2.6.28 index 0ffa4224a73..3d32e9eb052 100755 --- a/deblob-2.6.28 +++ b/deblob-2.6.28 @@ -215,7 +215,7 @@ for f in \ firmware/keyspan_pda/keyspan_pda.S \ firmware/keyspan_pda/xircom_pgs.HEX \ firmware/keyspan_pda/xircom_pgs.S \ - sound/pci/cs46xx/imgs/cwcbinhack.h \ + sound/pci/cs46xx/imgs/cwcdma.h \ sound/pci/cs46xx/imgs/cwcdma.asp \ ; do if test ! $f; then @@ -601,15 +601,27 @@ clean_mk CONFIG_COPS drivers/net/appletalk/Makefile # hamradio -# YAM - YAM driver for AX.25 -clean_blob drivers/net/hamradio/yam1200.h -clean_blob drivers/net/hamradio/yam9600.h +announce YAM - YAM driver for AX.25 +clean_sed '/add_mcs(bits_\(12\|96\)00, bitrate)/{ + i\ + printk(KERN_ERR "yam: Missing Free firmware\\n"); + s:add_mcs(bits_\(12\|96\)00, bitrate):NULL: +}' drivers/net/hamradio/yam.c +clean_blob drivers/net/hamradio/yam.c +clean_file drivers/net/hamradio/yam1200.h +clean_file drivers/net/hamradio/yam9600.h clean_kconfig drivers/net/hamradio/Kconfig 'YAM' clean_mk CONFIG_YAM drivers/net/hamradio/Makefile # pcmcia -# PCMCIA_SMC91C92 - SMC 91Cxx PCMCIA +announce PCMCIA_SMC91C92 - SMC 91Cxx PCMCIA +clean_sed '/^osi_setup(/,/^}/{ + s/^\(.*\)[/][*] Download.*firmware [*][/]/\1printk(KERN_ERR "%s: Missing Free firmware\\n", dev->name);\n\1rc = -EINVAL;\n\1goto free_cfg_mem;/ +}' drivers/net/pcmcia/smc91c92_cs.c +clean_sed '/^smc9192_resume(/,/^}/{ + s/^\(.*\)[/][*] Download.*firmware [*][/]/\1printk(KERN_ERR "%s: Missing Free firmware\\n", dev->name);\n\1return -EINVAL;/ +}' drivers/net/pcmcia/smc91c92_cs.c clean_blob drivers/net/pcmcia/ositech.h clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_SMC91C92' clean_mk CONFIG_PCMCIA_SMC91C92 drivers/net/pcmcia/Makefile @@ -617,27 +629,29 @@ clean_mk CONFIG_PCMCIA_SMC91C92 drivers/net/pcmcia/Makefile # tokenring -# 3C359 - 3Com 3C359 Token Link Velocity XL adapter -# No need to remove these, they don't contain non-Free code. -# clean_blob drivers/net/tokenring/3c359.c -# clean_blob drivers/net/tokenring/3c359.h -# This file is not under the GPL, better remove it all. +announce 3C359 - 3Com 3C359 Token Link Velocity XL adapter +clean_sed '/^xl_hw_reset(/,/^}/{ + /printk.*Uploading Microcode/i\ + printk(KERN_ERR "%s: Missing Free firmware\\n", dev->name);\ + return -EINVAL; +}' drivers/net/tokenring/3c359.c +clean_blob drivers/net/tokenring/3c359.c clean_file drivers/net/tokenring/3c359_microcode.h clean_kconfig drivers/net/tokenring/Kconfig '3C359' clean_mk CONFIG_3C359 drivers/net/tokenring/Makefile # SMCTR - SMC ISA/MCA adapter -# No need to remove these, they don't contain non-Free code. -# clean_blob drivers/net/tokenring/smctr.c -# clean_blob drivers/net/tokenring/smctr.h -# This file is not under the GPL, better remove it all. +reject_firmware drivers/net/tokenring/smctr.c +clean_blob drivers/net/tokenring/smctr.c drop_fw_file firmware/tr_smctr.bin.ihex firmware/tr_smctr.bin clean_kconfig drivers/net/tokenring/Kconfig 'SMCTR' clean_mk CONFIG_SMCTR drivers/net/tokenring/Makefile # usb -# USB_KAWETH - USB KLSI KL5USB101-based ethernet device support +announce USB_KAWETH - USB KLSI KL5USB101-based ethernet device support +reject_firmware drivers/net/kaweth.c +clean_blob drivers/net/kaweth.c 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 @@ -647,50 +661,72 @@ clean_mk CONFIG_USB_KAWETH drivers/net/usb/Makefile # wireless - - -######################## -# Removed s390 Drivers # -######################## - -# QETH - Gigabit Ethernet device support -clean_blob drivers/s390/net/qeth_core_mpc.c -clean_kconfig drivers/s390/net/Kconfig 'QETH' -clean_mk CONFIG_QETH drivers/s390/net/Makefile - - -##################### -# Removed SH boards # -##################### - -# SH_AP325RXA - Renesas AP-325RXA board -clean_blob arch/sh/boards/board-ap325rxa.c -clean_kconfig arch/sh/boards/Kconfig 'SH_AP325RXA' -clean_mk CONFIG_SH_AP325RXA arch/sh/boards/Makefile - -# SH_MIGOR - Reneasas Migo-R -clean_blob arch/sh/boards/mach-migor/lcd_qvga.c -s 16 -clean_blob arch/sh/boards/mach-migor/setup.c -clean_kconfig arch/sh/boards/Kconfig 'SH_MIGOR' -clean_kconfig arch/sh/boards/mach-migor/Kconfig 'SH_MIGOR_QVGA' -clean_mk CONFIG_SH_MIGOR_QVGA arch/sh/boards/mach-migor/Makefile +announce HERMES - Hermes chipset 802.11b support "(Orinoco/Prism2/Symbol)" +reject_firmware drivers/net/wireless/orinoco.c +clean_blob drivers/net/wireless/orinoco.c +clean_kconfig drivers/net/wireless/Kconfig 'HERMES' +clean_mk CONFIG_HERMES drivers/net/wireless/Makefile ######################## # Removed SCSI Drivers # ######################## -# SCSI_QLOGICPTI - PTI Qlogic, ISP Driver -clean_blob drivers/scsi/qlogicpti_asm.c +announce SCSI_QLOGICPTI - PTI Qlogic, ISP Driver +clean_sed '/^static int __devinit qlogicpti_load_firmware(/,/^}$/{ + /[&]sbus_risc_code01/i\ + printk(KERN_ERR "qlogicpti%d: Missing Free firmware\\n", qpti->qpti_id);\ + return -EINVAL; + s,[&]sbus_risc_code01\[0\],NULL, + s,sbus_risc_code_length01,0, +}' drivers/scsi/qlogicpti.c +clean_blob drivers/scsi/qlogicpti.c +clean_file drivers/scsi/qlogicpti_asm.c clean_kconfig drivers/scsi/Kconfig 'SCSI_QLOGICPTI' clean_mk CONFIG_SCSI_QLOGICPTI drivers/scsi/Makefile -# SCSI_ADVANSYS - AdvanSys SCSI +announce SCSI_ADVANSYS - AdvanSys SCSI +clean_sed '/ASC_DBG.*_asc_mcode_chksum);/d; +/^\(static ASC_CNT \)\?AscLoadMicroCode(/,/^}$/ { + /^}$/{p;i\ +#define AscLoadMicroCode(x1,x2,x3,x4) ((x1),(x2),(x3),(x4),printk(KERN_ERR "advansys: Missing Free firmware\\n"), -1) + d; + } +} +/^\(static int \)\?AdvLoadMicrocode(/,/^}$/ { + /^}$/{p;i\ +#define AdvLoadMicrocode(x1,x2,x3,x4,x5) ((x1),(x2),(x3),(x4),(x5),printk(KERN_ERR "advansys: Missing Free firmware\\n"), ASC_IERR_MCODE_CHKSUM) + d; + } +} +s/\([ (]\)_\(asc_mcode\|adv_asc3\(550\|8C\(08\|16\)00\)\)_buf,/\1NULL,/; +s/\([ ]\)_\(asc_mcode\|adv_asc3\(550\|8C\(08\|16\)00\)\)_size\([,)]\)/\1(unsigned short)0\5/; +s/\([ ]\)_\(asc_mcode\|adv_asc3\(550\|8C\(08\|16\)00\)\)_chksum\([,)]\)/\1(ADV_DCNT)0\5/;' 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 -# SCSI_QLOGIC_1280 - Qlogic QLA 1240/1x80/1x160 SCSI +announce SCSI_QLOGIC_1280 - Qlogic QLA 1240/1x80/1x160 SCSI +clean_sed 's,[&]\(fw12\(160\|80e\)i\|risc\(_code\)\?\)_\(code01\[0\]\|length01\),NULL,g; +/^qla1280_load_firmware\(_pio\)\?(/,/^}$/{ + /risc_code_size = [*]/ { + i\ + if (!risc_code_address) {\ + printk(KERN_ERR "scsi(%li): Missing Free firmware\\n", ha->host_no);\ + return -EINVAL;\ + } + } +} +/^qla1280_load_firmware_dma(/,/^}$/{ + /risc_code_size = [*]/ { + i\ + if (!risc_code_address) {\ + printk(KERN_ERR "scsi(%li): Missing Free firmware\\n", ha->host_no);\ + err = -EINVAL;\ + goto out;\ + } + } +}' drivers/scsi/qla1280.c clean_blob drivers/scsi/ql1280_fw.h clean_blob drivers/scsi/ql1040_fw.h clean_blob drivers/scsi/ql12160_fw.h @@ -704,9 +740,9 @@ clean_mk CONFIG_SCSI_QLOGIC_1280 drivers/scsi/Makefile # misc -# USB_EMI26 - EMI 2|6 USB Audio interface -# No need to remove this, it doesn't contain non-Free code. -# clean_blob drivers/usb/misc/emi26.c +announce USB_EMI26 - EMI "2|6" USB Audio interface +reject_firmware drivers/usb/misc/emi26.c +clean_blob drivers/usb/misc/emi26.c # 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 @@ -714,9 +750,9 @@ drop_fw_file firmware/emi26/loader.HEX firmware/emi26/loader.fw clean_kconfig drivers/usb/misc/Kconfig 'USB_EMI26' clean_mk CONFIG_USB_EMI26 drivers/usb/misc/Makefile -# USB_EMI62 - EMI 6|2m USB Audio interface -# No need to remove this, it doesn't contain non-Free code. -# clean_blob drivers/usb/misc/emi62.c +announce USB_EMI62 - EMI "6|2m" USB Audio interface +reject_firmware drivers/usb/misc/emi62.c +clean_blob drivers/usb/misc/emi62.c # 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 @@ -725,71 +761,81 @@ drop_fw_file firmware/emi62/spdif.HEX firmware/emi62/spdif.fw clean_kconfig drivers/usb/misc/Kconfig 'USB_EMI62' clean_mk CONFIG_USB_EMI62 drivers/usb/misc/Makefile -# USB_SISUSBVGA - USB 2.0 SVGA dongle support (Net2280/SiS315) -clean_blob drivers/usb/misc/sisusbvga/sisusb_init.h -clean_kconfig drivers/usb/misc/sisusbvga/Kconfig 'USB_SISUSBVGA' -clean_mk CONFIG_USB_SISUSBVGA drivers/usb/misc/sisusbvga/Makefile - # serial -# USB_SERIAL_KEYSPAN_MPR - USB Keyspan MPR Firmware +announce USB_SERIAL_KEYSPAN - USB Keyspan USA-xxx Serial Driver +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_MPR - USB Keyspan MPR Firmware drop_fw_file firmware/keyspan/mpr.HEX firmware/keyspan/mpr.fw clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_MPR' -# USB_SERIAL_KEYSPAN_USA18X - USB Keyspan USA-18X Firmware +announce USB_SERIAL_KEYSPAN_USA18X - USB Keyspan USA-18X Firmware drop_fw_file firmware/keyspan/usa18x.HEX firmware/keyspan/usa18x.fw clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA18X' -# USB_SERIAL_KEYSPAN_USA19 - USB Keyspan USA-19 Firmware +announce USB_SERIAL_KEYSPAN_USA19 - USB Keyspan USA-19 Firmware drop_fw_file firmware/keyspan/usa19.HEX firmware/keyspan/usa19.fw clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19' -# USB_SERIAL_KEYSPAN_USA19QI - USB Keyspan USA-19QI Firmware +announce USB_SERIAL_KEYSPAN_USA19QI - USB Keyspan USA-19QI Firmware drop_fw_file firmware/keyspan/usa19qi.HEX firmware/keyspan/usa19qi.fw clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19QI' -# USB_SERIAL_KEYSPAN_USA19QW - USB Keyspan USA-19QW Firmware +announce USB_SERIAL_KEYSPAN_USA19QW - USB Keyspan USA-19QW Firmware drop_fw_file firmware/keyspan/usa19qw.HEX firmware/keyspan/usa19qw.fw clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19QW' -# USB_SERIAL_KEYSPAN_USA19W - USB Keyspan USA-19W Firmware +announce USB_SERIAL_KEYSPAN_USA19W - USB Keyspan USA-19W Firmware drop_fw_file firmware/keyspan/usa19w.HEX firmware/keyspan/usa19w.fw clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA19W' -# USB_SERIAL_KEYSPAN_USA28 - USB Keyspan USA-28 Firmware +announce USB_SERIAL_KEYSPAN_USA28 - USB Keyspan USA-28 Firmware drop_fw_file firmware/keyspan/usa28.HEX firmware/keyspan/usa28.fw clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28' -# USB_SERIAL_KEYSPAN_USA28XA - USB Keyspan USA-28XA Firmware +announce USB_SERIAL_KEYSPAN_USA28XA - USB Keyspan USA-28XA Firmware drop_fw_file firmware/keyspan/usa28xa.HEX firmware/keyspan/usa28xa.fw clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28XA' -# USB_SERIAL_KEYSPAN_USA28XB - USB Keyspan USA-28XB Firmware +announce USB_SERIAL_KEYSPAN_USA28XB - USB Keyspan USA-28XB Firmware drop_fw_file firmware/keyspan/usa28xb.HEX firmware/keyspan/usa28xb.fw clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28XB' -# USB_SERIAL_KEYSPAN_USA28X - USB Keyspan USA-28X Firmware +announce USB_SERIAL_KEYSPAN_USA28X - USB Keyspan USA-28X Firmware drop_fw_file firmware/keyspan/usa28x.HEX firmware/keyspan/usa28x.fw clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA28X' -# USB_SERIAL_KEYSPAN_USA49W - USB Keyspan USA-49W Firmware +announce USB_SERIAL_KEYSPAN_USA49W - USB Keyspan USA-49W Firmware drop_fw_file firmware/keyspan/usa49w.HEX firmware/keyspan/usa49w.fw clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA49W' -# USB_SERIAL_KEYSPAN_USA49WLC - USB Keyspan USA-49WLC Firmware +announce USB_SERIAL_KEYSPAN_USA49WLC - USB Keyspan USA-49WLC Firmware drop_fw_file firmware/keyspan/usa49wlc.HEX firmware/keyspan/usa49wlc.fw clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_KEYSPAN_USA49WLC' -clean_mk CONFIG_USB_SERIAL_KEYSPAN drivers/usb/serial/Makefile -# USB_SERIAL_EDGEPORT - USB Inside Out Edgeport Serial Driver +announce USB_SERIAL_KEYSPAN_PDA - blob-clean, marking to aid deblob-check +clean_sed 's,request_ihex_firmware,/*KEYSPAN_PDA*/&,' drivers/usb/serial/keyspan_pda.c + +announce USB_SERIAL_EDGEPORT - USB Inside Out Edgeport Serial Driver +reject_firmware drivers/usb/serial/io_edgeport.c +clean_blob drivers/usb/serial/io_edgeport.c 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 clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_EDGEPORT' clean_mk CONFIG_USB_SERIAL_EDGEPORT drivers/usb/serial/Makefile -# USB_SERIAL_EDGEPORT_TI - USB Inside Out Edgeport Serial Driver (TI devices) -clean_fw firmware/edgeport/boot2.H16 firmware/edgeport/boot2.fw +announce USB_SERIAL_EDGEPORT_TI - USB Inside Out Edgeport Serial Driver (TI devices) +reject_firmware drivers/usb/serial/io_ti.c +clean_blob drivers/usb/serial/io_ti.c clean_fw firmware/edgeport/down3.bin.ihex firmware/edgeport/down3.bin clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_EDGEPORT_TI' clean_mk CONFIG_USB_SERIAL_EDGEPORT_TI drivers/usb/serial/Makefile -# USB_SERIAL_TI - USB TI 3410/5052 Serial Driver +announce USB_SERIAL_TI - USB TI 3410/5052 Serial Driver +reject_firmware drivers/usb/serial/ti_usb_3410_5052.c +clean_blob drivers/usb/serial/ti_usb_3410_5052.c drop_fw_file firmware/ti_3410.fw.ihex firmware/ti_3410.fw drop_fw_file firmware/ti_5052.fw.ihex firmware/ti_5052.fw clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_TI' clean_mk CONFIG_USB_SERIAL_TI drivers/usb/serial/Makefile -# USB_SERIAL_WHITEHEAT - USB ConnectTech WhiteHEAT Serial Driver +announce USB_SERIAL_WHITEHEAT - USB ConnectTech WhiteHEAT Serial Driver +reject_firmware drivers/usb/serial/whiteheat.c +clean_blob drivers/usb/serial/whiteheat.c 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 @@ -797,63 +843,83 @@ clean_kconfig drivers/usb/serial/Kconfig 'USB_SERIAL_WHITEHEAT' clean_mk CONFIG_USB_SERIAL_WHITEHEAT drivers/usb/serial/Makefile -######################### -# Removed video Drivers # -######################### - -# FB_ASILIANT - Asiliant (Chips) 69000 display support -clean_blob drivers/video/asiliantfb.c -clean_kconfig drivers/video/Kconfig 'FB_ASILIANT' -clean_mk CONFIG_FB_ASILIANT drivers/video/Makefile - -# FB_CT65550 - Chips 65550 display support -clean_blob drivers/video/chipsfb.c -clean_kconfig drivers/video/Kconfig 'FB_CT65550' -clean_mk CONFIG_FB_CT65550 drivers/video/Makefile - -# USB_GSPCA - Conexant 11646 -clean_blob drivers/media/video/gspca/conex.c -# clean_kconfig drivers/video/gspca/Kconfig 'USB_GSPCA' -# clean_mk CONFIG_USB_GSPCA drivers/video/Makefile - ######################### # Removed Sound Drivers # ######################### -# SND_CS46XX - Cirrus Logic (Sound Fusion) CS4280/CS461x/CS462x/CS463x -clean_blob sound/pci/cs46xx/cs46xx_image.h -# Blobs containing comments, not recognized by deblob-check +announce SND_CS46XX - Cirrus Logic "(Sound Fusion)" CS4280/CS461x/CS462x/CS463x +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 +clean_blob sound/pci/cs46xx/cs46xx_lib.c +# 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/cwcdma.h clean_file sound/pci/cs46xx/imgs/cwcsnoop.h clean_kconfig sound/pci/Kconfig 'SND_CS46XX' -# sed -i '/cs46xx\/ \\/d' sound/pci/Makefile +clean_mk 'CONFIG_SND_CS46XX' sound/pci/cs46xx/Makefile -# SND_KORG1212 - Korg 1212 IO +announce SND_KORG1212 - Korg 1212 IO +reject_firmware sound/pci/korg1212/korg1212.c +clean_blob sound/pci/korg1212/korg1212.c drop_fw_file firmware/korg/k1212.dsp.ihex firmware/korg/k1212.dsp +clean_kconfig sound/pci/Kconfig 'SND_KORG1212' +clean_mk 'CONFIG_SND_KORG1212' sound/pci/korg1212/Makefile -# SND_MAESTRO3 - ESS Allegro/Maestro3 +announce SND_MAESTRO3 - ESS Allegro/Maestro3 +reject_firmware sound/pci/maestro3.c +clean_blob sound/pci/maestro3.c 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 +clean_kconfig sound/pci/Kconfig 'SND_MAESTRO3' +clean_mk 'CONFIG_SND_MAESTRO3' sound/pci/Makefile -# SND_YMFPCI - Yamaha YMF724/740/744/754 +announce SND_YMFPCI - Yamaha YMF724/740/744/754 +reject_firmware sound/pci/ymfpci/ymfpci_main.c +clean_blob sound/pci/ymfpci/ymfpci_main.c 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 +clean_kconfig sound/pci/Kconfig 'SND_YMFPCI' +clean_mk 'CONFIG_SND_YMFPCI' sound/pci/ymfpci/Makefile -# SND_SB16_CSP_FIRMWARE_IN_KERNEL - SB16 Advanced Signal Processor +announce SND_SB16_CSP_FIRMWARE_IN_KERNEL - SB16 Advanced Signal Processor +reject_firmware sound/isa/sb/sb16_csp.c +clean_blob sound/isa/sb/sb16_csp.c 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 +clean_kconfig sound/isa/Kconfig 'SND_SB16_CSP' +clean_mk 'CONFIG_SND_SB16_CSP' sound/isa/sb/Makefile -# SND_WAVEFRONT_FIRMWARE_IN_KERNEL -# Most of this file is not matched by deblob-check because of WAIT_IDLE. -# Just remove it. -clean_file sound/isa/wavefront/yss225.c +announce SND_WAVEFRONT - Turtle Beach Maui,Tropez,Tropez+" (Wavefront)" +clean_sed '/firmware = &yss225_registers_firmware/i\ + snd_printk(KERN_ERR "FX: Missing Free firmware\\n");\ + err = -EINVAL;\ + goto out; +' sound/isa/wavefront/wavefront_fx.c +reject_firmware sound/isa/wavefront/wavefront_fx.c +clean_blob sound/isa/wavefront/wavefront_fx.c +clean_blob sound/isa/wavefront/yss225.c +reject_firmware sound/isa/wavefront/wavefront_synth.c +clean_blob sound/isa/wavefront/wavefront_synth.c clean_kconfig sound/isa/Kconfig 'SND_WAVEFRONT_FIRMWARE_IN_KERNEL' +clean_kconfig sound/isa/Kcofnig 'SND_WAVEFRONT' +clean_mk 'CONFIG_SND_WAVEFRONT' sound/isa/wavefront/Makefile ########################### diff --git a/deblob-2.6.28-todo b/deblob-2.6.28-todo index ff256da371e..bf321ef6270 100644 --- a/deblob-2.6.28-todo +++ b/deblob-2.6.28-todo @@ -64,7 +64,6 @@ drivers/net/netx-eth.c drivers/net/spider_net.c drivers/net/tokenring/smctr.c drivers/net/tokenring/tms380tr.c -drivers/net/usb/kaweth.c drivers/net/wireless/atmel.c drivers/net/wireless/b43/main.c drivers/net/wireless/b43legacy/main.c @@ -102,23 +101,13 @@ drivers/staging/go7007/go7007-fw.c drivers/usb/atm/cxacru.c drivers/usb/atm/speedtch.c drivers/usb/atm/ueagle-atm.c -drivers/usb/misc/emi26.c -drivers/usb/misc/emi62.c drivers/usb/misc/isight_firmware.c -drivers/usb/serial/io_edgeport.c -drivers/usb/serial/io_ti.c -drivers/usb/serial/keyspan.c -drivers/usb/serial/keyspan_pda.c -drivers/usb/serial/ti_usb_3410_5052.c drivers/usb/serial/whiteheat.c drivers/uwb/i1480/dfu/i1480-dfu.h drivers/uwb/i1480/dfu/mac.c drivers/uwb/i1480/dfu/phy.c drivers/video/metronomefb.c sound/drivers/vx/vx_hwdep.c -sound/isa/sb/sb16_csp.c -sound/isa/wavefront/wavefront_fx.c -sound/isa/wavefront/wavefront_synth.c sound/pci/echoaudio/darla20.c sound/pci/echoaudio/darla24.c sound/pci/echoaudio/echo3g.c @@ -133,13 +122,10 @@ sound/pci/echoaudio/layla24.c sound/pci/echoaudio/mia.c sound/pci/echoaudio/mona.c sound/pci/emu10k1/emu10k1_main.c -sound/pci/korg1212/korg1212.c -sound/pci/maestro3.c sound/pci/mixart/mixart_hwdep.c sound/pci/pcxhr/pcxhr_hwdep.c sound/pci/riptide/riptide.c sound/pci/rme9652/hdsp.c -sound/pci/ymfpci/ymfpci_main.c sound/sh/aica.c sound/sound_firmware.c diff --git a/deblob-check b/deblob-check index 643b5d75555..f5266a4755d 100755 --- a/deblob-check +++ b/deblob-check @@ -1,6 +1,6 @@ #! /bin/sh -# deblob-check version 2009-03-07 +# deblob-check version 2009-03-08 # Inspired in gNewSense's find-firmware script. # Written by Alexandre Oliva @@ -550,7 +550,7 @@ set_except () { # Match up to the end a comment started in $1. ocomment () { - addx "$1\\([^*]\\|[*][*]*[^*/]\\|[*]*[\\n]\\)*[*]*[*][/]" $2 + addx "$1[/]*\\([^/]\\|[^*/][/]*\\)*[*][/]" $2 } # Match $1 followed by backslash-terminated lines and a last @@ -573,7 +573,7 @@ set_except () { blobna "request_firmware_nowait" blobna "request_firmware" blobna "request_ihex_firmware" - blobna "MODULE_FIRMWARE([^;]*)[^;]*;" + blobna "MODULE_FIRMWARE[ \n]*([^;]*)[ \n]*;\([ \n]*MODULE_FIRMWARE[ \n]*([^;]*)[ \n]*;\)*" blobna "DEFAULT_FIRMWARE" case $prefix$1 in @@ -865,6 +865,15 @@ set_except () { defsnc 'const unsigned int TimonRomTable \[16\]\[2\]\[16\]\[8\] =' drivers/media/video/pwc/pwc-timon.c defsnc ' static const struct struct_initData initData\[\] =' drivers/media/video/usbvideo/ibmcam.c defsnc 'static const u8 rtl8187b_reg_table\[\]\[3\] =' drivers/net/wireless/rtl8187_dev.c + defsnc 'unsigned char \(IDX_ACTIVATE_\(READ\|WRITE\)\|\(CM\|ULP\)_\(ENABLE\|SETUP\)\|DM_ACT\|IPA_PDU_HEADER\|\(READ\|WRITE\)_CCW\)\[\] =' drivers/net/qeth_core_mpc.c + defsnc 'static unsigned char camera_ncm03j_magic\[\] =' arch/sh/boards/board-ap325rxa.c + defsnc 'static const unsigned short \(sync\|magic[0-3]\)_data\[\] =' arch/sh/boards/mach-migor/lcd_qvga.c + defsnc 'static unsigned char camera_ov772x_magic\[\] =' arch/sh/boards/mach-migor/setup.c + defsnc 'static struct chips_init_reg chips_init_[sgacfx]r\[\] =' 'drivers/video/\(asiliant\|chips\)fb.c' + + # This one is quite suspicious, but it's small enough (64 bytes + # total) that it's believable that it could be actual source code. + defsnc 'static const __u8 cx11646_fw1\[\]\[3\] =' drivers/media/video/gspca/conex.c # Hunting down non-Free firmware-loading code and instructions. @@ -901,7 +910,7 @@ set_except () { blobna '[\n] scriptlen = sizeof(script)[^;]*;[\n] for[^{]*scriptlen[^{]*{[^}]*[^\n }]' drivers/media/dvb/dvb-usb/af9005-fe.c accept 'struct \(sp8870\|tda1004x\)_config[\n]{[^}]*(\*request_firmware)[^}]*[\n]};' 'drivers/media/dvb/frontends/\(sp8870\|tda1004x\)\.h' - blob '[/][*]\([^/]*\|[^*][/]\)*get_dvb_firmware\([^/]*\|[^*/][/]*\)*[*][/]\([\n]#define \(\([^\n ]*_DEFAULT\|NONFREE\)_FIRMWARE\|"[^"]*"\) \([^\n]*\|[\\][\n]\)*\)*' 'drivers/media/dvb/frontends/\(sp8870\|tda1004x\)\.c' + blob '[/][*]\([^/]*\|[^*/][/]\)*get_dvb_firmware\([^/]*\|[^*/][/]*\)*[*][/]\([\n]#define \(\([^\n ]*_DEFAULT\|NONFREE\)_FIRMWARE\|"[^"]*"\) \([^\n]*\|[\\][\n]\)*\)*' 'drivers/media/dvb/frontends/\(sp8870\|tda1004x\)\.c' accept '[^\n]*->request_firmware([^{;]*NONFREE_FIRMWARE' 'drivers/media/dvb/frontends/\(sp8870\|tda1004x\)\.c' blobna 'dvb-fe-sp8870\.fw' drivers/media/dvb/frontends/sp8870.c blobna 'dvb-fe-tda1004[56]\.fw' drivers/media/dvb/frontends/tda1004x.c @@ -955,7 +964,7 @@ set_except () { blob 'static unsigned char __devinitdata lanai4_\(code\|data\)\[[0-9]*\] = {[^;]*};' drivers/net/myri_code.h blob '#include "myri_code\.h"' drivers/net/myri_sbus.c - blobna '\([/][*]\([^/]\|[^*][/]*\)*[*][/][\n ]*\)\?for ([^\n]*sizeof(lanai4_\(code\|data\)[^\n]*)[\n][^\n]*sbus_writeb[^;]*lanai4_\(code\|data\)[^;]*lanai4_code_off[^;]*;\([\n ]*\([/][*]\([^/]\|[^*][/]*\)*[*][/][\n ]*\)\?for ([^\n]*sizeof(lanai4_\(code\|data\)[^\n]*)[\n][^\n]*sbus_writeb[^;]*lanai4_\(code\|data\)[^;]*lanai4_\(code\|data\)_off[^;]*;\)*' drivers/net/myri_sbus.c + blobna '\([/][*]\([^/]\|[^*/][/]*\)*[*][/][\n ]*\)\?for ([^\n]*sizeof(lanai4_\(code\|data\)[^\n]*)[\n][^\n]*sbus_writeb[^;]*lanai4_\(code\|data\)[^;]*lanai4_code_off[^;]*;\([\n ]*\([/][*]\([^/]\|[^*/][/]*\)*[*][/][\n ]*\)\?for ([^\n]*sizeof(lanai4_\(code\|data\)[^\n]*)[\n][^\n]*sbus_writeb[^;]*lanai4_\(code\|data\)[^;]*lanai4_\(code\|data\)_off[^;]*;\)*' drivers/net/myri_sbus.c blob 'static u32 s_firmLoad\[\] = {[^;]*};' drivers/net/tehuti_fw.h blob 'bdx_tx_push_desc_safe[^;]*s_firmLoad[^;]*;' drivers/net/tehuti.c @@ -970,11 +979,73 @@ set_except () { blobna 'licensed[^\n]*strictly for use[^\n]*[\n]*[^\n]*COPS LocalTalk' 'drivers/net/appletalk/cops_\(ff\|lt\)drv\.h' blob 'static const unsigned char ffdrv_code\[\] = {[^}]*};' drivers/net/appletalk/cops_ffdrv.h blob 'static const unsgined char ltdrv_code\[\] = {[^}]*};' drivers/net/appletalk/cops_ltdrv.h - blob '#include "cops_\(lt\|ff\)drv\.h"[ ]*\([/][*]\([^/]\|[^*][/]*\)*Firmware\([^/]\|[^*][/]*\)*[*][/]\)\?\([\n][\n]*#include "cops_\(lt\|ff\)drv\.h"[ ]*\([/][*]\([^/]\|[^*][/]*\)*Firmware\([^/]\|[^*][/]*\)*[*][/]\)\?\)*' drivers/net/appletalk/cops.c + blob '#include "cops_\(lt\|ff\)drv\.h"[ ]*\([/][*]\([^/]\|[^*/][/]*\)*Firmware\([^/]\|[^*/][/]*\)*[*][/]\)\?\([\n][\n]*#include "cops_\(lt\|ff\)drv\.h"[ ]*\([/][*]\([^/]\|[^*/][/]*\)*Firmware\([^/]\|[^*/][/]*\)*[*][/]\)\?\)*' drivers/net/appletalk/cops.c + + blob 'static unsigned char bits_1200\[\] *= {[^}]*};' drivers/net/hamradio/yam1200.h + blob 'static unsigned char bits_9600\[\] *= {[^}]*};' drivers/net/hamradio/yam9600.h + blob '#include "yam\(96\|12\)00\.h"\([\n][\n]*#include "yam\(96\|12\)00\.h"\)*' drivers/net/hamradio/yam.c + + blobna 'static const u_char __Xilinx7OD\[\] = {[^}]*};' drivers/net/pcmcia/ositech.h + blob '#include "ositech\.h"' drivers/net/pcmcia/smc91c92_cs.c + blobna '\([/][*] Download the Seven of Diamonds firmware[^/]*[*][/][\n ]*\)\?for *([^\n]*__Xilinx7OD[^{}]*{[\n][ ]*outb *(__Xilinx7OD[^}]*}' drivers/net/pcmcia/smc91c92_cs.c + + blob 'static const u8 microcode\[\] = {[^}]*} *;' drivers/net/tokenring/3c359_microcode.h + blob '#include "3c359_microcode\.h"' drivers/net/tokenring/3c359.c + blobna '\(printk(KERN_INFO "3C359: Uploading Microcode: ");[\n ]*\)\?for ([^{]*\(mc_size[^{]*) {[^}]*writeb(microcode\[\|) {[^}]*writeb(microcode\[mc_size\)[^}]*}\([\n][ ]*printk[^\n]*;[\n ]*for ([^{]*\(mc_size[^{]*) {[^}]*writeb(microcode\[\|) {[^}]*writeb(microcode\[mc_size\)[^}]*}\)*' drivers/net/tokenring/3c359.c + + blobna 'tr_smctr\.bin' drivers/net/tokenring/smctr.c + + blobna 'kaweth[/]\(new\|trigger\)_code\(_fix\)\.bin' drivers/net/usb/kaweth.c blobna '\(agere\|prism\)_\(sta\|ap\)_fw\.bin' drivers/net/wireless/orinoco.c blobna 'symbol_sp24t_\(prim\|sec\)_fw' drivers/net/wireless/orinoco.c + blob 'unsigned short sbus_risc_code01\[\] __devinitdata = {[^}]*};' drivers/scsi/qlogicpti_asm.c + blob '#include "qlogicpti_asm\.c"' drivers/scsi/qlogicpti.c + + blob '\([/][*] Microcode\([^/]\|[^*/][/]*\)*[*][/][\n]*\)\?static \(u\(nsigned \)\?char\|unsigned short\|ADV_DCNT\) _\(asc_mcode\|adv_asc3\(550\|8C\(08\|16\)00\)\)_\(buf\[\] = {[^}]*}\|size = sizeof[^;]*\|chksum = 0x[^;]*\);\([ ]*[/][*]\([^/]\|[^*/][/]*\)*[*][/]\)\?\([\n][\n]*\([/][*] Microcode\([^/]\|[^*/][/]*\)*[*][/][\n]*\)\?static \(u\(nsigned \)\?char\|unsigned short\|ADV_DCNT\) _\(asc_mcode\|adv_asc3\(550\|8C\(08\|16\)00\)\)_\(buf\[\] = {[^}]*}\|size = sizeof[^;]*\|chksum = 0x[^;]*\);\([ ]*[/][*]\([^/]\|[^*/][/]*\)*[*][/]\)\?\)*' drivers/scsi/advansys.c + + blob '\(#ifdef UNIQUE_FW_NAME[\n]\)\?static unsigned short \(risc\|fw12\(80e\|160\)i\)_code01\[\] = {\([\n]#else[\n]static unsigned short risc_code01\[\] = {[\n]#endif[\n]\)\?[^}]*};\([\n][\n]*\(#ifdef UNIQUE_FW_NAME[\n]\)\?static unsigned short \(risc_code\|fw12\(80e\|160\)i\)_length01 = [^;]*;\([\n]#else[\n]static unsigned short risc_code_length01 = [^;]*;[\n]#endif\)\?\)\?' 'drivers/scsi/ql1\(04\|2\(8\|16\)\)0_fw\.h' + + blobna 'emi26[/]\(bitstream\|firmware\|loader\)\.fw' drivers/usb/misc/emi26.c + + blobna 'emi62[/]\(bitstream\|midi\|spdif\|loader\)\.fw' drivers/usb/misc/emi62.c + + blobna 'keyspan[/]\(mpr\|usa\(18x\|19\(q[iw]\|w\)\?\|28\(x\(a\|b\)\?\)\?\|49w\(lc\)\?\)\)\.fw' drivers/usb/serial/keyspan.c + + accept ' fw_name = "keyspan_pda[/]\(keyspan_pda\|xircom_pgs\)\.fw";' drivers/usb/serial/keyspan_pda.c + blobna 'fw_name = \([^}]\|[^\n]}*\)*\([/][*]KEYSPAN_PDA[*][/]\)\?request_ihex_firmware' drivers/usb/serial/keyspan_pda.c + accept ' if ([/][*]KEYSPAN_PDA[*][/]request_ihex_firmware' drivers/usb/serial/keyspan_pda.c + + blobna 'edgeport[/]\(boot\|down\)2\?\.fw' drivers/usb/serial/io_edgeport.c + blobna 'edgeport[/]down3\.bin' drivers/usb/serial/io_ti.c + + blobna 'ti_\(usb-\)\?\(%d\|3410\|5052\)\.bin' drivers/usb/serial/ti_usb_3410_5052.c + + blobna 'whiteheat\(_loader\(_debug\)\?\)\?\.fw' drivers/usb/serial/whiteheat.c + + blob 'static struct BA1struct BA1Struct = {[^;]*};' sound/pci/cs46xx/cs46xx_image.h + + blob 'static u32 cwc\(4630\|async\|snoop\)_\(code\|parameter\)\[\] = {[^;]*};' 'sound/pci/cs46xx/imgs/cwc\(4630\|async\|snoop\)\.h' + # cwcbinhack appears to have been created by hand. + # cwcdma has sources (not verified) in cwcdma.asp. + accept 'static u32 cwc\(binhack\|dma\)_code\[\] = {[^;]*};' 'sound/pci/cs46xx/imgs/cwc\(binhack\|dma\)\.h' + blob '#include "\(cs46xx_image\|imgs[/]cwc\(4630\|async\|snoop\)\)\.h"\([\n][\n]*#include "\(cs46xx_image\|imgs[/]cwc\(4630\|async\|snoop\)\)\.h"\)*' sound/pci/cs46xx/cs46xx_lib.c + + blobna 'korg[/]k1212\.dsp' sound/pci/korg1212/korg1212.c + + blobna 'ess[/]maestro3_assp_\(kernel\|minisrc\)\.fw' sound/pci/maestro3.c + + blobna 'yamaha[/]ds1e\?_\(ctrl\|dsp\)\.fw' sound/pci/ymfpci/ymfpci_main.c + + blobna 'sb16[/]\(\(a\|mu\)law_main\|ima_adpcm_\(init\|capture\|playback\)\)\.csp' sound/isa/sb/sb16_dsp.c + + blob 'static const struct {[^}]*} yss225_registers\[\] __devinitdata = {[^;]*};' sound/isa/wavefront/yss225.c + 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 + # This looks suspicious, but it pretty much just sets stuff to zero. initnc 'static __u8 mode8420\(pro\|con\)\[\] =' drivers/media/video/cs8420.h @@ -1355,7 +1426,6 @@ set_except () { initnc '} qam64_snr_tab\[\] =' initnc '} sil_port\[\] =' initnc '} vsb_snr_tab\[\] =' - initnc '} yss225_registers\[\] __devinitdata =' ;; -- 2.31.1