Update hwc for 10" panel support, get default_mode from bsp configuration and set

This commit is contained in:
August 2018-12-13 00:52:49 +08:00
parent 8e766dba19
commit c7fc432124
3 changed files with 17 additions and 4 deletions

View file

@ -118,8 +118,10 @@ char displayName[5][10] = {
tv_para_t hdmi_support[]= tv_para_t hdmi_support[]=
{ {
/* 1'st is default */ /* 1'st is default */
{DISP_TV_MOD_1080P_60HZ, 1920, 1080, 60, 0}, {DISP_TV_MOD_1024_600P, 1024, 600, 60, 0},
{DISP_TV_MOD_1280_800P, 1280, 800, 60, 0},
{DISP_TV_MOD_720P_60HZ, 1280, 720, 60, 0}, {DISP_TV_MOD_720P_60HZ, 1280, 720, 60, 0},
{DISP_TV_MOD_1080P_60HZ, 1920, 1080, 60, 0},
{DISP_TV_MOD_480I, 720, 480, 60, 0}, {DISP_TV_MOD_480I, 720, 480, 60, 0},
{DISP_TV_MOD_576I, 720, 576, 60, 0}, {DISP_TV_MOD_576I, 720, 576, 60, 0},
@ -1935,16 +1937,19 @@ loop:
ret = ioctl(dispFd, DISP_HDMI_SUPPORT_MODE, arg); ret = ioctl(dispFd, DISP_HDMI_SUPPORT_MODE, arg);
} }
if((ret > 0) || all_support if((ret > 0) || all_support
|| (numbconfig && hdmi_support[i].mode == DISP_TV_MOD_1080P_24HZ_3D_FP)) || (numbconfig && hdmi_support[i].mode == DISP_TV_MOD_1080P_24HZ_3D_FP)) {
hdmi_support[i].support = 1; hdmi_support[i].support = 1;
ALOGE("hdmi_support[%d] resolution support\n", i);
}
else { else {
hdmi_support[i].support = 0; hdmi_support[i].support = 0;
ALOGE("hdmi_support[%d] resolution not support\n", i);
continue; continue;
} }
if (hdmi_support[i].mode == display->default_mode) { if (hdmi_support[i].mode == display->default_mode) {
fix = numbconfig; fix = numbconfig;
ALOGE("hdmi_support[%d] fix resolution\n", i);
} }
numbconfig++; numbconfig++;
} }
@ -2311,7 +2316,6 @@ int displayDeviceInit(Display_t ***display)
hwdisplay = toHwDisplay(disp); hwdisplay = toHwDisplay(disp);
disp->displayOpration = &sunxiDisplayOpr; disp->displayOpration = &sunxiDisplayOpr;
disp->displayId = i; disp->displayId = i;
disp->default_mode = DISP_TV_MOD_1080P_60HZ;
arg[0] = i; arg[0] = i;
arg[1] = (unsigned long)&hwdisplay->type; arg[1] = (unsigned long)&hwdisplay->type;
@ -2321,6 +2325,11 @@ int displayDeviceInit(Display_t ***display)
else else
ALOGE("get [Disp%d] output type is NONE!\n", i); ALOGE("get [Disp%d] output type is NONE!\n", i);
ALOGE("get [Disp%d] output type %d output mode %d \n", i, hwdisplay->type.type, hwdisplay->type.mode);
//bpi, get default mode from bsp
disp->default_mode = hwdisplay->type.mode;
if (hwdisplay->type.type == DISP_OUTPUT_TYPE_LCD) { if (hwdisplay->type.type == DISP_OUTPUT_TYPE_LCD) {
ALOGD("find Permanent display:%d", i); ALOGD("find Permanent display:%d", i);
fixdiplay = i + 1; fixdiplay = i + 1;

View file

@ -1154,6 +1154,8 @@ int hwc_setBlank(int display)
tv_para_t tv_mode[]= tv_para_t tv_mode[]=
{ {
/* 1'st is default */ /* 1'st is default */
{DISP_TV_MOD_1024_600P, 1024, 600, 60, 0},
{DISP_TV_MOD_1280_800P, 1280, 800, 60, 0},
{DISP_TV_MOD_1080P_60HZ, 1920, 1080, 60, 0}, {DISP_TV_MOD_1080P_60HZ, 1920, 1080, 60, 0},
{DISP_TV_MOD_720P_60HZ, 1280, 720, 60, 0}, {DISP_TV_MOD_720P_60HZ, 1280, 720, 60, 0},

View file

@ -212,6 +212,8 @@ enum disp_tv_mode
DISP_TV_MOD_4096_2160P_60HZ = 0x23, DISP_TV_MOD_4096_2160P_60HZ = 0x23,
DISP_TV_MOD_3840_2160P_50HZ = 0x24, DISP_TV_MOD_3840_2160P_50HZ = 0x24,
DISP_TV_MOD_4096_2160P_50HZ = 0x25, DISP_TV_MOD_4096_2160P_50HZ = 0x25,
DISP_TV_MOD_1024_600P = 0x45,
DISP_TV_MOD_1280_800P = 0x46,
/* /*
* vga * vga
* NOTE:macro'value of new solution must between * NOTE:macro'value of new solution must between