From 30582abff8f85b56bafb86d0bc05db25257bf456 Mon Sep 17 00:00:00 2001 From: Kevin Huang Date: Tue, 3 May 2011 10:52:24 -0700 Subject: video: tegra: dsi: Adjusted the values of packet sequence registers. Changed the values of packet sequence registers for DSI burst video mode. Change-Id: I70188ed3c8fff094862a89377457751fd0d4382c Reviewed-on: http://git-master/r/31080 Reviewed-by: Kevin Huang Tested-by: Kevin Huang Reviewed-by: Varun Colbert --- arch/arm/mach-tegra/include/mach/dc.h | 3 +++ drivers/video/tegra/dc/dsi.c | 49 +++++++++++++++++++++++------------ 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/arch/arm/mach-tegra/include/mach/dc.h b/arch/arm/mach-tegra/include/mach/dc.h index 0043c9a8a3a4..55857cb5f3bd 100644 --- a/arch/arm/mach-tegra/include/mach/dc.h +++ b/arch/arm/mach-tegra/include/mach/dc.h @@ -140,6 +140,9 @@ struct tegra_dsi_out { bool hs_cmd_mode_supported; bool hs_cmd_mode_on_blank_supported; bool enable_hs_clock_on_lp_cmd_mode; + bool no_pkt_seq_eot; /* 1st generation panel may not + * support eot. Don't set it for + * most panels. */ u32 max_panel_freq_khz; u32 lp_cmd_mode_freq_khz; diff --git a/drivers/video/tegra/dc/dsi.c b/drivers/video/tegra/dc/dsi.c index ef1d66fd54c2..070289786827 100755 --- a/drivers/video/tegra/dc/dsi.c +++ b/drivers/video/tegra/dc/dsi.c @@ -177,23 +177,37 @@ const u32 dsi_pkt_seq_video_non_burst[NUMOF_PKT_SEQ] = { }; static const u32 dsi_pkt_seq_video_burst[NUMOF_PKT_SEQ] = { - PKT_ID0(CMD_NULL) | PKT_LEN0(4) | PKT_ID1(CMD_VS) | PKT_LEN1(0) | - PKT_ID2(CMD_EOT) | PKT_LEN2(0) | PKT_LP, + PKT_ID0(CMD_VS) | PKT_LEN0(0) | PKT_ID1(CMD_EOT) | PKT_LEN1(7) | PKT_LP, 0, - PKT_ID0(CMD_NULL) | PKT_LEN0(4) | PKT_ID1(CMD_HS) | PKT_LEN1(0) | - PKT_ID2(CMD_EOT) | PKT_LEN2(0) | PKT_LP, + PKT_ID0(CMD_HS) | PKT_LEN0(0) | PKT_ID1(CMD_EOT) | PKT_LEN1(7) | PKT_LP, 0, - PKT_ID0(CMD_NULL) | PKT_LEN0(4) | PKT_ID1(CMD_HS) | PKT_LEN1(0) | - PKT_ID2(CMD_EOT) | PKT_LEN2(0) | PKT_LP, - PKT_ID0(CMD_BLNK) | PKT_LEN0(4) | PKT_ID1(CMD_HS) | PKT_LEN1(0) | - PKT_ID2(CMD_BLNK) | PKT_LEN2(2), - PKT_ID3(CMD_RGB) | PKT_LEN3(3) | PKT_ID4(CMD_EOT) | PKT_LEN4(0), - PKT_ID0(CMD_NULL) | PKT_LEN0(4) | PKT_ID1(CMD_HS) | PKT_LEN1(0) | - PKT_ID2(CMD_EOT) | PKT_LEN2(0) | PKT_LP, + PKT_ID0(CMD_HS) | PKT_LEN0(0) | PKT_ID1(CMD_EOT) | PKT_LEN1(7) | PKT_LP, 0, - PKT_ID0(CMD_BLNK) | PKT_LEN0(4) | PKT_ID1(CMD_HS) | PKT_LEN1(0) | - PKT_ID2(CMD_BLNK) | PKT_LEN2(2), - PKT_ID3(CMD_RGB) | PKT_LEN3(3) | PKT_ID4(CMD_EOT) | PKT_LEN4(0), + PKT_ID0(CMD_HS) | PKT_LEN0(0) | PKT_ID1(CMD_BLNK) | PKT_LEN1(2)| + PKT_ID2(CMD_RGB) | PKT_LEN2(3) | PKT_LP, + PKT_ID0(CMD_EOT) | PKT_LEN0(7), + PKT_ID0(CMD_HS) | PKT_LEN0(0) | PKT_ID1(CMD_EOT) | PKT_LEN1(7) | PKT_LP, + 0, + PKT_ID0(CMD_HS) | PKT_LEN0(0) | PKT_ID1(CMD_BLNK) | PKT_LEN1(2)| + PKT_ID2(CMD_RGB) | PKT_LEN2(3) | PKT_LP, + PKT_ID0(CMD_EOT) | PKT_LEN0(7), +}; + +static const u32 dsi_pkt_seq_video_burst_no_eot[NUMOF_PKT_SEQ] = { + PKT_ID0(CMD_VS) | PKT_LEN0(0) | PKT_ID1(CMD_EOT) | PKT_LEN1(0) | PKT_LP, + 0, + PKT_ID0(CMD_HS) | PKT_LEN0(0) | PKT_ID1(CMD_EOT) | PKT_LEN1(0) | PKT_LP, + 0, + PKT_ID0(CMD_HS) | PKT_LEN0(0) | PKT_ID1(CMD_EOT) | PKT_LEN1(0) | PKT_LP, + 0, + PKT_ID0(CMD_HS) | PKT_LEN0(0) | PKT_ID1(CMD_BLNK) | PKT_LEN1(2)| + PKT_ID2(CMD_RGB) | PKT_LEN2(3) | PKT_LP, + PKT_ID0(CMD_EOT) | PKT_LEN0(0), + PKT_ID0(CMD_HS) | PKT_LEN0(0) | PKT_ID1(CMD_EOT) | PKT_LEN1(0) | PKT_LP, + 0, + PKT_ID0(CMD_HS) | PKT_LEN0(0) | PKT_ID1(CMD_BLNK) | PKT_LEN1(2)| + PKT_ID2(CMD_RGB) | PKT_LEN2(3) | PKT_LP, + PKT_ID0(CMD_EOT) | PKT_LEN0(0), }; /* TODO: verify with hw about this format */ @@ -676,8 +690,11 @@ static void tegra_dsi_set_pkt_seq(struct tegra_dc *dc, case TEGRA_DSI_VIDEO_BURST_MODE_FAST_SPEED: case TEGRA_DSI_VIDEO_BURST_MODE_FASTEST_SPEED: case TEGRA_DSI_VIDEO_BURST_MODE_MANUAL: - pkt_seq_3_5_rgb_hi = DSI_PKT_SEQ_3_HI_PKT_33_ID(rgb_info); - pkt_seq = dsi_pkt_seq_video_burst; + pkt_seq_3_5_rgb_lo = DSI_PKT_SEQ_3_LO_PKT_32_ID(rgb_info); + if(!dsi->info.no_pkt_seq_eot) + pkt_seq = dsi_pkt_seq_video_burst; + else + pkt_seq = dsi_pkt_seq_video_burst_no_eot; break; case TEGRA_DSI_VIDEO_NONE_BURST_MODE_WITH_SYNC_END: pkt_seq_3_5_rgb_hi = DSI_PKT_SEQ_3_HI_PKT_34_ID(rgb_info); -- cgit v1.2.3