Changeset b8b1e631 in mainline for kernel/genarch/src/fb/bfb.c


Ignore:
Timestamp:
2011-12-03T11:10:06Z (12 years ago)
Author:
Frantisek Princ <frantisek.princ@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
30413b31
Parents:
07fd4cd1 (diff), 1f5c9c96 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge with mainline

File:
1 moved

Legend:

Unmodified
Added
Removed
  • kernel/genarch/src/fb/bfb.c

    r07fd4cd1 rb8b1e631  
    2727 */
    2828
    29 /** @addtogroup ia32
     29/** @addtogroup genarch
    3030 * @{
    3131 */
    3232/**
    3333 * @file
    34  * @brief VESA frame buffer driver.
     34 * @brief Boot framebuffer driver.
    3535 */
    3636
    37 #ifdef CONFIG_FB
     37#include <typedefs.h>
     38#include <genarch/fb/fb.h>
     39#include <genarch/fb/bfb.h>
     40#include <console/console.h>
    3841
    39 #include <genarch/fb/fb.h>
    40 #include <arch/drivers/vesa.h>
    41 #include <console/chardev.h>
    42 #include <console/console.h>
    43 #include <putchar.h>
    44 #include <mm/page.h>
    45 #include <mm/frame.h>
    46 #include <mm/as.h>
    47 #include <arch/mm/page.h>
    48 #include <synch/spinlock.h>
    49 #include <arch/asm.h>
    50 #include <typedefs.h>
    51 #include <memstr.h>
    52 #include <bitops.h>
     42uintptr_t bfb_addr = (uintptr_t) -1;
     43uint32_t bfb_width = 0;
     44uint32_t bfb_height = 0;
     45uint16_t bfb_bpp = 0;
     46uint32_t bfb_scanline = 0;
    5347
    54 uint32_t vesa_ph_addr;
    55 uint16_t vesa_width;
    56 uint16_t vesa_height;
    57 uint16_t vesa_bpp;
    58 uint16_t vesa_scanline;
     48uint8_t bfb_red_pos = 0;
     49uint8_t bfb_red_size = 0;
    5950
    60 uint8_t vesa_red_mask;
    61 uint8_t vesa_red_pos;
     51uint8_t bfb_green_pos = 0;
     52uint8_t bfb_green_size = 0;
    6253
    63 uint8_t vesa_green_mask;
    64 uint8_t vesa_green_pos;
     54uint8_t bfb_blue_pos = 0;
     55uint8_t bfb_blue_size = 0;
    6556
    66 uint8_t vesa_blue_mask;
    67 uint8_t vesa_blue_pos;
    68 
    69 bool vesa_init(void)
     57bool bfb_init(void)
    7058{
    71         if ((vesa_width == 0xffffU) || (vesa_height == 0xffffU))
     59        if ((bfb_width == 0) || (bfb_height == 0))
    7260                return false;
    7361       
    74         visual_t visual;
     62        fb_properties_t bfb_props = {
     63                .addr = bfb_addr,
     64                .offset = 0,
     65                .x = bfb_width,
     66                .y = bfb_height,
     67                .scan = bfb_scanline
     68        };
    7569       
    76         switch (vesa_bpp) {
     70        switch (bfb_bpp) {
    7771        case 8:
    78                 visual = VISUAL_INDIRECT_8;
     72                bfb_props.visual = VISUAL_INDIRECT_8;
    7973                break;
    8074        case 16:
    81                 if ((vesa_red_mask == 5) && (vesa_red_pos == 10)
    82                     && (vesa_green_mask == 5) && (vesa_green_pos == 5)
    83                     && (vesa_blue_mask == 5) && (vesa_blue_pos == 0))
    84                         visual = VISUAL_RGB_5_5_5_LE;
     75                if ((bfb_red_pos == 10) && (bfb_red_size == 5) &&
     76                    (bfb_green_pos == 5) && (bfb_green_size == 5) &&
     77                    (bfb_blue_pos == 0) && (bfb_blue_size == 5))
     78                        bfb_props.visual = VISUAL_RGB_5_5_5_LE;
    8579                else
    86                         visual = VISUAL_RGB_5_6_5_LE;
     80                        bfb_props.visual = VISUAL_RGB_5_6_5_LE;
    8781                break;
    8882        case 24:
    89                 visual = VISUAL_BGR_8_8_8;
     83                bfb_props.visual = VISUAL_BGR_8_8_8;
    9084                break;
    9185        case 32:
    92                 visual = VISUAL_BGR_8_8_8_0;
     86                bfb_props.visual = VISUAL_BGR_8_8_8_0;
    9387                break;
    9488        default:
     
    9791        }
    9892       
    99         fb_properties_t vesa_props = {
    100                 .addr = vesa_ph_addr,
    101                 .offset = 0,
    102                 .x = vesa_width,
    103                 .y = vesa_height,
    104                 .scan = vesa_scanline,
    105                 .visual = visual,
    106         };
    107        
    108         outdev_t *fbdev = fb_init(&vesa_props);
     93        outdev_t *fbdev = fb_init(&bfb_props);
    10994        if (!fbdev)
    11095                return false;
     
    11499}
    115100
    116 #endif
    117 
    118101/** @}
    119102 */
Note: See TracChangeset for help on using the changeset viewer.