From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH 2/2] drm/i915: hsw+ audio regs are per-transocder Date: Tue, 30 Apr 2019 17:29:01 +0300 Message-ID: <20190430142901.7302-2-ville.syrjala@linux.intel.com> References: <20190430142901.7302-1-ville.syrjala@linux.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 E0AC2891EB for ; Tue, 30 Apr 2019 14:29:07 +0000 (UTC) In-Reply-To: <20190430142901.7302-1-ville.syrjala@linux.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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCnMv cGlwZS90cmFuc2NvZGVyLyB3aGVuIGRlYWxpbmcgd2l0aCBoc3crIGF1ZGlvIHJlZ2lzdGVycy4g VGhpcwp3b24ndCBhY3R1YWxseSBtYWtlIGFueSByZWFsIGRpZmZlcmVuY2Ugc2luY2UgdGhlcmUg aXMgbm8gYXVkaW8Kb24gdGhlIEVEUCB0cmFuc2NvZGVyLiBCdXQgdGhpcyBzaG91bGQgYXZvaWQg YSBiaXQgb2YgY29uZnVzaW9uCndoZW4gY3Jvc3MgY2hlY2tpbmcgYWdhaW5zdCB0aGUgc3BlYy4K ClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICB8IDEyICsrKy0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgfCA1NSArKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMzUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggNmYwYTA4NjZjODAyLi45 MjZlMDU4ZDA5ZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaApAQCAtOTAxMCwzMiArOTAxMCwz MiBAQCBlbnVtIHsKIC8qIEhTVyBBdWRpbyAqLwogI2RlZmluZSBfSFNXX0FVRF9DT05GSUdfQQkJ MHg2NTAwMAogI2RlZmluZSBfSFNXX0FVRF9DT05GSUdfQgkJMHg2NTEwMAotI2RlZmluZSBIU1df QVVEX0NGRyhwaXBlKQkJX01NSU9fUElQRShwaXBlLCBfSFNXX0FVRF9DT05GSUdfQSwgX0hTV19B VURfQ09ORklHX0IpCisjZGVmaW5lIEhTV19BVURfQ0ZHKHRyYW5zKQkJX01NSU9fVFJBTlModHJh bnMsIF9IU1dfQVVEX0NPTkZJR19BLCBfSFNXX0FVRF9DT05GSUdfQikKIAogI2RlZmluZSBfSFNX X0FVRF9NSVNDX0NUUkxfQQkJMHg2NTAxMAogI2RlZmluZSBfSFNXX0FVRF9NSVNDX0NUUkxfQgkJ MHg2NTExMAotI2RlZmluZSBIU1dfQVVEX01JU0NfQ1RSTChwaXBlKQkJX01NSU9fUElQRShwaXBl LCBfSFNXX0FVRF9NSVNDX0NUUkxfQSwgX0hTV19BVURfTUlTQ19DVFJMX0IpCisjZGVmaW5lIEhT V19BVURfTUlTQ19DVFJMKHRyYW5zKQlfTU1JT19UUkFOUyh0cmFucywgX0hTV19BVURfTUlTQ19D VFJMX0EsIF9IU1dfQVVEX01JU0NfQ1RSTF9CKQogCiAjZGVmaW5lIF9IU1dfQVVEX01fQ1RTX0VO QUJMRV9BCQkweDY1MDI4CiAjZGVmaW5lIF9IU1dfQVVEX01fQ1RTX0VOQUJMRV9CCQkweDY1MTI4 Ci0jZGVmaW5lIEhTV19BVURfTV9DVFNfRU5BQkxFKHBpcGUpCV9NTUlPX1BJUEUocGlwZSwgX0hT V19BVURfTV9DVFNfRU5BQkxFX0EsIF9IU1dfQVVEX01fQ1RTX0VOQUJMRV9CKQorI2RlZmluZSBI U1dfQVVEX01fQ1RTX0VOQUJMRSh0cmFucykJX01NSU9fVFJBTlModHJhbnMsIF9IU1dfQVVEX01f Q1RTX0VOQUJMRV9BLCBfSFNXX0FVRF9NX0NUU19FTkFCTEVfQikKICNkZWZpbmUgICBBVURfTV9D VFNfTV9WQUxVRV9JTkRFWAkoMSA8PCAyMSkKICNkZWZpbmUgICBBVURfTV9DVFNfTV9QUk9HX0VO QUJMRQkoMSA8PCAyMCkKICNkZWZpbmUgICBBVURfQ09ORklHX01fTUFTSwkJMHhmZmZmZgogCiAj ZGVmaW5lIF9IU1dfQVVEX0RJUF9FTERfQ1RSTF9TVF9BCTB4NjUwYjQKICNkZWZpbmUgX0hTV19B VURfRElQX0VMRF9DVFJMX1NUX0IJMHg2NTFiNAotI2RlZmluZSBIU1dfQVVEX0RJUF9FTERfQ1RS TChwaXBlKQlfTU1JT19QSVBFKHBpcGUsIF9IU1dfQVVEX0RJUF9FTERfQ1RSTF9TVF9BLCBfSFNX X0FVRF9ESVBfRUxEX0NUUkxfU1RfQikKKyNkZWZpbmUgSFNXX0FVRF9ESVBfRUxEX0NUUkwodHJh bnMpCV9NTUlPX1RSQU5TKHRyYW5zLCBfSFNXX0FVRF9ESVBfRUxEX0NUUkxfU1RfQSwgX0hTV19B VURfRElQX0VMRF9DVFJMX1NUX0IpCiAKIC8qIEF1ZGlvIERpZ2l0YWwgQ29udmVydGVyICovCiAj ZGVmaW5lIF9IU1dfQVVEX0RJR19DTlZUXzEJCTB4NjUwODAKICNkZWZpbmUgX0hTV19BVURfRElH X0NOVlRfMgkJMHg2NTE4MAotI2RlZmluZSBBVURfRElHX0NOVlQocGlwZSkJCV9NTUlPX1BJUEUo cGlwZSwgX0hTV19BVURfRElHX0NOVlRfMSwgX0hTV19BVURfRElHX0NOVlRfMikKKyNkZWZpbmUg QVVEX0RJR19DTlZUKHRyYW5zKQkJX01NSU9fVFJBTlModHJhbnMsIF9IU1dfQVVEX0RJR19DTlZU XzEsIF9IU1dfQVVEX0RJR19DTlZUXzIpCiAjZGVmaW5lIERJUF9QT1JUX1NFTF9NQVNLCQkweDMK IAogI2RlZmluZSBfSFNXX0FVRF9FRElEX0RBVEFfQQkJMHg2NTA1MAogI2RlZmluZSBfSFNXX0FV RF9FRElEX0RBVEFfQgkJMHg2NTE1MAotI2RlZmluZSBIU1dfQVVEX0VESURfREFUQShwaXBlKQkJ X01NSU9fUElQRShwaXBlLCBfSFNXX0FVRF9FRElEX0RBVEFfQSwgX0hTV19BVURfRURJRF9EQVRB X0IpCisjZGVmaW5lIEhTV19BVURfRURJRF9EQVRBKHRyYW5zKQlfTU1JT19UUkFOUyh0cmFucywg X0hTV19BVURfRURJRF9EQVRBX0EsIF9IU1dfQVVEX0VESURfREFUQV9CKQogCiAjZGVmaW5lIEhT V19BVURfUElQRV9DT05WX0NGRwkJX01NSU8oMHg2NTA3YykKICNkZWZpbmUgSFNXX0FVRF9QSU5f RUxEX0NQX1ZMRAkJX01NSU8oMHg2NTBjMCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F1ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCmlu ZGV4IDY4YTI0ZGFkYTQ0Yy4uNWMwYjczZjYzODQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9hdWRpby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1 ZGlvLmMKQEAgLTMxOSw5ICszMTksOCBAQCBoc3dfZHBfYXVkaW9fY29uZmlnX3VwZGF0ZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaTkxNV9hdWRp b19jb21wb25lbnQgKmFjb21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsKLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK KwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNj b2RlcjsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Ci0JZW51bSBwaXBlIHBpcGUg PSBjcnRjLT5waXBlOwogCWNvbnN0IHN0cnVjdCBkcF9hdWRfbl9tICpubTsKIAlpbnQgcmF0ZTsK IAl1MzIgdG1wOwpAQCAtMzMzLDcgKzMzMiw3IEBAIGhzd19kcF9hdWRpb19jb25maWdfdXBkYXRl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWVsc2UKIAkJRFJNX0RFQlVHX0tNUygi dXNpbmcgYXV0b21hdGljIE1hdWQsIE5hdWRcbiIpOwogCi0JdG1wID0gSTkxNV9SRUFEKEhTV19B VURfQ0ZHKHBpcGUpKTsKKwl0bXAgPSBJOTE1X1JFQUQoSFNXX0FVRF9DRkcoY3B1X3RyYW5zY29k ZXIpKTsKIAl0bXAgJj0gfkFVRF9DT05GSUdfTl9WQUxVRV9JTkRFWDsKIAl0bXAgJj0gfkFVRF9D T05GSUdfUElYRUxfQ0xPQ0tfSERNSV9NQVNLOwogCXRtcCAmPSB+QVVEX0NPTkZJR19OX1BST0df RU5BQkxFOwpAQCAtMzQ1LDkgKzM0NCw5IEBAIGhzd19kcF9hdWRpb19jb25maWdfdXBkYXRlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQl0bXAgfD0gQVVEX0NPTkZJR19OX1BST0df RU5BQkxFOwogCX0KIAotCUk5MTVfV1JJVEUoSFNXX0FVRF9DRkcocGlwZSksIHRtcCk7CisJSTkx NV9XUklURShIU1dfQVVEX0NGRyhjcHVfdHJhbnNjb2RlciksIHRtcCk7CiAKLQl0bXAgPSBJOTE1 X1JFQUQoSFNXX0FVRF9NX0NUU19FTkFCTEUocGlwZSkpOworCXRtcCA9IEk5MTVfUkVBRChIU1df QVVEX01fQ1RTX0VOQUJMRShjcHVfdHJhbnNjb2RlcikpOwogCXRtcCAmPSB+QVVEX0NPTkZJR19N X01BU0s7CiAJdG1wICY9IH5BVURfTV9DVFNfTV9WQUxVRV9JTkRFWDsKIAl0bXAgJj0gfkFVRF9N X0NUU19NX1BST0dfRU5BQkxFOwpAQCAtMzU4LDcgKzM1Nyw3IEBAIGhzd19kcF9hdWRpb19jb25m aWdfdXBkYXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQl0bXAgfD0gQVVEX01f Q1RTX01fUFJPR19FTkFCTEU7CiAJfQogCi0JSTkxNV9XUklURShIU1dfQVVEX01fQ1RTX0VOQUJM RShwaXBlKSwgdG1wKTsKKwlJOTE1X1dSSVRFKEhTV19BVURfTV9DVFNfRU5BQkxFKGNwdV90cmFu c2NvZGVyKSwgdG1wKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTM2NywxNSArMzY2LDE0IEBAIGhz d19oZG1pX2F1ZGlvX2NvbmZpZ191cGRhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVy LT5iYXNlLmRldik7CiAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9w cml2LT5hdWRpb19jb21wb25lbnQ7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFu c2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CiAJZW51bSBwb3J0IHBvcnQgPSBl bmNvZGVyLT5wb3J0OwotCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAlpbnQgbiwgcmF0 ZTsKIAl1MzIgdG1wOwogCiAJcmF0ZSA9IGFjb21wID8gYWNvbXAtPmF1ZF9zYW1wbGVfcmF0ZVtw b3J0XSA6IDA7CiAKLQl0bXAgPSBJOTE1X1JFQUQoSFNXX0FVRF9DRkcocGlwZSkpOworCXRtcCA9 IEk5MTVfUkVBRChIU1dfQVVEX0NGRyhjcHVfdHJhbnNjb2RlcikpOwogCXRtcCAmPSB+QVVEX0NP TkZJR19OX1ZBTFVFX0lOREVYOwogCXRtcCAmPSB+QVVEX0NPTkZJR19QSVhFTF9DTE9DS19IRE1J X01BU0s7CiAJdG1wICY9IH5BVURfQ09ORklHX05fUFJPR19FTkFCTEU7CkBAIC0zOTIsMTYgKzM5 MCwxNiBAQCBoc3dfaGRtaV9hdWRpb19jb25maWdfdXBkYXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogCQlEUk1fREVCVUdfS01TKCJ1c2luZyBhdXRvbWF0aWMgTlxuIik7CiAJfQog Ci0JSTkxNV9XUklURShIU1dfQVVEX0NGRyhwaXBlKSwgdG1wKTsKKwlJOTE1X1dSSVRFKEhTV19B VURfQ0ZHKGNwdV90cmFuc2NvZGVyKSwgdG1wKTsKIAogCS8qCiAJICogTGV0J3MgZGlzYWJsZSAi RW5hYmxlIENUUyBvciBNIFByb2cgYml0IgogCSAqIGFuZCBsZXQgSFcgY2FsY3VsYXRlIHRoZSB2 YWx1ZQogCSAqLwotCXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX01fQ1RTX0VOQUJMRShwaXBlKSk7 CisJdG1wID0gSTkxNV9SRUFEKEhTV19BVURfTV9DVFNfRU5BQkxFKGNwdV90cmFuc2NvZGVyKSk7 CiAJdG1wICY9IH5BVURfTV9DVFNfTV9QUk9HX0VOQUJMRTsKIAl0bXAgJj0gfkFVRF9NX0NUU19N X1ZBTFVFX0lOREVYOwotCUk5MTVfV1JJVEUoSFNXX0FVRF9NX0NUU19FTkFCTEUocGlwZSksIHRt cCk7CisJSTkxNV9XUklURShIU1dfQVVEX01fQ1RTX0VOQUJMRShjcHVfdHJhbnNjb2RlciksIHRt cCk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC00MTksMjggKzQxNywyOCBAQCBzdGF0aWMgdm9pZCBo c3dfYXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJ CQkgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRf Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKLQllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CisJ ZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gb2xkX2NydGNfc3RhdGUtPmNwdV90cmFu c2NvZGVyOwogCXUzMiB0bXA7CiAKLQlEUk1fREVCVUdfS01TKCJEaXNhYmxlIGF1ZGlvIGNvZGVj IG9uIHBpcGUgJWNcbiIsIHBpcGVfbmFtZShwaXBlKSk7CisJRFJNX0RFQlVHX0tNUygiRGlzYWJs ZSBhdWRpbyBjb2RlYyBvbiB0cmFuc2NvZGVyICVzXG4iLAorCQkgICAgICB0cmFuc2NvZGVyX25h bWUoY3B1X3RyYW5zY29kZXIpKTsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7 CiAKIAkvKiBEaXNhYmxlIHRpbWVzdGFtcHMgKi8KLQl0bXAgPSBJOTE1X1JFQUQoSFNXX0FVRF9D RkcocGlwZSkpOworCXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX0NGRyhjcHVfdHJhbnNjb2Rlcikp OwogCXRtcCAmPSB+QVVEX0NPTkZJR19OX1ZBTFVFX0lOREVYOwogCXRtcCB8PSBBVURfQ09ORklH X05fUFJPR19FTkFCTEU7CiAJdG1wICY9IH5BVURfQ09ORklHX1VQUEVSX05fTUFTSzsKIAl0bXAg Jj0gfkFVRF9DT05GSUdfTE9XRVJfTl9NQVNLOwogCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNv ZGVyKG9sZF9jcnRjX3N0YXRlKSkKIAkJdG1wIHw9IEFVRF9DT05GSUdfTl9WQUxVRV9JTkRFWDsK LQlJOTE1X1dSSVRFKEhTV19BVURfQ0ZHKHBpcGUpLCB0bXApOworCUk5MTVfV1JJVEUoSFNXX0FV RF9DRkcoY3B1X3RyYW5zY29kZXIpLCB0bXApOwogCiAJLyogSW52YWxpZGF0ZSBFTEQgKi8KIAl0 bXAgPSBJOTE1X1JFQUQoSFNXX0FVRF9QSU5fRUxEX0NQX1ZMRCk7Ci0JdG1wICY9IH5BVURJT19F TERfVkFMSUQocGlwZSk7Ci0JdG1wICY9IH5BVURJT19PVVRQVVRfRU5BQkxFKHBpcGUpOworCXRt cCAmPSB+QVVESU9fRUxEX1ZBTElEKGNwdV90cmFuc2NvZGVyKTsKKwl0bXAgJj0gfkFVRElPX09V VFBVVF9FTkFCTEUoY3B1X3RyYW5zY29kZXIpOwogCUk5MTVfV1JJVEUoSFNXX0FVRF9QSU5fRUxE X0NQX1ZMRCwgdG1wKTsKIAogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKQEAg LTQ1MSwyMiArNDQ5LDIxIEBAIHN0YXRpYyB2b2lkIGhzd19hdWRpb19jb2RlY19lbmFibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAgY29uc3Qgc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CiAJc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGNvbm5fc3RhdGUtPmNvbm5lY3RvcjsKLQllbnVtIHBp cGUgcGlwZSA9IGNydGMtPnBpcGU7CisJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0g Y3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CiAJY29uc3QgdTggKmVsZCA9IGNvbm5lY3Rvci0+ ZWxkOwogCXUzMiB0bXA7CiAJaW50IGxlbiwgaTsKIAotCURSTV9ERUJVR19LTVMoIkVuYWJsZSBh dWRpbyBjb2RlYyBvbiBwaXBlICVjLCAldSBieXRlcyBFTERcbiIsCi0JCSAgICAgIHBpcGVfbmFt ZShwaXBlKSwgZHJtX2VsZF9zaXplKGVsZCkpOworCURSTV9ERUJVR19LTVMoIkVuYWJsZSBhdWRp byBjb2RlYyBvbiB0cmFuc2NvZGVyICVzLCAldSBieXRlcyBFTERcbiIsCisJCSAgICAgIHRyYW5z Y29kZXJfbmFtZShjcHVfdHJhbnNjb2RlciksIGRybV9lbGRfc2l6ZShlbGQpKTsKIAogCW11dGV4 X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7CiAKIAkvKiBFbmFibGUgYXVkaW8gcHJlc2VuY2Ug ZGV0ZWN0LCBpbnZhbGlkYXRlIEVMRCAqLwogCXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX1BJTl9F TERfQ1BfVkxEKTsKLQl0bXAgfD0gQVVESU9fT1VUUFVUX0VOQUJMRShwaXBlKTsKLQl0bXAgJj0g fkFVRElPX0VMRF9WQUxJRChwaXBlKTsKKwl0bXAgfD0gQVVESU9fT1VUUFVUX0VOQUJMRShjcHVf dHJhbnNjb2Rlcik7CisJdG1wICY9IH5BVURJT19FTERfVkFMSUQoY3B1X3RyYW5zY29kZXIpOwog CUk5MTVfV1JJVEUoSFNXX0FVRF9QSU5fRUxEX0NQX1ZMRCwgdG1wKTsKIAogCS8qCkBAIC00Nzcs MTggKzQ3NCwxOCBAQCBzdGF0aWMgdm9pZCBoc3dfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCSAqLwogCiAJLyogUmVzZXQgRUxEIHdyaXRlIGFkZHJl c3MgKi8KLQl0bXAgPSBJOTE1X1JFQUQoSFNXX0FVRF9ESVBfRUxEX0NUUkwocGlwZSkpOworCXRt cCA9IEk5MTVfUkVBRChIU1dfQVVEX0RJUF9FTERfQ1RSTChjcHVfdHJhbnNjb2RlcikpOwogCXRt cCAmPSB+SUJYX0VMRF9BRERSRVNTX01BU0s7Ci0JSTkxNV9XUklURShIU1dfQVVEX0RJUF9FTERf Q1RSTChwaXBlKSwgdG1wKTsKKwlJOTE1X1dSSVRFKEhTV19BVURfRElQX0VMRF9DVFJMKGNwdV90 cmFuc2NvZGVyKSwgdG1wKTsKIAogCS8qIFVwIHRvIDg0IGJ5dGVzIG9mIGh3IEVMRCBidWZmZXIg Ki8KIAlsZW4gPSBtaW4oZHJtX2VsZF9zaXplKGVsZCksIDg0KTsKIAlmb3IgKGkgPSAwOyBpIDwg bGVuIC8gNDsgaSsrKQotCQlJOTE1X1dSSVRFKEhTV19BVURfRURJRF9EQVRBKHBpcGUpLCAqKChj b25zdCB1MzIgKillbGQgKyBpKSk7CisJCUk5MTVfV1JJVEUoSFNXX0FVRF9FRElEX0RBVEEoY3B1 X3RyYW5zY29kZXIpLCAqKChjb25zdCB1MzIgKillbGQgKyBpKSk7CiAKIAkvKiBFTEQgdmFsaWQg Ki8KIAl0bXAgPSBJOTE1X1JFQUQoSFNXX0FVRF9QSU5fRUxEX0NQX1ZMRCk7Ci0JdG1wIHw9IEFV RElPX0VMRF9WQUxJRChwaXBlKTsKKwl0bXAgfD0gQVVESU9fRUxEX1ZBTElEKGNwdV90cmFuc2Nv ZGVyKTsKIAlJOTE1X1dSSVRFKEhTV19BVURfUElOX0VMRF9DUF9WTEQsIHRtcCk7CiAKIAkvKiBF bmFibGUgdGltZXN0YW1wcyAqLwotLSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZng=