Commit Graph

4082 Commits

Author SHA1 Message Date
Emil Velikov
515022675f make: separate installation and de-duplication targets
For better or worse some distributions cannot have the firmware
de-duplication happen automatically.

In addition, when it was introduced it changed the default behaviour
leaving people with no firmware in their systems.

Revert to the original behaviour: in the worst case, people will have a
few MB extra of duplicate firmware, yet their systems will continue to
work.

To make things stand out, we print a message at the end of install so
that everyone can opt-in as needed.

In addition, I've went ahead and opened tentative MR/PR with Alpine,
Arch, CentOS Stream, Debian, Gentoo, informing them of this change.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-16 15:52:59 +00:00
Emil Velikov
8c232721a5 check_whence.py: check the permissions
A handful of in-tree scripts must have the execute bit, as well as all
directories. Everything else should not.

In the past we had multiple commits adding and removing execute bit(s),
so instead we can check before things get in-tree.

With all the firmware files updated to drop the bit (as of last commit),
we can add some tests to enforce it going forward.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-16 15:52:59 +00:00
Emil Velikov
5ddb886bef Remove execute bit from firmware files
AFAICT neither of the firmware files need to be executable, so drop the
execute bit.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-16 15:52:59 +00:00
Emil Velikov
d2fd241fe0 configure: remove unused file
Remove the dummy and unused configure file. Glancing across distributions (Alpine, Arch,
Fedora, CentOS Stream, Gentoo, Debian, Ubuntu) - they don't use it.

It's not mentioned in our README either, so let's just remove it.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-16 15:52:59 +00:00
Mario Limonciello
a296fe324c Merge branch 'robot/patch-0-1729044406' into 'main'
robot/patch-0-1729044406

See merge request kernel-firmware/linux-firmware!332
2024-10-16 02:08:41 +00:00
ChunHao Lin
2af74771a7 rtl_nic: add firmware rtl8125d-1
This adds firmware rtl8125d-1 for RTL8125d rev.a.

Signed-off-by: ChunHao Lin <hau@realtek.com>
2024-10-15 21:06:46 -05:00
Mario Limonciello
4e420ebb4c Merge branch 'robot/pr-0-1728931123' into 'main'
robot/pr-0-1728931123

See merge request kernel-firmware/linux-firmware!329
2024-10-14 18:52:25 +00:00
Miri Korenblit
99f9c7ed1f iwlwifi: add gl/Bz FW for core91-69 release
Add the -94 ucode firmware and update the pnvm binary
for gl/bz device.

Build number: Core_manual_signed_core91-69
Revision: 67ce4588 (gl, bz)

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
2024-10-14 18:50:36 +00:00
Miri Korenblit
b67630c6ff iwlwifi: update ty/So/Ma firmwares for core91-69 release
Update -89.ucode firmwares for ty/So/Ma devices,
and update the PNVM files.

Build number: Core_manual_signed_core91-69
Revision: 6b44fa0b (ty, so, ma)

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
2024-10-14 18:50:36 +00:00
Miri Korenblit
d032dfb87e iwlwifi: update cc/Qu/QuZ firmwares for core91-69 release
Update -77.ucode firmwares for cc/Qu/QuZ devices.

Build number: Core_manual_signed_core91-69
Revision: 85be44d3 (Qu, QuZ, cc)

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
2024-10-14 18:50:36 +00:00
Josh Boyer
ee280db081 Merge branch 'wcn785x' into 'main'
QCA: Add Bluetooth firmwares for WCN785x with UART transport

See merge request kernel-firmware/linux-firmware!328
2024-10-14 17:13:47 +00:00
Josh Boyer
caa18c766a Merge https://github.com/zijun-hu/qca_btfw into wcn785x
Signed-off-by: Josh Boyer <jwboyer@kernel.org>
2024-10-14 13:10:31 -04:00
Mario Limonciello
3f28e83b72 Merge branch 'robot/pr-0-1728920002' into 'main'
robot/pr-0-1728920002

See merge request kernel-firmware/linux-firmware!327
2024-10-14 15:38:04 +00:00
Simon Trimmer
879bd9ae0b cirrus: cs35l56: Add firmware for Cirrus CS35L56 for a Lenovo Laptop
This patch adds the firmware files for the Cirrus CS35L56 smart
amplifier used in a Lenovo laptop.

- 17aa380e

Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com>
2024-10-14 15:22:54 +00:00
Simon Trimmer
ec61c8a2c7 cirrus: cs35l56: Add firmware for Cirrus CS35L56 for some ASUS laptops
This patch adds the firmware files for the Cirrus CS35L56 smart
amplifier used in two ASUS laptops.

- 10431e13
- 10431f43

Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com>
2024-10-14 15:22:47 +00:00
Simon Trimmer
6f4db4495a cirrus: cs35l56: Add firmware for Cirrus Amps for some HP laptops
This patch adds the firmware files for the Cirrus CS35L54 and CS35L56
smart amplifiers used in these HP laptops.

- 103c8d85
- 103c8d86
- 103c8d8c
- 103c8d8d
- 103c8d8e
- 103c8d8f
- 103c8d90
- 103c8d91 (two component variants)
- 103c8d92
- 103c8e14
- 103c8e15
- 103c8e16
- 103c8e17
- 103c8e18
- 103c8e19
- 103c8e1a
- 103c8e1b
- 103c8e1c
- 103c8e2c

Signed-off-by: Simon Trimmer <simont@opensource.cirrus.com>
2024-10-14 15:22:40 +00:00
Josh Boyer
1292f4f730 Merge branch 'en8811h' into 'main'
linux-firmware: update firmware for en8811h 2.5G ethernet phy

See merge request kernel-firmware/linux-firmware!326
2024-10-14 14:21:12 +00:00
Lucien.Jheng
d3480463fc linux-firmware: update firmware for en8811h 2.5G ethernet phy
1. Reinitialize the FNPLL clock during MD32 startup.
2. Optimize cable diag
3. Set Co-Clock default enable
4. Enable EMI Calibration Function
5. Enhance AN control mechanism
6. Fix internal bus arbitrator issue

Signed-off-by: Lucien.Jheng <lucien.jheng@airoha.com>
Signed-off-by: Josh Boyer <jwboyer@kernel.org>
2024-10-14 10:03:34 -04:00
Mario Limonciello
06bad2f170 Merge branch 'robot/pr-0-1728664917' into 'main'
robot/pr-0-1728664917

See merge request kernel-firmware/linux-firmware!325
2024-10-11 17:01:39 +00:00
Shayne Chen
808cba847c mtk_wed: add firmware for mt7988 Wireless Ethernet Dispatcher
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
2024-10-12 00:02:10 +08:00
Mario Limonciello
d55315295c Merge branch 'superm1/qci-patches' into 'main'
ath12k: QCN9274 hw2.0: add board-2.bin

See merge request kernel-firmware/linux-firmware!322
2024-10-10 19:11:13 +00:00
Jeff Johnson
34d181d737 ath12k: WCN7850 hw2.0: update board-2.bin
Signed-off-by: Jeff Johnson <jjohnson@qti.qualcomm.com>
2024-10-10 14:06:58 -05:00
Jeff Johnson
a2d650c9cb ath12k: QCN9274 hw2.0: add to WLAN.WBE.1.3.1-00162-QCAHKSWPL_SILICONZ-1
Signed-off-by: Jeff Johnson <jjohnson@qti.qualcomm.com>
2024-10-10 14:06:42 -05:00
Jeff Johnson
2cdc4f42ce ath12k: QCN9274 hw2.0: add board-2.bin
Signed-off-by: Jeff Johnson <jjohnson@qti.qualcomm.com>
2024-10-10 14:06:42 -05:00
Mario Limonciello
c410e4c9fa Merge branch 'pr/misc-fixes' into 'main'
check_whence.py: use consistent naming

See merge request kernel-firmware/linux-firmware!319
2024-10-10 15:40:28 +00:00
Emil Velikov
a89349c33c copy-firmware.sh: rename variables in symlink hanlding
Currently we use f(ile) and d(irectory), over the more common ones t(arget) and
l(ink). Rename things appropriately.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
9ce7dac098 copy-firmware.sh: remove no longer reachable test -L
The check_whence.py script ensures that links defined in WHENCE are not in-tree.
Since we're calling the script, we no longer need the convoluted path and
associated --prune tag.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
25d5e6352b copy-firmware.sh: remove no longer reachable test -f
With previous commit we call check_whence.py, which ensures that all files
listed are available. Drop the now dead code.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
6edd0fd36a copy-firmware.sh: call ./check_whence.py before parsing the file
Currently ./check_whence.py is used when submitting new firmware, while
copy-firmware.sh when the firmware is to be consumed.

Since the latter does (very little) validation, having a malformed WHENCE file
can lead to all sorted of problems. From the obvious, where it errors out, to
more serious one where it overwrites or executes something it should not have.

Just call check_whence.py and error out. It takes 0.2s on my 5 year old
mid-range laptop, so the overhead is negligible.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
32f71d6d45 copy-firmware.sh: warn if the destination folder is not empty
If the user provides an existing non-empty folder (their /usr/lib/firmware/ or otherwise)
there is a high chance we'll silently overwrite existing files. That may or may not be what
they wanted, so throw a warning so highlight that.

v2:
 - use printf instead of echo

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
97d200d75b copy-firmware.sh: add err() helper
v2:
 - use printf instead of echo -e

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
6360b4a1d7 copy-firmware.sh: fix indentation
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
a3446bc1a7 copy-firmware.sh: reset and consistently handle destdir
Currently we don't reset/override the destdir variable, so we end up inheriting
whatever the caller's environment has for it. While it may work, it's not
particularly consistent (be that within the script or other tools) nor is it
obvious.

While in here, ensure we handle the variable with test -z/-n instead of varying
other constructs.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
e8f8537768 Revert "copy-firmware: Support additional compressor options"
This reverts commit 2bad80e7ed.

The commit effectively added accidental command injection, while it was aiming
to control the compression flags.

In practise you'd want to use ZSTD_CLEVEL and ZSTD_NBTHREADS for zstd. As
documented in zstd(1) it allows for up-to level 19, which is fine since the
kernel does not support higher levels.

Arch, Alpine and likely other distributions have been using this approach
since day one.

The other compressors like xz have equivalent.

Cc: Juerg Haefliger <juerg.haefliger@canonical.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
ee8c336ab3 copy-firmware.sh: flesh out and fix dedup-firmware.sh
Flesh out the de-duplication logic in separate script. The copy-firmware.sh is
already complex enough and de-duplication doesn't really fit in there.

In the process we migrate away from the open-coded `ln --relative`. We also
avoid touching symlinks, which are not created by rdfind. Otherwise we end up
"fixing" the folder to folder symlinks (created earlier in the process) and
things explode.

As result we also get a few bonuses:
 - the COPYOPTS shell injection is gone - the variable was never used
 - people can dedup as separate step if/when they choose to do so

Aside: based on the noise in git log and around distros ... I'm wondering if
having the de-duplication as opt-in, would have been better. Is it too late to
change or the ship has sailed?

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
cc4c1fccb0 Style update yaml files
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
a924bda835 editorconfig: add initial config file
It's a simple format handled by practically every supported platform or program
out there.

Add an initial configuration file, so we reduce the style variation of the files
in-tree.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
737e6f37c0 check_whence.py: annotate replacement strings as raw
Otherwise python 3.12 throws warnings like below:

