问题背景:μ A
am5728+lt8718+μ A (MIPI DPI)显示屏
linux版本:4.9.69
当前三基色,红、绿、蓝测试显示屏颜色正确。
应用程序使用QT UI调用系统接口,设置颜色是添加了透明度参数,显示屏的颜色与实际的颜色不匹配。
问题描述:μ A
当前做了一下linux驱动修改,但是还是不正确。请教,ARGB透明度参数驱动中怎么修改?
修改驱动测试:μ A
将drivers vedio/vedio/fbdev/omapfb/omapfb-main.h c中的 fb_mode_to_dss_mode (函数)μ s
情形32:
dsmode = OMAP_DSS_COLOR_RGB24U;
中断;
改为:
情形32:
dsmode = OMAP_DSS_COLOR_ARGB32;
中断;
将drivers vedio/vedio/fbdev/omapfb/omapfb-main.h _setcolreg (c中的)函数
case OMAPFB_COLOR_RGB24U: if (r != 0) break; printk("%s regno:%d\n", __func__, regno); if (regno < 16) { u32 pal; pal = ((red >> (16 - var->red.length)) << var->red.offset) | ((green >> (16 - var->green.length)) << var->green.offset) | (blue >> (16 - var->blue.length)); ((u32 *)(fbi->pseudo_palette))[regno] = pal; } break;
改为:
case OMAPFB_COLOR_RGB24U: case OMAPFB_COLOR_ARGB32: if (r != 0) break; printk("%s regno:%d\n", __func__, regno); if (regno < 16) { u32 pal; pal = ((transp >> (16 - var->transp.length)) << var->transp.offset) | ((red >> (16 - var->red.length)) << var->red.offset) | ((green >> (16 - var->green.length)) << var->green.offset) | (blue >> (16 - var->blue.length)); ((u32 *)(fbi->pseudo_palette))[regno] = pal; } break;