diff options
author | Donghan Ryu <dryu@nvidia.com> | 2011-05-17 05:56:35 +0900 |
---|---|---|
committer | Niket Sirsi <nsirsi@nvidia.com> | 2011-05-19 17:49:49 -0700 |
commit | 6529eb1c8bf15d2111ff77cc830de0b67bc80038 (patch) | |
tree | bbffc60214fa3af0a4f5096b33d00a4f8076f0a5 /arch | |
parent | c20a54d503e859b8b9c62c6fb446fcfe273d433b (diff) |
tegra: dc: adding max pixclock check for hdmi
tegra_dc_hdmi_equal doesn't check pixclock. some devices doesn't
support 14.85Mhz pixclock so 1080p@60 cannot be used. However,
1080p@30 is supported. Therefore, adding a max pixclock prevents
1080p@60 mode is falsely used for those devices
Bug: 815409
Change-Id: Ia2d8dcf360afa51e160d0e997986fe1714254a6b
Reviewed-on: http://git-master/r/31663
Reviewed-by: Donghan Ryu <dryu@nvidia.com>
Tested-by: Donghan Ryu <dryu@nvidia.com>
Reviewed-by: Jonathan Mayo <jmayo@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/board-ventana-panel.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-whistler-panel.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/include/mach/dc.h | 6 | ||||
-rw-r--r-- | arch/arm/mach-tegra/include/mach/fb.h | 2 |
4 files changed, 9 insertions, 3 deletions
diff --git a/arch/arm/mach-tegra/board-ventana-panel.c b/arch/arm/mach-tegra/board-ventana-panel.c index 4c9cee7b01ae..66bea3b0a9c7 100644 --- a/arch/arm/mach-tegra/board-ventana-panel.c +++ b/arch/arm/mach-tegra/board-ventana-panel.c @@ -245,6 +245,8 @@ static struct tegra_dc_out ventana_disp2_out = { .dcc_bus = 1, .hotplug_gpio = ventana_hdmi_hpd, + .max_pixclock = KHZ2PICOS(148500), + .align = TEGRA_DC_ALIGN_MSB, .order = TEGRA_DC_ORDER_RED_BLUE, diff --git a/arch/arm/mach-tegra/board-whistler-panel.c b/arch/arm/mach-tegra/board-whistler-panel.c index c2333ce5953b..ddcc611e9a65 100644 --- a/arch/arm/mach-tegra/board-whistler-panel.c +++ b/arch/arm/mach-tegra/board-whistler-panel.c @@ -196,6 +196,8 @@ static struct tegra_dc_out whistler_disp2_out = { .dcc_bus = 1, .hotplug_gpio = whistler_hdmi_hpd, + .max_pixclock = KHZ2PICOS(148500), + .align = TEGRA_DC_ALIGN_MSB, .order = TEGRA_DC_ORDER_RED_BLUE, diff --git a/arch/arm/mach-tegra/include/mach/dc.h b/arch/arm/mach-tegra/include/mach/dc.h index 8d43c3814925..d6b953597b84 100644 --- a/arch/arm/mach-tegra/include/mach/dc.h +++ b/arch/arm/mach-tegra/include/mach/dc.h @@ -221,6 +221,7 @@ struct tegra_dc_out { int dcc_bus; int hotplug_gpio; + unsigned max_pixclock; unsigned order; unsigned align; unsigned depth; @@ -365,8 +366,9 @@ int tegra_dc_sync_windows(struct tegra_dc_win *windows[], int n); int tegra_dc_set_mode(struct tegra_dc *dc, const struct tegra_dc_mode *mode); -unsigned tegra_dc_get_out_height(struct tegra_dc *dc); -unsigned tegra_dc_get_out_width(struct tegra_dc *dc); +unsigned tegra_dc_get_out_height(const struct tegra_dc *dc); +unsigned tegra_dc_get_out_width(const struct tegra_dc *dc); +unsigned tegra_dc_get_out_max_pixclock(const struct tegra_dc *dc); /* PM0 and PM1 signal control */ #define TEGRA_PWM_PM0 0 diff --git a/arch/arm/mach-tegra/include/mach/fb.h b/arch/arm/mach-tegra/include/mach/fb.h index 8130da0ed8e7..776e97b20902 100644 --- a/arch/arm/mach-tegra/include/mach/fb.h +++ b/arch/arm/mach-tegra/include/mach/fb.h @@ -36,7 +36,7 @@ struct tegra_fb_info *tegra_fb_register(struct nvhost_device *ndev, void tegra_fb_unregister(struct tegra_fb_info *fb_info); void tegra_fb_update_monspecs(struct tegra_fb_info *fb_info, struct fb_monspecs *specs, - bool (*mode_filter)(struct fb_videomode *mode)); + bool (*mode_filter)(const struct tegra_dc *dc, struct fb_videomode *mode)); /* called by display controller on suspend */ void tegra_fb_suspend(struct tegra_fb_info *tegra_fb); #else |