Lines Matching refs:efifb
98 efifb_color_depth(struct efi_fb *efifb) in efifb_color_depth() argument
103 mask = efifb->fb_mask_red | efifb->fb_mask_green | in efifb_color_depth()
104 efifb->fb_mask_blue | efifb->fb_mask_reserved; in efifb_color_depth()
113 efifb_mask_from_pixfmt(struct efi_fb *efifb, EFI_GRAPHICS_PIXEL_FORMAT pixfmt, in efifb_mask_from_pixfmt() argument
122 efifb->fb_mask_red = 0x000000ff; in efifb_mask_from_pixfmt()
123 efifb->fb_mask_green = 0x0000ff00; in efifb_mask_from_pixfmt()
124 efifb->fb_mask_blue = 0x00ff0000; in efifb_mask_from_pixfmt()
125 efifb->fb_mask_reserved = 0xff000000; in efifb_mask_from_pixfmt()
128 efifb->fb_mask_red = 0x00ff0000; in efifb_mask_from_pixfmt()
129 efifb->fb_mask_green = 0x0000ff00; in efifb_mask_from_pixfmt()
130 efifb->fb_mask_blue = 0x000000ff; in efifb_mask_from_pixfmt()
131 efifb->fb_mask_reserved = 0xff000000; in efifb_mask_from_pixfmt()
134 efifb->fb_mask_red = pixinfo->RedMask; in efifb_mask_from_pixfmt()
135 efifb->fb_mask_green = pixinfo->GreenMask; in efifb_mask_from_pixfmt()
136 efifb->fb_mask_blue = pixinfo->BlueMask; in efifb_mask_from_pixfmt()
137 efifb->fb_mask_reserved = pixinfo->ReservedMask; in efifb_mask_from_pixfmt()
147 efifb_from_gop(struct efi_fb *efifb, EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *mode, in efifb_from_gop() argument
152 efifb->fb_addr = mode->FrameBufferBase; in efifb_from_gop()
153 efifb->fb_size = mode->FrameBufferSize; in efifb_from_gop()
154 efifb->fb_height = info->VerticalResolution; in efifb_from_gop()
155 efifb->fb_width = info->HorizontalResolution; in efifb_from_gop()
156 efifb->fb_stride = info->PixelsPerScanLine; in efifb_from_gop()
157 result = efifb_mask_from_pixfmt(efifb, info->PixelFormat, in efifb_from_gop()
320 efifb_from_uga(struct efi_fb *efifb) in efifb_from_uga() argument
333 efifb->fb_height = vert; in efifb_from_uga()
334 efifb->fb_width = horiz; in efifb_from_uga()
336 if (efifb->fb_height == 0 || efifb->fb_width == 0) in efifb_from_uga()
340 efifb_mask_from_pixfmt(efifb, PixelBlueGreenRedReserved8BitPerColor, in efifb_from_uga()
347 status = efifb_uga_locate_framebuffer(pciio, &efifb->fb_addr, in efifb_from_uga()
348 &efifb->fb_size); in efifb_from_uga()
350 efifb->fb_addr = 0; in efifb_from_uga()
351 efifb->fb_size = 0; in efifb_from_uga()
388 if (offset >= 0 && efifb->fb_width == horiz && in efifb_from_uga()
389 efifb->fb_height == vert && efifb->fb_addr == fbaddr) { in efifb_from_uga()
390 efifb->fb_addr += offset; in efifb_from_uga()
391 efifb->fb_size -= offset; in efifb_from_uga()
392 efifb->fb_stride = stride; in efifb_from_uga()
404 efifb->fb_stride = efifb->fb_width; in efifb_from_uga()
406 np = efifb->fb_stride & (efifb->fb_stride - 1); in efifb_from_uga()
408 efifb->fb_stride |= (np - 1); in efifb_from_uga()
409 efifb->fb_stride++; in efifb_from_uga()
415 if (efifb->fb_addr == 0) { in efifb_from_uga()
438 offset = efifb_uga_find_pixel(uga, 0, pciio, efifb->fb_addr, in efifb_from_uga()
439 efifb->fb_size >> 8); in efifb_from_uga()
443 efifb->fb_addr += offset; in efifb_from_uga()
444 efifb->fb_size -= offset; in efifb_from_uga()
448 efifb->fb_size = efifb->fb_height * efifb->fb_stride * 4; in efifb_from_uga()
449 efifb->fb_addr = strtoul(ev, &p, 0); in efifb_from_uga()
459 efifb->fb_addr, horiz * 8); in efifb_from_uga()
461 efifb->fb_stride = offset >> 2; in efifb_from_uga()
466 efifb->fb_stride = strtoul(ev, &p, 0); in efifb_from_uga()
475 efifb->fb_size = efifb->fb_height * efifb->fb_stride * 4; in efifb_from_uga()
560 struct efi_fb efifb; in efi_find_framebuffer() local
629 rv = efifb_from_gop(&efifb, gop->Mode, gop->Mode->Info); in efi_find_framebuffer()
633 rv = efifb_from_uga(&efifb); in efi_find_framebuffer()
640 gfx_state->tg_fb.fb_addr = efifb.fb_addr; in efi_find_framebuffer()
641 gfx_state->tg_fb.fb_size = efifb.fb_size; in efi_find_framebuffer()
642 gfx_state->tg_fb.fb_height = efifb.fb_height; in efi_find_framebuffer()
643 gfx_state->tg_fb.fb_width = efifb.fb_width; in efi_find_framebuffer()
644 gfx_state->tg_fb.fb_stride = efifb.fb_stride; in efi_find_framebuffer()
645 gfx_state->tg_fb.fb_mask_red = efifb.fb_mask_red; in efi_find_framebuffer()
646 gfx_state->tg_fb.fb_mask_green = efifb.fb_mask_green; in efi_find_framebuffer()
647 gfx_state->tg_fb.fb_mask_blue = efifb.fb_mask_blue; in efi_find_framebuffer()
648 gfx_state->tg_fb.fb_mask_reserved = efifb.fb_mask_reserved; in efi_find_framebuffer()
650 gfx_state->tg_fb.fb_bpp = fls(efifb.fb_mask_red | efifb.fb_mask_green | in efi_find_framebuffer()
651 efifb.fb_mask_blue | efifb.fb_mask_reserved); in efi_find_framebuffer()
657 EFI_SIZE_TO_PAGES(efifb.fb_height * efifb.fb_width * in efi_find_framebuffer()
669 print_efifb(int mode, struct efi_fb *efifb, int verbose) in print_efifb() argument
675 depth = efifb_color_depth(efifb); in print_efifb()
676 printf("%ux%ux%u, stride=%u", efifb->fb_width, efifb->fb_height, in print_efifb()
677 depth, efifb->fb_stride); in print_efifb()
680 (uintmax_t)efifb->fb_addr, (uintmax_t)efifb->fb_size); in print_efifb()
682 efifb->fb_mask_red, efifb->fb_mask_green, in print_efifb()
683 efifb->fb_mask_blue); in print_efifb()
741 struct efi_fb efifb; in gop_autoresize() local
754 efifb_from_gop(&efifb, gop->Mode, info); in gop_autoresize()
847 struct efi_fb efifb; in command_gop() local
886 efifb_from_gop(&efifb, gop->Mode, gop->Mode->Info); in command_gop()
900 print_efifb(gop->Mode->Mode, &efifb, 1); in command_gop()
914 efifb_from_gop(&efifb, gop->Mode, info); in command_gop()
915 print_efifb(mode, &efifb, 0); in command_gop()
934 struct efi_fb efifb; in command_uga() local
945 if (efifb_from_uga(&efifb) != CMD_OK) { in command_uga()
951 print_efifb(-1, &efifb, 1); in command_uga()