video/exynos: dp: Add reporter to log dp errors
[cascardo/linux.git] / drivers / video / exynos / exynos_dp_core.h
index a4c0278..f31593d 100644 (file)
 #ifndef _EXYNOS_DP_CORE_H
 #define _EXYNOS_DP_CORE_H
 
+enum dp_irq_type {
+       DP_IRQ_TYPE_HP_CABLE_IN,
+       DP_IRQ_TYPE_HP_CABLE_OUT,
+       DP_IRQ_TYPE_HP_CHANGE,
+       DP_IRQ_TYPE_UNKNOWN,
+};
+
 struct link_train {
        int eq_loop;
        int cr_loop[4];
@@ -35,6 +42,7 @@ struct exynos_dp_device {
        enum link_training_type training_type;
        struct link_train       link_train;
        struct work_struct      hotplug_work;
+       struct delayed_work     error_reporter_work;
 };
 
 /* exynos_dp_reg.c */
@@ -50,6 +58,8 @@ void exynos_dp_set_analog_power_down(struct exynos_dp_device *dp,
                                bool enable);
 void exynos_dp_init_analog_func(struct exynos_dp_device *dp);
 void exynos_dp_init_hpd(struct exynos_dp_device *dp);
+enum dp_irq_type exynos_dp_get_irq_type(struct exynos_dp_device *dp);
+void exynos_dp_clear_hotplug_interrupts(struct exynos_dp_device *dp);
 void exynos_dp_reset_aux(struct exynos_dp_device *dp);
 void exynos_dp_init_aux(struct exynos_dp_device *dp);
 int exynos_dp_get_plug_in_status(struct exynos_dp_device *dp);
@@ -148,6 +158,10 @@ int exynos_dp_enable_hw_link_training(struct exynos_dp_device *dp);
 #define DPCD_ADDR_LANE_ALIGN__STATUS_UPDATED   0x0204
 #define DPCD_ADDR_ADJUST_REQUEST_LANE0_1       0x0206
 #define DPCD_ADDR_ADJUST_REQUEST_LANE2_3       0x0207
+#define DPCD_ADDR_SYMBOL_ERROR_COUNT_LANE0     0x0210
+#define DPCD_ADDR_SYMBOL_ERROR_COUNT_LANE1     0x0212
+#define DPCD_ADDR_SYMBOL_ERROR_COUNT_LANE2     0x0214
+#define DPCD_ADDR_SYMBOL_ERROR_COUNT_LANE3     0x0216
 #define DPCD_ADDR_TEST_REQUEST                 0x0218
 #define DPCD_ADDR_TEST_RESPONSE                        0x0260
 #define DPCD_ADDR_TEST_EDID_CHECKSUM           0x0261