X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=deblob-check;h=992b86a63ddc07d4b658cc9b86f030feac55f182;hb=46ca96f3bec65a61859f197f9febe960460b677d;hp=816000462b25b3b66530b19d3f72e34368f2608b;hpb=dda0a68546a44f3257f060afeed77b4f5ff0b7e0;p=releases.git diff --git a/deblob-check b/deblob-check index 816000462b25..992b86a63ddc 100755 --- a/deblob-check +++ b/deblob-check @@ -1,6 +1,6 @@ #! /bin/sh -# deblob-check version 2020-07-09 +# deblob-check version 2020-12-05 # Inspired in gNewSense's find-firmware script. # Written by Alexandre Oliva @@ -83,6 +83,16 @@ # completed in reasonable time. +# For reference, as of 5.8-rc6-gnu, checking the full tarball (with +# -B, not -C) takes up: + +# Engine top mem time +# GNU awk 5.0.1 2.2GB 1x +# Python 3.8.3 48MB 14x +# Perl 5.30.3 22MB 45x +# GNU sed 4.5 24GB 4x + + # The default sensitivity is 32 constants. # The sensitivity, if present, must be the first option. The action @@ -2350,7 +2360,7 @@ set_except () { blobname '\(sep[/]\)\?\(cache\|resident\)\.image\.bin' drivers/staging/sep/sep_driver.c blobname 'RTL8192E[/]\(boot\|main\|data\)\.img' drivers/staging/rtl8192e/r819xE_firmware.c defsnc '\(static[ ]\)\?u32[ ]Rtl8190PciE\?\(AGCTAB_\|PHY_REG\(_1T2R\)\?\|Radio[ABCD]_\)Array\[\(AGCTAB_\|PHY_REG\(_1T2R\)\?\|Radio[ABCD]_\)ArrayLength\][ ]=' 'drivers/staging/\(rtl8192e/r819xE_phy\.c\|rtl8192u/r819xU_firmware_img.c\)' - accept '[ ][*][ ]File:[ ]main_usb\.c\([\n][ ][*]\([^\n/]*\|[^*\n/][/]*\)*\)*[\n][ ][*][/]\([\n][\n]*#\(undef[ ][^\n]*\|include[ ]["][^\n]*["]\)\)*[\n][\n]*#include[ ]["]firmware\.h["]' drivers/staging/vt6656/main_usb.c + accept '[ ][*][ ]File:[ ]main_usb\.c[\n][ ]\([*]\+[^/*][^*]*\)*[\n][ ][*][/]\([\n][\n]*#\(undef[ ][^\n]*\|include[ ]["][^\n]*["]\)\)*[\n][\n]*#include[ ]["]firmware\.h["]' drivers/staging/vt6656/main_usb.c blob 'const[ ]BYTE[ ]abyFirmware\[\][ ]=[ ][{][^;]*[}][;]' drivers/staging/vt6656/firmware.c defsnc '[}][ ]*ChannelRuleTab\[\][ ]=' drivers/staging/vt6656/channel.c defsnc '\(static[ ]\)\?struct[ ]register_address_value_pair[\n]\(preview_snapshot_mode\|noise_reduction\)_reg_settings_array\[\][ ]=' drivers/staging/dream/camera/mt9d112_reg.c @@ -3223,7 +3233,7 @@ set_except () { blobname 'ar3k[/]\(AthrBT_0x%08x\.dfu\|ramps_0x%08x_%d%s\)' drivers/bluetooth/ath3k.c # New in 3.8 - accept 'K_table:\([\n][ ]*\.quad[ ]*0x[0-9a-f]*[,]0x[0-9a-f]*\)*' arch/x86/crypto/crc32c-pcl-intel-asm_64.S + accept 'K_table:\([\n][ \t]*\.\(quad\|long\)[ \t]*0x[0-9a-f]*[,][ ]\?0x[0-9a-f]*\)*' arch/x86/crypto/crc32c-pcl-intel-asm_64.S defsnc 'const[ ]u32[ ]cast_s[1234]\[256\][ ]=' crypto/cast_common.c accept '[ ]request_firmware[ ]can[ ]be[ ]called[ ]safely' Documentation/firmware_class/README defsnc 'static[ ]const[ ]int[ ]__initconst[ ]armada_370_xp_\(nb\|h\|dram\)clk_ratios\[32\]\[2\][ ]=' drivers/clk/mvebu/clk-core.c @@ -3767,7 +3777,7 @@ set_except () { blobname 'brcm[/]brcmfmac43569\.bin' drivers/net/wireless/brcm80211/brcmfmac/usb.c blobname '3826\.eeprom' drivers/net/wireless/p54/p54spi.c defsnc 'static[ ]const[ ]u64[ ]sha512_k\[\][ ]=' arch/arm/crypto/sha512_neon_glue.c - accept 'K_table:\([\n][ ]*\.long[ ]*0x[0-9a-f]*[,][ ]0x[0-9a-f]*\)*' arch/x86/crypto/crc32c-pcl-intel-asm_64.S + accept 'K_table:\([\n][ \t]*\.\(quad\|long\)[ \t]*0x[0-9a-f]*[,][ ]\?0x[0-9a-f]*\)\*' arch/x86/crypto/crc32c-pcl-intel-asm_64.S accept '\.L_s[12345678]:\([\n][ ]*\.quad[ ]*0x[0-9a-f]*[,][ ]0x[0-9a-f]*\)*' arch/x86/crypto/des3_ede-asm_64.S defsnc '[\t]const[ ]unsigned[ ]char[ ][*]K[ ]=[ ][(]unsigned[ ]char[ ][*][)]' crypto/drbg.c accept '[\t]ret[ ]=[ ]_request_firmware[(]firmware_p[,][ ]name[,][ ]device[,]' drivers/base/firmware_class.c @@ -4182,11 +4192,12 @@ set_except () { blobname 'brcm[/]brcmfmac4358-pcie\.bin' drivers/net/wireless/brcm80211/brcmfmacpcie.c blobname 'brcm[/]brcmfmac43241b5-sdio\.bin' drivers/net/wireless/brcm80211/brcmfmac/sdio.c # http://arago-project.org/git/projects/?p=am33x-cm3.git contains - # source code and the license even looks like a Free Software - # license, but there are provisions about trade secrets that might - # be contained in blobs therein. Furthermore, the license hasn't - # been reviewed by the FSF. So let's keep on assuming it's - # non-Free, until we get a definitive answer. + # source code and the Texas Instruments, Inc Software License + # Agreeent even looks like a Free Software license, but there are + # provisions about trade secrets that might be contained in blobs + # therein. Furthermore, the license hasn't been reviewed by the + # FSF. So let's keep on assuming it's non-Free, until we get a + # definitive answer. blobname 'am335x-pm-firmware\.elf' Documentation/devicetree/bindings/remoteproc/wkup_m3_rproc.txt blobname 'rtl_bt[/]rtl\(8723[ab]\|8821a\|8761a\)_fw\.bin' drivers/bluetooth/btrtl.c blobname 'radeon[/]\(bonaire\|kabini\|kaveri\|hawaii\|mullins\)_uvd\.bin' drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c @@ -4279,9 +4290,9 @@ set_except () { # New in 4.4. blobna 'More[ ]description[ ]on[ ]the[ ]firmware.*make[ ]sure[ ]to[ ]copy[ ]firmware[\n]to[ ]file[ ]system[ ]before[ ]using[ ]these[ ]queue[ ]types[.]' Documentation/arm/keystone/knav-qmss.txt - accept '[\t ]*interrupts[ ]=[ ]<\([\n\t ]*\([0-9xa-f ]*\|[/][*]\([^*]\|[*]*[^*/]\)*[*][*]*[/]\)\)*>[;]' arch/arm64/boot/dts/hisilicon/hip05_hns.dtis + accept '[\t ]*interrupts[ ]=[ ]<\([\n\t ]*\([0-9xa-f]*\|[/]\([*]\+[^*/][^*]*\)\+[*]\+[/]\)\)*>[;]' arch/arm64/boot/dts/hisilicon/hip05_hns.dtis accept '[ ][ ][ ][ ]run_cmd[ ]dd[ ]if=["][$]ofile\.bin["][ ]of=["][$]ofile\.bin["]' arch/powerpc/boot/wrapper - accept '#define[ ]XCHAL_BYTE0_FORMAT_LENGTHS[ \t23,\\\n]*' arch/xtensa/variants/de212/include/variant/tie.h + accept '#define[ ]XCHAL_BYTE0_FORMAT_LENGTHS[ \t238,\\\n]*' arch/xtensa/variants/de212/include/variant/tie.h defsnc 'static[ ]const[ ]struct[ ]reg_sequence[ ]wm8998_rev_a_patch\[\][ ]=' drivers/mfd/wm8998-tables.c defsnc 'static[ ]struct[ ]nand_ecclayout[ ]vf610_nfc_ecc\(45\|60\)[ ]=' drivers/mtd/nand/vf610_nfc.c defsnc 'static[ ]const[ ]struct[ ]iro[ ]iro_arr\[31\][ ]=' drivers/net/ethernet/qlogic/qed/qed_hsi.h @@ -4390,7 +4401,7 @@ set_except () { blob '[/]lib[/]firmware[/]\([\n][^\n][^\n]*\)*\.\.\.' Documentation/x86/early-microcode.txt blobname 'https[:][/][/]01\.org[/]linuxgraphics[/]intel-[^"\n]*' drivers/gpu/drm/i915/intel_csr.c accept '[\t ]*["]genroms[/]kvmvapic\.bin' Documentation/ABI/testing/sysfs-firmware-qemu_fw_cfg - accept '[#]define[ ]XCHAL_BYTE0_FORMAT_LENGTHS[ \t\n,238\\]*' arch/xtensa/variants/test_kc705_hifi/include/variant/tie.h + accept '#define[ ]XCHAL_BYTE0_FORMAT_LENGTHS[ \t238,\\\n]*' arch/xtensa/variants/test_kc705_hifi/include/variant/tie.h defsnc 'static[ ]const[ ]int[ ]supported_data_lane_swaps\[\]\[4\][ ]=' drivers/gpu/drm/msm/dsi/dsi_host.c accept '[\t ]*\(if[ ][(]\)\?[(]ret[ ]=[ ]gf100_gr_ctor_fw[(]gr[,][ ]["]gr[/]\(fecs\|gpccs\)_\(data\|inst\)["][,][ ][&]gr->fuc4\(09\|1a\)[cd][)]' drivers/gpu/drm/nouveau/nvkm/engine/gr/gm200.c defsnc '[\t]static[ ]const[ ]u8[ ]sixaxis_leds\[10\]\[4\][ ]=' drivers/hid/hid-sony.c @@ -4663,7 +4674,7 @@ set_except () { defsnc 'static[ ]yyconst[ ]YY_CHAR[ ]yy_meta\[48\][ ]=' scripts/dtc/dtc-lexer.lex.c_shipped defsnc 'static[ ]yyconst[ ]flex_uint16_t[ ]yy_base\[180\][ ]=' scripts/dtc/dtc-lexer.lex.c_shipped defsnc 'static[ ]yyconst[ ]flex_uint16_t[ ]yy_nxt\[449\][ ]=' scripts/dtc/dtc-lexer.lex.c_shipped - accept '0x1B[,][ ]0x5E[,][ ]0x78[,][ ]0x3D[,][ ]0x00[,][ ]0x00[,][ ]0x00[,][ ]0x18[,][ ][0x1-9A-F, ]*' security/apparmor/nulldfa.in + accept '0x1B[,][ ]0x5E[,][ ]0x78[,][ ]0x3D[,][ ]0x00[,][ ]0x00[,][ ]0x00[,][ ]0x18[,][ ][0x1-9A-F, \n]*' security/apparmor/nulldfa.in defsnc '[\t]struct[ ]sock_filter[ ]bpf_filter\[\][ ]=' tools/testing/selftests/net/psock_lib.h blobname 'cpt8x-mc-[as]e\.out' drivers/crypto/cavium/cpt/cptpf_main.c blobname 'i915[/]["][ ]__stringify[(]platform[)][ ]["]_huc_ver["][ ]__stringify[(]major[)][ ]["]_["][ \\\n\t]*__stringify[(]minor[)][ ]["]_["][ ]__stringify[(]bld_num[)][ ]["]\.bin' drivers/gpu/drm/i915/intel_huc.c @@ -5804,7 +5815,7 @@ set_except () { accept '[\t]err[ ]=[ ]request_firmware_direct[(][&]fw[,][ ]file_name[,]\([^\n]*[\n]\+[^\n}]\)*err[ ]=[ ]mlx5_firmware_flash[(]' drivers/net/ethernet/mellanox/mlx5/core/devlink.c # New in 5.7-rc7. - accept '[\t ]*:\([ ]*[32][86420]0*\)*\([\n][ ]*[32][86420]0*:\([ ]*[012345]\)*\)*' Documentation/cpu-freq/cpufreq-stats.rst + accept '[\t ]*:\([ ]*[32][86420]0*\)\+\([\n][ ]*[32][86420]0*:\([ ]*[012345]\)*\)\+' Documentation/cpu-freq/cpufreq-stats.rst accept '\(The[ ]\)\?firmware_request_platform[(][)][ ]function' Documentation/driver-api/firmware/fallback-mechanisms.rst accept '[ ][ ][ ]request_firmware[\n]' Documentation/driver-api/firmware/index.rst accept '[ ][ ]firmware_request_platform[(][)][ ]is[ ]used' Documentation/driver-api/firmware/lookup-order.rst @@ -5888,6 +5899,195 @@ set_except () { defsnc 'static[ ]const[ ]u32[ ]ivb_clear_kernel\[\][ ]=' drivers/gpu/drm/i915/gt/ivb_clear_kernel.c defsnc 'static[ ]const[ ]u32[ ]hsw_clear_kernel\[\][ ]=' drivers/gpu/drm/i915/gt/hsw_clear_kernel.c + # New in 5.8-rc5. + blobname 'brcm[/]BCM%s\.hcd' drivers/bluetooth/btbcm.c + accept '[ ]Package[\t]Core[\t]CPU[\t]Bzy_MHz\([\n][ ]0[\t][\t]\([0-9]\|1[0-3]\)[\t]\([0-9]\|1[0-3]\)[\t][1-9][0-9]*\)*' Documentation/admin-guide/pm/intel-speed-select.rst + accept '[ \t]*cellwise[,]battery-profile[ ]=[ ][/]bits[/][ ]8[ ]<\([\n][ \t]*0x[0-9A-F][0-9A-F]\([ ]0x[0-9A-F][0-9A-F]\)*\)*[\n][ \t]*>[;]' Documentation/devicetree/bindings/power/supply/cw2015_battery.yaml + blobname 'imx[/]easrc[/]easrc-imx8mn\.bin' Documentation/devicetree/bindings/sound/fsl,easrc.yaml + defsnc '[ ]*struct[ ]sock_filter[ ]code\[\][ ]=' Documentation/networking/filter.rst + accept '[ ]*gzip[ ]-n[ ]--force[ ]-9[ ]--stdout[ ]["][$]ofile\.bin["]' arch/powerpc/boot/wrapper + accept '[ ][*][ ]*0[ ]-[ ]success[ ][(]no[ ]update[ ]done[ ]or[ ]microcode[ ]was[ ]updated[)]' arch/x86/kernel/cpu/microcode/core.c + blobname 'qca[/]htnv%02x\.bin' drivers/bluetooth/btqca.c + blobname 'rtl_bt[/]rtl8761b_fw\.bin' drivers/bluetooth/btrtl.c + defsnc '[}][ ]postdivs\[\][ ]=' drivers/clk/mmp/clk-audio.c + defsnc '[\t][}][ ]common_modes\[21\][ ]=' drivers/gpu/drm/amd/amdgpu/dce_virtual.c + defsc 'static[ ]const[ ]unsigned[ ]int[ ]a405_registers\[\][ ]=' drivers/gpu/drm/msm/adreno/a4xx_gpu.c + blobname 'a6[45]0_\(gmu\.bin\|zap\.mdt\|sqe\.fw\)' drivers/gpu/drm/msm/adreno/adreno_device.c + defsc 'static[ ]const[ ]struct[ ]ltk050h3146w_cmd[ ]page[13]_cmds\[\][ ]=' drivers/gpu/drm/panel/panel-leadtek-ltk050h3146w.c + defsnc '[\t]dsi_dcs_write_seq[(]dsi[,][ ]0x' drivers/gpu/drm/panel/panel-leadtek-ltk050h3146w.c + defsnc 'static[ ]const[ ]struct[ ]ov2740_reg[ ]mode_1932x1092_regs\[\][ ]=' drivers/media/i2c/ov2740.c + blobname 'habanalabs[/]gaudi[/]gaudi\(-boot\)\?-fit\.itb' drivers/misc/habanalabs/gaudi/gaudi.c + blobname 'habanalabs[/]gaudi[/]gaudi_tpc\.bin' drivers/misc/habanalabs/gaudi/gaudi.c + blobname 'habanalabs[/]goya[/]goya-boot-fit\.itb' drivers/misc/habanalabs/goya/goya.c + defsnc 'static[ ]const[ ]u8[ ]ice_fdir_\(tc\|ud\|sct\|\|i\)p\(v[46]\|[46]_tun\)_pkt\[\][ ]=' drivers/net/ethernet/intel/ice/ice_fdir.c + defsnc 'static[ ]const[ ]u32[ ]ice_ptypes_gre_of\[\][ ]=' drivers/net/ethernet/intel/ice/ice_flow.c + defsc 'static[ ]const[ ]struct[ ]ath10k_index_v\?ht_data_rate_type[ ]supported_v\?ht_mcs_rate_nss[12]\[\][ ]=' drivers/net/wireless/ath/ath10k/mac.c + defsnc '[\t]static[ ]const[ ]u16[ ]freq_list\[\][ ]=' drivers/net/wireless/mediatek/mt76/mt7615/mcu.c + blobname 'mediatek[/]mt7663\(pr2h\|_n9\)_rebb\.bin' drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h + blobname 'mediatek[/]mt7915_\(w[am]\|rom_patch\)\.bin' drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h + defsnc 'static[ ]const[ ]u32[ ]rtw8723d_\(ofdm\|cck\)_swing_table\[\][ ]=' drivers/net/wireless/realtek/rtw88/rtw8723d.c + blobname 'rtw88[/]rtw8723d_fw\.bin' drivers/net/wireless/realtek/rtw88/rtw8723d.c + defsnc 'static[ ]const[ ]u32[ ]rtw8723d_\(mac\|agc\|bb\|rf_a\)\[\][ ]=' drivers/net/wireless/realtek/rtw88/rtw8723d_table.c + defsnc 'static[ ]const[ ]struct[ ]rtw_phy_pg_cfg_pair[ ]rtw8723d_bb_pg\[\][ ]=' drivers/net/wireless/realtek/rtw88/rtw8723d_table.c + defsnc 'static[ ]const[ ]struct[ ]rtw_txpwr_lmt_cfg_pair[ ]rtw8723d_txpwr_lmt\[\][ ]=' drivers/net/wireless/realtek/rtw88/rtw8723d_table.c + defsnc 'static[ ]const[ ]struct[ ]rtw_txpwr_lmt_cfg_pair[ ]rtw8822c_txpwr_lmt_type5\[\][ ]=' drivers/net/wireless/realtek/rtw88/rtw8723d_table.c + blobname 'gsl3680-mpman-mpwin895cl\.fw' drivers/platform/x86/touchscreen_dmi.c + blobname 'gsl3676-onda-v891-v5\.fw' drivers/platform/x86/touchscreen_dmi.c + blobname 'gsl1680-techbite-arc-11-6\.fw' drivers/platform/x86/touchscreen_dmi.c + blobname 'gsl1680-vinga-twizzle_j116\.fw' drivers/platform/x86/touchscreen_dmi.c + defsc 'static[ ]struct[ ]ov2680_reg[ ]const[ ]ov2680_\(global_setting\|\(Q\?CIF\|QVGA\|656x496\|800x600\|720p\|1296x976\|1456x1096\|1616x916\|1616x1082\)_30fps\)\[\][ ]=' drivers/staging/media/atomisp/i2c/ov2680.h + defsnc 'static[ ]struct[ ]ia_css_macc_table[ ]\(skin_\(low\|medium\|high\)\|blue\|green\)_macc_table[ ]=' drivers/staging/media/atomisp/pci/atomisp_tables.h + defsnc 'static[ ]struct[ ]ia_css_ctc_table[ ]vivid_ctc_table[ ]=' drivers/staging/media/atomisp/pci/atomisp_tables.h + blobname 'shisp_240\(0b\|1a\)0_v21\.bin' 'drivers/staging/media/atomisp/\(TODO\|atomisp_v4l2\.c\)' + blobname 'shisp_2401a0_legacy_v21\.bin' drivers/staging/media/atomisp/pci/atomisp_v4l2.c + defsnc 'static[ ]const[ ]s16[ ]g_pyramid\[8\]\[8\][ ]=' drivers/staging/media/atomisp/pci/isp/kernels/tdf/tdf_1.0/ia_css_tdf.host.c + defsc 'static[ ]const[ ]struct[ ]vnt_threshold[ ]\(al2230\|vt3\(226\|342\)\)_vnt_threshold\[\][ ]=' drivers/staging/vt6656/baseband.c + defsnc 'static[ ]const[ ]int[ ]k3_adc_to_temp\[\][ ]=' drivers/thermal/k3_bandgap.c + blobname 'renesas_usb_fw\.mem' drivers/usb/host/xhci-pci.c + defsnc 'static[ ]u8[ ]swap_bits_table\[\][ ]=' lib/bch.c + blobname 'dsm_param\(_%s_%s\)\?\.bin' sound/soc/codecs/max98390.c + defsnc 'static[ ]const[ ]struct[ ]reg_default[ ]rt1016_reg\[\][ ]=' sound/soc/codecs/rt1016.c + defsnc 'const[ ]struct[ ]reg_default[ ]rt5682_reg\[RT5682_REG_NUM\][ ]=' sound/soc/codecs/rt5682.c + blobname 'zl38060\.fw' sound/soc/codecs/zl38060.c + blobname '%s-tplg\.bin' sound/soc/intel/skylake/skl-topology.c + defsnc 'static[ ]uint8_t[ ]default_tx\[\][ ]=' tools/spi/spidev_test.c + # This is not used at all, but watch out for future uses thereof. + # It is intended for use to load large register-set files rather + # than code. That ought to be acceptable, but let's make sure no + # unwanted use slips through. + blobna 'load_msr_list' drivers/staging/media/atomisp/i2c/atomisp-libmsrlisthelper.c + accept 'int[ ]load_msr_list[(][^)]*[)][\n][{][\n][\t]int[ ]ret[ ]=[ ]request_firmware[(]' drivers/staging/media/atomisp/i2c/atomisp-libmsrlisthelper.c + accept 'int[ ]load_msr_list[(][^)]*[)][;]' drivers/staging/media/atomisp/include/linux/libmsrlisthelper.h + blobname 'qca[/]crbtfw%02x\.tlv' drivers/bluetooth/btqca.c + blobname 'qca[/]htbtfw%02x\.tlv' drivers/bluetooth/btqca.c + blobname 'qca[/]%s' drivers/bluetooth/btqca.c + accept '[\t]quirks[ \t]*=[ ]XHCI_RENESAS_FW_QUIRK[,][\n][\t]\.firmware[ ]=' drivers/usb/host/xhci-pci.c + accept '[\t]*dev_err[(][&]pdev->dev[,][ ]["]request_firmware[ ]failed' drivers/usb/host/xhci-pci-renesas.c + accept 'EXPORT_SYMBOL_GPL[(]load_msr_list[)]' drivers/staging/media/atomisp/i2c/atomisp-libmsrlisthelper.c + blobna 'for[ ]the[ ]WinTV[/]PVR[^:.]*firmware[^:.]*:[\n ][`][`]hcwamc\.rbf[^\n]*\([\n][^\n][^\n]*\)*' Documentation/admin-guide/media/bttv.rst + + # New in 5.8.2, 5.7.16, 5.4.59, and 4.19.140. + blobname 'mrvl[/]sdsd8977_combo_v2\.bin' 'drivers/\(bluetooth/btmrvl_sdio\.c\|net/wireless/marvell/mwifiex/sdio\.h\)' + blobname 'mrvl[/]sdsd8997_combo_v4\.bin' 'drivers/\(bluetooth/btmrvl_sdio\.c\|net/wireless/marvell/mwifiex/sdio\.h\)' + + # New in 5.9-rc6. + accept '[ ][ ]For[ ]pm\(8841\|8916\|8941\|8994\|8994\|a8084\|i8994\|i8998\|s405\)\([,][ \n][ ]*[slv0-9]*\)*' Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml + initnc '[ ][ ][ ][ ][$][ ]devlink[ ]region[ ]dump[ ]pci[/][^ ]*[ ]snapshot' Documentation/networking/devlink/ice.rst + blobname 'nvm_00440302_i2s_eu\.bin' arch/arm64/boot/dts/mediatek/mt8183-kukui-krane.dtsi + initnc '[\t][\t]temperature-lookup-table[ ]=[ ]<' arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi + blobname 'nvm_00440302_i2s\.bin' arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi + defsnc 'static[ ]const[ ]u64[ ]inst\[\][ ]=' drivers/crypto/qat/qat_common/qat_hal.c + defsnc 'static[ ]u8[ ]mci_cbc_\(enc\|dec\)_\(no_iv_\)\?array\[3\]\[MODE_CONTROL_BYTES\][ ]=' drivers/crypto/sa2ul.c + defsnc 'static[ ]u8[ ]mci_ecb_\(enc\|dec\)_\(no_iv_\)\?array\[3\]\[27\][ ]=' drivers/crypto/sa2ul.c + blobname 'amdgpu[/]\(tahiti\|verde\|pitcairn\|oland\)_uvd\.bin' drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c + blobname 'amdgpu[/]\(sienna_cichlid\|navy_flounder\)_vcn\.bin' drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c + blobname 'amdgpu[/]\(sienna_cichlid\|navy_flounder\|%s\)_sdma\(%d\)\?\.bin' drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c + # Sources are in cwsr_trap_handler_gfx10.asm. + defsnc 'static[ ]const[ ]uint32_t[ ]cwsr_trap_nv1x_hex\[\][ ]=' drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h + blobname 'amdgpu[/]\(sienna_cichlid\|navy_flounder\|%s\)_dmcub\.bin' drivers/gpu/drm/amd/amdgpu/amdgpu_dm.c + blobname 'i915[/]rkl_dmc_ver2_01\.bin' drivers/gpu/drm/i915/display/intel_csr.c + initnc '[\t]dsi_dcs_write_seq[(]dsi[,][ ]ST7703_CMD_SET\(GIP[12]\|GAMMA\)[,]' drivers/gpu/drm/panel/panel-sitronix-st7703.c + defsnc 'static[ ]const[ ]struct[ ]vadc_map_pt[ ]adcmap7_100k\[\][ ]=' drivers/iio/adc/qcom-vadc-common.c + defsc '[}][ ]ov10635_regs_wizard\[\][ ]=' drivers/media/i2c/rdacm20.c + accept '[\t][/][*][ ]get[ ]reference[ ]of[ ]pdev[ ]for[ ]request_firmware[ ][*][/]' drivers/misc/ti-st/st_kim.c + accept '[ ][*][ ]@path:[ ]the[ ]path[ ]of[ ]the[ ]firmware[ ]file[ ]to[ ]use[ ]via[ ]request_firmware' drivers/net/ethernet/intel/ice/ice_devlink.c + blobname 'mellanox[/]mlxsw_spectrum3-\(["][ ]__stringify[(]MLXSW_SP3_FWREV_[^)]*[)][ \\\n\t]*["]\.\)*mfa2' drivers/net/ethernet/mellanox/mlxsw/spectrum.c + blobname 'rtl_nic[/]rtl8125b-2\.fw' drivers/net/ethernet/realtek/r8169_main.c + defsnc 'static[ ]const[ ]u8[ ]rtl88\(12\|21\)ae_delta_swing_table_idx_5g[ba]_[np]\[\]\[DEL_SW_IDX_SZ\][ ]=' drivers/net/wireless/realtek/rtlwifi/rtl8821ae/dm.c + defsnc 'static[ ]const[ ]u32[ ]rtw8821c_txscale_tbl\[\][ ]=' drivers/net/wireless/realtek/rtw88/rtw8821c.c + defsnc 'static[ ]const[ ]u8[ ]rtw8821c_pwrtrk_5g[ba]_[np]\[\]\[RTW_PWR_TRK_TBL_SZ\][ ]=' drivers/net/wireless/realtek/rtw88/rtw8821c.c + blobname 'rtw88[/]rtw8821c_fw\.bin' drivers/net/wireless/realtek/rtw88/rtw8821c.c + defsnc 'static[ ]const[ ]u32[ ]rtw8821c_\(mac\|agc\|bb\|rf_a\)\[\][ ]=' drivers/net/wireless/realtek/rtw88/rtw8821c_table.c + defsnc 'static[ ]const[ ]struct[ ]rtw_phy_pg_cfg_pair[ ]rtw8821c_bb_pg_type0\[\][ ]=' drivers/net/wireless/realtek/rtw88/rtw8821c_table.c + defsnc 'static[ ]const[ ]struct[ ]rtw_txpwr_lmt_cfg_pair[ ]rtw8821c_txpwr_lmt_type0\[\][ ]=' drivers/net/wireless/realtek/rtw88/rtw8821c_table.c + defsnc 'static[ ]const[ ]struct[ ]xpsgtr_ssc[ ]ssc_lookup\[\][ ]=' drivers/phy/xilinx/phy-zynqmp.c + accept '[\t]*dev_err[(]dev[,][ ]["]request_firmware[ ]failed' drivers/remoteproc/remoteproc_core.c + defsnc 'const[ ]unsigned[ ]char[ ]\(IDX_ACTIVATE_\(READ\|WRITE\)\|\(CM\|ULP\)_\(ENABLE\|SETUP\)\|DM_ACT\|IPA_PDU_HEADER\)\[\][ ]=' drivers/s390/net/qeth_core_mpc.c + defsnc '[\t]static[ ]const[ ]u8[ ]sbox_table\[256\][ ]=' drivers/staging/rtl8723bs/core/rtw_security.c + defsnc '[\t]static[ ]const[ ]u8[ ]rx_hash_toeplitz_key\[\][ ]=' drivers/vdpa/mlx5/net/mlx5_vnet.c + defsnc 'static[ ]struct[ ]test_bitmap_cut[ ]test_cut\[\][ ]=' lib/test_bitmap.c + defsnc 'static[ ]__maybe_unused[ ]const[ ]a3d_Hrtf_t[ ]A3dHrir\(Impulse\|Ones\|SatTest\|DImpulse\)[ ]=' sound/pci/au88x0/au88x0_a3ddata.c + defsnc 'static[ ]__maybe_unused[ ]xtalk_dline_t[ ]const[ ]alXtalkDlineTest[ ]=' sound/pci/au88x0/au88x0_xtalk.c + accept '[\t]const[ ]char[ ][*]pathname[ ]=[ ]["][/]var[/]run[/]isst_cpu_topology\.dat["]' tools/power/x86/intel-speed-select/isst-config.c + # The firmware file name is supplied by the user. + accept '[\t]err[ ]=[ ]request_firmware_direct[(][&]fw[,][ ]file_name[,][\n\t ]*[&]priv->hwdev->hwif->pdev->dev[)]' drivers/net/ethernet/huawei/hinic/hinic_devlink.c + accept '[\t]err[ ]=[ ]ice_check_for_pending_update[(]pf[,][ ]component[,][ ]extack[)][;][\n][\t]if[ ][(]err[)][\n][\t][\t]return[ ]err[;][\n][\n][\t]err[ ]=[ ]request_firmware[(][&]fw[,][ ]path[,][ ]dev[)]' drivers/net/ethernet/intel/ice/ice_devlink.c + blobname 'atmel[/]wilc1000_wifi_firmware-\([0-9]\+\.bin\)\?' drivers/net/wireless/microchip/wilc1000/netdev.c + # We massage the file with undefine_macro before clean_blob. + blobname '[/][*][(]DEBLOBBED[)][*][/]["][ ][#]api[ ]["]\.bin' drivers/net/wireless/microchip/wilc1000/netdev.c + defsnc '[\t]static[ ]const[ ]struct[ ]ephy_info[ ]e_info_8125a_[12]\[\][ ]=' drivers/net/ethernet/realtek/r8169_main.c + + # New in 5.9 final. + blobname 'gsl1680-mpman-converter9.fw' drivers/platform/x86/touchscreen_dmi.c + defsc 'static[ ]struct[ ]font_data[ ]fontdata_ter16x32[ ]=' lib/fonts/font_ter16x32.c + + # New in 5.9.2 and 5.8.17. + accept '[\t][\t]\.driver_data[ ]=[ ]["]sof-[^" ;]*\.tplg["]' sound/soc/sof/sof-pci-dev.c + + # New in 5.9.7 and 5.4.76. + defsc 'static[ ]const[ ]struct[ ]font_data[ ]fontdata_ter16x32[ ]=' lib/fonts/font_ter16x32.c + + # New in 5.9.9. + defsnc 'static[ ]const[ ]struct[ ]msm_gpio_wakeirq_map[ ]sm8250_pdc_map\[\][ ]=' drivers/pinctrl/qcom/pinctrl-sm8250.c + + # New in 5.10-rc. + defsc '\([/][*]\)\?static[ ]unsigned[ ]int[ ]\(No\)\?DbiPrbs7\[\][ ]=' drivers/gpu/drm/amd/pm/inc/smu_11_0_cdr_table.h + defsnc 'static[ ]const[ ]struct[ ]phy_settings[ ]vc5_hdmi_phy_settings\[\][ ]=' drivers/gpu/drm/vc4/vc4_hdmi_phy.c + defsnc 'static[ ]const[ ]unsigned[ ]int[ ]ad9434_scale_table\[\]\[2\][ ]=' drivers/iio/adc/ad9467.c + defsc 'static[ ]const[ ]struct[ ]reg_default[ ]lp50\(24\|36\)_reg_defs\[\][ ]=' drivers/leds/leds-lp50xx.c + defsc 'static[ ]const[ ]struct[ ]SMap[I2 ]\?[ ]m_\(RF_Cal\|\(Main\|Cal\)_PLL\|GainTaper\|RF_Cal_DC_Over_DT\|CID_Target\)_Map\[\][ ]=' drivers/media/dvb-frontends/tda18271c2dd_maps.h + defsnc 'static[ ]const[ ]struct[ ]ov8856_reg[ ]mode_\(3264x2448\|1632x1224\)_regs\[\][ ]=' drivers/media/i2c/ov8856.c + defsc 'static[ ]const[ ]u32[ ]CRC_LUT\[256\][ ]=' drivers/media/test-drivers/vidtv/vidtv_psi.c + defsc 'static[ ]const[ ]u8[ ]reverse\[256\][ ]=' drivers/media/test-drivers/vidtv/vidtv_s302m.c + defsnc 'static[ ]const[ ]u8[ ]r8a779\(6\(5\|_es13\)\|90\)_calib_table\[2\]\[SDHI_CALIB_TABLE_MAX\][ ]=' drivers/mmc/host/renesas_sdhi_core.c + defsnc 'static[ ]const[ ]u16[ ]mcp251xfd_crc16_table\[\][ ]=' drivers/net/can/spi/mcp251xfd/mcp251xfd-crc16.c + defsnc 'static[ ]const[ ]u32[ ]ice_ipv[46]_\(ofos\|il\)_no_l4\[\][ ]=' drivers/net/ethernet/intel/ice/ice_flow.c + defsc 'static[ ]const[ ]struct[ ]ath10k_mem_section[ ]qca6174_hw30_sdio_register_sections\[\][ ]=' drivers/net/wireless/ath/ath10k/coredump.c + accept 'const[ ]struct[ ]firmware[ ][*]ath11k_core_firmware_request[(]' drivers/net/wireless/ath/ath11k/'core\.[ch]' + accept '[\t]*\(bd->fw\|fw_entry\|fw\)[ ]=[ ]ath11k_core_firmware_request[(]' drivers/net/wireless/ath/ath11k/qmi.c + blobname '\(amss\|m3\)\.bin' drivers/net/wireless/ath/ath11k/hw.h + blobname 'gsl1680-irbis-tw118\.fw' drivers/net/wireless/intel/iwlwifi/fw/pnvm.c + blobname 'gsl3680-predia-basic\.fw' drivers/net/wireless/intel/iwlwifi/fw/pnvm.c + accept '[\t]s->data_sz[ ][=][ ][0-9]*[;][\n][\t]s->data[ ]=[ ][(]void[ ][*][)]["]\([\\]\([0-7][0-7]*\|x[0-9a-f][0-9a-f]\|[\n]\)\)*["][;]' kernel/bpf/preload/iterators/iterators.skel.h + accept '[ ][*][ ]@file_offset:[ ]file[ ]offset[ ]to[ ]request[ ]when[ ]calling[ ]request_firmware_into_buf' lib/test_firmware.c + accept '[ ][*][ ]@partial:[ ]partial[ ]read[ ]opt[ ]when[ ]calling[ ]request_firmware_into_buf' lib/test_firmware.c + accept '[\t]*req->rc[ ]=[ ]request_\(partial_\|\)firmware_into_buf[\n][\t]*[(][&]req->fw[,][\n][\t]*[ ]req->name' lib/test_firmware.c + blobname 'qcom[/]sc7180-trogdor[/]modem[/]\(mba\|qdsp6sw\)\.mbn' arch/arm64/boot/dts/qcom/sc7180-trogdor-lte-sku.dtsi + blobname 'qcom[/]sc7180-trogdor[/]modem-nolte[/]\(mba\|qdsp6sw\)\.mbn' arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi + blobname 'qcom[/]sdm845[/][ac]dsp\.mdt' arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts + blobname 'qcom[/]sdm845[/]mba\.mbn' arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts + blobname 'qcom[/]sdm845[/]modem\.mdt' arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts + accept '[ ][*][ ]request_partial_firmware_into_buf[(][)][ ]-[ ]load' drivers/base/firmware_loader/main.c + accept '[ ][*][ ]This[ ]function[ ]works[ ]pretty[ ]much[ ]like[ ]request_firmware_into_buf[ ]except' drivers/base/firmware_loader/main.c + accept 'request_partial_firmware_into_buf[(]const[ ]struct[ ]firmware' drivers/base/firmware_loader/main.c + accept 'EXPORT_SYMBOL[(]request_partial_firmware_into_buf[)]' drivers/base/firmware_loader/main.c + accept '\(static[ ]inline[ ]\)\?int[ ]request_partial_firmware_into_buf\([(]const[ ]struct[ ]firmware\|[\n]\)' include/linux/firmware.h + accept '[\t]retval0[ ]=[ ]report_missing_free_firmware[^\n]*[\n][\t]retval[ ]=[ ]request_partial_firmware_into_buf[(][&]xfw[,][ ]NONFREE_FIRMWARE' include/linux/firmware.h + accept '[\t]if[ ][(]is_nonfree_firmware[^\n]*[\n][\t][\t]return[ ]reject_partial_firmware_into_buf[^\n]*[\n][\t]else[\n][\t][\t]return[ ]request_partial_firmware_into_buf[(]firmware_p[,][ ]name[,]' include/linux/firmware.h + accept 'test_request_partial_firmware_into_buf\(_nofile\)\?\([(][)]\|[ ][0-9]\)' tools/testing/selftests/firmware/fw_filesystem.sh + accept '[\t]echo[ ]-n[ ]["]Test[ ]request_partial_firmware_into_buf[(][)]' tools/testing/selftests/firmware/fw_filesystem.sh + blobname 'amdgpu[/]green_sardine_vcn\.bin' drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c + blobname 'amdgpu[/]green_sardine_dmcub\.bin' drivers/gpu/drm/amd/amdgpu/amdgpu_dm.c + blobname 'cadence[/]mhdp8546\.bin' drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.h + blobname 'i915[/]rkl_dmc_ver2_02\.bin' drivers/gpu/drm/i915/display/intel_csr.c + blobname 'i915[/]tgl_dmc_ver2_08\.bin' drivers/gpu/drm/i915/intel_csr.c + blobname 'mrvl[/]prestera[/]mvsw_prestera_fw-v%u\.%u\.img' drivers/net/ethernet/marvell/prestera/prestera_pci.c + # The firmware file name is supplied by the user. + accept '[\t]err[ ]=[ ]request_firmware_direct[(][&]fw[,][ ]params->file_name' drivers/net/ethernet/huawei/hinic/hinic_devlink.c + accept '[\t]err[ ]=[ ]request_firmware[(][&]fw[,][ ]params->file_name[,][ ]dev[)]' drivers/net/ethernet/intel/ice/ice_devlink.c + accept '[\t]err[ ]=[ ]request_firmware_direct[(][&]fw[,][ ]params->file_name' drivers/net/ethernet/mellanox/mlx5/core/devlink.c + accept '[\t]err[ ]=[ ]request_firmware[(][&]fw[,][ ]fw_name[,][ ]ionic->dev[)]' drivers/net/ethernet/pensando/ionic/ionic_fw.c + accept '[\t]err[ ]=[ ]request_firmware_direct[(][&]firmware[,][ ]params->file_name' drivers/net/ethernet/mellanox/mlxsw/spectrum.c + blobname 'intel[/]ibt-%u-%u-%u\.sfi' drivers/bluetooth/hci_intel.c + blobname '[^ ]*[:][/][/][^ ]*linux-can[/]can-firmware' drivers/net/can/softing/Kconfig + blobna 'which[ ]you[ ]can[ ]get[ ]at[\n][ ][ ][ ]http[^\n]*[/]linux-can[/][\n][^-]*firmware[ ]version[^\n]*' drivers/net/can/softing/Kconfig + defsnc 'static[ ]const[ ]unsigned[ ]int[ ]ca0113_mmio_init_\(address\|data\)_ae5\[\][ ]=' sound/pci/hda/patch_ca0132.c + blobname 'qcom[/]LENOVO[/]81F1[/]qcdsp\(1v\)\?28998.mbn' arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dts + blobname 'qcom[/]sdm845[/]a630_zap\.mbn' arch/arm64/boot/dts/qcom/'sdm845-\(db845c\|mtp\|xiaomi-beryllium\)\.dts' + blobname 'qcom[/]LENOVO[/]81JL[/]qc\([ac]dsp\|dsp\(1v\)\?2\)850\.mbn' arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts + blobname 'qcom[/]LENOVO[/]81JL[/]qcdxkmsuc850\.mbn' 'Documentation/devicetree/bindings/display/msm/gpu.txt\|arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts' + blobname 'qcom[/]sm8250[/]\([ac]dsp\|slpi\).mbn' arch/arm64/boot/dts/qcom/sm8250-mtp.dts + ;; */*freedo*.patch | */*logo*.patch) @@ -5915,6 +6115,7 @@ set_except () { # We leave out the initial and final letters of request_firmware so # that deblobbing turns them into r/*DEBLOBBED*/e, a syntax error. blobna 'equest_firmwar' + blobna 'equest_partial_firmwar' blobna 'equest_ihex_firmwar' blobna 'irmware_reques' # catch _nowarn; also caches _cache, but that's ok. # Catch request_firmare misdeblobbed by the above. @@ -5925,10 +6126,10 @@ set_except () { blobna 'DEFAULT_FIRMWARE' blobna '\([.]\|->\)firmware[ \n]*=[^=]' blobna 'mod_firmware_load' # sound/ - blobname '[.]\(\(fw\|bin\)[0-9]*\|hex\|frm\|co[dx]\|dat\|elf\|xlx\|rfb\|ucode\|img\|sbcf\|ctx\(prog\|vals\)\|z77\|wfw\|inp\|dlmem\|cld\|tftf\|out\|nffw\|mdt\|mfa2\?\|ri\|tplg\|itb\|cyacd\)[\\]\?["]' + blobname '[.]\(\(fw\|bin\)[0-9]*\|hex\|frm\|co[dx]\|dat\|elf\|xlx\|rfb\|ucode\|img\|sbcf\|ctx\(prog\|vals\)\|z77\|wfw\|inp\|dlmem\|cld\|tftf\|out\|nffw\|mdt\|mfa2\?\|ri\|tplg\|itb\|cyacd\|mbn\|tlv\|sfi\)[\\]\?["]' # WIP ends with [\\]\?[][}{)(><,;:.!?% \t\n"`\'"'"']' # Catch misdeblobbed fw extension. - blobname '["][^" \t\n]*[/][*][(]DEBLOBBED[)][*][/][^"\\]' + blobname '["]\([^" \t\n/]*[/][/]*\)*[*][(]DEBLOBBED[)][*][/][^"\\]' # Ideally we'd whitelist URLs that don't recommend non-Free # Software, but there are just too many URLs in Linux, and most are # fine, so we just blacklist when we find undesirable URLs. @@ -5975,7 +6176,7 @@ asmcomment="\\($comment\\|[;#][^\\n]*[\\n]\\)" # Regular expression that matches a braced initializer containing at # least one blob. -initblob="[^\\n=]*=\\([ \\n\\\\]\\|$comment\\)*[{]\\([^;]\\|$comment\\)*$blobseq\\([^;]\\|$comment\\)*[}]\\?\\([ \\n\\\\]*\\|$comment\\)[;]\\?" +initblob="[^\\n=]*=\\([ \\n\\\\]\\|$comment\\)*[{]\\([^;/]\\|[/][^/*]\\|$comment\\)*$blobseq\\([^;/]\\|[/][^/*]\\|$comment\\)*[}]\\?\\([ \\n\\\\]*\\|$comment\\)[;]\\?" # Regular expression that matches a C (possibly multi-line) #define # that contains a blob. @@ -5983,7 +6184,7 @@ defineblob='[ ]*#[ ]*define[ ][^\n]*\([\\][\n][^\n]*\)*'"$blobseq"'\([^\n]*\\ # Regular expression that matches an assembly label followed by a blob # without any intervening label. -asmblob="[a-zA-Z_.][^\\n:;#/ ]*:\\([^:{}]\\|$asmcomment\\)*$blobseq\\([^:]*\\|$asmcomment\\)*" +asmblob="[a-zA-Z_.][^\\n:;#/ ]*:\\([^:{}/]\\|[/][^/*]\\|$asmcomment\\)*$blobseq\\([^:]*\\|$asmcomment\\)*" # Set up the sed script that will go through the (processed) input, # looking for sequences of blobs and printing whatever was requested. @@ -7402,6 +7603,7 @@ BAD regular expression: cat >> $tarwrap <&2; fi && \$echo ";/*begin \$1*/;" && cat && echo &&