Browse Source

deblob done

parazyd 2 years ago
parent
commit
e84d73b1e1
100 changed files with 436 additions and 3783 deletions
  1. 2 6
      Documentation/arm/IXP4xx
  2. 1 22
      Documentation/arm/keystone/knav-qmss.txt
  3. 1 9
      Documentation/btmrvl.txt
  4. 1 1
      Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt
  5. 1 1
      Documentation/devicetree/bindings/remoteproc/wkup_m3_rproc.txt
  6. 2 2
      Documentation/dontdiff
  7. 1 3
      Documentation/dvb/avermedia.txt
  8. 0 942
      Documentation/dvb/get_dvb_firmware
  9. 0 81
      Documentation/dvb/lmedm04.txt
  10. 1 20
      Documentation/dvb/opera-firmware.txt
  11. 1 6
      Documentation/dvb/ttusb-dec.txt
  12. 1 26
      Documentation/networking/fore200e.txt
  13. 1 18
      Documentation/scsi/wd719x.txt
  14. 7 16
      Documentation/sound/alsa/ALSA-Configuration.txt
  15. 2 74
      Documentation/sound/oss/MultiSound
  16. 1 8
      Documentation/sound/oss/PSS
  17. 1 7
      Documentation/sound/oss/PSS-updates
  18. 1 31
      Documentation/sound/oss/README.OSS
  19. 1 5
      Documentation/video4linux/bttv/README
  20. 0 1717
      Documentation/video4linux/extract_xc3028.pl
  21. 2 25
      Documentation/wimax/README.i2400m
  22. 3 3
      Documentation/x86/early-microcode.txt
  23. 1 1
      Makefile
  24. 35 4
      README
  25. 4 0
      README-heads
  26. 1 1
      arch/arm/boot/dts/am33xx.dtsi
  27. 1 1
      arch/arm/boot/dts/am4372.dtsi
  28. 1 1
      arch/arm/boot/dts/imx25.dtsi
  29. 1 1
      arch/arm/boot/dts/imx35.dtsi
  30. 1 1
      arch/arm/boot/dts/imx50.dtsi
  31. 1 1
      arch/arm/boot/dts/imx51.dtsi
  32. 1 1
      arch/arm/boot/dts/imx53-tx53.dtsi
  33. 1 1
      arch/arm/boot/dts/imx53.dtsi
  34. 1 1
      arch/arm/boot/dts/imx6qdl.dtsi
  35. 1 1
      arch/arm/boot/dts/imx6sl.dtsi
  36. 1 1
      arch/arm/boot/dts/imx6sx.dtsi
  37. 4 4
      arch/arm/mach-imx/mm-imx3.c
  38. 2 4
      arch/arm/mach-ixp4xx/ixp4xx_npe.c
  39. 2 2
      arch/arm/mach-netx/xc.c
  40. 1 1
      arch/mips/lantiq/xway/xrx200_phy_fw.c
  41. 7 22
      arch/x86/kernel/cpu/microcode/amd.c
  42. 4 4
      arch/x86/kernel/cpu/microcode/intel.c
  43. 2 2
      drivers/atm/.gitignore
  44. 2 2
      drivers/atm/ambassador.c
  45. 6 10
      drivers/atm/fore200e.c
  46. 6 8
      drivers/atm/solos-pci.c
  47. 3 3
      drivers/base/Kconfig
  48. 1 1
      drivers/base/firmware_class.c
  49. 7 7
      drivers/bluetooth/ath3k.c
  50. 3 4
      drivers/bluetooth/bcm203x.c
  51. 2 2
      drivers/bluetooth/bfusb.c
  52. 2 2
      drivers/bluetooth/bt3c_cs.c
  53. 4 4
      drivers/bluetooth/btbcm.c
  54. 2 3
      drivers/bluetooth/btintel.c
  55. 12 18
      drivers/bluetooth/btmrvl_sdio.c
  56. 3 3
      drivers/bluetooth/btqca.c
  57. 7 7
      drivers/bluetooth/btrtl.c
  58. 10 10
      drivers/bluetooth/btusb.c
  59. 1 1
      drivers/bluetooth/hci_bcm.c
  60. 2 2
      drivers/bluetooth/hci_intel.c
  61. 2 2
      drivers/crypto/qat/qat_common/adf_accel_engine.c
  62. 2 2
      drivers/crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.h
  63. 1 1
      drivers/crypto/qat/qat_dh895xcc/adf_drv.c
  64. 1 1
      drivers/dma/imx-sdma.c
  65. 2 2
      drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
  66. 12 19
      drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
  67. 12 19
      drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
  68. 3 4
      drivers/gpu/drm/amd/amdgpu/ci_dpm.c
  69. 4 13
      drivers/gpu/drm/amd/amdgpu/cik_sdma.c
  70. 3 3
      drivers/gpu/drm/amd/amdgpu/fiji_dpm.c
  71. 13 42
      drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
  72. 13 44
      drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
  73. 4 6
      drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
  74. 3 3
      drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
  75. 3 3
      drivers/gpu/drm/amd/amdgpu/iceland_dpm.c
  76. 4 5
      drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
  77. 4 10
      drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
  78. 3 3
      drivers/gpu/drm/amd/amdgpu/tonga_dpm.c
  79. 3 3
      drivers/gpu/drm/ast/ast_dp501.c
  80. 4 5
      drivers/gpu/drm/i915/intel_csr.c
  81. 3 3
      drivers/gpu/drm/i915/intel_guc_loader.c
  82. 4 5
      drivers/gpu/drm/mga/mga_warp.c
  83. 11 16
      drivers/gpu/drm/msm/adreno/adreno_device.c
  84. 2 2
      drivers/gpu/drm/msm/adreno/adreno_gpu.c
  85. 6 6
      drivers/gpu/drm/nouveau/nvkm/engine/falcon.c
  86. 2 2
      drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
  87. 2 2
      drivers/gpu/drm/nouveau/nvkm/engine/xtensa.c
  88. 3 3
      drivers/gpu/drm/r128/r128_cce.c
  89. 37 116
      drivers/gpu/drm/radeon/cik.c
  90. 11 31
      drivers/gpu/drm/radeon/ni.c
  91. 10 16
      drivers/gpu/drm/radeon/r100.c
  92. 9 57
      drivers/gpu/drm/radeon/r600.c
  93. 5 24
      drivers/gpu/drm/radeon/r600_cp.c
  94. 10 16
      drivers/gpu/drm/radeon/radeon_cp.c
  95. 11 18
      drivers/gpu/drm/radeon/radeon_uvd.c
  96. 4 5
      drivers/gpu/drm/radeon/radeon_vce.c
  97. 27 100
      drivers/gpu/drm/radeon/si.c
  98. 2 2
      drivers/gpu/drm/sti/sti_hqvdp.c
  99. 4 4
      drivers/iio/common/ssp_sensors/ssp_dev.c
  100. 0 0
      drivers/infiniband/hw/qib/qib_sd7220.c

+ 2 - 6
Documentation/arm/IXP4xx

@@ -35,17 +35,13 @@ Linux currently supports the following features on the IXP4xx chips:
35 35
   See arch/arm/mach-ixp4xx/include/mach/platform.h for access functions.
36 36
 - Timers (watchdog, OS)
37 37
 
38
-The following components of the chips are not supported by Linux and
39
-require the use of Intel's proprietary CSR software:
38
+The following components of the chips are not supported by Linux /*(DEBLOBBED)*/:
40 39
 
41 40
 - USB device interface
42 41
 - Network interfaces (HSS, Utopia, NPEs, etc)
43 42
 - Network offload functionality
44 43
 
45
-If you need to use any of the above, you need to download Intel's
46
-software from:
47
-
48
-   http://developer.intel.com/design/network/products/npfamily/ixp425.htm    
44
+/*(DEBLOBBED)*/
49 45
 
50 46
 DO NOT POST QUESTIONS TO THE LINUX MAILING LISTS REGARDING THE PROPRIETARY
51 47
 SOFTWARE.

+ 1 - 22
Documentation/arm/keystone/knav-qmss.txt

@@ -32,25 +32,4 @@ The QMSS PDSP firmware support accumulator channel that can monitor a single
32 32
 queue or multiple contiguous queues. drivers/soc/ti/knav_qmss_acc.c is the
33 33
 driver that interface with the accumulator PDSP. This configures
34 34
 accumulator channels defined in DTS (example in DT documentation) to monitor
35
-1 or 32 queues per channel. More description on the firmware is available in
36
-CPPI/QMSS Low Level Driver document (docs/CPPI_QMSS_LLD_SDS.pdf) at
37
-	git://git.ti.com/keystone-rtos/qmss-lld.git
38
-
39
-k2_qmss_pdsp_acc48_k2_le_1_0_0_9.bin firmware supports upto 48 accumulator
40
-channels. This firmware is available under ti-keystone folder of
41
-firmware.git at
42
-   git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
43
-
44
-To use copy the firmware image to lib/firmware folder of the initramfs or
45
-ubifs file system and provide a sym link to k2_qmss_pdsp_acc48_k2_le_1_0_0_9.bin
46
-in the file system and boot up the kernel. User would see
47
-
48
- "firmware file ks2_qmss_pdsp_acc48.bin downloaded for PDSP"
49
-
50
-in the boot up log if loading of firmware to PDSP is successful.
51
-
52
-Use of accumulated queues requires the firmware image to be present in the
53
-file system. The driver doesn't acc queues to the supported queue range if
54
-PDSP is not running in the SoC. The API call fails if there is a queue open
55
-request to an acc queue and PDSP is not running. So make sure to copy firmware
56
-to file system before using these queue types.
35
+1 or 32 queues per channel. /*(DEBLOBBED)*/

+ 1 - 9
Documentation/btmrvl.txt

@@ -108,12 +108,4 @@ Use hcitool to issue raw hci command, refer to hcitool manual
108 108
 =======================================================================
109 109
 
110 110
 
111
-SD8688 firmware:
112
-
113
-/lib/firmware/sd8688_helper.bin
114
-/lib/firmware/sd8688.bin
115
-
116
-
117
-The images can be downloaded from:
118
-
119
-git.infradead.org/users/dwmw2/linux-firmware.git/libertas/
111
+/*(DEBLOBBED)*/

+ 1 - 1
Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt

@@ -65,7 +65,7 @@ sdma@83fb0000 {
65 65
 	reg = <0x83fb0000 0x4000>;
66 66
 	interrupts = <6>;
67 67
 	#dma-cells = <3>;
68
-	fsl,sdma-ram-script-name = "sdma-imx51.bin";
68
+	fsl,sdma-ram-script-name = "/*(DEBLOBBED)*/";
69 69
 };
70 70
 
71 71
 DMA clients connected to the i.MX SDMA controller must use the format

+ 1 - 1
Documentation/devicetree/bindings/remoteproc/wkup_m3_rproc.txt

@@ -44,7 +44,7 @@ ocp {
44 44
 			      <0x180000 0x2000>;
45 45
 			reg-names = "umem", "dmem";
46 46
 			ti,hwmods = "wkup_m3";
47
-			ti,pm-firmware = "am335x-pm-firmware.elf";
47
+			ti,pm-firmware = "/*(DEBLOBBED)*/";
48 48
 		};
49 49
 	};
50 50
 

+ 2 - 2
Documentation/dontdiff

@@ -212,8 +212,8 @@ parse.h
212 212
 parse-events*
213 213
 pasyms.h
214 214
 patches*
215
-pca200e.bin
216
-pca200e_ecd.bin2
215
+/*(DEBLOBBED)*/
216
+/*(DEBLOBBED)*/
217 217
 perf.data
218 218
 perf.data.old
219 219
 perf-archive

+ 1 - 3
Documentation/dvb/avermedia.txt

@@ -145,9 +145,7 @@ Getting the card going
145 145
    dvbstream etc.
146 146
 
147 147
    The frontend module sp887x.o, requires an external   firmware.
148
-   Please use  the  command "get_dvb_firmware sp887x" to download
149
-   it. Then copy it to /usr/lib/hotplug/firmware or /lib/firmware/
150
-   (depending on configuration of firmware hotplug).
148
+   /*(DEBLOBBED)*/
151 149
 
152 150
 Receiving DVB-T in Australia
153 151
 

+ 0 - 942
Documentation/dvb/get_dvb_firmware

