Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp3012341ybl; Sun, 25 Aug 2019 06:53:34 -0700 (PDT) X-Google-Smtp-Source: APXvYqwDbqLzUFXdfnW9L9BZ16mIRn91o7cRL4sY8Pl4lSaH7tIIjXstC9chdoLZk2u7PfHfPFEB X-Received: by 2002:a17:90a:e654:: with SMTP id ep20mr15118792pjb.38.1566741214890; Sun, 25 Aug 2019 06:53:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566741214; cv=none; d=google.com; s=arc-20160816; b=hn4y9L47qttcQU4yqC9DkjiRheN0FiNtrNOmsIfkZfrB31EL4wZfhm9P2BM84dKgfS o4QUI+JJh/F1in2cx9Z4HKDc09rtr08lL50gOUWHZy/71JbgpAQIdi+UmThQBiNEuKnk N9nZ7wFtRMIkAEydXvWfFxWWuA8KmRCORqUNPhdfNOF0jetjZdl+bkuIaBYmsTboumAn GBFZ/4NwyefdP9aqB9BzIvA87UadYiUDsdzJeaprigbQh6Q+a1KzQjOktUQg2YPmkEIy iWTo2hGY9gucBy3AOVY95MGfgd4QrOKYznzP10TCZDLt2Oqdey1VqvosGBESjqdCJbN3 eNSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=XXEI8VXMwgIRbg56+4ADwEeXoYx/KL5KeSBewf/jz40=; b=dW2xS77VelLSo+aiJohGxmWA+n3g09B4GKcIlK5vOsZoRkhAQW6pjePLU2lSKkrSP9 38MN4f2A7FTnaxUNMYX9WtNYyuUpR/BUgvGjxZEVdBXoAvDnBg8qsgiSFg6ZbiyI6dXt J3AqhwGbu+yplwtGZrMycHB9Szqt6nSLMirvKhYpCGI9+oW067vpH8ihRAKOdfe2HaXT aQidm7OlkokSYggNgdufbCTCujMS5Maf+inBbK0bR7fre/1dwPPziuGc84cRN8TCBMiV 6Z3Bb5XeIQGGLpvgJ7vyx4+BbA+0xgU7E/kykNnsuxkG5AH29atYIWkIP82A+mvpC0tn m0WA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s61si7192635plb.426.2019.08.25.06.53.19; Sun, 25 Aug 2019 06:53:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728750AbfHYNv1 (ORCPT + 99 others); Sun, 25 Aug 2019 09:51:27 -0400 Received: from relay6-d.mail.gandi.net ([217.70.183.198]:33751 "EHLO relay6-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728668AbfHYNvX (ORCPT ); Sun, 25 Aug 2019 09:51:23 -0400 X-Originating-IP: 87.18.63.98 Received: from uno.homenet.telecomitalia.it (unknown [87.18.63.98]) (Authenticated sender: jacopo@jmondi.org) by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 184EAC0003; Sun, 25 Aug 2019 13:51:18 +0000 (UTC) From: Jacopo Mondi To: laurent.pinchart@ideasonboard.com, kieran.bingham+renesas@ideasonboard.com, geert@linux-m68k.org, horms@verge.net.au, uli@fpond.eu, airlied@linux.ie, daniel@ffwll.ch Cc: Jacopo Mondi , koji.matsuoka.xm@renesas.com, muroya@ksk.co.jp, VenkataRajesh.Kalakodima@in.bosch.com, Harsha.ManjulaMallikarjun@in.bosch.com, linux-renesas-soc@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 14/14] drm: rcar-du: Force CMM enablement when resuming Date: Sun, 25 Aug 2019 15:51:54 +0200 Message-Id: <20190825135154.11488-15-jacopo+renesas@jmondi.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190825135154.11488-1-jacopo+renesas@jmondi.org> References: <20190825135154.11488-1-jacopo+renesas@jmondi.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When resuming from system suspend, the DU driver is responsible for reprogramming and enabling the CMM unit if it was in use at the time the system entered the suspend state. Force the color_mgmt_changed flag to true if any of the DRM color transformation properties was set in the CRTC state duplicated at suspend time, as the CMM gets reprogrammed only if said flag is active in the rcar_du_atomic_commit_update_cmm() method. Signed-off-by: Jacopo Mondi --- drivers/gpu/drm/rcar-du/rcar_du_drv.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c index 018480a8f35c..6e38495fb78f 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -482,6 +483,26 @@ static int rcar_du_pm_suspend(struct device *dev) static int rcar_du_pm_resume(struct device *dev) { struct rcar_du_device *rcdu = dev_get_drvdata(dev); + struct drm_atomic_state *state = rcdu->ddev->mode_config.suspend_state; + unsigned int i; + + for (i = 0; i < rcdu->num_crtcs; ++i) { + struct drm_crtc *crtc = &rcdu->crtcs[i].crtc; + struct drm_crtc_state *crtc_state; + + crtc_state = drm_atomic_get_existing_crtc_state(state, crtc); + if (!crtc_state) + continue; + + /* + * Force re-enablement of CMM after system resume if any + * of the DRM color transformation properties was set in + * the state saved at system suspend time. + */ + if (crtc_state->gamma_lut || crtc_state->degamma_lut || + crtc_state->ctm) + crtc_state->color_mgmt_changed = true; + } return drm_mode_config_helper_resume(rcdu->ddev); } -- 2.22.0