1
0
Fork 0
guix-channel/linux-libre-btintel-load-firmware.patch

92 lines
3.3 KiB
Diff

diff '--color=auto' -ru a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
--- a/drivers/bluetooth/btintel.c 1970-01-01 01:00:01.000000000 +0100
+++ b/drivers/bluetooth/btintel.c 2025-03-18 22:09:18.399493225 +0000
@@ -368,7 +368,7 @@
const u8 *fw_ptr;
int err;
- err = reject_firmware_direct(&fw, ddc_name, &hdev->dev);
+ err = request_firmware_direct(&fw, ddc_name, &hdev->dev);
if (err < 0) {
bt_dev_err(hdev, "Failed to load Intel DDC file %s (%d)",
ddc_name, err);
@@ -1504,12 +1504,12 @@
int ret;
snprintf(fwname, sizeof(fwname),
- "/*(DEBLOBBED)*/",
+ "intel/ibt-hw-%x.%x.%x-fw-%x.%x.%x.%x.%x.bseq",
ver->hw_platform, ver->hw_variant, ver->hw_revision,
ver->fw_variant, ver->fw_revision, ver->fw_build_num,
ver->fw_build_ww, ver->fw_build_yy);
- ret = reject_firmware(&fw, fwname, &hdev->dev);
+ ret = request_firmware(&fw, fwname, &hdev->dev);
if (ret < 0) {
if (ret == -EINVAL) {
bt_dev_err(hdev, "Intel firmware file request failed (%d)",
@@ -1523,9 +1523,9 @@
/* If the correct firmware patch file is not found, use the
* default firmware patch file instead
*/
- snprintf(fwname, sizeof(fwname), "/*(DEBLOBBED)*/",
+ snprintf(fwname, sizeof(fwname), "intel/ibt-hw-%x.%x.bseq",
ver->hw_platform, ver->hw_variant);
- if (reject_firmware(&fw, fwname, &hdev->dev) < 0) {
+ if (request_firmware(&fw, fwname, &hdev->dev) < 0) {
bt_dev_err(hdev, "failed to open default fw file: %s",
fwname);
return NULL;
@@ -2057,7 +2057,7 @@
return -EINVAL;
}
- err = firmware_reject_nowarn(&fw, fwname, &hdev->dev);
+ err = firmware_request_nowarn(&fw, fwname, &hdev->dev);
if (err < 0) {
if (!btintel_test_flag(hdev, INTEL_BOOTLOADER)) {
/* Firmware has already been loaded */
@@ -2306,7 +2306,7 @@
btintel_get_fw_name_tlv(ver, fwname, sizeof(fwname), "sfi");
}
- err = firmware_reject_nowarn(&fw, fwname, &hdev->dev);
+ err = firmware_request_nowarn(&fw, fwname, &hdev->dev);
if (err < 0) {
if (!btintel_test_flag(hdev, INTEL_BOOTLOADER)) {
/* Firmware has already been loaded */
@@ -3455,4 +3455,7 @@
MODULE_DESCRIPTION("Bluetooth support for Intel devices ver " VERSION);
MODULE_VERSION(VERSION);
MODULE_LICENSE("GPL");
-/*(DEBLOBBED)*/
+MODULE_FIRMWARE("intel/ibt-11-5.sfi");
+MODULE_FIRMWARE("intel/ibt-11-5.ddc");
+MODULE_FIRMWARE("intel/ibt-12-16.sfi");
+MODULE_FIRMWARE("intel/ibt-12-16.ddc");
diff '--color=auto' -ru a/drivers/bluetooth/hci_intel.c b/drivers/bluetooth/hci_intel.c
--- a/drivers/bluetooth/hci_intel.c 1970-01-01 01:00:01.000000000 +0100
+++ b/drivers/bluetooth/hci_intel.c 2025-03-18 22:09:18.399819415 +0000
@@ -686,11 +686,11 @@
switch (ver.hw_variant) {
case 0x0b: /* SfP */
case 0x0c: /* WsP */
- snprintf(fwname, sizeof(fwname), "/*(DEBLOBBED)*/",
+ snprintf(fwname, sizeof(fwname), "intel/ibt-%u-%u.sfi",
ver.hw_variant, le16_to_cpu(params.dev_revid));
break;
case 0x12: /* ThP */
- snprintf(fwname, sizeof(fwname), "/*(DEBLOBBED)*/",
+ snprintf(fwname, sizeof(fwname), "intel/ibt-%u-%u-%u.sfi",
ver.hw_variant, ver.hw_revision, ver.fw_revision);
break;
default:
@@ -699,7 +699,7 @@
return -EINVAL;
}
- err = reject_firmware(&fw, fwname, &hdev->dev);
+ err = request_firmware(&fw, fwname, &hdev->dev);
if (err < 0) {
bt_dev_err(hdev, "Failed to load Intel firmware file (%d)",
err);