Towards 2.6.30-libre.
[releases.git] / deblob-2.6.28
index 55ae2e48cee1f0868c6a3f27c387d16acdd7d1d6..374d6fa8eac85536a47b0598fbb38cf2e4f7cb75 100755 (executable)
@@ -44,7 +44,7 @@
 
 # For each kver release, start extra with an empty string, then count
 # from 1 if changes are needed that require rebuilding the tarball.
-kver=2.6.28 extra=++
+kver=2.6.28 extra=3
 
 fatal () {
   echo "$@"
@@ -56,7 +56,7 @@ case $1 in
 *) die () { fatal "$@"; }; forced=false;;
 esac
 
-check=`echo $0 | sed 's,/[^/]*$,,'`/deblob-check
+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
@@ -111,9 +111,9 @@ clean_blob () {
 dummy_blob () {
        #$1 = filename
        if test -f $1; then
-           fatal $1 exists, something is wrong
+           die $1 exists, something is wrong
        elif test ! -f firmware/Makefile; then
-           fatal firmware/Makefile does not exist, something is wrong
+           die firmware/Makefile does not exist, something is wrong
        fi
 
        clean_sed "s,`echo $1 | sed s,^firmware/,,`,\$(DEBLOBBED),g" \
@@ -123,9 +123,9 @@ dummy_blob () {
 clean_fw () {
        #$1 = firmware text input, $2 = firmware output
        if test ! -f $1; then
-               fatal $1 does not exist, something is wrong
+               die $1 does not exist, something is wrong
        elif test -f $2; then
-               fatal $2 exists, something is wrong
+               die $2 exists, something is wrong
        fi
        clean_blob $1 -s 4
        dummy_blob $2
@@ -134,9 +134,9 @@ clean_fw () {
 drop_fw_file () {
        #$1 = firmware text input, $2 = firmware output
        if test ! -f $1; then
-               fatal $1 does not exist, something is wrong
+               die $1 does not exist, something is wrong
        elif test -f $2; then
-               fatal $2 exists, something is wrong
+               die $2 exists, something is wrong
        fi
        clean_file $1
        dummy_blob $2
@@ -188,16 +188,26 @@ 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
@@ -253,6 +263,8 @@ $i\
 #ifndef _LINUX_LIBRE_FIRMWARE_H\
 #define _LINUX_LIBRE_FIRMWARE_H\
 \
+#include <linux/device.h>\
+\
 #define NONFREE_FIRMWARE "/*(DEBLOBBED)*/"\
 \
 static inline int\
@@ -350,6 +362,9 @@ 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_kconfig arch/arm/Kconfig 'ARCH_NETX'
+clean_mk CONFIG_ARCH_NETX arch/arm/Makefile
 
 
 #######
@@ -367,6 +382,8 @@ 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
 
@@ -405,7 +422,7 @@ clean_mk CONFIG_MOXA_INTELLIO drivers/char/Makefile
 announce DRM_MGA - "Matrox g200/g400"
 clean_blob drivers/gpu/drm/mga/mga_ucode.h
 clean_blob drivers/gpu/drm/mga/mga_warp.c
-clean_kconfig drivers/gpu/drm/Kconfig 'DRM_MGA'
+clean_kconfig -f drivers/gpu/drm/Kconfig 'DRM_MGA'
 clean_mk CONFIG_DRM_MGA drivers/gpu/drm/Makefile
 
 announce DRM_R128 - "ATI Rage 128"
@@ -420,29 +437,30 @@ clean_sed '
   }
 }' drivers/gpu/drm/r128/r128_cce.c 'report missing Free microcode'
 clean_blob drivers/gpu/drm/r128/r128_cce.c
-clean_kconfig drivers/gpu/drm/Kconfig 'DRM_R128'
+clean_kconfig -f drivers/gpu/drm/Kconfig 'DRM_R128'
 clean_mk CONFIG_DRM_R128 drivers/gpu/drm/Makefile
 
 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_kconfig -f drivers/gpu/drm/Kconfig 'DRM_RADEON'
 clean_mk CONFIG_DRM_RADEON drivers/gpu/drm/Makefile
 
 
@@ -469,6 +487,8 @@ 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_kconfig drivers/media/common/tuners/Kconfig 'MEDIA_TUNER_XC5000'
@@ -552,6 +572,7 @@ 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_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
@@ -590,9 +611,10 @@ 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
+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_blob drivers/media/dvb/frontends/af9013_priv.h
 clean_kconfig drivers/media/dvb/frontends/Kconfig 'DVB_AF9013'
 clean_mk CONFIG_DVB_AF9013 drivers/media/dvb/frontends/Makefile
 
@@ -621,6 +643,7 @@ 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
@@ -650,6 +673,8 @@ 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'
@@ -709,6 +734,7 @@ reject_firmware drivers/media/dvb/siano/smscoreapi.c
 reject_firmware drivers/media/dvb/siano/smsusb.c
 clean_blob drivers/media/dvb/siano/smscoreapi.c
 clean_blob drivers/media/dvb/siano/smsusb.c
+clean_blob drivers/media/dvb/siano/sms-cards.c
 clean_kconfig drivers/media/dvb/siano/Kconfig 'DVB_SIANO_SMS1XXX'
 clean_mk CONFIG_DVB_SIANO_SMS1XXX drivers/media/dvb/siano/Makefile
 
@@ -743,6 +769,7 @@ 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-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
 
@@ -871,8 +898,8 @@ clean_sed '
 /^#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
@@ -889,7 +916,6 @@ 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'
@@ -908,8 +934,7 @@ clean_sed '
   /^   for ([^;]*ucode_opts[^{]*) {$/,/^       }$/ {
     /^ }$/ i\
        }\
-               DPRINTK(DRV, ERR, "Missing Free firmware\\n");\
-               /* ??? We should error out somehow.  */\
+               DPRINTK(DRV, ERR, "Missing Free firmware, proceeding without\\n");\
                goto noloaducode;
   }
 }
@@ -1082,7 +1107,7 @@ announce 3C359 - "3Com 3C359 Token Link Velocity XL adapter"
 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'
@@ -1281,6 +1306,16 @@ clean_kconfig drivers/bluetooth/Kconfig 'BT_HCIBT3C'
 clean_mk CONFIG_BT_HCIBT3C drivers/bluetooth/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
+
 ##########
 # Serial #
 ##########
@@ -1396,6 +1431,12 @@ 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
+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
@@ -1770,6 +1811,7 @@ 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 '
@@ -1792,7 +1834,7 @@ 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_sed s,usb8388,whatever,g drivers/base/Kconfig 'removed blob name'
 clean_blob firmware/WHENCE
 
 exit 0