disp: msm: sde: avoid wb done wait for cwb in wait_for_commit
Existing cwb implementation waits for WB done interrupt in wait_for_commit_done API call. This serializes the cwb commit and causes frame trigger delay on primary display. MDSS hw allows to trigger the cwb frame when previous frame is in-progress. This change updates driver to allow parallel frame trigger for cwb enabled display. It releases frame N cwb output buffer in frame N+1 wait_for_commit done call. Change-Id: Id4f2a0cc78a3f24a1b5ce96dc907780246768dbf Signed-off-by: Raviteja Tamatam <travitej@codeaurora.org>
This commit is contained in:
@@ -388,13 +388,14 @@ struct sde_encoder_phys_cmd {
|
||||
* @hw_wb: Hardware interface to the wb registers
|
||||
* @wbdone_timeout: Timeout value for writeback done in msec
|
||||
* @bypass_irqreg: Bypass irq register/unregister if non-zero
|
||||
* @wbdone_complete: for wbdone irq synchronization
|
||||
* @wb_cfg: Writeback hardware configuration
|
||||
* @cdp_cfg: Writeback CDP configuration
|
||||
* @wb_roi: Writeback region-of-interest
|
||||
* @wb_fmt: Writeback pixel format
|
||||
* @wb_fb: Pointer to current writeback framebuffer
|
||||
* @wb_aspace: Pointer to current writeback address space
|
||||
* @cwb_old_fb: Pointer to old writeback framebuffer
|
||||
* @cwb_old_aspace: Pointer to old writeback address space
|
||||
* @frame_count: Counter of completed writeback operations
|
||||
* @kickoff_count: Counter of issued writeback operations
|
||||
* @aspace: address space identifier for non-secure/secure domain
|
||||
@@ -410,13 +411,14 @@ struct sde_encoder_phys_wb {
|
||||
struct sde_hw_wb *hw_wb;
|
||||
u32 wbdone_timeout;
|
||||
u32 bypass_irqreg;
|
||||
struct completion wbdone_complete;
|
||||
struct sde_hw_wb_cfg wb_cfg;
|
||||
struct sde_hw_wb_cdp_cfg cdp_cfg;
|
||||
struct sde_rect wb_roi;
|
||||
const struct sde_format *wb_fmt;
|
||||
struct drm_framebuffer *wb_fb;
|
||||
struct msm_gem_address_space *wb_aspace;
|
||||
struct drm_framebuffer *cwb_old_fb;
|
||||
struct msm_gem_address_space *cwb_old_aspace;
|
||||
u32 frame_count;
|
||||
u32 kickoff_count;
|
||||
struct msm_gem_address_space *aspace[SDE_IOMMU_DOMAIN_MAX];
|
||||
|
Reference in New Issue
Block a user