rk fb: add fbdc data format: HAL_PIXEL_FORMAT_FBDC_RGBA888
authorhjc <hjc@rock-chips.com>
Mon, 9 Mar 2015 07:44:14 +0000 (15:44 +0800)
committerhjc <hjc@rock-chips.com>
Mon, 9 Mar 2015 07:58:18 +0000 (15:58 +0800)
drivers/video/rockchip/rk_fb.c
include/linux/rk_fb.h

index ba1ce33b311ca100b7e4635d1c77ea5c5ca33579..46f43534f1e3d566794cadcae43b3cb7417f7eb1 100755 (executable)
@@ -149,6 +149,7 @@ int rk_fb_pixel_width(int data_format)
        case ABGR888:
        case ARGB888:
        case FBDC_ARGB_888:
+       case FBDC_ABGR_888:
        case FBDC_RGBX_888:
                pixel_width = 4 * 8;
                break;
@@ -225,6 +226,9 @@ static int rk_fb_data_fmt(int data_format, int bits_per_pixel)
                case HAL_PIXEL_FORMAT_FBDC_U8U8U8U8:    /* fbdc argb888 */
                        fb_data_fmt = FBDC_ARGB_888;
                        break;
+               case HAL_PIXEL_FORMAT_FBDC_RGBA888:     /* fbdc abgr888 */
+                       fb_data_fmt = FBDC_ABGR_888;
+                       break;
                case HAL_PIXEL_FORMAT_FBDC_U8U8U8:      /* fbdc rgb888 */
                        fb_data_fmt = FBDC_RGBX_888;
                        break;
@@ -550,6 +554,7 @@ char *get_format_string(enum data_format format, char *fmt)
                strcpy(fmt, "FBDC_RGB_565");
                break;
        case FBDC_ARGB_888:
+       case FBDC_ABGR_888:
                strcpy(fmt, "FBDC_ARGB_888");
                break;
        case FBDC_RGBX_888:
@@ -1929,6 +1934,7 @@ static int rk_fb_set_win_buffer(struct fb_info *info,
 
                ppixel_a |= ((fb_data_fmt == ARGB888) ||
                             (fb_data_fmt == FBDC_ARGB_888) ||
+                            (fb_data_fmt == FBDC_ABGR_888) ||
                             (fb_data_fmt == ABGR888)) ? 1 : 0;
                /* visiable pos in panel */
                reg_win_data->reg_area_data[i].xpos = win_par->area_par[i].xpos;
@@ -2925,6 +2931,7 @@ static int rk_fb_set_par(struct fb_info *info)
        win->alpha_mode = 4;    /* AB_SRC_OVER; */
        win->alpha_en = ((win->area[0].format == ARGB888) ||
                         (win->area[0].format == FBDC_ARGB_888) ||
+                        (win->area[0].format == FBDC_ABGR_888) ||
                         (win->area[0].format == ABGR888)) ? 1 : 0;
        win->g_alpha_val = 0;
 
index 176bafe4b345c45f7825e73341731bf119a93d12..a1acbafbd6edf070c4762ca7deb670c818e00cfc 100755 (executable)
@@ -199,6 +199,7 @@ enum {
        HAL_PIXEL_FORMAT_FBDC_RGB565    = 0x26,
        HAL_PIXEL_FORMAT_FBDC_U8U8U8U8  = 0x27, /*ARGB888*/
        HAL_PIXEL_FORMAT_FBDC_U8U8U8    = 0x28, /*RGBP888*/
+       HAL_PIXEL_FORMAT_FBDC_RGBA888   = 0x29, /*ABGR888*/
 };
 
 //display data format
@@ -219,6 +220,7 @@ enum data_format {
        FBDC_RGB_565 = 0x26,
        FBDC_ARGB_888,
        FBDC_RGBX_888,
+       FBDC_ABGR_888,
 };
 
 enum