@@ -23,6 +23,7 @@
#include <linux/component.h>
#include <linux/extcon.h>
#include <linux/firmware.h>
+#include <linux/hdmi-notifier.h>
#include <linux/regmap.h>
#include <linux/reset.h>
#include <linux/mfd/syscon.h>
@@ -185,6 +186,7 @@ static int cdn_dp_connector_get_modes(struct drm_connector *connector)
drm_mode_connector_update_edid_property(connector,
edid);
drm_edid_to_eld(connector, edid);
+ hdmi_event_new_eld(dp->dev, connector->eld);
}
kfree(edid);
}
@@ -345,6 +347,7 @@ static void cdn_dp_encoder_enable(struct drm_encoder *encoder)
if (dp->dpms_mode != DRM_MODE_DPMS_ON)
cdn_dp_commit(encoder);
+ hdmi_event_connect(dp->dev);
}
static void cdn_dp_encoder_disable(struct drm_encoder *encoder)
@@ -352,6 +355,7 @@ static void cdn_dp_encoder_disable(struct drm_encoder *encoder)
struct cdn_dp_device *dp = encoder_to_dp(encoder);
dp->dpms_mode = DRM_MODE_DPMS_OFF;
+ hdmi_event_disconnect(dp->dev);
}
static int cdn_dp_encoder_atomic_check(struct drm_encoder *encoder,
Issue hot-plug detection, EDID update, and ELD update notifications from DP drivers. Signed-off-by: Chris Zhong <zyw@rock-chips.com> --- drivers/gpu/drm/rockchip/cdn-dp-core.c | 4 ++++ 1 file changed, 4 insertions(+)