From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 1/5] drm/i915: Setup DPLL/DPLLMD for DSI too on VLV/CHV Date: Fri, 15 Apr 2016 16:09:31 +0300 Message-ID: <8737qnqar8.fsf@intel.com> References: <1460488478-18311-1-git-send-email-ville.syrjala@linux.intel.com> <1460488478-18311-2-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 639C46EC49 for ; Fri, 15 Apr 2016 13:09:33 +0000 (UTC) In-Reply-To: <1460488478-18311-2-git-send-email-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: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org Cc: Deepak M List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAxMiBBcHIgMjAxNiwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3JvdGU6 Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K Pgo+IFNldCB1cCBEUExMIGFuZCBEUExMX01EIGV2ZW4gd2hlbiBkcml2aW5nIERTSSBvdXRwdXQg b24gVkxWL0NIVi4gV2hpbGUKPiB0aGUgRFBMTCBpc24ndCB1c2VkIHRvIHByb3ZpZGUgdGhlIGNs b2NrIHdlIHN0aWxsIG5lZWQgdGhlIHJlZmNsb2NrLCBhbmQKPiBpdCBhcHBlYXJzIHRoYXQgdGhl IHBpeGVsIHJlcGVhdCBmYWN0b3IgYWxzbyBoYXMgYW4gZWZmZWN0IG9uIERTSQo+IG91dHB1dC4g U28gc2V0IHVwIGV2ZXlyaGluZyBpbiBEUExMIGFuZCBEUExMX01EIGFzIHdlIHdvdWxkIGRvIGZv cgo+IERQL0hETUkvVkdBLCBidXQgZG9uJ3QgYWN0dWFsbHkgZW5hYmxlIHRoZSBEUExMIG9yIGNv bmZpZ3VyZSB0aGUKPiBkaXZpZGVycyB2aWEgRFBJTy4KPgo+IFNpZ25lZC1vZmYtYnk6IFZpbGxl IFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CgpSZXZpZXdlZC1ieTog SmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KCkkgcXVpY2tseSBnbGFuY2VkIG92 ZXIgMi01IHRvbywgbXkgZWFybGllciByLWIgb24gdGhlbSBzdGlsbCBzdGFuZC4KCj4gLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDEyMCArKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2ku YyAgICAgfCAgMjggKystLS0tLS0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCsp LCA2OCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBp bmRleCA2MDdkYzQxYmNjNjguLjdjNzRhOTMwZjQ1ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiBAQCAtMTUzMCw0NSArMTUzMCw0NyBAQCBzdGF0aWMgdm9pZCBhc3Nl cnRfcGNoX3BvcnRzX2Rpc2FibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiAgCWFzc2VydF9wY2hfaGRtaV9kaXNhYmxlZChkZXZfcHJpdiwgcGlwZSwgUENIX0hETUlEKTsK PiAgfQo+ICAKPiArc3RhdGljIHZvaWQgX3Zsdl9lbmFibGVfcGxsKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLAo+ICsJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGMtPmJhc2UuZGV2KTsKPiArCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiArCj4g KwlJOTE1X1dSSVRFKERQTEwocGlwZSksIHBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGwp Owo+ICsJUE9TVElOR19SRUFEKERQTEwocGlwZSkpOwo+ICsJdWRlbGF5KDE1MCk7Cj4gKwo+ICsJ aWYgKHdhaXRfZm9yKCgoSTkxNV9SRUFEKERQTEwocGlwZSkpICYgRFBMTF9MT0NLX1ZMVikgPT0g RFBMTF9MT0NLX1ZMViksIDEpKQo+ICsJCURSTV9FUlJPUigiRFBMTCAlZCBmYWlsZWQgdG8gbG9j a1xuIiwgcGlwZSk7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIHZsdl9lbmFibGVfcGxsKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5i YXNlLmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGMtPmJhc2UuZGV2KTsKPiAgCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiAtCWk5 MTVfcmVnX3QgcmVnID0gRFBMTChwaXBlKTsKPiAtCXUzMiBkcGxsID0gcGlwZV9jb25maWctPmRw bGxfaHdfc3RhdGUuZHBsbDsKPiAgCj4gIAlhc3NlcnRfcGlwZV9kaXNhYmxlZChkZXZfcHJpdiwg cGlwZSk7Cj4gIAo+ICAJLyogUExMIGlzIHByb3RlY3RlZCBieSBwYW5lbCwgbWFrZSBzdXJlIHdl IGNhbiB3cml0ZSBpdCAqLwo+ICAJYXNzZXJ0X3BhbmVsX3VubG9ja2VkKGRldl9wcml2LCBwaXBl KTsKPiAgCj4gLQlJOTE1X1dSSVRFKHJlZywgZHBsbCk7Cj4gLQlQT1NUSU5HX1JFQUQocmVnKTsK PiAtCXVkZWxheSgxNTApOwo+IC0KPiAtCWlmICh3YWl0X2ZvcigoKEk5MTVfUkVBRChyZWcpICYg RFBMTF9MT0NLX1ZMVikgPT0gRFBMTF9MT0NLX1ZMViksIDEpKQo+IC0JCURSTV9FUlJPUigiRFBM TCAlZCBmYWlsZWQgdG8gbG9ja1xuIiwgcGlwZSk7Cj4gKwlpZiAocGlwZV9jb25maWctPmRwbGxf aHdfc3RhdGUuZHBsbCAmIERQTExfVkNPX0VOQUJMRSkKPiArCQlfdmx2X2VuYWJsZV9wbGwoY3J0 YywgcGlwZV9jb25maWcpOwo+ICAKPiAgCUk5MTVfV1JJVEUoRFBMTF9NRChwaXBlKSwgcGlwZV9j b25maWctPmRwbGxfaHdfc3RhdGUuZHBsbF9tZCk7Cj4gIAlQT1NUSU5HX1JFQUQoRFBMTF9NRChw aXBlKSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGNodl9lbmFibGVfcGxsKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAo+IC0JCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcpCj4gKwo+ICtzdGF0aWMgdm9pZCBfY2h2X2VuYWJsZV9wbGwoc3RydWN0IGludGVs X2NydGMgKmNydGMsCj4gKwkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRl djsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMt PmJhc2UuZGV2KTsKPiAgCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiAgCWVudW0gZHBp b19jaGFubmVsIHBvcnQgPSB2bHZfcGlwZV90b19jaGFubmVsKHBpcGUpOwo+ICAJdTMyIHRtcDsK PiAgCj4gLQlhc3NlcnRfcGlwZV9kaXNhYmxlZChkZXZfcHJpdiwgcGlwZSk7Cj4gLQo+IC0JLyog UExMIGlzIHByb3RlY3RlZCBieSBwYW5lbCwgbWFrZSBzdXJlIHdlIGNhbiB3cml0ZSBpdCAqLwo+ IC0JYXNzZXJ0X3BhbmVsX3VubG9ja2VkKGRldl9wcml2LCBwaXBlKTsKPiAtCj4gIAltdXRleF9s b2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gIAo+ICAJLyogRW5hYmxlIGJhY2sgdGhlIDEwYml0 IGNsb2NrIHRvIGRpc3BsYXkgY29udHJvbGxlciAqLwo+IEBAIC0xNTg5LDYgKzE1OTEsMjEgQEAg c3RhdGljIHZvaWQgY2h2X2VuYWJsZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAkv KiBDaGVjayBQTEwgaXMgbG9ja2VkICovCj4gIAlpZiAod2FpdF9mb3IoKChJOTE1X1JFQUQoRFBM TChwaXBlKSkgJiBEUExMX0xPQ0tfVkxWKSA9PSBEUExMX0xPQ0tfVkxWKSwgMSkpCj4gIAkJRFJN X0VSUk9SKCJQTEwgJWQgZmFpbGVkIHRvIGxvY2tcbiIsIHBpcGUpOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgdm9pZCBjaHZfZW5hYmxlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiArCQkJICAg Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICt7Cj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsK PiArCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiArCj4gKwlhc3NlcnRfcGlwZV9kaXNh YmxlZChkZXZfcHJpdiwgcGlwZSk7Cj4gKwo+ICsJLyogUExMIGlzIHByb3RlY3RlZCBieSBwYW5l bCwgbWFrZSBzdXJlIHdlIGNhbiB3cml0ZSBpdCAqLwo+ICsJYXNzZXJ0X3BhbmVsX3VubG9ja2Vk KGRldl9wcml2LCBwaXBlKTsKPiArCj4gKwlpZiAocGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUu ZHBsbCAmIERQTExfVkNPX0VOQUJMRSkKPiArCQlfY2h2X2VuYWJsZV9wbGwoY3J0YywgcGlwZV9j b25maWcpOwo+ICAKPiAgCWlmIChwaXBlICE9IFBJUEVfQSkgewo+ICAJCS8qCj4gQEAgLTYwNzMs MTQgKzYwOTAsMTIgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCj4gIAkJaWYgKGVuY29kZXItPnByZV9wbGxfZW5hYmxlKQo+ICAJCQll bmNvZGVyLT5wcmVfcGxsX2VuYWJsZShlbmNvZGVyKTsKPiAgCj4gLQlpZiAoIWludGVsX2NydGMt PmNvbmZpZy0+aGFzX2RzaV9lbmNvZGVyKSB7Cj4gLQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkg ewo+IC0JCQljaHZfcHJlcGFyZV9wbGwoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+Y29uZmlnKTsK PiAtCQkJY2h2X2VuYWJsZV9wbGwoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+Y29uZmlnKTsKPiAt CQl9IGVsc2Ugewo+IC0JCQl2bHZfcHJlcGFyZV9wbGwoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+ Y29uZmlnKTsKPiAtCQkJdmx2X2VuYWJsZV9wbGwoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+Y29u ZmlnKTsKPiAtCQl9Cj4gKwlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gKwkJY2h2X3ByZXBh cmVfcGxsKGludGVsX2NydGMsIGludGVsX2NydGMtPmNvbmZpZyk7Cj4gKwkJY2h2X2VuYWJsZV9w bGwoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+Y29uZmlnKTsKPiArCX0gZWxzZSB7Cj4gKwkJdmx2 X3ByZXBhcmVfcGxsKGludGVsX2NydGMsIGludGVsX2NydGMtPmNvbmZpZyk7Cj4gKwkJdmx2X2Vu YWJsZV9wbGwoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+Y29uZmlnKTsKPiAgCX0KPiAgCj4gIAlm b3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQo+IEBAIC02MTE4LDcg KzYxMzMsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+ICAJc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0KPiAgCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMt PnN0YXRlKTsKPiAtCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiArCWVudW0gcGlwZSBw aXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAgCj4gIAlpZiAoV0FSTl9PTihpbnRlbF9jcnRjLT5h Y3RpdmUpKQo+ICAJCXJldHVybjsKPiBAQCAtNzE3NCwxMSArNzE4OSwxNSBAQCBzdGF0aWMgdm9p ZCB2bHZfY29tcHV0ZV9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkgICAgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICAJcGlwZV9jb25maWct PmRwbGxfaHdfc3RhdGUuZHBsbCA9IERQTExfSU5URUdSQVRFRF9SRUZfQ0xLX1ZMViB8Cj4gLQkJ RFBMTF9SRUZfQ0xLX0VOQUJMRV9WTFYgfCBEUExMX1ZHQV9NT0RFX0RJUyB8Cj4gLQkJRFBMTF9W Q09fRU5BQkxFIHwgRFBMTF9FWFRfQlVGRkVSX0VOQUJMRV9WTFY7Cj4gKwkJRFBMTF9SRUZfQ0xL X0VOQUJMRV9WTFYgfCBEUExMX1ZHQV9NT0RFX0RJUzsKPiAgCWlmIChjcnRjLT5waXBlICE9IFBJ UEVfQSkKPiAgCQlwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsIHw9IERQTExfSU5URUdS QVRFRF9DUklfQ0xLX1ZMVjsKPiAgCj4gKwkvKiBEUExMIG5vdCB1c2VkIHdpdGggRFNJLCBidXQg c3RpbGwgbmVlZCB0aGUgcmVzdCBzZXQgdXAgKi8KPiArCWlmICghaW50ZWxfcGlwZV93aWxsX2hh dmVfdHlwZShwaXBlX2NvbmZpZywgSU5URUxfT1VUUFVUX0RTSSkpCj4gKwkJcGlwZV9jb25maWct PmRwbGxfaHdfc3RhdGUuZHBsbCB8PSBEUExMX1ZDT19FTkFCTEUgfAo+ICsJCQlEUExMX0VYVF9C VUZGRVJfRU5BQkxFX1ZMVjsKPiArCj4gIAlwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxs X21kID0KPiAgCQkocGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXIgLSAxKSA8PCBEUExMX01E X1VESV9NVUxUSVBMSUVSX1NISUZUOwo+ICB9Cj4gQEAgLTcxODcsMTEgKzcyMDYsMTQgQEAgc3Rh dGljIHZvaWQgY2h2X2NvbXB1dGVfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQkJ ICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gIHsKPiAgCXBpcGVf Y29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGwgPSBEUExMX1NTQ19SRUZfQ0xLX0NIViB8Cj4gLQkJ RFBMTF9SRUZfQ0xLX0VOQUJMRV9WTFYgfCBEUExMX1ZHQV9NT0RFX0RJUyB8Cj4gLQkJRFBMTF9W Q09fRU5BQkxFOwo+ICsJCURQTExfUkVGX0NMS19FTkFCTEVfVkxWIHwgRFBMTF9WR0FfTU9ERV9E SVM7Cj4gIAlpZiAoY3J0Yy0+cGlwZSAhPSBQSVBFX0EpCj4gIAkJcGlwZV9jb25maWctPmRwbGxf aHdfc3RhdGUuZHBsbCB8PSBEUExMX0lOVEVHUkFURURfQ1JJX0NMS19WTFY7Cj4gIAo+ICsJLyog RFBMTCBub3QgdXNlZCB3aXRoIERTSSwgYnV0IHN0aWxsIG5lZWQgdGhlIHJlc3Qgc2V0IHVwICov Cj4gKwlpZiAoIWludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUocGlwZV9jb25maWcsIElOVEVMX09V VFBVVF9EU0kpKQo+ICsJCXBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGwgfD0gRFBMTF9W Q09fRU5BQkxFOwo+ICsKPiAgCXBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGxfbWQgPQo+ ICAJCShwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllciAtIDEpIDw8IERQTExfTURfVURJX01V TFRJUExJRVJfU0hJRlQ7Cj4gIH0KPiBAQCAtNzIwMSwxMSArNzIyMywyMCBAQCBzdGF0aWMgdm9p ZCB2bHZfcHJlcGFyZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIHsKPiAgCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlpbnQgcGlwZSA9IGNydGMt PnBpcGU7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAl1MzIgbWRpdjsKPiAg CXUzMiBiZXN0biwgYmVzdG0xLCBiZXN0bTIsIGJlc3RwMSwgYmVzdHAyOwo+ICAJdTMyIGNvcmVj bGssIHJlZ192YWw7Cj4gIAo+ICsJLyogRW5hYmxlIFJlZmNsayAqLwo+ICsJSTkxNV9XUklURShE UExMKHBpcGUpLAo+ICsJCSAgIHBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGwgJgo+ICsJ CSAgIH4oRFBMTF9WQ09fRU5BQkxFIHwgRFBMTF9FWFRfQlVGRkVSX0VOQUJMRV9WTFYpKTsKPiAr Cj4gKwkvKiBObyBuZWVkIHRvIGFjdHVhbGx5IHNldCB1cCB0aGUgRFBMTCB3aXRoIERTSSAqLwo+ ICsJaWYgKChwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsICYgRFBMTF9WQ09fRU5BQkxF KSA9PSAwKQo+ICsJCXJldHVybjsKPiArCj4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+c2JfbG9j ayk7Cj4gIAo+ICAJYmVzdG4gPSBwaXBlX2NvbmZpZy0+ZHBsbC5uOwo+IEBAIC03MjkyLDE0ICs3 MzIzLDIxIEBAIHN0YXRpYyB2b2lkIGNodl9wcmVwYXJlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK PiAtCWludCBwaXBlID0gY3J0Yy0+cGlwZTsKPiAtCWk5MTVfcmVnX3QgZHBsbF9yZWcgPSBEUExM KGNydGMtPnBpcGUpOwo+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAJZW51bSBk cGlvX2NoYW5uZWwgcG9ydCA9IHZsdl9waXBlX3RvX2NoYW5uZWwocGlwZSk7Cj4gIAl1MzIgbG9v cGZpbHRlciwgdHJpYnVmX2NhbGNudHI7Cj4gIAl1MzIgYmVzdG4sIGJlc3RtMSwgYmVzdG0yLCBi ZXN0cDEsIGJlc3RwMiwgYmVzdG0yX2ZyYWM7Cj4gIAl1MzIgZHBpb192YWw7Cj4gIAlpbnQgdmNv Owo+ICAKPiArCS8qIEVuYWJsZSBSZWZjbGsgYW5kIFNTQyAqLwo+ICsJSTkxNV9XUklURShEUExM KHBpcGUpLAo+ICsJCSAgIHBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGwgJiB+RFBMTF9W Q09fRU5BQkxFKTsKPiArCj4gKwkvKiBObyBuZWVkIHRvIGFjdHVhbGx5IHNldCB1cCB0aGUgRFBM TCB3aXRoIERTSSAqLwo+ICsJaWYgKChwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsICYg RFBMTF9WQ09fRU5BQkxFKSA9PSAwKQo+ICsJCXJldHVybjsKPiArCj4gIAliZXN0biA9IHBpcGVf Y29uZmlnLT5kcGxsLm47Cj4gIAliZXN0bTJfZnJhYyA9IHBpcGVfY29uZmlnLT5kcGxsLm0yICYg MHgzZmZmZmY7Cj4gIAliZXN0bTEgPSBwaXBlX2NvbmZpZy0+ZHBsbC5tMTsKPiBAQCAtNzMxMCwx MiArNzM0OCw2IEBAIHN0YXRpYyB2b2lkIGNodl9wcmVwYXJlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKPiAgCWRwaW9fdmFsID0gMDsKPiAgCWxvb3BmaWx0ZXIgPSAwOwo+ICAKPiAtCS8q Cj4gLQkgKiBFbmFibGUgUmVmY2xrIGFuZCBTU0MKPiAtCSAqLwo+IC0JSTkxNV9XUklURShkcGxs X3JlZywKPiAtCQkgICBwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsICYgfkRQTExfVkNP X0VOQUJMRSk7Cj4gLQo+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnNiX2xvY2spOwo+ICAKPiAg CS8qIHAxIGFuZCBwMiBkaXZpZGVyICovCj4gQEAgLTc5MzAsOSArNzk2Miw2IEBAIHN0YXRpYyBp bnQgY2h2X2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCW1l bXNldCgmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwgMCwKPiAgCSAgICAgICBzaXplb2YoY3J0 Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSkpOwo+ICAKPiAtCWlmIChjcnRjX3N0YXRlLT5oYXNfZHNp X2VuY29kZXIpCj4gLQkJcmV0dXJuIDA7Cj4gLQo+ICAJaWYgKCFjcnRjX3N0YXRlLT5jbG9ja19z ZXQgJiYKPiAgCSAgICAhY2h2X2ZpbmRfYmVzdF9kcGxsKGxpbWl0LCBjcnRjX3N0YXRlLCBjcnRj X3N0YXRlLT5wb3J0X2Nsb2NrLAo+ICAJCQkJcmVmY2xrLCBOVUxMLCAmY3J0Y19zdGF0ZS0+ZHBs bCkpIHsKPiBAQCAtNzk1NCw5ICs3OTgzLDYgQEAgc3RhdGljIGludCB2bHZfY3J0Y19jb21wdXRl X2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJbWVtc2V0KCZjcnRjX3N0YXRlLT5k cGxsX2h3X3N0YXRlLCAwLAo+ICAJICAgICAgIHNpemVvZihjcnRjX3N0YXRlLT5kcGxsX2h3X3N0 YXRlKSk7Cj4gIAo+IC0JaWYgKGNydGNfc3RhdGUtPmhhc19kc2lfZW5jb2RlcikKPiAtCQlyZXR1 cm4gMDsKPiAtCj4gIAlpZiAoIWNydGNfc3RhdGUtPmNsb2NrX3NldCAmJgo+ICAJICAgICF2bHZf ZmluZF9iZXN0X2RwbGwobGltaXQsIGNydGNfc3RhdGUsIGNydGNfc3RhdGUtPnBvcnRfY2xvY2ss Cj4gIAkJCQlyZWZjbGssIE5VTEwsICZjcnRjX3N0YXRlLT5kcGxsKSkgewo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RzaS5jCj4gaW5kZXggOWZmNjQzNWU3ZDM4Li4yMmJkNDJhOGFhYjAgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+IEBAIC0zMTEsNiArMzExLDEyIEBAIHN0YXRpYyBib29s IGludGVsX2RzaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgCQkJcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyID0gVFJBTlNDT0RFUl9EU0lfQTsKPiAg CX0KPiAgCj4gKwkvKgo+ICsJICogRklYTUUgbW92ZSB0aGUgRFNJIFBMTCBjYWxjIGZyb20gdmx2 X2VuYWJsZV9kc2lfcGxsKCkKPiArCSAqIHRvIC5jb21wdXRlX2NvbmZpZygpLgo+ICsJICovCj4g KwlwaXBlX2NvbmZpZy0+Y2xvY2tfc2V0ID0gdHJ1ZTsKPiArCj4gIAlyZXR1cm4gdHJ1ZTsKPiAg fQo+ICAKPiBAQCAtNDk4LDggKzUwNCw2IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVfZW5h YmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2Rz aSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+IC0Jc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Cj4gLQll bnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gIAllbnVtIHBvcnQgcG9ydDsKPiAg CXUzMiB0bXA7Cj4gIAo+IEBAIC01MjEsMTkgKzUyNSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rz aV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJbXNsZWVwKGlu dGVsX2RzaS0+cGFuZWxfb25fZGVsYXkpOwo+ICAKPiAgCWlmIChJU19WQUxMRVlWSUVXKGRldikg fHwgSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gLQkJLyoKPiAtCQkgKiBEaXNhYmxlIERQT3VuaXQg Y2xvY2sgZ2F0aW5nLCBjYW4gc3RhbGwgcGlwZQo+IC0JCSAqIGFuZCB3ZSBuZWVkIERQTEwgUkVG QSBhbHdheXMgZW5hYmxlZAo+IC0JCSAqLwo+IC0JCXRtcCA9IEk5MTVfUkVBRChEUExMKHBpcGUp KTsKPiAtCQl0bXAgfD0gRFBMTF9SRUZfQ0xLX0VOQUJMRV9WTFY7Cj4gLQkJSTkxNV9XUklURShE UExMKHBpcGUpLCB0bXApOwo+IC0KPiAtCQkvKiB1cGRhdGUgdGhlIGh3IHN0YXRlIGZvciBEUExM ICovCj4gLQkJaW50ZWxfY3J0Yy0+Y29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGwgPQo+IC0JCQkJ RFBMTF9JTlRFR1JBVEVEX1JFRl9DTEtfVkxWIHwKPiAtCQkJCQlEUExMX1JFRl9DTEtfRU5BQkxF X1ZMViB8IERQTExfVkdBX01PREVfRElTOwo+IC0KPiArCQkvKiBEaXNhYmxlIERQT3VuaXQgY2xv Y2sgZ2F0aW5nLCBjYW4gc3RhbGwgcGlwZSAqLwo+ICAJCXRtcCA9IEk5MTVfUkVBRChEU1BDTEtf R0FURV9EKTsKPiAgCQl0bXAgfD0gRFBPVU5JVF9DTE9DS19HQVRFX0RJU0FCTEU7Cj4gIAkJSTkx NV9XUklURShEU1BDTEtfR0FURV9ELCB0bXApOwo+IEBAIC04MzIsMTIgKzgyNCw2IEBAIHN0YXRp YyB2b2lkIGludGVsX2RzaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAo+ICAJaWYgKElTX0JST1hUT04oZGV2KSkKPiAgCQlieHRfZHNpX2dldF9waXBlX2NvbmZpZyhl bmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4gIAo+IC0JLyoKPiAtCSAqIERQTExfTUQgaXMgbm90IHVz ZWQgaW4gY2FzZSBvZiBEU0ksIHJlYWRpbmcgd2lsbCBnZXQgc29tZSBkZWZhdWx0IHZhbHVlCj4g LQkgKiBzZXQgZHBsbF9tZCA9IDAKPiAtCSAqLwo+IC0JcGlwZV9jb25maWctPmRwbGxfaHdfc3Rh dGUuZHBsbF9tZCA9IDA7Cj4gLQo+ICAJcGNsayA9IGludGVsX2RzaV9nZXRfcGNsayhlbmNvZGVy LCBwaXBlX2NvbmZpZy0+cGlwZV9icHApOwo+ICAJaWYgKCFwY2xrKQo+ICAJCXJldHVybjsKCi0t IApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==