From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 05/33] drm/omap: partial workaround for DRA7 DMM errata i878 Date: Tue, 23 Feb 2016 23:57:23 +0200 Message-ID: <5240664.Dy4C1HiFai@avalon> References: <1455875288-4370-1-git-send-email-tomi.valkeinen@ti.com> <1455875288-4370-6-git-send-email-tomi.valkeinen@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [185.26.127.97]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0C1766E394 for ; Tue, 23 Feb 2016 21:57:27 +0000 (UTC) In-Reply-To: <1455875288-4370-6-git-send-email-tomi.valkeinen@ti.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Tomi Valkeinen Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGkgVG9taSwKClRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoLgoKT24gRnJpZGF5IDE5IEZlYnJ1YXJ5 IDIwMTYgMTE6NDc6NDAgVG9taSBWYWxrZWluZW4gd3JvdGU6Cj4gRXJyYXRhIGk4Nzggc2F5cyB0 aGF0IE1QVSBzaG91bGQgbm90IGJlIHVzZWQgdG8gYWNjZXNzIFJBTSBhbmQgRE1NIGF0Cj4gdGhl IHNhbWUgdGltZS4gQXMgaXQncyBub3QgcG9zc2libGUgdG8gcHJldmVudCBNUFUgYWNjZXNzaW5n IFJBTSwgd2UKPiBuZWVkIHRvIGFjY2VzcyBETU0gdmlhIGEgcHJveHkuCj4gCj4gVGhpcyBwYXRj aCBjaGFuZ2VzIERNTSBkcml2ZXIgdG8gYWNjZXNzIERNTSByZWdpc3RlcnMgdmlhIHNETUEuIElu c3RlYWQKPiBvZiBkb2luZyBhIG5vcm1hbCByZWFkbC93cml0ZWwgY2FsbCB0byByZWFkL3dyaXRl IGEgcmVnaXN0ZXIsIHdlIHVzZQo+IHNETUEgdG8gY29weSA0IGJ5dGVzIGZyb20vdG8gdGhlIERN TSByZWdpc3RlcnMuCj4gCj4gVGhpcyBwYXRjaCBwcm92aWRlcyBvbmx5IGEgcGFydGlhbCB3b3Jr YXJvdW5kIGZvciBpODc4LCBhcyBub3Qgb25seSBETU0KPiByZWdpc3RlciByZWFkcy93cml0ZXMg YXJlIGFmZmVjdGVkLCBidXQgYWxzbyBhY2Nlc3NlcyB0byB0aGUgRE1NIG1hcHBlZAo+IGJ1ZmZl cnMgKGZyYW1lYnVmZmVycywgdXN1YWxseSkuCgpXaWxsIHRoaXMgcGF0Y2ggcmVhbGx5IGltcHJv dmUgdGhlIHNpdHVhdGlvbiBpZiB0aGUgRE1NIG1hcHBpbmcgaXMgYWNjZXNzZWQgCmFueXdheSA/ Cgo+IFNpZ25lZC1vZmYtYnk6IFRvbWkgVmFsa2VpbmVuIDx0b21pLnZhbGtlaW5lbkB0aS5jb20+ Cj4gLS0tCj4gIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vb21hcC9kbW0u dHh0IHwgICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZG1tX3ByaXYuaCAg ICAgICAgICAgIHwgICA4ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZG1tX3Rp bGVyLmMgICAgICAgICAgIHwgMTQxICsrKysrKysrKysrKysrKysrLQo+ICAzIGZpbGVzIGNoYW5n ZWQsIDE0OSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL29tYXAvZG1tLnR4dAo+IGIvRG9j dW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9vbWFwL2RtbS50eHQgaW5kZXgKPiA4 YmQ2ZDBhMjM4YTguLmU1ZmMyZWI3ZjRkYSAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2Rl dmljZXRyZWUvYmluZGluZ3MvYXJtL29tYXAvZG1tLnR4dAo+ICsrKyBiL0RvY3VtZW50YXRpb24v ZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vb21hcC9kbW0udHh0Cj4gQEAgLTgsNyArOCw4IEBAIHRy YW5zbGF0aW9uIGZvciBpbml0aWF0b3JzIHdoaWNoIG5lZWQgY29udGlndW91cyBkbWEgYnVzCj4g YWRkcmVzc2VzLgo+IAo+ICBSZXF1aXJlZCBwcm9wZXJ0aWVzOgo+ICAtIGNvbXBhdGlibGU6CVNo b3VsZCBjb250YWluICJ0aSxvbWFwNC1kbW0iIGZvciBPTUFQNCBmYW1pbHkKPiAtCQlTaG91bGQg Y29udGFpbiAidGksb21hcDUtZG1tIiBmb3IgT01BUDUgYW5kIERSQTd4IGZhbWlseQo+ICsJCVNo b3VsZCBjb250YWluICJ0aSxvbWFwNS1kbW0iIGZvciBPTUFQNSBmYW1pbHkKPiArCQlTaG91bGQg Y29udGFpbiAidGksZHJhNy1kbW0iIGZvciBEUkE3eCBmYW1pbHkKCklzbid0IGl0IERSQTd4eCBp bnN0ZWFkIG9mIERSQTd4ID8KCj4gIC0gcmVnOgkJQ29udGFpbnMgRE1NIHJlZ2lzdGVyIGFkZHJl c3MgcmFuZ2UgKGJhc2UgYWRkcmVzcyBhbmQgbGVuZ3RoKQo+ICAtIGludGVycnVwdHM6CVNob3Vs ZCBjb250YWluIGFuIGludGVycnVwdC1zcGVjaWZpZXIgZm9yIERNTV9JUlEuCj4gIC0gdGksaHdt b2RzOglOYW1lIG9mIHRoZSBod21vZCBhc3NvY2lhdGVkIHRvIERNTSwgd2hpY2ggaXMgdHlwaWNh bGx5IAoiZG1tIgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2Rt bV9wcml2LmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZG1tX3ByaXYuaCBpbmRl eCA5ZjMyYTgzY2E1MDcuLjRkMjkyYmE1YmNjYQo+IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9vbWFwZHJtL29tYXBfZG1tX3ByaXYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFw ZHJtL29tYXBfZG1tX3ByaXYuaAo+IEBAIC0xNTUsMTAgKzE1NSwxMiBAQCBzdHJ1Y3QgcmVmaWxs X2VuZ2luZSB7Cj4gCj4gIHN0cnVjdCBkbW1fcGxhdGZvcm1fZGF0YSB7Cj4gIAl1aW50MzJfdCBj cHVfY2FjaGVfZmxhZ3M7Cj4gKwlib29sIGVycmF0YV9pODc4X3dhOwo+ICB9Owo+IAo+ICBzdHJ1 Y3QgZG1tIHsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldjsKPiArCXUzMiBwaHlzX2Jhc2U7Cj4gIAl2 b2lkIF9faW9tZW0gKmJhc2U7Cj4gIAlpbnQgaXJxOwo+IAo+IEBAIC0xODksNiArMTkxLDEyIEBA IHN0cnVjdCBkbW0gewo+ICAJc3RydWN0IGxpc3RfaGVhZCBhbGxvY19oZWFkOwo+IAo+ICAJY29u c3Qgc3RydWN0IGRtbV9wbGF0Zm9ybV9kYXRhICpwbGF0X2RhdGE7Cj4gKwo+ICsJYm9vbCBkbW1f d29ya2Fyb3VuZDsKPiArCXNwaW5sb2NrX3Qgd2FfbG9jazsKPiArCXUzMiAqd2FfZG1hX2RhdGE7 Cj4gKwlkbWFfYWRkcl90IHdhX2RtYV9oYW5kbGU7Cj4gKwlzdHJ1Y3QgZG1hX2NoYW4gKndhX2Rt YV9jaGFuOwo+ICB9Owo+IAo+ICAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L29tYXBkcm0vb21hcF9kbW1fdGlsZXIuYwo+IGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21h cF9kbW1fdGlsZXIuYyBpbmRleCBmZTUyNjA0NzdiNTIuLjNlYzVjNjYzMzU4NQo+IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZG1tX3RpbGVyLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2RtbV90aWxlci5jCj4gQEAgLTE5LDYgKzE5LDcg QEAKPiAgI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRpb24uaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2Rl bGF5Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgo+ICsjaW5jbHVkZSA8bGlu dXgvZG1hZW5naW5lLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgo+ICAjaW5jbHVkZSA8 bGludXgvaW5pdC5oPgo+ICAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Cj4gQEAgLTc5LDE0 ICs4MCwxMjQgQEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHJlZ1tdWzRdID0gewo+ICAJCQlETU1f UEFUX0RFU0NSX18yLCBETU1fUEFUX0RFU0NSX18zfSwKPiAgfTsKPiAKPiArc3RhdGljIGludCBk bW1fZG1hX2NvcHkoc3RydWN0IGRtbSAqZG1tLCB1MzIgc3JjLCB1MzIgZHN0KQoKQW55dGhpbmcg d3Jvbmcgd2l0aCB1c2luZyBkbWFfYWRkcl90ID8KCj4gK3sKPiArCXN0cnVjdCBkbWFfZGV2aWNl ICpkbWFfZGV2ID0gZG1tLT53YV9kbWFfY2hhbi0+ZGV2aWNlOwo+ICsJc3RydWN0IGRtYV9hc3lu Y190eF9kZXNjcmlwdG9yICp0eCA9IE5VTEw7CgpObyBuZWVkIHRvIGluaXRpYWxpemUgdHggdG8g TlVMTC4KCj4gKwllbnVtIGRtYV9zdGF0dXMgc3RhdHVzOwo+ICsJZG1hX2Nvb2tpZV90IGNvb2tp ZTsKPiArCj4gKwl0eCA9IGRtYV9kZXYtPmRldmljZV9wcmVwX2RtYV9tZW1jcHkoZG1tLT53YV9k bWFfY2hhbiwgZHN0LCBzcmMsIDQsIDApOwoKR2l2ZW4gdGhhdCB5b3UncmUgdHJhbnNmZXJyaW5n IGJldHdlZW4gYW4gSS9PIG1hcHBlZCByZWdpc3RlciBhbmQgc3lzdGVtIAptZW1vcnksIEkgYmVs aWV2ZSB5b3Ugc2hvdWxkIHVzZSBkbWFlbmdpbmVfcHJlcF9zbGF2ZV9zaW5nbGUoKSBpbnN0ZWFk LCB3aXRoIGEgCmNhbGwgdG8gZG1hZW5naW5lX3NsYXZlX2NvbmZpZygpIHRvIHNldCB0aGUgSS9P IG1hcHBlZCByZWdpc3RlciBwaHlzaWNhbCAKYWRkcmVzcy4gWW91IHdpbGwgYWxzbyBuZWVkIHRv IHJlcXVlc3QgYSBzbGF2ZSBETUEgY2hhbm5lbCBpbnN0ZWFkIG9mIGEgbWVtY3B5IApETUEgY2hh bm5lbC4KCj4gKwlpZiAoIXR4KSB7Cj4gKwkJZGV2X2VycihkbW0tPmRldiwgIkZhaWxlZCB0byBw cmVwYXJlIERNQSBtZW1jcHlcbiIpOwo+ICsJCXJldHVybiAtRUlPOwo+ICsJfQo+ICsKPiArCWNv b2tpZSA9IHR4LT50eF9zdWJtaXQodHgpOwo+ICsJaWYgKGRtYV9zdWJtaXRfZXJyb3IoY29va2ll KSkgewo+ICsJCWRldl9lcnIoZG1tLT5kZXYsICJGYWlsZWQgdG8gZG8gRE1BIHR4X3N1Ym1pdFxu Iik7Cj4gKwkJcmV0dXJuIC1FSU87Cj4gKwl9Cj4gKwo+ICsJZG1hX2FzeW5jX2lzc3VlX3BlbmRp bmcoZG1tLT53YV9kbWFfY2hhbik7Cj4gKwlzdGF0dXMgPSBkbWFfc3luY193YWl0KGRtbS0+d2Ff ZG1hX2NoYW4sIGNvb2tpZSk7Cj4gKwlpZiAoc3RhdHVzICE9IERNQV9DT01QTEVURSkKPiArCQlk ZXZfZXJyKGRtbS0+ZGV2LCAiaTg3OCB3YSBETUEgY29weSBmYWlsdXJlXG4iKTsKPiArCj4gKwlk bWFlbmdpbmVfdGVybWluYXRlX2FsbChkbW0tPndhX2RtYV9jaGFuKTsKPiArCXJldHVybiAwOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgdTMyIGRtbV9yZWFkX3dhKHN0cnVjdCBkbW0gKmRtbSwgdTMyIHJl ZykKPiArewo+ICsJdTMyIHNyYywgZHN0Owo+ICsJaW50IHI7Cj4gKwo+ICsJc3JjID0gKHUzMiko ZG1tLT5waHlzX2Jhc2UgKyByZWcpOwo+ICsJZHN0ID0gKHUzMilkbW0tPndhX2RtYV9oYW5kbGU7 Cj4gKwo+ICsJciA9IGRtbV9kbWFfY29weShkbW0sIHNyYywgZHN0KTsKPiArCWlmIChyKSB7Cj4g KwkJZGV2X2VycihkbW0tPmRldiwgInNETUEgcmVhZCB0cmFuc2ZlciB0aW1lb3V0XG4iKTsKPiAr CQlyZXR1cm4gcmVhZGwoZG1tLT5iYXNlICsgcmVnKTsKPiArCX0KPiArCj4gKwlyZXR1cm4gcmVh ZGwoZG1tLT53YV9kbWFfZGF0YSk7CgpyZWFkbCgpIGhhcyBhIG1lbW9yeSBiYXJyaWVyICphZnRl ciogdGhlIHJlYWQsIG5vdCBiZWZvcmUuIFNpbWlsYXJseSB3cml0ZWwoKSAKaGFzIGl0cyBtZW1v cnkgYmFycmllciAqYmVmb3JlKiB0aGUgd3JpdGUuIEkgZG9uJ3QgdGhpbmsgdGhhdCdzIHdoYXQg eW91IHdhbnQsIApzaG91bGRuJ3QgeW91IHVzZSByZWFkbF9yZWxheGVkKCkgYW5kIHdyaXRlbF9y ZWxheGVkKCkgd2l0aCBleHBsaWNpdCBiYXJyaWVycyAKPwoKSSdtIGFsc28gdW5zdXJlIHdoZXRo ZXIgcmVhZGwgYW5kIHdyaXRlbCBhcmUgdGhlIHJpZ2h0IHByaW1pdGl2ZXMsIGFzIHRoZXkgCnRh cmdldCBhY2Nlc3MgdG8gSS9PIG1lbW9yeSwgbm90IHN5c3RlbSBtZW1vcnkuIENhbid0IHlvdSB1 c2UgZXhwbGljaXQgCmJhcnJpZXJzIGFuZCBkaXJlY3QgYWNjZXNzIChyZXR1cm4gKmRtbS0+d2Ff ZG1hX2RhdGEpID8KCj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRtbV93cml0ZV93YShzdHJ1Y3Qg ZG1tICpkbW0sIHUzMiB2YWwsIHUzMiByZWcpCj4gK3sKPiArCXUzMiBzcmMsIGRzdDsKPiArCWlu dCByOwo+ICsKPiArCXdyaXRlbCh2YWwsIGRtbS0+d2FfZG1hX2RhdGEpOwoKU2FtZSBjb21tZW50 IGhlcmUuCgo+ICsJc3JjID0gKHUzMilkbW0tPndhX2RtYV9oYW5kbGU7Cj4gKwlkc3QgPSAodTMy KShkbW0tPnBoeXNfYmFzZSArIHJlZyk7Cj4gKwo+ICsJciA9IGRtbV9kbWFfY29weShkbW0sIHNy YywgZHN0KTsKPiArCWlmIChyKSB7Cj4gKwkJZGV2X2VycihkbW0tPmRldiwgInNETUEgd3JpdGUg dHJhbnNmZXIgdGltZW91dFxuIik7Cj4gKwkJd3JpdGVsKHZhbCwgZG1tLT5iYXNlICsgcmVnKTsK PiArCX0KPiArfQo+ICsKPiAgc3RhdGljIHUzMiBkbW1fcmVhZChzdHJ1Y3QgZG1tICpkbW0sIHUz MiByZWcpCj4gIHsKPiAtCXJldHVybiByZWFkbChkbW0tPmJhc2UgKyByZWcpOwo+ICsJaWYgKGRt bS0+ZG1tX3dvcmthcm91bmQpIHsKPiArCQl1MzIgdjsKPiArCQl1bnNpZ25lZCBsb25nIGZsYWdz Owo+ICsKPiArCQlzcGluX2xvY2tfaXJxc2F2ZSgmZG1tLT53YV9sb2NrLCBmbGFncyk7Cj4gKwkJ diA9IGRtbV9yZWFkX3dhKGRtbSwgcmVnKTsKCmRtYV9zeW5jX3dhaXQoKSB3aXRoIGEgc3Bpbmxv Y2sgaGVsZCBkb2Vzbid0IHNlZW0gbGlrZSB0aGUgYmVzdCBpZGVhIHRvIG1lLgoKPiArCQlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZkbW0tPndhX2xvY2ssIGZsYWdzKTsKPiArCj4gKwkJcmV0dXJu IHY7Cj4gKwl9IGVsc2Ugewo+ICsJCXJldHVybiByZWFkbChkbW0tPmJhc2UgKyByZWcpOwo+ICsJ fQo+ICB9Cj4gCj4gIHN0YXRpYyB2b2lkIGRtbV93cml0ZShzdHJ1Y3QgZG1tICpkbW0sIHUzMiB2 YWwsIHUzMiByZWcpCj4gIHsKPiAtCXdyaXRlbCh2YWwsIGRtbS0+YmFzZSArIHJlZyk7Cj4gKwlp ZiAoZG1tLT5kbW1fd29ya2Fyb3VuZCkgewo+ICsJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gKwo+ ICsJCXNwaW5fbG9ja19pcnFzYXZlKCZkbW0tPndhX2xvY2ssIGZsYWdzKTsKPiArCQlkbW1fd3Jp dGVfd2EoZG1tLCB2YWwsIHJlZyk7CgpEaXR0by4KCj4gKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmZG1tLT53YV9sb2NrLCBmbGFncyk7Cj4gKwl9IGVsc2Ugewo+ICsJCXdyaXRlbCh2YWwsIGRt bS0+YmFzZSArIHJlZyk7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZG1tX3dvcmthcm91 bmRfaW5pdChzdHJ1Y3QgZG1tICpkbW0pCj4gK3sKPiArCWRtYV9jYXBfbWFza190IG1hc2s7Cj4g Kwo+ICsJZG1hX2NhcF96ZXJvKG1hc2spOwo+ICsJZG1hX2NhcF9zZXQoRE1BX01FTUNQWSwgbWFz ayk7CgpOaXRwaWNraW5nLCBJJ2QgbW92ZSB0aG9zZSB0d28gbGluZXMgZG93biByaWdodCBiZWZv cmUgdGhlIApkbWFfcmVxdWVzdF9jaGFubmVsKCkgY2FsbCwgYXMgdGhleSBhcmUgcGFydCBvZiB0 aGUgc2FtZSBsb2dpY2FsIGJsb2NrIG9mIApjb2RlLgoKPiArCXNwaW5fbG9ja19pbml0KCZkbW0t PndhX2xvY2spOwo+ICsKPiArCWRtbS0+d2FfZG1hX2RhdGEgPSBkbWFfYWxsb2NfY29oZXJlbnQo ZG1tLT5kZXYsIDQsICZkbW0tPndhX2RtYV9oYW5kbGUsCj4gR0ZQX0tFUk5FTCk7CgpNYXliZSBh IG1hY3JvIGluc3RlYWQgb2YgNCA/Cgo+ICsJaWYgKCFkbW0tPndhX2RtYV9kYXRhKQo+ICsJCXJl dHVybiAtRU5PTUVNOwo+ICsKPiArCWRtbS0+d2FfZG1hX2NoYW4gPSBkbWFfcmVxdWVzdF9jaGFu bmVsKG1hc2ssIE5VTEwsIE5VTEwpOwo+ICsJaWYgKCFkbW0tPndhX2RtYV9jaGFuKSB7Cj4gKwkJ ZG1hX2ZyZWVfY29oZXJlbnQoZG1tLT5kZXYsIDQsIGRtbS0+d2FfZG1hX2RhdGEsIGRtbS0+d2Ff ZG1hX2hhbmRsZSk7Cj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7 Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRtbV93b3JrYXJvdW5kX3VuaW5pdChzdHJ1Y3QgZG1t ICpkbW0pCj4gK3sKPiArCWRtYV9yZWxlYXNlX2NoYW5uZWwoZG1tLT53YV9kbWFfY2hhbik7Cj4g Kwo+ICsJZG1hX2ZyZWVfY29oZXJlbnQoZG1tLT5kZXYsIDQsIGRtbS0+d2FfZG1hX2RhdGEsIGRt bS0+d2FfZG1hX2hhbmRsZSk7Cj4gIH0KPiAKPiAgLyogc2ltcGxlIGFsbG9jYXRvciB0byBncmFi IG5leHQgMTYgYnl0ZSBhbGlnbmVkIG1lbW9yeSBmcm9tIHR4biAqLwo+IEBAIC02MDYsNiArNzE3 LDkgQEAgc3RhdGljIGludCBvbWFwX2RtbV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq ZGV2KQo+ICAJCWlmIChvbWFwX2RtbS0+ZHVtbXlfcGFnZSkKPiAgCQkJX19mcmVlX3BhZ2Uob21h cF9kbW0tPmR1bW15X3BhZ2UpOwo+IAo+ICsJCWlmIChvbWFwX2RtbS0+ZG1tX3dvcmthcm91bmQp Cj4gKwkJCWRtbV93b3JrYXJvdW5kX3VuaW5pdChvbWFwX2RtbSk7Cj4gKwo+ICAJCWlmIChvbWFw X2RtbS0+aXJxID4gMCkKPiAgCQkJZnJlZV9pcnEob21hcF9kbW0tPmlycSwgb21hcF9kbW0pOwo+ IAo+IEBAIC02NTMsNiArNzY3LDcgQEAgc3RhdGljIGludCBvbWFwX2RtbV9wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpkZXYpCj4gIAkJZ290byBmYWlsOwo+ICAJfQo+IAo+ICsJb21hcF9k bW0tPnBoeXNfYmFzZSA9IG1lbS0+c3RhcnQ7Cj4gIAlvbWFwX2RtbS0+YmFzZSA9IGlvcmVtYXAo bWVtLT5zdGFydCwgU1pfMkspOwo+IAo+ICAJaWYgKCFvbWFwX2RtbS0+YmFzZSkgewo+IEBAIC02 NjgsNiArNzgzLDE5IEBAIHN0YXRpYyBpbnQgb21hcF9kbW1fcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqZGV2KQo+IAo+ICAJb21hcF9kbW0tPmRldiA9ICZkZXYtPmRldjsKPiAKPiArCW9t YXBfZG1tLT5kbW1fd29ya2Fyb3VuZCA9IG9tYXBfZG1tLT5wbGF0X2RhdGEtPmVycmF0YV9pODc4 X3dhOwo+ICsKPiArCWlmIChvbWFwX2RtbS0+ZG1tX3dvcmthcm91bmQpIHsKCkknZCB0ZXN0IG9t YXBfZG1tLT5wbGF0X2RhdGEtPmVycmF0YV9pODc4X3dhIGhlcmUsIG9tYXBfZG1tLT5kbW1fd29y a2Fyb3VuZCBpcyAKaW5pdGlhbGl6ZWQgdG8gZmFsc2UgYnkga3phbGxvYygpLgoKPiArCQlpbnQg cjsKPiArCQlyID0gZG1tX3dvcmthcm91bmRfaW5pdChvbWFwX2RtbSk7CgpDYW4ndCB5b3UgdXNl IHRoZSByZXQgdmFyaWFibGUgPyBJIGtub3cgaXQncyBwcmUtaW5pdGlhbGl6ZWQgdG8gLUVGQVVM VCwgYnV0IAppdCBzZWVtcyBiZXR0ZXIgdG8gbWUgdG8gc2V0IGl0IHRvIGV4cGxpY2l0IHZhbHVl cyBpbiB0aGUgdGhyZWUgZ290byBmYWlsOyAKZXJyb3IgY2FzZXMgdGhhdCB3b3VsZCBiZSBpbXBh Y3RlZCwgZXNwZWNpYWxseSBnaXZlbiB0aGF0IC1FRkFVTFQgaXMgdGhlIHdyb25nIAplcnJvciBj b2RlIHRvIHJldHVybiAoYW5kIGFzIGl0IHdvdWxkIHRvdWNoIHRoYXQgY29kZSwgdGhlIApwbGF0 Zm9ybV9nZXRfcmVzb3VyY2UoKSArIGlvcmVtYXAoKSBjYWxscyBjYW4gYmUgb3B0aW1pemVkIGlu IGEgCmRldm1faW9yZW1hcF9yZXNvdXJjZSgpIGluIGFub3RoZXIgY2xlYW51cCBwYXRjaCkuCgo+ ICsJCWlmIChyKSB7Cj4gKwkJCW9tYXBfZG1tLT5kbW1fd29ya2Fyb3VuZCA9IGZhbHNlOwo+ICsJ CQlkZXZfZXJyKCZkZXYtPmRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIHdvcmstYXJvdW5kLCBX QSBub3QgCnVzZWRcbiIpOwoKQXMgdGhpcyBpcyBhIG5vbi1mYXRhbCBlcnJvciwgbWF5YmUgZGV2 X3dhcm4oKSA/Cgo+ICsJCX0gZWxzZSB7Cj4gKwkJCWRldl9pbmZvKCZkZXYtPmRldiwgIndvcmth cm91bmQgZm9yIGVycmF0YSBpODc4IGluIHVzZVxuIik7Cj4gKwkJfQo+ICsJfQo+ICsKPiAgCWh3 aW5mbyA9IGRtbV9yZWFkKG9tYXBfZG1tLCBETU1fUEFUX0hXSU5GTyk7Cj4gIAlvbWFwX2RtbS0+ bnVtX2VuZ2luZXMgPSAoaHdpbmZvID4+IDI0KSAmIDB4MUY7Cj4gIAlvbWFwX2RtbS0+bnVtX2x1 dCA9IChod2luZm8gPj4gMTYpICYgMHgxRjsKPiBAQCAtMTAzMSw2ICsxMTU5LDExIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZG1tX3BsYXRmb3JtX2RhdGEKPiBkbW1fb21hcDVfcGxhdGZvcm1fZGF0 YSA9IHsgLmNwdV9jYWNoZV9mbGFncyA9IE9NQVBfQk9fVU5DQUNIRUQsCj4gIH07Cj4gCj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgZG1tX3BsYXRmb3JtX2RhdGEgZG1tX2RyYTdfcGxhdGZvcm1fZGF0 YSA9IHsKPiArCS5jcHVfY2FjaGVfZmxhZ3MgPSBPTUFQX0JPX1VOQ0FDSEVELAo+ICsJLmVycmF0 YV9pODc4X3dhID0gdHJ1ZSwKPiArfTsKPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2 aWNlX2lkIGRtbV9vZl9tYXRjaFtdID0gewo+ICAJewo+ICAJCS5jb21wYXRpYmxlID0gInRpLG9t YXA0LWRtbSIsCj4gQEAgLTEwNDAsNiArMTE3MywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9m X2RldmljZV9pZCBkbW1fb2ZfbWF0Y2hbXSA9IHsKPiAgCQkuY29tcGF0aWJsZSA9ICJ0aSxvbWFw NS1kbW0iLAo+ICAJCS5kYXRhID0gJmRtbV9vbWFwNV9wbGF0Zm9ybV9kYXRhLAo+ICAJfSwKPiAr CXsKPiArCQkuY29tcGF0aWJsZSA9ICJ0aSxkcmE3LWRtbSIsCj4gKwkJLmRhdGEgPSAmZG1tX2Ry YTdfcGxhdGZvcm1fZGF0YSwKPiArCX0sCj4gIAl7fSwKPiAgfTsKPiAgI2VuZGlmCgotLSAKUmVn YXJkcywKCkxhdXJlbnQgUGluY2hhcnQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=