From patchwork Wed Apr 29 05:43:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AceLan Kao X-Patchwork-Id: 1278958 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=ViAjlzzN; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49BnWN6yJDz9sSG; Wed, 29 Apr 2020 15:43:58 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1jTfVg-00024d-Ev; Wed, 29 Apr 2020 05:43:52 +0000 Received: from mail-pg1-f193.google.com ([209.85.215.193]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1jTfVe-00024R-GH for kernel-team@lists.ubuntu.com; Wed, 29 Apr 2020 05:43:50 +0000 Received: by mail-pg1-f193.google.com with SMTP id s8so523649pgq.1 for ; Tue, 28 Apr 2020 22:43:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=trFja+ksCIiwp5I/f88elxzbjU5xk/5ssXeKEQmw3SQ=; b=ViAjlzzNZ3vL1jk9/2LInZCgj/CISm8JrHtsS5Iw2cJcAB6kB0ti0tfTTIJ5fqL4Tu NvDLOb7B03ILLgndJ2dUIBJyDe7s3KGernEiplwyDmC6MBTrK+v7fViSF0Opscs1nSlN JkVwT1V/4+Xw3NrtWhCAvnTPSkBBAt+LEkdEKFUc9/ucDJNDnmuEjLl/ru/LMrQZMPk6 Ns69UuCkDrD4F294FvvAShVH7R7rtOuaLs+g+KB9FeozUGZLADcq2FM1PGcI9eeKDKPE 8FgwL3PoifMplGzsVKAuBw+ECol1cP6VsMwPEQKJswW+UJD/qUsoh/JBn34MwSh5fxKG aw8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=trFja+ksCIiwp5I/f88elxzbjU5xk/5ssXeKEQmw3SQ=; b=NTrZVyX8I6DxmfhNVaIbHaZIjg/cUGQ6jxm882jdFiPEv9bWySBMzcQ53i5s6faTN3 RgJKT1heY+pe31USlKaogmoYzeko3XYkUgKYP2VDyhgkb6u51Wvw4aJhJwkJpbEuClw6 kXgpkc7HfWUTdyr5EipRvmasL/EoOGxx5VKgWM3Viuxqgw2AT1ZTafPRiMO2Cq6zPPA7 ydO4UgSCeEI/0bFe4m7NuM2K4gDCaMHY9d0qXMB7r6XVAtuum/ouStkgQ/wLriFP6HVd ZdIZeNDpbFRNF09evAfYEyQsgFufY/2+RJWt7Yv8YWOgU6Ol/83OYIMCpEKfvlgRMEFU 46MA== X-Gm-Message-State: AGi0PubQs1UaWDOoaWN+bYYm9x/E++p/t2cyXcl3GtScfIxTjiD+lD/p g4Iv/1+LOhTAnDkT44VMmyAWVkNA X-Google-Smtp-Source: APiQypLnvBA3nhmwVo9/DRA4sGZZ28FusmFNIu15itALMYh8GaOVGviTSxcZH/ChsXghXXYiExha3g== X-Received: by 2002:a63:4665:: with SMTP id v37mr29998099pgk.297.1588139028352; Tue, 28 Apr 2020 22:43:48 -0700 (PDT) Received: from localhost (220-135-95-34.HINET-IP.hinet.net. [220.135.95.34]) by smtp.gmail.com with ESMTPSA id mn1sm3571718pjb.24.2020.04.28.22.43.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Apr 2020 22:43:47 -0700 (PDT) From: AceLan Kao To: kernel-team@lists.ubuntu.com Subject: [PATCH 1/1][SRU][OEM-OSP1-B] drm/i915: Limit audio CDCLK>=2*BCLK constraint back to GLK only Date: Wed, 29 Apr 2020 13:43:46 +0800 Message-Id: <20200429054346.246509-1-acelan.kao@canonical.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200429025528.236678-1-acelan.kao@canonical.com> References: <20200429025528.236678-1-acelan.kao@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Kai Vehmanen BugLink: https://bugs.launchpad.net/bugs/1875254 Revert changes done in commit f6ec9483091f ("drm/i915: extend audio CDCLK>=2*BCLK constraint to more platforms"). Audio drivers communicate with i915 over HDA bus multiple times during system boot-up and each of these transactions result in matching get_power/put_power calls to i915, and depending on the platform, a modeset change causing visible flicker. GLK is the only platform with minimum CDCLK significantly lower than BCLK, and thus for GLK setting a higher CDCLK is mandatory. For other platforms, minimum CDCLK is close but below 2*BCLK (e.g. on ICL, CDCLK=176.4kHz with BCLK=96kHz). Spec-wise the constraint should be set, but in practise no communication errors have been reported and the downside if set is the flicker observed at boot-time. Revert to old behaviour until better mechanism to manage probe-time clocks is available. The full CDCLK>=2*BCLK constraint is still enforced at pipe enable time in intel_crtc_compute_min_cdclk(). Bugzilla: https://gitlab.freedesktop.org/drm/intel/issues/913 Fixes: f6ec9483091f ("drm/i915: extend audio CDCLK>=2*BCLK constraint to more platforms") Signed-off-by: Kai Vehmanen Reviewed-by: Matt Roper Signed-off-by: Matt Roper Link: https://patchwork.freedesktop.org/patch/msgid/20191231140007.31728-1-kai.vehmanen@linux.intel.com (bacported from commit 1ee48a61aa57dbdbc3cd2808d8b28df40d938e44) Signed-off-by: AceLan Kao Acked-by: You-Sheng Yang --- drivers/gpu/drm/i915/intel_audio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c index 967adf765741..1b53a45dfdbe 100644 --- a/drivers/gpu/drm/i915/intel_audio.c +++ b/drivers/gpu/drm/i915/intel_audio.c @@ -794,7 +794,7 @@ static void i915_audio_component_get_power(struct device *kdev) /* Force CDCLK to 2*BCLK as long as we need audio to be powered. */ if (dev_priv->audio_power_refcount++ == 0) { - if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) + if (IS_GEMINILAKE(dev_priv)) glk_force_audio_cdclk(dev_priv, true); if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) @@ -810,7 +810,7 @@ static void i915_audio_component_put_power(struct device *kdev) /* Stop forcing CDCLK to 2*BCLK if no need for audio to be powered. */ if (--dev_priv->audio_power_refcount == 0) - if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) + if (IS_GEMINILAKE(dev_priv)) glk_force_audio_cdclk(dev_priv, false); intel_display_power_put(kdev_to_i915(kdev), POWER_DOMAIN_AUDIO);