From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/3] drm/i915: add the FBC mutex Date: Wed, 17 Jun 2015 10:21:30 +0200 Message-ID: <20150617082130.GC23637@phenom.ffwll.local> References: <978418739-1927-1-git-send-email-przanoni@gmail.com> <978418739-1927-3-git-send-email-przanoni@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f179.google.com (mail-wi0-f179.google.com [209.85.212.179]) by gabe.freedesktop.org (Postfix) with ESMTP id B3DD06E02F for ; Wed, 17 Jun 2015 01:18:46 -0700 (PDT) Received: by wicnd19 with SMTP id nd19so74854080wic.1 for ; Wed, 17 Jun 2015 01:18:45 -0700 (PDT) Content-Disposition: inline In-Reply-To: <978418739-1927-3-git-send-email-przanoni@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKYW4gMDIsIDIwMDEgYXQgMDQ6NTg6NThBTSAtMDIwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IEZyb206IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+IAo+ IE1ha2Ugc3VyZSB3ZSdyZSBub3QgZ29ubmEgaGF2ZSB3ZWlyZCByYWNlcyBpbiByZWFsbHkgd2Vp cmQgY2FzZXMgd2hlcmUKPiBhIGxvdCBvZiBkaWZmZXJlbnQgQ1JUQ3MgYXJlIGRvaW5nIHJlbmRl cmluZyBhbmQgbW9kZXNldHMgYXQgdGhlIHNhbWUKPiB0aW1lLgo+IAo+IHYyOgo+ICAtIFJlYmFz ZSAoNiBtb250aHMgbGF0ZXIpCj4gIC0gQWxzbyBsb2NrIGRlYnVnZnMgYW5kIHN0b2xlbi4KPiAK PiBTaWduZWQtb2ZmLWJ5OiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4K PiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgfCAgOCArKysr Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgIHwgIDEgKwo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyB8ICA3ICsrKysKPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgICAgICAgfCA3MyArKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygrKSwgMTQgZGVs ZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCBjNDlm ZTJhLi5jOTliZTBlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAt MTU5Myw2ICsxNTkzLDcgQEAgc3RhdGljIGludCBpOTE1X2ZiY19zdGF0dXMoc3RydWN0IHNlcV9m aWxlICptLCB2b2lkICp1bnVzZWQpCj4gIAl9Cj4gIAo+ICAJaW50ZWxfcnVudGltZV9wbV9nZXQo ZGV2X3ByaXYpOwo+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKPiAgCj4gIAlp ZiAoaW50ZWxfZmJjX2VuYWJsZWQoZGV2KSkKPiAgCQlzZXFfcHV0cyhtLCAiRkJDIGVuYWJsZWRc biIpOwo+IEBAIC0xNjA1LDYgKzE2MDYsNyBAQCBzdGF0aWMgaW50IGk5MTVfZmJjX3N0YXR1cyhz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiAgCQkJICAgeWVzbm8oSTkxNV9SRUFE KEZCQ19TVEFUVVMyKSAmCj4gIAkJCQkgRkJDX0NPTVBSRVNTSU9OX01BU0spKTsKPiAgCj4gKwlt dXRleF91bmxvY2soJmRldl9wcml2LT5mYmMubG9jayk7Cj4gIAlpbnRlbF9ydW50aW1lX3BtX3B1 dChkZXZfcHJpdik7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gQEAgLTE2MTksNyArMTYyMSwxMSBAQCBz dGF0aWMgaW50IGk5MTVfZmJjX2ZjX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbCkKPiAgCQlyZXR1 cm4gLUVOT0RFVjsKPiAgCj4gIAlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXYpOwoKTW9kZXNldCBs b2NrcyBhcmVuJ3QgcmVxdWlyZWQgYW55IG1vcmUgaGVyZS4gVGhhdCB3YXMganVzdCB0byBwcmV2 ZW50CmNvbmN1cnJlbnQgbW9kZXNldHMsIGJ1dCBpZiB3ZSBoYXZlIGEgbmV3IHVuaWZpZWQgZmJj IGxvY2sgZm9yIGFsbCBvZiB0aGlzCml0J3Mgbm90IG5lZWRlZCBhbnkgbW9yZS4KCj4gKwltdXRl eF9sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwo+ICsKPiAgCSp2YWwgPSBkZXZfcHJpdi0+ZmJj LmZhbHNlX2NvbG9yOwo+ICsKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsK PiAgCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKPiAgCj4gIAlyZXR1cm4gMDsKPiBAQCAt MTYzNSw2ICsxNjQxLDcgQEAgc3RhdGljIGludCBpOTE1X2ZiY19mY19zZXQodm9pZCAqZGF0YSwg dTY0IHZhbCkKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiAgCj4gIAlkcm1fbW9kZXNldF9sb2NrX2Fs bChkZXYpOwoKU2FtZS4KCj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwo+ICAK PiAgCXJlZyA9IEk5MTVfUkVBRChJTEtfRFBGQ19DT05UUk9MKTsKPiAgCWRldl9wcml2LT5mYmMu ZmFsc2VfY29sb3IgPSB2YWw7Cj4gQEAgLTE2NDMsNiArMTY1MCw3IEBAIHN0YXRpYyBpbnQgaTkx NV9mYmNfZmNfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCj4gIAkJICAgKHJlZyB8IEZCQ19DVExf RkFMU0VfQ09MT1IpIDoKPiAgCQkgICAocmVnICYgfkZCQ19DVExfRkFMU0VfQ09MT1IpKTsKPiAg Cj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5mYmMubG9jayk7Cj4gIAlkcm1fbW9kZXNldF91 bmxvY2tfYWxsKGRldik7Cj4gIAlyZXR1cm4gMDsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+IGluZGV4IDQ5MWVmMGMuLjlhYjA0ZjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiBAQCAtODkxLDYgKzg5MSw3IEBAIGVudW0gZmJfb3Bfb3JpZ2luIHsKPiAgfTsKPiAgCj4gIHN0 cnVjdCBpOTE1X2ZiYyB7Cj4gKwlzdHJ1Y3QgbXV0ZXggbG9jazsKPiAgCXVuc2lnbmVkIGxvbmcg dW5jb21wcmVzc2VkX3NpemU7Cj4gIAl1bnNpZ25lZCB0aHJlc2hvbGQ7Cj4gIAl1bnNpZ25lZCBp bnQgZmJfaWQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0 b2xlbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKPiBpbmRleCAz NDhlZDVhLi45NDdkZGI0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3N0b2xlbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVu LmMKPiBAQCAtMjUwLDYgKzI1MCw4IEBAIGludCBpOTE1X2dlbV9zdG9sZW5fc2V0dXBfY29tcHJl c3Npb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHNpemUsIGludCBmYl9jCj4gIHsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4g IAo+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmZiYy5sb2NrKTsKClBsZWFzZSB1 c2UgV0FSTl9PTighbXV0ZXhfbG9ja2VkKS4gbG9ja2RlcF9hc3NlcnRfaGVsZCBpcyBhIG5vLW9w IHdoZW4KbG9ja2RlcCBpcyBjb21waWxlZCBvdXQuIEFuZCB0aGUgYmVuZWZpdCBvZiBhbHNvIGNo ZWNraW5nIHRoYXQgdGhlIGN1cnJlbnQKdGFzayBpcyB0aGUgbG9jayBvd25lciBpcyBpbW8gbmVn bGlnaWJsZSAoaXQgb25seSBtYXR0ZXJzIHdoZW4geW91IGhhdmUgYW4KYWN0dWFsIHJhY2UsIHdo aWNoIGFsbW9zdCBuZXZlciBoYXBwZW5zKS4KCkFsc28gc2VlIG15IGNvbW1lbnQgb24gdGhlIG5l eHQgcGF0Y2gsIHN0b2xlbiBtZW1vcnkgbWFuYWdlbWVudCBpcyBwcm90ZWN0CmJ5IGRldi0+c3Ry dWN0X211dGV4IGFjdHVhbGx5LgoKTG9ja2luZyBsb29rcyBnb29kIG90aGVyd2lzZSwgYnV0IEkg Z3Vlc3Mgd2UgbmVlZCB0byByZS1hdWRpdCBhbGwgdGhpcwpvbmNlIGl0J3MgYWxsIHNldHRsZWQg ZG93biBpbnRvIHRoZSBuZXcgZGVzaWduLgoKPiArCj4gIAlpZiAoIWRybV9tbV9pbml0aWFsaXpl ZCgmZGV2X3ByaXYtPm1tLnN0b2xlbikpCj4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gIAo+IEBAIC0y NjYsNiArMjY4LDggQEAgdm9pZCBpOTE1X2dlbV9zdG9sZW5fY2xlYW51cF9jb21wcmVzc2lvbihz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAKPiArCWxvY2tkZXBfYXNzZXJ0X2hlbGQo JmRldl9wcml2LT5mYmMubG9jayk7Cj4gKwo+ICAJaWYgKGRldl9wcml2LT5mYmMudW5jb21wcmVz c2VkX3NpemUgPT0gMCkKPiAgCQlyZXR1cm47Cj4gIAo+IEBAIC0yODYsNyArMjkwLDEwIEBAIHZv aWQgaTkxNV9nZW1fY2xlYW51cF9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCWlm ICghZHJtX21tX2luaXRpYWxpemVkKCZkZXZfcHJpdi0+bW0uc3RvbGVuKSkKPiAgCQlyZXR1cm47 Cj4gIAo+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKPiAgCWk5MTVfZ2VtX3N0 b2xlbl9jbGVhbnVwX2NvbXByZXNzaW9uKGRldik7Cj4gKwltdXRleF91bmxvY2soJmRldl9wcml2 LT5mYmMubG9jayk7Cj4gKwo+ICAJZHJtX21tX3Rha2Vkb3duKCZkZXZfcHJpdi0+bW0uc3RvbGVu KTsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+IGluZGV4IDllNTViOWIuLjMx ZmY4OGIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+IEBAIC0zMzYsNiArMzM2LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICpfX3dv cmspCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ICAKPiAgCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiArCW11dGV4X2xv Y2soJmRldl9wcml2LT5mYmMubG9jayk7Cj4gIAlpZiAod29yayA9PSBkZXZfcHJpdi0+ZmJjLmZi Y193b3JrKSB7Cj4gIAkJLyogRG91YmxlIGNoZWNrIHRoYXQgd2UgaGF2ZW4ndCBzd2l0Y2hlZCBm YiB3aXRob3V0IGNhbmNlbGxpbmcKPiAgCQkgKiB0aGUgcHJpb3Igd29yay4KPiBAQCAtMzUwLDYg KzM1MSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2ZiY193b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVj dCAqX193b3JrKQo+ICAKPiAgCQlkZXZfcHJpdi0+ZmJjLmZiY193b3JrID0gTlVMTDsKPiAgCX0K PiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKPiAgCW11dGV4X3VubG9jaygm ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICAKPiAgCWtmcmVlKHdvcmspOwo+IEBAIC0zNTcsNiArMzU5 LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICpf X3dvcmspCj4gIAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9mYmNfY2FuY2VsX3dvcmsoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZk ZXZfcHJpdi0+ZmJjLmxvY2spOwoKU21hbGwgbm90ZSBmb3IgdGhlIGZ1dHVyZTogVGhlIGFzeW5j IHdvcmtlciBjYW5jZWxsaW5nIHNjaGVtZSB1c2VkIGJ5IGZiYwpkb2Vzbid0IG1hdGNoIHdoYXQg cHNyL2RycnMgdXNlIC0gdGhleSBhbGwgY2FuY2VsIHRoZSB3b3JrIHN5bmNocm9ub3VzbHksCmJ1 dCBvdXRzaWRlIG9mIGFueSBsb2NrZWQgY3JpdGljYWwgc2VjdGlvbi4gV2UgY291bGRuJ3QgZG8g dGhhdCB3aXRoIGZiYwpiZWNhdXNlIGRldi0+c3RydWN0X211dGV4IGlzIHRvbyBiaWcuIEJ1dCB3 aXRoIHRoZSBuZXcgbG9ja2luZyBpdCBtaWdodAptYWtlIHNlbnNlIHRvIHN3aXRjaCB0byB0aGUg c2FtZSBkZXNpZ24gZm9yIGNvbnNpc3RlbmN5LgoKQnV0IHdlIGNhbiBvbmx5IGRvIHRoYXQgb25j ZSBmYmMgbG9va3MgbW9yZSBsaWtlIHBzci9kcnJzIHdpdGggZGVkaWNhdGVkCmVuYWJsZS9kaXNh YmxlLCBhbmQgdGhhdCdzIHN0aWxsIGEgd2F5IG9mZi4KCkNoZWVycywgRGFuaWVsCgo+ICsKPiAg CWlmIChkZXZfcHJpdi0+ZmJjLmZiY193b3JrID09IE5VTEwpCj4gIAkJcmV0dXJuOwo+ICAKPiBA QCAtMzg0LDYgKzM4OCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2ZiY19lbmFibGUoc3RydWN0IGRy bV9jcnRjICpjcnRjKQo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4g IAo+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmZiYy5sb2NrKTsKPiArCj4gIAlp ZiAoIWRldl9wcml2LT5kaXNwbGF5LmVuYWJsZV9mYmMpCj4gIAkJcmV0dXJuOwo+ICAKPiBAQCAt NDE4LDE2ICs0MjQsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX2VuYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCj4gIAlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJndvcmstPndvcmssIG1zZWNz X3RvX2ppZmZpZXMoNTApKTsKPiAgfQo+ICAKPiAtLyoqCj4gLSAqIGludGVsX2ZiY19kaXNhYmxl IC0gZGlzYWJsZSBGQkMKPiAtICogQGRldjogdGhlIGRybV9kZXZpY2UKPiAtICoKPiAtICogVGhp cyBmdW5jdGlvbiBkaXNhYmxlcyBGQkMuCj4gLSAqLwo+IC12b2lkIGludGVsX2ZiY19kaXNhYmxl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3N0YXRpYyB2b2lkIF9faW50ZWxfZmJjX2Rpc2Fi bGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCj4gKwlsb2NrZGVwX2Fzc2VydF9o ZWxkKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwo+ICsKPiAgCWludGVsX2ZiY19jYW5jZWxfd29yayhk ZXZfcHJpdik7Cj4gIAo+ICAJaWYgKCFkZXZfcHJpdi0+ZGlzcGxheS5kaXNhYmxlX2ZiYykKPiBA QCAtNDM3LDYgKzQzOSwyMSBAQCB2b2lkIGludGVsX2ZiY19kaXNhYmxlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gIAlkZXZfcHJpdi0+ZmJjLmNydGMgPSBOVUxMOwo+ICB9Cj4gIAo+ICsvKioK PiArICogaW50ZWxfZmJjX2Rpc2FibGUgLSBkaXNhYmxlIEZCQwo+ICsgKiBAZGV2OiB0aGUgZHJt X2RldmljZQo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGRpc2FibGVzIEZCQy4KPiArICovCj4g K3ZvaWQgaW50ZWxfZmJjX2Rpc2FibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArewo+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAr Cj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwo+ICsJX19pbnRlbF9mYmNfZGlz YWJsZShkZXYpOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwo+ICt9Cj4g Kwo+ICBjb25zdCBjaGFyICppbnRlbF9ub19mYmNfcmVhc29uX3N0cihlbnVtIG5vX2ZiY19yZWFz b24gcmVhc29uKQo+ICB7Cj4gIAlzd2l0Y2ggKHJlYXNvbikgewo+IEBAIC01MTYsNyArNTMzLDcg QEAgc3RhdGljIHN0cnVjdCBkcm1fY3J0YyAqaW50ZWxfZmJjX2ZpbmRfY3J0YyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIH0KPiAgCj4gIC8qKgo+IC0gKiBpbnRlbF9mYmNf dXBkYXRlIC0gZW5hYmxlL2Rpc2FibGUgRkJDIGFzIG5lZWRlZAo+ICsgKiBfX2ludGVsX2ZiY191 cGRhdGUgLSBlbmFibGUvZGlzYWJsZSBGQkMgYXMgbmVlZGVkLCB1bmxvY2tlZAo+ICAgKiBAZGV2 OiB0aGUgZHJtX2RldmljZQo+ICAgKgo+ICAgKiBTZXQgdXAgdGhlIGZyYW1lYnVmZmVyIGNvbXBy ZXNzaW9uIGhhcmR3YXJlIGF0IG1vZGUgc2V0IHRpbWUuICBXZQo+IEBAIC01MzQsNyArNTUxLDcg QEAgc3RhdGljIHN0cnVjdCBkcm1fY3J0YyAqaW50ZWxfZmJjX2ZpbmRfY3J0YyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAqCj4gICAqIFdlIG5lZWQgdG8gZW5hYmxlL2Rp c2FibGUgRkJDIG9uIGEgZ2xvYmFsIGJhc2lzLgo+ICAgKi8KPiAtdm9pZCBpbnRlbF9mYmNfdXBk YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3N0YXRpYyB2b2lkIF9faW50ZWxfZmJjX3Vw ZGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGRybV9jcnRjICpj cnRjID0gTlVMTDsKPiBAQCAtNTQ0LDYgKzU2MSw4IEBAIHZvaWQgaW50ZWxfZmJjX3VwZGF0ZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KmFkanVzdGVkX21vZGU7Cj4gIAl1bnNpZ25lZCBpbnQgbWF4X3dpZHRoLCBtYXhfaGVpZ2h0Owo+ ICAKPiArCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5mYmMubG9jayk7Cj4gKwo+ICAJ aWYgKCFIQVNfRkJDKGRldikpCj4gIAkJcmV0dXJuOwo+ICAKPiBAQCAtNjY1LDcgKzY4NCw3IEBA IHZvaWQgaW50ZWxfZmJjX3VwZGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCSAqIHNv bWUgcG9pbnQuIEFuZCB3ZSB3YWl0IGJlZm9yZSBlbmFibGluZyBGQkMgYW55d2F5Lgo+ICAJCSAq Lwo+ICAJCURSTV9ERUJVR19LTVMoImRpc2FibGluZyBhY3RpdmUgRkJDIGZvciB1cGRhdGVcbiIp Owo+IC0JCWludGVsX2ZiY19kaXNhYmxlKGRldik7Cj4gKwkJX19pbnRlbF9mYmNfZGlzYWJsZShk ZXYpOwo+ICAJfQo+ICAKPiAgCWludGVsX2ZiY19lbmFibGUoY3J0Yyk7Cj4gQEAgLTY3NiwxMSAr Njk1LDI2IEBAIG91dF9kaXNhYmxlOgo+ICAJLyogTXVsdGlwbGUgZGlzYWJsZXMgc2hvdWxkIGJl IGhhcm1sZXNzICovCj4gIAlpZiAoaW50ZWxfZmJjX2VuYWJsZWQoZGV2KSkgewo+ICAJCURSTV9E RUJVR19LTVMoInVuc3VwcG9ydGVkIGNvbmZpZywgZGlzYWJsaW5nIEZCQ1xuIik7Cj4gLQkJaW50 ZWxfZmJjX2Rpc2FibGUoZGV2KTsKPiArCQlfX2ludGVsX2ZiY19kaXNhYmxlKGRldik7Cj4gIAl9 Cj4gIAlpOTE1X2dlbV9zdG9sZW5fY2xlYW51cF9jb21wcmVzc2lvbihkZXYpOwo+ICB9Cj4gIAo+ ICsvKgo+ICsgKiBpbnRlbF9mYmNfdXBkYXRlIC0gZW5hYmxlL2Rpc2FibGUgRkJDIGFzIG5lZWRl ZAo+ICsgKiBAZGV2OiB0aGUgZHJtX2RldmljZQo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIHJl ZXZhbHVhdGVzIHRoZSBvdmVyYWxsIHN0YXRlIGFuZCBlbmFibGVzIG9yIGRpc2FibGVzIEZCQy4K PiArICovCj4gK3ZvaWQgaW50ZWxfZmJjX3VwZGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ICsKPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5mYmMubG9jayk7Cj4gKwlfX2ludGVs X2ZiY191cGRhdGUoZGV2KTsKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsK PiArfQo+ICsKPiAgdm9pZCBpbnRlbF9mYmNfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHMsCj4g IAkJCSAgZW51bSBmYl9vcF9vcmlnaW4gb3JpZ2luKQo+IEBAIC02OTEsNiArNzI1LDggQEAgdm9p ZCBpbnRlbF9mYmNfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gIAlpZiAob3JpZ2luID09IE9SSUdJTl9HVFQpCj4gIAkJcmV0dXJuOwo+ICAKPiArCW11dGV4 X2xvY2soJmRldl9wcml2LT5mYmMubG9jayk7Cj4gKwo+ICAJaWYgKGRldl9wcml2LT5mYmMuZW5h YmxlZCkKPiAgCQlmYmNfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkoZGV2X3ByaXYt PmZiYy5jcnRjLT5waXBlKTsKPiAgCWVsc2UgaWYgKGRldl9wcml2LT5mYmMuZmJjX3dvcmspCj4g QEAgLTcwMiw3ICs3MzgsOSBAQCB2b2lkIGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWRldl9wcml2LT5mYmMuYnVzeV9iaXRzIHw9IChm YmNfYml0cyAmIGZyb250YnVmZmVyX2JpdHMpOwo+ICAKPiAgCWlmIChkZXZfcHJpdi0+ZmJjLmJ1 c3lfYml0cykKPiAtCQlpbnRlbF9mYmNfZGlzYWJsZShkZXYpOwo+ICsJCV9faW50ZWxfZmJjX2Rp c2FibGUoZGV2KTsKPiArCj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5mYmMubG9jayk7Cj4g IH0KPiAgCj4gIHZvaWQgaW50ZWxfZmJjX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiBAQCAtNzEwLDEzICs3NDgsMTggQEAgdm9pZCBpbnRlbF9mYmNfZmx1c2goc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiAgCj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZmJj LmxvY2spOwo+ICsKPiAgCWlmICghZGV2X3ByaXYtPmZiYy5idXN5X2JpdHMpCj4gLQkJcmV0dXJu Owo+ICsJCWdvdG8gb3V0Owo+ICAKPiAgCWRldl9wcml2LT5mYmMuYnVzeV9iaXRzICY9IH5mcm9u dGJ1ZmZlcl9iaXRzOwo+ICAKPiAgCWlmICghZGV2X3ByaXYtPmZiYy5idXN5X2JpdHMpCj4gLQkJ aW50ZWxfZmJjX3VwZGF0ZShkZXYpOwo+ICsJCV9faW50ZWxfZmJjX3VwZGF0ZShkZXYpOwo+ICsK PiArb3V0Ogo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwo+ICB9Cj4gIAo+ ICAvKioKPiBAQCAtNzI5LDYgKzc3Miw4IEBAIHZvaWQgaW50ZWxfZmJjX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gIAllbnVtIHBpcGUgcGlwZTsKPiAgCj4g KwltdXRleF9pbml0KCZkZXZfcHJpdi0+ZmJjLmxvY2spOwo+ICsKPiAgCWlmICghSEFTX0ZCQyhk ZXZfcHJpdikpIHsKPiAgCQlkZXZfcHJpdi0+ZmJjLmVuYWJsZWQgPSBmYWxzZTsKPiAgCQlkZXZf cHJpdi0+ZmJjLm5vX2ZiY19yZWFzb24gPSBGQkNfVU5TVVBQT1JURUQ7Cj4gLS0gCj4gMi4xLjQK PiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IElu dGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4g aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoK LS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0 dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==