@@ -1,942 +0,0 @@
1
-#!/usr/bin/perl
2
-#     DVB firmware extractor
3
-#
4
-#     (c) 2004 Andrew de Quincey
5
-#
6
-#     This program is free software; you can redistribute it and/or modify
7
-#       it under the terms of the GNU General Public License as published by
8
-#       the Free Software Foundation; either version 2 of the License, or
9
-#       (at your option) any later version.
10
-#
11
-#     This program is distributed in the hope that it will be useful,
12
-#       but WITHOUT ANY WARRANTY; without even the implied warranty of
13
-#       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
-#
15
-#     GNU General Public License for more details.
16
-#
17
-#     You should have received a copy of the GNU General Public License
18
-#       along with this program; if not, write to the Free Software
19
-#       Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20
-
21
-use File::Temp qw/ tempdir /;
22
-use IO::Handle;
23
-
24
-@components = ( "sp8870", "sp887x", "tda10045", "tda10046",
25
-		"tda10046lifeview", "av7110", "dec2000t", "dec2540t",
26
-		"dec3000s", "vp7041", "vp7049", "dibusb", "nxt2002", "nxt2004",
27
-		"or51211", "or51132_qam", "or51132_vsb", "bluebird",
28
-		"opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718",
29
-		"af9015", "ngene", "az6027", "lme2510_lg", "lme2510c_s7395",
30
-		"lme2510c_s7395_old", "drxk", "drxk_terratec_h5",
31
-		"drxk_hauppauge_hvr930c", "tda10071", "it9135", "drxk_pctv",
32
-		"drxk_terratec_htc_stick", "sms1xxx_hcw", "si2165");
33
-
34
-# Check args
35
-syntax() if (scalar(@ARGV) != 1);
36
-$cid = $ARGV[0];
37
-
38
-# Do it!
39
-for ($i=0; $i < scalar(@components); $i++) {
40
-    if ($cid eq $components[$i]) {
41
-	$outfile = eval($cid);
42
-	die $@ if $@;
43
-	print STDERR <<EOF;
44
-Firmware(s) $outfile extracted successfully.
45
-Now copy it(them) to either /usr/lib/hotplug/firmware or /lib/firmware
46
-(depending on configuration of firmware hotplug).
47
-EOF
48
-	exit(0);
49
-    }
50
-}
51
-
52
-# If we get here, it wasn't found
53
-print STDERR "Unknown component \"$cid\"\n";
54
-syntax();
55
-
56
-
57
-
58
-
59
-# ---------------------------------------------------------------
60
-# Firmware-specific extraction subroutines
61
-
62
-sub sp8870 {
63
-    my $sourcefile = "tt_Premium_217g.zip";
64
-    my $url = "http://www.softwarepatch.pl/9999ccd06a4813cb827dbb0005071c71/$sourcefile";
65
-    my $hash = "53970ec17a538945a6d8cb608a7b3899";
66
-    my $outfile = "dvb-fe-sp8870.fw";
67
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
68
-
69
-    checkstandard();
70
-
71
-    wgetfile($sourcefile, $url);
72
-    unzip($sourcefile, $tmpdir);
73
-    verify("$tmpdir/software/OEM/HE/App/boot/SC_MAIN.MC", $hash);
74
-    copy("$tmpdir/software/OEM/HE/App/boot/SC_MAIN.MC", $outfile);
75
-
76
-    $outfile;
77
-}
78
-
79
-sub sp887x {
80
-    my $sourcefile = "Dvbt1.3.57.6.zip";
81
-    my $url = "http://www.avermedia.com/software/$sourcefile";
82
-    my $cabfile = "DVBT Net  Ver1.3.57.6/disk1/data1.cab";
83
-    my $hash = "237938d53a7f834c05c42b894ca68ac3";
84
-    my $outfile = "dvb-fe-sp887x.fw";
85
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
86
-
87
-    checkstandard();
88
-    checkunshield();
89
-
90
-    wgetfile($sourcefile, $url);
91
-    unzip($sourcefile, $tmpdir);
92
-    unshield("$tmpdir/$cabfile", $tmpdir);
93
-    verify("$tmpdir/ZEnglish/sc_main.mc", $hash);
94
-    copy("$tmpdir/ZEnglish/sc_main.mc", $outfile);
95
-
96
-    $outfile;
97
-}
98
-
99
-sub tda10045 {
100
-    my $sourcefile = "tt_budget_217g.zip";
101
-    my $url = "http://www.technotrend.de/new/217g/$sourcefile";
102
-    my $hash = "2105fd5bf37842fbcdfa4bfd58f3594a";
103
-    my $outfile = "dvb-fe-tda10045.fw";
104
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
105
-
106
-    checkstandard();
107
-
108
-    wgetfile($sourcefile, $url);
109
-    unzip($sourcefile, $tmpdir);
110
-    extract("$tmpdir/software/OEM/PCI/App/ttlcdacc.dll", 0x37ef9, 30555, "$tmpdir/fwtmp");
111
-    verify("$tmpdir/fwtmp", $hash);
112
-    copy("$tmpdir/fwtmp", $outfile);
113
-
114
-    $outfile;
115
-}
116
-
117
-sub tda10046 {
118
-	my $sourcefile = "TT_PCI_2.19h_28_11_2006.zip";
119
-	my $url = "http://technotrend.com.ua/download/software/219/$sourcefile";
120
-	my $hash = "6a7e1e2f2644b162ff0502367553c72d";
121
-	my $outfile = "dvb-fe-tda10046.fw";
122
-	my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
123
-
124
-	checkstandard();
125
-
126
-	wgetfile($sourcefile, $url);
127
-	unzip($sourcefile, $tmpdir);
128
-	extract("$tmpdir/TT_PCI_2.19h_28_11_2006/software/OEM/PCI/App/ttlcdacc.dll", 0x65389, 24478, "$tmpdir/fwtmp");
129
-	verify("$tmpdir/fwtmp", $hash);
130
-	copy("$tmpdir/fwtmp", $outfile);
131
-
132
-	$outfile;
133
-}
134
-
135
-sub tda10046lifeview {
136
-    my $sourcefile = "7%5Cdrv_2.11.02.zip";
137
-    my $url = "http://www.lifeview.hk/dbimages/document/$sourcefile";
138
-    my $hash = "1ea24dee4eea8fe971686981f34fd2e0";
139
-    my $outfile = "dvb-fe-tda10046.fw";
140
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
141
-
142
-    checkstandard();
143
-
144
-    wgetfile($sourcefile, $url);
145
-    unzip($sourcefile, $tmpdir);
146
-    extract("$tmpdir/LVHybrid.sys", 0x8b088, 24602, "$tmpdir/fwtmp");
147
-    verify("$tmpdir/fwtmp", $hash);
148
-    copy("$tmpdir/fwtmp", $outfile);
149
-
150
-    $outfile;
151
-}
152
-
153
-sub av7110 {
154
-    my $sourcefile = "dvb-ttpci-01.fw-261d";
155
-    my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile";
156
-    my $hash = "603431b6259715a8e88f376a53b64e2f";
157
-    my $outfile = "dvb-ttpci-01.fw";
158
-
159
-    checkstandard();
160
-
161
-    wgetfile($sourcefile, $url);
162
-    verify($sourcefile, $hash);
163
-    copy($sourcefile, $outfile);
164
-
165
-    $outfile;
166
-}
167
-
168
-sub dec2000t {
169
-    my $sourcefile = "dec217g.exe";
170
-    my $url = "http://hauppauge.lightpath.net/de/$sourcefile";
171
-    my $hash = "bd86f458cee4a8f0a8ce2d20c66215a9";
172
-    my $outfile = "dvb-ttusb-dec-2000t.fw";
173
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
174
-
175
-    checkstandard();
176
-
177
-    wgetfile($sourcefile, $url);
178
-    unzip($sourcefile, $tmpdir);
179
-    verify("$tmpdir/software/OEM/STB/App/Boot/STB_PC_T.bin", $hash);
180
-    copy("$tmpdir/software/OEM/STB/App/Boot/STB_PC_T.bin", $outfile);
181
-
182
-    $outfile;
183
-}
184
-
185
-sub dec2540t {
186
-    my $sourcefile = "dec217g.exe";
187
-    my $url = "http://hauppauge.lightpath.net/de/$sourcefile";
188
-    my $hash = "53e58f4f5b5c2930beee74a7681fed92";
189
-    my $outfile = "dvb-ttusb-dec-2540t.fw";
190
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
191
-
192
-    checkstandard();
193
-
194
-    wgetfile($sourcefile, $url);
195
-    unzip($sourcefile, $tmpdir);
196
-    verify("$tmpdir/software/OEM/STB/App/Boot/STB_PC_X.bin", $hash);
197
-    copy("$tmpdir/software/OEM/STB/App/Boot/STB_PC_X.bin", $outfile);
198
-
199
-    $outfile;
200
-}
201
-
202
-sub dec3000s {
203
-    my $sourcefile = "dec217g.exe";
204
-    my $url = "http://hauppauge.lightpath.net/de/$sourcefile";
205
-    my $hash = "b013ececea83f4d6d8d2a29ac7c1b448";
206
-    my $outfile = "dvb-ttusb-dec-3000s.fw";
207
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
208
-
209
-    checkstandard();
210
-
211
-    wgetfile($sourcefile, $url);
212
-    unzip($sourcefile, $tmpdir);
213
-    verify("$tmpdir/software/OEM/STB/App/Boot/STB_PC_S.bin", $hash);
214
-    copy("$tmpdir/software/OEM/STB/App/Boot/STB_PC_S.bin", $outfile);
215
-
216
-    $outfile;
217
-}
218
-sub opera1{
219
-	my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 0);
220
-
221
-	checkstandard();
222
-	my $fwfile1="dvb-usb-opera1-fpga-01.fw";
223
-	my $fwfile2="dvb-usb-opera-01.fw";
224
-	extract("2830SCap2.sys", 0x62e8, 55024, "$tmpdir/opera1-fpga.fw");
225
-	extract("2830SLoad2.sys",0x3178,0x3685-0x3178,"$tmpdir/fw1part1");
226
-	extract("2830SLoad2.sys",0x0980,0x3150-0x0980,"$tmpdir/fw1part2");
227
-	delzero("$tmpdir/fw1part1","$tmpdir/fw1part1-1");
228
-	delzero("$tmpdir/fw1part2","$tmpdir/fw1part2-1");
229
-	verify("$tmpdir/fw1part1-1","5e0909858fdf0b5b09ad48b9fe622e70");
230
-	verify("$tmpdir/fw1part2-1","d6e146f321427e931df2c6fcadac37a1");
231
-	verify("$tmpdir/opera1-fpga.fw","0f8133f5e9051f5f3c1928f7e5a1b07d");
232
-
233
-	my $RES1="\x01\x92\x7f\x00\x01\x00";
234
-	my $RES0="\x01\x92\x7f\x00\x00\x00";
235
-	my $DAT1="\x01\x00\xe6\x00\x01\x00";
236
-	my $DAT0="\x01\x00\xe6\x00\x00\x00";
237
-	open FW,">$tmpdir/opera.fw";
238
-	print FW "$RES1";
239
-	print FW "$DAT1";
240
-	print FW "$RES1";
241
-	print FW "$DAT1";
242
-	appendfile(FW,"$tmpdir/fw1part1-1");
243
-	print FW "$RES0";
244
-	print FW "$DAT0";
245
-	print FW "$RES1";
246
-	print FW "$DAT1";
247
-	appendfile(FW,"$tmpdir/fw1part2-1");
248
-	print FW "$RES1";
249
-	print FW "$DAT1";
250
-	print FW "$RES0";
251
-	print FW "$DAT0";
252
-	copy ("$tmpdir/opera1-fpga.fw",$fwfile1);
253
-	copy ("$tmpdir/opera.fw",$fwfile2);
254
-
255
-	$fwfile1.",".$fwfile2;
256
-}
257
-
258
-sub vp7041 {
259
-    my $sourcefile = "2.422.zip";
260
-    my $url = "http://www.twinhan.com/files/driver/USB-Ter/$sourcefile";
261
-    my $hash = "e88c9372d1f66609a3e7b072c53fbcfe";
262
-    my $outfile = "dvb-vp7041-2.422.fw";
263
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
264
-
265
-    checkstandard();
266
-
267
-    wgetfile($sourcefile, $url);
268
-    unzip($sourcefile, $tmpdir);
269
-    extract("$tmpdir/VisionDTV/Drivers/Win2K&XP/UDTTload.sys", 12503, 3036, "$tmpdir/fwtmp1");
270
-    extract("$tmpdir/VisionDTV/Drivers/Win2K&XP/UDTTload.sys", 2207, 10274, "$tmpdir/fwtmp2");
271
-
272
-    my $CMD = "\000\001\000\222\177\000";
273
-    my $PAD = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000";
274
-    my ($FW);
275
-    open $FW, ">$tmpdir/fwtmp3";
276
-    print $FW "$CMD\001$PAD";
277
-    print $FW "$CMD\001$PAD";
278
-    appendfile($FW, "$tmpdir/fwtmp1");
279
-    print $FW "$CMD\000$PAD";
280
-    print $FW "$CMD\001$PAD";
281
-    appendfile($FW, "$tmpdir/fwtmp2");
282
-    print $FW "$CMD\001$PAD";
283
-    print $FW "$CMD\000$PAD";
284
-    close($FW);
285
-
286
-    verify("$tmpdir/fwtmp3", $hash);
287
-    copy("$tmpdir/fwtmp3", $outfile);
288
-
289
-    $outfile;
290
-}
291
-
292
-sub vp7049 {
293
-    my $fwfile = "dvb-usb-vp7049-0.95.fw";
294
-    my $url = "http://ao2.it/sites/default/files/blog/2012/11/06/linux-support-digicom-digitune-s-vp7049-udtt7049/$fwfile";
295
-    my $hash = "5609fd295168aea88b25ff43a6f79c36";
296
-
297
-    checkstandard();
298
-
299
-    wgetfile($fwfile, $url);
300
-    verify($fwfile, $hash);
301
-
302
-    $fwfile;
303
-}
304
-
305
-sub dibusb {
306
-	my $url = "http://www.linuxtv.org/downloads/firmware/dvb-usb-dibusb-5.0.0.11.fw";
307
-	my $outfile = "dvb-dibusb-5.0.0.11.fw";
308
-	my $hash = "fa490295a527360ca16dcdf3224ca243";
309
-
310
-	checkstandard();
311
-
312
-	wgetfile($outfile, $url);
313
-	verify($outfile,$hash);
314
-
315
-	$outfile;
316
-}
317
-
318
-sub nxt2002 {
319
-    my $sourcefile = "Technisat_DVB-PC_4_4_COMPACT.zip";
320
-    my $url = "http://www.bbti.us/download/windows/$sourcefile";
321
-    my $hash = "476befae8c7c1bb9648954060b1eec1f";
322
-    my $outfile = "dvb-fe-nxt2002.fw";
323
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
324
-
325
-    checkstandard();
326
-
327
-    wgetfile($sourcefile, $url);
328
-    unzip($sourcefile, $tmpdir);
329
-    verify("$tmpdir/SkyNET.sys", $hash);
330
-    extract("$tmpdir/SkyNET.sys", 331624, 5908, $outfile);
331
-
332
-    $outfile;
333
-}
334
-
335
-sub nxt2004 {
336
-    my $sourcefile = "AVerTVHD_MCE_A180_Drv_v1.2.2.16.zip";
337
-    my $url = "http://www.avermedia-usa.com/support/Drivers/$sourcefile";
338
-    my $hash = "111cb885b1e009188346d72acfed024c";
339
-    my $outfile = "dvb-fe-nxt2004.fw";
340
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
341
-
342
-    checkstandard();
343
-
344
-    wgetfile($sourcefile, $url);
345
-    unzip($sourcefile, $tmpdir);
346
-    verify("$tmpdir/3xHybrid.sys", $hash);
347
-    extract("$tmpdir/3xHybrid.sys", 465304, 9584, $outfile);
348
-
349
-    $outfile;
350
-}
351
-
352
-sub or51211 {
353
-    my $fwfile = "dvb-fe-or51211.fw";
354
-    my $url = "http://linuxtv.org/downloads/firmware/$fwfile";
355
-    my $hash = "d830949c771a289505bf9eafc225d491";
356
-
357
-    checkstandard();
358
-
359
-    wgetfile($fwfile, $url);
360
-    verify($fwfile, $hash);
361
-
362
-    $fwfile;
363
-}
364
-
365
-sub cx231xx {
366
-    my $fwfile = "v4l-cx231xx-avcore-01.fw";
367
-    my $url = "http://linuxtv.org/downloads/firmware/$fwfile";
368
-    my $hash = "7d3bb956dc9df0eafded2b56ba57cc42";
369
-
370
-    checkstandard();
371
-
372
-    wgetfile($fwfile, $url);
373
-    verify($fwfile, $hash);
374
-
375
-    $fwfile;
376
-}
377
-
378
-sub cx18 {
379
-    my $url = "http://linuxtv.org/downloads/firmware/";
380
-
381
-    my %files = (
382
-	'v4l-cx23418-apu.fw' => '588f081b562f5c653a3db1ad8f65939a',
383
-	'v4l-cx23418-cpu.fw' => 'b6c7ed64bc44b1a6e0840adaeac39d79',
384
-	'v4l-cx23418-dig.fw' => '95bc688d3e7599fd5800161e9971cc55',
385
-    );
386
-
387
-    checkstandard();
388
-
389
-    my $allfiles;
390
-    foreach my $fwfile (keys %files) {
391
-	wgetfile($fwfile, "$url/$fwfile");
392
-	verify($fwfile, $files{$fwfile});
393
-	$allfiles .= " $fwfile";
394
-    }
395
-
396
-    $allfiles =~ s/^\s//;
397
-
398
-    $allfiles;
399
-}
400
-
401
-sub mpc718 {
402
-    my $archive = 'Yuan MPC718 TV Tuner Card 2.13.10.1016.zip';
403
-    my $url = "ftp://ftp.work.acer-euro.com/desktop/aspire_idea510/vista/Drivers/$archive";
404
-    my $fwfile = "dvb-cx18-mpc718-mt352.fw";
405
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
406
-
407
-    checkstandard();
408
-    wgetfile($archive, $url);
409
-    unzip($archive, $tmpdir);
410
-
411
-    my $sourcefile = "$tmpdir/Yuan MPC718 TV Tuner Card 2.13.10.1016/mpc718_32bit/yuanrap.sys";
412
-    my $found = 0;
413
-
414
-    open IN, '<', $sourcefile or die "Couldn't open $sourcefile to extract $fwfile data\n";
415
-    binmode IN;
416
-    open OUT, '>', $fwfile;
417
-    binmode OUT;
418
-    {
419
-	# Block scope because we change the line terminator variable $/
420
-	my $prevlen = 0;
421
-	my $currlen;
422
-
423
-	# Buried in the data segment are 3 runs of almost identical
424
-	# register-value pairs that end in 0x5d 0x01 which is a "TUNER GO"
425
-	# command for the MT352.
426
-	# Pull out the middle run (because it's easy) of register-value
427
-	# pairs to make the "firmware" file.
428
-
429
-	local $/ = "\x5d\x01"; # MT352 "TUNER GO"
430
-
431
-	while (<IN>) {
432
-	    $currlen = length($_);
433
-	    if ($prevlen == $currlen && $currlen <= 64) {
434
-		chop; chop; # Get rid of "TUNER GO"
435
-		s/^\0\0//;  # get rid of leading 00 00 if it's there
436
-		printf OUT "$_";
437
-		$found = 1;
438
-		last;
439
-	    }
440
-	    $prevlen = $currlen;
441
-	}
442
-    }
443
-    close OUT;
444
-    close IN;
445
-    if (!$found) {
446
-	unlink $fwfile;
447
-	die "Couldn't find valid register-value sequence in $sourcefile for $fwfile\n";
448
-    }
449
-    $fwfile;
450
-}
451
-
452
-sub cx23885 {
453
-    my $url = "http://linuxtv.org/downloads/firmware/";
454
-
455
-    my %files = (
456
-	'v4l-cx23885-avcore-01.fw' => 'a9f8f5d901a7fb42f552e1ee6384f3bb',
457
-	'v4l-cx23885-enc.fw'       => 'a9f8f5d901a7fb42f552e1ee6384f3bb',
458
-    );
459
-
460
-    checkstandard();
461
-
462
-    my $allfiles;
463
-    foreach my $fwfile (keys %files) {
464
-	wgetfile($fwfile, "$url/$fwfile");
465
-	verify($fwfile, $files{$fwfile});
466
-	$allfiles .= " $fwfile";
467
-    }
468
-
469
-    $allfiles =~ s/^\s//;
470
-
471
-    $allfiles;
472
-}
473
-
474
-sub pvrusb2 {
475
-    my $url = "http://linuxtv.org/downloads/firmware/";
476
-
477
-    my %files = (
478
-	'v4l-cx25840.fw'           => 'dadb79e9904fc8af96e8111d9cb59320',
479
-    );
480
-
481
-    checkstandard();
482
-
483
-    my $allfiles;
484
-    foreach my $fwfile (keys %files) {
485
-	wgetfile($fwfile, "$url/$fwfile");
486
-	verify($fwfile, $files{$fwfile});
487
-	$allfiles .= " $fwfile";
488
-    }
489
-
490
-    $allfiles =~ s/^\s//;
491
-
492
-    $allfiles;
493
-}
494
-
495
-sub or51132_qam {
496
-    my $fwfile = "dvb-fe-or51132-qam.fw";
497
-    my $url = "http://linuxtv.org/downloads/firmware/$fwfile";
498
-    my $hash = "7702e8938612de46ccadfe9b413cb3b5";
499
-
500
-    checkstandard();
501
-
502
-    wgetfile($fwfile, $url);
503
-    verify($fwfile, $hash);
504
-
505
-    $fwfile;
506
-}
507
-
508
-sub or51132_vsb {
509
-    my $fwfile = "dvb-fe-or51132-vsb.fw";
510
-    my $url = "http://linuxtv.org/downloads/firmware/$fwfile";
511
-    my $hash = "c16208e02f36fc439a557ad4c613364a";
512
-
513
-    checkstandard();
514
-
515
-    wgetfile($fwfile, $url);
516
-    verify($fwfile, $hash);
517
-
518
-    $fwfile;
519
-}
520
-
521
-sub bluebird {
522
-	my $url = "http://www.linuxtv.org/download/dvb/firmware/dvb-usb-bluebird-01.fw";
523
-	my $outfile = "dvb-usb-bluebird-01.fw";
524
-	my $hash = "658397cb9eba9101af9031302671f49d";
525
-
526
-	checkstandard();
527
-
528
-	wgetfile($outfile, $url);
529
-	verify($outfile,$hash);
530
-
531
-	$outfile;
532
-}
533
-
534
-sub af9015 {
535
-	my $sourcefile = "download.ashx?file=57";
536
-	my $url = "http://www.ite.com.tw/EN/Services/$sourcefile";
537
-	my $hash = "e3f08935158038d385ad382442f4bb2d";
538
-	my $outfile = "dvb-usb-af9015.fw";
539
-	my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
540
-	my $fwoffset = 0x25690;
541
-	my $fwlength = 18725;
542
-	my ($chunklength, $buf, $rcount);
543
-
544
-	checkstandard();
545
-
546
-	wgetfile($sourcefile, $url);
547
-	unzip($sourcefile, $tmpdir);
548
-	verify("$tmpdir/Driver/Files/AF15BDA.sys", $hash);
549
-
550
-	open INFILE, '<', "$tmpdir/Driver/Files/AF15BDA.sys";
551
-	open OUTFILE, '>', $outfile;
552
-
553
-	sysseek(INFILE, $fwoffset, SEEK_SET);
554
-	while($fwlength > 0) {
555
-		$chunklength = 55;
556
-		$chunklength = $fwlength if ($chunklength > $fwlength);
557
-		$rcount = sysread(INFILE, $buf, $chunklength);
558
-		die "Ran out of data\n" if ($rcount != $chunklength);
559
-		syswrite(OUTFILE, $buf);
560
-		sysread(INFILE, $buf, 8);
561
-		$fwlength -= $rcount + 8;
562
-	}
563
-
564
-	close OUTFILE;
565
-	close INFILE;
566
-}
567
-
568
-sub ngene {
569
-    my $url = "http://www.digitaldevices.de/download/";
570
-    my $file1 = "ngene_15.fw";
571
-    my $hash1 = "d798d5a757121174f0dbc5f2833c0c85";
572
-    my $file2 = "ngene_17.fw";
573
-    my $hash2 = "26b687136e127b8ac24b81e0eeafc20b";
574
-    my $url2 = "http://l4m-daten.de/downloads/firmware/dvb-s2/linux/all/";
575
-    my $file3 = "ngene_18.fw";
576
-    my $hash3 = "ebce3ea769a53e3e0b0197c3b3f127e3";
577
-
578
-    checkstandard();
579
-
580
-    wgetfile($file1, $url . $file1);
581
-    verify($file1, $hash1);
582
-
583
-    wgetfile($file2, $url . $file2);
584
-    verify($file2, $hash2);
585
-
586
-    wgetfile($file3, $url2 . $file3);
587
-    verify($file3, $hash3);
588
-
589
-    "$file1, $file2, $file3";
590
-}
591
-
592
-sub az6027{
593
-    my $firmware = "dvb-usb-az6027-03.fw";
594
-    my $url = "http://linux.terratec.de/files/TERRATEC_S7/$firmware";
595
-
596
-    wgetfile($firmware, $url);
597
-
598
-    $firmware;
599
-}
600
-
601
-sub lme2510_lg {
602
-    my $sourcefile = "LMEBDA_DVBS.sys";
603
-    my $hash = "fc6017ad01e79890a97ec53bea157ed2";
604
-    my $outfile = "dvb-usb-lme2510-lg.fw";
605
-    my $hasho = "caa065d5fdbd2c09ad57b399bbf55cad";
606
-
607
-    checkstandard();
608
-
609
-    verify($sourcefile, $hash);
610
-    extract($sourcefile, 4168, 3841, $outfile);
611
-    verify($outfile, $hasho);
612
-    $outfile;
613
-}
614
-
615
-sub lme2510c_s7395 {
616
-    my $sourcefile = "US2A0D.sys";
617
-    my $hash = "b0155a8083fb822a3bd47bc360e74601";
618
-    my $outfile = "dvb-usb-lme2510c-s7395.fw";
619
-    my $hasho = "3a3cf1aeebd17b6ddc04cebe131e94cf";
620
-
621
-    checkstandard();
622
-
623
-    verify($sourcefile, $hash);
624
-    extract($sourcefile, 37248, 3720, $outfile);
625
-    verify($outfile, $hasho);
626
-    $outfile;
627
-}
628
-
629
-sub lme2510c_s7395_old {
630
-    my $sourcefile = "LMEBDA_DVBS7395C.sys";
631
-    my $hash = "7572ae0eb9cdf91baabd7c0ba9e09b31";
632
-    my $outfile = "dvb-usb-lme2510c-s7395.fw";
633
-    my $hasho = "90430c5b435eb5c6f88fd44a9d950674";
634
-
635
-    checkstandard();
636
-
637
-    verify($sourcefile, $hash);
638
-    extract($sourcefile, 4208, 3881, $outfile);
639
-    verify($outfile, $hasho);
640
-    $outfile;
641
-}
642
-
643
-sub drxk {
644
-    my $url = "http://l4m-daten.de/files/";
645
-    my $zipfile = "DDTuner.zip";
646
-    my $hash = "f5a37b9a20a3534997997c0b1382a3e5";
647
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
648
-    my $drvfile = "DDTuner.sys";
649
-    my $fwfile = "drxk_a3.mc";
650
-
651
-    checkstandard();
652
-
653
-    wgetfile($zipfile, $url . $zipfile);
654
-    verify($zipfile, $hash);
655
-    unzip($zipfile, $tmpdir);
656
-    extract("$tmpdir/$drvfile", 0x14dd8, 15634, "$fwfile");
657
-
658
-    "$fwfile"
659
-}
660
-
661
-sub drxk_hauppauge_hvr930c {
662
-    my $url = "http://www.wintvcd.co.uk/drivers/";
663
-    my $zipfile = "HVR-9x0_5_10_325_28153_SIGNED.zip";
664
-    my $hash = "83ab82e7e9480ec8bf1ae0155ca63c88";
665
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
666
-    my $drvfile = "HVR-900/emOEM.sys";
667
-    my $fwfile = "dvb-usb-hauppauge-hvr930c-drxk.fw";
668
-
669
-    checkstandard();
670
-
671
-    wgetfile($zipfile, $url . $zipfile);
672
-    verify($zipfile, $hash);
673
-    unzip($zipfile, $tmpdir);
674
-    extract("$tmpdir/$drvfile", 0x117b0, 42692, "$fwfile");
675
-
676
-    "$fwfile"
677
-}
678
-
679
-sub drxk_terratec_h5 {
680
-    my $url = "http://www.linuxtv.org/downloads/firmware/";
681
-    my $hash = "19000dada8e2741162ccc50cc91fa7f1";
682
-    my $fwfile = "dvb-usb-terratec-h5-drxk.fw";
683
-
684
-    checkstandard();
685
-
686
-    wgetfile($fwfile, $url . $fwfile);
687
-    verify($fwfile, $hash);
688
-
689
-    "$fwfile"
690
-}
691
-
692
-sub drxk_terratec_htc_stick {
693
-    my $url = "http://ftp.terratec.de/Receiver/Cinergy_HTC_Stick/Updates/History/";
694
-    my $zipfile = "Cinergy_HTC_Stick_Drv_5.09.1202.00_XP_Vista_7.exe";
695
-    my $hash = "6722a2442a05423b781721fbc069ed5e";
696
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 0);
697
-    my $drvfile = "Cinergy HTC Stick/BDA Driver 5.09.1202.00/Windows 32 Bit/emOEM.sys";
698
-    my $fwfile = "dvb-usb-terratec-htc-stick-drxk.fw";
699
-
700
-    checkstandard();
701
-
702
-    wgetfile($zipfile, $url . $zipfile);
703
-    verify($zipfile, $hash);
704
-    unzip($zipfile, $tmpdir);
705
-    extract("$tmpdir/$drvfile", 0x4e5c0, 42692, "$fwfile");
706
-
707
-    "$fwfile"
708
-}
709
-
710
-sub it9135 {
711
-	my $url = "http://www.ite.com.tw/uploads/firmware/v3.25.0.0/";
712
-	my $file1 = "dvb-usb-it9135-01.zip";
713
-	my $fwfile1 = "dvb-usb-it9135-01.fw";
714
-	my $hash1 = "02fcf11174eda84745dae7e61c5ff9ba";
715
-	my $file2 = "dvb-usb-it9135-02.zip";
716
-	my $fwfile2 = "dvb-usb-it9135-02.fw";
717
-	my $hash2 = "d5e1437dc24358578e07999475d4cac9";
718
-
719
-	checkstandard();
720
-
721
-	wgetfile($file1, $url . $file1);
722
-	unzip($file1, "");
723
-	verify("$fwfile1", $hash1);
724
-
725
-	wgetfile($file2, $url . $file2);
726
-	unzip($file2, "");
727
-	verify("$fwfile2", $hash2);
728
-
729
-	"$file1 $file2"
730
-}
731
-
732
-sub tda10071 {
733
-    my $sourcefile = "PCTV_460e_reference.zip";
734
-    my $url = "ftp://ftp.pctvsystems.com/TV/driver/PCTV%2070e%2080e%20100e%20320e%20330e%20800e/";
735
-    my $hash = "4403de903bf2593464c8d74bbc200a57";
736
-    my $fwfile = "dvb-fe-tda10071.fw";
737
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
738
-
739
-    checkstandard();
740
-
741
-    wgetfile($sourcefile, $url . $sourcefile);
742
-    verify($sourcefile, $hash);
743
-    unzip($sourcefile, $tmpdir);
744
-    extract("$tmpdir/PCTV\ 70e\ 80e\ 100e\ 320e\ 330e\ 800e/32\ bit/emOEM.sys", 0x67d38, 40504, $fwfile);
745
-
746
-    "$fwfile";
747
-}
748
-
749
-sub drxk_pctv {
750
-    my $sourcefile = "PCTV_460e_reference.zip";
751
-    my $url = "ftp://ftp.pctvsystems.com/TV/driver/PCTV%2070e%2080e%20100e%20320e%20330e%20800e/";
752
-    my $hash = "4403de903bf2593464c8d74bbc200a57";
753
-    my $fwfile = "dvb-demod-drxk-pctv.fw";
754
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
755
-
756
-    checkstandard();
757
-
758
-    wgetfile($sourcefile, $url . $sourcefile);
759
-    verify($sourcefile, $hash);
760
-    unzip($sourcefile, $tmpdir);
761
-    extract("$tmpdir/PCTV\ 70e\ 80e\ 100e\ 320e\ 330e\ 800e/32\ bit/emOEM.sys", 0x72b80, 42692, $fwfile);
762
-
763
-    "$fwfile";
764
-}
765
-
766
-sub sms1xxx_hcw {
767
-    my $url = "http://steventoth.net/linux/sms1xxx/";
768
-    my %files = (
769
-	'sms1xxx-hcw-55xxx-dvbt-01.fw'  => "afb6f9fb9a71d64392e8564ef9577e5a",
770
-	'sms1xxx-hcw-55xxx-dvbt-02.fw'  => "b44807098ba26e52cbedeadc052ba58f",
771
-	'sms1xxx-hcw-55xxx-isdbt-02.fw' => "dae934eeea85225acbd63ce6cfe1c9e4",
772
-    );
773
-
774
-    checkstandard();
775
-
776
-    my $allfiles;
777
-    foreach my $fwfile (keys %files) {
778
-	wgetfile($fwfile, "$url/$fwfile");
779
-	verify($fwfile, $files{$fwfile});
780
-	$allfiles .= " $fwfile";
781
-    }
782
-
783
-    $allfiles =~ s/^\s//;
784
-
785
-    $allfiles;
786
-}
787
-
788
-sub si2165 {
789
-    my $sourcefile = "model_111xxx_122xxx_driver_6_0_119_31191_WHQL.zip";
790
-    my $url = "http://www.hauppauge.de/files/drivers/";
791
-    my $hash = "76633e7c76b0edee47c3ba18ded99336";
792
-    my $fwfile = "dvb-demod-si2165.fw";
793
-    my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1);
794
-
795
-    checkstandard();
796
-
797
-    wgetfile($sourcefile, $url . $sourcefile);
798
-    verify($sourcefile, $hash);
799
-    unzip($sourcefile, $tmpdir);
800
-    extract("$tmpdir/Driver10/Hcw10bda.sys", 0x80788, 0x81E08-0x80788, "$tmpdir/fw1");
801
-
802
-    delzero("$tmpdir/fw1","$tmpdir/fw1-1");
803
-    #verify("$tmpdir/fw1","5e0909858fdf0b5b09ad48b9fe622e70");
804
-
805
-    my $CRC="\x0A\xCC";
806
-    my $BLOCKS_MAIN="\x27";
807
-    open FW,">$fwfile";
808
-    print FW "\x01\x00"; # just a version id for the driver itself
809
-    print FW "\x9A"; # fw version
810
-    print FW "\x00"; # padding
811
-    print FW "$BLOCKS_MAIN"; # number of blocks of main part
812
-    print FW "\x00"; # padding
813
-    print FW "$CRC"; # 16bit crc value of main part
814
-    appendfile(FW,"$tmpdir/fw1");
815
-
816
-    "$fwfile";
817
-}
818
-
819
-# ---------------------------------------------------------------
820
-# Utilities
821
-
822
-sub checkstandard {
823
-    if (system("which unzip > /dev/null 2>&1")) {
824
-	die "This firmware requires the unzip command - see ftp://ftp.info-zip.org/pub/infozip/UnZip.html\n";
825
-    }
826
-    if (system("which md5sum > /dev/null 2>&1")) {
827
-	die "This firmware requires the md5sum command - see http://www.gnu.org/software/coreutils/\n";
828
-    }
829
-    if (system("which wget > /dev/null 2>&1")) {
830
-	die "This firmware requires the wget command - see http://wget.sunsite.dk/\n";
831
-    }
832
-}
833
-
834
-sub checkunshield {
835
-    if (system("which unshield > /dev/null 2>&1")) {
836
-	die "This firmware requires the unshield command - see http://sourceforge.net/projects/synce/\n";
837
-    }
838
-}
839
-
840
-sub wgetfile {
841
-    my ($sourcefile, $url) = @_;
842
-
843
-    if (! -f $sourcefile) {
844
-	system("wget -O \"$sourcefile\" \"$url\"") and die "wget failed - unable to download firmware";
845
-    }
846
-}
847
-
848
-sub unzip {
849
-    my ($sourcefile, $todir) = @_;
850
-
851
-    $status = system("unzip -q -o -d \"$todir\" \"$sourcefile\" 2>/dev/null" );
852
-    if ((($status >> 8) > 2) || (($status & 0xff) != 0)) {
853
-	die ("unzip failed - unable to extract firmware");
854
-    }
855
-}
856
-
857
-sub unshield {
858
-    my ($sourcefile, $todir) = @_;
859
-
860
-    system("unshield x -d \"$todir\" \"$sourcefile\" > /dev/null" ) and die ("unshield failed - unable to extract firmware");
861
-}
862
-
863
-sub verify {
864
-    my ($filename, $hash) = @_;
865
-    my ($testhash);
866
-
867
-    open(CMD, "md5sum \"$filename\"|");
868
-    $testhash = <CMD>;
869
-    $testhash =~ /([a-zA-Z0-9]*)/;
870
-    $testhash = $1;
871
-    close CMD;
872
-    die "Hash of extracted file does not match!\n" if ($testhash ne $hash);
873
-}
874
-
875
-sub copy {
876
-    my ($from, $to) = @_;
877
-
878
-    system("cp -f \"$from\" \"$to\"") and die ("cp failed");
879
-}
880
-
881
-sub extract {
882
-    my ($infile, $offset, $length, $outfile) = @_;
883
-    my ($chunklength, $buf, $rcount);
884
-
885
-    open INFILE, "<$infile";
886
-    open OUTFILE, ">$outfile";
887
-    sysseek(INFILE, $offset, SEEK_SET);
888
-    while($length > 0) {
889
-	# Calc chunk size
890
-	$chunklength = 2048;
891
-	$chunklength = $length if ($chunklength > $length);
892
-
893
-	$rcount = sysread(INFILE, $buf, $chunklength);
894
-	die "Ran out of data\n" if ($rcount != $chunklength);
895
-	syswrite(OUTFILE, $buf);
896
-	$length -= $rcount;
897
-    }
898
-    close INFILE;
899
-    close OUTFILE;
900
-}
901
-
902
-sub appendfile {
903
-    my ($FH, $infile) = @_;
904
-    my ($buf);
905
-
906
-    open INFILE, "<$infile";
907
-    while(1) {
908
-	$rcount = sysread(INFILE, $buf, 2048);
909
-	last if ($rcount == 0);
910
-	print $FH $buf;
911
-    }
912
-    close(INFILE);
913
-}
914
-
915
-sub delzero{
916
-	my ($infile,$outfile) =@_;
917
-
918
-	open INFILE,"<$infile";
919
-	open OUTFILE,">$outfile";
920
-	while (1){
921
-		$rcount=sysread(INFILE,$buf,22);
922
-		$len=ord(substr($buf,0,1));
923
-		print OUTFILE substr($buf,0,1);
924
-		print OUTFILE substr($buf,2,$len+3);
925
-	last if ($rcount<1);
926
-	printf OUTFILE "%c",0;
927
-#print $len." ".length($buf)."\n";
928
-
929
-	}
930
-	close(INFILE);
931
-	close(OUTFILE);
932
-}
933
-
934
-sub syntax() {
935
-    print STDERR "syntax: get_dvb_firmware <component>\n";
936
-    print STDERR "Supported components:\n";
937
-    @components = sort @components;
938
-    for($i=0; $i < scalar(@components); $i++) {
939
-	print STDERR "\t" . $components[$i] . "\n";
940
-    }
941
-    exit(1);
942
-}

