There is some scenarios that we are aware that sink probe can fail, so lets add the infrastructure to let hotplug() hook to request another probe after some time. v2: Handle shared HPD pins (Imre) v3: Rebased v4: Renamed INTEL_HOTPLUG_NOCHANGE to INTEL_HOTPLUG_UNCHANGED to keep it consistent(Rodrigo) v5: Making the working queue used explicit through all the callers to hotplug_work (Ville) Tested-by: Timo Aaltonen <tjaalton@ubuntu.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Imre Deak <imre.deak@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190712005343.24571-1-jose.souza@intel.com
32 lines
1.0 KiB
C
32 lines
1.0 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2019 Intel Corporation
|
|
*/
|
|
|
|
#ifndef __INTEL_HOTPLUG_H__
|
|
#define __INTEL_HOTPLUG_H__
|
|
|
|
#include <linux/types.h>
|
|
|
|
#include <drm/i915_drm.h>
|
|
|
|
struct drm_i915_private;
|
|
struct intel_connector;
|
|
struct intel_encoder;
|
|
|
|
void intel_hpd_poll_init(struct drm_i915_private *dev_priv);
|
|
enum intel_hotplug_state intel_encoder_hotplug(struct intel_encoder *encoder,
|
|
struct intel_connector *connector,
|
|
bool irq_received);
|
|
void intel_hpd_irq_handler(struct drm_i915_private *dev_priv,
|
|
u32 pin_mask, u32 long_mask);
|
|
void intel_hpd_init(struct drm_i915_private *dev_priv);
|
|
void intel_hpd_init_work(struct drm_i915_private *dev_priv);
|
|
void intel_hpd_cancel_work(struct drm_i915_private *dev_priv);
|
|
enum hpd_pin intel_hpd_pin_default(struct drm_i915_private *dev_priv,
|
|
enum port port);
|
|
bool intel_hpd_disable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
|
|
void intel_hpd_enable(struct drm_i915_private *dev_priv, enum hpd_pin pin);
|
|
|
|
#endif /* __INTEL_HOTPLUG_H__ */
|