From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH 07/13] drm/i915: Use a table to initilize shared dplls Date: Thu, 03 Mar 2016 13:32:28 +0200 Message-ID: <1457004748.2724.24.camel@gmail.com> References: <1456494866-7665-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1456494866-7665-8-git-send-email-ander.conselvan.de.oliveira@intel.com> <56D70730.7030804@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-x229.google.com (mail-pa0-x229.google.com [IPv6:2607:f8b0:400e:c03::229]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5D45F6E0DE for ; Thu, 3 Mar 2016 11:32:33 +0000 (UTC) Received: by mail-pa0-x229.google.com with SMTP id fi3so11613141pac.3 for ; Thu, 03 Mar 2016 03:32:33 -0800 (PST) In-Reply-To: <56D70730.7030804@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: Maarten Lankhorst , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SGkgTWFhcnRlbiwKClRoYW5rcyBmb3IgcmV2aWV3aW5nLiBDb21tZW50cyBiZWxvdy4KCk9uIFdl ZCwgMjAxNi0wMy0wMiBhdCAxNjozMCArMDEwMCwgTWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6Cj4g T3AgMjYtMDItMTYgb20gMTQ6NTQgc2NocmVlZiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmE6 Cj4gPiBVc2UgYSB0YWJsZSB0byBzdG9yZSB0aGUgcGVyLXBsYXRmb3JtIHNoYXJlZCBkcGxsIGlu Zm9ybWF0aW9uIGluIG9uZQo+ID4gcGxhY2UuIFRoaXMgd2F5LCB0aGVyZSBpcyBubyBuZWVkIGZv ciBwbGF0Zm9ybSBzcGVjaWZpYyBpbml0IGZ1bnRpb25zLgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5 OiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPAo+ID4gYW5kZXIuY29uc2VsdmFuLmRlLm9s aXZlaXJhQGludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyAgfCAgMTYgKy0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBs bF9tZ3IuYyB8IDE4OSArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCj4gPiAtLS0KPiA+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oIHwgIDIyICsrLS0KPiA+ICAz IGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCspLCAxMTkgZGVsZXRpb25zKC0pCj4gPiAK PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBpbmRleCBlNzIzMzIz Li4xMzNiNmI3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ IEBAIC05MTQ4LDggKzkxNDgsOCBAQCBzdGF0aWMgYm9vbCBpcm9ubGFrZV9nZXRfcGlwZV9jb25m aWcoc3RydWN0IGludGVsX2NydGMKPiA+ICpjcnRjLAo+ID4gIAkJCWludGVsX2dldF9zaGFyZWRf ZHBsbF9ieV9pZChkZXZfcHJpdiwgcGxsX2lkKTsKPiA+ICAJCXBsbCA9IHBpcGVfY29uZmlnLT5z aGFyZWRfZHBsbDsKPiA+ICAKPiA+IC0JCVdBUk5fT04oIXBsbC0+Z2V0X2h3X3N0YXRlKGRldl9w cml2LCBwbGwsCj4gPiAtCQkJCQkgICAmcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUpKTsKPiA+ ICsJCVdBUk5fT04oIXBsbC0+ZnVuY3MuZ2V0X2h3X3N0YXRlKGRldl9wcml2LCBwbGwsCj4gPiAr CQkJCQkJICZwaXBlX2NvbmZpZwo+ID4gLT5kcGxsX2h3X3N0YXRlKSk7Cj4gPiAgCj4gPiAgCQl0 bXAgPSBwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsOwo+ID4gIAkJcGlwZV9jb25maWct PnBpeGVsX211bHRpcGxpZXIgPQo+ID4gQEAgLTk2OTUsOCArOTY5NSw4IEBAIHN0YXRpYyB2b2lk IGhhc3dlbGxfZ2V0X2RkaV9wb3J0X3N0YXRlKHN0cnVjdAo+ID4gaW50ZWxfY3J0YyAqY3J0YywK PiA+ICAKPiA+ICAJcGxsID0gcGlwZV9jb25maWctPnNoYXJlZF9kcGxsOwo+ID4gIAlpZiAocGxs KSB7Cj4gPiAtCQlXQVJOX09OKCFwbGwtPmdldF9od19zdGF0ZShkZXZfcHJpdiwgcGxsLAo+ID4g LQkJCQkJICAgJnBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlKSk7Cj4gPiArCQlXQVJOX09OKCFw bGwtPmZ1bmNzLmdldF9od19zdGF0ZShkZXZfcHJpdiwgcGxsLAo+ID4gKwkJCQkJCSAmcGlwZV9j b25maWcKPiA+IC0+ZHBsbF9od19zdGF0ZSkpOwo+ID4gIAl9Cj4gPiAgCj4gPiAgCS8qCj4gPiBA QCAtMTI3MjgsNyArMTI3MjgsNyBAQCBjaGVja19zaGFyZWRfZHBsbF9zdGF0ZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+ID4gIAo+ID4gIAkJRFJNX0RFQlVHX0tNUygiJXNcbiIsIHBsbC0+bmFt ZSk7Cj4gPiAgCj4gPiAtCQlhY3RpdmUgPSBwbGwtPmdldF9od19zdGF0ZShkZXZfcHJpdiwgcGxs LCAmZHBsbF9od19zdGF0ZSk7Cj4gPiArCQlhY3RpdmUgPSBwbGwtPmZ1bmNzLmdldF9od19zdGF0 ZShkZXZfcHJpdiwgcGxsLAo+ID4gJmRwbGxfaHdfc3RhdGUpOwo+ID4gIAo+ID4gIAkJSTkxNV9T VEFURV9XQVJOKHBsbC0+YWN0aXZlID4gaHdlaWdodDMyKHBsbAo+ID4gLT5jb25maWcuY3J0Y19t YXNrKSwKPiA+ICAJCSAgICAgIm1vcmUgYWN0aXZlIHBsbCB1c2VycyB0aGFuIHJlZmVyZW5jZXM6 ICVpIHZzICVpXG4iLAo+ID4gQEAgLTE1NDY2LDggKzE1NDY2LDggQEAgc3RhdGljIHZvaWQgaW50 ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdAo+ID4gZHJtX2RldmljZSAqZGV2KQo+ ID4gIAlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbDsgaSsrKSB7Cj4g PiAgCQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2Rw bGxzW2ldOwo+ID4gIAo+ID4gLQkJcGxsLT5vbiA9IHBsbC0+Z2V0X2h3X3N0YXRlKGRldl9wcml2 LCBwbGwsCj4gPiAtCQkJCQkgICAgJnBsbC0+Y29uZmlnLmh3X3N0YXRlKTsKPiA+ICsJCXBsbC0+ b24gPSBwbGwtPmZ1bmNzLmdldF9od19zdGF0ZShkZXZfcHJpdiwgcGxsLAo+ID4gKwkJCQkJCSAg JnBsbC0+Y29uZmlnLmh3X3N0YXRlKTsKPiA+ICAJCXBsbC0+YWN0aXZlID0gMDsKPiA+ICAJCXBs bC0+Y29uZmlnLmNydGNfbWFzayA9IDA7Cj4gPiAgCQlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwg Y3J0Yykgewo+ID4gQEAgLTE1NjAyLDcgKzE1NjAyLDcgQEAgaW50ZWxfbW9kZXNldF9zZXR1cF9o d19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIAo+ID4gIAkJRFJNX0RFQlVHX0tN UygiJXMgZW5hYmxlZCBidXQgbm90IGluIHVzZSwgZGlzYWJsaW5nXG4iLCBwbGwKPiA+IC0+bmFt ZSk7Cj4gPiAgCj4gPiAtCQlwbGwtPmRpc2FibGUoZGV2X3ByaXYsIHBsbCk7Cj4gPiArCQlwbGwt PmZ1bmNzLmRpc2FibGUoZGV2X3ByaXYsIHBsbCk7Cj4gPiAgCQlwbGwtPm9uID0gZmFsc2U7Cj4g PiAgCX0KPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cGxsX21nci5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKPiA+ IGluZGV4IDg4OWNlZWQuLmU4OGRjNDYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcGxsX21nci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcGxsX21nci5jCj4gPiBAQCAtNzQsNyArNzQsNyBAQCB2b2lkIGFzc2VydF9zaGFyZWRfZHBs bChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCWlmIChXQVJOKCFwbGws ICJhc3NlcnRpbmcgRFBMTCAlcyB3aXRoIG5vIERQTExcbiIsIG9ub2ZmKHN0YXRlKSkpCj4gPiAg CQlyZXR1cm47Cj4gPiAgCj4gPiAtCWN1cl9zdGF0ZSA9IHBsbC0+Z2V0X2h3X3N0YXRlKGRldl9w cml2LCBwbGwsICZod19zdGF0ZSk7Cj4gPiArCWN1cl9zdGF0ZSA9IHBsbC0+ZnVuY3MuZ2V0X2h3 X3N0YXRlKGRldl9wcml2LCBwbGwsICZod19zdGF0ZSk7Cj4gPiAgCUk5MTVfU1RBVEVfV0FSTihj dXJfc3RhdGUgIT0gc3RhdGUsCj4gPiAgCSAgICAgIiVzIGFzc2VydGlvbiBmYWlsdXJlIChleHBl Y3RlZCAlcywgY3VycmVudCAlcylcbiIsCj4gPiAgCQkJcGxsLT5uYW1lLCBvbm9mZihzdGF0ZSks IG9ub2ZmKGN1cl9zdGF0ZSkpOwo+ID4gQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBpbnRlbF9wcmVw YXJlX3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ID4gIAkJV0FSTl9PTihw bGwtPm9uKTsKPiA+ICAJCWFzc2VydF9zaGFyZWRfZHBsbF9kaXNhYmxlZChkZXZfcHJpdiwgcGxs KTsKPiA+ICAKPiA+IC0JCXBsbC0+bW9kZV9zZXQoZGV2X3ByaXYsIHBsbCk7Cj4gPiArCQlwbGwt PmZ1bmNzLm1vZGVfc2V0KGRldl9wcml2LCBwbGwpOwo+ID4gIAl9Cj4gPiAgfQo+ID4gIAo+ID4g QEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIGludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YykKPiA+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYs IFBPV0VSX0RPTUFJTl9QTExTKTsKPiA+ICAKPiA+ICAJRFJNX0RFQlVHX0tNUygiZW5hYmxpbmcg JXNcbiIsIHBsbC0+bmFtZSk7Cj4gPiAtCXBsbC0+ZW5hYmxlKGRldl9wcml2LCBwbGwpOwo+ID4g KwlwbGwtPmZ1bmNzLmVuYWJsZShkZXZfcHJpdiwgcGxsKTsKPiA+ICAJcGxsLT5vbiA9IHRydWU7 Cj4gPiAgfQo+ID4gIAo+ID4gQEAgLTE2OCw3ICsxNjgsNyBAQCB2b2lkIGludGVsX2Rpc2FibGVf c2hhcmVkX2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gPiAgCQlyZXR1cm47Cj4gPiAg Cj4gPiAgCURSTV9ERUJVR19LTVMoImRpc2FibGluZyAlc1xuIiwgcGxsLT5uYW1lKTsKPiA+IC0J cGxsLT5kaXNhYmxlKGRldl9wcml2LCBwbGwpOwo+ID4gKwlwbGwtPmZ1bmNzLmRpc2FibGUoZGV2 X3ByaXYsIHBsbCk7Cj4gPiAgCXBsbC0+b24gPSBmYWxzZTsKPiA+ICAKPiA+ICAJaW50ZWxfZGlz cGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9QTExTKTsKPiA+IEBAIC0zOTgs MjkgKzM5OCwxMyBAQCBzdGF0aWMgdm9pZCBpYnhfcGNoX2RwbGxfZGlzYWJsZShzdHJ1Y3QKPiA+ IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAl1ZGVsYXkoMjAwKTsKPiA+ICB9Cj4g PiAgCj4gPiAtc3RhdGljIGNoYXIgKmlieF9wY2hfZHBsbF9uYW1lc1tdID0gewo+ID4gLQkiUENI IERQTEwgQSIsCj4gPiAtCSJQQ0ggRFBMTCBCIiwKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGlu dGVsX3NoYXJlZF9kcGxsX2Z1bmNzIGlieF9wY2hfZHBsbF9mdW5jcyA9IHsKPiA+ICsJLm1vZGVf c2V0ID0gaWJ4X3BjaF9kcGxsX21vZGVfc2V0LAo+ID4gKwkuZW5hYmxlID0gaWJ4X3BjaF9kcGxs X2VuYWJsZSwKPiA+ICsJLmRpc2FibGUgPSBpYnhfcGNoX2RwbGxfZGlzYWJsZSwKPiA+ICsJLmdl dF9od19zdGF0ZSA9IGlieF9wY2hfZHBsbF9nZXRfaHdfc3RhdGUsCj4gPiAgfTsKPiA+ICAKPiA+ IC1zdGF0aWMgdm9pZCBpYnhfcGNoX2RwbGxfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ ID4gLXsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiA+IC0JaW50IGk7Cj4gPiAtCj4gPiAtCWRldl9wcml2LT5udW1fc2hhcmVkX2Rw bGwgPSAyOwo+ID4gLQo+ID4gLQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPm51bV9zaGFyZWRf ZHBsbDsgaSsrKSB7Cj4gPiAtCQlkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldLmlkID0gaTsKPiA+ IC0JCWRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV0ubmFtZSA9IGlieF9wY2hfZHBsbF9uYW1lc1tp XTsKPiA+IC0JCWRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV0ubW9kZV9zZXQgPSBpYnhfcGNoX2Rw bGxfbW9kZV9zZXQ7Cj4gPiAtCQlkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldLmVuYWJsZSA9IGli eF9wY2hfZHBsbF9lbmFibGU7Cj4gPiAtCQlkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldLmRpc2Fi bGUgPSBpYnhfcGNoX2RwbGxfZGlzYWJsZTsKPiA+IC0JCWRldl9wcml2LT5zaGFyZWRfZHBsbHNb aV0uZ2V0X2h3X3N0YXRlID0KPiA+IC0JCQlpYnhfcGNoX2RwbGxfZ2V0X2h3X3N0YXRlOwo+ID4g LQl9Cj4gPiAtfQo+ID4gLQo+ID4gIHN0YXRpYyB2b2lkIGhzd19kZGlfd3JwbGxfZW5hYmxlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJCQkgICAgICAgc3RydWN0IGlu dGVsX3NoYXJlZF9kcGxsICpwbGwpCj4gPiAgewo+ID4gQEAgLTQ5Miw0MCArNDc2LDE2IEBAIHN0 YXRpYyBib29sIGhzd19kZGlfc3BsbF9nZXRfaHdfc3RhdGUoc3RydWN0Cj4gPiBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiA+ICB9Cj4gPiAgCj4gPiAgCj4gPiAtc3RhdGljIGNvbnN0IGNo YXIgKiBjb25zdCBoc3dfZGRpX3BsbF9uYW1lc1tdID0gewo+ID4gLQkiV1JQTEwgMSIsCj4gPiAt CSJXUlBMTCAyIiwKPiA+IC0JIlNQTEwiCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9z aGFyZWRfZHBsbF9mdW5jcyBoc3dfZGRpX3dycGxsX2Z1bmNzID0gewo+ID4gKwkuZW5hYmxlID0g aHN3X2RkaV93cnBsbF9lbmFibGUsCj4gPiArCS5kaXNhYmxlID0gaHN3X2RkaV93cnBsbF9kaXNh YmxlLAo+ID4gKwkuZ2V0X2h3X3N0YXRlID0gaHN3X2RkaV93cnBsbF9nZXRfaHdfc3RhdGUsCj4g PiAgfTsKPiA+ICAKPiA+IC1zdGF0aWMgdm9pZCBoc3dfc2hhcmVkX2RwbGxzX2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gLXsKPiA+IC0JaW50IGk7Cj4gPiAtCj4g PiAtCWRldl9wcml2LT5udW1fc2hhcmVkX2RwbGwgPSAzOwo+ID4gLQo+ID4gLQlmb3IgKGkgPSAw OyBpIDwgMjsgaSsrKSB7Cj4gPiAtCQlkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldLmlkID0gaTsK PiA+IC0JCWRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV0ubmFtZSA9IGhzd19kZGlfcGxsX25hbWVz W2ldOwo+ID4gLQkJZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXS5kaXNhYmxlID0gaHN3X2RkaV93 cnBsbF9kaXNhYmxlOwo+ID4gLQkJZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXS5lbmFibGUgPSBo c3dfZGRpX3dycGxsX2VuYWJsZTsKPiA+IC0JCWRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV0uZ2V0 X2h3X3N0YXRlID0KPiA+IC0JCQloc3dfZGRpX3dycGxsX2dldF9od19zdGF0ZTsKPiA+IC0JfQo+ ID4gLQo+ID4gLQkvKiBTUExMIGlzIHNwZWNpYWwsIGJ1dCBuZWVkcyB0byBiZSBpbml0aWFsaXpl ZCBhbnl3YXkuLiAqLwo+ID4gLQlkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldLmlkID0gaTsKPiA+ IC0JZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXS5uYW1lID0gaHN3X2RkaV9wbGxfbmFtZXNbaV07 Cj4gPiAtCWRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV0uZGlzYWJsZSA9IGhzd19kZGlfc3BsbF9k aXNhYmxlOwo+ID4gLQlkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldLmVuYWJsZSA9IGhzd19kZGlf c3BsbF9lbmFibGU7Cj4gPiAtCWRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV0uZ2V0X2h3X3N0YXRl ID0gaHN3X2RkaV9zcGxsX2dldF9od19zdGF0ZTsKPiA+IC0KPiA+IC19Cj4gPiAtCj4gPiAtc3Rh dGljIGNvbnN0IGNoYXIgKiBjb25zdCBza2xfZGRpX3BsbF9uYW1lc1tdID0gewo+ID4gLQkiRFBM TCAxIiwKPiA+IC0JIkRQTEwgMiIsCj4gPiAtCSJEUExMIDMiLAo+ID4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfZnVuY3MgaHN3X2RkaV9zcGxsX2Z1bmNzID0gewo+ID4g KwkuZW5hYmxlID0gaHN3X2RkaV9zcGxsX2VuYWJsZSwKPiA+ICsJLmRpc2FibGUgPSBoc3dfZGRp X3NwbGxfZGlzYWJsZSwKPiA+ICsJLmdldF9od19zdGF0ZSA9IGhzd19kZGlfc3BsbF9nZXRfaHdf c3RhdGUsCj4gPiAgfTsKPiA+ICAKPiA+ICBzdHJ1Y3Qgc2tsX2RwbGxfcmVncyB7Cj4gPiBAQCAt NjM0LDI2ICs1OTQsMTAgQEAgb3V0Ogo+ID4gIAlyZXR1cm4gcmV0Owo+ID4gIH0KPiA+ICAKPiA+ IC1zdGF0aWMgdm9pZCBza2xfc2hhcmVkX2RwbGxzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ID4gLXsKPiA+IC0JaW50IGk7Cj4gPiAtCj4gPiAtCWRldl9wcml2LT5u dW1fc2hhcmVkX2RwbGwgPSAzOwo+ID4gLQo+ID4gLQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYt Pm51bV9zaGFyZWRfZHBsbDsgaSsrKSB7Cj4gPiAtCQlkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ld LmlkID0gaTsKPiA+IC0JCWRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV0ubmFtZSA9IHNrbF9kZGlf cGxsX25hbWVzW2ldOwo+ID4gLQkJZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tpXS5kaXNhYmxlID0g c2tsX2RkaV9wbGxfZGlzYWJsZTsKPiA+IC0JCWRldl9wcml2LT5zaGFyZWRfZHBsbHNbaV0uZW5h YmxlID0gc2tsX2RkaV9wbGxfZW5hYmxlOwo+ID4gLQkJZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tp XS5nZXRfaHdfc3RhdGUgPQo+ID4gLQkJCXNrbF9kZGlfcGxsX2dldF9od19zdGF0ZTsKPiA+IC0J fQo+ID4gLX0KPiA+IC0KPiA+IC1zdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGJ4dF9kZGlfcGxs X25hbWVzW10gPSB7Cj4gPiAtCSJQT1JUIFBMTCBBIiwKPiA+IC0JIlBPUlQgUExMIEIiLAo+ID4g LQkiUE9SVCBQTEwgQyIsCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBs bF9mdW5jcyBza2xfZGRpX3BsbF9mdW5jcyA9IHsKPiA+ICsJLmVuYWJsZSA9IHNrbF9kZGlfcGxs X2VuYWJsZSwKPiA+ICsJLmRpc2FibGUgPSBza2xfZGRpX3BsbF9kaXNhYmxlLAo+ID4gKwkuZ2V0 X2h3X3N0YXRlID0gc2tsX2RkaV9wbGxfZ2V0X2h3X3N0YXRlLAo+ID4gIH07Cj4gPiAgCj4gPiAg c3RhdGljIHZvaWQgYnh0X2RkaV9wbGxfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiA+IEBAIC04MzgsMzQgKzc4MiwxNyBAQCBvdXQ6Cj4gPiAgCXJldHVybiByZXQ7 Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyB2b2lkIGJ4dF9zaGFyZWRfZHBsbHNfaW5pdChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAtewo+ID4gLQlpbnQgaTsKPiA+IC0K PiA+IC0JZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbCA9IDM7Cj4gPiAtCj4gPiAtCWZvciAoaSA9 IDA7IGkgPCBkZXZfcHJpdi0+bnVtX3NoYXJlZF9kcGxsOyBpKyspIHsKPiA+IC0JCWRldl9wcml2 LT5zaGFyZWRfZHBsbHNbaV0uaWQgPSBpOwo+ID4gLQkJZGV2X3ByaXYtPnNoYXJlZF9kcGxsc1tp XS5uYW1lID0gYnh0X2RkaV9wbGxfbmFtZXNbaV07Cj4gPiAtCQlkZXZfcHJpdi0+c2hhcmVkX2Rw bGxzW2ldLmRpc2FibGUgPSBieHRfZGRpX3BsbF9kaXNhYmxlOwo+ID4gLQkJZGV2X3ByaXYtPnNo YXJlZF9kcGxsc1tpXS5lbmFibGUgPSBieHRfZGRpX3BsbF9lbmFibGU7Cj4gPiAtCQlkZXZfcHJp di0+c2hhcmVkX2RwbGxzW2ldLmdldF9od19zdGF0ZSA9Cj4gPiAtCQkJYnh0X2RkaV9wbGxfZ2V0 X2h3X3N0YXRlOwo+ID4gLQl9Cj4gPiAtfQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxf c2hhcmVkX2RwbGxfZnVuY3MgYnh0X2RkaV9wbGxfZnVuY3MgPSB7Cj4gPiArCS5lbmFibGUgPSBi eHRfZGRpX3BsbF9lbmFibGUsCj4gPiArCS5kaXNhYmxlID0gYnh0X2RkaV9wbGxfZGlzYWJsZSwK PiA+ICsJLmdldF9od19zdGF0ZSA9IGJ4dF9kZGlfcGxsX2dldF9od19zdGF0ZSwKPiA+ICt9Owo+ ID4gIAo+ID4gIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wbGxfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ICAJdWludDMyX3QgdmFsID0gSTkxNV9SRUFEKExDUExMX0NU TCk7Cj4gPiAgCj4gPiAtCWlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkK PiA+IC0JCXNrbF9zaGFyZWRfZHBsbHNfaW5pdChkZXZfcHJpdik7Cj4gPiAtCWVsc2UgaWYgKElT X0JST1hUT04oZGV2KSkKPiA+IC0JCWJ4dF9zaGFyZWRfZHBsbHNfaW5pdChkZXZfcHJpdik7Cj4g PiAtCWVsc2UKPiA+IC0JCWhzd19zaGFyZWRfZHBsbHNfaW5pdChkZXZfcHJpdik7Cj4gPiAtCj4g PiAgCWlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkgewo+ID4gIAkJaW50 IGNkY2xrX2ZyZXE7Cj4gPiAgCj4gPiBAQCAtODkzLDE2ICs4MjAsNzIgQEAgc3RhdGljIHZvaWQg aW50ZWxfZGRpX3BsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgCX0KPiA+ICB9 Cj4gPiAgCj4gPiArc3RydWN0IGRwbGxfaW5mbyB7Cj4gPiArCWNvbnN0IGNoYXIgKm5hbWU7Cj4g PiArCWNvbnN0IGludCBpZDsKPiA+ICsJY29uc3Qgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2Z1 bmNzICpmdW5jczsKPiA+ICt9Owo+ID4gKwo+IFNlZW1zIHNoYXJlZF9kcGxsc1tpXS5pZCA9PSBp LCBzbyB0aGF0IGNvdWxkIGJlIHJlbW92ZWQuIAoKVGhlcmUgYXJlIHBsYWNlcyBpbiB0aGUgY29k ZSB0aGF0IGFzc3VtZSB0aG9zZSBhcmUgZXF1YWwuIEkgY29uc2lkZXJlZCBub3QKaW5jbHVkaW5n IHRoZSBpZCwgYnV0IGNvbmNsdWRlZCB0aGF0IGhhdmluZyB0aGUgaWQgYW5kIGEgV0FSTl9PTigp IGluCiBpbnRlbF9zaGFyZWRfZHBsbF9pbml0KCkgZG9jdW1lbnRzIHRoYXQgYXNzdW1wdGlvbiBi ZXR0ZXIuCgpJIHRoaW5rIGl0IHdvdWxkIGJlIGJldHRlciB0byByZW1vdmUgdGhhdCBhc3N1bXB0 aW9uLCBidXQgdGhhdCByZXF1aXJlIGNoYW5nZXMKdG8gaW50ZWxfYXRvbWljX3N0YXRlIGFuZCB1 c2Vycy4gQnV0IEkgdGhpbmsgaXQgd291bGQgYmUgbmljZSBpZiB3ZSBjb3VsZCBoYXZlIGEKcGVy LURQTEwgc3RhdGUgb2JqZWN0LgoKPiBJZiB5b3UgYWxzbyBtb3ZlIG5hbWUgdG8gZnVuY3MgeW91 IGNvdWxkIGtpbGwgdGhpcyBzdHJ1Y3QuCgpJbiBhIGxhdGVyIHBhdGNoIEkgYWRkIGEgZmxhZ3Mg ZmllbGQgdG8gdGhpcyBzdHJ1Y3QuIEkgZ3Vlc3MgSSBjb3VsZCBtb3ZlIHRoYXQKdG8gZnVuY3Mg dG9vLCBidXQgdGhlbiB3ZSBuZWVkIHRvIGNvbWUgdXAgd2l0aCBhIGJldHRlciBuYW1lIGZvciB0 aGF0IHN0cnVjdC4KImZ1bmNzIiBzdGFydHMgdG8gc291bmQgd3JvbmcuCgpJTU8gaGF2aW5nIHRo YXQgZXh0cmEgc3RydWN0IGlzIGZpbmUsIHNvIEkgcmF0aGVyIGxldCB0aGluZ3Mgc2V0dGxlIGZp cnN0IGFuZAp0aGVuIGRvIGFub3RoZXIgcm91bmQgb2YgY2xlYW4gdXBzLiBCdXQgaWYgdGhhdCBp cyBhIG5vLWdvLCBJIGNhbiByZS1zcGluLgoKVGhhbmtzLApBbmRlcgoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=