From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: [PATCH 3/3] drm/i915: rc6 in sysfs Date: Sat, 24 Mar 2012 19:14:37 -0700 Message-ID: <20120324191437.33db5b81@bwidawsk.net> References: <1332641388-7688-1-git-send-email-ben@bwidawsk.net> <1332641388-7688-3-git-send-email-ben@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from cloud01.chad-versace.us (184-106-247-128.static.cloud-ips.com [184.106.247.128]) by gabe.freedesktop.org (Postfix) with ESMTP id D17B29E7C3 for ; Sat, 24 Mar 2012 19:14:48 -0700 (PDT) In-Reply-To: <1332641388-7688-3-git-send-email-ben@bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Ben Widawsky Cc: intel-gfx@lists.freedesktop.org, Arjan van de Ven List-Id: intel-gfx@lists.freedesktop.org SSBzZW50IHN0YWxlIHBhdGNoZXMsIGJ1dCB0aGlzIGlzIHRoZSBvbmx5IG9uZSB3aXRoIGEgYmln IGVmZmVjdC4gU2VlCmlubGluZSBmb3Igd2hhdCdzIGZpeGVkLCBhbmQgZmVlbCBmcmVlIHRvIHJl dmlldyB0aGUgcmVzdC4KCk9uIFNhdCwgMjQgTWFyIDIwMTIgMTk6MDk6NDYgLTA3MDAKQmVuIFdp ZGF3c2t5IDxiZW5AYndpZGF3c2submV0PiB3cm90ZToKCj4gTWVyZ2UgcmM2IGluZm9ybWF0aW9u IGludG8gdGhlIHBvd2VyIGdyb3VwIGZvciBvdXIgZGV2aWNlLiBVbnRpbCBub3cKPiB0aGUgaTkx NSBkcml2ZXIgaGFzIG5vdCBoYWQgYW55IHN5c2ZzIGVudHJpZXMgKGFzaWRlIGZyb20gdGhlCj4g Y29ubmVjdG9yIHN0dWZmIGVuYWJsZWQgYnkgbGliZHJtKS4gU2luY2UgaXQgc2VlbXMgbGlrZSB3 ZSdyZSBsaWtlbHkKPiB0byBoYXZlIG1vcmUgaW4gdGhlIGZ1dHVyZSBJIGNyZWF0ZWQgYSBuZXcg ZmlsZSBmb3Igc3lzZnMgc3R1YnMsIGFzCj4gd2VsbCBhcyB0aGUgcmM2IHN5c2ZzIGZ1bmN0aW9u cyB3aGljaCBkb24ndCByZWFsbHkgYmVsb25nIGVsc2V3aGVyZQo+IChwZXJoYXBzIGk5MTVfc3Vz cGVuZCwgYnV0IG1vc3Qgb2YgdGhlIHN0dWZmIGlzIGluIGludGVsX2Rpc3BsYXksYykuCj4gCj4g ZGlzcGxheXMgI21zIEdQVSBoYXMgYmVlbiBpbiByYzYgc2luY2UgYm9vdDoKPiBjYXQgL3N5cy9j bGFzcy9kcm0vY2FyZDAvcG93ZXIvcmM2Cj4gCj4gZGlzcGxheXMgI21zIEdQVSBoYXMgYmVlbiBp biBkZWVwIHJjNiBzaW5jZSBib290Ogo+IGNhdCAvc3lzL2NsYXNzL2RybS9jYXJkMC9wb3dlci9y YzZwCj4gCj4gZGlzcGxheXMgI21zIEdQVSBoYXMgYmVlbiBpbiBkZWVwZXN0IHJjNiBzaW5jZSBi b290Ogo+IGNhdCAvc3lzL2NsYXNzL2RybS9jYXJkMC9wb3dlci9yYzZwcAo+IAo+IEltcG9ydGFu dCBub3RlOiBJJ3ZlIHNlZW4gb24gU05CIHRoYXQgZXZlbiB3aGVuIFJDNiBpcyAqbm90KiBlbmFi bGVkCj4gdGhlIHJjNiByZWdpc3RlciBzZWVtcyB0byBoYXZlIGEgcmFuZG9tIHZhbHVlIGluIGl0 LiBJIGNhbm5vdCBleHBsYWluCj4gYSByZWFzb24gZm9yIHRoaXMuIFRob3NlIHdyaXRpbmcgdG9v bHMgdGhhdCB1dGlsaXplIHRoaXMgdmFsdWUgbmVlZAo+IHRvIGJlIGNhcmVmdWwgYW5kIHByb2Jh Ymx5IHdhbnQgdG8gc2NydXRpbml6ZSB0aGUgdmFsdWUgdmVyeQo+IGNhcmVmdWxseS4KPiAKPiBQ bGVhc2Ugc2VlIGludGVsLWdwdS10b29scyBwYXRjaGVzIGZvciBzYW1wbGUgY29kZS4KPiAKPiBD QzogQXJqYW4gdmFuIGRlIFZlbiA8YXJqYW5AbGludXguaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYt Ynk6IEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KPiAtLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgfCAgICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMgfCAgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1h LmMgICAgIHwgICAgNCArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICB8 ICAgIDQgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jICAgfCAgMTA2Cj4g KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysgNSBmaWxlcyBjaGFuZ2VkLCAxMTYK PiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pIGNyZWF0ZSBtb2RlIDEwMDY0NAo+IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9NYWtlZmlsZQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgaW5k ZXggY2U3ZmM3Ny4uZjgwMTMzMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9N YWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gQEAgLTEyLDYg KzEyLDcgQEAgaTkxNS15IDo9IGk5MTVfZHJ2Lm8gaTkxNV9kbWEubyBpOTE1X2lycS5vIFwKPiAg CSAgaTkxNV9nZW1fZXhlY2J1ZmZlci5vIFwKPiAgCSAgaTkxNV9nZW1fZ3R0Lm8gXAo+ICAJICBp OTE1X2dlbV90aWxpbmcubyBcCj4gKwkgIGk5MTVfc3lzZnMubyBcCj4gIAkgIGk5MTVfdHJhY2Vf cG9pbnRzLm8gXAo+ICAJICBpbnRlbF9kaXNwbGF5Lm8gXAo+ICAJICBpbnRlbF9jcnQubyBcCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBpbmRleCA3MjQ1N2ZmLi40MjU3MTUxIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtMTEzNCw5ICsxMTM0LDkg QEAgc3RhdGljIGludCBnZW42X2RycGNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCj4gIAlzZXFf cHJpbnRmKG0sICJDb3JlIFBvd2VyIERvd246ICVzXG4iLAo+ICAJCSAgIHllc25vKGd0X2NvcmVf c3RhdHVzICYgR0VONl9DT1JFX0NQRF9TVEFURV9NQVNLKSk7Cj4gIAo+ICsJLyogTm90IGV4YWN0 bHkgc3VyZSB3aGF0IHRoaXMgaXMgKi8KPiAgCXNlcV9wcmludGYobSwgIlJDNiBcIkxvY2tlZCB0 byBSUG5cIiByZXNpZGVuY3kgc2luY2UgYm9vdDoKPiAlZFxuIiwgSTkxNV9SRUFEKEdFTjZfR1Rf R0ZYX1JDNl9MT0NLRUQpKTsKPiAtCS8qIE5vdCBleGFjdGx5IHN1cmUgd2hhdCB0aGlzIGlzICov Cj4gIAlzZXFfcHJpbnRmKG0sICJSQzYgcmVzaWRlbmN5IHNpbmNlIGJvb3Q6ICVkXG4iLAo+ICAJ CSAgIEk5MTVfUkVBRChHRU42X0dUX0dGWF9SQzYpKTsKPiAgCXNlcV9wcmludGYobSwgIlJDNisg cmVzaWRlbmN5IHNpbmNlIGJvb3Q6ICVkXG4iLAoKVGhpcyBodW5rIHNob3VsZCBiZSByZWJhc2Vk IG9uIHBhdGNoIDEuLi4gbXkgYmFkLiBJJ2xsIGZpeCBhZnRlcgp3YWl0aW5nIG9uIHNvbWUgcmV2 aWV3LgoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwo+IGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyBpbmRleCBmZGZmMDA5Li42NGRmYmI4IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCj4gQEAgLTIxMTMsNiArMjExMyw4IEBAIGludCBp OTE1X2RyaXZlcl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gdW5zaWduZWQgbG9uZyBm bGFncykgfQo+ICAJfQo+ICAKPiArCWk5MTVfc2V0dXBfc3lzZnMoZGV2KTsKPiArCj4gIAkvKiBN dXN0IGJlIGRvbmUgYWZ0ZXIgcHJvYmluZyBvdXRwdXRzICovCj4gIAlpbnRlbF9vcHJlZ2lvbl9p bml0KGRldik7Cj4gIAlhY3BpX3ZpZGVvX3JlZ2lzdGVyKCk7Cj4gQEAgLTIxNjQsNiArMjE2Niw4 IEBAIGludCBpOTE1X2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCWk5 MTVfbWNoX2RldiA9IE5VTEw7Cj4gIAlzcGluX3VubG9jaygmbWNoZGV2X2xvY2spOwo+ICAKPiAr CWk5MTVfdGVhcmRvd25fc3lzZnMoZGV2KTsKPiArCj4gIAlpZiAoZGV2X3ByaXYtPm1tLmluYWN0 aXZlX3Nocmlua2VyLnNocmluaykKPiAgCQl1bnJlZ2lzdGVyX3Nocmlua2VyKCZkZXZfcHJpdi0+ bW0uaW5hY3RpdmVfc2hyaW5rZXIpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBpbmRl eCAyMmFiNGRiLi5lMjY3Nzc0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTEz NjUsNiArMTM2NSwxMCBAQCBleHRlcm4gaW50IGk5MTVfcmVzdG9yZV9zdGF0ZShzdHJ1Y3QKPiBk cm1fZGV2aWNlICpkZXYpOyBleHRlcm4gaW50IGk5MTVfc2F2ZV9zdGF0ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKPiAgZXh0ZXJuIGludCBpOTE1X3Jlc3RvcmVfc3RhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7Cj4gIAo+ICsvKiBpOTE1X3N5c2ZzLmMgKi8KPiArdm9pZCBpOTE1X3NldHVw X3N5c2ZzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXZfcHJpdik7Cj4gK3ZvaWQgaTkxNV90ZWFyZG93 bl9zeXNmcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2X3ByaXYpOwo+ICsKPiAgLyogaW50ZWxfaTJj LmMgKi8KPiAgZXh0ZXJuIGludCBpbnRlbF9zZXR1cF9nbWJ1cyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKPiAgZXh0ZXJuIHZvaWQgaW50ZWxfdGVhcmRvd25fZ21idXMoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMu Ywo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jIG5ldyBmaWxlIG1vZGUgMTAw NjQ0Cj4gaW5kZXggMDAwMDAwMC4uYTE4YTk1NWYKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jCj4gQEAgLTAsMCArMSwxMDYgQEAKPiArLyoK PiArICogQ29weXJpZ2h0IMKpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KPiArICoKPiArICogUGVy bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24K PiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQg ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCj4gIlNvZnR3YXJlIiksCj4gKyAqIHRvIGRlYWwgaW4g dGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0Cj4gbGlt aXRhdGlvbgo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi bGlzaCwgZGlzdHJpYnV0ZSwKPiBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMg b2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbQo+IHRoZQo+ICsg KiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu Zwo+IGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcKPiB0aGUgbmV4dAo+ICsgKiBwYXJh Z3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwKPiBw b3J0aW9ucyBvZiB0aGUKPiArICogU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAo+IEVYUFJF U1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS UkFOVElFUyBPRgo+IE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PCj4gRVZFTlQgU0hBTEwKPiAr ICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xB SU0sIERBTUFHRVMKPiBPUiBPVEhFUgo+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU SU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPiBBUklTSU5HCj4gKyAqIEZST00s IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IK PiBPVEhFUiBERUFMSU5HUwo+ICsgKiBJTiBUSEUgU09GVFdBUkUuCj4gKyAqCj4gKyAqIEF1dGhv cnM6Cj4gKyAqICAgIEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KPiArICoKPiArICov Cj4gKwo+ICsjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1 bGUuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3N0YXQuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3N5c2Zz Lmg+Cj4gKyNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ICsKPiArc3RhdGljIHUzMiBjYWxjX3Jlc2lk ZW5jeShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBjb25zdCB1MzIgcmVnKQo+ICt7Cj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJdTY0 IHJhd190aW1lOwo+ICsJdTMyIHJlc2lkZW5jeTsKPiArCj4gKwlpZiAoIWludGVsX2VuYWJsZV9y YzYoZGV2KSkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlyYXdfdGltZSA9IEk5MTVfUkVBRChyZWcp ICogMTI4VUxMOwo+ICsJcmVzaWRlbmN5ID0gRElWX1JPVU5EX0NMT1NFU1QocmF3X3RpbWUsIDEw MDApIC8gMTAwOwo+ICsJcmV0dXJuIHJlc2lkZW5jeTsKPiArfQo+ICsKPiArc3RhdGljIHNzaXpl X3QKPiArc2hvd19yYzZwcF9tcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0 cmlidXRlICphdHRyLAo+IGNoYXIgKmJ1ZikgK3sKPiArCXN0cnVjdCBkcm1fbWlub3IgKmRtaW5v ciA9IGNvbnRhaW5lcl9vZihkZXYsIHN0cnVjdAo+IGRybV9taW5vciwga2Rldik7Cj4gKwl1MzIg cmM2cHBfcmVzaWRlbmN5ID0gY2FsY19yZXNpZGVuY3koZG1pbm9yLT5kZXYsCj4gR0VONl9HVF9H RlhfUkM2cHApOwo+ICsJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJXUiLCByYzZw cF9yZXNpZGVuY3kpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgc3NpemVfdAo+ICtzaG93X3JjNl9tcyhz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyCj4g KmJ1ZikgK3sKPiArCXN0cnVjdCBkcm1fbWlub3IgKmRtaW5vciA9IGNvbnRhaW5lcl9vZihkZXYs IHN0cnVjdAo+IGRybV9taW5vciwga2Rldik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkbWlub3ItPmRldi0+ZGV2X3ByaXZhdGU7Cj4gKwkvKiAzMmIgdmFsdWUgbWF5 IG92ZXJmbG93IGR1cmluZyBmaXhlZCBwb2ludCBtYXRoICovCj4gKwl1NjQgdGltZSA9IChJOTE1 X1JFQUQoR0VONl9HVF9HRlhfUkM2KSAqIDEyOCk7Cj4gKwl1MzIgcmM2X3Jlc2lkZW5jeSA9IERJ Vl9ST1VORF9DTE9TRVNUKHRpbWUsIDEwMDApIC8gMTAwOwo+ICsJcmV0dXJuIHNucHJpbnRmKGJ1 ZiwgUEFHRV9TSVpFLCAiJXUiLCByYzZfcmVzaWRlbmN5KTsKPiArfQo+ICsKPiArc3RhdGljIHNz aXplX3QKPiArc2hvd19yYzZwX21zKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9h dHRyaWJ1dGUgKmF0dHIsIGNoYXIKPiAqYnVmKSArewo+ICsJc3RydWN0IGRybV9taW5vciAqZG1p bm9yID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0Cj4gZHJtX21pbm9yLCBrZGV2KTsKPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRtaW5vci0+ZGV2LT5kZXZfcHJpdmF0 ZTsKPiArCS8qIDMyYiB2YWx1ZSBtYXkgb3ZlcmZsb3cgZHVyaW5nIGZpeGVkIHBvaW50IG1hdGgg Ki8KPiArCXU2NCB0aW1lID0gKEk5MTVfUkVBRChHRU42X0dUX0dGWF9SQzZwKSAqIDEyOCk7Cj4g Kwl1MzIgcmM2cF9yZXNpZGVuY3kgPSBESVZfUk9VTkRfQ0xPU0VTVCh0aW1lLCAxMDAwKSAvIDEw MDsKPiArCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiV1IiwgcmM2cF9yZXNpZGVu Y3kpOwo+ICt9CgpUaGVzZSBhbGwgdXNlIGNhbGNfcmVzaWRlbmMoKSBpbiB0aGUgbmV3ZXIgcGF0 Y2guIEFnYWluIHdpbGwgd2FpdCBvbgpzb21lIHJldmlldyBiZWZvcmUgZml4aW5nLgoKPiArCj4g K3N0YXRpYyBERVZJQ0VfQVRUUihyYzYsIFNfSVJVR08sIHNob3dfcmM2X21zLCBOVUxMKTsKPiAr c3RhdGljIERFVklDRV9BVFRSKHJjNnAsIFNfSVJVR08sIHNob3dfcmM2cF9tcywgTlVMTCk7Cj4g K3N0YXRpYyBERVZJQ0VfQVRUUihyYzZwcCwgU19JUlVHTywgc2hvd19yYzZwcF9tcywgTlVMTCk7 Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqcmM2X2F0dHJzW10gPSB7Cj4gKwkmZGV2 X2F0dHJfcmM2LmF0dHIsCj4gKwkmZGV2X2F0dHJfcmM2cC5hdHRyLAo+ICsJJmRldl9hdHRyX3Jj NnBwLmF0dHIsCj4gKwlOVUxMCj4gK307Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9n cm91cCByYzZfYXR0cl9ncm91cCA9IHsKPiArCS5uYW1lID0gcG93ZXJfZ3JvdXBfbmFtZSwKPiAr CS5hdHRycyA9ICByYzZfYXR0cnMKPiArfTsKPiArCj4gK3ZvaWQgaTkxNV9zZXR1cF9zeXNmcyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXJldCA9IHN5 c2ZzX21lcmdlX2dyb3VwKCZkZXYtPnByaW1hcnktPmtkZXYua29iaiwKPiAmcmM2X2F0dHJfZ3Jv dXApOwo+ICsJaWYgKHJldCkKPiArCQlEUk1fRVJST1IoInN5c2ZzIHNldHVwIGZhaWxlZFxuIik7 Cj4gK30KPiArCj4gK3ZvaWQgaTkxNV90ZWFyZG93bl9zeXNmcyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICt7Cj4gKwlzeXNmc19yZW1vdmVfZ3JvdXAoJmRldi0+cHJpbWFyeS0+a2Rldi5rb2Jq LAo+ICZyYzZfYXR0cl9ncm91cCk7ICt9CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=