From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v2 5/7] drm/i915: sseu: Convert subslice count fields to subslice mask Date: Wed, 31 Aug 2016 19:13:05 +0300 Message-ID: <1472659987-10417-6-git-send-email-imre.deak@intel.com> References: <1472659987-10417-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1968E6E7CC for ; Wed, 31 Aug 2016 16:13:18 +0000 (UTC) In-Reply-To: <1472659987-10417-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 Cc: Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org SW4gYW4gdXBjb21pbmcgcGF0Y2ggd2UnbGwgbmVlZCB0aGUgYWN0dWFsIG1hc2sgb2Ygc3Vic2xp Y2VzIGluIGFkZGl0aW9uCnRvIHRoZWlyIGNvdW50LCBzbyBjb252ZXJ0IHRoZSBzdWJzbGljZV9w ZXJfc2xpY2UgZmllbGQgdG8gYSBtYXNrLgpBbHNvIHdlIGNhbiBlYXNpbHkgY2FsY3VsYXRlIHN1 YnNsaWNlX3RvdGFsIGZyb20gdGhlIG90aGVyIGZpZWxkcywgc28KaW5zdGVhZCBvZiBzdG9yaW5n IGEgY2FjaGVkIHZlcnNpb24gb2YgdGhpcywgYWRkIGEgaGVscGVyIHRvIGNhbGN1bGF0ZQppdC4K CnYyOgotIFVzZSBod2VpZ2h0OCgpIG9uIHU4IHR5cGVkIHZhcnMgaW5zdGVhZCBvZiBod2VpZ2h0 MzIoKS4gKEJlbikKClJldmlld2VkLWJ5OiBSb2JlcnQgQnJhZ2cgPHJvYmVydEBzaXhieW5pbmUu b3JnPiAodjEpClJldmlld2VkLWJ5OiBCZW4gV2lkYXdza3kgPGJlbmphbWluLndpZGF3c2t5QGlu dGVsLmNvbT4gKHYxKQpUZXN0ZWQtYnk6IEJlbiBXaWRhd3NreSA8YmVuamFtaW4ud2lkYXdza3lA aW50ZWwuY29tPiAodjEpClNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgIHwgMzcg KysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAg ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICB8ICA4 ICsrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMgfCA2OSArKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMgICAgICAgICB8ICAyICstCiA1IGZpbGVzIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyks IDYzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggMGFm MDQ3ZC4uZTRhMDQ5NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTUwMjUs NyArNTAyNSw3IEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfc3NldV9kZXZpY2Vfc3RhdHVzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCWNvbnRpbnVlOwogCiAJCXNzZXUt PnNsaWNlX21hc2sgPSBCSVQoMCk7Ci0JCXNzZXUtPnN1YnNsaWNlX3Blcl9zbGljZSsrOworCQlz c2V1LT5zdWJzbGljZV9tYXNrIHw9IEJJVChzcyk7CiAJCWV1X2NudCA9ICgoc2lnMVtzc10gJiBD SFZfRVUwOF9QR19FTkFCTEUpID8gMCA6IDIpICsKIAkJCSAoKHNpZzFbc3NdICYgQ0hWX0VVMTlf UEdfRU5BQkxFKSA/IDAgOiAyKSArCiAJCQkgKChzaWcxW3NzXSAmIENIVl9FVTIxMF9QR19FTkFC TEUpID8gMCA6IDIpICsKQEAgLTUwMzQsNyArNTAzNCw2IEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZp ZXdfc3NldV9kZXZpY2Vfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAkJc3NldS0+ZXVfcGVyX3N1YnNsaWNlID0gbWF4X3QodW5zaWduZWQgaW50LAogCQkJCQkgICAg ICBzc2V1LT5ldV9wZXJfc3Vic2xpY2UsIGV1X2NudCk7CiAJfQotCXNzZXUtPnN1YnNsaWNlX3Rv dGFsID0gc3NldS0+c3Vic2xpY2VfcGVyX3NsaWNlOwogfQogCiBzdGF0aWMgdm9pZCBnZW45X3Nz ZXVfZGV2aWNlX3N0YXR1cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC01 MDY2LDggKzUwNjUsNiBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVfZGV2aWNlX3N0YXR1cyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCSAgICAgR0VOOV9QR0NUTF9TU0JfRVUz MTFfQUNLOwogCiAJZm9yIChzID0gMDsgcyA8IHNfbWF4OyBzKyspIHsKLQkJdW5zaWduZWQgaW50 IHNzX2NudCA9IDA7Ci0KIAkJaWYgKChzX3JlZ1tzXSAmIEdFTjlfUEdDVExfU0xJQ0VfQUNLKSA9 PSAwKQogCQkJLyogc2tpcCBkaXNhYmxlZCBzbGljZSAqLwogCQkJY29udGludWU7CkBAIC01MDc1 LDE4ICs1MDcyLDE5IEBAIHN0YXRpYyB2b2lkIGdlbjlfc3NldV9kZXZpY2Vfc3RhdHVzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJc3NldS0+c2xpY2VfbWFzayB8PSBCSVQo cyk7CiAKIAkJaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2 KSkKLQkJCXNzX2NudCA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1LnN1YnNsaWNlX3Blcl9z bGljZTsKKwkJCXNzZXUtPnN1YnNsaWNlX21hc2sgPQorCQkJCUlOVEVMX0lORk8oZGV2X3ByaXYp LT5zc2V1LnN1YnNsaWNlX21hc2s7CiAKIAkJZm9yIChzcyA9IDA7IHNzIDwgc3NfbWF4OyBzcysr KSB7CiAJCQl1bnNpZ25lZCBpbnQgZXVfY250OwogCi0JCQlpZiAoSVNfQlJPWFRPTihkZXZfcHJp dikgJiYKLQkJCSAgICAhKHNfcmVnW3NdICYgKEdFTjlfUEdDVExfU1NfQUNLKHNzKSkpKQotCQkJ CS8qIHNraXAgZGlzYWJsZWQgc3Vic2xpY2UgKi8KLQkJCQljb250aW51ZTsKKwkJCWlmIChJU19C Uk9YVE9OKGRldl9wcml2KSkgeworCQkJCWlmICghKHNfcmVnW3NdICYgKEdFTjlfUEdDVExfU1Nf QUNLKHNzKSkpKQorCQkJCQkvKiBza2lwIGRpc2FibGVkIHN1YnNsaWNlICovCisJCQkJCWNvbnRp bnVlOwogCi0JCQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCi0JCQkJc3NfY250Kys7CisJCQkJ c3NldS0+c3Vic2xpY2VfbWFzayB8PSBCSVQoc3MpOworCQkJfQogCiAJCQlldV9jbnQgPSAyICog aHdlaWdodDMyKGV1X3JlZ1syKnMgKyBzcy8yXSAmCiAJCQkJCSAgICAgICBldV9tYXNrW3NzJTJd KTsKQEAgLTUwOTUsMTEgKzUwOTMsNiBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVfZGV2aWNlX3N0 YXR1cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJCQkgICAgICBzc2V1 LT5ldV9wZXJfc3Vic2xpY2UsCiAJCQkJCQkgICAgICBldV9jbnQpOwogCQl9Ci0KLQkJc3NldS0+ c3Vic2xpY2VfdG90YWwgKz0gc3NfY250OwotCQlzc2V1LT5zdWJzbGljZV9wZXJfc2xpY2UgPSBt YXhfdCh1bnNpZ25lZCBpbnQsCi0JCQkJCQkgc3NldS0+c3Vic2xpY2VfcGVyX3NsaWNlLAotCQkJ CQkJIHNzX2NudCk7CiAJfQogfQogCkBAIC01MTEyLDEzICs1MTA1LDExIEBAIHN0YXRpYyB2b2lk IGJyb2Fkd2VsbF9zc2V1X2RldmljZV9zdGF0dXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCXNzZXUtPnNsaWNlX21hc2sgPSBzbGljZV9pbmZvICYgR0VOOF9MU0xJQ0VTVEFU X01BU0s7CiAKIAlpZiAoc3NldS0+c2xpY2VfbWFzaykgewotCQlzc2V1LT5zdWJzbGljZV9wZXJf c2xpY2UgPQotCQkJCUlOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1LnN1YnNsaWNlX3Blcl9zbGlj ZTsKLQkJc3NldS0+c3Vic2xpY2VfdG90YWwgPSBod2VpZ2h0OChzc2V1LT5zbGljZV9tYXNrKSAq Ci0JCQkJICAgICAgIHNzZXUtPnN1YnNsaWNlX3Blcl9zbGljZTsKKwkJc3NldS0+c3Vic2xpY2Vf bWFzayA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1LnN1YnNsaWNlX21hc2s7CiAJCXNzZXUt PmV1X3Blcl9zdWJzbGljZSA9CiAJCQkJSU5URUxfSU5GTyhkZXZfcHJpdiktPnNzZXUuZXVfcGVy X3N1YnNsaWNlOwotCQlzc2V1LT5ldV90b3RhbCA9IHNzZXUtPmV1X3Blcl9zdWJzbGljZSAqIHNz ZXUtPnN1YnNsaWNlX3RvdGFsOworCQlzc2V1LT5ldV90b3RhbCA9IHNzZXUtPmV1X3Blcl9zdWJz bGljZSAqCisJCQkJIHNzZXVfc3Vic2xpY2VfdG90YWwoc3NldSk7CiAKIAkJLyogc3VidHJhY3Qg ZnVzZWQgb2ZmIEVVKHMpIGZyb20gZW5hYmxlZCBzbGljZShzKSAqLwogCQlmb3IgKHMgPSAwOyBz IDwgaHdlaWdodDgoc3NldS0+c2xpY2VfbWFzayk7IHMrKykgewpAQCAtNTEzOSw5ICs1MTMwLDkg QEAgc3RhdGljIHZvaWQgaTkxNV9wcmludF9zc2V1X2luZm8oc3RydWN0IHNlcV9maWxlICptLCBi b29sIGlzX2F2YWlsYWJsZV9pbmZvLAogCXNlcV9wcmludGYobSwgIiAgJXMgU2xpY2UgVG90YWw6 ICV1XG4iLCB0eXBlLAogCQkgICBod2VpZ2h0OChzc2V1LT5zbGljZV9tYXNrKSk7CiAJc2VxX3By aW50ZihtLCAiICAlcyBTdWJzbGljZSBUb3RhbDogJXVcbiIsIHR5cGUsCi0JCSAgIHNzZXUtPnN1 YnNsaWNlX3RvdGFsKTsKKwkJICAgc3NldV9zdWJzbGljZV90b3RhbChzc2V1KSk7CiAJc2VxX3By aW50ZihtLCAiICAlcyBTdWJzbGljZSBQZXIgU2xpY2U6ICV1XG4iLCB0eXBlLAotCQkgICBzc2V1 LT5zdWJzbGljZV9wZXJfc2xpY2UpOworCQkgICBod2VpZ2h0OChzc2V1LT5zdWJzbGljZV9tYXNr KSk7CiAJc2VxX3ByaW50ZihtLCAiICAlcyBFVSBUb3RhbDogJXVcbiIsIHR5cGUsCiAJCSAgIHNz ZXUtPmV1X3RvdGFsKTsKIAlzZXFfcHJpbnRmKG0sICIgICVzIEVVIFBlciBTdWJzbGljZTogJXVc biIsIHR5cGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCAzYzQxN2IyLi45NzgxMDdjIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTMzMSw3ICszMzEsNyBAQCBzdGF0aWMgaW50IGk5 MTVfZ2V0cGFyYW0oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJdmFsdWUg PSAxOwogCQlicmVhazsKIAljYXNlIEk5MTVfUEFSQU1fU1VCU0xJQ0VfVE9UQUw6Ci0JCXZhbHVl ID0gSU5URUxfSU5GTyhkZXYpLT5zc2V1LnN1YnNsaWNlX3RvdGFsOworCQl2YWx1ZSA9IHNzZXVf c3Vic2xpY2VfdG90YWwoJklOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1KTsKIAkJaWYgKCF2YWx1 ZSkKIAkJCXJldHVybiAtRU5PREVWOwogCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmlu ZGV4IDk1MjU3NjIuLjUyZDcwOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtNjczLDgg KzY3Myw3IEBAIHN0cnVjdCBpbnRlbF9jc3IgewogCiBzdHJ1Y3Qgc3NldV9kZXZfaW5mbyB7CiAJ dTggc2xpY2VfbWFzazsKLQl1OCBzdWJzbGljZV90b3RhbDsKLQl1OCBzdWJzbGljZV9wZXJfc2xp Y2U7CisJdTggc3Vic2xpY2VfbWFzazsKIAl1OCBldV90b3RhbDsKIAl1OCBldV9wZXJfc3Vic2xp Y2U7CiAJdTggbWluX2V1X2luX3Bvb2w7CkBAIC02ODUsNiArNjg0LDExIEBAIHN0cnVjdCBzc2V1 X2Rldl9pbmZvIHsKIAl1OCBoYXNfZXVfcGc6MTsKIH07CiAKK3N0YXRpYyBpbmxpbmUgdW5zaWdu ZWQgaW50IHNzZXVfc3Vic2xpY2VfdG90YWwoY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKnNz ZXUpCit7CisJcmV0dXJuIGh3ZWlnaHQ4KHNzZXUtPnNsaWNlX21hc2spICogaHdlaWdodDgoc3Nl dS0+c3Vic2xpY2VfbWFzayk7Cit9CisKIHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyB7CiAJdTMy IGRpc3BsYXlfbW1pb19vZmZzZXQ7CiAJdTE2IGRldmljZV9pZDsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZXZpY2VfaW5mby5jCmluZGV4IDEzOWQ1MjkuLjBiZGVjNWMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uYwpAQCAtNTQsMjYgKzU0LDI1IEBAIHN0YXRp YyB2b2lkIGNoZXJyeXZpZXdfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogCXNzZXUtPnNsaWNlX21hc2sgPSBCSVQoMCk7CiAKIAlpZiAoIShmdXNlICYg Q0hWX0ZHVF9ESVNBQkxFX1NTMCkpIHsKLQkJc3NldS0+c3Vic2xpY2VfcGVyX3NsaWNlKys7CisJ CXNzZXUtPnN1YnNsaWNlX21hc2sgfD0gQklUKDApOwogCQlldV9kaXMgPSBmdXNlICYgKENIVl9G R1RfRVVfRElTX1NTMF9SMF9NQVNLIHwKIAkJCQkgQ0hWX0ZHVF9FVV9ESVNfU1MwX1IxX01BU0sp OwogCQlzc2V1LT5ldV90b3RhbCArPSA4IC0gaHdlaWdodDMyKGV1X2Rpcyk7CiAJfQogCiAJaWYg KCEoZnVzZSAmIENIVl9GR1RfRElTQUJMRV9TUzEpKSB7Ci0JCXNzZXUtPnN1YnNsaWNlX3Blcl9z bGljZSsrOworCQlzc2V1LT5zdWJzbGljZV9tYXNrIHw9IEJJVCgxKTsKIAkJZXVfZGlzID0gZnVz ZSAmIChDSFZfRkdUX0VVX0RJU19TUzFfUjBfTUFTSyB8CiAJCQkJIENIVl9GR1RfRVVfRElTX1NT MV9SMV9NQVNLKTsKIAkJc3NldS0+ZXVfdG90YWwgKz0gOCAtIGh3ZWlnaHQzMihldV9kaXMpOwog CX0KIAotCXNzZXUtPnN1YnNsaWNlX3RvdGFsID0gc3NldS0+c3Vic2xpY2VfcGVyX3NsaWNlOwog CS8qCiAJICogQ0hWIGV4cGVjdGVkIHRvIGFsd2F5cyBoYXZlIGEgdW5pZm9ybSBkaXN0cmlidXRp b24gb2YgRVUKIAkgKiBhY3Jvc3Mgc3Vic2xpY2VzLgogCSovCi0Jc3NldS0+ZXVfcGVyX3N1YnNs aWNlID0gc3NldS0+c3Vic2xpY2VfdG90YWwgPwotCQkJCXNzZXUtPmV1X3RvdGFsIC8gc3NldS0+ c3Vic2xpY2VfdG90YWwgOgorCXNzZXUtPmV1X3Blcl9zdWJzbGljZSA9IHNzZXVfc3Vic2xpY2Vf dG90YWwoc3NldSkgPworCQkJCXNzZXUtPmV1X3RvdGFsIC8gc3NldV9zdWJzbGljZV90b3RhbChz c2V1KSA6CiAJCQkJMDsKIAkvKgogCSAqIENIViBzdXBwb3J0cyBzdWJzbGljZSBwb3dlciBnYXRp bmcgb24gZGV2aWNlcyB3aXRoIG1vcmUgdGhhbgpAQCAtODEsNyArODAsNyBAQCBzdGF0aWMgdm9p ZCBjaGVycnl2aWV3X3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAkgKiBtb3JlIHRoYW4gb25lIEVVIHBhaXIgcGVyIHN1YnNsaWNlLgogCSovCiAJc3Nl dS0+aGFzX3NsaWNlX3BnID0gMDsKLQlzc2V1LT5oYXNfc3Vic2xpY2VfcGcgPSAoc3NldS0+c3Vi c2xpY2VfdG90YWwgPiAxKTsKKwlzc2V1LT5oYXNfc3Vic2xpY2VfcGcgPSBzc2V1X3N1YnNsaWNl X3RvdGFsKHNzZXUpID4gMTsKIAlzc2V1LT5oYXNfZXVfcGcgPSAoc3NldS0+ZXVfcGVyX3N1YnNs aWNlID4gMik7CiB9CiAKQEAgLTkxLDIwICs5MCwxOSBAQCBzdGF0aWMgdm9pZCBnZW45X3NzZXVf aW5mb19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlzdHJ1Y3Qgc3Nl dV9kZXZfaW5mbyAqc3NldSA9ICZpbmZvLT5zc2V1OwogCWludCBzX21heCA9IDMsIHNzX21heCA9 IDQsIGV1X21heCA9IDg7CiAJaW50IHMsIHNzOwotCXUzMiBmdXNlMiwgc3NfZGlzYWJsZSwgZXVf ZGlzYWJsZTsKKwl1MzIgZnVzZTIsIGV1X2Rpc2FibGU7CiAJdTggZXVfbWFzayA9IDB4ZmY7CiAK IAlmdXNlMiA9IEk5MTVfUkVBRChHRU44X0ZVU0UyKTsKIAlzc2V1LT5zbGljZV9tYXNrID0gKGZ1 c2UyICYgR0VOOF9GMl9TX0VOQV9NQVNLKSA+PiBHRU44X0YyX1NfRU5BX1NISUZUOwotCXNzX2Rp c2FibGUgPSAoZnVzZTIgJiBHRU45X0YyX1NTX0RJU19NQVNLKSA+PiBHRU45X0YyX1NTX0RJU19T SElGVDsKIAogCS8qCiAJICogVGhlIHN1YnNsaWNlIGRpc2FibGUgZmllbGQgaXMgZ2xvYmFsLCBp LmUuIGl0IGFwcGxpZXMKIAkgKiB0byBlYWNoIG9mIHRoZSBlbmFibGVkIHNsaWNlcy4KIAkqLwot CXNzZXUtPnN1YnNsaWNlX3Blcl9zbGljZSA9IHNzX21heCAtIGh3ZWlnaHQzMihzc19kaXNhYmxl KTsKLQlzc2V1LT5zdWJzbGljZV90b3RhbCA9IGh3ZWlnaHQ4KHNzZXUtPnNsaWNlX21hc2spICoK LQkJCSAgICAgICBzc2V1LT5zdWJzbGljZV9wZXJfc2xpY2U7CisJc3NldS0+c3Vic2xpY2VfbWFz ayA9ICgxIDw8IHNzX21heCkgLSAxOworCXNzZXUtPnN1YnNsaWNlX21hc2sgJj0gfigoZnVzZTIg JiBHRU45X0YyX1NTX0RJU19NQVNLKSA+PgorCQkJCSBHRU45X0YyX1NTX0RJU19TSElGVCk7CiAK IAkvKgogCSAqIEl0ZXJhdGUgdGhyb3VnaCBlbmFibGVkIHNsaWNlcyBhbmQgc3Vic2xpY2VzIHRv CkBAIC0xMTksNyArMTE3LDcgQEAgc3RhdGljIHZvaWQgZ2VuOV9zc2V1X2luZm9faW5pdChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWZvciAoc3MgPSAwOyBzcyA8IHNzX21h eDsgc3MrKykgewogCQkJaW50IGV1X3Blcl9zczsKIAotCQkJaWYgKHNzX2Rpc2FibGUgJiBCSVQo c3MpKQorCQkJaWYgKCEoc3NldS0+c3Vic2xpY2VfbWFzayAmIEJJVChzcykpKQogCQkJCS8qIHNr aXAgZGlzYWJsZWQgc3Vic2xpY2UgKi8KIAkJCQljb250aW51ZTsKIApAQCAtMTQ1LDkgKzE0Myw5 IEBAIHN0YXRpYyB2b2lkIGdlbjlfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogCSAqIHJlY292ZXJ5LiBCWFQgaXMgZXhwZWN0ZWQgdG8gYmUgcGVyZmVj dGx5IHVuaWZvcm0gaW4gRVUKIAkgKiBkaXN0cmlidXRpb24uCiAJKi8KLQlzc2V1LT5ldV9wZXJf c3Vic2xpY2UgPSBzc2V1LT5zdWJzbGljZV90b3RhbCA/CisJc3NldS0+ZXVfcGVyX3N1YnNsaWNl ID0gc3NldV9zdWJzbGljZV90b3RhbChzc2V1KSA/CiAJCQkJRElWX1JPVU5EX1VQKHNzZXUtPmV1 X3RvdGFsLAotCQkJCQkgICAgIHNzZXUtPnN1YnNsaWNlX3RvdGFsKSA6IDA7CisJCQkJCSAgICAg c3NldV9zdWJzbGljZV90b3RhbChzc2V1KSkgOiAwOwogCS8qCiAJICogU0tMIHN1cHBvcnRzIHNs aWNlIHBvd2VyIGdhdGluZyBvbiBkZXZpY2VzIHdpdGggbW9yZSB0aGFuCiAJICogb25lIHNsaWNl LCBhbmQgc3VwcG9ydHMgRVUgcG93ZXIgZ2F0aW5nIG9uIGRldmljZXMgd2l0aApAQCAtMTYwLDEx ICsxNTgsMTEgQEAgc3RhdGljIHZvaWQgZ2VuOV9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCShJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZ TEFLRShkZXZfcHJpdikpICYmCiAJCWh3ZWlnaHQ4KHNzZXUtPnNsaWNlX21hc2spID4gMTsKIAlz c2V1LT5oYXNfc3Vic2xpY2VfcGcgPQotCQlJU19CUk9YVE9OKGRldl9wcml2KSAmJiBzc2V1LT5z dWJzbGljZV90b3RhbCA+IDE7CisJCUlTX0JST1hUT04oZGV2X3ByaXYpICYmIHNzZXVfc3Vic2xp Y2VfdG90YWwoc3NldSkgPiAxOwogCXNzZXUtPmhhc19ldV9wZyA9IHNzZXUtPmV1X3Blcl9zdWJz bGljZSA+IDI7CiAKIAlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKLSNkZWZpbmUgSVNfU1Nf RElTQUJMRUQoX3NzX2Rpc2FibGUsIHNzKSAgICAoX3NzX2Rpc2FibGUgJiBCSVQoc3MpKQorI2Rl ZmluZSBJU19TU19ESVNBQkxFRChzcykJKCEoc3NldS0+c3Vic2xpY2VfbWFzayAmIEJJVChzcykp KQogCQkvKgogCQkgKiBUaGVyZSBpcyBhIEhXIGlzc3VlIGluIDJ4NiBmdXNlZCBkb3duIHBhcnRz IHRoYXQgcmVxdWlyZXMKIAkJICogUG9vbGVkIEVVIHRvIGJlIGVuYWJsZWQgYXMgYSBXQS4gVGhl IHBvb2wgY29uZmlndXJhdGlvbgpAQCAtMTcyLDE2ICsxNzAsMTUgQEAgc3RhdGljIHZvaWQgZ2Vu OV9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCSAq IGRvZXNuJ3QgYWZmZWN0IGlmIHRoZSBkZXZpY2UgaGFzIGFsbCAzIHN1YnNsaWNlcyBlbmFibGVk LgogCQkgKi8KIAkJLyogV2FFbmFibGVQb29sZWRFdUZvcjJ4NjpieHQgKi8KLQkJaW5mby0+aGFz X3Bvb2xlZF9ldSA9ICgoc3NldS0+c3Vic2xpY2VfcGVyX3NsaWNlID09IDMpIHx8Ci0JCQkJICAg ICAgIChzc2V1LT5zdWJzbGljZV9wZXJfc2xpY2UgPT0gMiAmJgorCQlpbmZvLT5oYXNfcG9vbGVk X2V1ID0gKChod2VpZ2h0OChzc2V1LT5zdWJzbGljZV9tYXNrKSA9PSAzKSB8fAorCQkJCSAgICAg ICAoaHdlaWdodDgoc3NldS0+c3Vic2xpY2VfbWFzaykgPT0gMiAmJgogCQkJCQlJTlRFTF9SRVZJ RChkZXZfcHJpdikgPCBCWFRfUkVWSURfQzApKTsKIAogCQlzc2V1LT5taW5fZXVfaW5fcG9vbCA9 IDA7CiAJCWlmIChpbmZvLT5oYXNfcG9vbGVkX2V1KSB7Ci0JCQlpZiAoSVNfU1NfRElTQUJMRUQo c3NfZGlzYWJsZSwgMCkgfHwKLQkJCSAgICBJU19TU19ESVNBQkxFRChzc19kaXNhYmxlLCAyKSkK KwkJCWlmIChJU19TU19ESVNBQkxFRCgyKSB8fCBJU19TU19ESVNBQkxFRCgwKSkKIAkJCQlzc2V1 LT5taW5fZXVfaW5fcG9vbCA9IDM7Ci0JCQllbHNlIGlmIChJU19TU19ESVNBQkxFRChzc19kaXNh YmxlLCAxKSkKKwkJCWVsc2UgaWYgKElTX1NTX0RJU0FCTEVEKDEpKQogCQkJCXNzZXUtPm1pbl9l dV9pbl9wb29sID0gNjsKIAkJCWVsc2UKIAkJCQlzc2V1LT5taW5fZXVfaW5fcG9vbCA9IDk7CkBA IC0xOTUsMTEgKzE5MiwxNyBAQCBzdGF0aWMgdm9pZCBicm9hZHdlbGxfc3NldV9pbmZvX2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBzc2V1X2Rldl9pbmZv ICpzc2V1ID0gJm1rd3JpdGVfZGV2aWNlX2luZm8oZGV2X3ByaXYpLT5zc2V1OwogCWNvbnN0IGlu dCBzX21heCA9IDMsIHNzX21heCA9IDMsIGV1X21heCA9IDg7CiAJaW50IHMsIHNzOwotCXUzMiBm dXNlMiwgZXVfZGlzYWJsZVtzX21heF0sIHNzX2Rpc2FibGU7CisJdTMyIGZ1c2UyLCBldV9kaXNh YmxlW3NfbWF4XTsKIAogCWZ1c2UyID0gSTkxNV9SRUFEKEdFTjhfRlVTRTIpOwogCXNzZXUtPnNs aWNlX21hc2sgPSAoZnVzZTIgJiBHRU44X0YyX1NfRU5BX01BU0spID4+IEdFTjhfRjJfU19FTkFf U0hJRlQ7Ci0Jc3NfZGlzYWJsZSA9IChmdXNlMiAmIEdFTjhfRjJfU1NfRElTX01BU0spID4+IEdF TjhfRjJfU1NfRElTX1NISUZUOworCS8qCisJICogVGhlIHN1YnNsaWNlIGRpc2FibGUgZmllbGQg aXMgZ2xvYmFsLCBpLmUuIGl0IGFwcGxpZXMKKwkgKiB0byBlYWNoIG9mIHRoZSBlbmFibGVkIHNs aWNlcy4KKwkgKi8KKwlzc2V1LT5zdWJzbGljZV9tYXNrID0gQklUKHNzX21heCkgLSAxOworCXNz ZXUtPnN1YnNsaWNlX21hc2sgJj0gfigoZnVzZTIgJiBHRU44X0YyX1NTX0RJU19NQVNLKSA+Pgor CQkJCSBHRU44X0YyX1NTX0RJU19TSElGVCk7CiAKIAlldV9kaXNhYmxlWzBdID0gSTkxNV9SRUFE KEdFTjhfRVVfRElTQUJMRTApICYgR0VOOF9FVV9ESVMwX1MwX01BU0s7CiAJZXVfZGlzYWJsZVsx XSA9IChJOTE1X1JFQUQoR0VOOF9FVV9ESVNBQkxFMCkgPj4gR0VOOF9FVV9ESVMwX1MxX1NISUZU KSB8CkBAIC0yMTAsMTQgKzIxMyw2IEBAIHN0YXRpYyB2b2lkIGJyb2Fkd2VsbF9zc2V1X2luZm9f aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCQkgKDMyIC0gR0VOOF9F VV9ESVMxX1MyX1NISUZUKSk7CiAKIAkvKgotCSAqIFRoZSBzdWJzbGljZSBkaXNhYmxlIGZpZWxk IGlzIGdsb2JhbCwgaS5lLiBpdCBhcHBsaWVzCi0JICogdG8gZWFjaCBvZiB0aGUgZW5hYmxlZCBz bGljZXMuCi0JICovCi0Jc3NldS0+c3Vic2xpY2VfcGVyX3NsaWNlID0gc3NfbWF4IC0gaHdlaWdo dDMyKHNzX2Rpc2FibGUpOwotCXNzZXUtPnN1YnNsaWNlX3RvdGFsID0gaHdlaWdodDgoc3NldS0+ c2xpY2VfbWFzaykgKgotCQkJICAgICAgIHNzZXUtPnN1YnNsaWNlX3Blcl9zbGljZTsKLQotCS8q CiAJICogSXRlcmF0ZSB0aHJvdWdoIGVuYWJsZWQgc2xpY2VzIGFuZCBzdWJzbGljZXMgdG8KIAkg KiBjb3VudCB0aGUgdG90YWwgZW5hYmxlZCBFVS4KIAkgKi8KQEAgLTIyOSw3ICsyMjQsNyBAQCBz dGF0aWMgdm9pZCBicm9hZHdlbGxfc3NldV9pbmZvX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogCQlmb3IgKHNzID0gMDsgc3MgPCBzc19tYXg7IHNzKyspIHsKIAkJCXUz MiBuX2Rpc2FibGVkOwogCi0JCQlpZiAoc3NfZGlzYWJsZSAmICgweDEgPDwgc3MpKQorCQkJaWYg KCEoc3NldS0+c3Vic2xpY2VfbWFzayAmIEJJVChzcykpKQogCQkJCS8qIHNraXAgZGlzYWJsZWQg c3Vic2xpY2UgKi8KIAkJCQljb250aW51ZTsKIApAQCAtMjUwLDggKzI0NSw5IEBAIHN0YXRpYyB2 b2lkIGJyb2Fkd2VsbF9zc2V1X2luZm9faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAJICogc3Vic2xpY2VzIHdpdGggdGhlIGV4Y2VwdGlvbiB0aGF0IGFueSBvbmUgRVUg aW4gYW55IG9uZSBzdWJzbGljZSBtYXkKIAkgKiBiZSBmdXNlZCBvZmYgZm9yIGRpZSByZWNvdmVy eS4KIAkgKi8KLQlzc2V1LT5ldV9wZXJfc3Vic2xpY2UgPSBzc2V1LT5zdWJzbGljZV90b3RhbCA/ Ci0JCURJVl9ST1VORF9VUChzc2V1LT5ldV90b3RhbCwgc3NldS0+c3Vic2xpY2VfdG90YWwpIDog MDsKKwlzc2V1LT5ldV9wZXJfc3Vic2xpY2UgPSBzc2V1X3N1YnNsaWNlX3RvdGFsKHNzZXUpID8K KwkJCQlESVZfUk9VTkRfVVAoc3NldS0+ZXVfdG90YWwsCisJCQkJCSAgICAgc3NldV9zdWJzbGlj ZV90b3RhbChzc2V1KSkgOiAwOwogCiAJLyoKIAkgKiBCRFcgc3VwcG9ydHMgc2xpY2UgcG93ZXIg Z2F0aW5nIG9uIGRldmljZXMgd2l0aCBtb3JlIHRoYW4KQEAgLTM3NSw5ICszNzEsMTAgQEAgdm9p ZCBpbnRlbF9kZXZpY2VfaW5mb19ydW50aW1lX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogCQlpbmZvLT5oYXNfc25vb3AgPSBmYWxzZTsKIAogCURSTV9ERUJVR19EUklW RVIoInNsaWNlIHRvdGFsOiAldVxuIiwgaHdlaWdodDgoaW5mby0+c3NldS5zbGljZV9tYXNrKSk7 Ci0JRFJNX0RFQlVHX0RSSVZFUigic3Vic2xpY2UgdG90YWw6ICV1XG4iLCBpbmZvLT5zc2V1LnN1 YnNsaWNlX3RvdGFsKTsKKwlEUk1fREVCVUdfRFJJVkVSKCJzdWJzbGljZSB0b3RhbDogJXVcbiIs CisJCQkgc3NldV9zdWJzbGljZV90b3RhbCgmaW5mby0+c3NldSkpOwogCURSTV9ERUJVR19EUklW RVIoInN1YnNsaWNlIHBlciBzbGljZTogJXVcbiIsCi0JCQkgaW5mby0+c3NldS5zdWJzbGljZV9w ZXJfc2xpY2UpOworCQkJIGh3ZWlnaHQ4KGluZm8tPnNzZXUuc3Vic2xpY2VfbWFzaykpOwogCURS TV9ERUJVR19EUklWRVIoIkVVIHRvdGFsOiAldVxuIiwgaW5mby0+c3NldS5ldV90b3RhbCk7CiAJ RFJNX0RFQlVHX0RSSVZFUigiRVUgcGVyIHN1YnNsaWNlOiAldVxuIiwgaW5mby0+c3NldS5ldV9w ZXJfc3Vic2xpY2UpOwogCURSTV9ERUJVR19EUklWRVIoImhhcyBzbGljZSBwb3dlciBnYXRpbmc6 ICVzXG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCA3MjA5NTUzLi45MmJmZTQ3IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtMTkwNSw3ICsxOTA1LDcgQEAgbWFrZV9ycGNz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogCWlmIChJTlRFTF9JTkZPKGRl dl9wcml2KS0+c3NldS5oYXNfc3Vic2xpY2VfcGcpIHsKIAkJcnBjcyB8PSBHRU44X1JQQ1NfU1Nf Q05UX0VOQUJMRTsKLQkJcnBjcyB8PSBJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5zdWJzbGlj ZV9wZXJfc2xpY2UgPDwKKwkJcnBjcyB8PSBod2VpZ2h0OChJTlRFTF9JTkZPKGRldl9wcml2KS0+ c3NldS5zdWJzbGljZV9tYXNrKSA8PAogCQkJR0VOOF9SUENTX1NTX0NOVF9TSElGVDsKIAkJcnBj cyB8PSBHRU44X1JQQ1NfRU5BQkxFOwogCX0KLS0gCjIuNS4wCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK