From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: [PATCH 2/3] drm/i915: Add format modifiers for Intel Date: Thu, 12 Jan 2017 10:00:55 -0800 Message-ID: <20170112180054.GA26398@mail.bwidawsk.net> References: <20170112005118.19146-1-ben@bwidawsk.net> <20170112005118.19146-3-ben@bwidawsk.net> <20170112105120.GV31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20170112105120.GV31595@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: Intel GFX , "Kristian H . Kristensen" , DRI Development List-Id: intel-gfx@lists.freedesktop.org T24gMTctMDEtMTIgMTI6NTE6MjAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPk9uIFdlZCwgSmFu IDExLCAyMDE3IGF0IDA0OjUxOjE3UE0gLTA4MDAsIEJlbiBXaWRhd3NreSB3cm90ZToKPj4gVGhp cyB3YXMgYmFzZWQgb24gYSBwYXRjaCBvcmlnaW5hbGx5IGJ5IEtyaXN0aWFuLiBJdCBoYXMgYmVl biBtb2RpZmllZAo+PiBwcmV0dHkgaGVhdmlseSB0byB1c2UgdGhlIG5ldyBjYWxsYmFja3MgZnJv bSB0aGUgcHJldmlvdXMgcGF0Y2guCj4+Cj4+IENjOiBLcmlzdGlhbiBILiBLcmlzdGVuc2VuIDxo b2Vnc2JlcmdAZ21haWwuY29tPgo+PiBTaWduZWQtb2ZmLWJ5OiBCZW4gV2lkYXdza3kgPGJlbkBi d2lkYXdzay5uZXQ+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgMTA5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAgMzMgKysrKysrKysrKy0KPj4gIDIgZmls ZXMgY2hhbmdlZCwgMTM3IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gaW5kZXggODcxNWIxMDgzZDFkLi4yNmYzYTkx MWI5OTkgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gQEAgLTYx LDYgKzYxLDExIEBAIHN0YXRpYyBjb25zdCB1aW50MzJfdCBpOHh4X3ByaW1hcnlfZm9ybWF0c1td ID0gewo+PiAgCURSTV9GT1JNQVRfWFJHQjg4ODgsCj4+ICB9Owo+Pgo+PiArc3RhdGljIGNvbnN0 IHVpbnQ2NF90IGk4eHhfZm9ybWF0X21vZGlmaWVyc1tdID0gewo+PiArCUk5MTVfRk9STUFUX01P RF9YX1RJTEVELAo+Cj5EaWQgd2Ugd2FudCB0byBsaXN0IHRoZSBsaW5lYXIgbW9kaWZpZXIgaW4g dGhlc2UgYXMgd2VsbD8KPgoKWWVhaC4gTXkgaW5pdGlhbCByZXNwb25zZSB3YXMgbm8sIGJ1dCB5 ZXMuIFdlIHNob3VsZC4gSSB3YXMgdXNpbmcKRFJNX0ZPUk1BVF9NT0RfTk9ORSBpbiBpdHMgcGxh Y2UsIGl0IHNob3VsZCBiZSBsaW5lYXIsIGFuZCBpdCBzaG91bGQgYmUgZGVmaW5lZAppbiB0aGUg YXJyYXkuCgo+PiArCURSTV9GT1JNQVRfTU9EX0lOVkFMSUQKPj4gK307Cj4+ICsKPj4gIC8qIFBy aW1hcnkgcGxhbmUgZm9ybWF0cyBmb3IgZ2VuID49IDQgKi8KPj4gIHN0YXRpYyBjb25zdCB1aW50 MzJfdCBpOTY1X3ByaW1hcnlfZm9ybWF0c1tdID0gewo+PiAgCURSTV9GT1JNQVRfQzgsCj4+IEBA IC03MSw2ICs3NiwxMSBAQCBzdGF0aWMgY29uc3QgdWludDMyX3QgaTk2NV9wcmltYXJ5X2Zvcm1h dHNbXSA9IHsKPj4gIAlEUk1fRk9STUFUX1hCR1IyMTAxMDEwLAo+PiAgfTsKPj4KPj4gK3N0YXRp YyBjb25zdCB1aW50NjRfdCBpOTY1X2Zvcm1hdF9tb2RpZmllcnNbXSA9IHsKPj4gKwlJOTE1X0ZP Uk1BVF9NT0RfWF9USUxFRCwKPj4gKwlEUk1fRk9STUFUX01PRF9JTlZBTElECj4+ICt9Owo+Cj5X ZSBjb3VsZCBqdXN0IHNoYXJlIHRoZSBpOHh4IGFycmF5LiBUaGUgbmFtZSBvZiB0aGUgYXJyYXkg c2hvdWxkIHBlcmhhcHMKPmJlIGk5eHhfZm9ybWF0X21vZGlmaWVyc1tdIGluIHRoYXQgY2FzZS4g VGhhdCdzIHNvcnQgb2YgdGhlIG5hbWluZwo+Y29udmVudGlvbiB3ZSd2ZSBiZWVuIGxlZnQgd2l0 aCBmb3IgdGhpbmdzIHRoYXQgYXBwbHkgdG8gbW9yZSBvciBsZXNzCj5hbGwgdGhlIHBsYXRmb3Jt cy4KPgoKR290IGl0IHRoYW5rcy4gVGhpcyBpcyBhIHJlbGljIGZyb20gS3Jpc3RpYW4ncyBvcmln aW5hbCBwYXRjaCB3aGljaCB0aWVkIHRoZQptb2RpZmllcnMgdG8gdGhlIGZvcm1hdHMgaW4gcGxh Y2UuIEl0IG1hZGUgbW9yZSBzZW5zZSB0aGVyZSB0byBoYXZlIGEgc2VwYXJhdGUKaTh4eAoKPj4g Kwo+PiAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNrbF9wcmltYXJ5X2Zvcm1hdHNbXSA9IHsKPj4g IAlEUk1fRk9STUFUX0M4LAo+PiAgCURSTV9GT1JNQVRfUkdCNTY1LAo+PiBAQCAtODYsNiArOTYs MTIgQEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNrbF9wcmltYXJ5X2Zvcm1hdHNbXSA9IHsKPj4g IAlEUk1fRk9STUFUX1ZZVVksCj4+ICB9Owo+Pgo+PiArc3RhdGljIGNvbnN0IHVpbnQ2NF90IHNr bF9mb3JtYXRfbW9kaWZpZXJzW10gPSB7Cj4+ICsJSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQsCj4K PllmIG1pc3Npbmc/IGFuZCBsaW5lYXIKPgoKWWVzLCB0aGFua3MuIEknbSBraW5kIG9mIHNjYXJl ZCB0byBhZGQgWWYgdG8gYmUgaG9uZXN0IDpQCgo+PiArCUk5MTVfRk9STUFUX01PRF9YX1RJTEVE LAo+PiArCURSTV9GT1JNQVRfTU9EX0lOVkFMSUQKPj4gK307Cj4+ICsKPj4gIC8qIEN1cnNvciBm b3JtYXRzICovCj4+ICBzdGF0aWMgY29uc3QgdWludDMyX3QgaW50ZWxfY3Vyc29yX2Zvcm1hdHNb XSA9IHsKPj4gIAlEUk1fRk9STUFUX0FSR0I4ODg4LAo+PiBAQCAtMTUxNzMsNiArMTUxODksODcg QEAgdm9pZCBpbnRlbF9wbGFuZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+PiAg CWtmcmVlKHRvX2ludGVsX3BsYW5lKHBsYW5lKSk7Cj4+ICB9Cj4+Cj4+ICtzdGF0aWMgYm9vbCBp OHh4X21vZF9zdXBwb3J0ZWQodWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllcikKPj4g K3sKPj4gKwlpZiAobW9kaWZpZXIgPT0gRFJNX0ZPUk1BVF9NT0RfTk9ORSkKPj4gKwkJcmV0dXJu IHRydWU7Cj4+ICsKPj4gKwlzd2l0Y2ggKGZvcm1hdCkgewo+PiArCWNhc2UgRFJNX0ZPUk1BVF9D ODoKPj4gKwljYXNlIERSTV9GT1JNQVRfUkdCNTY1Ogo+PiArCWNhc2UgRFJNX0ZPUk1BVF9YUkdC MTU1NToKPj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6Cj4+ICsJCXJldHVybiBtb2RpZmll ciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDsKPj4gKwlkZWZhdWx0Ogo+PiArCQlyZXR1cm4g ZmFsc2U7Cj4+ICsJfQo+PiArfQo+PiArCj4+ICtzdGF0aWMgYm9vbCBpOTY1X21vZF9zdXBwb3J0 ZWQodWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllcikKPj4gK3sKPj4gKwlzd2l0Y2gg KGZvcm1hdCkgewo+PiArCWNhc2UgRFJNX0ZPUk1BVF9DODoKPj4gKwljYXNlIERSTV9GT1JNQVRf UkdCNTY1Ogo+PiArCWNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoKPj4gKwljYXNlIERSTV9GT1JN QVRfWEJHUjg4ODg6Cj4+ICsJY2FzZSBEUk1fRk9STUFUX1hSR0IyMTAxMDEwOgo+PiArCWNhc2Ug RFJNX0ZPUk1BVF9YQkdSMjEwMTAxMDoKPj4gKwkJcmV0dXJuIG1vZGlmaWVyID09IEk5MTVfRk9S TUFUX01PRF9YX1RJTEVEOwo+PiArCWRlZmF1bHQ6Cj4+ICsJCXJldHVybiBmYWxzZTsKPj4gKwl9 Cj4+ICt9Cj4KPkhtbS4gVGhlcmUgc2hvdWxkIGJlIG5vIGZvcm1hdCB2cy4gdGlsaW5nIHJlc3Ry aWN0aW9ucyBvbiB0aGVzZQo+cGxhdGZvcm1zLCBzbyBwcmVzdW1hYmx5IGEgc2ltcGxlICJyZXR1 cm4gdHJ1ZSIgc2hvdWxkIGNvdmVyIGl0IGFsbC4KPlRoYXQgZG9lcyBwZXJoYXBzIHJlbW92ZSB0 aGUgdXNlZnVsbmVzcyBvZiB0aGVzZSBmdW5jdGlvbnMgZm9yCj52ZXJpZnlpbmcgdGhhdCB0aGUg Zm9ybWF0IG9yIG1vZGlmaWVyIGlzIHN1cHBvcnRlZCBhdCBhbGwKCk9uZSBvZiB0aGUgcmVhc29u cyBmb3IgY2hhbmdpbmcgdG8gdGhpcyBjdXJyZW50IGZvcm1hdC1tb2RpZmllciBsb29rdXAgYXQg YWxsCndhcyBLcmlzdGlhbidzIGFwcHJvYWNoIHdhcyBjb25zaWRlcmVkIGZyYWdpbGUuIElmIGZv ciB3aGF0ZXZlciByZWFzb24gZm9ybWF0cwphcmUgYWRkZWQsIG9yIHJlbW92ZWQsIHdlJ2xsIGNh dGNoIGl0IGhlcmUuIEFsc28sIGl0IG1heWJlIGxldCdzIHVzIGRvIHNvbWV0aGluZwpvbiBjdXJz b3IgcGxhbmUgYXQgc29tZSBwb2ludCAoSSBkb24ndCBhY3R1YWxseSBrbm93KS4gU28geWVhaCwg d2UgY2FuIHJldHVybgp0cnVlLCBidXQgSSBsaWtlIHRoYXQgaXQncyBzcGVsbGVkIG91dCBleHBs aWNpdGx5LiBNYWtlcyBpdCBlYXN5IHRvIGNvbXBhcmUgaXQKdG8gdGhlIGRvY3MgYXMgd2VsbCB0 byBtYWtlIHN1cmUgb3VyIGNvZGUgaXMgY29ycmVjdC4KClRoZSBiZW5lZml0IGlzIG9mIGNvdXJz ZSBJIGNhbiBjb21iaW5lIGk5NjVfbW9kX3N1cHBvcnRlZCgpIHdpdGgKaTh4eF9tb2Rfc3VwcG9y dGVkKCkKCkknbSBob25lc3RseSBmaW5lIHdpdGggY2hhbmdpbmcgaXQgYXMgd2VsbCwgSSBqdXN0 IGRvbid0IHNlZSBhIGh1Z2UgcmVhc29uIHRvCmNoYW5nZSBpdCBzaW5jZSBJJ3ZlIGFscmVhZHkg dHlwZWQgaXQgdXAuIEknbGwgbGVhdmUgaXQgdG8geW91LgoKWyBdIFllcywgY2hhbmdlIGl0Lgpb IF0gTm8sIGxlYXZlIGl0LgoKPmJ1dCBJJ3ZlIGJlZW4gdGhpbmtpbmcgdGhhdCBhZGRmYiBzaG91 bGQgcGVyaGFwcyBqdXN0IGl0ZXJhdGUgdGhyb3VnaCB0aGUKPmZvcm1hdCBhbmQgbW9kaWZpZXIg bGlzdHMgZm9yIGV2ZXJ5IHBsYW5lLiBXb3VsZCBhdm9pZCBoYXZpbmcgdG8gZWZmZWN0aXZlbHkK Pm1haW50YWluIHRoZSBzYW1lIGxpc3RzIGluIG11bHRpcGxlIHBsYWNlcy4KPgoKSSBkb24ndCBx dWl0ZSBmb2xsb3cgdGhpcy4gQ2FuIHlvdSBlbGFib3JhdGU/Cgo+PiArCj4+ICtzdGF0aWMgYm9v bCBza2xfbW9kX3N1cHBvcnRlZCh1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyKQo+ PiArewo+PiArCXN3aXRjaCAoZm9ybWF0KSB7Cj4+ICsJY2FzZSBEUk1fRk9STUFUX0M4Ogo+PiAr CWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6Cj4+ICsJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4Ogo+ PiArCWNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoKPj4gKwljYXNlIERSTV9GT1JNQVRfQVJHQjg4 ODg6Cj4+ICsJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4Ogo+PiArCQlyZXR1cm4gbW9kaWZpZXIg PT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQgfHwKPj4gKwkJCW1vZGlmaWVyID09IEk5MTVfRk9S TUFUX01PRF9YX1RJTEVEOwo+PiArCWNhc2UgRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMDoKPj4gKwlj YXNlIERSTV9GT1JNQVRfWEJHUjIxMDEwMTA6Cj4+ICsJCXJldHVybiBtb2RpZmllciA9PSBJOTE1 X0ZPUk1BVF9NT0RfWF9USUxFRDsKPj4gKwljYXNlIERSTV9GT1JNQVRfWVVZVjoKPj4gKwljYXNl IERSTV9GT1JNQVRfWVZZVToKPj4gKwljYXNlIERSTV9GT1JNQVRfVVlWWToKPj4gKwljYXNlIERS TV9GT1JNQVRfVllVWToKPgo+SUlSQyBvbiBTS0wgdGhlIG9ubHkgcmVzdHJpY3Rpb25zIHNob3Vs ZCBiZSB0aGF0IENDUyBtb2RpZmllcnMgYXJlCj5saW1pdGVkIHRvIDg6ODo4OjggZm9ybWF0cyBv bmx5LiBPdGhlciBtb2RpZmllcnMgc2hvdWxkIHdvcmsKPndpdGggYW55IGZvcm1hdC4KPgoKVGhp cyByZXN0cmljdGlvbiB3YXMgY29waWVkIGZyb20gS3Jpc3RpYW4ncyBwYXRjaC4gSSBqdXN0IGNo ZWNrZWQgdGhlIGRvY3MgYW5kCnlvdSBhcmUgY29ycmVjdC4gU28gdGhpcyBuZWVkcyBZZiBtb2Rp ZmllciB0b28uIChBc2lkZSBmcm9tIENDUywgcm90YXRpb24gaXMgdGhlCm9uZSBjYXNlOiB4LXRp bGVkIDEwMTAxMDIgaXNuJ3Qgc3VwcG9ydGVkKS4KCj4+ICsJZGVmYXVsdDoKPj4gKwkJcmV0dXJu IGZhbHNlOwo+PiArCX0KPj4gKwo+PiArfQo+PiArCj4+ICtzdGF0aWMgYm9vbCBpbnRlbF9wbGFu ZV9mb3JtYXRfbW9kX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPj4gKwkJCQkJ ICAgICB1aW50MzJfdCBmb3JtYXQsCj4+ICsJCQkJCSAgICAgdWludDY0X3QgbW9kaWZpZXIpCj4+ ICt7Cj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFu ZS0+ZGV2KTsKPj4gKwo+PiArCWlmIChtb2RpZmllciA9PSBEUk1fRk9STUFUX01PRF9OT05FKQo+ PiArCQlyZXR1cm4gdHJ1ZTsKPj4gKwo+PiArCWlmIChXQVJOX09OKG1vZGlmaWVyID09IERSTV9G T1JNQVRfTU9EX0lOVkFMSUQpKQo+PiArCQlyZXR1cm4gZmFsc2U7Cj4+ICsKPj4gKwlpZiAoV0FS Tl9PTihwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9QUklNQVJZICYmCj4+ICsJCSAgICBw bGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZKSkKPj4gKwkgICAgcmV0dXJuIGZh bHNlOwo+PiArCj4+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPj4gKwkJcmV0dXJu IHNrbF9tb2Rfc3VwcG9ydGVkKGZvcm1hdCwgbW9kaWZpZXIpOwo+PiArCWVsc2UgaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPj0gNCkKPj4gKwkJcmV0dXJuIGk5NjVfbW9kX3N1cHBvcnRlZChmb3Jt YXQsIG1vZGlmaWVyKTsKPj4gKwllbHNlCj4+ICsJCXJldHVybiBpOHh4X21vZF9zdXBwb3J0ZWQo Zm9ybWF0LCBtb2RpZmllcik7Cj4+ICsKPj4gKwlyZXR1cm4gZmFsc2U7Cj4+ICt9Cj4+ICsKPj4g IGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgaW50ZWxfcGxhbmVfZnVuY3MgPSB7Cj4+ICAJ LnVwZGF0ZV9wbGFuZSA9IGRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9wbGFuZSwKPj4gIAkuZGlz YWJsZV9wbGFuZSA9IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUsCj4+IEBAIC0xNTE4 Miw2ICsxNTI3OSw3IEBAIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgaW50ZWxfcGxhbmVf ZnVuY3MgPSB7Cj4+ICAJLmF0b21pY19zZXRfcHJvcGVydHkgPSBpbnRlbF9wbGFuZV9hdG9taWNf c2V0X3Byb3BlcnR5LAo+PiAgCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gaW50ZWxfcGxhbmVf ZHVwbGljYXRlX3N0YXRlLAo+PiAgCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGludGVsX3BsYW5l X2Rlc3Ryb3lfc3RhdGUsCj4+ICsJLmZvcm1hdF9tb2Rfc3VwcG9ydGVkID0gaW50ZWxfcGxhbmVf Zm9ybWF0X21vZF9zdXBwb3J0ZWQsCj4+ICB9Owo+Pgo+PiAgc3RhdGljIGludAo+PiBAQCAtMTUz MjQsNiArMTU0MjIsNyBAQCBpbnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKQo+PiAgCWNvbnN0IHVpbnQzMl90 ICppbnRlbF9wcmltYXJ5X2Zvcm1hdHM7Cj4+ICAJdW5zaWduZWQgaW50IHN1cHBvcnRlZF9yb3Rh dGlvbnM7Cj4+ICAJdW5zaWduZWQgaW50IG51bV9mb3JtYXRzOwo+PiArCWNvbnN0IHVpbnQ2NF90 ICppbnRlbF9mb3JtYXRfbW9kaWZpZXJzOwo+PiAgCWludCByZXQ7Cj4+Cj4+ICAJcHJpbWFyeSA9 IGt6YWxsb2Moc2l6ZW9mKCpwcmltYXJ5KSwgR0ZQX0tFUk5FTCk7Cj4+IEBAIC0xNTM2MiwyNCAr MTU0NjEsMjggQEAgaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSkKPj4gIAlpZiAoSU5URUxfR0VOKGRldl9w cml2KSA+PSA5KSB7Cj4+ICAJCWludGVsX3ByaW1hcnlfZm9ybWF0cyA9IHNrbF9wcmltYXJ5X2Zv cm1hdHM7Cj4+ICAJCW51bV9mb3JtYXRzID0gQVJSQVlfU0laRShza2xfcHJpbWFyeV9mb3JtYXRz KTsKPj4gKwkJaW50ZWxfZm9ybWF0X21vZGlmaWVycyA9IHNrbF9mb3JtYXRfbW9kaWZpZXJzOwo+ Pgo+PiAgCQlwcmltYXJ5LT51cGRhdGVfcGxhbmUgPSBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3Bs YW5lOwo+PiAgCQlwcmltYXJ5LT5kaXNhYmxlX3BsYW5lID0gc2t5bGFrZV9kaXNhYmxlX3ByaW1h cnlfcGxhbmU7Cj4+ICAJfSBlbHNlIGlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkgewo+PiAg CQlpbnRlbF9wcmltYXJ5X2Zvcm1hdHMgPSBpOTY1X3ByaW1hcnlfZm9ybWF0czsKPj4gIAkJbnVt X2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGk5NjVfcHJpbWFyeV9mb3JtYXRzKTsKPj4gKwkJaW50ZWxf Zm9ybWF0X21vZGlmaWVycyA9IGk5NjVfZm9ybWF0X21vZGlmaWVyczsKPj4KPj4gIAkJcHJpbWFy eS0+dXBkYXRlX3BsYW5lID0gaXJvbmxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmU7Cj4+ICAJCXBy aW1hcnktPmRpc2FibGVfcGxhbmUgPSBpOXh4X2Rpc2FibGVfcHJpbWFyeV9wbGFuZTsKPj4gIAl9 IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkgewo+PiAgCQlpbnRlbF9wcmltYXJ5 X2Zvcm1hdHMgPSBpOTY1X3ByaW1hcnlfZm9ybWF0czsKPj4gIAkJbnVtX2Zvcm1hdHMgPSBBUlJB WV9TSVpFKGk5NjVfcHJpbWFyeV9mb3JtYXRzKTsKPj4gKwkJaW50ZWxfZm9ybWF0X21vZGlmaWVy cyA9IGk5NjVfZm9ybWF0X21vZGlmaWVyczsKPj4KPj4gIAkJcHJpbWFyeS0+dXBkYXRlX3BsYW5l ID0gaTl4eF91cGRhdGVfcHJpbWFyeV9wbGFuZTsKPj4gIAkJcHJpbWFyeS0+ZGlzYWJsZV9wbGFu ZSA9IGk5eHhfZGlzYWJsZV9wcmltYXJ5X3BsYW5lOwo+PiAgCX0gZWxzZSB7Cj4+ICAJCWludGVs X3ByaW1hcnlfZm9ybWF0cyA9IGk4eHhfcHJpbWFyeV9mb3JtYXRzOwo+PiAgCQludW1fZm9ybWF0 cyA9IEFSUkFZX1NJWkUoaTh4eF9wcmltYXJ5X2Zvcm1hdHMpOwo+PiArCQlpbnRlbF9mb3JtYXRf bW9kaWZpZXJzID0gaTh4eF9mb3JtYXRfbW9kaWZpZXJzOwo+Pgo+PiAgCQlwcmltYXJ5LT51cGRh dGVfcGxhbmUgPSBpOXh4X3VwZGF0ZV9wcmltYXJ5X3BsYW5lOwo+PiAgCQlwcmltYXJ5LT5kaXNh YmxlX3BsYW5lID0gaTl4eF9kaXNhYmxlX3ByaW1hcnlfcGxhbmU7Cj4+IEBAIC0xNTM4OSwyMSAr MTU0OTIsMjEgQEAgaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSkKPj4gIAkJcmV0ID0gZHJtX3VuaXZlcnNh bF9wbGFuZV9pbml0KCZkZXZfcHJpdi0+ZHJtLCAmcHJpbWFyeS0+YmFzZSwKPj4gIAkJCQkJICAg ICAgIDAsICZpbnRlbF9wbGFuZV9mdW5jcywKPj4gIAkJCQkJICAgICAgIGludGVsX3ByaW1hcnlf Zm9ybWF0cywgbnVtX2Zvcm1hdHMsCj4+IC0JCQkJCSAgICAgICBOVUxMLAo+PiArCQkJCQkgICAg ICAgaW50ZWxfZm9ybWF0X21vZGlmaWVycywKPj4gIAkJCQkJICAgICAgIERSTV9QTEFORV9UWVBF X1BSSU1BUlksCj4+ICAJCQkJCSAgICAgICAicGxhbmUgMSVjIiwgcGlwZV9uYW1lKHBpcGUpKTsK Pj4gIAllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDUgfHwgSVNfRzRYKGRldl9wcml2 KSkKPj4gIAkJcmV0ID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KCZkZXZfcHJpdi0+ZHJtLCAm cHJpbWFyeS0+YmFzZSwKPj4gIAkJCQkJICAgICAgIDAsICZpbnRlbF9wbGFuZV9mdW5jcywKPj4g IAkJCQkJICAgICAgIGludGVsX3ByaW1hcnlfZm9ybWF0cywgbnVtX2Zvcm1hdHMsCj4+IC0JCQkJ CSAgICAgICBOVUxMLAo+PiArCQkJCQkgICAgICAgaW50ZWxfZm9ybWF0X21vZGlmaWVycywKPj4g IAkJCQkJICAgICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlksCj4+ICAJCQkJCSAgICAgICAicHJp bWFyeSAlYyIsIHBpcGVfbmFtZShwaXBlKSk7Cj4+ICAJZWxzZQo+PiAgCQlyZXQgPSBkcm1fdW5p dmVyc2FsX3BsYW5lX2luaXQoJmRldl9wcml2LT5kcm0sICZwcmltYXJ5LT5iYXNlLAo+PiAgCQkJ CQkgICAgICAgMCwgJmludGVsX3BsYW5lX2Z1bmNzLAo+PiAgCQkJCQkgICAgICAgaW50ZWxfcHJp bWFyeV9mb3JtYXRzLCBudW1fZm9ybWF0cywKPj4gLQkJCQkJICAgICAgIE5VTEwsCj4+ICsJCQkJ CSAgICAgICBpbnRlbF9mb3JtYXRfbW9kaWZpZXJzLAo+PiAgCQkJCQkgICAgICAgRFJNX1BMQU5F X1RZUEVfUFJJTUFSWSwKPj4gIAkJCQkJICAgICAgICJwbGFuZSAlYyIsIHBsYW5lX25hbWUocHJp bWFyeS0+cGxhbmUpKTsKPj4gIAlpZiAocmV0KQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJp dGUuYwo+PiBpbmRleCAxYzJmMjZkODZmNzYuLjE1MmVjODE5NmQ0MSAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPj4gQEAgLTk5NCw2ICs5OTQsMTEgQEAgc3RhdGljIGNv bnN0IHVpbnQzMl90IGlsa19wbGFuZV9mb3JtYXRzW10gPSB7Cj4+ICAJRFJNX0ZPUk1BVF9WWVVZ LAo+PiAgfTsKPj4KPj4gK3N0YXRpYyBjb25zdCB1aW50NjRfdCBpbGtfcGxhbmVfZm9ybWF0X21v ZGlmaWVyc1tdID0gewo+PiArCUk5MTVfRk9STUFUX01PRF9YX1RJTEVELAo+PiArCURSTV9GT1JN QVRfTU9EX0lOVkFMSUQKPj4gK307Cj4+ICsKPj4gIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzbmJf cGxhbmVfZm9ybWF0c1tdID0gewo+PiAgCURSTV9GT1JNQVRfWEJHUjg4ODgsCj4+ICAJRFJNX0ZP Uk1BVF9YUkdCODg4OCwKPj4gQEAgLTEwMDMsNiArMTAwOCwxMSBAQCBzdGF0aWMgY29uc3QgdWlu dDMyX3Qgc25iX3BsYW5lX2Zvcm1hdHNbXSA9IHsKPj4gIAlEUk1fRk9STUFUX1ZZVVksCj4+ICB9 Owo+Pgo+PiArc3RhdGljIGNvbnN0IHVpbnQ2NF90IHNuYl9wbGFuZV9mb3JtYXRfbW9kaWZpZXJz W10gPSB7Cj4+ICsJSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsCj4+ICsJRFJNX0ZPUk1BVF9NT0Rf SU5WQUxJRAo+PiArfTsKPj4gKwo+PiAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHZsdl9wbGFuZV9m b3JtYXRzW10gPSB7Cj4+ICAJRFJNX0ZPUk1BVF9SR0I1NjUsCj4+ICAJRFJNX0ZPUk1BVF9BQkdS ODg4OCwKPj4gQEAgLTEwMTcsNiArMTAyNywxMSBAQCBzdGF0aWMgY29uc3QgdWludDMyX3Qgdmx2 X3BsYW5lX2Zvcm1hdHNbXSA9IHsKPj4gIAlEUk1fRk9STUFUX1ZZVVksCj4+ICB9Owo+Pgo+PiAr c3RhdGljIGNvbnN0IHVpbnQ2NF90IHZsdl9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzW10gPSB7Cj4+ ICsJSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsCj4+ICsJRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRAo+ PiArfTsKPj4gKwo+PiAgc3RhdGljIHVpbnQzMl90IHNrbF9wbGFuZV9mb3JtYXRzW10gPSB7Cj4+ ICAJRFJNX0ZPUk1BVF9SR0I1NjUsCj4+ICAJRFJNX0ZPUk1BVF9BQkdSODg4OCwKPj4gQEAgLTEw MjksNiArMTA0NCwxMiBAQCBzdGF0aWMgdWludDMyX3Qgc2tsX3BsYW5lX2Zvcm1hdHNbXSA9IHsK Pj4gIAlEUk1fRk9STUFUX1ZZVVksCj4+ICB9Owo+Pgo+PiArc3RhdGljIGNvbnN0IHVpbnQ2NF90 IHNrbF9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzW10gPSB7Cj4+ICsJSTkxNV9GT1JNQVRfTU9EX1lf VElMRUQsCj4+ICsJSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsCj4+ICsJRFJNX0ZPUk1BVF9NT0Rf SU5WQUxJRAo+PiArfTsKPj4gKwo+PiAgc3RydWN0IGludGVsX3BsYW5lICoKPj4gIGludGVsX3Nw cml0ZV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiAg CQkJICBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lKQo+PiBAQCAtMTAzNyw2ICsxMDU4LDcgQEAg aW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4+ICAJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSA9IE5VTEw7Cj4+ICAJdW5z aWduZWQgbG9uZyBwb3NzaWJsZV9jcnRjczsKPj4gIAljb25zdCB1aW50MzJfdCAqcGxhbmVfZm9y bWF0czsKPj4gKwljb25zdCB1aW50NjRfdCAqbW9kaWZpZXJzOwo+PiAgCXVuc2lnbmVkIGludCBz dXBwb3J0ZWRfcm90YXRpb25zOwo+PiAgCWludCBudW1fcGxhbmVfZm9ybWF0czsKPj4gIAlpbnQg cmV0Owo+PiBAQCAtMTA2Myw2ICsxMDg1LDcgQEAgaW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+Cj4+ICAJCXBsYW5lX2Zvcm1hdHMg PSBza2xfcGxhbmVfZm9ybWF0czsKPj4gIAkJbnVtX3BsYW5lX2Zvcm1hdHMgPSBBUlJBWV9TSVpF KHNrbF9wbGFuZV9mb3JtYXRzKTsKPj4gKwkJbW9kaWZpZXJzID0gc2tsX3BsYW5lX2Zvcm1hdF9t b2RpZmllcnM7Cj4+ICAJfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19D SEVSUllWSUVXKGRldl9wcml2KSkgewo+PiAgCQlpbnRlbF9wbGFuZS0+Y2FuX3NjYWxlID0gZmFs c2U7Cj4+ICAJCWludGVsX3BsYW5lLT5tYXhfZG93bnNjYWxlID0gMTsKPj4gQEAgLTEwNzIsNiAr MTA5NSw3IEBAIGludGVsX3Nwcml0ZV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+Pgo+PiAgCQlwbGFuZV9mb3JtYXRzID0gdmx2X3BsYW5lX2Zvcm1hdHM7 Cj4+ICAJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRSh2bHZfcGxhbmVfZm9ybWF0cyk7 Cj4+ICsJCW1vZGlmaWVycyA9IHZsdl9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzOwo+PiAgCX0gZWxz ZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA3KSB7Cj4+ICAJCWlmIChJU19JVllCUklER0Uo ZGV2X3ByaXYpKSB7Cj4+ICAJCQlpbnRlbF9wbGFuZS0+Y2FuX3NjYWxlID0gdHJ1ZTsKPj4gQEAg LTEwODYsNiArMTExMCw3IEBAIGludGVsX3Nwcml0ZV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+Pgo+PiAgCQlwbGFuZV9mb3JtYXRzID0gc25iX3BsYW5l X2Zvcm1hdHM7Cj4+ICAJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRShzbmJfcGxhbmVf Zm9ybWF0cyk7Cj4+ICsJCW1vZGlmaWVycyA9IHNuYl9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzOwo+ PiAgCX0gZWxzZSB7Cj4+ICAJCWludGVsX3BsYW5lLT5jYW5fc2NhbGUgPSB0cnVlOwo+PiAgCQlp bnRlbF9wbGFuZS0+bWF4X2Rvd25zY2FsZSA9IDE2Owo+PiBAQCAtMTA5Niw5ICsxMTIxLDExIEBA IGludGVsX3Nwcml0ZV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+PiAgCQlpZiAoSVNfR0VONihkZXZfcHJpdikpIHsKPj4gIAkJCXBsYW5lX2Zvcm1hdHMg PSBzbmJfcGxhbmVfZm9ybWF0czsKPj4gIAkJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0la RShzbmJfcGxhbmVfZm9ybWF0cyk7Cj4+ICsJCQltb2RpZmllcnMgPSBzbmJfcGxhbmVfZm9ybWF0 X21vZGlmaWVyczsKPj4gIAkJfSBlbHNlIHsKPj4gIAkJCXBsYW5lX2Zvcm1hdHMgPSBpbGtfcGxh bmVfZm9ybWF0czsKPj4gIAkJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRShpbGtfcGxh bmVfZm9ybWF0cyk7Cj4+ICsJCQltb2RpZmllcnMgPSBpbGtfcGxhbmVfZm9ybWF0X21vZGlmaWVy czsKPj4gIAkJfQo+PiAgCX0KPj4KPj4gQEAgLTExMjcsMTMgKzExNTQsMTUgQEAgaW50ZWxfc3By aXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAJ CXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdCgmZGV2X3ByaXYtPmRybSwgJmludGVsX3Bs YW5lLT5iYXNlLAo+PiAgCQkJCQkgICAgICAgcG9zc2libGVfY3J0Y3MsICZpbnRlbF9wbGFuZV9m dW5jcywKPj4gIAkJCQkJICAgICAgIHBsYW5lX2Zvcm1hdHMsIG51bV9wbGFuZV9mb3JtYXRzLAo+ PiAtCQkJCQkgICAgICAgTlVMTCwgRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSwKPj4gKwkJCQkJICAg ICAgIG1vZGlmaWVycywKPj4gKwkJCQkJICAgICAgIERSTV9QTEFORV9UWVBFX09WRVJMQVksCj4+ ICAJCQkJCSAgICAgICAicGxhbmUgJWQlYyIsIHBsYW5lICsgMiwgcGlwZV9uYW1lKHBpcGUpKTsK Pj4gIAllbHNlCj4+ICAJCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdCgmZGV2X3ByaXYt PmRybSwgJmludGVsX3BsYW5lLT5iYXNlLAo+PiAgCQkJCQkgICAgICAgcG9zc2libGVfY3J0Y3Ms ICZpbnRlbF9wbGFuZV9mdW5jcywKPj4gIAkJCQkJICAgICAgIHBsYW5lX2Zvcm1hdHMsIG51bV9w bGFuZV9mb3JtYXRzLAo+PiAtCQkJCQkgICAgICAgTlVMTCwgRFJNX1BMQU5FX1RZUEVfT1ZFUkxB WSwKPj4gKwkJCQkJICAgICAgIG1vZGlmaWVycywKPj4gKwkJCQkJICAgICAgIERSTV9QTEFORV9U WVBFX09WRVJMQVksCj4+ICAJCQkJCSAgICAgICAic3ByaXRlICVjIiwgc3ByaXRlX25hbWUocGlw ZSwgcGxhbmUpKTsKPj4gIAlpZiAocmV0KQo+PiAgCQlnb3RvIGZhaWw7Cj4+IC0tCj4+IDIuMTEu MAo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwKPgo+LS0gCj5WaWxsZSBTeXJqw6Rsw6QKPkludGVsIE9UQwpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK