/kernel/linux/linux-6.6/drivers/accel/habanalabs/common/ |
H A D | hw_queue.c | 408 struct hl_hw_sob *hw_sob; in init_signal_cs() local 414 hw_sob = &prop->hw_sob[prop->curr_sob_offset]; in init_signal_cs() 416 cs_cmpl->hw_sob = hw_sob; in init_signal_cs() 421 cs_cmpl->hw_sob->sob_id, cs_cmpl->sob_val, q_idx, in init_signal_cs() 428 cs_cmpl->hw_sob->sob_id, 0, true); in init_signal_cs() 430 rc = hl_cs_signal_sob_wraparound_handler(hdev, q_idx, &hw_sob, 1, in init_signal_cs() 433 job->cs->sob_addr_offset = hw_sob->sob_addr; in init_signal_cs() 446 cs_cmpl->hw_sob in hl_hw_queue_encaps_sig_set_sob_info() 906 struct hl_hw_sob *hw_sob; sync_stream_queue_init() local [all...] |
H A D | command_submission.c | 119 struct hl_hw_sob *hw_sob = container_of(ref, struct hl_hw_sob, in hl_sob_reset() local 121 struct hl_device *hdev = hw_sob->hdev; in hl_sob_reset() 123 dev_dbg(hdev->dev, "reset sob id %u\n", hw_sob->sob_id); in hl_sob_reset() 125 hdev->asic_funcs->reset_sob(hdev, hw_sob); in hl_sob_reset() 127 hw_sob->need_reset = false; in hl_sob_reset() 132 struct hl_hw_sob *hw_sob = container_of(ref, struct hl_hw_sob, in hl_sob_reset_error() local 134 struct hl_device *hdev = hw_sob->hdev; in hl_sob_reset_error() 138 hw_sob->q_idx, hw_sob->sob_id); in hl_sob_reset_error() 141 void hw_sob_put(struct hl_hw_sob *hw_sob) in hw_sob_put() argument 147 hw_sob_put_err(struct hl_hw_sob *hw_sob) hw_sob_put_err() argument 153 hw_sob_get(struct hl_hw_sob *hw_sob) hw_sob_get() argument 1785 hl_cs_signal_sob_wraparound_handler(struct hl_device *hdev, u32 q_idx, struct hl_hw_sob **hw_sob, u32 count, bool encaps_sig) hl_cs_signal_sob_wraparound_handler() argument 1998 struct hl_hw_sob *hw_sob; cs_ioctl_reserve_signals() local 2116 struct hl_hw_sob *hw_sob; cs_ioctl_unreserve_signals() local [all...] |
H A D | context.c | 18 hw_sob_put(handle->hw_sob); in encaps_handle_do_release()
|
H A D | habanalabs.h | 841 * @hw_sob: the H/W SOB used in this signal/wait CS. 854 struct hl_hw_sob *hw_sob; member 1001 * @hw_sob: array of the used H/W SOBs by this H/W queue. 1015 struct hl_hw_sob hw_sob[HL_RSVD_SOBS]; member 3475 * @hw_sob: pointer to H/W SOB used in the reservation. 3486 struct hl_hw_sob *hw_sob; member 3899 void hw_sob_get(struct hl_hw_sob *hw_sob); 3900 void hw_sob_put(struct hl_hw_sob *hw_sob); 3914 struct hl_hw_sob **hw_sob, u32 count, bool encaps_sig);
|
/kernel/linux/linux-5.10/drivers/misc/habanalabs/common/ |
H A D | hw_queue.c | 405 struct hl_hw_sob *hw_sob; in init_signal_wait_cs() local 416 hw_sob = &hw_queue->hw_sob[hw_queue->curr_sob_offset]; in init_signal_wait_cs() 418 cs_cmpl->hw_sob = hw_sob; in init_signal_wait_cs() 423 cs_cmpl->hw_sob->sob_id, cs_cmpl->sob_val, q_idx); in init_signal_wait_cs() 426 cs_cmpl->hw_sob->sob_id); in init_signal_wait_cs() 428 kref_get(&hw_sob->kref); in init_signal_wait_cs() 437 kref_put(&hw_sob->kref, hl_sob_reset_error); in init_signal_wait_cs() 455 cs_cmpl->hw_sob in init_signal_wait_cs() 719 struct hl_hw_sob *hw_sob; sync_stream_queue_init() local [all...] |
H A D | command_submission.c | 23 struct hl_hw_sob *hw_sob = container_of(ref, struct hl_hw_sob, in hl_sob_reset() local 25 struct hl_device *hdev = hw_sob->hdev; in hl_sob_reset() 27 hdev->asic_funcs->reset_sob(hdev, hw_sob); in hl_sob_reset() 32 struct hl_hw_sob *hw_sob = container_of(ref, struct hl_hw_sob, in hl_sob_reset_error() local 34 struct hl_device *hdev = hw_sob->hdev; in hl_sob_reset_error() 38 hw_sob->q_idx, hw_sob->sob_id); in hl_sob_reset_error() 50 * an attached hw_sob object that we should handle here in hl_fence_release() 62 hl_cs_cmpl->hw_sob->sob_id, in hl_fence_release() 82 kref_put(&hl_cs_cmpl->hw_sob in hl_fence_release() [all...] |
H A D | habanalabs.h | 396 * @hw_sob: the H/W SOB used in this signal/wait CS. 405 struct hl_hw_sob *hw_sob; member 494 * @hw_sob: array of the used H/W SOBs by this H/W queue. 515 struct hl_hw_sob hw_sob[HL_RSVD_SOBS]; member
|
/kernel/linux/linux-6.6/drivers/accel/habanalabs/gaudi/ |
H A D | gaudi.c | 1277 cs_cmpl->hw_sob->sob_id, in gaudi_collective_slave_init_job() 1283 wait_prop.sob_base = cs_cmpl->hw_sob->sob_id; in gaudi_collective_slave_init_job() 1292 cs_cmpl->hw_sob->sob_id, cs_cmpl->sob_val, in gaudi_collective_slave_init_job() 1325 cs_cmpl->hw_sob = handle->hw_sob; in gaudi_collective_wait_init_cs() 1326 /* at this checkpoint we only need the hw_sob pointer in gaudi_collective_wait_init_cs() 1335 cs_cmpl->hw_sob = signal_cs_cmpl->hw_sob; in gaudi_collective_wait_init_cs() 1340 * if yes then don't send any wait cs since the hw_sob in gaudi_collective_wait_init_cs() 1342 * then get refcount to hw_sob t in gaudi_collective_wait_init_cs() 8753 struct hl_hw_sob *hw_sob = (struct hl_hw_sob *) data; gaudi_reset_sob() local [all...] |
/kernel/linux/linux-5.10/drivers/misc/habanalabs/gaudi/ |
H A D | gaudi.c | 6585 struct hl_hw_sob *hw_sob = (struct hl_hw_sob *) data; in gaudi_reset_sob() local 6587 dev_dbg(hdev->dev, "reset SOB, q_idx: %d, sob_id: %d\n", hw_sob->q_idx, in gaudi_reset_sob() 6588 hw_sob->sob_id); in gaudi_reset_sob() 6590 WREG32(mmSYNC_MNGR_W_S_SYNC_MNGR_OBJS_SOB_OBJ_0 + hw_sob->sob_id * 4, in gaudi_reset_sob() 6593 kref_init(&hw_sob->kref); in gaudi_reset_sob()
|
/kernel/linux/linux-6.6/drivers/accel/habanalabs/gaudi2/ |
H A D | gaudi2.c | 10738 struct hl_hw_sob *hw_sob = data; in gaudi2_reset_sob() local 10740 dev_dbg(hdev->dev, "reset SOB, q_idx: %d, sob_id: %d\n", hw_sob->q_idx, hw_sob->sob_id); in gaudi2_reset_sob() 10742 WREG32(mmDCORE0_SYNC_MNGR_OBJS_SOB_OBJ_0 + hw_sob->sob_id * 4, 0); in gaudi2_reset_sob() 10744 kref_init(&hw_sob->kref); in gaudi2_reset_sob()
|