blob: 47da952b836950702caf6e30e75385a6ec9efa5b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include <lib.h>
#include <comus/asm.h>
#include <comus/drivers/gpu.h>
#include <comus/drivers/gpu/gop.h>
#include <comus/efi.h>
#include <efi.h>
struct gpu gop_dev = { 0 };
static EFI_GRAPHICS_OUTPUT_PROTOCOL *gop;
int gop_init(struct gpu **gpu_dev)
{
gop = efi_get_gop();
if (gop == NULL || gop->Mode == NULL)
return 1;
gop_dev.name = "GOP";
gop_dev.width = gop->Mode->Info->HorizontalResolution;
gop_dev.height = gop->Mode->Info->VerticalResolution;
gop_dev.bit_depth = 32; // we only allow 8bit color in efi/gop.c
gop_dev.framebuffer = kmapaddr((void *)gop->Mode->FrameBufferBase, NULL,
gop->Mode->FrameBufferSize, F_WRITEABLE);
*gpu_dev = &gop_dev;
return 1;
}
|