From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 2/2] drm/i915: Do not adjust scale when out of bounds. Date: Tue, 24 Apr 2018 13:36:33 +0200 Message-ID: <20180424113633.16140-2-maarten.lankhorst@linux.intel.com> References: <20180424113633.16140-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: <20180424113633.16140-1-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org V2l0aCB0aGUgcHJldmlvdXMgcGF0Y2ggZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3Rh dGUgY29ycmVjdGx5CmNhbGN1bGF0ZXMgY2xpcHBpbmcgYW5kIHRoZSB4Zjg2LXZpZGVvLWludGVs IGRkeCBpcyBmaXhlZCB0byBmYWxsIGJhY2sKdG8gR1BVIGNvcnJlY3RseSB3aGVuIFNldFBsYW5l IGZhaWxzLCB3ZSBjYW4gcmVtb3ZlIHRoZSBoYWNrIHdoZXJlCndlIHRyeSB0byBwYW4vem9vbSB3 aGVuIG91dCBvZiBtaW4vbWF4IHNjYWxpbmcgcmFuZ2UuIFRoaXMgd2FzIGFscmVhZHkKcG9vciBi ZWhhdmlvciB3aGVyZSB0aGUgc2NyZWVuIGRpZG4ndCBzaG93IHdoYXQgd2FzIHJlcXVlc3RlZCwg YW5kIG5vdwppbnN0ZWFkIHdlIHJlamVjdCBpdCBvdXRyaWdodC4gVGhpcyBzaW1wbGlmaWVzIGNo ZWNrX3Nwcml0ZV9wbGFuZSBhIGxvdC4KClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0 IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfc3ByaXRlLmMgfCAxNDIgKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDEwNiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCmluZGV4IGY4ZjdjNjZmYzNhYy4uZDQwMDNkMjQ4ODNi IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwpAQCAtOTM2LDIyICs5MzYsMTIgQEAg aW50ZWxfY2hlY2tfc3ByaXRlX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYp OwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmJhc2UuZmI7 Ci0JaW50IGNydGNfeCwgY3J0Y195OwotCXVuc2lnbmVkIGludCBjcnRjX3csIGNydGNfaDsKLQl1 aW50MzJfdCBzcmNfeCwgc3JjX3ksIHNyY193LCBzcmNfaDsKLQlzdHJ1Y3QgZHJtX3JlY3QgKnNy YyA9ICZzdGF0ZS0+YmFzZS5zcmM7Ci0Jc3RydWN0IGRybV9yZWN0ICpkc3QgPSAmc3RhdGUtPmJh c2UuZHN0OwotCXN0cnVjdCBkcm1fcmVjdCBjbGlwID0ge307CiAJaW50IG1heF9zdHJpZGUgPSBJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDkgPyAzMjc2OCA6IDE2Mzg0OwotCWludCBoc2NhbGUsIHZz Y2FsZTsKIAlpbnQgbWF4X3NjYWxlLCBtaW5fc2NhbGU7CiAJYm9vbCBjYW5fc2NhbGU7CiAJaW50 IHJldDsKIAl1aW50MzJfdCBwaXhlbF9mb3JtYXQgPSAwOwogCi0JKnNyYyA9IGRybV9wbGFuZV9z dGF0ZV9zcmMoJnN0YXRlLT5iYXNlKTsKLQkqZHN0ID0gZHJtX3BsYW5lX3N0YXRlX2Rlc3QoJnN0 YXRlLT5iYXNlKTsKLQogCWlmICghZmIpIHsKIAkJc3RhdGUtPmJhc2UudmlzaWJsZSA9IGZhbHNl OwogCQlyZXR1cm4gMDsKQEAgLTk5MCw2NCArOTgwLDE5IEBAIGludGVsX2NoZWNrX3Nwcml0ZV9w bGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCQltaW5fc2NhbGUgPSBwbGFuZS0+Y2Fu X3NjYWxlID8gMSA6ICgxIDw8IDE2KTsKIAl9CiAKLQkvKgotCSAqIEZJWE1FIHRoZSBmb2xsb3dp bmcgY29kZSBkb2VzIGEgYnVuY2ggb2YgZnV6enkgYWRqdXN0bWVudHMgdG8gdGhlCi0JICogY29v cmRpbmF0ZXMgYW5kIHNpemVzLiBXZSBwcm9iYWJseSBuZWVkIHNvbWUgd2F5IHRvIGRlY2lkZSB3 aGV0aGVyCi0JICogbW9yZSBzdHJpY3QgY2hlY2tpbmcgc2hvdWxkIGJlIGRvbmUgaW5zdGVhZC4K LQkgKi8KLQlkcm1fcmVjdF9yb3RhdGUoc3JjLCBmYi0+d2lkdGggPDwgMTYsIGZiLT5oZWlnaHQg PDwgMTYsCi0JCQlzdGF0ZS0+YmFzZS5yb3RhdGlvbik7Ci0KLQloc2NhbGUgPSBkcm1fcmVjdF9j YWxjX2hzY2FsZV9yZWxheGVkKHNyYywgZHN0LCBtaW5fc2NhbGUsIDEgPDwgMTYsIG1heF9zY2Fs ZSk7Ci0JQlVHX09OKGhzY2FsZSA8IDApOwotCi0JdnNjYWxlID0gZHJtX3JlY3RfY2FsY192c2Nh bGVfcmVsYXhlZChzcmMsIGRzdCwgbWluX3NjYWxlLCAxIDw8IDE2LCBtYXhfc2NhbGUpOwotCUJV R19PTih2c2NhbGUgPCAwKTsKLQotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKLQkJZHJt X21vZGVfZ2V0X2h2X3RpbWluZygmY3J0Y19zdGF0ZS0+YmFzZS5tb2RlLAotCQkJCSAgICAgICAm Y2xpcC54MiwgJmNsaXAueTIpOwotCi0Jc3RhdGUtPmJhc2UudmlzaWJsZSA9IGRybV9yZWN0X2Ns aXBfc2NhbGVkKHNyYywgZHN0LCAmY2xpcCwgaHNjYWxlLCB2c2NhbGUpOwotCi0JY3J0Y194ID0g ZHN0LT54MTsKLQljcnRjX3kgPSBkc3QtPnkxOwotCWNydGNfdyA9IGRybV9yZWN0X3dpZHRoKGRz dCk7Ci0JY3J0Y19oID0gZHJtX3JlY3RfaGVpZ2h0KGRzdCk7CisJcmV0ID0gZHJtX2F0b21pY19o ZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnN0YXRlLT5iYXNlLAorCQkJCQkJICAmY3J0Y19zdGF0 ZS0+YmFzZSwKKwkJCQkJCSAgbWluX3NjYWxlLCBtYXhfc2NhbGUsCisJCQkJCQkgIHRydWUsIHRy dWUpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKIAlpZiAoc3RhdGUtPmJhc2UudmlzaWJs ZSkgewotCQkvKiBjaGVjayBhZ2FpbiBpbiBjYXNlIGNsaXBwaW5nIGNsYW1wZWQgdGhlIHJlc3Vs dHMgKi8KLQkJaHNjYWxlID0gZHJtX3JlY3RfY2FsY19oc2NhbGUoc3JjLCBkc3QsIG1pbl9zY2Fs ZSwgMSA8PCAxNiwgbWF4X3NjYWxlKTsKLQkJaWYgKGhzY2FsZSA8IDApIHsKLQkJCURSTV9ERUJV R19LTVMoIkhvcml6b250YWwgc2NhbGluZyBmYWN0b3Igb3V0IG9mIGxpbWl0c1xuIik7Ci0JCQlk cm1fcmVjdF9kZWJ1Z19wcmludCgic3JjOiAiLCBzcmMsIHRydWUpOwotCQkJZHJtX3JlY3RfZGVi dWdfcHJpbnQoImRzdDogIiwgZHN0LCBmYWxzZSk7Ci0KLQkJCXJldHVybiBoc2NhbGU7Ci0JCX0K LQotCQl2c2NhbGUgPSBkcm1fcmVjdF9jYWxjX3ZzY2FsZShzcmMsIGRzdCwgbWluX3NjYWxlLCAx IDw8IDE2LCBtYXhfc2NhbGUpOwotCQlpZiAodnNjYWxlIDwgMCkgewotCQkJRFJNX0RFQlVHX0tN UygiVmVydGljYWwgc2NhbGluZyBmYWN0b3Igb3V0IG9mIGxpbWl0c1xuIik7Ci0JCQlkcm1fcmVj dF9kZWJ1Z19wcmludCgic3JjOiAiLCBzcmMsIHRydWUpOwotCQkJZHJtX3JlY3RfZGVidWdfcHJp bnQoImRzdDogIiwgZHN0LCBmYWxzZSk7Ci0KLQkJCXJldHVybiB2c2NhbGU7Ci0JCX0KLQotCQkv KiBNYWtlIHRoZSBzb3VyY2Ugdmlld3BvcnQgc2l6ZSBhbiBleGFjdCBtdWx0aXBsZSBvZiB0aGUg c2NhbGluZyBmYWN0b3JzLiAqLwotCQlkcm1fcmVjdF9hZGp1c3Rfc2l6ZShzcmMsCi0JCQkJICAg ICBkcm1fcmVjdF93aWR0aChkc3QpICogaHNjYWxlIC0gZHJtX3JlY3Rfd2lkdGgoc3JjKSwKLQkJ CQkgICAgIGRybV9yZWN0X2hlaWdodChkc3QpICogdnNjYWxlIC0gZHJtX3JlY3RfaGVpZ2h0KHNy YykpOwotCi0JCWRybV9yZWN0X3JvdGF0ZV9pbnYoc3JjLCBmYi0+d2lkdGggPDwgMTYsIGZiLT5o ZWlnaHQgPDwgMTYsCi0JCQkJICAgIHN0YXRlLT5iYXNlLnJvdGF0aW9uKTsKLQotCQkvKiBzYW5p dHkgY2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBzcmMgdmlld3BvcnQgd2Fzbid0IGVubGFyZ2VkICov Ci0JCVdBUk5fT04oc3JjLT54MSA8IChpbnQpIHN0YXRlLT5iYXNlLnNyY194IHx8Ci0JCQlzcmMt PnkxIDwgKGludCkgc3RhdGUtPmJhc2Uuc3JjX3kgfHwKLQkJCXNyYy0+eDIgPiAoaW50KSBzdGF0 ZS0+YmFzZS5zcmNfeCArIHN0YXRlLT5iYXNlLnNyY193IHx8Ci0JCQlzcmMtPnkyID4gKGludCkg c3RhdGUtPmJhc2Uuc3JjX3kgKyBzdGF0ZS0+YmFzZS5zcmNfaCk7CisJCXN0cnVjdCBkcm1fcmVj dCAqc3JjID0gJnN0YXRlLT5iYXNlLnNyYzsKKwkJc3RydWN0IGRybV9yZWN0ICpkc3QgPSAmc3Rh dGUtPmJhc2UuZHN0OworCQl1bnNpZ25lZCBpbnQgY3J0Y193ID0gZHJtX3JlY3Rfd2lkdGgoZHN0 KTsKKwkJdW5zaWduZWQgaW50IGNydGNfaCA9IGRybV9yZWN0X3dpZHRoKGRzdCk7CisJCXVpbnQz Ml90IHNyY194LCBzcmNfeSwgc3JjX3csIHNyY19oOwogCiAJCS8qCiAJCSAqIEhhcmR3YXJlIGRv ZXNuJ3QgaGFuZGxlIHN1YnBpeGVsIGNvb3JkaW5hdGVzLgpAQCAtMTA2MCw1OCArMTAwNSw0MyBA QCBpbnRlbF9jaGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAkJ c3JjX3kgPSBzcmMtPnkxID4+IDE2OwogCQlzcmNfaCA9IGRybV9yZWN0X2hlaWdodChzcmMpID4+ IDE2OwogCi0JCWlmIChpbnRlbF9mb3JtYXRfaXNfeXV2KGZiLT5mb3JtYXQtPmZvcm1hdCkpIHsK LQkJCXNyY194ICY9IH4xOwotCQkJc3JjX3cgJj0gfjE7Ci0KLQkJCS8qCi0JCQkgKiBNdXN0IGtl ZXAgc3JjIGFuZCBkc3QgdGhlCi0JCQkgKiBzYW1lIGlmIHdlIGNhbid0IHNjYWxlLgotCQkJICov Ci0JCQlpZiAoIWNhbl9zY2FsZSkKLQkJCQljcnRjX3cgJj0gfjE7CisJCXNyYy0+eDEgPSBzcmNf eCA8PCAxNjsKKwkJc3JjLT54MiA9IChzcmNfeCArIHNyY193KSA8PCAxNjsKKwkJc3JjLT55MSA9 IHNyY195IDw8IDE2OworCQlzcmMtPnkyID0gKHNyY195ICsgc3JjX2gpIDw8IDE2OwogCi0JCQlp ZiAoY3J0Y193ID09IDApCi0JCQkJc3RhdGUtPmJhc2UudmlzaWJsZSA9IGZhbHNlOworCQlpZiAo aW50ZWxfZm9ybWF0X2lzX3l1dihmYi0+Zm9ybWF0LT5mb3JtYXQpICYmCisJCSAgICAoc3JjX3gg JSAyIHx8IHNyY193ICUgMikpIHsKKwkJCURSTV9ERUJVR19LTVMoInNyYyB4L3cgKCV1LCAldSkg bXVzdCBiZSBhIG11bHRpcGxlIG9mIDIgZm9yIFlVViBwbGFuZXNcbiIsCisJCQkJICAgICAgc3Jj X3gsIHNyY193KTsKKwkJCXJldHVybiAtRUlOVkFMOwogCQl9Ci0JfQogCi0JLyogQ2hlY2sgc2l6 ZSByZXN0cmljdGlvbnMgd2hlbiBzY2FsaW5nICovCi0JaWYgKHN0YXRlLT5iYXNlLnZpc2libGUg JiYgKHNyY193ICE9IGNydGNfdyB8fCBzcmNfaCAhPSBjcnRjX2gpKSB7Ci0JCXVuc2lnbmVkIGlu dCB3aWR0aF9ieXRlczsKLQkJaW50IGNwcCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKKwkJLyogQ2hl Y2sgc2l6ZSByZXN0cmljdGlvbnMgd2hlbiBzY2FsaW5nICovCisJCWlmIChzcmNfdyAhPSBjcnRj X3cgfHwgc3JjX2ggIT0gY3J0Y19oKSB7CisJCQl1bnNpZ25lZCBpbnQgd2lkdGhfYnl0ZXM7CisJ CQlpbnQgY3BwID0gZmItPmZvcm1hdC0+Y3BwWzBdOwogCi0JCVdBUk5fT04oIWNhbl9zY2FsZSk7 CisJCQlXQVJOX09OKCFjYW5fc2NhbGUpOwogCi0JCS8qIEZJWE1FIGludGVybGFjaW5nIG1pbiBo ZWlnaHQgaXMgNiAqLworCQkJLyogRklYTUUgaW50ZXJsYWNpbmcgbWluIGhlaWdodCBpcyA2ICov CiAKLQkJaWYgKGNydGNfdyA8IDMgfHwgY3J0Y19oIDwgMykKLQkJCXN0YXRlLT5iYXNlLnZpc2li bGUgPSBmYWxzZTsKKwkJCWlmIChjcnRjX3cgPCAzIHx8IGNydGNfaCA8IDMpCisJCQkJc3RhdGUt PmJhc2UudmlzaWJsZSA9IGZhbHNlOwogCi0JCWlmIChzcmNfdyA8IDMgfHwgc3JjX2ggPCAzKQot CQkJc3RhdGUtPmJhc2UudmlzaWJsZSA9IGZhbHNlOworCQkJaWYgKHNyY193IDwgMyB8fCBzcmNf aCA8IDMpCisJCQkJc3RhdGUtPmJhc2UudmlzaWJsZSA9IGZhbHNlOwogCi0JCXdpZHRoX2J5dGVz ID0gKChzcmNfeCAqIGNwcCkgJiA2MykgKyBzcmNfdyAqIGNwcDsKKwkJCXdpZHRoX2J5dGVzID0g KChzcmNfeCAqIGNwcCkgJiA2MykgKyBzcmNfdyAqIGNwcDsKIAotCQlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA8IDkgJiYgKHNyY193ID4gMjA0OCB8fCBzcmNfaCA+IDIwNDggfHwKLQkJICAgIHdp ZHRoX2J5dGVzID4gNDA5NiB8fCBmYi0+cGl0Y2hlc1swXSA+IDQwOTYpKSB7Ci0JCQlEUk1fREVC VUdfS01TKCJTb3VyY2UgZGltZW5zaW9ucyBleGNlZWQgaGFyZHdhcmUgbGltaXRzXG4iKTsKLQkJ CXJldHVybiAtRUlOVkFMOworCQkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA5ICYmIChzcmNf dyA+IDIwNDggfHwgc3JjX2ggPiAyMDQ4IHx8CisJCQkgICAgd2lkdGhfYnl0ZXMgPiA0MDk2IHx8 IGZiLT5waXRjaGVzWzBdID4gNDA5NikpIHsKKwkJCQlEUk1fREVCVUdfS01TKCJTb3VyY2UgZGlt ZW5zaW9ucyBleGNlZWQgaGFyZHdhcmUgbGltaXRzXG4iKTsKKwkJCQlyZXR1cm4gLUVJTlZBTDsK KwkJCX0KIAkJfQogCX0KIAotCWlmIChzdGF0ZS0+YmFzZS52aXNpYmxlKSB7Ci0JCXNyYy0+eDEg PSBzcmNfeCA8PCAxNjsKLQkJc3JjLT54MiA9IChzcmNfeCArIHNyY193KSA8PCAxNjsKLQkJc3Jj LT55MSA9IHNyY195IDw8IDE2OwotCQlzcmMtPnkyID0gKHNyY195ICsgc3JjX2gpIDw8IDE2Owot CX0KLQotCWRzdC0+eDEgPSBjcnRjX3g7Ci0JZHN0LT54MiA9IGNydGNfeCArIGNydGNfdzsKLQlk c3QtPnkxID0gY3J0Y195OwotCWRzdC0+eTIgPSBjcnRjX3kgKyBjcnRjX2g7Ci0KIAlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSA5KSB7CiAJCXJldCA9IHNrbF9jaGVja19wbGFuZV9zdXJmYWNl KGNydGNfc3RhdGUsIHN0YXRlKTsKIAkJaWYgKHJldCkKLS0gCjIuMTcuMAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==