From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 3/3] drm/i915: Implement half float formats and pixel normalize property Date: Thu, 29 Nov 2018 10:18:35 +0100 Message-ID: <20181129091835.GE21184@phenom.ffwll.local> References: <1543473493-30973-1-git-send-email-kevin.strasser@intel.com> <1543473493-30973-4-git-send-email-kevin.strasser@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) by gabe.freedesktop.org (Postfix) with ESMTPS id A86346E49B for ; Thu, 29 Nov 2018 09:18:39 +0000 (UTC) Received: by mail-ed1-x544.google.com with SMTP id j6so1253324edp.9 for ; Thu, 29 Nov 2018 01:18:39 -0800 (PST) Content-Disposition: inline In-Reply-To: <1543473493-30973-4-git-send-email-kevin.strasser@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Kevin Strasser Cc: David Airlie , Daniel Vetter , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, Uma Shankar List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBOb3YgMjgsIDIwMTggYXQgMTA6Mzg6MTNQTSAtMDgwMCwgS2V2aW4gU3RyYXNzZXIg d3JvdGU6Cj4gNjQgYnBwIGhhbGYgZmxvYXQgZm9ybWF0cyBhcmUgc3VwcG9ydGVkIG9uIGhkciBw bGFuZXMgb25seSBhbmQgYXJlIHN1YmplY3QKPiB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9u czoKPiAgICogOTAvMjcwIHJvdGF0aW9uIG5vdCBzdXBwb3J0ZWQKPiAgICogWWYgVGlsaW5nIG5v dCBzdXBwb3J0ZWQKPiAgICogRnJhbWUgQnVmZmVyIENvbXByZXNzaW9uIG5vdCBzdXBwb3J0ZWQK PiAgICogQ29sb3IgS2V5aW5nIG5vdCBzdXBwb3J0ZWQKPiAKPiBUaGUgYmVoYXZpb3Igb2YgcGl4 ZWwgbm9ybWFsaXplIHdpdGggbm9uLWZsb2F0IGZvcm1hdHMgaXMgY3VycmVudGx5Cj4gdW5kZWZp bmVkLiBBcyBzdWNoLCB0aGUgcGl4ZWwgbm9ybWFsaXplIHJlZ2lzdGVyIGlzIGVuYWJsZWQgaWZm IHRoZQo+IGZyYW1lYnVmZmVyIGNvbnRhaW5zIGZsb2F0aW5nIHBvaW50IHBpeGVsIGRhdGEuCj4g Cj4gU2lnbmVkLW9mZi1ieTogS2V2aW4gU3RyYXNzZXIgPGtldmluLnN0cmFzc2VyQGludGVsLmNv bT4KPiBDYzogVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPiBDYzogU2hhc2hh bmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPgo+IENjOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IENjOiBEYXZpZCBBaXJsaWUgPGFp cmxpZWRAbGludXguaWU+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwu Y2g+Cj4gQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKCkRvIHdlIGhhdmUgZW5k LXRvLWVuZCB1c2Vyc3BhY2UgZm9yIHRoaXM/Ci1EYW5pZWwKCj4gLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICB8IDE1ICsrKysrKy0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgNDggKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICA1ICsrKwo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCA4MiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAxNDMgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlv bnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCA0N2JhZjJmZS4uODcxZDI5 MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC02NTYzLDYgKzY1NjMsMTAgQEAg ZW51bSB7Cj4gICNkZWZpbmUgX1BMQU5FX0tFWU1BWF8xX0EJCQkweDcwMWEwCj4gICNkZWZpbmUg X1BMQU5FX0tFWU1BWF8yX0EJCQkweDcwMmEwCj4gICNkZWZpbmUgIFBMQU5FX0tFWU1BWF9BTFBI QShhKQkJCSgoYSkgPDwgMjQpCj4gKyNkZWZpbmUgX1BMQU5FX1BJWEVMX05PUk1BTElaRV8xX0EJ CTB4NzAxYTgKPiArI2RlZmluZSBfUExBTkVfUElYRUxfTk9STUFMSVpFXzJfQQkJMHg3MDJhOAo+ ICsjZGVmaW5lICAgUExBTkVfUElYRUxfTk9STUFMSVpFX0VOQUJMRQkJKDEgPDwgMzEpCj4gKyNk ZWZpbmUgICBQTEFORV9QSVhFTF9OT1JNQUxJWkVfRkFDVE9SX01BU0sJMHhmZmZmCj4gICNkZWZp bmUgX1BMQU5FX0FVWF9ESVNUXzFfQQkJCTB4NzAxYzAKPiAgI2RlZmluZSBfUExBTkVfQVVYX0RJ U1RfMl9BCQkJMHg3MDJjMAo+ICAjZGVmaW5lIF9QTEFORV9BVVhfT0ZGU0VUXzFfQQkJCTB4NzAx YzQKPiBAQCAtNjc4Niw3ICs2NzkwLDE2IEBAIGVudW0gewo+ICAjZGVmaW5lIFBMQU5FX0NPTE9S X0NUTChwaXBlLCBwbGFuZSkJXAo+ICAJX01NSU9fUExBTkUocGxhbmUsIF9QTEFORV9DT0xPUl9D VExfMShwaXBlKSwgX1BMQU5FX0NPTE9SX0NUTF8yKHBpcGUpKQo+ICAKPiAtIy8qIFNLTCBuZXcg Y3Vyc29yIHJlZ2lzdGVycyAqLwo+ICsjZGVmaW5lIF9QTEFORV9QSVhFTF9OT1JNQUxJWkVfMV9C CTB4NzExYTgKPiArI2RlZmluZSBfUExBTkVfUElYRUxfTk9STUFMSVpFXzJfQgkweDcxMmE4Cj4g KyNkZWZpbmUgX1BMQU5FX1BJWEVMX05PUk1BTElaRV8xKHBpcGUpIFwKPiArCV9QSVBFKHBpcGUs IF9QTEFORV9QSVhFTF9OT1JNQUxJWkVfMV9BLCBfUExBTkVfUElYRUxfTk9STUFMSVpFXzFfQikK PiArI2RlZmluZSBfUExBTkVfUElYRUxfTk9STUFMSVpFXzIocGlwZSkgXAo+ICsJX1BJUEUocGlw ZSwgX1BMQU5FX1BJWEVMX05PUk1BTElaRV8yX0EsIF9QTEFORV9QSVhFTF9OT1JNQUxJWkVfMl9C KQo+ICsjZGVmaW5lIFBMQU5FX1BJWEVMX05PUk1BTElaRShwaXBlLCBwbGFuZSkgXAo+ICsJX01N SU9fUExBTkUocGxhbmUsIF9QTEFORV9QSVhFTF9OT1JNQUxJWkVfMShwaXBlKSwgX1BMQU5FX1BJ WEVMX05PUk1BTElaRV8yKHBpcGUpKQo+ICsKPiArLyogU0tMIG5ldyBjdXJzb3IgcmVnaXN0ZXJz ICovCj4gICNkZWZpbmUgX0NVUl9CVUZfQ0ZHX0EJCQkJMHg3MDE3Ywo+ICAjZGVmaW5lIF9DVVJf QlVGX0NGR19CCQkJCTB4NzExN2MKPiAgI2RlZmluZSBDVVJfQlVGX0NGRyhwaXBlKQlfTU1JT19Q SVBFKHBpcGUsIF9DVVJfQlVGX0NGR19BLCBfQ1VSX0JVRl9DRkdfQikKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggZTlmNGUyMi4uY2JhY2I0YiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMjYxOCw2ICsyNjE4LDE4IEBAIGludCBz a2xfZm9ybWF0X3RvX2ZvdXJjYyhpbnQgZm9ybWF0LCBib29sIHJnYl9vcmRlciwgYm9vbCBhbHBo YSkKPiAgCQlyZXR1cm4gRFJNX0ZPUk1BVF9SR0I1NjU7Cj4gIAljYXNlIFBMQU5FX0NUTF9GT1JN QVRfTlYxMjoKPiAgCQlyZXR1cm4gRFJNX0ZPUk1BVF9OVjEyOwo+ICsJY2FzZSBQTEFORV9DVExf Rk9STUFUX1hSR0JfMTYxNjE2MTZGOgo+ICsJCWlmIChyZ2Jfb3JkZXIpIHsKPiArCQkJaWYgKGFs cGhhKQo+ICsJCQkJcmV0dXJuIERSTV9GT1JNQVRfQUJHUjE2MTYxNjE2SDsKPiArCQkJZWxzZQo+ ICsJCQkJcmV0dXJuIERSTV9GT1JNQVRfWEJHUjE2MTYxNjE2SDsKPiArCQl9IGVsc2Ugewo+ICsJ CQlpZiAoYWxwaGEpCj4gKwkJCQlyZXR1cm4gRFJNX0ZPUk1BVF9BUkdCMTYxNjE2MTZIOwo+ICsJ CQllbHNlCj4gKwkJCQlyZXR1cm4gRFJNX0ZPUk1BVF9YUkdCMTYxNjE2MTZIOwo+ICsJCX0KPiAg CWRlZmF1bHQ6Cj4gIAljYXNlIFBMQU5FX0NUTF9GT1JNQVRfWFJHQl84ODg4Ogo+ICAJCWlmIChy Z2Jfb3JkZXIpIHsKPiBAQCAtMzUwNSw2ICszNTE3LDEyIEBAIHN0YXRpYyB1MzIgc2tsX3BsYW5l X2N0bF9mb3JtYXQodWludDMyX3QgcGl4ZWxfZm9ybWF0KQo+ICAJCXJldHVybiBQTEFORV9DVExf Rk9STUFUX1lVVjQyMiB8IFBMQU5FX0NUTF9ZVVY0MjJfVllVWTsKPiAgCWNhc2UgRFJNX0ZPUk1B VF9OVjEyOgo+ICAJCXJldHVybiBQTEFORV9DVExfRk9STUFUX05WMTI7Cj4gKwljYXNlIERSTV9G T1JNQVRfWEJHUjE2MTYxNjE2SDoKPiArCWNhc2UgRFJNX0ZPUk1BVF9BQkdSMTYxNjE2MTZIOgo+ ICsJCXJldHVybiBQTEFORV9DVExfRk9STUFUX1hSR0JfMTYxNjE2MTZGIHwgUExBTkVfQ1RMX09S REVSX1JHQlg7Cj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjE2MTYxNjE2SDoKPiArCWNhc2UgRFJN X0ZPUk1BVF9BUkdCMTYxNjE2MTZIOgo+ICsJCXJldHVybiBQTEFORV9DVExfRk9STUFUX1hSR0Jf MTYxNjE2MTZGOwo+ICAJZGVmYXVsdDoKPiAgCQlNSVNTSU5HX0NBU0UocGl4ZWxfZm9ybWF0KTsK PiAgCX0KPiBAQCAtMzY4MCw2ICszNjk4LDMyIEBAIHUzMiBnbGtfcGxhbmVfY29sb3JfY3RsKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJcmV0dXJuIHBsYW5l X2NvbG9yX2N0bDsKPiAgfQo+ICAKPiArdTMyIGljbF9wbGFuZV9waXhlbF9ub3JtYWxpemUodWlu dDMyX3QgcGl4ZWxfZm9ybWF0LAo+ICsJCQkgICAgICBlbnVtIGRybV9waXhlbF9ub3JtYWxpemVf cmFuZ2UgcmFuZ2UpCj4gK3sKPiArCS8qIDEuMCBpbiBoYWxmIGZsb2F0ICovCj4gKwl1MTYgaGFs Zl9mbG9hdF8xID0gMHgzYzAwOwo+ICsJLyogMy45MkUtMyBpbiBoYWxmIGZsb2F0ICovCj4gKwl1 MTYgaGFsZl9mbG9hdF8yNTUgPSAweDFjMDQ7Cj4gKwo+ICsJc3dpdGNoIChwaXhlbF9mb3JtYXQp IHsKPiArCWNhc2UgRFJNX0ZPUk1BVF9YUkdCMTYxNjE2MTZIOgo+ICsJY2FzZSBEUk1fRk9STUFU X1hCR1IxNjE2MTYxNkg6Cj4gKwljYXNlIERSTV9GT1JNQVRfQVJHQjE2MTYxNjE2SDoKPiArCWNh c2UgRFJNX0ZPUk1BVF9BQkdSMTYxNjE2MTZIOgo+ICsJCXN3aXRjaCAocmFuZ2UpIHsKPiArCQlj YXNlIERSTV9QSVhFTF9OT1JNQUxJWkVfUkFOR0VfMF8xOgo+ICsJCQlyZXR1cm4gUExBTkVfUElY RUxfTk9STUFMSVpFX0VOQUJMRSB8IGhhbGZfZmxvYXRfMTsKPiArCQljYXNlIERSTV9QSVhFTF9O T1JNQUxJWkVfUkFOR0VfMF8yNTU6Cj4gKwkJCXJldHVybiBQTEFORV9QSVhFTF9OT1JNQUxJWkVf RU5BQkxFIHwgaGFsZl9mbG9hdF8yNTU7Cj4gKwkJZGVmYXVsdDoKPiArCQkJcmV0dXJuIDA7Cj4g KwkJfQo+ICsJZGVmYXVsdDoKPiArCQlyZXR1cm4gMDsKPiArCX0KPiArfQo+ICsKPiAgc3RhdGlj IGludAo+ICBfX2ludGVsX2Rpc3BsYXlfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g IAkJICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiBAQCAtNDk5OCw2ICs1 MDQyLDEwIEBAIHN0YXRpYyBpbnQgc2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmUoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAljYXNlIERSTV9GT1JNQVRfVVlWWToKPiAgCWNh c2UgRFJNX0ZPUk1BVF9WWVVZOgo+ICAJY2FzZSBEUk1fRk9STUFUX05WMTI6Cj4gKwljYXNlIERS TV9GT1JNQVRfWEJHUjE2MTYxNjE2SDoKPiArCWNhc2UgRFJNX0ZPUk1BVF9BQkdSMTYxNjE2MTZI Ogo+ICsJY2FzZSBEUk1fRk9STUFUX1hSR0IxNjE2MTYxNkg6Cj4gKwljYXNlIERSTV9GT1JNQVRf QVJHQjE2MTYxNjE2SDoKPiAgCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gIAkJRFJNX0RFQlVHX0tN UygiW1BMQU5FOiVkOiVzXSBGQjolZCB1bnN1cHBvcnRlZCBzY2FsaW5nIGZvcm1hdCAweCV4XG4i LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggYTYyZDc3Yi4uYTU2YjEzMSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTU2NSw2ICs1NjUsOSBAQCBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgewo+ICAJdTMyIHNsYXZlOwo+ICAKPiAgCXN0cnVjdCBkcm1faW50 ZWxfc3ByaXRlX2NvbG9ya2V5IGNrZXk7Cj4gKwo+ICsJLyogcGxhbmUgcGl4ZWwgbm9ybWFsaXpl IHJlZ2lzdGVyICovCj4gKwl1MzIgcGl4ZWxfbm9ybWFsaXplOwo+ICB9Owo+ICAKPiAgc3RydWN0 IGludGVsX2luaXRpYWxfcGxhbmVfY29uZmlnIHsKPiBAQCAtMTczOCw2ICsxNzQxLDggQEAgdTMy IHNrbF9wbGFuZV9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs Cj4gIHUzMiBnbGtfY29sb3JfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGUpOwo+ICB1MzIgc2tsX3BsYW5lX3N0cmlkZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlLAo+ICAJCSAgICAgaW50IHBsYW5lKTsKPiArdTMyIGljbF9w bGFuZV9waXhlbF9ub3JtYWxpemUodWludDMyX3QgcGl4ZWxfZm9ybWF0LAo+ICsJCQkgICAgICBl bnVtIGRybV9waXhlbF9ub3JtYWxpemVfcmFuZ2UgcmFuZ2UpOwo+ICBpbnQgc2tsX2NoZWNrX3Bs YW5lX3N1cmZhY2Uoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cj4gIGlu dCBpOXh4X2NoZWNrX3BsYW5lX3N1cmZhY2Uoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZSk7Cj4gIGludCBza2xfZm9ybWF0X3RvX2ZvdXJjYyhpbnQgZm9ybWF0LCBib29sIHJn Yl9vcmRlciwgYm9vbCBhbHBoYSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBp bmRleCBhYmUxOTM4Li45ZGVhMGI4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRl LmMKPiBAQCAtNTE1LDYgKzUxNSwxMCBAQCBza2xfcHJvZ3JhbV9wbGFuZShzdHJ1Y3QgaW50ZWxf cGxhbmUgKnBsYW5lLAo+ICAJaWYgKGZiLT5mb3JtYXQtPmlzX3l1diAmJiBpY2xfaXNfaGRyX3Bs YW5lKHBsYW5lKSkKPiAgCQlpY2xfcHJvZ3JhbV9pbnB1dF9jc2NfY29lZmYoY3J0Y19zdGF0ZSwg cGxhbmVfc3RhdGUpOwo+ICAKPiArCWlmIChmYi0+Zm9ybWF0LT5pc19mcCAmJiBpY2xfaXNfaGRy X3BsYW5lKHBsYW5lKSkKPiArCQlJOTE1X1dSSVRFX0ZXKFBMQU5FX1BJWEVMX05PUk1BTElaRShw aXBlLCBwbGFuZV9pZCksCj4gKwkJCSAgICAgIHBsYW5lX3N0YXRlLT5waXhlbF9ub3JtYWxpemUp Owo+ICsKPiAgCUk5MTVfV1JJVEVfRlcoUExBTkVfS0VZVkFMKHBpcGUsIHBsYW5lX2lkKSwga2V5 LT5taW5fdmFsdWUpOwo+ICAJSTkxNV9XUklURV9GVyhQTEFORV9LRVlNQVgocGlwZSwgcGxhbmVf aWQpLCBrZXltYXgpOwo+ICAJSTkxNV9XUklURV9GVyhQTEFORV9LRVlNU0socGlwZSwgcGxhbmVf aWQpLCBrZXltc2spOwo+IEBAIC0xNDE3LDggKzE0MjEsNiBAQCBzdGF0aWMgaW50IHNrbF9wbGFu ZV9jaGVja19mYihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAg CQkvKgo+ICAJCSAqIDkwLzI3MCBpcyBub3QgYWxsb3dlZCB3aXRoIFJHQjY0IDE2OjE2OjE2OjE2 IGFuZAo+ICAJCSAqIEluZGV4ZWQgOC1iaXQuIFJHQiAxNi1iaXQgNTo2OjUgaXMgYWxsb3dlZCBn ZW4xMSBvbndhcmRzLgo+IC0JCSAqIFRCRDogQWRkIFJHQjY0IGNhc2Ugb25jZSBpdHMgYWRkZWQg aW4gc3VwcG9ydGVkIGZvcm1hdAo+IC0JCSAqIGxpc3QuCj4gIAkJICovCj4gIAkJc3dpdGNoIChm Yi0+Zm9ybWF0LT5mb3JtYXQpIHsKPiAgCQljYXNlIERSTV9GT1JNQVRfUkdCNTY1Ogo+IEBAIC0x NDI2LDYgKzE0MjgsMTAgQEAgc3RhdGljIGludCBza2xfcGxhbmVfY2hlY2tfZmIoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCQlicmVhazsKPiAgCQkJLyog ZmFsbCB0aHJvdWdoICovCj4gIAkJY2FzZSBEUk1fRk9STUFUX0M4Ogo+ICsJCWNhc2UgRFJNX0ZP Uk1BVF9YUkdCMTYxNjE2MTZIOgo+ICsJCWNhc2UgRFJNX0ZPUk1BVF9YQkdSMTYxNjE2MTZIOgo+ ICsJCWNhc2UgRFJNX0ZPUk1BVF9BUkdCMTYxNjE2MTZIOgo+ICsJCWNhc2UgRFJNX0ZPUk1BVF9B QkdSMTYxNjE2MTZIOgo+ICAJCQlEUk1fREVCVUdfS01TKCJVbnN1cHBvcnRlZCBwaXhlbCBmb3Jt YXQgJXMgZm9yIDkwLzI3MCFcbiIsCj4gIAkJCQkgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKGZi LT5mb3JtYXQtPmZvcm1hdCwKPiAgCQkJCQkJCSAgJmZvcm1hdF9uYW1lKSk7Cj4gQEAgLTE1NTIs NiArMTU1OCwxMSBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQlwbGFuZV9zdGF0ZS0+Y29sb3JfY3RsID0gZ2xrX3Bs YW5lX2NvbG9yX2N0bChjcnRjX3N0YXRlLAo+ICAJCQkJCQkJICAgICBwbGFuZV9zdGF0ZSk7Cj4g IAo+ICsJaWYgKGljbF9pc19oZHJfcGxhbmUocGxhbmUpKQo+ICsJCXBsYW5lX3N0YXRlLT5waXhl bF9ub3JtYWxpemUgPQo+ICsJCQlpY2xfcGxhbmVfcGl4ZWxfbm9ybWFsaXplKHBsYW5lX3N0YXRl LT5iYXNlLmZiLT5mb3JtYXQtPmZvcm1hdCwKPiArCQkJCQkJICBwbGFuZV9zdGF0ZS0+YmFzZS5w aXhlbF9ub3JtYWxpemVfcmFuZ2UpOwo+ICsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IEBAIC0x NzQxLDYgKzE3NTIsNDUgQEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNrbF9wbGFuYXJfZm9ybWF0 c1tdID0gewo+ICAJRFJNX0ZPUk1BVF9OVjEyLAo+ICB9Owo+ICAKPiArc3RhdGljIGNvbnN0IHVp bnQzMl90IGljbF9oZHJfcGxhbmVfZm9ybWF0c1tdID0gewo+ICsJRFJNX0ZPUk1BVF9DOCwKPiAr CURSTV9GT1JNQVRfUkdCNTY1LAo+ICsJRFJNX0ZPUk1BVF9YUkdCODg4OCwKPiArCURSTV9GT1JN QVRfWEJHUjg4ODgsCj4gKwlEUk1fRk9STUFUX0FSR0I4ODg4LAo+ICsJRFJNX0ZPUk1BVF9BQkdS ODg4OCwKPiArCURSTV9GT1JNQVRfWFJHQjIxMDEwMTAsCj4gKwlEUk1fRk9STUFUX1hCR1IyMTAx MDEwLAo+ICsJRFJNX0ZPUk1BVF9YUkdCMTYxNjE2MTZILAo+ICsJRFJNX0ZPUk1BVF9YQkdSMTYx NjE2MTZILAo+ICsJRFJNX0ZPUk1BVF9BUkdCMTYxNjE2MTZILAo+ICsJRFJNX0ZPUk1BVF9BQkdS MTYxNjE2MTZILAo+ICsJRFJNX0ZPUk1BVF9ZVVlWLAo+ICsJRFJNX0ZPUk1BVF9ZVllVLAo+ICsJ RFJNX0ZPUk1BVF9VWVZZLAo+ICsJRFJNX0ZPUk1BVF9WWVVZLAo+ICt9Owo+ICsKPiArc3RhdGlj IGNvbnN0IHVpbnQzMl90IGljbF9oZHJfcGxhbmFyX2Zvcm1hdHNbXSA9IHsKPiArCURSTV9GT1JN QVRfQzgsCj4gKwlEUk1fRk9STUFUX1JHQjU2NSwKPiArCURSTV9GT1JNQVRfWFJHQjg4ODgsCj4g KwlEUk1fRk9STUFUX1hCR1I4ODg4LAo+ICsJRFJNX0ZPUk1BVF9BUkdCODg4OCwKPiArCURSTV9G T1JNQVRfQUJHUjg4ODgsCj4gKwlEUk1fRk9STUFUX1hSR0IyMTAxMDEwLAo+ICsJRFJNX0ZPUk1B VF9YQkdSMjEwMTAxMCwKPiArCURSTV9GT1JNQVRfWFJHQjE2MTYxNjE2SCwKPiArCURSTV9GT1JN QVRfWEJHUjE2MTYxNjE2SCwKPiArCURSTV9GT1JNQVRfQVJHQjE2MTYxNjE2SCwKPiArCURSTV9G T1JNQVRfQUJHUjE2MTYxNjE2SCwKPiArCURSTV9GT1JNQVRfWVVZViwKPiArCURSTV9GT1JNQVRf WVZZVSwKPiArCURSTV9GT1JNQVRfVVlWWSwKPiArCURSTV9GT1JNQVRfVllVWSwKPiArCURSTV9G T1JNQVRfTlYxMiwKPiArfTsKPiArCj4gIHN0YXRpYyBjb25zdCB1aW50NjRfdCBza2xfcGxhbmVf Zm9ybWF0X21vZGlmaWVyc19ub2Njc1tdID0gewo+ICAJSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVE LAo+ICAJSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQsCj4gQEAgLTE4ODQsNiArMTkzNCwxMCBAQCBz dGF0aWMgYm9vbCBza2xfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0ZWQoc3RydWN0IGRybV9wbGFu ZSAqX3BsYW5lLAo+ICAJCQlyZXR1cm4gdHJ1ZTsKPiAgCQkvKiBmYWxsIHRocm91Z2ggKi8KPiAg CWNhc2UgRFJNX0ZPUk1BVF9DODoKPiArCWNhc2UgRFJNX0ZPUk1BVF9YQkdSMTYxNjE2MTZIOgo+ ICsJY2FzZSBEUk1fRk9STUFUX0FCR1IxNjE2MTYxNkg6Cj4gKwljYXNlIERSTV9GT1JNQVRfWFJH QjE2MTYxNjE2SDoKPiArCWNhc2UgRFJNX0ZPUk1BVF9BUkdCMTYxNjE2MTZIOgo+ICAJCWlmICht b2RpZmllciA9PSBEUk1fRk9STUFUX01PRF9MSU5FQVIgfHwKPiAgCQkgICAgbW9kaWZpZXIgPT0g STkxNV9GT1JNQVRfTU9EX1hfVElMRUQgfHwKPiAgCQkgICAgbW9kaWZpZXIgPT0gSTkxNV9GT1JN QVRfTU9EX1lfVElMRUQpCj4gQEAgLTIwMjAsMTEgKzIwNzQsMjEgQEAgc2tsX3VuaXZlcnNhbF9w bGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCXBsYW5l LT51cGRhdGVfc2xhdmUgPSBpY2xfdXBkYXRlX3NsYXZlOwo+ICAKPiAgCWlmIChza2xfcGxhbmVf aGFzX3BsYW5hcihkZXZfcHJpdiwgcGlwZSwgcGxhbmVfaWQpKSB7Cj4gLQkJZm9ybWF0cyA9IHNr bF9wbGFuYXJfZm9ybWF0czsKPiAtCQludW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUoc2tsX3BsYW5h cl9mb3JtYXRzKTsKPiArCQlpZiAoaWNsX2lzX2hkcl9wbGFuZShwbGFuZSkpIHsKPiArCQkJZm9y bWF0cyA9IGljbF9oZHJfcGxhbmFyX2Zvcm1hdHM7Cj4gKwkJCW51bV9mb3JtYXRzID0gQVJSQVlf U0laRShpY2xfaGRyX3BsYW5hcl9mb3JtYXRzKTsKPiArCQl9IGVsc2Ugewo+ICsJCQlmb3JtYXRz ID0gc2tsX3BsYW5hcl9mb3JtYXRzOwo+ICsJCQludW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUoc2ts X3BsYW5hcl9mb3JtYXRzKTsKPiArCQl9Cj4gIAl9IGVsc2Ugewo+IC0JCWZvcm1hdHMgPSBza2xf cGxhbmVfZm9ybWF0czsKPiAtCQludW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUoc2tsX3BsYW5lX2Zv cm1hdHMpOwo+ICsJCWlmIChpY2xfaXNfaGRyX3BsYW5lKHBsYW5lKSkgewo+ICsJCQlmb3JtYXRz ID0gaWNsX2hkcl9wbGFuZV9mb3JtYXRzOwo+ICsJCQludW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUo aWNsX2hkcl9wbGFuZV9mb3JtYXRzKTsKPiArCQl9IGVsc2Ugewo+ICsJCQlmb3JtYXRzID0gc2ts X3BsYW5lX2Zvcm1hdHM7Cj4gKwkJCW51bV9mb3JtYXRzID0gQVJSQVlfU0laRShza2xfcGxhbmVf Zm9ybWF0cyk7Cj4gKwkJfQo+ICAJfQo+ICAKPiAgCXBsYW5lLT5oYXNfY2NzID0gc2tsX3BsYW5l X2hhc19jY3MoZGV2X3ByaXYsIHBpcGUsIHBsYW5lX2lkKTsKPiBAQCAtMjA3NCw2ICsyMTM4LDEy IEBAIHNrbF91bml2ZXJzYWxfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAgCQkJCQkgICAgIEJJVChEUk1fTU9ERV9CTEVORF9QUkVNVUxUSSkgfAo+ICAJ CQkJCSAgICAgQklUKERSTV9NT0RFX0JMRU5EX0NPVkVSQUdFKSk7Cj4gIAo+ICsJaWYgKGljbF9p c19oZHJfcGxhbmUocGxhbmUpKQo+ICsJCWRybV9wbGFuZV9jcmVhdGVfcGl4ZWxfbm9ybWFsaXpl X3JhbmdlX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwKPiArCQkJCUJJVChEUk1fUElYRUxfTk9STUFM SVpFX1JBTkdFXzBfMSkgfAo+ICsJCQkJQklUKERSTV9QSVhFTF9OT1JNQUxJWkVfUkFOR0VfMF8y NTUpLAo+ICsJCQkJRFJNX1BJWEVMX05PUk1BTElaRV9SQU5HRV8wXzEpOwo+ICsKPiAgCWRybV9w bGFuZV9oZWxwZXJfYWRkKCZwbGFuZS0+YmFzZSwgJmludGVsX3BsYW5lX2hlbHBlcl9mdW5jcyk7 Cj4gIAo+ICAJcmV0dXJuIHBsYW5lOwo+IC0tIAo+IDIuNy40Cj4gCgotLSAKRGFuaWVsIFZldHRl cgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwu Y2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==