summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/dc
diff options
context:
space:
mode:
authorRakesh Iyer <riyer@nvidia.com>2012-09-26 11:35:45 -0700
committerSimone Willett <swillett@nvidia.com>2012-10-26 16:58:18 -0700
commite74b0efefcef78b0fc7d164447291eecd3fb75c3 (patch)
treeb9a19aced91024ee2843b4758e58f9ee9250fd35 /drivers/video/tegra/dc
parent03c75193e53c552d934b39ede464a919df9ede5b (diff)
video: tegra: dsi: set dsib clock source to pll_d
Program dsib clock source to pll_d. Add mechanism for panels to be reset during command sequences. Change-Id: Ia426d7ae0f5f849911f1da705f9634988d874cae Signed-off-by: Rakesh Iyer <riyer@nvidia.com> Reviewed-on: http://git-master/r/139116 (cherry picked from commit 7e95c6c88e89865de973b5a6bd2b25e5a69d27b6) Signed-off-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-on: http://git-master/r/147610 Reviewed-by: Automatic_Commit_Validation_User
Diffstat (limited to 'drivers/video/tegra/dc')
-rw-r--r--drivers/video/tegra/dc/dsi.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/video/tegra/dc/dsi.c b/drivers/video/tegra/dc/dsi.c
index 20b449cfe3c3..a05bd5a1329a 100644
--- a/drivers/video/tegra/dc/dsi.c
+++ b/drivers/video/tegra/dc/dsi.c
@@ -2562,9 +2562,15 @@ static int tegra_dsi_send_panel_cmd(struct tegra_dc *dc,
struct tegra_dsi_cmd *cur_cmd;
cur_cmd = &cmd[i];
- if (cur_cmd->cmd_type == TEGRA_DSI_DELAY_MS)
+ /*
+ * Some Panels need reset midway in the command sequence.
+ */
+ if (cur_cmd->cmd_type == TEGRA_DSI_GPIO_SET) {
+ gpio_set_value(cur_cmd->sp_len_dly.gpio,
+ cur_cmd->data_id);
+ } else if (cur_cmd->cmd_type == TEGRA_DSI_DELAY_MS) {
mdelay(cur_cmd->sp_len_dly.delay_ms);
- else {
+ } else {
err = tegra_dsi_write_data(dc, dsi,
cur_cmd->pdata,
cur_cmd->data_id,
@@ -3479,7 +3485,10 @@ static int _tegra_dc_dsi_init(struct tegra_dc *dc)
int err = 0;
int dsi_enum = -1;
- dsi_enum = tegra_dsi_get_enumeration();
+ if (dc->pdata->default_out->dsi->dsi_instance)
+ dsi_enum = 1;
+ else
+ dsi_enum = tegra_dsi_get_enumeration();
if (dsi_enum < 0) {
err = -EINVAL;
dev_err(&dc->ndev->dev, "dsi: invalid enum retured\n");