From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2992712AbbHHQLS (ORCPT ); Sat, 8 Aug 2015 12:11:18 -0400 Received: from pandora.arm.linux.org.uk ([78.32.30.218]:45268 "EHLO pandora.arm.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2992540AbbHHQLO (ORCPT ); Sat, 8 Aug 2015 12:11:14 -0400 In-Reply-To: <20150808160936.GN7557@n2100.arm.linux.org.uk> References: <20150808160936.GN7557@n2100.arm.linux.org.uk> From: Russell King To: linux-rockchip@lists.infradead.org, alsa-devel@alsa-project.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Philipp Zabel , Andy Yan , Yakir Yang , Fabio Estevam , Mark Brown , Takashi Iwai , Jaroslav Kysela , Sascha Hauer , Jon Nettleton , David Airlie Subject: [PATCH 6/9] drm: bridge/dw_hdmi: adjust pixel clock values in N calculation MIME-Version: 1.0 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" Message-Id: Date: Sat, 08 Aug 2015 17:10:32 +0100 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Adjust the pixel clock values in the N calculation to match the more accurate clock values we're given by the DRM subsystem, which are the kHz pixel rate, with any fractional kHz rounded down in the case of the non-240, non-480 line modes, or rounded up for the others. So, 25.20 / 1.001 => 25175 27.00 * 1.001 => 27027 74.25 / 1.001 => 74176 148.50 / 1.001 => 148352 Signed-off-by: Russell King --- drivers/gpu/drm/bridge/dw_hdmi.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/bridge/dw_hdmi.c b/drivers/gpu/drm/bridge/dw_hdmi.c index f0e6059f818a..5576cd7d7abb 100644 --- a/drivers/gpu/drm/bridge/dw_hdmi.c +++ b/drivers/gpu/drm/bridge/dw_hdmi.c @@ -230,11 +230,11 @@ static unsigned int hdmi_compute_n(unsigned int freq, unsigned long pixel_clk, switch (freq) { case 32000: - if (pixel_clk == 25170000) + if (pixel_clk == 25175000) n = (ratio == 150) ? 9152 : 4576; - else if (pixel_clk == 27020000) + else if (pixel_clk == 27027000) n = (ratio == 150) ? 8192 : 4096; - else if (pixel_clk == 74170000 || pixel_clk == 148350000) + else if (pixel_clk == 74176000 || pixel_clk == 148352000) n = 11648; else n = 4096; @@ -242,11 +242,11 @@ static unsigned int hdmi_compute_n(unsigned int freq, unsigned long pixel_clk, break; case 44100: - if (pixel_clk == 25170000) + if (pixel_clk == 25175000) n = 7007; - else if (pixel_clk == 74170000) + else if (pixel_clk == 74176000) n = 17836; - else if (pixel_clk == 148350000) + else if (pixel_clk == 148352000) n = (ratio == 150) ? 17836 : 8918; else n = 6272; @@ -254,13 +254,13 @@ static unsigned int hdmi_compute_n(unsigned int freq, unsigned long pixel_clk, break; case 48000: - if (pixel_clk == 25170000) + if (pixel_clk == 25175000) n = (ratio == 150) ? 9152 : 6864; - else if (pixel_clk == 27020000) + else if (pixel_clk == 27027000) n = (ratio == 150) ? 8192 : 6144; - else if (pixel_clk == 74170000) + else if (pixel_clk == 74176000) n = 11648; - else if (pixel_clk == 148350000) + else if (pixel_clk == 148352000) n = (ratio == 150) ? 11648 : 5824; else n = 6144; -- 2.1.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Russell King Subject: [PATCH 6/9] drm: bridge/dw_hdmi: adjust pixel clock values in N calculation Date: Sat, 08 Aug 2015 17:10:32 +0100 Message-ID: References: <20150808160936.GN7557@n2100.arm.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150808160936.GN7557@n2100.arm.linux.org.uk> Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-rockchip@lists.infradead.org, alsa-devel@alsa-project.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Fabio Estevam , Jaroslav Kysela , Mark Brown , Yakir Yang , Andy Yan List-Id: alsa-devel@alsa-project.org QWRqdXN0IHRoZSBwaXhlbCBjbG9jayB2YWx1ZXMgaW4gdGhlIE4gY2FsY3VsYXRpb24gdG8gbWF0 Y2ggdGhlIG1vcmUKYWNjdXJhdGUgY2xvY2sgdmFsdWVzIHdlJ3JlIGdpdmVuIGJ5IHRoZSBEUk0g c3Vic3lzdGVtLCB3aGljaCBhcmUgdGhlCmtIeiBwaXhlbCByYXRlLCB3aXRoIGFueSBmcmFjdGlv bmFsIGtIeiByb3VuZGVkIGRvd24gaW4gdGhlIGNhc2Ugb2YKdGhlIG5vbi0yNDAsIG5vbi00ODAg bGluZSBtb2Rlcywgb3Igcm91bmRlZCB1cCBmb3IgdGhlIG90aGVycy4gIFNvLAoKCSAyNS4yMCAv IDEuMDAxID0+ICAyNTE3NQoJIDI3LjAwICogMS4wMDEgPT4gIDI3MDI3CgkgNzQuMjUgLyAxLjAw MSA9PiAgNzQxNzYKCTE0OC41MCAvIDEuMDAxID0+IDE0ODM1MgoKU2lnbmVkLW9mZi1ieTogUnVz c2VsbCBLaW5nIDxybWsra2VybmVsQGFybS5saW51eC5vcmcudWs+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9kd19oZG1pLmMgfCAyMCArKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvZHdfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9k d19oZG1pLmMKaW5kZXggZjBlNjA1OWY4MThhLi41NTc2Y2Q3ZDdhYmIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvZHdfaGRtaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlk Z2UvZHdfaGRtaS5jCkBAIC0yMzAsMTEgKzIzMCwxMSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGhk bWlfY29tcHV0ZV9uKHVuc2lnbmVkIGludCBmcmVxLCB1bnNpZ25lZCBsb25nIHBpeGVsX2NsaywK IAogCXN3aXRjaCAoZnJlcSkgewogCWNhc2UgMzIwMDA6Ci0JCWlmIChwaXhlbF9jbGsgPT0gMjUx NzAwMDApCisJCWlmIChwaXhlbF9jbGsgPT0gMjUxNzUwMDApCiAJCQluID0gKHJhdGlvID09IDE1 MCkgPyA5MTUyIDogNDU3NjsKLQkJZWxzZSBpZiAocGl4ZWxfY2xrID09IDI3MDIwMDAwKQorCQll bHNlIGlmIChwaXhlbF9jbGsgPT0gMjcwMjcwMDApCiAJCQluID0gKHJhdGlvID09IDE1MCkgPyA4 MTkyIDogNDA5NjsKLQkJZWxzZSBpZiAocGl4ZWxfY2xrID09IDc0MTcwMDAwIHx8IHBpeGVsX2Ns ayA9PSAxNDgzNTAwMDApCisJCWVsc2UgaWYgKHBpeGVsX2NsayA9PSA3NDE3NjAwMCB8fCBwaXhl bF9jbGsgPT0gMTQ4MzUyMDAwKQogCQkJbiA9IDExNjQ4OwogCQllbHNlCiAJCQluID0gNDA5NjsK QEAgLTI0MiwxMSArMjQyLDExIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaGRtaV9jb21wdXRlX24o dW5zaWduZWQgaW50IGZyZXEsIHVuc2lnbmVkIGxvbmcgcGl4ZWxfY2xrLAogCQlicmVhazsKIAog CWNhc2UgNDQxMDA6Ci0JCWlmIChwaXhlbF9jbGsgPT0gMjUxNzAwMDApCisJCWlmIChwaXhlbF9j bGsgPT0gMjUxNzUwMDApCiAJCQluID0gNzAwNzsKLQkJZWxzZSBpZiAocGl4ZWxfY2xrID09IDc0 MTcwMDAwKQorCQllbHNlIGlmIChwaXhlbF9jbGsgPT0gNzQxNzYwMDApCiAJCQluID0gMTc4MzY7 Ci0JCWVsc2UgaWYgKHBpeGVsX2NsayA9PSAxNDgzNTAwMDApCisJCWVsc2UgaWYgKHBpeGVsX2Ns ayA9PSAxNDgzNTIwMDApCiAJCQluID0gKHJhdGlvID09IDE1MCkgPyAxNzgzNiA6IDg5MTg7CiAJ CWVsc2UKIAkJCW4gPSA2MjcyOwpAQCAtMjU0LDEzICsyNTQsMTMgQEAgc3RhdGljIHVuc2lnbmVk IGludCBoZG1pX2NvbXB1dGVfbih1bnNpZ25lZCBpbnQgZnJlcSwgdW5zaWduZWQgbG9uZyBwaXhl bF9jbGssCiAJCWJyZWFrOwogCiAJY2FzZSA0ODAwMDoKLQkJaWYgKHBpeGVsX2NsayA9PSAyNTE3 MDAwMCkKKwkJaWYgKHBpeGVsX2NsayA9PSAyNTE3NTAwMCkKIAkJCW4gPSAocmF0aW8gPT0gMTUw KSA/IDkxNTIgOiA2ODY0OwotCQllbHNlIGlmIChwaXhlbF9jbGsgPT0gMjcwMjAwMDApCisJCWVs c2UgaWYgKHBpeGVsX2NsayA9PSAyNzAyNzAwMCkKIAkJCW4gPSAocmF0aW8gPT0gMTUwKSA/IDgx OTIgOiA2MTQ0OwotCQllbHNlIGlmIChwaXhlbF9jbGsgPT0gNzQxNzAwMDApCisJCWVsc2UgaWYg KHBpeGVsX2NsayA9PSA3NDE3NjAwMCkKIAkJCW4gPSAxMTY0ODsKLQkJZWxzZSBpZiAocGl4ZWxf Y2xrID09IDE0ODM1MDAwMCkKKwkJZWxzZSBpZiAocGl4ZWxfY2xrID09IDE0ODM1MjAwMCkKIAkJ CW4gPSAocmF0aW8gPT0gMTUwKSA/IDExNjQ4IDogNTgyNDsKIAkJZWxzZQogCQkJbiA9IDYxNDQ7 Ci0tIAoyLjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: rmk+kernel@arm.linux.org.uk (Russell King) Date: Sat, 08 Aug 2015 17:10:32 +0100 Subject: [PATCH 6/9] drm: bridge/dw_hdmi: adjust pixel clock values in N calculation In-Reply-To: <20150808160936.GN7557@n2100.arm.linux.org.uk> References: <20150808160936.GN7557@n2100.arm.linux.org.uk> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Adjust the pixel clock values in the N calculation to match the more accurate clock values we're given by the DRM subsystem, which are the kHz pixel rate, with any fractional kHz rounded down in the case of the non-240, non-480 line modes, or rounded up for the others. So, 25.20 / 1.001 => 25175 27.00 * 1.001 => 27027 74.25 / 1.001 => 74176 148.50 / 1.001 => 148352 Signed-off-by: Russell King --- drivers/gpu/drm/bridge/dw_hdmi.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/bridge/dw_hdmi.c b/drivers/gpu/drm/bridge/dw_hdmi.c index f0e6059f818a..5576cd7d7abb 100644 --- a/drivers/gpu/drm/bridge/dw_hdmi.c +++ b/drivers/gpu/drm/bridge/dw_hdmi.c @@ -230,11 +230,11 @@ static unsigned int hdmi_compute_n(unsigned int freq, unsigned long pixel_clk, switch (freq) { case 32000: - if (pixel_clk == 25170000) + if (pixel_clk == 25175000) n = (ratio == 150) ? 9152 : 4576; - else if (pixel_clk == 27020000) + else if (pixel_clk == 27027000) n = (ratio == 150) ? 8192 : 4096; - else if (pixel_clk == 74170000 || pixel_clk == 148350000) + else if (pixel_clk == 74176000 || pixel_clk == 148352000) n = 11648; else n = 4096; @@ -242,11 +242,11 @@ static unsigned int hdmi_compute_n(unsigned int freq, unsigned long pixel_clk, break; case 44100: - if (pixel_clk == 25170000) + if (pixel_clk == 25175000) n = 7007; - else if (pixel_clk == 74170000) + else if (pixel_clk == 74176000) n = 17836; - else if (pixel_clk == 148350000) + else if (pixel_clk == 148352000) n = (ratio == 150) ? 17836 : 8918; else n = 6272; @@ -254,13 +254,13 @@ static unsigned int hdmi_compute_n(unsigned int freq, unsigned long pixel_clk, break; case 48000: - if (pixel_clk == 25170000) + if (pixel_clk == 25175000) n = (ratio == 150) ? 9152 : 6864; - else if (pixel_clk == 27020000) + else if (pixel_clk == 27027000) n = (ratio == 150) ? 8192 : 6144; - else if (pixel_clk == 74170000) + else if (pixel_clk == 74176000) n = 11648; - else if (pixel_clk == 148350000) + else if (pixel_clk == 148352000) n = (ratio == 150) ? 11648 : 5824; else n = 6144; -- 2.1.0