#include <linux/vmalloc.h>
#include <crypto/sha.h>
-#include "embedded-firmware.h"
-
-#ifdef CONFIG_TEST_FIRMWARE
-# define EFI_EMBEDDED_FW_VISIBILITY
-#else
-# define EFI_EMBEDDED_FW_VISIBILITY static
-#endif
-
-EFI_EMBEDDED_FW_VISIBILITY LIST_HEAD(efi_embedded_fw_list);
-EFI_EMBEDDED_FW_VISIBILITY bool efi_embedded_fw_checked;
-
/* Exported for use by lib/test_firmware.c only */
-#ifdef CONFIG_TEST_FIRMWARE
+LIST_HEAD(efi_embedded_fw_list);
EXPORT_SYMBOL_GPL(efi_embedded_fw_list);
-EXPORT_SYMBOL_GPL(efi_embedded_fw_checked);
-#endif
+
+static bool checked_for_fw;
static const struct dmi_system_id * const embedded_fw_table[] = {
#ifdef CONFIG_TOUCHSCREEN_DMI
}
}
- efi_embedded_fw_checked = true;
+ checked_for_fw = true;
}
int efi_get_embedded_fw(const char *name, const u8 **data, size_t *size)
{
struct efi_embedded_fw *iter, *fw = NULL;
- if (!efi_embedded_fw_checked) {
+ if (!checked_for_fw) {
pr_warn("Warning %s called while we did not check for embedded fw\n",
__func__);
return -ENOENT;
+++ /dev/null
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _EFI_EMBEDDED_FW_INTERNAL_H_
-#define _EFI_EMBEDDED_FW_INTERNAL_H_
-
-/*
- * This struct and efi_embedded_fw_list are private to the efi-embedded fw
- * implementation they only in separate header for use by lib/test_firmware.c.
- */
-struct efi_embedded_fw {
- struct list_head list;
- const char *name;
- const u8 *data;
- size_t length;
-};
-
-#ifdef CONFIG_TEST_FIRMWARE
-extern struct list_head efi_embedded_fw_list;
-extern bool efi_embedded_fw_checked;
-#endif
-
-#endif /* _EFI_EMBEDDED_FW_INTERNAL_H_ */
#define EFI_EMBEDDED_FW_PREFIX_LEN 8
+/*
+ * This struct and efi_embedded_fw_list are private to the efi-embedded fw
+ * implementation they are in this header for use by lib/test_firmware.c only!
+ */
+struct efi_embedded_fw {
+ struct list_head list;
+ const char *name;
+ const u8 *data;
+ size_t length;
+};
+
+extern struct list_head efi_embedded_fw_list;
+
/**
* struct efi_embedded_fw_desc - This struct is used by the EFI embedded-fw
* code to search for embedded firmwares.
static DEVICE_ATTR_WO(trigger_request);
#ifdef CONFIG_EFI_EMBEDDED_FIRMWARE
-#include "../drivers/firmware/efi/embedded-firmware.h"
static ssize_t trigger_request_platform_store(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t count)
};
struct efi_embedded_fw efi_embedded_fw;
const struct firmware *firmware = NULL;
- bool saved_efi_embedded_fw_checked;
char *name;
int rc;
efi_embedded_fw.data = (void *)test_data;
efi_embedded_fw.length = sizeof(test_data);
list_add(&efi_embedded_fw.list, &efi_embedded_fw_list);
- saved_efi_embedded_fw_checked = efi_embedded_fw_checked;
- efi_embedded_fw_checked = true;
pr_info("loading '%s'\n", name);
rc = firmware_request_platform(&firmware, name, dev);
rc = count;
out:
- efi_embedded_fw_checked = saved_efi_embedded_fw_checked;
release_firmware(firmware);
list_del(&efi_embedded_fw.list);
kfree(name);