From mboxrd@z Thu Jan 1 00:00:00 1970 From: michael.h.nguyen@intel.com Subject: [PATCH v7 1/5] drm/i915: Implement a framework for batch buffer pools Date: Thu, 11 Dec 2014 12:13:08 -0800 Message-ID: <1418328792-28072-2-git-send-email-michael.h.nguyen@intel.com> References: <1418328792-28072-1-git-send-email-michael.h.nguyen@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 1146D6E29E for ; Thu, 11 Dec 2014 12:15:58 -0800 (PST) In-Reply-To: <1418328792-28072-1-git-send-email-michael.h.nguyen@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 Cc: Brad Volkin List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQnJhZCBWb2xraW4gPGJyYWRsZXkuZC52b2xraW5AaW50ZWwuY29tPgoKVGhpcyBhZGRz IGEgc21hbGwgbW9kdWxlIGZvciBtYW5hZ2luZyBhIHBvb2wgb2YgYmF0Y2ggYnVmZmVycy4KVGhl IG9ubHkgY3VycmVudCB1c2UgY2FzZSBpcyBmb3IgdGhlIGNvbW1hbmQgcGFyc2VyLCBhcyBkZXNj cmliZWQKaW4gdGhlIGtlcm5lbGRvYyBpbiB0aGUgcGF0Y2guIFRoZSBjb2RlIGlzIHNpbXBsZSwg YnV0IHNlcGFyYXRpbmcKaXQgb3V0IG1ha2VzIGl0IGVhc2llciB0byBjaGFuZ2UgdGhlIHVuZGVy bHlpbmcgYWxnb3JpdGhtcyBhbmQgdG8KZXh0ZW5kIHRvIGZ1dHVyZSB1c2UgY2FzZXMgc2hvdWxk IHRoZXkgYXJpc2UuCgpUaGUgaW50ZXJmYWNlIGlzIHNpbXBsZTogaW5pdCB0byBjcmVhdGUgYW4g ZW1wdHkgcG9vbCwgZmluaSB0bwpjbGVhbiBpdCB1cCwgZ2V0IHRvIG9idGFpbiBhIG5ldyBidWZm ZXIuIE5vdGUgdGhhdCBhbGwgYnVmZmVycyBhcmUKZXhwZWN0ZWQgdG8gYmUgaW5hY3RpdmUgYmVm b3JlIGNsZWFuaW5nIHVwIHRoZSBwb29sLgoKTG9ja2luZyBpcyBjdXJyZW50bHkgYmFzZWQgb24g dGhlIGNhbGxlciBob2xkaW5nIHRoZSBzdHJ1Y3RfbXV0ZXguCldlIGFscmVhZHkgZG8gdGhhdCBp biB0aGUgcGxhY2VzIHdoZXJlIHdlIHdpbGwgdXNlIHRoZSBiYXRjaCBwb29sCmZvciB0aGUgY29t bWFuZCBwYXJzZXIuCgp2MjoKLSBzL0JVR19PTi9XQVJOX09OLyBmb3IgbG9ja2luZyBhc3NlcnRp b25zCi0gUmVtb3ZlIHRoZSBjYXAgb24gcG9vbCBzaXplCi0gU3dpdGNoIGZyb20gYWxsb2MvZnJl ZSB0byBpbml0L2ZpbmkKCnYzOgotIElkaW9tYXRpYyBsb29waW5nIHN0cnVjdHVyZSBpbiBfZmlu aQotIENvcnJlY3QgaGFuZGxpbmcgb2YgcHVyZ2VkIG9iamVjdHMKLSBEb24ndCByZXR1cm4gYSBi dWZmZXIgdGhhdCdzIHRvbyBtdWNoIGxhcmdlciB0aGFuIG5lZWRlZAoKdjQ6Ci0gUmViYXNlZCB0 byBsYXRlc3QgLW5pZ2h0bHkKCnY1OgotIFJlbW92ZSBfcHV0KCkgZnVuY3Rpb24gYW5kIGNsZWFu IHVwIGNvbW1lbnRzIHRvIG1hdGNoCgp2NjoKLSBNb3ZlIHB1cmdlZCBjaGVjayBpbnNpZGUgdGhl IGxvb3AgKGRhbnZldCwgZnJvbSB2NCAxLzcgZmVlZGJhY2spCgp2NzoKLSBVc2Ugc2luZ2xlIGxp c3QgaW5zdGVhZCBvZiB0d28uIChDaHJpcyBXKQotIHMvYWN0aXZlX2xpc3QvY2FjaGVfbGlzdAot IFNxdWFzaGVkIGluIGRlYnVnIHBhdGNoZXMgKENocmlzIFcpCiAgZHJtL2k5MTU6IEFkZCBhIGJh dGNoIHBvb2wgZGVidWdmcyBmaWxlCgogIEl0IHByb3ZpZGVzIHNvbWUgdXNlZnVsIGluZm9ybWF0 aW9uIGFib3V0IHRoZSBidWZmZXJzIGluCiAgdGhlIGdsb2JhbCBjb21tYW5kIHBhcnNlciBiYXRj aCBwb29sLgoKICB2MjogcmViYXNlIG9uIGdsb2JhbCBwb29sIGluc3RlYWQgb2YgcGVyLXJpbmcg cG9vbHMKICB2MzogcmViYXNlCgogIGRybS9pOTE1OiBBZGQgYmF0Y2ggcG9vbCBkZXRhaWxzIHRv IGk5MTVfZ2VtX29iamVjdHMgZGVidWdmcwoKICBUbyBiZXR0ZXIgYWNjb3VudCBmb3IgdGhlIHBv dGVudGlhbGx5IGxhcmdlIG1lbW9yeSBjb25zdW1wdGlvbgogIG9mIHRoZSBiYXRjaCBwb29sLgoK djg6Ci0gS2VlcCBjYWNoZSBpbiBMUlUgb3JkZXIgKGRhbnZldCwgZnJvbSB2NiAxLzUgZmVlZGJh Y2spCgpJc3N1ZTogVklaLTQ3MTkKU2lnbmVkLW9mZi1ieTogQnJhZCBWb2xraW4gPGJyYWRsZXku ZC52b2xraW5AaW50ZWwuY29tPgotLS0KIERvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbCAg ICAgICAgICAgICB8ICAgNSArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAg ICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAg ICB8ICA3MSArKysrKysrKysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg ICAgICAgICAgICB8ICAyMSArKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAg ICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bv b2wuYyB8IDEzNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2Vk LCAyMjUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMKCmRpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwgYi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJt LnRtcGwKaW5kZXggMjVjMjNjYS4uMjFjYmNkYiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9E b2NCb29rL2RybS50bXBsCisrKyBiL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbApAQCAt NDA1OSw2ICs0MDU5LDExIEBAIGludCBudW1faW9jdGxzOzwvc3lub3BzaXM+CiAhSWRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5jCiAgICAgICA8L3NlY3QyPgogICAgICAgPHNl Y3QyPgorICAgICAgICA8dGl0bGU+QmF0Y2hidWZmZXIgUG9vbHM8L3RpdGxlPgorIVBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMgYmF0Y2ggcG9vbAorIUlkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMKKyAgICAgIDwvc2VjdDI+CisgICAg ICA8c2VjdDI+CiAgICAgICAgIDx0aXRsZT5Mb2dpY2FsIFJpbmdzLCBMb2dpY2FsIFJpbmcgQ29u dGV4dHMgYW5kIEV4ZWNsaXN0czwvdGl0bGU+CiAhUGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jIExvZ2ljYWwgUmluZ3MsIExvZ2ljYWwgUmluZyBDb250ZXh0cyBhbmQgRXhlY2xpc3Rz CiAhSWRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmlu ZGV4IDNjZjcwYTYuLjE4NDlmZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01h a2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCkBAIC0xOSw2ICsxOSw3 IEBAIGk5MTUtJChDT05GSUdfREVCVUdfRlMpICs9IGk5MTVfZGVidWdmcy5vCiAKICMgR0VNIGNv ZGUKIGk5MTUteSArPSBpOTE1X2NtZF9wYXJzZXIubyBcCisJICBpOTE1X2dlbV9iYXRjaF9wb29s Lm8gXAogCSAgaTkxNV9nZW1fY29udGV4dC5vIFwKIAkgIGk5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5v IFwKIAkgIGk5MTVfZ2VtX2RlYnVnLm8gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpp bmRleCA0NzllMGMxLi41ZDk2ZDk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpA QCAtMzU5LDYgKzM1OSwzMyBAQCBzdGF0aWMgaW50IHBlcl9maWxlX3N0YXRzKGludCBpZCwgdm9p ZCAqcHRyLCB2b2lkICpkYXRhKQogCXJldHVybiAwOwogfQogCisjZGVmaW5lIHByaW50X2ZpbGVf c3RhdHMobSwgbmFtZSwgc3RhdHMpIFwKKwlzZXFfcHJpbnRmKG0sICIlczogJXUgb2JqZWN0cywg JXp1IGJ5dGVzICglenUgYWN0aXZlLCAlenUgaW5hY3RpdmUsICV6dSBnbG9iYWwsICV6dSBzaGFy ZWQsICV6dSB1bmJvdW5kKVxuIiwgXAorCQkgICBuYW1lLCBcCisJCSAgIHN0YXRzLmNvdW50LCBc CisJCSAgIHN0YXRzLnRvdGFsLCBcCisJCSAgIHN0YXRzLmFjdGl2ZSwgXAorCQkgICBzdGF0cy5p bmFjdGl2ZSwgXAorCQkgICBzdGF0cy5nbG9iYWwsIFwKKwkJICAgc3RhdHMuc2hhcmVkLCBcCisJ CSAgIHN0YXRzLnVuYm91bmQpCisKK3N0YXRpYyB2b2lkIHByaW50X2JhdGNoX3Bvb2xfc3RhdHMo c3RydWN0IHNlcV9maWxlICptLAorCQkJCSAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXN0cnVjdCBmaWxl X3N0YXRzIHN0YXRzOworCisJbWVtc2V0KCZzdGF0cywgMCwgc2l6ZW9mKHN0YXRzKSk7CisKKwls aXN0X2Zvcl9lYWNoX2VudHJ5KG9iaiwKKwkJCSAgICAmZGV2X3ByaXYtPm1tLmJhdGNoX3Bvb2wu Y2FjaGVfbGlzdCwKKwkJCSAgICBiYXRjaF9wb29sX2xpc3QpCisJCXBlcl9maWxlX3N0YXRzKDAs IG9iaiwgJnN0YXRzKTsKKworCXByaW50X2ZpbGVfc3RhdHMobSwgImJhdGNoIHBvb2wiLCBzdGF0 cyk7Cit9CisKICNkZWZpbmUgY291bnRfdm1hcyhsaXN0LCBtZW1iZXIpIGRvIHsgXAogCWxpc3Rf Zm9yX2VhY2hfZW50cnkodm1hLCBsaXN0LCBtZW1iZXIpIHsgXAogCQlzaXplICs9IGk5MTVfZ2Vt X29ial9nZ3R0X3NpemUodm1hLT5vYmopOyBcCkBAIC00NDEsNiArNDY4LDkgQEAgc3RhdGljIGlu dCBpOTE1X2dlbV9vYmplY3RfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQqIGRhdGEpCiAJ CSAgIGRldl9wcml2LT5ndHQubWFwcGFibGVfZW5kIC0gZGV2X3ByaXYtPmd0dC5iYXNlLnN0YXJ0 KTsKIAogCXNlcV9wdXRjKG0sICdcbicpOworCXByaW50X2JhdGNoX3Bvb2xfc3RhdHMobSwgZGV2 X3ByaXYpOworCisJc2VxX3B1dGMobSwgJ1xuJyk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9yZXZl cnNlKGZpbGUsICZkZXYtPmZpbGVsaXN0LCBsaGVhZCkgewogCQlzdHJ1Y3QgZmlsZV9zdGF0cyBz dGF0czsKIAkJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwpAQCAtNDU4LDE1ICs0ODgsNyBAQCBz dGF0aWMgaW50IGk5MTVfZ2VtX29iamVjdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCog ZGF0YSkKIAkJICovCiAJCXJjdV9yZWFkX2xvY2soKTsKIAkJdGFzayA9IHBpZF90YXNrKGZpbGUt PnBpZCwgUElEVFlQRV9QSUQpOwotCQlzZXFfcHJpbnRmKG0sICIlczogJXUgb2JqZWN0cywgJXp1 IGJ5dGVzICglenUgYWN0aXZlLCAlenUgaW5hY3RpdmUsICV6dSBnbG9iYWwsICV6dSBzaGFyZWQs ICV6dSB1bmJvdW5kKVxuIiwKLQkJCSAgIHRhc2sgPyB0YXNrLT5jb21tIDogIjx1bmtub3duPiIs Ci0JCQkgICBzdGF0cy5jb3VudCwKLQkJCSAgIHN0YXRzLnRvdGFsLAotCQkJICAgc3RhdHMuYWN0 aXZlLAotCQkJICAgc3RhdHMuaW5hY3RpdmUsCi0JCQkgICBzdGF0cy5nbG9iYWwsCi0JCQkgICBz dGF0cy5zaGFyZWQsCi0JCQkgICBzdGF0cy51bmJvdW5kKTsKKwkJcHJpbnRfZmlsZV9zdGF0cyht LCB0YXNrID8gdGFzay0+Y29tbSA6ICI8dW5rbm93bj4iLCBzdGF0cyk7CiAJCXJjdV9yZWFkX3Vu bG9jaygpOwogCX0KIApAQCAtNTgzLDYgKzYwNSwzNiBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3Bh Z2VmbGlwX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCXJldHVybiAwOwog fQogCitzdGF0aWMgaW50IGk5MTVfZ2VtX2JhdGNoX3Bvb2xfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUg Km0sIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSBtLT5wcml2 YXRlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBub2RlLT5taW5vci0+ZGV2OworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlpbnQgY291bnQgPSAwOworCWludCByZXQ7CisK KwlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmRldi0+c3RydWN0X211dGV4KTsKKwlp ZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJc2VxX3B1dHMobSwgImNhY2hlOlxuIik7CisJbGlz dF9mb3JfZWFjaF9lbnRyeShvYmosCisJCQkgICAgJmRldl9wcml2LT5tbS5iYXRjaF9wb29sLmNh Y2hlX2xpc3QsCisJCQkgICAgYmF0Y2hfcG9vbF9saXN0KSB7CisJCXNlcV9wdXRzKG0sICIgICAi KTsKKwkJZGVzY3JpYmVfb2JqKG0sIG9iaik7CisJCXNlcV9wdXRjKG0sICdcbicpOworCQljb3Vu dCsrOworCX0KKworCXNlcV9wcmludGYobSwgInRvdGFsOiAlZFxuIiwgY291bnQpOworCisJbXV0 ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGlj IGludCBpOTE1X2dlbV9yZXF1ZXN0X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRh KQogewogCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gbS0+cHJpdmF0ZTsKQEAgLTQzNTYs NiArNDQwOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2luZm9fbGlzdCBpOTE1X2RlYnVn ZnNfbGlzdFtdID0gewogCXsiaTkxNV9nZW1faHdzX2JsdCIsIGk5MTVfaHdzX2luZm8sIDAsICh2 b2lkICopQkNTfSwKIAl7Imk5MTVfZ2VtX2h3c19ic2QiLCBpOTE1X2h3c19pbmZvLCAwLCAodm9p ZCAqKVZDU30sCiAJeyJpOTE1X2dlbV9od3NfdmVib3giLCBpOTE1X2h3c19pbmZvLCAwLCAodm9p ZCAqKVZFQ1N9LAorCXsiaTkxNV9nZW1fYmF0Y2hfcG9vbCIsIGk5MTVfZ2VtX2JhdGNoX3Bvb2xf aW5mbywgMH0sCiAJeyJpOTE1X2ZyZXF1ZW5jeV9pbmZvIiwgaTkxNV9mcmVxdWVuY3lfaW5mbywg MH0sCiAJeyJpOTE1X2RycGNfaW5mbyIsIGk5MTVfZHJwY19pbmZvLCAwfSwKIAl7Imk5MTVfZW1v bl9zdGF0dXMiLCBpOTE1X2Vtb25fc3RhdHVzLCAwfSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmlu ZGV4IGQ2OGM3NWYuLmUxZTUwM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTE0Miw2 ICsxMTQyLDExIEBAIHN0cnVjdCBpbnRlbF9sM19wYXJpdHkgewogCWludCB3aGljaF9zbGljZTsK IH07CiAKK3N0cnVjdCBpOTE1X2dlbV9iYXRjaF9wb29sIHsKKwlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2OworCXN0cnVjdCBsaXN0X2hlYWQgY2FjaGVfbGlzdDsKK307CisKIHN0cnVjdCBpOTE1X2dl bV9tbSB7CiAJLyoqIE1lbW9yeSBhbGxvY2F0b3IgZm9yIEdUVCBzdG9sZW4gbWVtb3J5ICovCiAJ c3RydWN0IGRybV9tbSBzdG9sZW47CkBAIC0xMTU1LDYgKzExNjAsMTMgQEAgc3RydWN0IGk5MTVf Z2VtX21tIHsKIAkgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIHVuYm91bmRfbGlzdDsKIAorCS8qCisJ ICogQSBwb29sIG9mIG9iamVjdHMgdG8gdXNlIGFzIHNoYWRvdyBjb3BpZXMgb2YgY2xpZW50IGJh dGNoIGJ1ZmZlcnMKKwkgKiB3aGVuIHRoZSBjb21tYW5kIHBhcnNlciBpcyBlbmFibGVkLiBQcmV2 ZW50cyB0aGUgY2xpZW50IGZyb20KKwkgKiBtb2RpZnlpbmcgdGhlIGJhdGNoIGNvbnRlbnRzIGFm dGVyIHNvZnR3YXJlIHBhcnNpbmcuCisJICovCisJc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wg YmF0Y2hfcG9vbDsKKwogCS8qKiBVc2FibGUgcG9ydGlvbiBvZiB0aGUgR1RUIGZvciBHRU0gKi8K IAl1bnNpZ25lZCBsb25nIHN0b2xlbl9iYXNlOyAvKiBsaW1pdGVkIHRvIGxvdyBtZW1vcnkgKDMy LWJpdCkgKi8KIApAQCAtMTg4NSw2ICsxODk3LDggQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgewogCS8qKiBVc2VkIGluIGV4ZWNidWYgdG8gdGVtcG9yYXJpbHkgaG9sZCBhIHJlZiAqLwog CXN0cnVjdCBsaXN0X2hlYWQgb2JqX2V4ZWNfbGluazsKIAorCXN0cnVjdCBsaXN0X2hlYWQgYmF0 Y2hfcG9vbF9saXN0OworCiAJLyoqCiAJICogVGhpcyBpcyBzZXQgaWYgdGhlIG9iamVjdCBpcyBv biB0aGUgYWN0aXZlIGxpc3RzIChoYXMgcGVuZGluZwogCSAqIHJlbmRlcmluZyBhbmQgc28gYSBu b24temVybyBzZXFubyksIGFuZCBpcyBub3Qgc2V0IGlmIGl0IGkgcyBvbgpAQCAtMjg4OSw2ICsy OTAzLDEzIEBAIHZvaWQgaTkxNV9kZXN0cm95X2Vycm9yX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpOwogdm9pZCBpOTE1X2dldF9leHRyYV9pbnN0ZG9uZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB1aW50MzJfdCAqaW5zdGRvbmUpOwogY29uc3QgY2hhciAqaTkxNV9jYWNoZV9sZXZlbF9z dHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludCB0eXBlKTsKIAorLyogaTkxNV9n ZW1fYmF0Y2hfcG9vbC5jICovCit2b2lkIGk5MTVfZ2VtX2JhdGNoX3Bvb2xfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAorCQkJICAgICAgc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBv b2wpOwordm9pZCBpOTE1X2dlbV9iYXRjaF9wb29sX2Zpbmkoc3RydWN0IGk5MTVfZ2VtX2JhdGNo X3Bvb2wgKnBvb2wpOworc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QqCitpOTE1X2dlbV9iYXRj aF9wb29sX2dldChzdHJ1Y3QgaTkxNV9nZW1fYmF0Y2hfcG9vbCAqcG9vbCwgc2l6ZV90IHNpemUp OworCiAvKiBpOTE1X2NtZF9wYXJzZXIuYyAqLwogaW50IGk5MTVfY21kX3BhcnNlcl9nZXRfdmVy c2lvbih2b2lkKTsKIGludCBpOTE1X2NtZF9wYXJzZXJfaW5pdF9yaW5nKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggZGUyNDFlYi4uMmYx NGFlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC00Mzg0LDYgKzQzODQsNyBAQCB2b2lk IGk5MTVfZ2VtX29iamVjdF9pbml0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJ SU5JVF9MSVNUX0hFQUQoJm9iai0+cmluZ19saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmb2JqLT5v YmpfZXhlY19saW5rKTsKIAlJTklUX0xJU1RfSEVBRCgmb2JqLT52bWFfbGlzdCk7CisJSU5JVF9M SVNUX0hFQUQoJm9iai0+YmF0Y2hfcG9vbF9saXN0KTsKIAogCW9iai0+b3BzID0gb3BzOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNjAxNjEyNQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYwpAQCAtMCwwICsxLDEzNSBAQAorLyoK KyAqIENvcHlyaWdodCDCqSAyMDE0IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0 aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3 aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUg cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg c3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0 byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRv IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUg YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVk aW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBU SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg S0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU TyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwK KyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9G IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBE RUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworCisjaW5jbHVkZSAiaTkxNV9k cnYuaCIKKworLyoqCisgKiBET0M6IGJhdGNoIHBvb2wKKyAqCisgKiBJbiBvcmRlciB0byBzdWJt aXQgYmF0Y2ggYnVmZmVycyBhcyAnc2VjdXJlJywgdGhlIHNvZnR3YXJlIGNvbW1hbmQgcGFyc2Vy CisgKiBtdXN0IGVuc3VyZSB0aGF0IGEgYmF0Y2ggYnVmZmVyIGNhbm5vdCBiZSBtb2RpZmllZCBh ZnRlciBwYXJzaW5nLiBJdCBkb2VzCisgKiB0aGlzIGJ5IGNvcHlpbmcgdGhlIHVzZXIgcHJvdmlk ZWQgYmF0Y2ggYnVmZmVyIGNvbnRlbnRzIHRvIGEga2VybmVsIG93bmVkCisgKiBidWZmZXIgZnJv bSB3aGljaCB0aGUgaGFyZHdhcmUgd2lsbCBhY3R1YWxseSBleGVjdXRlLCBhbmQgYnkgY2FyZWZ1 bGx5CisgKiBtYW5hZ2luZyB0aGUgYWRkcmVzcyBzcGFjZSBiaW5kaW5ncyBmb3Igc3VjaCBidWZm ZXJzLgorICoKKyAqIFRoZSBiYXRjaCBwb29sIGZyYW1ld29yayBwcm92aWRlcyBhIG1lY2hhbmlz bSBmb3IgdGhlIGRyaXZlciB0byBtYW5hZ2UgYQorICogc2V0IG9mIHNjcmF0Y2ggYnVmZmVycyB0 byB1c2UgZm9yIHRoaXMgcHVycG9zZS4gVGhlIGZyYW1ld29yayBjYW4gYmUKKyAqIGV4dGVuZGVk IHRvIHN1cHBvcnQgb3RoZXIgdXNlcyBjYXNlcyBzaG91bGQgdGhleSBhcmlzZS4KKyAqLworCisv KioKKyAqIGk5MTVfZ2VtX2JhdGNoX3Bvb2xfaW5pdCgpIC0gaW5pdGlhbGl6ZSBhIGJhdGNoIGJ1 ZmZlciBwb29sCisgKiBAZGV2OiB0aGUgZHJtIGRldmljZQorICogQHBvb2w6IHRoZSBiYXRjaCBi dWZmZXIgcG9vbAorICovCit2b2lkIGk5MTVfZ2VtX2JhdGNoX3Bvb2xfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAorCQkJICAgICAgc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBvb2wp Cit7CisJcG9vbC0+ZGV2ID0gZGV2OworCUlOSVRfTElTVF9IRUFEKCZwb29sLT5jYWNoZV9saXN0 KTsKK30KKworLyoqCisgKiBpOTE1X2dlbV9iYXRjaF9wb29sX2ZpbmkoKSAtIGNsZWFuIHVwIGEg YmF0Y2ggYnVmZmVyIHBvb2wKKyAqIEBwb29sOiB0aGUgcG9vbCB0byBjbGVhbiB1cAorICoKKyAq IE5vdGU6IENhbGxlcnMgbXVzdCBob2xkIHRoZSBzdHJ1Y3RfbXV0ZXguCisgKi8KK3ZvaWQgaTkx NV9nZW1fYmF0Y2hfcG9vbF9maW5pKHN0cnVjdCBpOTE1X2dlbV9iYXRjaF9wb29sICpwb29sKQor eworCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmcG9vbC0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsK KworCXdoaWxlICghbGlzdF9lbXB0eSgmcG9vbC0+Y2FjaGVfbGlzdCkpIHsKKwkJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9CisJCQlsaXN0X2ZpcnN0X2VudHJ5KCZwb29sLT5jYWNo ZV9saXN0LAorCQkJCQkgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QsCisJCQkJCSBiYXRjaF9w b29sX2xpc3QpOworCisJCVdBUk5fT04ob2JqLT5hY3RpdmUpOworCisJCWxpc3RfZGVsX2luaXQo Jm9iai0+YmF0Y2hfcG9vbF9saXN0KTsKKwkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9i ai0+YmFzZSk7CisJfQorfQorCisvKioKKyAqIGk5MTVfZ2VtX2JhdGNoX3Bvb2xfZ2V0KCkgLSBz ZWxlY3QgYSBidWZmZXIgZnJvbSB0aGUgcG9vbAorICogQHBvb2w6IHRoZSBiYXRjaCBidWZmZXIg cG9vbAorICogQHNpemU6IHRoZSBtaW5pbXVtIGRlc2lyZWQgc2l6ZSBvZiB0aGUgcmV0dXJuZWQg YnVmZmVyCisgKgorICogRmluZHMgb3IgYWxsb2NhdGVzIGEgYmF0Y2ggYnVmZmVyIGluIHRoZSBw b29sIHdpdGggYXQgbGVhc3QgdGhlIHJlcXVlc3RlZAorICogc2l6ZS4gVGhlIGNhbGxlciBpcyBy ZXNwb25zaWJsZSBmb3IgYW55IGRvbWFpbiwgYWN0aXZlL2luYWN0aXZlLCBvcgorICogcHVyZ2Vh YmlsaXR5IG1hbmFnZW1lbnQgZm9yIHRoZSByZXR1cm5lZCBidWZmZXIuCisgKgorICogTm90ZTog Q2FsbGVycyBtdXN0IGhvbGQgdGhlIHN0cnVjdF9tdXRleAorICoKKyAqIFJldHVybjogdGhlIHNl bGVjdGVkIGJhdGNoIGJ1ZmZlciBvYmplY3QKKyAqLworc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKgoraTkxNV9nZW1fYmF0Y2hfcG9vbF9nZXQoc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wg KnBvb2wsCisJCQlzaXplX3Qgc2l6ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqID0gTlVMTDsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqdG1wLCAqbmV4dDsKKwor CVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmcG9vbC0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKKwor CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh0bXAsIG5leHQsCisJCQkmcG9vbC0+Y2FjaGVfbGlz dCwgYmF0Y2hfcG9vbF9saXN0KSB7CisKKwkJaWYgKHRtcC0+YWN0aXZlKQorCQkJY29udGludWU7 CisKKwkJLyogV2hpbGUgd2UncmUgbG9vcGluZywgZG8gc29tZSBjbGVhbiB1cCAqLworCQlpZiAo dG1wLT5tYWR2ID09IF9fSTkxNV9NQURWX1BVUkdFRCkgeworCQkJbGlzdF9kZWwoJnRtcC0+YmF0 Y2hfcG9vbF9saXN0KTsKKwkJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZ0bXAtPmJhc2Up OworCQkJY29udGludWU7CisJCX0KKworCQkvKgorCQkgKiBTZWxlY3QgYSBidWZmZXIgdGhhdCBp cyBhdCBsZWFzdCBhcyBiaWcgYXMgbmVlZGVkCisJCSAqIGJ1dCBub3QgJ3RvbyBtdWNoJyBiaWdn ZXIuIEEgYmV0dGVyIHdheSB0byBkbyB0aGlzCisJCSAqIG1pZ2h0IGJlIHRvIGJ1Y2tldCB0aGUg cG9vbCBvYmplY3RzIGJhc2VkIG9uIHNpemUuCisJCSAqLworCQlpZiAodG1wLT5iYXNlLnNpemUg Pj0gc2l6ZSAmJgorCQkgICAgdG1wLT5iYXNlLnNpemUgPD0gKDIgKiBzaXplKSkgeworCQkJb2Jq ID0gdG1wOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoIW9iaikgeworCQlvYmogPSBpOTE1 X2dlbV9hbGxvY19vYmplY3QocG9vbC0+ZGV2LCBzaXplKTsKKwkJaWYgKCFvYmopCisJCQlyZXR1 cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCQlsaXN0X2FkZF90YWlsKCZvYmotPmJhdGNoX3Bvb2xf bGlzdCwgJnBvb2wtPmNhY2hlX2xpc3QpOworCX0KKwllbHNlCisJCS8qIEtlZXAgbGlzdCBpbiBM UlUgb3JkZXIgKi8KKwkJbGlzdF9tb3ZlX3RhaWwoJm9iai0+YmF0Y2hfcG9vbF9saXN0LCAmcG9v bC0+Y2FjaGVfbGlzdCk7CisKKwlyZXR1cm4gb2JqOworfQotLSAKMS45LjEKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==