+ 0 - 81
Documentation/dvb/lmedm04.txt

@@ -1,81 +0,0 @@
1
-To extract firmware for the DM04/QQBOX you need to copy the
2
-following file(s) to this directory.
3
-
4
-for DM04+/QQBOX LME2510C (Sharp 7395 Tuner)
5
--------------------------------------------
6
-
7
-The Sharp 7395 driver can be found in windows/system32/drivers
8
-
9
-US2A0D.sys (dated 17 Mar 2009)
10
-
11
-
12
-and run
13
-./get_dvb_firmware lme2510c_s7395
14
-
15
-	will produce
16
-	dvb-usb-lme2510c-s7395.fw
17
-
18
-An alternative but older firmware can be found on the driver
19
-disk DVB-S_EN_3.5A in BDADriver/driver
20
-
21
-LMEBDA_DVBS7395C.sys (dated 18 Jan 2008)
22
-
23
-and run
24
-./get_dvb_firmware lme2510c_s7395_old
25
-
26
-	will produce
27
-	dvb-usb-lme2510c-s7395.fw
28
-
29
---------------------------------------------------------------------
30
-
31
-The LG firmware can be found on the driver
32
-disk DM04+_5.1A[LG] in BDADriver/driver
33
-
34
-for DM04 LME2510 (LG Tuner)
35
----------------------------
36
-
37
-LMEBDA_DVBS.sys (dated 13 Nov 2007)
38
-
39
-and run
40
-./get_dvb_firmware lme2510_lg
41
-
42
-	will produce
43
-	dvb-usb-lme2510-lg.fw
44
-
45
-
46
-Other LG firmware can be extracted manually from US280D.sys
47
-only found in windows/system32/drivers
48
-
49
-dd if=US280D.sys ibs=1 skip=42360 count=3924 of=dvb-usb-lme2510-lg.fw
50
-
51
-for DM04 LME2510C (LG Tuner)
52
----------------------------
53
-
54
-dd if=US280D.sys ibs=1 skip=35200 count=3850 of=dvb-usb-lme2510c-lg.fw
55
-
56
----------------------------------------------------------------------
57
-
58
-The Sharp 0194 tuner driver can be found in windows/system32/drivers
59
-
60
-US290D.sys (dated 09 Apr 2009)
61
-
62
-For LME2510
63
-dd if=US290D.sys ibs=1 skip=36856 count=3976 of=dvb-usb-lme2510-s0194.fw
64
-
65
-
66
-For LME2510C
67
-dd if=US290D.sys ibs=1 skip=33152 count=3697 of=dvb-usb-lme2510c-s0194.fw
68
-
69
----------------------------------------------------------------------
70
-
71
-The m88rs2000 tuner driver can be found in windows/system32/drivers
72
-
73
-US2B0D.sys (dated 29 Jun 2010)
74
-
75
-dd if=US2B0D.sys ibs=1 skip=34432 count=3871 of=dvb-usb-lme2510c-rs2000.fw
76
-
77
-We need to modify id of rs2000 firmware or it will warm boot id 3344:1120.
78
-
79
-echo -ne \\xF0\\x22 | dd conv=notrunc bs=1 count=2 seek=266 of=dvb-usb-lme2510c-rs2000.fw
80
-
81
-Copy the firmware file(s) to /lib/firmware

