diff options
author | Taekhyun Kim <takim@nvidia.com> | 2011-01-25 15:31:45 -0800 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-02-17 17:40:51 -0800 |
commit | 5f8ff57fd8a870f6f99f61bb5ef90d863894ff40 (patch) | |
tree | 919d2428e1486c4af4cd37aa8bdce64cfffba4e1 | |
parent | ee977cb00984349a540a5300c8d7f357db48f98e (diff) |
video: tegra: Fix handling non-zero Y offset
Change-Id: I6ce3f66075856397b394f433a4ee29ff3357b548
Reviewed-on: http://git-master/r/16977
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
-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; |