Loading drivers/gpu/drm/msm/sde/sde_encoder.c +13 −8 Original line number Diff line number Diff line Loading @@ -308,6 +308,7 @@ static void _sde_encoder_pm_qos_add_request(struct drm_encoder *drm_enc) if (!cpu_mask) return; if (atomic_inc_return(&sde_kms->pm_qos_counts) == 1) { req = &sde_kms->pm_qos_cpu_req; req->type = PM_QOS_REQ_AFFINE_CORES; cpumask_empty(&req->cpus_affine); Loading @@ -315,7 +316,9 @@ static void _sde_encoder_pm_qos_add_request(struct drm_encoder *drm_enc) if ((1 << cpu) & cpu_mask) cpumask_set_cpu(cpu, &req->cpus_affine); } pm_qos_add_request(req, PM_QOS_CPU_DMA_LATENCY, cpu_dma_latency); pm_qos_add_request(req, PM_QOS_CPU_DMA_LATENCY, cpu_dma_latency); } SDE_EVT32_VERBOSE(DRMID(drm_enc), cpu_mask, cpu_dma_latency); } Loading @@ -340,6 +343,8 @@ static void _sde_encoder_pm_qos_remove_request(struct drm_encoder *drm_enc) if (!sde_kms || !sde_kms->catalog || !sde_kms->catalog->perf.cpu_mask) return; atomic_add_unless(&sde_kms->pm_qos_counts, -1, 0); if (atomic_read(&sde_kms->pm_qos_counts) == 0) pm_qos_remove_request(&sde_kms->pm_qos_cpu_req); } Loading drivers/gpu/drm/msm/sde/sde_kms.c +1 −0 Original line number Diff line number Diff line Loading @@ -3201,6 +3201,7 @@ static int sde_kms_hw_init(struct msm_kms *kms) mutex_init(&sde_kms->secure_transition_lock); atomic_set(&sde_kms->detach_sec_cb, 0); atomic_set(&sde_kms->detach_all_cb, 0); atomic_set(&sde_kms->pm_qos_counts, 0); /* * Support format modifiers for compression etc. Loading drivers/gpu/drm/msm/sde/sde_kms.h +1 −0 Original line number Diff line number Diff line Loading @@ -225,6 +225,7 @@ struct sde_kms { struct msm_gem_address_space *aspace[MSM_SMMU_DOMAIN_MAX]; struct sde_power_client *core_client; struct pm_qos_request pm_qos_cpu_req; atomic_t pm_qos_counts; struct sde_power_event *power_event; Loading Loading
drivers/gpu/drm/msm/sde/sde_encoder.c +13 −8 Original line number Diff line number Diff line Loading @@ -308,6 +308,7 @@ static void _sde_encoder_pm_qos_add_request(struct drm_encoder *drm_enc) if (!cpu_mask) return; if (atomic_inc_return(&sde_kms->pm_qos_counts) == 1) { req = &sde_kms->pm_qos_cpu_req; req->type = PM_QOS_REQ_AFFINE_CORES; cpumask_empty(&req->cpus_affine); Loading @@ -315,7 +316,9 @@ static void _sde_encoder_pm_qos_add_request(struct drm_encoder *drm_enc) if ((1 << cpu) & cpu_mask) cpumask_set_cpu(cpu, &req->cpus_affine); } pm_qos_add_request(req, PM_QOS_CPU_DMA_LATENCY, cpu_dma_latency); pm_qos_add_request(req, PM_QOS_CPU_DMA_LATENCY, cpu_dma_latency); } SDE_EVT32_VERBOSE(DRMID(drm_enc), cpu_mask, cpu_dma_latency); } Loading @@ -340,6 +343,8 @@ static void _sde_encoder_pm_qos_remove_request(struct drm_encoder *drm_enc) if (!sde_kms || !sde_kms->catalog || !sde_kms->catalog->perf.cpu_mask) return; atomic_add_unless(&sde_kms->pm_qos_counts, -1, 0); if (atomic_read(&sde_kms->pm_qos_counts) == 0) pm_qos_remove_request(&sde_kms->pm_qos_cpu_req); } Loading
drivers/gpu/drm/msm/sde/sde_kms.c +1 −0 Original line number Diff line number Diff line Loading @@ -3201,6 +3201,7 @@ static int sde_kms_hw_init(struct msm_kms *kms) mutex_init(&sde_kms->secure_transition_lock); atomic_set(&sde_kms->detach_sec_cb, 0); atomic_set(&sde_kms->detach_all_cb, 0); atomic_set(&sde_kms->pm_qos_counts, 0); /* * Support format modifiers for compression etc. Loading
drivers/gpu/drm/msm/sde/sde_kms.h +1 −0 Original line number Diff line number Diff line Loading @@ -225,6 +225,7 @@ struct sde_kms { struct msm_gem_address_space *aspace[MSM_SMMU_DOMAIN_MAX]; struct sde_power_client *core_client; struct pm_qos_request pm_qos_cpu_req; atomic_t pm_qos_counts; struct sde_power_event *power_event; Loading