disp: msm: sde: handle LTM switch in and out of dual pipe merge mode
When LTM is switching on/off, merge_mode bit value gets toggled between 0x1 (dual pipe merge configuration) and 0x0 (single pipe configuration). It is illegal to reconfigure LTM to/from dual-pipe merge mode before both LTM instances have completed their current workloads. This change adds support to disable merge_mode one frame after histogram is disabled to make sure both hardware instances are completely idle and avoid corrupted histogram data collection. Change-Id: I9a6b5cbfb69e8af7936749e57fe7c8f7c2703b95 Signed-off-by: Ping Li <pingli@codeaurora.org>
Этот коммит содержится в:
@@ -312,6 +312,7 @@ struct sde_frame_data {
|
||||
* @ltm_buf_free : list of LTM buffers that are available
|
||||
* @ltm_buf_busy : list of LTM buffers that are been used by HW
|
||||
* @ltm_hist_en : flag to indicate whether LTM hist is enabled or not
|
||||
* @ltm_merge_clear_pending : flag indicates merge mode bit needs to be cleared
|
||||
* @ltm_buffer_lock : muttx to protect ltm_buffers allcation and free
|
||||
* @ltm_lock : Spinlock to protect ltm buffer_cnt, hist_en and ltm lists
|
||||
* @needs_hw_reset : Initiate a hw ctl reset
|
||||
@@ -407,6 +408,7 @@ struct sde_crtc {
|
||||
struct list_head ltm_buf_free;
|
||||
struct list_head ltm_buf_busy;
|
||||
bool ltm_hist_en;
|
||||
bool ltm_merge_clear_pending;
|
||||
struct drm_msm_ltm_cfg_param ltm_cfg;
|
||||
struct mutex ltm_buffer_lock;
|
||||
spinlock_t ltm_lock;
|
||||
|
Ссылка в новой задаче
Block a user