diff options
author | Thomas Richter <thor@math.tu-berlin.de> | 2012-07-18 13:22:30 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-07-25 12:23:48 -0400 |
commit | 7434a255a5cf42819b7e42377f18aaa02f6be52b (patch) | |
tree | db156cc18e7c82b1769f32300dabf89cf1329d76 /drivers/gpu/drm/i915/intel_dvo.c | |
parent | ab9d7c302af858e1bc8f613c3a6f1eea3c4c0364 (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.c | 10 |
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 | ||
41 | static const struct intel_dvo_device intel_dvo_devices[] = { | 42 | static 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 | ||
80 | struct intel_dvo { | 88 | struct intel_dvo { |