From mboxrd@z Thu Jan 1 00:00:00 1970 From: Parav Pandit Subject: Re: [PATCH V3 4/7] mdev: introduce device specific ops Date: Thu, 17 Oct 2019 16:29:47 +0000 Message-ID: References: <20191011081557.28302-1-jasowang@redhat.com> <20191011081557.28302-5-jasowang@redhat.com> <20191015124137.4f948bd2.cohuck@redhat.com> <20191015112646.3776dc29@x1.home> <20191016105232.663dd3c9.cohuck@redhat.com> <20191016105303.6e01936f@x1.home> <20191016163744.354c5373@x1.home> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191016163744.354c5373@x1.home> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Alex Williamson Cc: "christophe.de.dinechin@gmail.com" , "kvm@vger.kernel.org" , "mst@redhat.com" , "airlied@linux.ie" , Jason Wang , "heiko.carstens@de.ibm.com" , "dri-devel@lists.freedesktop.org" , "virtualization@lists.linux-foundation.org" , "kwankhede@nvidia.com" , "rob.miller@broadcom.com" , "linux-s390@vger.kernel.org" , "sebott@linux.ibm.com" , "lulu@redhat.com" , "eperezma@redhat.com" , "pasic@linux.ibm.com" , "borntraeger@de.ibm.com" , "haotian.wang@sifive.com" , int List-Id: dri-devel@lists.freedesktop.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQWxleCBXaWxsaWFtc29u IDxhbGV4LndpbGxpYW1zb25AcmVkaGF0LmNvbT4NCj4gU2VudDogV2VkbmVzZGF5LCBPY3RvYmVy IDE2LCAyMDE5IDU6MzggUE0NCj4gVG86IFBhcmF2IFBhbmRpdCA8cGFyYXZAbWVsbGFub3guY29t Pg0KPiBDYzogQ29ybmVsaWEgSHVjayA8Y29odWNrQHJlZGhhdC5jb20+OyBKYXNvbiBXYW5nDQo+ IDxqYXNvd2FuZ0ByZWRoYXQuY29tPjsga3ZtQHZnZXIua2VybmVsLm9yZzsgbGludXgtczM5MEB2 Z2VyLmtlcm5lbC5vcmc7DQo+IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IGRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IGludGVsLQ0KPiBnZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnOyBpbnRlbC1ndnQtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsNCj4ga3dhbmtoZWRlQG52 aWRpYS5jb207IG1zdEByZWRoYXQuY29tOyB0aXdlaS5iaWVAaW50ZWwuY29tOw0KPiB2aXJ0dWFs aXphdGlvbkBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZzsgbmV0ZGV2QHZnZXIua2VybmVsLm9y ZzsNCj4gbWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb207IGN1bm1pbmcubGlhbmdAaW50ZWwuY29t Ow0KPiB6aGlob25nLndhbmdAaW50ZWwuY29tOyByb2IubWlsbGVyQGJyb2FkY29tLmNvbTsgeGlh by53LndhbmdAaW50ZWwuY29tOw0KPiBoYW90aWFuLndhbmdAc2lmaXZlLmNvbTsgemhlbnl1d0Bs aW51eC5pbnRlbC5jb207IHpoaS5hLndhbmdAaW50ZWwuY29tOw0KPiBqYW5pLm5pa3VsYUBsaW51 eC5pbnRlbC5jb207IGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb207DQo+IHJvZHJpZ28u dml2aUBpbnRlbC5jb207IGFpcmxpZWRAbGludXguaWU7IGRhbmllbEBmZndsbC5jaDsNCj4gZmFy bWFuQGxpbnV4LmlibS5jb207IHBhc2ljQGxpbnV4LmlibS5jb207IHNlYm90dEBsaW51eC5pYm0u Y29tOw0KPiBvYmVycGFyQGxpbnV4LmlibS5jb207IGhlaWtvLmNhcnN0ZW5zQGRlLmlibS5jb207 IGdvckBsaW51eC5pYm0uY29tOw0KPiBib3JudHJhZWdlckBkZS5pYm0uY29tOyBha3Jvd2lha0Bs aW51eC5pYm0uY29tOyBmcmV1ZGVAbGludXguaWJtLmNvbTsNCj4gbGluZ3NoYW4uemh1QGludGVs LmNvbTsgSWRvIFNoYW1heSA8aWRvc0BtZWxsYW5veC5jb20+Ow0KPiBlcGVyZXptYUByZWRoYXQu Y29tOyBsdWx1QHJlZGhhdC5jb207IGNocmlzdG9waGUuZGUuZGluZWNoaW5AZ21haWwuY29tOw0K PiBrZXZpbi50aWFuQGludGVsLmNvbQ0KPiBTdWJqZWN0OiBSZTogW1BBVENIIFYzIDQvN10gbWRl djogaW50cm9kdWNlIGRldmljZSBzcGVjaWZpYyBvcHMNCj4gDQo+IE9uIFdlZCwgMTYgT2N0IDIw MTkgMjA6NDg6MDYgKzAwMDANCj4gUGFyYXYgUGFuZGl0IDxwYXJhdkBtZWxsYW5veC5jb20+IHdy b3RlOg0KPiANCj4gPiA+IEZyb206IEFsZXggV2lsbGlhbXNvbiA8YWxleC53aWxsaWFtc29uQHJl ZGhhdC5jb20+IE9uIFdlZCwgMTYgT2N0DQo+ID4gPiAyMDE5IDE1OjMxOjI1ICswMDAwIFBhcmF2 IFBhbmRpdCA8cGFyYXZAbWVsbGFub3guY29tPiB3cm90ZToNCj4gPiA+ID4gPiBGcm9tOiBDb3Ju ZWxpYSBIdWNrIDxjb2h1Y2tAcmVkaGF0LmNvbT4gUGFyYXYgUGFuZGl0DQo+ID4gPiA+ID4gPHBh cmF2QG1lbGxhbm94LmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4gPiA+IEZyb206IEFsZXggV2lsbGlh bXNvbiA8YWxleC53aWxsaWFtc29uQHJlZGhhdC5jb20+IE9uIFR1ZSwNCj4gPiA+ID4gPiA+ID4g MTUgT2N0IDIwMTkgMjA6MTc6MDEgKzA4MDAgSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNv bT4NCj4gPiA+ID4gPiA+ID4gd3JvdGU6DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g T24gMjAxOS8xMC8xNSDkuIvljYg2OjQxLCBDb3JuZWxpYSBIdWNrIHdyb3RlOg0KPiA+ID4gPiA+ ID4gPiA+ID4gQXBvbG9naWVzIGlmIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBkaXNjdXNzZWQsIGJ1 dCBkbyB3ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gd2FudCBhDQo+ID4gPiA+ID4gPiA+ID4gPiAxOjEg cmVsYXRpb25zaGlwIGJldHdlZW4gaWQgYW5kIG9wcywgb3IgY2FuIGRpZmZlcmVudA0KPiA+ID4g PiA+ID4gPiA+ID4gZGV2aWNlcyB3aXRoIHRoZSBzYW1lIGlkIHJlZ2lzdGVyIGRpZmZlcmVudCBv cHM/DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEkg dGhpbmsgd2UgaGF2ZSBhIE46MSBtYXBwaW5nIGJldHdlZW4gaWQgYW5kIG9wcywgZS5nIHdlDQo+ ID4gPiA+ID4gPiA+ID4gd2FudCBib3RoIHZpcnRpby1tZGV2IGFuZCB2aG9zdC1tZGV2IHVzZSBh IHNpbmdsZSBzZXQgb2YgZGV2aWNlDQo+IG9wcy4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gVGhlIGNvbnRlbnRzIG9mIHRoZSBvcHMgc3RydWN0dXJlIGlzIGVzc2VudGlhbGx5IGRlZmlu ZWQgYnkNCj4gPiA+ID4gPiA+ID4gdGhlIGlkLCB3aGljaCBpcyB3aHkgSSB3YXMgbGVhbmluZyB0 b3dhcmRzIHRoZW0gYmVpbmcgZGVmaW5lZA0KPiB0b2dldGhlci4NCj4gPiA+ID4gPiA+ID4gVGhl eSBhcmUgZWZmZWN0aXZlbHkgaW50ZXJsb2NrZWQsIHRoZSBpZCBkZWZpbmVzIHdoaWNoIG1kZXYN Cj4gImVuZHBvaW50Ig0KPiA+ID4gPiA+ID4gPiBkcml2ZXIgaXMgbG9hZGVkIGFuZCB0aGF0IGRy aXZlciByZXF1aXJlcyBtZGV2X2dldF9kZXZfb3BzKCkNCj4gPiA+ID4gPiA+ID4gdG8gcmV0dXJu IHRoZSBzdHJ1Y3R1cmUgcmVxdWlyZWQgYnkgdGhlIGRyaXZlci4gIEkgd2lzaA0KPiA+ID4gPiA+ ID4gPiB0aGVyZSB3YXMgYSB3YXkgd2UgY291bGQgaW5jb3Jwb3JhdGUgdHlwZSBjaGVja2luZyBo ZXJlLiAgV2UNCj4gPiA+ID4gPiA+ID4gdG95ZWQgd2l0aCB0aGUgaWRlYSBvZiBoYXZpbmcgdGhl IGNsYXNzIGluIHRoZSBzYW1lDQo+ID4gPiA+ID4gPiA+IHN0cnVjdHVyZSBhcyB0aGUgb3BzLCBi dXQgSSB0aGluayB0aGlzIGFwcHJvYWNoIHdhcyBjaG9zZW4NCj4gPiA+ID4gPiA+ID4gZm9yIHNp bXBsaWNpdHkuICBXZSBjb3VsZCBzdGlsbCBkbw0KPiA+ID4gc29tZXRoaW5nIGxpa2U6DQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGludCBtZGV2X3NldF9jbGFzc19zdHJ1Y3Qoc3RydWN0 IGRldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3QNCj4gPiA+ID4gPiA+ID4gbWRldl9jbGFzc19zdHJ1 Y3QgKmNsYXNzKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gc3RydWN0IG1kZXZfY2xh c3Nfc3RydWN0IHsNCj4gPiA+ID4gPiA+ID4gCXUxNglpZDsNCj4gPiA+ID4gPiA+ID4gCXVuaW9u IHsNCj4gPiA+ID4gPiA+ID4gCQlzdHJ1Y3QgdmZpb19tZGV2X29wcyB2ZmlvX29wczsNCj4gPiA+ ID4gPiA+ID4gCQlzdHJ1Y3QgdmlydGlvX21kZXZfb3BzIHZpcnRpb19vcHM7DQo+ID4gPiA+ID4g PiA+IAl9Ow0KPiA+ID4gPiA+ID4gPiB9Ow0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBN YXliZSBldmVuOg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBzdHJ1Y3QgdmZpb19tZGV2 X29wcyAqbWRldl9nZXRfdmZpb19vcHMoc3RydWN0IG1kZXZfZGV2aWNlDQo+ID4gPiA+ID4gPiA+ ICptZGV2KQ0KPiA+ID4gew0KPiA+ID4gPiA+ID4gPiAJQlVHX09OKG1kZXYtPmNsYXNzLmlkICE9 IE1ERVZfSURfVkZJTyk7DQo+ID4gPiA+ID4gPiA+IAlyZXR1cm4gJm1kZXYtPmNsYXNzLnZmaW9f b3BzOyB9DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRoZSBtYXRjaCBjYWxsYmFjayB3 b3VsZCBvZiBjb3Vyc2UganVzdCB1c2UgdGhlIG1kZXYtPmNsYXNzLmlkDQo+IHZhbHVlLg0KPiA+ ID4gPiA+ID4gPiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCwgYnV0IG1heWJlIGJldHRlciB0eXBl IGNoYXJhY3RlcmlzdGljcy4NCj4gPiA+ID4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiBBbGV4DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gV2UgaGF2ZSAzIHVz ZSBjYXNlcyBvZiBtZGV2Lg0KPiA+ID4gPiA+ID4gMS4gY3VycmVudCBtZGV2IGJpbmRpbmcgdG8g dmZpb19tZGV2IDIuIG1kZXYgYmluZGluZyB0byB2aXJ0aW8gMy4NCj4gPiA+ID4gPiA+IG1kZXYg YmluZGluZyB0byBtbHg1X2NvcmUgd2l0aG91dCBkZXZfb3BzDQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gQWxzbw0KPiA+ID4gPiA+ID4gKGEpIGEgZ2l2ZW4gcGFyZW50IG1heSBzZXJ2ZSBtdWx0 aXBsZSB0eXBlcyBvZiBjbGFzc2VzIGluIGZ1dHVyZS4NCj4gPiA+ID4gPiA+IChiKSBudW1iZXIg b2YgY2xhc3NlcyBtYXkgbm90IGxpa2VseSBleHBsb2RlLCB0aGV5IHdpbGwgYmUNCj4gPiA+ID4g PiA+IGhhbmRmdWwgb2YgdGhlbS4gKHZmaW9fbWRldiwgdmlydGlvKQ0KPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+IFNvLCBpbnN0ZWFkIG9mIG1ha2luZyBjb3BpZXMgb2YgdGhpcyBkZXZfb3BzIHBv aW50ZXIgaW4gZWFjaA0KPiA+ID4gPiA+ID4gbWRldiwgaXQgaXMgYmV0dGVyDQo+ID4gPiA+ID4g dG8ga2VlcCBjb25zdCBtdWx0aXBsZSBvcHMgaW4gdGhlaXIgcGFyZW50IGRldmljZS4NCj4gPiA+ ID4gPiA+IFNvbWV0aGluZyBsaWtlIGJlbG93LA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IHN0 cnVjdCBtZGV2X3BhcmVudCB7DQo+ID4gPiA+ID4gPiAJWy4uXQ0KPiA+ID4gPiA+ID4gCXN0cnVj dCBtZGV2X3BhcmVudF9vcHMgKnBhcmVudF9vcHM7IC8qIGNyZWF0ZSwgcmVtb3ZlICovDQo+ID4g PiA+ID4gPiAJc3RydWN0IHZmaW9fbWRldl9vcHMgKnZmaW9fb3BzOyAvKiByZWFkLHdyaXRlLCBp b2N0bCBldGMgKi8NCj4gPiA+ID4gPiA+IAlzdHJ1Y3QgdmlydGlvX21kZXZfb3BzICp2aXJ0aW9f b3BzOyAvKiB2aXJ0aW8gb3BzICovIH07DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBUaGF0IGZlZWxz IGEgYml0IG9kZC4gV2h5IHNob3VsZCB0aGUgcGFyZW50IGNhcnJ5IHBvaW50ZXJzIHRvDQo+ID4g PiA+ID4gZXZlcnkgcG9zc2libGUgdmVyc2lvbiBvZiBvcHM/DQo+ID4gPiA+ID4NCj4gPiA+ID4g SG93IG1hbnkgYXJlIHdlIGV4cGVjdGluZz8gSSBlbnZpc2lvbmVkIGhhbmRmdWwgb2YgdGhlbS4N Cj4gPiA+ID4gSXQgY2FycmllcyBiZWNhdXNlIHBhcmVudCBpcyBmZXcsIG1kZXZzIGFyZSBzZXZl cmFsIGh1bmRyZWRzLg0KPiA+ID4gPiBJdCBtYWtlcyBzZW5zZSB0byBrZWVwIGZldyBjb3BpZXMs IGluc3RlYWQgb2Ygc2V2ZXJhbCBodW5kcmVkDQo+ID4gPiA+IGNvcGllcyBhbmQgaXQgZG9lc24n dCBuZWVkIHRvIHNldHVwIG9uIGV2ZXJ5IG1kZXYgY3JlYXRpb24uDQo+ID4gPg0KPiA+ID4gSXQg ZG9lcyBuZWVkIHNldHVwIG9uIGV2ZXJ5IG1kZXYgY3JlYXRpb24sIGl0J3MganVzdCBhIG1hdHRl ciBvZiB0aGUNCj4gPiA+IHNjb3BlLCAnaWQgYW5kIG9wcycgdnMgJ2lkIG9ubHknIHZzICdvcHMg d2l0aCBpbXBsaWNpdCBpZCcuICBUaGUNCj4gPiA+IG90aGVyIGFyZ3VtZW50IGlzIGFzc3VtaW5n IGEgc3BhY2UgdnMgdGltZSB0cmFkZS1vZmYgdGhhdCBJJ20gaGF2aW5nDQo+ID4gPiBhIGhhcmQg dGltZSBqdWRnaW5nIGlzIG5lY2Vzc2FyaWx5IHRoZSBjb3JyZWN0IGFwcHJvYWNoLiAgV2UNCj4g PiA+IHBvdGVudGlhbGx5IGhhdmUgYmV0dGVyIGRhdGEgbG9jYWxpdHkgaW4gdGhlIG1kZXYgZGV2 aWNlIHN0cnVjdHVyZQ0KPiA+ID4gdnMgdGhlIHBhcmVudC4gIFRoZSBjYWNoaW5nIG9mIHRoZSBv cHMgc3RydWN0dXJlIGl0c2VsZiBpcyBzZXBhcmF0ZSBmcm9tIGhvdw0KPiB3ZSBnZXQgdG8gaXQu DQo+ID4gPiBXZSBtaWdodCBoYXZlIGh1bmRyZWRzIG9mIHBvaW50ZXJzIHRvIHRob3NlIG9wcyBz dHJ1Y3R1cmUsIGJ1dCB0aGUNCj4gPiA+IHNwYWNlIHRyYWRlLW9mZiBtaWdodCB3ZSB3b3J0aCBp dCBpZiB0aGV5J3JlIG9uIHRoZSBzYW1lIGNhY2hlbGluZQ0KPiA+ID4gYXMgdGhlIG1kZXYgZGV2 aWNlIGl0c2VsZiB2cyB0aGUgaW5kaXJlY3Rpb24gdmlhIHRoZSBwYXJlbnQuDQo+ID4gPg0KPiA+ ID4gSSBzZWUgYSBjb3VwbGUgb3RoZXIgZHJhd2JhY2tzIHRvIHRoZSBwYXJlbnQgaG9zdGVkIG9w cyBwb2ludGVycyBhcw0KPiA+ID4gd2VsbC4gIEZpcnN0LCBpdCBpbXBvc2VzIHRoYXQgcGVyIHBh cmVudCB0aGVyZSBjYW4gb25seSBiZSBvbmUNCj4gPiA+IGRldmljZSBvcHMgc3RydWN0dXJlIHBl ciBjbGFzcyBpZCwgYnV0IHdobydzIHRvIHNheSB0aGF0IGRpZmZlcmVudCB0eXBlcyBvZg0KPiBt ZGV2IGRldmljZXMgZm9yIGEgZ2l2ZW4gcGFyZW50IGFsbA0KPiA+ID4gbWFrZSB0aGUgc2FtZSBj YWxsYmFja3MgaW50byB0aGUgcGFyZW50Lg0KPiA+IFdlIHNob3VsZCBoYXZlIGRyaXZlciB3aG8g aW50ZW50IHRvIHVzZSBkaWZmZXJlbnQgZGV2aWNlIG9wcyBmb3IgZWFjaA0KPiA+IGRldmljZSB3 aXRoIHNpbmdsZSBwYXJlbnQgdGhhdCBzdXBwb3J0cyB0aGlzIGNsYWltLg0KPiANCj4gV2h5PyAg QXJlIHdlIG5vdCBhbGxvd2VkIHRvIGlkZW50aWZ5IHJlc3RyaWN0aW9ucyBpbXBsaWVkIGJ5IGEg Z2l2ZW4gcHJvcG9zYWwgaWYNCj4gd2UgZG9uJ3QgeWV0IGhhdmUgYSB1c2VyPyAgSSBjYW4ndCBz dWJzY3JpYmUgdG8gdGhhdC4NCj4gDQpPZiBjb3Vyc2Ugd2UgY2FuIGlkZW50aWZ5IHRoZSByZXN0 cmljdGlvbnMuDQpCdXQgaWYgdGhlcmUgaXMgbm8gY3VycmVudCB1c2VyLCB3aG8gaXMgaXQgcmVz dHJpY3Rpbmc/DQpBIGZ1dHVyZSB1c2UgY2FzZT8gV2h5IGNhbid0IHRoYXQgY2hhbmdlIGJlIGRv bmUgd2hlbiBhbiBhY3R1YWwgdXNlciBuZWVkcyBpdD8NCg0KPiA+ICBGb3IgaW5zdGFuY2UsIGZv ciBhIHZmaW8tbWRldiB3ZQ0KPiA+ID4gYWxyZWFkeSBzdXBwb3J0IHRoZSBjb25jZXB0IG9mIGFu IGlvbW11IGJhY2tpbmcgZGV2aWNlIHdoaWNoIG1ha2VzDQo+ID4gPiB0aGUgdHlwZTEgaW9tbXUg Y29kZSBiZWhhdmUgYSBsaXR0bGUgZGlmZmVyZW50bHkuICBUaG9zZSBkaWZmZXJlbmNlcw0KPiA+ ID4gbWlnaHQgYmUgc3VmZmljaWVudCB0aGF0IHRoZSBwYXJlbnQgZHJpdmVyIHdvdWxkIHJlZ2lz dGVyIGENCj4gPiA+IGRpZmZlcmVudCBkZXZpY2Ugb3BzIHN0cnVjdHVyZSBmb3IgYW4gaW9tbXUg YmFja2VkIG1kZXYNCj4gPiA+IHZzIGEgbm9uLWlvbW11IGJhY2tlZCBkZXZpY2UuDQo+ID4gSSBh bSBub3Qgc3VyZSBpZiB0aGlzIGlzIHJlYWxseSB3b3J0aCBpdC4NCj4gPiBXaGljaCBkcml2ZXIg c2hvdWxkIEkgbG9vayB3aGljaCBoYXMgaWYtZWxzZSBjb25kaXRpb25zIHNwcmlua2xlZCBpbg0K PiA+IHRoZXNlIGNhbGxiYWNrcyBmb3IgZGlmZmVyZW50IGlvbW11IHR5cGVzPyBJZiBtYWpvcml0 eSBjb2RlIGlzIHNhbWUsDQo+ID4gYWRkaW5nIGZldyBicmFuY2hlcyBsb29rcyBvayB2cyBjcmVh dGluZyBuZXcgb3BzIGFsbCB0b2dldGhlci4gU28gSQ0KPiA+IG5lZWQgdG8gZWR1Y2F0ZSBteXNl bGYgZmlyc3Qgd2l0aCB0aGUgZHJpdmVyIHdoaWNoIGRlc2lyZXMgdGhpcy4gQW55DQo+ID4gcG9p bnRlcnM/DQo+IA0KPiBXaGlsZSB0aGUgaW9tbXUgYmFja2VkIHZmaW8tbWRldnMgaXMgcmVhbCwg dGhlIGV4YW1wbGUgdGhhdCBhIHBhcmVudCBkcml2ZXINCj4gbWlnaHQgY2hvb3NlIHRvIHJlZ2lz dGVyIGRpZmZlcmVudCBkZXZpY2Ugb3BzIGJhc2VkIG9uIHRoYXQgaXMgdGhlb3JldGljYWwuDQo+ IFBhcmVudCBkcml2ZXJzIGRvbid0IGhhdmUgdGhhdCBvcHRpb24gdG9kYXksIGJ1dCBhcyB3ZSdy ZSBtYWtpbmcgdGhlIGRldmljZSBvcHMNCj4gbW9yZSBtb2R1bGFyIGFuZCBoYXZlIHN0dW1ibGVk IG9udG8gdGhpcyBiZW5lZml0IG9mIHBlciBkZXZpY2Ugb3BzLCBwZXJoYXBzIGl0DQo+IG1pZ2h0 IGJlIHVzZWZ1bC4gIFRoZSAiaXMgaXQgd29ydGggaXQiDQo+IHF1ZXN0aW9uIGNhbiBhbHNvIGJl IGFza2VkIG9mIHRoZSBjbGFpbWVkIGJlbmVmaXRzIG9mIGEgc2V0IG9mIHNoYXJlZCBkZXZpY2Vz DQo+IG9wcyBwZXIgcGFyZW50Lg0KPiANCj4gPiA+IFRoZSBvdGhlcg0KPiA+ID4gZHJhd2JhY2sg aXMgdGhhdCBpdCBpbXBsaWVzIGEgYmluYXJ5IGRpZmZlcmVuY2UgaW4gYWxsIG1kZXYgcGFyZW50 DQo+ID4gPiBkcml2ZXJzIHRvIGFkZCBhbnkgbmV3IGRldmljZSBpZHMuICBJIGtub3cgd2UgZG9u J3QgZ3VhcmFudGVlIGJpbmFyeQ0KPiA+ID4gY29tcGF0aWJpbGl0eSwgYnV0IGl0J3MgcmF0aGVy IHVnbHkuDQo+ID4gPg0KPiA+IFllYWgsIHdlIGRvbid0IHN1cHBvcnQgYW5kIHRoZXJlIGlzIG5v IHJlcXVpcmVtZW50IGZvciBiaW5hcnkNCj4gPiBjb21wYXRpYmlsaXR5Lg0KPiA+DQo+ID4gPiBP dmVyYWxsLCBJIGd1ZXNzIEkgdGVuZCB0byBwcmVmZXIgQ29ubmllJ3MgcHJvcG9zYWwsIHRoZSBj bGFzcyBpZA0KPiA+ID4gYW5kIHN0cnVjdHVyZSBhcmUgdGllZCB0b2dldGhlciBhbmQgdGhlIHBh cmVudCBkcml2ZXIgaXMgb25seQ0KPiA+ID4gcmVzcG9uc2libGUgZm9yIG9uZSBvZiB0aGVtLCB0 aGUgY2xhc3MgaWQgaXMgaGlkZGVuIGF3YXkgaW4NCj4gPiA+IG1kZXYtY29yZSBhbmQgdGhlIG1k ZXYgZHJpdmVyIGl0c2VsZi4NCj4gPiBJIGFtIGZpbmUgd2l0aCBDb3JuZWxpYSdzIGFwcHJvYWNo Lg0KPiA+IEl0IGNvbWVzIHdpdGggc21hbGwgY29zdCBvZiBhZGRpdGlvbmFsIHN5bWJvbHMgYW5k IGl0IGlzIHByb2JhYmx5IG9rLg0KPiA+IEkganVzdCBmaW5kIGl0IG92ZXIgZW5naW5lZXJlZCBn aXZlbiBoYW5kZnVsIG9mIGRldiBvcHMgdHlwZXMuDQo+IA0KPiBJZiB0aGUgZGV2aWNlIG9wcyB0 eXBlcyBhcmUgbGltaXRlZCwgdGhlbiBzbyBhcmUgdGhlIGFkZGl0aW9uYWwgc3ltYm9scy4gIFRo b3NlDQo+IHN5bWJvbHMgYWxzbyBhZGQgYSBkZWdyZWUgb2YgZXhwbGljaXRuZXNzIHRvIHRoZSBp bnRlcmZhY2UgDQpFeHBsaWNpdG5lc3MgaXMgZ29vZCB0byBhdm9pZCBlcnJvci4NClN1Y2ggZXhw bGljaXRuZXNzIGV4aXN0IGluIGJvdGggdGhlIG1ldGhvZHMgaWYgb3BzIGFyZSBwZXIgcGFyZW50 IG9yIHBlciBkZXZpY2UuDQoNCihpZS4gcmVnaXN0ZXIgdGhpcw0KPiBkZXZpY2UgYXMgdmZpby1t ZGV2IHdpdGggdGhpcyBzZXQgb2YgdmZpby1tZGV2LW9wcywgdmVyc3VzIHJlZ2lzdGVyIHRoaXMg ZGV2aWNlIGFzDQo+IHZmaW8tbWRldi4uLiB3aGljaCB1c2VzIHRoZSB2ZmlvLW1kZXYtb3BzIG92 ZXIgaW4gdGhlIHBhcmVudCBvcHMgc3RydWN0dXJlKS4gIEkNCj4gZG9uJ3QgcmVhbGx5IHNlZSB3 aGF0J3Mgb3Zlci1lbmdpbmVlcmVkIGFib3V0IGZvcm1lci4gDQpWZW5kb3IgZHJpdmVyIGlzIGV4 cGVjdGVkIHRvIHNldHVwIG1kZXZfZGV2aWNlIG9wcyBmaWVsZCBkdXJpbmcgY3JlYXRlKCkgY2Fs bGJhY2sgZm9yIGV2ZXJ5IGRldmljZSB2cyBzZXR0aW5nIHVwIG9uY2UgZHVyaW5nIHBhcmVudCBz ZXR1cCB0aW1lLg0KQ3VycmVudGx5IHdlIGhhdmUgb25seSAzIHR5cGVzIG9mIG9wcywgYnV0IHRo ZXJlIGlzIG5vIHNpbmdsZSBkcml2ZXIgaWRlbnRpZmllZCB3aG8gaW50ZW50IHRvIHNldCBtb3Jl IHRoYW4gb25lIHR5cGUgcGVyIHBhcmVudCBmb3IgdHdvIGRpZmZlcmVudCBkZXZpY2UuDQpBbmQg Zm9yIHRoaXMgdGhlb3JldGljYWwgdXNlIGNhc2Ugd2UgYXJlIGFkZGluZyAzIGV4cG9ydGVkIHN5 bWJvbHMgZm9yIHNldHRpbmcgaXQuDQoNCkFueXdheXMsIEkgYW0gb2sgd2l0aCB0aGlzIGFwcHJv YWNoIHRvbywgSSBqdXN0IHdhbnQgdG8gc2VlIEFQSXMgZXZvbHZpbmcgYmFzZWQgb24gYWN0dWFs IHVzZSBjYXNlLg0KDQo+IEkgbGlrZSB0byB0aGluayBvZiBSdXN0eSdzDQo+IG9sZCBpbnRlcmZh Y2UgZ3VpZGVsaW5lcywgcGFydGljdWxhcmx5IHRoZSBvbmUgYWJvdXQgbWFraW5nIGl0IGRpZmZp Y3VsdCB0byB1c2UNCj4gaW5jb3JyZWN0bHkgZm9yIHRoZXNlIHNvcnRzIG9mIGludGVyZmFjZXMu ICBUaGFua3MsDQpJZiB0aGUgY2FsbCBpcyBtYWRlIG9ubHkgb25lIHRpbWUgcGVyIHBhcmVudCwg Y29tcGFyZSB0byAxMDAgdGltZXMgcGVyIG1kZXYsIGhvdyBjYW4gaXQgZ28gd3Jvbmcgb3IgaG93 IGlzIGl0IGRpZmZpY3VsdCB0byB1c2U/DQoNCj4gDQo+IEFsZXgNCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==