From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Anholt Subject: [PATCH 1/4] drm/vc4: Adjust modes in DSI to work around the integer PLL divider. Date: Thu, 11 May 2017 16:56:22 -0700 Message-ID: <20170511235625.22427-2-eric@anholt.net> References: <20170511235625.22427-1-eric@anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170511235625.22427-1-eric@anholt.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, Thierry Reding , Rob Herring , Mark Rutland , Archit Taneja , Andrzej Hajda , Laurent Pinchart , devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org List-Id: devicetree@vger.kernel.org QkNNMjgzNSdzIFBMTERfRFNJMSBkaXZpZGVyIGRvZXNuJ3QgZ2l2ZSB1cyBtYW55IGNob2ljZXMg Zm9yIG91ciBwaXhlbApjbG9ja3MsIHNvIHRvIHN1cHBvcnQgcGFuZWxzIG9uIHRoZSBSYXNwYmVy cnkgUGkgd2UgbmVlZCB0byBzZXQgYQpoaWdoZXIgcGl4ZWwgY2xvY2sgcmF0ZSB0aGFuIHJlcXVl c3RlZCBhbmQgYWRqdXN0IHRoZSBtb2RlIHdlIHByb2dyYW0KdG8gZXh0ZW5kIG91dCB0aGUgSEZQ IHNvIHRoYXQgdGhlIHJlZnJlc2ggcmF0ZSBtYXRjaGVzLgoKU2lnbmVkLW9mZi1ieTogRXJpYyBB bmhvbHQgPGVyaWNAYW5ob2x0Lm5ldD4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kc2ku YyB8IDExMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0 X2RzaS5jCmluZGV4IGZiNTRhOWQxMDM2MC4uNjJjYjNiMGQwMzQ1IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9k c2kuYwpAQCAtNTE5LDcgKzUxOSw4IEBAIHN0cnVjdCB2YzRfZHNpIHsKIAkvKiBEU0kgY2hhbm5l bCBmb3IgdGhlIHBhbmVsIHdlJ3JlIGNvbm5lY3RlZCB0by4gKi8KIAl1MzIgY2hhbm5lbDsKIAl1 MzIgbGFuZXM7Ci0JZW51bSBtaXBpX2RzaV9waXhlbF9mb3JtYXQgZm9ybWF0OworCXUzMiBmb3Jt YXQ7CisJdTMyIGRpdmlkZXI7CiAJdTMyIG1vZGVfZmxhZ3M7CiAKIAkvKiBJbnB1dCBjbG9jayBm cm9tIENQUk1BTiB0byB0aGUgZGlnaXRhbCBQSFksIGZvciB0aGUgRFNJCkBAIC04MTcsMTMgKzgx OCw2NyBAQCBzdGF0aWMgdm9pZCB2YzRfZHNpX2VuY29kZXJfZGlzYWJsZShzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCiAJcG1fcnVudGltZV9wdXQoZGV2KTsKIH0KIAorLyogRXh0ZW5kcyB0 aGUgbW9kZSdzIGJsYW5rIGludGVydmFscyB0byBoYW5kbGUgQkNNMjgzNSdzIGludGVnZXItb25s eQorICogRFNJIFBMTCBkaXZpZGVyLgorICoKKyAqIE9uIDI4MzUsIFBMTEQgaXMgc2V0IHRvIDJH aHosIGFuZCBtYXkgbm90IGJlIGNoYW5nZWQgYnkgdGhlIGRpc3BsYXkKKyAqIGRyaXZlciBzaW5j ZSBtb3N0IHBlcmlwaGVyYWxzIGFyZSBoYW5naW5nIG9mZiBvZiB0aGUgUExMRF9QRVIKKyAqIGRp dmlkZXIuICBQTExEX0RTSTEsIHdoaWNoIGRyaXZlcyBvdXIgRFNJIGJpdCBjbG9jayAoYW5kIHRo ZXJlZm9yZQorICogdGhlIHBpeGVsIGNsb2NrKSwgb25seSBoYXMgYW4gaW50ZWdlciBkaXZpZGVy IG9mZiBvZiBEU0kuCisgKgorICogVG8gZ2V0IG91ciBwYW5lbCBtb2RlIHRvIHJlZnJlc2ggYXQg dGhlIGV4cGVjdGVkIDYwSHosIHdlIG5lZWQgdG8KKyAqIGV4dGVuZCB0aGUgaG9yaXpvbnRhbCBi bGFuayB0aW1lLiAgVGhpcyBtZWFucyB3ZSBkcml2ZSBhCisgKiBoaWdoZXItdGhhbi1leHBlY3Rl ZCBjbG9jayByYXRlIHRvIHRoZSBwYW5lbCwgYnV0IHRoYXQncyB3aGF0IHRoZQorICogZmlybXdh cmUgKHdoaWNoICkgZG9lcyB0b28uCisgKi8KK3N0YXRpYyBib29sIHZjNF9kc2lfZW5jb2Rlcl9t b2RlX2ZpeHVwKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwkJCQkgICAgICAgY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisJCQkJICAgICAgIHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQoreworCXN0cnVjdCB2YzRfZHNpX2VuY29kZXIgKnZj NF9lbmNvZGVyID0gdG9fdmM0X2RzaV9lbmNvZGVyKGVuY29kZXIpOworCXN0cnVjdCB2YzRfZHNp ICpkc2kgPSB2YzRfZW5jb2Rlci0+ZHNpOworCXN0cnVjdCBjbGsgKnBoeV9wYXJlbnQgPSBjbGtf Z2V0X3BhcmVudChkc2ktPnBsbF9waHlfY2xvY2spOworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3Jh dGUgPSBjbGtfZ2V0X3JhdGUocGh5X3BhcmVudCk7CisJdW5zaWduZWQgbG9uZyBwaXhlbF9jbG9j a19oeiA9IG1vZGUtPmNsb2NrICogMTAwMDsKKwl1bnNpZ25lZCBsb25nIHBsbF9jbG9jayA9IHBp eGVsX2Nsb2NrX2h6ICogZHNpLT5kaXZpZGVyOworCWludCBkaXZpZGVyOworCisJLyogRmluZCB3 aGF0IGRpdmlkZXIgZ2V0cyB1cyBhIGZhc3RlciBjbG9jayB0aGFuIHRoZSByZXF1ZXN0ZWQKKwkg KiBwaXhlbCBjbG9jay4KKwkgKi8KKwlmb3IgKGRpdmlkZXIgPSAxOyBkaXZpZGVyIDwgODsgZGl2 aWRlcisrKSB7CisJCWlmIChwYXJlbnRfcmF0ZSAvIGRpdmlkZXIgPCBwbGxfY2xvY2spIHsKKwkJ CWRpdmlkZXItLTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJLyogTm93IHRoYXQgd2UndmUgcGlj a2VkIGEgUExMIGRpdmlkZXIsIGNhbGN1bGF0ZSBiYWNrIHRvIGl0cworCSAqIHBpeGVsIGNsb2Nr LgorCSAqLworCXBsbF9jbG9jayA9IHBhcmVudF9yYXRlIC8gZGl2aWRlcjsKKwlwaXhlbF9jbG9j a19oeiA9IHBsbF9jbG9jayAvIGRzaS0+ZGl2aWRlcjsKKworCS8qIFJvdW5kIHVwIHRoZSBjbGtf c2V0X3JhdGUoKSByZXF1ZXN0IHNsaWdodGx5LCBzaW5jZQorCSAqIFBMTERfRFNJMSBpcyBhbiBp bnRlZ2VyIGRpdmlkZXIgYW5kIGl0cyByYXRlIHNlbGVjdGlvbiB3aWxsCisJICogbmV2ZXIgcm91 bmQgdXAuCisJICovCisJYWRqdXN0ZWRfbW9kZS0+Y2xvY2sgPSBwaXhlbF9jbG9ja19oeiAvIDEw MDAgKyAxOworCisJLyogR2l2ZW4gdGhlIG5ldyBwaXhlbCBjbG9jaywgYWRqdXN0IEhGUCB0byBr ZWVwIHZyZWZyZXNoIHRoZSBzYW1lLiAqLworCWFkanVzdGVkX21vZGUtPmh0b3RhbCA9IHBpeGVs X2Nsb2NrX2h6IC8gKG1vZGUtPnZyZWZyZXNoICogbW9kZS0+dnRvdGFsKTsKKwlhZGp1c3RlZF9t b2RlLT5oc3luY19lbmQgKz0gYWRqdXN0ZWRfbW9kZS0+aHRvdGFsIC0gbW9kZS0+aHRvdGFsOwor CWFkanVzdGVkX21vZGUtPmhzeW5jX3N0YXJ0ICs9IGFkanVzdGVkX21vZGUtPmh0b3RhbCAtIG1v ZGUtPmh0b3RhbDsKKworCXJldHVybiB0cnVlOworfQorCiBzdGF0aWMgdm9pZCB2YzRfZHNpX2Vu Y29kZXJfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZlbmNvZGVyLT5jcnRjLT5tb2RlOworCXN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlID0gJmVuY29kZXItPmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2Rl OwogCXN0cnVjdCB2YzRfZHNpX2VuY29kZXIgKnZjNF9lbmNvZGVyID0gdG9fdmM0X2RzaV9lbmNv ZGVyKGVuY29kZXIpOwogCXN0cnVjdCB2YzRfZHNpICpkc2kgPSB2YzRfZW5jb2Rlci0+ZHNpOwog CXN0cnVjdCBkZXZpY2UgKmRldiA9ICZkc2ktPnBkZXYtPmRldjsKLQl1MzIgZm9ybWF0ID0gMCwg ZGl2aWRlciA9IDA7CiAJYm9vbCBkZWJ1Z19kdW1wX3JlZ3MgPSBmYWxzZTsKIAl1bnNpZ25lZCBs b25nIGhzX2Nsb2NrOwogCXUzMiB1aV9uczsKQEAgLTg0NSwyNiArOTAwLDcgQEAgc3RhdGljIHZv aWQgdmM0X2RzaV9lbmNvZGVyX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJ CXZjNF9kc2lfZHVtcF9yZWdzKGRzaSk7CiAJfQogCi0Jc3dpdGNoIChkc2ktPmZvcm1hdCkgewot CWNhc2UgTUlQSV9EU0lfRk1UX1JHQjg4ODoKLQkJZm9ybWF0ID0gRFNJX1BGT1JNQVRfUkdCODg4 OwotCQlkaXZpZGVyID0gMjQgLyBkc2ktPmxhbmVzOwotCQlicmVhazsKLQljYXNlIE1JUElfRFNJ X0ZNVF9SR0I2NjY6Ci0JCWZvcm1hdCA9IERTSV9QRk9STUFUX1JHQjY2NjsKLQkJZGl2aWRlciA9 IDI0IC8gZHNpLT5sYW5lczsKLQkJYnJlYWs7Ci0JY2FzZSBNSVBJX0RTSV9GTVRfUkdCNjY2X1BB Q0tFRDoKLQkJZm9ybWF0ID0gRFNJX1BGT1JNQVRfUkdCNjY2X1BBQ0tFRDsKLQkJZGl2aWRlciA9 IDE4IC8gZHNpLT5sYW5lczsKLQkJYnJlYWs7Ci0JY2FzZSBNSVBJX0RTSV9GTVRfUkdCNTY1Ogot CQlmb3JtYXQgPSBEU0lfUEZPUk1BVF9SR0I1NjU7Ci0JCWRpdmlkZXIgPSAxNiAvIGRzaS0+bGFu ZXM7Ci0JCWJyZWFrOwotCX0KLQotCXBoeV9jbG9jayA9IHBpeGVsX2Nsb2NrX2h6ICogZGl2aWRl cjsKKwlwaHlfY2xvY2sgPSBwaXhlbF9jbG9ja19oeiAqIGRzaS0+ZGl2aWRlcjsKIAlyZXQgPSBj bGtfc2V0X3JhdGUoZHNpLT5wbGxfcGh5X2Nsb2NrLCBwaHlfY2xvY2spOwogCWlmIChyZXQpIHsK IAkJZGV2X2VycigmZHNpLT5wZGV2LT5kZXYsCkBAIC0xMDQ5LDggKzEwODUsOSBAQCBzdGF0aWMg dm9pZCB2YzRfZHNpX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikK IAogCWlmIChkc2ktPm1vZGVfZmxhZ3MgJiBNSVBJX0RTSV9NT0RFX1ZJREVPKSB7CiAJCURTSV9Q T1JUX1dSSVRFKERJU1AwX0NUUkwsCi0JCQkgICAgICAgVkM0X1NFVF9GSUVMRChkaXZpZGVyLCBE U0lfRElTUDBfUElYX0NMS19ESVYpIHwKLQkJCSAgICAgICBWQzRfU0VUX0ZJRUxEKGZvcm1hdCwg RFNJX0RJU1AwX1BGT1JNQVQpIHwKKwkJCSAgICAgICBWQzRfU0VUX0ZJRUxEKGRzaS0+ZGl2aWRl ciwKKwkJCQkJICAgICBEU0lfRElTUDBfUElYX0NMS19ESVYpIHwKKwkJCSAgICAgICBWQzRfU0VU X0ZJRUxEKGRzaS0+Zm9ybWF0LCBEU0lfRElTUDBfUEZPUk1BVCkgfAogCQkJICAgICAgIFZDNF9T RVRfRklFTEQoRFNJX0RJU1AwX0xQX1NUT1BfUEVSRlJBTUUsCiAJCQkJCSAgICAgRFNJX0RJU1Aw X0xQX1NUT1BfQ1RSTCkgfAogCQkJICAgICAgIERTSV9ESVNQMF9TVF9FTkQgfApAQCAtMTI1NSw5 ICsxMjkyLDMxIEBAIHN0YXRpYyBpbnQgdmM0X2RzaV9ob3N0X2F0dGFjaChzdHJ1Y3QgbWlwaV9k c2lfaG9zdCAqaG9zdCwKIAogCWRzaS0+bGFuZXMgPSBkZXZpY2UtPmxhbmVzOwogCWRzaS0+Y2hh bm5lbCA9IGRldmljZS0+Y2hhbm5lbDsKLQlkc2ktPmZvcm1hdCA9IGRldmljZS0+Zm9ybWF0Owog CWRzaS0+bW9kZV9mbGFncyA9IGRldmljZS0+bW9kZV9mbGFnczsKIAorCXN3aXRjaCAoZGV2aWNl LT5mb3JtYXQpIHsKKwljYXNlIE1JUElfRFNJX0ZNVF9SR0I4ODg6CisJCWRzaS0+Zm9ybWF0ID0g RFNJX1BGT1JNQVRfUkdCODg4OworCQlkc2ktPmRpdmlkZXIgPSAyNCAvIGRzaS0+bGFuZXM7CisJ CWJyZWFrOworCWNhc2UgTUlQSV9EU0lfRk1UX1JHQjY2NjoKKwkJZHNpLT5mb3JtYXQgPSBEU0lf UEZPUk1BVF9SR0I2NjY7CisJCWRzaS0+ZGl2aWRlciA9IDI0IC8gZHNpLT5sYW5lczsKKwkJYnJl YWs7CisJY2FzZSBNSVBJX0RTSV9GTVRfUkdCNjY2X1BBQ0tFRDoKKwkJZHNpLT5mb3JtYXQgPSBE U0lfUEZPUk1BVF9SR0I2NjZfUEFDS0VEOworCQlkc2ktPmRpdmlkZXIgPSAxOCAvIGRzaS0+bGFu ZXM7CisJCWJyZWFrOworCWNhc2UgTUlQSV9EU0lfRk1UX1JHQjU2NToKKwkJZHNpLT5mb3JtYXQg PSBEU0lfUEZPUk1BVF9SR0I1NjU7CisJCWRzaS0+ZGl2aWRlciA9IDE2IC8gZHNpLT5sYW5lczsK KwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZGV2X2VycigmZHNpLT5wZGV2LT5kZXYsICJVbmtub3du IERTSSBmb3JtYXQ6ICVkLlxuIiwKKwkJCWRzaS0+Zm9ybWF0KTsKKwkJcmV0dXJuIDA7CisJfQor CiAJaWYgKCEoZHNpLT5tb2RlX2ZsYWdzICYgTUlQSV9EU0lfTU9ERV9WSURFTykpIHsKIAkJZGV2 X2VycigmZHNpLT5wZGV2LT5kZXYsCiAJCQkiT25seSBWSURFTyBtb2RlIHBhbmVscyBzdXBwb3J0 ZWQgY3VycmVudGx5LlxuIik7CkBAIC0xMzA0LDYgKzEzNjMsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IG1pcGlfZHNpX2hvc3Rfb3BzIHZjNF9kc2lfaG9zdF9vcHMgPSB7CiBzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcyB2YzRfZHNpX2VuY29kZXJfaGVscGVyX2Z1 bmNzID0gewogCS5kaXNhYmxlID0gdmM0X2RzaV9lbmNvZGVyX2Rpc2FibGUsCiAJLmVuYWJsZSA9 IHZjNF9kc2lfZW5jb2Rlcl9lbmFibGUsCisJLm1vZGVfZml4dXAgPSB2YzRfZHNpX2VuY29kZXJf bW9kZV9maXh1cCwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHZjNF9k c2lfZHRfbWF0Y2hbXSA9IHsKLS0gCjIuMTEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg==