Changes in / [37d0dd4:a977e37] in mainline


Ignore:
Location:
kernel
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/arm32/src/mach/raspberrypi/raspberrypi.c

    r37d0dd4 ra977e37  
    174174{
    175175#ifdef CONFIG_FB
    176         uint32_t width, height;
    177176        fb_properties_t prop;
    178 
    179         if (!bcm2835_mbox_get_fb_size(&width, &height)) {
    180                 printf("mbox: could not get the framebuffer size\n");
    181                 width = 640;
    182                 height = 480;
    183         }
    184         if (bcm2835_fb_init(&prop, width, height)) {
     177        if (bcm2835_fb_init(&prop)) {
    185178                outdev_t *fb_dev = fb_init(&prop);
    186179                if (fb_dev)
  • kernel/genarch/include/genarch/drivers/bcm2835/mbox.h

    r37d0dd4 ra977e37  
    6868
    6969enum {
    70         MBOX_TAG_GET_PHYS_W_H   = 0x00040003,
    71         MBOX_TAG_SET_PHYS_W_H   = 0x00048003,
    72         MBOX_TAG_GET_VIRT_W_H   = 0x00040004,
    73         MBOX_TAG_SET_VIRT_W_G   = 0x00048004
    74 };
    75 
    76 enum {
    7770        MBOX_PROP_CODE_REQ      = 0x00000000,
    7871        MBOX_PROP_CODE_RESP_OK  = 0x80000000,
     
    129122
    130123typedef struct {
    131         mbox_prop_buf_hdr_t     buf_hdr;
    132         mbox_tag_hdr_t          tag_hdr;
    133         struct {
    134                 uint32_t        width;
    135                 uint32_t        height;
    136         } body;
    137         uint32_t zero;
    138 } mbox_getfbsize_buf_t;
    139 
    140 typedef struct {
    141124        ioport32_t width;
    142125        ioport32_t height;
     
    152135
    153136extern bool bcm2835_prop_get_memory(uint32_t *base, uint32_t *size);
    154 extern bool bcm2835_fb_init(fb_properties_t *prop, uint32_t width, uint32_t heigth);
    155 extern bool bcm2835_mbox_get_fb_size(uint32_t *h, uint32_t *w);
     137extern bool bcm2835_fb_init(fb_properties_t *prop);
    156138
    157139#endif
  • kernel/genarch/src/drivers/bcm2835/mbox.c

    r37d0dd4 ra977e37  
    8686}
    8787
    88 bool bcm2835_fb_init(fb_properties_t *prop, uint32_t width, uint32_t height)
     88bool bcm2835_fb_init(fb_properties_t *prop)
    8989{
    9090        bcm2835_mbox_t *fb_mbox;
     
    9595            KM_NATURAL_ALIGNMENT, PAGE_NOT_CACHEABLE);
    9696
    97         fb_desc->width = width;
    98         fb_desc->height = height;
     97        fb_desc->width = 640;
     98        fb_desc->height = 480;
    9999        fb_desc->virt_width = fb_desc->width;
    100100        fb_desc->virt_height = fb_desc->height;
     
    128128}
    129129
    130 bool bcm2835_mbox_get_fb_size(uint32_t *w, uint32_t *h)
    131 {
    132         bool r;
    133         MBOX_BUFF_ALLOC(msg, mbox_getfbsize_buf_t);
    134         bcm2835_mbox_t *mbox;
    135 
    136         mbox = (void *) km_map(BCM2835_MBOX0_ADDR, sizeof(bcm2835_mbox_t),
    137             KM_NATURAL_ALIGNMENT, PAGE_NOT_CACHEABLE);
    138         assert(mbox);
    139 
    140         msg->buf_hdr.size = sizeof(mbox_getfbsize_buf_t);
    141         msg->buf_hdr.code = MBOX_PROP_CODE_REQ;
    142         msg->tag_hdr.tag_id = MBOX_TAG_GET_PHYS_W_H;
    143         msg->tag_hdr.buf_size = sizeof(msg->body);
    144         msg->tag_hdr.val_len  = 0;
    145         msg->zero = 0;
    146 
    147         mbox_write(mbox,
    148             MBOX_CHAN_PROP_A2V, KA2VCA((uint32_t)msg));
    149         mbox_read(mbox, MBOX_CHAN_PROP_A2V);
    150 
    151         r = msg->buf_hdr.code == MBOX_PROP_CODE_RESP_OK;
    152         if (r) {
    153                 *h = msg->body.height;
    154                 *w = msg->body.width;
    155         }
    156 
    157         km_unmap((uintptr_t) mbox, sizeof(bcm2835_mbox_t));
    158         return r;
    159 }
    160 
    161130/**
    162131 * @}
Note: See TracChangeset for help on using the changeset viewer.