summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/dc
diff options
context:
space:
mode:
authorShashank Sharma <shashanks@nvidia.com>2012-04-30 19:23:57 +0530
committerRohan Somvanshi <rsomvanshi@nvidia.com>2012-05-08 06:07:22 -0700
commit86c9754e625b6b9ac86db944c08158c895ca7919 (patch)
tree50f240a6b24fcce620b09c684688130d51584f66 /drivers/video/tegra/dc
parent4ab7c111fa8570e58ad70a6b0f7c6539b2c4ae3d (diff)
video: tegra: fb: Call mode filter from check var
Call dc_hdmi_mode_filter to validate a videomode. X prepares its own modedb of supported HDMI modes, but all of them may not be supported from the HDMI driver. This call makes sure a X-mode is listed only if supported in DC driver. Bug: 959676 Change-Id: I8aff65f4e08fcc4471af096150e3972b5913a95a Signed-off-by: Shashank Sharma <shashanks@nvidia.com> Reviewed-on: http://git-master/r/99650 Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Diffstat (limited to 'drivers/video/tegra/dc')
-rw-r--r--drivers/video/tegra/dc/dc_priv.h5
-rw-r--r--drivers/video/tegra/dc/hdmi.c2
2 files changed, 5 insertions, 2 deletions
diff --git a/drivers/video/tegra/dc/dc_priv.h b/drivers/video/tegra/dc/dc_priv.h
index c08cd12f5a22..2f2dcec82055 100644
--- a/drivers/video/tegra/dc/dc_priv.h
+++ b/drivers/video/tegra/dc/dc_priv.h
@@ -21,6 +21,7 @@
#include <linux/io.h>
#include <linux/mutex.h>
#include <linux/wait.h>
+#include <linux/fb.h>
#include <linux/completion.h>
#include <linux/switch.h>
@@ -64,11 +65,13 @@ struct tegra_dc_out_ops {
void (*enable)(struct tegra_dc *dc);
/* disable output. dc clocks are on at this point */
void (*disable)(struct tegra_dc *dc);
-
/* suspend output. dc clocks are on at this point */
void (*suspend)(struct tegra_dc *dc);
/* resume output. dc clocks are on at this point */
void (*resume)(struct tegra_dc *dc);
+ /* mode filter. to provide a list of supported modes*/
+ bool (*mode_filter)(struct tegra_dc *dc,
+ struct fb_videomode *mode);
};
struct tegra_dc {
diff --git a/drivers/video/tegra/dc/hdmi.c b/drivers/video/tegra/dc/hdmi.c
index 67d081967a07..dc688136b7f4 100644
--- a/drivers/video/tegra/dc/hdmi.c
+++ b/drivers/video/tegra/dc/hdmi.c
@@ -1289,7 +1289,6 @@ static bool tegra_dc_hdmi_mode_filter(const struct tegra_dc *dc,
return false;
}
-
static bool tegra_dc_hdmi_hpd(struct tegra_dc *dc)
{
return tegra_dc_hpd(dc);
@@ -2399,6 +2398,7 @@ struct tegra_dc_out_ops tegra_dc_hdmi_ops = {
.detect = tegra_dc_hdmi_detect,
.suspend = tegra_dc_hdmi_suspend,
.resume = tegra_dc_hdmi_resume,
+ .mode_filter = tegra_dc_hdmi_mode_filter,
};
struct tegra_dc_edid *tegra_dc_get_edid(struct tegra_dc *dc)