From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gustavo Padovan Subject: [PATCH v2 01/10] drm/i915: Merge of visible and !visible paths for primary planes Date: Mon, 22 Sep 2014 19:23:08 -0300 Message-ID: <1411424597-31662-1-git-send-email-gustavo@padovan.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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 Cc: Gustavo Padovan , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvLnVrPgoK Rm9sZCBpbnRlbF9waXBlX3NldF9iYXNlKCkgaW4gdGhlIHVwZGF0ZSBwcmltYXJ5IHBsYW5lIHBh dGggbWVyZ2luZwpwaWVjZXMgb2YgY29kZSB0aGF0IGFyZSBjb21tb24gdG8gYm90aCBwYXRocy4K CkJhc2ljYWxseSB0aGUgdGhlIHBpbi91bnBpbiBwcm9jZWR1cmVzIGFyZSB0aGUgc2FtZSBmb3Ig Ym90aCBwYXRocwphbmQgc29tZSBjaGVja3MgY2FuIGFsc28gYmUgc2hhcmVkIChzb21lIG9mIHRo ZSB3ZXJlIG1vdmVkIHRvIHRoZQpjaGVjaygpIHN0YWdlKQoKdjI6IHRha2UgVmlsbGUncyBjb21t ZW50czoKCS0gcmVtb3ZlIHVubmVjZXNzYXJ5IHBsYW5lIGNoZWNrCgktIG1vdmUgbXV0ZXggbG9j ayB0byBpbnNpZGUgdGhlIGNvbmRpdGlvbmFsCgktIG1ha2UgdGhlIHBpbiBmYWlsIG1lc3NhZ2Ug YSBkZWJ1ZyBvbmUKCS0gYWRkIGEgZml4bWUgZm9yIHRoZSBmYXN0Ym9vdCBoYWNrCgktIGNhbGwg aW50ZWxfZnJvbnRidWZmZXJfZmxpcCgpIGFmdGVyIEZCQyB1cGRhdGUKCnYzOiB0YWtlIG1vcmUg VmlsbGUncyBjb21tZW50czoKCS0gZm9sZCB1cGRhdGUgY29kZSB1bmRlciBpZiAoaW50ZWxfY3J0 Yy0+YWN0aXZlKSwgYW5kIGRvIHRoZQoJdmlzaWJsZS8hdmlzaWJsZSBzcGxpdCBpbnNpZGUuCgkt IGNoZWNrIHJldCBpbnNpZGUgdGhlIHNhbWUgY29uZGl0aW9uYWwgd2UgYXNzaWduIGl0Cgp2NDog ZG9uJ3QgdXNlIGludGVsX2VuYWJsZV9wcmltYXJ5X2h3X3BsYW5lKCksIHRoZSBwcmltYXJ5X2Vu YWJsZWQKY2hlY2sgaW5zaWRlIHdpbGwgYnJlYWsgcGFnZSBmbGlwcwoKdjU6IHRha2UgbW9yZSBW aWxsZSdzIGNvbW1lbnRzOgoJLSBzZXQgcHJpbWFyeV9lbmFibGVkIHRvIHRydWUgYW5kIGFkZCBC RFcgaGFjawoJLSB1bmlmeSBpZiAob2xkX2ZiKSBhbmQgaWYgKG9sZF9mYiAhPSBmYikKClN1Z2dl c3RlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3Jh LmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDE0MiAr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDg3IGlu c2VydGlvbnMoKyksIDU1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwppbmRleCA4NTgwMTFkLi5iZWYzN2RjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCkBAIC0xMTU3OCwxMiArMTE1NzgsMjMgQEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFu ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlzdHJ1Y3QgZHJtX3JlY3QgKmRlc3QgPSAmc3Rh dGUtPmRzdDsKIAlzdHJ1Y3QgZHJtX3JlY3QgKnNyYyA9ICZzdGF0ZS0+c3JjOwogCWNvbnN0IHN0 cnVjdCBkcm1fcmVjdCAqY2xpcCA9ICZzdGF0ZS0+Y2xpcDsKKwlpbnQgcmV0OwogCi0JcmV0dXJu IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRlKHBsYW5lLCBjcnRjLCBmYiwKKwlyZXQgPSBk cm1fcGxhbmVfaGVscGVyX2NoZWNrX3VwZGF0ZShwbGFuZSwgY3J0YywgZmIsCiAJCQkJCSAgICBz cmMsIGRlc3QsIGNsaXAsCiAJCQkJCSAgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCiAJ CQkJCSAgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCiAJCQkJCSAgICBmYWxzZSwgdHJ1 ZSwgJnN0YXRlLT52aXNpYmxlKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJLyogbm8g ZmIgYm91bmQgKi8KKwlpZiAoc3RhdGUtPnZpc2libGUgJiYgIWZiKSB7CisJCURSTV9FUlJPUigi Tm8gRkIgYm91bmRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKIH0K IAogc3RhdGljIGludApAQCAtMTE1OTUsNiArMTE2MDYsOCBAQCBpbnRlbF9jb21taXRfcHJpbWFy eV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKGNydGMpOworCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKKwlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmIgPSBwbGFuZS0+ZmI7CiAJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9sZF9vYmogPSBpbnRlbF9mYl9vYmoocGxhbmUtPmZiKTsKIAlzdHJ1Y3QgaW50ZWxf cGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwpAQCAtMTE2MDMsNzYg KzExNjE2LDk1IEBAIGludGVsX2NvbW1pdF9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAogCiAJaW50ZWxfY3J0Y193YWl0X2Zvcl9wZW5kaW5nX2ZsaXBzKGNydGMpOwogCi0J LyoKLQkgKiBJZiBjbGlwcGluZyByZXN1bHRzIGluIGEgbm9uLXZpc2libGUgcHJpbWFyeSBwbGFu ZSwgd2UnbGwgZGlzYWJsZQotCSAqIHRoZSBwcmltYXJ5IHBsYW5lLiAgTm90ZSB0aGF0IHRoaXMg aXMgYSBiaXQgZGlmZmVyZW50IHRoYW4gd2hhdAotCSAqIGhhcHBlbnMgaWYgdXNlcnNwYWNlIGV4 cGxpY2l0bHkgZGlzYWJsZXMgdGhlIHBsYW5lIGJ5IHBhc3NpbmcgZmI9MAotCSAqIGJlY2F1c2Ug cGxhbmUtPmZiIHN0aWxsIGdldHMgc2V0IGFuZCBwaW5uZWQuCi0JICovCi0JaWYgKCFzdGF0ZS0+ dmlzaWJsZSkgeworCWlmIChpbnRlbF9jcnRjX2hhc19wZW5kaW5nX2ZsaXAoY3J0YykpIHsKKwkJ RFJNX0VSUk9SKCJwaXBlIGlzIHN0aWxsIGJ1c3kgd2l0aCBhbiBvbGQgcGFnZWZsaXBcbiIpOwor CQlyZXR1cm4gLUVCVVNZOworCX0KKworCWlmIChwbGFuZS0+ZmIgIT0gZmIpIHsKIAkJbXV0ZXhf bG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCQlyZXQgPSBpbnRlbF9waW5fYW5kX2ZlbmNlX2Zi X29iaihkZXYsIG9iaiwgTlVMTCk7CisJCWlmIChyZXQgPT0gMCkKKwkJCWk5MTVfZ2VtX3RyYWNr X2ZiKG9sZF9vYmosIG9iaiwKKwkJCQkJICBJTlRFTF9GUk9OVEJVRkZFUl9QUklNQVJZKHBpcGUp KTsKKwkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJCWlmIChyZXQgIT0gMCkg eworCQkJRFJNX0RFQlVHX0tNUygicGluICYgZmVuY2UgZmFpbGVkXG4iKTsKKwkJCXJldHVybiBy ZXQ7CisJCX0KKwl9CisKKwljcnRjLT5wcmltYXJ5LT5mYiA9IGZiOworCWNydGMtPnggPSBzcmMt PngxOworCWNydGMtPnkgPSBzcmMtPnkxOwogCisJaW50ZWxfcGxhbmUtPmNydGNfeCA9IHN0YXRl LT5vcmlnX2RzdC54MTsKKwlpbnRlbF9wbGFuZS0+Y3J0Y195ID0gc3RhdGUtPm9yaWdfZHN0Lnkx OworCWludGVsX3BsYW5lLT5jcnRjX3cgPSBkcm1fcmVjdF93aWR0aCgmc3RhdGUtPm9yaWdfZHN0 KTsKKwlpbnRlbF9wbGFuZS0+Y3J0Y19oID0gZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+b3JpZ19k c3QpOworCWludGVsX3BsYW5lLT5zcmNfeCA9IHN0YXRlLT5vcmlnX3NyYy54MTsKKwlpbnRlbF9w bGFuZS0+c3JjX3kgPSBzdGF0ZS0+b3JpZ19zcmMueTE7CisJaW50ZWxfcGxhbmUtPnNyY193ID0g ZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5vcmlnX3NyYyk7CisJaW50ZWxfcGxhbmUtPnNyY19oID0g ZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+b3JpZ19zcmMpOworCWludGVsX3BsYW5lLT5vYmogPSBv Ymo7CisKKwlpZiAoaW50ZWxfY3J0Yy0+YWN0aXZlKSB7CiAJCS8qCi0JCSAqIFRyeSB0byBwaW4g dGhlIG5ldyBmYiBmaXJzdCBzbyB0aGF0IHdlIGNhbiBiYWlsIG91dCBpZiB3ZQotCQkgKiBmYWls LgorCQkgKiBGQkMgZG9lcyBub3Qgd29yayBvbiBzb21lIHBsYXRmb3JtcyBmb3Igcm90YXRlZAor CQkgKiBwbGFuZXMsIHNvIGRpc2FibGUgaXQgd2hlbiByb3RhdGlvbiBpcyBub3QgMCBhbmQKKwkJ ICogdXBkYXRlIGl0IHdoZW4gcm90YXRpb24gaXMgc2V0IGJhY2sgdG8gMC4KKwkJICoKKwkJICog RklYTUU6IFRoaXMgaXMgcmVkdW5kYW50IHdpdGggdGhlIGZiYyB1cGRhdGUgZG9uZSBpbgorCQkg KiB0aGUgcHJpbWFyeSBwbGFuZSBlbmFibGUgZnVuY3Rpb24gZXhjZXB0IHRoYXQgdGhhdAorCQkg KiBvbmUgaXMgZG9uZSB0b28gbGF0ZS4gV2UgZXZlbnR1YWxseSBuZWVkIHRvIHVuaWZ5CisJCSAq IHRoaXMuCiAJCSAqLwotCQlpZiAocGxhbmUtPmZiICE9IGZiKSB7Ci0JCQlyZXQgPSBpbnRlbF9w aW5fYW5kX2ZlbmNlX2ZiX29iaihkZXYsIG9iaiwgTlVMTCk7Ci0JCQlpZiAocmV0KSB7Ci0JCQkJ bXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JCQkJcmV0dXJuIHJldDsKLQkJCX0K KwkJaWYgKGludGVsX2NydGMtPnByaW1hcnlfZW5hYmxlZCAmJgorCQkgICAgSU5URUxfSU5GTyhk ZXYpLT5nZW4gPD0gNCAmJiAhSVNfRzRYKGRldikgJiYKKwkJICAgIGRldl9wcml2LT5mYmMucGxh bmUgPT0gaW50ZWxfY3J0Yy0+cGxhbmUgJiYKKwkJICAgIGludGVsX3BsYW5lLT5yb3RhdGlvbiAh PSBCSVQoRFJNX1JPVEFURV8wKSkgeworCQkJaW50ZWxfZGlzYWJsZV9mYmMoZGV2KTsKIAkJfQog Ci0JCWk5MTVfZ2VtX3RyYWNrX2ZiKG9sZF9vYmosIG9iaiwKLQkJCQkgIElOVEVMX0ZST05UQlVG RkVSX1BSSU1BUlkoaW50ZWxfY3J0Yy0+cGlwZSkpOwotCi0JCWlmIChpbnRlbF9jcnRjLT5wcmlt YXJ5X2VuYWJsZWQpCi0JCQlpbnRlbF9kaXNhYmxlX3ByaW1hcnlfaHdfcGxhbmUocGxhbmUsIGNy dGMpOworCQlpZiAoc3RhdGUtPnZpc2libGUpIHsKKwkJCWludCB3YXNfZW5hYmxlZCA9IGludGVs X2NydGMtPnByaW1hcnlfZW5hYmxlZDsKIAorCQkJLyogRklYTUU6IGtpbGwgdGhpcyBmYXN0Ym9v dCBoYWNrICovCisJCQlpbnRlbF91cGRhdGVfcGlwZV9zaXplKGludGVsX2NydGMpOwogCi0JCWlm IChwbGFuZS0+ZmIgIT0gZmIpCi0JCQlpZiAocGxhbmUtPmZiKQotCQkJCWludGVsX3VucGluX2Zi X29iaihvbGRfb2JqKTsKKwkJCWludGVsX2NydGMtPnByaW1hcnlfZW5hYmxlZCA9IHRydWU7CiAK LQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJCQlkZXZfcHJpdi0+ZGlzcGxh eS51cGRhdGVfcHJpbWFyeV9wbGFuZShjcnRjLCBwbGFuZS0+ZmIsCisJCQkJCWNydGMtPngsIGNy dGMtPnkpOwogCi0JfSBlbHNlIHsKLQkJaWYgKGludGVsX2NydGMgJiYgaW50ZWxfY3J0Yy0+YWN0 aXZlICYmCi0JCSAgICBpbnRlbF9jcnRjLT5wcmltYXJ5X2VuYWJsZWQpIHsKKwkJCWlmIChJU19C Uk9BRFdFTEwoZGV2KSAmJiB3YXNfZW5hYmxlZCkKKwkJCQlpbnRlbF93YWl0X2Zvcl92Ymxhbmso ZGV2LCBpbnRlbF9jcnRjLT5waXBlKTsKKwkJfSBlbHNlIHsKIAkJCS8qCi0JCQkgKiBGQkMgZG9l cyBub3Qgd29yayBvbiBzb21lIHBsYXRmb3JtcyBmb3Igcm90YXRlZAotCQkJICogcGxhbmVzLCBz byBkaXNhYmxlIGl0IHdoZW4gcm90YXRpb24gaXMgbm90IDAgYW5kCi0JCQkgKiB1cGRhdGUgaXQg d2hlbiByb3RhdGlvbiBpcyBzZXQgYmFjayB0byAwLgotCQkJICoKLQkJCSAqIEZJWE1FOiBUaGlz IGlzIHJlZHVuZGFudCB3aXRoIHRoZSBmYmMgdXBkYXRlIGRvbmUgaW4KLQkJCSAqIHRoZSBwcmlt YXJ5IHBsYW5lIGVuYWJsZSBmdW5jdGlvbiBleGNlcHQgdGhhdCB0aGF0Ci0JCQkgKiBvbmUgaXMg ZG9uZSB0b28gbGF0ZS4gV2UgZXZlbnR1YWxseSBuZWVkIHRvIHVuaWZ5Ci0JCQkgKiB0aGlzLgor CQkJICogSWYgY2xpcHBpbmcgcmVzdWx0cyBpbiBhIG5vbi12aXNpYmxlIHByaW1hcnkgcGxhbmUs CisJCQkgKiB3ZSdsbCBkaXNhYmxlIHRoZSBwcmltYXJ5IHBsYW5lLiAgTm90ZSB0aGF0IHRoaXMg aXMKKwkJCSAqIGEgYml0IGRpZmZlcmVudCB0aGFuIHdoYXQgaGFwcGVucyBpZiB1c2Vyc3BhY2UK KwkJCSAqIGV4cGxpY2l0bHkgZGlzYWJsZXMgdGhlIHBsYW5lIGJ5IHBhc3NpbmcgZmI9MAorCQkJ ICogYmVjYXVzZSBwbGFuZS0+ZmIgc3RpbGwgZ2V0cyBzZXQgYW5kIHBpbm5lZC4KIAkJCSAqLwot CQkJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDw9IDQgJiYgIUlTX0c0WChkZXYpICYmCi0JCQkg ICAgZGV2X3ByaXYtPmZiYy5wbGFuZSA9PSBpbnRlbF9jcnRjLT5wbGFuZSAmJgotCQkJICAgIGlu dGVsX3BsYW5lLT5yb3RhdGlvbiAhPSBCSVQoRFJNX1JPVEFURV8wKSkgewotCQkJCWludGVsX2Rp c2FibGVfZmJjKGRldik7Ci0JCQl9CisJCQlpbnRlbF9kaXNhYmxlX3ByaW1hcnlfaHdfcGxhbmUo cGxhbmUsIGNydGMpOwogCQl9Ci0JCXJldCA9IGludGVsX3BpcGVfc2V0X2Jhc2UoY3J0Yywgc3Jj LT54MSwgc3JjLT55MSwgZmIpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKIAotCQlpZiAo IWludGVsX2NydGMtPnByaW1hcnlfZW5hYmxlZCkKLQkJCWludGVsX2VuYWJsZV9wcmltYXJ5X2h3 X3BsYW5lKHBsYW5lLCBjcnRjKTsKKwkJaW50ZWxfZnJvbnRidWZmZXJfZmxpcChkZXYsIElOVEVM X0ZST05UQlVGRkVSX1BSSU1BUlkocGlwZSkpOworCisJCW11dGV4X2xvY2soJmRldi0+c3RydWN0 X211dGV4KTsKKwkJaW50ZWxfdXBkYXRlX2ZiYyhkZXYpOworCQltdXRleF91bmxvY2soJmRldi0+ c3RydWN0X211dGV4KTsKIAl9CiAKLQlpbnRlbF9wbGFuZS0+Y3J0Y194ID0gc3RhdGUtPm9yaWdf ZHN0LngxOwotCWludGVsX3BsYW5lLT5jcnRjX3kgPSBzdGF0ZS0+b3JpZ19kc3QueTE7Ci0JaW50 ZWxfcGxhbmUtPmNydGNfdyA9IGRybV9yZWN0X3dpZHRoKCZzdGF0ZS0+b3JpZ19kc3QpOwotCWlu dGVsX3BsYW5lLT5jcnRjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnN0YXRlLT5vcmlnX2RzdCk7Ci0J aW50ZWxfcGxhbmUtPnNyY194ID0gc3RhdGUtPm9yaWdfc3JjLngxOwotCWludGVsX3BsYW5lLT5z cmNfeSA9IHN0YXRlLT5vcmlnX3NyYy55MTsKLQlpbnRlbF9wbGFuZS0+c3JjX3cgPSBkcm1fcmVj dF93aWR0aCgmc3RhdGUtPm9yaWdfc3JjKTsKLQlpbnRlbF9wbGFuZS0+c3JjX2ggPSBkcm1fcmVj dF9oZWlnaHQoJnN0YXRlLT5vcmlnX3NyYyk7Ci0JaW50ZWxfcGxhbmUtPm9iaiA9IG9iajsKKwlp ZiAob2xkX2ZiICYmIG9sZF9mYiAhPSBmYikgeworCQlpZiAoaW50ZWxfY3J0Yy0+YWN0aXZlKQor CQkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldiwgaW50ZWxfY3J0Yy0+cGlwZSk7CisKKwkJbXV0 ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCQlpbnRlbF91bnBpbl9mYl9vYmoob2xkX29i aik7CisJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCX0KIAogCXJldHVybiAw OwogfQotLSAKMS45LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==