From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com ([192.55.52.136]:23648 "EHLO mga12.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751830AbeDRKhV (ORCPT ); Wed, 18 Apr 2018 06:37:21 -0400 From: Jani Nikula To: intel-gfx@lists.freedesktop.org Cc: jani.nikula@intel.com, Abhay Kumar , stable@vger.kernel.org, =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Dhinakaran Pandiyan , Wenkai Du Subject: [PATCH] drm/i915/audio: set minimum CD clock to twice the BCLK Date: Wed, 18 Apr 2018 13:37:07 +0300 Message-Id: <20180418103707.14645-1-jani.nikula@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org List-ID: From: Abhay Kumar In GLK when the device boots with only 1366x768 panel without audio, HDA codec doesn't come up. In this case, the CDCLK is less than twice the BCLK. Even though audio isn't being enabled, having a too low CDCLK leads to audio probe failing altogether. Require CDCLK to be at least twice the BLCK regardless of audio. This is a minimal fix to improve things. Unfortunately, this a) leads to too high CDCLK being used when audio is not used, and b) is still not enough to fix audio probe when no outputs are connected at probe time. The proper fix would be to increase CDCLK dynamically from the audio component hooks. v2: - Address comment (Jani) - New design approach v3: - Typo fix on top of v1 v4 by Jani: rewrite commit message, add comment in code Cc: stable@vger.kernel.org Cc: Ville Syrjälä Cc: Dhinakaran Pandiyan Cc: Wenkai Du Reviewed-by: Wenkai Du Tested-by: Wenkai Du Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102937 Signed-off-by: Abhay Kumar Signed-off-by: Jani Nikula --- drivers/gpu/drm/i915/intel_cdclk.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_cdclk.c b/drivers/gpu/drm/i915/intel_cdclk.c index fc8b2c6e3508..32d24c69da3c 100644 --- a/drivers/gpu/drm/i915/intel_cdclk.c +++ b/drivers/gpu/drm/i915/intel_cdclk.c @@ -2140,10 +2140,22 @@ int intel_crtc_compute_min_cdclk(const struct intel_crtc_state *crtc_state) } } - /* According to BSpec, "The CD clock frequency must be at least twice + /* + * According to BSpec, "The CD clock frequency must be at least twice * the frequency of the Azalia BCLK." and BCLK is 96 MHz by default. + * + * FIXME: Check the actual, not default, BCLK being used. + * + * FIXME: This does not depend on ->has_audio because the higher CDCLK + * is required for audio probe, also when there are no audio capable + * displays connected at probe time. This leads to unnecessarily high + * CDCLK when audio is not required. + * + * FIXME: This limit is only applied when there are displays connected + * at probe time. If we probe without displays, we'll still end up using + * the platform minimum CDCLK, failing audio probe. */ - if (crtc_state->has_audio && INTEL_GEN(dev_priv) >= 9) + if (INTEL_GEN(dev_priv) >= 9) min_cdclk = max(2 * 96000, min_cdclk); /* -- 2.11.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: [PATCH] drm/i915/audio: set minimum CD clock to twice the BCLK Date: Wed, 18 Apr 2018 13:37:07 +0300 Message-ID: <20180418103707.14645-1-jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id BB04E6E1EE for ; Wed, 18 Apr 2018 10:37:21 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: jani.nikula@intel.com, stable@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQWJoYXkgS3VtYXIgPGFiaGF5Lmt1bWFyQGludGVsLmNvbT4KCkluIEdMSyB3aGVuIHRo ZSBkZXZpY2UgYm9vdHMgd2l0aCBvbmx5IDEzNjZ4NzY4IHBhbmVsIHdpdGhvdXQgYXVkaW8sIEhE QQpjb2RlYyBkb2Vzbid0IGNvbWUgdXAuIEluIHRoaXMgY2FzZSwgdGhlIENEQ0xLIGlzIGxlc3Mg dGhhbiB0d2ljZSB0aGUKQkNMSy4gRXZlbiB0aG91Z2ggYXVkaW8gaXNuJ3QgYmVpbmcgZW5hYmxl ZCwgaGF2aW5nIGEgdG9vIGxvdyBDRENMSwpsZWFkcyB0byBhdWRpbyBwcm9iZSBmYWlsaW5nIGFs dG9nZXRoZXIuCgpSZXF1aXJlIENEQ0xLIHRvIGJlIGF0IGxlYXN0IHR3aWNlIHRoZSBCTENLIHJl Z2FyZGxlc3Mgb2YgYXVkaW8uIFRoaXMgaXMKYSBtaW5pbWFsIGZpeCB0byBpbXByb3ZlIHRoaW5n cy4gVW5mb3J0dW5hdGVseSwgdGhpcyBhKSBsZWFkcyB0byB0b28KaGlnaCBDRENMSyBiZWluZyB1 c2VkIHdoZW4gYXVkaW8gaXMgbm90IHVzZWQsIGFuZCBiKSBpcyBzdGlsbCBub3QgZW5vdWdoCnRv IGZpeCBhdWRpbyBwcm9iZSB3aGVuIG5vIG91dHB1dHMgYXJlIGNvbm5lY3RlZCBhdCBwcm9iZSB0 aW1lLgoKVGhlIHByb3BlciBmaXggd291bGQgYmUgdG8gaW5jcmVhc2UgQ0RDTEsgZHluYW1pY2Fs bHkgZnJvbSB0aGUgYXVkaW8KY29tcG9uZW50IGhvb2tzLgoKdjI6CiAgICAtIEFkZHJlc3MgY29t bWVudCAoSmFuaSkKICAgIC0gTmV3IGRlc2lnbiBhcHByb2FjaAp2MzogLSBUeXBvIGZpeCBvbiB0 b3Agb2YgdjEKCnY0IGJ5IEphbmk6IHJld3JpdGUgY29tbWl0IG1lc3NhZ2UsIGFkZCBjb21tZW50 IGluIGNvZGUKCkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnCkNjOiBWaWxsZSBTeXJqw6Rsw6Qg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8 ZGhpbmFrYXJhbi5wYW5kaXlhbkBnbWFpbC5jb20+CkNjOiBXZW5rYWkgRHUgPHdlbmthaS5kdUBp bnRlbC5jb20+ClJldmlld2VkLWJ5OiBXZW5rYWkgRHUgPHdlbmthaS5kdUBpbnRlbC5jb20+ClRl c3RlZC1ieTogV2Vua2FpIER1IDx3ZW5rYWkuZHVAaW50ZWwuY29tPgpCdWd6aWxsYTogaHR0cHM6 Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyOTM3ClNpZ25lZC1vZmYt Ynk6IEFiaGF5IEt1bWFyIDxhYmhheS5rdW1hckBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEph bmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfY2RjbGsuYyB8IDE2ICsrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAx NCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2NkY2xrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNs ay5jCmluZGV4IGZjOGIyYzZlMzUwOC4uMzJkMjRjNjlkYTNjIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2NkY2xrLmMKQEAgLTIxNDAsMTAgKzIxNDAsMjIgQEAgaW50IGludGVsX2NydGNfY29tcHV0 ZV9taW5fY2RjbGsoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJ CX0KIAl9CiAKLQkvKiBBY2NvcmRpbmcgdG8gQlNwZWMsICJUaGUgQ0QgY2xvY2sgZnJlcXVlbmN5 IG11c3QgYmUgYXQgbGVhc3QgdHdpY2UKKwkvKgorCSAqIEFjY29yZGluZyB0byBCU3BlYywgIlRo ZSBDRCBjbG9jayBmcmVxdWVuY3kgbXVzdCBiZSBhdCBsZWFzdCB0d2ljZQogCSAqIHRoZSBmcmVx dWVuY3kgb2YgdGhlIEF6YWxpYSBCQ0xLLiIgYW5kIEJDTEsgaXMgOTYgTUh6IGJ5IGRlZmF1bHQu CisJICoKKwkgKiBGSVhNRTogQ2hlY2sgdGhlIGFjdHVhbCwgbm90IGRlZmF1bHQsIEJDTEsgYmVp bmcgdXNlZC4KKwkgKgorCSAqIEZJWE1FOiBUaGlzIGRvZXMgbm90IGRlcGVuZCBvbiAtPmhhc19h dWRpbyBiZWNhdXNlIHRoZSBoaWdoZXIgQ0RDTEsKKwkgKiBpcyByZXF1aXJlZCBmb3IgYXVkaW8g cHJvYmUsIGFsc28gd2hlbiB0aGVyZSBhcmUgbm8gYXVkaW8gY2FwYWJsZQorCSAqIGRpc3BsYXlz IGNvbm5lY3RlZCBhdCBwcm9iZSB0aW1lLiBUaGlzIGxlYWRzIHRvIHVubmVjZXNzYXJpbHkgaGln aAorCSAqIENEQ0xLIHdoZW4gYXVkaW8gaXMgbm90IHJlcXVpcmVkLgorCSAqCisJICogRklYTUU6 IFRoaXMgbGltaXQgaXMgb25seSBhcHBsaWVkIHdoZW4gdGhlcmUgYXJlIGRpc3BsYXlzIGNvbm5l Y3RlZAorCSAqIGF0IHByb2JlIHRpbWUuIElmIHdlIHByb2JlIHdpdGhvdXQgZGlzcGxheXMsIHdl J2xsIHN0aWxsIGVuZCB1cCB1c2luZworCSAqIHRoZSBwbGF0Zm9ybSBtaW5pbXVtIENEQ0xLLCBm YWlsaW5nIGF1ZGlvIHByb2JlLgogCSAqLwotCWlmIChjcnRjX3N0YXRlLT5oYXNfYXVkaW8gJiYg SU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkp CiAJCW1pbl9jZGNsayA9IG1heCgyICogOTYwMDAsIG1pbl9jZGNsayk7CiAKIAkvKgotLSAKMi4x MS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK