Merge "disp: msm: sde: reconfigure misr based on user input"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
e50c2562c7
@@ -5659,6 +5659,9 @@ void sde_crtc_misr_setup(struct drm_crtc *crtc, bool enable, u32 frame_count)
|
||||
}
|
||||
sde_crtc = to_sde_crtc(crtc);
|
||||
|
||||
if (!sde_crtc->misr_reconfigure)
|
||||
return;
|
||||
|
||||
sde_crtc->misr_enable_sui = enable;
|
||||
sde_crtc->misr_frame_count = frame_count;
|
||||
for (i = 0; i < sde_crtc->num_mixers; ++i) {
|
||||
@@ -5668,6 +5671,7 @@ void sde_crtc_misr_setup(struct drm_crtc *crtc, bool enable, u32 frame_count)
|
||||
|
||||
m->hw_lm->ops.setup_misr(m->hw_lm, enable, frame_count);
|
||||
}
|
||||
sde_crtc->misr_reconfigure = false;
|
||||
}
|
||||
|
||||
void sde_crtc_get_misr_info(struct drm_crtc *crtc,
|
||||
@@ -5893,6 +5897,7 @@ static ssize_t _sde_crtc_misr_setup(struct file *file,
|
||||
return rc;
|
||||
|
||||
sde_crtc->misr_enable_debugfs = enable;
|
||||
sde_crtc->misr_reconfigure = true;
|
||||
sde_crtc_misr_setup(crtc, enable, frame_count);
|
||||
pm_runtime_put_sync(crtc->dev->dev);
|
||||
|
||||
|
@@ -267,6 +267,7 @@ struct sde_crtc_misr_info {
|
||||
* for secure cases.
|
||||
* @misr_enable_debugfs : boolean entry indicates misr enable/disable status
|
||||
* from debugfs.
|
||||
* @misr_reconfigure : boolean entry indicates misr reconfigure status
|
||||
* @misr_frame_count : misr frame count provided by client
|
||||
* @misr_data : store misr data before turning off the clocks.
|
||||
* @idle_notify_work: delayed worker to notify idle timeout to user space
|
||||
@@ -341,6 +342,7 @@ struct sde_crtc {
|
||||
spinlock_t event_lock;
|
||||
bool misr_enable_sui;
|
||||
bool misr_enable_debugfs;
|
||||
bool misr_reconfigure;
|
||||
u32 misr_frame_count;
|
||||
struct kthread_delayed_work idle_notify_work;
|
||||
|
||||
|
@@ -1485,6 +1485,9 @@ static void sde_encoder_misr_configure(struct drm_encoder *drm_enc,
|
||||
}
|
||||
sde_enc = to_sde_encoder_virt(drm_enc);
|
||||
|
||||
if (!sde_enc->misr_reconfigure)
|
||||
return;
|
||||
|
||||
for (i = 0; i < sde_enc->num_phys_encs; i++) {
|
||||
struct sde_encoder_phys *phys = sde_enc->phys_encs[i];
|
||||
|
||||
@@ -1493,6 +1496,7 @@ static void sde_encoder_misr_configure(struct drm_encoder *drm_enc,
|
||||
|
||||
phys->ops.setup_misr(phys, enable, frame_count);
|
||||
}
|
||||
sde_enc->misr_reconfigure = false;
|
||||
}
|
||||
|
||||
static void sde_encoder_input_event_handler(struct input_handle *handle,
|
||||
@@ -4292,6 +4296,7 @@ static ssize_t _sde_encoder_misr_setup(struct file *file,
|
||||
return rc;
|
||||
|
||||
sde_enc->misr_enable = enable;
|
||||
sde_enc->misr_reconfigure = true;
|
||||
sde_enc->misr_frame_count = frame_count;
|
||||
sde_encoder_misr_configure(&sde_enc->base, enable, frame_count);
|
||||
pm_runtime_put_sync(drm_enc->dev->dev);
|
||||
|
@@ -159,6 +159,7 @@ struct sde_encoder_ops {
|
||||
* @rsc_state_init: boolean to indicate rsc config init
|
||||
* @disp_info: local copy of msm_display_info struct
|
||||
* @misr_enable: misr enable/disable status
|
||||
* @misr_reconfigure: boolean entry indicates misr reconfigure status
|
||||
* @misr_frame_count: misr frame count before start capturing the data
|
||||
* @idle_pc_enabled: indicate if idle power collapse is enabled
|
||||
* currently. This can be controlled by user-mode
|
||||
@@ -226,6 +227,7 @@ struct sde_encoder_virt {
|
||||
bool rsc_state_init;
|
||||
struct msm_display_info disp_info;
|
||||
bool misr_enable;
|
||||
bool misr_reconfigure;
|
||||
u32 misr_frame_count;
|
||||
|
||||
bool idle_pc_enabled;
|
||||
|
Reference in New Issue
Block a user