From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ilia Mirkin Subject: [RFC PATCH 1/3] drm/nouveau/overlay: improve error detection, fix pitch setting Date: Fri, 19 May 2017 22:57:47 -0400 Message-ID: <20170520025749.9291-2-imirkin@alum.mit.edu> References: <20170520025749.9291-1-imirkin@alum.mit.edu> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170520025749.9291-1-imirkin@alum.mit.edu> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: nouveau.vger.kernel.org V2Ugd2VyZSBwcmV2aW91c2x5IHNldHRpbmcgdGhlIHBpdGNoIGJhc2VkIG9uIGEgcGVyZmVjdGx5 IHBhY2tlZCBidWZmZXIuClRoaXMgZG9lcyBub3QgbmVjZXNzYXJpbHkgaGFwcGVuLiBFaXRoZXIg bW9kZXRlc3Qgc3RhcnRlZCBnZW5lcmF0aW5nCnN1Y2ggYnVmZmVycyByZWNlbnRseSwgb3IgZWFy bGllciB0ZXN0aW5nIG9ubHkgaGFwcGVuZWQgd2l0aCB3ZWxsLXBpY2tlZApvdmVybGF5IHNpemVz LgoKV2hpbGUgd2UncmUgYXQgaXQsIGJlZWYgdXAgYW5kIHJlZmFjdG9yIHRoZSBlcnJvciBzdGF0 ZSBkZXRlY3Rpb24uCgpTaWduZWQtb2ZmLWJ5OiBJbGlhIE1pcmtpbiA8aW1pcmtpbkBhbHVtLm1p dC5lZHU+Ci0tLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvb3ZlcmxheS5jIHwg ODAgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNTIgaW5z ZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvZGlzcG52MDQvb3ZlcmxheS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlz cG52MDQvb3ZlcmxheS5jCmluZGV4IGU1NDk0NGQyMzI2OC4uZWU3ZGY5ZWYyNjk1IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9vdmVybGF5LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvb3ZlcmxheS5jCkBAIC05MCw2ICs5MCw0MiBA QCBjb3NfbXVsKGludCBkZWdyZWVzLCBpbnQgZmFjdG9yKQogfQogCiBzdGF0aWMgaW50Cit2ZXJp ZnlfZmIoY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIHVpbnQzMl90IHNyY193LCB1 aW50MzJfdCBzcmNfaCwKKwkgIHVpbnQzMl90IGNydGNfdywgdWludDMyX3QgY3J0Y19oLCBib29s IHNjYWxlX2ZhaWwsIGJvb2wgb2Zmc2V0X2ZhaWwpCit7CisJaWYgKGZiLT5waXRjaGVzWzBdICYg MHgzZikgeworCQlEUk1fREVCVUdfS01TKCJVbnN1aXRhYmxlIGZyYW1lYnVmZmVyIGZvciBwbGFu ZTogYWxpZ24gNjQ6IDB4JXhcbiIsCisJCQkgICAgICBmYi0+cGl0Y2hlc1swXSk7CisJCXJldHVy biAtRUlOVkFMOworCX0KKworCWlmIChmYi0+cGl0Y2hlc1swXSA+PSAweDEwMDAwKSB7CisJCURS TV9ERUJVR19LTVMoIlVuc3VpdGFibGUgZnJhbWVidWZmZXIgZm9yIHBsYW5lOiBwaXRjaCAweCV4 ID49IDB4MTAwMDBcbiIsCisJCQkgICAgICBmYi0+cGl0Y2hlc1swXSk7CisJCXJldHVybiAtRUlO VkFMOworCX0KKworCWlmIChmYi0+cGl0Y2hlc1sxXSAmJiBmYi0+cGl0Y2hlc1swXSAhPSBmYi0+ cGl0Y2hlc1sxXSkgeworCQlEUk1fREVCVUdfS01TKCJVbnN1aXRhYmxlIGZyYW1lYnVmZmVyIGZv ciBwbGFuZTogZGlmZiBwaXRjaGVzOiAweCV4ICE9IDB4JXhcbiIsCisJCQkgICAgICBmYi0+cGl0 Y2hlc1swXSwgZmItPnBpdGNoZXNbMV0pOworCQlyZXR1cm4gLUVSQU5HRTsKKwl9CisKKwlpZiAo c2NhbGVfZmFpbCkgeworCQlEUk1fREVCVUdfS01TKCJVbnN1aXRhYmxlIGZyYW1lYnVmZmVyIHNj YWxpbmc6ICVkeCVkIC0+ICVkeCVkXG4iLAorCQkJICAgICAgc3JjX3csIHNyY19oLCBjcnRjX3cs IGNydGNfaCk7CisJCXJldHVybiAtRVJBTkdFOworCX0KKworCWlmIChvZmZzZXRfZmFpbCkgewor CQlEUk1fREVCVUdfS01TKCJVbnN1aXRhYmxlIGZyYW1lYnVmZmVyIG9mZnNldFxuIik7CisJCXJl dHVybiAtRVJBTkdFOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CiBudjEwX3Vw ZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRj LAogCQkgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgY3J0Y194LCBpbnQgY3J0Y195 LAogCQkgIHVuc2lnbmVkIGludCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRjX2gsCkBAIC0xMDcs NyArMTQzLDkgQEAgbnYxMF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlib29sIGZsaXAgPSBudl9wbGFuZS0+ZmxpcDsKIAlpbnQg c29mZiA9IE5WX1BDUlRDMF9TSVpFICogbnZfY3J0Yy0+aW5kZXg7CiAJaW50IHNvZmYyID0gTlZf UENSVEMwX1NJWkUgKiAhbnZfY3J0Yy0+aW5kZXg7Ci0JaW50IGZvcm1hdCwgcmV0OworCXVuc2ln bmVkIHNoaWZ0ID0gZHJtLT5jbGllbnQuZGV2aWNlLmluZm8uY2hpcHNldCA+PSAweDMwID8gMSA6 IDM7CisJdW5zaWduZWQgZm9ybWF0ID0gMDsKKwlpbnQgcmV0OwogCiAJLyogU291cmNlIHBhcmFt ZXRlcnMgZ2l2ZW4gaW4gMTYuMTYgZml4ZWQgcG9pbnQsIGlnbm9yZSBmcmFjdGlvbmFsLiAqLwog CXNyY194ID4+PSAxNjsKQEAgLTExNSwxOCArMTUzLDExIEBAIG52MTBfdXBkYXRlX3BsYW5lKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJc3JjX3cgPj49 IDE2OwogCXNyY19oID4+PSAxNjsKIAotCWZvcm1hdCA9IEFMSUdOKHNyY193ICogNCwgMHgxMDAp OwotCi0JaWYgKGZvcm1hdCA+IDB4ZmZmZikKLQkJcmV0dXJuIC1FUkFOR0U7Ci0KLQlpZiAoZHJt LT5jbGllbnQuZGV2aWNlLmluZm8uY2hpcHNldCA+PSAweDMwKSB7Ci0JCWlmIChjcnRjX3cgPCAo c3JjX3cgPj4gMSkgfHwgY3J0Y19oIDwgKHNyY19oID4+IDEpKQotCQkJcmV0dXJuIC1FUkFOR0U7 Ci0JfSBlbHNlIHsKLQkJaWYgKGNydGNfdyA8IChzcmNfdyA+PiAzKSB8fCBjcnRjX2ggPCAoc3Jj X2ggPj4gMykpCi0JCQlyZXR1cm4gLUVSQU5HRTsKLQl9CisJcmV0ID0gdmVyaWZ5X2ZiKGZiLCBz cmNfdywgc3JjX2gsIGNydGNfdywgY3J0Y19oLAorCQkJY3J0Y193IDwgKHNyY193ID4+IHNoaWZ0 KSB8fCBjcnRjX2ggPCAoc3JjX2ggPj4gc2hpZnQpLAorCQkJZmFsc2UpOworCWlmIChyZXQpCisJ CXJldHVybiByZXQ7CiAKIAlyZXQgPSBub3V2ZWF1X2JvX3Bpbihudl9mYi0+bnZibywgVFRNX1BM X0ZMQUdfVlJBTSwgZmFsc2UpOwogCWlmIChyZXQpCkBAIC0xNjAsNyArMTkxLDcgQEAgbnYxMF91 cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAkJbnZpZl93cjMyKGRldiwgTlZfUFZJREVPX1VWUExBTkVfT0ZGU0VUX0JVRkYoZmxpcCks CiAJCQludl9mYi0+bnZiby0+Ym8ub2Zmc2V0ICsgZmItPm9mZnNldHNbMV0pOwogCX0KLQludmlm X3dyMzIoZGV2LCBOVl9QVklERU9fRk9STUFUKGZsaXApLCBmb3JtYXQpOworCW52aWZfd3IzMihk ZXYsIE5WX1BWSURFT19GT1JNQVQoZmxpcCksIGZvcm1hdCB8IGZiLT5waXRjaGVzWzBdKTsKIAlu dmlmX3dyMzIoZGV2LCBOVl9QVklERU9fU1RPUCwgMCk7CiAJLyogVE9ETzogd2FpdCBmb3IgdmJs YW5rPyAqLwogCW52aWZfd3IzMihkZXYsIE5WX1BWSURFT19CVUZGRVIsIGZsaXAgPyAweDEwIDog MHgxKTsKQEAgLTM1Nyw3ICszODgsNyBAQCBudjA0X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXN0cnVjdCBub3V2ZWF1X2JvICpj dXIgPSBudl9wbGFuZS0+Y3VyOwogCXVpbnQzMl90IG92ZXJsYXkgPSAxOwogCWludCBicmlnaHRu ZXNzID0gKG52X3BsYW5lLT5icmlnaHRuZXNzIC0gNTEyKSAqIDYyIC8gNTEyOwotCWludCBwaXRj aCwgcmV0LCBpOworCWludCByZXQsIGk7CiAKIAkvKiBTb3VyY2UgcGFyYW1ldGVycyBnaXZlbiBp biAxNi4xNiBmaXhlZCBwb2ludCwgaWdub3JlIGZyYWN0aW9uYWwuICovCiAJc3JjX3ggPj49IDE2 OwpAQCAtMzY1LDE3ICszOTYsOSBAQCBudjA0X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXNyY193ID4+PSAxNjsKIAlzcmNfaCA+ Pj0gMTY7CiAKLQlwaXRjaCA9IEFMSUdOKHNyY193ICogNCwgMHgxMDApOwotCi0JaWYgKHBpdGNo ID4gMHhmZmZmKQotCQlyZXR1cm4gLUVSQU5HRTsKLQotCS8qIFRPRE86IENvbXB1dGUgYW4gb2Zm c2V0PyBOb3Qgc3VyZSBob3cgdG8gZG8gdGhpcyBmb3IgWVVZVi4gKi8KLQlpZiAoc3JjX3ggIT0g MCB8fCBzcmNfeSAhPSAwKQotCQlyZXR1cm4gLUVSQU5HRTsKLQotCWlmIChjcnRjX3cgPCBzcmNf dyB8fCBjcnRjX2ggPCBzcmNfaCkKLQkJcmV0dXJuIC1FUkFOR0U7CisJcmV0ID0gdmVyaWZ5X2Zi KGZiLCBzcmNfdywgc3JjX2gsIGNydGNfdywgY3J0Y19oLAorCQkJY3J0Y193IDwgc3JjX3cgfHwg Y3J0Y19oIDwgc3JjX2gsCisJCQlzcmNfeCAhPSAwIHx8IHNyY195ICE9IDApOwogCiAJcmV0ID0g bm91dmVhdV9ib19waW4obnZfZmItPm52Ym8sIFRUTV9QTF9GTEFHX1ZSQU0sIGZhbHNlKTsKIAlp ZiAocmV0KQpAQCAtMzg5LDggKzQxMiw5IEBAIG52MDRfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlmb3IgKGkgPSAwOyBpIDwg MjsgaSsrKSB7CiAJCW52aWZfd3IzMihkZXYsIE5WX1BWSURFT19CVUZGMF9TVEFSVF9BRERSRVNT ICsgNCAqIGksCi0JCQludl9mYi0+bnZiby0+Ym8ub2Zmc2V0KTsKLQkJbnZpZl93cjMyKGRldiwg TlZfUFZJREVPX0JVRkYwX1BJVENIX0xFTkdUSCArIDQgKiBpLCBwaXRjaCk7CisJCQkgIG52X2Zi LT5udmJvLT5iby5vZmZzZXQpOworCQludmlmX3dyMzIoZGV2LCBOVl9QVklERU9fQlVGRjBfUElU Q0hfTEVOR1RIICsgNCAqIGksCisJCQkgIGZiLT5waXRjaGVzWzBdKTsKIAkJbnZpZl93cjMyKGRl diwgTlZfUFZJREVPX0JVRkYwX09GRlNFVCArIDQgKiBpLCAwKTsKIAl9CiAJbnZpZl93cjMyKGRl diwgTlZfUFZJREVPX1dJTkRPV19TVEFSVCwgY3J0Y195IDw8IDE2IHwgY3J0Y194KTsKLS0gCjIu MTMuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==