Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 86d65815 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "drm/msm/sde: manage sde pm_qos vote through atomic counter"

parents a9c689ea 99d5e9f6
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -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);
@@ -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);
}
@@ -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);
}

+1 −0
Original line number Diff line number Diff line
@@ -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.
+1 −0
Original line number Diff line number Diff line
@@ -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;