Skip to content

Commit 7e10bf4

Browse files
Kuogee Hsiehrobclark
authored andcommitted
drm/msm/dp: replug event is converted into an unplug followed by an plug events
Remove special handling of replug interrupt and instead treat replug event as a sequential unplug followed by a plugin event. This is needed to meet the requirements of DP Link Layer CTS test case 4.2.1.3. Changes in V2: -- add fixes statement Changes in V3: -- delete EV_HPD_REPLUG_INT Fixes: f21c8a2 ("drm/msm/dp: handle irq_hpd with sink_count = 0 correctly") Signed-off-by: Kuogee Hsieh <[email protected]> Reviewed-by: Stephen Boyd <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Clark <[email protected]>
1 parent 0b32456 commit 7e10bf4

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

drivers/gpu/drm/msm/dp/dp_display.c

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ enum {
5555
EV_HPD_INIT_SETUP,
5656
EV_HPD_PLUG_INT,
5757
EV_IRQ_HPD_INT,
58-
EV_HPD_REPLUG_INT,
5958
EV_HPD_UNPLUG_INT,
6059
EV_USER_NOTIFICATION,
6160
EV_CONNECT_PENDING_TIMEOUT,
@@ -1110,9 +1109,6 @@ static int hpd_event_thread(void *data)
11101109
case EV_IRQ_HPD_INT:
11111110
dp_irq_hpd_handle(dp_priv, todo->data);
11121111
break;
1113-
case EV_HPD_REPLUG_INT:
1114-
/* do nothing */
1115-
break;
11161112
case EV_USER_NOTIFICATION:
11171113
dp_display_send_hpd_notification(dp_priv,
11181114
todo->data);
@@ -1157,19 +1153,19 @@ static irqreturn_t dp_display_irq_handler(int irq, void *dev_id)
11571153
DRM_DEBUG_DP("hpd isr status=%#x\n", hpd_isr_status);
11581154
if (hpd_isr_status & 0x0F) {
11591155
/* hpd related interrupts */
1160-
if (hpd_isr_status & DP_DP_HPD_PLUG_INT_MASK ||
1161-
hpd_isr_status & DP_DP_HPD_REPLUG_INT_MASK) {
1156+
if (hpd_isr_status & DP_DP_HPD_PLUG_INT_MASK)
11621157
dp_add_event(dp, EV_HPD_PLUG_INT, 0, 0);
1163-
}
11641158

11651159
if (hpd_isr_status & DP_DP_IRQ_HPD_INT_MASK) {
11661160
/* stop sentinel connect pending checking */
11671161
dp_del_event(dp, EV_CONNECT_PENDING_TIMEOUT);
11681162
dp_add_event(dp, EV_IRQ_HPD_INT, 0, 0);
11691163
}
11701164

1171-
if (hpd_isr_status & DP_DP_HPD_REPLUG_INT_MASK)
1172-
dp_add_event(dp, EV_HPD_REPLUG_INT, 0, 0);
1165+
if (hpd_isr_status & DP_DP_HPD_REPLUG_INT_MASK) {
1166+
dp_add_event(dp, EV_HPD_UNPLUG_INT, 0, 0);
1167+
dp_add_event(dp, EV_HPD_PLUG_INT, 0, 3);
1168+
}
11731169

11741170
if (hpd_isr_status & DP_DP_HPD_UNPLUG_INT_MASK)
11751171
dp_add_event(dp, EV_HPD_UNPLUG_INT, 0, 0);

0 commit comments

Comments
 (0)