summaryrefslogtreecommitdiff
path: root/linux-core/radeon_i2c.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@linux.ie>2008-09-18 10:13:30 +1000
committerDave Airlie <airlied@linux.ie>2008-09-18 10:13:30 +1000
commit0e384803c5f2528735e43b8d30f90ea82f6b3f47 (patch)
treebace4746d822f8f7ab35776988345c1a67a8e877 /linux-core/radeon_i2c.c
parent8f23d4a44cdb17abff8f1ab3585e533ae0572224 (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.c33
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;
}
+