From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bibby Hsieh Subject: [PATCH v2 3/3] drm/mediatek: fix the wrong pixel clock when resolution is 4K Date: Wed, 27 Jul 2016 16:31:32 +0800 Message-ID: <1469608292-6106-4-git-send-email-bibby.hsieh@mediatek.com> References: <1469608292-6106-1-git-send-email-bibby.hsieh@mediatek.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1469608292-6106-1-git-send-email-bibby.hsieh@mediatek.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: David Airlie , Matthias Brugger , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org Cc: Junzhi Zhao , linux-kernel@vger.kernel.org, Cawa Cheng , Mao Huang , Yingjoe Chen , Sascha Hauer , linux-arm-kernel@lists.infradead.org List-Id: linux-mediatek@lists.infradead.org RnJvbTogSnVuemhpIFpoYW8gPGp1bnpoaS56aGFvQG1lZGlhdGVrLmNvbT4KClBpeGVsIGNsb2Nr IHNob3VsZCBiZSAyOTdNSHogd2hlbiByZXNvbHV0aW9uIGlzIDRLLgoKU2lnbmVkLW9mZi1ieTog SnVuemhpIFpoYW8gPGp1bnpoaS56aGFvQG1lZGlhdGVrLmNvbT4KU2lnbmVkLW9mZi1ieTogQmli YnkgSHNpZWggPGJpYmJ5LmhzaWVoQG1lZGlhdGVrLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2RwaS5jIHwgIDE0OSArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspLCA1MyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RwaS5jIGIvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kcGkuYwppbmRleCBkMDVjYTc5Li5mYTM5MGUwIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RwaS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfZHBpLmMKQEAgLTYwLDE0ICs2MCwyNSBAQCBlbnVtIG10a19k cGlfb3V0X2NvbG9yX2Zvcm1hdCB7CiAJTVRLX0RQSV9DT0xPUl9GT1JNQVRfWUNCQ1JfNDIyX0ZV TEwKIH07CiAKK2VudW0gbXRrX2RwaV9jbGtfaWQgeworCU1US19EUElfQ0xLX0RQSV9FTkdJTkUs CisJTVRLX0RQSV9DTEtfRFBJX1BJWEVMLAorCU1US19EUElfQ0xLX1RWRF9QTEwsCisJTVRLX0RQ SV9DTEtfQ09VTlQsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG10a19kcGlfY2xr X25hbWVzW01US19EUElfQ0xLX0NPVU5UXSA9IHsKKwlbTVRLX0RQSV9DTEtfRFBJX0VOR0lORV0g PSAiZW5naW5lIiwKKwlbTVRLX0RQSV9DTEtfRFBJX1BJWEVMXSA9ICJwaXhlbCIsCisJW01US19E UElfQ0xLX1RWRF9QTExdID0gInBsbCIsCit9OworCiBzdHJ1Y3QgbXRrX2RwaSB7CiAJc3RydWN0 IG10a19kZHBfY29tcCBkZHBfY29tcDsKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgZW5jb2RlcjsKIAl2 b2lkIF9faW9tZW0gKnJlZ3M7CiAJc3RydWN0IGRldmljZSAqZGV2OwotCXN0cnVjdCBjbGsgKmVu Z2luZV9jbGs7Ci0Jc3RydWN0IGNsayAqcGl4ZWxfY2xrOwotCXN0cnVjdCBjbGsgKnR2ZF9jbGs7 CisJc3RydWN0IGNsayAqY2xrW01US19EUElfQ0xLX0NPVU5UXTsKIAlpbnQgaXJxOwogCXN0cnVj dCBkcm1fZGlzcGxheV9tb2RlIG1vZGU7CiAJZW51bSBtdGtfZHBpX291dF9jb2xvcl9mb3JtYXQg Y29sb3JfZm9ybWF0OwpAQCAtNzYsNiArODcsNyBAQCBzdHJ1Y3QgbXRrX2RwaSB7CiAJZW51bSBt dGtfZHBpX291dF9jaGFubmVsX3N3YXAgY2hhbm5lbF9zd2FwOwogCWJvb2wgcG93ZXJfc3RhOwog CXU4IHBvd2VyX2N0bDsKKwl2b2lkICpkYXRhOwogfTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3Qg bXRrX2RwaSAqbXRrX2RwaV9mcm9tX2VuY29kZXIoc3RydWN0IGRybV9lbmNvZGVyICplKQpAQCAt MTE0LDYgKzEyNiwxMCBAQCBzdHJ1Y3QgbXRrX2RwaV95Y19saW1pdCB7CiAJdTE2IGNfYm90dG9t OwogfTsKIAorc3RydWN0IG10a19kcGlfY29uZiB7CisJaW50ICgqY2xrX2NvbmZpZykoc3RydWN0 IG10a19kcGkgKmRwaSwgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOworfTsKKwogc3Rh dGljIHZvaWQgbXRrX2RwaV9tYXNrKHN0cnVjdCBtdGtfZHBpICpkcGksIHUzMiBvZmZzZXQsIHUz MiB2YWwsIHUzMiBtYXNrKQogewogCXUzMiB0bXAgPSByZWFkbChkcGktPnJlZ3MgKyBvZmZzZXQp ICYgfm1hc2s7CkBAIC0zNzcsOCArMzkzLDggQEAgc3RhdGljIHZvaWQgbXRrX2RwaV9wb3dlcl9v ZmYoc3RydWN0IG10a19kcGkgKmRwaSwgZW51bSBtdGtfZHBpX3Bvd2VyX2N0bCBwY3RsKQogCQly ZXR1cm47CiAKIAltdGtfZHBpX2Rpc2FibGUoZHBpKTsKLQljbGtfZGlzYWJsZV91bnByZXBhcmUo ZHBpLT5waXhlbF9jbGspOwotCWNsa19kaXNhYmxlX3VucHJlcGFyZShkcGktPmVuZ2luZV9jbGsp OworCWNsa19kaXNhYmxlX3VucHJlcGFyZShkcGktPmNsa1tNVEtfRFBJX0NMS19EUElfUElYRUxd KTsKKwljbGtfZGlzYWJsZV91bnByZXBhcmUoZHBpLT5jbGtbTVRLX0RQSV9DTEtfRFBJX0VOR0lO RV0pOwogCWRwaS0+cG93ZXJfc3RhID0gZmFsc2U7CiB9CiAKQEAgLTM5NSwxMyArNDExLDEzIEBA IHN0YXRpYyBpbnQgbXRrX2RwaV9wb3dlcl9vbihzdHJ1Y3QgbXRrX2RwaSAqZHBpLCBlbnVtIG10 a19kcGlfcG93ZXJfY3RsIHBjdGwpCiAJaWYgKGRwaS0+cG93ZXJfc3RhKQogCQlyZXR1cm4gMDsK IAotCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShkcGktPmVuZ2luZV9jbGspOworCXJldCA9IGNs a19wcmVwYXJlX2VuYWJsZShkcGktPmNsa1tNVEtfRFBJX0NMS19EUElfRU5HSU5FXSk7CiAJaWYg KHJldCkgewogCQlkZXZfZXJyKGRwaS0+ZGV2LCAiRmFpbGVkIHRvIGVuYWJsZSBlbmdpbmUgY2xv Y2s6ICVkXG4iLCByZXQpOwogCQlnb3RvIGVycl9lbmc7CiAJfQogCi0JcmV0ID0gY2xrX3ByZXBh cmVfZW5hYmxlKGRwaS0+cGl4ZWxfY2xrKTsKKwlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoZHBp LT5jbGtbTVRLX0RQSV9DTEtfRFBJX1BJWEVMXSk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKGRw aS0+ZGV2LCAiRmFpbGVkIHRvIGVuYWJsZSBwaXhlbCBjbG9jazogJWRcbiIsIHJldCk7CiAJCWdv dG8gZXJyX3BpeGVsOwpAQCAtNDEyLDcgKzQyOCw3IEBAIHN0YXRpYyBpbnQgbXRrX2RwaV9wb3dl cl9vbihzdHJ1Y3QgbXRrX2RwaSAqZHBpLCBlbnVtIG10a19kcGlfcG93ZXJfY3RsIHBjdGwpCiAJ cmV0dXJuIDA7CiAKIGVycl9waXhlbDoKLQljbGtfZGlzYWJsZV91bnByZXBhcmUoZHBpLT5lbmdp bmVfY2xrKTsKKwljbGtfZGlzYWJsZV91bnByZXBhcmUoZHBpLT5jbGtbTVRLX0RQSV9DTEtfRFBJ X0VOR0lORV0pOwogZXJyX2VuZzoKIAlkcGktPnBvd2VyX2N0bCAmPSB+cGN0bDsKIAlyZXR1cm4g cmV0OwpAQCAtNDI4LDM0ICs0NDQsMTggQEAgc3RhdGljIGludCBtdGtfZHBpX3NldF9kaXNwbGF5 X21vZGUoc3RydWN0IG10a19kcGkgKmRwaSwKIAlzdHJ1Y3QgbXRrX2RwaV9zeW5jX3BhcmFtIHZz eW5jX2xldmVuID0geyAwIH07CiAJc3RydWN0IG10a19kcGlfc3luY19wYXJhbSB2c3luY19yb2Rk ID0geyAwIH07CiAJc3RydWN0IG10a19kcGlfc3luY19wYXJhbSB2c3luY19yZXZlbiA9IHsgMCB9 OwotCXVuc2lnbmVkIGxvbmcgcGl4X3JhdGU7Ci0JdW5zaWduZWQgbG9uZyBwbGxfcmF0ZTsKLQl1 bnNpZ25lZCBpbnQgZmFjdG9yOworCXN0cnVjdCBtdGtfZHBpX2NvbmYgKmNvbmY7CisJaW50IHJl dDsKIAogCWlmICghZHBpKSB7CiAJCWRldl9lcnIoZHBpLT5kZXYsICJpbnZhbGlkIGFyZ3VtZW50 XG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JcGl4X3JhdGUgPSAxMDAwVUwgKiBtb2Rl LT5jbG9jazsKLQlpZiAobW9kZS0+Y2xvY2sgPD0gNzQwMDApCi0JCWZhY3RvciA9IDggKiAzOwot CWVsc2UKLQkJZmFjdG9yID0gNCAqIDM7Ci0JcGxsX3JhdGUgPSBwaXhfcmF0ZSAqIGZhY3RvcjsK LQotCWRldl9kYmcoZHBpLT5kZXYsICJXYW50IFBMTCAlbHUgSHosIHBpeGVsIGNsb2NrICVsdSBI elxuIiwKLQkJcGxsX3JhdGUsIHBpeF9yYXRlKTsKLQotCWNsa19zZXRfcmF0ZShkcGktPnR2ZF9j bGssIHBsbF9yYXRlKTsKLQlwbGxfcmF0ZSA9IGNsa19nZXRfcmF0ZShkcGktPnR2ZF9jbGspOwot Ci0JcGl4X3JhdGUgPSBwbGxfcmF0ZSAvIGZhY3RvcjsKLQljbGtfc2V0X3JhdGUoZHBpLT5waXhl bF9jbGssIHBpeF9yYXRlKTsKLQlwaXhfcmF0ZSA9IGNsa19nZXRfcmF0ZShkcGktPnBpeGVsX2Ns ayk7Ci0KLQlkZXZfZGJnKGRwaS0+ZGV2LCAiR290ICBQTEwgJWx1IEh6LCBwaXhlbCBjbG9jayAl bHUgSHpcbiIsCi0JCXBsbF9yYXRlLCBwaXhfcmF0ZSk7CisJY29uZiA9IChzdHJ1Y3QgbXRrX2Rw aV9jb25mICopZHBpLT5kYXRhOworCXJldCA9IGNvbmYtPmNsa19jb25maWcoZHBpLCBtb2RlKTsK KwlpZiAocmV0KQorCQlkZXZfZXJyKGRwaS0+ZGV2LCAiZHBpIGNsayBzZXQgZmFpbFxuIik7CiAK IAlsaW1pdC5jX2JvdHRvbSA9IDB4MDAxMDsKIAlsaW1pdC5jX3RvcCA9IDB4MEZFMDsKQEAgLTY1 NiwyMCArNjU2LDgzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50X29wcyBtdGtfZHBp X2NvbXBvbmVudF9vcHMgPSB7CiAJLnVuYmluZCA9IG10a19kcGlfdW5iaW5kLAogfTsKIAorc3Rh dGljIGludCBtdGtfZHBpX3BhcnNlX2Nsa19mcm9tX2R0KHN0cnVjdCBtdGtfZHBpICpkcGksCisJ CQkJICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQoreworCWludCBpOworCisJZm9yIChpID0g MDsgaSA8IEFSUkFZX1NJWkUobXRrX2RwaV9jbGtfbmFtZXMpOyBpKyspIHsKKwkJZHBpLT5jbGtb aV0gPSBvZl9jbGtfZ2V0X2J5X25hbWUobnAsCisJCQkJCQkgIG10a19kcGlfY2xrX25hbWVzW2ld KTsKKwkJaWYgKElTX0VSUihkcGktPmNsa1tpXSkpCisJCQlyZXR1cm4gUFRSX0VSUihkcGktPmNs a1tpXSk7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG10ODE3M19jbGtfY29uZmln KHN0cnVjdCBtdGtfZHBpICpkcGksIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQorewor CXVuc2lnbmVkIGxvbmcgcGl4X3JhdGU7CisJdW5zaWduZWQgbG9uZyBwbGxfcmF0ZTsKKwl1bnNp Z25lZCBpbnQgZmFjdG9yOworCisJcGl4X3JhdGUgPSAxMDAwVUwgKiBtb2RlLT5jbG9jazsKKwlp ZiAobW9kZS0+Y2xvY2sgPD0gMjcwMDApCisJCWZhY3RvciA9IDE2ICogMzsKKwllbHNlIGlmICht b2RlLT5jbG9jayA8PSA3NDI1MCkKKwkJZmFjdG9yID0gOCAqIDM7CisJZWxzZSBpZiAobW9kZS0+ Y2xvY2sgPD0gMTY3MDAwKQorCQlmYWN0b3IgPSA0ICogMzsKKwllbHNlCisJCWZhY3RvciA9IDIg KiAzOworCXBsbF9yYXRlID0gcGl4X3JhdGUgKiBmYWN0b3I7CisKKwlkZXZfZGJnKGRwaS0+ZGV2 LCAiV2FudCBQTEwgJWx1IEh6LCBwaXhlbCBjbG9jayAlbHUgSHpcbiIsCisJCXBsbF9yYXRlLCBw aXhfcmF0ZSk7CisKKwlwbGxfcmF0ZSA9IGNsa19nZXRfcmF0ZShkcGktPmNsa1tNVEtfRFBJX0NM S19UVkRfUExMXSk7CisJcGl4X3JhdGUgPSBwbGxfcmF0ZSAvIGZhY3RvcjsKKwljbGtfc2V0X3Jh dGUoZHBpLT5jbGtbTVRLX0RQSV9DTEtfRFBJX1BJWEVMXSwgcGl4X3JhdGUpOworCWRldl9kYmco ZHBpLT5kZXYsICJHb3QgIFBMTCAlbHUgSHosIHBpeGVsIGNsb2NrICVsdSBIelxuIiwKKwkJcGxs X3JhdGUsIHBpeF9yYXRlKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0 IG10a19kcGlfY29uZiBtdDgxNzNfY29uZiA9IHsKKwkuY2xrX2NvbmZpZyA9IG10ODE3M19jbGtf Y29uZmlnLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX2RwaV9v Zl9pZHNbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1kcGkiLAorCQku ZGF0YSA9ICZtdDgxNzNfY29uZiwKKwl9LAorCXt9Cit9OworCiBzdGF0aWMgaW50IG10a19kcGlf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAlzdHJ1Y3QgZGV2aWNlICpk ZXYgPSAmcGRldi0+ZGV2OwogCXN0cnVjdCBtdGtfZHBpICpkcGk7CiAJc3RydWN0IHJlc291cmNl ICptZW07CisJc3RydWN0IGRldmljZV9ub2RlICpucCA9IGRldi0+b2Zfbm9kZTsKIAlzdHJ1Y3Qg ZGV2aWNlX25vZGUgKmVwLCAqYnJpZGdlX25vZGUgPSBOVUxMOwogCWludCBjb21wX2lkOworCWNv bnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm1hdGNoOworCXN0cnVjdCBtdGtfZHBpX2NvbmYgKmNv bmY7CiAJaW50IHJldDsKIAorCW1hdGNoID0gb2ZfbWF0Y2hfbm9kZShtdGtfZHBpX29mX2lkcywg ZGV2LT5vZl9ub2RlKTsKKwlpZiAoIW1hdGNoKQorCQlyZXR1cm4gLUVOT0RFVjsKKwogCWRwaSA9 IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqZHBpKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFkcGkp CiAJCXJldHVybiAtRU5PTUVNOwogCiAJZHBpLT5kZXYgPSBkZXY7CisJZHBpLT5kYXRhID0gKHZv aWQgKiltYXRjaC0+ZGF0YTsKKwljb25mID0gKHN0cnVjdCBtdGtfZHBpX2NvbmYgKiltYXRjaC0+ ZGF0YTsKIAogCW1lbSA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01F TSwgMCk7CiAJZHBpLT5yZWdzID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgbWVtKTsKQEAg LTY3OSwyNCArNzQyLDkgQEAgc3RhdGljIGludCBtdGtfZHBpX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCiAJCXJldHVybiByZXQ7CiAJfQogCi0JZHBpLT5lbmdpbmVfY2xrID0g ZGV2bV9jbGtfZ2V0KGRldiwgImVuZ2luZSIpOwotCWlmIChJU19FUlIoZHBpLT5lbmdpbmVfY2xr KSkgewotCQlyZXQgPSBQVFJfRVJSKGRwaS0+ZW5naW5lX2Nsayk7Ci0JCWRldl9lcnIoZGV2LCAi RmFpbGVkIHRvIGdldCBlbmdpbmUgY2xvY2s6ICVkXG4iLCByZXQpOwotCQlyZXR1cm4gcmV0Owot CX0KLQotCWRwaS0+cGl4ZWxfY2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgInBpeGVsIik7Ci0JaWYg KElTX0VSUihkcGktPnBpeGVsX2NsaykpIHsKLQkJcmV0ID0gUFRSX0VSUihkcGktPnBpeGVsX2Ns ayk7Ci0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBwaXhlbCBjbG9jazogJWRcbiIsIHJl dCk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JZHBpLT50dmRfY2xrID0gZGV2bV9jbGtfZ2V0KGRl diwgInBsbCIpOwotCWlmIChJU19FUlIoZHBpLT50dmRfY2xrKSkgewotCQlyZXQgPSBQVFJfRVJS KGRwaS0+dHZkX2Nsayk7Ci0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCB0dmRwbGwgY2xv Y2s6ICVkXG4iLCByZXQpOworCXJldCA9IG10a19kcGlfcGFyc2VfY2xrX2Zyb21fZHQoZHBpLCBu cCk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKGRldiwgInBhcnNlIHR2ZCBkaXYgY2xrIGZhaWxl ZCEiKTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKQEAgLTc1NCwxMSArODAyLDYgQEAgc3RhdGljIGlu dCBtdGtfZHBpX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXJldHVybiAw OwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtfZHBpX29mX2lkc1td ID0gewotCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTczLWRwaSIsIH0sCi0Je30KLX07 Ci0KIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2RwaV9kcml2ZXIgPSB7CiAJLnByb2JlID0g bXRrX2RwaV9wcm9iZSwKIAkucmVtb3ZlID0gbXRrX2RwaV9yZW1vdmUsCi0tIAoxLjcuOS41Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK