Don't require undefine_macro's macro to be defined to a string.
[releases.git] / deblob-2.6.28
index 55ae2e48cee1f0868c6a3f27c387d16acdd7d1d6..9d0e4228cd10615b964eeaa960dfca2add945a0e 100755 (executable)
@@ -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\
@@ -425,21 +437,22 @@ 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'
@@ -469,6 +482,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 +567,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
@@ -621,6 +637,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 +667,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'
@@ -871,8 +890,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 +908,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'
@@ -1082,7 +1100,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'