From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 24F656E78D for ; Fri, 16 Nov 2018 15:41:52 +0000 (UTC) From: Maarten Lankhorst Date: Fri, 16 Nov 2018 16:41:48 +0100 Message-Id: <20181116154149.18155-2-maarten.lankhorst@linux.intel.com> In-Reply-To: <20181116154149.18155-1-maarten.lankhorst@linux.intel.com> References: <20181116154149.18155-1-maarten.lankhorst@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 2/3] lib/rendercopy: Implement support for 8/16 bpp List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: VG8gaGFuZGxlIGRyYXdpbmcgMTYgYnBwIGZvcm1hdHMgY29ycmVjdGx5IHdpdGggb2RkIHgvdywg d2UgbmVlZCB0bwp1c2UgdGhlIGNvcnJlY3QgYnBwIHRvIHJlbmRlcmNvcHkuIE5vdyB0aGF0IGV2 ZXJ5dGhpbmcgc2V0cyBicHAgaW4KaWd0X2J1ZiwgZml4IHRoZSByZW5kZXJjb3B5IHN1cHBvcnQg dG8gdXNlIGl0IGFuZCBzZXQgdGhlIGNvcnJlY3QKZm9ybWF0LgoKU2lnbmVkLW9mZi1ieTogTWFh cnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBs aWIvcmVuZGVyY29weV9nZW40LmMgfCAxNSArKysrKysrKystLS0tLS0KIGxpYi9yZW5kZXJjb3B5 X2dlbjYuYyB8IDE2ICsrKysrKysrKystLS0tLS0KIGxpYi9yZW5kZXJjb3B5X2dlbjcuYyB8IDE2 ICsrKysrKysrKystLS0tLS0KIGxpYi9yZW5kZXJjb3B5X2dlbjguYyB8IDE4ICsrKysrKysrKy0t LS0tLS0tLQogbGliL3JlbmRlcmNvcHlfZ2VuOS5jIHwgMTUgKysrKysrKysrLS0tLS0tCiBsaWIv cmVuZGVyY29weV9pODMwLmMgfCAyMCArKysrKysrKysrKysrKysrKystLQogbGliL3JlbmRlcmNv cHlfaTkxNS5jIHwgMjMgKysrKysrKysrKysrKysrKysrKy0tLS0KIDcgZmlsZXMgY2hhbmdlZCwg ODQgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL3JlbmRl cmNvcHlfZ2VuNC5jIGIvbGliL3JlbmRlcmNvcHlfZ2VuNC5jCmluZGV4IDA0MTZiOGQ2ZDUwNi4u Zjg4MTZlZGM1NDU1IDEwMDY0NAotLS0gYS9saWIvcmVuZGVyY29weV9nZW40LmMKKysrIGIvbGli L3JlbmRlcmNvcHlfZ2VuNC5jCkBAIC0xMzYsNyArMTM2LDcgQEAgZ2VuNF9yZW5kZXJfZmx1c2go c3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKIHN0YXRpYyB1aW50MzJfdAogZ2VuNF9i aW5kX2J1ZihzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCSAgICAgIGNvbnN0IHN0 cnVjdCBpZ3RfYnVmICpidWYsCi0JICAgICAgdWludDMyX3QgZm9ybWF0LCBpbnQgaXNfZHN0KQor CSAgICAgIGludCBpc19kc3QpCiB7CiAJc3RydWN0IGdlbjRfc3VyZmFjZV9zdGF0ZSAqc3M7CiAJ dWludDMyX3Qgd3JpdGVfZG9tYWluLCByZWFkX2RvbWFpbjsKQEAgLTE1Miw3ICsxNTIsMTIgQEAg Z2VuNF9iaW5kX2J1ZihzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCXNzID0gaW50 ZWxfYmF0Y2hidWZmZXJfc3ViZGF0YV9hbGxvYyhiYXRjaCwgc2l6ZW9mKCpzcyksIDMyKTsKIAog CXNzLT5zczAuc3VyZmFjZV90eXBlID0gU1VSRkFDRV8yRDsKLQlzcy0+c3MwLnN1cmZhY2VfZm9y bWF0ID0gZm9ybWF0OworCXN3aXRjaCAoYnVmLT5icHApIHsKKwkJY2FzZSA4OiBzcy0+c3MwLnN1 cmZhY2VfZm9ybWF0ID0gU1VSRkFDRUZPUk1BVF9SOF9VTk9STTsgYnJlYWs7CisJCWNhc2UgMTY6 IHNzLT5zczAuc3VyZmFjZV9mb3JtYXQgPSBTVVJGQUNFRk9STUFUX1I4RzhfVU5PUk07IGJyZWFr OworCQljYXNlIDMyOiBzcy0+c3MwLnN1cmZhY2VfZm9ybWF0ID0gU1VSRkFDRUZPUk1BVF9COEc4 UjhBOF9VTk9STTsgYnJlYWs7CisJCWRlZmF1bHQ6IGlndF9hc3NlcnQoMCk7CisJfQogCiAJc3Mt PnNzMC5kYXRhX3JldHVybl9mb3JtYXQgPSBTVVJGQUNFUkVUVVJORk9STUFUX0ZMT0FUMzI7CiAJ c3MtPnNzMC5jb2xvcl9ibGVuZCA9IDE7CkBAIC0xODIsMTAgKzE4Nyw4IEBAIGdlbjRfYmluZF9z dXJmYWNlcyhzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCiAJYmluZGluZ190YWJs ZSA9IGludGVsX2JhdGNoYnVmZmVyX3N1YmRhdGFfYWxsb2MoYmF0Y2gsIDMyLCAzMik7CiAKLQli aW5kaW5nX3RhYmxlWzBdID0KLQkJZ2VuNF9iaW5kX2J1ZihiYXRjaCwgZHN0LCBTVVJGQUNFRk9S TUFUX0I4RzhSOEE4X1VOT1JNLCAxKTsKLQliaW5kaW5nX3RhYmxlWzFdID0KLQkJZ2VuNF9iaW5k X2J1ZihiYXRjaCwgc3JjLCBTVVJGQUNFRk9STUFUX0I4RzhSOEE4X1VOT1JNLCAwKTsKKwliaW5k aW5nX3RhYmxlWzBdID0gZ2VuNF9iaW5kX2J1ZihiYXRjaCwgZHN0LCAxKTsKKwliaW5kaW5nX3Rh YmxlWzFdID0gZ2VuNF9iaW5kX2J1ZihiYXRjaCwgc3JjLCAwKTsKIAogCXJldHVybiBpbnRlbF9i YXRjaGJ1ZmZlcl9zdWJkYXRhX29mZnNldChiYXRjaCwgYmluZGluZ190YWJsZSk7CiB9CmRpZmYg LS1naXQgYS9saWIvcmVuZGVyY29weV9nZW42LmMgYi9saWIvcmVuZGVyY29weV9nZW42LmMKaW5k ZXggODc5MTY5MjdjN2Q3Li4yOTcwNDI4NjhkMWMgMTAwNjQ0Ci0tLSBhL2xpYi9yZW5kZXJjb3B5 X2dlbjYuYworKysgYi9saWIvcmVuZGVyY29weV9nZW42LmMKQEAgLTczLDcgKzczLDcgQEAgZ2Vu Nl9yZW5kZXJfZmx1c2goc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKIAogc3RhdGlj IHVpbnQzMl90CiBnZW42X2JpbmRfYnVmKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gs IGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpidWYsCi0JICAgICAgdWludDMyX3QgZm9ybWF0LCBpbnQg aXNfZHN0KQorCSAgICAgIGludCBpc19kc3QpCiB7CiAJc3RydWN0IGdlbjZfc3VyZmFjZV9zdGF0 ZSAqc3M7CiAJdWludDMyX3Qgd3JpdGVfZG9tYWluLCByZWFkX2RvbWFpbjsKQEAgLTg4LDcgKzg4 LDEzIEBAIGdlbjZfYmluZF9idWYoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwgY29u c3Qgc3RydWN0IGlndF9idWYgKmJ1ZiwKIAogCXNzID0gaW50ZWxfYmF0Y2hidWZmZXJfc3ViZGF0 YV9hbGxvYyhiYXRjaCwgc2l6ZW9mKCpzcyksIDMyKTsKIAlzcy0+c3MwLnN1cmZhY2VfdHlwZSA9 IFNVUkZBQ0VfMkQ7Ci0Jc3MtPnNzMC5zdXJmYWNlX2Zvcm1hdCA9IGZvcm1hdDsKKworCXN3aXRj aCAoYnVmLT5icHApIHsKKwkJY2FzZSA4OiBzcy0+c3MwLnN1cmZhY2VfZm9ybWF0ID0gU1VSRkFD RUZPUk1BVF9SOF9VTk9STTsgYnJlYWs7CisJCWNhc2UgMTY6IHNzLT5zczAuc3VyZmFjZV9mb3Jt YXQgPSBTVVJGQUNFRk9STUFUX1I4RzhfVU5PUk07IGJyZWFrOworCQljYXNlIDMyOiBzcy0+c3Mw LnN1cmZhY2VfZm9ybWF0ID0gU1VSRkFDRUZPUk1BVF9COEc4UjhBOF9VTk9STTsgYnJlYWs7CisJ CWRlZmF1bHQ6IGlndF9hc3NlcnQoMCk7CisJfQogCiAJc3MtPnNzMC5kYXRhX3JldHVybl9mb3Jt YXQgPSBTVVJGQUNFUkVUVVJORk9STUFUX0ZMT0FUMzI7CiAJc3MtPnNzMC5jb2xvcl9ibGVuZCA9 IDE7CkBAIC0xMTgsMTAgKzEyNCw4IEBAIGdlbjZfYmluZF9zdXJmYWNlcyhzdHJ1Y3QgaW50ZWxf YmF0Y2hidWZmZXIgKmJhdGNoLAogCiAJYmluZGluZ190YWJsZSA9IGludGVsX2JhdGNoYnVmZmVy X3N1YmRhdGFfYWxsb2MoYmF0Y2gsIDMyLCAzMik7CiAKLQliaW5kaW5nX3RhYmxlWzBdID0KLQkJ Z2VuNl9iaW5kX2J1ZihiYXRjaCwgZHN0LCBTVVJGQUNFRk9STUFUX0I4RzhSOEE4X1VOT1JNLCAx KTsKLQliaW5kaW5nX3RhYmxlWzFdID0KLQkJZ2VuNl9iaW5kX2J1ZihiYXRjaCwgc3JjLCBTVVJG QUNFRk9STUFUX0I4RzhSOEE4X1VOT1JNLCAwKTsKKwliaW5kaW5nX3RhYmxlWzBdID0gZ2VuNl9i aW5kX2J1ZihiYXRjaCwgZHN0LCAxKTsKKwliaW5kaW5nX3RhYmxlWzFdID0gZ2VuNl9iaW5kX2J1 ZihiYXRjaCwgc3JjLCAwKTsKIAogCXJldHVybiBpbnRlbF9iYXRjaGJ1ZmZlcl9zdWJkYXRhX29m ZnNldChiYXRjaCwgYmluZGluZ190YWJsZSk7CiB9CmRpZmYgLS1naXQgYS9saWIvcmVuZGVyY29w eV9nZW43LmMgYi9saWIvcmVuZGVyY29weV9nZW43LmMKaW5kZXggOWFkNjE5ZDg2MjBmLi43OTk5 OTg1ODhiNTkgMTAwNjQ0Ci0tLSBhL2xpYi9yZW5kZXJjb3B5X2dlbjcuYworKysgYi9saWIvcmVu ZGVyY29weV9nZW43LmMKQEAgLTU5LDEzICs1OSwxOSBAQCBnZW43X3RpbGluZ19iaXRzKHVpbnQz Ml90IHRpbGluZykKIHN0YXRpYyB1aW50MzJfdAogZ2VuN19iaW5kX2J1ZihzdHJ1Y3QgaW50ZWxf YmF0Y2hidWZmZXIgKmJhdGNoLAogCSAgICAgIGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpidWYsCi0J ICAgICAgdWludDMyX3QgZm9ybWF0LAogCSAgICAgIGludCBpc19kc3QpCiB7Ci0JdWludDMyX3Qg KnNzOworCXVpbnQzMl90IGZvcm1hdCwgKnNzOwogCXVpbnQzMl90IHdyaXRlX2RvbWFpbiwgcmVh ZF9kb21haW47CiAJaW50IHJldDsKIAorCXN3aXRjaCAoYnVmLT5icHApIHsKKwkJY2FzZSA4OiBm b3JtYXQgPSBTVVJGQUNFRk9STUFUX1I4X1VOT1JNOyBicmVhazsKKwkJY2FzZSAxNjogZm9ybWF0 ID0gU1VSRkFDRUZPUk1BVF9SOEc4X1VOT1JNOyBicmVhazsKKwkJY2FzZSAzMjogZm9ybWF0ID0g U1VSRkFDRUZPUk1BVF9COEc4UjhBOF9VTk9STTsgYnJlYWs7CisJCWRlZmF1bHQ6IGlndF9hc3Nl cnQoMCk7CisJfQorCiAJaWYgKGlzX2RzdCkgewogCQl3cml0ZV9kb21haW4gPSByZWFkX2RvbWFp biA9IEk5MTVfR0VNX0RPTUFJTl9SRU5ERVI7CiAJfSBlbHNlIHsKQEAgLTE4NiwxMCArMTkyLDgg QEAgZ2VuN19iaW5kX3N1cmZhY2VzKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAK IAliaW5kaW5nX3RhYmxlID0gaW50ZWxfYmF0Y2hidWZmZXJfc3ViZGF0YV9hbGxvYyhiYXRjaCwg OCwgMzIpOwogCi0JYmluZGluZ190YWJsZVswXSA9Ci0JCWdlbjdfYmluZF9idWYoYmF0Y2gsIGRz dCwgU1VSRkFDRUZPUk1BVF9COEc4UjhBOF9VTk9STSwgMSk7Ci0JYmluZGluZ190YWJsZVsxXSA9 Ci0JCWdlbjdfYmluZF9idWYoYmF0Y2gsIHNyYywgU1VSRkFDRUZPUk1BVF9COEc4UjhBOF9VTk9S TSwgMCk7CisJYmluZGluZ190YWJsZVswXSA9IGdlbjdfYmluZF9idWYoYmF0Y2gsIGRzdCwgMSk7 CisJYmluZGluZ190YWJsZVsxXSA9IGdlbjdfYmluZF9idWYoYmF0Y2gsIHNyYywgMCk7CiAKIAly ZXR1cm4gaW50ZWxfYmF0Y2hidWZmZXJfc3ViZGF0YV9vZmZzZXQoYmF0Y2gsIGJpbmRpbmdfdGFi bGUpOwogfQpkaWZmIC0tZ2l0IGEvbGliL3JlbmRlcmNvcHlfZ2VuOC5jIGIvbGliL3JlbmRlcmNv cHlfZ2VuOC5jCmluZGV4IGJlYjdhOWIzNDk4Ny4uOGVjODExNjMzZjA5IDEwMDY0NAotLS0gYS9s aWIvcmVuZGVyY29weV9nZW44LmMKKysrIGIvbGliL3JlbmRlcmNvcHlfZ2VuOC5jCkBAIC0xNDQs OCArMTQ0LDcgQEAgZ2VuNl9yZW5kZXJfZmx1c2goc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpi YXRjaCwKIHN0YXRpYyB1aW50MzJfdAogZ2VuOF9iaW5kX2J1ZihzdHJ1Y3QgaW50ZWxfYmF0Y2hi dWZmZXIgKmJhdGNoLAogCSAgICAgIHN0cnVjdCBhbm5vdGF0aW9uc19jb250ZXh0ICphdWIsCi0J ICAgICAgY29uc3Qgc3RydWN0IGlndF9idWYgKmJ1ZiwKLQkgICAgICB1aW50MzJfdCBmb3JtYXQs IGludCBpc19kc3QpCisJICAgICAgY29uc3Qgc3RydWN0IGlndF9idWYgKmJ1ZiwgaW50IGlzX2Rz dCkKIHsKIAlzdHJ1Y3QgZ2VuOF9zdXJmYWNlX3N0YXRlICpzczsKIAl1aW50MzJfdCB3cml0ZV9k b21haW4sIHJlYWRfZG9tYWluLCBvZmZzZXQ7CkBAIC0xNjMsNyArMTYyLDEyIEBAIGdlbjhfYmlu ZF9idWYoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKIAlhbm5vdGF0aW9uX2FkZF9z dGF0ZShhdWIsIEFVQl9UUkFDRV9TVVJGQUNFX1NUQVRFLCBvZmZzZXQsIHNpemVvZigqc3MpKTsK IAogCXNzLT5zczAuc3VyZmFjZV90eXBlID0gU1VSRkFDRV8yRDsKLQlzcy0+c3MwLnN1cmZhY2Vf Zm9ybWF0ID0gZm9ybWF0OworCXN3aXRjaCAoYnVmLT5icHApIHsKKwkJY2FzZSA4OiBzcy0+c3Mw LnN1cmZhY2VfZm9ybWF0ID0gU1VSRkFDRUZPUk1BVF9SOF9VTk9STTsgYnJlYWs7CisJCWNhc2Ug MTY6IHNzLT5zczAuc3VyZmFjZV9mb3JtYXQgPSBTVVJGQUNFRk9STUFUX1I4RzhfVU5PUk07IGJy ZWFrOworCQljYXNlIDMyOiBzcy0+c3MwLnN1cmZhY2VfZm9ybWF0ID0gU1VSRkFDRUZPUk1BVF9C OEc4UjhBOF9VTk9STTsgYnJlYWs7CisJCWRlZmF1bHQ6IGlndF9hc3NlcnQoMCk7CisJfQogCXNz LT5zczAucmVuZGVyX2NhY2hlX3JlYWRfd3JpdGUgPSAxOwogCXNzLT5zczAudmVydGljYWxfYWxp Z25tZW50ID0gMTsgLyogYWxpZ24gNCAqLwogCXNzLT5zczAuaG9yaXpvbnRhbF9hbGlnbm1lbnQg PSAxOyAvKiBhbGlnbiA0ICovCkBAIC0yMDUsMTIgKzIwOSw4IEBAIGdlbjhfYmluZF9zdXJmYWNl cyhzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCW9mZnNldCA9IGludGVsX2JhdGNo YnVmZmVyX3N1YmRhdGFfb2Zmc2V0KGJhdGNoLCBiaW5kaW5nX3RhYmxlKTsKIAlhbm5vdGF0aW9u X2FkZF9zdGF0ZShhdWIsIEFVQl9UUkFDRV9CSU5ESU5HX1RBQkxFLCBvZmZzZXQsIDgpOwogCi0J YmluZGluZ190YWJsZVswXSA9Ci0JCWdlbjhfYmluZF9idWYoYmF0Y2gsIGF1YiwKLQkJCSAgICAg IGRzdCwgU1VSRkFDRUZPUk1BVF9COEc4UjhBOF9VTk9STSwgMSk7Ci0JYmluZGluZ190YWJsZVsx XSA9Ci0JCWdlbjhfYmluZF9idWYoYmF0Y2gsIGF1YiwKLQkJCSAgICAgIHNyYywgU1VSRkFDRUZP Uk1BVF9COEc4UjhBOF9VTk9STSwgMCk7CisJYmluZGluZ190YWJsZVswXSA9IGdlbjhfYmluZF9i dWYoYmF0Y2gsIGF1YiwgZHN0LCAxKTsKKwliaW5kaW5nX3RhYmxlWzFdID0gZ2VuOF9iaW5kX2J1 ZihiYXRjaCwgYXViLCBzcmMsIDApOwogCiAJcmV0dXJuIG9mZnNldDsKIH0KZGlmZiAtLWdpdCBh L2xpYi9yZW5kZXJjb3B5X2dlbjkuYyBiL2xpYi9yZW5kZXJjb3B5X2dlbjkuYwppbmRleCBhZGJk ODEyNGUwODIuLjZkNzE5Y2UzY2NjNiAxMDA2NDQKLS0tIGEvbGliL3JlbmRlcmNvcHlfZ2VuOS5j CisrKyBiL2xpYi9yZW5kZXJjb3B5X2dlbjkuYwpAQCAtMTc1LDcgKzE3NSw3IEBAIGdlbjZfcmVu ZGVyX2ZsdXNoKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAvKiBNb3N0bHkgY29w eStwYXN0ZSBmcm9tIGdlbjYsIGV4Y2VwdCBoZWlnaHQsIHdpZHRoLCBwaXRjaCBtb3ZlZCAqLwog c3RhdGljIHVpbnQzMl90CiBnZW44X2JpbmRfYnVmKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAq YmF0Y2gsIGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpidWYsCi0JICAgICAgdWludDMyX3QgZm9ybWF0 LCBpbnQgaXNfZHN0KSB7CisJICAgICAgaW50IGlzX2RzdCkgewogCXN0cnVjdCBnZW44X3N1cmZh Y2Vfc3RhdGUgKnNzOwogCXVpbnQzMl90IHdyaXRlX2RvbWFpbiwgcmVhZF9kb21haW4sIG9mZnNl dDsKIAlpbnQgcmV0OwpAQCAtMTkzLDcgKzE5MywxMiBAQCBnZW44X2JpbmRfYnVmKHN0cnVjdCBp bnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsIGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpidWYsCiAJCQkg ICAgIG9mZnNldCwgc2l6ZW9mKCpzcykpOwogCiAJc3MtPnNzMC5zdXJmYWNlX3R5cGUgPSBTVVJG QUNFXzJEOwotCXNzLT5zczAuc3VyZmFjZV9mb3JtYXQgPSBmb3JtYXQ7CisJc3dpdGNoIChidWYt PmJwcCkgeworCQljYXNlIDg6IHNzLT5zczAuc3VyZmFjZV9mb3JtYXQgPSBTVVJGQUNFRk9STUFU X1I4X1VOT1JNOyBicmVhazsKKwkJY2FzZSAxNjogc3MtPnNzMC5zdXJmYWNlX2Zvcm1hdCA9IFNV UkZBQ0VGT1JNQVRfUjhHOF9VTk9STTsgYnJlYWs7CisJCWNhc2UgMzI6IHNzLT5zczAuc3VyZmFj ZV9mb3JtYXQgPSBTVVJGQUNFRk9STUFUX0I4RzhSOEE4X1VOT1JNOyBicmVhazsKKwkJZGVmYXVs dDogaWd0X2Fzc2VydCgwKTsKKwl9CiAJc3MtPnNzMC5yZW5kZXJfY2FjaGVfcmVhZF93cml0ZSA9 IDE7CiAJc3MtPnNzMC52ZXJ0aWNhbF9hbGlnbm1lbnQgPSAxOyAvKiBhbGlnbiA0ICovCiAJc3Mt PnNzMC5ob3Jpem9udGFsX2FsaWdubWVudCA9IDE7IC8qIGFsaWduIDQgKi8KQEAgLTI0OSwxMCAr MjU0LDggQEAgZ2VuOF9iaW5kX3N1cmZhY2VzKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0 Y2gsCiAJYW5ub3RhdGlvbl9hZGRfc3RhdGUoJmF1Yl9hbm5vdGF0aW9ucywgQVVCX1RSQUNFX0JJ TkRJTkdfVEFCTEUsCiAJCQkgICAgIG9mZnNldCwgOCk7CiAKLQliaW5kaW5nX3RhYmxlWzBdID0K LQkJZ2VuOF9iaW5kX2J1ZihiYXRjaCwgZHN0LCBTVVJGQUNFRk9STUFUX0I4RzhSOEE4X1VOT1JN LCAxKTsKLQliaW5kaW5nX3RhYmxlWzFdID0KLQkJZ2VuOF9iaW5kX2J1ZihiYXRjaCwgc3JjLCBT VVJGQUNFRk9STUFUX0I4RzhSOEE4X1VOT1JNLCAwKTsKKwliaW5kaW5nX3RhYmxlWzBdID0gZ2Vu OF9iaW5kX2J1ZihiYXRjaCwgZHN0LCAxKTsKKwliaW5kaW5nX3RhYmxlWzFdID0gZ2VuOF9iaW5k X2J1ZihiYXRjaCwgc3JjLCAwKTsKIAogCXJldHVybiBvZmZzZXQ7CiB9CmRpZmYgLS1naXQgYS9s aWIvcmVuZGVyY29weV9pODMwLmMgYi9saWIvcmVuZGVyY29weV9pODMwLmMKaW5kZXggMmIwN2Fk NWQ3NTBhLi5hMDI3ZGE0ZGE4OWQgMTAwNjQ0Ci0tLSBhL2xpYi9yZW5kZXJjb3B5X2k4MzAuYwor KysgYi9saWIvcmVuZGVyY29weV9pODMwLmMKQEAgLTEzNiw2ICsxMzYsMTQgQEAgc3RhdGljIHZv aWQgZ2VuMl9lbWl0X3RhcmdldChzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCQkJ ICAgICBjb25zdCBzdHJ1Y3QgaWd0X2J1ZiAqZHN0KQogewogCXVpbnQzMl90IHRpbGluZzsKKwl1 aW50MzJfdCBmb3JtYXQ7CisKKwlzd2l0Y2ggKGRzdC0+YnBwKSB7CisJCWNhc2UgODogZm9ybWF0 ID0gQ09MUl9CVUZfOEJJVDsgYnJlYWs7CisJCWNhc2UgMTY6IGZvcm1hdCA9IENPTFJfQlVGX1JH QjU2NTsgYnJlYWs7CisJCWNhc2UgMzI6IGZvcm1hdCA9IENPTFJfQlVGX0FSR0I4ODg4OyBicmVh azsKKwkJZGVmYXVsdDogaWd0X2Fzc2VydCgwKTsKKwl9CiAKIAl0aWxpbmcgPSAwOwogCWlmIChk c3QtPnRpbGluZyAhPSBJOTE1X1RJTElOR19OT05FKQpAQCAtMTQ4LDcgKzE1Niw3IEBAIHN0YXRp YyB2b2lkIGdlbjJfZW1pdF90YXJnZXQoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwK IAlPVVRfUkVMT0MoZHN0LT5ibywgSTkxNV9HRU1fRE9NQUlOX1JFTkRFUiwgSTkxNV9HRU1fRE9N QUlOX1JFTkRFUiwgMCk7CiAKIAlPVVRfQkFUQ0goXzNEU1RBVEVfRFNUX0JVRl9WQVJTX0NNRCk7 Ci0JT1VUX0JBVENIKENPTFJfQlVGX0FSR0I4ODg4IHwKKwlPVVRfQkFUQ0goZm9ybWF0IHwKIAkJ ICBEU1RPUkdfSE9SVF9CSUFTKDB4OCkgfAogCQkgIERTVE9SR19WRVJUX0JJQVMoMHg4KSk7CiAK QEAgLTE2NSw2ICsxNzMsMTQgQEAgc3RhdGljIHZvaWQgZ2VuMl9lbWl0X3RleHR1cmUoc3RydWN0 IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKIAkJCSAgICAgIGludCB1bml0KQogewogCXVpbnQz Ml90IHRpbGluZzsKKwl1aW50MzJfdCBmb3JtYXQ7CisKKwlzd2l0Y2ggKHNyYy0+YnBwKSB7CisJ CWNhc2UgODogZm9ybWF0ID0gTUFQU1VSRl84QklUIHwgTVRfOEJJVF9MODsgYnJlYWs7CisJCWNh c2UgMTY6IGZvcm1hdCA9IE1BUFNVUkZfMTZCSVQgfCBNVF8xNkJJVF9SR0I1NjU7IGJyZWFrOwor CQljYXNlIDMyOiBmb3JtYXQgPSBNQVBTVVJGXzMyQklUIHwgTVRfMzJCSVRfQVJHQjg4ODg7IGJy ZWFrOworCQlkZWZhdWx0OiBpZ3RfYXNzZXJ0KDApOworCX0KIAogCXRpbGluZyA9IDA7CiAJaWYg KHNyYy0+dGlsaW5nICE9IEk5MTVfVElMSU5HX05PTkUpCkBAIC0xNzYsNyArMTkyLDcgQEAgc3Rh dGljIHZvaWQgZ2VuMl9lbWl0X3RleHR1cmUoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRj aCwKIAlPVVRfUkVMT0Moc3JjLT5ibywgSTkxNV9HRU1fRE9NQUlOX1NBTVBMRVIsIDAsIDApOwog CU9VVF9CQVRDSCgoaWd0X2J1Zl9oZWlnaHQoc3JjKSAtIDEpIDw8IFRNMFMxX0hFSUdIVF9TSElG VCB8CiAJCSAgKGlndF9idWZfd2lkdGgoc3JjKSAtIDEpIDw8IFRNMFMxX1dJRFRIX1NISUZUIHwK LQkJICBNQVBTVVJGXzMyQklUIHwgTVRfMzJCSVRfQVJHQjg4ODggfCB0aWxpbmcpOworCQkgIGZv cm1hdCB8IHRpbGluZyk7CiAJT1VUX0JBVENIKChzcmMtPnN0cmlkZSAvIDQgLSAxKSA8PCBUTTBT Ml9QSVRDSF9TSElGVCB8IFRNMFMyX01BUF8yRCk7CiAJT1VUX0JBVENIKEZJTFRFUl9ORUFSRVNU IDw8IFRNMFMzX01BR19GSUxURVJfU0hJRlQgfAogCQkgIEZJTFRFUl9ORUFSRVNUIDw8IFRNMFMz X01JTl9GSUxURVJfU0hJRlQgfApkaWZmIC0tZ2l0IGEvbGliL3JlbmRlcmNvcHlfaTkxNS5jIGIv bGliL3JlbmRlcmNvcHlfaTkxNS5jCmluZGV4IGY2OGU3YzFmMjgwNi4uOWNkMTJhNzI5OTFjIDEw MDY0NAotLS0gYS9saWIvcmVuZGVyY29weV9pOTE1LmMKKysrIGIvbGliL3JlbmRlcmNvcHlfaTkx NS5jCkBAIC04NCwxNyArODQsMjMgQEAgdm9pZCBnZW4zX3JlbmRlcl9jb3B5ZnVuYyhzdHJ1Y3Qg aW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCS8qIHNhbWxlciBzdGF0ZSAqLwogCXsKICNkZWZp bmUgVEVYX0NPVU5UIDEKLQkJdWludDMyX3QgdGlsaW5nX2JpdHMgPSAwOworCQl1aW50MzJfdCBm b3JtYXRfYml0cywgdGlsaW5nX2JpdHMgPSAwOwogCQlpZiAoc3JjLT50aWxpbmcgIT0gSTkxNV9U SUxJTkdfTk9ORSkKIAkJCXRpbGluZ19iaXRzID0gTVMzX1RJTEVEX1NVUkZBQ0U7CiAJCWlmIChz cmMtPnRpbGluZyA9PSBJOTE1X1RJTElOR19ZKQogCQkJdGlsaW5nX2JpdHMgfD0gTVMzX1RJTEVf V0FMSzsKIAorCQlzd2l0Y2ggKHNyYy0+YnBwKSB7CisJCQljYXNlIDg6IGZvcm1hdF9iaXRzID0g TUFQU1VSRl84QklUIHwgTVRfOEJJVF9MODsgYnJlYWs7CisJCQljYXNlIDE2OiBmb3JtYXRfYml0 cyA9IE1BUFNVUkZfMTZCSVQgfCBNVF8xNkJJVF9SR0I1NjU7IGJyZWFrOworCQkJY2FzZSAzMjog Zm9ybWF0X2JpdHMgPSBNQVBTVVJGXzMyQklUIHwgTVRfMzJCSVRfQVJHQjg4ODg7IGJyZWFrOwor CQkJZGVmYXVsdDogaWd0X2Fzc2VydCgwKTsKKwkJfQorCiAJCU9VVF9CQVRDSChfM0RTVEFURV9N QVBfU1RBVEUgfCAoMyAqIFRFWF9DT1VOVCkpOwogCQlPVVRfQkFUQ0goKDEgPDwgVEVYX0NPVU5U KSAtIDEpOwogCQlPVVRfUkVMT0Moc3JjLT5ibywgSTkxNV9HRU1fRE9NQUlOX1NBTVBMRVIsIDAs IDApOwotCQlPVVRfQkFUQ0goTUFQU1VSRl8zMkJJVCB8IE1UXzMyQklUX0FSR0I4ODg4IHwKLQkJ CSAgdGlsaW5nX2JpdHMgfAorCQlPVVRfQkFUQ0goZm9ybWF0X2JpdHMgfCB0aWxpbmdfYml0cyB8 CiAJCQkgIChpZ3RfYnVmX2hlaWdodChzcmMpIC0gMSkgPDwgTVMzX0hFSUdIVF9TSElGVCB8CiAJ CQkgIChpZ3RfYnVmX3dpZHRoKHNyYykgLSAxKSA8PCBNUzNfV0lEVEhfU0hJRlQpOwogCQlPVVRf QkFUQ0goKHNyYy0+c3RyaWRlLzQtMSkgPDwgTVM0X1BJVENIX1NISUZUKTsKQEAgLTExMyw2ICsx MTksMTUgQEAgdm9pZCBnZW4zX3JlbmRlcl9jb3B5ZnVuYyhzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZm ZXIgKmJhdGNoLAogCS8qIHJlbmRlciB0YXJnZXQgc3RhdGUgKi8KIAl7CiAJCXVpbnQzMl90IHRp bGluZ19iaXRzID0gMDsKKwkJdWludDMyX3QgZm9ybWF0X2JpdHM7CisKKwkJc3dpdGNoIChkc3Qt PmJwcCkgeworCQkJY2FzZSA4OiBmb3JtYXRfYml0cyA9IENPTFJfQlVGXzhCSVQ7IGJyZWFrOwor CQkJY2FzZSAxNjogZm9ybWF0X2JpdHMgPSBDT0xSX0JVRl9SR0I1NjU7IGJyZWFrOworCQkJY2Fz ZSAzMjogZm9ybWF0X2JpdHMgPSBDT0xSX0JVRl9BUkdCODg4ODsgYnJlYWs7CisJCQlkZWZhdWx0 OiBpZ3RfYXNzZXJ0KDApOworCQl9CisKIAkJaWYgKGRzdC0+dGlsaW5nICE9IEk5MTVfVElMSU5H X05PTkUpCiAJCQl0aWxpbmdfYml0cyA9IEJVRl8zRF9USUxFRF9TVVJGQUNFOwogCQlpZiAoZHN0 LT50aWxpbmcgPT0gSTkxNV9USUxJTkdfWSkKQEAgLTEyNCw3ICsxMzksNyBAQCB2b2lkIGdlbjNf cmVuZGVyX2NvcHlmdW5jKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAJCU9VVF9S RUxPQyhkc3QtPmJvLCBJOTE1X0dFTV9ET01BSU5fUkVOREVSLCBJOTE1X0dFTV9ET01BSU5fUkVO REVSLCAwKTsKIAogCQlPVVRfQkFUQ0goXzNEU1RBVEVfRFNUX0JVRl9WQVJTX0NNRCk7Ci0JCU9V VF9CQVRDSChDT0xSX0JVRl9BUkdCODg4OCB8CisJCU9VVF9CQVRDSChmb3JtYXRfYml0cyB8CiAJ CQkgIERTVE9SR19IT1JUX0JJQVMoMHg4KSB8CiAJCQkgIERTVE9SR19WRVJUX0JJQVMoMHg4KSk7 CiAKLS0gCjIuMTkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==