@@ -2092,15 +2092,12 @@ static void it6505_hdcp_wait_ksv_list(struct work_struct *work)
2092
2092
ksv_list_check = it6505_hdcp_part2_ksvlist_check (it6505 );
2093
2093
DRM_DEV_DEBUG_DRIVER (dev , "ksv list ready, ksv list check %s" ,
2094
2094
ksv_list_check ? "pass" : "fail" );
2095
- if (ksv_list_check ) {
2096
- it6505_set_bits (it6505 , REG_HDCP_TRIGGER ,
2097
- HDCP_TRIGGER_KSV_DONE , HDCP_TRIGGER_KSV_DONE );
2095
+
2096
+ if (ksv_list_check )
2098
2097
return ;
2099
- }
2098
+
2100
2099
timeout :
2101
- it6505_set_bits (it6505 , REG_HDCP_TRIGGER ,
2102
- HDCP_TRIGGER_KSV_DONE | HDCP_TRIGGER_KSV_FAIL ,
2103
- HDCP_TRIGGER_KSV_DONE | HDCP_TRIGGER_KSV_FAIL );
2100
+ it6505_start_hdcp (it6505 );
2104
2101
}
2105
2102
2106
2103
static void it6505_hdcp_work (struct work_struct * work )
@@ -2473,7 +2470,11 @@ static void it6505_irq_hdcp_ksv_check(struct it6505 *it6505)
2473
2470
{
2474
2471
struct device * dev = it6505 -> dev ;
2475
2472
2476
- DRM_DEV_DEBUG_DRIVER (dev , "HDCP event Interrupt" );
2473
+ DRM_DEV_DEBUG_DRIVER (dev , "HDCP repeater R0 event Interrupt" );
2474
+ /* 1B01 HDCP encription should start when R0 is ready*/
2475
+ it6505_set_bits (it6505 , REG_HDCP_TRIGGER ,
2476
+ HDCP_TRIGGER_KSV_DONE , HDCP_TRIGGER_KSV_DONE );
2477
+
2477
2478
schedule_work (& it6505 -> hdcp_wait_ksv_list );
2478
2479
}
2479
2480
0 commit comments