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
156 efifb->fb_addr = in efifb_from_gop()
162 efifb->fb_size = mode->FrameBufferSize; in efifb_from_gop()
163 efifb->fb_height = info->VerticalResolution; in efifb_from_gop()
164 efifb->fb_width = info->HorizontalResolution; in efifb_from_gop()
165 efifb->fb_stride = info->PixelsPerScanLine; in efifb_from_gop()
166 result = efifb_mask_from_pixfmt(efifb, info->PixelFormat, in efifb_from_gop()
329 efifb_from_uga(struct efi_fb *efifb) in efifb_from_uga() argument
342 efifb->fb_height = vert; in efifb_from_uga()
343 efifb->fb_width = horiz; in efifb_from_uga()
345 if (efifb->fb_height == 0 || efifb->fb_width == 0) in efifb_from_uga()
349 efifb_mask_from_pixfmt(efifb, PixelBlueGreenRedReserved8BitPerColor, in efifb_from_uga()
356 status = efifb_uga_locate_framebuffer(pciio, &efifb->fb_addr, in efifb_from_uga()
357 &efifb->fb_size); in efifb_from_uga()
359 efifb->fb_addr = 0; in efifb_from_uga()
360 efifb->fb_size = 0; in efifb_from_uga()
397 if (offset >= 0 && efifb->fb_width == horiz && in efifb_from_uga()
398 efifb->fb_height == vert && efifb->fb_addr == fbaddr) { in efifb_from_uga()
399 efifb->fb_addr += offset; in efifb_from_uga()
400 efifb->fb_size -= offset; in efifb_from_uga()
401 efifb->fb_stride = stride; in efifb_from_uga()
413 efifb->fb_stride = efifb->fb_width; in efifb_from_uga()
415 np = efifb->fb_stride & (efifb->fb_stride - 1); in efifb_from_uga()
417 efifb->fb_stride |= (np - 1); in efifb_from_uga()
418 efifb->fb_stride++; in efifb_from_uga()
424 if (efifb->fb_addr == 0) { in efifb_from_uga()
447 offset = efifb_uga_find_pixel(uga, 0, pciio, efifb->fb_addr, in efifb_from_uga()
448 efifb->fb_size >> 8); in efifb_from_uga()
452 efifb->fb_addr += offset; in efifb_from_uga()
453 efifb->fb_size -= offset; in efifb_from_uga()
457 efifb->fb_size = efifb->fb_height * efifb->fb_stride * 4; in efifb_from_uga()
458 efifb->fb_addr = strtoul(ev, &p, 0); in efifb_from_uga()
468 efifb->fb_addr, horiz * 8); in efifb_from_uga()
470 efifb->fb_stride = offset >> 2; in efifb_from_uga()
475 efifb->fb_stride = strtoul(ev, &p, 0); in efifb_from_uga()
484 efifb->fb_size = efifb->fb_height * efifb->fb_stride * 4; in efifb_from_uga()
570 struct efi_fb efifb; in efi_find_framebuffer() local
639 rv = efifb_from_gop(&efifb, gop->Mode, gop->Mode->Info); in efi_find_framebuffer()
643 rv = efifb_from_uga(&efifb); in efi_find_framebuffer()
650 gfx_state->tg_fb.fb_addr = efifb.fb_addr; in efi_find_framebuffer()
651 gfx_state->tg_fb.fb_size = efifb.fb_size; in efi_find_framebuffer()
652 gfx_state->tg_fb.fb_height = efifb.fb_height; in efi_find_framebuffer()
653 gfx_state->tg_fb.fb_width = efifb.fb_width; in efi_find_framebuffer()
654 gfx_state->tg_fb.fb_stride = efifb.fb_stride; in efi_find_framebuffer()
655 gfx_state->tg_fb.fb_mask_red = efifb.fb_mask_red; in efi_find_framebuffer()
656 gfx_state->tg_fb.fb_mask_green = efifb.fb_mask_green; in efi_find_framebuffer()
657 gfx_state->tg_fb.fb_mask_blue = efifb.fb_mask_blue; in efi_find_framebuffer()
658 gfx_state->tg_fb.fb_mask_reserved = efifb.fb_mask_reserved; in efi_find_framebuffer()
660 gfx_state->tg_fb.fb_bpp = fls(efifb.fb_mask_red | efifb.fb_mask_green | in efi_find_framebuffer()
661 efifb.fb_mask_blue | efifb.fb_mask_reserved); in efi_find_framebuffer()
667 EFI_SIZE_TO_PAGES(efifb.fb_height * efifb.fb_width * in efi_find_framebuffer()
678 print_efifb(int mode, struct efi_fb *efifb, int verbose) in print_efifb() argument
684 depth = efifb_color_depth(efifb); in print_efifb()
685 printf("%ux%ux%u, stride=%u", efifb->fb_width, efifb->fb_height, in print_efifb()
686 depth, efifb->fb_stride); in print_efifb()
689 (uintmax_t)efifb->fb_addr, (uintmax_t)efifb->fb_size); in print_efifb()
691 efifb->fb_mask_red, efifb->fb_mask_green, in print_efifb()
692 efifb->fb_mask_blue); in print_efifb()
750 struct efi_fb efifb; in gop_autoresize() local
763 efifb_from_gop(&efifb, gop->Mode, info); in gop_autoresize()
856 struct efi_fb efifb; in command_gop() local
915 efifb_from_gop(&efifb, gop->Mode, gop->Mode->Info); in command_gop()
929 print_efifb(gop->Mode->Mode, &efifb, 1); in command_gop()
943 efifb_from_gop(&efifb, gop->Mode, info); in command_gop()
944 print_efifb(mode, &efifb, 0); in command_gop()
963 struct efi_fb efifb; in command_uga() local
974 if (efifb_from_uga(&efifb) != CMD_OK) { in command_uga()
980 print_efifb(-1, &efifb, 1); in command_uga()