diff options
-rw-r--r-- | arch/arm/mach-tegra/include/mach/dc.h | 1 | ||||
-rw-r--r-- | drivers/video/tegra/dc/dc.c | 4 | ||||
-rw-r--r-- | drivers/video/tegra/fb.c | 7 |
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; |