vim ./kernel/arch/arm/mach-omap2/board-44xx-tablet-panel.c
modify
#define X_RES 1366
#define Y_RES 768
static struct omap_dss_device lcd_tc35876x_sharp_lq101k1lyxx = {
...............
.panel = {
.timings = {
//.x_res = 1280,
.x_res = X_RES,
#ifdef CONFIG_MACH_OMAP_RACCOON_SA
//.y_res = 720,
.y_res = Y_RES,
#else
.y_res = 800,
#endif
......
}
vim ./kernel/drivers/video/omap2/dss/dispc.h
add
#define DISPC_GLOBAL_BUFFER 0x0800
#define DISPC_CONTROL3 0x0848
#define DISPC_CONFIG3 0x084C
vim ./kernel/drivers/video/omap2/dss/dispc.c
modify
static void dispc_read_plane_fifo_sizes(void)
{
u32 size;
int plane;
u8 start, end;
dss_feat_get_reg_field(FEAT_REG_FIFOSIZE, &start, &end);
for (plane = 0; plane < ARRAY_SIZE(dispc.fifo_size); ++plane) {
size = FLD_GET(dispc_read_reg(DISPC_OVL_FIFO_SIZE_STATUS(plane)),
start, end);
#if 0 // Hack ... Give WB buffers to GFX ..
dispc.fifo_size[plane] = size;
#else
if(plane == OMAP_DSS_GFX)
dispc.fifo_size[plane] = ((0x800 + 0x500) * 16);
else
dispc.fifo_size[plane] = size;
#endif
}
int dispc_enable_plane(enum omap_plane plane, bool enable)
{
REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), enable ? 1 : 0, 0, 0);
// Quick hack.. give WB buffers to gfx:
// This will Prevent GFX_FIFO_UNDERFLOWS ...
dispc_write_reg(DISPC_GLOBAL_BUFFER, 0x006D2240);
}
參考:http://e2e.ti.com/support/omap/f/849/t/206546.aspx
Jorjin