• Tomi Valkeinen's avatar
    OMAPDSS: DISPC: set irq_safe for runtime PM · 48664b21
    Tomi Valkeinen authored
    We have a bug with omapdrm, where omapdrm calls dispc's pm_runtime
    function in atomic context, and dispc's pm_runtime is not marked as
    irq_safe:
    
    BUG: sleeping function called from invalid context at drivers/base/power/runtime.c:952
    
    Dispc's runtime PM callbacks are irq safe, so we can just set the
    irq_safe flag to fix the issue.
    
    However, in the long term, I'd rather have omapdrm manage the runtime PM
    calls in a better way. Calling get/put for every small operation that
    touches the dispc registers is very inefficient. It'd be better and
    cleaner to have clear "in-use" and "not-in-use" states for dispc, so
    that we don't need to do register context restore for small operations,
    only to turn dispc off right afterwards.
    Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
    48664b21
dispc.c 92.4 KB