• Shaik Ameer Basha's avatar
    [media] exynos-gsc: Handle ctx job finish when aborted · d9315160
    Shaik Ameer Basha authored
    When the current context is running,
    1] If release() or streamoff() is called on the current context,
       it waits until the job is aborted or finished.
    2] If the job is finished, driver will call the v4l2_m2m_job_finish().
    3] If the job is aborted inside device_run callback, then driver
       has to inform the v4l2 mem2mem framework about the same by calling
       v4l2_m2m_job_finish() with VB2_BUF_STATE_ERROR.
    
    The current code doesn't call v4l2_m2m_job_finish() in the case, where
    the job is aborted from the device_run callback. This scenerio is
    producing a hang as the other queued contexts are not getting scheduled.
    
    By adding the ABORT state, driver can understand the current job
    is aborted and not finished. By checking this flag, driver can call
    v4l2_m2m_job_finish() with VB2_BUF_STATE_ERROR.
    Signed-off-by: default avatarShaik Ameer Basha <shaik.ameer@samsung.com>
    Signed-off-by: default avatarAvnd Kiran <avnd.kiran@samsung.com>
    Signed-off-by: default avatarKamil Debski <k.debski@samsung.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
    d9315160
gsc-m2m.c 19 KB