From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH v5 2/8] drm/i915: Use literal representation of cdclk tables Date: Tue, 10 Sep 2019 09:15:06 -0700 Message-ID: <20190910161506.7158-1-matthew.d.roper@intel.com> References: <20190910160645.GU7482@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7F5A76E92A for ; Tue, 10 Sep 2019 16:15:11 +0000 (UTC) In-Reply-To: <20190910160645.GU7482@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 VGhlIGJzcGVjIGxheXMgb3V0IGxlZ2FsIGNkY2xrIGZyZXF1ZW5jaWVzLCBQTEwgcmF0aW9zLCBh bmQgQ0QyWApkaXZpZGVycyBpbiBhbiBlYXN5LXRvLXJlYWQgdGFibGUgZm9yIG1vc3QgcmVjZW50 IHBsYXRmb3Jtcy4gIFdlJ3ZlIGJlZW4KdHJhbnNsYXRpbmcgdGhlIGRhdGEgZnJvbSB0aGF0IHRh YmxlIGludG8gcGxhdGZvcm0tc3BlY2lmaWMgY29kZSBsb2dpYywKYnV0IGl0J3MgZWFzeSB0byBv dmVybG9vayBhbiBhcmVhIHdlIG5lZWQgdG8gdXBkYXRlIHdoZW4gYWRkaW5nIG5ldwpjZGNsayB2 YWx1ZXMgb3IgZW5hYmxpbmcgbmV3IHBsYXRmb3Jtcy4gIExldCdzIGp1c3QgYWRkIGEgZm9ybSBv ZiB0aGUKYnNwZWMgdGFibGUgdG8gdGhlIGNvZGUgYW5kIHRoZW4gYWRqdXN0IG91ciBmdW5jdGlv bnMgdG8gcHVsbCB3aGF0IHRoZXkKbmVlZCBkaXJlY3RseSBvdXQgb2YgdGhlIHRhYmxlLgoKdjI6 IEZpeCBjb21wYXJpc29uIHdoZW4gZmluZGluZyBiZXN0IGNkY2xrLgoKdjM6IEFub3RoZXIgbG9n aWMgZml4IGZvciBjYWxjX2NkY2xrLgoKdjQ6CiAtIFVzZSBuYW1lZCBpbml0aWFsaXplcnMgZm9y IGNkY2xrIHRhYmxlcy4gKFZpbGxlKQogLSBJbmNsdWRlIHJlZmNsayBhcyBhIGZpZWxkIGluIHRo ZSB0YWJsZSBpbnN0ZWFkIG9mIGFkZGluZyBhbGwgdGhyZWUKICAgcmF0aW9zIGZvciBlYWNoIGVu dHJ5LiAoVmlsbGUpCiAtIFRlcm1pbmF0ZSB0YWJsZXMgd2l0aCBhbiBlbXB0eSBlbnRyeSB0byBh dm9pZCBuZWVkaW5nIHRvIHN0b3JlIHRoZQogICB0YWJsZSBzaXplLiAoVmlsbGUpCiAtIERvbid0 IHRyeSBzbyBoYXJkIHRvIHJldHVybiByZWFzb25hYmxlIHZhbHVlcyBmcm9tIG91ciBsb29rdXAK ICAgZnVuY3Rpb25zIGlmIHdlIGdldCBpbXBvc3NpYmxlIGlucHV0czsganVzdCBXQVJOIGFuZCBy ZXR1cm4gMC4KICAgKFZpbGxlKQogLSBLZWVwIGEgYnh0XyBwcmVmaXggb24gdGhlIGxvb2t1cCBm dW5jdGlvbnMgc2luY2UgdGhleSdyZSBzdGlsbCBvbmx5CiAgIHVzZWQgb24gYnh0KyBmb3Igbm93 LiAgV2UgY2FuIHJlbmFtZSB0aGVtIGxhdGVyIGlmIHdlIGV4dGVuZCB0aGlzCiAgIHRhYmxlLWJh c2VkIGFwcHJvYWNoIGJhY2sgdG8gb2xkZXIgcGxhdGZvcm1zLiAgKFZpbGxlKQoKdjU6CiAtIEZp eCBjbmwgdGFibGUncyByYXRpb3MgZm9yIDI0bWh6IHJlZmNsay4gKFZpbGxlKQogLSBEb24ndCBt aXNzIHRoZSBuYW1lZCBpbml0aWFsaXplcnMgb24gdGhlIGNubCB0YWJsZS4gKFZpbGxlKQogLSBS ZXByZXNlbnQgcmVmY2xrIGluIHRhYmxlIGFzIHUxNiByYXRoZXIgdGhhbiB1MzIuIChWaWxsZSkK CkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgpSZXZpZXdl ZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMgfCAzMDMgKysrKysr Ky0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xr LmggfCAgIDcgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgIHwg ICAzICsKIDMgZmlsZXMgY2hhbmdlZCwgMTEwIGluc2VydGlvbnMoKyksIDIwMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xr LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMKaW5kZXggZGZj YjFjYzU4OTUxLi5mMzQzMWI1MzA5NjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2NkY2xrLmMKQEAgLTExNjEsMjggKzExNjEsODggQEAgc3RhdGljIHZvaWQgc2tsX3Vu aW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc2tsX3NldF9j ZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlLCBJTlZBTElEX1BJUEUpOwogfQogCi1zdGF0aWMg aW50IGJ4dF9jYWxjX2NkY2xrKGludCBtaW5fY2RjbGspCi17Ci0JaWYgKG1pbl9jZGNsayA+IDU3 NjAwMCkKLQkJcmV0dXJuIDYyNDAwMDsKLQllbHNlIGlmIChtaW5fY2RjbGsgPiAzODQwMDApCi0J CXJldHVybiA1NzYwMDA7Ci0JZWxzZSBpZiAobWluX2NkY2xrID4gMjg4MDAwKQotCQlyZXR1cm4g Mzg0MDAwOwotCWVsc2UgaWYgKG1pbl9jZGNsayA+IDE0NDAwMCkKLQkJcmV0dXJuIDI4ODAwMDsK LQllbHNlCi0JCXJldHVybiAxNDQwMDA7CitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2NkY2xr X3ZhbHMgYnh0X2NkY2xrX3RhYmxlW10gPSB7CisJeyAucmVmY2xrID0gMTkyMDAsIC5jZGNsayA9 IDE0NDAwMCwgLmRpdmlkZXIgPSA4LCAucmF0aW8gPSA2MCB9LAorCXsgLnJlZmNsayA9IDE5MjAw LCAuY2RjbGsgPSAyODgwMDAsIC5kaXZpZGVyID0gNCwgLnJhdGlvID0gNjAgfSwKKwl7IC5yZWZj bGsgPSAxOTIwMCwgLmNkY2xrID0gMzg0MDAwLCAuZGl2aWRlciA9IDMsIC5yYXRpbyA9IDYwIH0s CisJeyAucmVmY2xrID0gMTkyMDAsIC5jZGNsayA9IDU3NjAwMCwgLmRpdmlkZXIgPSAyLCAucmF0 aW8gPSA2MCB9LAorCXsgLnJlZmNsayA9IDE5MjAwLCAuY2RjbGsgPSA2MjQwMDAsIC5kaXZpZGVy ID0gMiwgLnJhdGlvID0gNjUgfSwKKwl7fQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRl bF9jZGNsa192YWxzIGdsa19jZGNsa190YWJsZVtdID0geworCXsgLnJlZmNsayA9IDE5MjAwLCAu Y2RjbGsgPSAgNzkyMDAsIC5kaXZpZGVyID0gOCwgLnJhdGlvID0gMzMgfSwKKwl7IC5yZWZjbGsg PSAxOTIwMCwgLmNkY2xrID0gMTU4NDAwLCAuZGl2aWRlciA9IDQsIC5yYXRpbyA9IDMzIH0sCisJ eyAucmVmY2xrID0gMTkyMDAsIC5jZGNsayA9IDMxNjgwMCwgLmRpdmlkZXIgPSAyLCAucmF0aW8g PSAzMyB9LAorCXt9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3ZhbHMg Y25sX2NkY2xrX3RhYmxlW10gPSB7CisJeyAucmVmY2xrID0gMTkyMDAsIC5jZGNsayA9IDE2ODAw MCwgLmRpdmlkZXIgPSA0LCAucmF0aW8gPSAzNSB9LAorCXsgLnJlZmNsayA9IDE5MjAwLCAuY2Rj bGsgPSAzMzYwMDAsIC5kaXZpZGVyID0gMiwgLnJhdGlvID0gMzUgfSwKKwl7IC5yZWZjbGsgPSAx OTIwMCwgLmNkY2xrID0gNTI4MDAwLCAuZGl2aWRlciA9IDIsIC5yYXRpbyA9IDU1IH0sCisKKwl7 IC5yZWZjbGsgPSAyNDAwMCwgLmNkY2xrID0gMTY4MDAwLCAuZGl2aWRlciA9IDQsIC5yYXRpbyA9 IDI4IH0sCisJeyAucmVmY2xrID0gMjQwMDAsIC5jZGNsayA9IDMzNjAwMCwgLmRpdmlkZXIgPSAy LCAucmF0aW8gPSAyOCB9LAorCXsgLnJlZmNsayA9IDI0MDAwLCAuY2RjbGsgPSA1MjgwMDAsIC5k aXZpZGVyID0gMiwgLnJhdGlvID0gNDQgfSwKKwl7fQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVj dCBpbnRlbF9jZGNsa192YWxzIGljbF9jZGNsa190YWJsZVtdID0geworCXsgLnJlZmNsayA9IDE5 MjAwLCAuY2RjbGsgPSAxNzI4MDAsIC5kaXZpZGVyID0gMiwgLnJhdGlvID0gMTggfSwKKwl7IC5y ZWZjbGsgPSAxOTIwMCwgLmNkY2xrID0gMTkyMDAwLCAuZGl2aWRlciA9IDIsIC5yYXRpbyA9IDIw IH0sCisJeyAucmVmY2xrID0gMTkyMDAsIC5jZGNsayA9IDMwNzIwMCwgLmRpdmlkZXIgPSAyLCAu cmF0aW8gPSAzMiB9LAorCXsgLnJlZmNsayA9IDE5MjAwLCAuY2RjbGsgPSAzMjY0MDAsIC5kaXZp ZGVyID0gNCwgLnJhdGlvID0gNjggfSwKKwl7IC5yZWZjbGsgPSAxOTIwMCwgLmNkY2xrID0gNTU2 ODAwLCAuZGl2aWRlciA9IDIsIC5yYXRpbyA9IDU4IH0sCisJeyAucmVmY2xrID0gMTkyMDAsIC5j ZGNsayA9IDY1MjgwMCwgLmRpdmlkZXIgPSAyLCAucmF0aW8gPSA2OCB9LAorCisJeyAucmVmY2xr ID0gMjQwMDAsIC5jZGNsayA9IDE4MDAwMCwgLmRpdmlkZXIgPSAyLCAucmF0aW8gPSAxNSB9LAor CXsgLnJlZmNsayA9IDI0MDAwLCAuY2RjbGsgPSAxOTIwMDAsIC5kaXZpZGVyID0gMiwgLnJhdGlv ID0gMTYgfSwKKwl7IC5yZWZjbGsgPSAyNDAwMCwgLmNkY2xrID0gMzEyMDAwLCAuZGl2aWRlciA9 IDIsIC5yYXRpbyA9IDI2IH0sCisJeyAucmVmY2xrID0gMjQwMDAsIC5jZGNsayA9IDMyNDAwMCwg LmRpdmlkZXIgPSA0LCAucmF0aW8gPSA1NCB9LAorCXsgLnJlZmNsayA9IDI0MDAwLCAuY2RjbGsg PSA1NTIwMDAsIC5kaXZpZGVyID0gMiwgLnJhdGlvID0gNDYgfSwKKwl7IC5yZWZjbGsgPSAyNDAw MCwgLmNkY2xrID0gNjQ4MDAwLCAuZGl2aWRlciA9IDIsIC5yYXRpbyA9IDU0IH0sCisKKwl7IC5y ZWZjbGsgPSAzODQwMCwgLmNkY2xrID0gMTcyODAwLCAuZGl2aWRlciA9IDIsIC5yYXRpbyA9ICA5 IH0sCisJeyAucmVmY2xrID0gMzg0MDAsIC5jZGNsayA9IDE5MjAwMCwgLmRpdmlkZXIgPSAyLCAu cmF0aW8gPSAxMCB9LAorCXsgLnJlZmNsayA9IDM4NDAwLCAuY2RjbGsgPSAzMDcyMDAsIC5kaXZp ZGVyID0gMiwgLnJhdGlvID0gMTYgfSwKKwl7IC5yZWZjbGsgPSAzODQwMCwgLmNkY2xrID0gMzI2 NDAwLCAuZGl2aWRlciA9IDQsIC5yYXRpbyA9IDM0IH0sCisJeyAucmVmY2xrID0gMzg0MDAsIC5j ZGNsayA9IDU1NjgwMCwgLmRpdmlkZXIgPSAyLCAucmF0aW8gPSAyOSB9LAorCXsgLnJlZmNsayA9 IDM4NDAwLCAuY2RjbGsgPSA2NTI4MDAsIC5kaXZpZGVyID0gMiwgLnJhdGlvID0gMzQgfSwKKwl7 fQorfTsKKworc3RhdGljIGludCBieHRfY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIGludCBtaW5fY2RjbGspCit7CisJY29uc3Qgc3RydWN0IGludGVsX2NkY2xr X3ZhbHMgKnRhYmxlID0gZGV2X3ByaXYtPmNkY2xrLnRhYmxlOworCWludCBpOworCisJZm9yIChp ID0gMDsgdGFibGVbaV0ucmVmY2xrOyBpKyspCisJCWlmICh0YWJsZVtpXS5yZWZjbGsgPT0gZGV2 X3ByaXYtPmNkY2xrLmh3LnJlZiAmJgorCQkgICAgdGFibGVbaV0uY2RjbGsgPj0gbWluX2NkY2xr KQorCQkJcmV0dXJuIHRhYmxlW2ldLmNkY2xrOworCisJV0FSTigxLCAiQ2Fubm90IHNhdGlzZnkg bWluaW11bSBjZGNsayAlZCB3aXRoIHJlZmNsayAldVxuIiwKKwkgICAgIG1pbl9jZGNsaywgZGV2 X3ByaXYtPmNkY2xrLmh3LnJlZik7CisJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZ2xrX2Nh bGNfY2RjbGsoaW50IG1pbl9jZGNsaykKK3N0YXRpYyBpbnQgYnh0X2NhbGNfY2RjbGtfcGxsX3Zj byhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBjZGNsaykKIHsKLQlpZiAo bWluX2NkY2xrID4gMTU4NDAwKQotCQlyZXR1cm4gMzE2ODAwOwotCWVsc2UgaWYgKG1pbl9jZGNs ayA+IDc5MjAwKQotCQlyZXR1cm4gMTU4NDAwOwotCWVsc2UKLQkJcmV0dXJuIDc5MjAwOworCWNv bnN0IHN0cnVjdCBpbnRlbF9jZGNsa192YWxzICp0YWJsZSA9IGRldl9wcml2LT5jZGNsay50YWJs ZTsKKwlpbnQgaTsKKworCWlmIChjZGNsayA9PSBkZXZfcHJpdi0+Y2RjbGsuaHcuYnlwYXNzKQor CQlyZXR1cm4gMDsKKworCWZvciAoaSA9IDA7IHRhYmxlW2ldLnJlZmNsazsgaSsrKQorCQlpZiAo dGFibGVbaV0ucmVmY2xrID09IGRldl9wcml2LT5jZGNsay5ody5yZWYgJiYKKwkJICAgIHRhYmxl W2ldLmNkY2xrID09IGNkY2xrKQorCQkJcmV0dXJuIGRldl9wcml2LT5jZGNsay5ody5yZWYgKiB0 YWJsZVtpXS5yYXRpbzsKKworCVdBUk4oMSwgImNkY2xrICVkIG5vdCB2YWxpZCBmb3IgcmVmY2xr ICV1XG4iLAorCSAgICAgY2RjbGssIGRldl9wcml2LT5jZGNsay5ody5yZWYpOworCXJldHVybiAw OwogfQogCiBzdGF0aWMgdTggYnh0X2NhbGNfdm9sdGFnZV9sZXZlbChpbnQgY2RjbGspCkBAIC0x MjIwLDUyICsxMjgwLDYgQEAgc3RhdGljIHU4IGVobF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoaW50IGNk Y2xrKQogCQlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBieHRfZGVfcGxsX3ZjbyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBjZGNsaykKLXsKLQlpbnQgcmF0aW87Ci0K LQlpZiAoY2RjbGsgPT0gZGV2X3ByaXYtPmNkY2xrLmh3LmJ5cGFzcykKLQkJcmV0dXJuIDA7Ci0K LQlzd2l0Y2ggKGNkY2xrKSB7Ci0JZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNFKGNkY2xrKTsKLQkJ LyogZmFsbCB0aHJvdWdoICovCi0JY2FzZSAxNDQwMDA6Ci0JY2FzZSAyODgwMDA6Ci0JY2FzZSAz ODQwMDA6Ci0JY2FzZSA1NzYwMDA6Ci0JCXJhdGlvID0gNjA7Ci0JCWJyZWFrOwotCWNhc2UgNjI0 MDAwOgotCQlyYXRpbyA9IDY1OwotCQlicmVhazsKLQl9Ci0KLQlyZXR1cm4gZGV2X3ByaXYtPmNk Y2xrLmh3LnJlZiAqIHJhdGlvOwotfQotCi1zdGF0aWMgaW50IGdsa19kZV9wbGxfdmNvKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IGNkY2xrKQotewotCWludCByYXRpbzsK LQotCWlmIChjZGNsayA9PSBkZXZfcHJpdi0+Y2RjbGsuaHcuYnlwYXNzKQotCQlyZXR1cm4gMDsK LQotCXN3aXRjaCAoY2RjbGspIHsKLQlkZWZhdWx0OgotCQlNSVNTSU5HX0NBU0UoY2RjbGspOwot CQkvKiBmYWxsIHRocm91Z2ggKi8KLQljYXNlICA3OTIwMDoKLQljYXNlIDE1ODQwMDoKLQljYXNl IDMxNjgwMDoKLQkJcmF0aW8gPSAzMzsKLQkJYnJlYWs7Ci0JfQotCi0JcmV0dXJuIGRldl9wcml2 LT5jZGNsay5ody5yZWYgKiByYXRpbzsKLX0KLQogc3RhdGljIHZvaWQgY25sX3JlYWRvdXRfcmVm Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgICBzdHJ1Y3Qg aW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQogewpAQCAtMTU3NiwxMyArMTU5MCw4IEBA IHN0YXRpYyB2b2lkIGJ4dF9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAkgKiAtIFRoZSBpbml0aWFsIENEQ0xLIG5lZWRzIHRvIGJlIHJlYWQgZnJvbSBWQlQu CiAJICogICBOZWVkIHRvIG1ha2UgdGhpcyBjaGFuZ2UgYWZ0ZXIgVkJUIGhhcyBjaGFuZ2VzIGZv ciBCWFQuCiAJICovCi0JaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Ci0JCWNkY2xrX3N0 YXRlLmNkY2xrID0gZ2xrX2NhbGNfY2RjbGsoMCk7Ci0JCWNkY2xrX3N0YXRlLnZjbyA9IGdsa19k ZV9wbGxfdmNvKGRldl9wcml2LCBjZGNsa19zdGF0ZS5jZGNsayk7Ci0JfSBlbHNlIHsKLQkJY2Rj bGtfc3RhdGUuY2RjbGsgPSBieHRfY2FsY19jZGNsaygwKTsKLQkJY2RjbGtfc3RhdGUudmNvID0g Ynh0X2RlX3BsbF92Y28oZGV2X3ByaXYsIGNkY2xrX3N0YXRlLmNkY2xrKTsKLQl9CisJY2RjbGtf c3RhdGUuY2RjbGsgPSBieHRfY2FsY19jZGNsayhkZXZfcHJpdiwgMCk7CisJY2RjbGtfc3RhdGUu dmNvID0gYnh0X2NhbGNfY2RjbGtfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGtfc3RhdGUuY2RjbGsp OwogCWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBieHRfY2FsY192b2x0YWdlX2xldmVsKGNk Y2xrX3N0YXRlLmNkY2xrKTsKIAogCWJ4dF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0 ZSwgSU5WQUxJRF9QSVBFKTsKQEAgLTE1OTksMTYgKzE2MDgsNiBAQCBzdGF0aWMgdm9pZCBieHRf dW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlieHRfc2V0 X2NkY2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUsIElOVkFMSURfUElQRSk7CiB9CiAKLXN0YXRp YyBpbnQgY25sX2NhbGNfY2RjbGsoaW50IG1pbl9jZGNsaykKLXsKLQlpZiAobWluX2NkY2xrID4g MzM2MDAwKQotCQlyZXR1cm4gNTI4MDAwOwotCWVsc2UgaWYgKG1pbl9jZGNsayA+IDE2ODAwMCkK LQkJcmV0dXJuIDMzNjAwMDsKLQllbHNlCi0JCXJldHVybiAxNjgwMDA7Ci19Ci0KIHN0YXRpYyB2 b2lkIGNubF9jZGNsa19wbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiB7CiAJdTMyIHZhbDsKQEAgLTE3MTgsMjkgKzE3MTcsNiBAQCBzdGF0aWMgdm9pZCBjbmxf c2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlkZXZfcHJpdi0+ Y2RjbGsuaHcudm9sdGFnZV9sZXZlbCA9IGNkY2xrX3N0YXRlLT52b2x0YWdlX2xldmVsOwogfQog Ci1zdGF0aWMgaW50IGNubF9jZGNsa19wbGxfdmNvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgaW50IGNkY2xrKQotewotCWludCByYXRpbzsKLQotCWlmIChjZGNsayA9PSBkZXZf cHJpdi0+Y2RjbGsuaHcuYnlwYXNzKQotCQlyZXR1cm4gMDsKLQotCXN3aXRjaCAoY2RjbGspIHsK LQlkZWZhdWx0OgotCQlNSVNTSU5HX0NBU0UoY2RjbGspOwotCQkvKiBmYWxsIHRocm91Z2ggKi8K LQljYXNlIDE2ODAwMDoKLQljYXNlIDMzNjAwMDoKLQkJcmF0aW8gPSBkZXZfcHJpdi0+Y2RjbGsu aHcucmVmID09IDE5MjAwID8gMzUgOiAyODsKLQkJYnJlYWs7Ci0JY2FzZSA1MjgwMDA6Ci0JCXJh dGlvID0gZGV2X3ByaXYtPmNkY2xrLmh3LnJlZiA9PSAxOTIwMCA/IDU1IDogNDQ7Ci0JCWJyZWFr OwotCX0KLQotCXJldHVybiBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmICogcmF0aW87Ci19Ci0KIHN0 YXRpYyB2b2lkIGNubF9zYW5pdGl6ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiB7CiAJdTMyIGNkY3RsLCBleHBlY3RlZDsKQEAgLTE3ODMsNzcgKzE3NTksNiBAQCBz dGF0aWMgdm9pZCBjbmxfc2FuaXRpemVfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCWRldl9wcml2LT5jZGNsay5ody52Y28gPSAtMTsKIH0KIAotc3RhdGljIGludCBp Y2xfY2FsY19jZGNsayhpbnQgbWluX2NkY2xrLCB1bnNpZ25lZCBpbnQgcmVmKQotewotCXN0YXRp YyBjb25zdCBpbnQgcmFuZ2VzXzI0W10gPSB7IDE4MDAwMCwgMTkyMDAwLCAzMTIwMDAsIDMyNDAw MCwKLQkJCQkJIDU1MjAwMCwgNjQ4MDAwIH07Ci0Jc3RhdGljIGNvbnN0IGludCByYW5nZXNfMTlf MzhbXSA9IHsgMTcyODAwLCAxOTIwMDAsIDMwNzIwMCwgMzI2NDAwLAotCQkJCQkgICAgNTU2ODAw LCA2NTI4MDAgfTsKLQljb25zdCBpbnQgKnJhbmdlczsKLQlpbnQgbGVuLCBpOwotCi0Jc3dpdGNo IChyZWYpIHsKLQlkZWZhdWx0OgotCQlNSVNTSU5HX0NBU0UocmVmKTsKLQkJLyogZmFsbCB0aHJv dWdoICovCi0JY2FzZSAyNDAwMDoKLQkJcmFuZ2VzID0gcmFuZ2VzXzI0OwotCQlsZW4gPSBBUlJB WV9TSVpFKHJhbmdlc18yNCk7Ci0JCWJyZWFrOwotCWNhc2UgMTkyMDA6Ci0JY2FzZSAzODQwMDoK LQkJcmFuZ2VzID0gcmFuZ2VzXzE5XzM4OwotCQlsZW4gPSBBUlJBWV9TSVpFKHJhbmdlc18xOV8z OCk7Ci0JCWJyZWFrOwotCX0KLQotCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewotCQlpZiAo bWluX2NkY2xrIDw9IHJhbmdlc1tpXSkKLQkJCXJldHVybiByYW5nZXNbaV07Ci0JfQotCi0JV0FS Tl9PTihtaW5fY2RjbGsgPiByYW5nZXNbbGVuIC0gMV0pOwotCXJldHVybiByYW5nZXNbbGVuIC0g MV07Ci19Ci0KLXN0YXRpYyBpbnQgaWNsX2NhbGNfY2RjbGtfcGxsX3ZjbyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBjZGNsaykKLXsKLQlpbnQgcmF0aW87Ci0KLQlpZiAo Y2RjbGsgPT0gZGV2X3ByaXYtPmNkY2xrLmh3LmJ5cGFzcykKLQkJcmV0dXJuIDA7Ci0KLQlzd2l0 Y2ggKGNkY2xrKSB7Ci0JZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNFKGNkY2xrKTsKLQkJLyogZmFs bCB0aHJvdWdoICovCi0JY2FzZSAxNzI4MDA6Ci0JY2FzZSAzMDcyMDA6Ci0JY2FzZSAzMjY0MDA6 Ci0JY2FzZSA1NTY4MDA6Ci0JY2FzZSA2NTI4MDA6Ci0JCVdBUk5fT04oZGV2X3ByaXYtPmNkY2xr Lmh3LnJlZiAhPSAxOTIwMCAmJgotCQkJZGV2X3ByaXYtPmNkY2xrLmh3LnJlZiAhPSAzODQwMCk7 Ci0JCWJyZWFrOwotCWNhc2UgMTgwMDAwOgotCWNhc2UgMzEyMDAwOgotCWNhc2UgMzI0MDAwOgot CWNhc2UgNTUyMDAwOgotCWNhc2UgNjQ4MDAwOgotCQlXQVJOX09OKGRldl9wcml2LT5jZGNsay5o dy5yZWYgIT0gMjQwMDApOwotCQlicmVhazsKLQljYXNlIDE5MjAwMDoKLQkJV0FSTl9PTihkZXZf cHJpdi0+Y2RjbGsuaHcucmVmICE9IDE5MjAwICYmCi0JCQlkZXZfcHJpdi0+Y2RjbGsuaHcucmVm ICE9IDM4NDAwICYmCi0JCQlkZXZfcHJpdi0+Y2RjbGsuaHcucmVmICE9IDI0MDAwKTsKLQkJYnJl YWs7Ci0JfQotCi0JcmF0aW8gPSBjZGNsayAvIChkZXZfcHJpdi0+Y2RjbGsuaHcucmVmIC8gMik7 Ci0KLQlyZXR1cm4gZGV2X3ByaXYtPmNkY2xrLmh3LnJlZiAqIHJhdGlvOwotfQotCiBzdGF0aWMg dm9pZCBpY2xfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7 CiAJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlIHNhbml0aXplZF9zdGF0ZTsKQEAgLTE4ODIsOCAr MTc4Nyw4IEBAIHN0YXRpYyB2b2lkIGljbF9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAlEUk1fREVCVUdfS01TKCJTYW5pdGl6aW5nIGNkY2xrIHByb2dyYW1t ZWQgYnkgcHJlLW9zXG4iKTsKIAogCXNhbml0aXplZF9zdGF0ZS5yZWYgPSBkZXZfcHJpdi0+Y2Rj bGsuaHcucmVmOwotCXNhbml0aXplZF9zdGF0ZS5jZGNsayA9IGljbF9jYWxjX2NkY2xrKDAsIHNh bml0aXplZF9zdGF0ZS5yZWYpOwotCXNhbml0aXplZF9zdGF0ZS52Y28gPSBpY2xfY2FsY19jZGNs a19wbGxfdmNvKGRldl9wcml2LAorCXNhbml0aXplZF9zdGF0ZS5jZGNsayA9IGJ4dF9jYWxjX2Nk Y2xrKGRldl9wcml2LCAwKTsKKwlzYW5pdGl6ZWRfc3RhdGUudmNvID0gYnh0X2NhbGNfY2RjbGtf cGxsX3ZjbyhkZXZfcHJpdiwKIAkJCQkJCSAgICAgc2FuaXRpemVkX3N0YXRlLmNkY2xrKTsKIAlp ZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpKQogCQlzYW5pdGl6ZWRfc3RhdGUudm9sdGFnZV9s ZXZlbCA9CkBAIC0xOTIzLDggKzE4MjgsOCBAQCBzdGF0aWMgdm9pZCBjbmxfaW5pdF9jZGNsayhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAljZGNsa19zdGF0ZSA9IGRldl9w cml2LT5jZGNsay5odzsKIAotCWNkY2xrX3N0YXRlLmNkY2xrID0gY25sX2NhbGNfY2RjbGsoMCk7 Ci0JY2RjbGtfc3RhdGUudmNvID0gY25sX2NkY2xrX3BsbF92Y28oZGV2X3ByaXYsIGNkY2xrX3N0 YXRlLmNkY2xrKTsKKwljZGNsa19zdGF0ZS5jZGNsayA9IGJ4dF9jYWxjX2NkY2xrKGRldl9wcml2 LCAwKTsKKwljZGNsa19zdGF0ZS52Y28gPSBieHRfY2FsY19jZGNsa19wbGxfdmNvKGRldl9wcml2 LCBjZGNsa19zdGF0ZS5jZGNsayk7CiAJY2RjbGtfc3RhdGUudm9sdGFnZV9sZXZlbCA9IGNubF9j YWxjX3ZvbHRhZ2VfbGV2ZWwoY2RjbGtfc3RhdGUuY2RjbGspOwogCiAJY25sX3NldF9jZGNsayhk ZXZfcHJpdiwgJmNkY2xrX3N0YXRlLCBJTlZBTElEX1BJUEUpOwpAQCAtMjQyNiwxMyArMjMzMSw4 IEBAIHN0YXRpYyBpbnQgYnh0X21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSkKIAlpZiAobWluX2NkY2xrIDwgMCkKIAkJcmV0dXJuIG1pbl9jZGNsazsK IAotCWlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewotCQljZGNsayA9IGdsa19jYWxjX2Nk Y2xrKG1pbl9jZGNsayk7Ci0JCXZjbyA9IGdsa19kZV9wbGxfdmNvKGRldl9wcml2LCBjZGNsayk7 Ci0JfSBlbHNlIHsKLQkJY2RjbGsgPSBieHRfY2FsY19jZGNsayhtaW5fY2RjbGspOwotCQl2Y28g PSBieHRfZGVfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOwotCX0KKwljZGNsayA9IGJ4dF9jYWxj X2NkY2xrKGRldl9wcml2LCBtaW5fY2RjbGspOworCXZjbyA9IGJ4dF9jYWxjX2NkY2xrX3BsbF92 Y28oZGV2X3ByaXYsIGNkY2xrKTsKIAogCXN0YXRlLT5jZGNsay5sb2dpY2FsLnZjbyA9IHZjbzsK IAlzdGF0ZS0+Y2RjbGsubG9naWNhbC5jZGNsayA9IGNkY2xrOwpAQCAtMjQ0MCwxMyArMjM0MCw4 IEBAIHN0YXRpYyBpbnQgYnh0X21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSkKIAkJYnh0X2NhbGNfdm9sdGFnZV9sZXZlbChjZGNsayk7CiAKIAlpZiAo IXN0YXRlLT5hY3RpdmVfcGlwZXMpIHsKLQkJaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7 Ci0JCQljZGNsayA9IGdsa19jYWxjX2NkY2xrKHN0YXRlLT5jZGNsay5mb3JjZV9taW5fY2RjbGsp OwotCQkJdmNvID0gZ2xrX2RlX3BsbF92Y28oZGV2X3ByaXYsIGNkY2xrKTsKLQkJfSBlbHNlIHsK LQkJCWNkY2xrID0gYnh0X2NhbGNfY2RjbGsoc3RhdGUtPmNkY2xrLmZvcmNlX21pbl9jZGNsayk7 Ci0JCQl2Y28gPSBieHRfZGVfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOwotCQl9CisJCWNkY2xr ID0gYnh0X2NhbGNfY2RjbGsoZGV2X3ByaXYsIHN0YXRlLT5jZGNsay5mb3JjZV9taW5fY2RjbGsp OworCQl2Y28gPSBieHRfY2FsY19jZGNsa19wbGxfdmNvKGRldl9wcml2LCBjZGNsayk7CiAKIAkJ c3RhdGUtPmNkY2xrLmFjdHVhbC52Y28gPSB2Y287CiAJCXN0YXRlLT5jZGNsay5hY3R1YWwuY2Rj bGsgPSBjZGNsazsKQEAgLTI0NjgsOCArMjM2Myw4IEBAIHN0YXRpYyBpbnQgY25sX21vZGVzZXRf Y2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlpZiAobWluX2Nk Y2xrIDwgMCkKIAkJcmV0dXJuIG1pbl9jZGNsazsKIAotCWNkY2xrID0gY25sX2NhbGNfY2RjbGso bWluX2NkY2xrKTsKLQl2Y28gPSBjbmxfY2RjbGtfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOwor CWNkY2xrID0gYnh0X2NhbGNfY2RjbGsoZGV2X3ByaXYsIG1pbl9jZGNsayk7CisJdmNvID0gYnh0 X2NhbGNfY2RjbGtfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOwogCiAJc3RhdGUtPmNkY2xrLmxv Z2ljYWwudmNvID0gdmNvOwogCXN0YXRlLT5jZGNsay5sb2dpY2FsLmNkY2xrID0gY2RjbGs7CkBA IC0yNDc4LDggKzIzNzMsOCBAQCBzdGF0aWMgaW50IGNubF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCSAgICBjbmxfY29tcHV0ZV9taW5fdm9s dGFnZV9sZXZlbChzdGF0ZSkpOwogCiAJaWYgKCFzdGF0ZS0+YWN0aXZlX3BpcGVzKSB7Ci0JCWNk Y2xrID0gY25sX2NhbGNfY2RjbGsoc3RhdGUtPmNkY2xrLmZvcmNlX21pbl9jZGNsayk7Ci0JCXZj byA9IGNubF9jZGNsa19wbGxfdmNvKGRldl9wcml2LCBjZGNsayk7CisJCWNkY2xrID0gYnh0X2Nh bGNfY2RjbGsoZGV2X3ByaXYsIHN0YXRlLT5jZGNsay5mb3JjZV9taW5fY2RjbGspOworCQl2Y28g PSBieHRfY2FsY19jZGNsa19wbGxfdmNvKGRldl9wcml2LCBjZGNsayk7CiAKIAkJc3RhdGUtPmNk Y2xrLmFjdHVhbC52Y28gPSB2Y287CiAJCXN0YXRlLT5jZGNsay5hY3R1YWwuY2RjbGsgPSBjZGNs azsKQEAgLTI0OTUsMTUgKzIzOTAsMTQgQEAgc3RhdGljIGludCBjbmxfbW9kZXNldF9jYWxjX2Nk Y2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogc3RhdGljIGludCBpY2xfbW9k ZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2 KTsKLQl1bnNpZ25lZCBpbnQgcmVmID0gc3RhdGUtPmNkY2xrLmxvZ2ljYWwucmVmOwogCWludCBt aW5fY2RjbGssIGNkY2xrLCB2Y287CiAKIAltaW5fY2RjbGsgPSBpbnRlbF9jb21wdXRlX21pbl9j ZGNsayhzdGF0ZSk7CiAJaWYgKG1pbl9jZGNsayA8IDApCiAJCXJldHVybiBtaW5fY2RjbGs7CiAK LQljZGNsayA9IGljbF9jYWxjX2NkY2xrKG1pbl9jZGNsaywgcmVmKTsKLQl2Y28gPSBpY2xfY2Fs Y19jZGNsa19wbGxfdmNvKGRldl9wcml2LCBjZGNsayk7CisJY2RjbGsgPSBieHRfY2FsY19jZGNs ayhkZXZfcHJpdiwgbWluX2NkY2xrKTsKKwl2Y28gPSBieHRfY2FsY19jZGNsa19wbGxfdmNvKGRl dl9wcml2LCBjZGNsayk7CiAKIAlzdGF0ZS0+Y2RjbGsubG9naWNhbC52Y28gPSB2Y287CiAJc3Rh dGUtPmNkY2xrLmxvZ2ljYWwuY2RjbGsgPSBjZGNsazsKQEAgLTI1MTcsOCArMjQxMSw4IEBAIHN0 YXRpYyBpbnQgaWNsX21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSkKIAkJCSAgICBjbmxfY29tcHV0ZV9taW5fdm9sdGFnZV9sZXZlbChzdGF0ZSkpOwog CiAJaWYgKCFzdGF0ZS0+YWN0aXZlX3BpcGVzKSB7Ci0JCWNkY2xrID0gaWNsX2NhbGNfY2RjbGso c3RhdGUtPmNkY2xrLmZvcmNlX21pbl9jZGNsaywgcmVmKTsKLQkJdmNvID0gaWNsX2NhbGNfY2Rj bGtfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOworCQljZGNsayA9IGJ4dF9jYWxjX2NkY2xrKGRl dl9wcml2LCBzdGF0ZS0+Y2RjbGsuZm9yY2VfbWluX2NkY2xrKTsKKwkJdmNvID0gYnh0X2NhbGNf Y2RjbGtfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOwogCiAJCXN0YXRlLT5jZGNsay5hY3R1YWwu dmNvID0gdmNvOwogCQlzdGF0ZS0+Y2RjbGsuYWN0dWFsLmNkY2xrID0gY2RjbGs7CkBAIC0yNzU0 LDEyICsyNjQ4LDE1IEBAIHZvaWQgaW50ZWxfaW5pdF9jZGNsa19ob29rcyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpIHsK IAkJZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrID0gY25sX3NldF9jZGNsazsKIAkJZGV2X3By aXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0gaWNsX21vZGVzZXRfY2FsY19jZGNsazsK KwkJZGV2X3ByaXYtPmNkY2xrLnRhYmxlID0gaWNsX2NkY2xrX3RhYmxlOwogCX0gZWxzZSBpZiAo SVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpIHsKIAkJZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xr ID0gY25sX3NldF9jZGNsazsKIAkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xr ID0gY25sX21vZGVzZXRfY2FsY19jZGNsazsKKwkJZGV2X3ByaXYtPmNkY2xrLnRhYmxlID0gY25s X2NkY2xrX3RhYmxlOwogCX0gZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpIHsKIAkJZGV2 X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrID0gYnh0X3NldF9jZGNsazsKIAkJZGV2X3ByaXYtPmRp c3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0gYnh0X21vZGVzZXRfY2FsY19jZGNsazsKKwkJZGV2 X3ByaXYtPmNkY2xrLnRhYmxlID0gYnh0X2NkY2xrX3RhYmxlOwogCX0gZWxzZSBpZiAoSVNfR0VO OV9CQyhkZXZfcHJpdikpIHsKIAkJZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrID0gc2tsX3Nl dF9jZGNsazsKIAkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0gc2tsX21v ZGVzZXRfY2FsY19jZGNsazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfY2RjbGsuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2Rj bGsuaAppbmRleCA0ZDZmN2Y1Zjg5MzAuLjFhZmE4NGFiNjAxOCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jZGNsay5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuaApAQCAtMTUsNiArMTUsMTMgQEAgc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZTsKIHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZTsKIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlOwogCitzdHJ1Y3QgaW50ZWxfY2RjbGtfdmFscyB7CisJdTE2IHJlZmNsazsK Kwl1MzIgY2RjbGs7CisJdTggZGl2aWRlcjsJLyogQ0QyWCBkaXZpZGVyICogMiAqLworCXU4IHJh dGlvOworfTsKKwogaW50IGludGVsX2NydGNfY29tcHV0ZV9taW5fY2RjbGsoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwogdm9pZCBpbnRlbF9jZGNsa19pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKIHZvaWQgaW50ZWxfY2RjbGtfdW5pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4 IGUyODliNGZmZDM0Yi4uZmY2YWZmMmE0ODY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAg LTE0MjAsNiArMTQyMCw5IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkJLyogVGhlIGN1 cnJlbnQgaGFyZHdhcmUgY2RjbGsgc3RhdGUgKi8KIAkJc3RydWN0IGludGVsX2NkY2xrX3N0YXRl IGh3OwogCisJCS8qIGNkY2xrLCBkaXZpZGVyLCBhbmQgcmF0aW8gdGFibGUgZnJvbSBic3BlYyAq LworCQljb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfdmFscyAqdGFibGU7CisKIAkJaW50IGZvcmNl X21pbl9jZGNsazsKIAl9IGNkY2xrOwogCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==