On Sun Aug 30 21:46:09 2026 +0800, Pengpeng Hou wrote:
> The power-on path requests safe stop to establish a non-streaming state but
> ignores the polling result and publishes runtime resume success.
> 
> Power the block back off and propagate a safe-stop timeout.
> 
> Fixes: d5f281f3dd29 ("media: mali-c55: Add Mali-C55 ISP driver")
> Cc: [email protected]
> Signed-off-by: Pengpeng Hou <[email protected]>
> Reviewed-by: Jacopo Mondi <[email protected]>
> Signed-off-by: Jacopo Mondi <[email protected]>
> Signed-off-by: Hans Verkuil <[email protected]>

Patch committed.

Thanks,
Hans Verkuil

 drivers/media/platform/arm/mali-c55/mali-c55-core.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

---

diff --git a/drivers/media/platform/arm/mali-c55/mali-c55-core.c 
b/drivers/media/platform/arm/mali-c55/mali-c55-core.c
index f28e9f4354ac..288fba483180 100644
--- a/drivers/media/platform/arm/mali-c55/mali-c55-core.c
+++ b/drivers/media/platform/arm/mali-c55/mali-c55-core.c
@@ -730,8 +730,13 @@ static int __mali_c55_power_on(struct mali_c55 *mali_c55)
        /* Set safe stop to ensure we're in a non-streaming state */
        mali_c55_write(mali_c55, MALI_C55_REG_INPUT_MODE_REQUEST,
                       MALI_C55_INPUT_SAFE_STOP);
-       readl_poll_timeout(mali_c55->base + MALI_C55_REG_MODE_STATUS,
-                          val, !val, 10 * USEC_PER_MSEC, 250 * USEC_PER_MSEC);
+       ret = readl_poll_timeout(mali_c55->base + MALI_C55_REG_MODE_STATUS,
+                                val, !val, 10 * USEC_PER_MSEC, 250 * 
USEC_PER_MSEC);
+       if (ret) {
+               dev_err(mali_c55->dev, "safe stop timed out\n");
+               __mali_c55_power_off(mali_c55);
+               return ret;
+       }
 
        return 0;
 }
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to