.../check_whence.py:40: SyntaxWarning: invalid escape sequence '\ '
  yield match.group(1).replace("\ ", " ").replace('"', "")

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
1dbbc8fb82 check_whence.py: LC_ALL=C sort -u the filelist
Sort the file list, so it's easier to manage.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
8a507494f3 check_whence.py: ban link-to-a-link
Using link-to-a-link reduces legibility and changes to the root link,
also changes the leafs. Where the latter may be undesired and in some
cases just wrong.

We have a couple of instances in-tree, so fix them up and ban the
combination.

One particularly good example, why we'd want this is:
https://gitlab.com/kernel-firmware/linux-firmware/-/merge_requests/272

In there we have the following:

    File: ti/tas2781/TAS2XXX1EB30.bin
    [snip]
    Link: TAS2XXX1EB3.bin -> ti/tas2781/TAS2XXX1EB3.bin
    Link: ti/tas2781/TAS2XXX1EB3.bin -> TAS2XXX1EB30.bin
    Link: TAS2XXX1EB30.bin -> ti/tas2781/TAS2XXX1EB30.bin

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Emil Velikov
981b1ab776 check_whence.py: use consistent naming
Namely: file(name) and sym(link) ... which were swapped in a few places.
One of which by yours truly 🤦

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2024-10-10 14:33:32 +00:00
Mario Limonciello
0bba37fade Merge branch 'superm1/missing-suggestion' into 'main'
Add a link from TAS2XXX1EB3.bin -> ti/tas2781/TAS2XXX1EB30.bin

See merge request kernel-firmware/linux-firmware!318
2024-10-10 14:13:18 +00:00
Mario Limonciello
e1bd5010f8 Add a link from TAS2XXX1EB3.bin -> ti/tas2781/TAS2XXX1EB30.bin
This allows compatibility with old and new TAS drivers.

Suggested-by: Antheas Kapenekakis <lkml@antheas.dev>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
2024-10-10 09:10:50 -05:00
Mario Limonciello
7a8418ddbf Merge branch 'superm1/add-ti-fw' into 'main'
tas2781: Upload dsp firmware for ASUS laptop 1EB30 & 1EB31

See merge request kernel-firmware/linux-firmware!317
2024-10-10 13:38:29 +00:00
Shenghao Ding
4cbaca8d27 tas2781: Upload dsp firmware for ASUS laptop 1EB30 & 1EB31
Signed-off-by: Shenghao Ding <shenghao-ding@ti.com>
[superm1: Squash and rebase]
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
2024-10-10 08:33:27 -05:00
Mario Limonciello
c01656f9d5 Merge branch 'robot/pr-18-1728530109' into 'main'
robot/pr-18-1728530109

See merge request kernel-firmware/linux-firmware!314
2024-10-10 03:19:45 +00:00
Bitterblue Smith
d4e688aa74 rtlwifi: Add firmware v39.0 for RTL8192DU
The new rtl8192du driver will support this chip.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
2024-10-10 03:18:01 +00:00
Mario Limonciello
f8dcb9a2bc Merge branch 'superm1/revert-82318c96' into 'main'
Revert "ath12k: WCN7850 hw2.0: update board-2.bin"

See merge request kernel-firmware/linux-firmware!310
2024-10-10 02:19:09 +00:00
Mario Limonciello
964ba5bf0e Revert "ath12k: WCN7850 hw2.0: update board-2.bin"
This reverts commit 82318c966f.

This has caused regressions for a number of users and will be
fixed by a future firmware from Qualcomm.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=219282
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
2024-10-09 21:15:59 -05:00
Zijun Hu
2a8ffa3656 QCA: Add Bluetooth firmwares for WCN785x with UART transport
Add below required Bluetooth firmware files for Qualcomm SoC WCN785x
which uses UART as HCI transport, and the firmware version is 2.0.1-00349.

qca/hmtbtfw20.tlv : RAMPATCH
qca/hmtnv20.b10f  : NVM
qca/hmtnv20.b112  : NVM
qca/hmtnv20.bin   : NVM

Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
2024-10-09 16:01:30 +08:00