aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/accel
diff options
context:
space:
mode:
authorOded Gabbay <ogabbay@kernel.org>2023-09-28 16:12:30 +0300
committerOded Gabbay <ogabbay@kernel.org>2023-10-09 12:37:24 +0300
commit4db74c0fdeb8138f6438d42a015c5dcdb2e6874c (patch)
tree1693c7b99677349c5083089e474fa75c48cfa185 /drivers/accel
parent0426e03126fba3e3e8c549504283f7213d31831f (diff)
downloadlinux-4db74c0fdeb8138f6438d42a015c5dcdb2e6874c.tar.gz
accel/habanalabs/gaudi2: fix spmu mask creation
event_types_num received from the user can be 0. In that case, the event_mask should be 0. In addition, to create a correct mask we need to match the number of event types to the bit location such that bit 0 represents a single event type, bit 1 represents 2 types and so on. Signed-off-by: Oded Gabbay <ogabbay@kernel.org> Reviewed-by: Ofir Bitton <obitton@habana.ai>
Diffstat (limited to 'drivers/accel')
-rw-r--r--drivers/accel/habanalabs/gaudi2/gaudi2_coresight.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/accel/habanalabs/gaudi2/gaudi2_coresight.c b/drivers/accel/habanalabs/gaudi2/gaudi2_coresight.c
index 14a855cdc96b6e..2423620ff358f1 100644
--- a/drivers/accel/habanalabs/gaudi2/gaudi2_coresight.c
+++ b/drivers/accel/habanalabs/gaudi2/gaudi2_coresight.c
@@ -2500,7 +2500,8 @@ static int gaudi2_config_spmu(struct hl_device *hdev, struct hl_debug_params *pa
* set enabled events mask based on input->event_types_num
*/
event_mask = 0x80000000;
- event_mask |= GENMASK(input->event_types_num, 0);
+ if (input->event_types_num)
+ event_mask |= GENMASK(input->event_types_num - 1, 0);
WREG32(base_reg + mmSPMU_PMCNTENSET_EL0_OFFSET, event_mask);
} else {