video: tegra: fix vblank detection
authorErik Gilling <konkers@android.com>
Thu, 2 Dec 2010 01:55:06 +0000 (17:55 -0800)
committerErik Gilling <konkers@android.com>
Thu, 2 Dec 2010 02:05:02 +0000 (18:05 -0800)
Change-Id: Ib74cbbb0d703c782f64f93930cd234359107021c
Signed-off-by: Erik Gilling <konkers@android.com>
drivers/video/tegra/dc/dc.c
drivers/video/tegra/dc/dc_reg.h

index 2427f6098ae276e55ba705a42b8f2b7ea1c42986..5c65e3c1a61a6fde3ad4ac38fda10361874bd910 100644 (file)
@@ -490,7 +490,7 @@ int tegra_dc_update_windows(struct tegra_dc_win *windows[], int n)
        if (no_vsync)
                tegra_dc_writel(dc, WRITE_MUX_ACTIVE | READ_MUX_ACTIVE, DC_CMD_STATE_ACCESS);
        else
-               tegra_dc_writel(dc, WRITE_MUX_ASSEMBLY | WRITE_MUX_ASSEMBLY, DC_CMD_STATE_ACCESS);
+               tegra_dc_writel(dc, WRITE_MUX_ASSEMBLY | READ_MUX_ASSEMBLY, DC_CMD_STATE_ACCESS);
 
        for (i = 0; i < n; i++) {
                struct tegra_dc_win *win = windows[i];
@@ -823,7 +823,7 @@ static irqreturn_t tegra_dc_irq(int irq, void *ptr)
 
                val = tegra_dc_readl(dc, DC_CMD_STATE_CONTROL);
                for (i = 0; i < DC_N_WINDOWS; i++) {
-                       if (!(val & (WIN_A_ACT_REQ << i))) {
+                       if (!(val & (WIN_A_UPDATE << i))) {
                                dc->windows[i].dirty = 0;
                                completed = 1;
                        } else {
index 5ae3cc4c1dec5ba3ab057cbe06967ade5577f4f9..9c83f9ebf9a220b37e5e00860d0333a1af4ab494 100644 (file)
 #define  WIN_A_ACT_REQ         (1 << 1)
 #define  WIN_B_ACT_REQ         (1 << 2)
 #define  WIN_C_ACT_REQ         (1 << 3)
+#define  GENERAL_UPDATE                (1 << 0)
+#define  WIN_A_UPDATE          (1 << 1)
+#define  WIN_B_UPDATE          (1 << 2)
+#define  WIN_C_UPDATE          (1 << 3)
 
 #define DC_CMD_DISPLAY_WINDOW_HEADER           0x042
 #define  WINDOW_A_SELECT               (1 << 4)