
While hw resources allocation for an active display during modeset, avoid dsc hw allocation switch by finding which dsc encoders are allocated previously and allocate same dsc hw encoders. This helps in fixing underrun issues in below scenario of dual display power ON/OFF. Use case: Dual DSI display setup, both are DSC enabled, primary in video mode. --> when both displays are in powered off, all hw block are free. --> enable second dsi display Since LM 0/1 marked for primary, LM 2/3 allocated along with DSC 0/1 --> enable primary display LM 0/1 allocated with DSC 2/3 encoders --> Now power off secondary DSI DSC 0/1 are freed up --> Immediate modeset on primary, DSC allocation switched LM 0/1 and DSC 0/1 allocated. DSC 2/3 are freed up as per RM but decoupling DSC 2/3 blocks with respective pingpong or intf is not done. This is causing underruns on primary. Tracking which DSC blocks are freed during resource switch and programming the respective DSC control mux configuration is not feasible and not scalable as any other display can allocate those blocks and would require synchronizing across display threads. So approach taken is avoid dsc resource switch itself. Change-Id: I7f740722a52266740c4b168edc0c619e3cf68989 Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
70 KiB
70 KiB