diff options
author | Dave Airlie <airlied@linux.ie> | 2008-09-18 10:13:30 +1000 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2008-09-18 10:13:30 +1000 |
commit | 0e384803c5f2528735e43b8d30f90ea82f6b3f47 (patch) | |
tree | bace4746d822f8f7ab35776988345c1a67a8e877 /linux-core/radeon_i2c.c | |
parent | 8f23d4a44cdb17abff8f1ab3585e533ae0572224 (diff) |
radeon: don't do full edid for detection purposes
Diffstat (limited to 'linux-core/radeon_i2c.c')
-rw-r--r-- | linux-core/radeon_i2c.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/linux-core/radeon_i2c.c b/linux-core/radeon_i2c.c index 00fc7c0e..94a485ba 100644 --- a/linux-core/radeon_i2c.c +++ b/linux-core/radeon_i2c.c @@ -27,6 +27,38 @@ #include "radeon_drm.h" #include "radeon_drv.h" +/** + * radeon_ddc_probe + * + */ +bool radeon_ddc_probe(struct radeon_connector *radeon_connector) +{ + u8 out_buf[] = { 0x0, 0x0}; + u8 buf[2]; + int ret; + struct i2c_msg msgs[] = { + { + .addr = 0x50, + .flags = 0, + .len = 1, + .buf = out_buf, + }, + { + .addr = 0x50, + .flags = I2C_M_RD, + .len = 1, + .buf = buf, + } + }; + + ret = i2c_transfer(&radeon_connector->ddc_bus->adapter, msgs, 2); + if (ret == 2) + return true; + + return false; +} + + void radeon_i2c_do_lock(struct radeon_connector *radeon_connector, int lock_state) { struct drm_radeon_private *dev_priv = radeon_connector->base.dev->dev_private; @@ -161,3 +193,4 @@ struct drm_encoder *radeon_best_encoder(struct drm_connector *connector) { return NULL; } + |