Lines Matching refs:efifb
71 efifb_color_depth(struct efi_fb *efifb) in efifb_color_depth() argument
76 mask = efifb->fb_mask_red | efifb->fb_mask_green | in efifb_color_depth()
77 efifb->fb_mask_blue | efifb->fb_mask_reserved; in efifb_color_depth()
86 efifb_mask_from_pixfmt(struct efi_fb *efifb, EFI_GRAPHICS_PIXEL_FORMAT pixfmt, in efifb_mask_from_pixfmt() argument
95 efifb->fb_mask_red = 0x000000ff; in efifb_mask_from_pixfmt()
96 efifb->fb_mask_green = 0x0000ff00; in efifb_mask_from_pixfmt()
97 efifb->fb_mask_blue = 0x00ff0000; in efifb_mask_from_pixfmt()
98 efifb->fb_mask_reserved = 0xff000000; in efifb_mask_from_pixfmt()
101 efifb->fb_mask_red = 0x00ff0000; in efifb_mask_from_pixfmt()
102 efifb->fb_mask_green = 0x0000ff00; in efifb_mask_from_pixfmt()
103 efifb->fb_mask_blue = 0x000000ff; in efifb_mask_from_pixfmt()
104 efifb->fb_mask_reserved = 0xff000000; in efifb_mask_from_pixfmt()
107 efifb->fb_mask_red = pixinfo->RedMask; in efifb_mask_from_pixfmt()
108 efifb->fb_mask_green = pixinfo->GreenMask; in efifb_mask_from_pixfmt()
109 efifb->fb_mask_blue = pixinfo->BlueMask; in efifb_mask_from_pixfmt()
110 efifb->fb_mask_reserved = pixinfo->ReservedMask; in efifb_mask_from_pixfmt()
120 efifb_from_gop(struct efi_fb *efifb, EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *mode, in efifb_from_gop() argument
125 efifb->fb_addr = mode->FrameBufferBase; in efifb_from_gop()
126 efifb->fb_size = mode->FrameBufferSize; in efifb_from_gop()
127 efifb->fb_height = info->VerticalResolution; in efifb_from_gop()
128 efifb->fb_width = info->HorizontalResolution; in efifb_from_gop()
129 efifb->fb_stride = info->PixelsPerScanLine; in efifb_from_gop()
130 result = efifb_mask_from_pixfmt(efifb, info->PixelFormat, in efifb_from_gop()
132 if (efifb->fb_addr == 0) in efifb_from_gop()
289 efifb_from_uga(struct efi_fb *efifb, EFI_UGA_DRAW_PROTOCOL *uga) in efifb_from_uga() argument
302 efifb->fb_height = vert; in efifb_from_uga()
303 efifb->fb_width = horiz; in efifb_from_uga()
305 if (efifb->fb_height == 0 || efifb->fb_width == 0) in efifb_from_uga()
309 efifb_mask_from_pixfmt(efifb, PixelBlueGreenRedReserved8BitPerColor, in efifb_from_uga()
316 status = efifb_uga_locate_framebuffer(pciio, &efifb->fb_addr, in efifb_from_uga()
317 &efifb->fb_size); in efifb_from_uga()
319 efifb->fb_addr = 0; in efifb_from_uga()
320 efifb->fb_size = 0; in efifb_from_uga()
357 if (offset >= 0 && efifb->fb_width == horiz && in efifb_from_uga()
358 efifb->fb_height == vert && efifb->fb_addr == fbaddr) { in efifb_from_uga()
359 efifb->fb_addr += offset; in efifb_from_uga()
360 efifb->fb_size -= offset; in efifb_from_uga()
361 efifb->fb_stride = stride; in efifb_from_uga()
373 efifb->fb_stride = efifb->fb_width; in efifb_from_uga()
375 np = efifb->fb_stride & (efifb->fb_stride - 1); in efifb_from_uga()
377 efifb->fb_stride |= (np - 1); in efifb_from_uga()
378 efifb->fb_stride++; in efifb_from_uga()
384 if (efifb->fb_addr == 0) { in efifb_from_uga()
407 offset = efifb_uga_find_pixel(uga, 0, pciio, efifb->fb_addr, in efifb_from_uga()
408 efifb->fb_size >> 8); in efifb_from_uga()
412 efifb->fb_addr += offset; in efifb_from_uga()
413 efifb->fb_size -= offset; in efifb_from_uga()
417 efifb->fb_size = efifb->fb_height * efifb->fb_stride * 4; in efifb_from_uga()
418 efifb->fb_addr = strtoul(ev, &p, 0); in efifb_from_uga()
428 efifb->fb_addr, horiz * 8); in efifb_from_uga()
430 efifb->fb_stride = offset >> 2; in efifb_from_uga()
435 efifb->fb_stride = strtoul(ev, &p, 0); in efifb_from_uga()
444 efifb->fb_size = efifb->fb_height * efifb->fb_stride * 4; in efifb_from_uga()
445 if (efifb->fb_addr == 0) in efifb_from_uga()
512 efi_find_framebuffer(struct efi_fb *efifb) in efi_find_framebuffer() argument
522 return (efifb_from_gop(efifb, gop->Mode, gop->Mode->Info)); in efi_find_framebuffer()
569 return (efifb_from_gop(efifb, gop->Mode, gop->Mode->Info)); in efi_find_framebuffer()
573 return (efifb_from_uga(efifb, uga)); in efi_find_framebuffer()
578 return (efifb_from_uga(efifb, uga)); in efi_find_framebuffer()
584 print_efifb(int mode, struct efi_fb *efifb, int verbose) in print_efifb() argument
610 depth = efifb_color_depth(efifb); in print_efifb()
611 printf("%ux%ux%u", efifb->fb_width, efifb->fb_height, depth); in print_efifb()
613 printf(", stride=%u", efifb->fb_stride); in print_efifb()
616 (uintmax_t)efifb->fb_addr, (uintmax_t)efifb->fb_size); in print_efifb()
618 efifb->fb_mask_red, efifb->fb_mask_green, in print_efifb()
619 efifb->fb_mask_blue); in print_efifb()
620 if (efifb->fb_addr == 0) { in print_efifb()
743 extern struct efi_fb efifb; in command_gop()
822 print_efifb(gop->Mode->Mode, &efifb, 1); in command_gop()
875 extern struct efi_fb efifb; in command_uga()
887 if (efifb.fb_addr == 0) { in command_uga()
893 print_efifb(-1, &efifb, 1); in command_uga()