• Archit Taneja's avatar
    drm/msm/mdp5: Write to SMP registers even if allocations don't change · 0f379b79
    Archit Taneja authored
    Requests for assigning/freeing SMP blocks by planes are collected during
    the atomic check phase, and represented by mdp5_smp_state's 'assigned'
    and 'released' members.
    
    Once the atomic state is committed, these members are reset to 0,
    indicating that the existing configuration satisfies all the planes.
    Future atomic commits will copy the old mdp5_smp_state, and the 'assigned'
    and 'released' members would be updated only if there was a change in
    the plane configurations.
    
    When we disable and re-enable display, we lose the values we wrote to the
    SMP registers, but the code doesn't program the registers because there
    isn't any change in mdp5_smp_state.
    
    Fix this by writing to the registers irrespective of whether there was
    a change in SMP state or not. We do this by keeping a cache of the
    register values, and write them every time we commit a state.
    Signed-off-by: default avatarArchit Taneja <architt@codeaurora.org>
    Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
    0f379b79
mdp5_smp.c 9.88 KB