mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 09:12:24 +03:00
gpu: nvgpu: add priv_ring.intr_retrigger HAL
Add a priv_ring.intr_retrigger HAL for chips that need to retrigger pending interrupts in the PRIV_RING ISR. Jira NVGPU-9217 Change-Id: I976f26a39d148a0ce1ad54b53d982dc0af58197b Signed-off-by: Austin Tajiri <atajiri@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2839756 Reviewed-by: Rajesh Devaraj <rdevaraj@nvidia.com> Reviewed-by: Seema Khowala <seemaj@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com> Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
976b4efe64
commit
6fffdddb7a
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* GP10B priv ring
|
||||
*
|
||||
* Copyright (c) 2017-2022, NVIDIA CORPORATION. All rights reserved.
|
||||
* Copyright (c) 2017-2023, NVIDIA CORPORATION. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -240,4 +240,8 @@ void gp10b_priv_ring_isr(struct gk20a *g)
|
||||
if (retries == 0U) {
|
||||
nvgpu_err(g, "priv ringmaster intr ack failed");
|
||||
}
|
||||
|
||||
if (g->ops.priv_ring.intr_retrigger != NULL) {
|
||||
g->ops.priv_ring.intr_retrigger(g);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2019-2022, NVIDIA CORPORATION. All rights reserved.
|
||||
* Copyright (c) 2019-2023, NVIDIA CORPORATION. All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -167,6 +167,21 @@ struct gops_priv_ring {
|
||||
|
||||
void (*isr_handle_1)(struct gk20a *g, u32 status1);
|
||||
|
||||
/**
|
||||
* @brief Writes the unit level INTR_RETRIGGER register.
|
||||
*
|
||||
* @param g [in] Pointer to GPU driver struct.
|
||||
*
|
||||
* This function writes the INTR_RETRIGGER register to handle the case
|
||||
* in which an interrupt is triggered between reading the interrupt
|
||||
* status register and clearing the interrupts. In this case, the rolled
|
||||
* up OR of pending interrupts will not change from 0 to 1, so an
|
||||
* interrupt message would not be sent to GIN. Writing to INTR_RETRIGGER
|
||||
* ensures that a new message is sent to GIN.
|
||||
*/
|
||||
|
||||
void (*intr_retrigger)(struct gk20a *g);
|
||||
|
||||
/**
|
||||
* @brief Returns number of enumerated Level Two Cache (LTC) chiplets.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user