Merge remote-tracking branch 'qcom_sm8250/lineage-20' into lineage-21

Change-Id: I3159ae2c81329a81f9f6d4feba3fd1324a86b4f6
This commit is contained in:
Sebastiano Barezzi
2024-08-21 19:34:17 +02:00
511 changed files with 6139 additions and 7571 deletions

View File

@@ -527,13 +527,13 @@ static int wsa881x_visense_adc_ctrl(struct snd_soc_component *component,
snd_soc_component_update_bits(component,
WSA881X_ADC_SEL_IBIAS,
0x70, 0x40);
snd_soc_component_update_bits(component,
WSA881X_ADC_EN_SEL_IBIAS,
0x07, 0x04);
snd_soc_component_update_bits(component,
WSA881X_ADC_EN_MODU_V, 0x80, 0x80);
snd_soc_component_update_bits(component,
WSA881X_ADC_EN_MODU_I, 0x80, 0x80);
snd_soc_component_update_bits(component,
WSA881X_ADC_EN_SEL_IBIAS,
0x07, 0x04);
snd_soc_component_update_bits(component,
WSA881X_ADC_EN_MODU_V, 0x80, 0x80);
snd_soc_component_update_bits(component,
WSA881X_ADC_EN_MODU_I, 0x80, 0x80);
} else {
/* Ensure: Speaker Protection has been stopped */
snd_soc_component_update_bits(component,

View File

@@ -1769,7 +1769,7 @@ static int cam_ope_mgr_create_kmd_buf(struct cam_ope_hw_mgr *hw_mgr,
prepare_req.frame_process =
(struct ope_frame_process *)ope_cmd_buf_addr;
for (i = 0; i < ope_hw_mgr->num_ope; i++)
for (i = 0; i < ope_hw_mgr->num_ope; i++) {
rc = hw_mgr->ope_dev_intf[i]->hw_ops.process_cmd(
hw_mgr->ope_dev_intf[i]->hw_priv,
OPE_HW_PREPARE, &prepare_req, sizeof(prepare_req));
@@ -1777,6 +1777,7 @@ static int cam_ope_mgr_create_kmd_buf(struct cam_ope_hw_mgr *hw_mgr,
CAM_ERR(CAM_OPE, "OPE Dev prepare failed: %d", rc);
goto end;
}
}
end:
return rc;

View File

@@ -289,6 +289,7 @@ struct sde_encoder_virt {
struct kthread_work touch_notify_work;
struct kthread_work esd_trigger_work;
struct input_handler *input_handler;
bool input_handler_registered;
struct msm_display_topology topology;
bool vblank_enabled;
bool idle_pc_restore;
@@ -811,6 +812,7 @@ void sde_encoder_destroy(struct drm_encoder *drm_enc)
kfree(sde_enc->input_handler);
sde_enc->input_handler = NULL;
sde_enc->input_handler_registered = false;
kfree(sde_enc);
}
@@ -3253,23 +3255,6 @@ static void _sde_encoder_input_handler_register(
}
}
static void _sde_encoder_input_handler_unregister(
struct drm_encoder *drm_enc)
{
struct sde_encoder_virt *sde_enc = to_sde_encoder_virt(drm_enc);
#if 0
if (!sde_encoder_check_curr_mode(drm_enc, MSM_DISPLAY_CMD_MODE))
return;
#endif
if (sde_enc->input_handler && sde_enc->input_handler->private) {
input_unregister_handler(sde_enc->input_handler);
sde_enc->input_handler->private = NULL;
}
}
static int _sde_encoder_input_handler(
struct sde_encoder_virt *sde_enc)
{
@@ -3293,6 +3278,7 @@ static int _sde_encoder_input_handler(
input_handler->id_table = sde_input_ids;
sde_enc->input_handler = input_handler;
sde_enc->input_handler_registered = false;
return rc;
}
@@ -3449,7 +3435,20 @@ static void sde_encoder_virt_enable(struct drm_encoder *drm_enc)
return;
}
_sde_encoder_input_handler_register(drm_enc);
/* register input handler if not already registered */
if (sde_enc->input_handler && !sde_enc->input_handler_registered &&
!msm_is_mode_seamless_dms(cur_mode) &&
#if 0
sde_encoder_check_curr_mode(drm_enc, MSM_DISPLAY_CMD_MODE) &&
#endif
!msm_is_mode_seamless_dyn_clk(cur_mode)) {
_sde_encoder_input_handler_register(drm_enc);
if (!sde_enc->input_handler || !sde_enc->input_handler->private)
SDE_ERROR(
"input handler registration failed, rc = %d\n", ret);
else
sde_enc->input_handler_registered = true;
}
if ((drm_enc->crtc && drm_enc->crtc->state &&
drm_enc->crtc->state->connectors_changed &&
@@ -3580,7 +3579,15 @@ static void sde_encoder_virt_disable(struct drm_encoder *drm_enc)
if (!sde_encoder_in_clone_mode(drm_enc))
sde_encoder_wait_for_event(drm_enc, MSM_ENC_TX_COMPLETE);
_sde_encoder_input_handler_unregister(drm_enc);
if (sde_enc->input_handler && sde_enc->input_handler_registered &&
#if 0
sde_encoder_check_curr_mode(drm_enc, MSM_DISPLAY_CMD_MODE)) {
#else
true) {
#endif
input_unregister_handler(sde_enc->input_handler);
sde_enc->input_handler_registered = false;
}
/*
* For primary command mode and video mode encoders, execute the