summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/dc/dc_config.c
diff options
context:
space:
mode:
authorMark Stadler <mastadler@nvidia.com>2012-08-08 19:17:36 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 13:20:19 -0700
commited2a2b0be0f984247e62504904c8f5e7d88d037f (patch)
treeb095351f3da9914b603cde87cd7c94d9d103490c /drivers/video/tegra/dc/dc_config.c
parent088af69ebe3144a22e5d0da98548524bd8a8cf9e (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.c22
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);