From mboxrd@z Thu Jan 1 00:00:00 1970 From: yu.dai@intel.com Subject: [PATCH 02/15] drm/i915/guc: Add GuC css header parser Date: Tue, 15 Sep 2015 16:28:11 -0700 Message-ID: <1442359691-31293-1-git-send-email-yu.dai@intel.com> References: <1441234355-7524-1-git-send-email-yu.dai@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 6B7167212B for ; Tue, 15 Sep 2015 16:29:43 -0700 (PDT) In-Reply-To: <1441234355-7524-1-git-send-email-yu.dai@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 RnJvbTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+CgpCeSB1c2luZyBpbmZvcm1hdGlvbiBm cm9tIEd1QyBjc3MgaGVhZGVyLCB3ZSBjYW4gZWxpbWluYXRlIHNvbWUKaGFyZCBjb2RlIHcuci50 IHNpemUgb2Ygc29tZSBjb21wb25lbnRzIG9mIGZpcm13YXJlLgoKdjI6IEFkZCBpbmRlbnQgaW50 byBET0MgdG8gbWFrZSBmaXhlZC13aWR0aCBmb3JtYXQgcmF0aGVyIHRoYW4KY2hhbmdlIHRoZSB0 bXBsLgoKdjE6IDEpIGd1Y19jc3NfaGVhZGVyIGlzIGRlZmluZWQgYXMgX19wYWNrZWQgbm93CiAg ICAyKSBBZGQgYW5kIGNvcnJlY3QgR3VDIHJlbGF0ZWQgdG9waWNzIGluIGtlcm5lbC9Eb2MKClNp Z25lZC1vZmYtYnk6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgotLS0KIERvY3VtZW50YXRp b24vRG9jQm9vay9kcm0udG1wbCAgICAgICAgICB8ICAgOSArKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d1Yy5oICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjX2Z3aWYuaCAgIHwgIDM2ICsrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWNfbG9hZGVyLmMgfCAxMDcgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0K IDQgZmlsZXMgY2hhbmdlZCwgMTE3IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbCBiL0RvY3VtZW50YXRpb24v RG9jQm9vay9kcm0udG1wbAppbmRleCA2NmJjNjQ2Li4xMTYzMzJmIDEwMDY0NAotLS0gYS9Eb2N1 bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwKKysrIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2Ry bS50bXBsCkBAIC00MTU1LDE0ICs0MTU1LDE5IEBAIGludCBudW1faW9jdGxzOzwvc3lub3BzaXM+ CiAgICAgICA8dGl0bGU+R3VDLWJhc2VkIENvbW1hbmQgU3VibWlzc2lvbjwvdGl0bGU+CiAgICAg ICA8c2VjdDI+CiAgICAgICAgIDx0aXRsZT5HdUM8L3RpdGxlPgotIVBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgR3VDLXNwZWNpZmljIGZpcm13YXJlIGxvYWRlcgorIVBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgR3VDCiAhSWRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwogICAgICAgPC9zZWN0Mj4KICAgICAgIDxzZWN0 Mj4KICAgICAgICAgPHRpdGxlPkd1QyBDbGllbnQ8L3RpdGxlPgotIVBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgR3VDLWJhc2VkIGNvbW1hbmQgc3VibWlzc2lzb24K KyFQZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIEd1QyBDbGllbnQK ICFJZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCiAgICAgICA8L3Nl Y3QyPgorICAgICAgPHNlY3QyPgorICAgICAgICA8dGl0bGU+R3VDIEZpcm13YXJlIExheW91dDwv dGl0bGU+CishUGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyBHdUMgRmly bXdhcmUgTGF5b3V0CishSWRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwor ICAgICAgPC9zZWN0Mj4KICAgICA8L3NlY3QxPgogCiAgICAgPHNlY3QxPgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWMuaAppbmRleCA0ZWMyZDI3Li5lMTM4OWZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndWMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dWMuaApAQCAtNzEsNiArNzEsNyBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3IHsKIAlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqCWd1Y19md19vYmo7CiAJZW51bSBpbnRlbF9ndWNfZndfc3RhdHVz CWd1Y19md19mZXRjaF9zdGF0dXM7CiAJZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzCWd1Y19md19s b2FkX3N0YXR1czsKKwlzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIJCWd1Y19md19oZWFkZXI7CiAKIAl1 aW50MTZfdAkJCWd1Y19md19tYWpvcl93YW50ZWQ7CiAJdWludDE2X3QJCQlndWNfZndfbWlub3Jf d2FudGVkOwpAQCAtODAsNyArODEsNiBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3IHsKIAogc3RydWN0 IGludGVsX2d1YyB7CiAJc3RydWN0IGludGVsX2d1Y19mdyBndWNfZnc7Ci0KIAl1aW50MzJfdCBs b2dfZmxhZ3M7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmxvZ19vYmo7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oCmluZGV4IGUxZjQ3YmEuLjAwNmRjMGQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Z3aWYuaApAQCAtMTIyLDYgKzEyMiw0MiBAQAogCiAj ZGVmaW5lIEdVQ19DVExfTUFYX0RXT1JEUwkJKEdVQ19DVExfUlNSVkQgKyAxKQogCitzdHJ1Y3Qg Z3VjX2Nzc19oZWFkZXIgeworCXVpbnQzMl90IG1vZHVsZV90eXBlOworCXVpbnQzMl90IGhlYWRl cl9sZW47IC8qIGhlYWRlciBsZW5ndGggcGx1cyBzaXplIG9mIGFsbCBvdGhlciBrZXlzICovCisJ dWludDMyX3QgaGVhZGVyX3ZlcnNpb247CisJdWludDMyX3QgbW9kdWxlX2lkOworCXVpbnQzMl90 IG1vZHVsZV92ZW5kb3I7CisJdW5pb24geworCQlzdHJ1Y3QgeworCQkJdWludDhfdCBkYXk7CisJ CQl1aW50OF90IG1vbnRoOworCQkJdWludDE2X3QgeWVhcjsKKwkJfTsKKwkJdWludDMyX3QgZGF0 ZTsKKwl9OworCXVpbnQzMl90IHNpemU7IC8qIHVDb2RlIHNpemUgcGx1cyBoZWFkZXJfbGVuICov CisJdWludDMyX3Qga2V5X3NpemU7CisJdWludDMyX3QgbW9kdWx1c19zaXplOworCXVpbnQzMl90 IGV4cG9uZW50X3NpemU7CisJdW5pb24geworCQlzdHJ1Y3QgeworCQkJdWludDhfdCBob3VyOwor CQkJdWludDhfdCBtaW47CisJCQl1aW50MTZfdCBzZWM7CisJCX07CisJCXVpbnQzMl90IHRpbWU7 CisJfTsKKworCWNoYXIgdXNlcm5hbWVbOF07CisJY2hhciBidWlsZG51bWJlclsxMl07CisJdWlu dDMyX3QgZGV2aWNlX2lkOworCXVpbnQzMl90IGd1Y19zd192ZXJzaW9uOworCXVpbnQzMl90IHBy b2RfcHJlcHJvZF9mdzsKKwl1aW50MzJfdCByZXNlcnZlZFsxMl07CisJdWludDMyX3QgaGVhZGVy X2luZm87Cit9IF9fcGFja2VkOworCiBzdHJ1Y3QgZ3VjX2Rvb3JiZWxsX2luZm8gewogCXUzMiBk Yl9zdGF0dXM7CiAJdTMyIGNvb2tpZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2d1Y19sb2FkZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2Fk ZXIuYwppbmRleCA0MDI0MWYzLi5hNjcwM2I0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjX2xvYWRlci5jCkBAIC0yMTUsMTggKzIxNSwyOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZ3Vj X3Vjb2RlX3Jlc3BvbnNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJKCh2 YWwgJiBHU19NSUFfQ09SRV9TVEFURSkgJiYgdWtfdmFsID09IEdTX1VLRVJORUxfTEFQSUNfRE9O RSkpOwogfQogCi0vKgotICogVHJhbnNmZXIgdGhlIGZpcm13YXJlIGltYWdlIHRvIFJBTSBmb3Ig ZXhlY3V0aW9uIGJ5IHRoZSBtaWNyb2NvbnRyb2xsZXIuCisvKioKKyAqIERPQzogR3VDIEZpcm13 YXJlIExheW91dAogICoKLSAqIEd1QyBGaXJtd2FyZSBsYXlvdXQ6Ci0gKiArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSsgIC0tLS0KLSAqIHwgICAgICAgICAgQ1NTIGhlYWRlciAgICAg ICAgICAgfCAgMTI4QgotICogfCBjb250YWlucyBtYWpvci9taW5vciB2ZXJzaW9uICB8Ci0gKiAr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgIC0tLS0KLSAqIHwgICAgICAgICAgICAg dUNvZGUgICAgICAgICAgICAgfAotICogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r ICAtLS0tCi0gKiB8ICAgICAgICAgUlNBIHNpZ25hdHVyZSAgICAgICAgIHwgIDI1NkIKLSAqICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgLS0tLQorICogVGhlIEd1QyBmaXJtd2Fy ZSBsYXlvdXQgbG9va3MgbGlrZSB0aGlzOgorICoKKyAqICAgICArLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSsKKyAqICAgICB8ICAgICAgICBndWNfY3NzX2hlYWRlciAgICAgICAgIHwK KyAqICAgICB8IGNvbnRhaW5zIG1ham9yL21pbm9yIHZlcnNpb24gIHwKKyAqICAgICArLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICB8ICAgICAgICAgICAgIHVDb2RlICAg ICAgICAgICAgIHwKKyAqICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAq ICAgICB8ICAgICAgICAgUlNBIHNpZ25hdHVyZSAgICAgICAgIHwKKyAqICAgICArLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICB8ICAgICAgICAgIG1vZHVsdXMga2V5ICAg ICAgICAgIHwKKyAqICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAg ICB8ICAgICAgICAgIGV4cG9uZW50IHZhbCAgICAgICAgIHwKKyAqICAgICArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBUaGUgZmlybXdhcmUgbWF5IG9yIG1heSBub3Qg aGF2ZSBtb2R1bHVzIGtleSBhbmQgZXhwb25lbnQgZGF0YS4gVGhlIGhlYWRlciwKKyAqIHVDb2Rl IGFuZCBSU0Egc2lnbmF0dXJlIGFyZSBtdXN0LWhhdmUgY29tcG9uZW50cyB0aGF0IHdpbGwgYmUg dXNlZCBieSBkcml2ZXIuCisgKiBTaXplIG9mIGVhY2ggY29tcG9uZW50cyAoaW4gZHdvcmRzKSBj YW4gYmUgZm91bmQgaW4gaGVhZGVyLiBJbiB0aGUgY2FzZSB0aGF0CisgKiBtb2R1bHVzIGFuZCBl eHBvbmVudCBhcmUgbm90IHByZXNlbnQgaW4gZncsIHRoZSBzaXplIHZhbHVlIHN0aWxsIGFwcGVh cnMgaW4KKyAqIGhlYWRlci4KICAqCiAgKiBBcmNoaXRlY3R1cmFsbHksIHRoZSBETUEgZW5naW5l IGlzIGJpZGlyZWN0aW9uYWwsIGFuZCBjYW4gcG90ZW50aWFsbHkgZXZlbgogICogdHJhbnNmZXIg YmV0d2VlbiBHVFQgbG9jYXRpb25zLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgbGVmdCBvdXQgb2Yg dGhlIEFQSQpAQCAtMjM2LDMwICsyNDcsNDIgQEAgc3RhdGljIGlubGluZSBib29sIGd1Y191Y29k ZV9yZXNwb25zZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAgKiBETUEgZW5n aW5lIGluIG9uZSBvcGVyYXRpb24sIHdoZXJlYXMgdGhlIFJTQSBzaWduYXR1cmUgaXMgbG9hZGVk IHZpYSBNTUlPLgogICovCiAKLSNkZWZpbmUgVU9TX0NTU19IRUFERVJfT0ZGU0VUCQkwCi0jZGVm aW5lIFVPU19WRVJfTUlOT1JfT0ZGU0VUCQkweDQ0Ci0jZGVmaW5lIFVPU19WRVJfTUFKT1JfT0ZG U0VUCQkweDQ2Ci0jZGVmaW5lIFVPU19DU1NfSEVBREVSX1NJWkUJCTB4ODAKLSNkZWZpbmUgVU9T X1JTQV9TSUdfU0laRQkJMHgxMDAKLQorLyoKKyAqIFRyYW5zZmVyIHRoZSBmaXJtd2FyZSBpbWFn ZSB0byBSQU0gZm9yIGV4ZWN1dGlvbiBieSB0aGUgbWljcm9jb250cm9sbGVyLgorICovCiBzdGF0 aWMgaW50IGd1Y191Y29kZV94ZmVyX2RtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiB7CiAJc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3Vj X2Z3OworCXN0cnVjdCBndWNfY3NzX2hlYWRlciAqaGVhZGVyID0gJmd1Y19mdy0+Z3VjX2Z3X2hl YWRlcjsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqZndfb2JqID0gZ3VjX2Z3LT5ndWNf Zndfb2JqOwogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0OwogCXN0cnVjdCBzZ190YWJsZSAqc2cgPSBm d19vYmotPnBhZ2VzOwotCXUzMiBzdGF0dXMsIHVjb2RlX3NpemUsIHJzYVtVT1NfUlNBX1NJR19T SVpFIC8gc2l6ZW9mKHUzMildOworCXUzMiBzdGF0dXMsIGhlYWRlcl9zaXplLCByc2Ffc2l6ZSwg dWNvZGVfc2l6ZSwgKnJzYTsKIAlpbnQgaSwgcmV0ID0gMDsKIAotCS8qIHVDb2RlIHNpemUsIGFs c28gaXMgd2hlcmUgUlNBIHNpZ25hdHVyZSBzdGFydHMgKi8KLQlvZmZzZXQgPSB1Y29kZV9zaXpl ID0gZ3VjX2Z3LT5ndWNfZndfc2l6ZSAtIFVPU19SU0FfU0lHX1NJWkU7Ci0JSTkxNV9XUklURShE TUFfQ09QWV9TSVpFLCB1Y29kZV9zaXplKTsKKwkvKiBUaGUgaGVhZGVyIHBsdXMgdUNvZGUgd2ls bCBiZSBjb3BpZWQgdG8gV09QQ00gdmlhIERNQSwgZXhjbHVkaW5nIGFueQorCSAqIG90aGVyIGNv bXBvbmVudHMgKi8KKwloZWFkZXJfc2l6ZSA9IChoZWFkZXItPmhlYWRlcl9sZW4gLSBoZWFkZXIt PmtleV9zaXplIC0KKwkJaGVhZGVyLT5tb2R1bHVzX3NpemUgLSBoZWFkZXItPmV4cG9uZW50X3Np emUpICogc2l6ZW9mKHUzMik7CisJdWNvZGVfc2l6ZSA9IChoZWFkZXItPnNpemUgLSBoZWFkZXIt PmhlYWRlcl9sZW4pICogc2l6ZW9mKHUzMik7CisKKwlJOTE1X1dSSVRFKERNQV9DT1BZX1NJWkUs IGhlYWRlcl9zaXplICsgdWNvZGVfc2l6ZSk7CisKKwkvKiB3aGVyZSBSU0Egc2lnbmF0dXJlIHN0 YXJ0cyAqLworCW9mZnNldCA9IGhlYWRlcl9zaXplICsgdWNvZGVfc2l6ZTsKKworCXJzYV9zaXpl ID0gaGVhZGVyLT5rZXlfc2l6ZSAqIHNpemVvZih1MzIpOworCXJzYSA9IGttYWxsb2MocnNhX3Np emUsIEdGUF9LRVJORUwpOworCWlmICghcnNhKQorCQlyZXR1cm4gLUVOT01FTTsKIAogCS8qIENv cHkgUlNBIHNpZ25hdHVyZSBmcm9tIHRoZSBmdyBpbWFnZSB0byBIVyBmb3IgdmVyaWZpY2F0aW9u ICovCi0Jc2dfcGNvcHlfdG9fYnVmZmVyKHNnLT5zZ2wsIHNnLT5uZW50cywgcnNhLCBVT1NfUlNB X1NJR19TSVpFLCBvZmZzZXQpOwotCWZvciAoaSA9IDA7IGkgPCBVT1NfUlNBX1NJR19TSVpFIC8g c2l6ZW9mKHUzMik7IGkrKykKKwlzZ19wY29weV90b19idWZmZXIoc2ctPnNnbCwgc2ctPm5lbnRz LCByc2EsIHJzYV9zaXplLCBvZmZzZXQpOworCWZvciAoaSA9IDA7IGkgPCByc2Ffc2l6ZSAvIHNp emVvZih1MzIpOyBpKyspCiAJCUk5MTVfV1JJVEUoVU9TX1JTQV9TQ1JBVENIXzAgKyBpICogc2l6 ZW9mKHUzMiksIHJzYVtpXSk7CiAKKwlrZnJlZShyc2EpOworCiAJLyogU2V0IHRoZSBzb3VyY2Ug YWRkcmVzcyBmb3IgdGhlIG5ldyBibG9iICovCiAJb2Zmc2V0ID0gaTkxNV9nZW1fb2JqX2dndHRf b2Zmc2V0KGZ3X29iaik7CiAJSTkxNV9XUklURShETUFfQUREUl8wX0xPVywgbG93ZXJfMzJfYml0 cyhvZmZzZXQpKTsKQEAgLTQ2NSwxMCArNDg4LDggQEAgc3RhdGljIHZvaWQgZ3VjX2Z3X2ZldGNo KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdykKIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCWNvbnN0IHN0cnVjdCBmaXJtd2Fy ZSAqZnc7Ci0JY29uc3QgdTggKmNzc19oZWFkZXI7Ci0JY29uc3Qgc2l6ZV90IG1pbnNpemUgPSBV T1NfQ1NTX0hFQURFUl9TSVpFICsgVU9TX1JTQV9TSUdfU0laRTsKLQljb25zdCBzaXplX3QgbWF4 c2l6ZSA9IEdVQ19XT1BDTV9TSVpFX1ZBTFVFICsgVU9TX1JTQV9TSUdfU0laRQotCQkJLSAweDgw MDA7IC8qIDMyayByZXNlcnZlZCAoOEsgc3RhY2sgKyAyNGsgY29udGV4dCkgKi8KKwlzdHJ1Y3Qg Z3VjX2Nzc19oZWFkZXIgKmNzc19oZWFkZXIgPSAmZ3VjX2Z3LT5ndWNfZndfaGVhZGVyOworCXNp emVfdCBzaXplOwogCWludCBlcnI7CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJiZWZvcmUgcmVxdWVz dGluZyBmaXJtd2FyZTogR3VDIGZ3IGZldGNoIHN0YXR1cyAlc1xuIiwKQEAgLTQ4MiwxMiArNTAz LDMxIEBAIHN0YXRpYyB2b2lkIGd1Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBz dHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncpCiAKIAlEUk1fREVCVUdfRFJJVkVSKCJmZXRjaCBH dUMgZncgZnJvbSAlcyBzdWNjZWVkZWQsIGZ3ICVwXG4iLAogCQlndWNfZnctPmd1Y19md19wYXRo LCBmdyk7Ci0JRFJNX0RFQlVHX0RSSVZFUigiZmlybXdhcmUgZmlsZSBzaXplICV6dSAobWluaW11 bSAlenUsIG1heGltdW0gJXp1KVxuIiwKLQkJZnctPnNpemUsIG1pbnNpemUsIG1heHNpemUpOwog Ci0JLyogQ2hlY2sgdGhlIHNpemUgb2YgdGhlIGJsb2IgYmVmb2UgZXhhbWluaW5nIGJ1ZmZlciBj b250ZW50cyAqLwotCWlmIChmdy0+c2l6ZSA8IG1pbnNpemUgfHwgZnctPnNpemUgPiBtYXhzaXpl KQorCS8qIENoZWNrIHRoZSBzaXplIG9mIHRoZSBibG9iIGJlZm9yZSBleGFtaW5pbmcgYnVmZmVy IGNvbnRlbnRzICovCisJaWYgKGZ3LT5zaXplIDwgc2l6ZW9mKHN0cnVjdCBndWNfY3NzX2hlYWRl cikpIHsKKwkJRFJNX0VSUk9SKCJGaXJtd2FyZSBoZWFkZXIgaXMgbWlzc2luZ1xuIik7CisJCWdv dG8gZmFpbDsKKwl9CisKKwltZW1jcHkoY3NzX2hlYWRlciwgZnctPmRhdGEsIHNpemVvZihzdHJ1 Y3QgZ3VjX2Nzc19oZWFkZXIpKTsKKworCS8qIEF0IGxlYXN0LCBpdCBzaG91bGQgaGF2ZSBoZWFk ZXIsIHVDb2RlIGFuZCBSU0EuIFNpemUgb2YgYWxsIHRocmVlLiAqLworCXNpemUgPSAoY3NzX2hl YWRlci0+c2l6ZSAtIGNzc19oZWFkZXItPm1vZHVsdXNfc2l6ZSAtCisJCQljc3NfaGVhZGVyLT5l eHBvbmVudF9zaXplKSAqIHNpemVvZih1MzIpOworCWlmIChmdy0+c2l6ZSA8IHNpemUpIHsKKwkJ RFJNX0VSUk9SKCJNaXNzaW5nIGZpcm13YXJlIGNvbXBvbmVudHNcbiIpOwogCQlnb3RvIGZhaWw7 CisJfQorCisJLyogSGVhZGVyIGFuZCB1Q29kZSB3aWxsIGJlIGxvYWRlZCB0byBXT1BDTS4gU2l6 ZSBvZiB0aGUgdHdvLiAqLworCXNpemUgLT0gY3NzX2hlYWRlci0+a2V5X3NpemUgKiBzaXplb2Yo dTMyKTsKKworCS8qIFRvcCAzMmsgb2YgV09QQ00gaXMgcmVzZXJ2ZWQgKDhLIHN0YWNrICsgMjRr IFJDNiBjb250ZXh0KS4gKi8KKwlpZiAoc2l6ZSA+IEdVQ19XT1BDTV9TSVpFX1ZBTFVFIC0gMHg4 MDAwKSB7CisJCURSTV9FUlJPUigiRmlybXdhcmUgaXMgdG9vIGxhcmdlIHRvIGZpdCBpbiBXT1BD TVxuIik7CisJCWdvdG8gZmFpbDsKKwl9CiAKIAkvKgogCSAqIFRoZSBHdUMgZmlybXdhcmUgaW1h Z2UgaGFzIHRoZSB2ZXJzaW9uIG51bWJlciBlbWJlZGRlZCBhdCBhIHdlbGwta25vd24KQEAgLTQ5 NSw5ICs1MzUsOCBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQogCSAqIFRXTyBieXRlcyBlYWNoIChp LmUuIHUxNiksIGFsdGhvdWdoIGFsbCBwb2ludGVycyBhbmQgb2Zmc2V0cyBhcmUgZGVmaW5lZAog CSAqIGluIHRlcm1zIG9mIGJ5dGVzICh1OCkuCiAJICovCi0JY3NzX2hlYWRlciA9IGZ3LT5kYXRh ICsgVU9TX0NTU19IRUFERVJfT0ZGU0VUOwotCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kID0g Kih1MTYgKikoY3NzX2hlYWRlciArIFVPU19WRVJfTUFKT1JfT0ZGU0VUKTsKLQlndWNfZnctPmd1 Y19md19taW5vcl9mb3VuZCA9ICoodTE2ICopKGNzc19oZWFkZXIgKyBVT1NfVkVSX01JTk9SX09G RlNFVCk7CisJZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91bmQgPSBjc3NfaGVhZGVyLT5ndWNfc3df dmVyc2lvbiA+PiAxNjsKKwlndWNfZnctPmd1Y19md19taW5vcl9mb3VuZCA9IGNzc19oZWFkZXIt Pmd1Y19zd192ZXJzaW9uICYgMHhGRkZGOwogCiAJaWYgKGd1Y19mdy0+Z3VjX2Z3X21ham9yX2Zv dW5kICE9IGd1Y19mdy0+Z3VjX2Z3X21ham9yX3dhbnRlZCB8fAogCSAgICBndWNfZnctPmd1Y19m d19taW5vcl9mb3VuZCA8IGd1Y19mdy0+Z3VjX2Z3X21pbm9yX3dhbnRlZCkgewotLSAKMS45LjEK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==