From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH] drm/i915: Implement pipe CSC based limited range RGB output Date: Fri, 18 Jan 2013 19:11:38 +0200 Message-ID: <1358529098-31596-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [143.182.124.37]) by gabe.freedesktop.org (Postfix) with ESMTP id 68ED5E5BF8 for ; Fri, 18 Jan 2013 09:11:42 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkhT VyBubyBsb25nZXIgaGFzIHRoZSBQSVBFQ09ORiBiaXQgZm9yIGxpbWl0ZWQgcmFuZ2UgUkdCIG91 dHB1dC4KSW5zdGVhZCB0aGUgcGlwZSBDU0MgdW5pdCBtdXN0IGJlIHVzZWQgdG8gcGVyZm9ybSB0 aGF0IHRhc2suCgpUaGUgQ1NDIHByZSBvZmZzZXQgYXJlIHNldCB0byAwLCBzaW5jZSB0aGUgaW5j b21pbmcgZGF0YSBpcyBmdWxsClswOjI1NV0gcmFuZ2UgUkdCLCB0aGUgY29lZmZpY2llbnRzIGFy ZSBwcm9ncmFtbWVkIHRvIGNvbXByZXNzIHRoZQpkYXRhIGludG8gWzA6MjE5XSByYW5nZSwgYW5k IHRoZW4gd2UgdXNlIGVpdGhlciB0aGUgQ1NDX01PREUgYmxhY2sKc2NyZWVuIG9mZnNldCBiaXQs IG9yIHRoZSBDU0MgcG9zdCBvZmZzZXRzIHRvIHNoaWZ0IHRoZSBkYXRhIHRvCnRoZSBjb3JyZWN0 IFsxNjoyMzVdIHJhbmdlLgoKQWxzbyBoYXZlIHRvIGNoYW5nZSB0aGUgY29uZml1cmF0aW9uIG9m IGFsbCBwbGFuZXMgc28gdGhhdCB0aGUKZGF0YSBpcyBzZW50IHRocm91Z2ggdGhlIHBpcGUgQ1ND IHVuaXQuIEZvciBzaW1wbGljaXR5IHNlbmQgdGhlCnBsYW5lIGRhdGEgdGhyb3VnaCB0aGUgcGlw ZSBDU0MgdW5pdCBhbHdheXMsIGFuZCBpbiBjYXNlIGZ1bGwKcmFuZ2Ugb3V0cHV0IGlzIHJlcXVl c3RlZCwgdGhlIHBpcGUgQ1NDIHVuaXQgaXMgc2V0IHVwIHdpdGggYW4KaWRlbnRpdHkgdHJhbnNm b3JtIHRvIHBhc3MgdGhlIHBsYW5lIGRhdGEgdGhyb3VnaCB1bmNoYW5nZWQuCgpJJ3ZlIGJlZW4g dG9sZCBieSBzb21lIGhhcmR3YXJlIHBlb3BsZSB0aGF0IHRoZSB1c2Ugb2YgdGhlIHBpcGUKQ1ND IHVuaXQgc2hvdWxkbid0IHJlc3VsdCBpbiBhbnkgbWVhc3VyYWJsZSBpbmNyZWFzZSBpbiBwb3dl cgpjb25zdW1wdGlvbiBudW1iZXJzLgoKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCk5vdGUgdGhhdCBJIGhhdmVuJ3QgYWN0 dWFsbHkgdGVzdGVkIHRoaXMgb24gSFNXLiBJIGRpZCB0ZXN0IHRoZSBlYXJsaWVyCnByb3RvdHlw ZSB2ZXJzaW9uIG9uIElMSyBhbmQgSVZCLiBUaGUgcGlwZSBDU0MgdW5pdCBvbiBJTEsgaXNuJ3Qg cHJvZ3JhbW1lZAppbiBxdWl0ZSB0aGUgc2FtZSBhcyBvbiBIU1csIGJ1dCB0aGUgSVZCIHVuaXQg X3Nob3VsZF8gYmUgaWRlbnRpY2FsIHRvIEhTVy4KClRoZSBtYWluIHJpc2sgaW52b2x2ZXMgdGhl IGNvZWZmaWNpZW50IHJlZ2lzdGVycy4gSWYgdGhlIGNoYW5uZWwgbWFwcGluZwpjaGFuZ2VkIGZv ciBzb21lIHJlYXNvbiwgd2UgY291bGQgZ2V0IHN3YXBwZWQgY2hhbm5lbHMuIEZvciBzb21lIHJl YXNvbgpyZWFsaXR5IGFuZCBkb2N1bWVuYXRpb24gZGlkbid0IHNlZW0gdG8gYWdyZWUgaG93IHRo ZSBjaGFubmVscyBhcmUgbWFwcGVkCmV2ZW4gb24gSUxLIGFuZCBJVkIuIFNvIEknZCBsaWtlIHNv bWVvbmUgdG8gdHJ5IHRoaXMgb3V0IG9uIEhTVyB0byBtYWtlCnN1cmUgdGhlIG91dHB1dCBzdGls bCBsb29rcyBjb3JyZWN0LgoKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICB8 ICAgNTIgKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jIHwgICA3MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAgICAzICsKIDMgZmlsZXMgY2hh bmdlZCwgMTI0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKaW5kZXggYTI1NTBjNS4uNjNlYmRhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBA IC0yOTQ0LDYgKzI5NDQsNyBAQAogI2RlZmluZSAgIENVUlNPUl9FTkFCTEUJCTB4ODAwMDAwMDAK ICNkZWZpbmUgICBDVVJTT1JfR0FNTUFfRU5BQkxFCTB4NDAwMDAwMDAKICNkZWZpbmUgICBDVVJT T1JfU1RSSURFX01BU0sJMHgzMDAwMDAwMAorI2RlZmluZSAgIENVUlNPUl9QSVBFX0NTQ19FTkFC TEUgKDE8PDI0KQogI2RlZmluZSAgIENVUlNPUl9GT1JNQVRfU0hJRlQJMjQKICNkZWZpbmUgICBD VVJTT1JfRk9STUFUX01BU0sJKDB4MDcgPDwgQ1VSU09SX0ZPUk1BVF9TSElGVCkKICNkZWZpbmUg ICBDVVJTT1JfRk9STUFUXzJDCSgweDAwIDw8IENVUlNPUl9GT1JNQVRfU0hJRlQpCkBAIC0zMDA1 LDYgKzMwMDYsNyBAQAogI2RlZmluZSAgIERJU1BQTEFORV9SR0JBODg4CQkJKDB4Zjw8MjYpCiAj ZGVmaW5lICAgRElTUFBMQU5FX1NURVJFT19FTkFCTEUJCSgxPDwyNSkKICNkZWZpbmUgICBESVNQ UExBTkVfU1RFUkVPX0RJU0FCTEUJCTAKKyNkZWZpbmUgICBESVNQUExBTkVfUElQRV9DU0NfRU5B QkxFCQkoMTw8MjQpCiAjZGVmaW5lICAgRElTUFBMQU5FX1NFTF9QSVBFX1NISUZUCQkyNAogI2Rl ZmluZSAgIERJU1BQTEFORV9TRUxfUElQRV9NQVNLCQkoMzw8RElTUFBMQU5FX1NFTF9QSVBFX1NI SUZUKQogI2RlZmluZSAgIERJU1BQTEFORV9TRUxfUElQRV9BCQkJMApAQCAtMzA5Myw2ICszMDk1 LDcgQEAKICNkZWZpbmUgICBEVlNfRk9STUFUX1JHQlgxMDEwMTAJKDE8PDI1KQogI2RlZmluZSAg IERWU19GT1JNQVRfUkdCWDg4OAkoMjw8MjUpCiAjZGVmaW5lICAgRFZTX0ZPUk1BVF9SR0JYMTYx NjE2CSgzPDwyNSkKKyNkZWZpbmUgICBEVlNfUElQRV9DU0NfRU5BQkxFICAgKDE8PDI0KQogI2Rl ZmluZSAgIERWU19TT1VSQ0VfS0VZCSgxPDwyMikKICNkZWZpbmUgICBEVlNfUkdCX09SREVSX1hC R1IJKDE8PDIwKQogI2RlZmluZSAgIERWU19ZVVZfQllURV9PUkRFUl9NQVNLICgzPDwxNikKQEAg LTMxNjAsNyArMzE2Myw3IEBACiAjZGVmaW5lICAgU1BSSVRFX0ZPUk1BVF9SR0JYMTYxNjE2CSgz PDwyNSkKICNkZWZpbmUgICBTUFJJVEVfRk9STUFUX1lVVjQ0NAkJKDQ8PDI1KQogI2RlZmluZSAg IFNQUklURV9GT1JNQVRfWFJfQkdSMTAxMDEwCSg1PDwyNSkgLyogRXh0ZW5kZWQgcmFuZ2UgKi8K LSNkZWZpbmUgICBTUFJJVEVfQ1NDX0VOQUJMRQkJKDE8PDI0KQorI2RlZmluZSAgIFNQUklURV9Q SVBFX0NTQ19FTkFCTEUJKDE8PDI0KQogI2RlZmluZSAgIFNQUklURV9TT1VSQ0VfS0VZCQkoMTw8 MjIpCiAjZGVmaW5lICAgU1BSSVRFX1JHQl9PUkRFUl9SR0JYCQkoMTw8MjApIC8qIG9ubHkgZm9y IDg4OCBhbmQgMTYxNjE2ICovCiAjZGVmaW5lICAgU1BSSVRFX1lVVl9UT19SR0JfQ1NDX0RJU0FC TEUJKDE8PDE5KQpAQCAtNDYzNSw0ICs0NjM4LDUxIEBACiAjZGVmaW5lICBXTV9EQkdfRElTQUxM T1dfTUFYRklGTwkoMTw8MSkKICNkZWZpbmUgIFdNX0RCR19ESVNBTExPV19TUFJJVEUJCSgxPDwy KQogCisvKiBwaXBlIENTQyAqLworI2RlZmluZSBfUElQRV9BX0NTQ19DT0VGRl9SWV9HWQkweDQ5 MDEwCisjZGVmaW5lIF9QSVBFX0FfQ1NDX0NPRUZGX0JZCTB4NDkwMTQKKyNkZWZpbmUgX1BJUEVf QV9DU0NfQ09FRkZfUlVfR1UJMHg0OTAxOAorI2RlZmluZSBfUElQRV9BX0NTQ19DT0VGRl9CVQkw eDQ5MDFjCisjZGVmaW5lIF9QSVBFX0FfQ1NDX0NPRUZGX1JWX0dWCTB4NDkwMjAKKyNkZWZpbmUg X1BJUEVfQV9DU0NfQ09FRkZfQlYJMHg0OTAyNAorI2RlZmluZSBfUElQRV9BX0NTQ19NT0RFCTB4 NDkwMjgKKyNkZWZpbmUgX1BJUEVfQV9DU0NfUFJFT0ZGX0hJCTB4NDkwMzAKKyNkZWZpbmUgX1BJ UEVfQV9DU0NfUFJFT0ZGX01FCTB4NDkwMzQKKyNkZWZpbmUgX1BJUEVfQV9DU0NfUFJFT0ZGX0xP CTB4NDkwMzgKKyNkZWZpbmUgX1BJUEVfQV9DU0NfUE9TVE9GRl9ISQkweDQ5MDQwCisjZGVmaW5l IF9QSVBFX0FfQ1NDX1BPU1RPRkZfTUUJMHg0OTA0NAorI2RlZmluZSBfUElQRV9BX0NTQ19QT1NU T0ZGX0xPCTB4NDkwNDgKKworI2RlZmluZSBfUElQRV9CX0NTQ19DT0VGRl9SWV9HWQkweDQ5MTEw CisjZGVmaW5lIF9QSVBFX0JfQ1NDX0NPRUZGX0JZCTB4NDkxMTQKKyNkZWZpbmUgX1BJUEVfQl9D U0NfQ09FRkZfUlVfR1UJMHg0OTExOAorI2RlZmluZSBfUElQRV9CX0NTQ19DT0VGRl9CVQkweDQ5 MTFjCisjZGVmaW5lIF9QSVBFX0JfQ1NDX0NPRUZGX1JWX0dWCTB4NDkxMjAKKyNkZWZpbmUgX1BJ UEVfQl9DU0NfQ09FRkZfQlYJMHg0OTEyNAorI2RlZmluZSBfUElQRV9CX0NTQ19NT0RFCTB4NDkx MjgKKyNkZWZpbmUgX1BJUEVfQl9DU0NfUFJFT0ZGX0hJCTB4NDkxMzAKKyNkZWZpbmUgX1BJUEVf Ql9DU0NfUFJFT0ZGX01FCTB4NDkxMzQKKyNkZWZpbmUgX1BJUEVfQl9DU0NfUFJFT0ZGX0xPCTB4 NDkxMzgKKyNkZWZpbmUgX1BJUEVfQl9DU0NfUE9TVE9GRl9ISQkweDQ5MTQwCisjZGVmaW5lIF9Q SVBFX0JfQ1NDX1BPU1RPRkZfTUUJMHg0OTE0NAorI2RlZmluZSBfUElQRV9CX0NTQ19QT1NUT0ZG X0xPCTB4NDkxNDgKKworI2RlZmluZSBDU0NfQkxBQ0tfU0NSRUVOX09GRlNFVCAoMSA8PCAyKQor I2RlZmluZSBDU0NfUE9TSVRJT05fQkVGT1JFX0dBTU1BICgxIDw8IDEpCisjZGVmaW5lIENTQ19N T0RFX1lVVl9UT19SR0IgKDEgPDwgMCkKKworI2RlZmluZSBQSVBFX0NTQ19DT0VGRl9SWV9HWShw aXBlKSBfUElQRShwaXBlLCBfUElQRV9BX0NTQ19DT0VGRl9SWV9HWSwgX1BJUEVfQl9DU0NfQ09F RkZfUllfR1kpCisjZGVmaW5lIFBJUEVfQ1NDX0NPRUZGX0JZKHBpcGUpIF9QSVBFKHBpcGUsIF9Q SVBFX0FfQ1NDX0NPRUZGX0JZLCBfUElQRV9CX0NTQ19DT0VGRl9CWSkKKyNkZWZpbmUgUElQRV9D U0NfQ09FRkZfUlVfR1UocGlwZSkgX1BJUEUocGlwZSwgX1BJUEVfQV9DU0NfQ09FRkZfUlVfR1Us IF9QSVBFX0JfQ1NDX0NPRUZGX1JVX0dVKQorI2RlZmluZSBQSVBFX0NTQ19DT0VGRl9CVShwaXBl KSBfUElQRShwaXBlLCBfUElQRV9BX0NTQ19DT0VGRl9CVSwgX1BJUEVfQl9DU0NfQ09FRkZfQlUp CisjZGVmaW5lIFBJUEVfQ1NDX0NPRUZGX1JWX0dWKHBpcGUpIF9QSVBFKHBpcGUsIF9QSVBFX0Ff Q1NDX0NPRUZGX1JWX0dWLCBfUElQRV9CX0NTQ19DT0VGRl9SVl9HVikKKyNkZWZpbmUgUElQRV9D U0NfQ09FRkZfQlYocGlwZSkgX1BJUEUocGlwZSwgX1BJUEVfQV9DU0NfQ09FRkZfQlYsIF9QSVBF X0JfQ1NDX0NPRUZGX0JWKQorI2RlZmluZSBQSVBFX0NTQ19NT0RFKHBpcGUpIF9QSVBFKHBpcGUs IF9QSVBFX0FfQ1NDX01PREUsIF9QSVBFX0JfQ1NDX01PREUpCisjZGVmaW5lIFBJUEVfQ1NDX1BS RU9GRl9ISShwaXBlKSBfUElQRShwaXBlLCBfUElQRV9BX0NTQ19QUkVPRkZfSEksIF9QSVBFX0Jf Q1NDX1BSRU9GRl9ISSkKKyNkZWZpbmUgUElQRV9DU0NfUFJFT0ZGX01FKHBpcGUpIF9QSVBFKHBp cGUsIF9QSVBFX0FfQ1NDX1BSRU9GRl9NRSwgX1BJUEVfQl9DU0NfUFJFT0ZGX01FKQorI2RlZmlu ZSBQSVBFX0NTQ19QUkVPRkZfTE8ocGlwZSkgX1BJUEUocGlwZSwgX1BJUEVfQV9DU0NfUFJFT0ZG X0xPLCBfUElQRV9CX0NTQ19QUkVPRkZfTE8pCisjZGVmaW5lIFBJUEVfQ1NDX1BPU1RPRkZfSEko cGlwZSkgX1BJUEUocGlwZSwgX1BJUEVfQV9DU0NfUE9TVE9GRl9ISSwgX1BJUEVfQl9DU0NfUE9T VE9GRl9ISSkKKyNkZWZpbmUgUElQRV9DU0NfUE9TVE9GRl9NRShwaXBlKSBfUElQRShwaXBlLCBf UElQRV9BX0NTQ19QT1NUT0ZGX01FLCBfUElQRV9CX0NTQ19QT1NUT0ZGX01FKQorI2RlZmluZSBQ SVBFX0NTQ19QT1NUT0ZGX0xPKHBpcGUpIF9QSVBFKHBpcGUsIF9QSVBFX0FfQ1NDX1BPU1RPRkZf TE8sIF9QSVBFX0JfQ1NDX1BPU1RPRkZfTE8pCisKICNlbmRpZiAvKiBfSTkxNV9SRUdfSF8gKi8K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBmNDhmNjk4Li5mMjJiMGE4IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC01MTA2LDYgKzUxMDYsNzEgQEAg c3RhdGljIHZvaWQgaXJvbmxha2Vfc2V0X3BpcGVjb25mKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK IAlQT1NUSU5HX1JFQUQoUElQRUNPTkYocGlwZSkpOwogfQogCisvKgorICogU2V0IHVwIHRoZSBw aXBlIENTQyB1bml0LgorICoKKyAqIEN1cnJlbnRseSBvbmx5IGZ1bGwgcmFuZ2UgUkdCIHRvIGxp bWl0ZWQgcmFuZ2UgUkdCIGNvbnZlcnNpb24KKyAqIGlzIHN1cHBvcnRlZCwgYnV0IGV2ZW50dWFs bHkgdGhpcyBzaG91bGQgaGFuZGxlIHZhcmlvdXMKKyAqIFJHQjwtPllDYkNyIHNjZW5hcmlvcyBh cyB3ZWxsLgorICovCitzdGF0aWMgdm9pZCBpbnRlbF9zZXRfcGlwZV9jc2Moc3RydWN0IGRybV9j cnRjICpjcnRjLAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CisJaW50IHBp cGUgPSBpbnRlbF9jcnRjLT5waXBlOworCXVpbnQxNl90IGNvZWZmID0gMHg3ODAwOyAvKiAxLjAg Ki8KKworCS8qCisJICogVE9ETzogQ2hlY2sgd2hhdCBraW5kIG9mIHZhbHVlcyBhY3R1YWxseSBj b21lIG91dCBvZiB0aGUgcGlwZQorCSAqIHdpdGggdGhlc2UgY29lZmYvcG9zdG9mZiB2YWx1ZXMg YW5kIGFkanVzdCB0byBnZXQgdGhlIGJlc3QKKwkgKiBhY2N1cmFjeS4gUGVyaGFwcyB3ZSBldmVu IG5lZWQgdG8gdGFrZSB0aGUgYnBjIHZhbHVlIGludG8KKwkgKiBjb25zaWRlcmF0aW9uLgorCSAq LworCisJaWYgKGFkanVzdGVkX21vZGUtPnByaXZhdGVfZmxhZ3MgJiBJTlRFTF9NT0RFX0xJTUlU RURfQ09MT1JfUkFOR0UpCisJCWNvZWZmID0gKCgyMzUgLSAxNikgKiAoMSA8PCAxMikgLyAyNTUp ICYgMHhmZjg7IC8qIDAueHh4Li4uICovCisKKwkvKgorCSAqIEdZL0dVIGFuZCBSWS9SVSBzaG91 bGQgYmUgdGhlIG90aGVyIHdheSBhcm91bmQgYWNjb3JkaW5nCisJICogdG8gQlNwZWMsIGJ1dCBy ZWFsaXR5IGRvZXNuJ3QgYWdyZWUuIEp1c3Qgc2V0IHRoZW0gdXAgaW4KKwkgKiBhIHdheSB0aGF0 IHJlc3VsdHMgaW4gdGhlIGNvcnJlY3QgcGljdHVyZS4KKwkgKi8KKwlJOTE1X1dSSVRFKFBJUEVf Q1NDX0NPRUZGX1JZX0dZKHBpcGUpLCBjb2VmZiA8PCAxNik7CisJSTkxNV9XUklURShQSVBFX0NT Q19DT0VGRl9CWShwaXBlKSwgMCk7CisKKwlJOTE1X1dSSVRFKFBJUEVfQ1NDX0NPRUZGX1JVX0dV KHBpcGUpLCBjb2VmZik7CisJSTkxNV9XUklURShQSVBFX0NTQ19DT0VGRl9CVShwaXBlKSwgMCk7 CisKKwlJOTE1X1dSSVRFKFBJUEVfQ1NDX0NPRUZGX1JWX0dWKHBpcGUpLCAwKTsKKwlJOTE1X1dS SVRFKFBJUEVfQ1NDX0NPRUZGX0JWKHBpcGUpLCBjb2VmZiA8PCAxNik7CisKKwlJOTE1X1dSSVRF KFBJUEVfQ1NDX1BSRU9GRl9ISShwaXBlKSwgMCk7CisJSTkxNV9XUklURShQSVBFX0NTQ19QUkVP RkZfTUUocGlwZSksIDApOworCUk5MTVfV1JJVEUoUElQRV9DU0NfUFJFT0ZGX0xPKHBpcGUpLCAw KTsKKworCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+IDYpIHsKKwkJdWludDE2X3QgcG9zdG9m ZiA9IDA7CisKKwkJaWYgKGFkanVzdGVkX21vZGUtPnByaXZhdGVfZmxhZ3MgJiBJTlRFTF9NT0RF X0xJTUlURURfQ09MT1JfUkFOR0UpCisJCQlwb3N0b2ZmID0gKDE2ICogKDEgPDwgMTMpIC8gMjU1 KSAmIDB4MWZmZjsKKworCQlJOTE1X1dSSVRFKFBJUEVfQ1NDX1BPU1RPRkZfSEkocGlwZSksIHBv c3RvZmYpOworCQlJOTE1X1dSSVRFKFBJUEVfQ1NDX1BPU1RPRkZfTUUocGlwZSksIHBvc3RvZmYp OworCQlJOTE1X1dSSVRFKFBJUEVfQ1NDX1BPU1RPRkZfTE8ocGlwZSksIHBvc3RvZmYpOworCisJ CUk5MTVfV1JJVEUoUElQRV9DU0NfTU9ERShwaXBlKSwgMCk7CisJfSBlbHNlIHsKKwkJdWludDMy X3QgbW9kZSA9IENTQ19NT0RFX1lVVl9UT19SR0I7CisKKwkJaWYgKGFkanVzdGVkX21vZGUtPnBy aXZhdGVfZmxhZ3MgJiBJTlRFTF9NT0RFX0xJTUlURURfQ09MT1JfUkFOR0UpCisJCQltb2RlIHw9 IENTQ19CTEFDS19TQ1JFRU5fT0ZGU0VUOworCisJCUk5MTVfV1JJVEUoUElQRV9DU0NfTU9ERShw aXBlKSwgbW9kZSk7CisJfQorfQorCiBzdGF0aWMgdm9pZCBoYXN3ZWxsX3NldF9waXBlY29uZihz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlLAogCQkJCSBib29sIGRpdGhlcikKQEAgLTU2NzAsOCArNTczNSwxMCBAQCBzdGF0 aWMgaW50IGhhc3dlbGxfY3J0Y19tb2RlX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlo YXN3ZWxsX3NldF9waXBlY29uZihjcnRjLCBhZGp1c3RlZF9tb2RlLCBkaXRoZXIpOwogCisJaW50 ZWxfc2V0X3BpcGVfY3NjKGNydGMsIGFkanVzdGVkX21vZGUpOworCiAJLyogU2V0IHVwIHRoZSBk aXNwbGF5IHBsYW5lIHJlZ2lzdGVyICovCi0JSTkxNV9XUklURShEU1BDTlRSKHBsYW5lKSwgRElT UFBMQU5FX0dBTU1BX0VOQUJMRSk7CisJSTkxNV9XUklURShEU1BDTlRSKHBsYW5lKSwgRElTUFBM QU5FX0dBTU1BX0VOQUJMRSB8IERJU1BQTEFORV9QSVBFX0NTQ19FTkFCTEUpOwogCVBPU1RJTkdf UkVBRChEU1BDTlRSKHBsYW5lKSk7CiAKIAlyZXQgPSBpbnRlbF9waXBlX3NldF9iYXNlKGNydGMs IHgsIHksIGZiKTsKQEAgLTYwNjksNiArNjEzNiw4IEBAIHN0YXRpYyB2b2lkIGl2Yl91cGRhdGVf Y3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTMyIGJhc2UpCiAJCQljbnRsICY9IH4oQ1VS U09SX01PREUgfCBNQ1VSU09SX0dBTU1BX0VOQUJMRSk7CiAJCQljbnRsIHw9IENVUlNPUl9NT0RF X0RJU0FCTEU7CiAJCX0KKwkJaWYgKElTX0hBU1dFTEwoZGV2KSkKKwkJCWNudGwgfD0gQ1VSU09S X1BJUEVfQ1NDX0VOQUJMRTsKIAkJSTkxNV9XUklURShDVVJDTlRSX0lWQihwaXBlKSwgY250bCk7 CiAKIAkJaW50ZWxfY3J0Yy0+Y3Vyc29yX3Zpc2libGUgPSB2aXNpYmxlOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9zcHJpdGUuYwppbmRleCBkN2IwNjBlLi45ZGVkZjY4IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9zcHJpdGUuYwpAQCAtODksNiArODksOSBAQCBpdmJfdXBkYXRlX3BsYW5lKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAlzcHJjdGwg fD0gU1BSSVRFX1RSSUNLTEVfRkVFRF9ESVNBQkxFOwogCXNwcmN0bCB8PSBTUFJJVEVfRU5BQkxF OwogCisJaWYgKElTX0hBU1dFTEwoZGV2KSkKKwkJc3ByY3RsIHw9IFNQUklURV9QSVBFX0NTQ19F TkFCTEU7CisKIAkvKiBTaXplcyBhcmUgMCBiYXNlZCAqLwogCXNyY193LS07CiAJc3JjX2gtLTsK LS0gCjEuNy44LjYKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==