From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/3] drm/i915: Add format modifiers for Intel Date: Wed, 29 Mar 2017 23:17:13 +0300 Message-ID: <20170329201713.GC30290@intel.com> References: <20170324212950.2206-1-ben@bwidawsk.net> <20170324212950.2206-3-ben@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20170324212950.2206-3-ben@bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ben Widawsky Cc: Intel GFX , "Kristian H . Kristensen" , DRI Development List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBNYXIgMjQsIDIwMTcgYXQgMDI6Mjk6NTBQTSAtMDcwMCwgQmVuIFdpZGF3c2t5IHdy b3RlOgo+IFRoaXMgd2FzIGJhc2VkIG9uIGEgcGF0Y2ggb3JpZ2luYWxseSBieSBLcmlzdGlhbi4g SXQgaGFzIGJlZW4gbW9kaWZpZWQKPiBwcmV0dHkgaGVhdmlseSB0byB1c2UgdGhlIG5ldyBjYWxs YmFja3MgZnJvbSB0aGUgcHJldmlvdXMgcGF0Y2guCj4gCj4gdjI6Cj4gICAtIEFkZCBMSU5FQVIg YW5kIFlmIG1vZGlmaWVycyB0byBsaXN0IChWaWxsZSkKPiAgIC0gQ29tYmluZSBpOHh4IGFuZCBp OTY1IGludG8gb25lIGxpc3Qgb2YgZm9ybWF0cyAoVmlsbGUpCj4gICAtIEFsbG93IDEwMTAxMDIg Zm9ybWF0cyBmb3IgWS9ZZiB0aWxlZCAoVmlsbGUpCj4gCj4gdjM6Cj4gICAtIEhhbmRsZSBjdXJz b3IgZm9ybWF0cyAoVmlsbGUpCj4gICAtIFB1dCBoYW5kbGluZyBmb3IgTElORUFSIGluIHRoZSBt b2Rfc3VwcG9ydCBmdW5jdGlvbnMgKFZpbGxlKQo+IAo+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IENjOiBLcmlzdGlhbiBILiBLcmlzdGVuc2Vu IDxob2Vnc2JlcmdAZ21haWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEJlbiBXaWRhd3NreSA8YmVu QGJ3aWRhd3NrLm5ldD4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgMTEyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8ICAyNSArKysrKysrLQo+ICAyIGZpbGVzIGNo YW5nZWQsIDEzMSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA4MDJhODQ0OWM1ZDMuLmJiNTU5YTExNmZkYSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNzIsNiArNzIsMTIg QEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGk5NjVfcHJpbWFyeV9mb3JtYXRzW10gPSB7Cj4gIAlE Uk1fRk9STUFUX1hCR1IyMTAxMDEwLAo+ICB9Owo+ICAKPiArc3RhdGljIGNvbnN0IHVpbnQ2NF90 IGk5eHhfZm9ybWF0X21vZGlmaWVyc1tdID0gewo+ICsJSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQs Cj4gKwlEUk1fRk9STUFUX01PRF9MSU5FQVIsCj4gKwlEUk1fRk9STUFUX01PRF9JTlZBTElECj4g K307Cj4gKwo+ICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc2tsX3ByaW1hcnlfZm9ybWF0c1tdID0g ewo+ICAJRFJNX0ZPUk1BVF9DOCwKPiAgCURSTV9GT1JNQVRfUkdCNTY1LAo+IEBAIC04Nyw2ICs5 MywxNCBAQCBzdGF0aWMgY29uc3QgdWludDMyX3Qgc2tsX3ByaW1hcnlfZm9ybWF0c1tdID0gewo+ ICAJRFJNX0ZPUk1BVF9WWVVZLAo+ICB9Owo+ICAKPiArc3RhdGljIGNvbnN0IHVpbnQ2NF90IHNr bF9mb3JtYXRfbW9kaWZpZXJzW10gPSB7Cj4gKwlJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQsCj4g KwlJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCwKPiArCUk5MTVfRk9STUFUX01PRF9YX1RJTEVELAo+ ICsJRFJNX0ZPUk1BVF9NT0RfTElORUFSLAo+ICsJRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRAo+ICt9 Owo+ICsKPiAgLyogQ3Vyc29yIGZvcm1hdHMgKi8KPiAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGlu dGVsX2N1cnNvcl9mb3JtYXRzW10gPSB7Cj4gIAlEUk1fRk9STUFUX0FSR0I4ODg4LAo+IEBAIC0x MzQ1Myw2ICsxMzQ2Nyw4MyBAQCB2b2lkIGludGVsX3BsYW5lX2Rlc3Ryb3koc3RydWN0IGRybV9w bGFuZSAqcGxhbmUpCj4gIAlrZnJlZSh0b19pbnRlbF9wbGFuZShwbGFuZSkpOwo+ICB9Cj4gIAo+ ICtzdGF0aWMgYm9vbCBpOHh4X21vZF9zdXBwb3J0ZWQodWludDMyX3QgZm9ybWF0LCB1aW50NjRf dCBtb2RpZmllcikKPiArewo+ICsJc3dpdGNoIChmb3JtYXQpIHsKPiArCWNhc2UgRFJNX0ZPUk1B VF9DODoKPiArCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6Cj4gKwljYXNlIERSTV9GT1JNQVRfWFJH QjE1NTU6Cj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6Cj4gKwkJcmV0dXJuIG1vZGlmaWVy ID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUiB8fAo+ICsJCQltb2RpZmllciA9PSBJOTE1X0ZPUk1B VF9NT0RfWF9USUxFRDsKPiArCWRlZmF1bHQ6Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICt9 Cj4gKwo+ICtzdGF0aWMgYm9vbCBpOTY1X21vZF9zdXBwb3J0ZWQodWludDMyX3QgZm9ybWF0LCB1 aW50NjRfdCBtb2RpZmllcikKPiArewo+ICsJc3dpdGNoIChmb3JtYXQpIHsKPiArCWNhc2UgRFJN X0ZPUk1BVF9DODoKPiArCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6Cj4gKwljYXNlIERSTV9GT1JN QVRfWFJHQjg4ODg6Cj4gKwljYXNlIERSTV9GT1JNQVRfWEJHUjg4ODg6Cj4gKwljYXNlIERSTV9G T1JNQVRfWFJHQjIxMDEwMTA6Cj4gKwljYXNlIERSTV9GT1JNQVRfWEJHUjIxMDEwMTA6Cj4gKwkJ cmV0dXJuIG1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUiB8fAo+ICsJCQltb2RpZmll ciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDsKPiArCWRlZmF1bHQ6Cj4gKwkJcmV0dXJuIGZh bHNlOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBza2xfbW9kX3N1cHBvcnRlZCh1aW50 MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyKQo+ICt7Cj4gKwlzd2l0Y2ggKGZvcm1hdCkg ewo+ICsJY2FzZSBEUk1fRk9STUFUX0M4Ogo+ICsJCXJldHVybiBtb2RpZmllciA9PSBEUk1fRk9S TUFUX01PRF9MSU5FQVIgfHwKPiArCQkJKG1vZGlmaWVyID49IEk5MTVfRk9STUFUX01PRF9YX1RJ TEVEICYmCj4gKwkJCSBtb2RpZmllciA8IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCk7CgpUaGUg Pj0gc3R1ZmYgbWFrZXMgdGhpcyBoYXJkZXIgdG8gcGFyc2UgdGhhbiBpdCBzaG91bGQgYmUgSU1P LgpJJ2QganVzdCBsaXN0IGVhY2ggbW9kaWZpZXIgZXhwbGljaXRseS4KCj4gKwljYXNlIERSTV9G T1JNQVRfUkdCNTY1Ogo+ICsJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4Ogo+ICsJY2FzZSBEUk1f Rk9STUFUX1hCR1I4ODg4Ogo+ICsJY2FzZSBEUk1fRk9STUFUX0FSR0I4ODg4Ogo+ICsJY2FzZSBE Uk1fRk9STUFUX0FCR1I4ODg4Ogo+ICsJY2FzZSBEUk1fRk9STUFUX1hSR0IyMTAxMDEwOgo+ICsJ Y2FzZSBEUk1fRk9STUFUX1hCR1IyMTAxMDEwOgo+ICsJCXJldHVybiBtb2RpZmllciA9PSBEUk1f Rk9STUFUX01PRF9MSU5FQVIgfHwKPiArCQkJKG1vZGlmaWVyID49IEk5MTVfRk9STUFUX01PRF9Y X1RJTEVEICYmCj4gKwkJCW1vZGlmaWVyIDw9IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCk7Cgpk aXR0by4gQXQgZmlyc3QgSSBjb3VsZG4ndCBldmVuIHNwb3QgdGhlIGRpZmZlcmVuY2UgYmV0d2Vl biB0aGlzIGFuZAp0aGUgQzggY2FzZS4KCj4gKwljYXNlIERSTV9GT1JNQVRfWVVZVjoKPiArCWNh c2UgRFJNX0ZPUk1BVF9ZVllVOgo+ICsJY2FzZSBEUk1fRk9STUFUX1VZVlk6Cj4gKwljYXNlIERS TV9GT1JNQVRfVllVWToKPiArCQlyZXR1cm4gbW9kaWZpZXIgPT0gRFJNX0ZPUk1BVF9NT0RfTElO RUFSOwoKQW55IG1vZGlmaWVyIHdpbGwgZG8gZm9yIHRoZXNlIGZvcm1hdHMuCgo+ICsJZGVmYXVs dDoKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwl9Cj4gKwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBp bnRlbF9wbGFuZV9mb3JtYXRfbW9kX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK PiArCQkJCQkgICAgIHVpbnQzMl90IGZvcm1hdCwKPiArCQkJCQkgICAgIHVpbnQ2NF90IG1vZGlm aWVyKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KHBsYW5lLT5kZXYpOwo+ICsKPiArCWlmIChXQVJOX09OKG1vZGlmaWVyID09IERSTV9GT1JNQVRf TU9EX0lOVkFMSUQpKQo+ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA5KQo+ICsJCXJldHVybiBza2xfbW9kX3N1cHBvcnRlZChmb3JtYXQsIG1vZGlm aWVyKTsKPiArCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkKPiArCQlyZXR1cm4g aTk2NV9tb2Rfc3VwcG9ydGVkKGZvcm1hdCwgbW9kaWZpZXIpOwo+ICsJZWxzZQo+ICsJCXJldHVy biBpOHh4X21vZF9zdXBwb3J0ZWQoZm9ybWF0LCBtb2RpZmllcik7Cj4gKwo+ICsJcmV0dXJuIGZh bHNlOwo+ICt9CgpJJ2QgYWxzbyBsaWtlIHRvIHNlZSAuZm9ybWF0X21vZF9zdXBwb3J0ZWQoKSAr IG1vZGlmaWVyc1tdIGZvcgpjdXJzb3JzIGFzIHdlbGwuIFRob3NlIHNob3VsZCBvbmx5IGFjY2Vw dCBMSU5FQVIrQVJHQjg4ODguCgpBcGFydCBmcm9tIHRob3NlIGlzc3VlcywgSSB0aGluayB0aGlz IGlzIGxvb2tpbmcgcHJldHR5IGdvb2QuCgo+ICsKPiAgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9m dW5jcyBpbnRlbF9wbGFuZV9mdW5jcyA9IHsKPiAgCS51cGRhdGVfcGxhbmUgPSBkcm1fYXRvbWlj X2hlbHBlcl91cGRhdGVfcGxhbmUsCj4gIAkuZGlzYWJsZV9wbGFuZSA9IGRybV9hdG9taWNfaGVs cGVyX2Rpc2FibGVfcGxhbmUsCj4gQEAgLTEzNDYyLDYgKzEzNTUzLDcgQEAgY29uc3Qgc3RydWN0 IGRybV9wbGFuZV9mdW5jcyBpbnRlbF9wbGFuZV9mdW5jcyA9IHsKPiAgCS5hdG9taWNfc2V0X3By b3BlcnR5ID0gaW50ZWxfcGxhbmVfYXRvbWljX3NldF9wcm9wZXJ0eSwKPiAgCS5hdG9taWNfZHVw bGljYXRlX3N0YXRlID0gaW50ZWxfcGxhbmVfZHVwbGljYXRlX3N0YXRlLAo+ICAJLmF0b21pY19k ZXN0cm95X3N0YXRlID0gaW50ZWxfcGxhbmVfZGVzdHJveV9zdGF0ZSwKPiArCS5mb3JtYXRfbW9k X3N1cHBvcnRlZCA9IGludGVsX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkLAo+ICB9Owo+ICAK PiAgc3RhdGljIGludAo+IEBAIC0xMzU5OCw2ICsxMzY5MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX3BsYW5lX2Z1bmNzIGludGVsX2N1cnNvcl9wbGFuZV9mdW5jcyA9IHsKPiAgCS5hdG9t aWNfc2V0X3Byb3BlcnR5ID0gaW50ZWxfcGxhbmVfYXRvbWljX3NldF9wcm9wZXJ0eSwKPiAgCS5h dG9taWNfZHVwbGljYXRlX3N0YXRlID0gaW50ZWxfcGxhbmVfZHVwbGljYXRlX3N0YXRlLAo+ICAJ LmF0b21pY19kZXN0cm95X3N0YXRlID0gaW50ZWxfcGxhbmVfZGVzdHJveV9zdGF0ZSwKPiArCS5m b3JtYXRfbW9kX3N1cHBvcnRlZCA9IGludGVsX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkLAo+ ICB9Owo+ICAKPiAgc3RhdGljIHN0cnVjdCBpbnRlbF9wbGFuZSAqCj4gQEAgLTEzNjA4LDYgKzEz NzAxLDcgQEAgaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSkKPiAgCWNvbnN0IHVpbnQzMl90ICppbnRlbF9w cmltYXJ5X2Zvcm1hdHM7Cj4gIAl1bnNpZ25lZCBpbnQgc3VwcG9ydGVkX3JvdGF0aW9uczsKPiAg CXVuc2lnbmVkIGludCBudW1fZm9ybWF0czsKPiArCWNvbnN0IHVpbnQ2NF90ICppbnRlbF9mb3Jt YXRfbW9kaWZpZXJzOwo+ICAJaW50IHJldDsKPiAgCj4gIAlwcmltYXJ5ID0ga3phbGxvYyhzaXpl b2YoKnByaW1hcnkpLCBHRlBfS0VSTkVMKTsKPiBAQCAtMTM2NDYsMjQgKzEzNzQwLDI4IEBAIGlu dGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgZW51bSBwaXBlIHBpcGUpCj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7Cj4g IAkJaW50ZWxfcHJpbWFyeV9mb3JtYXRzID0gc2tsX3ByaW1hcnlfZm9ybWF0czsKPiAgCQludW1f Zm9ybWF0cyA9IEFSUkFZX1NJWkUoc2tsX3ByaW1hcnlfZm9ybWF0cyk7Cj4gKwkJaW50ZWxfZm9y bWF0X21vZGlmaWVycyA9IHNrbF9mb3JtYXRfbW9kaWZpZXJzOwo+ICAKPiAgCQlwcmltYXJ5LT51 cGRhdGVfcGxhbmUgPSBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lOwo+ICAJCXByaW1hcnkt PmRpc2FibGVfcGxhbmUgPSBza3lsYWtlX2Rpc2FibGVfcHJpbWFyeV9wbGFuZTsKPiAgCX0gZWxz ZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpIHsKPiAgCQlpbnRlbF9wcmltYXJ5X2Zvcm1h dHMgPSBpOTY1X3ByaW1hcnlfZm9ybWF0czsKPiAgCQludW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUo aTk2NV9wcmltYXJ5X2Zvcm1hdHMpOwo+ICsJCWludGVsX2Zvcm1hdF9tb2RpZmllcnMgPSBpOXh4 X2Zvcm1hdF9tb2RpZmllcnM7Cj4gIAo+ICAJCXByaW1hcnktPnVwZGF0ZV9wbGFuZSA9IGlyb25s YWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lOwo+ICAJCXByaW1hcnktPmRpc2FibGVfcGxhbmUgPSBp OXh4X2Rpc2FibGVfcHJpbWFyeV9wbGFuZTsKPiAgCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9w cml2KSA+PSA0KSB7Cj4gIAkJaW50ZWxfcHJpbWFyeV9mb3JtYXRzID0gaTk2NV9wcmltYXJ5X2Zv cm1hdHM7Cj4gIAkJbnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGk5NjVfcHJpbWFyeV9mb3JtYXRz KTsKPiArCQlpbnRlbF9mb3JtYXRfbW9kaWZpZXJzID0gaTl4eF9mb3JtYXRfbW9kaWZpZXJzOwo+ ICAKPiAgCQlwcmltYXJ5LT51cGRhdGVfcGxhbmUgPSBpOXh4X3VwZGF0ZV9wcmltYXJ5X3BsYW5l Owo+ICAJCXByaW1hcnktPmRpc2FibGVfcGxhbmUgPSBpOXh4X2Rpc2FibGVfcHJpbWFyeV9wbGFu ZTsKPiAgCX0gZWxzZSB7Cj4gIAkJaW50ZWxfcHJpbWFyeV9mb3JtYXRzID0gaTh4eF9wcmltYXJ5 X2Zvcm1hdHM7Cj4gIAkJbnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGk4eHhfcHJpbWFyeV9mb3Jt YXRzKTsKPiArCQlpbnRlbF9mb3JtYXRfbW9kaWZpZXJzID0gaTl4eF9mb3JtYXRfbW9kaWZpZXJz Owo+ICAKPiAgCQlwcmltYXJ5LT51cGRhdGVfcGxhbmUgPSBpOXh4X3VwZGF0ZV9wcmltYXJ5X3Bs YW5lOwo+ICAJCXByaW1hcnktPmRpc2FibGVfcGxhbmUgPSBpOXh4X2Rpc2FibGVfcHJpbWFyeV9w bGFuZTsKPiBAQCAtMTM2NzMsMjEgKzEzNzcxLDIxIEBAIGludGVsX3ByaW1hcnlfcGxhbmVfY3Jl YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCj4g IAkJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KCZkZXZfcHJpdi0+ZHJtLCAmcHJpbWFy eS0+YmFzZSwKPiAgCQkJCQkgICAgICAgMCwgJmludGVsX3BsYW5lX2Z1bmNzLAo+ICAJCQkJCSAg ICAgICBpbnRlbF9wcmltYXJ5X2Zvcm1hdHMsIG51bV9mb3JtYXRzLAo+IC0JCQkJCSAgICAgICBO VUxMLAo+ICsJCQkJCSAgICAgICBpbnRlbF9mb3JtYXRfbW9kaWZpZXJzLAo+ICAJCQkJCSAgICAg ICBEUk1fUExBTkVfVFlQRV9QUklNQVJZLAo+ICAJCQkJCSAgICAgICAicGxhbmUgMSVjIiwgcGlw ZV9uYW1lKHBpcGUpKTsKPiAgCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNSB8fCBJ U19HNFgoZGV2X3ByaXYpKQo+ICAJCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdCgmZGV2 X3ByaXYtPmRybSwgJnByaW1hcnktPmJhc2UsCj4gIAkJCQkJICAgICAgIDAsICZpbnRlbF9wbGFu ZV9mdW5jcywKPiAgCQkJCQkgICAgICAgaW50ZWxfcHJpbWFyeV9mb3JtYXRzLCBudW1fZm9ybWF0 cywKPiAtCQkJCQkgICAgICAgTlVMTCwKPiArCQkJCQkgICAgICAgaW50ZWxfZm9ybWF0X21vZGlm aWVycywKPiAgCQkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwKPiAgCQkJCQkgICAg ICAgInByaW1hcnkgJWMiLCBwaXBlX25hbWUocGlwZSkpOwo+ICAJZWxzZQo+ICAJCXJldCA9IGRy bV91bml2ZXJzYWxfcGxhbmVfaW5pdCgmZGV2X3ByaXYtPmRybSwgJnByaW1hcnktPmJhc2UsCj4g IAkJCQkJICAgICAgIDAsICZpbnRlbF9wbGFuZV9mdW5jcywKPiAgCQkJCQkgICAgICAgaW50ZWxf cHJpbWFyeV9mb3JtYXRzLCBudW1fZm9ybWF0cywKPiAtCQkJCQkgICAgICAgTlVMTCwKPiArCQkJ CQkgICAgICAgaW50ZWxfZm9ybWF0X21vZGlmaWVycywKPiAgCQkJCQkgICAgICAgRFJNX1BMQU5F X1RZUEVfUFJJTUFSWSwKPiAgCQkJCQkgICAgICAgInBsYW5lICVjIiwgcGxhbmVfbmFtZShwcmlt YXJ5LT5wbGFuZSkpOwo+ICAJaWYgKHJldCkKPiBAQCAtMTM4MTcsNiArMTM5MTUsMTEgQEAgaW50 ZWxfdXBkYXRlX2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCWludGVs X2NydGNfdXBkYXRlX2N1cnNvcihjcnRjLCBjcnRjX3N0YXRlLCBzdGF0ZSk7Cj4gIH0KPiAgCj4g K3N0YXRpYyBjb25zdCB1aW50NjRfdCBjdXJzb3JfZm9ybWF0X21vZGlmaWVyc1tdID0gewo+ICsJ RFJNX0ZPUk1BVF9NT0RfTElORUFSLAo+ICsJRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRAo+ICt9Owo+ ICsKPiAgc3RhdGljIHN0cnVjdCBpbnRlbF9wbGFuZSAqCj4gIGludGVsX2N1cnNvcl9wbGFuZV9j cmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSkK PiAgewo+IEBAIC0xMzg1Miw3ICsxMzk1NSw4IEBAIGludGVsX2N1cnNvcl9wbGFuZV9jcmVhdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSkKPiAgCQkJ CSAgICAgICAwLCAmaW50ZWxfY3Vyc29yX3BsYW5lX2Z1bmNzLAo+ICAJCQkJICAgICAgIGludGVs X2N1cnNvcl9mb3JtYXRzLAo+ICAJCQkJICAgICAgIEFSUkFZX1NJWkUoaW50ZWxfY3Vyc29yX2Zv cm1hdHMpLAo+IC0JCQkJICAgICAgIE5VTEwsIERSTV9QTEFORV9UWVBFX0NVUlNPUiwKPiArCQkJ CSAgICAgICBjdXJzb3JfZm9ybWF0X21vZGlmaWVycywKPiArCQkJCSAgICAgICBEUk1fUExBTkVf VFlQRV9DVVJTT1IsCj4gIAkJCQkgICAgICAgImN1cnNvciAlYyIsIHBpcGVfbmFtZShwaXBlKSk7 Cj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gZmFpbDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJp dGUuYwo+IGluZGV4IDlmMmJkZWZkYzY5MC4uYmYxOGQ5ZWRjNjZmIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBAQCAtMTA1Myw2ICsxMDUzLDEyIEBAIHN0YXRpYyBjb25z dCB1aW50MzJfdCBpbGtfcGxhbmVfZm9ybWF0c1tdID0gewo+ICAJRFJNX0ZPUk1BVF9WWVVZLAo+ ICB9Owo+ICAKPiArc3RhdGljIGNvbnN0IHVpbnQ2NF90IGk5eHhfcGxhbmVfZm9ybWF0X21vZGlm aWVyc1tdID0gewo+ICsJSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsCj4gKwlEUk1fRk9STUFUX01P RF9MSU5FQVIsCj4gKwlEUk1fRk9STUFUX01PRF9JTlZBTElECj4gK307Cj4gKwo+ICBzdGF0aWMg Y29uc3QgdWludDMyX3Qgc25iX3BsYW5lX2Zvcm1hdHNbXSA9IHsKPiAgCURSTV9GT1JNQVRfWEJH Ujg4ODgsCj4gIAlEUk1fRk9STUFUX1hSR0I4ODg4LAo+IEBAIC0xMDg4LDYgKzEwOTQsMTQgQEAg c3RhdGljIHVpbnQzMl90IHNrbF9wbGFuZV9mb3JtYXRzW10gPSB7Cj4gIAlEUk1fRk9STUFUX1ZZ VVksCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3QgdWludDY0X3Qgc2tsX3BsYW5lX2Zvcm1hdF9t b2RpZmllcnNbXSA9IHsKPiArCUk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCwKPiArCUk5MTVfRk9S TUFUX01PRF9ZX1RJTEVELAo+ICsJSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsCj4gKwlEUk1fRk9S TUFUX01PRF9MSU5FQVIsCj4gKwlEUk1fRk9STUFUX01PRF9JTlZBTElECj4gK307Cj4gKwo+ICBz dHJ1Y3QgaW50ZWxfcGxhbmUgKgo+ICBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJICBlbnVtIHBpcGUgcGlwZSwgaW50IHBs YW5lKQo+IEBAIC0xMDk2LDYgKzExMTAsNyBAQCBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqc3RhdGUgPSBOVUxMOwo+ICAJdW5zaWduZWQgbG9uZyBwb3NzaWJsZV9jcnRjczsKPiAg CWNvbnN0IHVpbnQzMl90ICpwbGFuZV9mb3JtYXRzOwo+ICsJY29uc3QgdWludDY0X3QgKm1vZGlm aWVyczsKPiAgCXVuc2lnbmVkIGludCBzdXBwb3J0ZWRfcm90YXRpb25zOwo+ICAJaW50IG51bV9w bGFuZV9mb3JtYXRzOwo+ICAJaW50IHJldDsKPiBAQCAtMTEyMiw2ICsxMTM3LDcgQEAgaW50ZWxf c3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g IAo+ICAJCXBsYW5lX2Zvcm1hdHMgPSBza2xfcGxhbmVfZm9ybWF0czsKPiAgCQludW1fcGxhbmVf Zm9ybWF0cyA9IEFSUkFZX1NJWkUoc2tsX3BsYW5lX2Zvcm1hdHMpOwo+ICsJCW1vZGlmaWVycyA9 IHNrbF9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzOwo+ICAJfSBlbHNlIGlmIChJU19WQUxMRVlWSUVX KGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ICAJCWludGVsX3BsYW5l LT5jYW5fc2NhbGUgPSBmYWxzZTsKPiAgCQlpbnRlbF9wbGFuZS0+bWF4X2Rvd25zY2FsZSA9IDE7 Cj4gQEAgLTExMzEsNiArMTE0Nyw3IEBAIGludGVsX3Nwcml0ZV9wbGFuZV9jcmVhdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAKPiAgCQlwbGFuZV9mb3JtYXRzID0gdmx2 X3BsYW5lX2Zvcm1hdHM7Cj4gIAkJbnVtX3BsYW5lX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHZsdl9w bGFuZV9mb3JtYXRzKTsKPiArCQltb2RpZmllcnMgPSBpOXh4X3BsYW5lX2Zvcm1hdF9tb2RpZmll cnM7Cj4gIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNykgewo+ICAJCWlmIChJ U19JVllCUklER0UoZGV2X3ByaXYpKSB7Cj4gIAkJCWludGVsX3BsYW5lLT5jYW5fc2NhbGUgPSB0 cnVlOwo+IEBAIC0xMTQ1LDYgKzExNjIsNyBAQCBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCj4gIAkJcGxhbmVfZm9ybWF0cyA9 IHNuYl9wbGFuZV9mb3JtYXRzOwo+ICAJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRShz bmJfcGxhbmVfZm9ybWF0cyk7Cj4gKwkJbW9kaWZpZXJzID0gaTl4eF9wbGFuZV9mb3JtYXRfbW9k aWZpZXJzOwo+ICAJfSBlbHNlIHsKPiAgCQlpbnRlbF9wbGFuZS0+Y2FuX3NjYWxlID0gdHJ1ZTsK PiAgCQlpbnRlbF9wbGFuZS0+bWF4X2Rvd25zY2FsZSA9IDE2Owo+IEBAIC0xMTUyLDYgKzExNzAs NyBAQCBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAgCQlpbnRlbF9wbGFuZS0+dXBkYXRlX3BsYW5lID0gaWxrX3VwZGF0ZV9wbGFu ZTsKPiAgCQlpbnRlbF9wbGFuZS0+ZGlzYWJsZV9wbGFuZSA9IGlsa19kaXNhYmxlX3BsYW5lOwo+ ICAKPiArCQltb2RpZmllcnMgPSBpOXh4X3BsYW5lX2Zvcm1hdF9tb2RpZmllcnM7Cj4gIAkJaWYg KElTX0dFTjYoZGV2X3ByaXYpKSB7Cj4gIAkJCXBsYW5lX2Zvcm1hdHMgPSBzbmJfcGxhbmVfZm9y bWF0czsKPiAgCQkJbnVtX3BsYW5lX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHNuYl9wbGFuZV9mb3Jt YXRzKTsKPiBAQCAtMTE4NiwxMyArMTIwNSwxNSBAQCBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQlyZXQgPSBkcm1fdW5pdmVy c2FsX3BsYW5lX2luaXQoJmRldl9wcml2LT5kcm0sICZpbnRlbF9wbGFuZS0+YmFzZSwKPiAgCQkJ CQkgICAgICAgcG9zc2libGVfY3J0Y3MsICZpbnRlbF9wbGFuZV9mdW5jcywKPiAgCQkJCQkgICAg ICAgcGxhbmVfZm9ybWF0cywgbnVtX3BsYW5lX2Zvcm1hdHMsCj4gLQkJCQkJICAgICAgIE5VTEws IERSTV9QTEFORV9UWVBFX09WRVJMQVksCj4gKwkJCQkJICAgICAgIG1vZGlmaWVycywKPiArCQkJ CQkgICAgICAgRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSwKPiAgCQkJCQkgICAgICAgInBsYW5lICVk JWMiLCBwbGFuZSArIDIsIHBpcGVfbmFtZShwaXBlKSk7Cj4gIAllbHNlCj4gIAkJcmV0ID0gZHJt X3VuaXZlcnNhbF9wbGFuZV9pbml0KCZkZXZfcHJpdi0+ZHJtLCAmaW50ZWxfcGxhbmUtPmJhc2Us Cj4gIAkJCQkJICAgICAgIHBvc3NpYmxlX2NydGNzLCAmaW50ZWxfcGxhbmVfZnVuY3MsCj4gIAkJ CQkJICAgICAgIHBsYW5lX2Zvcm1hdHMsIG51bV9wbGFuZV9mb3JtYXRzLAo+IC0JCQkJCSAgICAg ICBOVUxMLCBEUk1fUExBTkVfVFlQRV9PVkVSTEFZLAo+ICsJCQkJCSAgICAgICBtb2RpZmllcnMs Cj4gKwkJCQkJICAgICAgIERSTV9QTEFORV9UWVBFX09WRVJMQVksCj4gIAkJCQkJICAgICAgICJz cHJpdGUgJWMiLCBzcHJpdGVfbmFtZShwaXBlLCBwbGFuZSkpOwo+ICAJaWYgKHJldCkKPiAgCQln b3RvIGZhaWw7Cj4gLS0gCj4gMi4xMi4xCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK