From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [Intel-gfx] [PATCH 04/10] drm: Extract drm_drv.h Date: Tue, 15 Nov 2016 10:29:01 +0000 Message-ID: <20161115102900.GJ30410@nuc-i3427.alporthouse.com> References: <20161114115825.22050-1-daniel.vetter@ffwll.ch> <20161114115825.22050-5-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20161114115825.22050-5-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Daniel Vetter , Intel Graphics Development , DRI Development List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBOb3YgMTQsIDIwMTYgYXQgMTI6NTg6MTlQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBJIHdhbnQgdG8gbW92ZSBkdW1iIGJ1ZmZlciBkb2N1bWVudGF0aW9uIGludG8gdGhl IHJpZ2h0IHZmdW5jcywgYW5kCj4gZm9yIHRoYXQgSSBmaXJzdCBuZWVkIHRvIGJlIGFibGUgdG8g cHVsbCB0aGF0IGludG8ga2VybmVsZG9jIHdpdGhvdXQKPiBoYXZpbmcgdG8gY2xlYW4gdXAgYWxs IG9mIGRybVAuaC4gQWxzbywgaGVhZGVyLXNwbGl0dGluZyBpcyBuaWNlLgo+IAo+IFdoaWxlIGF0 IGl0IHNodWZmbGUgYWxsIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgZm9yIGRybV9kcnYuYyBp bnRvCj4gdGhlIHJpZ2h0IHNwb3RzLCBhbmQgZHJvcCB0aGUga2VybmVsZG9jIGZvciBkcm1fbWlu b3JfYWNxdWlyZS9yZWxlYXNlCj4gc2luY2UgaXQncyBvbmx5IHVzZWQgaW50ZXJuYWxseS4KPiAK PiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4K PiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYyAgICAgIHwgIDE4ICstLQo+ICBkcml2 ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggfCAgIDQgKwo+ICBpbmNsdWRlL2RybS9kcm1QLmgg ICAgICAgICAgICAgfCAyOTkgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4g IGluY2x1ZGUvZHJtL2RybV9kcnYuaCAgICAgICAgICB8IDMzNyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+ICA0IGZpbGVzIGNoYW5nZWQsIDM0NiBpbnNlcnRpb25z KCspLCAzMTIgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2RybS9k cm1fZHJ2LmgKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKPiBpbmRleCA5OGEwODNkNGI4MWUuLmNjNmMyNTMwNzY0 YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9kcnYuYwo+IEBAIC0zMiw3ICszMiwxMCBAQAo+ICAjaW5jbHVkZSA8bGlu dXgvbW9kdWxlcGFyYW0uaD4KPiAgI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+Cj4gICNpbmNsdWRl IDxsaW51eC9zbGFiLmg+Cj4gKwo+ICsjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KPiAgI2luY2x1 ZGUgPGRybS9kcm1QLmg+Cj4gKwo+ICAjaW5jbHVkZSAiZHJtX2NydGNfaW50ZXJuYWwuaCIKPiAg I2luY2x1ZGUgImRybV9sZWdhY3kuaCIKPiAgI2luY2x1ZGUgImRybV9pbnRlcm5hbC5oIgo+IEBA IC0yNTcsMTAgKzI2MCw3IEBAIHN0YXRpYyB2b2lkIGRybV9taW5vcl91bnJlZ2lzdGVyKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB0eXBlKQo+ICAJZHJtX2RlYnVnZnNfY2xl YW51cChtaW5vcik7Cj4gIH0KPiAgCj4gLS8qKgo+IC0gKiBkcm1fbWlub3JfYWNxdWlyZSAtIEFj cXVpcmUgYSBEUk0gbWlub3IKPiAtICogQG1pbm9yX2lkOiBNaW5vciBJRCBvZiB0aGUgRFJNLW1p bm9yCj4gLSAqCj4gKy8qCj4gICAqIExvb2tzIHVwIHRoZSBnaXZlbiBtaW5vci1JRCBhbmQgcmV0 dXJucyB0aGUgcmVzcGVjdGl2ZSBEUk0tbWlub3Igb2JqZWN0LiBUaGUKPiAgICogcmVmZW5jZS1j b3VudCBvZiB0aGUgdW5kZXJseWluZyBkZXZpY2UgaXMgaW5jcmVhc2VkIHNvIHlvdSBtdXN0IHJl bGVhc2UgdGhpcwo+ICAgKiBvYmplY3Qgd2l0aCBkcm1fbWlub3JfcmVsZWFzZSgpLgo+IEBAIC0y NjgsMTAgKzI2OCw2IEBAIHN0YXRpYyB2b2lkIGRybV9taW5vcl91bnJlZ2lzdGVyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB0eXBlKQo+ICAgKiBBcyBsb25nIGFzIHlvdSBo b2xkIHRoaXMgbWlub3IsIGl0IGlzIGd1YXJhbnRlZWQgdGhhdCB0aGUgb2JqZWN0IGFuZCB0aGUK PiAgICogbWlub3ItPmRldiBwb2ludGVyIHdpbGwgc3RheSB2YWxpZCEgSG93ZXZlciwgdGhlIGRl dmljZSBtYXkgZ2V0IHVucGx1Z2dlZCBhbmQKPiAgICogdW5yZWdpc3RlcmVkIHdoaWxlIHlvdSBo b2xkIHRoZSBtaW5vci4KPiAtICoKPiAtICogUmV0dXJuczoKPiAtICogUG9pbnRlciB0byBtaW5v ci1vYmplY3Qgd2l0aCBpbmNyZWFzZWQgZGV2aWNlLXJlZmNvdW50LCBvciBQVFJfRVJSIG9uCj4g LSAqIGZhaWx1cmUuCj4gICAqLwo+ICBzdHJ1Y3QgZHJtX21pbm9yICpkcm1fbWlub3JfYWNxdWly ZSh1bnNpZ25lZCBpbnQgbWlub3JfaWQpCj4gIHsKPiBAQCAtMjk0LDEyICsyOTAsNiBAQCBzdHJ1 Y3QgZHJtX21pbm9yICpkcm1fbWlub3JfYWNxdWlyZSh1bnNpZ25lZCBpbnQgbWlub3JfaWQpCj4g IAlyZXR1cm4gbWlub3I7Cj4gIH0KPiAgCj4gLS8qKgo+IC0gKiBkcm1fbWlub3JfcmVsZWFzZSAt IFJlbGVhc2UgRFJNIG1pbm9yCj4gLSAqIEBtaW5vcjogUG9pbnRlciB0byBEUk0gbWlub3Igb2Jq ZWN0Cj4gLSAqCj4gLSAqIFJlbGVhc2UgYSBtaW5vciB0aGF0IHdhcyBwcmV2aW91c2x5IGFjcXVp cmVkIHZpYSBkcm1fbWlub3JfYWNxdWlyZSgpLgo+IC0gKi8KPiAgdm9pZCBkcm1fbWlub3JfcmVs ZWFzZShzdHJ1Y3QgZHJtX21pbm9yICptaW5vcikKPiAgewo+ICAJZHJtX2Rldl91bnJlZihtaW5v ci0+ZGV2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCj4gaW5kZXggMWUyOWNiYzU1NmQ1Li5kYjgw ZWM4NjBlMzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCj4gQEAgLTQzLDYgKzQzLDEwIEBA IHZvaWQgZHJtX3ByaW1lX2Rlc3Ryb3lfZmlsZV9wcml2YXRlKHN0cnVjdCBkcm1fcHJpbWVfZmls ZV9wcml2YXRlICpwcmltZV9mcHJpdik7Cj4gIHZvaWQgZHJtX3ByaW1lX3JlbW92ZV9idWZfaGFu ZGxlX2xvY2tlZChzdHJ1Y3QgZHJtX3ByaW1lX2ZpbGVfcHJpdmF0ZSAqcHJpbWVfZnByaXYsCj4g IAkJCQkJc3RydWN0IGRtYV9idWYgKmRtYV9idWYpOwo+ICAKPiArLyogZHJtX2Rydi5jICovCj4g K3N0cnVjdCBkcm1fbWlub3IgKmRybV9taW5vcl9hY3F1aXJlKHVuc2lnbmVkIGludCBtaW5vcl9p ZCk7Cj4gK3ZvaWQgZHJtX21pbm9yX3JlbGVhc2Uoc3RydWN0IGRybV9taW5vciAqbWlub3IpOwo+ ICsKPiAgLyogZHJtX2luZm8uYyAqLwo+ICBpbnQgZHJtX25hbWVfaW5mbyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHZvaWQgKmRhdGEpOwo+ICBpbnQgZHJtX2NsaWVudHNfaW5mbyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHZvaWQqIGRhdGEpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1QLmggYi9p bmNsdWRlL2RybS9kcm1QLmgKPiBpbmRleCBjZmE0YjgwZjA2MjguLmIzNTJhN2I4MTJlNiAxMDA2 NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1QLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1QLmgK PiBAQCAtNzYsNiArNzYsNyBAQAo+ICAjaW5jbHVkZSA8ZHJtL2RybV9vc19saW51eC5oPgo+ICAj aW5jbHVkZSA8ZHJtL2RybV9zYXJlYS5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV92bWFfbWFuYWdl ci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KPiAgCj4gIHN0cnVjdCBtb2R1bGU7Cj4g IAo+IEBAIC0xMzcsMzQgKzEzOCwxMCBAQCBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50Owo+ICAj ZGVmaW5lIERSTV9VVF9WQkwJCTB4MjAKPiAgI2RlZmluZSBEUk1fVVRfU1RBVEUJCTB4NDAKPiAg Cj4gLWV4dGVybiBfX3ByaW50Zig2LCA3KQo+IC12b2lkIGRybV9kZXZfcHJpbnRrKGNvbnN0IHN0 cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqbGV2ZWwsCj4gLQkJICAgIHVuc2lnbmVkIGlu dCBjYXRlZ29yeSwgY29uc3QgY2hhciAqZnVuY3Rpb25fbmFtZSwKPiAtCQkgICAgY29uc3QgY2hh ciAqcHJlZml4LCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLik7Cj4gLQo+IC1leHRlcm4gX19wcmlu dGYoMywgNCkKPiAtdm9pZCBkcm1fcHJpbnRrKGNvbnN0IGNoYXIgKmxldmVsLCB1bnNpZ25lZCBp bnQgY2F0ZWdvcnksCj4gLQkJY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pOwo+IC0KPiAgLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLwo+ICAvKiogXG5hbWUgRFJNIHRlbXBsYXRlIGN1c3RvbWl6YXRpb24gZGVmYXVs dHMgKi8KPiAgLypAeyovCj4gIAo+IC0vKiBkcml2ZXIgY2FwYWJpbGl0aWVzIGFuZCByZXF1aXJl bWVudHMgbWFzayAqLwo+IC0jZGVmaW5lIERSSVZFUl9VU0VfQUdQCQkJMHgxCj4gLSNkZWZpbmUg RFJJVkVSX0xFR0FDWQkJCTB4Mgo+IC0jZGVmaW5lIERSSVZFUl9QQ0lfRE1BCQkJMHg4Cj4gLSNk ZWZpbmUgRFJJVkVSX1NHCQkJMHgxMAo+IC0jZGVmaW5lIERSSVZFUl9IQVZFX0RNQQkJCTB4MjAK PiAtI2RlZmluZSBEUklWRVJfSEFWRV9JUlEJCQkweDQwCj4gLSNkZWZpbmUgRFJJVkVSX0lSUV9T SEFSRUQJCTB4ODAKPiAtI2RlZmluZSBEUklWRVJfR0VNCQkJMHgxMDAwCj4gLSNkZWZpbmUgRFJJ VkVSX01PREVTRVQJCQkweDIwMDAKPiAtI2RlZmluZSBEUklWRVJfUFJJTUUJCQkweDQwMDAKPiAt I2RlZmluZSBEUklWRVJfUkVOREVSCQkJMHg4MDAwCj4gLSNkZWZpbmUgRFJJVkVSX0FUT01JQwkJ CTB4MTAwMDAKPiAtI2RlZmluZSBEUklWRVJfS01TX0xFR0FDWV9DT05URVhUCTB4MjAwMDAKPiAt Cj4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KPiAgLyoqIFxuYW1lIE1hY3JvcyB0byBtYWtlIHByaW50ayBl YXNpZXIgKi8KPiAgLypAeyovCj4gQEAgLTQ4MCwyNjMgKzQ1Nyw2IEBAIHN0cnVjdCBkcm1fbG9j a19kYXRhIHsKPiAgI2RlZmluZSBEUk1fU0NBTk9VVFBPU19JTl9WQkxBTksgICAgKDEgPDwgMSkK PiAgI2RlZmluZSBEUk1fU0NBTk9VVFBPU19BQ0NVUkFURSAgICAgKDEgPDwgMikKPiAgCj4gLS8q Kgo+IC0gKiBEUk0gZHJpdmVyIHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50IHRo ZSBjb21tb24gY29kZSBmb3IKPiAtICogYSBmYW1pbHkgb2YgY2FyZHMuIFRoZXJlIHdpbGwgb25l IGRybV9kZXZpY2UgZm9yIGVhY2ggY2FyZCBwcmVzZW50Cj4gLSAqIGluIHRoaXMgZmFtaWx5Cj4g LSAqLwo+IC1zdHJ1Y3QgZHJtX2RyaXZlciB7Cj4gLQlpbnQgKCpsb2FkKSAoc3RydWN0IGRybV9k ZXZpY2UgKiwgdW5zaWduZWQgbG9uZyBmbGFncyk7Cj4gLQlpbnQgKCpmaXJzdG9wZW4pIChzdHJ1 Y3QgZHJtX2RldmljZSAqKTsKPiAtCWludCAoKm9wZW4pIChzdHJ1Y3QgZHJtX2RldmljZSAqLCBz dHJ1Y3QgZHJtX2ZpbGUgKik7Cj4gLQl2b2lkICgqcHJlY2xvc2UpIChzdHJ1Y3QgZHJtX2Rldmlj ZSAqLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gLQl2b2lkICgqcG9zdGNsb3NlKSAo c3RydWN0IGRybV9kZXZpY2UgKiwgc3RydWN0IGRybV9maWxlICopOwo+IC0Jdm9pZCAoKmxhc3Rj bG9zZSkgKHN0cnVjdCBkcm1fZGV2aWNlICopOwo+IC0JaW50ICgqdW5sb2FkKSAoc3RydWN0IGRy bV9kZXZpY2UgKik7Cj4gLQlpbnQgKCpkbWFfaW9jdGwpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gLQlpbnQgKCpkbWFf cXVpZXNjZW50KSAoc3RydWN0IGRybV9kZXZpY2UgKik7Cj4gLQlpbnQgKCpjb250ZXh0X2R0b3Ip IChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY29udGV4dCk7Cj4gLQlpbnQgKCpzZXRfYnVz aWQpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fbWFzdGVyICptYXN0ZXIpOwo+ IC0KPiAtCS8qKgo+IC0JICogZ2V0X3ZibGFua19jb3VudGVyIC0gZ2V0IHJhdyBoYXJkd2FyZSB2 YmxhbmsgY291bnRlcgo+IC0JICogQGRldjogRFJNIGRldmljZQo+IC0JICogQHBpcGU6IGNvdW50 ZXIgdG8gZmV0Y2gKPiAtCSAqCj4gLQkgKiBEcml2ZXIgY2FsbGJhY2sgZm9yIGZldGNoaW5nIGEg cmF3IGhhcmR3YXJlIHZibGFuayBjb3VudGVyIGZvciBAY3J0Yy4KPiAtCSAqIElmIGEgZGV2aWNl IGRvZXNuJ3QgaGF2ZSBhIGhhcmR3YXJlIGNvdW50ZXIsIHRoZSBkcml2ZXIgY2FuIHNpbXBseQo+ IC0JICogdXNlIGRybV92Ymxhbmtfbm9faHdfY291bnRlcigpIGZ1bmN0aW9uLiBUaGUgRFJNIGNv cmUgd2lsbCBhY2NvdW50IGZvcgo+IC0JICogbWlzc2VkIHZibGFuayBldmVudHMgd2hpbGUgaW50 ZXJydXB0cyB3aGVyZSBkaXNhYmxlZCBiYXNlZCBvbiBzeXN0ZW0KPiAtCSAqIHRpbWVzdGFtcHMu Cj4gLQkgKgo+IC0JICogV3JhcGFyb3VuZCBoYW5kbGluZyBhbmQgbG9zcyBvZiBldmVudHMgZHVl IHRvIG1vZGVzZXR0aW5nIGlzIGRlYWx0Cj4gLQkgKiB3aXRoIGluIHRoZSBEUk0gY29yZSBjb2Rl Lgo+IC0JICoKPiAtCSAqIFJFVFVSTlMKPiAtCSAqIFJhdyB2YmxhbmsgY291bnRlciB2YWx1ZS4K PiAtCSAqLwo+IC0JdTMyICgqZ2V0X3ZibGFua19jb3VudGVyKSAoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwo+IC0KPiAtCS8qKgo+IC0JICogZW5hYmxlX3ZibGFu ayAtIGVuYWJsZSB2YmxhbmsgaW50ZXJydXB0IGV2ZW50cwo+IC0JICogQGRldjogRFJNIGRldmlj ZQo+IC0JICogQHBpcGU6IHdoaWNoIGlycSB0byBlbmFibGUKPiAtCSAqCj4gLQkgKiBFbmFibGUg dmJsYW5rIGludGVycnVwdHMgZm9yIEBjcnRjLiAgSWYgdGhlIGRldmljZSBkb2Vzbid0IGhhdmUK PiAtCSAqIGEgaGFyZHdhcmUgdmJsYW5rIGNvdW50ZXIsIHRoZSBkcml2ZXIgc2hvdWxkIHVzZSB0 aGUKPiAtCSAqIGRybV92Ymxhbmtfbm9faHdfY291bnRlcigpIGZ1bmN0aW9uIHRoYXQga2VlcHMg YSB2aXJ0dWFsIGNvdW50ZXIuCj4gLQkgKgo+IC0JICogUkVUVVJOUwo+IC0JICogWmVybyBvbiBz dWNjZXNzLCBhcHByb3ByaWF0ZSBlcnJubyBpZiB0aGUgZ2l2ZW4gQGNydGMncyB2YmxhbmsKPiAt CSAqIGludGVycnVwdCBjYW5ub3QgYmUgZW5hYmxlZC4KPiAtCSAqLwo+IC0JaW50ICgqZW5hYmxl X3ZibGFuaykgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKPiAt Cj4gLQkvKioKPiAtCSAqIGRpc2FibGVfdmJsYW5rIC0gZGlzYWJsZSB2YmxhbmsgaW50ZXJydXB0 IGV2ZW50cwo+IC0JICogQGRldjogRFJNIGRldmljZQo+IC0JICogQHBpcGU6IHdoaWNoIGlycSB0 byBlbmFibGUKPiAtCSAqCj4gLQkgKiBEaXNhYmxlIHZibGFuayBpbnRlcnJ1cHRzIGZvciBAY3J0 Yy4gIElmIHRoZSBkZXZpY2UgZG9lc24ndCBoYXZlCj4gLQkgKiBhIGhhcmR3YXJlIHZibGFuayBj b3VudGVyLCB0aGUgZHJpdmVyIHNob3VsZCB1c2UgdGhlCj4gLQkgKiBkcm1fdmJsYW5rX25vX2h3 X2NvdW50ZXIoKSBmdW5jdGlvbiB0aGF0IGtlZXBzIGEgdmlydHVhbCBjb3VudGVyLgo+IC0JICov Cj4gLQl2b2lkICgqZGlzYWJsZV92YmxhbmspIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNp Z25lZCBpbnQgcGlwZSk7Cj4gLQo+IC0JLyoqCj4gLQkgKiBDYWxsZWQgYnkgXGMgZHJtX2Rldmlj ZV9pc19hZ3AuICBUeXBpY2FsbHkgdXNlZCB0byBkZXRlcm1pbmUgaWYgYQo+IC0JICogY2FyZCBp cyByZWFsbHkgYXR0YWNoZWQgdG8gQUdQIG9yIG5vdC4KPiAtCSAqCj4gLQkgKiBccGFyYW0gZGV2 ICBEUk0gZGV2aWNlIGhhbmRsZQo+IC0JICoKPiAtCSAqIFxyZXR1cm5zCj4gLQkgKiBPbmUgb2Yg dGhyZWUgdmFsdWVzIGlzIHJldHVybmVkIGRlcGVuZGluZyBvbiB3aGV0aGVyIG9yIG5vdCB0aGUK PiAtCSAqIGNhcmQgaXMgYWJzb2x1dGVseSBcYiBub3QgQUdQIChyZXR1cm4gb2YgMCksIGFic29s dXRlbHkgXGIgaXMgQUdQCj4gLQkgKiAocmV0dXJuIG9mIDEpLCBvciBtYXkgb3IgbWF5IG5vdCBi ZSBBR1AgKHJldHVybiBvZiAyKS4KPiAtCSAqLwo+IC0JaW50ICgqZGV2aWNlX2lzX2FncCkgKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IC0KPiAtCS8qKgo+IC0JICogQ2FsbGVkIGJ5IHZibGFu ayB0aW1lc3RhbXBpbmcgY29kZS4KPiAtCSAqCj4gLQkgKiBSZXR1cm4gdGhlIGN1cnJlbnQgZGlz cGxheSBzY2Fub3V0IHBvc2l0aW9uIGZyb20gYSBjcnRjLCBhbmQgYW4KPiAtCSAqIG9wdGlvbmFs IGFjY3VyYXRlIGt0aW1lX2dldCB0aW1lc3RhbXAgb2Ygd2hlbiBwb3NpdGlvbiB3YXMgbWVhc3Vy ZWQuCj4gLQkgKgo+IC0JICogXHBhcmFtIGRldiAgRFJNIGRldmljZS4KPiAtCSAqIFxwYXJhbSBw aXBlIElkIG9mIHRoZSBjcnRjIHRvIHF1ZXJ5Lgo+IC0JICogXHBhcmFtIGZsYWdzIEZsYWdzIGZy b20gdGhlIGNhbGxlciAoRFJNX0NBTExFRF9GUk9NX1ZCTElSUSBvciAwKS4KPiAtCSAqIFxwYXJh bSAqdnBvcyBUYXJnZXQgbG9jYXRpb24gZm9yIGN1cnJlbnQgdmVydGljYWwgc2Nhbm91dCBwb3Np dGlvbi4KPiAtCSAqIFxwYXJhbSAqaHBvcyBUYXJnZXQgbG9jYXRpb24gZm9yIGN1cnJlbnQgaG9y aXpvbnRhbCBzY2Fub3V0IHBvc2l0aW9uLgo+IC0JICogXHBhcmFtICpzdGltZSBUYXJnZXQgbG9j YXRpb24gZm9yIHRpbWVzdGFtcCB0YWtlbiBpbW1lZGlhdGVseSBiZWZvcmUKPiAtCSAqICAgICAg ICAgICAgICAgc2Nhbm91dCBwb3NpdGlvbiBxdWVyeS4gQ2FuIGJlIE5VTEwgdG8gc2tpcCB0aW1l c3RhbXAuCj4gLQkgKiBccGFyYW0gKmV0aW1lIFRhcmdldCBsb2NhdGlvbiBmb3IgdGltZXN0YW1w IHRha2VuIGltbWVkaWF0ZWx5IGFmdGVyCj4gLQkgKiAgICAgICAgICAgICAgIHNjYW5vdXQgcG9z aXRpb24gcXVlcnkuIENhbiBiZSBOVUxMIHRvIHNraXAgdGltZXN0YW1wLgo+IC0JICogXHBhcmFt IG1vZGUgQ3VycmVudCBkaXNwbGF5IHRpbWluZ3MuCj4gLQkgKgo+IC0JICogUmV0dXJucyB2cG9z IGFzIGEgcG9zaXRpdmUgbnVtYmVyIHdoaWxlIGluIGFjdGl2ZSBzY2Fub3V0IGFyZWEuCj4gLQkg KiBSZXR1cm5zIHZwb3MgYXMgYSBuZWdhdGl2ZSBudW1iZXIgaW5zaWRlIHZibGFuaywgY291bnRp bmcgdGhlIG51bWJlcgo+IC0JICogb2Ygc2NhbmxpbmVzIHRvIGdvIHVudGlsIGVuZCBvZiB2Ymxh bmssIGUuZy4sIC0xIG1lYW5zICJvbmUgc2NhbmxpbmUKPiAtCSAqIHVudGlsIHN0YXJ0IG9mIGFj dGl2ZSBzY2Fub3V0IC8gZW5kIG9mIHZibGFuay4iCj4gLQkgKgo+IC0JICogXHJldHVybiBGbGFn cywgb3InZWQgdG9nZXRoZXIgYXMgZm9sbG93czoKPiAtCSAqCj4gLQkgKiBEUk1fU0NBTk9VVFBP U19WQUxJRCA9IFF1ZXJ5IHN1Y2Nlc3NmdWwuCj4gLQkgKiBEUk1fU0NBTk9VVFBPU19JTlZCTCA9 IEluc2lkZSB2YmxhbmsuCj4gLQkgKiBEUk1fU0NBTk9VVFBPU19BQ0NVUkFURSA9IFJldHVybmVk IHBvc2l0aW9uIGlzIGFjY3VyYXRlLiBBIGxhY2sgb2YKPiAtCSAqIHRoaXMgZmxhZyBtZWFucyB0 aGF0IHJldHVybmVkIHBvc2l0aW9uIG1heSBiZSBvZmZzZXQgYnkgYSBjb25zdGFudAo+IC0JICog YnV0IHVua25vd24gc21hbGwgbnVtYmVyIG9mIHNjYW5saW5lcyB3cnQuIHJlYWwgc2Nhbm91dCBw b3NpdGlvbi4KPiAtCSAqCj4gLQkgKi8KPiAtCWludCAoKmdldF9zY2Fub3V0X3Bvc2l0aW9uKSAo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4gLQkJCQkgICAgIHVu c2lnbmVkIGludCBmbGFncywgaW50ICp2cG9zLCBpbnQgKmhwb3MsCj4gLQkJCQkgICAgIGt0aW1l X3QgKnN0aW1lLCBrdGltZV90ICpldGltZSwKPiAtCQkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm1vZGUpOwo+IC0KPiAtCS8qKgo+IC0JICogQ2FsbGVkIGJ5IFxjIGRybV9n ZXRfbGFzdF92Ymx0aW1lc3RhbXAuIFNob3VsZCByZXR1cm4gYSBwcmVjaXNlCj4gLQkgKiB0aW1l c3RhbXAgd2hlbiB0aGUgbW9zdCByZWNlbnQgVkJMQU5LIGludGVydmFsIGVuZGVkIG9yIHdpbGwg ZW5kLgo+IC0JICoKPiAtCSAqIFNwZWNpZmljYWxseSwgdGhlIHRpbWVzdGFtcCBpbiBAdmJsYW5r X3RpbWUgc2hvdWxkIGNvcnJlc3BvbmQgYXMKPiAtCSAqIGNsb3NlbHkgYXMgcG9zc2libGUgdG8g dGhlIHRpbWUgd2hlbiB0aGUgZmlyc3QgdmlkZW8gc2NhbmxpbmUgb2YKPiAtCSAqIHRoZSB2aWRl byBmcmFtZSBhZnRlciB0aGUgZW5kIG9mIFZCTEFOSyB3aWxsIHN0YXJ0IHNjYW5uaW5nIG91dCwK PiAtCSAqIHRoZSB0aW1lIGltbWVkaWF0ZWx5IGFmdGVyIGVuZCBvZiB0aGUgVkJMQU5LIGludGVy dmFsLiBJZiB0aGUKPiAtCSAqIEBjcnRjIGlzIGN1cnJlbnRseSBpbnNpZGUgVkJMQU5LLCB0aGlz IHdpbGwgYmUgYSB0aW1lIGluIHRoZSBmdXR1cmUuCj4gLQkgKiBJZiB0aGUgQGNydGMgaXMgY3Vy cmVudGx5IHNjYW5uaW5nIG91dCBhIGZyYW1lLCB0aGlzIHdpbGwgYmUgdGhlCj4gLQkgKiBwYXN0 IHN0YXJ0IHRpbWUgb2YgdGhlIGN1cnJlbnQgc2Nhbm91dC4gVGhpcyBpcyBtZWFudCB0byBhZGhl cmUKPiAtCSAqIHRvIHRoZSBPcGVuTUwgT01MX3N5bmNfY29udHJvbCBleHRlbnNpb24gc3BlY2lm aWNhdGlvbi4KPiAtCSAqCj4gLQkgKiBccGFyYW0gZGV2IGRldiBEUk0gZGV2aWNlIGhhbmRsZS4K PiAtCSAqIFxwYXJhbSBwaXBlIGNydGMgZm9yIHdoaWNoIHRpbWVzdGFtcCBzaG91bGQgYmUgcmV0 dXJuZWQuCj4gLQkgKiBccGFyYW0gKm1heF9lcnJvciBNYXhpbXVtIGFsbG93YWJsZSB0aW1lc3Rh bXAgZXJyb3IgaW4gbmFub3NlY29uZHMuCj4gLQkgKiAgICAgICAgICAgICAgICAgICBJbXBsZW1l bnRhdGlvbiBzaG91bGQgc3RyaXZlIHRvIHByb3ZpZGUgdGltZXN0YW1wCj4gLQkgKiAgICAgICAg ICAgICAgICAgICB3aXRoIGFuIGVycm9yIG9mIGF0IG1vc3QgKm1heF9lcnJvciBuYW5vc2Vjb25k cy4KPiAtCSAqICAgICAgICAgICAgICAgICAgIFJldHVybnMgdHJ1ZSB1cHBlciBib3VuZCBvbiBl cnJvciBmb3IgdGltZXN0YW1wLgo+IC0JICogXHBhcmFtICp2YmxhbmtfdGltZSBUYXJnZXQgbG9j YXRpb24gZm9yIHJldHVybmVkIHZibGFuayB0aW1lc3RhbXAuCj4gLQkgKiBccGFyYW0gZmxhZ3Mg MCA9IERlZmF1bHRzLCBubyBzcGVjaWFsIHRyZWF0bWVudCBuZWVkZWQuCj4gLQkgKiBccGFyYW0g ICAgICAgRFJNX0NBTExFRF9GUk9NX1ZCTElSUSA9IEZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIHZi bGFuawo+IC0JICoJICAgICAgICBpcnEgaGFuZGxlci4gU29tZSBkcml2ZXJzIG5lZWQgdG8gYXBw bHkgc29tZSB3b3JrYXJvdW5kcwo+IC0JICogICAgICAgICAgICAgIGZvciBncHUtc3BlY2lmaWMg dmJsYW5rIGlycSBxdWlya3MgaWYgZmxhZyBpcyBzZXQuCj4gLQkgKgo+IC0JICogXHJldHVybnMK PiAtCSAqIFplcm8gaWYgdGltZXN0YW1waW5nIGlzbid0IHN1cHBvcnRlZCBpbiBjdXJyZW50IGRp c3BsYXkgbW9kZSBvciBhCj4gLQkgKiBuZWdhdGl2ZSBudW1iZXIgb24gZmFpbHVyZS4gQSBwb3Np dGl2ZSBzdGF0dXMgY29kZSBvbiBzdWNjZXNzLAo+IC0JICogd2hpY2ggZGVzY3JpYmVzIGhvdyB0 aGUgdmJsYW5rX3RpbWUgdGltZXN0YW1wIHdhcyBjb21wdXRlZC4KPiAtCSAqLwo+IC0JaW50ICgq Z2V0X3ZibGFua190aW1lc3RhbXApIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBp bnQgcGlwZSwKPiAtCQkJCSAgICAgaW50ICptYXhfZXJyb3IsCj4gLQkJCQkgICAgIHN0cnVjdCB0 aW1ldmFsICp2YmxhbmtfdGltZSwKPiAtCQkJCSAgICAgdW5zaWduZWQgZmxhZ3MpOwo+IC0KPiAt CS8qIHRoZXNlIGhhdmUgdG8gYmUgZmlsbGVkIGluICovCj4gLQo+IC0JaXJxcmV0dXJuX3QoKmly cV9oYW5kbGVyKSAoaW50IGlycSwgdm9pZCAqYXJnKTsKPiAtCXZvaWQgKCppcnFfcHJlaW5zdGFs bCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IC0JaW50ICgqaXJxX3Bvc3RpbnN0YWxsKSAo c3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gLQl2b2lkICgqaXJxX3VuaW5zdGFsbCkgKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwo+IC0KPiAtCS8qIE1hc3RlciByb3V0aW5lcyAqLwo+IC0JaW50 ICgqbWFzdGVyX2NyZWF0ZSkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9tYXN0 ZXIgKm1hc3Rlcik7Cj4gLQl2b2lkICgqbWFzdGVyX2Rlc3Ryb3kpKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHN0cnVjdCBkcm1fbWFzdGVyICptYXN0ZXIpOwo+IC0JLyoqCj4gLQkgKiBtYXN0ZXJf c2V0IGlzIGNhbGxlZCB3aGVuZXZlciB0aGUgbWlub3IgbWFzdGVyIGlzIHNldC4KPiAtCSAqIG1h c3Rlcl9kcm9wIGlzIGNhbGxlZCB3aGVuZXZlciB0aGUgbWlub3IgbWFzdGVyIGlzIGRyb3BwZWQu Cj4gLQkgKi8KPiAtCj4gLQlpbnQgKCptYXN0ZXJfc2V0KShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiAtCQkJICBib29sIGZyb21fb3Blbik7Cj4g LQl2b2lkICgqbWFzdGVyX2Ryb3ApKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2KTsKPiAtCj4gLQlpbnQgKCpkZWJ1Z2ZzX2luaXQpKHN0cnVjdCBkcm1f bWlub3IgKm1pbm9yKTsKPiAtCXZvaWQgKCpkZWJ1Z2ZzX2NsZWFudXApKHN0cnVjdCBkcm1fbWlu b3IgKm1pbm9yKTsKPiAtCj4gLQkvKioKPiAtCSAqIEBnZW1fZnJlZV9vYmplY3Q6IGRlY29uc3Ry dWN0b3IgZm9yIGRybV9nZW1fb2JqZWN0cwo+IC0JICoKPiAtCSAqIFRoaXMgaXMgZGVwcmVjYXRl ZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGJ5IG5ldyBkcml2ZXJzLiBVc2UKPiAtCSAqIEBnZW1f ZnJlZV9vYmplY3RfdW5sb2NrZWQgaW5zdGVhZC4KPiAtCSAqLwo+IC0Jdm9pZCAoKmdlbV9mcmVl X29iamVjdCkgKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPiAtCj4gLQkvKioKPiAtCSAq IEBnZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQ6IGRlY29uc3RydWN0b3IgZm9yIGRybV9nZW1fb2Jq ZWN0cwo+IC0JICoKPiAtCSAqIFRoaXMgaXMgZm9yIGRyaXZlcnMgd2hpY2ggYXJlIG5vdCBlbmN1 bWJlcmVkIHdpdGggZGV2LT5zdHJ1Y3RfbXV0ZXgKPiAtCSAqIGxlZ2FjeSBsb2NraW5nIHNjaGVt ZXMuIFVzZSB0aGlzIGhvb2sgaW5zdGVhZCBvZiBAZ2VtX2ZyZWVfb2JqZWN0Lgo+IC0JICovCj4g LQl2b2lkICgqZ2VtX2ZyZWVfb2JqZWN0X3VubG9ja2VkKSAoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmopOwo+IC0KPiAtCWludCAoKmdlbV9vcGVuX29iamVjdCkgKHN0cnVjdCBkcm1fZ2VtX29i amVjdCAqLCBzdHJ1Y3QgZHJtX2ZpbGUgKik7Cj4gLQl2b2lkICgqZ2VtX2Nsb3NlX29iamVjdCkg KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqLCBzdHJ1Y3QgZHJtX2ZpbGUgKik7Cj4gLQo+IC0JLyoq Cj4gLQkgKiBIb29rIGZvciBhbGxvY2F0aW5nIHRoZSBHRU0gb2JqZWN0IHN0cnVjdCwgZm9yIHVz ZSBieSBjb3JlCj4gLQkgKiBoZWxwZXJzLgo+IC0JICovCj4gLQlzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKigqZ2VtX2NyZWF0ZV9vYmplY3QpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gLQkJCQkJ CSAgICBzaXplX3Qgc2l6ZSk7Cj4gLQo+IC0JLyogcHJpbWU6ICovCj4gLQkvKiBleHBvcnQgaGFu ZGxlIC0+IGZkIChzZWUgZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQoKSBoZWxwZXIpICovCj4g LQlpbnQgKCpwcmltZV9oYW5kbGVfdG9fZmQpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj dCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+IC0JCQkJdWludDMyX3QgaGFuZGxlLCB1aW50MzJfdCBm bGFncywgaW50ICpwcmltZV9mZCk7Cj4gLQkvKiBpbXBvcnQgZmQgLT4gaGFuZGxlIChzZWUgZHJt X2dlbV9wcmltZV9mZF90b19oYW5kbGUoKSBoZWxwZXIpICovCj4gLQlpbnQgKCpwcmltZV9mZF90 b19oYW5kbGUpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2LAo+IC0JCQkJaW50IHByaW1lX2ZkLCB1aW50MzJfdCAqaGFuZGxlKTsKPiAtCS8qIGV4cG9y dCBHRU0gLT4gZG1hYnVmICovCj4gLQlzdHJ1Y3QgZG1hX2J1ZiAqICgqZ2VtX3ByaW1lX2V4cG9y dCkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQkJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAq b2JqLCBpbnQgZmxhZ3MpOwo+IC0JLyogaW1wb3J0IGRtYWJ1ZiAtPiBHRU0gKi8KPiAtCXN0cnVj dCBkcm1fZ2VtX29iamVjdCAqICgqZ2VtX3ByaW1lX2ltcG9ydCkoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiAtCQkJCXN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKTsKPiAtCS8qIGxvdy1sZXZlbCBp bnRlcmZhY2UgdXNlZCBieSBkcm1fZ2VtX3ByaW1lX3tpbXBvcnQsZXhwb3J0fSAqLwo+IC0JaW50 ICgqZ2VtX3ByaW1lX3Bpbikoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+IC0Jdm9pZCAo KmdlbV9wcmltZV91bnBpbikoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+IC0Jc3RydWN0 IHJlc2VydmF0aW9uX29iamVjdCAqICgqZ2VtX3ByaW1lX3Jlc19vYmopKAo+IC0JCQkJc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+IC0Jc3RydWN0IHNnX3RhYmxlICooKmdlbV9wcmltZV9n ZXRfc2dfdGFibGUpKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPiAtCXN0cnVjdCBkcm1f Z2VtX29iamVjdCAqKCpnZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlKSgKPiAtCQkJCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gLQkJCQlzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gs Cj4gLQkJCQlzdHJ1Y3Qgc2dfdGFibGUgKnNndCk7Cj4gLQl2b2lkICooKmdlbV9wcmltZV92bWFw KShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cj4gLQl2b2lkICgqZ2VtX3ByaW1lX3Z1bm1h cCkoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHZvaWQgKnZhZGRyKTsKPiAtCWludCAoKmdl bV9wcmltZV9tbWFwKShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKPiAtCQkJCXN0cnVjdCB2 bV9hcmVhX3N0cnVjdCAqdm1hKTsKPiAtCj4gLQkvKiB2Z2EgYXJiIGlycSBoYW5kbGVyICovCj4g LQl2b2lkICgqdmdhYXJiX2lycSkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBzdGF0ZSk7 Cj4gLQo+IC0JLyogZHVtYiBhbGxvYyBzdXBwb3J0ICovCj4gLQlpbnQgKCpkdW1iX2NyZWF0ZSko c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4gLQkJCSAgIHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gLQkJCSAgIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncyk7Cj4gLQlpbnQg KCpkdW1iX21hcF9vZmZzZXQpKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+IC0JCQkgICAg ICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdWludDMyX3QgaGFuZGxlLAo+IC0JCQkgICAgICAg dWludDY0X3QgKm9mZnNldCk7Cj4gLQlpbnQgKCpkdW1iX2Rlc3Ryb3kpKHN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2LAo+IC0JCQkgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQkJICAg IHVpbnQzMl90IGhhbmRsZSk7Cj4gLQo+IC0JLyogRHJpdmVyIHByaXZhdGUgb3BzIGZvciB0aGlz IG9iamVjdCAqLwo+IC0JY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0ICpnZW1fdm1f b3BzOwo+IC0KPiAtCWludCBtYWpvcjsKPiAtCWludCBtaW5vcjsKPiAtCWludCBwYXRjaGxldmVs Owo+IC0JY2hhciAqbmFtZTsKPiAtCWNoYXIgKmRlc2M7Cj4gLQljaGFyICpkYXRlOwo+IC0KPiAt CXUzMiBkcml2ZXJfZmVhdHVyZXM7Cj4gLQlpbnQgZGV2X3ByaXZfc2l6ZTsKPiAtCWNvbnN0IHN0 cnVjdCBkcm1faW9jdGxfZGVzYyAqaW9jdGxzOwo+IC0JaW50IG51bV9pb2N0bHM7Cj4gLQljb25z dCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpmb3BzOwo+IC0KPiAtCS8qIExpc3Qgb2YgZGV2aWNl cyBoYW5naW5nIG9mZiB0aGlzIGRyaXZlciB3aXRoIHN0ZWFsdGggYXR0YWNoLiAqLwo+IC0Jc3Ry dWN0IGxpc3RfaGVhZCBsZWdhY3lfZGV2X2xpc3Q7Cj4gLX07Cj4gLQo+ICBlbnVtIGRybV9taW5v cl90eXBlIHsKPiAgCURSTV9NSU5PUl9QUklNQVJZLAo+ICAJRFJNX01JTk9SX0NPTlRST0wsCj4g QEAgLTEwMDcsMTEgKzcyNyw2IEBAIHZvaWQgZHJtX2NsZmx1c2hfdmlydF9yYW5nZSh2b2lkICph ZGRyLCB1bnNpZ25lZCBsb25nIGxlbmd0aCk7Cj4gICAqIERNQSBxdWlzY2VudCArIGlkbGUuIERN QSBxdWllc2NlbnQgdXN1YWxseSByZXF1aXJlcyB0aGUgaGFyZHdhcmUgbG9jay4KPiAgICovCj4g IAo+IC0vKiBkcm1fZHJ2LmMgKi8KPiAtdm9pZCBkcm1fcHV0X2RldihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsKPiAtdm9pZCBkcm1fdW5wbHVnX2RldihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsK PiAtZXh0ZXJuIHVuc2lnbmVkIGludCBkcm1fZGVidWc7Cj4gLQo+ICAJCQkJLyogRGVidWdmcyBz dXBwb3J0ICovCj4gICNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykKPiAgZXh0ZXJuIGludCBk cm1fZGVidWdmc19jcmVhdGVfZmlsZXMoY29uc3Qgc3RydWN0IGRybV9pbmZvX2xpc3QgKmZpbGVz LAo+IEBAIC0xMDY0LDE4ICs3NzksNiBAQCBleHRlcm4gdm9pZCBkcm1fcGNpX2ZyZWUoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9kbWFfaGFuZGxlICogZG1haCk7Cj4gIGV4dGVy biB2b2lkIGRybV9zeXNmc19ob3RwbHVnX2V2ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ ICAKPiAgCj4gLXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2X2FsbG9jKHN0cnVjdCBkcm1fZHJp dmVyICpkcml2ZXIsCj4gLQkJCQkgc3RydWN0IGRldmljZSAqcGFyZW50KTsKPiAtaW50IGRybV9k ZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCSBzdHJ1Y3QgZHJtX2RyaXZlciAq ZHJpdmVyLAo+IC0JCSBzdHJ1Y3QgZGV2aWNlICpwYXJlbnQpOwo+IC12b2lkIGRybV9kZXZfcmVm KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IC12b2lkIGRybV9kZXZfdW5yZWYoc3RydWN0IGRy bV9kZXZpY2UgKmRldik7Cj4gLWludCBkcm1fZGV2X3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpOwo+IC12b2lkIGRybV9kZXZfdW5yZWdpc3Rlcihz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAtCj4gLXN0cnVjdCBkcm1fbWlub3IgKmRybV9taW5v cl9hY3F1aXJlKHVuc2lnbmVkIGludCBtaW5vcl9pZCk7Cj4gLXZvaWQgZHJtX21pbm9yX3JlbGVh c2Uoc3RydWN0IGRybV9taW5vciAqbWlub3IpOwo+ICAKPiAgLypAfSovCj4gIAo+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS9kcm1fZHJ2LmggYi9pbmNsdWRlL2RybS9kcm1fZHJ2LmgKPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uOThmOTMwYTc2ZTZkCj4gLS0t IC9kZXYvbnVsbAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9kcnYuaAo+IEBAIC0wLDAgKzEsMzM3 IEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCAyMDE2IEludGVsIENvcnAuCgpDYXJlZnVsLCBpdCdz IGEgbWl4IG9mIHNvbWUgbmV3IGFuZCBsb3RzIG9sZC4gVG8gYmUgb24gdGhlIHNhZmUgc2lkZSwg aXQKc2hvdWxkIHJldGFpbiBhbGwgdGhlIGNvcHlyaWdodCBzdGF0ZW1lbnRzIG9mIHRoZSBvcmln aW5hbC4KCk90aGVyd2lzZSwgcHJldHR5IHN1cmUgaXQgd2FzIG1lY2hhbmljYWwsClJldmlld2Vk LWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLUNocmlzCgotLSAK Q2hyaXMgV2lsc29uLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRyZQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK