diff options
author | Mark Stadler <mastadler@nvidia.com> | 2012-08-08 19:17:36 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-14 13:20:19 -0700 |
commit | ed2a2b0be0f984247e62504904c8f5e7d88d037f (patch) | |
tree | b095351f3da9914b603cde87cd7c94d9d103490c /drivers/video/tegra/dc/dc_config.c | |
parent | 088af69ebe3144a22e5d0da98548524bd8a8cf9e (diff) |
video: tegra: dc: add support for block linear format
Change-Id: Icd8feba013b1d6d00b9c3b685b22f5feb7778ba4
Reviewed-on: http://git-master/r/113407
Tested-by: Xue Dong <xdong@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Chao Xu <cxu@nvidia.com>
Reviewed-by: Mark Stadler <mastadler@nvidia.com>
Signed-off-by: Mark Stadler <mastadler@nvidia.com>
Diffstat (limited to 'drivers/video/tegra/dc/dc_config.c')
-rw-r--r-- | drivers/video/tegra/dc/dc_config.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/drivers/video/tegra/dc/dc_config.c b/drivers/video/tegra/dc/dc_config.c index 5fc6eecb626d..39f8b2e35ae5 100644 --- a/drivers/video/tegra/dc/dc_config.c +++ b/drivers/video/tegra/dc/dc_config.c @@ -210,7 +210,7 @@ static struct tegra_dc_feature_entry t124_feature_entries_a[] = { { 0, TEGRA_DC_FEATURE_MAXIMUM_SIZE, {4095, 16, 4095, 16,} }, { 0, TEGRA_DC_FEATURE_MAXIMUM_SCALE, {2, 2, 2, 2,} }, { 0, TEGRA_DC_FEATURE_FILTER_TYPE, {0, 0,} }, - { 0, TEGRA_DC_FEATURE_LAYOUT_TYPE, {1,} }, + { 0, TEGRA_DC_FEATURE_LAYOUT_TYPE, {1, 1, 1,} }, { 0, TEGRA_DC_FEATURE_INVERT_TYPE, {1, 1, 0,} }, { 1, TEGRA_DC_FEATURE_FORMATS, {TEGRA_WIN_FMT_WIN_B,} }, @@ -219,7 +219,7 @@ static struct tegra_dc_feature_entry t124_feature_entries_a[] = { { 1, TEGRA_DC_FEATURE_MAXIMUM_SIZE, {4095, 16, 4095, 16,} }, { 1, TEGRA_DC_FEATURE_MAXIMUM_SCALE, {2, 2, 2, 2,} }, { 1, TEGRA_DC_FEATURE_FILTER_TYPE, {1, 1,} }, - { 1, TEGRA_DC_FEATURE_LAYOUT_TYPE, {1,} }, + { 1, TEGRA_DC_FEATURE_LAYOUT_TYPE, {1, 1, 1,} }, { 1, TEGRA_DC_FEATURE_INVERT_TYPE, {1, 1, 0,} }, { 2, TEGRA_DC_FEATURE_FORMATS, {TEGRA_WIN_FMT_WIN_C,} }, @@ -227,7 +227,7 @@ static struct tegra_dc_feature_entry t124_feature_entries_a[] = { { 2, TEGRA_DC_FEATURE_MAXIMUM_SIZE, {4095, 16, 4095, 16,} }, { 2, TEGRA_DC_FEATURE_MAXIMUM_SCALE, {2, 2, 2, 2,} }, { 2, TEGRA_DC_FEATURE_FILTER_TYPE, {0, 1,} }, - { 2, TEGRA_DC_FEATURE_LAYOUT_TYPE, {1,} }, + { 2, TEGRA_DC_FEATURE_LAYOUT_TYPE, {1, 1, 1,} }, { 2, TEGRA_DC_FEATURE_INVERT_TYPE, {1, 1, 0,} }, }; @@ -237,7 +237,7 @@ static struct tegra_dc_feature_entry t124_feature_entries_b[] = { { 0, TEGRA_DC_FEATURE_MAXIMUM_SIZE, {4095, 16, 4095, 16,} }, { 0, TEGRA_DC_FEATURE_MAXIMUM_SCALE, {2, 2, 2, 2,} }, { 0, TEGRA_DC_FEATURE_FILTER_TYPE, {0, 0,} }, - { 0, TEGRA_DC_FEATURE_LAYOUT_TYPE, {1,} }, + { 0, TEGRA_DC_FEATURE_LAYOUT_TYPE, {1, 1, 1,} }, { 0, TEGRA_DC_FEATURE_INVERT_TYPE, {1, 1, 0,} }, { 1, TEGRA_DC_FEATURE_FORMATS, {TEGRA_WIN_FMT_WIN_B,} }, @@ -246,7 +246,7 @@ static struct tegra_dc_feature_entry t124_feature_entries_b[] = { { 1, TEGRA_DC_FEATURE_MAXIMUM_SIZE, {4095, 16, 4095, 16,} }, { 1, TEGRA_DC_FEATURE_MAXIMUM_SCALE, {2, 2, 2, 2,} }, { 1, TEGRA_DC_FEATURE_FILTER_TYPE, {1, 1,} }, - { 1, TEGRA_DC_FEATURE_LAYOUT_TYPE, {1,} }, + { 1, TEGRA_DC_FEATURE_LAYOUT_TYPE, {1, 1, 1,} }, { 1, TEGRA_DC_FEATURE_INVERT_TYPE, {1, 1, 0,} }, { 2, TEGRA_DC_FEATURE_FORMATS, {TEGRA_WIN_FMT_WIN_C,} }, @@ -254,7 +254,7 @@ static struct tegra_dc_feature_entry t124_feature_entries_b[] = { { 2, TEGRA_DC_FEATURE_MAXIMUM_SIZE, {4095, 16, 4095, 16,} }, { 2, TEGRA_DC_FEATURE_MAXIMUM_SCALE, {2, 2, 2, 2,} }, { 2, TEGRA_DC_FEATURE_FILTER_TYPE, {0, 1,} }, - { 2, TEGRA_DC_FEATURE_LAYOUT_TYPE, {1,} }, + { 2, TEGRA_DC_FEATURE_LAYOUT_TYPE, {1, 1, 1,} }, { 2, TEGRA_DC_FEATURE_INVERT_TYPE, {1, 1, 0,} }, }; @@ -397,6 +397,9 @@ long *tegra_dc_parse_feature(struct tegra_dc *dc, int win_idx, int operation) case HAS_GEN2_BLEND: option = TEGRA_DC_FEATURE_BLEND_TYPE; break; + case HAS_BLOCKLINEAR: + option = TEGRA_DC_FEATURE_LAYOUT_TYPE; + break; default: return NULL; } @@ -427,6 +430,13 @@ int tegra_dc_feature_has_tiling(struct tegra_dc *dc, int win_idx) return addr[TILED_LAYOUT]; } +int tegra_dc_feature_has_blocklinear(struct tegra_dc *dc, int win_idx) +{ + long *addr = tegra_dc_parse_feature(dc, win_idx, HAS_BLOCKLINEAR); + + return addr[BLOCK_LINEAR]; +} + int tegra_dc_feature_has_filter(struct tegra_dc *dc, int win_idx, int operation) { long *addr = tegra_dc_parse_feature(dc, win_idx, operation); |