Merge "disp: msm: dsi: avoid TE status check based on rechecks count"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
69e06f9fd7
@@ -800,6 +800,9 @@ static int dsi_display_status_check_te(struct dsi_display *display,
|
||||
int rc = 1, i = 0;
|
||||
int const esd_te_timeout = msecs_to_jiffies(3*20);
|
||||
|
||||
if (!rechecks)
|
||||
return rc;
|
||||
|
||||
dsi_display_change_te_irq_status(display, true);
|
||||
|
||||
for (i = 0; i < rechecks; i++) {
|
||||
|
@@ -23,8 +23,6 @@
|
||||
#define to_sde_encoder_phys_cmd(x) \
|
||||
container_of(x, struct sde_encoder_phys_cmd, base)
|
||||
|
||||
#define PP_TIMEOUT_MAX_TRIALS 4
|
||||
|
||||
/*
|
||||
* Tearcheck sync start and continue thresholds are empirically found
|
||||
* based on common panels In the future, may want to allow panels to override
|
||||
@@ -507,7 +505,6 @@ static int _sde_encoder_phys_cmd_handle_ppdone_timeout(
|
||||
u32 frame_event = SDE_ENCODER_FRAME_EVENT_ERROR
|
||||
| SDE_ENCODER_FRAME_EVENT_SIGNAL_RELEASE_FENCE;
|
||||
struct drm_connector *conn;
|
||||
int event;
|
||||
u32 pending_kickoff_cnt;
|
||||
unsigned long lock_flags;
|
||||
|
||||
@@ -553,14 +550,11 @@ static int _sde_encoder_phys_cmd_handle_ppdone_timeout(
|
||||
* if the recovery event is registered by user, don't panic
|
||||
* trigger panic on first timeout if no listener registered
|
||||
*/
|
||||
if (recovery_events) {
|
||||
event = cmd_enc->pp_timeout_report_cnt > PP_TIMEOUT_MAX_TRIALS ?
|
||||
SDE_RECOVERY_HARD_RESET : SDE_RECOVERY_CAPTURE;
|
||||
if (recovery_events)
|
||||
sde_connector_event_notify(conn, DRM_EVENT_SDE_HW_RECOVERY,
|
||||
sizeof(uint8_t), event);
|
||||
} else if (cmd_enc->pp_timeout_report_cnt) {
|
||||
sizeof(uint8_t), SDE_RECOVERY_CAPTURE);
|
||||
else if (cmd_enc->pp_timeout_report_cnt)
|
||||
SDE_DBG_DUMP("dsi_dbg_bus", "panic");
|
||||
}
|
||||
|
||||
/* request a ctl reset before the next kickoff */
|
||||
phys_enc->enable_state = SDE_ENC_ERR_NEEDS_HW_RESET;
|
||||
|
@@ -26,9 +26,6 @@
|
||||
#define to_sde_encoder_phys_vid(x) \
|
||||
container_of(x, struct sde_encoder_phys_vid, base)
|
||||
|
||||
/* maximum number of consecutive kickoff errors */
|
||||
#define KICKOFF_MAX_ERRORS 2
|
||||
|
||||
/* Poll time to do recovery during active region */
|
||||
#define POLL_TIME_USEC_FOR_LN_CNT 500
|
||||
#define MAX_POLL_CNT 10
|
||||
@@ -931,7 +928,6 @@ static int sde_encoder_phys_vid_prepare_for_kickoff(
|
||||
struct sde_hw_ctl *ctl;
|
||||
bool recovery_events;
|
||||
struct drm_connector *conn;
|
||||
int event;
|
||||
int rc;
|
||||
|
||||
if (!phys_enc || !params || !phys_enc->hw_ctl) {
|
||||
@@ -973,15 +969,11 @@ static int sde_encoder_phys_vid_prepare_for_kickoff(
|
||||
* if the recovery event is registered by user, don't panic
|
||||
* trigger panic on first timeout if no listener registered
|
||||
*/
|
||||
if (recovery_events) {
|
||||
event = vid_enc->error_count > KICKOFF_MAX_ERRORS ?
|
||||
SDE_RECOVERY_HARD_RESET : SDE_RECOVERY_CAPTURE;
|
||||
sde_connector_event_notify(conn,
|
||||
DRM_EVENT_SDE_HW_RECOVERY,
|
||||
sizeof(uint8_t), event);
|
||||
} else {
|
||||
if (recovery_events)
|
||||
sde_connector_event_notify(conn, DRM_EVENT_SDE_HW_RECOVERY,
|
||||
sizeof(uint8_t), SDE_RECOVERY_CAPTURE);
|
||||
else
|
||||
SDE_DBG_DUMP("panic");
|
||||
}
|
||||
|
||||
/* request a ctl reset before the next flush */
|
||||
phys_enc->enable_state = SDE_ENC_ERR_NEEDS_HW_RESET;
|
||||
|
@@ -4669,18 +4669,24 @@ static int _sde_kms_register_events(struct msm_kms *kms,
|
||||
}
|
||||
|
||||
sde_kms = to_sde_kms(kms);
|
||||
|
||||
/* check vm ownership, if event registration requires HW access */
|
||||
switch (obj->type) {
|
||||
case DRM_MODE_OBJECT_CRTC:
|
||||
vm_ops = sde_vm_get_ops(sde_kms);
|
||||
sde_vm_lock(sde_kms);
|
||||
if (vm_ops && vm_ops->vm_owns_hw && !vm_ops->vm_owns_hw(sde_kms)) {
|
||||
|
||||
if (vm_ops && vm_ops->vm_owns_hw
|
||||
&& !vm_ops->vm_owns_hw(sde_kms)) {
|
||||
sde_vm_unlock(sde_kms);
|
||||
DRM_INFO("HW is owned by other VM\n");
|
||||
SDE_DEBUG("HW is owned by other VM\n");
|
||||
return -EACCES;
|
||||
}
|
||||
|
||||
switch (obj->type) {
|
||||
case DRM_MODE_OBJECT_CRTC:
|
||||
crtc = obj_to_crtc(obj);
|
||||
ret = sde_crtc_register_custom_event(sde_kms, crtc, event, en);
|
||||
|
||||
sde_vm_unlock(sde_kms);
|
||||
break;
|
||||
case DRM_MODE_OBJECT_CONNECTOR:
|
||||
conn = obj_to_connector(obj);
|
||||
@@ -4689,7 +4695,6 @@ static int _sde_kms_register_events(struct msm_kms *kms,
|
||||
break;
|
||||
}
|
||||
|
||||
sde_vm_unlock(sde_kms);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user