From patchwork Thu Jun 18 08:30:25 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 6634411 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id E69149F399 for ; Thu, 18 Jun 2015 08:30:48 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 1F53E2077E for ; Thu, 18 Jun 2015 08:30:48 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 589B8207C5 for ; Thu, 18 Jun 2015 08:30:46 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B9E016E611; Thu, 18 Jun 2015 01:30:45 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by gabe.freedesktop.org (Postfix) with ESMTP id 0BA816E615 for ; Thu, 18 Jun 2015 01:30:44 -0700 (PDT) Received: by wibdq8 with SMTP id dq8so79123614wib.1 for ; Thu, 18 Jun 2015 01:30:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=9xfADsK7UwVXyZimPESzDZ3IwXJSvm9rJy25g3bbW9o=; b=NJIkHN7Qy+tnwFpaaDx7AnW6ZzIJz1UbruGYlH6HqAnit/HzII/tD/aPxLl95ePuIp 8kJgIgK2wV3J6N+z5FJrlD63PCZZD1ghIuwV8FokM4d9wpPQYFZb1LQByvyoc4eJ4oKi grS3dc1eXN6FYf1/0bLCQfr9JffwlCb42xk9I= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=9xfADsK7UwVXyZimPESzDZ3IwXJSvm9rJy25g3bbW9o=; b=XOVyNLOFGCu457bsR3EK2CGXUF2TVJKQwTLAvwq/zkPCxACA5lk/EK3VS7F2KoeJYR zC9FGaUqGMD/Qcgr9gCX/7DpmmL9OgQEIJIsZ8S52rlGEneUwmRwWGDdcSz0JLQX8eFb uiDNE21tm6DNWzEKwO2pkg6xsmrmBwAzW80UrPoiWfJEswzMHYIbNqGnX8fPLwhuAPX/ g4kSxub6nzxgmP92gstsXy6Fy1y131ua+TIC9IxqdqTbu0QWUftgj06VE6b0LYdyi/EK TVqjnLm4CR9YjioTO1BcNwVcVzqaV2r2s7M+D7/y1Nxlcfu8TWyiNC/fziBV+JGHmz3H ZE+Q== X-Gm-Message-State: ALoCoQkedMHvD6GyUjvU9STbjffmMapjkYeuhGK6rJEAWZ2QTxyl83YYRrNEpwe5qgnEWvfHz7J5 X-Received: by 10.194.6.229 with SMTP id e5mr13387624wja.158.1434616243373; Thu, 18 Jun 2015 01:30:43 -0700 (PDT) Received: from wespe.ffwll.local (212-51-149-109.fiber7.init7.net. [212.51.149.109]) by mx.google.com with ESMTPSA id di7sm11961723wib.23.2015.06.18.01.30.42 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Jun 2015 01:30:42 -0700 (PDT) From: Daniel Vetter To: Intel Graphics Development Date: Thu, 18 Jun 2015 10:30:25 +0200 Message-Id: <1434616228-28358-6-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1434616228-28358-1-git-send-email-daniel.vetter@ffwll.ch> References: <1434616228-28358-1-git-send-email-daniel.vetter@ffwll.ch> Cc: Daniel Vetter , Daniel Vetter Subject: [Intel-gfx] [PATCH 6/9] drm/i915/drrs: Restrict buffer tracking to the DRRS pipe X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The current code tracks business across all pipes, but we're only really interested in the one pipe DRRS is enabled on. Fairly tiny optimization, but something I noticed while reading the code. But it might matter a bit when e.g. showing a video or something only on the external screen, while the panel is kept static. Also regroup the code slightly: First compute new bitmasks, then take appropriate actions. Cc: Ramalingam C Cc: Sivakumar Thulasimani Signed-off-by: Daniel Vetter Reviewed-by: Paulo Zanoni --- drivers/gpu/drm/i915/intel_dp.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index f52eef138247..3e8c88d119bb 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -5485,16 +5485,15 @@ void intel_edp_drrs_invalidate(struct drm_device *dev, crtc = dp_to_dig_port(dev_priv->drrs.dp)->base.base.crtc; pipe = to_intel_crtc(crtc)->pipe; + frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe); + dev_priv->drrs.busy_frontbuffer_bits |= frontbuffer_bits; + /* invalidate means busy screen hence upclock */ - if (dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR) { + if (frontbuffer_bits && dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR) intel_dp_set_drrs_state(dev_priv->dev, dev_priv->drrs.dp->attached_connector->panel. fixed_mode->vrefresh); - } - - frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe); - dev_priv->drrs.busy_frontbuffer_bits |= frontbuffer_bits; mutex_unlock(&dev_priv->drrs.mutex); } @@ -5530,10 +5529,12 @@ void intel_edp_drrs_flush(struct drm_device *dev, crtc = dp_to_dig_port(dev_priv->drrs.dp)->base.base.crtc; pipe = to_intel_crtc(crtc)->pipe; + + frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe); dev_priv->drrs.busy_frontbuffer_bits &= ~frontbuffer_bits; /* flush means busy screen hence upclock */ - if (dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR) + if (frontbuffer_bits && dev_priv->drrs.refresh_rate_type == DRRS_LOW_RR) intel_dp_set_drrs_state(dev_priv->dev, dev_priv->drrs.dp->attached_connector->panel. fixed_mode->vrefresh);