From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ayan Halder Subject: Re: [RFC PATCH v2 1/3] drm/fourcc: Add 'bpp' field for formats with non-integer bytes-per-pixel Date: Mon, 10 Sep 2018 15:11:34 +0100 Message-ID: <20180910141134.GA19567@arm.com> References: <20180823152343.6474-1-brian.starkey@arm.com> <20180823152343.6474-2-brian.starkey@arm.com> <20180831081730.GM21634@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80040.outbound.protection.outlook.com [40.107.8.40]) by gabe.freedesktop.org (Postfix) with ESMTPS id BBAC96E010 for ; Mon, 10 Sep 2018 14:11:40 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180831081730.GM21634@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Brian Starkey , dri-devel@lists.freedesktop.org, daniel@fooishbar.org, airlied@linux.ie, gustavo@padovan.org, maarten.lankhorst@linux.intel.com, seanpaul@chromium.org, linux-kernel@vger.kernel.org, alexandru-cosmin.gheorghe@arm.com, liviu.dudau@arm.com, tfiga@chromium.org, hoegsberg@chromium.org Cc: nd@arm.com List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBBdWcgMzEsIDIwMTggYXQgMTA6MTc6MzBBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIEF1ZyAyMywgMjAxOCBhdCAwNDoyMzo0MVBNICswMTAwLCBCcmlhbiBT dGFya2V5IHdyb3RlOgo+ID4gU29tZSBmb3JtYXRzIGhhdmUgYSBub24taW50ZWdlciBudW1iZXIg b2YgYnl0ZXMgcGVyIHBpeGVsLCB3aGljaCBjYW4ndAo+ID4gYmUgaGFuZGxlZCB3aXRoIHRoZSBl eGlzdGluZyAnY3BwJyBmaWVsZCBpbiBkcm1fZm9ybWF0X2luZm8uIFRvIGhhbmRsZQo+ID4gdGhl c2UgZm9ybWF0cywgYWRkIGEgJ2JwcCcgZmllbGQsIHdoaWNoIGlzIG9ubHkgdXNlZCBpZiBjcHBb MF0gPT0gMC4KPiA+IAo+ID4gVGhpcyB1cGRhdGVzIGFsbCB0aGUgdXNlcnMgb2YgZm9ybWF0LT5j cHAgaW4gdGhlIGNvcmUgRFJNIGNvZGUsCj4gPiBjb252ZXJ0aW5nIHRoZW0gdG8gdXNlIGEgbmV3 IGZ1bmN0aW9uIHRvIGdldCB0aGUgYml0cy1wZXItcGl4ZWwgZm9yIGFueQo+ID4gZm9ybWF0Lgo+ ID4gCj4gPiBJdCdzIGFzc3VtZWQgdGhhdCBkcml2ZXJzIHdpbGwgdXNlIHRoZSAnYnBwJyBmaWVs ZCB3aGVuIHRoZXkgYWRkIHN1cHBvcnQKPiA+IGZvciBwaXhlbCBmb3JtYXRzIHdpdGggbm9uLWlu dGVnZXIgYnl0ZXMtcGVyLXBpeGVsLgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBCcmlhbiBTdGFy a2V5IDxicmlhbi5zdGFya2V5QGFybS5jb20+Cj4gCj4gSSBhc3N1bWUgeW91IHN0aWxsIHJlcXVp cmUgdGhhdCBzdHVmZiBpcyBldmVudHVhbGx5IGFsaWduZWQgdG8gYnl0ZXM/IEluCj4gdGhhdCBj YXNlLCBjYW4gd2Ugc3Vic3VtZSB0aGlzIGludG8gdGhlIHRpbGUgd29yayBBbGV4IGlzIGRvaW5n PyBJdCdzCj4gZXNzZW50aWFsbHkganVzdCBhbm90aGVyIHNwZWNpYWwgY2FzZSBvZiBoYXZpbmcg c3RvcmFnZS1zaXplIHVuaXRzCj4gbWVhc3VyZWQgaW4gYnl0ZXMgd2hpY2ggc3BhbiBtb3JlIHRo YW4gMXgxIHBpeGVsLiBBbmQgSSBraW5kYSBkb24ndCB3YW50IGEKPiBtZXRyaWMgcGlsZSBvZiBz cGVjaWFsIGNhc2VzIGhlcmUgaW4gdGhlIGZvcm1hdCBjb2RlLCBiZWNhdXNlIHRoYXQganVzdAo+ IG1lYW5zIGV2ZXJ5IGRyaXZlciBoYW5kbGVzIGEgZGlmZmVyZW50IHN1YnNldCwgd2l0aCBkaWZm ZXJlbnQgYnVncy4KPiAtRGFuaWVsCj4gCj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJt X2ZiX2NtYV9oZWxwZXIuYyAgICAgICAgICB8ICA2ICsrKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0v ZHJtX2ZiX2hlbHBlci5jICAgICAgICAgICAgICB8ICA4ICsrKy0tCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2RybV9mb3VyY2MuYyAgICAgICAgICAgICAgICAgfCA1MCArKysrKysrKysrKysrKysrKysr KysrKysrKysrCj4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jICAgICAgICAg ICAgfCAgOCArKy0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hl bHBlci5jIHwgIDMgKy0KPiA+ICBpbmNsdWRlL2RybS9kcm1fZm91cmNjLmggICAgICAgICAgICAg ICAgICAgICB8ICA0ICsrKwo+ID4gIDYgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwg OSBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZmJfY21hX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9jbWFfaGVscGVyLmMKPiA+ IGluZGV4IDE4NmQwMGFkZmI1Zi4uZTI3OWQ3MGQzZTYwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9mYl9jbWFfaGVscGVyLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZmJfY21hX2hlbHBlci5jCj4gPiBAQCAtMTE4LDEzICsxMTgsMTcgQEAgZG1hX2FkZHJfdCBk cm1fZmJfY21hX2dldF9nZW1fYWRkcihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ICB7 Cj4gPiAgCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKm9iajsKPiA+ICAJZG1hX2FkZHJfdCBw YWRkcjsKPiA+ICsJdTggYnBwID0gZHJtX2Zvcm1hdF9pbmZvX3BsYW5lX2JwcChmYi0+Zm9ybWF0 LCBwbGFuZSk7Cj4gPiArCj4gPiArCS8qIFRoaXMgY2FuJ3Qgd29yayBmb3Igbm9uLWludGVnZXIg Ynl0ZXMtcGVyLXBpeGVsICovCj4gPiArCVdBUk5fT04oYnBwICUgOCk7Cj4gPiAgCj4gPiAgCW9i aiA9IGRybV9mYl9jbWFfZ2V0X2dlbV9vYmooZmIsIHBsYW5lKTsKPiA+ICAJaWYgKCFvYmopCj4g PiAgCQlyZXR1cm4gMDsKPiA+ICAKPiA+ICAJcGFkZHIgPSBvYmotPnBhZGRyICsgZmItPm9mZnNl dHNbcGxhbmVdOwo+ID4gLQlwYWRkciArPSBmYi0+Zm9ybWF0LT5jcHBbcGxhbmVdICogKHN0YXRl LT5zcmNfeCA+PiAxNik7Cj4gPiArCXBhZGRyICs9IChicHAgLyA4KSAqIChzdGF0ZS0+c3JjX3gg Pj4gMTYpOwo+ID4gIAlwYWRkciArPSBmYi0+cGl0Y2hlc1twbGFuZV0gKiAoc3RhdGUtPnNyY195 ID4+IDE2KTsKPiA+ICAKPiA+ICAJcmV0dXJuIHBhZGRyOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBl ci5jCj4gPiBpbmRleCAwNjQ2YjEwODAzMGIuLmFiMzY5ZjI1MGFmNCAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZmJfaGVscGVyLmMKPiA+IEBAIC0xNTcyLDYgKzE1NzIsNyBAQCBpbnQgZHJtX2ZiX2hl bHBlcl9jaGVja192YXIoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsCj4gPiAgCXN0cnVj dCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIgPSBpbmZvLT5wYXI7Cj4gPiAgCXN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gZmJfaGVscGVyLT5mYjsKPiA+ICAJaW50IGRlcHRoOwo+ID4gKwl1 OCBicHAgPSBkcm1fZm9ybWF0X2luZm9fcGxhbmVfYnBwKGZiLT5mb3JtYXQsIDApOwo+ID4gIAo+ ID4gIAlpZiAodmFyLT5waXhjbG9jayAhPSAwIHx8IGluX2RiZ19tYXN0ZXIoKSkKPiA+ICAJCXJl dHVybiAtRUlOVkFMOwo+ID4gQEAgLTE1ODAsMTQgKzE1ODEsMTQgQEAgaW50IGRybV9mYl9oZWxw ZXJfY2hlY2tfdmFyKHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLAo+ID4gIAkgKiBDaGFu Z2VzIHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyBhcmUgY3VycmVudGx5IG5vdCBwdXNoZWQgYmFj awo+ID4gIAkgKiB0byBLTVMsIGhlbmNlIGZhaWwgaWYgZGlmZmVyZW50IHNldHRpbmdzIGFyZSBy ZXF1ZXN0ZWQuCj4gPiAgCSAqLwo+ID4gLQlpZiAodmFyLT5iaXRzX3Blcl9waXhlbCAhPSBmYi0+ Zm9ybWF0LT5jcHBbMF0gKiA4IHx8Cj4gPiArCWlmICh2YXItPmJpdHNfcGVyX3BpeGVsICE9IGJw cCB8fAo+ID4gIAkgICAgdmFyLT54cmVzID4gZmItPndpZHRoIHx8IHZhci0+eXJlcyA+IGZiLT5o ZWlnaHQgfHwKPiA+ICAJICAgIHZhci0+eHJlc192aXJ0dWFsID4gZmItPndpZHRoIHx8IHZhci0+ eXJlc192aXJ0dWFsID4gZmItPmhlaWdodCkgewo+ID4gIAkJRFJNX0RFQlVHKCJmYiByZXF1ZXN0 ZWQgd2lkdGgvaGVpZ2h0L2JwcCBjYW4ndCBmaXQgaW4gY3VycmVudCBmYiAiCj4gPiAgCQkJICAi cmVxdWVzdCAlZHglZC0lZCAodmlydHVhbCAlZHglZCkgPiAlZHglZC0lZFxuIiwKPiA+ICAJCQkg IHZhci0+eHJlcywgdmFyLT55cmVzLCB2YXItPmJpdHNfcGVyX3BpeGVsLAo+ID4gIAkJCSAgdmFy LT54cmVzX3ZpcnR1YWwsIHZhci0+eXJlc192aXJ0dWFsLAo+ID4gLQkJCSAgZmItPndpZHRoLCBm Yi0+aGVpZ2h0LCBmYi0+Zm9ybWF0LT5jcHBbMF0gKiA4KTsKPiA+ICsJCQkgIGZiLT53aWR0aCwg ZmItPmhlaWdodCwgYnBwKTsKPiA+ICAJCXJldHVybiAtRUlOVkFMOwo+ID4gIAl9Cj4gPiAgCj4g PiBAQCAtMTk0OSwxMSArMTk1MCwxMiBAQCB2b2lkIGRybV9mYl9oZWxwZXJfZmlsbF92YXIoc3Ry dWN0IGZiX2luZm8gKmluZm8sIHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZQo+ID4gIAkJ CSAgICB1aW50MzJfdCBmYl93aWR0aCwgdWludDMyX3QgZmJfaGVpZ2h0KQo+ID4gIHsKPiA+ICAJ c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBmYl9oZWxwZXItPmZiOwo+ID4gKwl1OCBicHAg PSBkcm1fZm9ybWF0X2luZm9fcGxhbmVfYnBwKGZiLT5mb3JtYXQsIDApOwo+ID4gIAo+ID4gIAlp bmZvLT5wc2V1ZG9fcGFsZXR0ZSA9IGZiX2hlbHBlci0+cHNldWRvX3BhbGV0dGU7Cj4gPiAgCWlu Zm8tPnZhci54cmVzX3ZpcnR1YWwgPSBmYi0+d2lkdGg7Cj4gPiAgCWluZm8tPnZhci55cmVzX3Zp cnR1YWwgPSBmYi0+aGVpZ2h0Owo+ID4gLQlpbmZvLT52YXIuYml0c19wZXJfcGl4ZWwgPSBmYi0+ Zm9ybWF0LT5jcHBbMF0gKiA4Owo+ID4gKwlpbmZvLT52YXIuYml0c19wZXJfcGl4ZWwgPSBicHA7 Cj4gPiAgCWluZm8tPnZhci5hY2NlbF9mbGFncyA9IEZCX0FDQ0VMRl9URVhUOwo+ID4gIAlpbmZv LT52YXIueG9mZnNldCA9IDA7Cj4gPiAgCWluZm8tPnZhci55b2Zmc2V0ID0gMDsKPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9mb3VyY2MuYwo+ID4gaW5kZXggM2I0MmMyNWJkNThkLi5iYjI4OTE5YzMyZjMgMTAwNjQ0Cj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZvdXJjYy5jCj4gPiBAQCAtMjcyLDEwICsyNzIsNjAgQEAgaW50IGRybV9mb3Jt YXRfcGxhbmVfY3BwKHVpbnQzMl90IGZvcm1hdCwgaW50IHBsYW5lKQo+ID4gIAlpZiAoIWluZm8g fHwgcGxhbmUgPj0gaW5mby0+bnVtX3BsYW5lcykKPiA+ICAJCXJldHVybiAwOwo+ID4gIAo+ID4g KwkvKgo+ID4gKwkgKiBOb3QgdmFsaWQgZm9yIGZvcm1hdHMgd2l0aCBub24taW50ZWdlciBjcHAs Cj4gPiArCSAqIHVzZSBkcm1fZm9ybWF0e19pbmZvfV9wbGFuZV9icHAgaW5zdGVhZAo+ID4gKwkg Ki8KPiA+ICsJV0FSTl9PTighaW5mby0+Y3BwWzBdKTsKPiA+ICsKPiA+ICAJcmV0dXJuIGluZm8t PmNwcFtwbGFuZV07Cj4gPiAgfQo+ID4gIEVYUE9SVF9TWU1CT0woZHJtX2Zvcm1hdF9wbGFuZV9j cHApOwo+ID4gIAo+ID4gKy8qKgo+ID4gKyAqIGRybV9mb3JtYXRfcGxhbmVfYnBwIC0gZGV0ZXJt aW5lIHRoZSBiaXRzIHBlciBwaXhlbCB2YWx1ZQo+ID4gKyAqIEBmb3JtYXQ6IHBpeGVsIGZvcm1h dCAoRFJNX0ZPUk1BVF8qKQo+ID4gKyAqIEBwbGFuZTogcGxhbmUgaW5kZXgKPiA+ICsgKgo+ID4g KyAqIFJldHVybnM6Cj4gPiArICogVGhlIGJpdHMgcGVyIHBpeGVsIHZhbHVlIGZvciB0aGUgc3Bl Y2lmaWVkIHBsYW5lLgo+ID4gKyAqLwo+ID4gK2ludCBkcm1fZm9ybWF0X3BsYW5lX2JwcCh1aW50 MzJfdCBmb3JtYXQsIGludCBwbGFuZSkKPiA+ICt7Cj4gPiArCWNvbnN0IHN0cnVjdCBkcm1fZm9y bWF0X2luZm8gKmluZm87Cj4gPiArCj4gPiArCWluZm8gPSBkcm1fZm9ybWF0X2luZm8oZm9ybWF0 KTsKPiA+ICsJaWYgKCFpbmZvKQo+ID4gKwkJcmV0dXJuIDA7Cj4gPiArCj4gPiArCXJldHVybiBk cm1fZm9ybWF0X2luZm9fcGxhbmVfYnBwKGluZm8sIHBsYW5lKTsKPiA+ICt9Cj4gPiArRVhQT1JU X1NZTUJPTChkcm1fZm9ybWF0X3BsYW5lX2JwcCk7Cj4gPiArCj4gPiArLyoqCj4gPiArICogZHJt X2Zvcm1hdF9pbmZvX3BsYW5lX2JwcCAtIGRldGVybWluZSB0aGUgYml0cyBwZXIgcGl4ZWwgdmFs dWUKPiA+ICsgKgo+ID4gKyAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIHdoaWNoIGhhbmRsZXMgZm9y bWF0cyB3aXRoIGJvdGggaW50ZWdlcgo+ID4gKyAqIGFuZCBub24taW50ZWdlciBieXRlcy1wZXIt cGl4ZWwuCj4gPiArICoKPiA+ICsgKiBAZm9ybWF0OiBwaXhlbCBmb3JtYXQgaW5mbyBzdHJ1Y3R1 cmUKPiA+ICsgKiBAcGxhbmU6IHBsYW5lIGluZGV4Cj4gPiArICoKPiA+ICsgKiBSZXR1cm5zOgo+ ID4gKyAqIFRoZSBiaXRzIHBlciBwaXhlbCB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCBwbGFuZS4K PiA+ICsgKi8KPiA+ICtpbnQgZHJtX2Zvcm1hdF9pbmZvX3BsYW5lX2JwcChjb25zdCBzdHJ1Y3Qg ZHJtX2Zvcm1hdF9pbmZvICppbmZvLCBpbnQgcGxhbmUpCj4gPiArewo+ID4gKwlpZiAocGxhbmUg Pj0gaW5mby0+bnVtX3BsYW5lcykKPiA+ICsJCXJldHVybiAwOwo+ID4gKwo+ID4gKwlpZiAoaW5m by0+Y3BwWzBdKQo+ID4gKwkJcmV0dXJuIGluZm8tPmNwcFtwbGFuZV0gKiA4Owo+ID4gKwo+ID4g KwlyZXR1cm4gaW5mby0+YnBwW3BsYW5lXTsKPiA+ICt9Cj4gPiArRVhQT1JUX1NZTUJPTChkcm1f Zm9ybWF0X2luZm9fcGxhbmVfYnBwKTsKPiA+ICsKPiA+ICAvKioKPiA+ICAgKiBkcm1fZm9ybWF0 X2hvcnpfY2hyb21hX3N1YnNhbXBsaW5nIC0gZ2V0IHRoZSBob3Jpem9udGFsIGNocm9tYSBzdWJz YW1wbGluZyBmYWN0b3IKPiA+ICAgKiBAZm9ybWF0OiBwaXhlbCBmb3JtYXQgKERSTV9GT1JNQVRf KikKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMKPiA+IGluZGV4IDhjNGQzMmFkY2MxNy4u N2UwMDM2MGZmNzBkIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1 ZmZlci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMKPiA+IEBA IC0xODUsMjAgKzE4NSwyMCBAQCBzdGF0aWMgaW50IGZyYW1lYnVmZmVyX2NoZWNrKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gPiAgCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5udW1fcGxhbmVzOyBp KyspIHsKPiA+ICAJCXVuc2lnbmVkIGludCB3aWR0aCA9IGZiX3BsYW5lX3dpZHRoKHItPndpZHRo LCBpbmZvLCBpKTsKPiA+ICAJCXVuc2lnbmVkIGludCBoZWlnaHQgPSBmYl9wbGFuZV9oZWlnaHQo ci0+aGVpZ2h0LCBpbmZvLCBpKTsKPiA+IC0JCXVuc2lnbmVkIGludCBjcHAgPSBpbmZvLT5jcHBb aV07Cj4gPiArCQl1bnNpZ25lZCBpbnQgYnBwID0gZHJtX2Zvcm1hdF9pbmZvX3BsYW5lX2JwcChp bmZvLCBpKTsKPiA+ICAKPiA+ICAJCWlmICghci0+aGFuZGxlc1tpXSkgewo+ID4gIAkJCURSTV9E RUJVR19LTVMoIm5vIGJ1ZmZlciBvYmplY3QgaGFuZGxlIGZvciBwbGFuZSAlZFxuIiwgaSk7Cj4g PiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPiAgCQl9Cj4gPiAgCj4gPiAtCQlpZiAoKHVpbnQ2NF90 KSB3aWR0aCAqIGNwcCA+IFVJTlRfTUFYKQo+ID4gKwkJaWYgKCh1aW50NjRfdCkgRElWX1JPVU5E X1VQKHdpZHRoICogYnBwLCA4KSA+IFVJTlRfTUFYKQo+ID4gIAkJCXJldHVybiAtRVJBTkdFOwo+ ID4gIAo+ID4gIAkJaWYgKCh1aW50NjRfdCkgaGVpZ2h0ICogci0+cGl0Y2hlc1tpXSArIHItPm9m ZnNldHNbaV0gPiBVSU5UX01BWCkKPiA+ICAJCQlyZXR1cm4gLUVSQU5HRTsKPiA+ICAKPiA+IC0J CWlmIChyLT5waXRjaGVzW2ldIDwgd2lkdGggKiBjcHApIHsKPiA+ICsJCWlmICgodWludDY0X3Qp IHItPnBpdGNoZXNbaV0gKiA4IDwgKHVpbnQ2NF90KSB3aWR0aCAqIGJwcCkgewo+ID4gIAkJCURS TV9ERUJVR19LTVMoImJhZCBwaXRjaCAldSBmb3IgcGxhbmUgJWRcbiIsIHItPnBpdGNoZXNbaV0s IGkpOwo+ID4gIAkJCXJldHVybiAtRUlOVkFMOwo+ID4gIAkJfQo+ID4gQEAgLTQ3Niw3ICs0NzYs NyBAQCBpbnQgZHJtX21vZGVfZ2V0ZmIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICAJci0+ aGVpZ2h0ID0gZmItPmhlaWdodDsKPiA+ICAJci0+d2lkdGggPSBmYi0+d2lkdGg7Cj4gPiAgCXIt PmRlcHRoID0gZmItPmZvcm1hdC0+ZGVwdGg7Cj4gPiAtCXItPmJwcCA9IGZiLT5mb3JtYXQtPmNw cFswXSAqIDg7Cj4gPiArCXItPmJwcCA9IGRybV9mb3JtYXRfaW5mb19wbGFuZV9icHAoZmItPmZv cm1hdCwgMCk7Cj4gPiAgCXItPnBpdGNoID0gZmItPnBpdGNoZXNbMF07Cj4gPiAgCj4gPiAgCS8q IEdFVF9GQigpIGlzIGFuIHVucHJpdmlsZWdlZCBpb2N0bCBzbyB3ZSBtdXN0IG5vdCByZXR1cm4g YQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hl bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmMKPiA+ IGluZGV4IGFjZmJjMDY0MWEwNi4uZGZlMjI0Y2NhZWJhIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmMKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5jCj4gPiBAQCAtMTYxLDYgKzE2MSw3 IEBAIGRybV9nZW1fZmJfY3JlYXRlX3dpdGhfZnVuY3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwg c3RydWN0IGRybV9maWxlICpmaWxlLAo+ID4gIAkJdW5zaWduZWQgaW50IHdpZHRoID0gbW9kZV9j bWQtPndpZHRoIC8gKGkgPyBpbmZvLT5oc3ViIDogMSk7Cj4gPiAgCQl1bnNpZ25lZCBpbnQgaGVp Z2h0ID0gbW9kZV9jbWQtPmhlaWdodCAvIChpID8gaW5mby0+dnN1YiA6IDEpOwo+ID4gIAkJdW5z aWduZWQgaW50IG1pbl9zaXplOwo+ID4gKwkJdTggYnBwID0gZHJtX2Zvcm1hdF9pbmZvX3BsYW5l X2JwcChmYi0+Zm9ybWF0LCBpKTsKWW91IG1pZ2h0IHdhbnQgdG8gcGFzcyBpbmZvIGhlcmUgaW5z dGVhZCBvZiBmYi0+Zm9ybWF0IGJlY2F1c2UgZmIgaXMKTlVMTC4gaWUgZHJtX2Zvcm1hdF9pbmZv X3BsYW5lX2JwcChpbmZvLCBpKTsKCj4gPiAgCj4gPiAgCQlvYmpzW2ldID0gZHJtX2dlbV9vYmpl Y3RfbG9va3VwKGZpbGUsIG1vZGVfY21kLT5oYW5kbGVzW2ldKTsKPiA+ICAJCWlmICghb2Jqc1tp XSkgewo+ID4gQEAgLTE3MCw3ICsxNzEsNyBAQCBkcm1fZ2VtX2ZiX2NyZWF0ZV93aXRoX2Z1bmNz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKPiA+ICAJCX0K PiA+ICAKPiA+ICAJCW1pbl9zaXplID0gKGhlaWdodCAtIDEpICogbW9kZV9jbWQtPnBpdGNoZXNb aV0KPiA+IC0JCQkgKyB3aWR0aCAqIGluZm8tPmNwcFtpXQo+ID4gKwkJCSArIERJVl9ST1VORF9V UCh3aWR0aCAqIGJwcCwgOCkKPiA+ICAJCQkgKyBtb2RlX2NtZC0+b2Zmc2V0c1tpXTsKPiA+ICAK PiA+ICAJCWlmIChvYmpzW2ldLT5zaXplIDwgbWluX3NpemUpIHsKPiA+IGRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS9kcm1fZm91cmNjLmggYi9pbmNsdWRlL2RybS9kcm1fZm91cmNjLmgKPiA+IGlu ZGV4IDNlODY0MDhkYWM5Zi4uZDRhZjRkYWIxNjIzIDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9k cm0vZHJtX2ZvdXJjYy5oCj4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZm91cmNjLmgKPiA+IEBA IC0zNiw2ICszNiw3IEBAIHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyOwo+ID4gICAqCXVzZSBpbiBu ZXcgY29kZSBhbmQgc2V0IHRvIDAgZm9yIG5ldyBmb3JtYXRzLgo+ID4gICAqIEBudW1fcGxhbmVz OiBOdW1iZXIgb2YgY29sb3IgcGxhbmVzICgxIHRvIDMpCj4gPiAgICogQGNwcDogTnVtYmVyIG9m IGJ5dGVzIHBlciBwaXhlbCAocGVyIHBsYW5lKQo+ID4gKyAqIEBicHA6IE51bWJlciBvZiBiaXRz IHBlciBwaXhlbCAocGVyIHBsYW5lKSwgb25seSB2YWxpZCBpZiBjcHBbMF0gPT0gMC4KPiA+ICAg KiBAaHN1YjogSG9yaXpvbnRhbCBjaHJvbWEgc3Vic2FtcGxpbmcgZmFjdG9yCj4gPiAgICogQHZz dWI6IFZlcnRpY2FsIGNocm9tYSBzdWJzYW1wbGluZyBmYWN0b3IKPiA+ICAgKiBAaGFzX2FscGhh OiBEb2VzIHRoZSBmb3JtYXQgZW1iZWRzIGFuIGFscGhhIGNvbXBvbmVudD8KPiA+IEBAIC00NSw2 ICs0Niw3IEBAIHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gewo+ID4gIAl1OCBkZXB0aDsKPiA+ICAJ dTggbnVtX3BsYW5lczsKPiA+ICAJdTggY3BwWzNdOwo+ID4gKwl1OCBicHBbM107Cj4gPiAgCXU4 IGhzdWI7Cj4gPiAgCXU4IHZzdWI7Cj4gPiAgCWJvb2wgaGFzX2FscGhhOwo+ID4gQEAgLTY2LDYg KzY4LDggQEAgZHJtX2dldF9mb3JtYXRfaW5mbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4g IHVpbnQzMl90IGRybV9tb2RlX2xlZ2FjeV9mYl9mb3JtYXQodWludDMyX3QgYnBwLCB1aW50MzJf dCBkZXB0aCk7Cj4gPiAgaW50IGRybV9mb3JtYXRfbnVtX3BsYW5lcyh1aW50MzJfdCBmb3JtYXQp Owo+ID4gIGludCBkcm1fZm9ybWF0X3BsYW5lX2NwcCh1aW50MzJfdCBmb3JtYXQsIGludCBwbGFu ZSk7Cj4gPiAraW50IGRybV9mb3JtYXRfcGxhbmVfYnBwKHVpbnQzMl90IGZvcm1hdCwgaW50IHBs YW5lKTsKPiA+ICtpbnQgZHJtX2Zvcm1hdF9pbmZvX3BsYW5lX2JwcChjb25zdCBzdHJ1Y3QgZHJt X2Zvcm1hdF9pbmZvICpmb3JtYXQsIGludCBwbGFuZSk7Cj4gPiAgaW50IGRybV9mb3JtYXRfaG9y el9jaHJvbWFfc3Vic2FtcGxpbmcodWludDMyX3QgZm9ybWF0KTsKPiA+ICBpbnQgZHJtX2Zvcm1h dF92ZXJ0X2Nocm9tYV9zdWJzYW1wbGluZyh1aW50MzJfdCBmb3JtYXQpOwo+ID4gIGludCBkcm1f Zm9ybWF0X3BsYW5lX3dpZHRoKGludCB3aWR0aCwgdWludDMyX3QgZm9ybWF0LCBpbnQgcGxhbmUp Owo+ID4gLS0gCj4gPiAyLjE2LjEKPiA+IAo+IAo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0 d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRl dmVsIG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK