summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-tegra/include/mach/dc.h1
-rw-r--r--drivers/video/tegra/dc/dc.c4
-rw-r--r--drivers/video/tegra/fb.c7
3 files changed, 8 insertions, 4 deletions
diff --git a/arch/arm/mach-tegra/include/mach/dc.h b/arch/arm/mach-tegra/include/mach/dc.h
index 1dc9c556d6fa..0f87f993fe52 100644
--- a/arch/arm/mach-tegra/include/mach/dc.h
+++ b/arch/arm/mach-tegra/include/mach/dc.h
@@ -126,6 +126,7 @@ struct tegra_dc_win {
void *virt_addr;
dma_addr_t phys_addr;
+ unsigned offset;
unsigned offset_u;
unsigned offset_v;
unsigned stride;
diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c
index f5ce9ecc3275..f8159331877a 100644
--- a/drivers/video/tegra/dc/dc.c
+++ b/drivers/video/tegra/dc/dc.c
@@ -549,7 +549,9 @@ int tegra_dc_update_windows(struct tegra_dc_win *windows[], int n)
tegra_dc_writel(dc, 0, DC_WIN_BUF_STRIDE);
tegra_dc_writel(dc, 0, DC_WIN_UV_BUF_STRIDE);
- tegra_dc_writel(dc, (unsigned long)win->phys_addr,
+ tegra_dc_writel(dc,
+ (unsigned long)win->phys_addr +
+ (unsigned long)win->offset,
DC_WINBUF_START_ADDR);
if (!yuvp) {
diff --git a/drivers/video/tegra/fb.c b/drivers/video/tegra/fb.c
index 5941dfbbca28..d22603f7e2bd 100644
--- a/drivers/video/tegra/fb.c
+++ b/drivers/video/tegra/fb.c
@@ -429,9 +429,10 @@ static int tegra_fb_set_windowattr(struct tegra_fb_info *tegra_fb,
win->cur_handle = flip_win->handle;
/* STOPSHIP verify that this won't read outside of the surface */
- win->phys_addr = flip_win->phys_addr + flip_win->attr.offset;
- win->offset_u = flip_win->attr.offset_u + flip_win->attr.offset;
- win->offset_v = flip_win->attr.offset_v + flip_win->attr.offset;
+ win->phys_addr = flip_win->phys_addr;
+ win->offset = flip_win->attr.offset;
+ win->offset_u = flip_win->attr.offset_u;
+ win->offset_v = flip_win->attr.offset_v;
win->stride = flip_win->attr.stride;
win->stride_uv = flip_win->attr.stride_uv;