From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v2 14/17] drm/i915: Split out load time early initialization Date: Fri, 11 Mar 2016 18:31:39 +0200 Message-ID: <1457713902-2425-15-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 3B9C36EB18 for ; Fri, 11 Mar 2016 16:32:05 +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 QWNjb3JkaW5nIHRvIHRoZSBuZXcgaW5pdCBwaGFzZXMgc2NoZW1lIHdlIHNob3VsZCBpbml0aWFs aXplICJTVy1vbmx5IgpzdGF0ZSBub3QgcmVxdWlyaW5nIGFjY2Vzc2luZyB0aGUgZGV2aWNlIGFz IHRoZSB2ZXJ5IGZpcnN0IHN0ZXAsIHNvIHRoYXQKdGhlIHJlYXNvbmluZyBhYm91dCBkZXBlbmRl bmNpZXMgb2YgbGF0ZXIgc3RlcHMgYmVjb21lcyBlYXNpZXIuIFNvIG1vdmUKdGhlc2UgaW5pdCBz dGVwcyBpbnRvIGEgc2VwYXJhdGUgZnVuY3Rpb24uIFRoaXMgYWxzbyBoYXMgdGhlIGJlbmVmaXQg b2YKbWFraW5nIHRoZSBlcnJvciBwYXRoIGNsZWFuZXIgYm90aCBpbiB0aGUgbmV3IGZ1bmN0aW9u IGFuZCBpbnQKaTkxNV9kcml2ZXJfbG9hZCgpL3VubG9hZCgpLgoKTm8gZnVuY3Rpb25hbCBjaGFu Z2UuCgpTdWdnZXN0ZWQgYnkgQ2hyaXMuCgpDQzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13 aWxzb24uY28udWs+ClNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jIHwgMTMwICsrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4MSBpbnNlcnRp b25zKCspLCA0OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwppbmRleCBlMjQ2 NWM2Li45M2U3OTUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKQEAgLTkzMyw2ICs5MzMsODMg QEAgc3RhdGljIHZvaWQgaTkxNV93b3JrcXVldWVzX2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogCWRlc3Ryb3lfd29ya3F1ZXVlKGRldl9wcml2LT53cSk7CiB9CiAK Ky8qKgorICogaTkxNV9kcml2ZXJfaW5pdF9lYXJseSAtIHNldHVwIHN0YXRlIG5vdCByZXF1aXJp bmcgZGV2aWNlIGFjY2VzcworICogQGRldl9wcml2OiBkZXZpY2UgcHJpdmF0ZQorICoKKyAqIElu aXRpYWxpemUgZXZlcnl0aGluZyB0aGF0IGlzIGEgIlNXLW9ubHkiIHN0YXRlLCB0aGF0IGlzIHN0 YXRlIG5vdAorICogcmVxdWlyaW5nIGFjY2Vzc2luZyB0aGUgZGV2aWNlIG9yIGV4cG9zaW5nIHRo ZSBkcml2ZXIgdmlhIGtlcm5lbCBpbnRlcm5hbAorICogb3IgdXNlcnNwYWNlIGludGVyZmFjZXMu IEV4YW1wbGUgc3RlcHMgYmVsb25naW5nIGhlcmU6IGxvY2sgaW5pdGlhbGl6YXRpb24sCisgKiBz eXN0ZW0gbWVtb3J5IGFsbG9jYXRpb24sIHNldHRpbmcgdXAgZGV2aWNlIHNwZWNpZmljIGF0dHJp YnV0ZXMgYW5kCisgKiBmdW5jdGlvbiBob29rcyBub3QgcmVxdWlyaW5nIGFjY2Vzc2luZyB0aGUg ZGV2aWNlLgorICovCitzdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfZWFybHkoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSAgc3RydWN0IGRybV9kZXZpY2UgKmRldiwK KwkJCQkgIHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqaW5mbykKK3sKKwlzdHJ1Y3QgaW50ZWxf ZGV2aWNlX2luZm8gKmRldmljZV9pbmZvOworCWludCByZXQgPSAwOworCisJZGV2X3ByaXYtPmRl diA9IGRldjsKKworCS8qIFNldHVwIHRoZSB3cml0ZS1vbmNlICJjb25zdGFudCIgZGV2aWNlIGlu Zm8gKi8KKwlkZXZpY2VfaW5mbyA9IChzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKikmZGV2X3By aXYtPmluZm87CisJbWVtY3B5KGRldmljZV9pbmZvLCBpbmZvLCBzaXplb2YoZGV2X3ByaXYtPmlu Zm8pKTsKKwlkZXZpY2VfaW5mby0+ZGV2aWNlX2lkID0gZGV2LT5wZGV2LT5kZXZpY2U7CisKKwlz cGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPmlycV9sb2NrKTsKKwlzcGluX2xvY2tfaW5pdCgmZGV2 X3ByaXYtPmdwdV9lcnJvci5sb2NrKTsKKwltdXRleF9pbml0KCZkZXZfcHJpdi0+YmFja2xpZ2h0 X2xvY2spOworCXNwaW5fbG9ja19pbml0KCZkZXZfcHJpdi0+dW5jb3JlLmxvY2spOworCXNwaW5f bG9ja19pbml0KCZkZXZfcHJpdi0+bW0ub2JqZWN0X3N0YXRfbG9jayk7CisJc3Bpbl9sb2NrX2lu aXQoJmRldl9wcml2LT5tbWlvX2ZsaXBfbG9jayk7CisJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPnNi X2xvY2spOworCW11dGV4X2luaXQoJmRldl9wcml2LT5tb2Rlc2V0X3Jlc3RvcmVfbG9jayk7CisJ bXV0ZXhfaW5pdCgmZGV2X3ByaXYtPmF2X211dGV4KTsKKwltdXRleF9pbml0KCZkZXZfcHJpdi0+ d20ud21fbXV0ZXgpOworCW11dGV4X2luaXQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCisJcmV0 ID0gaTkxNV93b3JrcXVldWVzX2luaXQoZGV2X3ByaXYpOworCWlmIChyZXQgPCAwKQorCQlyZXR1 cm4gcmV0OworCisJLyogVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYW55IGNhbGxzIHRvIEhB U19QQ0hfKiAqLworCWludGVsX2RldGVjdF9wY2goZGV2KTsKKworCWludGVsX3BtX3NldHVwKGRl dik7CisJaW50ZWxfaW5pdF9kcGlvKGRldl9wcml2KTsKKwlpbnRlbF9wb3dlcl9kb21haW5zX2lu aXQoZGV2X3ByaXYpOworCWludGVsX2lycV9pbml0KGRldl9wcml2KTsKKwlpbnRlbF9pbml0X2Rp c3BsYXlfaG9va3MoZGV2X3ByaXYpOworCWludGVsX2luaXRfY2xvY2tfZ2F0aW5nX2hvb2tzKGRl dl9wcml2KTsKKwlpbnRlbF9pbml0X2F1ZGlvX2hvb2tzKGRldl9wcml2KTsKKwlpOTE1X2dlbV9s b2FkX2luaXQoZGV2KTsKKworCWludGVsX2Rpc3BsYXlfY3JjX2luaXQoZGV2KTsKKworCWk5MTVf ZHVtcF9kZXZpY2VfaW5mbyhkZXZfcHJpdik7CisKKwkvKiBOb3QgYWxsIHByZS1wcm9kdWN0aW9u IG1hY2hpbmVzIGZhbGwgaW50byB0aGlzIGNhdGVnb3J5LCBvbmx5IHRoZQorCSAqIHZlcnkgZmly c3Qgb25lcy4gQWxtb3N0IGV2ZXJ5dGhpbmcgc2hvdWxkIHdvcmssIGV4Y2VwdCBmb3IgbWF5YmUK KwkgKiBzdXNwZW5kL3Jlc3VtZS4gQW5kIHdlIGRvbid0IGltcGxlbWVudCB3b3JrYXJvdW5kcyB0 aGF0IGFmZmVjdCBvbmx5CisJICogcHJlLXByb2R1Y3Rpb24gbWFjaGluZXMuICovCisJaWYgKElT X0hTV19FQVJMWV9TRFYoZGV2KSkKKwkJRFJNX0lORk8oIlRoaXMgaXMgYW4gZWFybHkgcHJlLXBy b2R1Y3Rpb24gSGFzd2VsbCBtYWNoaW5lLiAiCisJCQkgIkl0IG1heSBub3QgYmUgZnVsbHkgZnVu Y3Rpb25hbC5cbiIpOworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogaTkxNV9kcml2ZXJfY2xl YW51cF9lYXJseSAtIGNsZWFudXAgdGhlIHNldHVwIGRvbmUgaW4gaTkxNV9kcml2ZXJfaW5pdF9l YXJseSgpCisgKiBAZGV2X3ByaXY6IGRldmljZSBwcml2YXRlCisgKi8KK3N0YXRpYyB2b2lkIGk5 MTVfZHJpdmVyX2NsZWFudXBfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQoreworCWk5MTVfZ2VtX2xvYWRfY2xlYW51cChkZXZfcHJpdi0+ZGV2KTsKKwlpOTE1X3dvcmtx dWV1ZXNfY2xlYW51cChkZXZfcHJpdik7Cit9CisKIHN0YXRpYyBpbnQgaTkxNV9tbWlvX3NldHVw KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkZXYpOwpAQCAtOTg3LDY0ICsxMDY0LDIxIEBAIHN0YXRpYyB2b2lk IGk5MTVfbW1pb19jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiBpbnQgaTkxNV9kcml2 ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdjsKLQlzdHJ1Y3QgaW50ZWxfZGV2aWNl X2luZm8gKmluZm8sICpkZXZpY2VfaW5mbzsKIAlpbnQgcmV0ID0gMDsKIAl1aW50MzJfdCBhcGVy dHVyZV9zaXplOwogCi0JaW5mbyA9IChzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gKikgZmxhZ3M7 Ci0KIAlkZXZfcHJpdiA9IGt6YWxsb2Moc2l6ZW9mKCpkZXZfcHJpdiksIEdGUF9LRVJORUwpOwog CWlmIChkZXZfcHJpdiA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIAogCWRldi0+ZGV2X3By aXZhdGUgPSBkZXZfcHJpdjsKLQlkZXZfcHJpdi0+ZGV2ID0gZGV2OwogCi0JLyogU2V0dXAgdGhl IHdyaXRlLW9uY2UgImNvbnN0YW50IiBkZXZpY2UgaW5mbyAqLwotCWRldmljZV9pbmZvID0gKHN0 cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyAqKSZkZXZfcHJpdi0+aW5mbzsKLQltZW1jcHkoZGV2aWNl X2luZm8sIGluZm8sIHNpemVvZihkZXZfcHJpdi0+aW5mbykpOwotCWRldmljZV9pbmZvLT5kZXZp Y2VfaWQgPSBkZXYtPnBkZXYtPmRldmljZTsKKwlyZXQgPSBpOTE1X2RyaXZlcl9pbml0X2Vhcmx5 KGRldl9wcml2LCBkZXYsCisJCQkJICAgICAoc3RydWN0IGludGVsX2RldmljZV9pbmZvICopZmxh Z3MpOwogCi0Jc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5pcnFfbG9jayk7Ci0Jc3Bpbl9sb2Nr X2luaXQoJmRldl9wcml2LT5ncHVfZXJyb3IubG9jayk7Ci0JbXV0ZXhfaW5pdCgmZGV2X3ByaXYt PmJhY2tsaWdodF9sb2NrKTsKLQlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPnVuY29yZS5sb2Nr KTsKLQlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPm1tLm9iamVjdF9zdGF0X2xvY2spOwotCXNw aW5fbG9ja19pbml0KCZkZXZfcHJpdi0+bW1pb19mbGlwX2xvY2spOwotCW11dGV4X2luaXQoJmRl dl9wcml2LT5zYl9sb2NrKTsKLQltdXRleF9pbml0KCZkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3Jl X2xvY2spOwotCW11dGV4X2luaXQoJmRldl9wcml2LT5hdl9tdXRleCk7Ci0JbXV0ZXhfaW5pdCgm ZGV2X3ByaXYtPndtLndtX211dGV4KTsKLQltdXRleF9pbml0KCZkZXZfcHJpdi0+cHBzX211dGV4 KTsKLQotCXJldCA9IGk5MTVfd29ya3F1ZXVlc19pbml0KGRldl9wcml2KTsKIAlpZiAocmV0IDwg MCkKIAkJZ290byBvdXRfZnJlZV9wcml2OwogCi0JLyogVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZv cmUgYW55IGNhbGxzIHRvIEhBU19QQ0hfKiAqLwotCWludGVsX2RldGVjdF9wY2goZGV2KTsKLQot CWludGVsX3BtX3NldHVwKGRldik7Ci0JaW50ZWxfaW5pdF9kcGlvKGRldl9wcml2KTsKLQlpbnRl bF9wb3dlcl9kb21haW5zX2luaXQoZGV2X3ByaXYpOwotCWludGVsX2lycV9pbml0KGRldl9wcml2 KTsKLQlpbnRlbF9pbml0X2Rpc3BsYXlfaG9va3MoZGV2X3ByaXYpOwotCWludGVsX2luaXRfY2xv Y2tfZ2F0aW5nX2hvb2tzKGRldl9wcml2KTsKLQlpbnRlbF9pbml0X2F1ZGlvX2hvb2tzKGRldl9w cml2KTsKLQlpOTE1X2dlbV9sb2FkX2luaXQoZGV2KTsKLQotCWludGVsX2Rpc3BsYXlfY3JjX2lu aXQoZGV2KTsKLQotCWk5MTVfZHVtcF9kZXZpY2VfaW5mbyhkZXZfcHJpdik7Ci0KLQkvKiBOb3Qg YWxsIHByZS1wcm9kdWN0aW9uIG1hY2hpbmVzIGZhbGwgaW50byB0aGlzIGNhdGVnb3J5LCBvbmx5 IHRoZQotCSAqIHZlcnkgZmlyc3Qgb25lcy4gQWxtb3N0IGV2ZXJ5dGhpbmcgc2hvdWxkIHdvcmss IGV4Y2VwdCBmb3IgbWF5YmUKLQkgKiBzdXNwZW5kL3Jlc3VtZS4gQW5kIHdlIGRvbid0IGltcGxl bWVudCB3b3JrYXJvdW5kcyB0aGF0IGFmZmVjdCBvbmx5Ci0JICogcHJlLXByb2R1Y3Rpb24gbWFj aGluZXMuICovCi0JaWYgKElTX0hTV19FQVJMWV9TRFYoZGV2KSkKLQkJRFJNX0lORk8oIlRoaXMg aXMgYW4gZWFybHkgcHJlLXByb2R1Y3Rpb24gSGFzd2VsbCBtYWNoaW5lLiAiCi0JCQkgIkl0IG1h eSBub3QgYmUgZnVsbHkgZnVuY3Rpb25hbC5cbiIpOwotCiAJaW50ZWxfcnVudGltZV9wbV9nZXQo ZGV2X3ByaXYpOwogCiAJaWYgKGk5MTVfZ2V0X2JyaWRnZV9kZXYoZGV2KSkgewpAQCAtMTE5Miw4 ICsxMjI2LDcgQEAgcHV0X2JyaWRnZToKIAlwY2lfZGV2X3B1dChkZXZfcHJpdi0+YnJpZGdlX2Rl dik7CiBvdXRfcnVudGltZV9wbV9wdXQ6CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYp OwotCWk5MTVfZ2VtX2xvYWRfY2xlYW51cChkZXYpOwotCWk5MTVfd29ya3F1ZXVlc19jbGVhbnVw KGRldl9wcml2KTsKKwlpOTE1X2RyaXZlcl9jbGVhbnVwX2Vhcmx5KGRldl9wcml2KTsKIG91dF9m cmVlX3ByaXY6CiAJa2ZyZWUoZGV2X3ByaXYpOwogCkBAIC0xMjc4LDggKzEzMTEsNyBAQCBpbnQg aTkxNV9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlpbnRlbF9kaXNw bGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0lOSVQpOwogCi0JaTkxNV9nZW1f bG9hZF9jbGVhbnVwKGRldik7Ci0JaTkxNV93b3JrcXVldWVzX2NsZWFudXAoZGV2X3ByaXYpOwor CWk5MTVfZHJpdmVyX2NsZWFudXBfZWFybHkoZGV2X3ByaXYpOwogCWtmcmVlKGRldl9wcml2KTsK IAogCXJldHVybiAwOwotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=