|
@@ -10,6 +10,9 @@
|
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
|
* published by the Free Software Foundation.
|
|
|
*/
|
|
|
+
|
|
|
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
|
|
+
|
|
|
#include <linux/kernel.h>
|
|
|
#include <linux/init.h>
|
|
|
#include <linux/acpi.h>
|
|
@@ -28,8 +31,7 @@ struct bmp_header {
|
|
|
void __init efi_bgrt_init(void)
|
|
|
{
|
|
|
acpi_status status;
|
|
|
- void __iomem *image;
|
|
|
- bool ioremapped = false;
|
|
|
+ void *image;
|
|
|
struct bmp_header bmp_header;
|
|
|
|
|
|
if (acpi_disabled)
|
|
@@ -70,20 +72,14 @@ void __init efi_bgrt_init(void)
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- image = efi_lookup_mapped_addr(bgrt_tab->image_address);
|
|
|
+ image = early_memremap(bgrt_tab->image_address, sizeof(bmp_header));
|
|
|
if (!image) {
|
|
|
- image = early_ioremap(bgrt_tab->image_address,
|
|
|
- sizeof(bmp_header));
|
|
|
- ioremapped = true;
|
|
|
- if (!image) {
|
|
|
- pr_err("Ignoring BGRT: failed to map image header memory\n");
|
|
|
- return;
|
|
|
- }
|
|
|
+ pr_err("Ignoring BGRT: failed to map image header memory\n");
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
- memcpy_fromio(&bmp_header, image, sizeof(bmp_header));
|
|
|
- if (ioremapped)
|
|
|
- early_iounmap(image, sizeof(bmp_header));
|
|
|
+ memcpy(&bmp_header, image, sizeof(bmp_header));
|
|
|
+ early_memunmap(image, sizeof(bmp_header));
|
|
|
bgrt_image_size = bmp_header.size;
|
|
|
|
|
|
bgrt_image = kmalloc(bgrt_image_size, GFP_KERNEL | __GFP_NOWARN);
|
|
@@ -93,18 +89,14 @@ void __init efi_bgrt_init(void)
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (ioremapped) {
|
|
|
- image = early_ioremap(bgrt_tab->image_address,
|
|
|
- bmp_header.size);
|
|
|
- if (!image) {
|
|
|
- pr_err("Ignoring BGRT: failed to map image memory\n");
|
|
|
- kfree(bgrt_image);
|
|
|
- bgrt_image = NULL;
|
|
|
- return;
|
|
|
- }
|
|
|
+ image = early_memremap(bgrt_tab->image_address, bmp_header.size);
|
|
|
+ if (!image) {
|
|
|
+ pr_err("Ignoring BGRT: failed to map image memory\n");
|
|
|
+ kfree(bgrt_image);
|
|
|
+ bgrt_image = NULL;
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
- memcpy_fromio(bgrt_image, image, bgrt_image_size);
|
|
|
- if (ioremapped)
|
|
|
- early_iounmap(image, bmp_header.size);
|
|
|
+ memcpy(bgrt_image, image, bgrt_image_size);
|
|
|
+ early_memunmap(image, bmp_header.size);
|
|
|
}
|