diff --git a/helpers/DATA/linux-hwe/deblob-4.13 b/helpers/DATA/linux-hwe/deblob-4.15
similarity index 89%
rename from helpers/DATA/linux-hwe/deblob-4.13
rename to helpers/DATA/linux-hwe/deblob-4.15
index 5119e1f6f425685f53bf9dfcde15a10c09e4ce88..fa49acb397110ce8eaa133fb4dbd3a9c438b912e 100644
--- a/helpers/DATA/linux-hwe/deblob-4.13
+++ b/helpers/DATA/linux-hwe/deblob-4.15
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-#    Copyright (C) 2008-2017 Alexandre Oliva <lxoliva@fsfla.org>
+#    Copyright (C) 2008-2018 Alexandre Oliva <lxoliva@fsfla.org>
 #    Copyright (C) 2008 Jeff Moe
 #    Copyright (C) 2009 Rubén Rodríguez <ruben@gnu.org>
 #
@@ -48,7 +48,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=4.13 extra=
+kver=4.15 extra=
 
 case $1 in
 --force)
@@ -205,6 +205,7 @@ clean_mk () {
 clean_sed () {
   #$1 = sed-script $2 = file $3 = comment
   filetest $2 || return 0
+  cp "$2" "$2".deblob # preserve mode
   sed -e "$1" "$2" > "$2".deblob || {
     die $2: failed: ${3-applied sed script $1} && return 0; }
   check_changed $2 && echo $2: ${3-applied sed script $1}
@@ -214,7 +215,7 @@ reject_firmware () {
   #$1 = file $2 = pre sed pattern
   filetest $1 || return 0
   clean_sed "$2"'
-s,\(^\|[^>.0-9a-zA-Z_$]\)request\(_ihex\)\?_firmware\(_nowait\|_direct\)\?\($\|[^-.0-9a-zA-Z_$),; ]\),\1reject_firmware\3\4,g
+s,\(^\|[^>.0-9a-zA-Z_$]\)request\(_ihex\)\?_firmware\(_nowait\|_direct\|_into_buf\)\?\($\|[^-.0-9a-zA-Z_$),; ]\),\1reject_firmware\3\4,g
 ' "$1" 'disabled non-Free firmware-loading machinery'
 }
 
@@ -222,7 +223,7 @@ maybe_reject_firmware () {
   #$1 = file $2 = pre sed pattern
   filetest $1 || return 0
   clean_sed "$2"'
-s,\(^\|[^>.0-9a-zA-Z_$]\)request_\(ihex_\)\?firmware\(_nowait\|_direct\)\?\($\|[^-.0-9a-zA-Z_$),; ]\),\1maybe_reject_\2firmware\3\4,g
+s,\(^\|[^>.0-9a-zA-Z_$]\)request_\(ihex_\)\?firmware\(_nowait\|_direct\|_into_buf\)\?\($\|[^-.0-9a-zA-Z_$),; ]\),\1maybe_reject_\2firmware\3\4,g
 ' "$1" 'retain Free firmware-loading machinery, disabling non-Free one'
 }
 
@@ -322,12 +323,6 @@ for f in \
     drivers/scsi/sym53c8xx_2/sym_fw1.h \
   drivers/scsi/sym53c8xx_2/sym_fw2.h \
     drivers/scsi/sym53c8xx_2/sym_fw2.h \
-  firmware/dsp56k/bootstrap.bin.ihex \
-    firmware/dsp56k/bootstrap.asm \
-  firmware/keyspan_pda/keyspan_pda.HEX \
-    firmware/keyspan_pda/keyspan_pda.S \
-  firmware/keyspan_pda/xircom_pgs.HEX \
-    firmware/keyspan_pda/xircom_pgs.S \
 ; do
   filetest $f || :
 done
@@ -396,6 +391,46 @@ What is GNU Linux-libre?\
 
 ' Documentation/admin-guide/README.rst 'added blurb about GNU Linux-libre'
 
+clean_sed '
+s,Linux kernel,GNU Linux-libre,
+' scripts/package/builddeb 'kernel name'
+
+clean_sed '
+s,https://www\..*linux/kernel$,https://linux-libre.fsfla.org/,
+' scripts/package/builddeb 'sources'
+
+clean_sed '
+s,https\?://www\.kernel\.org/,https://linux-libre.fsfla.org/,
+' scripts/package/builddeb 'home page'
+
+clean_sed '
+s,git://git\..*torvalds/linux\.git,/*(DEBLOBBED)*/,
+' scripts/package/builddeb 'upstream development repo'
+
+clean_sed '
+s,Name: kernel,&-libre,
+' scripts/package/mkspec 'package name'
+
+clean_sed '
+s,The Linux,The GNU Linux-libre,
+'  scripts/package/mkspec 'package summary'
+
+clean_sed '
+s,Linux kernel,GNU Linux-libre,
+' scripts/package/mkspec 'kernel name'
+
+clean_sed '
+s,https\?://www\.kernel\.org,https://linux-libre.fsfla.org,
+' scripts/package/mkspec 'home page'
+
+clean_sed '
+s,\(%description\) -n kernel-,\1 ,
+' scripts/package/mkspec '-libre subpackages'
+
+clean_sed '
+/Provides: kernel-/{p;s,kernel-,&libre-,;}
+' scripts/package/mkspec '-libre provides'
+
 # Add reject_firmware and maybe_reject_firmware
 grep -q _LINUX_LIBRE_FIRMWARE_H include/linux/firmware.h ||
 clean_sed '$i\
@@ -487,6 +522,27 @@ maybe_reject_firmware_nowait(struct module *module, int uevent,\
 		return request_firmware_nowait(module, uevent, name,\
 					       device, gfp, context, cont);\
 }\
+static inline int\
+reject_firmware_into_buf(const struct firmware **firmware_p, const char *name,\
+			 struct device *device, void *buf, size_t size)\
+{\
+	const struct firmware *xfw = NULL;\
+	int retval;\
+	report_missing_free_firmware(dev_name(device), NULL);\
+	retval = request_firmware_into_buf(&xfw, NONFREE_FIRMWARE, device, buf, size);\
+	if (!retval)\
+		release_firmware(xfw);\
+	return -EINVAL;\
+}\
+static inline int\
+maybe_reject_firmware_into_buf(const struct firmware **firmware_p, const char *name,\
+			       struct device *device, void *buf, size_t size)\
+{\
+	if (is_nonfree_firmware(name))\
+		return reject_firmware_into_buf(firmware_p, name, device, buf, size);\
+	else\
+		return request_firmware_into_buf(firmware_p, name, device, buf, size);\
+}\
 \
 #endif /* _LINUX_LIBRE_FIRMWARE_H */\
 ' include/linux/firmware.h 'added non-Free firmware notification support'
@@ -532,8 +588,10 @@ clean_blob arch/x86/kernel/cpu/microcode/intel.c
 clean_kconfig arch/x86/Kconfig MICROCODE_INTEL
 clean_mk CONFIG_MICROCODE_INTEL arch/x86/kernel/cpu/microcode/Makefile
 
-announce MICROCODE_EARLY - "Early load microcode"
-clean_blob Documentation/x86/early-microcode.txt
+announce MICROCODE - "CPU microcode loading support"
+clean_blob Documentation/x86/microcode.txt
+clean_kconfig arch/x86/Kconfig MICROCODE
+clean_mk CONFIG_MICROCODE arch/x86/kernel/cpu/Makefile
 
 # arm
 
@@ -562,15 +620,6 @@ clean_blob arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts
 clean_kconfig arch/arm/mach-sunxi/Kconfig MACH_SUN8I
 clean_mk CONFIG_MACH_SUN8I arch/arm/boot/dts/Makefile
 
-# mips
-
-# I couldn't figure out where the firmware name actually comes from.
-# If it's from some user-set property, we could reenable it.  -lxo
-announce XRX200_PHY_FW - "XRX200 PHY firmware loader"
-reject_firmware arch/mips/lantiq/xway/xrx200_phy_fw.c
-clean_kconfig arch/mips/lantiq/Kconfig XRX200_PHY_FW
-clean_mk CONFIG_XRX200_PHY_FW arch/mips/lantiq/xway/Makefile
-
 #######
 # ATM #
 #######
@@ -578,7 +627,6 @@ clean_mk CONFIG_XRX200_PHY_FW arch/mips/lantiq/xway/Makefile
 announce ATM_AMBASSADOR - "Madge Ambassador, Collage PCI 155 Server"
 reject_firmware drivers/atm/ambassador.c
 clean_blob drivers/atm/ambassador.c
-clean_fw firmware/atmsar11.HEX firmware/atmsar11.fw
 clean_kconfig drivers/atm/Kconfig ATM_AMBASSADOR
 clean_mk CONFIG_ATM_AMBASSADOR drivers/atm/Makefile
 
@@ -679,6 +727,8 @@ reject_firmware drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
 clean_blob drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
 reject_firmware drivers/gpu/drm/amd/amdgpu/psp_v3_1.c
 clean_blob drivers/gpu/drm/amd/amdgpu/psp_v3_1.c
+reject_firmware drivers/gpu/drm/amd/amdgpu/psp_v10_0.c
+clean_blob drivers/gpu/drm/amd/amdgpu/psp_v10_0.c
 reject_firmware drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
 clean_blob drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
 reject_firmware drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
@@ -687,7 +737,6 @@ reject_firmware drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
 clean_blob drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
 reject_firmware drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
 clean_blob drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
-clean_blob drivers/gpu/drm/amd/amdgpu/soc15.c
 reject_firmware drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
 clean_blob drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
 clean_blob drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c
@@ -725,8 +774,10 @@ clean_mk CONFIG_DRM_AST drivers/gpu/drm/ast/Makefile
 announce DRM_I915 - "Intel 8xx/9xx/G3x/G4x/HD Graphics"
 reject_firmware drivers/gpu/drm/i915/intel_csr.c
 clean_blob drivers/gpu/drm/i915/intel_csr.c
-reject_firmware drivers/gpu/drm/i915/intel_uc.c
-clean_blob drivers/gpu/drm/i915/intel_guc_loader.c
+reject_firmware drivers/gpu/drm/i915/intel_opregion.c
+reject_firmware drivers/gpu/drm/i915/intel_uc_fw.c
+clean_blob drivers/gpu/drm/i915/intel_uc_fw.h
+clean_blob drivers/gpu/drm/i915/intel_guc_fw.c
 clean_blob drivers/gpu/drm/i915/intel_huc.c
 clean_kconfig drivers/gpu/drm/i915/Kconfig DRM_I915
 clean_mk CONFIG_DRM_I915 drivers/gpu/drm/i915/Makefile
@@ -752,8 +803,6 @@ clean_kconfig drivers/gpu/drm/nouveau/Kconfig DRM_NOUVEAU
 clean_mk CONFIG_DRM_NOUVEAU drivers/gpu/drm/Makefile
 
 announce DRM_MGA - "Matrox g200/g400"
-drop_fw_file firmware/matrox/g200_warp.H16 firmware/matrox/g200_warp.fw
-drop_fw_file firmware/matrox/g400_warp.H16 firmware/matrox/g400_warp.fw
 reject_firmware drivers/gpu/drm/mga/mga_warp.c
 clean_blob drivers/gpu/drm/mga/mga_warp.c
 clean_kconfig drivers/gpu/drm/Kconfig DRM_MGA
@@ -761,47 +810,17 @@ clean_mk CONFIG_DRM_MGA drivers/gpu/drm/Makefile
 
 announce DRM_MSM - "MSM DRM"
 reject_firmware drivers/gpu/drm/msm/adreno/adreno_gpu.c
-reject_firmware drivers/gpu/drm/msm/adreno/a5xx_gpu.c
-reject_firmware drivers/gpu/drm/msm/adreno/a5xx_power.c
 clean_blob drivers/gpu/drm/msm/adreno/adreno_device.c
 clean_kconfig drivers/gpu/drm/msm/Kconfig DRM_MSM
 clean_mk CONFIG_DRM_MSM drivers/gpu/drm/msm/Makefile
 
 announce DRM_R128 - "ATI Rage 128"
-drop_fw_file firmware/r128/r128_cce.bin.ihex firmware/r128/r128_cce.bin
 reject_firmware drivers/gpu/drm/r128/r128_cce.c
 clean_blob drivers/gpu/drm/r128/r128_cce.c
 clean_kconfig drivers/gpu/drm/Kconfig DRM_R128
 clean_mk CONFIG_DRM_R128 drivers/gpu/drm/Makefile
 
 announce DRM_RADEON - "ATI Radeon"
-drop_fw_file firmware/radeon/R100_cp.bin.ihex firmware/radeon/R100_cp.bin
-drop_fw_file firmware/radeon/R200_cp.bin.ihex firmware/radeon/R200_cp.bin
-drop_fw_file firmware/radeon/R300_cp.bin.ihex firmware/radeon/R300_cp.bin
-drop_fw_file firmware/radeon/R420_cp.bin.ihex firmware/radeon/R420_cp.bin
-drop_fw_file firmware/radeon/R520_cp.bin.ihex firmware/radeon/R520_cp.bin
-drop_fw_file firmware/radeon/R600_me.bin.ihex firmware/radeon/R600_me.bin
-drop_fw_file firmware/radeon/R600_pfp.bin.ihex firmware/radeon/R600_pfp.bin
-drop_fw_file firmware/radeon/RS600_cp.bin.ihex firmware/radeon/RS600_cp.bin
-drop_fw_file firmware/radeon/RS690_cp.bin.ihex firmware/radeon/RS690_cp.bin
-drop_fw_file firmware/radeon/RS780_me.bin.ihex firmware/radeon/RS780_me.bin
-drop_fw_file firmware/radeon/RS780_pfp.bin.ihex firmware/radeon/RS780_pfp.bin
-drop_fw_file firmware/radeon/RV610_me.bin.ihex firmware/radeon/RV610_me.bin
-drop_fw_file firmware/radeon/RV610_pfp.bin.ihex firmware/radeon/RV610_pfp.bin
-drop_fw_file firmware/radeon/RV620_me.bin.ihex firmware/radeon/RV620_me.bin
-drop_fw_file firmware/radeon/RV620_pfp.bin.ihex firmware/radeon/RV620_pfp.bin
-drop_fw_file firmware/radeon/RV630_me.bin.ihex firmware/radeon/RV630_me.bin
-drop_fw_file firmware/radeon/RV630_pfp.bin.ihex firmware/radeon/RV630_pfp.bin
-drop_fw_file firmware/radeon/RV635_me.bin.ihex firmware/radeon/RV635_me.bin
-drop_fw_file firmware/radeon/RV635_pfp.bin.ihex firmware/radeon/RV635_pfp.bin
-drop_fw_file firmware/radeon/RV670_me.bin.ihex firmware/radeon/RV670_me.bin
-drop_fw_file firmware/radeon/RV670_pfp.bin.ihex firmware/radeon/RV670_pfp.bin
-drop_fw_file firmware/radeon/RV710_me.bin.ihex firmware/radeon/RV710_me.bin
-drop_fw_file firmware/radeon/RV710_pfp.bin.ihex firmware/radeon/RV710_pfp.bin
-drop_fw_file firmware/radeon/RV730_me.bin.ihex firmware/radeon/RV730_me.bin
-drop_fw_file firmware/radeon/RV730_pfp.bin.ihex firmware/radeon/RV730_pfp.bin
-drop_fw_file firmware/radeon/RV770_me.bin.ihex firmware/radeon/RV770_me.bin
-drop_fw_file firmware/radeon/RV770_pfp.bin.ihex firmware/radeon/RV770_pfp.bin
 reject_firmware drivers/gpu/drm/radeon/r100.c
 clean_blob drivers/gpu/drm/radeon/r100.c
 reject_firmware drivers/gpu/drm/radeon/r600.c
@@ -1287,7 +1306,6 @@ clean_kconfig drivers/media/usb/siano/Kconfig SMS_USB_DRV
 clean_mk CONFIG_SMS_USB_DRV drivers/media/usb/siano/Makefile
 
 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/usb/ttusb-budget/dvb-ttusb-budget.c
 clean_blob drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c
 clean_kconfig drivers/media/usb/ttusb-budget/Kconfig DVB_TTUSB_BUDGET
@@ -1302,16 +1320,10 @@ clean_mk CONFIG_DVB_TTUSB_DEC drivers/media/usb/ttusb-dec/Makefile
 
 # video
 
-announce VIDEO_AP1302 - "AP1302 external ISP support"
-reject_firmware drivers/staging/media/atomisp/i2c/ap1302.c
-clean_blob drivers/staging/media/atomisp/i2c/ap1302.c
-clean_kconfig drivers/staging/media/atomisp/i2c/Kconfig VIDEO_AP1302
-clean_mk CONFIG_VIDEO_AP1302 drivers/staging/media/atomisp/i2c/Makefile
-
-announce VIDEO_MSRLIST_HELPER - "Helper library to load, parse and apply large register lists."
-reject_firmware drivers/staging/media/atomisp/i2c/libmsrlisthelper.c
-clean_kconfig drivers/staging/media/atomisp/i2c/Kconfig VIDEO_MSRLIST_HELPER
-clean_mk CONFIG_VIDEO_MSRLIST_HELPER drivers/staging/media/atomisp/i2c/Makefile
+announce VIDEO_ATOMISP_MSRLIST_HELPER - "Helper library to load, parse and apply large register lists."
+reject_firmware drivers/staging/media/atomisp/i2c/atomisp-libmsrlisthelper.c
+clean_kconfig drivers/staging/media/atomisp/i2c/Kconfig VIDEO_ATOMISP_MSRLIST_HELPER
+clean_mk CONFIG_VIDEO_ATOMISP_MSRLIST_HELPER drivers/staging/media/atomisp/i2c/Makefile
 
 announce VIDEO_ATOMISP - "Intel Atom Image Signal Processor Driver"
 reject_firmware drivers/staging/media/atomisp/pci/atomisp2/atomisp_v4l2.c
@@ -1334,7 +1346,6 @@ clean_kconfig drivers/media/platform/Kconfig VIDEO_CODA
 clean_mk CONFIG_VIDEO_CODA drivers/media/platform/coda/Makefile
 
 announce VIDEO_CPIA2 - "CPiA2 Video For Linux"
-clean_fw firmware/cpia2/stv0672_vp4.bin.ihex firmware/cpia2/stv0672_vp4.bin
 reject_firmware drivers/media/usb/cpia2/cpia2_core.c
 clean_blob drivers/media/usb/cpia2/cpia2_core.c
 clean_kconfig drivers/media/usb/cpia2/Kconfig VIDEO_CPIA2
@@ -1471,7 +1482,6 @@ clean_kconfig drivers/media/usb/s2255/Kconfig USB_S2255
 clean_mk CONFIG_USB_S2255 drivers/media/usb/s2255/Makefile
 
 announce USB_GSPCA_VICAM - "USB 3com HomeConnect, AKA vicam"
-drop_fw_file firmware/vicam/firmware.H16 firmware/vicam/firmware.fw
 reject_firmware drivers/media/usb/gspca/vicam.c
 clean_blob drivers/media/usb/gspca/vicam.c
 clean_kconfig drivers/media/usb/gspca/Kconfig USB_GSPCA_VICAM
@@ -1509,16 +1519,12 @@ clean_mk CONFIG_RADIO_WL128X drivers/media/radio/Makefile
 #######
 
 announce ACENIC - "Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit"
