From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/5] drm/i915: Setup DPLL/DPLLMD for DSI too on VLV/CHV Date: Fri, 15 Apr 2016 16:27:25 +0300 Message-ID: <20160415132725.GV4329@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> <8737qnqar8.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 16F9D6EC57 for ; Fri, 15 Apr 2016 13:27:29 +0000 (UTC) Content-Disposition: inline In-Reply-To: <8737qnqar8.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: Deepak M , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBBcHIgMTUsIDIwMTYgYXQgMDQ6MDk6MzFQTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVHVlLCAxMiBBcHIgMjAxNiwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20g d3JvdGU6Cj4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgo+ID4KPiA+IFNldCB1cCBEUExMIGFuZCBEUExMX01EIGV2ZW4gd2hlbiBkcml2aW5n IERTSSBvdXRwdXQgb24gVkxWL0NIVi4gV2hpbGUKPiA+IHRoZSBEUExMIGlzbid0IHVzZWQgdG8g cHJvdmlkZSB0aGUgY2xvY2sgd2Ugc3RpbGwgbmVlZCB0aGUgcmVmY2xvY2ssIGFuZAo+ID4gaXQg YXBwZWFycyB0aGF0IHRoZSBwaXhlbCByZXBlYXQgZmFjdG9yIGFsc28gaGFzIGFuIGVmZmVjdCBv biBEU0kKPiA+IG91dHB1dC4gU28gc2V0IHVwIGV2ZXlyaGluZyBpbiBEUExMIGFuZCBEUExMX01E IGFzIHdlIHdvdWxkIGRvIGZvcgo+ID4gRFAvSERNSS9WR0EsIGJ1dCBkb24ndCBhY3R1YWxseSBl bmFibGUgdGhlIERQTEwgb3IgY29uZmlndXJlIHRoZQo+ID4gZGl2aWRlcnMgdmlhIERQSU8uCj4g Pgo+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPiAKPiBSZXZpZXdlZC1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGlu dGVsLmNvbT4KPiAKPiBJIHF1aWNrbHkgZ2xhbmNlZCBvdmVyIDItNSB0b28sIG15IGVhcmxpZXIg ci1iIG9uIHRoZW0gc3RpbGwgc3RhbmQuCgpUaGFua3MuIFNlcmllcyBwdXNoZWQgdG8gZGlucS4K Cj4gCj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAx MjAgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2kuYyAgICAgfCAgMjggKystLS0tLS0KPiA+ICAyIGZpbGVzIGNoYW5n ZWQsIDgwIGluc2VydGlvbnMoKyksIDY4IGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IGluZGV4IDYwN2RjNDFiY2M2OC4uN2M3NGE5MzBmNDVk IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IEBAIC0xNTMw LDQ1ICsxNTMwLDQ3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9wY2hfcG9ydHNfZGlzYWJsZWQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAlhc3NlcnRfcGNoX2hkbWlfZGlz YWJsZWQoZGV2X3ByaXYsIHBpcGUsIFBDSF9IRE1JRCk7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRp YyB2b2lkIF92bHZfZW5hYmxlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+ICsJCQkg ICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ID4gK3sKPiA+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7Cj4gPiArCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiA+ICsKPiA+ICsJSTkx NV9XUklURShEUExMKHBpcGUpLCBwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsKTsKPiA+ ICsJUE9TVElOR19SRUFEKERQTEwocGlwZSkpOwo+ID4gKwl1ZGVsYXkoMTUwKTsKPiA+ICsKPiA+ ICsJaWYgKHdhaXRfZm9yKCgoSTkxNV9SRUFEKERQTEwocGlwZSkpICYgRFBMTF9MT0NLX1ZMVikg PT0gRFBMTF9MT0NLX1ZMViksIDEpKQo+ID4gKwkJRFJNX0VSUk9SKCJEUExMICVkIGZhaWxlZCB0 byBsb2NrXG4iLCBwaXBlKTsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIHZvaWQgdmx2X2VuYWJs ZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gPiAgCQkJICAgY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiA+ICAJZW51bSBwaXBlIHBp cGUgPSBjcnRjLT5waXBlOwo+ID4gLQlpOTE1X3JlZ190IHJlZyA9IERQTEwocGlwZSk7Cj4gPiAt CXUzMiBkcGxsID0gcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUuZHBsbDsKPiA+ICAKPiA+ICAJ YXNzZXJ0X3BpcGVfZGlzYWJsZWQoZGV2X3ByaXYsIHBpcGUpOwo+ID4gIAo+ID4gIAkvKiBQTEwg aXMgcHJvdGVjdGVkIGJ5IHBhbmVsLCBtYWtlIHN1cmUgd2UgY2FuIHdyaXRlIGl0ICovCj4gPiAg CWFzc2VydF9wYW5lbF91bmxvY2tlZChkZXZfcHJpdiwgcGlwZSk7Cj4gPiAgCj4gPiAtCUk5MTVf V1JJVEUocmVnLCBkcGxsKTsKPiA+IC0JUE9TVElOR19SRUFEKHJlZyk7Cj4gPiAtCXVkZWxheSgx NTApOwo+ID4gLQo+ID4gLQlpZiAod2FpdF9mb3IoKChJOTE1X1JFQUQocmVnKSAmIERQTExfTE9D S19WTFYpID09IERQTExfTE9DS19WTFYpLCAxKSkKPiA+IC0JCURSTV9FUlJPUigiRFBMTCAlZCBm YWlsZWQgdG8gbG9ja1xuIiwgcGlwZSk7Cj4gPiArCWlmIChwaXBlX2NvbmZpZy0+ZHBsbF9od19z dGF0ZS5kcGxsICYgRFBMTF9WQ09fRU5BQkxFKQo+ID4gKwkJX3Zsdl9lbmFibGVfcGxsKGNydGMs IHBpcGVfY29uZmlnKTsKPiA+ICAKPiA+ICAJSTkxNV9XUklURShEUExMX01EKHBpcGUpLCBwaXBl X2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsX21kKTsKPiA+ICAJUE9TVElOR19SRUFEKERQTExf TUQocGlwZSkpOwo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgdm9pZCBjaHZfZW5hYmxlX3BsbChz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+IC0JCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gPiArCj4gPiArc3RhdGljIHZvaWQgX2Nodl9lbmFibGVf cGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4gKwkJCSAgICBjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ID4gIAllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7Cj4gPiAgCWVudW0gZHBpb19jaGFubmVsIHBvcnQgPSB2bHZfcGlwZV90 b19jaGFubmVsKHBpcGUpOwo+ID4gIAl1MzIgdG1wOwo+ID4gIAo+ID4gLQlhc3NlcnRfcGlwZV9k aXNhYmxlZChkZXZfcHJpdiwgcGlwZSk7Cj4gPiAtCj4gPiAtCS8qIFBMTCBpcyBwcm90ZWN0ZWQg YnkgcGFuZWwsIG1ha2Ugc3VyZSB3ZSBjYW4gd3JpdGUgaXQgKi8KPiA+IC0JYXNzZXJ0X3BhbmVs X3VubG9ja2VkKGRldl9wcml2LCBwaXBlKTsKPiA+IC0KPiA+ICAJbXV0ZXhfbG9jaygmZGV2X3By aXYtPnNiX2xvY2spOwo+ID4gIAo+ID4gIAkvKiBFbmFibGUgYmFjayB0aGUgMTBiaXQgY2xvY2sg dG8gZGlzcGxheSBjb250cm9sbGVyICovCj4gPiBAQCAtMTU4OSw2ICsxNTkxLDIxIEBAIHN0YXRp YyB2b2lkIGNodl9lbmFibGVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4gIAkvKiBD aGVjayBQTEwgaXMgbG9ja2VkICovCj4gPiAgCWlmICh3YWl0X2ZvcigoKEk5MTVfUkVBRChEUExM KHBpcGUpKSAmIERQTExfTE9DS19WTFYpID09IERQTExfTE9DS19WTFYpLCAxKSkKPiA+ICAJCURS TV9FUlJPUigiUExMICVkIGZhaWxlZCB0byBsb2NrXG4iLCBwaXBlKTsKPiA+ICt9Cj4gPiArCj4g PiArc3RhdGljIHZvaWQgY2h2X2VuYWJsZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4g PiArCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ID4g K3sKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj LT5iYXNlLmRldik7Cj4gPiArCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiA+ICsKPiA+ ICsJYXNzZXJ0X3BpcGVfZGlzYWJsZWQoZGV2X3ByaXYsIHBpcGUpOwo+ID4gKwo+ID4gKwkvKiBQ TEwgaXMgcHJvdGVjdGVkIGJ5IHBhbmVsLCBtYWtlIHN1cmUgd2UgY2FuIHdyaXRlIGl0ICovCj4g PiArCWFzc2VydF9wYW5lbF91bmxvY2tlZChkZXZfcHJpdiwgcGlwZSk7Cj4gPiArCj4gPiArCWlm IChwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsICYgRFBMTF9WQ09fRU5BQkxFKQo+ID4g KwkJX2Nodl9lbmFibGVfcGxsKGNydGMsIHBpcGVfY29uZmlnKTsKPiA+ICAKPiA+ICAJaWYgKHBp cGUgIT0gUElQRV9BKSB7Cj4gPiAgCQkvKgo+ID4gQEAgLTYwNzMsMTQgKzYwOTAsMTIgQEAgc3Rh dGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4g PiAgCQlpZiAoZW5jb2Rlci0+cHJlX3BsbF9lbmFibGUpCj4gPiAgCQkJZW5jb2Rlci0+cHJlX3Bs bF9lbmFibGUoZW5jb2Rlcik7Cj4gPiAgCj4gPiAtCWlmICghaW50ZWxfY3J0Yy0+Y29uZmlnLT5o YXNfZHNpX2VuY29kZXIpIHsKPiA+IC0JCWlmIChJU19DSEVSUllWSUVXKGRldikpIHsKPiA+IC0J CQljaHZfcHJlcGFyZV9wbGwoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+Y29uZmlnKTsKPiA+IC0J CQljaHZfZW5hYmxlX3BsbChpbnRlbF9jcnRjLCBpbnRlbF9jcnRjLT5jb25maWcpOwo+ID4gLQkJ fSBlbHNlIHsKPiA+IC0JCQl2bHZfcHJlcGFyZV9wbGwoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+ Y29uZmlnKTsKPiA+IC0JCQl2bHZfZW5hYmxlX3BsbChpbnRlbF9jcnRjLCBpbnRlbF9jcnRjLT5j b25maWcpOwo+ID4gLQkJfQo+ID4gKwlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gPiArCQlj aHZfcHJlcGFyZV9wbGwoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+Y29uZmlnKTsKPiA+ICsJCWNo dl9lbmFibGVfcGxsKGludGVsX2NydGMsIGludGVsX2NydGMtPmNvbmZpZyk7Cj4gPiArCX0gZWxz ZSB7Cj4gPiArCQl2bHZfcHJlcGFyZV9wbGwoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+Y29uZmln KTsKPiA+ICsJCXZsdl9lbmFibGVfcGxsKGludGVsX2NydGMsIGludGVsX2NydGMtPmNvbmZpZyk7 Cj4gPiAgCX0KPiA+ICAKPiA+ICAJZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0Yywg ZW5jb2RlcikKPiA+IEBAIC02MTE4LDcgKzYxMzMsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NydGNf ZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiA+ICAJc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXI7Cj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9Cj4g PiAgCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKPiA+IC0JaW50IHBpcGUgPSBp bnRlbF9jcnRjLT5waXBlOwo+ID4gKwllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7 Cj4gPiAgCj4gPiAgCWlmIChXQVJOX09OKGludGVsX2NydGMtPmFjdGl2ZSkpCj4gPiAgCQlyZXR1 cm47Cj4gPiBAQCAtNzE3NCwxMSArNzE4OSwxNSBAQCBzdGF0aWMgdm9pZCB2bHZfY29tcHV0ZV9k cGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4gIAkJCSAgICAgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ID4gIHsKPiA+ICAJcGlwZV9jb25maWctPmRwbGxfaHdf c3RhdGUuZHBsbCA9IERQTExfSU5URUdSQVRFRF9SRUZfQ0xLX1ZMViB8Cj4gPiAtCQlEUExMX1JF Rl9DTEtfRU5BQkxFX1ZMViB8IERQTExfVkdBX01PREVfRElTIHwKPiA+IC0JCURQTExfVkNPX0VO QUJMRSB8IERQTExfRVhUX0JVRkZFUl9FTkFCTEVfVkxWOwo+ID4gKwkJRFBMTF9SRUZfQ0xLX0VO QUJMRV9WTFYgfCBEUExMX1ZHQV9NT0RFX0RJUzsKPiA+ICAJaWYgKGNydGMtPnBpcGUgIT0gUElQ RV9BKQo+ID4gIAkJcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUuZHBsbCB8PSBEUExMX0lOVEVH UkFURURfQ1JJX0NMS19WTFY7Cj4gPiAgCj4gPiArCS8qIERQTEwgbm90IHVzZWQgd2l0aCBEU0ks IGJ1dCBzdGlsbCBuZWVkIHRoZSByZXN0IHNldCB1cCAqLwo+ID4gKwlpZiAoIWludGVsX3BpcGVf d2lsbF9oYXZlX3R5cGUocGlwZV9jb25maWcsIElOVEVMX09VVFBVVF9EU0kpKQo+ID4gKwkJcGlw ZV9jb25maWctPmRwbGxfaHdfc3RhdGUuZHBsbCB8PSBEUExMX1ZDT19FTkFCTEUgfAo+ID4gKwkJ CURQTExfRVhUX0JVRkZFUl9FTkFCTEVfVkxWOwo+ID4gKwo+ID4gIAlwaXBlX2NvbmZpZy0+ZHBs bF9od19zdGF0ZS5kcGxsX21kID0KPiA+ICAJCShwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGll ciAtIDEpIDw8IERQTExfTURfVURJX01VTFRJUExJRVJfU0hJRlQ7Cj4gPiAgfQo+ID4gQEAgLTcx ODcsMTEgKzcyMDYsMTQgQEAgc3RhdGljIHZvaWQgY2h2X2NvbXB1dGVfZHBsbChzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKPiA+ICAJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZykKPiA+ICB7Cj4gPiAgCXBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGwgPSBE UExMX1NTQ19SRUZfQ0xLX0NIViB8Cj4gPiAtCQlEUExMX1JFRl9DTEtfRU5BQkxFX1ZMViB8IERQ TExfVkdBX01PREVfRElTIHwKPiA+IC0JCURQTExfVkNPX0VOQUJMRTsKPiA+ICsJCURQTExfUkVG X0NMS19FTkFCTEVfVkxWIHwgRFBMTF9WR0FfTU9ERV9ESVM7Cj4gPiAgCWlmIChjcnRjLT5waXBl ICE9IFBJUEVfQSkKPiA+ICAJCXBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGwgfD0gRFBM TF9JTlRFR1JBVEVEX0NSSV9DTEtfVkxWOwo+ID4gIAo+ID4gKwkvKiBEUExMIG5vdCB1c2VkIHdp dGggRFNJLCBidXQgc3RpbGwgbmVlZCB0aGUgcmVzdCBzZXQgdXAgKi8KPiA+ICsJaWYgKCFpbnRl bF9waXBlX3dpbGxfaGF2ZV90eXBlKHBpcGVfY29uZmlnLCBJTlRFTF9PVVRQVVRfRFNJKSkKPiA+ ICsJCXBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGwgfD0gRFBMTF9WQ09fRU5BQkxFOwo+ ID4gKwo+ID4gIAlwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsX21kID0KPiA+ICAJCShw aXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllciAtIDEpIDw8IERQTExfTURfVURJX01VTFRJUExJ RVJfU0hJRlQ7Cj4gPiAgfQo+ID4gQEAgLTcyMDEsMTEgKzcyMjMsMjAgQEAgc3RhdGljIHZvaWQg dmx2X3ByZXBhcmVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4gIHsKPiA+ICAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ID4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gLQlpbnQgcGlwZSA9 IGNydGMtPnBpcGU7Cj4gPiArCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiA+ICAJdTMy IG1kaXY7Cj4gPiAgCXUzMiBiZXN0biwgYmVzdG0xLCBiZXN0bTIsIGJlc3RwMSwgYmVzdHAyOwo+ ID4gIAl1MzIgY29yZWNsaywgcmVnX3ZhbDsKPiA+ICAKPiA+ICsJLyogRW5hYmxlIFJlZmNsayAq Lwo+ID4gKwlJOTE1X1dSSVRFKERQTEwocGlwZSksCj4gPiArCQkgICBwaXBlX2NvbmZpZy0+ZHBs bF9od19zdGF0ZS5kcGxsICYKPiA+ICsJCSAgIH4oRFBMTF9WQ09fRU5BQkxFIHwgRFBMTF9FWFRf QlVGRkVSX0VOQUJMRV9WTFYpKTsKPiA+ICsKPiA+ICsJLyogTm8gbmVlZCB0byBhY3R1YWxseSBz ZXQgdXAgdGhlIERQTEwgd2l0aCBEU0kgKi8KPiA+ICsJaWYgKChwaXBlX2NvbmZpZy0+ZHBsbF9o d19zdGF0ZS5kcGxsICYgRFBMTF9WQ09fRU5BQkxFKSA9PSAwKQo+ID4gKwkJcmV0dXJuOwo+ID4g Kwo+ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gPiAgCj4gPiAgCWJlc3Ru ID0gcGlwZV9jb25maWctPmRwbGwubjsKPiA+IEBAIC03MjkyLDE0ICs3MzIzLDIxIEBAIHN0YXRp YyB2b2lkIGNodl9wcmVwYXJlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+ICB7Cj4g PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiA+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+IC0JaW50 IHBpcGUgPSBjcnRjLT5waXBlOwo+ID4gLQlpOTE1X3JlZ190IGRwbGxfcmVnID0gRFBMTChjcnRj LT5waXBlKTsKPiA+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ID4gIAllbnVtIGRw aW9fY2hhbm5lbCBwb3J0ID0gdmx2X3BpcGVfdG9fY2hhbm5lbChwaXBlKTsKPiA+ICAJdTMyIGxv b3BmaWx0ZXIsIHRyaWJ1Zl9jYWxjbnRyOwo+ID4gIAl1MzIgYmVzdG4sIGJlc3RtMSwgYmVzdG0y LCBiZXN0cDEsIGJlc3RwMiwgYmVzdG0yX2ZyYWM7Cj4gPiAgCXUzMiBkcGlvX3ZhbDsKPiA+ICAJ aW50IHZjbzsKPiA+ICAKPiA+ICsJLyogRW5hYmxlIFJlZmNsayBhbmQgU1NDICovCj4gPiArCUk5 MTVfV1JJVEUoRFBMTChwaXBlKSwKPiA+ICsJCSAgIHBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRl LmRwbGwgJiB+RFBMTF9WQ09fRU5BQkxFKTsKPiA+ICsKPiA+ICsJLyogTm8gbmVlZCB0byBhY3R1 YWxseSBzZXQgdXAgdGhlIERQTEwgd2l0aCBEU0kgKi8KPiA+ICsJaWYgKChwaXBlX2NvbmZpZy0+ ZHBsbF9od19zdGF0ZS5kcGxsICYgRFBMTF9WQ09fRU5BQkxFKSA9PSAwKQo+ID4gKwkJcmV0dXJu Owo+ID4gKwo+ID4gIAliZXN0biA9IHBpcGVfY29uZmlnLT5kcGxsLm47Cj4gPiAgCWJlc3RtMl9m cmFjID0gcGlwZV9jb25maWctPmRwbGwubTIgJiAweDNmZmZmZjsKPiA+ICAJYmVzdG0xID0gcGlw ZV9jb25maWctPmRwbGwubTE7Cj4gPiBAQCAtNzMxMCwxMiArNzM0OCw2IEBAIHN0YXRpYyB2b2lk IGNodl9wcmVwYXJlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+ICAJZHBpb192YWwg PSAwOwo+ID4gIAlsb29wZmlsdGVyID0gMDsKPiA+ICAKPiA+IC0JLyoKPiA+IC0JICogRW5hYmxl IFJlZmNsayBhbmQgU1NDCj4gPiAtCSAqLwo+ID4gLQlJOTE1X1dSSVRFKGRwbGxfcmVnLAo+ID4g LQkJICAgcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUuZHBsbCAmIH5EUExMX1ZDT19FTkFCTEUp Owo+ID4gLQo+ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gPiAgCj4gPiAg CS8qIHAxIGFuZCBwMiBkaXZpZGVyICovCj4gPiBAQCAtNzkzMCw5ICs3OTYyLDYgQEAgc3RhdGlj IGludCBjaHZfY3J0Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4g IAltZW1zZXQoJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUsIDAsCj4gPiAgCSAgICAgICBzaXpl b2YoY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSkpOwo+ID4gIAo+ID4gLQlpZiAoY3J0Y19zdGF0 ZS0+aGFzX2RzaV9lbmNvZGVyKQo+ID4gLQkJcmV0dXJuIDA7Cj4gPiAtCj4gPiAgCWlmICghY3J0 Y19zdGF0ZS0+Y2xvY2tfc2V0ICYmCj4gPiAgCSAgICAhY2h2X2ZpbmRfYmVzdF9kcGxsKGxpbWl0 LCBjcnRjX3N0YXRlLCBjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrLAo+ID4gIAkJCQlyZWZjbGssIE5V TEwsICZjcnRjX3N0YXRlLT5kcGxsKSkgewo+ID4gQEAgLTc5NTQsOSArNzk4Myw2IEBAIHN0YXRp YyBpbnQgdmx2X2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+ ICAJbWVtc2V0KCZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLCAwLAo+ID4gIAkgICAgICAgc2l6 ZW9mKGNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpKTsKPiA+ICAKPiA+IC0JaWYgKGNydGNfc3Rh dGUtPmhhc19kc2lfZW5jb2RlcikKPiA+IC0JCXJldHVybiAwOwo+ID4gLQo+ID4gIAlpZiAoIWNy dGNfc3RhdGUtPmNsb2NrX3NldCAmJgo+ID4gIAkgICAgIXZsdl9maW5kX2Jlc3RfZHBsbChsaW1p dCwgY3J0Y19zdGF0ZSwgY3J0Y19zdGF0ZS0+cG9ydF9jbG9jaywKPiA+ICAJCQkJcmVmY2xrLCBO VUxMLCAmY3J0Y19zdGF0ZS0+ZHBsbCkpIHsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4g PiBpbmRleCA5ZmY2NDM1ZTdkMzguLjIyYmQ0MmE4YWFiMCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2kuYwo+ID4gQEAgLTMxMSw2ICszMTEsMTIgQEAgc3RhdGljIGJvb2wgaW50ZWxf ZHNpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAkJ CXBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlciA9IFRSQU5TQ09ERVJfRFNJX0E7Cj4gPiAgCX0K PiA+ICAKPiA+ICsJLyoKPiA+ICsJICogRklYTUUgbW92ZSB0aGUgRFNJIFBMTCBjYWxjIGZyb20g dmx2X2VuYWJsZV9kc2lfcGxsKCkKPiA+ICsJICogdG8gLmNvbXB1dGVfY29uZmlnKCkuCj4gPiAr CSAqLwo+ID4gKwlwaXBlX2NvbmZpZy0+Y2xvY2tfc2V0ID0gdHJ1ZTsKPiA+ICsKPiA+ICAJcmV0 dXJuIHRydWU7Cj4gPiAgfQo+ID4gIAo+ID4gQEAgLTQ5OCw4ICs1MDQsNiBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9kc2lfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ID4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gIAlz dHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5i YXNlKTsKPiA+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KGVuY29kZXItPmJhc2UuY3J0Yyk7Cj4gPiAtCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+ cGlwZTsKPiA+ICAJZW51bSBwb3J0IHBvcnQ7Cj4gPiAgCXUzMiB0bXA7Cj4gPiAgCj4gPiBAQCAt NTIxLDE5ICs1MjUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ICAJbXNsZWVwKGludGVsX2RzaS0+cGFuZWxfb25f ZGVsYXkpOwo+ID4gIAo+ID4gIAlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJ RVcoZGV2KSkgewo+ID4gLQkJLyoKPiA+IC0JCSAqIERpc2FibGUgRFBPdW5pdCBjbG9jayBnYXRp bmcsIGNhbiBzdGFsbCBwaXBlCj4gPiAtCQkgKiBhbmQgd2UgbmVlZCBEUExMIFJFRkEgYWx3YXlz IGVuYWJsZWQKPiA+IC0JCSAqLwo+ID4gLQkJdG1wID0gSTkxNV9SRUFEKERQTEwocGlwZSkpOwo+ ID4gLQkJdG1wIHw9IERQTExfUkVGX0NMS19FTkFCTEVfVkxWOwo+ID4gLQkJSTkxNV9XUklURShE UExMKHBpcGUpLCB0bXApOwo+ID4gLQo+ID4gLQkJLyogdXBkYXRlIHRoZSBodyBzdGF0ZSBmb3Ig RFBMTCAqLwo+ID4gLQkJaW50ZWxfY3J0Yy0+Y29uZmlnLT5kcGxsX2h3X3N0YXRlLmRwbGwgPQo+ ID4gLQkJCQlEUExMX0lOVEVHUkFURURfUkVGX0NMS19WTFYgfAo+ID4gLQkJCQkJRFBMTF9SRUZf Q0xLX0VOQUJMRV9WTFYgfCBEUExMX1ZHQV9NT0RFX0RJUzsKPiA+IC0KPiA+ICsJCS8qIERpc2Fi bGUgRFBPdW5pdCBjbG9jayBnYXRpbmcsIGNhbiBzdGFsbCBwaXBlICovCj4gPiAgCQl0bXAgPSBJ OTE1X1JFQUQoRFNQQ0xLX0dBVEVfRCk7Cj4gPiAgCQl0bXAgfD0gRFBPVU5JVF9DTE9DS19HQVRF X0RJU0FCTEU7Cj4gPiAgCQlJOTE1X1dSSVRFKERTUENMS19HQVRFX0QsIHRtcCk7Cj4gPiBAQCAt ODMyLDEyICs4MjQsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfZ2V0X2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJaWYgKElTX0JST1hUT04oZGV2KSkKPiA+ICAJ CWJ4dF9kc2lfZ2V0X3BpcGVfY29uZmlnKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPiA+ICAKPiA+ IC0JLyoKPiA+IC0JICogRFBMTF9NRCBpcyBub3QgdXNlZCBpbiBjYXNlIG9mIERTSSwgcmVhZGlu ZyB3aWxsIGdldCBzb21lIGRlZmF1bHQgdmFsdWUKPiA+IC0JICogc2V0IGRwbGxfbWQgPSAwCj4g PiAtCSAqLwo+ID4gLQlwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsX21kID0gMDsKPiA+ IC0KPiA+ICAJcGNsayA9IGludGVsX2RzaV9nZXRfcGNsayhlbmNvZGVyLCBwaXBlX2NvbmZpZy0+ cGlwZV9icHApOwo+ID4gIAlpZiAoIXBjbGspCj4gPiAgCQlyZXR1cm47Cj4gCj4gLS0gCj4gSmFu aSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCgotLSAKVmlsbGUg U3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK