static void check_workarounds(enum operation op) { igt_assert_eq(workaround_fail_count(), 0); switch (op) { case GPU_RESET: test_hang_gpu(); break; case SUSPEND_RESUME: test_suspend_resume(); break; case SIMPLE_READ: return; default: igt_assert(0); } igt_assert_eq(workaround_fail_count(), 0); }
/****************************************** * deal with event from usb_if_test UI, do usb_if_test thing * ******************************************/ RET_CODE usb_test_ui_event_ex(IfEvtMsg_t ui_event_msg) { unsigned long i; volatile unsigned long j; UINT32 base_addr = 0xb800F000; UINT32 vid = ui_event_msg.vid , pid = ui_event_msg.pid , port_id = ui_event_msg.port_id ; USB_LOGO_PRINTF("USB IF test mode...\n"); USB_LOGO_PRINTF("VID:0x%04x PID:0x%04x\n",vid,pid); //usb_if_test_info_show(vid,pid); if (sys_ic_is_M3202())//(sys_ic_get_chip_id() == ALI_M3202) base_addr = HC_M3202_BASE_ADDR; else if( (sys_ic_get_chip_id() == ALI_M3329E)&&(sys_ic_get_rev_id()>=IC_REV_5)) base_addr = HC_S3329E5_BASE_ADDR; else if ((sys_ic_get_chip_id() == ALI_M3329E)&&(sys_ic_get_rev_id()<IC_REV_5)) base_addr = HC_S3329E_BASE_ADDR; else if (sys_ic_get_chip_id() == ALI_S3602) base_addr = HC_S3602_BASE_ADDR; else if (sys_ic_get_chip_id() == ALI_S3602F) { if(s3602f_test_port == IF_FRONT_PROT) base_addr = HC_S3602F_BASE_ADDR; else if(s3602f_test_port == IF_REAR_PROT) base_addr = HC_S3602F_BASE_ADDR1; } else return !RET_SUCCESS; // usb invalid chip id // usb_hw_init(base_addr); //disable int *((volatile unsigned char *)(base_addr+0x1E))= 0x00; *((volatile unsigned char *)(base_addr+0x1F))= 0x00; *((volatile unsigned char *)(base_addr+0x62))= 0xFF; //TX_DRIVING +10% if ((sys_ic_get_chip_id() == ALI_M3329E)&&(sys_ic_get_rev_id()<IC_REV_5)) { *((volatile unsigned char *)0xb800007C) = 0x03; //USB_PLL_SEL: DISC_SEL/PD_HS/PD_FS/PD_PLL . SQUELCH_LEVEL -/TX_DRIVING - } if (sys_ic_get_chip_id() == ALI_S3602F) { *((volatile unsigned char *)(base_addr+0xF1))= 0x79; //UTMI_REGCTL[15:12] Squelch Level Control, UTMI_REGCTL[11:10] TX Driving Current Control, UTMI_REGCTL[9] Slew Rate control for TX. *((volatile unsigned char *)(base_addr+0xF0))= 0x14; //Bit 8-6: Reserved Bit 5: Turn OFF MOS NC in PLL's CHPUP UTMI_REGCTL[4:2] PLL Loop filter control UTMI_REGCTL[1:0] PLL Charge Pump selection } switch(pid) { case PID_test_se0: usb_if_test_flag = IF_TEST_SE0; USB_LOGO_PRINTF("Test SE0_NAK...\n"); //Test SE-> if (sys_ic_get_chip_id() == ALI_S3602F) *((volatile unsigned char *)(base_addr))= 0x20; *((volatile unsigned char *)(base_addr+0x3b))= 0x04; *((volatile unsigned char *)(base_addr+0x33))= 0x48; for(i=0;i<0xFFFF;i++) j=i; *((volatile unsigned char *)(base_addr+0x33))= 0x40; *((volatile unsigned char *)(base_addr+0x3F))= 0x44; break; case PID_test_J: usb_if_test_flag = IF_TEST_J; USB_LOGO_PRINTF("Test J...\n"); //Test J-> if (sys_ic_get_chip_id() == ALI_S3602F) *((volatile unsigned char *)(base_addr))= 0x20; *((volatile unsigned char *)(base_addr+0x3b))= 0x04; *((volatile unsigned char *)(base_addr+0x33))= 0x48; for(i=0;i<0xFFFF;i++) j=i; *((volatile unsigned char *)(base_addr+0x33))= 0x40; *((volatile unsigned char *)(base_addr+0x3F))= 0x41; break; case PID_test_K: usb_if_test_flag = IF_TEST_K; USB_LOGO_PRINTF("Test K...\n"); //Test K-> if (sys_ic_get_chip_id() == ALI_S3602F) *((volatile unsigned char *)(base_addr))= 0x20; *((volatile unsigned char *)(base_addr+0x3b))=0x04; *((volatile unsigned char *)(base_addr+0x33))= 0x48; for(i=0;i<0xFFFF;i++) j=i; *((volatile unsigned char *)(base_addr+0x33))= 0x40; *((volatile unsigned char *)(base_addr+0x3F))= 0x42; break; case PID_test_packet: usb_if_test_flag = IF_TEST_PACKET; USB_LOGO_PRINTF("Test Packet...\n"); //Test Packet-> if (sys_ic_get_chip_id() == ALI_S3602F) *((volatile unsigned char *)(base_addr))= 0x20; *((volatile unsigned char *)(base_addr+0x3b))= 0x04; *((volatile unsigned char *)(base_addr+0x33))= 0x48; for(i=0;i<0xFFFF;i++) j=i; *((volatile unsigned char *)(base_addr+0x33))= 0x40; *((volatile unsigned char *)(base_addr+0x3F))= 0x48; break; case PID_test_suspend: usb_if_test_flag = IF_TEST_SUSPEND; USB_LOGO_PRINTF("TEST_HS_HOST_PORT_SUSPEND_RESUME...\n"); if ((sys_ic_get_chip_id() == ALI_M3329E)&&(sys_ic_get_rev_id()<IC_REV_5)) *((volatile unsigned char *)0xb800007C) = 0x00; //USB_PLL_SEL: DISC_SEL/PD_HS/PD_FS/PD_PLL . SQUELCH_LEVEL -/TX_DRIVING - test_suspend_resume(base_addr); break; case PID_test_get_desc: usb_if_test_flag = IF_TEST_GET_DESC; USB_LOGO_PRINTF("TEST_SINGLE_STEP_GET_DEVIC_DESCRIPTOR...\n"); test_step_get_desc(base_addr); break; case PID_test_get_desc_data: usb_if_test_flag = IF_TEST_GET_DESC_DATA; USB_LOGO_PRINTF("TEST_SINGLE_STEP_GET_DEVIC_DESCRIPTOR_DATA...\n"); test_step_get_desc_data(base_addr); break; case PID_test_bus_enumeration: usb_if_test_flag = IF_TEST_GET_DESC_DATA; USB_LOGO_PRINTF("test_bus_enumeration...\n"); //usb_test_bus_enum(); osal_task_sleep(2000); USB_LOGO_PRINTF("test_bus_enumeration...\n"); //usb_test_bus_enum(); osal_task_sleep(2000); USB_LOGO_PRINTF("test_bus_enumeration...\n"); //usb_test_bus_enum(); break; default: USB_LOGO_PRINTF("PID err VID:0x%04x PID:0x%04x\n",vid,pid); break; } return RET_SUCCESS; }