LCM:
MTK平台旋转90度,开机logo下部分显示不全。显示黑条。
解决:
修改vendor\mediatek\proprietary\bootable\bootloader\lk\lib\libshowlogo和vendor\mediatek\proprietary\external\libshowlogo 两个目录下的show_logo_common.c文件。
void fill_rect_with_content_by_32bit_argb8888(unsigned int *fill_addr, RECT_REGION_T rect, unsigned int *src_addr, LCM_SCREEN_T phical_screen, unsigned int bits)
{
if (MTK_LOG_ENABLE == 1) {
SLOGD("[show_logo_common: %s %d]\n",__FUNCTION__,__LINE__);
}
int virtual_width = phical_screen.needAllign == 0? phical_screen.width:phical_screen.allignWidth;
int virtual_height = phical_screen.height;
int i = 0;
int j = 0;
unsigned int * dst_addr = fill_addr;
unsigned int * color_addr = src_addr;
for(i = rect.top; i < rect.bottom; i++)
{
for(j = rect.left; j < rect.right; j++)
{
color_addr = (unsigned int *)src_addr;
src_addr++;
switch (phical_screen.rotation)
{
case 90:
dst_addr = fill_addr + (virtual_width * j + phical_screen.width - i - 1);
break;
case 270:
dst_addr = fill_addr + ((virtual_width * (virtual_height - j - 1)+ i));
break;
case 180:
// adjust fill in address
dst_addr = fill_addr + virtual_width * (virtual_height - i)- j-1-(virtual_width-phical_screen.width);
break;
default:
dst_addr = fill_addr + virtual_width * i + j;
}