From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [RFC v5 1/2] drm/i915: Engine discovery uAPI Date: Wed, 28 Jun 2017 16:30:22 +0100 Message-ID: <20170628153022.28726-1-tvrtko.ursulin@linux.intel.com> References: <20170626154741.31221-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 41BE26E15A for ; Wed, 28 Jun 2017 15:30:34 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id p204so7361936wmg.1 for ; Wed, 28 Jun 2017 08:30:34 -0700 (PDT) In-Reply-To: <20170626154741.31221-1-tvrtko.ursulin@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 Cc: Ben Widawsky , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkVuZ2luZSBk aXNjb3ZlcnkgdUFQSSBhbGxvd3MgdXNlcnNwYWNlIHRvIHByb2JlIGZvciBlbmdpbmUKY29uZmln dXJhdGlvbiBhbmQgZmVhdHVyZXMgd2l0aG91dCBuZWVkaW5nIHRvIG1haW50YWluIHRoZQppbnRl cm5hbCBQQ0kgaWQgYmFzZWQgZGF0YWJhc2UuCgpUaGlzIGVuYWJsZXMgcmVtb3ZhbCBvZiBjb2Rl IGR1cGxpY2F0aW9ucyBhY3Jvc3MgdXNlcnNwYWNlCmNvbXBvbmVudHMuCgpQcm9iaW5nIGlzIGRv bmUgdmlhIHRoZSBuZXcgRFJNX0lPQ1RMX0k5MTVfR0VNX0VOR0lORV9JTkZPIGlvY3RsCndoaWNo IHJldHVybnMgdGhlIG51bWJlciBhbmQgaW5mb3JtYXRpb24gb24gdGhlIHNwZWNpZmllZCBlbmdp bmUKY2xhc3MuCgpDdXJyZW50bHkgb25seSBnZW5lcmFsIGVuZ2luZSBjb25maWd1cmF0aW9uIGFu ZCBIRVZDIGZlYXR1cmUgb2YKdGhlIFZDUyBlbmdpbmUgY2FuIGJlIHByb2JlZCBidXQgdGhlIHVB UEkgaXMgZGVzaWduZWQgdG8gYmUKZ2VuZXJpYyBhbmQgZXh0ZW5zaWJsZS4KCkNvZGUgaXMgYmFz ZWQgYWxtb3N0IGV4YWN0bHkgb24gdGhlIGVhcmxpZXIgcHJvcG9zYWwgb24gdGhlCnRvcGljIGJ5 IEpvbiBCbG9vbWZpZWxkLiBFbmdpbmUgY2xhc3MgYW5kIGluc3RhbmNlIHJlZmFjdG9yaW5nCm1h ZGUgcmVjZW50bHkgYnkgRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyBlbmFibGVkIHRoaXMgdG8gYmUK aW1wbGVtZW50ZWQgaW4gYW4gZWxlZ2FudCBmYXNoaW9uLgoKVG8gcHJvYmUgY29uZmlndXJhdGlv biB1c2Vyc3BhY2Ugc2V0cyB0aGUgZW5naW5lIGNsYXNzIGl0IHdhbnRzCnRvIHF1ZXJ5IChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2VuZ2luZV9pbmZvKSBhbmQgcHJvdmlkZXMgYW4gYXJyYXkKb2YgZHJt X2k5MTVfZW5naW5lX2luZm8gc3RydWN0cyB3aGljaCB3aWxsIGJlIGZpbGxlZCBpbiBieSB0aGUK ZHJpdmVyLiBVc2Vyc3BhY2UgYWxzbyBoYXMgdG8gdGVsbCBpOTE1IGhvdyBtYW55IGVsZW1lbnRz IGFyZSBpbgp0aGUgYXJyYXksIGFuZCB0aGUgZHJpdmVyIHdpbGwgcmVwb3J0IGJhY2sgdGhlIHRv dGFsIG51bWJlciBvZgplbmdpbmUgaW5zdGFuY2VzIGluIGFueSBjYXNlLgoKUHNldWRvLWNvZGUg ZXhhbXBsZSBvZiB1c2Vyc3BhY2UgdXNpbmcgdGhlIHVBUEk6CgogIHN0cnVjdCBkcm1faTkxNV9n ZW1fZW5naW5lX2luZm8gaW5mbyA9IHt9OwogIHN0cnVjdCBkcm1faTkxNV9lbmdpbmVfaW5mbyBl bmdpbmVzWzhdOwogIGludCBpLCByZXQ7CgogIGluZm8udmVyc2lvbiA9IDE7CiAgaW5mby5lbmdp bmVfY2xhc3MgPSBJOTE1X0VOR0lORV9DTEFTU19WSURFTzsKICBpbmZvLm51bV9lbmdpbmVzID0g QVJSQVlfU0laRShlbmdpbmVzKTsKICBpbmZvLmluZm9fcHRyID0gdG9fdXNlcl9wb2ludGVyKCZl bmdpbmVzWzBdKTsKCiAgcmV0ID0gaW9jdGwoLi4uLCAmaW5mbyk7CiAgYXNzZXJ0KHJldCA9PSAw KTsKCiAgaWYgKGluZm8udmVyc2lvbiAhPSAxKQogICAgICBnb3RvIGtlcm5lbF9kb2VzX25vdF9z dXBwb3J0X2FfdmVyc2lvbl90aGlzX25ldzsKCiAgZm9yIChpID0gMDsgaSA8IGluZm8ubnVtX2Vu Z2luZXM7IGkrKykKICAgICAgcHJpbnRmKCJWQ1MldTogZmxhZ3M9JXhcbiIsCiAgICAgICAgICAg ICBlbmdpbmVzW2ldLmluc3RhbmNlLAogICAgICAgICAgICAgZW5naW5lc1tpXS5pbmZvKTsKCklm IHRoZSB1c2Vyc3BhY2Ugd2FudHMgdG8gYWxsb2NhdGUgdGhlIGV4YWN0IG51bWJlciBvZgpkcm1f aTkxNV9lbmdpbmVfaW5mbyBzdHJ1Y3R1cmVzIGluc3RlYWQgb2YgcGVzaW1pc3RpY2FsbHkKb3Zl ci1hbGxvY2F0aW5nLCBpdCBjYW4gc3VibWl0IHRoZSBpb2N0bCB0d28gdGltZXMuCgpGaXJzdCB0 aW1lIHdpdGggaW5mby5udW1fZW5naW5lcyBzZXQgdG8gemVybywgc28gdGhlIGtlcm5lbApyZXBv cnRzIGJhY2sgdGhlIHRvdGFsIG51bWJlciBvZiBhdmFpbGFibGUgZW5naW5lcywgYW5kIHRoZQpz ZWNvbmQgdGltZSB3aXRoIHRoZSBmaWVsZCBzZXQgdG8gdGhlIG51bWJlciBvZiBhbGxvY2F0ZWQK YXJyYXkgZWxlbWVudHMuCgp2MjoKICogQWRkIGEgdmVyc2lvbiBmaWVsZCBhbmQgY29uc29saWRh dGUgdG8gb25lIGVuZ2luZSBjb3VudC4KICAgKENocmlzIFdpbHNvbikKICogUmVuYW1lIHVBUEkg ZmxhZ3MgZm9yIFZDUyBlbmdpbmVzIHRvIERSTV9JOTE1X0VOR0lORV9DTEFTU19WSURFTy4KICAg KEdvbmcgWmhpcGVuZykKCnYzOgogKiBEcm9wIHRoZSBEUk1fIHByZWZpeCBmcm9tIHVBUEkgZW51 bXMuIChDaHJpcyBXaWxzb24pCiAqIE9ubHkgcmVzZXJ2ZSA4LWJpdHMgZm9yIHRoZSBlbmdpbmUg aW5mbyBmb3IgdGltZSBiZWluZy4KCnY0OgogKiBNYWRlIHVzZXJfY2xhc3NfbWFwIHN0YXRpYy4K CnY1OgogKiBFeGFtcGxlIHVzYWdlIGFkZGVkIHRvIGNvbW1pdCBtc2cuIChDaHJpcyBXaWxzb24p CiAqIFJlcG9ydCBlbmdpbmUgY291bnQgaW4gY2FzZSBvZiB2ZXJzaW9uIG1pc21hdGNoLiAoQ2hy aXMgV2lsc29uKQoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGlu QGludGVsLmNvbT4KQ2M6IEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KQ2M6IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBpbnRlbC5jb20+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5l bkBsaW51eC5pbnRlbC5jb20+CkNjOiBKb24gQmxvb21maWVsZCA8am9uLmJsb29tZmllbGRAaW50 ZWwuY29tPgpDYzogIlJvZ296aGtpbiwgRG1pdHJ5IFYiIDxkbWl0cnkudi5yb2dvemhraW5AaW50 ZWwuY29tPgpDYzogT3NjYXIgTWF0ZW8gPG9zY2FyLm1hdGVvQGludGVsLmNvbT4KQ2M6ICJHb25n LCBaaGlwZW5nIiA8emhpcGVuZy5nb25nQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jICAgICAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggICAgICAgIHwgIDMgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9j cy5jIHwgNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS91YXBp L2RybS9pOTE1X2RybS5oICAgICAgICAgICAgfCA0MSArKysrKysrKysrKysrKysrKysrKysrCiA0 IGZpbGVzIGNoYW5nZWQsIDEwOSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK aW5kZXggZTlkOGU5ZWU1MWIyLi40NGRkMmYzNzkzN2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YwpAQCAtMjcyNCw2ICsyNzI0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVz YyBpOTE1X2lvY3Rsc1tdID0gewogCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VNX0NPTlRFWFRf R0VUUEFSQU0sIGk5MTVfZ2VtX2NvbnRleHRfZ2V0cGFyYW1faW9jdGwsIERSTV9SRU5ERVJfQUxM T1cpLAogCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VNX0NPTlRFWFRfU0VUUEFSQU0sIGk5MTVf Z2VtX2NvbnRleHRfc2V0cGFyYW1faW9jdGwsIERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NU TF9ERUZfRFJWKEk5MTVfUEVSRl9PUEVOLCBpOTE1X3BlcmZfb3Blbl9pb2N0bCwgRFJNX1JFTkRF Ul9BTExPVyksCisJRFJNX0lPQ1RMX0RFRl9EUlYoSTkxNV9HRU1fRU5HSU5FX0lORk8sIGk5MTVf Z2VtX2VuZ2luZV9pbmZvX2lvY3RsLCBEUk1fUkVOREVSX0FMTE9XKSwKIH07CiAKIHN0YXRpYyBz dHJ1Y3QgZHJtX2RyaXZlciBkcml2ZXIgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA0 MjdkMTBjN2VjYTUuLjQ5NjU2NWUxNzUzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0z NTk4LDYgKzM1OTgsOSBAQCB2b2lkIGk5MTVfb2FfaW5pdF9yZWdfc3RhdGUoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lLAogCQkJICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgs CiAJCQkgICAgdWludDMyX3QgKnJlZ19zdGF0ZSk7CiAKK2ludCBpOTE1X2dlbV9lbmdpbmVfaW5m b19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgICAgIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZSk7CisKIC8qIGk5MTVfZ2VtX2V2aWN0LmMgKi8KIGludCBfX211 c3RfY2hlY2sgaTkxNV9nZW1fZXZpY3Rfc29tZXRoaW5nKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3Bh Y2UgKnZtLAogCQkJCQkgIHU2NCBtaW5fc2l6ZSwgdTY0IGFsaWdubWVudCwKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKaW5kZXggM2I0NmMxZjdiODhiLi5kODgxOTg5MzMyNjIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCkBAIC0yNSw2ICsyNSw3IEBA CiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNpbmNsdWRlICJpbnRlbF9yaW5nYnVmZmVyLmgiCiAj aW5jbHVkZSAiaW50ZWxfbHJjLmgiCisjaW5jbHVkZSA8dWFwaS9kcm0vaTkxNV9kcm0uaD4KIAog LyogSGFzd2VsbCBkb2VzIGhhdmUgdGhlIENYVF9TSVpFIHJlZ2lzdGVyIGhvd2V2ZXIgaXQgZG9l cyBub3QgYXBwZWFyIHRvIGJlCiAgKiB2YWxpZC4gTm93LCBkb2NzIGV4cGxhaW4gaW4gZHdvcmRz IHdoYXQgaXMgaW4gdGhlIGNvbnRleHQgb2JqZWN0LiBUaGUgZnVsbApAQCAtMTMzMiw2ICsxMzMz LDY5IEBAIHZvaWQgaW50ZWxfZW5naW5lc19tYXJrX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUpCiAJfQogfQogCitzdGF0aWMgdTggdXNlcl9jbGFzc19tYXBbSTkxNV9FTkdJTkVf Q0xBU1NfTUFYXSA9IHsKKwlbSTkxNV9FTkdJTkVfQ0xBU1NfT1RIRVJdID0gT1RIRVJfQ0xBU1Ms CisJW0k5MTVfRU5HSU5FX0NMQVNTX1JFTkRFUl0gPSBSRU5ERVJfQ0xBU1MsCisJW0k5MTVfRU5H SU5FX0NMQVNTX0NPUFldID0gQ09QWV9FTkdJTkVfQ0xBU1MsCisJW0k5MTVfRU5HSU5FX0NMQVNT X1ZJREVPXSA9IFZJREVPX0RFQ09ERV9DTEFTUywKKwlbSTkxNV9FTkdJTkVfQ0xBU1NfVklERU9f RU5IQU5DRV0gPSBWSURFT19FTkhBTkNFTUVOVF9DTEFTUywKK307CisKK2ludCBpOTE1X2dlbV9l bmdpbmVfaW5mb19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJ ICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2VuZ2luZV9pbmZv ICphcmdzID0gZGF0YTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZW5naW5lX2luZm8gX191c2VyICp1c2Vy X2luZm8gPQorCQkJCQl1NjRfdG9fdXNlcl9wdHIoYXJncy0+aW5mb19wdHIpOworCXVuc2lnbmVk IGludCBpbmZvX3NpemUgPSBhcmdzLT5udW1fZW5naW5lczsKKwlzdHJ1Y3QgZHJtX2k5MTVfZW5n aW5lX2luZm8gaW5mbzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CisJZW51bSBp bnRlbF9lbmdpbmVfaWQgaWQ7CisJdTggY2xhc3M7CisKKwlpZiAoYXJncy0+cnN2ZCkKKwkJcmV0 dXJuIC1FSU5WQUw7CisKKwlzd2l0Y2ggKGFyZ3MtPmVuZ2luZV9jbGFzcykgeworCWNhc2UgSTkx NV9FTkdJTkVfQ0xBU1NfT1RIRVI6CisJY2FzZSBJOTE1X0VOR0lORV9DTEFTU19SRU5ERVI6CisJ Y2FzZSBJOTE1X0VOR0lORV9DTEFTU19DT1BZOgorCWNhc2UgSTkxNV9FTkdJTkVfQ0xBU1NfVklE RU86CisJY2FzZSBJOTE1X0VOR0lORV9DTEFTU19WSURFT19FTkhBTkNFOgorCQljbGFzcyA9IHVz ZXJfY2xhc3NfbWFwW2FyZ3MtPmVuZ2luZV9jbGFzc107CisJCWJyZWFrOworCWNhc2UgSTkxNV9F TkdJTkVfQ0xBU1NfTUFYOgorCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX07CisKKwlh cmdzLT5udW1fZW5naW5lcyA9IDA7CisKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1LCBp ZCkgeworCQlpZiAoY2xhc3MgIT0gZW5naW5lLT5jbGFzcykKKwkJCWNvbnRpbnVlOworCisJCWlm ICgrK2FyZ3MtPm51bV9lbmdpbmVzID4gaW5mb19zaXplKQorCQkJY29udGludWU7CisKKwkJaWYg KGFyZ3MtPnZlcnNpb24gIT0gMSkKKwkJCWNvbnRpbnVlOworCisJCW1lbXNldCgmaW5mbywgMCwg c2l6ZW9mKGluZm8pKTsKKwkJaW5mby5pbnN0YW5jZSA9IGVuZ2luZS0+aW5zdGFuY2U7CisJCWlm IChJTlRFTF9HRU4oaTkxNSkgPj0gOCAmJiBpZCA9PSBWQ1MpCisJCQlpbmZvLmluZm8gPSBJOTE1 X1ZDU19IQVNfSEVWQzsKKworCQlpZiAoY29weV90b191c2VyKHVzZXJfaW5mbysrLCAmaW5mbywg c2l6ZW9mKGluZm8pKSkKKwkJCXJldHVybiAtRUZBVUxUOworCX0KKworCWFyZ3MtPnZlcnNpb24g PSAxOworCisJcmV0dXJuIDA7Cit9CisKICNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9T RUxGVEVTVCkKICNpbmNsdWRlICJzZWxmdGVzdHMvbW9ja19lbmdpbmUuYyIKICNlbmRpZgpkaWZm IC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9p OTE1X2RybS5oCmluZGV4IDdjY2JkNmEyYmJlMC4uZmJiMWY2Yjk5OTU5IDEwMDY0NAotLS0gYS9p bmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2Ry bS5oCkBAIC0yNjAsNiArMjYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX2RybV9pOTE1X3NhcmVhIHsK ICNkZWZpbmUgRFJNX0k5MTVfR0VNX0NPTlRFWFRfR0VUUEFSQU0JMHgzNAogI2RlZmluZSBEUk1f STkxNV9HRU1fQ09OVEVYVF9TRVRQQVJBTQkweDM1CiAjZGVmaW5lIERSTV9JOTE1X1BFUkZfT1BF TgkJMHgzNgorI2RlZmluZSBEUk1fSTkxNV9HRU1fRU5HSU5FX0lORk8JMHgzNwogCiAjZGVmaW5l IERSTV9JT0NUTF9JOTE1X0lOSVQJCURSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkx NV9JTklULCBkcm1faTkxNV9pbml0X3QpCiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0ZMVVNICQlE Uk1fSU8gKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfRkxVU0gpCkBAIC0zMTUsNiArMzE2 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX2RybV9pOTE1X3NhcmVhIHsKICNkZWZpbmUgRFJNX0lPQ1RM X0k5MTVfR0VNX0NPTlRFWFRfR0VUUEFSQU0JRFJNX0lPV1IgKERSTV9DT01NQU5EX0JBU0UgKyBE Uk1fSTkxNV9HRU1fQ09OVEVYVF9HRVRQQVJBTSwgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0 X3BhcmFtKQogI2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fQ09OVEVYVF9TRVRQQVJBTQlEUk1f SU9XUiAoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9DT05URVhUX1NFVFBBUkFNLCBz dHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0pCiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1 X1BFUkZfT1BFTglEUk1fSU9XKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9QRVJGX09QRU4s IHN0cnVjdCBkcm1faTkxNV9wZXJmX29wZW5fcGFyYW0pCisjZGVmaW5lIERSTV9JT0NUTF9JOTE1 X0dFTV9FTkdJTkVfSU5GTwlEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VN X0VOR0lORV9JTkZPLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2VuZ2luZV9pbmZvKQogCiAvKiBBbGxv dyBkcml2ZXJzIHRvIHN1Ym1pdCBiYXRjaGJ1ZmZlcnMgZGlyZWN0bHkgdG8gaGFyZHdhcmUsIHJl bHlpbmcKICAqIG9uIHRoZSBzZWN1cml0eSBtZWNoYW5pc21zIHByb3ZpZGVkIGJ5IGhhcmR3YXJl LgpAQCAtMTQ2Nyw2ICsxNDY5LDQ1IEBAIGVudW0gZHJtX2k5MTVfcGVyZl9yZWNvcmRfdHlwZSB7 CiAJRFJNX0k5MTVfUEVSRl9SRUNPUkRfTUFYIC8qIG5vbi1BQkkgKi8KIH07CiAKK2VudW0gZHJt X2k5MTVfZ2VtX2VuZ2luZV9jbGFzcyB7CisJSTkxNV9FTkdJTkVfQ0xBU1NfT1RIRVIgPSAwLAor CUk5MTVfRU5HSU5FX0NMQVNTX1JFTkRFUiA9IDEsCisJSTkxNV9FTkdJTkVfQ0xBU1NfQ09QWSA9 IDIsCisJSTkxNV9FTkdJTkVfQ0xBU1NfVklERU8gPSAzLAorCUk5MTVfRU5HSU5FX0NMQVNTX1ZJ REVPX0VOSEFOQ0UgPSA0LAorCUk5MTVfRU5HSU5FX0NMQVNTX01BWCAvKiBub24tQUJJICovCit9 OworCitzdHJ1Y3QgZHJtX2k5MTVfZW5naW5lX2luZm8geworCS8qKiBFbmdpbmUgaW5zdGFuY2Ug bnVtYmVyLiAqLworCV9fdTgJaW5zdGFuY2U7CisKKwkvKiogRW5naW5lIHNwZWNpZmljIGluZm8u ICovCisjZGVmaW5lIEk5MTVfVkNTX0hBU19IRVZDCUJJVCgwKQorCV9fdTgJaW5mbzsKKworCV9f dTgJcnN2ZDJbNl07Cit9OworCitzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2VuZ2luZV9pbmZvIHsKKwkv KiogaW4vb3V0OiBQcm90b2NvbCB2ZXJzaW9uIHJlcXVlc3RlZC9zdXBwb3J0ZWQuICovCisJX191 MzIgdmVyc2lvbjsKKworCS8qKiBpbjogRW5naW5lIGNsYXNzIHRvIHByb2JlIChlbnVtIGRybV9p OTE1X2dlbV9lbmdpbmVfY2xhc3MpLiAqLworCV9fdTMyIGVuZ2luZV9jbGFzczsKKworCS8qKgor CSAqIGluL291dDogTnVtYmVyIG9mIHN0cnVjdCBkcm1faTkxNV9lbmdpbmVfaW5mbyBlbnRyaWVz IGluIHRoZSBwcm92aWRlZAorCSAqIEBpbmZvX3B0ciBhcnJheSBhbmQgYWN0dWFsIG51bWJlciBv ZiBzdXBwb3J0ZWQgaGFyZHdhcmUgZW5naW5lcy4KKwkgKi8KKwlfX3UzMiBudW1fZW5naW5lczsK KwlfX3UzMiByc3ZkOworCisJLyoqIGluL291dDogUG9pbnRlciB0byBhcnJheSBvZiBzdHJ1Y3Qg aTkxNV9lbmdpbmVfaW5mbyBlbGVtZW50cy4gKi8KKwlfX3U2NCBpbmZvX3B0cjsKKworfTsKKwog I2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiB9CiAjZW5kaWYKLS0gCjIuOS40CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK