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

Commit 8205140d authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "disp: msm: sde: turn off/on vblank callbacks as per crtc"

parents 8c8fad0d 16bfab7d
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -699,6 +699,7 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
	struct msm_kms *kms = NULL;
	struct msm_kms *kms = NULL;
	int ret;
	int ret;
	struct sched_param param = { 0 };
	struct sched_param param = { 0 };
	struct drm_crtc *crtc;


	ddev = drm_dev_alloc(drv, dev);
	ddev = drm_dev_alloc(drv, dev);
	if (!ddev) {
	if (!ddev) {
@@ -770,6 +771,9 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
		goto fail;
		goto fail;
	}
	}


	drm_for_each_crtc(crtc, ddev)
		drm_crtc_vblank_reset(crtc);

	if (kms) {
	if (kms) {
		pm_runtime_get_sync(dev);
		pm_runtime_get_sync(dev);
		ret = drm_irq_install(ddev, platform_get_irq(pdev, 0));
		ret = drm_irq_install(ddev, platform_get_irq(pdev, 0));
+5 −0
Original line number Original line Diff line number Diff line
@@ -3812,6 +3812,7 @@ static void sde_crtc_reset(struct drm_crtc *crtc)


	cstate->base.crtc = crtc;
	cstate->base.crtc = crtc;
	crtc->state = &cstate->base;
	crtc->state = &cstate->base;
	drm_crtc_vblank_reset(crtc);
}
}


static void sde_crtc_handle_power_event(u32 event_type, void *arg)
static void sde_crtc_handle_power_event(u32 event_type, void *arg)
@@ -3972,6 +3973,8 @@ static void sde_crtc_disable(struct drm_crtc *crtc)


	SDE_DEBUG("crtc%d\n", crtc->base.id);
	SDE_DEBUG("crtc%d\n", crtc->base.id);


	drm_crtc_vblank_off(crtc);

	if (sde_kms_is_suspend_state(crtc->dev))
	if (sde_kms_is_suspend_state(crtc->dev))
		_sde_crtc_set_suspend(crtc, true);
		_sde_crtc_set_suspend(crtc, true);


@@ -4110,6 +4113,8 @@ static void sde_crtc_enable(struct drm_crtc *crtc,
	SDE_EVT32_VERBOSE(DRMID(crtc));
	SDE_EVT32_VERBOSE(DRMID(crtc));
	sde_crtc = to_sde_crtc(crtc);
	sde_crtc = to_sde_crtc(crtc);


	drm_crtc_vblank_on(crtc);

	mutex_lock(&sde_crtc->crtc_lock);
	mutex_lock(&sde_crtc->crtc_lock);
	SDE_EVT32(DRMID(crtc), sde_crtc->enabled, sde_crtc->suspend,
	SDE_EVT32(DRMID(crtc), sde_crtc->enabled, sde_crtc->suspend,
			sde_crtc->vblank_requested);
			sde_crtc->vblank_requested);