From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 3/3] drm/i915: Do not adjust scale when out of bounds, v2. Date: Thu, 26 Apr 2018 10:28:21 +0200 Message-ID: <20180426082821.11129-3-maarten.lankhorst@linux.intel.com> References: <20180426082821.11129-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180426082821.11129-1-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: Vidya Srinivas List-Id: dri-devel@lists.freedesktop.org V2l0aCB0aGUgcHJldmlvdXMgcGF0Y2ggZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3Rh dGUgY29ycmVjdGx5CmNhbGN1bGF0ZXMgY2xpcHBpbmcgYW5kIHRoZSB4Zjg2LXZpZGVvLWludGVs IGRkeCBpcyBmaXhlZCB0byBmYWxsIGJhY2sKdG8gR1BVIGNvcnJlY3RseSB3aGVuIFNldFBsYW5l IGZhaWxzLCB3ZSBjYW4gcmVtb3ZlIHRoZSBoYWNrIHdoZXJlCndlIHRyeSB0byBwYW4vem9vbSB3 aGVuIG91dCBvZiBtaW4vbWF4IHNjYWxpbmcgcmFuZ2UuIFRoaXMgd2FzIGFscmVhZHkKcG9vciBi ZWhhdmlvciB3aGVyZSB0aGUgc2NyZWVuIGRpZG4ndCBzaG93IHdoYXQgd2FzIHJlcXVlc3RlZCwg YW5kIG5vdwppbnN0ZWFkIHdlIHJlamVjdCBpdCBvdXRyaWdodC4gVGhpcyBzaW1wbGlmaWVzIGNo ZWNrX3Nwcml0ZV9wbGFuZSBhIGxvdC4KCkNoYW5nZXMgc2luY2UgdjE6Ci0gU2V0IGNydGNfaCB0 byB0aGUgaGVpZ2h0IGNvcnJlY3RseS4KLSBSZWplY3QgPCAzeDMgcmVjdGFuZ2xlcyBpbnN0ZWFk IG9mIG1ha2luZyB0aGVtIGludmlzaWJsZSBmb3IgPGdlbjkuCiAgRm9yIGdlbjkrIHNrbF91cGRh dGVfc2NhbGVyX3BsYW5lIHdpbGwgcmVqZWN0IHRoZW0uCgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVu IExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIHwgMTQ0ICsrKysrKystLS0tLS0tLS0tLS0t LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAxMDkgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwppbmRleCBhYTFkZmFhNjkyYjkuLjk3 MDAxNWRjYzZmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKQEAgLTkzNiwyMiAr OTM2LDEyIEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUt PmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRl LT5iYXNlLmZiOwotCWludCBjcnRjX3gsIGNydGNfeTsKLQl1bnNpZ25lZCBpbnQgY3J0Y193LCBj cnRjX2g7Ci0JdWludDMyX3Qgc3JjX3gsIHNyY195LCBzcmNfdywgc3JjX2g7Ci0Jc3RydWN0IGRy bV9yZWN0ICpzcmMgPSAmc3RhdGUtPmJhc2Uuc3JjOwotCXN0cnVjdCBkcm1fcmVjdCAqZHN0ID0g JnN0YXRlLT5iYXNlLmRzdDsKLQlzdHJ1Y3QgZHJtX3JlY3QgY2xpcCA9IHt9OwogCWludCBtYXhf c3RyaWRlID0gSU5URUxfR0VOKGRldl9wcml2KSA+PSA5ID8gMzI3NjggOiAxNjM4NDsKLQlpbnQg aHNjYWxlLCB2c2NhbGU7CiAJaW50IG1heF9zY2FsZSwgbWluX3NjYWxlOwogCWJvb2wgY2FuX3Nj YWxlOwogCWludCByZXQ7CiAJdWludDMyX3QgcGl4ZWxfZm9ybWF0ID0gMDsKIAotCSpzcmMgPSBk cm1fcGxhbmVfc3RhdGVfc3JjKCZzdGF0ZS0+YmFzZSk7Ci0JKmRzdCA9IGRybV9wbGFuZV9zdGF0 ZV9kZXN0KCZzdGF0ZS0+YmFzZSk7Ci0KIAlpZiAoIWZiKSB7CiAJCXN0YXRlLT5iYXNlLnZpc2li bGUgPSBmYWxzZTsKIAkJcmV0dXJuIDA7CkBAIC05OTAsNjQgKzk4MCwxOSBAQCBpbnRlbF9jaGVj a19zcHJpdGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAkJbWluX3NjYWxlID0g cGxhbmUtPmNhbl9zY2FsZSA/IDEgOiAoMSA8PCAxNik7CiAJfQogCi0JLyoKLQkgKiBGSVhNRSB0 aGUgZm9sbG93aW5nIGNvZGUgZG9lcyBhIGJ1bmNoIG9mIGZ1enp5IGFkanVzdG1lbnRzIHRvIHRo ZQotCSAqIGNvb3JkaW5hdGVzIGFuZCBzaXplcy4gV2UgcHJvYmFibHkgbmVlZCBzb21lIHdheSB0 byBkZWNpZGUgd2hldGhlcgotCSAqIG1vcmUgc3RyaWN0IGNoZWNraW5nIHNob3VsZCBiZSBkb25l IGluc3RlYWQuCi0JICovCi0JZHJtX3JlY3Rfcm90YXRlKHNyYywgZmItPndpZHRoIDw8IDE2LCBm Yi0+aGVpZ2h0IDw8IDE2LAotCQkJc3RhdGUtPmJhc2Uucm90YXRpb24pOwotCi0JaHNjYWxlID0g ZHJtX3JlY3RfY2FsY19oc2NhbGVfcmVsYXhlZChzcmMsIGRzdCwgbWluX3NjYWxlLCBtYXhfc2Nh bGUpOwotCUJVR19PTihoc2NhbGUgPCAwKTsKLQotCXZzY2FsZSA9IGRybV9yZWN0X2NhbGNfdnNj YWxlX3JlbGF4ZWQoc3JjLCBkc3QsIG1pbl9zY2FsZSwgbWF4X3NjYWxlKTsKLQlCVUdfT04odnNj YWxlIDwgMCk7Ci0KLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUpCi0JCWRybV9tb2RlX2dl dF9odl90aW1pbmcoJmNydGNfc3RhdGUtPmJhc2UubW9kZSwKLQkJCQkgICAgICAgJmNsaXAueDIs ICZjbGlwLnkyKTsKLQotCXN0YXRlLT5iYXNlLnZpc2libGUgPSBkcm1fcmVjdF9jbGlwX3NjYWxl ZChzcmMsIGRzdCwgJmNsaXAsIGhzY2FsZSwgdnNjYWxlKTsKLQotCWNydGNfeCA9IGRzdC0+eDE7 Ci0JY3J0Y195ID0gZHN0LT55MTsKLQljcnRjX3cgPSBkcm1fcmVjdF93aWR0aChkc3QpOwotCWNy dGNfaCA9IGRybV9yZWN0X2hlaWdodChkc3QpOworCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2No ZWNrX3BsYW5lX3N0YXRlKCZzdGF0ZS0+YmFzZSwKKwkJCQkJCSAgJmNydGNfc3RhdGUtPmJhc2Us CisJCQkJCQkgIG1pbl9zY2FsZSwgbWF4X3NjYWxlLAorCQkJCQkJICB0cnVlLCB0cnVlKTsKKwlp ZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCiAJaWYgKHN0YXRlLT5iYXNlLnZpc2libGUpIHsKLQkJ LyogY2hlY2sgYWdhaW4gaW4gY2FzZSBjbGlwcGluZyBjbGFtcGVkIHRoZSByZXN1bHRzICovCi0J CWhzY2FsZSA9IGRybV9yZWN0X2NhbGNfaHNjYWxlKHNyYywgZHN0LCBtaW5fc2NhbGUsIG1heF9z Y2FsZSk7Ci0JCWlmIChoc2NhbGUgPCAwKSB7Ci0JCQlEUk1fREVCVUdfS01TKCJIb3Jpem9udGFs IHNjYWxpbmcgZmFjdG9yIG91dCBvZiBsaW1pdHNcbiIpOwotCQkJZHJtX3JlY3RfZGVidWdfcHJp bnQoInNyYzogIiwgc3JjLCB0cnVlKTsKLQkJCWRybV9yZWN0X2RlYnVnX3ByaW50KCJkc3Q6ICIs IGRzdCwgZmFsc2UpOwotCi0JCQlyZXR1cm4gaHNjYWxlOwotCQl9Ci0KLQkJdnNjYWxlID0gZHJt X3JlY3RfY2FsY192c2NhbGUoc3JjLCBkc3QsIG1pbl9zY2FsZSwgbWF4X3NjYWxlKTsKLQkJaWYg KHZzY2FsZSA8IDApIHsKLQkJCURSTV9ERUJVR19LTVMoIlZlcnRpY2FsIHNjYWxpbmcgZmFjdG9y IG91dCBvZiBsaW1pdHNcbiIpOwotCQkJZHJtX3JlY3RfZGVidWdfcHJpbnQoInNyYzogIiwgc3Jj LCB0cnVlKTsKLQkJCWRybV9yZWN0X2RlYnVnX3ByaW50KCJkc3Q6ICIsIGRzdCwgZmFsc2UpOwot Ci0JCQlyZXR1cm4gdnNjYWxlOwotCQl9Ci0KLQkJLyogTWFrZSB0aGUgc291cmNlIHZpZXdwb3J0 IHNpemUgYW4gZXhhY3QgbXVsdGlwbGUgb2YgdGhlIHNjYWxpbmcgZmFjdG9ycy4gKi8KLQkJZHJt X3JlY3RfYWRqdXN0X3NpemUoc3JjLAotCQkJCSAgICAgZHJtX3JlY3Rfd2lkdGgoZHN0KSAqIGhz Y2FsZSAtIGRybV9yZWN0X3dpZHRoKHNyYyksCi0JCQkJICAgICBkcm1fcmVjdF9oZWlnaHQoZHN0 KSAqIHZzY2FsZSAtIGRybV9yZWN0X2hlaWdodChzcmMpKTsKLQotCQlkcm1fcmVjdF9yb3RhdGVf aW52KHNyYywgZmItPndpZHRoIDw8IDE2LCBmYi0+aGVpZ2h0IDw8IDE2LAotCQkJCSAgICBzdGF0 ZS0+YmFzZS5yb3RhdGlvbik7Ci0KLQkJLyogc2FuaXR5IGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUg c3JjIHZpZXdwb3J0IHdhc24ndCBlbmxhcmdlZCAqLwotCQlXQVJOX09OKHNyYy0+eDEgPCAoaW50 KSBzdGF0ZS0+YmFzZS5zcmNfeCB8fAotCQkJc3JjLT55MSA8IChpbnQpIHN0YXRlLT5iYXNlLnNy Y195IHx8Ci0JCQlzcmMtPngyID4gKGludCkgc3RhdGUtPmJhc2Uuc3JjX3ggKyBzdGF0ZS0+YmFz ZS5zcmNfdyB8fAotCQkJc3JjLT55MiA+IChpbnQpIHN0YXRlLT5iYXNlLnNyY195ICsgc3RhdGUt PmJhc2Uuc3JjX2gpOworCQlzdHJ1Y3QgZHJtX3JlY3QgKnNyYyA9ICZzdGF0ZS0+YmFzZS5zcmM7 CisJCXN0cnVjdCBkcm1fcmVjdCAqZHN0ID0gJnN0YXRlLT5iYXNlLmRzdDsKKwkJdW5zaWduZWQg aW50IGNydGNfdyA9IGRybV9yZWN0X3dpZHRoKGRzdCk7CisJCXVuc2lnbmVkIGludCBjcnRjX2gg PSBkcm1fcmVjdF9oZWlnaHQoZHN0KTsKKwkJdWludDMyX3Qgc3JjX3gsIHNyY195LCBzcmNfdywg c3JjX2g7CiAKIAkJLyoKIAkJICogSGFyZHdhcmUgZG9lc24ndCBoYW5kbGUgc3VicGl4ZWwgY29v cmRpbmF0ZXMuCkBAIC0xMDYwLDU4ICsxMDA1LDM5IEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFu ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCQlzcmNfeSA9IHNyYy0+eTEgPj4gMTY7CiAJ CXNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KHNyYykgPj4gMTY7CiAKLQkJaWYgKGludGVsX2Zvcm1h dF9pc195dXYoZmItPmZvcm1hdC0+Zm9ybWF0KSkgewotCQkJc3JjX3ggJj0gfjE7Ci0JCQlzcmNf dyAmPSB+MTsKLQotCQkJLyoKLQkJCSAqIE11c3Qga2VlcCBzcmMgYW5kIGRzdCB0aGUKLQkJCSAq IHNhbWUgaWYgd2UgY2FuJ3Qgc2NhbGUuCi0JCQkgKi8KLQkJCWlmICghY2FuX3NjYWxlKQotCQkJ CWNydGNfdyAmPSB+MTsKKwkJc3JjLT54MSA9IHNyY194IDw8IDE2OworCQlzcmMtPngyID0gKHNy Y194ICsgc3JjX3cpIDw8IDE2OworCQlzcmMtPnkxID0gc3JjX3kgPDwgMTY7CisJCXNyYy0+eTIg PSAoc3JjX3kgKyBzcmNfaCkgPDwgMTY7CiAKLQkJCWlmIChjcnRjX3cgPT0gMCkKLQkJCQlzdGF0 ZS0+YmFzZS52aXNpYmxlID0gZmFsc2U7CisJCWlmIChpbnRlbF9mb3JtYXRfaXNfeXV2KGZiLT5m b3JtYXQtPmZvcm1hdCkgJiYKKwkJICAgIChzcmNfeCAlIDIgfHwgc3JjX3cgJSAyKSkgeworCQkJ RFJNX0RFQlVHX0tNUygic3JjIHgvdyAoJXUsICV1KSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMiBm b3IgWVVWIHBsYW5lc1xuIiwKKwkJCQkgICAgICBzcmNfeCwgc3JjX3cpOworCQkJcmV0dXJuIC1F SU5WQUw7CiAJCX0KLQl9CiAKLQkvKiBDaGVjayBzaXplIHJlc3RyaWN0aW9ucyB3aGVuIHNjYWxp bmcgKi8KLQlpZiAoc3RhdGUtPmJhc2UudmlzaWJsZSAmJiAoc3JjX3cgIT0gY3J0Y193IHx8IHNy Y19oICE9IGNydGNfaCkpIHsKLQkJdW5zaWduZWQgaW50IHdpZHRoX2J5dGVzOwotCQlpbnQgY3Bw ID0gZmItPmZvcm1hdC0+Y3BwWzBdOworCQkvKiBDaGVjayBzaXplIHJlc3RyaWN0aW9ucyB3aGVu IHNjYWxpbmcgKi8KKwkJaWYgKHNyY193ICE9IGNydGNfdyB8fCBzcmNfaCAhPSBjcnRjX2gpIHsK KwkJCXVuc2lnbmVkIGludCB3aWR0aF9ieXRlczsKKwkJCWludCBjcHAgPSBmYi0+Zm9ybWF0LT5j cHBbMF07CiAKLQkJV0FSTl9PTighY2FuX3NjYWxlKTsKKwkJCVdBUk5fT04oIWNhbl9zY2FsZSk7 CiAKLQkJLyogRklYTUUgaW50ZXJsYWNpbmcgbWluIGhlaWdodCBpcyA2ICovCisJCQl3aWR0aF9i eXRlcyA9ICgoc3JjX3ggKiBjcHApICYgNjMpICsgc3JjX3cgKiBjcHA7CiAKLQkJaWYgKGNydGNf dyA8IDMgfHwgY3J0Y19oIDwgMykKLQkJCXN0YXRlLT5iYXNlLnZpc2libGUgPSBmYWxzZTsKLQot CQlpZiAoc3JjX3cgPCAzIHx8IHNyY19oIDwgMykKLQkJCXN0YXRlLT5iYXNlLnZpc2libGUgPSBm YWxzZTsKLQotCQl3aWR0aF9ieXRlcyA9ICgoc3JjX3ggKiBjcHApICYgNjMpICsgc3JjX3cgKiBj cHA7Ci0KLQkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA5ICYmIChzcmNfdyA+IDIwNDggfHwg c3JjX2ggPiAyMDQ4IHx8Ci0JCSAgICB3aWR0aF9ieXRlcyA+IDQwOTYgfHwgZmItPnBpdGNoZXNb MF0gPiA0MDk2KSkgewotCQkJRFJNX0RFQlVHX0tNUygiU291cmNlIGRpbWVuc2lvbnMgZXhjZWVk IGhhcmR3YXJlIGxpbWl0c1xuIik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKKwkJCS8qIEZJWE1FIGlu dGVybGFjaW5nIG1pbiBoZWlnaHQgaXMgNiAqLworCQkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg PCA5ICYmICgKKwkJCSAgICAgc3JjX3cgPCAzIHx8IHNyY19oIDwgMyB8fAorCQkJICAgICBzcmNf dyA+IDIwNDggfHwgc3JjX2ggPiAyMDQ4IHx8CisJCQkgICAgIGNydGNfdyA8IDMgfHwgY3J0Y19o IDwgMyB8fAorCQkJICAgICB3aWR0aF9ieXRlcyA+IDQwOTYgfHwgZmItPnBpdGNoZXNbMF0gPiA0 MDk2KSkgeworCQkJCURSTV9ERUJVR19LTVMoIlNvdXJjZSBkaW1lbnNpb25zIGV4Y2VlZCBoYXJk d2FyZSBsaW1pdHNcbiIpOworCQkJCXJldHVybiAtRUlOVkFMOworCQkJfQogCQl9CiAJfQogCi0J aWYgKHN0YXRlLT5iYXNlLnZpc2libGUpIHsKLQkJc3JjLT54MSA9IHNyY194IDw8IDE2OwotCQlz cmMtPngyID0gKHNyY194ICsgc3JjX3cpIDw8IDE2OwotCQlzcmMtPnkxID0gc3JjX3kgPDwgMTY7 Ci0JCXNyYy0+eTIgPSAoc3JjX3kgKyBzcmNfaCkgPDwgMTY7Ci0JfQotCi0JZHN0LT54MSA9IGNy dGNfeDsKLQlkc3QtPngyID0gY3J0Y194ICsgY3J0Y193OwotCWRzdC0+eTEgPSBjcnRjX3k7Ci0J ZHN0LT55MiA9IGNydGNfeSArIGNydGNfaDsKLQogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49 IDkpIHsKIAkJcmV0ID0gc2tsX2NoZWNrX3BsYW5lX3N1cmZhY2UoY3J0Y19zdGF0ZSwgc3RhdGUp OwogCQlpZiAocmV0KQotLSAKMi4xNy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK