aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_dvo.c
diff options
context:
space:
mode:
authorThomas Richter <thor@math.tu-berlin.de>2012-07-18 13:22:30 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-07-25 12:23:48 -0400
commit7434a255a5cf42819b7e42377f18aaa02f6be52b (patch)
treedb156cc18e7c82b1769f32300dabf89cf1329d76 /drivers/gpu/drm/i915/intel_dvo.c
parentab9d7c302af858e1bc8f613c3a6f1eea3c4c0364 (diff)
drm/i915: Support for ns2501-DVO
This patch adds support for the ns2501 DVO, found in some older Fujitsu/Siemens Labtops. It is in the state of "works for me". Includes now proper DPMS support. Includes switching between resolutions - from 640x480 to 1024x768. Currently assumes that the native display resolution is 1024x768. The ns2501 seems to be rather critical - if the output PLL is not running, the chip doesn't seem to be clocked and then doesn't react on i2c messages. Thus, a quick'n-dirty trick ensures that the DVO is active before submitting any i2c messages to it. This is probably to be reviewed. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=17902 Signed-off-by: Thomas Richter <thor@math.tu-berlin.de> [danvet: fixup whitespace fail.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dvo.c')
-rw-r--r--drivers/gpu/drm/i915/intel_dvo.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
index 556cf6bf2a55..03dfdff8e003 100644
--- a/drivers/gpu/drm/i915/intel_dvo.c
+++ b/drivers/gpu/drm/i915/intel_dvo.c
@@ -37,6 +37,7 @@
37#define SIL164_ADDR 0x38 37#define SIL164_ADDR 0x38
38#define CH7xxx_ADDR 0x76 38#define CH7xxx_ADDR 0x76
39#define TFP410_ADDR 0x38 39#define TFP410_ADDR 0x38
40#define NS2501_ADDR 0x38
40 41
41static const struct intel_dvo_device intel_dvo_devices[] = { 42static const struct intel_dvo_device intel_dvo_devices[] = {
42 { 43 {
@@ -74,7 +75,14 @@ static const struct intel_dvo_device intel_dvo_devices[] = {
74 .slave_addr = 0x75, 75 .slave_addr = 0x75,
75 .gpio = GMBUS_PORT_DPB, 76 .gpio = GMBUS_PORT_DPB,
76 .dev_ops = &ch7017_ops, 77 .dev_ops = &ch7017_ops,
77 } 78 },
79 {
80 .type = INTEL_DVO_CHIP_TMDS,
81 .name = "ns2501",
82 .dvo_reg = DVOC,
83 .slave_addr = NS2501_ADDR,
84 .dev_ops = &ns2501_ops,
85 }
78}; 86};
79 87
80struct intel_dvo { 88struct intel_dvo {