File tree Expand file tree Collapse file tree 1 file changed +11
-4
lines changed Expand file tree Collapse file tree 1 file changed +11
-4
lines changed Original file line number Diff line number Diff line change @@ -589,10 +589,11 @@ struct panthor_group {
589
589
* @timedout: True when a timeout occurred on any of the queues owned by
590
590
* this group.
591
591
*
592
- * Timeouts can be reported by drm_sched or by the FW. In any case, any
593
- * timeout situation is unrecoverable, and the group becomes useless.
594
- * We simply wait for all references to be dropped so we can release the
595
- * group object.
592
+ * Timeouts can be reported by drm_sched or by the FW. If a reset is required,
593
+ * and the group can't be suspended, this also leads to a timeout. In any case,
594
+ * any timeout situation is unrecoverable, and the group becomes useless. We
595
+ * simply wait for all references to be dropped so we can release the group
596
+ * object.
596
597
*/
597
598
bool timedout ;
598
599
@@ -2640,6 +2641,12 @@ void panthor_sched_suspend(struct panthor_device *ptdev)
2640
2641
csgs_upd_ctx_init (& upd_ctx );
2641
2642
while (slot_mask ) {
2642
2643
u32 csg_id = ffs (slot_mask ) - 1 ;
2644
+ struct panthor_csg_slot * csg_slot = & sched -> csg_slots [csg_id ];
2645
+
2646
+ /* We consider group suspension failures as fatal and flag the
2647
+ * group as unusable by setting timedout=true.
2648
+ */
2649
+ csg_slot -> group -> timedout = true;
2643
2650
2644
2651
csgs_upd_ctx_queue_reqs (ptdev , & upd_ctx , csg_id ,
2645
2652
CSG_STATE_TERMINATE ,
You can’t perform that action at this time.
0 commit comments