-drop_fw_file firmware/acenic/tg1.bin.ihex firmware/acenic/tg1.bin
-drop_fw_file firmware/acenic/tg2.bin.ihex firmware/acenic/tg2.bin
 reject_firmware drivers/net/ethernet/alteon/acenic.c
 clean_blob drivers/net/ethernet/alteon/acenic.c
 clean_kconfig drivers/net/ethernet/alteon/Kconfig ACENIC
 clean_mk CONFIG_ACENIC drivers/net/ethernet/alteon/Makefile
 
 announce ADAPTEC_STARFIRE - "Adaptec Starfire/DuraLAN support"
-clean_fw firmware/adaptec/starfire_rx.bin.ihex firmware/adaptec/starfire_rx.bin
-clean_fw firmware/adaptec/starfire_tx.bin.ihex firmware/adaptec/starfire_tx.bin
 reject_firmware drivers/net/ethernet/adaptec/starfire.c
 clean_blob drivers/net/ethernet/adaptec/starfire.c
 clean_kconfig drivers/net/ethernet/adaptec/Kconfig ADAPTEC_STARFIRE
@@ -1533,20 +1539,12 @@ clean_kconfig drivers/net/ethernet/brocade/bna/Kconfig BNA
 clean_mk CONFIG_BNA drivers/net/ethernet/brocade/bna/Makefile
 
 announce BNX2 - "Broadcom NetXtremeII"
-drop_fw_file firmware/bnx2/bnx2-mips-09-6.2.1a.fw.ihex firmware/bnx2/bnx2-mips-09-6.2.1a.fw
-drop_fw_file firmware/bnx2/bnx2-rv2p-09-6.0.17.fw.ihex firmware/bnx2/bnx2-rv2p-09-6.0.17.fw
-drop_fw_file firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw.ihex firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw
-drop_fw_file firmware/bnx2/bnx2-mips-06-6.2.1.fw.ihex firmware/bnx2/bnx2-mips-06-6.2.1.fw
-drop_fw_file firmware/bnx2/bnx2-rv2p-06-6.0.15.fw.ihex firmware/bnx2/bnx2-rv2p-06-6.0.15.fw
 reject_firmware drivers/net/ethernet/broadcom/bnx2.c
 clean_blob drivers/net/ethernet/broadcom/bnx2.c
 clean_kconfig drivers/net/ethernet/broadcom/Kconfig BNX2
 clean_mk CONFIG_BNX2 drivers/net/ethernet/broadcom/Makefile
 
 announce BNX2X - "Broadcom NetXtremeII 10Gb support"
-drop_fw_file firmware/bnx2x/bnx2x-e1-6.2.9.0.fw.ihex firmware/bnx2x/bnx2x-e1-6.2.9.0.fw
-drop_fw_file firmware/bnx2x/bnx2x-e1h-6.2.9.0.fw.ihex firmware/bnx2x/bnx2x-e1h-6.2.9.0.fw
-drop_fw_file firmware/bnx2x/bnx2x-e2-6.2.9.0.fw.ihex firmware/bnx2x/bnx2x-e2-6.2.9.0.fw
 reject_firmware drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
 clean_sed '
 /^#include "bnx2x_init\.h"/,/^$/{
@@ -1578,18 +1576,12 @@ clean_kconfig drivers/net/ethernet/broadcom/Kconfig BNX2X
 clean_mk CONFIG_BNX2X drivers/net/ethernet/broadcom/bnx2x/Makefile
 
 announce CASSINI - "Sun Cassini"
-drop_fw_file firmware/sun/cassini.bin.ihex firmware/sun/cassini.bin
 reject_firmware drivers/net/ethernet/sun/cassini.c
 clean_blob drivers/net/ethernet/sun/cassini.c
 clean_kconfig drivers/net/ethernet/sun/Kconfig CASSINI
 clean_mk CONFIG_CASSINI drivers/net/ethernet/sun/Makefile
 
 announce CHELSIO_T3 - "Chelsio AEL 2005 support"
-drop_fw_file firmware/cxgb3/t3b_psram-1.1.0.bin.ihex firmware/cxgb3/t3b_psram-1.1.0.bin
-drop_fw_file firmware/cxgb3/t3c_psram-1.1.0.bin.ihex firmware/cxgb3/t3c_psram-1.1.0.bin
-drop_fw_file firmware/cxgb3/ael2005_opt_edc.bin.ihex firmware/cxgb3/ael2005_opt_edc.bin
-drop_fw_file firmware/cxgb3/ael2005_twx_edc.bin.ihex firmware/cxgb3/ael2005_twx_edc.bin
-drop_fw_file firmware/cxgb3/ael2020_twx_edc.bin.ihex firmware/cxgb3/ael2020_twx_edc.bin
 reject_firmware drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
 clean_blob drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
 clean_kconfig drivers/net/ethernet/chelsio/Kconfig CHELSIO_T3
@@ -1602,9 +1594,6 @@ clean_kconfig drivers/net/ethernet/chelsio/Kconfig CHELSIO_T4
 clean_mk CONFIG_CHELSIO_T4 drivers/net/ethernet/chelsio/cxgb4/Makefile
 
 announce E100 - "Intel PRO/100+"
-drop_fw_file firmware/e100/d101m_ucode.bin.ihex firmware/e100/d101m_ucode.bin
-drop_fw_file firmware/e100/d101s_ucode.bin.ihex firmware/e100/d101s_ucode.bin
-drop_fw_file firmware/e100/d102e_ucode.bin.ihex firmware/e100/d102e_ucode.bin
 reject_firmware drivers/net/ethernet/intel/e100.c
 clean_sed '
 /^static const struct firmware \*e100_\(reject\|request\)_firmware(/,/^}$/{
@@ -1628,9 +1617,6 @@ clean_blob drivers/net/ethernet/mellanox/mlxsw/spectrum.c
 clean_kconfig drivers/net/ethernet/mellanox/mlxsw/Kconfig MLXSW_SPECTRUM
 clean_mk CONFIG_MLXSW_SPECTRUM drivers/net/ethernet/mellanox/mlxsw/Makefile
 
-announce MYRI_SBUS - "MyriCOM Gigabit Ethernet"
-drop_fw_file firmware/myricom/lanai.bin.ihex firmware/myricom/lanai.bin
-
 announce MYRI10GE - "Myricom Myri-10G Ethernet support"
 reject_firmware drivers/net/ethernet/myricom/myri10ge/myri10ge.c
 clean_blob drivers/net/ethernet/myricom/myri10ge/myri10ge.c
@@ -1688,23 +1674,18 @@ clean_kconfig drivers/net/ethernet/toshiba/Kconfig SPIDER_NET
 clean_mk CONFIG_SPIDER_NET drivers/net/ethernet/toshiba/Makefile
 
 announce TEHUTI - "Tehuti Networks 10G Ethernet"
-drop_fw_file firmware/tehuti/bdx.bin.ihex firmware/tehuti/bdx.bin
 reject_firmware drivers/net/ethernet/tehuti/tehuti.c
 clean_blob drivers/net/ethernet/tehuti/tehuti.c
 clean_kconfig drivers/net/ethernet/tehuti/Kconfig TEHUTI
 clean_mk CONFIG_TEHUTI drivers/net/ethernet/tehuti/Makefile
 
 announce TIGON3 - "Broadcom Tigon3"
-drop_fw_file firmware/tigon/tg3.bin.ihex firmware/tigon/tg3.bin
-drop_fw_file firmware/tigon/tg3_tso.bin.ihex firmware/tigon/tg3_tso.bin
-drop_fw_file firmware/tigon/tg3_tso5.bin.ihex firmware/tigon/tg3_tso5.bin
 reject_firmware drivers/net/ethernet/broadcom/tg3.c
 clean_blob drivers/net/ethernet/broadcom/tg3.c
 clean_kconfig drivers/net/ethernet/broadcom/Kconfig TIGON3
 clean_mk CONFIG_TIGON3 drivers/net/ethernet/broadcom/Makefile
 
 announce TYPHOON - "3cr990 series Typhoon"
-drop_fw_file firmware/3com/typhoon.bin.ihex firmware/3com/typhoon.bin
 reject_firmware drivers/net/ethernet/3com/typhoon.c
 clean_blob drivers/net/ethernet/3com/typhoon.c
 clean_kconfig drivers/net/ethernet/3com/Kconfig TYPHOON
@@ -1736,8 +1717,6 @@ clean_mk CONFIG_COPS drivers/net/appletalk/Makefile
 # hamradio
 
 announce YAM - "YAM driver for AX.25"
-drop_fw_file firmware/yam/1200.bin.ihex firmware/yam/1200.bin
-drop_fw_file firmware/yam/9600.bin.ihex firmware/yam/9600.bin
 reject_firmware drivers/net/hamradio/yam.c
 clean_blob drivers/net/hamradio/yam.c
 clean_kconfig drivers/net/hamradio/Kconfig YAM
@@ -1746,18 +1725,17 @@ clean_mk CONFIG_YAM drivers/net/hamradio/Makefile
 # irda
 
 announce USB_IRDA - "IrDA USB dongles"
-reject_firmware drivers/net/irda/irda-usb.c
-clean_blob drivers/net/irda/irda-usb.c
+reject_firmware drivers/staging/irda/drivers/irda-usb.c
+clean_blob drivers/staging/irda/drivers/irda-usb.c
 clean_sed '
 s,\(char stir421x_fw_name\)\[12\];,\1[16];,
-' drivers/net/irda/irda-usb.c "avoid buffer overflow with deblobbed filename"
-clean_kconfig drivers/net/irda/Kconfig USB_IRDA
-clean_mk CONFIG_USB_IRDA drivers/net/irda/Makefile
+' drivers/staging/irda/drivers/irda-usb.c "avoid buffer overflow with deblobbed filename"
+clean_kconfig drivers/staging/irda/drivers/Kconfig USB_IRDA
+clean_mk CONFIG_USB_IRDA drivers/staging/irda/drivers/Makefile
 
 # smsc
 
 announce PCMCIA_SMC91C92 - "SMC 91Cxx PCMCIA"
-drop_fw_file firmware/ositech/Xilinx7OD.bin.ihex firmware/ositech/Xilinx7OD.bin
 reject_firmware drivers/net/ethernet/smsc/smc91c92_cs.c
 clean_blob drivers/net/ethernet/smsc/smc91c92_cs.c
 clean_kconfig drivers/net/ethernet/smsc/Kconfig PCMCIA_SMC91C92
@@ -1801,29 +1779,17 @@ clean_mk CONFIG_NFC_S3FWRN5 drivers/nfc/s3fwrn5/Makefile
 # clean_kconfig drivers/pcmcia/Kconfig 'PCCARD'
 # clean_mk CONFIG_PCCARD drivers/pcmcia/Makefile
 
-announce PCMCIA_3C574 - "3Com 3c574 PCMCIA support"
-# This is not software; it's Free, but GPLed without in-tree sources.
-drop_fw_file firmware/cis/3CCFEM556.cis.ihex firmware/cis/3CCFEM556.cis
+# announce PCMCIA_3C574 - "3Com 3c574 PCMCIA support"
 # clean_blob drivers/net/pcmcia/3c574_cs.c
 # clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_3C574'
 # clean_mk CONFIG_PCMCIA_3C574 drivers/net/pcmcia/Makefile
 
-announce PCMCIA_3C589 - "3Com 3c589 PCMCIA support"
-# This is not software; it's Free, but GPLed without in-tree sources.
-drop_fw_file firmware/cis/3CXEM556.cis.ihex firmware/cis/3CXEM556.cis
+# announce PCMCIA_3C589 - "3Com 3c589 PCMCIA support"
 # clean_blob drivers/net/pcmcia/3c589_cs.c
 # clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_3C589'
 # clean_mk CONFIG_PCMCIA_3C589 drivers/net/pcmcia/Makefile
 
-announce PCMCIA_PCNET - "NE2000 compatible PCMCIA support"
-# These are not software; they're Free, but GPLed without in-tree sources.
-drop_fw_file firmware/cis/LA-PCM.cis.ihex firmware/cis/LA-PCM.cis
-drop_fw_file firmware/cis/PCMLM28.cis.ihex firmware/cis/PCMLM28.cis
-drop_fw_file firmware/cis/DP83903.cis.ihex firmware/cis/DP83903.cis
-drop_fw_file firmware/cis/NE2K.cis.ihex firmware/cis/NE2K.cis
-drop_fw_file firmware/cis/tamarack.cis.ihex firmware/cis/tamarack.cis
-drop_fw_file firmware/cis/PE-200.cis.ihex firmware/cis/PE-200.cis
-drop_fw_file firmware/cis/PE520.cis.ihex firmware/cis/PE520.cis
+# announce PCMCIA_PCNET - "NE2000 compatible PCMCIA support"
 # clean_blob drivers/net/pcmcia/pcnet_cs.c
 # clean_kconfig drivers/net/pcmcia/Kconfig 'PCMCIA_PCNET'
 # clean_mk CONFIG_PCMCIA_PCNET drivers/net/pcmcia/Makefile
@@ -1831,10 +1797,6 @@ drop_fw_file firmware/cis/PE520.cis.ihex firmware/cis/PE520.cis
 # usb
 
 announce USB_KAWETH - "USB KLSI KL5USB101-based ethernet device support"
-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
-drop_fw_file firmware/kaweth/trigger_code_fix.bin.ihex firmware/kaweth/trigger_code_fix.bin
 reject_firmware drivers/net/usb/kaweth.c
 clean_blob drivers/net/usb/kaweth.c
 clean_kconfig drivers/net/usb/Kconfig USB_KAWETH
@@ -2302,6 +2264,13 @@ clean_blob drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c
 clean_kconfig drivers/net/wireless/realtek/rtlwifi/Kconfig RTL8821AE
 clean_mk CONFIG_RTL8821AE drivers/net/wireless/realtek/rtlwifi/rtl8821ae/Makefile
 
+announce R8822BE - "Realtek RTL8822BE Wireless Network Adapter"
+reject_firmware drivers/staging/rtlwifi/core.c
+reject_firmware drivers/staging/rtlwifi/rtl8822be/sw.c
+clean_blob drivers/staging/rtlwifi/rtl8822be/sw.c
+clean_kconfig drivers/staging/rtlwifi/Kconfig R8822BE
+clean_mk CONFIG_R8822BE drivers/staging/rtlwifi/Makefile
+
 announce VT6656 - "VIA Technologies VT6656 support"
 reject_firmware drivers/staging/vt6656/firmware.c
 clean_blob drivers/staging/vt6656/firmware.c
@@ -2494,11 +2463,12 @@ clean_mk CONFIG_WIMAX_I2400M drivers/net/wimax/i2400m/Makefile
 announce INFINIBAND_HFI1 - "Intel OPA Gen1 support"
 reject_firmware drivers/infiniband/hw/hfi1/firmware.c
 clean_blob drivers/infiniband/hw/hfi1/firmware.c
+reject_firmware drivers/infiniband/hw/hfi1/platform.c
+clean_blob drivers/infiniband/hw/hfi1/platform.c
 clean_kconfig drivers/infiniband/hw/hfi1/Kconfig INFINIBAND_HFI1
 clean_mk CONFIG_INFINIBAND_HFI1 drivers/infiniband/hw/hfi1/Makefile
 
 announce INFINIBAND_QIB - "QLogic PCIe HCA support"
-drop_fw_file firmware/qlogic/sd7220.fw.ihex firmware/qlogic/sd7220.fw
 reject_firmware drivers/infiniband/hw/qib/qib_sd7220.c
 clean_blob drivers/infiniband/hw/qib/qib_sd7220.c
 clean_kconfig drivers/infiniband/hw/qib/Kconfig INFINIBAND_QIB
@@ -2543,19 +2513,7 @@ clean_mk CONFIG_MISDN_SPEEDFAX drivers/isdn/hardware/mISDN/Makefile
 # Serial #
 ##########
 
-announce SERIAL_8250_CS - "8250/16550 PCMCIA device support"
-# These are not software; they're Free, but GPLed without in-tree sources.
-drop_fw_file firmware/cis/MT5634ZLX.cis.ihex firmware/cis/MT5634ZLX.cis
-drop_fw_file firmware/cis/RS-COM-2P.cis.ihex firmware/cis/RS-COM-2P.cis
-drop_fw_file firmware/cis/COMpad2.cis.ihex firmware/cis/COMpad2.cis
-drop_fw_file firmware/cis/COMpad4.cis.ihex firmware/cis/COMpad4.cis
-# These are not software; they're Free, but GPLed without textual sources.
-# It could be assumed that these binaries *are* sources, since they
-# can be trivially converted back to a textual form, without loss,
-# but we're better off safe than sorry, so remove them from our tree.
-drop_fw_file firmware/cis/SW_555_SER.cis.ihex firmware/cis/SW_555_SER.cis
-drop_fw_file firmware/cis/SW_7xx_SER.cis.ihex firmware/cis/SW_7xx_SER.cis
-drop_fw_file firmware/cis/SW_8xx_SER.cis.ihex firmware/cis/SW_8xx_SER.cis
+# announce SERIAL_8250_CS - "8250/16550 PCMCIA device support"
 # clean_blob drivers/tty/serial/serial_cs.c
 # clean_kconfig drivers/tty/serial/Kconfig 'SERIAL_8250_CS'
 # clean_mk CONFIG_SERIAL_8250_CS drivers/tty/serial/Makefile
@@ -2639,6 +2597,12 @@ clean_blob drivers/input/touchscreen/goodix.c
 clean_kconfig drivers/input/touchscreen/Kconfig TOUCHSCREEN_GOODIX
 clean_mk CONFIG_TOUCHSCREEN_GOODIX drivers/input/touchscreen/Makefile
 
+announce TOUCHSCREEN_HIDEEP - "HiDeep Touch IC"
+reject_firmware drivers/input/touchscreen/hideep.c
+clean_blob drivers/input/touchscreen/hideep.c
+clean_kconfig drivers/input/touchscreen/Kconfig TOUCHSCREEN_HIDEEP
+clean_mk CONFIG_TOUCHSCREEN_HIDEEP drivers/input/touchscreen/Makefile
+
 announce TOUCHSCREEN_MELFAS_MIP4 - "MELFAS MIP4 Touchscreen"
 reject_firmware drivers/input/touchscreen/melfas_mip4.c
 clean_blob drivers/input/touchscreen/melfas_mip4.c
@@ -2750,26 +2714,18 @@ clean_mk CONFIG_MMC_VUB300 drivers/mmc/host/Makefile
 ########
 
 announce SCSI_QLOGICPTI - "PTI Qlogic, ISP Driver"
-drop_fw_file firmware/qlogic/isp1000.bin.ihex firmware/qlogic/isp1000.bin
 reject_firmware drivers/scsi/qlogicpti.c
 clean_blob drivers/scsi/qlogicpti.c
 clean_kconfig drivers/scsi/Kconfig SCSI_QLOGICPTI
 clean_mk CONFIG_SCSI_QLOGICPTI drivers/scsi/Makefile
 
 announce SCSI_ADVANSYS - "AdvanSys SCSI"
-drop_fw_file firmware/advansys/mcode.bin.ihex firmware/advansys/mcode.bin
-drop_fw_file firmware/advansys/3550.bin.ihex firmware/advansys/3550.bin
-drop_fw_file firmware/advansys/38C0800.bin.ihex firmware/advansys/38C0800.bin
-drop_fw_file firmware/advansys/38C1600.bin.ihex firmware/advansys/38C1600.bin
 reject_firmware 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
 
 announce SCSI_QLOGIC_1280 - "Qlogic QLA 1240/1x80/1x160 SCSI"
-drop_fw_file firmware/qlogic/1040.bin.ihex firmware/qlogic/1040.bin
-drop_fw_file firmware/qlogic/1280.bin.ihex firmware/qlogic/1280.bin
-drop_fw_file firmware/qlogic/12160.bin.ihex firmware/qlogic/12160.bin
 reject_firmware drivers/scsi/qla1280.c
 clean_blob drivers/scsi/qla1280.c
 clean_kconfig drivers/scsi/Kconfig SCSI_QLOGIC_1280
@@ -2867,21 +2823,12 @@ clean_mk CONFIG_USB_XHCI_TEGRA drivers/usb/host/Makefile
 # misc
 
 announce USB_EMI26 - "EMI 2|6 USB Audio interface"
-# 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
-drop_fw_file firmware/emi26/loader.HEX firmware/emi26/loader.fw
 reject_firmware drivers/usb/misc/emi26.c
 clean_blob drivers/usb/misc/emi26.c
 clean_kconfig drivers/usb/misc/Kconfig USB_EMI26
 clean_mk CONFIG_USB_EMI26 drivers/usb/misc/Makefile
 
 announce USB_EMI62 - "EMI 6|2m USB Audio interface"
-# 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
-drop_fw_file firmware/emi62/midi.HEX firmware/emi62/midi.fw
-drop_fw_file firmware/emi62/spdif.HEX firmware/emi62/spdif.fw
 reject_firmware drivers/usb/misc/emi62.c
 clean_blob drivers/usb/misc/emi62.c
 clean_kconfig drivers/usb/misc/Kconfig USB_EMI62
@@ -2907,46 +2854,29 @@ clean_mk CONFIG_USB_STORAGE_ENE_UB6250 drivers/usb/storage/Makefile
 # serial
 
 announce USB_SERIAL_KEYSPAN - "USB Keyspan USA-xxx Serial Driver"
-drop_fw_file firmware/keyspan/mpr.HEX firmware/keyspan/mpr.fw
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_KEYSPAN_MPR
-drop_fw_file firmware/keyspan/usa18x.HEX firmware/keyspan/usa18x.fw
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_KEYSPAN_USA18X
-drop_fw_file firmware/keyspan/usa19.HEX firmware/keyspan/usa19.fw
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_KEYSPAN_USA19
-drop_fw_file firmware/keyspan/usa19qi.HEX firmware/keyspan/usa19qi.fw
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_KEYSPAN_USA19QI
-drop_fw_file firmware/keyspan/usa19qw.HEX firmware/keyspan/usa19qw.fw
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_KEYSPAN_USA19QW
-drop_fw_file firmware/keyspan/usa19w.HEX firmware/keyspan/usa19w.fw
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_KEYSPAN_USA19W
-drop_fw_file firmware/keyspan/usa28.HEX firmware/keyspan/usa28.fw
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_KEYSPAN_USA28
-drop_fw_file firmware/keyspan/usa28xa.HEX firmware/keyspan/usa28xa.fw
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_KEYSPAN_USA28XA
-drop_fw_file firmware/keyspan/usa28xb.HEX firmware/keyspan/usa28xb.fw
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_KEYSPAN_USA28XB
-drop_fw_file firmware/keyspan/usa28x.HEX firmware/keyspan/usa28x.fw
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_KEYSPAN_USA28X
-drop_fw_file firmware/keyspan/usa49w.HEX firmware/keyspan/usa49w.fw
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_KEYSPAN_USA49W
-drop_fw_file firmware/keyspan/usa49wlc.HEX firmware/keyspan/usa49wlc.fw
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_KEYSPAN_USA49WLC
 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_EDGEPORT - "USB Inside Out Edgeport Serial Driver"
-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
 reject_firmware drivers/usb/serial/io_edgeport.c
 clean_blob drivers/usb/serial/io_edgeport.c
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_EDGEPORT
 clean_mk CONFIG_USB_SERIAL_EDGEPORT drivers/usb/serial/Makefile
 
 announce USB_SERIAL_EDGEPORT_TI - "USB Inside Out Edgeport Serial Driver (TI devices)"
-clean_fw firmware/edgeport/down3.bin.ihex firmware/edgeport/down3.bin
 reject_firmware drivers/usb/serial/io_ti.c
 clean_sed 's,firmware "down3\.bin",firmware "(DEBLOBBED)",
 ' drivers/usb/serial/io_ti.c 'deblobbed comment'
@@ -2969,20 +2899,12 @@ clean_mk CONFIG_USB_SERIAL_MXUPORT drivers/usb/serial/Makefile
 # clean_mk CONFIG_USB_SERIAL_MXUPORT11 drivers/usb/serial/Makefile
 
 announce USB_SERIAL_TI - "USB TI 3410/5052 Serial Driver"
-drop_fw_file firmware/ti_3410.fw.ihex firmware/ti_3410.fw
-drop_fw_file firmware/ti_5052.fw.ihex firmware/ti_5052.fw
-drop_fw_file firmware/mts_cdma.fw.ihex firmware/mts_cdma.fw
-drop_fw_file firmware/mts_gsm.fw.ihex firmware/mts_gsm.fw
-drop_fw_file firmware/mts_edge.fw.ihex firmware/mts_edge.fw
 reject_firmware drivers/usb/serial/ti_usb_3410_5052.c
 clean_blob drivers/usb/serial/ti_usb_3410_5052.c
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_TI
 clean_mk CONFIG_USB_SERIAL_TI drivers/usb/serial/Makefile
 
 announce USB_SERIAL_WHITEHEAT - "USB ConnectTech WhiteHEAT Serial Driver"
-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
 clean_blob drivers/usb/serial/whiteheat.c
 clean_kconfig drivers/usb/serial/Kconfig USB_SERIAL_WHITEHEAT
 clean_mk CONFIG_USB_SERIAL_WHITEHEAT drivers/usb/serial/Makefile
@@ -3056,42 +2978,30 @@ clean_kconfig sound/pci/Kconfig SND_CS46XX
 clean_mk CONFIG_SND_CS46XX sound/pci/cs46xx/Makefile
 
 announce SND_KORG1212 - "Korg 1212 IO"
-drop_fw_file firmware/korg/k1212.dsp.ihex firmware/korg/k1212.dsp
 reject_firmware sound/pci/korg1212/korg1212.c
 clean_blob sound/pci/korg1212/korg1212.c
 clean_kconfig sound/pci/Kconfig SND_KORG1212
 clean_mk CONFIG_SND_KORG1212 sound/pci/korg1212/Makefile
 
 announce SND_MAESTRO3 - "ESS Allegro/Maestro3"
-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
 reject_firmware sound/pci/maestro3.c
 clean_blob sound/pci/maestro3.c
 clean_kconfig sound/pci/Kconfig SND_MAESTRO3
 clean_mk CONFIG_SND_MAESTRO3 sound/pci/Makefile
 
 announce SND_YMFPCI - "Yamaha YMF724/740/744/754"
-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
 reject_firmware sound/pci/ymfpci/ymfpci_main.c
 clean_blob sound/pci/ymfpci/ymfpci_main.c
 clean_kconfig sound/pci/Kconfig SND_YMFPCI
 clean_mk CONFIG_SND_YMFPCI sound/pci/ymfpci/Makefile
 
 announce SND_SB16_CSP - "SB16 Advanced Signal Processor"
-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
 reject_firmware sound/isa/sb/sb16_csp.c
 clean_blob sound/isa/sb/sb16_csp.c
 clean_kconfig sound/isa/Kconfig SND_SB16_CSP
 clean_mk CONFIG_SND_SB16_CSP sound/isa/sb/Makefile
 
 announce SND_WAVEFRONT - "Turtle Beach Maui,Tropez,Tropez+ (Wavefront)"
-drop_fw_file firmware/yamaha/yss225_registers.bin.ihex firmware/yamaha/yss225_registers.bin
 reject_firmware sound/isa/wavefront/wavefront_fx.c
 clean_blob sound/isa/wavefront/wavefront_fx.c
 reject_firmware sound/isa/wavefront/wavefront_synth.c
@@ -3244,30 +3154,6 @@ clean_blob sound/isa/msnd/msnd_classic.h
 clean_kconfig sound/isa/Kconfig SND_MSND_CLASSIC
 clean_mk CONFIG_SND_MSND_CLASSIC sound/isa/msnd/Makefile
 
-announce SOUND_MSNDCLAS - "Support for Turtle Beach MultiSound Classic, Tahiti, Monterey (oss)"
-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 (oss)"
-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 SND_SSCAPE - "Ensoniq SoundScape driver"
 reject_firmware sound/isa/sscape.c
 clean_blob sound/isa/sscape.c
@@ -3304,10 +3190,16 @@ maybe_reject_firmware sound/soc/codecs/sigmadsp.c
 
 announce SND_SOC_INTEL_SST_ACPI - "Intel SST (LPE) Driver"
 reject_firmware sound/soc/intel/common/sst-acpi.c
-clean_blob sound/soc/intel/common/sst-acpi.c
 clean_kconfig sound/soc/intel/Kconfig SND_SOC_INTEL_SST_ACPI
 clean_mk CONFIG_SND_SOC_INTEL_SST_ACPI sound/soc/intel/common/Makefile
 
+announce SND_SOC_ACPI_INTEL_MATCH - undocumented
+clean_blob sound/soc/intel/common/soc-acpi-intel-byt-match.c
+clean_blob sound/soc/intel/common/soc-acpi-intel-cht-match.c
+clean_blob sound/soc/intel/common/soc-acpi-intel-hsw-bdw-match.c
+clean_kconfig sound/soc/intel/Kconfig SND_SOC_ACPI_INTEL_MATCH
+clean_mk CONFIG_SND_SOC_ACPI_INTEL_MATCH sound/soc/intel/common/Makefile
+
 announce SND_SOC_INTEL_HASWELL - undocumented
 reject_firmware sound/soc/intel/haswell/sst-haswell-ipc.c
 clean_blob sound/soc/intel/haswell/sst-haswell-ipc.c
@@ -3319,6 +3211,7 @@ reject_firmware sound/soc/intel/skylake/skl-sst.c
 reject_firmware sound/soc/intel/skylake/skl-sst-utils.c
 reject_firmware sound/soc/intel/skylake/skl-topology.c
 reject_firmware sound/soc/intel/skylake/bxt-sst.c
+reject_firmware sound/soc/intel/skylake/cnl-sst.c
 clean_blob sound/soc/intel/skylake/skl.c
 clean_blob sound/soc/intel/skylake/skl-nhlt.c
 clean_blob sound/soc/intel/skylake/skl-sst.c
@@ -3332,11 +3225,6 @@ reject_firmware sound/soc/intel/atom/sst/sst_loader.c
 clean_kconfig sound/soc/intel/Kconfig SND_SST_IPC
 clean_mk CONFIG_SND_SST_IPC sound/soc/intel/atom/sst/Makefile
 
-announce SND_SST_IPC_ACPI - undocumented
-clean_blob sound/soc/intel/atom/sst/sst_acpi.c
-clean_kconfig sound/soc/intel/Kconfig SND_SST_IPC_ACPI
-clean_mk CONFIG_SND_SST_IPC_ACPI sound/soc/intel/atom/sst/Makefile
-
 announce SND_SST_IPC_PCI - undocumented
 clean_blob sound/soc/intel/atom/sst/sst_pci.c
 clean_kconfig sound/soc/intel/Kconfig SND_SST_IPC_PCI
@@ -3381,34 +3269,6 @@ clean_blob sound/soc/sh/siu_dai.c
 clean_kconfig sound/soc/sh/Kconfig SND_SOC_SH4_SIU
 clean_mk CONFIG_SND_SOC_SH4_SIU sound/soc/sh/Makefile
 
-announce SOUND_TRIX - "MediaTrix AudioTrix Pro support"
-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 - "See above,"
-announce SOUND_PAS - "ProAudioSpectrum 16 support,"
-announce SOUND_SB - "100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support"
-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_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 '
-/^config PSS_BOOT_FILE$/, /^config / {
-  /^	default.*dsp001\.ld/ s,".*","/*(DEBLOBBED)*/",;
-}' sound/oss/Kconfig 'removed default firmware'
-clean_mk CONFIG_SOUND_PSS sound/oss/Makefile
-
 announce SND_USB_6FIRE - "TerraTec DMX 6Fire USB"
 reject_firmware sound/usb/6fire/firmware.c
 clean_blob sound/usb/6fire/firmware.c
@@ -3448,6 +3308,12 @@ clean_mk CONFIG_GREYBUS_BOOTROM drivers/staging/greybus/Makefile
 # SOC #
 #######
 
+announce XRX200_PHY_FW - "XRX200 PHY firmware loader"
+reject_firmware drivers/soc/lantiq/gphy.c
+clean_blob drivers/soc/lantiq/gphy.c
+clean_kconfig arch/mips/lantiq/Kconfig XRX200_PHY_FW
+clean_mk CONFIG_XRX200_PHY_FW drivers/soc/lantiq/Makefile
+
 announce QCOM_MDT_LOADER - "Qualcomm Peripheral Image Loader"
 reject_firmware drivers/soc/qcom/mdt_loader.c
 clean_kconfig drivers/soc/qcom/Kconfig QCOM_MDT_LOADER
@@ -3466,6 +3332,12 @@ clean_blob Documentation/arm/keystone/knav-qmss.txt
 clean_kconfig drivers/soc/ti/Kconfig KEYSTONE_NAVIGATOR_QMSS
 clean_mk CONFIG_KEYSTONE_NAVIGATOR_QMSS drivers/soc/ti/Makefile
 
+announce ARCH_BRCMSTB - "Broadcom BCM7XXX based boards"
+reject_firmware drivers/memory/brcmstb_dpfe.c
+clean_blob drivers/memory/brcmstb_dpfe.c
+clean_kconfig arch/arm/mach-bcm/Kconfig ARCH_BRCMSTB
+clean_mk CONFIG_ARCH_BRCMSTB drivers/memory/Makefile
+
 #################
 # Documentation #
 #################
@@ -3475,15 +3347,9 @@ clean_blob Documentation/media/dvb-drivers/avermedia.rst
 clean_blob Documentation/media/dvb-drivers/opera-firmware.rst
 clean_blob Documentation/media/v4l-drivers/ivtv.rst
 clean_blob Documentation/sound/alsa-configuration.rst
-clean_blob Documentation/sound/oss/MultiSound
-clean_blob Documentation/sound/oss/PSS
-clean_blob Documentation/sound/oss/PSS-updates
-clean_blob Documentation/sound/oss/README.OSS
 clean_file scripts/get_dvb_firmware
 clean_file scripts/extract_xc3028.pl
 clean_sed s,usb8388,whatever,g drivers/base/Kconfig 'removed blob name'
-clean_blob firmware/README.AddingFirmware
-clean_blob firmware/WHENCE
 
 if $errors; then
   echo errors above were ignored because of --force >&2
diff --git a/helpers/DATA/linux-hwe/deblob-check b/helpers/DATA/linux-hwe/deblob-check
index d553cbfec71878d9901620a4a826bf428d4aa7c1..0f4bf39f5dd325139539dc5b3c4e2f027d2c14d8 100644
--- a/helpers/DATA/linux-hwe/deblob-check
+++ b/helpers/DATA/linux-hwe/deblob-check
@@ -1,13 +1,13 @@
 #! /bin/sh
 
-# deblob-check version 2017-08-26 + 2017-10-23's r14392
+# deblob-check version 2018-01-07 + 2018-03-24's r14712 (partial)
 # Inspired in gNewSense's find-firmware script.
 # Written by Alexandre Oliva <lxoliva@fsfla.org>
 
 # Check http://www.fsfla.org/svn/fsfla/software/linux-libre for newer
 # versions.
 
-# Copyright 2008-2017 Alexandre Oliva <lxoliva@fsfla.org>
+# Copyright 2008-2018 Alexandre Oliva <lxoliva@fsfla.org>
 #
 # This program is part of GNU Linux-libre, a GNU project that
 # publishes scripts to clean up Linux so as to make it suitable for
@@ -4446,7 +4446,7 @@ set_except () {
     blobname 'pre-cal-%s-%s\.bin' drivers/net/wireless/ath/ath10k/core.c
     accept '[\t]fw_file->firmware[ ]=[ ]ath10k_fetch_fw_file' drivers/net/wireless/ath/ath10k/core.c
     blobname 'brcmfmac4356-sdio\.bin' drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-    blobname 'iwlwifi-9000\(-pu-a0-\(jf\|lc\)-[ab]0-\|-\|\)' drivers/net/wireless/intel/iwlwifi/iwl-9000.c
+    blobname 'iwlwifi-9000\(-pu-[ab]0-\(jf\|lc\)-[ab]0-\|-\|\)' drivers/net/wireless/intel/iwlwifi/iwl-9000.c
     blobname 'iwlwifi-9260-th-a0-\(jf\|lc\)-a0-' drivers/net/wireless/intel/iwlwifi/iwl-9000.c
     blobname 'mrvl[/]pcie8897_uapsta_a0\.bin' drivers/net/wireless/marvell/mwifiex/pcie.h
     blobname 'mrvl[/]pcieuart8997_combo\(_v2\)\?\.bin' drivers/net/wireless/marvell/mwifiex/pcie.h
@@ -4860,9 +4860,116 @@ set_except () {
     blobname '\(adsp\|slpi\)\.mdt' drivers/remoteproc/qcom_adsp_pil.c
     blobname 'wcnss\.mdt' drivers/remoteproc/qcom_wcnss.c
 
-    # Backported into 4.13.10.
+    # New in 4.14 (up to rc5).
+    blobname 'amdgpu[/]vega10_acg_smc\.bin' drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
+    blobname 'netronome[/]\(serial-%pMF-%02hhx-%02hhx\|pci-%s\)\.nffw' drivers/net/ethernet/netronome/nfp/nfp_main.c
+    blobname 'brcmfmac4373-sdio\.bin' drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+    blobname 'brcmfmac4373\.bin' drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c
+    blobname 'iwlwifi-QuQnj-\([af]0-hr-a0\|a0-jf-b0\)-' drivers/net/wireless/intel/iwlwifi/cfg/a000.c
+    blobname 'rt5514_dsp_fw3\.bin' sound/soc/codecs/rt5514.h
+    blobname 'intel[/]dsp_fw_cnl\.bin' sound/soc/intel/skylake/skl.c
+    initnc '__aes_arm\(64\)\?_inverse_sbox:[\n][\t]\.byte[ \t]*' arch/arm/crypto/aes-cipher-core.S
+    defsnc 'static[ ]const[ ]struct[ ]hsdk_pll_cfg[ ]asdt_pll_cfg\[\][ ]=' drivers/clk/clk-hsdk-pll.c
+    defsnc 'static[ ]const[ ]struct[ ]clk_div_table[ ]d1cpre_div_table\[\][ ]=' drivers/clk/clk-stm32h7.c
+    defsnc 'static[ ]const[ ]struct[ ]pctl_data[ ]pctl[01]_data\[\][ ]=' drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
+    defsnc '[\t]static[ ]const[ ]u16[ ]map\[\][ ]=' drivers/hwmon/asc7621.c
+    defsc 'static[ ]const[ ]struct[ ]stm32h7_adc_ck_spec[ ]stm32h7_adc_ckmodes_spec\[\][ ]=' drivers/iio/adc/stm32-adc-core.c
+    defsnc 'static[ ]const[ ]int[ ]srf08_sensitivity_avail\[\][ ]=' drivers/iio/proximity/srf08.c
+    defsc 'static[ ]const[ ]struct[ ]slookup[ ]\(lnagain_\(nf\|iip3\)\|gain_\(rfagc\|channel_agc_\(nf\|iip3\)\)\)_lookup\[\][ ]=' drivers/media/dvb-frontends/stv6111.c
+    defsnc 'static[ ]const[ ]struct[ ]ov5670_reg[ ]mode_\(2592x1944\|1296x972\|648x486\|2560x1440\|1280x720\|640x360\)_regs\[\][ ]=' drivers/media/i2c/ov5670.c
+    defsnc 'static[ ]const[ ]unsigned[ ]int[ ]\(gnd\|dram\|pci\|pflash\)_351[26]_pins\[\][ ]=' drivers/pinctrl/pinctrl-gemini.c
+    defsc 'static[ ]const[ ]unsigned[ ]int[ ]pflash_351[26]_pins_extended\[\][ ]=' drivers/pinctrl/pinctrl-gemini.c
+    defsnc 'static[ ]const[ ]u16[ ]db_invert_table\[12\]\[8\][ ]=' drivers/staging/rtlwifi/phydm/phydm.c
+    defsc 'u32[ ]cck_swing_table_ch1_ch14_8723d\[CCK_TABLE_SIZE_8723D\][ ]=' drivers/staging/rtlwifi/phydm/phydm_powertracking_ce.c
+    defsc 'u32[ ]cck_swing_table_ch1_ch14_8710b\[CCK_TABLE_SIZE_8710B\][ ]=' drivers/staging/rtlwifi/phydm/phydm_powertracking_ce.c
+    defsnc 'static[ ]u32[ ]array_mp_8822b_\(agc_tab\|phy_reg\(_pg\)\?\|mac_reg\|radio[ab]\)\[\][ ]=' drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_bb.c
+    defsnc 'static[ ]u8[ ]delta_swing_index_mp_5g[ba]_[np]_txpwrtrack_\(type[01246789]_\|type3_type5_\)\?8822b[\n\t ]*\[\]\[DELTA_SWINGIDX_SIZE\][ ]=' drivers/staging/rtlwifi/phydm/rtl8822b/halhwimg8822b_rf.c
+    defsnc 'static[ ]const[ ]struct[ ]tsadc_table[ ]rk3328_code_table\[\][ ]=' drivers/thermal/rockchip_thermal.c
+    defsnc 'static[ ]const[ ]BYTE[ ]LL_Code\[64\][ ]=' lib/zstd/compress.c
+    defsnc 'static[ ]const[ ]BYTE[ ]ML_Code\[128\][ ]=' lib/zstd/compress.c
+    defsc 'static[ ]const[ ]FSE_decode_t4[ ]LL_defaultDTable\[[(]1[ ][<][<][ ]LL_DEFAULTNORMLOG[)][ ][+][ ]1\][ ]=' lib/zstd/decompress.c
+    defsc 'static[ ]const[ ]FSE_decode_t4[ ]ML_defaultDTable\[[(]1[ ][<][<][ ]ML_DEFAULTNORMLOG[)][ ][+][ ]1\][ ]=' lib/zstd/decompress.c
+    defsc 'static[ ]const[ ]FSE_decode_t4[ ]OF_defaultDTable\[[(]1[ ][<][<][ ]OF_DEFAULTNORMLOG[)][ ][+][ ]1\][ ]=' lib/zstd/decompress.c
+    defsnc '[\t]static[ ]const[ ]U32[ ][LM]L_base\[Max[LM]L[ ][+][ ]1\][ ]=' lib/zstd/decompress.c
+    defsnc 'static[ ]const[ ]U32[ ][LM]L_bits\[Max[LM]L[ ][+][ ]1\][ ]=' lib/zstd/zstd_internal.h
+    defsnc 'static[ ]const[ ]S16[ ][LM]L_defaultNorm\[Max[LM]L[ ][+][ ]1\][ ]=' lib/zstd/zstd_internal.h
+    defsnc 'static[ ]const[ ]struct[ ]cs43130_pll_params[ ]pll_ratio_table\[\][ ]=' sound/soc/codecs/cs43130.c
+    defsnc 'static[ ]const[ ]struct[ ]reg_sequence[ ]pcm_ch_\(en\|dis\)_seq\[\][ ]=' sound/soc/codecs/cs43130.c
+    defsnc 'static[ ]const[ ]struct[ ]cs43130_clk_gen[ ]cs43130_\(16\|32\|48\|64\)_clk_gen\[\][ ]=' sound/soc/codecs/cs43130.c
+    defsnc 'static[ ]const[ ]struct[ ]reg_default[ ]rt274_\(index_def\|reg\)\[\][ ]=' sound/soc/codecs/rt274.c
+    accept '[\t]report_missing_free_firmware[^\n]*[\n][\t]retval[ ]=[ ]request_firmware_into_buf[(][&]xfw[,][ ]NONFREE_FIRMWARE' include/linux/firmware.h
+    accept '[\t]if[ ][(]is_nonfree_firmware[^\n]*[\n][\t][\t]return[ ]reject_firmware_into_buf[^\n]*[\n][\t]else[\n][\t][\t]return[ ]request_firmware_into_buf[(]firmware_p[,][ ]name[,]' include/linux/firmware.h
+    accept '[#]define[ ]TEST_FIRMWARE_NAME[\t]["]test-firmware\.bin["]' lib/test_firmware.c
+    accept '[ ][*][\t]request_firmware_direct[(][)][ ]will[ ]be[ ]used[ ]instead' lib/test_firmware.c
+    accept '[ ][*][\t]of[ ]the[ ]request_firmware[*][(][)][ ]calls[ ]used[ ]in[ ]their[ ]tests' lib/test_firmware.c
+    accept '[ ][*][\t]request_firmware_direct[(][)][,][ ]otherwise[ ]request_firmware[(][)]' lib/test_firmware.c
+    accept '[\t]*test_fw_config->req_firmware[ ]=[ ]\(test_fw_config->sync_direct[ ][?][\n][ \t]*request_firmware_direct[ ][:][\n][ \t]*\)\?request_firmware[;]' lib/test_firmware.c
+    accept '[\t][\t]req->name[ ]=[ ]test_fw_config->name[;][\n][\t][\t]req->fw[ ]=[ ]NULL[;][\n][\t][\t]req->idx[ ]=[ ]i[;][\n][\t][\t]init_completion[(][&]req->completion[)][;][\n][\t][\t]rc[ ]=[ ]request_firmware_nowait[(]THIS_MODULE[,][ ]\([^);, \t\n]*[,][ \t\n]*\)*trigger_batched_cb[)][;]' lib/test_firmware.c
+    accept '[\t]release_firmware[(]test_firmware[)][;][\n][\t]test_firmware[ ]=[ ]NULL[;][\n][\t]rc[ ]=[ ]request_firmware_nowait[(]THIS_MODULE[,][ ]1[,][ ]name[^)\n]*[\n][ \t]*NULL[,][ ]trigger_async_request_cb[)]' lib/test_firmware.c
+    accept '[#][ ]name:[ ]test-firmware\.bin' tools/testing/selftests/firmware/fw_filesystem.sh
+    accept '[\t]*test_\(batched_\)\?request_firmware\(_direct\|_nowait_\(uevent\|custom\)\)\?\(_nofile\)\?\([(][)]\|[ ][$]i\)' tools/testing/selftests/firmware/fw_filesystem.sh
+    accept '[\t]echo[ ]-n[ ]["]Batched[ ]request_firmware\(_direct\|_nowait\)\?[(]\(uevent=\(true\|false\)\)\?[)][ ]\(nofile[ ]\)\?try[ ]#[$]1:[ ]["]' tools/testing/selftests/firmware/fw_filesystem.sh
+    accept '[\t]\(config_set_name\|test_wait_and_cancel_custom_load\)[ ]nope-test-firmware\.bin' tools/testing/selftests/firmware/fw_filesystem.sh
+    blobname 'amdgpu[/]%s_asd\.bin' drivers/gpu/drm/amd/amdgpu/psp_v10_0.c
+    blobname 'lantiq[/]xrx[23]00_phy\(22f\|11g\)_a\(14\|2[21]\)\.bin' drivers/soc/lantiq/gphy.c
+    blobname 'rtlwifi[/]rtl8822befw\.bin' drivers/staging/rtlwifi/rtl8822be/sw.c
+    # This loads a file named by the user.
+    accept '[\t]const[ ]char[ ][*]name[ ]=[ ]i915\.vbt_firmware[;][\n][\t]int[ ]ret[;][\n][\n][\t]if[ ][(]!name[ ][|][|][ ][!][*]name[)][\n][\t][\t]return[ ]-ENOENT[;][\n][\n][\t]ret[ ]=[ ]request_firmware[(][&]fw[,][ ]name[,]' drivers/gpu/drm/i915/intel_opregion.c
     # New in 4.14-rc6.
     defsnc '[\t]static[ ]const[ ]struct[ ]nphy_txiqcal_ladder[ ]ladder_\(lo\|iq\)\[\][ ]=' drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.c
+    # New in 4.14.3.  When using python for deblobbing (default), this
+    # pattern appears too late.  An earlier pattern that matches
+    # iwlwifi-9000 alone and starts with 'iwlwifi-9000\(' needed
+    # adjusting as well.
+    blobname 'iwlwifi-9000-pu-b0-jf-b0-' drivers/net/wireless/intel/iwlwifi/cfg/9000.c
+
+    # New in 4.15 (up to rc6).
+    accept '[\t]*0[ ][ ][/][*]1\([ ][ ][23456]\)*[*][/]\([ ][ ][789]\)*\([\n][\t]*\([ ]*[1-9][0-9]*\)*\)*[\n][\t]*100' arch/arm/boot/dts/imx6q-pistachio.dts
+    defsnc 'static[ ]const[ ]unsigned[ ]int[ ]table\[\][ ]=' arch/mips/math-emu/dp_sqrt.c
+    defsnc 'const[ ]u8[ ]sm3_zero_message_hash\[SM3_DIGEST_SIZE\][ ]=' crypto/sm3_generic.c
+    defsc 'static[ ]const[ ]struct[ ]hash_testvec[ ]sm3_tv_template\[\][ ]=' crypto/testmgr.h
+    defsnc 'static[ ]const[ ]struct[ ]rcar_gen3_cpg_pll_config[ ]cpg_pll_configs\[8\][ ]__initconst[ ]=' drivers/clk/renesas/r8a77970-cpg-mssr.c
+    defsnc 'unsigned[ ]int[ ]sgl_ent_len\[\][ ]=' drivers/crypto/chelsio/chcr_algo.h
+    defsc 'static[ ]const[ ]struct[ ]pte_setting[ ]pte_settings\[mi_tiling_count\]\[mi_bpp_count\][ ]=' drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
+    defsnc 'static[ ]const[ ]uint16_t[ ]filter_4tap_16p_\(upscale\|117\|150\|183\)\[36\][ ]=' drivers/gpu/drm/amd/display/dc/dce/dce_scl_filters.c
+    defsnc 'static[ ]const[ ]uint16_t[ ]filter_2tap_64p\[66\][ ]=' drivers/gpu/drm/amd/display/dc/dce/dce_scl_filters.c
+    defsnc 'static[ ]const[ ]uint16_t[ ]filter_3tap_64p_\(upscale\|117\|150\|183\)\[99\][ ]=' drivers/gpu/drm/amd/display/dc/dce/dce_scl_filters.c
+    defsnc 'static[ ]const[ ]uint16_t[ ]filter_4tap_64p_\(upscale\|117\|150\|183\)\[132\][ ]=' drivers/gpu/drm/amd/display/dc/dce/dce_scl_filters.c
+    defsnc 'static[ ]const[ ]uint16_t[ ]filter_5tap_64p_\(upscale\|117\|150\|183\)\[165\][ ]=' drivers/gpu/drm/amd/display/dc/dce/dce_scl_filters.c
+    defsnc 'static[ ]const[ ]uint16_t[ ]filter_6tap_64p_\(upscale\|117\|150\|183\)\[198\][ ]=' drivers/gpu/drm/amd/display/dc/dce/dce_scl_filters.c
+    defsnc 'static[ ]const[ ]uint16_t[ ]filter_7tap_64p_\(upscale\|117\|150\|183\)\[231\][ ]=' drivers/gpu/drm/amd/display/dc/dce/dce_scl_filters.c
+    defsnc 'static[ ]const[ ]uint16_t[ ]filter_8tap_64p_\(upscale\|117\|150\|183\)\[264\][ ]=' drivers/gpu/drm/amd/display/dc/dce/dce_scl_filters.c
+    defsnc 'static[ ]const[ ]struct[ ]audio_clock_info[ ]audio_clock_info_table\[16\][ ]=' drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c
+    defsnc 'static[ ]const[ ]struct[ ]audio_clock_info[ ]audio_clock_info_table_\(36\|48\)bpc\[14\][ ]=' drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c
+    defsnc 'static[ ]const[ ]unsigned[ ]int[ ]dvmm_Hw_Setting_\(2DTiling\|Linear\)\[4\]\[9\][ ]=' drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
+    defsnc 'static[ ]const[ ]struct[ ]phm_fuses_default[ ]vega10_fuses_default\[\][ ]=' drivers/gpu/drm/amd/powerplay/hwmgr/pp_overdriver.c
+    defsnc 'static[ ]const[ ]unsigned[ ]char[ ]soft_dummy_pp_table\[\][ ]=' drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.c
+    accept 'static[ ]const[ ]PWR_DFY_Section[ ]pwr_virus_section[123456][ ]=[ ][{]\([\n][\t]\.dfy_\(cntl\|addr_\(hi\|lo\)\)[ ]=[ ]0x[0-9a-f]*[,]\)*[\n][\t]\.dfy_data[ ]=[ ][{]\([\n]\([ \t]0x[0-9a-f]*[,]\)*\)*[\n][\t][}][,][\n][\t]\.dfy_size[ ]=[ ][0-9]*[\n][}][;]' drivers/gpu/drm/amd/powerplay/inc/polaris10_pwrvirus.h
+    defsnc 'static[ ]const[ ]struct[ ]kx_odr_map[ ]samp_freq_table\[\][ ]=' drivers/iio/accel/kxcjk-1013.c
+    defsc 'static[ ]const[ ]struct[ ]reg_8[ ]imx274_\(mode\(1_3840x2160\|3_1920x1080\|5_1280x720\)_raw10\|start_2\)\[\][ ]=' drivers/media/i2c/imx274.c
+    defsnc '[\t]static[ ]const[ ]unsigned[ ]char[ ]\(y\|uv\)QuanTable51[18]\[\][ ]=' drivers/media/usb/gspca/ov519.c
+    defsnc 'static[ ]const[ ]u32[ ]t5_tp_mib_index_array\[9\]\[IREG_NUM_ELEM\][ ]=' drivers/net/ethernet/chelsio/cxgb4/cudbg_entity.h
+    defsnc 'static[ ]const[ ]struct[ ]tsadc_table[ ]rv1108_table\[\][ ]' drivers/thermal/rockchip_thermal.c
+    initnc '[/][*][ ]Seth[ ]Forshee.s[ ]regdb[ ]certificate[ ][*][/]' net/wireless/certs/sforshee.hex
+    initnc '\(Read\|Fill\)[ ]buffer[ ]content:' tools/testing/selftests/android/ion/README
+    blobname 'amdgpu[/]%s_\(pfp\|[mc]e\|mec2\?\)_2\.bin' drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+    blobname 'nvidia[/]tegra186[/]vic04_ucode\.bin' drivers/gpu/drm/tegra/vic.c
+    accept 'static[ ]const[ ]struct[ ]vic_config[ ]vic_t186_config[ ]=[ ][{][\n][\t]\.firmware[ ]=[ ]NVIDIA_TEGRA_186_VIC_FIRMWARE[,]' drivers/gpu/drm/tegra/vic.c
+    blobname 'gsl3680-chuwi-hi8-pro\.fw' drivers/platform/x86/silead_dmi.c
+    blobname 'gsl1686-digma_citi_e200\.fw' drivers/platform/x86/silead_dmi.c
+    accept '[/][*][ ]code[ ]to[ ]directly[ ]load[ ]a[ ]firmware[ ]database[ ]through[ ]request_firmware[ ][*][/]' net/wireless/reg.c
+    accept '[\t]if[ ][(]request_firmware[(][&]sig[,][ ]["]regulatory\.db\.p7s["][,]' net/wireless/reg.c
+    accept '[\t]return[ ]request_firmware_nowait[(]THIS_MODULE[,][ ]true[,][ ]["]regulatory\.db["][,]' net/wireless/reg.c
+    accept '[\t]err[ ]=[ ]request_firmware[(][&]fw[,][ ]["]regulatory\.db["][,]' net/wireless/reg.c
+    accept '[\t][ ][*][ ]the[ ]new[ ]path[,][ ]using[ ]request_firmware_direct[(][)]' drivers/gpu/drm/msm/adreno/adreno_gpu.h
+    accept '[\t][ ][*][ ]finally[ ]fall[ ]back[ ]to[ ]request_firmware[(][)]' drivers/gpu/drm/msm/adreno/adreno_gpu.h
+    blobname 'hideep_ts_\(%04x\|[0-9a-f]*\)\.bin' drivers/input/touchscreen/hideep.c
+    blobname 'dpfe\.bin' drivers/memory/brcmstb_dpfe.c
+    accept '[\t]err[ ]=[ ]request_firmware[(][&]clm[,][ ]clm_name[,][ ]dev[)][;]' drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
+    accept '[\t]*DRM_DEBUG_DRIVER[(]["]%s[ ]fw[ ]request_firmware[ ]err=%d[\\]n["][,]' drivers/gpu/drm/i915/intel_uc_fw.c
+
+    # New in 4.16, backported to 4.15.13 and 4.14.30.
+    accept '[ ][*][ ]@fw_get_done[\t]*flag[ ]set[ ]when[ ]request_firmware[(][)][ ]is[ ]complete' drivers/media/platform/s5p-mfc/s5p_mfc_common.h
     ;;
 
   */*freedo*.patch | */*logo*.patch)
diff --git a/helpers/make-linux-hwe b/helpers/make-linux-hwe
index c00e9214074fbeafdbe8879f2a8e67bd26eec324..4578fffe779a3b72d07450fdf317a43a6a985932 100644
--- a/helpers/make-linux-hwe
+++ b/helpers/make-linux-hwe
@@ -17,7 +17,7 @@
 #    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 #
 
-VERSION=1
+VERSION=2
 
 . ./config
 
@@ -33,8 +33,7 @@ for FILE in $PRESERVE; do
   cp $FILE /tmp/preserve --parents -a
 done
 
-sh $DATA/deblob-4.13 --force
-sed 's/bnx2.*fw/$(DEBLOBBED)/' -i firmware/Makefile
+sh $DATA/deblob-4.15 --force
 
 echo "Reverting deblobbing for files patched by silent-accept-firmware"
 cp /tmp/preserve/* . -av