I am working on a driver which uses the IPU to rotate an image. Things are working usually fine, but it happens that after stopping this operation, the corresponding pre-processor task is stuck in the active state.
E.g. when reading IPU_PROC_TASK_STAT, the corresponding bit is always set
# devmem 0x02a00250
I tried to clear IPU_IC_CONF (base + 0x20000), IPU_CONF (base + 0) and even wiping whole IPU memory by
# devmem 0x02a000dc w $[ (1<<31) | ((1<<23) - 1) ]
But this does not help, task still stays in ACTIVE state.
What is the recommended way to reset tasks?