Backgroud colour

void fbdev_flush(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t * color_p)
{
if(fbp == NULL ||
area->x2 < 0 ||
area->y2 < 0 ||
area->x1 > (int32_t)vinfo.xres - 1 ||
area->y1 > (int32_t)vinfo.yres - 1) {
lv_disp_flush_ready(drv);
return;
}

/Truncate the area to the screen/
int32_t act_x1 = area->x1 < 0 ? 0 : area->x1;
int32_t act_y1 = area->y1 < 0 ? 0 : area->y1;
int32_t act_x2 = area->x2 > (int32_t)vinfo.xres - 1 ? (int32_t)vinfo.xres - 1 : area->x2;
int32_t act_y2 = area->y2 > (int32_t)vinfo.yres - 1 ? (int32_t)vinfo.yres - 1 : area->y2;

lv_coord_t w = (act_x2 - act_x1 + 1);
long int location = 0;
long int byte_location = 0;
unsigned char bit_location = 0;

/32 or 24 bit per pixel/
if(vinfo.bits_per_pixel == 32 || vinfo.bits_per_pixel == 24) {
uint32_t * fbp32 = (uint32_t *)fbp;
int32_t y;
printf(“color in 32/24bpp =%04X\n”, color_p->full);
for(y = act_y1; y <= act_y2; y++) {
location = (act_x1 + vinfo.xoffset) + (y + vinfo.yoffset) * finfo.line_length / 4;
memcpy(&fbp32[location], (uint32_t *)color_p, (act_x2 - act_x1 + 1) * 4);
color_p += w;
}
}
/16 bit per pixel/
else if(vinfo.bits_per_pixel == 16) {
uint16_t * fbp16 = (uint16_t *)fbp;
int32_t y;
printf(“color in 16bpp =%04X\n”, color_p->full);

for(y = act_y1; y <= act_y2; y++) {
    location = (act_x1 + vinfo.xoffset) + (y + vinfo.yoffset) * finfo.line_length / 2;
    memcpy(&fbp16[location], (uint32_t *)color_p, (act_x2 - act_x1 + 1) * 2);
    color_p += w;


		}
}

/8 bit per pixel/
else if(vinfo.bits_per_pixel == 8) {
uint8_t * fbp8 = (uint8_t *)fbp;
int32_t y;
printf(“color in 8bpp =%04X\n”, color_p->full);

for(y = act_y1; y <= act_y2; y++) {
    location = (act_x1 + vinfo.xoffset) + (y + vinfo.yoffset) * finfo.line_length;
    memcpy(&fbp8[location], (uint32_t *)color_p, (act_x2 - act_x1 + 1));
    color_p += w;
    }
}

/1 bit per pixel/
else if(vinfo.bits_per_pixel == 1) {
uint8_t * fbp8 = (uint8_t *)fbp;
int32_t x;
int32_t y;
printf(“color in 1bpp =%04X\n”, color_p->full);

for(y = act_y1; y <= act_y2; y++) {
    for(x = act_x1; x <= act_x2; x++) {
        location = (x + vinfo.xoffset) + (y + vinfo.yoffset) * vinfo.xres;
        byte_location = location / 8; /* find the byte we need to change */
        bit_location = location % 8; /* inside the byte found, find the bit we need to change */
        fbp8[byte_location] &= ~(((uint8_t)(1)) << bit_location);
        fbp8[byte_location] |= ((uint8_t)(color_p->full)) << bit_location;
        color_p++;
    }

    color_p += area->x2 - act_x2;
		}
} else {
/*Not supported bit per pixel*/
}

//May be some direct update command is required
//ret = ioctl(state->fd, FBIO_UPDATE, (unsigned long)((uintptr_t)rect));

lv_disp_flush_ready(drv);
}

After displaying image on lcd i am getting value of color on terminal like this “color in 16bpp=FFFF” .
So there anything wroung in the driver, how can i correct it if it is there .?

Where is lv_style_scr defined?