From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: [PATCH 06/12] drm/i915/bdw: Add 4 level switching infrastructure Date: Fri, 20 Feb 2015 17:46:00 +0000 Message-ID: <1424454366-19006-7-git-send-email-michel.thierry@intel.com> References: <1424454366-19006-1-git-send-email-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 454CF6E70B for ; Fri, 20 Feb 2015 09:46:45 -0800 (PST) In-Reply-To: <1424454366-19006-1-git-send-email-michel.thierry@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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQmVuIFdpZGF3c2t5IDxiZW5qYW1pbi53aWRhd3NreUBpbnRlbC5jb20+CgpNYXAgaXMg ZWFzeSwgaXQncyB0aGUgc2FtZSByZWdpc3RlciBhcyB0aGUgUERQIGRlc2NyaXB0b3IgMCwgYnV0 IGl0IG9ubHkKaGFzIG9uZSBlbnRyeS4KCnYyOiBQTUw0IHVwZGF0ZSBpbiBsZWdhY3kgY29udGV4 dCBzd2l0Y2ggaXMgbGVmdCBmb3IgaGlzdG9yaWMgcmVhc29ucywKdGhlIHByZWZlcnJlZCBtb2Rl IG9mIG9wZXJhdGlvbiBpcyB3aXRoIGxyYyBjb250ZXh0IGJhc2VkIHN1Ym1pc3Npb24uCgpTaWdu ZWQtb2ZmLWJ5OiBCZW4gV2lkYXdza3kgPGJlbkBid2lkYXdzay5uZXQ+ClNpZ25lZC1vZmYtYnk6 IE1pY2hlbCBUaGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgfCA1NiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCB8ICA0ICsr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgfCAgMSArCiAzIGZpbGVzIGNo YW5nZWQsIDU1IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYwppbmRleCBlZGFkYTMzLi5mYjA2ZjY3IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYwpAQCAtMTkyLDYgKzE5Miw5IEBAIHN0YXRpYyBpbmxpbmUgZ2VuOF9wcGd0 dF9wZGVfdCBnZW44X3BkZV9lbmNvZGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlyZXR1cm4g cGRlOwogfQogCisjZGVmaW5lIGdlbjhfcGRwZV9lbmNvZGUgZ2VuOF9wZGVfZW5jb2RlCisjZGVm aW5lIGdlbjhfcG1sNGVfZW5jb2RlIGdlbjhfcGRlX2VuY29kZQorCiBzdGF0aWMgZ2VuNl9ndHRf cHRlX3Qgc25iX3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBhZGRyLAogCQkJCSAgICAgZW51bSBpOTE1 X2NhY2hlX2xldmVsIGxldmVsLAogCQkJCSAgICAgYm9vbCB2YWxpZCwgdTMyIHVudXNlZCkKQEAg LTU5Miw4ICs1OTUsOCBAQCBzdGF0aWMgaW50IGdlbjhfd3JpdGVfcGRwKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZ2VuOF9tbV9zd2l0 Y2goc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAotCQkJICBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKQorc3RhdGljIGludCBnZW44X2xlZ2FjeV9tbV9zd2l0Y2goc3RydWN0IGk5MTVf aHdfcHBndHQgKnBwZ3R0LAorCQkJCSBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogewog CWludCBpLCByZXQ7CiAKQEAgLTYxMCw2ICs2MTMsMTIgQEAgc3RhdGljIGludCBnZW44X21tX3N3 aXRjaChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRp YyBpbnQgZ2VuOF80OGJfbW1fc3dpdGNoKHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCwKKwkJ CSAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCit7CisJcmV0dXJuIGdlbjhfd3Jp dGVfcGRwKHJpbmcsIDAsIHBwZ3R0LT5wbWw0LmRhZGRyKTsKK30KKwogc3RhdGljIHZvaWQgZ2Vu OF9wcGd0dF9jbGVhcl9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAkJCQkg ICB1aW50NjRfdCBzdGFydCwKIAkJCQkgICB1aW50NjRfdCBsZW5ndGgsCkBAIC03NTMsNiArNzYy LDM3IEBAIHN0YXRpYyB2b2lkIGdlbjhfbWFwX3BhZ2V0YWJsZV9yYW5nZShzdHJ1Y3QgaTkxNV9h ZGRyZXNzX3NwYWNlICp2bSwKIAlrdW5tYXBfYXRvbWljKHBhZ2VfZGlyZWN0b3J5KTsKIH0KIAor c3RhdGljIHZvaWQgZ2VuOF9tYXBfcGFnZV9kaXJlY3Rvcnkoc3RydWN0IGk5MTVfcGFnZV9kaXJl Y3RvcnlfcG9pbnRlcl9lbnRyeSAqcGRwLAorCQkJCSAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVj dG9yeV9lbnRyeSAqcGQsCisJCQkJICAgIGludCBpbmRleCwKKwkJCQkgICAgc3RydWN0IGRybV9k ZXZpY2UgKmRldikKK3sKKwlnZW44X3BwZ3R0X3BkcGVfdCAqcGFnZV9kaXJlY3RvcnlwbzsKKwln ZW44X3BwZ3R0X3BkcGVfdCBwZHBlOworCisJLyogV2UgZG8gbm90IG5lZWQgdG8gY2xmbHVzaCBi ZWNhdXNlIG5vIHBsYXRmb3JtIHJlcXVpcmluZyBmbHVzaAorCSAqIHN1cHBvcnRzIDY0YiBwYWdl dGFibGVzLiAqLworCWlmICghVVNFU19GVUxMXzQ4QklUX1BQR1RUKGRldikpCisJCXJldHVybjsK KworCXBhZ2VfZGlyZWN0b3J5cG8gPSBrbWFwX2F0b21pYyhwZHAtPnBhZ2UpOworCXBkcGUgPSBn ZW44X3BkcGVfZW5jb2RlKGRldiwgcGQtPmRhZGRyLCBJOTE1X0NBQ0hFX0xMQyk7CisJcGFnZV9k aXJlY3Rvcnlwb1tpbmRleF0gPSBwZHBlOworCWt1bm1hcF9hdG9taWMocGFnZV9kaXJlY3Rvcnlw byk7Cit9CisKK3N0YXRpYyB2b2lkIGdlbjhfbWFwX3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXIoc3Ry dWN0IGk5MTVfcG1sNCAqcG1sNCwKKwkJCQkJICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5 X3BvaW50ZXJfZW50cnkgKnBkcCwKKwkJCQkJICAgIGludCBpbmRleCwKKwkJCQkJICAgIHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCit7CisJZ2VuOF9wcGd0dF9wbWw0ZV90ICpwYWdlbWFwID0ga21h cF9hdG9taWMocG1sNC0+cGFnZSk7CisJZ2VuOF9wcGd0dF9wbWw0ZV90IHBtbDRlID0gZ2VuOF9w bWw0ZV9lbmNvZGUoZGV2LCBwZHAtPmRhZGRyLCBJOTE1X0NBQ0hFX0xMQyk7CisJQlVHX09OKCFV U0VTX0ZVTExfNDhCSVRfUFBHVFQoZGV2KSk7CisJcGFnZW1hcFtpbmRleF0gPSBwbWw0ZTsKKwlr dW5tYXBfYXRvbWljKHBhZ2VtYXApOworfQorCiBzdGF0aWMgdm9pZCBnZW44X2ZyZWVfcGFnZV90 YWJsZXMoc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnlfZW50cnkgKnBkLCBzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogewogCWludCBpOwpAQCAtMTEyNCw2ICsxMTY0LDcgQEAgc3RhdGljIGludCBn ZW44X2FsbG9jX3ZhX3JhbmdlXzNsdmwoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAK IAkJc2V0X2JpdChwZHBlLCBwZHAtPnVzZWRfcGRwZXMpOwogCQlnZW44X21hcF9wYWdldGFibGVf cmFuZ2Uodm0sIHBkLCBzdGFydCwgbGVuZ3RoKTsKKwkJZ2VuOF9tYXBfcGFnZV9kaXJlY3Rvcnko cGRwLCBwZCwgcGRwZSwgZGV2KTsKIAl9CiAKIAlmcmVlX2dlbjhfdGVtcF9iaXRtYXBzKG5ld19w YWdlX2RpcnMsIG5ld19wYWdlX3RhYmxlcywgcGRwZXMpOwpAQCAtMTE5Miw2ICsxMjMzLDggQEAg c3RhdGljIGludCBnZW44X2FsbG9jX3ZhX3JhbmdlXzRsdmwoc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm0sCiAJCXJldCA9IGdlbjhfYWxsb2NfdmFfcmFuZ2VfM2x2bCh2bSwgcGRwLCBzdGFy dCwgbGVuZ3RoKTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gZXJyX291dDsKKworCQlnZW44X21hcF9w YWdlX2RpcmVjdG9yeV9wb2ludGVyKHBtbDQsIHBkcCwgcG1sNGUsIHZtLT5kZXYpOwogCX0KIAog CWJpdG1hcF9vcihwbWw0LT51c2VkX3BtbDRlcywgbmV3X3BkcHMsIHBtbDQtPnVzZWRfcG1sNGVz LApAQCAtMTI1MSwxNCArMTI5NCwxNCBAQCBzdGF0aWMgaW50IGdlbjhfcHBndHRfaW5pdF9jb21t b24oc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LCB1aW50NjRfdCBzaXplKQogCXBwZ3R0LT5i YXNlLmNsZWFudXAgPSBnZW44X3BwZ3R0X2NsZWFudXA7CiAJcHBndHQtPmJhc2UuaW5zZXJ0X2Vu dHJpZXMgPSBnZW44X3BwZ3R0X2luc2VydF9lbnRyaWVzOwogCi0JcHBndHQtPnN3aXRjaF9tbSA9 IGdlbjhfbW1fc3dpdGNoOwotCiAJaWYgKFVTRVNfRlVMTF80OEJJVF9QUEdUVChwcGd0dC0+YmFz ZS5kZXYpKSB7CiAJCWludCByZXQgPSBwbWw0X2luaXQocHBndHQpOwogCQlpZiAocmV0KSB7CiAJ CQl1bm1hcF9hbmRfZnJlZV9wdChwcGd0dC0+c2NyYXRjaF9wZCwgcHBndHQtPmJhc2UuZGV2KTsK IAkJCXJldHVybiByZXQ7CiAJCX0KKworCQlwcGd0dC0+c3dpdGNoX21tID0gZ2VuOF80OGJfbW1f c3dpdGNoOwogCX0gZWxzZSB7CiAJCWludCByZXQgPSBfX3BkcF9pbml0KCZwcGd0dC0+cGRwLCBm YWxzZSk7CiAJCWlmIChyZXQpIHsKQEAgLTEyNjYsNiArMTMwOSw3IEBAIHN0YXRpYyBpbnQgZ2Vu OF9wcGd0dF9pbml0X2NvbW1vbihzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsIHVpbnQ2NF90 IHNpemUpCiAJCQlyZXR1cm4gcmV0OwogCQl9CiAKKwkJcHBndHQtPnN3aXRjaF9tbSA9IGdlbjhf bGVnYWN5X21tX3N3aXRjaDsKIAkJdHJhY2VfaTkxNV9wYWdlX2RpcmVjdG9yeV9wb2ludGVyX2Vu dHJ5X2FsbG9jKCZwcGd0dC0+YmFzZSwgMCwgMCwgR0VOOF9QTUw0RV9TSElGVCk7CiAJfQogCkBA IC0xMjk1LDYgKzEzMzksNyBAQCBzdGF0aWMgaW50IGdlbjhfYWxpYXNpbmdfcHBndHRfaW5pdChz dHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCiAJCXJldHVybiByZXQ7CiAJfQogCisJLyogRklY TUU6IFBNTDQgKi8KIAlnZW44X2Zvcl9lYWNoX3BkcGUocGQsIHBkcCwgc3RhcnQsIHNpemUsIHRl bXAsIHBkcGUpCiAJCWdlbjhfbWFwX3BhZ2V0YWJsZV9yYW5nZSgmcHBndHQtPmJhc2UsIHBkLHN0 YXJ0LCBzaXplKTsKIApAQCAtMTUwMCw4ICsxNTQ1LDkgQEAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0 dF9lbmFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpbnQgajsKIAogCWZvcl9lYWNoX3Jp bmcocmluZywgZGV2X3ByaXYsIGopIHsKKwkJdTMyIGZvdXJfbGV2ZWwgPSBVU0VTX0ZVTExfNDhC SVRfUFBHVFQoZGV2KSA/IEdFTjhfR0ZYX1BQR1RUXzY0QiA6IDA7CiAJCUk5MTVfV1JJVEUoUklO R19NT0RFX0dFTjcocmluZyksCi0JCQkgICBfTUFTS0VEX0JJVF9FTkFCTEUoR0ZYX1BQR1RUX0VO QUJMRSkpOworCQkJICAgX01BU0tFRF9CSVRfRU5BQkxFKEdGWF9QUEdUVF9FTkFCTEUgfCBmb3Vy X2xldmVsKSk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCmluZGV4IDE0 NzdmNTQuLjFmNGNkYjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCkBAIC0zOCw3 ICszOCw5IEBAIHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGU7CiAKIHR5cGVkZWYgdWludDMy X3QgZ2VuNl9ndHRfcHRlX3Q7CiB0eXBlZGVmIHVpbnQ2NF90IGdlbjhfZ3R0X3B0ZV90OwotdHlw ZWRlZiBnZW44X2d0dF9wdGVfdCBnZW44X3BwZ3R0X3BkZV90OwordHlwZWRlZiBnZW44X2d0dF9w dGVfdAkJZ2VuOF9wcGd0dF9wZGVfdDsKK3R5cGVkZWYgZ2VuOF9wcGd0dF9wZGVfdAlnZW44X3Bw Z3R0X3BkcGVfdDsKK3R5cGVkZWYgZ2VuOF9wcGd0dF9wZHBlX3QJZ2VuOF9wcGd0dF9wbWw0ZV90 OwogCiAjZGVmaW5lIGd0dF90b3RhbF9lbnRyaWVzKGd0dCkgKChndHQpLmJhc2UudG90YWwgPj4g UEFHRV9TSElGVCkKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggMWRjOTFkZS4uMzA1ZTVi NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBAIC0xMzM4LDYgKzEzMzgsNyBAQCBlbnVtIHNr bF9kaXNwX3Bvd2VyX3dlbGxzIHsKICNkZWZpbmUgICBHRlhfUkVQTEFZX01PREUJCSgxPDwxMSkK ICNkZWZpbmUgICBHRlhfUFNNSV9HUkFOVUxBUklUWQkJKDE8PDEwKQogI2RlZmluZSAgIEdGWF9Q UEdUVF9FTkFCTEUJCSgxPDw5KQorI2RlZmluZSAgIEdFTjhfR0ZYX1BQR1RUXzY0QgkJKDE8PDcp CiAKICNkZWZpbmUgVkxWX0RJU1BMQVlfQkFTRSAweDE4MDAwMAogI2RlZmluZSBWTFZfTUlQSV9C QVNFIFZMVl9ESVNQTEFZX0JBU0UKLS0gCjIuMS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=