drm/i915: Convert intel_hpd_irq_event() into an encoder hotplug hook
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 17 Jan 2018 19:21:45 +0000 (21:21 +0200)
committerLyude Paul <lyude@redhat.com>
Tue, 6 Mar 2018 22:56:29 +0000 (17:56 -0500)
Allow encoders to customize their hotplug processing by moving the
intel_hpd_irq_event() code into an encoder hotplug vfunc. Currently
only SDVO needs this to re-enable hotplug signalling in the SDVO
chip. We'll use this same hook for DP/HDMI link management later.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180117192149.17760-1-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/intel_sdvo.c

index 0c14d1c..96e213e 100644 (file)
@@ -1705,7 +1705,15 @@ static void intel_sdvo_enable_hotplug(struct intel_encoder *encoder)
        struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
 
        intel_sdvo_write_cmd(intel_sdvo, SDVO_CMD_SET_ACTIVE_HOT_PLUG,
-                       &intel_sdvo->hotplug_active, 2);
+                            &intel_sdvo->hotplug_active, 2);
+}
+
+static bool intel_sdvo_hotplug(struct intel_encoder *encoder,
+                              struct intel_connector *connector)
+{
+       intel_sdvo_enable_hotplug(encoder);
+
+       return intel_encoder_hotplug(encoder, connector);
 }
 
 static bool
@@ -2516,7 +2524,7 @@ intel_sdvo_dvi_init(struct intel_sdvo *intel_sdvo, int device)
                 * Some SDVO devices have one-shot hotplug interrupts.
                 * Ensure that they get re-enabled when an interrupt happens.
                 */
-               intel_encoder->hot_plug = intel_sdvo_enable_hotplug;
+               intel_encoder->hotplug = intel_sdvo_hotplug;
                intel_sdvo_enable_hotplug(intel_encoder);
        } else {
                intel_connector->polled = DRM_CONNECTOR_POLL_CONNECT | DRM_CONNECTOR_POLL_DISCONNECT;