From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 12/14] drm/i915: Try to fix the messy IVB sprite scaling workaround Date: Thu, 5 Dec 2013 15:51:39 +0200 Message-ID: <1386251501-10602-13-git-send-email-ville.syrjala@linux.intel.com> References: <1386251501-10602-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id A3532FB72A for ; Thu, 5 Dec 2013 05:52:30 -0800 (PST) In-Reply-To: <1386251501-10602-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCldl IG5vdyBoYXZlIGEgdmVyeSBjbGVhciBtZXRob2Qgb2YgZGlzYWJsaW5nIExQMSsgd2FydGVybWFy a3MsCmFuZCB3ZSBjYW4gYWN0dWFsbHkgZGV0ZWN0IGlmIHdlIGFjdHVhbGx5IGRpZCBkaXNhYmxl IHRoZW0sIG9yCmlmIHRoZXkgd2VyZSBhbHJlYWR5IGRpc2FibGVkLiBVc2UgdGhhdCB0byBjbGVh biB1cCB0aGUKV2FDeFNSRGlzYWJsZWRGb3JTcHJpdGVTY2FsaW5nOml2YiBoYW5kbGluZy4KCkkg d2FzIGhvcGluZyB0byBhcHBseSB0aGUgd29ya2Fyb3VuZCBpbiBhIHdheSB0aGF0IHdvdWxkbid0 CnJlcXVpcmUgYSBibG9ja2luZyB3YWl0LCBidXQgc2FkbHkgSVZCIHJlYWxseSBkb2VzIGFwcGVh ciB0bwpyZXF1aXJlIExQMSsgd2F0ZXJtYXJrcyB0byBiZSBvZmYgZm9yIGFuIGVudGlyZSBmcmFt ZSBiZWZvcmUKZW5hYmxpbmcgc3ByaXRlIHNjYWxpbmcuIFNpbXBseSBkaXNhYmxpbmcgTFAxKyB3 YXRlcm1hcmtzCmR1cmluZyB0aGUgcHJldmlvdXMgZnJhbWUgaXMgbm90IGVub3VnaCwgbm8gbWF0 dGVyIGhvdyBlYXJseQppbiB0aGUgZnJhbWUgd2UgZG8gaXQgOigKClNpZ25lZC1vZmYtYnk6IFZp bGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgfCAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jICAgICB8IDU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIHwgMjcgKy0tLS0tLS0tLS0t LS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggNzgwZjgxNS4uNzlhZmY2OSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCkBAIC0xMzkzLDcgKzEzOTMsNiBAQCB0eXBlZGVmIHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlIHsKIAogCS8qIG92ZXJsYXkgKi8KIAlzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAq b3ZlcmxheTsKLQl1bnNpZ25lZCBpbnQgc3ByaXRlX3NjYWxpbmdfZW5hYmxlZDsKIAogCS8qIGJh Y2tsaWdodCByZWdpc3RlcnMgYW5kIGZpZWxkcyBpbiBzdHJ1Y3QgaW50ZWxfcGFuZWwgKi8KIAlz cGlubG9ja190IGJhY2tsaWdodF9sb2NrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggOGI5 Nzg5My4uMTk1OGRlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC0yNDI3LDMzICsyNDI3 LDI2IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaWxrX2NvbXB1dGVfd21fZGlydHkoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAlyZXR1cm4gZGlydHk7CiB9CiAKLS8qCi0gKiBUaGUgc3BlYyBzYXlz IHdlIHNob3VsZG4ndCB3cml0ZSB3aGVuIHdlIGRvbid0IG5lZWQsIGJlY2F1c2UgZXZlcnkgd3Jp dGUKLSAqIGNhdXNlcyBXTXMgdG8gYmUgcmUtZXZhbHVhdGVkLCBleHBlbmRpbmcgc29tZSBwb3dl ci4KLSAqLwotc3RhdGljIHZvaWQgaHN3X3dyaXRlX3dtX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJc3RydWN0IGhzd193bV92YWx1ZXMgKnJlc3VsdHMpCitz dGF0aWMgYm9vbCBfaWxrX2Rpc2FibGVfbHBfd20oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAorCQkJICAgICAgIHVuc2lnbmVkIGludCBkaXJ0eSkKIHsKLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKIAlzdHJ1Y3QgaHN3X3dtX3ZhbHVlcyAqcHJldmlv dXMgPSAmZGV2X3ByaXYtPndtLmh3OwotCXVuc2lnbmVkIGludCBkaXJ0eTsKLQl1aW50MzJfdCB2 YWw7Ci0KLQlkaXJ0eSA9IGlsa19jb21wdXRlX3dtX2RpcnR5KGRldl9wcml2LT5kZXYsIHByZXZp b3VzLCByZXN1bHRzKTsKLQlpZiAoIWRpcnR5KQotCQlyZXR1cm47CisJYm9vbCBjaGFuZ2VkID0g ZmFsc2U7CiAKIAlpZiAoZGlydHkgJiBXTV9ESVJUWV9MUCgzKSAmJiBwcmV2aW91cy0+d21fbHBb Ml0gJiBXTTFfTFBfU1JfRU4pIHsKIAkJcHJldmlvdXMtPndtX2xwWzJdICY9IH5XTTFfTFBfU1Jf RU47CiAJCUk5MTVfV1JJVEUoV00zX0xQX0lMSywgcHJldmlvdXMtPndtX2xwWzJdKTsKKwkJY2hh bmdlZCA9IHRydWU7CiAJfQogCWlmIChkaXJ0eSAmIFdNX0RJUlRZX0xQKDIpICYmIHByZXZpb3Vz LT53bV9scFsxXSAmIFdNMV9MUF9TUl9FTikgewogCQlwcmV2aW91cy0+d21fbHBbMV0gJj0gfldN MV9MUF9TUl9FTjsKIAkJSTkxNV9XUklURShXTTJfTFBfSUxLLCBwcmV2aW91cy0+d21fbHBbMV0p OworCQljaGFuZ2VkID0gdHJ1ZTsKIAl9CiAJaWYgKGRpcnR5ICYgV01fRElSVFlfTFAoMSkgJiYg cHJldmlvdXMtPndtX2xwWzBdICYgV00xX0xQX1NSX0VOKSB7CiAJCXByZXZpb3VzLT53bV9scFsw XSAmPSB+V00xX0xQX1NSX0VOOwogCQlJOTE1X1dSSVRFKFdNMV9MUF9JTEssIHByZXZpb3VzLT53 bV9scFswXSk7CisJCWNoYW5nZWQgPSB0cnVlOwogCX0KIAogCS8qCkBAIC0yNDYxLDYgKzI0NTQs MjcgQEAgc3RhdGljIHZvaWQgaHN3X3dyaXRlX3dtX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJICogRG9pbmcgc28gY291bGQgY2F1c2UgdW5kZXJydW5zLgogCSAq LwogCisJcmV0dXJuIGNoYW5nZWQ7Cit9CisKKy8qCisgKiBUaGUgc3BlYyBzYXlzIHdlIHNob3Vs ZG4ndCB3cml0ZSB3aGVuIHdlIGRvbid0IG5lZWQsIGJlY2F1c2UgZXZlcnkgd3JpdGUKKyAqIGNh dXNlcyBXTXMgdG8gYmUgcmUtZXZhbHVhdGVkLCBleHBlbmRpbmcgc29tZSBwb3dlci4KKyAqLwor c3RhdGljIHZvaWQgaHN3X3dyaXRlX3dtX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCisJCQkJc3RydWN0IGhzd193bV92YWx1ZXMgKnJlc3VsdHMpCit7CisJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7CisJc3RydWN0IGhzd193bV92YWx1ZXMg KnByZXZpb3VzID0gJmRldl9wcml2LT53bS5odzsKKwl1bnNpZ25lZCBpbnQgZGlydHk7CisJdWlu dDMyX3QgdmFsOworCisJZGlydHkgPSBpbGtfY29tcHV0ZV93bV9kaXJ0eShkZXYsIHByZXZpb3Vz LCByZXN1bHRzKTsKKwlpZiAoIWRpcnR5KQorCQlyZXR1cm47CisKKwlfaWxrX2Rpc2FibGVfbHBf d20oZGV2X3ByaXYsIGRpcnR5KTsKKwogCWlmIChkaXJ0eSAmIFdNX0RJUlRZX1BJUEUoUElQRV9B KSkKIAkJSTkxNV9XUklURShXTTBfUElQRUFfSUxLLCByZXN1bHRzLT53bV9waXBlWzBdKTsKIAlp ZiAoZGlydHkgJiBXTV9ESVJUWV9QSVBFKFBJUEVfQikpCkBAIC0yNTI0LDYgKzI1MzgsMTMgQEAg c3RhdGljIHZvaWQgaHN3X3dyaXRlX3dtX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJZGV2X3ByaXYtPndtLmh3ID0gKnJlc3VsdHM7CiB9CiAKK3N0YXRpYyBib29s IGlsa19kaXNhYmxlX2xwX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCXJldHVybiBf aWxrX2Rpc2FibGVfbHBfd20oZGV2X3ByaXYsIFdNX0RJUlRZX0xQX0FMTCk7Cit9CisKIHN0YXRp YyB2b2lkIGhhc3dlbGxfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC0yNTcz LDYgKzI1OTQsNyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX3VwZGF0ZV9zcHJpdGVfd20oc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJICAgICB1aW50MzJfdCBzcHJpdGVfd2lkdGgsIGludCBw aXhlbF9zaXplLAogCQkJCSAgICAgYm9vbCBlbmFibGVkLCBib29sIHNjYWxlZCkKIHsKKwlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmlu dGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwogCiAJaW50ZWxfcGxhbmUtPndtLmVu YWJsZWQgPSBlbmFibGVkOwpAQCAtMjU4MCw2ICsyNjAyLDE2IEBAIHN0YXRpYyB2b2lkIGhhc3dl bGxfdXBkYXRlX3Nwcml0ZV93bShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlpbnRlbF9wbGFu ZS0+d20uaG9yaXpfcGl4ZWxzID0gc3ByaXRlX3dpZHRoOwogCWludGVsX3BsYW5lLT53bS5ieXRl c19wZXJfcGl4ZWwgPSBwaXhlbF9zaXplOwogCisJLyoKKwkgKiBJVkIgd29ya2Fyb3VuZDogbXVz dCBkaXNhYmxlIGxvdyBwb3dlciB3YXRlcm1hcmtzIGZvciBhdCBsZWFzdAorCSAqIG9uZSBmcmFt ZSBiZWZvcmUgZW5hYmxpbmcgc2NhbGluZy4gIExQIHdhdGVybWFya3MgY2FuIGJlIHJlLWVuYWJs ZWQKKwkgKiB3aGVuIHNjYWxpbmcgaXMgZGlzYWJsZWQuCisJICoKKwkgKiBXYUN4U1JEaXNhYmxl ZEZvclNwcml0ZVNjYWxpbmc6aXZiCisJICovCisJaWYgKElTX0lWWUJSSURHRShkZXYpICYmIHNj YWxlZCAmJiBpbGtfZGlzYWJsZV9scF93bShkZXYpKQorCQlpbnRlbF93YWl0X2Zvcl92Ymxhbmso ZGV2LCBpbnRlbF9wbGFuZS0+cGlwZSk7CisKIAloYXN3ZWxsX3VwZGF0ZV93bShjcnRjKTsKIH0K IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwppbmRleCA2YmZlYmZiLi4zY2UzMjhlIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwpAQCAtMjMwLDcgKzIzMCw2IEBAIGl2Yl91 cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAl1MzIgc3ByY3RsLCBzcHJzY2FsZSA9IDA7CiAJdW5zaWduZWQgbG9uZyBzcHJzdXJmX29m ZnNldCwgbGluZWFyX29mZnNldDsKIAlpbnQgcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVf Y3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwotCWJvb2wgc2NhbGluZ193YXNfZW5hYmxlZCA9IGRl dl9wcml2LT5zcHJpdGVfc2NhbGluZ19lbmFibGVkOwogCiAJc3ByY3RsID0gSTkxNV9SRUFEKFNQ UkNUTChwaXBlKSk7CiAKQEAgLTI5MSwyMSArMjkwLDggQEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWNydGNfdy0tOwog CWNydGNfaC0tOwogCi0JLyoKLQkgKiBJVkIgd29ya2Fyb3VuZDogbXVzdCBkaXNhYmxlIGxvdyBw b3dlciB3YXRlcm1hcmtzIGZvciBhdCBsZWFzdAotCSAqIG9uZSBmcmFtZSBiZWZvcmUgZW5hYmxp bmcgc2NhbGluZy4gIExQIHdhdGVybWFya3MgY2FuIGJlIHJlLWVuYWJsZWQKLQkgKiB3aGVuIHNj YWxpbmcgaXMgZGlzYWJsZWQuCi0JICovCi0JaWYgKGNydGNfdyAhPSBzcmNfdyB8fCBjcnRjX2gg IT0gc3JjX2gpIHsKLQkJZGV2X3ByaXYtPnNwcml0ZV9zY2FsaW5nX2VuYWJsZWQgfD0gMSA8PCBw aXBlOwotCi0JCWlmICghc2NhbGluZ193YXNfZW5hYmxlZCkgewotCQkJaW50ZWxfdXBkYXRlX3dh dGVybWFya3MoY3J0Yyk7Ci0JCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2LCBwaXBlKTsKLQkJ fQorCWlmIChjcnRjX3cgIT0gc3JjX3cgfHwgY3J0Y19oICE9IHNyY19oKQogCQlzcHJzY2FsZSA9 IFNQUklURV9TQ0FMRV9FTkFCTEUgfCAoc3JjX3cgPDwgMTYpIHwgc3JjX2g7Ci0JfSBlbHNlCi0J CWRldl9wcml2LT5zcHJpdGVfc2NhbGluZ19lbmFibGVkICY9IH4oMSA8PCBwaXBlKTsKIAogCUk5 MTVfV1JJVEUoU1BSU1RSSURFKHBpcGUpLCBmYi0+cGl0Y2hlc1swXSk7CiAJSTkxNV9XUklURShT UFJQT1MocGlwZSksIChjcnRjX3kgPDwgMTYpIHwgY3J0Y194KTsKQEAgLTMzMiwxMCArMzE4LDYg QEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9j cnRjICpjcnRjLAogCUk5MTVfTU9ESUZZX0RJU1BCQVNFKFNQUlNVUkYocGlwZSksCiAJCQkgICAg IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopICsgc3Byc3VyZl9vZmZzZXQpOwogCVBPU1RJ TkdfUkVBRChTUFJTVVJGKHBpcGUpKTsKLQotCS8qIHBvdGVudGlhbGx5IHJlLWVuYWJsZSBMUCB3 YXRlcm1hcmtzICovCi0JaWYgKHNjYWxpbmdfd2FzX2VuYWJsZWQgJiYgIWRldl9wcml2LT5zcHJp dGVfc2NhbGluZ19lbmFibGVkKQotCQlpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhjcnRjKTsKIH0K IAogc3RhdGljIHZvaWQKQEAgLTM0NSw3ICszMjcsNiBAQCBpdmJfZGlzYWJsZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVs X3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKIAlpbnQgcGlwZSA9 IGludGVsX3BsYW5lLT5waXBlOwotCWJvb2wgc2NhbGluZ193YXNfZW5hYmxlZCA9IGRldl9wcml2 LT5zcHJpdGVfc2NhbGluZ19lbmFibGVkOwogCiAJSTkxNV9XUklURShTUFJDVEwocGlwZSksIEk5 MTVfUkVBRChTUFJDVEwocGlwZSkpICYgflNQUklURV9FTkFCTEUpOwogCS8qIENhbid0IGxlYXZl IHRoZSBzY2FsZXIgZW5hYmxlZC4uLiAqLwpAQCAtMzU1LDEzICszMzYsNyBAQCBpdmJfZGlzYWJs ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjKQog CUk5MTVfTU9ESUZZX0RJU1BCQVNFKFNQUlNVUkYocGlwZSksIDApOwogCVBPU1RJTkdfUkVBRChT UFJTVVJGKHBpcGUpKTsKIAotCWRldl9wcml2LT5zcHJpdGVfc2NhbGluZ19lbmFibGVkICY9IH4o MSA8PCBwaXBlKTsKLQogCWludGVsX3VwZGF0ZV9zcHJpdGVfd2F0ZXJtYXJrcyhwbGFuZSwgY3J0 YywgMCwgMCwgZmFsc2UsIGZhbHNlKTsKLQotCS8qIHBvdGVudGlhbGx5IHJlLWVuYWJsZSBMUCB3 YXRlcm1hcmtzICovCi0JaWYgKHNjYWxpbmdfd2FzX2VuYWJsZWQgJiYgIWRldl9wcml2LT5zcHJp dGVfc2NhbGluZ19lbmFibGVkKQotCQlpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhjcnRjKTsKIH0K IAogc3RhdGljIGludAotLSAKMS44LjMuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK