From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arkadiusz Hiler Subject: [PATCH 7/8] drm/i915/guc: Simplify intel_guc_init_hw() Date: Wed, 22 Feb 2017 13:41:24 +0100 Message-ID: <20170222124125.4437-8-arkadiusz.hiler@intel.com> References: <20170222124125.4437-1-arkadiusz.hiler@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id AC3648961E for ; Wed, 22 Feb 2017 12:41:47 +0000 (UTC) In-Reply-To: <20170222124125.4437-1-arkadiusz.hiler@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 Q3VycmVudCB2ZXJzaW9uIG9mIGludGVsX2d1Y19pbml0X2h3KCkgZG9lcyBhIGxvdDoKIC0gY2Fy ZXMgYWJvdXQgc3VibWlzc2lvbgogLSBsb2FkcyBodWMKIC0gaW1wbGVtZW50IFdBCgpUaGlzIGNo YW5nZSBvZmZsb2FkcyBzb21lIG9mIHRoZSBsb2dpYyB0byBpbnRlbF91Y19sb2FkKCksIHdoaWNo IG5vdwpjYXJlcyBhYm91dCB0aGUgYWJvdmUuCgp2MjogcmVuYW1lIGd1Y19od19yZXNldCBhbmQg Zml4IHR5cG8gaW4gZGVmaW5lIG5hbWUgKE0uIFdhamRlY3prbykKdjM6IHJlbmFtZSBvbmNlIGFn YWluCgpDYzogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgpDYzog TWljaGFsIFdpbmlhcnNraSA8bWljaGFsLndpbmlhcnNraUBpbnRlbC5jb20+CkNjOiBNaWNoYWwg V2FqZGVjemtvIDxtaWNoYWwud2FqZGVjemtvQGludGVsLmNvbT4KQ2M6IERhbmllbGUgQ2VyYW9s byBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6 IEFya2FkaXVzeiBIaWxlciA8YXJrYWRpdXN6LmhpbGVyQGludGVsLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyB8IDEzNiArKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuYyAgICAgICAgIHwgMTA3ICsr KysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmgg ICAgICAgICB8ICAgNSArKwogNCBmaWxlcyBjaGFuZ2VkLCAxMjUgaW5zZXJ0aW9ucygrKSwgMTI1 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IGJiZTJkZjkuLmVjOTU4 Y2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtNDUxMiw3ICs0NTEyLDcgQEAgaW50IGk5 MTVfZ2VtX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWludGVs X21vY3NfaW5pdF9sM2NjX3RhYmxlKGRldl9wcml2KTsKIAogCS8qIFdlIGNhbid0IGVuYWJsZSBj b250ZXh0cyB1bnRpbCBhbGwgZmlybXdhcmUgaXMgbG9hZGVkICovCi0JcmV0ID0gaW50ZWxfZ3Vj X2luaXRfaHcoZGV2X3ByaXYpOworCXJldCA9IGludGVsX3VjX2luaXRfaHcoZGV2X3ByaXYpOwog CWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ndWNfbG9hZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9h ZGVyLmMKaW5kZXggZTc0YzEyNy4uNTQ5YTI1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2d1Y19sb2FkZXIuYwpAQCAtOTAsNyArOTAsNyBAQCBjb25zdCBjaGFyICppbnRlbF91Y19md19z dGF0dXNfcmVwcihlbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBzdGF0dXMpCiAJfQogfTsKIAotc3Rh dGljIHZvaWQgZ3VjX2ludGVycnVwdHNfcmVsZWFzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCit2b2lkIGludGVsX2d1Y19pbnRlcnJ1cHRzX3JlbGVhc2Uoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZTsKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKQEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMg dm9pZCBndWNfaW50ZXJydXB0c19yZWxlYXNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAlJOTE1X1dSSVRFKEdVQ19XRF9WRUNTX0lFUiwgMCk7CiB9CiAKLXN0YXRpYyB2b2lk IGd1Y19pbnRlcnJ1cHRzX2NhcHR1cmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQordm9pZCBpbnRlbF9ndWNfaW50ZXJydXB0c19jYXB0dXJlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJZW51 bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CkBAIC00MDgsMjQgKzQwOCw2IEBAIHN0YXRpYyBpbnQgZ3Vj X3Vjb2RlX3hmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXJldHVybiBy ZXQ7CiB9CiAKLXN0YXRpYyBpbnQgZ3VjX2h3X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKLXsKLQlpbnQgcmV0OwotCXUzMiBndWNfc3RhdHVzOwotCi0JcmV0ID0gaW50 ZWxfZ3VjX3Jlc2V0KGRldl9wcml2KTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiR3VDIHJl c2V0IGZhaWxlZCwgcmV0ID0gJWRcbiIsIHJldCk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JZ3Vj X3N0YXR1cyA9IEk5MTVfUkVBRChHVUNfU1RBVFVTKTsKLQlXQVJOKCEoZ3VjX3N0YXR1cyAmIEdT X01JQV9JTl9SRVNFVCksCi0JICAgICAiR3VDIHN0YXR1czogMHgleCwgTUlBIGNvcmUgZXhwZWN0 ZWQgdG8gYmUgaW4gcmVzZXRcbiIsIGd1Y19zdGF0dXMpOwotCi0JcmV0dXJuIHJldDsKLX0KLQog LyoqCiAgKiBpbnRlbF9ndWNfaW5pdF9odygpIC0gZmluaXNoIHByZXBhcmluZyB0aGUgR3VDIGZv ciBhY3Rpdml0eQogICogQGRldl9wcml2OglpOTE1IGRldmljZSBwcml2YXRlCkBAIC00NDMsMTQ3 ICs0MjUsNTMgQEAgaW50IGludGVsX2d1Y19pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+ Z3VjLmZ3OwogCWNvbnN0IGNoYXIgKmZ3X3BhdGggPSBndWNfZnctPnBhdGg7Ci0JaW50IHJldHJp ZXMsIHJldCwgZXJyOworCWludCByZXQ7CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgc3Rh dHVzOiBwYXRoICVzLCBmZXRjaCAlcywgbG9hZCAlc1xuIiwKIAkJZndfcGF0aCwKIAkJaW50ZWxf dWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5mZXRjaF9zdGF0dXMpLAogCQlpbnRlbF91Y19md19z dGF0dXNfcmVwcihndWNfZnctPmxvYWRfc3RhdHVzKSk7CiAKLQkvKiBMb2FkaW5nIGZvcmJpZGRl biwgb3Igbm8gZmlybXdhcmUgdG8gbG9hZD8gKi8KLQlpZiAoIWk5MTUuZW5hYmxlX2d1Y19sb2Fk aW5nKSB7Ci0JCWVyciA9IDA7Ci0JCWdvdG8gZmFpbDsKLQl9IGVsc2UgaWYgKGZ3X3BhdGggPT0g TlVMTCkgeworCWlmIChmd19wYXRoID09IE5VTEwpIHsKIAkJLyogRGV2aWNlIGlzIGtub3duIHRv IGhhdmUgbm8gdUNvZGUgKGUuZy4gbm8gR3VDKSAqLwotCQllcnIgPSAtRU5YSU87Ci0JCWdvdG8g ZmFpbDsKKwkJcmV0dXJuIC1FTlhJTzsKIAl9IGVsc2UgaWYgKCpmd19wYXRoID09ICdcMCcpIHsK IAkJLyogRGV2aWNlIGhhcyBhIEd1QyBidXQgd2UgZG9uJ3Qga25vdyB3aGF0IGYvdyB0byBsb2Fk PyAqLwogCQlXQVJOKDEsICJObyBHdUMgZmlybXdhcmUga25vd24gZm9yIHRoaXMgcGxhdGZvcm0h XG4iKTsKLQkJZXJyID0gLUVOT0RFVjsKLQkJZ290byBmYWlsOworCQlyZXR1cm4gLUVOT0RFVjsK IAl9CiAKIAkvKiBGZXRjaCBmYWlsZWQsIG9yIGFscmVhZHkgZmV0Y2hlZCBidXQgZmFpbGVkIHRv IGxvYWQ/ICovCiAJaWYgKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzICE9IElOVEVMX1VDX0ZJUk1XQVJF X1NVQ0NFU1MpIHsKLQkJZXJyID0gLUVJTzsKLQkJZ290byBmYWlsOworCQlyZXR1cm4gLUVJTzsK IAl9IGVsc2UgaWYgKGd1Y19mdy0+bG9hZF9zdGF0dXMgPT0gSU5URUxfVUNfRklSTVdBUkVfRkFJ TCkgewotCQllcnIgPSAtRU5PRVhFQzsKLQkJZ290byBmYWlsOworCQlyZXR1cm4gLUVOT0VYRUM7 CiAJfQogCi0JZ3VjX2ludGVycnVwdHNfcmVsZWFzZShkZXZfcHJpdik7Ci0JZ2VuOV9yZXNldF9n dWNfaW50ZXJydXB0cyhkZXZfcHJpdik7Ci0KLQkvKiBXZSBuZWVkIHRvIG5vdGlmeSB0aGUgZ3Vj IHdoZW5ldmVyIHdlIGNoYW5nZSB0aGUgR0dUVCAqLwotCWk5MTVfZ2d0dF9lbmFibGVfZ3VjKGRl dl9wcml2KTsKLQogCWd1Y19mdy0+bG9hZF9zdGF0dXMgPSBJTlRFTF9VQ19GSVJNV0FSRV9QRU5E SU5HOwogCiAJRFJNX0RFQlVHX0RSSVZFUigiR3VDIGZ3IHN0YXR1czogZmV0Y2ggJXMsIGxvYWQg JXNcbiIsCiAJCWludGVsX3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzKSwK IAkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5sb2FkX3N0YXR1cykpOwogCi0JZXJy ID0gaTkxNV9ndWNfc3VibWlzc2lvbl9pbml0KGRldl9wcml2KTsKLQlpZiAoZXJyKQotCQlnb3Rv IGZhaWw7Ci0KIAkvKgogCSAqIFdhRW5hYmxldUtlcm5lbEhlYWRlclZhbGlkRml4OnNrbCxieHQK IAkgKiBGb3IgQlhULCB0aGlzIGlzIG9ubHkgdXB0byBCMCBidXQgYmVsb3cgV0EgaXMgcmVxdWly ZWQgZm9yIGxhdGVyCiAJICogc3RlcHBpbmdzIGFsc28gc28gdGhpcyBpcyBleHRlbmRlZCBhcyB3 ZWxsLgogCSAqLwotCS8qIFdhRW5hYmxlR3VDQm9vdEhhc2hDaGVja05vdFNldDpza2wsYnh0ICov Ci0JZm9yIChyZXRyaWVzID0gMzsgOyApIHsKLQkJLyoKLQkJICogQWx3YXlzIHJlc2V0IHRoZSBH dUMganVzdCBiZWZvcmUgKHJlKWxvYWRpbmcsIHNvCi0JCSAqIHRoYXQgdGhlIHN0YXRlIGFuZCB0 aW1pbmcgYXJlIGZhaXJseSBwcmVkaWN0YWJsZQotCQkgKi8KLQkJZXJyID0gZ3VjX2h3X3Jlc2V0 KGRldl9wcml2KTsKLQkJaWYgKGVycikKLQkJCWdvdG8gZmFpbDsKKwlyZXQgPSBndWNfdWNvZGVf eGZlcihkZXZfcHJpdik7CiAKLQkJaW50ZWxfaHVjX2luaXRfaHcoZGV2X3ByaXYpOwotCQllcnIg PSBndWNfdWNvZGVfeGZlcihkZXZfcHJpdik7Ci0JCWlmICghZXJyKQotCQkJYnJlYWs7Ci0KLQkJ aWYgKC0tcmV0cmllcyA9PSAwKQotCQkJZ290byBmYWlsOwotCi0JCURSTV9JTkZPKCJHdUMgZncg bG9hZCBmYWlsZWQ6ICVkOyB3aWxsIHJlc2V0IGFuZCAiCi0JCQkgInJldHJ5ICVkIG1vcmUgdGlt ZShzKVxuIiwgZXJyLCByZXRyaWVzKTsKLQl9CisJaWYgKHJldCkKKwkJcmV0dXJuIC1FQUdBSU47 CiAKIAlndWNfZnctPmxvYWRfc3RhdHVzID0gSU5URUxfVUNfRklSTVdBUkVfU1VDQ0VTUzsKIAot CWludGVsX2d1Y19hdXRoX2h1YyhkZXZfcHJpdik7Ci0KLQlpZiAoaTkxNS5lbmFibGVfZ3VjX3N1 Ym1pc3Npb24pIHsKLQkJaWYgKGk5MTUuZ3VjX2xvZ19sZXZlbCA+PSAwKQotCQkJZ2VuOV9lbmFi bGVfZ3VjX2ludGVycnVwdHMoZGV2X3ByaXYpOwotCi0JCWVyciA9IGk5MTVfZ3VjX3N1Ym1pc3Np b25fZW5hYmxlKGRldl9wcml2KTsKLQkJaWYgKGVycikKLQkJCWdvdG8gZmFpbDsKLQkJZ3VjX2lu dGVycnVwdHNfY2FwdHVyZShkZXZfcHJpdik7Ci0JfQotCiAJRFJNX0lORk8oIkd1QyAlcyAoZmly bXdhcmUgJXMgW3ZlcnNpb24gJXUuJXVdKVxuIiwKIAkJIGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNz aW9uID8gInN1Ym1pc3Npb24gZW5hYmxlZCIgOiAibG9hZGVkIiwKIAkJIGd1Y19mdy0+cGF0aCwK IAkJIGd1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kLCBndWNfZnctPm1pbm9yX3Zlcl9mb3VuZCk7CiAK IAlyZXR1cm4gMDsKLQotZmFpbDoKLQlpZiAoZ3VjX2Z3LT5sb2FkX3N0YXR1cyA9PSBJTlRFTF9V Q19GSVJNV0FSRV9QRU5ESU5HKQotCQlndWNfZnctPmxvYWRfc3RhdHVzID0gSU5URUxfVUNfRklS TVdBUkVfRkFJTDsKLQotCWd1Y19pbnRlcnJ1cHRzX3JlbGVhc2UoZGV2X3ByaXYpOwotCWk5MTVf Z3VjX3N1Ym1pc3Npb25fZGlzYWJsZShkZXZfcHJpdik7Ci0JaTkxNV9ndWNfc3VibWlzc2lvbl9m aW5pKGRldl9wcml2KTsKLQlpOTE1X2dndHRfZGlzYWJsZV9ndWMoZGV2X3ByaXYpOwotCi0JLyoK LQkgKiBXZSd2ZSBmYWlsZWQgdG8gbG9hZCB0aGUgZmlybXdhcmUgOigKLQkgKgotCSAqIERlY2lk ZSB3aGV0aGVyIHRvIGRpc2FibGUgR3VDIHN1Ym1pc3Npb24gYW5kIGZhbGwgYmFjayB0bwotCSAq IGV4ZWNsaXN0IG1vZGUsIGFuZCB3aGV0aGVyIHRvIGhpZGUgdGhlIGVycm9yIGJ5IHJldHVybmlu ZwotCSAqIHplcm8gb3IgdG8gcmV0dXJuIC1FSU8sIHdoaWNoIHRoZSBjYWxsZXIgd2lsbCB0cmVh dCBhcyBhCi0JICogbm9uZmF0YWwgZXJyb3IgKGkuZS4gaXQgZG9lc24ndCBwcmV2ZW50IGRyaXZl ciBsb2FkLCBidXQKLQkgKiBtYXJrcyB0aGUgR1BVIGFzIHdlZGdlZCB1bnRpbCByZXNldCkuCi0J ICovCi0JaWYgKGk5MTUuZW5hYmxlX2d1Y19sb2FkaW5nID4gMSkgewotCQlyZXQgPSAtRUlPOwot CX0gZWxzZSBpZiAoaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24gPiAxKSB7Ci0JCXJldCA9IC1F SU87Ci0JfSBlbHNlIHsKLQkJcmV0ID0gMDsKLQl9Ci0KLQlpZiAoZXJyID09IDAgJiYgIUhBU19H VUNfVUNPREUoZGV2X3ByaXYpKQotCQk7CS8qIERvbid0IG1lbnRpb24gdGhlIEd1QyEgKi8KLQll bHNlIGlmIChlcnIgPT0gMCkKLQkJRFJNX0lORk8oIkd1QyBmaXJtd2FyZSBsb2FkIHNraXBwZWRc biIpOwotCWVsc2UgaWYgKHJldCAhPSAtRUlPKQotCQlEUk1fTk9URSgiR3VDIGZpcm13YXJlIGxv YWQgZmFpbGVkOiAlZFxuIiwgZXJyKTsKLQllbHNlCi0JCURSTV9XQVJOKCJHdUMgZmlybXdhcmUg bG9hZCBmYWlsZWQ6ICVkXG4iLCBlcnIpOwotCi0JaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNz aW9uKSB7Ci0JCWlmIChmd19wYXRoID09IE5VTEwpCi0JCQlEUk1fSU5GTygiR3VDIHN1Ym1pc3Np b24gd2l0aG91dCBmaXJtd2FyZSBub3Qgc3VwcG9ydGVkXG4iKTsKLQkJaWYgKHJldCA9PSAwKQot CQkJRFJNX05PVEUoIkZhbGxpbmcgYmFjayBmcm9tIEd1QyBzdWJtaXNzaW9uIHRvIGV4ZWNsaXN0 IG1vZGVcbiIpOwotCQllbHNlCi0JCQlEUk1fRVJST1IoIkd1QyBpbml0IGZhaWxlZDogJWRcbiIs IHJldCk7Ci0JfQotCWk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uID0gMDsKLQotCXJldHVybiBy ZXQ7CiB9CiAKIApAQCAtNjQ0LDcgKzUzMiw3IEBAIHZvaWQgaW50ZWxfZ3VjX2Zpbmkoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmo7CiAKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0JZ3Vj X2ludGVycnVwdHNfcmVsZWFzZShkZXZfcHJpdik7CisJaW50ZWxfZ3VjX2ludGVycnVwdHNfcmVs ZWFzZShkZXZfcHJpdik7CiAJaTkxNV9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKGRldl9wcml2KTsK IAlpOTE1X2d1Y19zdWJtaXNzaW9uX2ZpbmkoZGV2X3ByaXYpOwogCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfdWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmMKaW5kZXggOTM1 NTkwNy4uM2RlNWZiYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5jCkBAIC0yOSw2ICsyOSwyNyBA QAogc3RhdGljIHZvaWQgdWNfZmV0Y2hfZncoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCQkJICBzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KTsKIAorLyogUmVzZXQgR3VDIHBy b3ZpZGluZyB1cyB3aXRoIGZyZXNoIHN0YXRlIGZvciBib3RoIEd1QyBhbmQgSHVDLgorICovCitz dGF0aWMgaW50IF9fdWNfaHdfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQoreworCWludCByZXQ7CisJdTMyIGd1Y19zdGF0dXM7CisKKwlyZXQgPSBpbnRlbF9ndWNfcmVz ZXQoZGV2X3ByaXYpOworCWlmIChyZXQpIHsKKwkJRFJNX0VSUk9SKCJHdUMgcmVzZXQgZmFpbGVk LCByZXQgPSAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlndWNfc3RhdHVzID0g STkxNV9SRUFEKEdVQ19TVEFUVVMpOworCVdBUk4oIShndWNfc3RhdHVzICYgR1NfTUlBX0lOX1JF U0VUKSwKKwkgICAgICJHdUMgc3RhdHVzOiAweCV4LCBNSUEgY29yZSBleHBlY3RlZCB0byBiZSBp biByZXNldFxuIiwKKwkgICAgIGd1Y19zdGF0dXMpOworCisJcmV0dXJuIHJldDsKK30KKwogdm9p ZCBpbnRlbF91Y19zYW5pdGl6ZV9vcHRpb25zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIHsKIAlpZiAoIUhBU19HVUMoZGV2X3ByaXYpKSB7CkBAIC02OCw2ICs4OSw5MiBAQCB2 b2lkIGludGVsX3VjX2ZldGNoX2Z3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAlpbnRlbF9ndWNfZmV0Y2hfZncoJmRldl9wcml2LT5ndWMpOwogfQogCitpbnQgaW50ZWxfdWNf aW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJaW50IHJldCwg cmV0cmllczsKKworCS8qIGd1YyBub3QgZW5hYmxlZCwgbm90aGluZyB0byBkbyAqLworCWlmICgh aTkxNS5lbmFibGVfZ3VjX2xvYWRpbmcpCisJCXJldHVybiAwOworCisJaW50ZWxfZ3VjX2ludGVy cnVwdHNfcmVsZWFzZShkZXZfcHJpdik7CisJZ2VuOV9yZXNldF9ndWNfaW50ZXJydXB0cyhkZXZf cHJpdik7CisKKwkvKiBXZSBuZWVkIHRvIG5vdGlmeSB0aGUgZ3VjIHdoZW5ldmVyIHdlIGNoYW5n ZSB0aGUgR0dUVCAqLworCWk5MTVfZ2d0dF9lbmFibGVfZ3VjKGRldl9wcml2KTsKKworCWlmIChp OTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikgeworCQlyZXQgPSBpOTE1X2d1Y19zdWJtaXNzaW9u X2luaXQoZGV2X3ByaXYpOworCQlpZiAocmV0KQorCQkJZ290byBmYWlsOworCX0KKworCS8qIFdh RW5hYmxlR3VDQm9vdEhhc2hDaGVja05vdFNldDpza2wsYnh0ICovCisJcmV0cmllcyA9IEdVQ19X QV9IQVNIX0NIRUNLX05PVF9TRVRfQVRURU1QVFM7CisJd2hpbGUgKHJldHJpZXMtLSkgeworCQkv KgorCQkgKiBBbHdheXMgcmVzZXQgdGhlIEd1QyBqdXN0IGJlZm9yZSAocmUpbG9hZGluZywgc28K KwkJICogdGhhdCB0aGUgc3RhdGUgYW5kIHRpbWluZyBhcmUgZmFpcmx5IHByZWRpY3RhYmxlCisJ CSAqLworCQlyZXQgPSBfX3VjX2h3X3Jlc2V0KGRldl9wcml2KTsKKwkJaWYgKHJldCkKKwkJCWdv dG8gZmFpbDsKKworCQlpbnRlbF9odWNfaW5pdF9odyhkZXZfcHJpdik7CisJCXJldCA9IGludGVs X2d1Y19pbml0X2h3KGRldl9wcml2KTsKKwkJaWYgKHJldCA9PSAwIHx8IHJldCAhPSAtRUFHQUlO KQorCQkJYnJlYWs7CisKKwkJRFJNX0lORk8oIkd1QyBmdyBsb2FkIGZhaWxlZDogJWQ7IHdpbGwg cmVzZXQgYW5kICIKKwkJCSAicmV0cnkgJWQgbW9yZSB0aW1lKHMpXG4iLCByZXQsIHJldHJpZXMp OworCX0KKworCS8qIGRpZCB3ZSBzdWNjZWRlZCBvciBydW4gb3V0IG9mIHJldHJpZXM/ICovCisJ aWYgKHJldCkKKwkJZ290byBmYWlsOworCisJaW50ZWxfZ3VjX2F1dGhfaHVjKGRldl9wcml2KTsK KwlpZiAoaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pIHsKKwkJaWYgKGk5MTUuZ3VjX2xvZ19s ZXZlbCA+PSAwKQorCQkJZ2VuOV9lbmFibGVfZ3VjX2ludGVycnVwdHMoZGV2X3ByaXYpOworCisJ CXJldCA9IGk5MTVfZ3VjX3N1Ym1pc3Npb25fZW5hYmxlKGRldl9wcml2KTsKKwkJaWYgKHJldCkK KwkJCWdvdG8gZmFpbDsKKwkJaW50ZWxfZ3VjX2ludGVycnVwdHNfY2FwdHVyZShkZXZfcHJpdik7 CisJfQorCisJcmV0dXJuIDA7CisKK2ZhaWw6CisJLyoKKwkgKiBXZSd2ZSBmYWlsZWQgdG8gbG9h ZCB0aGUgZmlybXdhcmUgOigKKwkgKgorCSAqIERlY2lkZSB3aGV0aGVyIHRvIGRpc2FibGUgR3VD IHN1Ym1pc3Npb24gYW5kIGZhbGwgYmFjayB0bworCSAqIGV4ZWNsaXN0IG1vZGUsIGFuZCB3aGV0 aGVyIHRvIGhpZGUgdGhlIGVycm9yIGJ5IHJldHVybmluZworCSAqIHplcm8gb3IgdG8gcmV0dXJu IC1FSU8sIHdoaWNoIHRoZSBjYWxsZXIgd2lsbCB0cmVhdCBhcyBhCisJICogbm9uZmF0YWwgZXJy b3IgKGkuZS4gaXQgZG9lc24ndCBwcmV2ZW50IGRyaXZlciBsb2FkLCBidXQKKwkgKiBtYXJrcyB0 aGUgR1BVIGFzIHdlZGdlZCB1bnRpbCByZXNldCkuCisJICovCisJRFJNX0VSUk9SKCJHdUMgaW5p dCBmYWlsZWRcbiIpOworCWlmIChpOTE1LmVuYWJsZV9ndWNfbG9hZGluZyA+IDEgfHwgaTkxNS5l bmFibGVfZ3VjX3N1Ym1pc3Npb24gPiAxKQorCQlyZXQgPSAtRUlPOworCWVsc2UKKwkJcmV0ID0g MDsKKworCWlmIChpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikgeworCQlpOTE1LmVuYWJsZV9n dWNfc3VibWlzc2lvbiA9IDA7CisJCURSTV9OT1RFKCJGYWxsaW5nIGJhY2sgZnJvbSBHdUMgc3Vi bWlzc2lvbiB0byBleGVjbGlzdCBtb2RlXG4iKTsKKwl9CisKKwlpOTE1X2dndHRfZGlzYWJsZV9n dWMoZGV2X3ByaXYpOworCWludGVsX2d1Y19pbnRlcnJ1cHRzX3JlbGVhc2UoZGV2X3ByaXYpOwor CWk5MTVfZ3VjX3N1Ym1pc3Npb25fZGlzYWJsZShkZXZfcHJpdik7CisJaTkxNV9ndWNfc3VibWlz c2lvbl9maW5pKGRldl9wcml2KTsKKworCXJldHVybiByZXQ7Cit9CisKIC8qCiAgKiBSZWFkIEd1 QyBjb21tYW5kL3N0YXR1cyByZWdpc3RlciAoU09GVF9TQ1JBVENIXzApCiAgKiBSZXR1cm4gdHJ1 ZSBpZiBpdCBjb250YWlucyBhIHJlc3BvbnNlIHJhdGhlciB0aGFuIGEgY29tbWFuZApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3VjLmgKaW5kZXggY2Y1ZDBmNC4uNzIxYTZjMiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF91Yy5oCkBAIC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiaW50ZWxfcmluZ2J1ZmZlci5oIgog CiAjaW5jbHVkZSAiaTkxNV92bWEuaCIKKy8qIFdhRW5hYmxlR3VDQm9vdEhhc2hDaGVja05vdFNl dDpza2wsYnh0ICovCisjZGVmaW5lIEdVQ19XQV9IQVNIX0NIRUNLX05PVF9TRVRfQVRURU1QVFMg MwogCiBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Q7CiAKQEAgLTE4OSw2ICsxOTEsNyBAQCBz dHJ1Y3QgaW50ZWxfaHVjIHsKIHZvaWQgaW50ZWxfdWNfc2FuaXRpemVfb3B0aW9ucyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRlbF91Y19pbml0X2Vhcmx5KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGludGVsX3VjX2ZldGNoX2Z3 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CitpbnQgaW50ZWxfdWNfaW5pdF9o dyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogaW50IGludGVsX2d1Y19zZW5k KHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24sIHUzMiBsZW4pOwogaW50 IGludGVsX2d1Y19zYW1wbGVfZm9yY2V3YWtlKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7CiAKQEAg LTE5OSw2ICsyMDIsOCBAQCB2b2lkIGludGVsX2d1Y19maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7CiBjb25zdCBjaGFyICppbnRlbF91Y19md19zdGF0dXNfcmVwcihlbnVt IGludGVsX3VjX2Z3X3N0YXR1cyBzdGF0dXMpOwogaW50IGludGVsX2d1Y19zdXNwZW5kKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBpbnQgaW50ZWxfZ3VjX3Jlc3VtZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBpbnRlbF9ndWNfaW50ZXJydXB0 c19yZWxlYXNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGludGVs X2d1Y19pbnRlcnJ1cHRzX2NhcHR1cmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KTsKIHUzMiBpbnRlbF9ndWNfd29wY21fc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwogCiAvKiBpOTE1X2d1Y19zdWJtaXNzaW9uLmMgKi8KLS0gCjIuOS4zCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK