summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChao Jiang <chaoj@nvidia.com>2011-01-14 12:08:34 +0900
committerVarun Colbert <vcolbert@nvidia.com>2011-01-27 17:25:33 -0800
commit8d51c3e6465896be3d2bc07a7678bf2432671352 (patch)
tree7e433ffbf78a61506c48163930c161c49bf29a2e
parentb3775dc53d76d672ebe7353d475874adb077143c (diff)
video: tegra: Support dither settings
Support dither settings in display control structure by writing color control registers. Change-Id: I57ceb22a4b96bc507e15ad97893ec19a5be44ec7 Reviewed-on: http://git-master/r/15906 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com>
-rw-r--r--arch/arm/mach-tegra/include/mach/dc.h7
-rw-r--r--drivers/video/tegra/dc/dc.c12
2 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/include/mach/dc.h b/arch/arm/mach-tegra/include/mach/dc.h
index 31af1776fef9..b4453f4c2ac3 100644
--- a/arch/arm/mach-tegra/include/mach/dc.h
+++ b/arch/arm/mach-tegra/include/mach/dc.h
@@ -62,6 +62,12 @@ enum {
TEGRA_DC_OUT_PIN_POL_HIGH,
};
+enum {
+ TEGRA_DC_DISABLE_DITHER = 1,
+ TEGRA_DC_ORDERED_DITHER,
+ TEGRA_DC_ERRDIFF_DITHER,
+};
+
struct tegra_dc_out {
int type;
unsigned flags;
@@ -76,6 +82,7 @@ struct tegra_dc_out {
unsigned order;
unsigned align;
unsigned depth;
+ unsigned dither;
struct tegra_dc_mode *modes;
int n_modes;
diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c
index 78909d9d8571..8cf9726645c9 100644
--- a/drivers/video/tegra/dc/dc.c
+++ b/drivers/video/tegra/dc/dc.c
@@ -1007,6 +1007,18 @@ static void tegra_dc_set_color_control(struct tegra_dc *dc)
break;
}
+ switch (dc->out->dither) {
+ case TEGRA_DC_DISABLE_DITHER:
+ color_control |= DITHER_CONTROL_DISABLE;
+ break;
+ case TEGRA_DC_ORDERED_DITHER:
+ color_control |= DITHER_CONTROL_ORDERED;
+ break;
+ case TEGRA_DC_ERRDIFF_DITHER:
+ color_control |= DITHER_CONTROL_ERRDIFF;
+ break;
+ }
+
tegra_dc_writel(dc, color_control, DC_DISP_DISP_COLOR_CONTROL);
}