From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak S Subject: Re: [PATCH 3/7] drm/i915: Improved w/a for rps on Baytrail Date: Wed, 18 Mar 2015 13:26:02 +0530 Message-ID: <55092F92.20205@linux.intel.com> References: <1425654391-2126-1-git-send-email-chris@chris-wilson.co.uk> <1425654391-2126-3-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 5D34C89FD4 for ; Wed, 18 Mar 2015 00:59:10 -0700 (PDT) In-Reply-To: <1425654391-2126-3-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: Daniel Vetter , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org CgpPbiBGcmlkYXkgMDYgTWFyY2ggMjAxNSAwODozNiBQTSwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+ IFJld3JpdGUgY29tbWl0IDMxNjg1YzI1OGUwYjBhZDZhYTQ4NmM1ZWMwMDEzODJjZjhhNjQyMTIK PiBBdXRob3I6IERlZXBhayBTIDxkZWVwYWsuc0BsaW51eC5pbnRlbC5jb20+Cj4gRGF0ZTogICBU aHUgSnVsIDMgMTc6MzM6MDEgMjAxNCAtMDQwMAo+Cj4gICAgICBkcm0vaTkxNS92bHY6IFdBIGZv ciBUdXJibyBhbmQgUkM2IHRvIHdvcmsgdG9nZXRoZXIuCj4KPiBPdGhlciB0aGFuIGNvZGUgY2xh cml0eSwgdGhlIG1ham9yIGltcHJvdmVtZW50IGlzIHRvIGRpc2FibGUgdGhlIGV4dHJhCj4gaW50 ZXJydXB0cyBnZW5lcmF0ZWQgd2hlbiBpZGxlLiAgSG93ZXZlciwgdGhlIHJlY2xvY2tpbmcgcmVt YWlucyByYXRoZXIKPiBzbG93IHVuZGVyIHRoZSBuZXcgbWFudWFsIHJlZ2ltZSwgaW4gcGFydGlj dWxhciBpdCBmYWlscyB0byBkb3duY2xvY2sgYXMKPiBxdWlja2x5IGFzIGRlc2lyZWQuIFRoZSBz ZWNvbmQgbWFqb3IgaW1wcm92ZW1lbnQgaXMgdGhhdCBmb3IgY2VydGFpbgo+IHdvcmtsb2Fkcywg bGlrZSBnYW1lcywgd2UgbmVlZCB0byBjb21iaW5lIHJlbmRlcittZWRpYSBhY3Rpdml0eSBjb3Vu dGVycwo+IGFzIHRoZSB3b3JrIG9mIGRpc3BsYXlpbmcgdGhlIGZyYW1lIGlzIHNwbGl0IGFjcm9z cyB0aGUgZW5naW5lcyBhbmQgYm90aAo+IG5lZWQgdG8gYmUgdGFrZW4gaW50byBhY2NvdW50IHdo ZW4gZGVjaWRpbmcgdGhlIGdsb2JhbCBHUFUgZnJlcXVlbmN5IGFzCj4gbWVtb3J5IGN5Y2xlcyBh cmUgc2hhcmVkLgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13 aWxzb24uY28udWs+Cj4gQ2M6IERlZXBhayBTIDxkZWVwYWsuc0BsaW51eC5pbnRlbC5jb20+Cj4g Q2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6 IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiBDYzogRGFuaWVsIFZldHRl ciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPgo+IENvbmZsaWN0czoKPiAJZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYwo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9p cnEuYyAgICAgIHwgMTU1ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgfCAgIDQgKy0KPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAgMiArCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDIgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYyAgICAgIHwgIDIyICsrKystCj4gICA1IGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlv bnMoKyksIDEwNCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IGluZGV4 IDEyOTZjZTM3ZTQzNS4uNGI3Yjg2Mjk4YjM3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfaXJxLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5j Cj4gQEAgLTk5NywxMjkgKzk5Nyw4NCBAQCBzdGF0aWMgdm9pZCBub3RpZnlfcmluZyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+ICAgCXdha2VfdXBfYWxsKCZyaW5nLT5pcnFfcXVldWUpOwo+ICAg fQo+ICAgCj4gLXN0YXRpYyB1MzIgdmx2X2MwX3Jlc2lkZW5jeShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gLQkJCSAgICBzdHJ1Y3QgaW50ZWxfcnBzX2VpICpycHNfZWkpCj4g K3N0YXRpYyB2b2lkIHZsdl9jMF9yZWFkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPiArCQkJc3RydWN0IGludGVsX3Jwc19laSAqZWkpCj4gICB7Cj4gLQl1MzIgY3pfdHMsIGN6 X2ZyZXFfa2h6Owo+IC0JdTMyIHJlbmRlcl9jb3VudCwgbWVkaWFfY291bnQ7Cj4gLQl1MzIgZWxh cHNlZF9yZW5kZXIsIGVsYXBzZWRfbWVkaWEsIGVsYXBzZWRfdGltZTsKPiAtCXUzMiByZXNpZGVu Y3kgPSAwOwo+IC0KPiAtCWN6X3RzID0gdmx2X3B1bml0X3JlYWQoZGV2X3ByaXYsIFBVTklUX1JF R19DWl9USU1FU1RBTVApOwo+IC0JY3pfZnJlcV9raHogPSBESVZfUk9VTkRfQ0xPU0VTVChkZXZf cHJpdi0+bWVtX2ZyZXEgKiAxMDAwLCA0KTsKPiAtCj4gLQlyZW5kZXJfY291bnQgPSBJOTE1X1JF QUQoVkxWX1JFTkRFUl9DMF9DT1VOVF9SRUcpOwo+IC0JbWVkaWFfY291bnQgPSBJOTE1X1JFQUQo VkxWX01FRElBX0MwX0NPVU5UX1JFRyk7Cj4gLQo+IC0JaWYgKHJwc19laS0+Y3pfY2xvY2sgPT0g MCkgewo+IC0JCXJwc19laS0+Y3pfY2xvY2sgPSBjel90czsKPiAtCQlycHNfZWktPnJlbmRlcl9j MCA9IHJlbmRlcl9jb3VudDsKPiAtCQlycHNfZWktPm1lZGlhX2MwID0gbWVkaWFfY291bnQ7Cj4g LQo+IC0JCXJldHVybiBkZXZfcHJpdi0+cnBzLmN1cl9mcmVxOwo+IC0JfQo+IC0KPiAtCWVsYXBz ZWRfdGltZSA9IGN6X3RzIC0gcnBzX2VpLT5jel9jbG9jazsKPiAtCXJwc19laS0+Y3pfY2xvY2sg PSBjel90czsKPiArCWVpLT5jel9jbG9jayA9IHZsdl9wdW5pdF9yZWFkKGRldl9wcml2LCBQVU5J VF9SRUdfQ1pfVElNRVNUQU1QKTsKPiArCWVpLT5yZW5kZXJfYzAgPSBJOTE1X1JFQUQoVkxWX1JF TkRFUl9DMF9DT1VOVCk7Cj4gKwllaS0+bWVkaWFfYzAgPSBJOTE1X1JFQUQoVkxWX01FRElBX0Mw X0NPVU5UKTsKPiArfQo+ICAgCj4gLQllbGFwc2VkX3JlbmRlciA9IHJlbmRlcl9jb3VudCAtIHJw c19laS0+cmVuZGVyX2MwOwo+IC0JcnBzX2VpLT5yZW5kZXJfYzAgPSByZW5kZXJfY291bnQ7Cj4g K3N0YXRpYyBib29sIHZsdl9jMF9hYm92ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gKwkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfcnBzX2VpICpvbGQsCj4gKwkJCSBjb25zdCBz dHJ1Y3QgaW50ZWxfcnBzX2VpICpub3csCj4gKwkJCSBpbnQgdGhyZXNob2xkKQo+ICt7Cj4gKwl1 NjQgdGltZSwgYzA7Cj4gICAKPiAtCWVsYXBzZWRfbWVkaWEgPSBtZWRpYV9jb3VudCAtIHJwc19l aS0+bWVkaWFfYzA7Cj4gLQlycHNfZWktPm1lZGlhX2MwID0gbWVkaWFfY291bnQ7Cj4gKwlpZiAo b2xkLT5jel9jbG9jayA9PSAwKQo+ICsJCXJldHVybiBmYWxzZTsKPiAgIAo+IC0JLyogQ29udmVy dCBhbGwgdGhlIGNvdW50ZXJzIGludG8gY29tbW9uIHVuaXQgb2YgbWlsbGkgc2VjICovCj4gLQll bGFwc2VkX3RpbWUgLz0gVkxWX0NaX0NMT0NLX1RPX01JTExJX1NFQzsKPiAtCWVsYXBzZWRfcmVu ZGVyIC89ICBjel9mcmVxX2toejsKPiAtCWVsYXBzZWRfbWVkaWEgLz0gY3pfZnJlcV9raHo7Cj4g Kwl0aW1lID0gbm93LT5jel9jbG9jayAtIG9sZC0+Y3pfY2xvY2s7Cj4gKwl0aW1lICo9IHRocmVz aG9sZCAqIGRldl9wcml2LT5tZW1fZnJlcTsKPiAgIAo+IC0JLyoKPiAtCSAqIENhbGN1bGF0ZSBv dmVyYWxsIEMwIHJlc2lkZW5jeSBwZXJjZW50YWdlCj4gLQkgKiBvbmx5IGlmIGVsYXBzZWQgdGlt ZSBpcyBub24gemVybwo+ICsJLyogV29ya2xvYWQgY2FuIGJlIHNwbGl0IGJldHdlZW4gcmVuZGVy ICsgbWVkaWEsIGUuZy4gU3dhcEJ1ZmZlcnMKPiArCSAqIGJlaW5nIGJsaXR0ZWQgaW4gWCBhZnRl ciBiZWluZyByZW5kZXJlZCBpbiBtZXNhLiBUbyBhY2NvdW50IGZvcgo+ICsJICogdGhpcyB3ZSBu ZWVkIHRvIGNvbWJpbmUgYm90aCBlbmdpbmVzIGludG8gb3VyIGFjdGl2aXR5IGNvdW50ZXIuCj4g ICAJICovCj4gLQlpZiAoZWxhcHNlZF90aW1lKSB7Cj4gLQkJcmVzaWRlbmN5ID0KPiAtCQkJKCht YXgoZWxhcHNlZF9yZW5kZXIsIGVsYXBzZWRfbWVkaWEpICogMTAwKQo+IC0JCQkJLyBlbGFwc2Vk X3RpbWUpOwo+IC0JfQo+ICsJYzAgPSBub3ctPnJlbmRlcl9jMCAtIG9sZC0+cmVuZGVyX2MwOwo+ ICsJYzAgKz0gbm93LT5tZWRpYV9jMCAtIG9sZC0+bWVkaWFfYzA7Cj4gKwljMCAqPSAxMDAgKiBW TFZfQ1pfQ0xPQ0tfVE9fTUlMTElfU0VDICogNCAvIDEwMDA7Cj4gICAKPiAtCXJldHVybiByZXNp ZGVuY3k7Cj4gKwlyZXR1cm4gYzAgPj0gdGltZTsKPiAgIH0KPiAgIAo+IC0vKioKPiAtICogdmx2 X2NhbGNfZGVsYXlfZnJvbV9DMF9jb3VudGVycyAtIEluY3JlYXNlL0RlY3JlYXNlIGZyZXEgYmFz ZWQgb24gR1BVCj4gLSAqIGJ1c3ktbmVzcyBjYWxjdWxhdGVkIGZyb20gQzAgY291bnRlcnMgb2Yg cmVuZGVyICYgbWVkaWEgcG93ZXIgd2VsbHMKPiAtICogQGRldl9wcml2OiBEUk0gZGV2aWNlIHBy aXZhdGUKPiAtICoKPiAtICovCj4gLXN0YXRpYyBpbnQgdmx2X2NhbGNfZGVsYXlfZnJvbV9DMF9j b3VudGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3ZvaWQgZ2VuNl9y cHNfcmVzZXRfZWkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+IC0J dTMyIHJlc2lkZW5jeV9DMF91cCA9IDAsIHJlc2lkZW5jeV9DMF9kb3duID0gMDsKPiAtCWludCBu ZXdfZGVsYXksIGFkajsKPiAtCj4gLQlkZXZfcHJpdi0+cnBzLmVpX2ludGVycnVwdF9jb3VudCsr Owo+IC0KPiAtCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2X3ByaXYtPnJwcy5od19sb2Nr KSk7Cj4gKwl2bHZfYzBfcmVhZChkZXZfcHJpdiwgJmRldl9wcml2LT5ycHMuZG93bl9laSk7Cj4g KwlkZXZfcHJpdi0+cnBzLnVwX2VpID0gZGV2X3ByaXYtPnJwcy5kb3duX2VpOwo+ICsJZGV2X3By aXYtPnJwcy5laV9pbnRlcnJ1cHRfY291bnQgPSAwOwo+ICt9Cj4gICAKPiArc3RhdGljIHUzMiB2 bHZfd2FfYzBfZWkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcG1faWly KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfcnBzX2VpIG5vdzsKPiArCXUzMiBldmVudHMgPSAwOwo+ ICAgCj4gLQlpZiAoZGV2X3ByaXYtPnJwcy51cF9laS5jel9jbG9jayA9PSAwKSB7Cj4gLQkJdmx2 X2MwX3Jlc2lkZW5jeShkZXZfcHJpdiwgJmRldl9wcml2LT5ycHMudXBfZWkpOwo+IC0JCXZsdl9j MF9yZXNpZGVuY3koZGV2X3ByaXYsICZkZXZfcHJpdi0+cnBzLmRvd25fZWkpOwo+IC0JCXJldHVy biBkZXZfcHJpdi0+cnBzLmN1cl9mcmVxOwo+IC0JfQo+ICsJaWYgKChwbV9paXIgJiBHRU42X1BN X1JQX1VQX0VJX0VYUElSRUQpID09IDApCj4gKwkJcmV0dXJuIDA7Cj4gICAKPiArCXZsdl9jMF9y ZWFkKGRldl9wcml2LCAmbm93KTsKPiArCWlmIChub3cuY3pfY2xvY2sgPT0gMCkKPiArCQlyZXR1 cm4gMDsKPiAgIAo+ICAgCS8qCj4gICAJICogVG8gZG93biB0aHJvdHRsZSwgQzAgcmVzaWRlbmN5 IHNob3VsZCBiZSBsZXNzIHRoYW4gZG93biB0aHJlc2hvbGQKPiAgIAkgKiBmb3IgY29udGlub3Vz IEVJIGludGVydmFscy4gU28gY2FsY3VsYXRlIGRvd24gRUkgY291bnRlcnMKPiAgIAkgKiBvbmNl IGluIFZMVl9JTlRfQ09VTlRfRk9SX0RPV05fRUkKPiAgIAkgKi8KPiAtCWlmIChkZXZfcHJpdi0+ cnBzLmVpX2ludGVycnVwdF9jb3VudCA9PSBWTFZfSU5UX0NPVU5UX0ZPUl9ET1dOX0VJKSB7Cj4g LQo+ICsJaWYgKCsrZGV2X3ByaXYtPnJwcy5laV9pbnRlcnJ1cHRfY291bnQgPj0gVkxWX0lOVF9D T1VOVF9GT1JfRE9XTl9FSSkgewo+ICsJCXBtX2lpciB8PSBHRU42X1BNX1JQX0RPV05fRUlfRVhQ SVJFRDsKPiAgIAkJZGV2X3ByaXYtPnJwcy5laV9pbnRlcnJ1cHRfY291bnQgPSAwOwo+IC0KPiAt CQlyZXNpZGVuY3lfQzBfZG93biA9IHZsdl9jMF9yZXNpZGVuY3koZGV2X3ByaXYsCj4gLQkJCQkJ CSAgICAgJmRldl9wcml2LT5ycHMuZG93bl9laSk7Cj4gLQl9IGVsc2Ugewo+IC0JCXJlc2lkZW5j eV9DMF91cCA9IHZsdl9jMF9yZXNpZGVuY3koZGV2X3ByaXYsCj4gLQkJCQkJCSAgICZkZXZfcHJp di0+cnBzLnVwX2VpKTsKPiAgIAl9Cj4gICAKPiAtCW5ld19kZWxheSA9IGRldl9wcml2LT5ycHMu Y3VyX2ZyZXE7Cj4gLQo+IC0JYWRqID0gZGV2X3ByaXYtPnJwcy5sYXN0X2FkajsKPiAtCS8qIEMw IHJlc2lkZW5jeSBpcyBncmVhdGVyIHRoYW4gVVAgdGhyZXNob2xkLiBJbmNyZWFzZSBGcmVxdWVu Y3kgKi8KPiAtCWlmIChyZXNpZGVuY3lfQzBfdXAgPj0gVkxWX1JQX1VQX0VJX1RIUkVTSE9MRCkg ewo+IC0JCWlmIChhZGogPiAwKQo+IC0JCQlhZGogKj0gMjsKPiAtCQllbHNlCj4gLQkJCWFkaiA9 IDE7Cj4gLQo+IC0JCWlmIChkZXZfcHJpdi0+cnBzLmN1cl9mcmVxIDwgZGV2X3ByaXYtPnJwcy5t YXhfZnJlcV9zb2Z0bGltaXQpCj4gLQkJCW5ld19kZWxheSA9IGRldl9wcml2LT5ycHMuY3VyX2Zy ZXEgKyBhZGo7Cj4gLQo+IC0JCS8qCj4gLQkJICogRm9yIGJldHRlciBwZXJmb3JtYW5jZSwganVt cCBkaXJlY3RseQo+IC0JCSAqIHRvIFJQZSBpZiB3ZSdyZSBiZWxvdyBpdC4KPiAtCQkgKi8KPiAt CQlpZiAobmV3X2RlbGF5IDwgZGV2X3ByaXYtPnJwcy5lZmZpY2llbnRfZnJlcSkKPiAtCQkJbmV3 X2RlbGF5ID0gZGV2X3ByaXYtPnJwcy5lZmZpY2llbnRfZnJlcTsKPiArCWlmIChwbV9paXIgJiBH RU42X1BNX1JQX0RPV05fRUlfRVhQSVJFRCkgewo+ICsJCWlmICghdmx2X2MwX2Fib3ZlKGRldl9w cml2LAo+ICsJCQkJICAmZGV2X3ByaXYtPnJwcy5kb3duX2VpLCAmbm93LAo+ICsJCQkJICBWTFZf UlBfRE9XTl9FSV9USFJFU0hPTEQpKQo+ICsJCQlldmVudHMgfD0gR0VONl9QTV9SUF9ET1dOX1RI UkVTSE9MRDsKPiArCQlkZXZfcHJpdi0+cnBzLmRvd25fZWkgPSBub3c7Cj4gKwl9Cj4gICAKPiAt CX0gZWxzZSBpZiAoIWRldl9wcml2LT5ycHMuZWlfaW50ZXJydXB0X2NvdW50ICYmCj4gLQkJCShy ZXNpZGVuY3lfQzBfZG93biA8IFZMVl9SUF9ET1dOX0VJX1RIUkVTSE9MRCkpIHsKPiAtCQlpZiAo YWRqIDwgMCkKPiAtCQkJYWRqICo9IDI7Cj4gLQkJZWxzZQo+IC0JCQlhZGogPSAtMTsKPiAtCQkv Kgo+IC0JCSAqIFRoaXMgbWVhbnMsIEMwIHJlc2lkZW5jeSBpcyBsZXNzIHRoYW4gZG93biB0aHJl c2hvbGQgb3Zlcgo+IC0JCSAqIGEgcGVyaW9kIG9mIFZMVl9JTlRfQ09VTlRfRk9SX0RPV05fRUku IFNvLCByZWR1Y2UgdGhlIGZyZXEKPiAtCQkgKi8KPiAtCQlpZiAoZGV2X3ByaXYtPnJwcy5jdXJf ZnJlcSA+IGRldl9wcml2LT5ycHMubWluX2ZyZXFfc29mdGxpbWl0KQo+IC0JCQluZXdfZGVsYXkg PSBkZXZfcHJpdi0+cnBzLmN1cl9mcmVxICsgYWRqOwo+ICsJaWYgKHBtX2lpciAmIEdFTjZfUE1f UlBfVVBfRUlfRVhQSVJFRCkgewo+ICsJCWlmICh2bHZfYzBfYWJvdmUoZGV2X3ByaXYsCj4gKwkJ CQkgJmRldl9wcml2LT5ycHMudXBfZWksICZub3csCj4gKwkJCQkgVkxWX1JQX1VQX0VJX1RIUkVT SE9MRCkpCj4gKwkJCWV2ZW50cyB8PSBHRU42X1BNX1JQX1VQX1RIUkVTSE9MRDsKPiArCQlkZXZf cHJpdi0+cnBzLnVwX2VpID0gbm93Owo+ICAgCX0KPiAgIAo+IC0JcmV0dXJuIG5ld19kZWxheTsK PiArCXJldHVybiBldmVudHM7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkIGdlbjZfcG1fcnBz X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+IEBAIC0xMTQ5LDYgKzExMDQsOCBAQCBz dGF0aWMgdm9pZCBnZW42X3BtX3Jwc193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAg IAo+ICAgCW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gICAKPiArCXBtX2lp ciB8PSB2bHZfd2FfYzBfZWkoZGV2X3ByaXYsIHBtX2lpcik7Cj4gKwo+ICAgCWFkaiA9IGRldl9w cml2LT5ycHMubGFzdF9hZGo7Cj4gICAJbmV3X2RlbGF5ID0gZGV2X3ByaXYtPnJwcy5jdXJfZnJl cTsKPiAgIAlpZiAocG1faWlyICYgR0VONl9QTV9SUF9VUF9USFJFU0hPTEQpIHsKPiBAQCAtMTE3 MCw4ICsxMTI3LDYgQEAgc3RhdGljIHZvaWQgZ2VuNl9wbV9ycHNfd29yayhzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCj4gICAJCWVsc2UKPiAgIAkJCW5ld19kZWxheSA9IGRldl9wcml2LT5ycHMu bWluX2ZyZXFfc29mdGxpbWl0Owo+ICAgCQlhZGogPSAwOwo+IC0JfSBlbHNlIGlmIChwbV9paXIg JiBHRU42X1BNX1JQX1VQX0VJX0VYUElSRUQpIHsKPiAtCQluZXdfZGVsYXkgPSB2bHZfY2FsY19k ZWxheV9mcm9tX0MwX2NvdW50ZXJzKGRldl9wcml2KTsKPiAgIAl9IGVsc2UgaWYgKHBtX2lpciAm IEdFTjZfUE1fUlBfRE9XTl9USFJFU0hPTEQpIHsKPiAgIAkJaWYgKGFkaiA8IDApCj4gICAJCQlh ZGogKj0gMjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCA1NmI5N2M0MWJmMTcuLjMy NDkyMmQ4ZjhhMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC02MTkwLDggKzYx OTAsOCBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKPiAgIAo+ICAgI2RlZmluZSBHRU42 X0dUX0dGWF9SQzZwCQkJMHgxMzgxMEMKPiAgICNkZWZpbmUgR0VONl9HVF9HRlhfUkM2cHAJCQkw eDEzODExMAo+IC0jZGVmaW5lIFZMVl9SRU5ERVJfQzBfQ09VTlRfUkVHCQkweDEzODExOAo+IC0j ZGVmaW5lIFZMVl9NRURJQV9DMF9DT1VOVF9SRUcJCQkweDEzODExQwo+ICsjZGVmaW5lIFZMVl9S RU5ERVJfQzBfQ09VTlQJCQkweDEzODExOAo+ICsjZGVmaW5lIFZMVl9NRURJQV9DMF9DT1VOVAkJ CTB4MTM4MTFDCj4gICAKPiAgICNkZWZpbmUgR0VONl9QQ09ERV9NQUlMQk9YCQkJMHgxMzgxMjQK PiAgICNkZWZpbmUgICBHRU42X1BDT0RFX1JFQURZCQkJKDE8PDMxKQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA3NzExM2Q5NWZiNzEuLjI0MTIwMDJkNTEwYiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtOTE2Nyw2ICs5MTY3LDgg QEAgdm9pZCBpbnRlbF9tYXJrX2J1c3koc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAo+ICAg CWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKPiAgIAlpOTE1X3VwZGF0ZV9nZnhfdmFs KGRldl9wcml2KTsKPiArCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2KQo+ICsJCWdlbjZf cnBzX2J1c3koZGV2X3ByaXYpOwo+ICAgCWRldl9wcml2LT5tbS5idXN5ID0gdHJ1ZTsKPiAgIH0K PiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggZmY3OWRjYTJmZjhlLi4xZTU2 NGRhMmZkMzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xMjM4LDYgKzEy MzgsOCBAQCB2b2lkIGludGVsX2Rpc2FibGVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpOwo+ICAgdm9pZCBpbnRlbF9zdXNwZW5kX2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKPiAgIHZvaWQgaW50ZWxfcmVzZXRfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOwo+ICAgdm9pZCBnZW42X3VwZGF0ZV9yaW5nX2ZyZXEoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7Cj4gK3ZvaWQgZ2VuNl9ycHNfYnVzeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpOwo+ICt2b2lkIGdlbjZfcnBzX3Jlc2V0X2VpKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7Cj4gICB2b2lkIGdlbjZfcnBzX2lkbGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgIHZvaWQgZ2VuNl9ycHNfYm9vc3Qoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgIHZvaWQgaWxrX3dtX2dldF9od19zdGF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCBlNTM3 MjQ1MTY4NTIuLmIzN2Q2MzRiZWE5OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBA IC0zODk4LDYgKzM4OTgsMTggQEAgc3RhdGljIHZvaWQgdmx2X3NldF9ycHNfaWRsZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJSTkxNV9XUklURShHRU42X1BNSU5UUk1T SywgZ2VuNl9ycHNfcG1fbWFzayhkZXZfcHJpdiwgdmFsKSk7Cj4gICB9Cj4gICAKPiArdm9pZCBn ZW42X3Jwc19idXN5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArewo+ICsJ bXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiArCWlmIChkZXZfcHJpdi0+cnBz LmVuYWJsZWQpIHsKPiArCQlpZiAoZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMgJiAoR0VONl9QTV9S UF9ET1dOX0VJX0VYUElSRUQgfCBHRU42X1BNX1JQX1VQX0VJX0VYUElSRUQpKQo+ICsJCQlnZW42 X3Jwc19yZXNldF9laShkZXZfcHJpdik7Cj4gKwkJSTkxNV9XUklURShHRU42X1BNSU5UUk1TSywK PiArCQkJICAgZ2VuNl9ycHNfcG1fbWFzayhkZXZfcHJpdiwgZGV2X3ByaXYtPnJwcy5jdXJfZnJl cSkpOwo+ICsJfQo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICt9 Cj4gKwo+ICAgdm9pZCBnZW42X3Jwc19pZGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsK PiBAQCAtMzkwOSwxNSArMzkyMSwyMSBAQCB2b2lkIGdlbjZfcnBzX2lkbGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCQllbHNlCj4gICAJCQlnZW42X3NldF9ycHMoZGV2 X3ByaXYtPmRldiwgZGV2X3ByaXYtPnJwcy5pZGxlX2ZyZXEpOwo+ICAgCQlkZXZfcHJpdi0+cnBz Lmxhc3RfYWRqID0gMDsKPiArCQlJOTE1X1dSSVRFKEdFTjZfUE1JTlRSTVNLLCAweGZmZmZmZmZm KTsKPiAgIAl9Cj4gICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICAg fQo+ICAgCj4gICB2b2lkIGdlbjZfcnBzX2Jvb3N0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiAgIHsKPiArCXUzMiB2YWw7Cj4gKwo+ICAgCW11dGV4X2xvY2soJmRldl9wcml2 LT5ycHMuaHdfbG9jayk7Cj4gLQlpZiAoZGV2X3ByaXYtPnJwcy5lbmFibGVkKSB7Cj4gLQkJaW50 ZWxfc2V0X3JwcyhkZXZfcHJpdi0+ZGV2LCBkZXZfcHJpdi0+cnBzLm1heF9mcmVxX3NvZnRsaW1p dCk7Cj4gKwl2YWwgPSBkZXZfcHJpdi0+cnBzLm1heF9mcmVxX3NvZnRsaW1pdDsKPiArCWlmIChk ZXZfcHJpdi0+cnBzLmVuYWJsZWQgJiYKPiArCSAgICBkZXZfcHJpdi0+bW0uYnVzeSAmJgo+ICsJ ICAgIGRldl9wcml2LT5ycHMuY3VyX2ZyZXEgPCB2YWwpIHsKPiArCQlpbnRlbF9zZXRfcnBzKGRl dl9wcml2LT5kZXYsIHZhbCk7Cj4gICAJCWRldl9wcml2LT5ycHMubGFzdF9hZGogPSAwOwo+ICAg CX0KPiAgIAltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7CgpFSSBDYWxjdWxh dGlvbiBhbmQgY2hhbmdlcyBsb29rcyBmaW5lIHRvIG1lClJldmlld2VkLWJ5OiBEZWVwYWsgUzxk ZWVwYWsuc0BsaW51eC5pbnRlbC5jb20+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=