}
  
  static void intel_dp_link_down(struct intel_dp *intel_dp);
 -static void edp_panel_vdd_on(struct intel_dp *intel_dp);
+ static bool _edp_panel_vdd_on(struct intel_dp *intel_dp);
  static void edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync);
  
  static int
                DRM_DEBUG_KMS("eDP was not running\n");
                msleep(intel_dp->panel_power_up_delay);
        }
 -static void edp_panel_vdd_on(struct intel_dp *intel_dp)
+ 
+       return need_to_disable;
+ }
+ 
++void intel_edp_panel_vdd_on(struct intel_dp *intel_dp)
+ {
+       if (is_edp(intel_dp)) {
+               bool vdd = _edp_panel_vdd_on(intel_dp);
+ 
+               WARN(!vdd, "eDP VDD already requested on\n");
+       }
  }
  
  static void edp_panel_vdd_off_sync(struct intel_dp *intel_dp)
        if (!(intel_dp->dpcd[DP_DOWN_STREAM_PORT_COUNT] & DP_OUI_SUPPORT))
                return;
  
 -      edp_panel_vdd_on(intel_dp);
 +      intel_edp_panel_vdd_on(intel_dp);
  
-       if (intel_dp_aux_native_read_retry(intel_dp, DP_SINK_OUI, buf, 3))
+       if (intel_dp_dpcd_read_wake(&intel_dp->aux, DP_SINK_OUI, buf, 3) == 3)
                DRM_DEBUG_KMS("Sink OUI: %02hx%02hx%02hx\n",
                              buf[0], buf[1], buf[2]);