rk3368 lcdc: 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:52:06 +0000 (15:52 +0800)
drivers/video/rockchip/lcdc/rk3368_lcdc.c
drivers/video/rockchip/rk_fb.c
include/linux/rk_fb.h [changed mode: 0644->0755]

index de7173e54587eeafcb34cbfa5261df50343b9b5c..0766541fc9c6523826d112b944669c94bf20e218 100755 (executable)
@@ -2705,6 +2705,12 @@ static int win_0_1_set_par(struct lcdc_device *lcdc_dev,
                        win->fmt_10 = 0;
                        win->area[0].fbdc_fmt_cfg = 0x0c;
                        break;
+               case FBDC_ABGR_888:
+                       fmt_cfg = 0;
+                       swap_rb = 1;
+                       win->fmt_10 = 0;
+                       win->area[0].fbdc_fmt_cfg = 0x0c;
+                       break;
                case FBDC_RGBX_888:
                        fmt_cfg = 0;
                        swap_rb = 0;
index 1384b32299d661137aa4523e644edd1c03e9d1ec..9492ebec765097b4e569683d35884b2e34799717 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;
@@ -551,6 +555,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:
@@ -1934,6 +1939,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;
@@ -2885,6 +2891,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;
 
old mode 100644 (file)
new mode 100755 (executable)
index c0bd7f1..6f3347b
@@ -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