From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sivakumar Thulasimani Subject: Re: [PATCH 3/3] drm/i915: Support DDI lane reversal for DP Date: Thu, 30 Jul 2015 09:43:37 +0530 Message-ID: <55B9A471.2070107@intel.com> References: <1438099409-25456-1-git-send-email-benjamin.tissoires@redhat.com> <1438099409-25456-4-git-send-email-benjamin.tissoires@redhat.com> <55B88E25.6000006@intel.com> <20150729152240.GD2743@mail.corp.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 207D46E242 for ; Wed, 29 Jul 2015 21:13:41 -0700 (PDT) In-Reply-To: <20150729152240.GD2743@mail.corp.redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Benjamin Tissoires Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, Todd Broch , linux-kernel@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiA3LzI5LzIwMTUgODo1MiBQTSwgQmVuamFtaW4gVGlzc29pcmVzIHdyb3RlOgo+IE9uIEp1 bCAyOSAyMDE1IG9yIHRoZXJlYWJvdXRzLCBTaXZha3VtYXIgVGh1bGFzaW1hbmkgd3JvdGU6Cj4+ IHdoeSBub3QgZGV0ZWN0IHJldmVyc2UgaW4gaW50ZWxfZHBfZGV0ZWN0L2ludGVsX2hwZF9wdWxz ZSA/IHRoYXQgd2F5IHlvdSBjYW4KPj4gaWRlbnRpZnkgYm90aCBsYW5lIGNvdW50IGFuZCByZXZl cnNhbCBzdGF0ZSB3aXRob3V0IHRvdWNoaW5nIGFueXRoaW5nIGluIHRoZQo+PiBsaW5rIHRyYWlu aW5nIGNvZGUuIGkgYW0geWV0IHRvIHVwc3RyZWFtIG15IGNoYW5nZXMgZm9yIENIVCB0aGF0IGkg Y2FuIHNoYXJlCj4+IGlmIHJlcXVpcmVkIHRoYXQgZG9lcyB0aGUgc2FtZSBpbiBpbnRlbF9kcF9k ZXRlY3Qgd2l0aG91dCB0b3VjaGluZyBhbnkgbGluZQo+PiBpbiBsaW5rIHRyYWluaW5nIHBhdGgu Cj4gV2l0aCBteSBjdXJyZW50IGxpbWl0ZWQga25vd2xlZGdlIG9mIHRoZSBkcCBob3RwbHVnIChh bmQgaTkxNSBkcml2ZXIpIEkKPiBhbSBub3Qgc3VyZSB3ZSBjb3VsZCBkZXRlY3QgdGhlIHJldmVy c2VkIHN0YXRlIHdpdGhvdXQgdHJ5aW5nIHRvIHRyYWluIDEKPiBsYW5lIG9ubHkuIEknZCBiZSBn bGFkIHRvIGxvb2sgYXQgeW91ciBjaGFuZ2VzIGFuZCB0ZXN0IHRoZW0gb24gbXkKPiBzeXN0ZW0g aWYgeW91IHRoaW5rIHRoYXQgY291bGQgaGVscCBoYXZpbmcgYSBjbGVhbmVyIHNvbHV0aW9uLgo+ Cj4gQ2hlZXJzLAo+IEJlbmphbWluCk5vLCB3aGF0IGkgcmVjb21tZW5kZWQgd2FzIHRvIGRvIGxp bmsgdHJhaW5pbmcgYnV0IGluIGludGVsX2RwX2RldGVjdC4gClNpbmNlIFVTQiBUeXBlIEMgY2Fi bGUKYWxzbyBoYXMgaXRzIG93biBsYW5lIGNvdW50IHJlc3RyaWN0aW9uIChpdCBjYW4gaGF2ZSBk aWZmZXJlbnQgbGFuZSAKY291bnQgdGhhbiB0aGUgb25lIHN1cHBvcnRlZApieSBwYW5lbCkgeW91 IG1pZ2h0IGhhdmUgdG8gZmlndXJlIHRoYXQgb3V0IGFzIHdlbGwuIHNvIGJvdGggcmV2ZXJzYWwg CmFuZCBsYW5lIGNvdW50IGRldGVjdGlvbgpjYW4gYmUgZG9uZSBvdXRzaWRlIHRoZSBtb2Rlc2V0 IHBhdGggYW5kIGtlZXAgdGhlIGNvZGUgZnJlZSBvZiB0eXBlIEMgCmNoYW5nZXMgb3V0c2lkZQpk ZXRlY3Rpb24gcGF0aC4KClBsZWFzZSBmaW5kIGJlbG93IHRoZSBjb2RlIHRvIGRvIHRoZSBzYW1l LiBEbyBub3Qgd2FzdGUgdGltZSB0cnlpbmcgdG8gCmFwcGx5IHRoaXMgZGlyZWN0bHkgb24Kbmln aHRseSBzaW5jZSB0aGlzIGlzIGJhc2VkIG9uIGEgbG9jYWwgdHJlZSBhbmQgYmVjYXVzZSB0aGlz IGlzIHByZS0gCmF0b21pYyBjaGFuZ2VzIGNvZGUsIHNvIHlvdQptaWdodCBoYXZlIHRvIG1vZGlm eSBjaHZfdXBmcm9udF9saW5rX3RyYWluIHRvIHdvcmsgb24gdG9wIG9mIHRoZSBsYXRlc3QgCm5p Z2h0bHkgY29kZS4gd2UKYXJlIHN1cHBvc2VkIHRvIHVwc3RyZWFtIHRoaXMgYW5kIGlzIGluIG15 IHRvZG8gbGlzdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQXV0aG9yOiBEdXJnYWRvc3MgUiA8ZHVyZ2Fkb3NzLnJA aW50ZWwuY29tPgpEYXRlOiAgIEZyaSBNYXkgMjIgMTQ6MzA6MDcgMjAxNSArMDUzMAoKICAgIGRy bS9pOTE1OiBFbmFibGUgVXBmcm9udCBsaW5rIHRyYWluaW5nIGZvciB0eXBlLUMgRFAgc3VwcG9y dAoKICAgICBUbyBzdXBwb3J0IFVTQiB0eXBlIEMgYWx0ZXJuYXRlIERQIG1vZGUsIHRoZSBkaXNw bGF5IGRyaXZlciBuZWVkcyAKdG8ga25vdyB0aGUKICAgICBudW1iZXIgb2YgbGFuZXMgcmVxdWly ZWQgYnkgRFAgcGFuZWwgYXMgd2VsbCBhcyBudW1iZXIgb2YgbGFuZXMgCnRoYXQgY2FuIGJlCiAg ICAgc3VwcG9ydGVkIGJ5IHRoZSB0eXBlLUMgY2FibGUuIFNvbWV0aW1lcywgdGhlIHR5cGUtQyBj YWJsZSBtYXkgCmxpbWl0IHRoZQogICAgIGJhbmR3aWR0aCBldmVuIGlmIFBhbmVsIGNhbiBzdXBw b3J0IG1vcmUgbGFuZXMuIFRvIGFkZHJlc3MgdGhlc2UgCnNjZW5hcmlvcywKICAgICB0aGUgZGlz cGxheSBkcml2ZXIgd2lsbCBzdGFydCBsaW5rIHRyYWluaW5nIHdpdGggbWF4IGxhbmVzLCBhbmQg aWYgCnRoZSBsaW5rCiAgICAgdHJhaW5pbmcgZmFpbHMsIHRoZSBkcml2ZXIgdGhlbiBmYWxscyBi YWNrIHRvIHgyIGxhbmVzLgoKICAgICAqIFNpbmNlIGxpbmsgdHJhaW5pbmcgaXMgZG9uZSBiZWZv cmUgbW9kZXNldCwgcGxhbmVzIGFyZSBub3QgCmVuYWJsZWQuIE9ubHkKICAgICAgIGVuY29kZXIg YW5kIHRoZSBpdHMgYXNzb2NpYXRlZCBQTExzIGFyZSBlbmFibGVkLgogICAgICogT25jZSBsaW5r IHRyYWluaW5nIGlzIGRvbmUsIHRoZSBlbmNvZGVyIGFuZCBpdHMgUExMcyBhcmUgCmRpc2FibGVk OyBzbyB0aGF0CiAgICAgICB0aGUgc3Vic2VxdWVudCBtb2Rlc2V0IGlzIG5vdCBhd2FyZSBvZiB0 aGVzZSBjaGFuZ2VzLgogICAgICogQXMgb2Ygbm93LCB0aGlzIGlzIHRlc3RlZCBvbmx5IG9uIENI Vi4KCiAgICAgU2lnbmVkLW9mZi1ieTogRHVyZ2Fkb3NzIFIgPGR1cmdhZG9zcy5yQGludGVsLmNv bT4KCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgCmIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDBjOGFlMmEuLmM3MmRj YWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTE0NzkzLDMgKzE0Nzkz LDEyMSBAQCBpbnRlbF9kaXNwbGF5X3ByaW50X2Vycm9yX3N0YXRlKHN0cnVjdCAKZHJtX2k5MTVf ZXJyb3Jfc3RhdGVfYnVmICptLAogICAgICAgICAgZXJyX3ByaW50ZihtLCAiICBWU1lOQzogJTA4 eFxuIiwgZXJyb3ItPnRyYW5zY29kZXJbaV0udnN5bmMpOwogICAgICB9CiAgfQorCitib29sIGNo dl91cGZyb250X2xpbmtfdHJhaW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKyAgICAgICAgc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwgc3RydWN0IGludGVsX2NydGMgKmNydGMpCit7CisgICAg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKyAg ICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRf Y29ubmVjdG9yOworICAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gY29ubmVjdG9y LT5lbmNvZGVyOworICAgIGJvb2wgZm91bmQgPSBmYWxzZTsKKyAgICBib29sIHZhbGlkX2NydGMg PSBmYWxzZTsKKworICAgIGlmICghY29ubmVjdG9yIHx8ICFlbmNvZGVyKSB7CisgICAgICAgIERS TV9ERUJVR19LTVMoImRwIGNvbm5lY3Rvci9lbmNvZGVyIGlzIE5VTExcbiIpOworICAgICAgICBy ZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyogSWYgd2UgYWxyZWFkeSBoYXZlIGEgY3J0Yywg c3RhcnQgbGluayB0cmFpbmluZyBkaXJlY3RseSAqLworICAgIGlmIChjcnRjKSB7CisgICAgICAg IHZhbGlkX2NydGMgPSB0cnVlOworICAgICAgICBnb3RvIHN0YXJ0X2xpbmtfdHJhaW47CisgICAg fQorCisgICAgLyogRmluZCBhbiB1bnVzZWQgY3J0YyBhbmQgdXNlIGl0IGZvciBsaW5rIHRyYWlu aW5nICovCisgICAgZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYsIGNydGMpIHsKKyAgICAgICAgaWYg KGludGVsX2NydGNfYWN0aXZlKCZjcnRjLT5iYXNlKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor CisgICAgICAgIGNvbm5lY3Rvci0+bmV3X2VuY29kZXIgPSBlbmNvZGVyOworICAgICAgICBlbmNv ZGVyLT5uZXdfY3J0YyA9IGNydGM7CisgICAgICAgIGVuY29kZXItPmJhc2UuY3J0YyA9ICZjcnRj LT5iYXNlOworCisgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGUgbmV3IGNydGMgd2lsbCB3b3JrIHdp dGggdGhlIGVuY29kZXIgKi8KKyAgICAgICAgaWYgKGRybV9lbmNvZGVyX2NydGNfb2soJmVuY29k ZXItPmJhc2UsCisgICAgICAgICAgICAgICAgICAgICAmY3J0Yy0+YmFzZSkpIHsKKyAgICAgICAg ICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQor CisgICAgaWYgKCFmb3VuZCkgeworICAgICAgICBEUk1fRVJST1IoIkNvdWxkIG5vdCBmaW5kIGNy dGMgZm9yIHVwZnJvbnQgbGluayB0cmFpbmluZ1xuIik7CisgICAgICAgIHJldHVybiBmYWxzZTsK KyAgICB9CisKK3N0YXJ0X2xpbmtfdHJhaW46CisKKyAgICBEUk1fREVCVUdfS01TKCJ1cGZyb250 IGxpbmsgdHJhaW5pbmcgb24gcGlwZTolY1xuIiwKKyAgICAgICAgICAgICAgICAgICAgcGlwZV9u YW1lKGNydGMtPnBpcGUpKTsKKyAgICBmb3VuZCA9IGZhbHNlOworCisgICAgLyogSW5pdGlhbGl6 ZSB3aXRoIE1heCBMaW5rIHJhdGUgJiBsYW5lIGNvdW50IHN1cHBvcnRlZCBieSBwYW5lbCAqLwor ICAgIGludGVsX2RwLT5saW5rX2J3ID0gIGludGVsX2RwLT5kcGNkW0RQX01BWF9MSU5LX1JBVEVd OworICAgIGludGVsX2RwLT5sYW5lX2NvdW50ID0gaW50ZWxfZHAtPmRwY2RbRFBfTUFYX0xBTkVf Q09VTlRdICYKKyAgICAgICAgICAgICAgICAgICAgRFBfTUFYX0xBTkVfQ09VTlRfTUFTSzsKKwor ICAgIGRvIHsKKyAgICAgICAgLyogRmluZCBwb3J0IGNsb2NrIGZyb20gbGlua19idyAqLworICAg ICAgICBjcnRjLT5jb25maWcucG9ydF9jbG9jayA9CisgICAgICAgICAgICAgICAgZHJtX2RwX2J3 X2NvZGVfdG9fbGlua19yYXRlKGludGVsX2RwLT5saW5rX2J3KTsKKworICAgICAgICAvKiBFbmFi bGUgUExMIGZvbGxvd2VkIGJ5IHBvcnQgKi8KKyAgICAgICAgaW50ZWxfZHBfc2V0X2Nsb2NrKGVu Y29kZXIsICZjcnRjLT5jb25maWcsIGludGVsX2RwLT5saW5rX2J3KTsKKyAgICAgICAgY2h2X3Vw ZGF0ZV9wbGwoY3J0Yyk7CisgICAgICAgIGVuY29kZXItPnByZV9wbGxfZW5hYmxlKGVuY29kZXIp OworICAgICAgICBjaHZfZW5hYmxlX3BsbChjcnRjKTsKKyAgICAgICAgZW5jb2Rlci0+cHJlX2Vu YWJsZShlbmNvZGVyKTsKKworICAgICAgICAvKiBDaGVjayBpZiBsaW5rIHRyYWluaW5nIHBhc3Nl ZDsgaWYgc28gdXBkYXRlIGxhbmUgY291bnQgKi8KKyAgICAgICAgaWYgKGludGVsX2RwLT50cmFp bl9zZXRfdmFsaWQpIHsKKyAgICAgICAgICAgIGludGVsX2RwLT5kcGNkW0RQX01BWF9MQU5FX0NP VU5UXSAmPQorICAgICAgICAgICAgICAgICAgICAgICAgfkRQX01BWF9MQU5FX0NPVU5UX01BU0s7 CisgICAgICAgICAgICBpbnRlbF9kcC0+ZHBjZFtEUF9NQVhfTEFORV9DT1VOVF0gfD0KKyAgICAg ICAgICAgICAgICBpbnRlbF9kcC0+bGFuZV9jb3VudCAmIERQX01BWF9MQU5FX0NPVU5UX01BU0s7 CisKKyAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFJl c2V0IGVuY29kZXIgZm9yIG5leHQgcmV0cnkgb3IgZm9yIGNsZWFuIHVwICovCisgICAgICAgIGVu Y29kZXItPmRpc2FibGUoZW5jb2Rlcik7CisgICAgICAgIGVuY29kZXItPnBvc3RfZGlzYWJsZShl bmNvZGVyKTsKKyAgICAgICAgY2h2X2Rpc2FibGVfcGxsKGRldl9wcml2LCBjcnRjLT5waXBlKTsK KworICAgICAgICBpZiAoZm91bmQpCisgICAgICAgICAgICBnb3RvIGV4aXQ7CisKKyAgICAgICAg RFJNX0RFQlVHX0tNUygidXBmcm9udCBsaW5rIHRyYWluaW5nIGZhaWxlZC4gbGFuZXM6JWQgYnc6 JWRcbiIsCisgICAgICAgICAgICAgICAgaW50ZWxfZHAtPmxhbmVfY291bnQsIGludGVsX2RwLT5s aW5rX2J3KTsKKworICAgICAgICAvKiBHbyBkb3duIHRvIHRoZSBuZXh0IGxldmVsIGFuZCByZXRy eSBsaW5rIHRyYWluaW5nICovCisgICAgICAgIGlmIChpbnRlbF9kcC0+bGFuZV9jb3VudCA9PSA0 KSB7CisgICAgICAgICAgICBpbnRlbF9kcC0+bGFuZV9jb3VudCA9IDI7CisgICAgICAgIH0gZWxz ZSBpZiAoaW50ZWxfZHAtPmxhbmVfY291bnQgPT0gMikgeworICAgICAgICAgICAgaW50ZWxfZHAt PmxhbmVfY291bnQgPSAxOworICAgICAgICB9IGVsc2UgaWYgKGludGVsX2RwLT5saW5rX2J3ID09 IERQX0xJTktfQldfNV80KSB7CisgICAgICAgICAgICBpbnRlbF9kcC0+bGlua19idyA9IERQX0xJ TktfQldfMl83OworICAgICAgICAgICAgaW50ZWxfZHAtPmxhbmVfY291bnQgPSA0OworICAgICAg ICB9IGVsc2UgaWYgKGludGVsX2RwLT5saW5rX2J3ID09IERQX0xJTktfQldfMl83KSB7CisgICAg ICAgICAgICBpbnRlbF9kcC0+bGlua19idyA9IERQX0xJTktfQldfMV82MjsKKyAgICAgICAgICAg IGludGVsX2RwLT5sYW5lX2NvdW50ID0gNDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg IC8qIFRyaWVkIGFsbCBjb21iaW5hdGlvbnMsIHNvIGV4aXQgKi8KKyAgICAgICAgICAgIGJyZWFr OworICAgICAgICB9CisKKyAgICB9IHdoaWxlICgxKTsKKworZXhpdDoKKyAgICAvKiBDbGVhciBs b2NhbCBhc3NvY2lhdGlvbnMgbWFkZSAqLworICAgIGlmICghdmFsaWRfY3J0YykgeworICAgICAg ICBjb25uZWN0b3ItPm5ld19lbmNvZGVyID0gTlVMTDsKKyAgICAgICAgZW5jb2Rlci0+bmV3X2Ny dGMgPSBOVUxMOworICAgICAgICBlbmNvZGVyLT5iYXNlLmNydGMgPSBOVUxMOworICAgIH0KKwor ICAgIGlmIChmb3VuZCkKKyAgICAgICAgRFJNX0RFQlVHX0tNUygidXBmcm9udCBsaW5rIHRyYWlu aW5nIHBhc3NlZC4gbGFuZXM6JWQgYnc6JWRcbiIsCisgICAgICAgICAgICAgICAgaW50ZWxfZHAt PmxhbmVfY291bnQsIGludGVsX2RwLT5saW5rX2J3KTsKKyAgICByZXR1cm4gZm91bmQ7Cit9CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIApiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMKaW5kZXggOTdmMDNiZi4uMzk0YTdhNSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCkBAIC04NzgsNyArODc4LDcgQEAgaW50ZWxfZHBfY29ubmVjdG9yX3VucmVn aXN0ZXIoc3RydWN0IGludGVsX2Nvbm5lY3RvciAKKmludGVsX2Nvbm5lY3RvcikKICAgICAgaW50 ZWxfY29ubmVjdG9yX3VucmVnaXN0ZXIoaW50ZWxfY29ubmVjdG9yKTsKICB9Cgotc3RhdGljIHZv aWQKK3ZvaWQKICBpbnRlbF9kcF9zZXRfY2xvY2soc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAgICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19jb25maWcgKnBpcGVfY29uZmlnLCBp bnQgbGlua19idykKICB7CkBAIC0xMDEwLDcgKzEwMTAsNiBAQCBpbnRlbF9kcF9jb21wdXRlX2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKICAgICAgICAgICAgICAgICAgbGlu a19jbG9jayA9IGRybV9kcF9id19jb2RlX3RvX2xpbmtfcmF0ZShid3NbY2xvY2tdKTsKICAgICAg ICAgICAgICAgICAgbGlua19hdmFpbCA9IGludGVsX2RwX21heF9kYXRhX3JhdGUobGlua19jbG9j aywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5lX2NvdW50KTsKLQog ICAgICAgICAgICAgICAgICBpZiAobW9kZV9yYXRlIDw9IGxpbmtfYXZhaWwpIHsKICAgICAgICAg ICAgICAgICAgICAgIGdvdG8gZm91bmQ7CiAgICAgICAgICAgICAgICAgIH0KQEAgLTQ1MjIsNiAr NDUyMSwxMSBAQCBnNHhfZHBfZGV0ZWN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAgICAg IGlmICgoSTkxNV9SRUFEKFBPUlRfSE9UUExVR19TVEFUKSAmIGJpdCkgPT0gMCkKICAgICAgICAg IHJldHVybiBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKCisgICAgLyogQXZvaWQgRFBD RCBvcGVydGF0aW9ucyBpZiBzdGF0dXMgaXMgc2FtZSAqLworICAgIGlmIChpbnRlbF9kcC0+YXR0 YWNoZWRfY29ubmVjdG9yLT5iYXNlLnN0YXR1cyA9PQorICAgICAgICAgICAgICAgIGNvbm5lY3Rv cl9zdGF0dXNfY29ubmVjdGVkKQorICAgICAgICByZXR1cm4gY29ubmVjdG9yX3N0YXR1c19jb25u ZWN0ZWQ7CisKICAgICAgcmV0dXJuIGludGVsX2RwX2RldGVjdF9kcGNkKGludGVsX2RwKTsKICB9 CgpAQCAtNDU2NiwxMSArNDU3MCwxMyBAQCBpbnRlbF9kcF9kZXRlY3Qoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwgCmJvb2wgZm9yY2UpCiAgICAgIHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAgPSBpbnRlbF9hdHRhY2hlZF9kcChjb25uZWN0b3IpOwogICAgICBzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsK ICAgICAgc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50ZWxfZGlnX3Bv cnQtPmJhc2U7CisgICAgc3RydWN0IGRybV9jcnRjICpjcnRjID0gaW50ZWxfZGlnX3BvcnQtPmJh c2UuYmFzZS5jcnRjOwogICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5k ZXY7CiAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7CiAgICAgIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3RhdHVzOwogICAgICBlbnVt IGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKICAgICAgc3RydWN0IGVk aWQgKmVkaWQgPSBOVUxMOworICAgIHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gTlVM TDsKCiAgICAgIGludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKCkBAIC00NTkwLDYgKzQ1 OTYsMTEgQEAgaW50ZWxfZHBfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is IApib29sIGZvcmNlKQogICAgICBpZiAoc3RhdHVzICE9IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVj dGVkKQogICAgICAgICAgZ290byBvdXQ7CgorICAgIGlmIChjb25uZWN0b3ItPnN0YXR1cyA9PSBj b25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkgeworICAgICAgICBEUk1fREVCVUdfS01TKCJDb25u ZWN0b3Igc3RhdHVzIGlzIGFscmVhZHkgY29ubmVjdGVkXG4iKTsKKyAgICAgICAgZ290byBvdXQ7 CisgICAgfQorCiAgICAgIGludGVsX2RwX3Byb2JlX291aShpbnRlbF9kcCk7CgogICAgICBpZiAo aW50ZWxfZHAtPmZvcmNlX2F1ZGlvICE9IEhETUlfQVVESU9fQVVUTykgewpAQCAtNDYwNCw2ICs0 NjE1LDIyIEBAIGludGVsX2RwX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LCAKYm9vbCBmb3JjZSkKCiAgICAgIGlmIChpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09V VFBVVF9FRFApCiAgICAgICAgICBpbnRlbF9lbmNvZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX0RJ U1BMQVlQT1JUOworCisgICAgaWYgKElTX0NIRVJSWVZJRVcoZGV2KSAmJgorICAgICAgICAgICAg aW50ZWxfZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRElTUExBWVBPUlQpIHsKKyAgICAg ICAgLyogSGFuZGxlIGNvbm5lY3RlZCBib290IHNjZW5hcmlvIHdoZXJlIHBhbmVsIGlzIGVuYWJs ZWQKKyAgICAgICAgICogYnkgR09QL1ZCSU9TLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGlu dGVsX2VuY29kZXItPmNvbm5lY3RvcnNfYWN0aXZlICYmCisgICAgICAgICAgICAgICAgICAgICAg ICBjcnRjICYmIGNydGMtPmVuYWJsZWQpIHsKKyAgICAgICAgICAgIGludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKGNydGMpOworICAgICAgICAgICAgRFJNX0RFQlVHX0tNUygiRGlzYWJsaW5nIGNy dGMgJWMgZm9yIHVwZnJvbnQgbGluayB0cmFpbmluZ1xuIiwKKyAgICAgICAgICAgICAgICAgICAg cGlwZV9uYW1lKGludGVsX2NydGMtPnBpcGUpKTsKKyAgICAgICAgICAgIGludGVsX2NydGNfY29u dHJvbChjcnRjLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgY2h2X3VwZnJvbnRfbGlua190 cmFpbihkZXYsIGludGVsX2RwLCBpbnRlbF9jcnRjKTsKKyAgICB9CisKICAgICAgc3RhdHVzID0g Y29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7CgogIG91dDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIApiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCmluZGV4IGZjMjY2ZGEuLjE1ZWVmOTRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApA QCAtOTkxLDYgKzk5MSwxMCBAQCB2b2lkIGludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3RydWN0 IGludGVsX2RwIAoqaW50ZWxfZHApOwogIHZvaWQgaW50ZWxfZHBfY29tcGxldGVfbGlua190cmFp bihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKICB2b2lkIGludGVsX2RwX3N0b3BfbGlua190 cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKICBib29sIGludGVsX2RwX2Zhc3RfbGlu a190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKK2Jvb2wgY2h2X3VwZnJvbnRfbGlu a190cmFpbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorICAgICAgICAgICAgc3RydWN0IGludGVs X2RwICppbnRlbF9kcCwgc3RydWN0IGludGVsX2NydGMgKmNydGMpOwordm9pZCBpbnRlbF9kcF9z ZXRfY2xvY2soc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisgICAgICAgICAgICBzdHJ1 Y3QgaW50ZWxfY3J0Y19jb25maWcgKnBpcGVfY29uZmlnLCBpbnQgbGlua19idyk7CiAgdm9pZCBp bnRlbF9kcF9zaW5rX2RwbXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IG1vZGUpOwog IHZvaWQgaW50ZWxfZHBfc2V0X20yX24yKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBzdHJ1Y3Qg aW50ZWxfbGlua19tX24gCiptX24pOwogIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95KHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7CgotLSAKcmVnYXJkcywKU2l2YWt1bWFyCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=