39 lines
1.3 KiB
Diff
39 lines
1.3 KiB
Diff
From 181b887bc09ec7ca626253665abd4d82e5f69a1a Mon Sep 17 00:00:00 2001
|
|
From: liusheng <liusheng@eswincomputing.com>
|
|
Date: Wed, 24 Jul 2024 16:08:13 +0800
|
|
Subject: [PATCH 118/219] fix:put power on if the interrupt came
|
|
|
|
Changelogs:
|
|
1. interrupt came when the clock disable, so set power on
|
|
to handle interrupt.
|
|
|
|
Signed-off-by: liusheng <liusheng@eswincomputing.com>
|
|
---
|
|
.../hae/hal/os/linux/kernel/gc_hal_kernel_device.c | 10 ++++++++++
|
|
1 file changed, 10 insertions(+)
|
|
|
|
diff --git a/drivers/staging/media/eswin/hae/hal/os/linux/kernel/gc_hal_kernel_device.c b/drivers/staging/media/eswin/hae/hal/os/linux/kernel/gc_hal_kernel_device.c
|
|
index 9e8f6bcbbfd7..21e9513d8347 100644
|
|
--- a/drivers/staging/media/eswin/hae/hal/os/linux/kernel/gc_hal_kernel_device.c
|
|
+++ b/drivers/staging/media/eswin/hae/hal/os/linux/kernel/gc_hal_kernel_device.c
|
|
@@ -2267,6 +2267,16 @@ isrRoutine(int irq, void *ctxt)
|
|
return IRQ_HANDLED;
|
|
}
|
|
|
|
+ /* interrupt came when the clock disable, so set power on to handle interrupt */
|
|
+ if(status == gcvSTATUS_GENERIC_IO){
|
|
+ gckHARDWARE_SetPowerState(kernel->hardware, gcvPOWER_ON_AUTO);
|
|
+ status = gckHARDWARE_Interrupt(kernel->hardware);
|
|
+ if (gcmIS_SUCCESS(status)) {
|
|
+ up(kernel->sema);
|
|
+ return IRQ_HANDLED;
|
|
+ }
|
|
+ }
|
|
+
|
|
return IRQ_NONE;
|
|
}
|
|
|
|
--
|
|
2.47.0
|
|
|