From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v2 16/17] drm/i915: Split out load time HW initialization Date: Fri, 11 Mar 2016 18:31:41 +0200 Message-ID: <1457713902-2425-17-git-send-email-imre.deak@intel.com> References: <1457713902-2425-1-git-send-email-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 771436EB23 for ; Fri, 11 Mar 2016 16:32:09 +0000 (UTC) In-Reply-To: <1457713902-2425-1-git-send-email-imre.deak@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 QWNjb3JkaW5nIHRvIHRoZSBuZXcgaW5pdCBwaGFzZXMgc2NoZW1lIHdlIHNob3VsZCBoYXZlIGEg ZGVmaW5pdGUgc3RlcAppbiB0aGUgaW5pdCBzZXF1ZW5jZSB3aGVyZSB3ZSBzZXR1cCB0aGluZ3Mg cmVxdWlyaW5nIGFjY2Vzc2luZyB0aGUKZGV2aWNlLCBzbyBtb3ZlIHRoZSBjb3JyZXNwb25kaW5n IGNvZGUgdG8gc2VwYXJhdGUgZnVuY3Rpb24uIFRoZSBzdGVwcwppbiB0aGlzIGluaXQgcGhhc2Ug c2hvdWxkIGF2b2lkIGV4cG9zaW5nIHRoZSBkcml2ZXIgdmlhIHNvbWUgaW50ZXJmYWNlLAp3aGlj aCBpcyBkb25lIGluIHRoZSBsYXN0IHJlZ2lzdHJhdGlvbiBpbml0IHBoYXNlLiBUaGlzIGNoYW5n YWUgYWxzbwpoYXMgdGhlIGJlbmVmaXQgb2YgbWFraW5nIHRoZSBlcnJvciBwYXRoIGNsZWFuZXIg Ym90aCBpbiB0aGUgbmV3CmZ1bmN0aW9uIGFuZCBpOTE1X2RyaXZlcl9sb2FkKCkvdW5sb2FkKCku CgpObyBmdW5jdGlvbmFsIGNoYW5nZS4KClN1Z2dlc3RlZCBieSBDaHJpcy4KCkNDOiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFr IDxpbXJlLmRlYWtAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1h LmMgfCAxMjIgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RtYS5jCmluZGV4IGFiOTc0MDQuLmFhZjFiMTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZG1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEu YwpAQCAtMTA5NSw0NSArMTA5NSwyMyBAQCBzdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl9jbGVhbnVw X21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogfQogCiAvKioKLSAqIGk5 MTVfZHJpdmVyX2xvYWQgLSBzZXR1cCBjaGlwIGFuZCBjcmVhdGUgYW4gaW5pdGlhbCBjb25maWcK LSAqIEBkZXY6IERSTSBkZXZpY2UKLSAqIEBmbGFnczogc3RhcnR1cCBmbGFncworICogaTkxNV9k cml2ZXJfaW5pdF9odyAtIHNldHVwIHN0YXRlIHJlcXVpcmluZyBkZXZpY2UgYWNjZXNzCisgKiBA ZGV2X3ByaXY6IGRldmljZSBwcml2YXRlCiAgKgotICogVGhlIGRyaXZlciBsb2FkIHJvdXRpbmUg aGFzIHRvIGRvIHNldmVyYWwgdGhpbmdzOgotICogICAtIGRyaXZlIG91dHB1dCBkaXNjb3Zlcnkg dmlhIGludGVsX21vZGVzZXRfaW5pdCgpCi0gKiAgIC0gaW5pdGlhbGl6ZSB0aGUgbWVtb3J5IG1h bmFnZXIKLSAqICAgLSBhbGxvY2F0ZSBpbml0aWFsIGNvbmZpZyBtZW1vcnkKLSAqICAgLSBzZXR1 cCB0aGUgRFJNIGZyYW1lYnVmZmVyIHdpdGggdGhlIGFsbG9jYXRlZCBtZW1vcnkKKyAqIFNldHVw IHN0YXRlIHRoYXQgcmVxdWlyZXMgYWNjZXNzaW5nIHRoZSBkZXZpY2UsIGJ1dCBkb2Vzbid0IHJl cXVpcmUKKyAqIGV4cG9zaW5nIHRoZSBkcml2ZXIgdmlhIGtlcm5lbCBpbnRlcm5hbCBvciB1c2Vy c3BhY2UgaW50ZXJmYWNlcy4KICAqLwotaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKK3N0YXRpYyBpbnQgaTkxNV9kcml2ZXJf aW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2OwotCWludCByZXQgPSAwOworCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2OwogCXVpbnQzMl90IGFwZXJ0dXJlX3NpemU7Ci0KLQlk ZXZfcHJpdiA9IGt6YWxsb2Moc2l6ZW9mKCpkZXZfcHJpdiksIEdGUF9LRVJORUwpOwotCWlmIChk ZXZfcHJpdiA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWRldi0+ZGV2X3ByaXZhdGUg PSBkZXZfcHJpdjsKLQotCXJldCA9IGk5MTVfZHJpdmVyX2luaXRfZWFybHkoZGV2X3ByaXYsIGRl diwKLQkJCQkgICAgIChzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKilmbGFncyk7Ci0KLQlpZiAo cmV0IDwgMCkKLQkJZ290byBvdXRfZnJlZV9wcml2OwotCi0JaW50ZWxfcnVudGltZV9wbV9nZXQo ZGV2X3ByaXYpOwotCi0JcmV0ID0gaTkxNV9kcml2ZXJfaW5pdF9tbWlvKGRldl9wcml2KTsKLQlp ZiAocmV0IDwgMCkKLQkJZ290byBvdXRfcnVudGltZV9wbV9wdXQ7CisJaW50IHJldDsKIAogCWlu dGVsX2RldmljZV9pbmZvX3J1bnRpbWVfaW5pdChkZXYpOwogCiAJcmV0ID0gaTkxNV9nZW1fZ3R0 X2luaXQoZGV2KTsKIAlpZiAocmV0KQotCQlnb3RvIG91dF9jbGVhbnVwX21taW87CisJCXJldHVy biByZXQ7CiAKIAkvKiBXQVJOSU5HOiBBcHBhcmVudGx5IHdlIG11c3Qga2ljayBmYmRldiBkcml2 ZXJzIGJlZm9yZSB2Z2Fjb24sCiAJICogb3RoZXJ3aXNlIHRoZSB2Z2EgZmJkZXYgZHJpdmVyIGZh bGxzIG92ZXIuICovCkBAIC0xMjA1LDEwICsxMTgzLDczIEBAIGludCBpOTE1X2RyaXZlcl9sb2Fk KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiAJCQlEUk1fREVC VUdfRFJJVkVSKCJjYW4ndCBlbmFibGUgTVNJIik7CiAJfQogCisJcmV0dXJuIDA7CisKK291dF9n dHQ6CisJaTkxNV9nbG9iYWxfZ3R0X2NsZWFudXAoZGV2KTsKKworCXJldHVybiByZXQ7Cit9CisK Ky8qKgorICogaTkxNV9kcml2ZXJfY2xlYW51cF9odyAtIGNsZWFudXAgdGhlIHNldHVwIGRvbmUg aW4gaTkxNV9kcml2ZXJfaW5pdF9odygpCisgKiBAZGV2X3ByaXY6IGRldmljZSBwcml2YXRlCisg Ki8KK3N0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX2NsZWFudXBfaHcoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ ZGV2OworCisJaWYgKGRldi0+cGRldi0+bXNpX2VuYWJsZWQpCisJCXBjaV9kaXNhYmxlX21zaShk ZXYtPnBkZXYpOworCisJcG1fcW9zX3JlbW92ZV9yZXF1ZXN0KCZkZXZfcHJpdi0+cG1fcW9zKTsK KwlhcmNoX3BoeXNfd2NfZGVsKGRldl9wcml2LT5ndHQubXRycik7CisJaW9fbWFwcGluZ19mcmVl KGRldl9wcml2LT5ndHQubWFwcGFibGUpOworCWk5MTVfZ2xvYmFsX2d0dF9jbGVhbnVwKGRldik7 Cit9CisKKy8qKgorICogaTkxNV9kcml2ZXJfbG9hZCAtIHNldHVwIGNoaXAgYW5kIGNyZWF0ZSBh biBpbml0aWFsIGNvbmZpZworICogQGRldjogRFJNIGRldmljZQorICogQGZsYWdzOiBzdGFydHVw IGZsYWdzCisgKgorICogVGhlIGRyaXZlciBsb2FkIHJvdXRpbmUgaGFzIHRvIGRvIHNldmVyYWwg dGhpbmdzOgorICogICAtIGRyaXZlIG91dHB1dCBkaXNjb3ZlcnkgdmlhIGludGVsX21vZGVzZXRf aW5pdCgpCisgKiAgIC0gaW5pdGlhbGl6ZSB0aGUgbWVtb3J5IG1hbmFnZXIKKyAqICAgLSBhbGxv Y2F0ZSBpbml0aWFsIGNvbmZpZyBtZW1vcnkKKyAqICAgLSBzZXR1cCB0aGUgRFJNIGZyYW1lYnVm ZmVyIHdpdGggdGhlIGFsbG9jYXRlZCBtZW1vcnkKKyAqLworaW50IGk5MTVfZHJpdmVyX2xvYWQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKK3sKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXY7CisJaW50IHJldCA9IDA7CisKKwlkZXZfcHJpdiA9 IGt6YWxsb2Moc2l6ZW9mKCpkZXZfcHJpdiksIEdGUF9LRVJORUwpOworCWlmIChkZXZfcHJpdiA9 PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWRldi0+ZGV2X3ByaXZhdGUgPSBkZXZfcHJp djsKKworCXJldCA9IGk5MTVfZHJpdmVyX2luaXRfZWFybHkoZGV2X3ByaXYsIGRldiwKKwkJCQkg ICAgIChzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKilmbGFncyk7CisKKwlpZiAocmV0IDwgMCkK KwkJZ290byBvdXRfZnJlZV9wcml2OworCisJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYp OworCisJcmV0ID0gaTkxNV9kcml2ZXJfaW5pdF9tbWlvKGRldl9wcml2KTsKKwlpZiAocmV0IDwg MCkKKwkJZ290byBvdXRfcnVudGltZV9wbV9wdXQ7CisKKwlyZXQgPSBpOTE1X2RyaXZlcl9pbml0 X2h3KGRldl9wcml2KTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXRfY2xlYW51cF9tbWlvOwor CiAJaWYgKElOVEVMX0lORk8oZGV2KS0+bnVtX3BpcGVzKSB7CiAJCXJldCA9IGRybV92Ymxhbmtf aW5pdChkZXYsIElOVEVMX0lORk8oZGV2KS0+bnVtX3BpcGVzKTsKIAkJaWYgKHJldCkKLQkJCWdv dG8gb3V0X2Rpc2FibGVfbXNpOworCQkJZ290byBvdXRfY2xlYW51cF9odzsKIAl9CiAKIAlyZXQg PSBpOTE1X2xvYWRfbW9kZXNldF9pbml0KGRldik7CkBAIC0xMjQ3LDE1ICsxMjg4LDggQEAgaW50 IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBm bGFncykKIG91dF9wb3dlcl93ZWxsOgogCWludGVsX3Bvd2VyX2RvbWFpbnNfZmluaShkZXZfcHJp dik7CiAJZHJtX3ZibGFua19jbGVhbnVwKGRldik7Ci1vdXRfZGlzYWJsZV9tc2k6Ci0JaWYgKGRl di0+cGRldi0+bXNpX2VuYWJsZWQpCi0JCXBjaV9kaXNhYmxlX21zaShkZXYtPnBkZXYpOwotCi0J cG1fcW9zX3JlbW92ZV9yZXF1ZXN0KCZkZXZfcHJpdi0+cG1fcW9zKTsKLQlhcmNoX3BoeXNfd2Nf ZGVsKGRldl9wcml2LT5ndHQubXRycik7Ci0JaW9fbWFwcGluZ19mcmVlKGRldl9wcml2LT5ndHQu bWFwcGFibGUpOwotb3V0X2d0dDoKLQlpOTE1X2dsb2JhbF9ndHRfY2xlYW51cChkZXYpOworb3V0 X2NsZWFudXBfaHc6CisJaTkxNV9kcml2ZXJfY2xlYW51cF9odyhkZXZfcHJpdik7CiBvdXRfY2xl YW51cF9tbWlvOgogCWk5MTVfZHJpdmVyX2NsZWFudXBfbW1pbyhkZXZfcHJpdik7CiBvdXRfcnVu dGltZV9wbV9wdXQ6CkBAIC0xMzMxLDEzICsxMzY1LDcgQEAgaW50IGk5MTVfZHJpdmVyX3VubG9h ZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJaW50ZWxfcG93ZXJfZG9tYWluc19maW5pKGRl dl9wcml2KTsKIAotCWlmIChkZXYtPnBkZXYtPm1zaV9lbmFibGVkKQotCQlwY2lfZGlzYWJsZV9t c2koZGV2LT5wZGV2KTsKLQlwbV9xb3NfcmVtb3ZlX3JlcXVlc3QoJmRldl9wcml2LT5wbV9xb3Mp OwotCWFyY2hfcGh5c193Y19kZWwoZGV2X3ByaXYtPmd0dC5tdHJyKTsKLQlpb19tYXBwaW5nX2Zy ZWUoZGV2X3ByaXYtPmd0dC5tYXBwYWJsZSk7Ci0JaTkxNV9nbG9iYWxfZ3R0X2NsZWFudXAoZGV2 KTsKLQorCWk5MTVfZHJpdmVyX2NsZWFudXBfaHcoZGV2X3ByaXYpOwogCWk5MTVfZHJpdmVyX2Ns ZWFudXBfbW1pbyhkZXZfcHJpdik7CiAKIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJp diwgUE9XRVJfRE9NQUlOX0lOSVQpOwotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=