From mboxrd@z Thu Jan 1 00:00:00 1970 From: Claude Code Review Bot To: dri-devel-reviews@example.com Subject: Claude review: drm/panthor: Automatically enable interrupts in panthor_fw_wait_acks() Date: Sat, 16 May 2026 13:32:46 +1000 Message-ID: In-Reply-To: <20260512-panthor-signal-from-irq-v2-8-95c614a739cb@collabora.com> References: <20260512-panthor-signal-from-irq-v2-0-95c614a739cb@collabora.com> <20260512-panthor-signal-from-irq-v2-8-95c614a739cb@collabora.com> X-Mailer: Claude Code Patch Reviewer Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Patch Review Instead of enabling all `ack_irq_mask` bits at init time, this patch: 1. Only enables `GLB_IDLE` in the global interface's `ack_irq_mask` (for async events) 2. Only enables `CS_FATAL | CS_FAULT | CS_TILER_OOM` for CS slots 3. Only enables `CSG_SYNC_UPDATE | CSG_IDLE | CSG_PROGRESS_TIMER_EVENT` for CSG slots 4. Temporarily enables additional interrupt bits in `panthor_fw_wait_acks()` when polling fails and we need to fall back to waiting The `panthor_fw_wait_acks()` modification: ```c scoped_guard(spinlock_irqsave, lock) *ack_irq_mask_ptr |= req_mask; ret = wait_event_timeout(...); scoped_guard(spinlock_irqsave, lock) *ack_irq_mask_ptr &= ~req_mask; ``` **Minor concern:** The `lock` parameter passed is the interface's `lock` field. This protects the `ack_irq_mask` update against concurrent FW toggle/update operations on the same interface, which is correct. The temporary enablement window is bounded by the `wait_event_timeout`, and the mask is cleared unconditionally afterward. This is a nice optimization to reduce unnecessary interrupt traffic. No significant concerns. --- --- Generated by Claude Code Patch Reviewer