From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vidya Srinivas Subject: [PATCH i-g-t 1/6] i-g-t: kms_plane_scaling: Fix basic scaling test Date: Wed, 13 Dec 2017 15:20:47 +0530 Message-ID: <1513158652-8912-2-git-send-email-vidya.srinivas@intel.com> References: <1513158652-8912-1-git-send-email-vidya.srinivas@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id C65526E3ED for ; Wed, 13 Dec 2017 09:41:43 +0000 (UTC) In-Reply-To: <1513158652-8912-1-git-send-email-vidya.srinivas@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: daniel.vetter@intel.com, Vidya Srinivas List-Id: intel-gfx@lists.freedesktop.org RnJvbTogTWFoZXNoIEt1bWFyIDxtYWhlc2gxLmt1bWFyQGludGVsLmNvbT4KClBJUEVDIGRvZXNu dCBoYXZlIDNyZCBwbGFuZSBpbiBHRU45LiBTbywgd2Ugc2tpcCB0aGUKM3JkIHBsYW5lIHJlbGF0 ZWQgc2NhbGluZyB0ZXN0IHdoZXJlIDJuZCBPVkVSTEFZCnBsYW5lIGlzIG5vdCBhdmFpbGFibGUu CgpSZXN0cmljdGluZyBkb3duc2NhbGluZyB0byAoOS8xMCl4IG9yaWdpbmFsIHNpemUgb2YgdGhl CmltYWdlIHRvIGF2b2lkICJNYXggcGl4ZWwgcmF0ZSBsaW1pdGF0aW9uIiBvZiB0aGUgaGFyZHdh cmUuCgpMYXRlciBwYXRjaGVzIGluIHRoaXMgc2VyaWVzIHdpbGwgY292ZXIgY29ybmVyIGNhc2Vz IG9mCnNjYWxpbmcuCgpTaWduZWQtb2ZmLWJ5OiBNYWhlc2ggS3VtYXIgPG1haGVzaDEua3VtYXJA aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKeW90aSBZYWRhdiA8anlvdGkuci55YWRhdkBpbnRl bC5jb20+ClNpZ25lZC1vZmYtYnk6IFZpZHlhIFNyaW5pdmFzIDx2aWR5YS5zcmluaXZhc0BpbnRl bC5jb20+Ci0tLQogdGVzdHMva21zX3BsYW5lX3NjYWxpbmcuYyB8IDIzNCArKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTI1IGlu c2VydGlvbnMoKyksIDEwOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfcGxh bmVfc2NhbGluZy5jIGIvdGVzdHMva21zX3BsYW5lX3NjYWxpbmcuYwppbmRleCA0MDNkZjQ3Li5h ODI3Y2IzIDEwMDY0NAotLS0gYS90ZXN0cy9rbXNfcGxhbmVfc2NhbGluZy5jCisrKyBiL3Rlc3Rz L2ttc19wbGFuZV9zY2FsaW5nLmMKQEAgLTE2MywxNDQgKzE2MywxNTkgQEAgc3RhdGljIHZvaWQg aXRlcmF0ZV9wbGFuZV9zY2FsaW5nKGRhdGFfdCAqZCwgZHJtTW9kZU1vZGVJbmZvICptb2RlKQog CX0KIH0KIAotc3RhdGljIHZvaWQgdGVzdF9wbGFuZV9zY2FsaW5nKGRhdGFfdCAqZCkKK3N0YXRp YyB2b2lkCit0ZXN0X3BsYW5lX3NjYWxpbmdfb25fcGlwZShkYXRhX3QgKmQsIGVudW0gcGlwZSBw aXBlLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKIHsKIAlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0g JmQtPmRpc3BsYXk7Ci0JaWd0X291dHB1dF90ICpvdXRwdXQ7Ci0JZW51bSBwaXBlIHBpcGU7Ci0J aW50IHZhbGlkX3Rlc3RzID0gMDsKKwlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7CiAJaW50IHByaW1h cnlfcGxhbmVfc2NhbGluZyA9IDA7IC8qIEZvciBub3cgKi8KIAotCWlndF9yZXF1aXJlKGQtPm51 bV9zY2FsZXJzKTsKKwlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7CisJbW9kZSA9 IGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KTsKKworCS8qIGFsbG9jYXRlIGZiMiB3aXRoIGlt YWdlIHNpemUgKi8KKwlkLT5mYl9pZDIgPSBpZ3RfY3JlYXRlX2ltYWdlX2ZiKGQtPmRybV9mZCwg MCwgMCwKKwkJCURSTV9GT1JNQVRfWFJHQjg4ODgsCisJCQlMT0NBTF9JOTE1X0ZPUk1BVF9NT0Rf WF9USUxFRCwgLyogdGlsZWQgKi8KKwkJCUZJTEVfTkFNRSwgJmQtPmZiMik7CisJaWd0X2Fzc2Vy dChkLT5mYl9pZDIpOworCisJZC0+ZmJfaWQzID0gaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGQtPmRy bV9mZCwKKwkJCW1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwKKwkJCURSTV9GT1JNQVRf WFJHQjg4ODgsCisJCQlMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwgLyogdGlsZWQgKi8K KwkJCSZkLT5mYjMpOworCWlndF9hc3NlcnQoZC0+ZmJfaWQzKTsKKworCS8qIFNldCB1cCBkaXNw bGF5IHdpdGggcGxhbmUgMSAqLworCWQtPnBsYW5lMSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lKG91 dHB1dCwgMCk7CisJcHJlcGFyZV9jcnRjKGQsIG91dHB1dCwgcGlwZSwgZC0+cGxhbmUxLCBtb2Rl LCBDT01NSVRfVU5JVkVSU0FMKTsKKworCWlmIChwcmltYXJ5X3BsYW5lX3NjYWxpbmcpIHsKKwkJ LyogUHJpbWFyeSBwbGFuZSB1cHNjYWxpbmcgKi8KKwkJaWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ ZmIxLCBkLT5wbGFuZTEsIDEwMCwgMTAwKTsKKwkJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjEsIGQt PnBsYW5lMSwgNTAwLCA1MDApOworCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMSwg MCwgMCk7CisJCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTEsIG1vZGUtPmhkaXNwbGF5LCBt b2RlLT52ZGlzcGxheSk7CisJCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VO SVZFUlNBTCk7CiAKLQlmb3JfZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0cHV0KGRpc3BsYXksIHBp cGUsIG91dHB1dCkgewotCQlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7Ci0KLQkJaWd0X291dHB1dF9z ZXRfcGlwZShvdXRwdXQsIHBpcGUpOwotCi0JCW1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91 dHB1dCk7Ci0KLQkJLyogYWxsb2NhdGUgZmIyIHdpdGggaW1hZ2Ugc2l6ZSAqLwotCQlkLT5mYl9p ZDIgPSBpZ3RfY3JlYXRlX2ltYWdlX2ZiKGQtPmRybV9mZCwgMCwgMCwKLQkJCQkJCURSTV9GT1JN QVRfWFJHQjg4ODgsCi0JCQkJCQlMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwgLyogdGls ZWQgKi8KLQkJCQkJCUZJTEVfTkFNRSwgJmQtPmZiMik7Ci0JCWlndF9hc3NlcnQoZC0+ZmJfaWQy KTsKLQotCQlkLT5mYl9pZDMgPSBpZ3RfY3JlYXRlX3BhdHRlcm5fZmIoZC0+ZHJtX2ZkLAotCQkJ CQkJICBtb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXksCi0JCQkJCQkgIERSTV9GT1JNQVRf WFJHQjg4ODgsCi0JCQkJCQkgIExPQ0FMX0k5MTVfRk9STUFUX01PRF9YX1RJTEVELCAvKiB0aWxl ZCAqLwotCQkJCQkJICAmZC0+ZmIzKTsKLQkJaWd0X2Fzc2VydChkLT5mYl9pZDMpOwotCi0JCS8q IFNldCB1cCBkaXNwbGF5IHdpdGggcGxhbmUgMSAqLwotCQlkLT5wbGFuZTEgPSBpZ3Rfb3V0cHV0 X2dldF9wbGFuZShvdXRwdXQsIDApOwotCQlwcmVwYXJlX2NydGMoZCwgb3V0cHV0LCBwaXBlLCBk LT5wbGFuZTEsIG1vZGUsIENPTU1JVF9VTklWRVJTQUwpOwotCi0JCWlmIChwcmltYXJ5X3BsYW5l X3NjYWxpbmcpIHsKLQkJCS8qIFByaW1hcnkgcGxhbmUgdXBzY2FsaW5nICovCi0JCQlpZ3RfZmJf c2V0X3Bvc2l0aW9uKCZkLT5mYjEsIGQtPnBsYW5lMSwgMTAwLCAxMDApOwotCQkJaWd0X2ZiX3Nl dF9zaXplKCZkLT5mYjEsIGQtPnBsYW5lMSwgNTAwLCA1MDApOwotCQkJaWd0X3BsYW5lX3NldF9w b3NpdGlvbihkLT5wbGFuZTEsIDAsIDApOwotCQkJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5l MSwgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5KTsKLQkJCWlndF9kaXNwbGF5X2NvbW1p dDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisJCS8qIFByaW1hcnkgcGxhbmUgMToxIG5v IHNjYWxpbmcgKi8KKwkJaWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ZmIxLCBkLT5wbGFuZTEsIDAs IDApOworCQlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMSwgZC0+cGxhbmUxLCBkLT5mYjEud2lkdGgs IGQtPmZiMS5oZWlnaHQpOworCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMSwgMCwg MCk7CisJCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTEsIG1vZGUtPmhkaXNwbGF5LCBtb2Rl LT52ZGlzcGxheSk7CisJCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZF UlNBTCk7CisJfQogCi0JCQkvKiBQcmltYXJ5IHBsYW5lIDE6MSBubyBzY2FsaW5nICovCi0JCQlp Z3RfZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjEsIGQtPnBsYW5lMSwgMCwgMCk7Ci0JCQlpZ3RfZmJf c2V0X3NpemUoJmQtPmZiMSwgZC0+cGxhbmUxLCBkLT5mYjEud2lkdGgsIGQtPmZiMS5oZWlnaHQp OwotCQkJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTEsIDAsIDApOwotCQkJaWd0X3Bs YW5lX3NldF9zaXplKGQtPnBsYW5lMSwgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5KTsK LQkJCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Ci0JCX0K KwkvKiBTZXQgdXAgZmIyLT5wbGFuZTIgbWFwcGluZy4gKi8KKwlkLT5wbGFuZTIgPSBpZ3Rfb3V0 cHV0X2dldF9wbGFuZShvdXRwdXQsIDEpOworCWlndF9wbGFuZV9zZXRfZmIoZC0+cGxhbmUyLCAm ZC0+ZmIyKTsKIAotCQkvKiBTZXQgdXAgZmIyLT5wbGFuZTIgbWFwcGluZy4gKi8KLQkJZC0+cGxh bmUyID0gaWd0X291dHB1dF9nZXRfcGxhbmUob3V0cHV0LCAxKTsKLQkJaWd0X3BsYW5lX3NldF9m YihkLT5wbGFuZTIsICZkLT5mYjIpOworCS8qIDJuZCBwbGFuZSB3aW5kb3dlZCAqLworCWlndF9m Yl9zZXRfcG9zaXRpb24oJmQtPmZiMiwgZC0+cGxhbmUyLCAxMDAsIDEwMCk7CisJaWd0X2ZiX3Nl dF9zaXplKCZkLT5mYjIsIGQtPnBsYW5lMiwgZC0+ZmIyLndpZHRoLTIwMCwgZC0+ZmIyLmhlaWdo dC0yMDApOworCWlndF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUyLCAxMDAsIDEwMCk7CisJ aWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lMiwgbW9kZS0+aGRpc3BsYXktMjAwLCBtb2RlLT52 ZGlzcGxheS0yMDApOworCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZF UlNBTCk7CiAKLQkJLyogMm5kIHBsYW5lIHdpbmRvd2VkICovCi0JCWlndF9mYl9zZXRfcG9zaXRp b24oJmQtPmZiMiwgZC0+cGxhbmUyLCAxMDAsIDEwMCk7Ci0JCWlndF9mYl9zZXRfc2l6ZSgmZC0+ ZmIyLCBkLT5wbGFuZTIsIGQtPmZiMi53aWR0aC0yMDAsIGQtPmZiMi5oZWlnaHQtMjAwKTsKLQkJ aWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTIsIDEwMCwgMTAwKTsKLQkJaWd0X3BsYW5l X3NldF9zaXplKGQtPnBsYW5lMiwgbW9kZS0+aGRpc3BsYXktMjAwLCBtb2RlLT52ZGlzcGxheS0y MDApOwotCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwor CWl0ZXJhdGVfcGxhbmVfc2NhbGluZyhkLCBtb2RlKTsKIAotCQlpdGVyYXRlX3BsYW5lX3NjYWxp bmcoZCwgbW9kZSk7CisJLyogMm5kIHBsYW5lIHVwIHNjYWxpbmcgKi8KKwlpZ3RfZmJfc2V0X3Bv c2l0aW9uKCZkLT5mYjIsIGQtPnBsYW5lMiwgMTAwLCAxMDApOworCWlndF9mYl9zZXRfc2l6ZSgm ZC0+ZmIyLCBkLT5wbGFuZTIsIDUwMCwgNTAwKTsKKwlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQt PnBsYW5lMiwgMTAsIDEwKTsKKwlpZ3RfcGxhbmVfc2V0X3NpemUoZC0+cGxhbmUyLCBtb2RlLT5o ZGlzcGxheS0yMCwgbW9kZS0+dmRpc3BsYXktMjApOworCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlz cGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CiAKLQkJLyogMm5kIHBsYW5lIHVwIHNjYWxpbmcgKi8K LQkJaWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ZmIyLCBkLT5wbGFuZTIsIDEwMCwgMTAwKTsKLQkJ aWd0X2ZiX3NldF9zaXplKCZkLT5mYjIsIGQtPnBsYW5lMiwgNTAwLCA1MDApOwotCQlpZ3RfcGxh bmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMiwgMTAsIDEwKTsKLQkJaWd0X3BsYW5lX3NldF9zaXpl KGQtPnBsYW5lMiwgbW9kZS0+aGRpc3BsYXktMjAsIG1vZGUtPnZkaXNwbGF5LTIwKTsKLQkJaWd0 X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKKwkvKiAybmQgcGxh bmUgZG93bnNjYWxpbmcgKi8KKwlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjIsIGQtPnBsYW5l MiwgMCwgMCk7CisJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjIsIGQtPnBsYW5lMiwgZC0+ZmIyLndp ZHRoLCBkLT5mYjIuaGVpZ2h0KTsKKwlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMiwg MTAsIDEwKTsKIAotCQkvKiAybmQgcGxhbmUgZG93bnNjYWxpbmcgKi8KLQkJaWd0X2ZiX3NldF9w b3NpdGlvbigmZC0+ZmIyLCBkLT5wbGFuZTIsIDAsIDApOwotCQlpZ3RfZmJfc2V0X3NpemUoJmQt PmZiMiwgZC0+cGxhbmUyLCBkLT5mYjIud2lkdGgsIGQtPmZiMi5oZWlnaHQpOwotCQlpZ3RfcGxh bmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMiwgMTAsIDEwKTsKLQkJaWd0X3BsYW5lX3NldF9zaXpl KGQtPnBsYW5lMiwgNTAwLCA1MDAgKiBkLT5mYjIuaGVpZ2h0L2QtPmZiMi53aWR0aCk7CisJLyog RG93bnNjYWxlICgxMC85KXggb2Ygb3JpZ2luYWwgaW1hZ2UgKi8KKwlpZ3RfcGxhbmVfc2V0X3Np emUoZC0+cGxhbmUyLCAoZC0+ZmIyLndpZHRoICogMTApLzksIChkLT5mYjIuaGVpZ2h0ICogMTAp LzkpOworCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisK KwlpZiAocHJpbWFyeV9wbGFuZV9zY2FsaW5nKSB7CisJCS8qIFByaW1hcnkgcGxhbmUgdXAgc2Nh bGluZyAqLworCQlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjEsIGQtPnBsYW5lMSwgMTAwLCAx MDApOworCQlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMSwgZC0+cGxhbmUxLCA1MDAsIDUwMCk7CisJ CWlndF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUxLCAwLCAwKTsKKwkJaWd0X3BsYW5lX3Nl dF9zaXplKGQtPnBsYW5lMSwgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5KTsKIAkJaWd0 X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKKwl9CiAKLQkJaWYg KHByaW1hcnlfcGxhbmVfc2NhbGluZykgewotCQkJLyogUHJpbWFyeSBwbGFuZSB1cCBzY2FsaW5n ICovCi0JCQlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjEsIGQtPnBsYW5lMSwgMTAwLCAxMDAp OwotCQkJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjEsIGQtPnBsYW5lMSwgNTAwLCA1MDApOwotCQkJ aWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTEsIDAsIDApOwotCQkJaWd0X3BsYW5lX3Nl dF9zaXplKGQtPnBsYW5lMSwgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5KTsKLQkJCWln dF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Ci0JCX0KKwkvKiBT ZXQgdXAgZmIzLT5wbGFuZTMgbWFwcGluZy4gKi8KKwlkLT5wbGFuZTMgPSBpZ3Rfb3V0cHV0X2dl dF9wbGFuZShvdXRwdXQsIDIpOworCWlndF9wbGFuZV9zZXRfZmIoZC0+cGxhbmUzLCAmZC0+ZmIz KTsKIAotCQkvKiBTZXQgdXAgZmIzLT5wbGFuZTMgbWFwcGluZy4gKi8KLQkJZC0+cGxhbmUzID0g aWd0X291dHB1dF9nZXRfcGxhbmUob3V0cHV0LCAyKTsKLQkJaWd0X3BsYW5lX3NldF9mYihkLT5w bGFuZTMsICZkLT5mYjMpOworCWlmKGQtPnBsYW5lMy0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9D VVJTT1IpIHsKKwkJaWd0X2luZm8oIlBsYW5lLTMgZG9lc250IGV4aXN0IG9uIHBpcGUgJXNcbiIs IGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpKTsKKwkJZ290byBjbGVhbnVwOworCX0KIAotCQkvKiAz cmQgcGxhbmUgd2luZG93ZWQgLSBubyBzY2FsaW5nICovCi0JCWlndF9mYl9zZXRfcG9zaXRpb24o JmQtPmZiMywgZC0+cGxhbmUzLCAxMDAsIDEwMCk7Ci0JCWlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIz LCBkLT5wbGFuZTMsIGQtPmZiMy53aWR0aC0zMDAsIGQtPmZiMy5oZWlnaHQtMzAwKTsKLQkJaWd0 X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTMsIDEwMCwgMTAwKTsKLQkJaWd0X3BsYW5lX3Nl dF9zaXplKGQtPnBsYW5lMywgbW9kZS0+aGRpc3BsYXktMzAwLCBtb2RlLT52ZGlzcGxheS0zMDAp OwotCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOworCS8q IDNyZCBwbGFuZSB3aW5kb3dlZCAtIG5vIHNjYWxpbmcgKi8KKwlpZ3RfZmJfc2V0X3Bvc2l0aW9u KCZkLT5mYjMsIGQtPnBsYW5lMywgMTAwLCAxMDApOworCWlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIz LCBkLT5wbGFuZTMsIGQtPmZiMy53aWR0aC0zMDAsIGQtPmZiMy5oZWlnaHQtMzAwKTsKKwlpZ3Rf cGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMywgMTAwLCAxMDApOworCWlndF9wbGFuZV9zZXRf c2l6ZShkLT5wbGFuZTMsIG1vZGUtPmhkaXNwbGF5LTMwMCwgbW9kZS0+dmRpc3BsYXktMzAwKTsK KwlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOworCisJLyog U3dpdGNoIHNjYWxlciBmcm9tIHBsYW5lIDIgdG8gcGxhbmUgMyAqLworCWlndF9mYl9zZXRfcG9z aXRpb24oJmQtPmZiMiwgZC0+cGxhbmUyLCAxMDAsIDEwMCk7CisJaWd0X2ZiX3NldF9zaXplKCZk LT5mYjIsIGQtPnBsYW5lMiwgZC0+ZmIyLndpZHRoLTIwMCwgZC0+ZmIyLmhlaWdodC0yMDApOwor CWlndF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUyLCAxMDAsIDEwMCk7CisJaWd0X3BsYW5l X3NldF9zaXplKGQtPnBsYW5lMiwgZC0+ZmIyLndpZHRoLTIwMCwgZC0+ZmIyLmhlaWdodC0yMDAp OworCisJaWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ZmIzLCBkLT5wbGFuZTMsIDEwMCwgMTAwKTsK KwlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMywgZC0+cGxhbmUzLCBkLT5mYjMud2lkdGgtNDAwLCBk LT5mYjMuaGVpZ2h0LTQwMCk7CisJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTMsIDEw LCAxMCk7CisJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lMywgbW9kZS0+aGRpc3BsYXktMzAw LCBtb2RlLT52ZGlzcGxheS0zMDApOworCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09N TUlUX1VOSVZFUlNBTCk7CisKKwlpZiAocHJpbWFyeV9wbGFuZV9zY2FsaW5nKSB7CisJCS8qIFN3 aXRjaCBzY2FsZXIgZnJvbSBwbGFuZSAxIHRvIHBsYW5lIDIgKi8KKwkJaWd0X2ZiX3NldF9wb3Np dGlvbigmZC0+ZmIxLCBkLT5wbGFuZTEsIDAsIDApOworCQlpZ3RfZmJfc2V0X3NpemUoJmQtPmZi MSwgZC0+cGxhbmUxLCBkLT5mYjEud2lkdGgsIGQtPmZiMS5oZWlnaHQpOworCQlpZ3RfcGxhbmVf c2V0X3Bvc2l0aW9uKGQtPnBsYW5lMSwgMCwgMCk7CisJCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5w bGFuZTEsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSk7CiAKLQkJLyogU3dpdGNoIHNj YWxlciBmcm9tIHBsYW5lIDIgdG8gcGxhbmUgMyAqLwogCQlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZk LT5mYjIsIGQtPnBsYW5lMiwgMTAwLCAxMDApOwotCQlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMiwg ZC0+cGxhbmUyLCBkLT5mYjIud2lkdGgtMjAwLCBkLT5mYjIuaGVpZ2h0LTIwMCk7CisJCWlndF9m Yl9zZXRfc2l6ZSgmZC0+ZmIyLCBkLT5wbGFuZTIsIGQtPmZiMi53aWR0aC01MDAsZC0+ZmIyLmhl aWdodC01MDApOwogCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMiwgMTAwLCAxMDAp OwotCQlpZ3RfcGxhbmVfc2V0X3NpemUoZC0+cGxhbmUyLCBkLT5mYjIud2lkdGgtMjAwLCBkLT5m YjIuaGVpZ2h0LTIwMCk7Ci0KLQkJaWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ZmIzLCBkLT5wbGFu ZTMsIDEwMCwgMTAwKTsKLQkJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjMsIGQtPnBsYW5lMywgZC0+ ZmIzLndpZHRoLTQwMCwgZC0+ZmIzLmhlaWdodC00MDApOwotCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0 aW9uKGQtPnBsYW5lMywgMTAsIDEwKTsKLQkJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lMywg bW9kZS0+aGRpc3BsYXktMzAwLCBtb2RlLT52ZGlzcGxheS0zMDApOworCQlpZ3RfcGxhbmVfc2V0 X3NpemUoZC0+cGxhbmUyLCBtb2RlLT5oZGlzcGxheS0yMDAsIG1vZGUtPnZkaXNwbGF5LTIwMCk7 CiAJCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisJfQog Ci0JCWlmIChwcmltYXJ5X3BsYW5lX3NjYWxpbmcpIHsKLQkJCS8qIFN3aXRjaCBzY2FsZXIgZnJv bSBwbGFuZSAxIHRvIHBsYW5lIDIgKi8KLQkJCWlndF9mYl9zZXRfcG9zaXRpb24oJmQtPmZiMSwg ZC0+cGxhbmUxLCAwLCAwKTsKLQkJCWlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIxLCBkLT5wbGFuZTEs IGQtPmZiMS53aWR0aCwgZC0+ZmIxLmhlaWdodCk7Ci0JCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9u KGQtPnBsYW5lMSwgMCwgMCk7Ci0JCQlpZ3RfcGxhbmVfc2V0X3NpemUoZC0+cGxhbmUxLCBtb2Rl LT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXkpOwotCi0JCQlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZk LT5mYjIsIGQtPnBsYW5lMiwgMTAwLCAxMDApOwotCQkJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjIs IGQtPnBsYW5lMiwgZC0+ZmIyLndpZHRoLTUwMCxkLT5mYjIuaGVpZ2h0LTUwMCk7Ci0JCQlpZ3Rf cGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMiwgMTAwLCAxMDApOwotCQkJaWd0X3BsYW5lX3Nl dF9zaXplKGQtPnBsYW5lMiwgbW9kZS0+aGRpc3BsYXktMjAwLCBtb2RlLT52ZGlzcGxheS0yMDAp OwotCQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKLQkJ fQorY2xlYW51cDoKKwkvKiBiYWNrIHRvIHNpbmdsZSBwbGFuZSBtb2RlICovCisJaWd0X3BsYW5l X3NldF9mYihkLT5wbGFuZTIsIE5VTEwpOworCWlndF9wbGFuZV9zZXRfZmIoZC0+cGxhbmUzLCBO VUxMKTsKKwlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwog Ci0JCS8qIGJhY2sgdG8gc2luZ2xlIHBsYW5lIG1vZGUgKi8KLQkJaWd0X3BsYW5lX3NldF9mYihk LT5wbGFuZTIsIE5VTEwpOwotCQlpZ3RfcGxhbmVfc2V0X2ZiKGQtPnBsYW5lMywgTlVMTCk7Ci0J CWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisJY2xlYW51 cF9jcnRjKGQsIG91dHB1dCwgZC0+cGxhbmUxKTsKK30KKworc3RhdGljIHZvaWQgdGVzdF9wbGFu ZV9zY2FsaW5nKGRhdGFfdCAqZCwgZW51bSBwaXBlIHBpcGUpCit7CisJaWd0X291dHB1dF90ICpv dXRwdXQ7CisJaW50IHZhbGlkX3Rlc3RzID0gMDsKKworCWlndF9yZXF1aXJlKGQtPm51bV9zY2Fs ZXJzKTsKIAorCWZvcl9lYWNoX3ZhbGlkX291dHB1dF9vbl9waXBlKCZkLT5kaXNwbGF5LCBwaXBl LCBvdXRwdXQpIHsKKwkJdGVzdF9wbGFuZV9zY2FsaW5nX29uX3BpcGUoZCwgcGlwZSwgb3V0cHV0 KTsKKwkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIFBJUEVfQU5ZKTsKIAkJdmFsaWRfdGVz dHMrKzsKLQkJY2xlYW51cF9jcnRjKGQsIG91dHB1dCwgZC0+cGxhbmUxKTsKIAl9CisKIAlpZ3Rf cmVxdWlyZV9mKHZhbGlkX3Rlc3RzLCAibm8gdmFsaWQgY3J0Yy9jb25uZWN0b3IgY29tYmluYXRp b25zIGZvdW5kXG4iKTsKIH0KIAogaWd0X3NpbXBsZV9tYWluCiB7CiAJZGF0YV90IGRhdGEgPSB7 fTsKKwllbnVtIHBpcGUgcGlwZTsKIAogCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKIApAQCAt MzEyLDcgKzMyNyw4IEBAIGlndF9zaW1wbGVfbWFpbgogCiAJZGF0YS5udW1fc2NhbGVycyA9IGlu dGVsX2dlbihkYXRhLmRldmlkKSA+PSA5ID8gMiA6IDA7CiAKLQl0ZXN0X3BsYW5lX3NjYWxpbmco JmRhdGEpOworCWZvcl9lYWNoX3BpcGVfc3RhdGljKHBpcGUpCisJCXRlc3RfcGxhbmVfc2NhbGlu ZygmZGF0YSwgcGlwZSk7CiAKIAlpZ3RfZGlzcGxheV9maW5pKCZkYXRhLmRpc3BsYXkpOwogfQot LSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=