+ 1 - 20
Documentation/dvb/opera-firmware.txt

@@ -1,23 +1,4 @@
1
-To extract the firmware for the Opera DVB-S1 USB-Box
2
-you need to copy the files:
3
-
4
-2830SCap2.sys
5
-2830SLoad2.sys
6
-
7
-from the windriver disk into this directory.
8
-
9
-Then run
10
-
11
-./get_dvb_firmware opera1
12
-
13
-and after that you have 2 files:
14
-
15
-dvb-usb-opera-01.fw
16
-dvb-usb-opera1-fpga-01.fw
17
-
18
-in here.
19
-
20
-Copy them into /lib/firmware/ .
1
+/*(DEBLOBBED)*/
21 2
 
22 3
 After that the driver can load the firmware
23 4
 (if you have enabled firmware loading

+ 1 - 6
Documentation/dvb/ttusb-dec.txt

@@ -21,12 +21,7 @@ To Do:
21 21
 	Streaming video PC->DEC
22 22
 	Conax support for 2450-t
23 23
 
24
-Getting the Firmware
25
---------------------
26
-To download the firmware, use the following commands:
27
-"get_dvb_firmware dec2000t"
28
-"get_dvb_firmware dec2540t"
29
-"get_dvb_firmware dec3000s"
24
+/*(DEBLOBBED)*/
30 25
 
31 26
 
32 27
 Compilation Notes for 2.4 kernels

+ 1 - 26
Documentation/networking/fore200e.txt

@@ -29,32 +29,7 @@ Firmware Updates
29 29
 
30 30
 The FORE Systems 200E-series driver is shipped with firmware data being 
31 31
 uploaded to the ATM adapters at system boot time or at module loading time. 
32
-The supplied firmware images should work with all adapters.
33
-
34
-However, if you encounter problems (the firmware doesn't start or the driver
35
-is unable to read the PROM data), you may consider trying another firmware
36
-version. Alternative binary firmware images can be found somewhere on the
37
-ForeThought CD-ROM supplied with your adapter by FORE Systems.
38
-
39
-You can also get the latest firmware images from FORE Systems at
40
-https://en.wikipedia.org/wiki/FORE_Systems. Register TACTics Online and go to
41
-the 'software updates' pages. The firmware binaries are part of
42
-the various ForeThought software distributions.
43
-
44
-Notice that different versions of the PCA-200E firmware exist, depending
45
-on the endianness of the host architecture. The driver is shipped with
46
-both little and big endian PCA firmware images.
47
-
48
-Name and location of the new firmware images can be set at kernel
49
-configuration time:
50
-
51
-1. Copy the new firmware binary files (with .bin, .bin1 or .bin2 suffix)
52
-   to some directory, such as linux/drivers/atm.
53
-
54
-2. Reconfigure your kernel to set the new firmware name and location.
55
-   Expected pathnames are absolute or relative to the drivers/atm directory.
56
-
57
-3. Rebuild and re-install your kernel or your module.
32
+/*(DEBLOBBED)*/
58 33
 
59 34
 
60 35
 Feedback

+ 1 - 18
Documentation/scsi/wd719x.txt

@@ -1,21 +1,4 @@
1 1
 Driver for Western Digital WD7193, WD7197 and WD7296 SCSI cards
2 2
 ---------------------------------------------------------------
3 3
 
4
-The card requires firmware that can be cut out of the Windows NT driver that
5
-can be downloaded from WD at:
6
-http://support.wdc.com/product/download.asp?groupid=801&sid=27&lang=en
7
-
8
-There is no license anywhere in the file or on the page - so the firmware
9
-probably cannot be added to linux-firmware.
10
-
11
-This script downloads and extracts the firmware, creating wd719x-risc.bin and
12
-d719x-wcs.bin files. Put them in /lib/firmware/.
13
-
14
-#!/bin/sh
15
-wget http://support.wdc.com/download/archive/pciscsi.exe
16
-lha xi pciscsi.exe pci-scsi.exe
17
-lha xi pci-scsi.exe nt/wd7296a.sys
18
-rm pci-scsi.exe
19
-dd if=wd7296a.sys of=wd719x-risc.bin bs=1 skip=5760 count=14336
20
-dd if=wd7296a.sys of=wd719x-wcs.bin bs=1 skip=20096 count=514
21
-rm wd7296a.sys
4
+/*(DEBLOBBED)*/

+ 7 - 16
Documentation/sound/alsa/ALSA-Configuration.txt

@@ -1363,8 +1363,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1363 1363
     ide_irq	- IDE irq#
1364 1364
     joystick_io	- Joystick I/O port
1365 1365
 
1366
-    The driver requires firmware files "turtlebeach/msndinit.bin" and
1367
-    "turtlebeach/msndperm.bin" in the proper firmware directory.
1366
+    The driver requires firmware files "/*(DEBLOBBED)*/" and
1367
+    "/*(DEBLOBBED)*/" in the proper firmware directory.
1368 1368
 
1369 1369
     See Documentation/sound/oss/MultiSound for important information
1370 1370
     about this driver.  Note that it has been discontinued, but the 
@@ -1385,8 +1385,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1385 1385
     calibrate_signal - calibrate signal (default = 0)
1386 1386
     isapnp	- ISA PnP detection - 0 = disable, 1 = enable (default)
1387 1387
 
1388
-    The driver requires firmware files "turtlebeach/pndspini.bin" and
1389
-    "turtlebeach/pndsperm.bin" in the proper firmware directory.
1388
+    The driver requires firmware files "/*(DEBLOBBED)*/" and
1389
+    "/*(DEBLOBBED)*/" in the proper firmware directory.
1390 1390
 
1391 1391
   Module snd-mtpav
1392 1392
   ----------------
@@ -1623,7 +1623,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1623 1623
 
1624 1624
     This module supports multiple cards.
1625 1625
     The driver requires the firmware loader support on kernel.
1626
-    You need to install the firmware file "riptide.hex" to the standard
1626
+    You need to install the firmware file "/*(DEBLOBBED)*/" to the standard
1627 1627
     firmware path (e.g. /lib/firmware).
1628 1628
 
1629 1629
   Module snd-rme32
@@ -1815,12 +1815,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1815 1815
 		      (default: 100)
1816 1816
     sleep_tries	    - How many times to try sleeping during a wait
1817 1817
 		      (default: 50)
1818
-    ospath	    - Pathname to processed ICS2115 OS firmware
1819
-		      (default:wavefront.os)
1820
-	The path name of the ISC2115 OS firmware.  In the recent
1821
-	version, it's handled via firmware loader framework, so it
1822
-	must be installed in the proper path, typically,
1823
-	/lib/firmware.
1818
+    /*(DEBLOBBED)*/
1824 1819
     reset_time	    - How long to wait for a reset to take effect
1825 1820
 		      (default:2)
1826 1821
     ramcheck_time   - How many seconds to wait for the RAM test
@@ -1830,11 +1825,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
1830 1825
 
1831 1826
     This module supports multiple cards and ISA PnP.
1832 1827
 
1833
-    Note: the firmware file "wavefront.os" was located in the earlier
1834
-          version in /etc.  Now it's loaded via firmware loader, and
1835
-	  must be in the proper firmware path, such as /lib/firmware.
1836
-	  Copy (or symlink) the file appropriately if you get an error
1837
-	  regarding firmware downloading after upgrading the kernel.
1828
+    /*(DEBLOBBED)*/.
1838 1829
 
1839 1830
   Module snd-sonicvibes
1840 1831
   ---------------------

+ 2 - 74
Documentation/sound/oss/MultiSound

@@ -42,20 +42,7 @@
42 42
 #  msnd_pinnacle      - Base audio/mixer support for Pinnacle and Fiji cards
43 43
 #  
44 44
 #  
45
-#  Important Notes - Read Before Using
46
-#  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47
-#  
48
-#  The firmware files are not included (may change in future).  You
49
-#  must obtain these images from Turtle Beach (they are included in
50
-#  the MultiSound Development Kits), and place them in /etc/sound for
51
-#  example, and give the full paths in the Linux configuration.  If
52
-#  you are compiling in support for the MultiSound driver rather than
53
-#  using it as a module, these firmware files must be accessible
54
-#  during kernel compilation.
55
-#
56
-#  Please note these files must be binary files, not assembler.  See
57
-#  the section later in this document for instructions to obtain these
58
-#  files.
45
+#  /*(DEBLOBBED)*/
59 46
 #  
60 47
 #  
61 48
 #  Configuring Card Resources
@@ -280,66 +267,7 @@
280 267
 #  joystick_io          I/O port of joystick
281 268
 #  
282 269
 #  
283
-#  Obtaining and Creating Firmware Files
284
-#  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
285
-#  
286
-#       For the Classic/Tahiti/Monterey
287
-#       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
288
-#  
289
-#  Download to /tmp and unzip the following file from Turtle Beach:
290
-#  
291
-#       ftp://ftp.voyetra.com/pub/tbs/msndcl/msndvkit.zip
292
-#  
293
-#  When unzipped, unzip the file named MsndFiles.zip.  Then copy the
294
-#  following firmware files to /etc/sound (note the file renaming):
295
-#  
296
-#    cp DSPCODE/MSNDINIT.BIN /etc/sound/msndinit.bin
297
-#    cp DSPCODE/MSNDPERM.REB /etc/sound/msndperm.bin
298
-#  
299
-#  When configuring the Linux kernel, specify /etc/sound/msndinit.bin and
300
-#  /etc/sound/msndperm.bin for the two firmware files (Linux kernel
301
-#  versions older than 2.2 do not ask for firmware paths, and are
302
-#  hardcoded to /etc/sound).
303
-#
304
-#  If you are compiling the driver into the kernel, these files must
305
-#  be accessible during compilation, but will not be needed later.
306
-#  The files must remain, however, if the driver is used as a module.
307
-#  
308
-#  
309
-#       For the Pinnacle/Fiji
310
-#       ~~~~~~~~~~~~~~~~~~~~~
311
-#  
312
-#  Download to /tmp and unzip the following file from Turtle Beach (be
313
-#  sure to use the entire URL; some have had trouble navigating to the
314
-#  URL):
315
-#  
316
-#       ftp://ftp.voyetra.com/pub/tbs/pinn/pnddk100.zip
317
-#
318
-#  Unpack this shell archive, and run make in the created directory
319
-#  (you need a C compiler and flex to build the utilities).  This
320
-#  should give you the executables conv, pinnaclecfg and setdigital.
321
-#  conv is only used temporarily here to create the firmware files,
322
-#  while pinnaclecfg is used to configure the Pinnacle or Fiji card in
323
-#  non-PnP mode, and setdigital can be used to set the S/PDIF input on
324
-#  the mixer (pinnaclecfg and setdigital should be copied to a
325
-#  convenient place, possibly run during system initialization).
326
-#
327
-#  To generating the firmware files with the `conv' program, we create
328
-#  the binary firmware files by doing the following conversion
329
-#  (assuming the archive unpacked into a directory named PINNDDK):
330
-#  
331
-#    ./conv < PINNDDK/dspcode/pndspini.asm > /etc/sound/pndspini.bin
332
-#    ./conv < PINNDDK/dspcode/pndsperm.asm > /etc/sound/pndsperm.bin
333
-#  
334
-#  The conv (and conv.l) program is not needed after conversion and can
335
-#  be safely deleted.  Then, when configuring the Linux kernel, specify
336
-#  /etc/sound/pndspini.bin and /etc/sound/pndsperm.bin for the two
337
-#  firmware files (Linux kernel versions older than 2.2 do not ask for
338
-#  firmware paths, and are hardcoded to /etc/sound).
339
-#  
340
-#  If you are compiling the driver into the kernel, these files must
341
-#  be accessible during compilation, but will not be needed later.
342
-#  The files must remain, however, if the driver is used as a module.
270
+#  /*(DEBLOBBED)*/
343 271
 #
344 272
 #  
345 273
 #  Using Digital I/O with the S/PDIF Port

+ 1 - 8
Documentation/sound/oss/PSS

@@ -31,11 +31,4 @@ mpu_irq		The interrupt to use for the synthesizer. It must differ
31 31
 The mpu_io/mpu_irq fields are optional. If they are not specified the 
32 32
 synthesizer parts are not configured.
33 33
 
34
-When the module is loaded it looks for a file called 
35
-/etc/sound/pss_synth. This is the firmware file from the DOS install disks.
36
-This fil holds a general MIDI emulation. The file expected is called
37
-genmidi.ld on newer DOS driver install disks and synth.ld on older ones.
38
-
39
-You can also load alternative DSP algorithms into the card if you wish. One
40
-alternative driver can be found at http://www.mpg123.de/
41
-
34
+/*(DEBLOBBED)*/

+ 1 - 7
Documentation/sound/oss/PSS-updates

@@ -62,13 +62,7 @@ specifying it now will ensure that all future versions of this driver will
62 62
 continue to work as expected.  The default value of this parameter is 1 to 
63 63
 retain full behavioral compatibility with previous versions of this driver.
64 64
 
65
-pss_firmware
66
-
67
-	This parameter can be used to specify the file containing the firmware 
68
-code so that a user could tell the driver where that file is located instead 
69
-of having to put it in a predefined location with a predefined name.  The 
70
-default setting of this parameter is "/etc/sound/pss_synth" as this was the 
71
-path and filename the hardcoded value in the previous versions of this driver.
65
+/*(DEBLOBBED)*/
72 66
 
73 67
 Examples:
74 68
 

+ 1 - 31
Documentation/sound/oss/README.OSS

@@ -1139,37 +1139,7 @@ distributed in the snd-util-3.0.tar.gz package. You have to edit two
1139 1139
 defines in the ssinit.c and then compile the program. You may run ssinit 
1140 1140
 manually (after each boot) or add it to /etc/rc.d/rc.local.
1141 1141
 
1142
-The ssinit program needs the microcode file that comes with the DOS/Windows
1143
-driver of the card. You will need to use version 1.30.00 or later
1144
-of the microcode file (sndscape.co0 or sndscape.co1 depending on
1145
-your card model). THE OLD sndscape.cod WILL NOT WORK. IT WILL HANG YOUR
1146
-MACHINE. The only way to get the new microcode file is to download
1147
-and install the DOS/Windows driver from ftp://ftp.ensoniq.com/pub.
1148
-
1149
-Then you have to select the proper microcode file to use: soundscape.co0
1150
-is the right one for most cards and sndscape.co1 is for few (older) cards
1151
-made by Reveal and/or Spea. The driver has capability to detect the card
1152
-version during boot. Look at the boot log messages in /var/adm/messages
1153
-and locate the sound driver initialization message for the SoundScape
1154
-card. If the driver displays string <Ensoniq Soundscape (old)>, you have
1155
-an old card and you will need to use sndscape.co1. For other cards use
1156
-soundscape.co0. New Soundscape revisions such as Elite and PnP use
1157
-code files with higher numbers (.co2, .co3, etc.).
1158
-
1159
-NOTE!	Ensoniq Soundscape VIVO is not compatible with other Soundscape cards.
1160
-	Currently it's possible to use it in Linux only with OSS/Linux
1161
-	drivers.
1162
-
1163
-Check /var/adm/messages after running ssinit. The driver prints
1164
-the board version after downloading the microcode file. That version
1165
-number must match the number in the name of the microcode file (extension).
1166
-
1167
-Running ssinit with a wrong version of the sndscape.co? file is not
1168
-dangerous as long as you don't try to use a file called sndscape.cod.
1169
-If you have initialized the card using a wrong microcode file (sounds
1170
-are terrible), just modify ssinit.c to use another microcode file and try
1171
-again. It's possible to use an earlier version of sndscape.co[01] but it
1172
-may sound weird.
1142
+/*(DEBLOBBED)*/
1173 1143
 
1174 1144
 MAD16 (Pro) and Mozart
1175 1145
 ----------------------

+ 1 - 5
Documentation/video4linux/bttv/README

@@ -25,11 +25,7 @@ If bttv takes very long to load (happens sometimes with the cheap
25 25
 cards which have no tuner), try adding this to your modules.conf:
26 26
 	options i2c-algo-bit bit_test=1
27 27
 
28
-For the WinTV/PVR you need one firmware file from the driver CD:
29
-hcwamc.rbf.  The file is in the pvr45xxx.exe archive (self-extracting
30
-zip file, unzip can unpack it).  Put it into the /etc/pvr directory or
31
-use the firm_altera=<path> insmod option to point the driver to the
32
-location of the file.
28
+/*(DEBLOBBED)*/
33 29
 
34 30
 If your card isn't listed in CARDLIST.bttv or if you have trouble making
35 31
 audio work, you should read the Sound-FAQ.

File diff suppressed because it is too large
+ 0 - 1717
Documentation/video4linux/extract_xc3028.pl


+ 2 - 25
Documentation/wimax/README.i2400m

@@ -59,21 +59,7 @@ $ make KDIR=/path/to/kernel/dev/tree
59 59
 
60 60
    For more information, please contact linux-wimax@intel.com.
61 61
 
62
-3. Installing the firmware
63
-
64
-   The firmware can be obtained from http://linuxwimax.org or might have
65
-   been supplied with your hardware.
66
-
67
-   It has to be installed in the target system:
68
-     *
69
-$ cp FIRMWAREFILE.sbcf /lib/firmware/i2400m-fw-BUSTYPE-1.3.sbcf
70
-
71
-     * NOTE: if your firmware came in an .rpm or .deb file, just install
72
-       it as normal, with the rpm (rpm -i FIRMWARE.rpm) or dpkg
73
-       (dpkg -i FIRMWARE.deb) commands. No further action is needed.
74
-     * BUSTYPE will be usb or sdio, depending on the hardware you have.
75
-       Each hardware type comes with its own firmware and will not work
76
-       with other types.
62
+/*(DEBLOBBED)*/
77 63
 
78 64
 4. Design
79 65
 
@@ -248,13 +234,4 @@ $ echo 1 > /sys/kernel/debug/wimax:wmx0/i2400m/trace_msg_from_user
248 234
 
249 235
 6. Troubleshooting
250 236
 
251
-6.1. Driver complains about 'i2400m-fw-usb-1.2.sbcf: request failed'
252
-
253
-   If upon connecting the device, the following is output in the kernel
254
-   log:
255
-
256
-i2400m_usb 5-4:1.0: fw i2400m-fw-usb-1.3.sbcf: request failed: -2
257
-
258
-   This means that the driver cannot locate the firmware file named
259
-   /lib/firmware/i2400m-fw-usb-1.2.sbcf. Check that the file is present in
260
-   the right location.
237
+/*(DEBLOBBED)*/

+ 3 - 3
Documentation/x86/early-microcode.txt

@@ -11,8 +11,8 @@ file and loaded to CPUs during boot time.
11 11
 The format of the combined initrd image is microcode in cpio format followed by
12 12
 the initrd image (maybe compressed). Kernel parses the combined initrd image
13 13
 during boot time. The microcode file in cpio name space is:
14
-on Intel: kernel/x86/microcode/GenuineIntel.bin
15
-on AMD  : kernel/x86/microcode/AuthenticAMD.bin
14
+on Intel: /*(DEBLOBBED)*/
15
+on AMD  : /*(DEBLOBBED)*/
16 16
 
17 17
 During BSP boot (before SMP starts), if the kernel finds the microcode file in
18 18
 the initrd file, it parses the microcode and saves matching microcode in memory.
@@ -36,7 +36,7 @@ original initrd image /boot/initrd-3.5.0.img.
36 36
 mkdir initrd
37 37
 cd initrd
38 38
 mkdir -p kernel/x86/microcode
39
-cp ../microcode.bin kernel/x86/microcode/GenuineIntel.bin (or AuthenticAMD.bin)
39
+cp ../microcode.bin /*(DEBLOBBED)*/ (or /*(DEBLOBBED)*/)
40 40
 find . | cpio -o -H newc >../ucode.cpio
41 41
 cd ..
42 42
 cat ucode.cpio /boot/initrd-3.5.0.img >/boot/initrd-3.5.0.ucode.img

+ 1 - 1
Makefile

@@ -1,7 +1,7 @@
1 1
 VERSION = 4
2 2
 PATCHLEVEL = 4
3 3
 SUBLEVEL = 45
4
-EXTRAVERSION =
4
+EXTRAVERSION = -gnu
5 5
 NAME = Blurry Fish Butt
6 6
 
7 7
 # *DOCUMENTATION*

+ 35 - 4
README

@@ -1,16 +1,47 @@
1
-        Linux kernel release 4.x <http://kernel.org/>
1
+        GNU Linux-libre <http://linux-libre.fsfla.org>
2 2
 
3
-These are the release notes for Linux version 4.  Read them carefully,
3
+These are the release notes for GNU Linux-libre.  Read them carefully,
4 4
 as they tell you what this is all about, explain how to install the
5 5
 kernel, and what to do if something goes wrong. 
6 6
 
7
+WHAT IS GNU Linux-libre?
8
+
9
+  GNU Linux-libre is a Free version of the kernel Linux (see below),
10
+  suitable for use with the GNU Operating System in 100% Free
11
+  GNU/Linux-libre System Distributions.
12
+  http://www.gnu.org/distros/
13
+
14
+  It removes non-Free components from Linux, that are disguised as
15
+  source code or distributed in separate files.  It also disables
16
+  run-time requests for non-Free components, shipped separately or as
17
+  part of Linux, and documentation pointing to them, so as to avoid
18
+  (Free-)baiting users into the trap of non-Free Software.
19
+  http://www.fsfla.org/anuncio/2010-11-Linux-2.6.36-libre-debait
20
+
21
+  Linux-libre started within the gNewSense GNU/Linux distribution.
22
+  It was later adopted by Jeff Moe, who coined its name, and in 2008
23
+  it became a project maintained by FSF Latin America.  In 2012, it
24
+  became part of the GNU Project.
25
+
26
+  The GNU Linux-libre project takes a minimal-changes approach to
27
+  cleaning up Linux, making no effort to substitute components that
28
+  need to be removed with functionally equivalent Free ones.
29
+  Nevertheless, we encourage and support efforts towards doing so.
30
+  http://libreplanet.org/wiki/LinuxLibre:Devices_that_require_non-free_firmware
31
+
32
+  Our mascot is Freedo, a light-blue penguin that has just come out
33
+  of the shower.  Although we like penguins, GNU is a much greater
34
+  contribution to the entire system, so its mascot deserves more
35
+  promotion.  See our web page for their images.
36
+  http://linux-libre.fsfla.org/
37
+
7 38
 WHAT IS LINUX?
8 39
 
9
-  Linux is a clone of the operating system Unix, written from scratch by
40
+  Linux is a clone of the Unix kernel, written from scratch by
10 41
   Linus Torvalds with assistance from a loosely-knit team of hackers across
11 42
   the Net. It aims towards POSIX and Single UNIX Specification compliance.
12 43
 
13
-  It has all the features you would expect in a modern fully-fledged Unix,
44
+  It has all the features you would expect in a modern fully-fledged Unix kernel,
14 45
   including true multitasking, virtual memory, shared libraries, demand
15 46
   loading, shared copy-on-write executables, proper memory management,
16 47
   and multistack networking including IPv4 and IPv6.

+ 4 - 0
README-heads

@@ -0,0 +1,4 @@
1
+current git master is kernel 4.4.45
2
+	* patched with grsecurity
3
+	* patched with aufs4
4
+	* deblobbed with linux-libre

+ 1 - 1
arch/arm/boot/dts/am33xx.dtsi

@@ -109,7 +109,7 @@
109 109
 				      <0x180000	0x2000>;
110 110
 				reg-names = "umem", "dmem";
111 111
 				ti,hwmods = "wkup_m3";
112
-				ti,pm-firmware = "am335x-pm-firmware.elf";
112
+				ti,pm-firmware = "/*(DEBLOBBED)*/";
113 113
 			};
114 114
 
115 115
 			prcm: prcm@200000 {

+ 1 - 1
arch/arm/boot/dts/am4372.dtsi

@@ -115,7 +115,7 @@
115 115
 				      <0x180000	0x2000>;
116 116
 				reg-names = "umem", "dmem";
117 117
 				ti,hwmods = "wkup_m3";
118
-				ti,pm-firmware = "am335x-pm-firmware.elf";
118
+				ti,pm-firmware = "/*(DEBLOBBED)*/";
119 119
 			};
120 120
 
121 121
 			prcm: prcm@1f0000 {

+ 1 - 1
arch/arm/boot/dts/imx25.dtsi

@@ -462,7 +462,7 @@
462 462
 				clock-names = "ipg", "ahb";
463 463
 				#dma-cells = <3>;
464 464
 				interrupts = <34>;
465
-				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx25.bin";
465
+				fsl,sdma-ram-script-name = "/*(DEBLOBBED)*/";
466 466
 			};
467 467
 
468 468
 			wdog@53fdc000 {

+ 1 - 1
arch/arm/boot/dts/imx35.dtsi

@@ -272,7 +272,7 @@
272 272
 				clock-names = "ipg", "ahb";
273 273
 				#dma-cells = <3>;
274 274
 				interrupts = <34>;
275
-				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx35.bin";
275
+				fsl,sdma-ram-script-name = "/*(DEBLOBBED)*/";
276 276
 			};
277 277
 
278 278
 			wdog: wdog@53fdc000 {

+ 1 - 1
arch/arm/boot/dts/imx50.dtsi

@@ -422,7 +422,7 @@
422 422
 				clocks = <&clks IMX5_CLK_SDMA_GATE>,
423 423
 				         <&clks IMX5_CLK_SDMA_GATE>;
424 424
 				clock-names = "ipg", "ahb";
425
-				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx50.bin";
425
+				fsl,sdma-ram-script-name = "/*(DEBLOBBED)*/";
426 426
 			};
427 427
 
428 428
 			cspi: cspi@63fc0000 {

+ 1 - 1
arch/arm/boot/dts/imx51.dtsi

@@ -469,7 +469,7 @@
469 469
 				         <&clks IMX5_CLK_SDMA_GATE>;
470 470
 				clock-names = "ipg", "ahb";
471 471
 				#dma-cells = <3>;
472
-				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx51.bin";
472
+				fsl,sdma-ram-script-name = "/*(DEBLOBBED)*/";
473 473
 			};
474 474
 
475 475
 			cspi: cspi@83fc0000 {

+ 1 - 1
arch/arm/boot/dts/imx53-tx53.dtsi

@@ -498,7 +498,7 @@
498 498
 };
499 499
 
500 500
 &sdma {
501
-	fsl,sdma-ram-script-name = "sdma-imx53.bin";
501
+	fsl,sdma-ram-script-name = "/*(DEBLOBBED)*/";
502 502
 };
503 503
 
504 504
 &ssi1 {

+ 1 - 1
arch/arm/boot/dts/imx53.dtsi

@@ -651,7 +651,7 @@
651 651
 				         <&clks IMX5_CLK_SDMA_GATE>;
652 652
 				clock-names = "ipg", "ahb";
653 653
 				#dma-cells = <3>;
654
-				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx53.bin";
654
+				fsl,sdma-ram-script-name = "/*(DEBLOBBED)*/";
655 655
 			};
656 656
 
657 657
 			cspi: cspi@63fc0000 {

+ 1 - 1
arch/arm/boot/dts/imx6qdl.dtsi

@@ -857,7 +857,7 @@
857 857
 					 <&clks IMX6QDL_CLK_SDMA>;
858 858
 				clock-names = "ipg", "ahb";
859 859
 				#dma-cells = <3>;
860
-				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
860
+				fsl,sdma-ram-script-name = "/*(DEBLOBBED)*/";
861 861
 			};
862 862
 		};
863 863
 

+ 1 - 1
arch/arm/boot/dts/imx6sl.dtsi

@@ -661,7 +661,7 @@
661 661
 				clock-names = "ipg", "ahb";
662 662
 				#dma-cells = <3>;
663 663
 				/* imx6sl reuses imx6q sdma firmware */
664
-				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
664
+				fsl,sdma-ram-script-name = "/*(DEBLOBBED)*/";
665 665
 			};
666 666
 
667 667
 			pxp: pxp@020f0000 {

+ 1 - 1
arch/arm/boot/dts/imx6sx.dtsi

@@ -737,7 +737,7 @@
737 737
 				clock-names = "ipg", "ahb";
738 738
 				#dma-cells = <3>;
739 739
 				/* imx6sx reuses imx6q sdma firmware */
740
-				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
740
+				fsl,sdma-ram-script-name = "/*(DEBLOBBED)*/";
741 741
 			};
742 742
 		};
743 743
 

+ 4 - 4
arch/arm/mach-imx/mm-imx3.c

@@ -159,7 +159,7 @@ static struct sdma_script_start_addrs imx31_to2_sdma_script __initdata = {
159 159
 };
160 160
 
161 161
 static struct sdma_platform_data imx31_sdma_pdata __initdata = {
162
-	.fw_name = "sdma-imx31-to2.bin",
162
+	.fw_name = "/*(DEBLOBBED)*/",
163 163
 	.script_addrs = &imx31_to2_sdma_script,
164 164
 };
165 165
 
@@ -183,7 +183,7 @@ void __init imx31_soc_init(void)
183 183
 	pinctrl_provide_dummies();
184 184
 
