video: tegra: dc: Power on host1x for CSC, frame end interrupt
Raghavendra VK [Thu, 7 Feb 2013 23:40:16 +0000 (15:40 -0800)]
bug 1233236

Change-Id: I47ffa44e292c65e89914b58d88c52ffdcb35fdbc
Signed-off-by: Raghavendra VK <rvk@nvidia.com>
Reviewed-on: http://git-master/r/198567
(cherry picked from commit 7a7a53e9c832f07b2c784b73e817c31040658827)
Reviewed-on: http://git-master/r/199519
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Jon Mayo <jmayo@nvidia.com>
Tested-by: Jon Mayo <jmayo@nvidia.com>

drivers/video/tegra/dc/csc.c
drivers/video/tegra/dc/window.c

index 09db5fe..12434b3 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * drivers/video/tegra/dc/csc.c
  *
- * Copyright (c) 2010-2012, NVIDIA CORPORATION, All rights reserved.
+ * Copyright (c) 2010-2013, NVIDIA CORPORATION, All rights reserved.
  *
  * This software is licensed under the terms of the GNU General Public
  * License version 2, as published by the Free Software Foundation, and
@@ -54,12 +54,14 @@ int tegra_dc_update_csc(struct tegra_dc *dc, int win_idx)
                return -EFAULT;
        }
 
+       tegra_dc_io_start(dc);
        tegra_dc_hold_dc_out(dc);
        tegra_dc_writel(dc, WINDOW_A_SELECT << win_idx,
                        DC_CMD_DISPLAY_WINDOW_HEADER);
 
        tegra_dc_set_csc(dc, &dc->windows[win_idx].csc);
        tegra_dc_release_dc_out(dc);
+       tegra_dc_io_end(dc);
 
        mutex_unlock(&dc->lock);
 
index 57ee28d..ccb4ccf 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (C) 2010 Google, Inc.
  *
- * Copyright (c) 2010-2012, NVIDIA CORPORATION, All rights reserved.
+ * Copyright (c) 2010-2013, NVIDIA CORPORATION, All rights reserved.
  *
  * This software is licensed under the terms of the GNU General Public
  * License version 2, as published by the Free Software Foundation, and
@@ -50,12 +50,14 @@ static bool tegra_dc_windows_are_clean(struct tegra_dc_win *windows[],
 
 int tegra_dc_config_frame_end_intr(struct tegra_dc *dc, bool enable)
 {
+       tegra_dc_io_start(dc);
        tegra_dc_writel(dc, FRAME_END_INT, DC_CMD_INT_STATUS);
        if (enable) {
                atomic_inc(&frame_end_ref);
                tegra_dc_unmask_interrupt(dc, FRAME_END_INT);
        } else if (!atomic_dec_return(&frame_end_ref))
                tegra_dc_mask_interrupt(dc, FRAME_END_INT);
+       tegra_dc_io_end(dc);
        return 0;
 }