These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / video / fbdev / core / fb_ddc.c
index 94322cc..8bf5f2f 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);