mirror of https://gitee.com/openkylin/linux.git
habanalabs: support fetching first available user CQ
User must be aware of the available CQs when it needs to use them. Signed-off-by: Ofir Bitton <obitton@habana.ai> Reviewed-by: Oded Gabbay <ogabbay@kernel.org> Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
This commit is contained in:
parent
5dbd7b4de6
commit
e52606d2f5
|
@ -411,6 +411,7 @@ struct hl_mmu_properties {
|
|||
* @first_available_user_mon: first monitor available for the user
|
||||
* @first_available_user_msix_interrupt: first available msix interrupt
|
||||
* reserved for the user
|
||||
* @first_available_cq: first available CQ for the user.
|
||||
* @tpc_enabled_mask: which TPCs are enabled.
|
||||
* @completion_queues_count: number of completion queues.
|
||||
* @fw_security_disabled: true if security measures are disabled in firmware,
|
||||
|
@ -475,6 +476,7 @@ struct asic_fixed_properties {
|
|||
u16 first_available_user_sob[HL_MAX_DCORES];
|
||||
u16 first_available_user_mon[HL_MAX_DCORES];
|
||||
u16 first_available_user_msix_interrupt;
|
||||
u16 first_available_cq[HL_MAX_DCORES];
|
||||
u8 tpc_enabled_mask;
|
||||
u8 completion_queues_count;
|
||||
u8 fw_security_disabled;
|
||||
|
|
|
@ -397,7 +397,8 @@ static int sync_manager_info(struct hl_fpriv *hpriv, struct hl_info_args *args)
|
|||
prop->first_available_user_sob[args->dcore_id];
|
||||
sm_info.first_available_monitor =
|
||||
prop->first_available_user_mon[args->dcore_id];
|
||||
|
||||
sm_info.first_available_cq =
|
||||
prop->first_available_cq[args->dcore_id];
|
||||
|
||||
return copy_to_user(out, &sm_info, min_t(size_t, (size_t) max_size,
|
||||
sizeof(sm_info))) ? -EFAULT : 0;
|
||||
|
|
|
@ -529,6 +529,9 @@ static int gaudi_get_fixed_properties(struct hl_device *hdev)
|
|||
|
||||
prop->first_available_user_msix_interrupt = USHRT_MAX;
|
||||
|
||||
for (i = 0 ; i < HL_MAX_DCORES ; i++)
|
||||
prop->first_available_cq[i] = USHRT_MAX;
|
||||
|
||||
/* disable fw security for now, set it in a later stage */
|
||||
prop->fw_security_disabled = true;
|
||||
prop->fw_security_status_valid = false;
|
||||
|
|
|
@ -457,6 +457,9 @@ int goya_get_fixed_properties(struct hl_device *hdev)
|
|||
|
||||
prop->first_available_user_msix_interrupt = USHRT_MAX;
|
||||
|
||||
for (i = 0 ; i < HL_MAX_DCORES ; i++)
|
||||
prop->first_available_cq[i] = USHRT_MAX;
|
||||
|
||||
/* disable fw security for now, set it in a later stage */
|
||||
prop->fw_security_disabled = true;
|
||||
prop->fw_security_status_valid = false;
|
||||
|
|
|
@ -414,10 +414,13 @@ struct hl_pll_frequency_info {
|
|||
* struct hl_info_sync_manager - sync manager information
|
||||
* @first_available_sync_object: first available sob
|
||||
* @first_available_monitor: first available monitor
|
||||
* @first_available_cq: first available cq
|
||||
*/
|
||||
struct hl_info_sync_manager {
|
||||
__u32 first_available_sync_object;
|
||||
__u32 first_available_monitor;
|
||||
__u32 first_available_cq;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue