From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 5/6] drm/i915: Expose RPCS (SSEU) configuration to userspace Date: Fri, 14 Sep 2018 17:09:31 +0100 Message-ID: <20180914160932.16457-6-tvrtko.ursulin@linux.intel.com> References: <20180914160932.16457-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-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by gabe.freedesktop.org (Postfix) with ESMTPS id B27BE6E93F for ; Fri, 14 Sep 2018 16:09:45 +0000 (UTC) Received: by mail-wm1-x344.google.com with SMTP id y139-v6so2478163wmc.2 for ; Fri, 14 Sep 2018 09:09:45 -0700 (PDT) In-Reply-To: <20180914160932.16457-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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldlIHdhbnQg dG8gYWxsb3cgdXNlcnNwYWNlIHRvIHJlY29uZmlndXJlIHRoZSBzdWJzbGljZSBjb25maWd1cmF0 aW9uIGZvcgppdHMgb3duIHVzZSBjYXNlLiBUbyBkbyBzbywgd2UgZXhwb3NlIGEgY29udGV4dCBw YXJhbWV0ZXIgdG8gYWxsb3cKYWRqdXN0bWVudCBvZiB0aGUgUlBDUyByZWdpc3RlciBzdG9yZWQg d2l0aGluIHRoZSBjb250ZXh0IGltYWdlIChhbmQKY3VycmVudGx5IG5vdCBhY2Nlc3NpYmxlIHZp YSBMUkkpLiBJZiB0aGUgY29udGV4dCBpcyBhZGp1c3RlZCBiZWZvcmUKZmlyc3QgdXNlLCB0aGUg YWRqdXN0bWVudCBpcyBmb3IgImZyZWUiOyBvdGhlcndpc2UgaWYgdGhlIGNvbnRleHQgaXMKYWN0 aXZlIHdlIGZsdXNoIHRoZSBjb250ZXh0IG9mZiB0aGUgR1BVIChzdGFsbGluZyBhbGwgdXNlcnMp IGFuZCBmb3JjaW5nCnRoZSBHUFUgdG8gc2F2ZSB0aGUgY29udGV4dCB0byBtZW1vcnkgd2hlcmUg d2UgY2FuIG1vZGlmeSBpdCBhbmQgc28KZW5zdXJlIHRoYXQgdGhlIHJlZ2lzdGVyIGlzIHJlbG9h ZGVkIG9uIG5leHQgZXhlY3V0aW9uLgoKVGhlIG92ZXJoZWFkIG9mIG1hbmFnaW5nIGFkZGl0aW9u YWwgRVUgc3Vic2xpY2VzIGNhbiBiZSBzaWduaWZpY2FudCwKZXNwZWNpYWxseSBpbiBtdWx0aS1j b250ZXh0IHdvcmtsb2Fkcy4gTm9uLUdQR1BVIGNvbnRleHRzIHNob3VsZApwcmVmZXJhYmx5IGRp c2FibGUgdGhlIHN1YnNsaWNlcyBpdCBpcyBub3QgdXNpbmcsIGFuZCBvdGhlcnMgc2hvdWxkCmZp bmUtdHVuZSB0aGUgbnVtYmVyIHRvIG1hdGNoIHRoZWlyIHdvcmtsb2FkLgoKV2UgZXhwb3NlIGNv bXBsZXRlIGNvbnRyb2wgb3ZlciB0aGUgUlBDUyByZWdpc3RlciwgYWxsb3dpbmcKY29uZmlndXJh dGlvbiBvZiBzbGljZS9zdWJzbGljZSwgdmlhIG1hc2tzIHBhY2tlZCBpbnRvIGEgdTY0IGZvcgpz aW1wbGljaXR5LiBGb3IgZXhhbXBsZSwKCglzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFy YW0gYXJnOwoJc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtX3NzZXUgc3NldSA9IHsg LmNsYXNzID0gMCwKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC5pbnN0YW5jZSA9IDAsIH07CgoJbWVtc2V0KCZhcmcsIDAsIHNpemVvZihhcmcpKTsKCWFy Zy5jdHhfaWQgPSBjdHg7CglhcmcucGFyYW0gPSBJOTE1X0NPTlRFWFRfUEFSQU1fU1NFVTsKCWFy Zy52YWx1ZSA9ICh1aW50cHRyX3QpICZzc2V1OwoJaWYgKGRybUlvY3RsKGZkLCBEUk1fSU9DVExf STkxNV9HRU1fQ09OVEVYVF9HRVRQQVJBTSwgJmFyZykgPT0gMCkgewoJCXNzZXUucGFja2VkLnN1 YnNsaWNlX21hc2sgPSAwOwoKCQlkcm1Jb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VNX0NPTlRF WFRfU0VUUEFSQU0sICZhcmcpOwoJfQoKY291bGQgYmUgdXNlZCB0byBkaXNhYmxlIGFsbCBzdWJz bGljZXMgd2hlcmUgc3VwcG9ydGVkLgoKdjI6IEZpeCBvZmZzZXQgb2YgQ1RYX1JfUFdSX0NMS19T VEFURSBpbiBpbnRlbF9scl9jb250ZXh0X3NldF9zc2V1KCkgKExpb25lbCkKCnYzOiBBZGQgYWJp bGl0eSB0byBwcm9ncmFtIHRoaXMgcGVyIGVuZ2luZSAoQ2hyaXMpCgp2NDogTW92ZSBtb3N0IGdl dF9zc2V1KCkgaW50byBpOTE1X2dlbV9jb250ZXh0LmMgKExpb25lbCkKCnY1OiBWYWxpZGF0ZSBz c2V1IGNvbmZpZ3VyYXRpb24gYWdhaW5zdCB0aGUgZGV2aWNlJ3MgY2FwYWJpbGl0aWVzIChMaW9u ZWwpCgp2NjogQ2hhbmdlIGNvbnRleHQgcG93ZXJnYXRpbmcgc2V0dGluZ3MgdGhyb3VnaCBNSV9T RE0gb24ga2VybmVsIGNvbnRleHQgKENocmlzKQoKdjc6IFN5bmNocm9uaXplIHRoZSByZXF1ZXN0 cyBmb2xsb3dpbmcgYSBwb3dlcmdhdGluZyBzZXR0aW5nIGNoYW5nZSB1c2luZyBhIGdsb2JhbAog ICAgZGVwZW5kZW5jeSAoQ2hyaXMpCiAgICBJdGVyYXRlIHRpbWVsaW5lcyB0aHJvdWdoIGRldl9w cml2Lmd0LmFjdGl2ZV9yaW5ncyAoVHZydGtvKQogICAgRGlzYWJsZSBSUENTIGNvbmZpZ3VyYXRp b24gc2V0dGluZyBmb3Igbm9uIGNhcGFibGUgdXNlcnMgKExpb25lbC9UdnJ0a28pCgp2ODogcy91 bmlvbiBpbnRlbF9zc2V1L3N0cnVjdCBpbnRlbF9zc2V1LyAoTGlvbmVsKQogICAgcy9kZXZfcHJp di9pOTE1LyAoVHZydGtvKQogICAgQ2hhbmdlIHVhcGkgY2xhc3MvaW5zdGFuY2UgZmllbGRzIHRv IHUxNiAoVHZydGtvKQogICAgQnVtcCBtYXNrIGZpZWxkcyB0byA2NGJpdHMgKExpb25lbCkKICAg IERvbid0IHJldHVybiBFUEVSTSB3aGVuIGR5bmFtaWMgc3NldSBpcyBkaXNhYmxlZCAoVHZydGtv KQoKdjk6IEltcG9ydCBjb250ZXh0IGltYWdlIGludG8ga2VybmVsIGNvbnRleHQncyBwcGd0dCBv bmx5IHdoZW4KICAgIHJlY29uZmlndXJpbmcgcG93ZXJnYXRlZCBzbGljZS9zdWJzbGljZXMgKENo cmlzKQogICAgVXNlIGFsaWFzaW5nIHBwZ3R0IHdoZW4gbmVlZGVkIChNaWNoZWwpCgpUdnJ0a28g VXJzdWxpbjoKCnYxMDoKICogVXBkYXRlIGZvciB1cHN0cmVhbSBjaGFuZ2VzLgogKiBSZXF1ZXN0 IHN1Ym1pdCBuZWVkcyBhIFJQTSByZWZlcmVuY2UuCiAqIFJlamVjdCBvbiAhRlVMTF9QUEdUVCBm b3Igc2ltcGxpY2l0eS4KICogUHVsbCBvdXQgZ2V0L3NldCBwYXJhbSB0byBoZWxwZXJzIGZvciBy ZWFkYWJpbGl0eSBhbmQgbGVzcyBpbmRlbnQuCiAqIFVzZSBpOTE1X3JlcXVlc3RfYXdhaXRfZG1h X2ZlbmNlIGluIGFkZF9nbG9iYWxfYmFycmllciB0byBza2lwIHdhaXRzCiAgIG9uIHRoZSBzYW1l IHRpbWVsaW5lIGFuZCBhdm9pZCBHRU1fQlVHX09OLgogKiBObyBuZWVkIHRvIGV4cGxpY2l0bHkg YXNzaWduIGEgTlVMTCBwb2ludGVyIHRvIGVuZ2luZSBpbiBsZWdhY3kgbW9kZS4KICogTm8gbmVl ZCB0byBtb3ZlIGdlbjhfbWFrZV9ycGNzIHVwLgogKiBGYWN0b3JlZCBvdXQgZ2xvYmFsIGJhcnJp ZXIgYXMgcHJlcCBwYXRjaC4KICogQWxsb3cgdG8gb25seSBDQVBfU1lTX0FETUlOIGlmICFHZW4x MS4KCnYxMToKICogUmVtb3ZlIGVuZ2luZSB2ZnVuYyBpbiBmYXZvdXIgb2YgbG9jYWwgaGVscGVy LiAoQ2hyaXMgV2lsc29uKQogKiBTdG9wIHJldGlyaW5nIHJlcXVlc3RzIGJlZm9yZSB1cGRhdGVz IHNpbmNlIGl0IGlzIG5vdCBuZWVkZWQKICAgKENocmlzIFdpbHNvbikKICogSW1wbGVtZW50IGRp cmVjdCBDUFUgdXBkYXRlIHBhdGggZm9yIGlkbGUgY29udGV4dHMuIChDaHJpcyBXaWxzb24pCiAq IExlZnQgc2lkZSBkZXBlbmRlbmN5IG5lZWRzIG9ubHkgYmUgb24gdGhlIHNhbWUgY29udGV4dCB0 aW1lbGluZS4KICAgKENocmlzIFdpbHNvbikKICogSXQgaXMgc3VmZmljaWVudCB0byBvcmRlciB0 aGUgdGltZWxpbmUuIChDaHJpcyBXaWxzb24pCiAqIFJlamVjdCAhUkNTIGNvbmZpZ3VyYXRpb24g YXR0ZW1wdHMgd2l0aCAtRU5PREVWIGZvciBub3cuCgp2MTI6CiAqIFJlYmFzZSBmb3IgbWFrZV9y cGNzLgoKdjEzOgogKiBDZW50cmFsaXplIFNTRVUgbm9ybWFsaXphdGlvbiB0byBtYWtlX3JwY3Mu CiAqIFR5cGUgd2lkdGggY2hlY2tpbmcgKHVBUEkgPC0+IGltcGxlbWVudGF0aW9uKS4KICogR2Vu MTEgcmVzdHJpY3Rpb25zIHVBUEkgY2hlY2tzLgogKiBHZW4xMSBzdWJzbGljZSBjb3VudCBkaWZm ZXJlbmNlcyBoYW5kbGluZy4KIENocmlzIFdpbHNvbjoKICogYXJncy0+c2l6ZSBoYW5kbGluZyBm aXhlcy4KICogVXBkYXRlIGNvbnRleHQgaW1hZ2UgZnJvbSBHR1RULgogKiBQb3N0cG9uZSBjb250 ZXh0IGltYWdlIHVwZGF0ZSB0byBwaW5uaW5nLgogKiBVc2UgaTkxNV9nZW1fYWN0aXZlX3JhdyBp bnN0ZWFkIG9mIGxhc3RfcmVxdWVzdF9vbl9lbmdpbmUuCgp2MTQ6CiAqIEFkZCBhY3Rpdml0eSB0 cmFja2VyIG9uIGludGVsX2NvbnRleHQgdG8gZml4IHRoZSBsaWZldGltZSBpc3N1ZXMKICAgYW5k IHNpbXBsaWZ5IHRoZSBjb2RlLiAoQ2hyaXMgV2lsc29uKQoKdjE1OgogKiBGaXggY29udGV4dCBw aW4gbGVhayBpZiBubyBzcGFjZSBpbiByaW5nIGJ5IHNpbXBsaWZ5aW5nIHRoZQogICBjb250ZXh0 IHBpbm5pbmcgc2VxdWVuY2UuCgp2MTY6CiAqIFJlYmFzZSBmb3IgY29udGV4dCBnZXQvc2V0IHBh cmFtIGxvY2tpbmcgY2hhbmdlcy4KICogSnVzdCAtRU5PREVWIG9uICFHZW4xMS4gKEpvb25hcykK CkJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0x MDA4OTkKQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dp P2lkPTEwNzYzNApJc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2ludGVsL21lZGlhLWRyaXZlci9p c3N1ZXMvMjY3ClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29u LmNvLnVrPgpTaWduZWQtb2ZmLWJ5OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdl cmxpbkBpbnRlbC5jb20+CkNjOiBEbWl0cnkgUm9nb3poa2luIDxkbWl0cnkudi5yb2dvemhraW5A aW50ZWwuY29tPgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4K Q2M6IFpoaXBlbmcgR29uZyA8emhpcGVuZy5nb25nQGludGVsLmNvbT4KQ2M6IEpvb25hcyBMYWh0 aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVHZy dGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPiAjIHYxNQotLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyB8IDMxMyArKysrKysrKysrKysrKysrKysrKysr Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaCB8ICAgNiArCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAgIDQgKy0KIGluY2x1ZGUvdWFw aS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAgICB8ICA0MyArKysrCiA0IGZpbGVzIGNoYW5nZWQs IDM2MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2NvbnRleHQuYwppbmRleCAwYjhjYzc0ODY0OGIuLjA5MmMyODJhOGVjMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwpAQCAtOTAsNiArOTAsNyBAQAogI2lu Y2x1ZGUgPGRybS9pOTE1X2RybS5oPgogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAi aTkxNV90cmFjZS5oIgorI2luY2x1ZGUgImludGVsX2xyY19yZWcuaCIKICNpbmNsdWRlICJpbnRl bF93b3JrYXJvdW5kcy5oIgogCiAjZGVmaW5lIEFMTF9MM19TTElDRVMoZGV2KSAoMSA8PCBOVU1f TDNfU0xJQ0VTKGRldikpIC0gMQpAQCAtMzIyLDYgKzMyMywxNCBAQCBzdGF0aWMgdTMyIGRlZmF1 bHRfZGVzY190ZW1wbGF0ZShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAly ZXR1cm4gZGVzYzsKIH0KIAorc3RhdGljIHZvaWQgaW50ZWxfY29udGV4dF9yZXRpcmUoc3RydWN0 IGk5MTVfZ2VtX2FjdGl2ZSAqYWN0aXZlLAorCQkJCSBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkK K3sKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UgPSBjb250YWluZXJfb2YoYWN0aXZlLCB0eXBl b2YoKmNlKSwgYWN0aXZlKTsKKworCWludGVsX2NvbnRleHRfdW5waW4oY2UpOworfQorCiBzdGF0 aWMgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKgogX19jcmVhdGVfaHdfY29udGV4dChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCSAgICBzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9w cml2YXRlICpmaWxlX3ByaXYpCkBAIC0zNDUsNiArMzU0LDggQEAgX19jcmVhdGVfaHdfY29udGV4 dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWNlLT5nZW1fY29udGV4dCA9 IGN0eDsKIAkJLyogVXNlIHRoZSB3aG9sZSBkZXZpY2UgYnkgZGVmYXVsdCAqLwogCQljZS0+c3Nl dSA9IGludGVsX2RldmljZV9kZWZhdWx0X3NzZXUoZGV2X3ByaXYpOworCisJCWluaXRfcmVxdWVz dF9hY3RpdmUoJmNlLT5hY3RpdmUsIGludGVsX2NvbnRleHRfcmV0aXJlKTsKIAl9CiAKIAlJTklU X1JBRElYX1RSRUUoJmN0eC0+aGFuZGxlc192bWEsIEdGUF9LRVJORUwpOwpAQCAtODQ2LDYgKzg1 Nyw1NiBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9kZXN0cm95X2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgZ2V0X3Nz ZXUoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKKwkJICAgIHN0cnVjdCBkcm1faTkxNV9n ZW1fY29udGV4dF9wYXJhbSAqYXJncykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRf cGFyYW1fc3NldSB1c2VyX3NzZXU7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwor CXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKKwlpbnQgcmV0OworCisJaWYgKGFyZ3MtPnNpemUg PT0gMCkKKwkJZ290byBvdXQ7CisJZWxzZSBpZiAoYXJncy0+c2l6ZSA8IHNpemVvZih1c2VyX3Nz ZXUpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChjb3B5X2Zyb21fdXNlcigmdXNlcl9zc2V1 LCB1NjRfdG9fdXNlcl9wdHIoYXJncy0+dmFsdWUpLAorCQkJICAgc2l6ZW9mKHVzZXJfc3NldSkp KQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWlmICh1c2VyX3NzZXUucnN2ZDEgfHwgdXNlcl9zc2V1 LnJzdmQyKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWVuZ2luZSA9IGludGVsX2VuZ2luZV9sb29r dXBfdXNlcihjdHgtPmk5MTUsCisJCQkJCSAgdXNlcl9zc2V1LmNsYXNzLAorCQkJCQkgIHVzZXJf c3NldS5pbnN0YW5jZSk7CisJaWYgKCFlbmdpbmUpCisJCXJldHVybiAtRUlOVkFMOworCisJLyog T25seSB1c2UgZm9yIG11dGV4IGhlcmUgaXMgdG8gc2VyaWFsaXplIGdldF9wYXJhbSBhbmQgc2V0 X3BhcmFtLiAqLworCXJldCA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmY3R4LT5pOTE1LT5k cm0uc3RydWN0X211dGV4KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJY2UgPSB0b19p bnRlbF9jb250ZXh0KGN0eCwgZW5naW5lKTsKKworCXVzZXJfc3NldS5zbGljZV9tYXNrID0gY2Ut PnNzZXUuc2xpY2VfbWFzazsKKwl1c2VyX3NzZXUuc3Vic2xpY2VfbWFzayA9IGNlLT5zc2V1LnN1 YnNsaWNlX21hc2s7CisJdXNlcl9zc2V1Lm1pbl9ldXNfcGVyX3N1YnNsaWNlID0gY2UtPnNzZXUu bWluX2V1c19wZXJfc3Vic2xpY2U7CisJdXNlcl9zc2V1Lm1heF9ldXNfcGVyX3N1YnNsaWNlID0g Y2UtPnNzZXUubWF4X2V1c19wZXJfc3Vic2xpY2U7CisKKwltdXRleF91bmxvY2soJmN0eC0+aTkx NS0+ZHJtLnN0cnVjdF9tdXRleCk7CisKKwlpZiAoY29weV90b191c2VyKHU2NF90b191c2VyX3B0 cihhcmdzLT52YWx1ZSksICZ1c2VyX3NzZXUsCisJCQkgc2l6ZW9mKHVzZXJfc3NldSkpKQorCQly ZXR1cm4gLUVGQVVMVDsKKworb3V0OgorCWFyZ3MtPnNpemUgPSBzaXplb2YodXNlcl9zc2V1KTsK KworCXJldHVybiAwOworfQorCiBpbnQgaTkxNV9nZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJCSAgICBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGUpCiB7CkBAIC04NTgsMTUgKzkxOSwxNyBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9n ZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCWlmICgh Y3R4KQogCQlyZXR1cm4gLUVOT0VOVDsKIAotCWFyZ3MtPnNpemUgPSAwOwogCXN3aXRjaCAoYXJn cy0+cGFyYW0pIHsKIAljYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9CQU5fUEVSSU9EOgogCQlyZXQg PSAtRUlOVkFMOwogCQlicmVhazsKIAljYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9OT19aRVJPTUFQ OgorCQlhcmdzLT5zaXplID0gMDsKIAkJYXJncy0+dmFsdWUgPSB0ZXN0X2JpdChVQ09OVEVYVF9O T19aRVJPTUFQLCAmY3R4LT51c2VyX2ZsYWdzKTsKIAkJYnJlYWs7CiAJY2FzZSBJOTE1X0NPTlRF WFRfUEFSQU1fR1RUX1NJWkU6CisJCWFyZ3MtPnNpemUgPSAwOworCiAJCWlmIChjdHgtPnBwZ3R0 KQogCQkJYXJncy0+dmFsdWUgPSBjdHgtPnBwZ3R0LT52bS50b3RhbDsKIAkJZWxzZSBpZiAodG9f aTkxNShkZXYpLT5tbS5hbGlhc2luZ19wcGd0dCkKQEAgLTg3NSwxNCArOTM4LDIwIEBAIGludCBp OTE1X2dlbV9jb250ZXh0X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCiAJCQlhcmdzLT52YWx1ZSA9IHRvX2k5MTUoZGV2KS0+Z2d0dC52bS50b3RhbDsK IAkJYnJlYWs7CiAJY2FzZSBJOTE1X0NPTlRFWFRfUEFSQU1fTk9fRVJST1JfQ0FQVFVSRToKKwkJ YXJncy0+c2l6ZSA9IDA7CiAJCWFyZ3MtPnZhbHVlID0gaTkxNV9nZW1fY29udGV4dF9ub19lcnJv cl9jYXB0dXJlKGN0eCk7CiAJCWJyZWFrOwogCWNhc2UgSTkxNV9DT05URVhUX1BBUkFNX0JBTk5B QkxFOgorCQlhcmdzLT5zaXplID0gMDsKIAkJYXJncy0+dmFsdWUgPSBpOTE1X2dlbV9jb250ZXh0 X2lzX2Jhbm5hYmxlKGN0eCk7CiAJCWJyZWFrOwogCWNhc2UgSTkxNV9DT05URVhUX1BBUkFNX1BS SU9SSVRZOgorCQlhcmdzLT5zaXplID0gMDsKIAkJYXJncy0+dmFsdWUgPSBjdHgtPnNjaGVkLnBy aW9yaXR5OwogCQlicmVhazsKKwljYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9TU0VVOgorCQlyZXQg PSBnZXRfc3NldShjdHgsIGFyZ3MpOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXQgPSAtRUlO VkFMOwogCQlicmVhazsKQEAgLTg5Miw2ICs5NjEsMjQ0IEBAIGludCBpOTE1X2dlbV9jb250ZXh0 X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJcmV0 dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBnZW44X2VtaXRfcnBjc19jb25maWcoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEsCisJCQkJIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKKwkJCQkgc3Ry dWN0IGludGVsX3NzZXUgc3NldSkKK3sKKwl1NjQgb2Zmc2V0OworCXUzMiAqY3M7CisKKwljcyA9 IGludGVsX3JpbmdfYmVnaW4ocnEsIDQpOworCWlmIChJU19FUlIoY3MpKQorCQlyZXR1cm4gUFRS X0VSUihjcyk7CisKKwlvZmZzZXQgPSBjZS0+c3RhdGUtPm5vZGUuc3RhcnQgKworCQlMUkNfU1RB VEVfUE4gKiBQQUdFX1NJWkUgKworCQkoQ1RYX1JfUFdSX0NMS19TVEFURSArIDEpICogNDsKKwor CSpjcysrID0gTUlfU1RPUkVfRFdPUkRfSU1NX0dFTjQgfCBNSV9VU0VfR0dUVDsKKwkqY3MrKyA9 IGxvd2VyXzMyX2JpdHMob2Zmc2V0KTsKKwkqY3MrKyA9IHVwcGVyXzMyX2JpdHMob2Zmc2V0KTsK KwkqY3MrKyA9IGdlbjhfbWFrZV9ycGNzKHJxLT5pOTE1LCAmc3NldSk7CisKKwlpbnRlbF9yaW5n X2FkdmFuY2UocnEsIGNzKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CitnZW44X21v ZGlmeV9ycGNzX2dwdShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCisJCSAgICAgc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkgICAgIHN0cnVjdCBpbnRlbF9zc2V1IHNzZXUpCit7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBlbmdpbmUtPmk5MTU7CisJc3RydWN0 IGk5MTVfcmVxdWVzdCAqcnEsICpwcmV2OworCWludCByZXQ7CisKKwlHRU1fQlVHX09OKCFjZS0+ cGluX2NvdW50KTsKKworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0 ZXgpOworCisJLyogU3VibWl0dGluZyByZXF1ZXN0cyBldGMgbmVlZHMgdGhlIGh3IGF3YWtlLiAq LworCWludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOworCisJcnEgPSBpOTE1X3JlcXVlc3RfYWxs b2MoZW5naW5lLCBpOTE1LT5rZXJuZWxfY29udGV4dCk7CisJaWYgKElTX0VSUihycSkpIHsKKwkJ cmV0ID0gUFRSX0VSUihycSk7CisJCWdvdG8gb3V0X3B1dDsKKwl9CisKKwlyZXQgPSBnZW44X2Vt aXRfcnBjc19jb25maWcocnEsIGNlLCBzc2V1KTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF9hZGQ7 CisKKwkvKiBRdWV1ZSB0aGlzIHN3aXRjaCBhZnRlciBhbGwgb3RoZXIgYWN0aXZpdHkgYnkgdGhp cyBjb250ZXh0LiAqLworCXByZXYgPSBpOTE1X2dlbV9hY3RpdmVfcmF3KCZjZS0+cmluZy0+dGlt ZWxpbmUtPmxhc3RfcmVxdWVzdCwKKwkJCQkgICAmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJ aWYgKHByZXYgJiYgIWk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocHJldikpCisJCWk5MTVfc3dfZmVu Y2VfYXdhaXRfc3dfZmVuY2VfZ2ZwKCZycS0+c3VibWl0LAorCQkJCQkJICZwcmV2LT5zdWJtaXQs CisJCQkJCQkgSTkxNV9GRU5DRV9HRlApOworCisJLyogT3JkZXIgYWxsIGZvbGxvd2luZyByZXF1 ZXN0cyB0byBiZSBhZnRlci4gKi8KKwlpOTE1X3RpbWVsaW5lX3NldF9iYXJyaWVyKGNlLT5yaW5n LT50aW1lbGluZSwgcnEpOworCisJLyoKKwkgKiBHdWFyYW50ZWUgY29udGV4dCBpbWFnZSBhbmQg dGhlIHRpbWVsaW5lIHJlbWFpbnMgcGlubmVkIHVudGlsIHRoZQorCSAqIG1vZGlmeWluZyByZXF1 ZXN0IGlzIHJldGlyZWQgYnkgc2V0dGluZyB0aGUgY2UgYWN0aXZpdHkgdHJhY2tlci4KKwkgKgor CSAqIEJ1dCB3ZSBvbmx5IG5lZWQgdG8gdGFrZSBvbmUgcGluIG9uIHRoZSBhY2NvdW50IG9mIGl0 LiBPciBpbiBvdGhlcgorCSAqIHdvcmRzIHRyYW5zZmVyIHRoZSBwaW5uZWQgY2Ugb2JqZWN0IHRv IHRyYWNrZWQgYWN0aXZlIHJlcXVlc3QuCisJICovCisJaWYgKCFpOTE1X2dlbV9hY3RpdmVfaXNz ZXQoJmNlLT5hY3RpdmUpKQorCQlfX2ludGVsX2NvbnRleHRfcGluKGNlKTsKKwlpOTE1X2dlbV9h Y3RpdmVfc2V0KCZjZS0+YWN0aXZlLCBycSk7CisKK291dF9hZGQ6CisJaTkxNV9yZXF1ZXN0X2Fk ZChycSk7CitvdXRfcHV0OgorCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUpOworCisJcmV0dXJu IHJldDsKK30KKworc3RhdGljIGludAoraTkxNV9nZW1fY29udGV4dF9yZWNvbmZpZ3VyZV9zc2V1 KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCisJCQkJICBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUsCisJCQkJICBzdHJ1Y3QgaW50ZWxfc3NldSBzc2V1KQoreworCXN0cnVjdCBp bnRlbF9jb250ZXh0ICpjZSA9IHRvX2ludGVsX2NvbnRleHQoY3R4LCBlbmdpbmUpOworCWludCBy ZXQ7CisKKwlHRU1fQlVHX09OKElOVEVMX0dFTihjdHgtPmk5MTUpIDwgOCk7CisJR0VNX0JVR19P TihlbmdpbmUtPmlkICE9IFJDUyk7CisKKwlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUo JmN0eC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsK KworCS8qIE5vdGhpbmcgdG8gZG8gaWYgdW5tb2RpZmllZC4gKi8KKwlpZiAoIW1lbWNtcCgmY2Ut PnNzZXUsICZzc2V1LCBzaXplb2Yoc3NldSkpKQorCQlnb3RvIG91dDsKKworCS8qCisJICogSWYg Y29udGV4dCBpcyBub3QgaWRsZSB3ZSBoYXZlIHRvIHN1Ym1pdCBhbiBvcmRlcmVkIHJlcXVlc3Qg dG8gbW9kaWZ5CisJICogaXRzIGNvbnRleHQgaW1hZ2UgdmlhIHRoZSBrZXJuZWwgY29udGV4dC4g UHJpc3RpbmUgYW5kIGlkbGUgY29udGV4dHMKKwkgKiB3aWxsIGJlIGNvbmZpZ3VyZWQgb24gcGlu bmluZy4KKwkgKi8KKwlpZiAoY2UtPnBpbl9jb3VudCkKKwkJcmV0ID0gZ2VuOF9tb2RpZnlfcnBj c19ncHUoY2UsIGVuZ2luZSwgc3NldSk7CisKKwlpZiAoIXJldCkKKwkJY2UtPnNzZXUgPSBzc2V1 OworCitvdXQ6CisJbXV0ZXhfdW5sb2NrKCZjdHgtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwor CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludAordXNlcl90b19jb250ZXh0X3NzZXUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCisJCSAgICAgY29uc3Qgc3RydWN0IGRybV9pOTE1 X2dlbV9jb250ZXh0X3BhcmFtX3NzZXUgKnVzZXIsCisJCSAgICAgc3RydWN0IGludGVsX3NzZXUg KmNvbnRleHQpCit7CisJY29uc3Qgc3RydWN0IHNzZXVfZGV2X2luZm8gKmRldmljZSA9ICZJTlRF TF9JTkZPKGk5MTUpLT5zc2V1OworCisJLyogTm8gemVyb3MgaW4gYW55IGZpZWxkLiAqLworCWlm ICghdXNlci0+c2xpY2VfbWFzayB8fCAhdXNlci0+c3Vic2xpY2VfbWFzayB8fAorCSAgICAhdXNl ci0+bWluX2V1c19wZXJfc3Vic2xpY2UgfHwgIXVzZXItPm1heF9ldXNfcGVyX3N1YnNsaWNlKQor CQlyZXR1cm4gLUVJTlZBTDsKKworCS8qIE1heCA+IG1pbi4gKi8KKwlpZiAodXNlci0+bWF4X2V1 c19wZXJfc3Vic2xpY2UgPCB1c2VyLT5taW5fZXVzX3Blcl9zdWJzbGljZSkKKwkJcmV0dXJuIC1F SU5WQUw7CisKKwkvKiBDaGVjayB2YWxpZGl0eSBhZ2FpbnN0IGhhcmR3YXJlLiAqLworCWlmICh1 c2VyLT5zbGljZV9tYXNrICYgfmRldmljZS0+c2xpY2VfbWFzaykKKwkJcmV0dXJuIC1FSU5WQUw7 CisKKwlpZiAodXNlci0+c3Vic2xpY2VfbWFzayAmIH5kZXZpY2UtPnN1YnNsaWNlX21hc2tbMF0p CisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKHVzZXItPm1heF9ldXNfcGVyX3N1YnNsaWNlID4g ZGV2aWNlLT5tYXhfZXVzX3Blcl9zdWJzbGljZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKgor CSAqIFNvbWUgZnV0dXJlIHByb29maW5nIG9uIHRoZSB0eXBlcyBzaW5jZSB0aGUgdUFQSSBpcyB3 aWRlciB0aGFuIHRoZQorCSAqIGN1cnJlbnQgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24uCisJICov CisJaWYgKFdBUk5fT04oKGZscyh1c2VyLT5zbGljZV9tYXNrKSA+CisJCSAgICAgc2l6ZW9mKGNv bnRleHQtPnNsaWNlX21hc2spICogQklUU19QRVJfQllURSkgfHwKKwkJICAgIChmbHModXNlci0+ c3Vic2xpY2VfbWFzaykgPgorCQkgICAgIHNpemVvZihjb250ZXh0LT5zdWJzbGljZV9tYXNrKSAq IEJJVFNfUEVSX0JZVEUpIHx8CisJCSAgICBvdmVyZmxvd3NfdHlwZSh1c2VyLT5taW5fZXVzX3Bl cl9zdWJzbGljZSwKKwkJCQkgICBjb250ZXh0LT5taW5fZXVzX3Blcl9zdWJzbGljZSkgfHwKKwkJ ICAgIG92ZXJmbG93c190eXBlKHVzZXItPm1heF9ldXNfcGVyX3N1YnNsaWNlLAorCQkJCSAgIGNv bnRleHQtPm1heF9ldXNfcGVyX3N1YnNsaWNlKSkpCisJCXJldHVybiAtRUlOVkFMOworCisJY29u dGV4dC0+c2xpY2VfbWFzayA9IHVzZXItPnNsaWNlX21hc2s7CisJY29udGV4dC0+c3Vic2xpY2Vf bWFzayA9IHVzZXItPnN1YnNsaWNlX21hc2s7CisJY29udGV4dC0+bWluX2V1c19wZXJfc3Vic2xp Y2UgPSB1c2VyLT5taW5fZXVzX3Blcl9zdWJzbGljZTsKKwljb250ZXh0LT5tYXhfZXVzX3Blcl9z dWJzbGljZSA9IHVzZXItPm1heF9ldXNfcGVyX3N1YnNsaWNlOworCisJLyogUGFydCBzcGVjaWZp YyByZXN0cmljdGlvbnMuICovCisJaWYgKElTX0dFTjExKGk5MTUpKSB7CisJCXVuc2lnbmVkIGlu dCBod19zc19wZXJfcyA9IGh3ZWlnaHQ4KGRldmljZS0+c3Vic2xpY2VfbWFza1swXSk7CisJCXVu c2lnbmVkIGludCByZXFfcyA9IGh3ZWlnaHQ4KGNvbnRleHQtPnNsaWNlX21hc2spOworCQl1bnNp Z25lZCBpbnQgcmVxX3NzID0gaHdlaWdodDgoY29udGV4dC0+c3Vic2xpY2VfbWFzayk7CisKKwkJ LyoKKwkJICogT25seSBmdWxsIHN1YnNsaWNlIGVuYWJsZW1lbnQgaXMgcG9zc2libGUgaWYgbW9y ZSB0aGFuIG9uZQorCQkgKiBzbGljZSBpcyB0dXJuZWQgb24uCisJCSAqLworCQlpZiAocmVxX3Mg PiAxICYmIHJlcV9zcyAhPSBod19zc19wZXJfcykKKwkJCXJldHVybiAtRUlOVkFMOworCisJCS8q CisJCSAqIElmIG1vcmUgdGhhbiBmb3VyIChTU2NvdW50IGJpdGZpZWxkIGxpbWl0KSBzdWJzbGlj ZXMgYXJlCisJCSAqIHJlcXVlc3RlZCB0aGVuIHRoZSBudW1iZXIgaGFzIHRvIGJlIGV2ZW4uCisJ CSAqLworCQlpZiAocmVxX3NzID4gNCAmJiAocmVxX3NzICYgMSkpCisJCQlyZXR1cm4gLUVJTlZB TDsKKworCQkvKgorCQkgKiBJZiBvbmx5IG9uZSBzbGljZSBpcyBlbmFibGVkIHN1YnNsaWNlIGNv dW50IG11c3QgYmUgYXQgbW9zdAorCQkgKiBoYWxmIG9mIHRoZSBhbGwgYXZhaWxhYmxlIHN1YnNs aWNlcy4KKwkJICovCisJCWlmIChyZXFfcyA9PSAxICYmIHJlcV9zcyA+IChod19zc19wZXJfcyAv IDIpKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bnQgc2V0X3NzZXUoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKKwkJICAgIHN0cnVjdCBk cm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSAqYXJncykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSA9IGN0eC0+aTkxNTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFy YW1fc3NldSB1c2VyX3NzZXU7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCXN0 cnVjdCBpbnRlbF9zc2V1IHNzZXU7CisJaW50IHJldDsKKworCWlmIChhcmdzLT5zaXplIDwgc2l6 ZW9mKHVzZXJfc3NldSkpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCFJU19HRU4xMShpOTE1 KSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJnVzZXJfc3NldSwg dTY0X3RvX3VzZXJfcHRyKGFyZ3MtPnZhbHVlKSwKKwkJCSAgIHNpemVvZih1c2VyX3NzZXUpKSkK KwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlpZiAodXNlcl9zc2V1LnJzdmQxIHx8IHVzZXJfc3NldS5y c3ZkMikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwllbmdpbmUgPSBpbnRlbF9lbmdpbmVfbG9va3Vw X3VzZXIoaTkxNSwKKwkJCQkJICB1c2VyX3NzZXUuY2xhc3MsCisJCQkJCSAgdXNlcl9zc2V1Lmlu c3RhbmNlKTsKKwlpZiAoIWVuZ2luZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBPbmx5IHJl bmRlciBlbmdpbmUgc3VwcG9ydHMgUlBDUyBjb25maWd1cmF0aW9uLiAqLworCWlmIChlbmdpbmUt PmNsYXNzICE9IFJFTkRFUl9DTEFTUykKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlyZXQgPSB1c2Vy X3RvX2NvbnRleHRfc3NldShpOTE1LCAmdXNlcl9zc2V1LCAmc3NldSk7CisJaWYgKHJldCkKKwkJ cmV0dXJuIHJldDsKKworCXJldCA9IGk5MTVfZ2VtX2NvbnRleHRfcmVjb25maWd1cmVfc3NldShj dHgsIGVuZ2luZSwgc3NldSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWFyZ3MtPnNp emUgPSBzaXplb2YodXNlcl9zc2V1KTsKKworCXJldHVybiAwOworfQorCiBpbnQgaTkxNV9nZW1f Y29udGV4dF9zZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAogCQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiB7CkBAIC05NTMsNyArMTI2MCw5IEBA IGludCBpOTE1X2dlbV9jb250ZXh0X3NldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCiAJCQkJY3R4LT5zY2hlZC5wcmlvcml0eSA9IHByaW9yaXR5OwogCQl9 CiAJCWJyZWFrOwotCisJY2FzZSBJOTE1X0NPTlRFWFRfUEFSQU1fU1NFVToKKwkJcmV0ID0gc2V0 X3NzZXUoY3R4LCBhcmdzKTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0ID0gLUVJTlZBTDsK IAkJYnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKaW5kZXggNzUx MGRlNzM4YjM1Li5jNGFlYmZlN2Q0ZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2NvbnRleHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmgKQEAgLTE3MCw2ICsxNzAsMTIgQEAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgewog CQl1NjQgbHJjX2Rlc2M7CiAJCWludCBwaW5fY291bnQ7CiAKKwkJLyoqCisJCSAqIGFjdGl2ZTog QWN0aXZlIHRyYWNrZXIgZm9yIHRoZSBleHRlcm5hbCBycSBhY3Rpdml0eSBvbiB0aGlzCisJCSAq IGludGVsX2NvbnRleHQgb2JqZWN0LgorCQkgKi8KKwkJc3RydWN0IGk5MTVfZ2VtX2FjdGl2ZSBh Y3RpdmU7CisKIAkJY29uc3Qgc3RydWN0IGludGVsX2NvbnRleHRfb3BzICpvcHM7CiAKIAkJLyoq IHNzZXU6IENvbnRyb2wgZXUvc2xpY2UgcGFydGl0aW9uaW5nICovCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCmluZGV4IDNiMzc5YzcyOTVhMy4uMGNmYTk5YTEzNTIyIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYwpAQCAtMjU1OCw3ICsyNTU4LDkgQEAgdTMyIGdlbjhfbWFrZV9ycGNzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBzdHJ1Y3QgaW50ZWxfc3NldSAqcmVxX3NzZXUpCiAJ ICogc3Vic2xpY2VzIGFyZSBlbmFibGVkLCBvciBhIGNvdW50IGJldHdlZW4gb25lIGFuZCBmb3Vy IG9uIHRoZSBmaXJzdAogCSAqIHNsaWNlLgogCSAqLwotCWlmIChJU19HRU4xMShpOTE1KSAmJiBz bGljZXMgPT0gMSAmJiBzdWJzbGljZXMgPj0gNCkgeworCWlmIChJU19HRU4xMShpOTE1KSAmJgor CSAgICBzbGljZXMgPT0gMSAmJgorCSAgICBzdWJzbGljZXMgPiBtaW5fdCh1OCwgNCwgaHdlaWdo dDgoc3NldS0+c3Vic2xpY2VfbWFza1swXSkgLyAyKSkgewogCQlHRU1fQlVHX09OKHN1YnNsaWNl cyAmIDEpOwogCiAJCXN1YnNsaWNlX3BnID0gZmFsc2U7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3Vh cGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggYTQ0 NDZmNDUyMDQwLi5lMTk1YzM4YjE1YTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkx NV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTE0NzgsOSArMTQ3 OCw1MiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gewogI2RlZmluZSAgIEk5 MTVfQ09OVEVYVF9NQVhfVVNFUl9QUklPUklUWQkxMDIzIC8qIGluY2x1c2l2ZSAqLwogI2RlZmlu ZSAgIEk5MTVfQ09OVEVYVF9ERUZBVUxUX1BSSU9SSVRZCQkwCiAjZGVmaW5lICAgSTkxNV9DT05U RVhUX01JTl9VU0VSX1BSSU9SSVRZCS0xMDIzIC8qIGluY2x1c2l2ZSAqLworCS8qCisJICogV2hl biB1c2luZyB0aGUgZm9sbG93aW5nIHBhcmFtLCB2YWx1ZSBzaG91bGQgYmUgYSBwb2ludGVyIHRv CisJICogZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW1fc3NldS4KKwkgKi8KKyNkZWZpbmUgSTkx NV9DT05URVhUX1BBUkFNX1NTRVUJCTB4NwogCV9fdTY0IHZhbHVlOwogfTsKIAorc3RydWN0IGRy bV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtX3NzZXUgeworCS8qCisJICogRW5naW5lIGNsYXNzICYg aW5zdGFuY2UgdG8gYmUgY29uZmlndXJlZCBvciBxdWVyaWVkLgorCSAqLworCV9fdTE2IGNsYXNz OworCV9fdTE2IGluc3RhbmNlOworCisJLyoKKwkgKiBVbnVzZWQgZm9yIG5vdy4gTXVzdCBiZSBj bGVhcmVkIHRvIHplcm8uCisJICovCisJX191MzIgcnN2ZDE7CisKKwkvKgorCSAqIE1hc2sgb2Yg c2xpY2VzIHRvIGVuYWJsZSBmb3IgdGhlIGNvbnRleHQuIFZhbGlkIHZhbHVlcyBhcmUgYSBzdWJz ZXQKKwkgKiBvZiB0aGUgYml0bWFzayB2YWx1ZSByZXR1cm5lZCBmb3IgSTkxNV9QQVJBTV9TTElD RV9NQVNLLgorCSAqLworCV9fdTY0IHNsaWNlX21hc2s7CisKKwkvKgorCSAqIE1hc2sgb2Ygc3Vi c2xpY2VzIHRvIGVuYWJsZSBmb3IgdGhlIGNvbnRleHQuIFZhbGlkIHZhbHVlcyBhcmUgYQorCSAq IHN1YnNldCBvZiB0aGUgYml0bWFzayB2YWx1ZSByZXR1cm4gYnkgSTkxNV9QQVJBTV9TVUJTTElD RV9NQVNLLgorCSAqLworCV9fdTY0IHN1YnNsaWNlX21hc2s7CisKKwkvKgorCSAqIE1pbmltdW0v TWF4aW11bSBudW1iZXIgb2YgRVVzIHRvIGVuYWJsZSBwZXIgc3Vic2xpY2UgZm9yIHRoZQorCSAq IGNvbnRleHQuIG1pbl9ldXNfcGVyX3N1YnNsaWNlIG11c3QgYmUgaW5mZXJpb3Igb3IgZXF1YWwg dG8KKwkgKiBtYXhfZXVzX3Blcl9zdWJzbGljZS4KKwkgKi8KKwlfX3UxNiBtaW5fZXVzX3Blcl9z dWJzbGljZTsKKwlfX3UxNiBtYXhfZXVzX3Blcl9zdWJzbGljZTsKKworCS8qCisJICogVW51c2Vk IGZvciBub3cuIE11c3QgYmUgY2xlYXJlZCB0byB6ZXJvLgorCSAqLworCV9fdTMyIHJzdmQyOwor fTsKKwogZW51bSBkcm1faTkxNV9vYV9mb3JtYXQgewogCUk5MTVfT0FfRk9STUFUX0ExMyA9IDEs CSAgICAvKiBIU1cgb25seSAqLwogCUk5MTVfT0FfRk9STUFUX0EyOSwJICAgIC8qIEhTVyBvbmx5 ICovCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=