From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: Re: [PATCH v2 3/4] net: macb: Add pm runtime support Date: Mon, 26 Nov 2018 14:47:13 +0000 Message-ID: <2ebecbf5-8bfb-7d6a-f36c-db85dca69af4@microchip.com> References: <1543216072-9623-1-git-send-email-harini.katakam@xilinx.com> <1543216072-9623-4-git-send-email-harini.katakam@xilinx.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: , , , , , To: , , Return-path: Received: from esa1.microchip.iphmx.com ([68.232.147.91]:53227 "EHLO esa1.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726227AbeK0Blg (ORCPT ); Mon, 26 Nov 2018 20:41:36 -0500 In-Reply-To: <1543216072-9623-4-git-send-email-harini.katakam@xilinx.com> Content-Language: en-US Content-ID: <061A48EAB5CF9747AAB4F637A74E2909@namprd11.prod.outlook.com> Sender: netdev-owner@vger.kernel.org List-ID: DQoNCk9uIDI2LjExLjIwMTggMDk6MDcsIEhhcmluaSBLYXRha2FtIHdyb3RlOg0KPiBGcm9tOiBI YXJpbmkgS2F0YWthbSA8aGFyaW5pa0B4aWxpbnguY29tPg0KPiANCj4gQWRkIHJ1bnRpbWUgcG0g ZnVuY3Rpb25zIGFuZCBtb3ZlIGNsb2NrIGhhbmRsaW5nIHRoZXJlLg0KPiBBZGQgcnVudGltZSBQ TSBjYWxscyB0byBtZGlvIGZ1bmN0aW9ucyB0byBhbGxvdyBmb3IgYWN0aXZlIG1kaW8gYnVzLg0K PiANCj4gU2lnbmVkLW9mZi1ieTogU2h1YmhyYWp5b3RpIERhdHRhIDxzaHViaHJhanlvdGkuZGF0 dGFAeGlsaW54LmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogSGFyaW5pIEthdGFrYW0gPGhhcmluaWtA eGlsaW54LmNvbT4NCj4gLS0tDQo+IHYyIGNoYW5nZXM6DQo+IEFsbG93IGZvciBtZGlvIGJ1cyB0 byBiZSBhY3RpdmUNCj4gDQo+IENoYW5nZXMgZnJvbSBSRkM6DQo+IFVwZGF0ZWQgcG0gZ2V0IHN5 bmMvcHV0IHN5bmMgY2FsbHMuDQo+IFJlbW92ZWQgdW5lY2Vzc2FyeSBjbGsgdXAgaW4gbWRpbyBo ZWxwZXJzLg0KPiANCj4gIGRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMg fCAxMjEgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQs IDEwMSBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYw0KPiBpbmRleCAzMjQ1M2Q0Li40Yjg1YWQ3IDEwMDY0 NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jDQo+ICsr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMNCj4gQEAgLTM3LDYg KzM3LDcgQEANCj4gICNpbmNsdWRlIDxsaW51eC91ZHAuaD4NCj4gICNpbmNsdWRlIDxsaW51eC90 Y3AuaD4NCj4gICNpbmNsdWRlIDxsaW51eC9pb3BvbGwuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9w bV9ydW50aW1lLmg+DQo+ICAjaW5jbHVkZSAibWFjYi5oIg0KPiAgDQo+ICAjZGVmaW5lIE1BQ0Jf UlhfQlVGRkVSX1NJWkUJMTI4DQo+IEBAIC04MCw2ICs4MSw4IEBADQo+ICAgKi8NCj4gICNkZWZp bmUgTUFDQl9IQUxUX1RJTUVPVVQJMTIzMA0KPiAgDQo+ICsjZGVmaW5lIE1BQ0JfUE1fVElNRU9V VCAgMTAwIC8qIG1zICovDQo+ICsNCj4gICNkZWZpbmUgTUFDQl9NRElPX1RJTUVPVVQJMTAwMDAw MCAvKiBpbiB1c2VjcyAqLw0KPiAgDQo+ICAvKiBETUEgYnVmZmVyIGRlc2NyaXB0b3IgbWlnaHQg YmUgZGlmZmVyZW50IHNpemUNCj4gQEAgLTMzNSw2ICszMzgsMTAgQEAgc3RhdGljIGludCBtYWNi X21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgbWlpX2lkLCBpbnQgcmVnbnVtKQ0K PiAgCWludCB2YWx1ZTsNCj4gIAlpbnQgZXJyOw0KPiAgDQo+ICsJZXJyID0gcG1fcnVudGltZV9n ZXRfc3luYygmYnAtPnBkZXYtPmRldik7DQo+ICsJaWYgKGVyciA8IDApDQo+ICsJCXJldHVybiBl cnI7DQo+ICsNCj4gIAllcnIgPSBtYWNiX21kaW9fd2FpdF9mb3JfaWRsZShicCk7DQo+ICAJaWYg KGVyciA8IDApDQo+ICAJCXJldHVybiBlcnI7DQo+IEBAIC0zNDYsMTEgKzM1MywxNyBAQCBzdGF0 aWMgaW50IG1hY2JfbWRpb19yZWFkKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBtaWlfaWQsIGlu dCByZWdudW0pDQo+ICAJCQkgICAgICB8IE1BQ0JfQkYoQ09ERSwgTUFDQl9NQU5fQ09ERSkpKTsN Cj4gIA0KPiAgCWVyciA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTsNCj4gLQlpZiAoZXJy IDwgMCkNCj4gKwlpZiAoZXJyIDwgMCkgew0KPiArCQlwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5 KCZicC0+cGRldi0+ZGV2KTsNCj4gKwkJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoJmJwLT5w ZGV2LT5kZXYpOw0KDQpUaGlzIG1heSBsb29rIG5pY2VyIHdpdGggc29tZSBzb3J0IG9mIGdvdG8s IGlmIHRoaXMgd2lsbCByZW1haW4gaGVyZS4NCg0KPiAgCQlyZXR1cm4gZXJyOw0KPiArCX0NCj4g IA0KPiAgCXZhbHVlID0gTUFDQl9CRkVYVChEQVRBLCBtYWNiX3JlYWRsKGJwLCBNQU4pKTsNCj4g IA0KPiArCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koJmJwLT5wZGV2LT5kZXYpOw0KPiArCXBt X3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKCZicC0+cGRldi0+ZGV2KTsNCj4gKw0KPiAgCXJldHVy biB2YWx1ZTsNCj4gIH0NCj4gIA0KPiBAQCAtMzYwLDEwICszNzMsMTcgQEAgc3RhdGljIGludCBt YWNiX21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IG1paV9pZCwgaW50IHJlZ251 bSwNCj4gIAlzdHJ1Y3QgbWFjYiAqYnAgPSBidXMtPnByaXY7DQo+ICAJaW50IGVycjsNCj4gIA0K PiAtCWVyciA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTsNCj4gKwllcnIgPSBwbV9ydW50 aW1lX2dldF9zeW5jKCZicC0+cGRldi0+ZGV2KTsNCj4gIAlpZiAoZXJyIDwgMCkNCj4gIAkJcmV0 dXJuIGVycjsNCj4gIA0KPiArCWVyciA9IG1hY2JfbWRpb193YWl0X2Zvcl9pZGxlKGJwKTsNCj4g KwlpZiAoZXJyIDwgMCkgew0KPiArCQlwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KCZicC0+cGRl di0+ZGV2KTsNCj4gKwkJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoJmJwLT5wZGV2LT5kZXYp Ow0KDQpEaXR0bw0KDQo+ICsJCXJldHVybiBlcnI7DQo+ICsJfQ0KPiArDQo+ICAJbWFjYl93cml0 ZWwoYnAsIE1BTiwgKE1BQ0JfQkYoU09GLCBNQUNCX01BTl9TT0YpDQo+ICAJCQkgICAgICB8IE1B Q0JfQkYoUlcsIE1BQ0JfTUFOX1dSSVRFKQ0KPiAgCQkJICAgICAgfCBNQUNCX0JGKFBIWUEsIG1p aV9pZCkNCj4gQEAgLTM3NSw2ICszOTUsOSBAQCBzdGF0aWMgaW50IG1hY2JfbWRpb193cml0ZShz dHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgbWlpX2lkLCBpbnQgcmVnbnVtLA0KPiAgCWlmIChlcnIg PCAwKQ0KPiAgCQlyZXR1cm4gZXJyOw0KPiAgDQo+ICsJcG1fcnVudGltZV9tYXJrX2xhc3RfYnVz eSgmYnAtPnBkZXYtPmRldik7DQo+ICsJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoJmJwLT5w ZGV2LT5kZXYpOw0KPiArDQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+ICANCj4gQEAgLTIzODYsMTIg KzI0MDksMTggQEAgc3RhdGljIGludCBtYWNiX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldikN Cj4gIA0KPiAgCW5ldGRldl9kYmcoYnAtPmRldiwgIm9wZW5cbiIpOw0KPiAgDQo+ICsJZXJyID0g cG1fcnVudGltZV9nZXRfc3luYygmYnAtPnBkZXYtPmRldik7DQo+ICsJaWYgKGVyciA8IDApDQo+ ICsJCWdvdG8gcG1fZXhpdDsNCj4gKw0KPiAgCS8qIGNhcnJpZXIgc3RhcnRzIGRvd24gKi8NCj4g IAluZXRpZl9jYXJyaWVyX29mZihkZXYpOw0KPiAgDQo+ICAJLyogaWYgdGhlIHBoeSBpcyBub3Qg eWV0IHJlZ2lzdGVyLCByZXRyeSBsYXRlciovDQo+IC0JaWYgKCFkZXYtPnBoeWRldikNCj4gLQkJ cmV0dXJuIC1FQUdBSU47DQo+ICsJaWYgKCFkZXYtPnBoeWRldikgew0KPiArCQllcnIgPSAtRUFH QUlOOw0KPiArCQlnb3RvIHBtX2V4aXQ7DQo+ICsJfQ0KPiAgDQo+ICAJLyogUlggYnVmZmVycyBp bml0aWFsaXphdGlvbiAqLw0KPiAgCW1hY2JfaW5pdF9yeF9idWZmZXJfc2l6ZShicCwgYnVmc3op Ow0KPiBAQCAtMjQwMCw3ICsyNDI5LDcgQEAgc3RhdGljIGludCBtYWNiX29wZW4oc3RydWN0IG5l dF9kZXZpY2UgKmRldikNCj4gIAlpZiAoZXJyKSB7DQo+ICAJCW5ldGRldl9lcnIoZGV2LCAiVW5h YmxlIHRvIGFsbG9jYXRlIERNQSBtZW1vcnkgKGVycm9yICVkKVxuIiwNCj4gIAkJCSAgIGVycik7 DQo+IC0JCXJldHVybiBlcnI7DQo+ICsJCWdvdG8gcG1fZXhpdDsNCj4gIAl9DQo+ICANCj4gIAli cC0+bWFjYmdlbV9vcHMubW9nX2luaXRfcmluZ3MoYnApOw0KPiBAQCAtMjQxNyw2ICsyNDQ2LDEx IEBAIHN0YXRpYyBpbnQgbWFjYl9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpDQo+ICAJaWYg KGJwLT5wdHBfaW5mbykNCj4gIAkJYnAtPnB0cF9pbmZvLT5wdHBfaW5pdChkZXYpOw0KPiAgDQo+ ICtwbV9leGl0Og0KPiArCWlmIChlcnIpIHsNCj4gKwkJcG1fcnVudGltZV9wdXRfc3luYygmYnAt PnBkZXYtPmRldik7DQo+ICsJCXJldHVybiBlcnI7DQoNCllvdSBjb3VsZCBnZXQgdGhpcyBvZiB0 aGlzICJyZXR1cm4gZXJyIiBhbmQgdXNlZCBpdCBiZWxsb3csIGluc3RlYWQgb2YNCiJyZXR1cm4g MCINCg0KPiArCX0NCj4gIAlyZXR1cm4gMDsNCg0KSGVyZToNCglyZXR1cm4gZXJyOw0KDQo+ICB9 DQo+ICANCj4gQEAgLTI0NDUsNiArMjQ3OSw4IEBAIHN0YXRpYyBpbnQgbWFjYl9jbG9zZShzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2KQ0KPiAgCWlmIChicC0+cHRwX2luZm8pDQo+ICAJCWJwLT5wdHBf aW5mby0+cHRwX3JlbW92ZShkZXYpOw0KPiAgDQo+ICsJcG1fcnVudGltZV9wdXQoJmJwLT5wZGV2 LT5kZXYpOw0KPiArDQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+ICANCj4gQEAgLTQwMDgsNiArNDA0 NCwxMSBAQCBzdGF0aWMgaW50IG1hY2JfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikNCj4gIAlpZiAoZXJyKQ0KPiAgCQlyZXR1cm4gZXJyOw0KPiAgDQo+ICsJcG1fcnVudGltZV9z ZXRfYXV0b3N1c3BlbmRfZGVsYXkoJnBkZXYtPmRldiwgTUFDQl9QTV9USU1FT1VUKTsNCj4gKwlw bV9ydW50aW1lX3VzZV9hdXRvc3VzcGVuZCgmcGRldi0+ZGV2KTsNCj4gKwlwbV9ydW50aW1lX2dl dF9ub3Jlc3VtZSgmcGRldi0+ZGV2KTsNCj4gKwlwbV9ydW50aW1lX3NldF9hY3RpdmUoJnBkZXYt PmRldik7DQo+ICsJcG1fcnVudGltZV9lbmFibGUoJnBkZXYtPmRldik7DQo+ICAJbmF0aXZlX2lv ID0gaHdfaXNfbmF0aXZlX2lvKG1lbSk7DQo+ICANCj4gIAltYWNiX3Byb2JlX3F1ZXVlcyhtZW0s IG5hdGl2ZV9pbywgJnF1ZXVlX21hc2ssICZudW1fcXVldWVzKTsNCj4gQEAgLTQxMzksNiArNDE4 MCw5IEBAIHN0YXRpYyBpbnQgbWFjYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQ0KPiAgCQkgICAgbWFjYl9pc19nZW0oYnApID8gIkdFTSIgOiAiTUFDQiIsIG1hY2JfcmVhZGwo YnAsIE1JRCksDQo+ICAJCSAgICBkZXYtPmJhc2VfYWRkciwgZGV2LT5pcnEsIGRldi0+ZGV2X2Fk ZHIpOw0KPiAgDQo+ICsJcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeSgmYnAtPnBkZXYtPmRldik7 DQo+ICsJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoJmJwLT5wZGV2LT5kZXYpOw0KPiArDQo+ ICAJcmV0dXJuIDA7DQo+ICANCj4gIGVycl9vdXRfdW5yZWdpc3Rlcl9tZGlvOg0KPiBAQCAtNDE1 OCw2ICs0MjAyLDkgQEAgc3RhdGljIGludCBtYWNiX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpDQo+ICAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBjbGspOw0KPiAgCWNsa19kaXNh YmxlX3VucHJlcGFyZShyeF9jbGspOw0KPiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZSh0c3VfY2xr KTsNCj4gKwlwbV9ydW50aW1lX2Rpc2FibGUoJnBkZXYtPmRldik7DQo+ICsJcG1fcnVudGltZV9z ZXRfc3VzcGVuZGVkKCZwZGV2LT5kZXYpOw0KPiArCXBtX3J1bnRpbWVfZG9udF91c2VfYXV0b3N1 c3BlbmQoJnBkZXYtPmRldik7DQo+ICANCj4gIAlyZXR1cm4gZXJyOw0KPiAgfQ0KPiBAQCAtNDE4 MSwxMSArNDIyOCwxNiBAQCBzdGF0aWMgaW50IG1hY2JfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpDQo+ICAJCW1kaW9idXNfZnJlZShicC0+bWlpX2J1cyk7DQo+ICANCj4gIAkJ dW5yZWdpc3Rlcl9uZXRkZXYoZGV2KTsNCj4gLQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGJwLT50 eF9jbGspOw0KPiAtCQljbGtfZGlzYWJsZV91bnByZXBhcmUoYnAtPmhjbGspOw0KPiAtCQljbGtf ZGlzYWJsZV91bnByZXBhcmUoYnAtPnBjbGspOw0KPiAtCQljbGtfZGlzYWJsZV91bnByZXBhcmUo YnAtPnJ4X2Nsayk7DQo+IC0JCWNsa19kaXNhYmxlX3VucHJlcGFyZShicC0+dHN1X2Nsayk7DQo+ ICsJCXBtX3J1bnRpbWVfZGlzYWJsZSgmcGRldi0+ZGV2KTsNCj4gKwkJcG1fcnVudGltZV9kb250 X3VzZV9hdXRvc3VzcGVuZCgmcGRldi0+ZGV2KTsNCj4gKwkJaWYgKCFwbV9ydW50aW1lX3N1c3Bl bmRlZCgmcGRldi0+ZGV2KSkgew0KPiArCQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGJwLT50eF9j bGspOw0KPiArCQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGJwLT5oY2xrKTsNCj4gKwkJCWNsa19k aXNhYmxlX3VucHJlcGFyZShicC0+cGNsayk7DQo+ICsJCQljbGtfZGlzYWJsZV91bnByZXBhcmUo YnAtPnJ4X2Nsayk7DQo+ICsJCQljbGtfZGlzYWJsZV91bnByZXBhcmUoYnAtPnRzdV9jbGspOw0K PiArCQkJcG1fcnVudGltZV9zZXRfc3VzcGVuZGVkKCZwZGV2LT5kZXYpOw0KPiArCQl9DQo+ICAJ CW9mX25vZGVfcHV0KGJwLT5waHlfbm9kZSk7DQo+ICAJCWZyZWVfbmV0ZGV2KGRldik7DQo+ICAJ fQ0KPiBAQCAtNDIwNSwxMyArNDI1Nyw5IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgbWFj Yl9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gIAkJbWFjYl93cml0ZWwoYnAsIElFUiwg TUFDQl9CSVQoV09MKSk7DQo+ICAJCW1hY2Jfd3JpdGVsKGJwLCBXT0wsIE1BQ0JfQklUKE1BRykp Ow0KPiAgCQllbmFibGVfaXJxX3dha2UoYnAtPnF1ZXVlc1swXS5pcnEpOw0KPiAtCX0gZWxzZSB7 DQo+IC0JCWNsa19kaXNhYmxlX3VucHJlcGFyZShicC0+dHhfY2xrKTsNCj4gLQkJY2xrX2Rpc2Fi bGVfdW5wcmVwYXJlKGJwLT5oY2xrKTsNCj4gLQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGJwLT5w Y2xrKTsNCj4gLQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGJwLT5yeF9jbGspOw0KPiAgCX0NCj4g LQljbGtfZGlzYWJsZV91bnByZXBhcmUoYnAtPnRzdV9jbGspOw0KPiArDQo+ICsJcG1fcnVudGlt ZV9mb3JjZV9zdXNwZW5kKGRldik7DQo+ICANCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gQEAgLTQy MjEsMTEgKzQyNjksNDMgQEAgc3RhdGljIGludCBfX21heWJlX3VudXNlZCBtYWNiX3Jlc3VtZShz dHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICAJc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiA9IGRldl9n ZXRfZHJ2ZGF0YShkZXYpOw0KPiAgCXN0cnVjdCBtYWNiICpicCA9IG5ldGRldl9wcml2KG5ldGRl dik7DQo+ICANCj4gKwlwbV9ydW50aW1lX2ZvcmNlX3Jlc3VtZShkZXYpOw0KPiArDQo+ICAJaWYg KGJwLT53b2wgJiBNQUNCX1dPTF9FTkFCTEVEKSB7DQo+ICAJCW1hY2Jfd3JpdGVsKGJwLCBJRFIs IE1BQ0JfQklUKFdPTCkpOw0KPiAgCQltYWNiX3dyaXRlbChicCwgV09MLCAwKTsNCj4gIAkJZGlz YWJsZV9pcnFfd2FrZShicC0+cXVldWVzWzBdLmlycSk7DQo+IC0JfSBlbHNlIHsNCj4gKwl9DQo+ ICsNCj4gKwluZXRpZl9kZXZpY2VfYXR0YWNoKG5ldGRldik7DQo+ICsNCj4gKwlyZXR1cm4gMDsN Cj4gK30NCj4gKw0KPiArc3RhdGljIGludCBfX21heWJlX3VudXNlZCBtYWNiX3J1bnRpbWVfc3Vz cGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYpOw0KPiArCXN0cnVjdCBuZXRfZGV2aWNl ICpuZXRkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsNCj4gKwlzdHJ1Y3QgbWFjYiAq YnAgPSBuZXRkZXZfcHJpdihuZXRkZXYpOw0KPiArDQo+ICsJaWYgKCEoZGV2aWNlX21heV93YWtl dXAoJmJwLT5kZXYtPmRldikpKSB7DQo+ICsJCWNsa19kaXNhYmxlX3VucHJlcGFyZShicC0+dHhf Y2xrKTsNCj4gKwkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGJwLT5oY2xrKTsNCj4gKwkJY2xrX2Rp c2FibGVfdW5wcmVwYXJlKGJwLT5wY2xrKTsNCj4gKwkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGJw LT5yeF9jbGspOw0KPiArCX0NCj4gKwljbGtfZGlzYWJsZV91bnByZXBhcmUoYnAtPnRzdV9jbGsp Ow0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgX19tYXliZV91 bnVzZWQgbWFjYl9ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJ c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYpOw0K PiArCXN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2 KTsNCj4gKwlzdHJ1Y3QgbWFjYiAqYnAgPSBuZXRkZXZfcHJpdihuZXRkZXYpOw0KPiArDQo+ICsJ aWYgKCEoZGV2aWNlX21heV93YWtldXAoJmJwLT5kZXYtPmRldikpKSB7DQo+ICAJCWNsa19wcmVw YXJlX2VuYWJsZShicC0+cGNsayk7DQo+ICAJCWNsa19wcmVwYXJlX2VuYWJsZShicC0+aGNsayk7 DQo+ICAJCWNsa19wcmVwYXJlX2VuYWJsZShicC0+dHhfY2xrKTsNCj4gQEAgLTQyMzMsMTIgKzQz MTMsMTMgQEAgc3RhdGljIGludCBfX21heWJlX3VudXNlZCBtYWNiX3Jlc3VtZShzdHJ1Y3QgZGV2 aWNlICpkZXYpDQo+ICAJfQ0KPiAgCWNsa19wcmVwYXJlX2VuYWJsZShicC0+dHN1X2Nsayk7DQo+ ICANCj4gLQluZXRpZl9kZXZpY2VfYXR0YWNoKG5ldGRldik7DQo+IC0NCj4gIAlyZXR1cm4gMDsN Cj4gIH0NCj4gIA0KPiAtc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKG1hY2JfcG1fb3BzLCBtYWNi X3N1c3BlbmQsIG1hY2JfcmVzdW1lKTsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29w cyBtYWNiX3BtX29wcyA9IHsNCj4gKwlTRVRfU1lTVEVNX1NMRUVQX1BNX09QUyhtYWNiX3N1c3Bl bmQsIG1hY2JfcmVzdW1lKQ0KPiArCVNFVF9SVU5USU1FX1BNX09QUyhtYWNiX3J1bnRpbWVfc3Vz cGVuZCwgbWFjYl9ydW50aW1lX3Jlc3VtZSwgTlVMTCkNCj4gK307DQo+ICANCj4gIHN0YXRpYyBz dHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG1hY2JfZHJpdmVyID0gew0KPiAgCS5wcm9iZQkJPSBtYWNi X3Byb2JlLA0KPiANCg==