|
@@ -31,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)
|
|
@@ -73,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);
|
|
@@ -96,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);
|
|
|
}
|