185 185
 	if (to_version == 1) {
186
-		strncpy(imx31_sdma_pdata.fw_name, "sdma-imx31-to1.bin",
186
+		strncpy(imx31_sdma_pdata.fw_name, "/*(DEBLOBBED)*/",
187 187
 			strlen(imx31_sdma_pdata.fw_name));
188 188
 		imx31_sdma_pdata.script_addrs = &imx31_to1_sdma_script;
189 189
 	}
@@ -257,7 +257,7 @@ static struct sdma_script_start_addrs imx35_to2_sdma_script __initdata = {
257 257
 };
258 258
 
259 259
 static struct sdma_platform_data imx35_sdma_pdata __initdata = {
260
-	.fw_name = "sdma-imx35-to2.bin",
260
+	.fw_name = "/*(DEBLOBBED)*/",
261 261
 	.script_addrs = &imx35_to2_sdma_script,
262 262
 };
263 263
 
@@ -280,7 +280,7 @@ void __init imx35_soc_init(void)
280 280
 
281 281
 	pinctrl_provide_dummies();
282 282
 	if (to_version == 1) {
283
-		strncpy(imx35_sdma_pdata.fw_name, "sdma-imx35-to1.bin",
283
+		strncpy(imx35_sdma_pdata.fw_name, "/*(DEBLOBBED)*/",
284 284
 			strlen(imx35_sdma_pdata.fw_name));
285 285
 		imx35_sdma_pdata.script_addrs = &imx35_to1_sdma_script;
286 286
 	}

+ 2 - 4
arch/arm/mach-ixp4xx/ixp4xx_npe.c

@@ -533,7 +533,7 @@ int npe_load_firmware(struct npe *npe, const char *name, struct device *dev)
533 533
 	int i, j, err, data_size, instr_size, blocks, table_end;
534 534
 	u32 cmd;
535 535
 
536
-	if ((err = request_firmware(&fw_entry, name, dev)) != 0)
536
+	if ((err = reject_firmware(&fw_entry, name, dev)) != 0)
537 537
 		return err;
538 538
 
539 539
 	err = -EINVAL;
@@ -728,9 +728,7 @@ module_exit(npe_cleanup_module);
728 728
 
729 729
 MODULE_AUTHOR("Krzysztof Halasa");
730 730
 MODULE_LICENSE("GPL v2");
731
-MODULE_FIRMWARE(NPE_A_FIRMWARE);
732
-MODULE_FIRMWARE(NPE_B_FIRMWARE);
733
-MODULE_FIRMWARE(NPE_C_FIRMWARE);
731
+/*(DEBLOBBED)*/
734 732
 
735 733
 EXPORT_SYMBOL(npe_names);
736 734
 EXPORT_SYMBOL(npe_running);

+ 2 - 2
arch/arm/mach-netx/xc.c

@@ -123,9 +123,9 @@ int xc_request_firmware(struct xc *x)
123 123
 	const void *src;
124 124
 	unsigned long dst;
125 125
 
126
-	sprintf(name, "xc%d.bin", x->no);
126
+	sprintf(name, "/*(DEBLOBBED)*/", x->no);
127 127
 
128
-	ret = request_firmware(&fw, name, x->dev);
128
+	ret = reject_firmware(&fw, name, x->dev);
129 129
 
130 130
 	if (ret < 0) {
131 131
 		dev_err(x->dev, "request_firmware failed\n");

+ 1 - 1
arch/mips/lantiq/xway/xrx200_phy_fw.c

@@ -51,7 +51,7 @@ static dma_addr_t xway_gphy_load(struct platform_device *pdev)
51 51
 	}
52 52
 
53 53
 	dev_info(&pdev->dev, "requesting %s\n", fw_name);
54
-	if (request_firmware(&fw, fw_name, &pdev->dev)) {
54
+	if (reject_firmware(&fw, fw_name, &pdev->dev)) {
55 55
 		dev_err(&pdev->dev, "failed to load firmware: %s\n", fw_name);
56 56
 		return 0;
57 57
 	}

+ 7 - 22
arch/x86/kernel/cpu/microcode/amd.c

@@ -65,7 +65,7 @@ static struct cpio_data ucode_cpio;
65 65
  * Microcode patch container file is prepended to the initrd in cpio format.
66 66
  * See Documentation/x86/early-microcode.txt
67 67
  */
68
-static __initdata char ucode_path[] = "kernel/x86/microcode/AuthenticAMD.bin";
68
+static __initdata char ucode_path[] = "/*(DEBLOBBED)*/";
69 69
 
70 70
 static struct cpio_data __init find_ucode_in_initrd(void)
71 71
 {
@@ -263,11 +263,11 @@ static bool __init load_builtin_amd_microcode(struct cpio_data *cp,
263 263
 					      unsigned int family)
264 264
 {
265 265
 #ifdef CONFIG_X86_64
266
-	char fw_name[36] = "amd-ucode/microcode_amd.bin";
266
+	char fw_name[36] = "/*(DEBLOBBED)*/";
267 267
 
268 268
 	if (family >= 0x15)
269 269
 		snprintf(fw_name, sizeof(fw_name),
270
-			 "amd-ucode/microcode_amd_fam%.2xh.bin", family);
270
+			 "/*(DEBLOBBED)*/", family);
271 271
 
272 272
 	return get_builtin_firmware(cp, fw_name);
273 273
 #else
@@ -876,26 +876,11 @@ enum ucode_state load_microcode_amd(int cpu, u8 family, const u8 *data, size_t s
876 876
 	return ret;
877 877
 }
878 878
 
879
-/*
880
- * AMD microcode firmware naming convention, up to family 15h they are in
881
- * the legacy file:
882
- *
883
- *    amd-ucode/microcode_amd.bin
884
- *
885
- * This legacy file is always smaller than 2K in size.
886
- *
887
- * Beginning with family 15h, they are in family-specific firmware files:
888
- *
889
- *    amd-ucode/microcode_amd_fam15h.bin
890
- *    amd-ucode/microcode_amd_fam16h.bin
891
- *    ...
892
- *
893
- * These might be larger than 2K.
894
- */
879
+/*(DEBLOBBED)*/
895 880
 static enum ucode_state request_microcode_amd(int cpu, struct device *device,
896 881
 					      bool refresh_fw)
897 882
 {
898
-	char fw_name[36] = "amd-ucode/microcode_amd.bin";
883
+	char fw_name[36] = "/*(DEBLOBBED)*/";
899 884
 	struct cpuinfo_x86 *c = &cpu_data(cpu);
900 885
 	enum ucode_state ret = UCODE_NFOUND;
901 886
 	const struct firmware *fw;
@@ -905,9 +890,9 @@ static enum ucode_state request_microcode_amd(int cpu, struct device *device,
905 890
 		return UCODE_OK;
906 891
 
907 892
 	if (c->x86 >= 0x15)
908
-		snprintf(fw_name, sizeof(fw_name), "amd-ucode/microcode_amd_fam%.2xh.bin", c->x86);
893
+		snprintf(fw_name, sizeof(fw_name), "/*(DEBLOBBED)*/", c->x86);
909 894
 
910
-	if (request_firmware_direct(&fw, (const char *)fw_name, device)) {
895
+	if (reject_firmware_direct(&fw, (const char *)fw_name, device)) {
911 896
 		pr_debug("failed to load file %s\n", fw_name);
912 897
 		goto out;
913 898
 	}

+ 4 - 4
arch/x86/kernel/cpu/microcode/intel.c

@@ -530,7 +530,7 @@ static bool __init load_builtin_intel_microcode(struct cpio_data *cp)
530 530
 	model    = x86_model(eax);
531 531
 	stepping = eax & 0xf;
532 532
 
533
-	sprintf(name, "intel-ucode/%02x-%02x-%02x", family, model, stepping);
533
+	sprintf(name, "/*(DEBLOBBED)*/", family, model, stepping);
534 534
 
535 535
 	return get_builtin_firmware(cp, name);
536 536
 #else
@@ -538,7 +538,7 @@ static bool __init load_builtin_intel_microcode(struct cpio_data *cp)
538 538
 #endif
539 539
 }
540 540
 
541
-static __initdata char ucode_name[] = "kernel/x86/microcode/GenuineIntel.bin";
541
+static __initdata char ucode_name[] = "/*(DEBLOBBED)*/";
542 542
 static __init enum ucode_state
543 543
 scan_microcode(struct mc_saved_data *mc_saved_data, unsigned long *initrd,
544 544
 	       unsigned long start, unsigned long size,
@@ -998,10 +998,10 @@ static enum ucode_state request_microcode_fw(int cpu, struct device *device,
998 998
 	const struct firmware *firmware;
999 999
 	enum ucode_state ret;
1000 1000
 
1001
-	sprintf(name, "intel-ucode/%02x-%02x-%02x",
1001
+	sprintf(name, "/*(DEBLOBBED)*/",
1002 1002
 		c->x86, c->x86_model, c->x86_mask);
1003 1003
 
1004
-	if (request_firmware_direct(&firmware, name, device)) {
1004
+	if (reject_firmware_direct(&firmware, name, device)) {
1005 1005
 		pr_debug("data file %s load failed\n", name);
1006 1006
 		return UCODE_NFOUND;
1007 1007
 	}

+ 2 - 2
drivers/atm/.gitignore

@@ -1,5 +1,5 @@
1 1
 # Ignore generated files
2 2
 fore200e_mkfirm
3 3
 fore200e_pca_fw.c
4
-pca200e.bin
5
-pca200e_ecd.bin2
4
+/*(DEBLOBBED)*/
5
+/*(DEBLOBBED)*/

+ 2 - 2
drivers/atm/ambassador.c

@@ -1928,7 +1928,7 @@ static int ucode_init(loader_block *lb, amb_dev *dev)
1928 1928
   const char *errmsg = NULL;
1929 1929
   int res;
1930 1930
 
1931
-  res = request_ihex_firmware(&fw, "atmsar11.fw", &dev->pci_dev->dev);
1931
+  res = reject_firmware(&fw, "/*(DEBLOBBED)*/", &dev->pci_dev->dev);
1932 1932
   if (res) {
1933 1933
     PRINTK (KERN_ERR, "Cannot load microcode data");
1934 1934
     return res;
@@ -2357,7 +2357,7 @@ static void __init amb_check_args (void) {
2357 2357
 MODULE_AUTHOR(maintainer_string);
2358 2358
 MODULE_DESCRIPTION(description_string);
2359 2359
 MODULE_LICENSE("GPL");
2360
-MODULE_FIRMWARE("atmsar11.fw");
2360
+/*(DEBLOBBED)*/
2361 2361
 module_param(debug,   ushort, 0644);
2362 2362
 module_param(cmds,    uint, 0);
2363 2363
 module_param(txs,     uint, 0);

+ 6 - 10
drivers/atm/fore200e.c

@@ -2479,11 +2479,7 @@ static void fore200e_monitor_puts(struct fore200e *fore200e, char *str)
2479 2479
     while (fore200e_monitor_getc(fore200e) >= 0);
2480 2480
 }
2481 2481
 
2482
-#ifdef __LITTLE_ENDIAN
2483
-#define FW_EXT ".bin"
2484
-#else
2485
-#define FW_EXT "_ecd.bin2"
2486
-#endif
2482
+/*(DEBLOBBED)*/
2487 2483
 
2488 2484
 static int fore200e_load_and_start_fw(struct fore200e *fore200e)
2489 2485
 {
@@ -2505,8 +2501,8 @@ static int fore200e_load_and_start_fw(struct fore200e *fore200e)
2505 2501
     else
2506 2502
 	return err;
2507 2503
 
2508
-    sprintf(buf, "%s%s", fore200e->bus->proc_name, FW_EXT);
2509
-    if ((err = request_firmware(&firmware, buf, device)) < 0) {
2504
+    /*(DEBLOBBED)*/
2505
+    if ((err = reject_firmware(&firmware, buf, device)) < 0) {
2510 2506
 	printk(FORE200E "problem loading firmware image %s\n", fore200e->bus->model_name);
2511 2507
 	return err;
2512 2508
     }
@@ -3172,11 +3168,11 @@ static const struct fore200e_bus fore200e_bus[] = {
3172 3168
 MODULE_LICENSE("GPL");
3173 3169
 #ifdef CONFIG_PCI
3174 3170
 #ifdef __LITTLE_ENDIAN__
3175
-MODULE_FIRMWARE("pca200e.bin");
3171
+/*(DEBLOBBED)*/
3176 3172
 #else
3177
-MODULE_FIRMWARE("pca200e_ecd.bin2");
3173
+/*(DEBLOBBED)*/
3178 3174
 #endif
3179 3175
 #endif /* CONFIG_PCI */
3180 3176
 #ifdef CONFIG_SBUS
3181
-MODULE_FIRMWARE("sba200e_ecd.bin2");
3177
+/*(DEBLOBBED)*/
3182 3178
 #endif

+ 6 - 8
drivers/atm/solos-pci.c

@@ -152,9 +152,7 @@ MODULE_AUTHOR("Traverse Technologies <support@traverse.com.au>");
152 152
 MODULE_DESCRIPTION("Solos PCI driver");
153 153
 MODULE_VERSION(VERSION);
154 154
 MODULE_LICENSE("GPL");
155
-MODULE_FIRMWARE("solos-FPGA.bin");
156
-MODULE_FIRMWARE("solos-Firmware.bin");
157
-MODULE_FIRMWARE("solos-db-FPGA.bin");
155
+/*(DEBLOBBED)*/
158 156
 MODULE_PARM_DESC(reset, "Reset Solos chips on startup");
159 157
 MODULE_PARM_DESC(atmdebug, "Print ATM data");
160 158
 MODULE_PARM_DESC(firmware_upgrade, "Initiate Solos firmware upgrade");
@@ -637,14 +635,14 @@ static int flash_upgrade(struct solos_card *card, int chip)
637 635
 
638 636
 	switch (chip) {
639 637
 	case 0:
640
-		fw_name = "solos-FPGA.bin";
638
+		fw_name = "/*(DEBLOBBED)*/";
641 639
 		if (card->atmel_flash)
642 640
 			blocksize = ATMEL_FPGA_BLOCK;
643 641
 		else
644 642
 			blocksize = SPI_FLASH_BLOCK;
645 643
 		break;
646 644
 	case 1:
647
-		fw_name = "solos-Firmware.bin";
645
+		fw_name = "/*(DEBLOBBED)*/";
648 646
 		if (card->atmel_flash)
649 647
 			blocksize = ATMEL_SOLOS_BLOCK;
650 648
 		else
@@ -652,7 +650,7 @@ static int flash_upgrade(struct solos_card *card, int chip)
652 650
 		break;
653 651
 	case 2:
654 652
 		if (card->fpga_version > LEGACY_BUFFERS){
655
-			fw_name = "solos-db-FPGA.bin";
653
+			fw_name = "/*(DEBLOBBED)*/";
656 654
 			if (card->atmel_flash)
657 655
 				blocksize = ATMEL_FPGA_BLOCK;
658 656
 			else
@@ -665,7 +663,7 @@ static int flash_upgrade(struct solos_card *card, int chip)
665 663
 		break;
666 664
 	case 3:
667 665
 		if (card->fpga_version > LEGACY_BUFFERS){
668
-			fw_name = "solos-Firmware.bin";
666
+			fw_name = "/*(DEBLOBBED)*/";
669 667
 			if (card->atmel_flash)
670 668
 				blocksize = ATMEL_SOLOS_BLOCK;
671 669
 			else
@@ -680,7 +678,7 @@ static int flash_upgrade(struct solos_card *card, int chip)
680 678
 		return -ENODEV;
681 679
 	}
682 680
 
683
-	if (request_firmware(&fw, fw_name, &card->dev->dev))
681
+	if (reject_firmware(&fw, fw_name, &card->dev->dev))
684 682
 		return -ENOENT;
685 683
 
686 684
 	dev_info(&card->dev->dev, "Flash upgrade starting\n");

+ 3 - 3
drivers/base/Kconfig

@@ -126,9 +126,9 @@ config EXTRA_FIRMWARE
126 126
 	  the directory specified by the EXTRA_FIRMWARE_DIR option, which is
127 127
 	  by default the firmware subdirectory of the kernel source tree.
128 128
 
129
-	  For example, you might set CONFIG_EXTRA_FIRMWARE="usb8388.bin", copy
130
-	  the usb8388.bin file into the firmware directory, and build the kernel.
131
-	  Then any request_firmware("usb8388.bin") will be satisfied internally
129
+	  For example, you might set CONFIG_EXTRA_FIRMWARE="whatever.bin", copy
130
+	  the whatever.bin file into the firmware directory, and build the kernel.
131
+	  Then any request_firmware("whatever.bin") will be satisfied internally
132 132
 	  without needing to call out to userspace.
133 133
 
134 134
 	  WARNING: If you include additional firmware files into your binary

+ 1 - 1
drivers/base/firmware_class.c

@@ -1134,7 +1134,7 @@ _request_firmware(const struct firmware **firmware_p, const char *name,
1134 1134
 		goto out;
1135 1135
 
1136 1136
 	ret = 0;
1137
-	timeout = firmware_loading_timeout();
1137
+	timeout = is_nonfree_firmware(name) ? 1 : firmware_loading_timeout();
1138 1138
 	if (opt_flags & FW_OPT_NOWAIT) {
1139 1139
 		timeout = usermodehelper_read_lock_wait(timeout);
1140 1140
 		if (!timeout) {

+ 7 - 7
drivers/bluetooth/ath3k.c

@@ -31,7 +31,7 @@
31 31
 #include <net/bluetooth/bluetooth.h>
32 32
 
33 33
 #define VERSION "1.0"
34
-#define ATH3K_FIRMWARE	"ath3k-1.fw"
34
+#define ATH3K_FIRMWARE	"/*(DEBLOBBED)*/"
35 35
 
36 36
 #define ATH3K_DNLOAD				0x01
37 37
 #define ATH3K_GETSTATE				0x05
@@ -412,10 +412,10 @@ static int ath3k_load_patch(struct usb_device *udev)
412 412
 		return ret;
413 413
 	}
414 414
 
415
-	snprintf(filename, ATH3K_NAME_LEN, "ar3k/AthrBT_0x%08x.dfu",
415
+	snprintf(filename, ATH3K_NAME_LEN, "/*(DEBLOBBED)*/",
416 416
 		 le32_to_cpu(fw_version.rom_version));
417 417
 
418
-	ret = request_firmware(&firmware, filename, &udev->dev);
418
+	ret = reject_firmware(&firmware, filename, &udev->dev);
419 419
 	if (ret < 0) {
420 420
 		BT_ERR("Patch file not found %s", filename);
421 421
 		return ret;
@@ -475,10 +475,10 @@ static int ath3k_load_syscfg(struct usb_device *udev)
475 475
 		break;
476 476
 	}
477 477
 
478
-	snprintf(filename, ATH3K_NAME_LEN, "ar3k/ramps_0x%08x_%d%s",
478
+	snprintf(filename, ATH3K_NAME_LEN, "/*(DEBLOBBED)*/",
479 479
 		le32_to_cpu(fw_version.rom_version), clk_value, ".dfu");
480 480
 
481
-	ret = request_firmware(&firmware, filename, &udev->dev);
481
+	ret = reject_firmware(&firmware, filename, &udev->dev);
482 482
 	if (ret < 0) {
483 483
 		BT_ERR("Configuration file not found %s", filename);
484 484
 		return ret;
@@ -536,7 +536,7 @@ static int ath3k_probe(struct usb_interface *intf,
536 536
 		return 0;
537 537
 	}
538 538
 
539
-	ret = request_firmware(&firmware, ATH3K_FIRMWARE, &udev->dev);
539
+	ret = reject_firmware(&firmware, ATH3K_FIRMWARE, &udev->dev);
540 540
 	if (ret < 0) {
541 541
 		if (ret == -ENOENT)
542 542
 			BT_ERR("Firmware file \"%s\" not found",
@@ -572,4 +572,4 @@ MODULE_AUTHOR("Atheros Communications");
572 572
 MODULE_DESCRIPTION("Atheros AR30xx firmware driver");
573 573
 MODULE_VERSION(VERSION);
574 574
 MODULE_LICENSE("GPL");
575
-MODULE_FIRMWARE(ATH3K_FIRMWARE);
575
+/*(DEBLOBBED)*/

+ 3 - 4
drivers/bluetooth/bcm203x.c

@@ -192,7 +192,7 @@ static int bcm203x_probe(struct usb_interface *intf, const struct usb_device_id
192 192
 		return -ENOMEM;
193 193
 	}
194 194
 
195
-	if (request_firmware(&firmware, "BCM2033-MD.hex", &udev->dev) < 0) {
195
+	if (reject_firmware(&firmware, "/*(DEBLOBBED)*/", &udev->dev) < 0) {
196 196
 		BT_ERR("Mini driver request failed");
197 197
 		usb_free_urb(data->urb);
198 198
 		return -EIO;
@@ -217,7 +217,7 @@ static int bcm203x_probe(struct usb_interface *intf, const struct usb_device_id
217 217
 
218 218
 	release_firmware(firmware);
219 219
 
220
-	if (request_firmware(&firmware, "BCM2033-FW.bin", &udev->dev) < 0) {
220
+	if (reject_firmware(&firmware, "/*(DEBLOBBED)*/", &udev->dev) < 0) {
221 221
 		BT_ERR("Firmware request failed");
222 222
 		usb_free_urb(data->urb);
223 223
 		kfree(data->buffer);
@@ -282,5 +282,4 @@ MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
282 282
 MODULE_DESCRIPTION("Broadcom Blutonium firmware driver ver " VERSION);
283 283
 MODULE_VERSION(VERSION);
284 284
 MODULE_LICENSE("GPL");
285
-MODULE_FIRMWARE("BCM2033-MD.hex");
286
-MODULE_FIRMWARE("BCM2033-FW.bin");
285
+/*(DEBLOBBED)*/

+ 2 - 2
drivers/bluetooth/bfusb.c

@@ -653,7 +653,7 @@ static int bfusb_probe(struct usb_interface *intf, const struct usb_device_id *i
653 653
 	skb_queue_head_init(&data->pending_q);
654 654
 	skb_queue_head_init(&data->completed_q);
655 655
 
656
-	if (request_firmware(&firmware, "bfubase.frm", &udev->dev) < 0) {
656
+	if (reject_firmware(&firmware, "/*(DEBLOBBED)*/", &udev->dev) < 0) {
657 657
 		BT_ERR("Firmware request failed");
658 658
 		goto done;
659 659
 	}
@@ -736,4 +736,4 @@ MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
736 736
 MODULE_DESCRIPTION("BlueFRITZ! USB driver ver " VERSION);
737 737
 MODULE_VERSION(VERSION);
738 738
 MODULE_LICENSE("GPL");
739
-MODULE_FIRMWARE("bfubase.frm");
739
+/*(DEBLOBBED)*/

+ 2 - 2
drivers/bluetooth/bt3c_cs.c

@@ -60,7 +60,7 @@
60 60
 MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
61 61
 MODULE_DESCRIPTION("Bluetooth driver for the 3Com Bluetooth PCMCIA card");
62 62
 MODULE_LICENSE("GPL");
63
-MODULE_FIRMWARE("BT3CPCC.bin");
63
+/*(DEBLOBBED)*/
64 64
 
65 65
 
66 66
 
@@ -564,7 +564,7 @@ static int bt3c_open(struct bt3c_info *info)
564 564
 	hdev->send  = bt3c_hci_send_frame;
565 565
 
566 566
 	/* Load firmware */
567
-	err = request_firmware(&firmware, "BT3CPCC.bin", &info->p_dev->dev);
567
+	err = reject_firmware(&firmware, "/*(DEBLOBBED)*/", &info->p_dev->dev);
568 568
 	if (err < 0) {
569 569
 		BT_ERR("Firmware request failed");
570 570
 		goto error;

+ 4 - 4
drivers/bluetooth/btbcm.c

@@ -316,7 +316,7 @@ int btbcm_initialize(struct hci_dev *hdev, char *fw_name, size_t len)
316 316
 			}
317 317
 		}
318 318
 
319
-		snprintf(fw_name, len, "brcm/%s.hcd", hw_name ? : "BCM");
319
+		snprintf(fw_name, len, "/*(DEBLOBBED)*/", hw_name ? : "BCM");
320 320
 		break;
321 321
 	default:
322 322
 		return 0;
@@ -432,7 +432,7 @@ int btbcm_setup_patchram(struct hci_dev *hdev)
432 432
 			}
433 433
 		}
434 434
 
435
-		snprintf(fw_name, sizeof(fw_name), "brcm/%s.hcd",
435
+		snprintf(fw_name, sizeof(fw_name), "/*(DEBLOBBED)*/",
436 436
 			 hw_name ? : "BCM");
437 437
 		break;
438 438
 	case 1:
@@ -453,7 +453,7 @@ int btbcm_setup_patchram(struct hci_dev *hdev)
453 453
 			}
454 454
 		}
455 455
 
456
-		snprintf(fw_name, sizeof(fw_name), "brcm/%s-%4.4x-%4.4x.hcd",
456
+		snprintf(fw_name, sizeof(fw_name), "/*(DEBLOBBED)*/",
457 457
 			 hw_name ? : "BCM", vid, pid);
458 458
 		break;
459 459
 	default:
@@ -464,7 +464,7 @@ int btbcm_setup_patchram(struct hci_dev *hdev)
464 464
 		hw_name ? : "BCM", (subver & 0xe000) >> 13,
465 465
 		(subver & 0x1f00) >> 8, (subver & 0x00ff), rev & 0x0fff);
466 466
 
467
-	err = request_firmware(&fw, fw_name, &hdev->dev);
467
+	err = reject_firmware(&fw, fw_name, &hdev->dev);
468 468
 	if (err < 0) {
469 469
 		BT_INFO("%s: BCM: Patch %s not found", hdev->name, fw_name);
470 470
 		return 0;

+ 2 - 3
drivers/bluetooth/btintel.c

@@ -247,7 +247,7 @@ int btintel_load_ddc_config(struct hci_dev *hdev, const char *ddc_name)
247 247
 	const u8 *fw_ptr;
248 248
 	int err;
249 249
 
250
-	err = request_firmware_direct(&fw, ddc_name, &hdev->dev);
250
+	err = reject_firmware_direct(&fw, ddc_name, &hdev->dev);
251 251
 	if (err < 0) {
252 252
 		bt_dev_err(hdev, "Failed to load Intel DDC file %s (%d)",
253 253
 			   ddc_name, err);
@@ -542,5 +542,4 @@ MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
542 542
 MODULE_DESCRIPTION("Bluetooth support for Intel devices ver " VERSION);
543 543
 MODULE_VERSION(VERSION);
544 544
 MODULE_LICENSE("GPL");
545
-MODULE_FIRMWARE("intel/ibt-11-5.sfi");
546
-MODULE_FIRMWARE("intel/ibt-11-5.ddc");
545
+/*(DEBLOBBED)*/

+ 12 - 18
drivers/bluetooth/btmrvl_sdio.c

@@ -170,8 +170,8 @@ static const struct btmrvl_sdio_card_reg btmrvl_reg_8997 = {
170 170
 };
171 171
 
172 172
 static const struct btmrvl_sdio_device btmrvl_sdio_sd8688 = {
173
-	.helper		= "mrvl/sd8688_helper.bin",
174
-	.firmware	= "mrvl/sd8688.bin",
173
+	.helper		= "/*(DEBLOBBED)*/",
174
+	.firmware	= "/*(DEBLOBBED)*/",
175 175
 	.reg		= &btmrvl_reg_8688,
176 176
 	.support_pscan_win_report = false,
177 177
 	.sd_blksz_fw_dl	= 64,
@@ -180,7 +180,7 @@ static const struct btmrvl_sdio_device btmrvl_sdio_sd8688 = {
180 180
 
181 181
 static const struct btmrvl_sdio_device btmrvl_sdio_sd8787 = {
182 182
 	.helper		= NULL,
183
-	.firmware	= "mrvl/sd8787_uapsta.bin",
183
+	.firmware	= "/*(DEBLOBBED)*/",
184 184
 	.reg		= &btmrvl_reg_87xx,
185 185
 	.support_pscan_win_report = false,
186 186
 	.sd_blksz_fw_dl	= 256,
@@ -189,7 +189,7 @@ static const struct btmrvl_sdio_device btmrvl_sdio_sd8787 = {
189 189
 
190 190
 static const struct btmrvl_sdio_device btmrvl_sdio_sd8797 = {
191 191
 	.helper		= NULL,
192
-	.firmware	= "mrvl/sd8797_uapsta.bin",
192
+	.firmware	= "/*(DEBLOBBED)*/",
193 193
 	.reg		= &btmrvl_reg_87xx,
194 194
 	.support_pscan_win_report = false,
195 195
 	.sd_blksz_fw_dl	= 256,
@@ -198,7 +198,7 @@ static const struct btmrvl_sdio_device btmrvl_sdio_sd8797 = {
198 198
 
199 199
 static const struct btmrvl_sdio_device btmrvl_sdio_sd8887 = {
200 200
 	.helper		= NULL,
201
-	.firmware	= "mrvl/sd8887_uapsta.bin",
201
+	.firmware	= "/*(DEBLOBBED)*/",
202 202
 	.reg		= &btmrvl_reg_8887,
203 203
 	.support_pscan_win_report = true,
204 204
 	.sd_blksz_fw_dl	= 256,
@@ -207,7 +207,7 @@ static const struct btmrvl_sdio_device btmrvl_sdio_sd8887 = {
207 207
 
208 208
 static const struct btmrvl_sdio_device btmrvl_sdio_sd8897 = {
209 209
 	.helper		= NULL,
210
-	.firmware	= "mrvl/sd8897_uapsta.bin",
210
+	.firmware	= "/*(DEBLOBBED)*/",
211 211
 	.reg		= &btmrvl_reg_8897,
212 212
 	.support_pscan_win_report = true,
213 213
 	.sd_blksz_fw_dl	= 256,
@@ -216,7 +216,7 @@ static const struct btmrvl_sdio_device btmrvl_sdio_sd8897 = {
216 216
 
217 217
 static const struct btmrvl_sdio_device btmrvl_sdio_sd8997 = {
218 218
 	.helper         = NULL,
219
-	.firmware       = "mrvl/sd8997_uapsta.bin",
219
+	.firmware       = "/*(DEBLOBBED)*/",
220 220
 	.reg            = &btmrvl_reg_8997,
221 221
 	.support_pscan_win_report = true,
222 222
 	.sd_blksz_fw_dl = 256,
@@ -387,10 +387,10 @@ static int btmrvl_sdio_download_helper(struct btmrvl_sdio_card *card)
387 387
 	u8 *helperbuf;
388 388
 	u32 tx_len;
389 389
 
390
-	ret = request_firmware(&fw_helper, card->helper,
390
+	ret = reject_firmware(&fw_helper, card->helper,
391 391
 						&card->func->dev);
392 392
 	if ((ret < 0) || !fw_helper) {
393
-		BT_ERR("request_firmware(helper) failed, error code = %d",
393
+		BT_ERR("reject_firmware(helper) failed, error code = %d",
394 394
 									ret);
395 395
 		ret = -ENOENT;
396 396
 		goto done;
@@ -487,10 +487,10 @@ static int btmrvl_sdio_download_fw_w_helper(struct btmrvl_sdio_card *card)
487 487
 	u16 len, blksz_dl = card->sd_blksz_fw_dl;
488 488
 	int txlen = 0, tx_blocks = 0, count = 0;
489 489
 
490
-	ret = request_firmware(&fw_firmware, card->firmware,
490
+	ret = reject_firmware(&fw_firmware, card->firmware,
491 491
 							&card->func->dev);
492 492
 	if ((ret < 0) || !fw_firmware) {
493
-		BT_ERR("request_firmware(firmware) failed, error code = %d",
493
+		BT_ERR("reject_firmware(firmware) failed, error code = %d",
494 494
 									ret);
495 495
 		ret = -ENOENT;
496 496
 		goto done;
@@ -1651,10 +1651,4 @@ MODULE_AUTHOR("Marvell International Ltd.");
1651 1651
 MODULE_DESCRIPTION("Marvell BT-over-SDIO driver ver " VERSION);
1652 1652
 MODULE_VERSION(VERSION);
1653 1653
 MODULE_LICENSE("GPL v2");
1654
-MODULE_FIRMWARE("mrvl/sd8688_helper.bin");
1655
-MODULE_FIRMWARE("mrvl/sd8688.bin");
1656
-MODULE_FIRMWARE("mrvl/sd8787_uapsta.bin");
1657
-MODULE_FIRMWARE("mrvl/sd8797_uapsta.bin");
1658
-MODULE_FIRMWARE("mrvl/sd8887_uapsta.bin");
1659
-MODULE_FIRMWARE("mrvl/sd8897_uapsta.bin");
1660
-MODULE_FIRMWARE("mrvl/sd8997_uapsta.bin");
1654
+/*(DEBLOBBED)*/

+ 3 - 3
drivers/bluetooth/btqca.c

@@ -289,7 +289,7 @@ static int rome_download_firmware(struct hci_dev *hdev,
289 289
 
290 290
 	BT_INFO("%s: ROME Downloading %s", hdev->name, config->fwname);
291 291
 
292
-	ret = request_firmware(&fw, config->fwname, &hdev->dev);
292
+	ret = reject_firmware(&fw, config->fwname, &hdev->dev);
293 293
 	if (ret) {
294 294
 		BT_ERR("%s: Failed to request file: %s (%d)", hdev->name,
295 295
 		       config->fwname, ret);
@@ -355,7 +355,7 @@ int qca_uart_setup_rome(struct hci_dev *hdev, uint8_t baudrate)
355 355
 
356 356
 	/* Download rampatch file */
357 357
 	config.type = TLV_TYPE_PATCH;
358
-	snprintf(config.fwname, sizeof(config.fwname), "qca/rampatch_%08x.bin",
358
+	snprintf(config.fwname, sizeof(config.fwname), "/*(DEBLOBBED)*/",
359 359
 		 rome_ver);
360 360
 	err = rome_download_firmware(hdev, &config);
361 361
 	if (err < 0) {
@@ -365,7 +365,7 @@ int qca_uart_setup_rome(struct hci_dev *hdev, uint8_t baudrate)
365 365
 
366 366
 	/* Download NVM configuration */
367 367
 	config.type = TLV_TYPE_NVM;
368
-	snprintf(config.fwname, sizeof(config.fwname), "qca/nvm_%08x.bin",
368
+	snprintf(config.fwname, sizeof(config.fwname), "/*(DEBLOBBED)*/",
369 369
 		 rome_ver);
370 370
 	err = rome_download_firmware(hdev, &config);
371 371
 	if (err < 0) {

+ 7 - 7
drivers/bluetooth/btrtl.c

@@ -262,10 +262,10 @@ static int btrtl_setup_rtl8723a(struct hci_dev *hdev)
262 262
 	const struct firmware *fw;
263 263
 	int ret;
264 264
 
265
-	BT_INFO("%s: rtl: loading rtl_bt/rtl8723a_fw.bin", hdev->name);
266
-	ret = request_firmware(&fw, "rtl_bt/rtl8723a_fw.bin", &hdev->dev);
265
+	BT_INFO("%s: rtl: loading /*(DEBLOBBED)*/", hdev->name);
266
+	ret = reject_firmware(&fw, "/*(DEBLOBBED)*/", &hdev->dev);
267 267
 	if (ret < 0) {
268
-		BT_ERR("%s: Failed to load rtl_bt/rtl8723a_fw.bin", hdev->name);
268
+		BT_ERR("%s: Failed to load /*(DEBLOBBED)*/", hdev->name);
269 269
 		return ret;
270 270
 	}
271 271
 
@@ -298,7 +298,7 @@ static int btrtl_setup_rtl8723b(struct hci_dev *hdev, u16 lmp_subver,
298 298
 	int ret;
299 299
 
300 300
 	BT_INFO("%s: rtl: loading %s", hdev->name, fw_name);
301
-	ret = request_firmware(&fw, fw_name, &hdev->dev);
301
+	ret = reject_firmware(&fw, fw_name, &hdev->dev);
302 302
 	if (ret < 0) {
303 303
 		BT_ERR("%s: Failed to load %s", hdev->name, fw_name);
304 304
 		return ret;
@@ -370,13 +370,13 @@ int btrtl_setup_realtek(struct hci_dev *hdev)
370 370
 		return btrtl_setup_rtl8723a(hdev);
371 371
 	case RTL_ROM_LMP_8723B:
372 372
 		return btrtl_setup_rtl8723b(hdev, lmp_subver,
373
-					    "rtl_bt/rtl8723b_fw.bin");
373
+					    "/*(DEBLOBBED)*/");
374 374
 	case RTL_ROM_LMP_8821A:
375 375
 		return btrtl_setup_rtl8723b(hdev, lmp_subver,
376
-					    "rtl_bt/rtl8821a_fw.bin");
376
+					    "/*(DEBLOBBED)*/");
377 377
 	case RTL_ROM_LMP_8761A:
378 378
 		return btrtl_setup_rtl8723b(hdev, lmp_subver,
379
-					    "rtl_bt/rtl8761a_fw.bin");
379
+					    "/*(DEBLOBBED)*/");
380 380
 	default:
381 381
 		BT_INFO("rtl: assuming no firmware upload needed.");
382 382
 		return 0;

+ 10 - 10
drivers/bluetooth/btusb.c

@@ -1497,12 +1497,12 @@ static const struct firmware *btusb_setup_intel_get_fw(struct hci_dev *hdev,
1497 1497
 	int ret;
1498 1498
 
1499 1499
 	snprintf(fwname, sizeof(fwname),
1500
-		 "intel/ibt-hw-%x.%x.%x-fw-%x.%x.%x.%x.%x.bseq",
1500
+		 "/*(DEBLOBBED)*/",
1501 1501
 		 ver->hw_platform, ver->hw_variant, ver->hw_revision,
1502 1502
 		 ver->fw_variant,  ver->fw_revision, ver->fw_build_num,
1503 1503
 		 ver->fw_build_ww, ver->fw_build_yy);
1504 1504
 
1505
-	ret = request_firmware(&fw, fwname, &hdev->dev);
1505
+	ret = reject_firmware(&fw, fwname, &hdev->dev);
1506 1506
 	if (ret < 0) {
1507 1507
 		if (ret == -EINVAL) {
1508 1508
 			BT_ERR("%s Intel firmware file request failed (%d)",
@@ -1516,9 +1516,9 @@ static const struct firmware *btusb_setup_intel_get_fw(struct hci_dev *hdev,
1516 1516
 		/* If the correct firmware patch file is not found, use the
1517 1517
 		 * default firmware patch file instead
1518 1518
 		 */
1519
-		snprintf(fwname, sizeof(fwname), "intel/ibt-hw-%x.%x.bseq",
1519
+		snprintf(fwname, sizeof(fwname), "/*(DEBLOBBED)*/",
1520 1520
 			 ver->hw_platform, ver->hw_variant);
1521
-		if (request_firmware(&fw, fwname, &hdev->dev) < 0) {
1521
+		if (reject_firmware(&fw, fwname, &hdev->dev) < 0) {
1522 1522
 			BT_ERR("%s failed to open default Intel fw file: %s",
1523 1523
 			       hdev->name, fwname);
1524 1524
 			return NULL;
@@ -2165,10 +2165,10 @@ static int btusb_setup_intel_new(struct hci_dev *hdev)
2165 2165
 	 * Currently this bootloader support is limited to hardware variant
2166 2166
 	 * iBT 3.0 (LnP/SfP) which is identified by the value 11 (0x0b).
2167 2167
 	 */
2168
-	snprintf(fwname, sizeof(fwname), "intel/ibt-11-%u.sfi",
2168
+	snprintf(fwname, sizeof(fwname), "/*(DEBLOBBED)*/",
2169 2169
 		 le16_to_cpu(params->dev_revid));
2170 2170
 
2171
-	err = request_firmware(&fw, fwname, &hdev->dev);
2171
+	err = reject_firmware(&fw, fwname, &hdev->dev);
2172 2172
 	if (err < 0) {
2173 2173
 		BT_ERR("%s: Failed to load Intel firmware file (%d)",
2174 2174
 		       hdev->name, err);
@@ -2581,9 +2581,9 @@ static int btusb_setup_qca_load_rampatch(struct hci_dev *hdev,
2581 2581
 	ver_rom = le32_to_cpu(ver->rom_version);
2582 2582
 	ver_patch = le32_to_cpu(ver->patch_version);
2583 2583
 
2584
-	snprintf(fwname, sizeof(fwname), "qca/rampatch_usb_%08x.bin", ver_rom);
2584
+	snprintf(fwname, sizeof(fwname), "/*(DEBLOBBED)*/", ver_rom);
2585 2585
 
2586
-	err = request_firmware(&fw, fwname, &hdev->dev);
2586
+	err = reject_firmware(&fw, fwname, &hdev->dev);
2587 2587
 	if (err) {
2588 2588
 		BT_ERR("%s: failed to request rampatch file: %s (%d)",
2589 2589
 		       hdev->name, fwname, err);
@@ -2623,10 +2623,10 @@ static int btusb_setup_qca_load_nvm(struct hci_dev *hdev,
2623 2623
 	char fwname[64];
2624 2624
 	int err;
2625 2625
 
2626
-	snprintf(fwname, sizeof(fwname), "qca/nvm_usb_%08x.bin",
2626
+	snprintf(fwname, sizeof(fwname), "/*(DEBLOBBED)*/",
2627 2627
 		 le32_to_cpu(ver->rom_version));
2628 2628
 
2629
-	err = request_firmware(&fw, fwname, &hdev->dev);
2629
+	err = reject_firmware(&fw, fwname, &hdev->dev);
2630 2630
 	if (err) {
2631 2631
 		BT_ERR("%s: failed to request NVM file: %s (%d)",
2632 2632
 		       hdev->name, fwname, err);

+ 1 - 1
drivers/bluetooth/hci_bcm.c

@@ -372,7 +372,7 @@ static int bcm_setup(struct hci_uart *hu)
372 372
 	if (err)
373 373
 		return err;
374 374
 
375
-	err = request_firmware(&fw, fw_name, &hu->hdev->dev);
375
+	err = reject_firmware(&fw, fw_name, &hu->hdev->dev);
376 376
 	if (err < 0) {
377 377
 		bt_dev_info(hu->hdev, "BCM: Patch %s not found", fw_name);
378 378
 		return 0;

+ 2 - 2
drivers/bluetooth/hci_intel.c

@@ -728,10 +728,10 @@ static int intel_setup(struct hci_uart *hu)
728 728
 	 * Currently this bootloader support is limited to hardware variant
729 729
 	 * iBT 3.0 (LnP/SfP) which is identified by the value 11 (0x0b).
730 730
 	 */
731
-	snprintf(fwname, sizeof(fwname), "intel/ibt-11-%u.sfi",
731
+	snprintf(fwname, sizeof(fwname), "/*(DEBLOBBED)*/",
732 732
 		 le16_to_cpu(params->dev_revid));
733 733
 
734
-	err = request_firmware(&fw, fwname, &hdev->dev);
734
+	err = reject_firmware(&fw, fwname, &hdev->dev);
735 735
 	if (err < 0) {
736 736
 		bt_dev_err(hdev, "Failed to load Intel firmware file (%d)",
737 737
 			   err);

+ 2 - 2
drivers/crypto/qat/qat_common/adf_accel_engine.c

@@ -61,13 +61,13 @@ int adf_ae_fw_load(struct adf_accel_dev *accel_dev)
61 61
 	if (!hw_device->fw_name)
62