From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Stultz Subject: [RFC][PATCH v3] drm: kirin: Add mode_valid logic to avoid mode clocks we can't generate Date: Tue, 18 Jul 2017 10:59:41 -0700 Message-ID: <1500400781-18162-1-git-send-email-john.stultz@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf0-x22b.google.com (mail-pf0-x22b.google.com [IPv6:2607:f8b0:400e:c00::22b]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6DEED6E385 for ; Tue, 18 Jul 2017 17:59:46 +0000 (UTC) Received: by mail-pf0-x22b.google.com with SMTP id e199so14861897pfh.2 for ; Tue, 18 Jul 2017 10:59:46 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: lkml Cc: Jose Abreu , Chen Feng , Xinwei Kong , Xinliang Liu , dri-devel@lists.freedesktop.org, Rongrong Zou , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org Q3VycmVudGx5IHRoZSBoaWtleSBkc2kgbG9naWMgY2Fubm90IGdlbmVyYXRlIGFjY3VyYXRlIGJ5 dGUKY2xvY2tzIHZhbHVlcyBmb3IgYWxsIHBpeGVsIGNsb2NrIHZhbHVlcy4gVGh1cyBpZiBhIG1v ZGUgY2xvY2sKaXMgc2VsZWN0ZWQgdGhhdCBjYW5ub3QgbWF0Y2ggdGhlIGNhbGN1bGF0ZWQgYnl0 ZSBjbG9jaywgdGhlCmRldmljZSB3aWxsIGJvb3Qgd2l0aCBhIGJsYW5rIHNjcmVlbi4KClRoaXMg cGF0Y2ggdXNlcyB0aGUgbmV3IG1vZGVfdmFsaWQgY2FsbGJhY2sgKG1hbnkgdGhhbmtzIHRvCkpv c2UgQWJyZXUgZm9yIHVwc3RyZWFtaW5nIGl0ISkgdG8gZW5zdXJlIHdlIGRvbid0IHNlbGVjdApt b2RlcyB3ZSBjYW5ub3QgZ2VuZXJhdGUuCgpBbHNvLCBzaW5jZSB0aGUgYWRlIGNydGMgY29kZSB3 aWxsIGFkanVzdCB0aGUgbW9kZSBpbiBtb2RlX3NldCwKdGhpcyBwYXRjaCBhbHNvIGFkZHMgYSBt b2RlX2ZpeHVwIGNhbGxiYWNrIHdoaWNoIHdlIHVzZSB0byBtYWtlCnN1cmUgd2UgYXJlIHZhbGlk YXRpbmcgdGhlIG1vZGUgY2xvY2sgdGhhdCB3aWxsIGV2ZW50dWFsbHkgYmUKdXNlZC4KCk1hbnkg dGhhbmtzIHRvIEpvc2UgYW5kIERhbmllbCBmb3IgcmVjZW50IGZlZWRiYWNrLiBJIHRoaW5rIHRo aXMKdmVyc2lvbiBpcyBsb29raW5nIG11Y2ggbmljZXIuIEJ1dCBJJ2Qgc3RpbGwgd2VsY29tZSBh bnkgZmVlZGJhY2sKb3Igc3VnZ2VzdGlvbnMhCgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBpbnRlbC5jb20+CkNjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwu Y29tPgpDYzogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+CkNjOiBEYXZpZCBBaXJs aWUgPGFpcmxpZWRAbGludXguaWU+CkNjOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+ CkNjOiBYaW5saWFuZyBMaXUgPHhpbmxpYW5nLmxpdUBsaW5hcm8ub3JnPgpDYzogWGlubGlhbmcg TGl1IDx6LmxpdXhpbmxpYW5nQGhpc2lsaWNvbi5jb20+CkNjOiBSb25ncm9uZyBab3UgPHpvdXJv bmdyb25nQGdtYWlsLmNvbT4KQ2M6IFhpbndlaSBLb25nIDxrb25nLmtvbmd4aW53ZWlAaGlzaWxp Y29uLmNvbT4KQ2M6IENoZW4gRmVuZyA8cHVjay5jaGVuQGhpc2lsaWNvbi5jb20+CkNjOiBKb3Nl IEFicmV1IDxKb3NlLkFicmV1QHN5bm9wc3lzLmNvbT4KQ2M6IEFyY2hpdCBUYW5lamEgPGFyY2hp dHRAY29kZWF1cm9yYS5vcmc+CkNjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnClNp Z25lZC1vZmYtYnk6IEpvaG4gU3R1bHR6IDxqb2huLnN0dWx0ekBsaW5hcm8ub3JnPgotLS0KdjI6 IFJld29ya2VkIHRvIGNhbGN1bGF0ZSBpZiBtb2RlY2xvY2sgbWF0Y2hlcyB0aGUgcGh5J3MKICAg IGJ5dGVjbG9jaywgcmF0aGVyIHRoZW4gdXNpbmcgYSB3aGl0ZWxpc3Qgb2Yga25vd24gbW9kZXMu Cgp2MzogUmV3b3JrZWQgdG8gY2hlY2sgYWNyb3NzIGFsbCBwb3NzaWJsZSBjcnRjcyAoZXZlbiB0 aG91Z2ggZm9yCiAgICB1cyB0aGVyZSBpcyBvbmx5IG9uZSksIGFuZCB1c2UgbW9kZV9maXh1cCBp bnN0ZWFkIG9mIGEgY3VzdG9tCiAgICBmdW5jdGlvbiwgYXMgc3VnZ2VzdGVkIGJ5IEpvc2UgYW5k IERhbmllbC4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2R3X2RybV9kc2ku YyAgICB8IDYyICsrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9oaXNp bGljb24va2lyaW4va2lyaW5fZHJtX2FkZS5jIHwgMTQgKysrKysrCiAyIGZpbGVzIGNoYW5nZWQs IDc2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29u L2tpcmluL2R3X2RybV9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4vZHdf ZHJtX2RzaS5jCmluZGV4IGY3N2RjZmEuLmQ3YjU4MjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9oaXNpbGljb24va2lyaW4vZHdfZHJtX2RzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9o aXNpbGljb24va2lyaW4vZHdfZHJtX2RzaS5jCkBAIC02MDMsNiArNjAzLDY3IEBAIHN0YXRpYyB2 b2lkIGRzaV9lbmNvZGVyX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJZHNp LT5lbmFibGUgPSB0cnVlOwogfQogCitzdGF0aWMgZW51bSBkcm1fbW9kZV9zdGF0dXMgZHNpX2Vu Y29kZXJfcGh5X21vZGVfdmFsaWQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAorCQkJCQlj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKK3sKKwlzdHJ1Y3QgZHdfZHNpICpk c2kgPSBlbmNvZGVyX3RvX2RzaShlbmNvZGVyKTsKKwlzdHJ1Y3QgbWlwaV9waHlfcGFyYW1zIHBo eTsKKwl1MzIgYnBwID0gbWlwaV9kc2lfcGl4ZWxfZm9ybWF0X3RvX2JwcChkc2ktPmZvcm1hdCk7 CisJdTMyIHJlcV9rSHosIGFjdF9rSHosIGxhbmVfYnl0ZV9jbGtfa0h6OworCisJLyogQ2FsY3Vs YXRlIHRoZSBsYW5lIGJ5dGUgY2xrIHVzaW5nIHRoZSBhZGp1c3RlZCBtb2RlIGNsayAqLworCW1l bXNldCgmcGh5LCAwLCBzaXplb2YocGh5KSk7CisJcmVxX2tIeiA9IG1vZGUtPmNsb2NrICogYnBw IC8gZHNpLT5sYW5lczsKKwlhY3Rfa0h6ID0gZHNpX2NhbGNfcGh5X3JhdGUocmVxX2tIeiwgJnBo eSk7CisJbGFuZV9ieXRlX2Nsa19rSHogPSBhY3Rfa0h6IC8gODsKKworCURSTV9ERUJVR19EUklW RVIoIkNoZWNraW5nIG1vZGUgJWl4JWktJWlAJWkgY2xvY2s6ICVpLi4uIiwKKwkJCW1vZGUtPmhk aXNwbGF5LCBtb2RlLT52ZGlzcGxheSwgYnBwLAorCQkJZHJtX21vZGVfdnJlZnJlc2gobW9kZSks IG1vZGUtPmNsb2NrKTsKKworCS8qCisJICogTWFrZSBzdXJlIHRoZSBhZGp1c2VkIG1vZGUgY2xv Y2sgYW5kIHRoZSBsYW5lIGJ5dGUgY2xrCisJICogaGF2ZSBhIGNvbW1vbiBkZW5vbWluYXRvciBi YXNlIGZyZXF1ZW5jeQorCSAqLworCWlmIChtb2RlLT5jbG9jay9kc2ktPmxhbmVzID09IGxhbmVf Ynl0ZV9jbGtfa0h6LzMpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigiT0shXG4iKTsKKwkJcmV0dXJu IE1PREVfT0s7CisJfQorCisJRFJNX0RFQlVHX0RSSVZFUigiQkFEIVxuIik7CisJcmV0dXJuIE1P REVfQkFEOworfQorCitzdGF0aWMgZW51bSBkcm1fbW9kZV9zdGF0dXMgZHNpX2VuY29kZXJfbW9k ZV92YWxpZChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCisJCQkJCWNvbnN0IHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlKQorCit7CisJY29uc3Qgc3RydWN0IGRybV9jcnRjX2hlbHBl cl9mdW5jcyAqY3J0Y19mdW5jcyA9IE5VTEw7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gTlVM TDsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBhZGpfbW9kZTsKKwlpbnQgcmV0OworCisJbWVt Y3B5KCZhZGpfbW9kZSwgbW9kZSwgc2l6ZW9mKGFkal9tb2RlKSk7CisKKwkvKgorCSAqIFRoZSBj cnRjIG1pZ2h0IGFkanVzdCB0aGUgbW9kZSwgc28gZ28gdGhyb3VnaCB0aGUKKwkgKiBwb3NzaWJs ZSBjcnRjcyAodGVjaG5pY2FsbHkganVzdCBvbmUpIGFuZCBjYWxsCisJICogbW9kZV9maXh1cCB0 byBmaWd1cmUgb3V0IHRoZSBhZGp1c3RlZCBtb2RlIGJlZm9yZSB3ZQorCSAqIHZhbGlkYXRlIGl0 LgorCSAqLworCWRybV9mb3JfZWFjaF9jcnRjKGNydGMsIGVuY29kZXItPmRldikgeworCQljcnRj X2Z1bmNzID0gY3J0Yy0+aGVscGVyX3ByaXZhdGU7CisJCWlmIChjcnRjX2Z1bmNzICYmIGNydGNf ZnVuY3MtPm1vZGVfZml4dXApCisJCQlyZXQgPSBjcnRjX2Z1bmNzLT5tb2RlX2ZpeHVwKGNydGMs IG1vZGUsCisJCQkJCQkJJmFkal9tb2RlKTsKKworCQlyZXQgPSBkc2lfZW5jb2Rlcl9waHlfbW9k ZV92YWxpZChlbmNvZGVyLCAmYWRqX21vZGUpOworCQlpZiAocmV0ICE9IE1PREVfT0spCisJCQly ZXR1cm4gcmV0OworCX0KKwlyZXR1cm4gTU9ERV9PSzsKK30KKwogc3RhdGljIHZvaWQgZHNpX2Vu Y29kZXJfbW9kZV9zZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCQkJCSBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKIAkJCQkgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk al9tb2RlKQpAQCAtNjIyLDYgKzY4Myw3IEBAIHN0YXRpYyBpbnQgZHNpX2VuY29kZXJfYXRvbWlj X2NoZWNrKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAogc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgZHdfZW5jb2Rlcl9oZWxwZXJfZnVuY3MgPSB7CiAJ LmF0b21pY19jaGVjawk9IGRzaV9lbmNvZGVyX2F0b21pY19jaGVjaywKKwkubW9kZV92YWxpZAk9 IGRzaV9lbmNvZGVyX21vZGVfdmFsaWQsCiAJLm1vZGVfc2V0CT0gZHNpX2VuY29kZXJfbW9kZV9z ZXQsCiAJLmVuYWJsZQkJPSBkc2lfZW5jb2Rlcl9lbmFibGUsCiAJLmRpc2FibGUJPSBkc2lfZW5j b2Rlcl9kaXNhYmxlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmlu L2tpcmluX2RybV9hZGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5f ZHJtX2FkZS5jCmluZGV4IGM5NmMyMjguLmRlYzdmNGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fZHJtX2FkZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9oaXNpbGljb24va2lyaW4va2lyaW5fZHJtX2FkZS5jCkBAIC0xNzgsNiArMTc4LDE5IEBAIHN0 YXRpYyB2b2lkIGFkZV9pbml0KHN0cnVjdCBhZGVfaHdfY3R4ICpjdHgpCiAJCQlGUk1fRU5EX1NU QVJUX01BU0ssIFJFR19FRkZFQ1RJVkVfSU5fQURFRU5fRlJNRU5EKTsKIH0KIAorc3RhdGljIGJv b2wgYWRlX2NydGNfbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisJCQkJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUpCit7CisJc3RydWN0IGFkZV9jcnRjICphY3J0YyA9IHRvX2FkZV9j cnRjKGNydGMpOworCXN0cnVjdCBhZGVfaHdfY3R4ICpjdHggPSBhY3J0Yy0+Y3R4OworCisJYWRq dXN0ZWRfbW9kZS0+Y2xvY2sgPQorCQljbGtfcm91bmRfcmF0ZShjdHgtPmFkZV9waXhfY2xrLCBt b2RlLT5jbG9jayAqIDEwMDApIC8gMTAwMDsKKwlyZXR1cm4gdHJ1ZTsKK30KKworCiBzdGF0aWMg dm9pZCBhZGVfc2V0X3BpeF9jbGsoc3RydWN0IGFkZV9od19jdHggKmN0eCwKIAkJCSAgICBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKIAkJCSAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqX21vZGUpCkBAIC01NTUsNiArNTY4LDcgQEAgc3RhdGljIHZvaWQgYWRlX2NydGNfYXRv bWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X2NydGNfaGVscGVyX2Z1bmNzIGFkZV9jcnRjX2hlbHBlcl9mdW5jcyA9IHsKIAkuZW5hYmxlCQk9 IGFkZV9jcnRjX2VuYWJsZSwKIAkuZGlzYWJsZQk9IGFkZV9jcnRjX2Rpc2FibGUsCisJLm1vZGVf Zml4dXAJPSBhZGVfY3J0Y19tb2RlX2ZpeHVwLAogCS5tb2RlX3NldF9ub2ZiCT0gYWRlX2NydGNf bW9kZV9zZXRfbm9mYiwKIAkuYXRvbWljX2JlZ2luCT0gYWRlX2NydGNfYXRvbWljX2JlZ2luLAog CS5hdG9taWNfZmx1c2gJPSBhZGVfY3J0Y19hdG9taWNfZmx1c2gsCi0tIAoyLjcuNAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==