Lines Matching refs:hdev

139 static void venus_set_state(struct venus_hfi_device *hdev,  in venus_set_state()  argument
142 mutex_lock(&hdev->lock); in venus_set_state()
143 hdev->state = state; in venus_set_state()
144 mutex_unlock(&hdev->lock); in venus_set_state()
147 static bool venus_is_valid_state(struct venus_hfi_device *hdev) in venus_is_valid_state() argument
149 return hdev->state != VENUS_STATE_DEINIT; in venus_is_valid_state()
152 static void venus_dump_packet(struct venus_hfi_device *hdev, const void *packet) in venus_dump_packet() argument
163 static int venus_write_queue(struct venus_hfi_device *hdev, in venus_write_queue() argument
179 venus_dump_packet(hdev, packet); in venus_write_queue()
232 static int venus_read_queue(struct venus_hfi_device *hdev, in venus_read_queue() argument
320 venus_dump_packet(hdev, pkt); in venus_read_queue()
325 static int venus_alloc(struct venus_hfi_device *hdev, struct mem_desc *desc, in venus_alloc() argument
328 struct device *dev = hdev->core->dev; in venus_alloc()
341 static void venus_free(struct venus_hfi_device *hdev, struct mem_desc *mem) in venus_free() argument
343 struct device *dev = hdev->core->dev; in venus_free()
348 static void venus_writel(struct venus_hfi_device *hdev, u32 reg, u32 value) in venus_writel() argument
350 writel(value, hdev->core->base + reg); in venus_writel()
353 static u32 venus_readl(struct venus_hfi_device *hdev, u32 reg) in venus_readl() argument
355 return readl(hdev->core->base + reg); in venus_readl()
358 static void venus_set_registers(struct venus_hfi_device *hdev) in venus_set_registers() argument
360 const struct venus_resources *res = hdev->core->res; in venus_set_registers()
366 venus_writel(hdev, tbl[i].reg, tbl[i].value); in venus_set_registers()
369 static void venus_soft_int(struct venus_hfi_device *hdev) in venus_soft_int() argument
371 venus_writel(hdev, CPU_IC_SOFTINT, BIT(CPU_IC_SOFTINT_H2A_SHIFT)); in venus_soft_int()
374 static int venus_iface_cmdq_write_nolock(struct venus_hfi_device *hdev, in venus_iface_cmdq_write_nolock() argument
377 struct device *dev = hdev->core->dev; in venus_iface_cmdq_write_nolock()
383 if (!venus_is_valid_state(hdev)) in venus_iface_cmdq_write_nolock()
387 hdev->last_packet_type = cmd_packet->pkt_type; in venus_iface_cmdq_write_nolock()
389 queue = &hdev->queues[IFACEQ_CMD_IDX]; in venus_iface_cmdq_write_nolock()
391 ret = venus_write_queue(hdev, queue, pkt, &rx_req); in venus_iface_cmdq_write_nolock()
398 venus_soft_int(hdev); in venus_iface_cmdq_write_nolock()
403 static int venus_iface_cmdq_write(struct venus_hfi_device *hdev, void *pkt) in venus_iface_cmdq_write() argument
407 mutex_lock(&hdev->lock); in venus_iface_cmdq_write()
408 ret = venus_iface_cmdq_write_nolock(hdev, pkt); in venus_iface_cmdq_write()
409 mutex_unlock(&hdev->lock); in venus_iface_cmdq_write()
417 struct venus_hfi_device *hdev = to_hfi_priv(core); in venus_hfi_core_set_resource() local
431 ret = venus_iface_cmdq_write(hdev, pkt); in venus_hfi_core_set_resource()
438 static int venus_boot_core(struct venus_hfi_device *hdev) in venus_boot_core() argument
440 struct device *dev = hdev->core->dev; in venus_boot_core()
446 venus_writel(hdev, VIDC_CTRL_INIT, BIT(VIDC_CTRL_INIT_CTRL_SHIFT)); in venus_boot_core()
447 venus_writel(hdev, WRAPPER_INTR_MASK, WRAPPER_INTR_MASK_A2HVCODEC_MASK); in venus_boot_core()
448 venus_writel(hdev, CPU_CS_SCIACMDARG3, 1); in venus_boot_core()
451 ctrl_status = venus_readl(hdev, CPU_CS_SCIACMDARG0); in venus_boot_core()
468 static u32 venus_hwversion(struct venus_hfi_device *hdev) in venus_hwversion() argument
470 struct device *dev = hdev->core->dev; in venus_hwversion()
471 u32 ver = venus_readl(hdev, WRAPPER_HW_VERSION); in venus_hwversion()
485 static int venus_run(struct venus_hfi_device *hdev) in venus_run() argument
487 struct device *dev = hdev->core->dev; in venus_run()
494 venus_set_registers(hdev); in venus_run()
496 venus_writel(hdev, UC_REGION_ADDR, hdev->ifaceq_table.da); in venus_run()
497 venus_writel(hdev, UC_REGION_SIZE, SHARED_QSIZE); in venus_run()
498 venus_writel(hdev, CPU_CS_SCIACMDARG2, hdev->ifaceq_table.da); in venus_run()
499 venus_writel(hdev, CPU_CS_SCIACMDARG1, 0x01); in venus_run()
500 if (hdev->sfr.da) in venus_run()
501 venus_writel(hdev, SFR_ADDR, hdev->sfr.da); in venus_run()
503 ret = venus_boot_core(hdev); in venus_run()
509 venus_hwversion(hdev); in venus_run()
514 static int venus_halt_axi(struct venus_hfi_device *hdev) in venus_halt_axi() argument
516 void __iomem *base = hdev->core->base; in venus_halt_axi()
517 struct device *dev = hdev->core->dev; in venus_halt_axi()
521 if (IS_V4(hdev->core)) { in venus_halt_axi()
522 val = venus_readl(hdev, WRAPPER_CPU_AXI_HALT); in venus_halt_axi()
524 venus_writel(hdev, WRAPPER_CPU_AXI_HALT, val); in venus_halt_axi()
540 val = venus_readl(hdev, VBIF_AXI_HALT_CTRL0); in venus_halt_axi()
542 venus_writel(hdev, VBIF_AXI_HALT_CTRL0, val); in venus_halt_axi()
557 static int venus_power_off(struct venus_hfi_device *hdev) in venus_power_off() argument
561 if (!hdev->power_enabled) in venus_power_off()
564 ret = venus_set_hw_state_suspend(hdev->core); in venus_power_off()
568 ret = venus_halt_axi(hdev); in venus_power_off()
572 hdev->power_enabled = false; in venus_power_off()
577 static int venus_power_on(struct venus_hfi_device *hdev) in venus_power_on() argument
581 if (hdev->power_enabled) in venus_power_on()
584 ret = venus_set_hw_state_resume(hdev->core); in venus_power_on()
588 ret = venus_run(hdev); in venus_power_on()
592 hdev->power_enabled = true; in venus_power_on()
597 venus_set_hw_state_suspend(hdev->core); in venus_power_on()
599 hdev->power_enabled = false; in venus_power_on()
603 static int venus_iface_msgq_read_nolock(struct venus_hfi_device *hdev, in venus_iface_msgq_read_nolock() argument
610 if (!venus_is_valid_state(hdev)) in venus_iface_msgq_read_nolock()
613 queue = &hdev->queues[IFACEQ_MSG_IDX]; in venus_iface_msgq_read_nolock()
615 ret = venus_read_queue(hdev, queue, pkt, &tx_req); in venus_iface_msgq_read_nolock()
620 venus_soft_int(hdev); in venus_iface_msgq_read_nolock()
625 static int venus_iface_msgq_read(struct venus_hfi_device *hdev, void *pkt) in venus_iface_msgq_read() argument
629 mutex_lock(&hdev->lock); in venus_iface_msgq_read()
630 ret = venus_iface_msgq_read_nolock(hdev, pkt); in venus_iface_msgq_read()
631 mutex_unlock(&hdev->lock); in venus_iface_msgq_read()
636 static int venus_iface_dbgq_read_nolock(struct venus_hfi_device *hdev, in venus_iface_dbgq_read_nolock() argument
643 ret = venus_is_valid_state(hdev); in venus_iface_dbgq_read_nolock()
647 queue = &hdev->queues[IFACEQ_DBG_IDX]; in venus_iface_dbgq_read_nolock()
649 ret = venus_read_queue(hdev, queue, pkt, &tx_req); in venus_iface_dbgq_read_nolock()
654 venus_soft_int(hdev); in venus_iface_dbgq_read_nolock()
659 static int venus_iface_dbgq_read(struct venus_hfi_device *hdev, void *pkt) in venus_iface_dbgq_read() argument
666 mutex_lock(&hdev->lock); in venus_iface_dbgq_read()
667 ret = venus_iface_dbgq_read_nolock(hdev, pkt); in venus_iface_dbgq_read()
668 mutex_unlock(&hdev->lock); in venus_iface_dbgq_read()
689 static void venus_interface_queues_release(struct venus_hfi_device *hdev) in venus_interface_queues_release() argument
691 mutex_lock(&hdev->lock); in venus_interface_queues_release()
693 venus_free(hdev, &hdev->ifaceq_table); in venus_interface_queues_release()
694 venus_free(hdev, &hdev->sfr); in venus_interface_queues_release()
696 memset(hdev->queues, 0, sizeof(hdev->queues)); in venus_interface_queues_release()
697 memset(&hdev->ifaceq_table, 0, sizeof(hdev->ifaceq_table)); in venus_interface_queues_release()
698 memset(&hdev->sfr, 0, sizeof(hdev->sfr)); in venus_interface_queues_release()
700 mutex_unlock(&hdev->lock); in venus_interface_queues_release()
703 static int venus_interface_queues_init(struct venus_hfi_device *hdev) in venus_interface_queues_init() argument
713 ret = venus_alloc(hdev, &desc, ALIGNED_QUEUE_SIZE); in venus_interface_queues_init()
717 hdev->ifaceq_table = desc; in venus_interface_queues_init()
721 queue = &hdev->queues[i]; in venus_interface_queues_init()
727 IFACEQ_GET_QHDR_START_ADDR(hdev->ifaceq_table.kva, i); in venus_interface_queues_init()
741 tbl_hdr = hdev->ifaceq_table.kva; in venus_interface_queues_init()
753 queue = &hdev->queues[IFACEQ_DBG_IDX]; in venus_interface_queues_init()
756 ret = venus_alloc(hdev, &desc, ALIGNED_SFR_SIZE); in venus_interface_queues_init()
758 hdev->sfr.da = 0; in venus_interface_queues_init()
760 hdev->sfr = desc; in venus_interface_queues_init()
761 sfr = hdev->sfr.kva; in venus_interface_queues_init()
771 static int venus_sys_set_debug(struct venus_hfi_device *hdev, u32 debug) in venus_sys_set_debug() argument
781 ret = venus_iface_cmdq_write(hdev, pkt); in venus_sys_set_debug()
788 static int venus_sys_set_coverage(struct venus_hfi_device *hdev, u32 mode) in venus_sys_set_coverage() argument
798 ret = venus_iface_cmdq_write(hdev, pkt); in venus_sys_set_coverage()
805 static int venus_sys_set_idle_message(struct venus_hfi_device *hdev, in venus_sys_set_idle_message() argument
819 ret = venus_iface_cmdq_write(hdev, pkt); in venus_sys_set_idle_message()
826 static int venus_sys_set_power_control(struct venus_hfi_device *hdev, in venus_sys_set_power_control() argument
837 ret = venus_iface_cmdq_write(hdev, pkt); in venus_sys_set_power_control()
844 static int venus_get_queue_size(struct venus_hfi_device *hdev, in venus_get_queue_size() argument
852 qhdr = hdev->queues[index].qhdr; in venus_get_queue_size()
859 static int venus_sys_set_default_properties(struct venus_hfi_device *hdev) in venus_sys_set_default_properties() argument
861 struct device *dev = hdev->core->dev; in venus_sys_set_default_properties()
864 ret = venus_sys_set_debug(hdev, venus_fw_debug); in venus_sys_set_default_properties()
873 if (IS_V4(hdev->core)) in venus_sys_set_default_properties()
876 ret = venus_sys_set_idle_message(hdev, venus_sys_idle_indicator); in venus_sys_set_default_properties()
880 ret = venus_sys_set_power_control(hdev, venus_fw_low_power_mode); in venus_sys_set_default_properties()
890 struct venus_hfi_device *hdev = to_hfi_priv(inst->core); in venus_session_cmd() local
895 return venus_iface_cmdq_write(hdev, &pkt); in venus_session_cmd()
898 static void venus_flush_debug_queue(struct venus_hfi_device *hdev) in venus_flush_debug_queue() argument
900 struct device *dev = hdev->core->dev; in venus_flush_debug_queue()
901 void *packet = hdev->dbg_buf; in venus_flush_debug_queue()
903 while (!venus_iface_dbgq_read(hdev, packet)) { in venus_flush_debug_queue()
914 static int venus_prepare_power_collapse(struct venus_hfi_device *hdev, in venus_prepare_power_collapse() argument
921 init_completion(&hdev->pwr_collapse_prep); in venus_prepare_power_collapse()
925 ret = venus_iface_cmdq_write(hdev, &pkt); in venus_prepare_power_collapse()
932 ret = wait_for_completion_timeout(&hdev->pwr_collapse_prep, timeout); in venus_prepare_power_collapse()
934 venus_flush_debug_queue(hdev); in venus_prepare_power_collapse()
941 static int venus_are_queues_empty(struct venus_hfi_device *hdev) in venus_are_queues_empty() argument
945 ret1 = venus_get_queue_size(hdev, IFACEQ_MSG_IDX); in venus_are_queues_empty()
949 ret2 = venus_get_queue_size(hdev, IFACEQ_CMD_IDX); in venus_are_queues_empty()
959 static void venus_sfr_print(struct venus_hfi_device *hdev) in venus_sfr_print() argument
961 struct device *dev = hdev->core->dev; in venus_sfr_print()
962 struct hfi_sfr *sfr = hdev->sfr.kva; in venus_sfr_print()
979 static void venus_process_msg_sys_error(struct venus_hfi_device *hdev, in venus_process_msg_sys_error() argument
987 venus_set_state(hdev, VENUS_STATE_DEINIT); in venus_process_msg_sys_error()
989 venus_sfr_print(hdev); in venus_process_msg_sys_error()
994 struct venus_hfi_device *hdev = to_hfi_priv(core); in venus_isr_thread() local
999 if (!hdev) in venus_isr_thread()
1002 res = hdev->core->res; in venus_isr_thread()
1003 pkt = hdev->pkt_buf; in venus_isr_thread()
1006 while (!venus_iface_msgq_read(hdev, pkt)) { in venus_isr_thread()
1010 venus_process_msg_sys_error(hdev, pkt); in venus_isr_thread()
1016 hdev); in venus_isr_thread()
1019 complete(&hdev->release_resource); in venus_isr_thread()
1022 complete(&hdev->pwr_collapse_prep); in venus_isr_thread()
1029 venus_flush_debug_queue(hdev); in venus_isr_thread()
1036 struct venus_hfi_device *hdev = to_hfi_priv(core); in venus_isr() local
1039 if (!hdev) in venus_isr()
1042 status = venus_readl(hdev, WRAPPER_INTR_STATUS); in venus_isr()
1047 hdev->irq_status = status; in venus_isr()
1049 venus_writel(hdev, CPU_CS_A2HSOFTINTCLR, 1); in venus_isr()
1050 venus_writel(hdev, WRAPPER_INTR_CLEAR, status); in venus_isr()
1057 struct venus_hfi_device *hdev = to_hfi_priv(core); in venus_core_init() local
1065 venus_set_state(hdev, VENUS_STATE_INIT); in venus_core_init()
1067 ret = venus_iface_cmdq_write(hdev, &pkt); in venus_core_init()
1073 ret = venus_iface_cmdq_write(hdev, &version_pkt); in venus_core_init()
1077 ret = venus_sys_set_default_properties(hdev); in venus_core_init()
1086 struct venus_hfi_device *hdev = to_hfi_priv(core); in venus_core_deinit() local
1088 venus_set_state(hdev, VENUS_STATE_DEINIT); in venus_core_deinit()
1089 hdev->suspended = true; in venus_core_deinit()
1090 hdev->power_enabled = false; in venus_core_deinit()
1097 struct venus_hfi_device *hdev = to_hfi_priv(core); in venus_core_ping() local
1102 return venus_iface_cmdq_write(hdev, &pkt); in venus_core_ping()
1107 struct venus_hfi_device *hdev = to_hfi_priv(core); in venus_core_trigger_ssr() local
1115 return venus_iface_cmdq_write(hdev, &pkt); in venus_core_trigger_ssr()
1121 struct venus_hfi_device *hdev = to_hfi_priv(inst->core); in venus_session_init() local
1125 ret = venus_sys_set_debug(hdev, venus_fw_debug); in venus_session_init()
1133 ret = venus_iface_cmdq_write(hdev, &pkt); in venus_session_init()
1140 venus_flush_debug_queue(hdev); in venus_session_init()
1146 struct venus_hfi_device *hdev = to_hfi_priv(inst->core); in venus_session_end() local
1147 struct device *dev = hdev->core->dev; in venus_session_end()
1150 if (venus_sys_set_coverage(hdev, venus_fw_coverage)) in venus_session_end()
1159 struct venus_hfi_device *hdev = to_hfi_priv(inst->core); in venus_session_abort() local
1161 venus_flush_debug_queue(hdev); in venus_session_abort()
1168 struct venus_hfi_device *hdev = to_hfi_priv(inst->core); in venus_session_flush() local
1176 return venus_iface_cmdq_write(hdev, &pkt); in venus_session_flush()
1197 struct venus_hfi_device *hdev = to_hfi_priv(inst->core); in venus_session_etb() local
1208 ret = venus_iface_cmdq_write(hdev, &pkt); in venus_session_etb()
1216 ret = venus_iface_cmdq_write(hdev, &pkt); in venus_session_etb()
1227 struct venus_hfi_device *hdev = to_hfi_priv(inst->core); in venus_session_ftb() local
1235 return venus_iface_cmdq_write(hdev, &pkt); in venus_session_ftb()
1241 struct venus_hfi_device *hdev = to_hfi_priv(inst->core); in venus_session_set_buffers() local
1255 return venus_iface_cmdq_write(hdev, pkt); in venus_session_set_buffers()
1261 struct venus_hfi_device *hdev = to_hfi_priv(inst->core); in venus_session_unset_buffers() local
1275 return venus_iface_cmdq_write(hdev, pkt); in venus_session_unset_buffers()
1291 struct venus_hfi_device *hdev = to_hfi_priv(inst->core); in venus_session_parse_seq_hdr() local
1302 ret = venus_iface_cmdq_write(hdev, pkt); in venus_session_parse_seq_hdr()
1312 struct venus_hfi_device *hdev = to_hfi_priv(inst->core); in venus_session_get_seq_hdr() local
1323 return venus_iface_cmdq_write(hdev, pkt); in venus_session_get_seq_hdr()
1329 struct venus_hfi_device *hdev = to_hfi_priv(inst->core); in venus_session_set_property() local
1342 return venus_iface_cmdq_write(hdev, pkt); in venus_session_set_property()
1347 struct venus_hfi_device *hdev = to_hfi_priv(inst->core); in venus_session_get_property() local
1355 return venus_iface_cmdq_write(hdev, &pkt); in venus_session_get_property()
1360 struct venus_hfi_device *hdev = to_hfi_priv(core); in venus_resume() local
1363 mutex_lock(&hdev->lock); in venus_resume()
1365 if (!hdev->suspended) in venus_resume()
1368 ret = venus_power_on(hdev); in venus_resume()
1372 hdev->suspended = false; in venus_resume()
1374 mutex_unlock(&hdev->lock); in venus_resume()
1381 struct venus_hfi_device *hdev = to_hfi_priv(core); in venus_suspend_1xx() local
1386 if (!hdev->power_enabled || hdev->suspended) in venus_suspend_1xx()
1389 mutex_lock(&hdev->lock); in venus_suspend_1xx()
1390 ret = venus_is_valid_state(hdev); in venus_suspend_1xx()
1391 mutex_unlock(&hdev->lock); in venus_suspend_1xx()
1398 ret = venus_prepare_power_collapse(hdev, true); in venus_suspend_1xx()
1404 mutex_lock(&hdev->lock); in venus_suspend_1xx()
1406 if (hdev->last_packet_type != HFI_CMD_SYS_PC_PREP) { in venus_suspend_1xx()
1407 mutex_unlock(&hdev->lock); in venus_suspend_1xx()
1411 ret = venus_are_queues_empty(hdev); in venus_suspend_1xx()
1413 mutex_unlock(&hdev->lock); in venus_suspend_1xx()
1417 ctrl_status = venus_readl(hdev, CPU_CS_SCIACMDARG0); in venus_suspend_1xx()
1419 mutex_unlock(&hdev->lock); in venus_suspend_1xx()
1423 ret = venus_power_off(hdev); in venus_suspend_1xx()
1425 mutex_unlock(&hdev->lock); in venus_suspend_1xx()
1429 hdev->suspended = true; in venus_suspend_1xx()
1431 mutex_unlock(&hdev->lock); in venus_suspend_1xx()
1436 static bool venus_cpu_and_video_core_idle(struct venus_hfi_device *hdev) in venus_cpu_and_video_core_idle() argument
1440 cpu_status = venus_readl(hdev, WRAPPER_CPU_STATUS); in venus_cpu_and_video_core_idle()
1441 ctrl_status = venus_readl(hdev, CPU_CS_SCIACMDARG0); in venus_cpu_and_video_core_idle()
1450 static bool venus_cpu_idle_and_pc_ready(struct venus_hfi_device *hdev) in venus_cpu_idle_and_pc_ready() argument
1454 cpu_status = venus_readl(hdev, WRAPPER_CPU_STATUS); in venus_cpu_idle_and_pc_ready()
1455 ctrl_status = venus_readl(hdev, CPU_CS_SCIACMDARG0); in venus_cpu_idle_and_pc_ready()
1466 struct venus_hfi_device *hdev = to_hfi_priv(core); in venus_suspend_3xx() local
1472 if (!hdev->power_enabled || hdev->suspended) in venus_suspend_3xx()
1475 mutex_lock(&hdev->lock); in venus_suspend_3xx()
1476 ret = venus_is_valid_state(hdev); in venus_suspend_3xx()
1477 mutex_unlock(&hdev->lock); in venus_suspend_3xx()
1484 ctrl_status = venus_readl(hdev, CPU_CS_SCIACMDARG0); in venus_suspend_3xx()
1496 ret = readx_poll_timeout(venus_cpu_and_video_core_idle, hdev, val, val, in venus_suspend_3xx()
1501 ret = venus_prepare_power_collapse(hdev, false); in venus_suspend_3xx()
1507 ret = readx_poll_timeout(venus_cpu_idle_and_pc_ready, hdev, val, val, in venus_suspend_3xx()
1513 mutex_lock(&hdev->lock); in venus_suspend_3xx()
1515 ret = venus_power_off(hdev); in venus_suspend_3xx()
1518 mutex_unlock(&hdev->lock); in venus_suspend_3xx()
1522 hdev->suspended = true; in venus_suspend_3xx()
1524 mutex_unlock(&hdev->lock); in venus_suspend_3xx()
1570 struct venus_hfi_device *hdev = to_hfi_priv(core); in venus_hfi_destroy() local
1572 venus_interface_queues_release(hdev); in venus_hfi_destroy()
1573 mutex_destroy(&hdev->lock); in venus_hfi_destroy()
1574 kfree(hdev); in venus_hfi_destroy()
1581 struct venus_hfi_device *hdev; in venus_hfi_create() local
1584 hdev = kzalloc(sizeof(*hdev), GFP_KERNEL); in venus_hfi_create()
1585 if (!hdev) in venus_hfi_create()
1588 mutex_init(&hdev->lock); in venus_hfi_create()
1590 hdev->core = core; in venus_hfi_create()
1591 hdev->suspended = true; in venus_hfi_create()
1592 core->priv = hdev; in venus_hfi_create()
1598 ret = venus_interface_queues_init(hdev); in venus_hfi_create()
1605 kfree(hdev); in venus_hfi_create()
1613 struct venus_hfi_device *hdev = to_hfi_priv(core); in venus_hfi_queues_reinit() local
1619 mutex_lock(&hdev->lock); in venus_hfi_queues_reinit()
1622 queue = &hdev->queues[i]; in venus_hfi_queues_reinit()
1624 IFACEQ_GET_QHDR_START_ADDR(hdev->ifaceq_table.kva, i); in venus_hfi_queues_reinit()
1638 tbl_hdr = hdev->ifaceq_table.kva; in venus_hfi_queues_reinit()
1650 queue = &hdev->queues[IFACEQ_DBG_IDX]; in venus_hfi_queues_reinit()
1653 sfr = hdev->sfr.kva; in venus_hfi_queues_reinit()
1659 mutex_unlock(&hdev->lock); in venus_hfi_queues_reinit()