summaryrefslogtreecommitdiff
path: root/linux-core
diff options
context:
space:
mode:
authorAlan Hourihane <alanh@tungstengraphics.com>2008-07-07 15:11:48 +0100
committerAlan Hourihane <alanh@tungstengraphics.com>2008-07-07 15:11:48 +0100
commit0b7d9a97bd2383fe4382fc1b1b266542020f0c4e (patch)
tree405a42daea89466e083a85ee66606015d2bb9260 /linux-core
parentd5d3f31b108c8514a820bb50a5736ba06fc33275 (diff)
Synchronize the DDC EDID read to it's fb_ddc.c counterpart
Diffstat (limited to 'linux-core')
-rw-r--r--linux-core/drm_edid.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/linux-core/drm_edid.c b/linux-core/drm_edid.c
index a3d9861f..07894720 100644
--- a/linux-core/drm_edid.c
+++ b/linux-core/drm_edid.c
@@ -595,21 +595,13 @@ static unsigned char *drm_ddc_read(struct i2c_adapter *adapter)
unsigned char *edid = NULL;
int i, j;
- /*
- * Startup the bus:
- * Set clock line high (but give it time to come up)
- * Then set clock & data low
- */
algo_data->setscl(algo_data->data, 1);
- udelay(550); /* startup delay */
- algo_data->setscl(algo_data->data, 0);
- algo_data->setsda(algo_data->data, 0);
for (i = 0; i < 3; i++) {
/* For some old monitors we need the
* following process to initialize/stop DDC
*/
- algo_data->setsda(algo_data->data, 0);
+ algo_data->setsda(algo_data->data, 1);
msleep(13);
algo_data->setscl(algo_data->data, 1);
@@ -644,6 +636,7 @@ static unsigned char *drm_ddc_read(struct i2c_adapter *adapter)
algo_data->setsda(algo_data->data, 1);
msleep(15);
algo_data->setscl(algo_data->data, 0);
+ algo_data->setsda(algo_data->data, 0);
if (edid)
break;
}