]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/video/fbdev/core/fb_ddc.c
Merge remote-tracking branch 'omap_dss2/for-next'
[karo-tx-linux.git] / drivers / video / fbdev / core / fb_ddc.c
index 94322ccfeddecb9178028bfe8cee96a071a75445..8bf5f2f54be7b8760fd89b027fd3d686c00ada14 100644 (file)
@@ -67,13 +67,17 @@ unsigned char *fb_ddc_read(struct i2c_adapter *adapter)
                msleep(13);
 
                algo_data->setscl(algo_data->data, 1);
-               for (j = 0; j < 5; j++) {
-                       msleep(10);
-                       if (algo_data->getscl(algo_data->data))
-                               break;
+               if (algo_data->getscl) {
+                       for (j = 0; j < 5; j++) {
+                               msleep(10);
+                               if (algo_data->getscl(algo_data->data))
+                                       break;
+                       }
+                       if (j == 5)
+                               continue;
+               } else {
+                       udelay(algo_data->udelay);
                }
-               if (j == 5)
-                       continue;
 
                algo_data->setsda(algo_data->data, 0);
                msleep(15);
@@ -89,10 +93,14 @@ unsigned char *fb_ddc_read(struct i2c_adapter *adapter)
                msleep(15);
 
                algo_data->setscl(algo_data->data, 1);
-               for (j = 0; j < 10; j++) {
-                       msleep(10);
-                       if (algo_data->getscl(algo_data->data))
-                               break;
+               if (algo_data->getscl) {
+                       for (j = 0; j < 10; j++) {
+                               msleep(10);
+                               if (algo_data->getscl(algo_data->data))
+                                       break;
+                       }
+               } else {
+                       udelay(algo_data->udelay);
                }
 
                algo_data->setsda(algo_data->data, 1);