mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 09:57:08 +03:00
nvgpu:cic: API to handle fatal error interrupt
Any corrected or uncorrected error reported by gpu hw will be seen by nvgpu-mon. nvgpu-mon will raise a devctl call to notify nvgpu-rm if its a fatal error interrupt. nvgpu_cic_mon_handle_fatal_intr is the corresponding handler which will walk through the entire tree structure of interrupts for all the subunits and enter quiesce state. Change-Id: I3c00c61a7f2c52ae1920f84ee7dfb65cba6b683d Signed-off-by: Kishan <kpalankar@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2801693 Reviewed-by: svcacv <svcacv@nvidia.com> Reviewed-by: Vaibhav Kachore <vkachore@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
69adc6c91d
commit
ea9aebb358
@@ -153,6 +153,18 @@ void nvgpu_cic_mon_intr_nonstall_handle(struct gk20a *g)
|
|||||||
(void)nvgpu_cic_rm_broadcast_last_irq_nonstall(g);
|
(void)nvgpu_cic_rm_broadcast_last_irq_nonstall(g);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONFIG_NVGPU_MON_PRESENT
|
||||||
|
int nvgpu_cic_mon_handle_fatal_intr(struct gk20a *g)
|
||||||
|
{
|
||||||
|
if (nvgpu_is_powered_off(g)) {
|
||||||
|
nvgpu_err(g, "GPU is already powered off");
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
g->ops.mc.isr_stall(g);
|
||||||
|
|
||||||
|
return 0U;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
u32 nvgpu_cic_mon_intr_stall_isr(struct gk20a *g)
|
u32 nvgpu_cic_mon_intr_stall_isr(struct gk20a *g)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -409,6 +409,22 @@ int nvgpu_cic_mon_report_err_safety_services(struct gk20a *g,
|
|||||||
*/
|
*/
|
||||||
int nvgpu_cic_mon_get_num_hw_modules(struct gk20a *g);
|
int nvgpu_cic_mon_get_num_hw_modules(struct gk20a *g);
|
||||||
|
|
||||||
|
#ifdef CONFIG_NVGPU_MON_PRESENT
|
||||||
|
/**
|
||||||
|
* @brief Fatal error interrupt handler for safety.
|
||||||
|
*
|
||||||
|
* @param g [in] The GPU driver struct.
|
||||||
|
*
|
||||||
|
* This function is invoked by NVGPU_MON_DEVCTL_NOTIFY_INTR devctl raised by nvgpu-mon.
|
||||||
|
* It is called to parse the interrupt tree and determine exact error.
|
||||||
|
* The unit ISR functions are invoked based on triggered interrupts.
|
||||||
|
*
|
||||||
|
* @retval -ENODEV if GPU is already powered off.
|
||||||
|
* @retval 0U if Fatal interrupt handling was performed succcessfully.
|
||||||
|
*/
|
||||||
|
int nvgpu_cic_mon_handle_fatal_intr(struct gk20a *g);
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Top half of stall interrupt ISR.
|
* @brief Top half of stall interrupt ISR.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user