From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: Re: [PATCH] drm: Perform cmdline mode parsing during connector initialisation Date: Thu, 15 May 2014 12:35:29 -0700 Message-ID: <20140515123529.701d62d7@jbarnes-desktop> References: <1400147676-5061-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from gproxy2-pub.mail.unifiedlayer.com (gproxy2-pub.mail.unifiedlayer.com [69.89.18.3]) by gabe.freedesktop.org (Postfix) with SMTP id A6AF26E1E5 for ; Thu, 15 May 2014 12:35:27 -0700 (PDT) In-Reply-To: <1400147676-5061-1-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 Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAxNSBNYXkgMjAxNCAxMDo1NDozNiArMDEwMApDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4gd3JvdGU6Cgo+IGk5MTUua28gaGFzIGEgY3VzdG9tIGZiZGV2IGlu aXRpYWxpc2F0aW9uIHJvdXRpbmUgdGhhdCBhaW1zIHRvIHByZXNlcnZlCj4gdGhlIGN1cnJlbnQg bW9kZSBzZXQgYnkgdGhlIEJJT1MsIHVubGVzcyBvdmVycnVsZWQgYnkgdGhlIHVzZXIuIFRoZQo+ IHVzZXIncyB3aXNoZXMgYXJlIGRldGVybWluZWQgYnkgd2hhdCwgaWYgYW55LCBtb2RlIGlzIHNw ZWNpZmllZCBvbiB0aGUKPiBjb21tYW5kIGxpbmUgKHZpYSB0aGUgdmlkZW89IHBhcmFtZXRlciku IEhvd2V2ZXIsIHRoYXQgY29tbWFuZCBsaW5lIG1vZGUKPiBpcyBmaXJzdCBwYXJzZWQgYnkgZHJt X2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZygpIHdoaWNoIGlzIGNhbGxlZCBhZnRlcgo+IGk5MTUu a28ncyBjdXN0b20gaW5pdGlhbF9jb25maWcoKSBhcyBhIGZhbGxiYWNrIG1ldGhvZC4gU28gaW4g b3JkZXIgZm9yCj4gdXMgdG8gaG9ub3VyIGl0LCB3ZSBuZWVkIHRvIG1vdmUgdGhlIGNtZGxpbmUg cGFyc2VyIGVhcmxpZXIuIElmIHdlCj4gcGVyZm9ybSB0aGUgY29ubmVjdG9yIGNtZGxpbmUgcGFy c2luZyBhcyBzb29uIGFzIHdlIGluaXRpYWxpc2UgdGhlCj4gY29ubmVjdG9yLCB0aGF0IGNtZGxp bmUgbW9kZSBhbmQgZm9yY2VkIHN0YXR1cyBpcyB0aGVuIGF2YWlsYWJsZSBldmVuIGlmCj4gdGhl IGZiZGV2IGhlbHBlciBpcyBub3QgY29tcGlsZWQgaW4gb3IgbmV2ZXIgY2FsbGVkLgo+IAo+IFdl IGFsc28gdGhlbiBleHBvc2UgdGhlIGNtZGxpbmUgdXNlciBtb2RlIGluIHRoZSBjb25uZWN0b3Ig bW9kZSBsaXN0cy4KPiAKPiBCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9NzMxNTQKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlz QGNocmlzLXdpbHNvbi5jby51az4KPiBDYzogSmVzc2UgQmFybmVzIDxqYmFybmVzQHZpcnR1b3Vz Z2Vlay5vcmc+Cj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jICAgICAgICAgfCAgIDU2ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyAg ICB8ICAgNjQgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9kcm1fbW9kZXMuYyAgICAgICAgfCAgICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2Ry bV9wcm9iZV9oZWxwZXIuYyB8ICAgMTcgKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCAgIHwgICAgNSAtLS0KPiAgaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAgICAg ICAgICAgICB8ICAgIDEgKwo+ICBpbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmggICAgICAgIHwg ICAgMSAtCj4gIDcgZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgNjcgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9jcnRjLmMKPiBpbmRleCA0NjFkMTliLi45M2M5MTk4IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9jcnRjLmMKPiBAQCAtNzk5LDYgKzc5OSw2MCBAQCBzdGF0aWMgdm9pZCBkcm1fbW9kZV9yZW1v dmUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgfQo+ICAKPiAgLyoqCj4gKyAq IGRybV9jb25uZWN0b3JfZ2V0X2NtZGxpbmVfbW9kZSAtIHJlYWRzIHRoZSB1c2VyJ3MgY21kbGlu ZSBtb2RlCj4gKyAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciB0byBxdXdlcnkKPiArICogQG1vZGU6 IHJldHVybmVkIG1vZGUKPiArICoKPiArICogVGhlIGtlcm5lbCBzdXBwb3J0cyBwZXItY29ubmVj dG9yIGNvbmZpZ3JhdGlvbiBvZiBpdHMgY29uc29sZXMgdGhyb3VnaAo+ICsgKiB1c2Ugb2YgdGhl IHZpZGVvPSBwYXJhbWV0ZXIuIFRoaXMgZnVuY3Rpb24gcGFyc2VzIHRoYXQgb3B0aW9uIGFuZAo+ ICsgKiBleHRyYWN0cyB0aGUgdXNlcidzIHNwZWNpZmllZCBtb2RlIChvciBlbmFibGUvZGlzYWJs ZSBzdGF0dXMpIGZvciBhCj4gKyAqIHBhcnRpY3VsYXIgY29ubmVjdG9yLiBUaGlzIGlzIHR5cGlj YWxseSBvbmx5IHVzZWQgZHVyaW5nIHRoZSBlYXJseSBmYmRldgo+ICsgKiBzZXR1cC4KPiArICov Cj4gK3N0YXRpYyB2b2lkIGRybV9jb25uZWN0b3JfZ2V0X2NtZGxpbmVfbW9kZShzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2NtZGxpbmVfbW9kZSAq bW9kZSA9ICZjb25uZWN0b3ItPmNtZGxpbmVfbW9kZTsKPiArCWNoYXIgKm9wdGlvbiA9IE5VTEw7 Cj4gKwo+ICsJaWYgKGZiX2dldF9vcHRpb25zKGRybV9nZXRfY29ubmVjdG9yX25hbWUoY29ubmVj dG9yKSwgJm9wdGlvbikpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWlmICghZHJtX21vZGVfcGFyc2Vf Y29tbWFuZF9saW5lX2Zvcl9jb25uZWN0b3Iob3B0aW9uLAo+ICsJCQkJCQkgICAgICAgY29ubmVj dG9yLAo+ICsJCQkJCQkgICAgICAgbW9kZSkpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWlmIChtb2Rl LT5mb3JjZSkgewo+ICsJCWNvbnN0IGNoYXIgKnM7Cj4gKwo+ICsJCXN3aXRjaCAobW9kZS0+Zm9y Y2UpIHsKPiArCQljYXNlIERSTV9GT1JDRV9PRkY6Cj4gKwkJCXMgPSAiT0ZGIjsKPiArCQkJYnJl YWs7Cj4gKwkJY2FzZSBEUk1fRk9SQ0VfT05fRElHSVRBTDoKPiArCQkJcyA9ICJPTiAtIGRpZyI7 Cj4gKwkJCWJyZWFrOwo+ICsJCWRlZmF1bHQ6Cj4gKwkJY2FzZSBEUk1fRk9SQ0VfT046Cj4gKwkJ CXMgPSAiT04iOwo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwo+ICsJCURSTV9JTkZPKCJmb3JjaW5n ICVzIGNvbm5lY3RvciAlc1xuIiwKPiArCQkJIGRybV9nZXRfY29ubmVjdG9yX25hbWUoY29ubmVj dG9yKSwgcyk7Cj4gKwkJY29ubmVjdG9yLT5mb3JjZSA9IG1vZGUtPmZvcmNlOwo+ICsJfQo+ICsK PiArCURSTV9ERUJVR19LTVMoImNtZGxpbmUgbW9kZSBmb3IgY29ubmVjdG9yICVzICVkeCVkQCVk SHolcyVzJXNcbiIsCj4gKwkJICAgICAgZHJtX2dldF9jb25uZWN0b3JfbmFtZShjb25uZWN0b3Ip LAo+ICsJCSAgICAgIG1vZGUtPnhyZXMsIG1vZGUtPnlyZXMsCj4gKwkJICAgICAgbW9kZS0+cmVm cmVzaF9zcGVjaWZpZWQgPyBtb2RlLT5yZWZyZXNoIDogNjAsCj4gKwkJICAgICAgbW9kZS0+cmIg PyAiIHJlZHVjZWQgYmxhbmtpbmciIDogIiIsCj4gKwkJICAgICAgbW9kZS0+bWFyZ2lucyA/ICIg d2l0aCBtYXJnaW5zIiA6ICIiLAo+ICsJCSAgICAgIG1vZGUtPmludGVybGFjZSA/ICAiIGludGVy bGFjZWQiIDogIiIpOwo+ICt9Cj4gKwo+ICsvKioKPiAgICogZHJtX2Nvbm5lY3Rvcl9pbml0IC0g SW5pdCBhIHByZWFsbG9jYXRlZCBjb25uZWN0b3IKPiAgICogQGRldjogRFJNIGRldmljZQo+ICAg KiBAY29ubmVjdG9yOiB0aGUgY29ubmVjdG9yIHRvIGluaXQKPiBAQCAtODQyLDYgKzg5Niw4IEBA IGludCBkcm1fY29ubmVjdG9yX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCWNvbm5l Y3Rvci0+ZWRpZF9ibG9iX3B0ciA9IE5VTEw7Cj4gIAljb25uZWN0b3ItPnN0YXR1cyA9IGNvbm5l Y3Rvcl9zdGF0dXNfdW5rbm93bjsKPiAgCj4gKwlkcm1fY29ubmVjdG9yX2dldF9jbWRsaW5lX21v ZGUoY29ubmVjdG9yKTsKPiArCj4gIAlsaXN0X2FkZF90YWlsKCZjb25uZWN0b3ItPmhlYWQsICZk ZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0KTsKPiAgCWRldi0+bW9kZV9jb25maWcubnVt X2Nvbm5lY3RvcisrOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9o ZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiBpbmRleCBlOTVlZDU4 Li5jM2I1M2Y5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4gQEAgLTEwNSw2MCArMTA1 LDYgQEAgZmFpbDoKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfc2luZ2xlX2Fk ZF9hbGxfY29ubmVjdG9ycyk7Cj4gIAo+IC1zdGF0aWMgaW50IGRybV9mYl9oZWxwZXJfcGFyc2Vf Y29tbWFuZF9saW5lKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpCj4gLXsKPiAtCXN0 cnVjdCBkcm1fZmJfaGVscGVyX2Nvbm5lY3RvciAqZmJfaGVscGVyX2Nvbm47Cj4gLQlpbnQgaTsK PiAtCj4gLQlmb3IgKGkgPSAwOyBpIDwgZmJfaGVscGVyLT5jb25uZWN0b3JfY291bnQ7IGkrKykg ewo+IC0JCXN0cnVjdCBkcm1fY21kbGluZV9tb2RlICptb2RlOwo+IC0JCXN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3I7Cj4gLQkJY2hhciAqb3B0aW9uID0gTlVMTDsKPiAtCj4gLQkJZmJf aGVscGVyX2Nvbm4gPSBmYl9oZWxwZXItPmNvbm5lY3Rvcl9pbmZvW2ldOwo+IC0JCWNvbm5lY3Rv ciA9IGZiX2hlbHBlcl9jb25uLT5jb25uZWN0b3I7Cj4gLQkJbW9kZSA9ICZmYl9oZWxwZXJfY29u bi0+Y21kbGluZV9tb2RlOwo+IC0KPiAtCQkvKiBkbyBzb21ldGhpbmcgb24gcmV0dXJuIC0gdHVy biBvZmYgY29ubmVjdG9yIG1heWJlICovCj4gLQkJaWYgKGZiX2dldF9vcHRpb25zKGRybV9nZXRf Y29ubmVjdG9yX25hbWUoY29ubmVjdG9yKSwgJm9wdGlvbikpCj4gLQkJCWNvbnRpbnVlOwo+IC0K PiAtCQlpZiAoZHJtX21vZGVfcGFyc2VfY29tbWFuZF9saW5lX2Zvcl9jb25uZWN0b3Iob3B0aW9u LAo+IC0JCQkJCQkJICAgICAgY29ubmVjdG9yLAo+IC0JCQkJCQkJICAgICAgbW9kZSkpIHsKPiAt CQkJaWYgKG1vZGUtPmZvcmNlKSB7Cj4gLQkJCQljb25zdCBjaGFyICpzOwo+IC0JCQkJc3dpdGNo IChtb2RlLT5mb3JjZSkgewo+IC0JCQkJY2FzZSBEUk1fRk9SQ0VfT0ZGOgo+IC0JCQkJCXMgPSAi T0ZGIjsKPiAtCQkJCQlicmVhazsKPiAtCQkJCWNhc2UgRFJNX0ZPUkNFX09OX0RJR0lUQUw6Cj4g LQkJCQkJcyA9ICJPTiAtIGRpZyI7Cj4gLQkJCQkJYnJlYWs7Cj4gLQkJCQlkZWZhdWx0Ogo+IC0J CQkJY2FzZSBEUk1fRk9SQ0VfT046Cj4gLQkJCQkJcyA9ICJPTiI7Cj4gLQkJCQkJYnJlYWs7Cj4g LQkJCQl9Cj4gLQo+IC0JCQkJRFJNX0lORk8oImZvcmNpbmcgJXMgY29ubmVjdG9yICVzXG4iLAo+ IC0JCQkJCSBkcm1fZ2V0X2Nvbm5lY3Rvcl9uYW1lKGNvbm5lY3RvciksIHMpOwo+IC0JCQkJY29u bmVjdG9yLT5mb3JjZSA9IG1vZGUtPmZvcmNlOwo+IC0JCQl9Cj4gLQo+IC0JCQlEUk1fREVCVUdf S01TKCJjbWRsaW5lIG1vZGUgZm9yIGNvbm5lY3RvciAlcyAlZHglZEAlZEh6JXMlcyVzXG4iLAo+ IC0JCQkJICAgICAgZHJtX2dldF9jb25uZWN0b3JfbmFtZShjb25uZWN0b3IpLAo+IC0JCQkJICAg ICAgbW9kZS0+eHJlcywgbW9kZS0+eXJlcywKPiAtCQkJCSAgICAgIG1vZGUtPnJlZnJlc2hfc3Bl Y2lmaWVkID8gbW9kZS0+cmVmcmVzaCA6IDYwLAo+IC0JCQkJICAgICAgbW9kZS0+cmIgPyAiIHJl ZHVjZWQgYmxhbmtpbmciIDogIiIsCj4gLQkJCQkgICAgICBtb2RlLT5tYXJnaW5zID8gIiB3aXRo IG1hcmdpbnMiIDogIiIsCj4gLQkJCQkgICAgICBtb2RlLT5pbnRlcmxhY2UgPyAgIiBpbnRlcmxh Y2VkIiA6ICIiKTsKPiAtCQl9Cj4gLQo+IC0JfQo+IC0JcmV0dXJuIDA7Cj4gLX0KPiAtCj4gIHN0 YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfc2F2ZV9sdXRfYXRvbWljKHN0cnVjdCBkcm1fY3J0YyAq Y3J0Yywgc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcikKPiAgewo+ICAJdWludDE2X3QgKnJf YmFzZSwgKmdfYmFzZSwgKmJfYmFzZTsKPiBAQCAtOTEwLDcgKzg1Niw3IEBAIHN0YXRpYyBpbnQg ZHJtX2ZiX2hlbHBlcl9zaW5nbGVfZmJfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hl bHBlciwKPiAgCQlzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9jb25uZWN0b3IgKmZiX2hlbHBlcl9jb25u ID0gZmJfaGVscGVyLT5jb25uZWN0b3JfaW5mb1tpXTsKPiAgCQlzdHJ1Y3QgZHJtX2NtZGxpbmVf bW9kZSAqY21kbGluZV9tb2RlOwo+ICAKPiAtCQljbWRsaW5lX21vZGUgPSAmZmJfaGVscGVyX2Nv bm4tPmNtZGxpbmVfbW9kZTsKPiArCQljbWRsaW5lX21vZGUgPSAmZmJfaGVscGVyX2Nvbm4tPmNv bm5lY3Rvci0+Y21kbGluZV9tb2RlOwo+ICAKPiAgCQlpZiAoY21kbGluZV9tb2RlLT5icHBfc3Bl Y2lmaWVkKSB7Cj4gIAkJCXN3aXRjaCAoY21kbGluZV9tb2RlLT5icHApIHsKPiBAQCAtMTE1OCw5 ICsxMTA0LDcgQEAgRVhQT1JUX1NZTUJPTChkcm1faGFzX3ByZWZlcnJlZF9tb2RlKTsKPiAgCj4g IHN0YXRpYyBib29sIGRybV9oYXNfY21kbGluZV9tb2RlKHN0cnVjdCBkcm1fZmJfaGVscGVyX2Nv bm5lY3RvciAqZmJfY29ubmVjdG9yKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2NtZGxpbmVfbW9kZSAq Y21kbGluZV9tb2RlOwo+IC0JY21kbGluZV9tb2RlID0gJmZiX2Nvbm5lY3Rvci0+Y21kbGluZV9t b2RlOwo+IC0JcmV0dXJuIGNtZGxpbmVfbW9kZS0+c3BlY2lmaWVkOwo+ICsJcmV0dXJuIGZiX2Nv bm5lY3Rvci0+Y29ubmVjdG9yLT5jbWRsaW5lX21vZGUuc3BlY2lmaWVkOwo+ICB9Cj4gIAo+ICBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZHJtX3BpY2tfY21kbGluZV9tb2RlKHN0cnVjdCBkcm1f ZmJfaGVscGVyX2Nvbm5lY3RvciAqZmJfaGVscGVyX2Nvbm4sCj4gQEAgLTExNzAsNyArMTExNCw3 IEBAIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpkcm1fcGlja19jbWRsaW5lX21vZGUoc3RydWN0 IGRybV9mYl9oZWxwZXJfY29ubmVjdG9yICpmCj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZSA9IE5VTEw7Cj4gIAlib29sIHByZWZlcl9ub25faW50ZXJsYWNlOwo+ICAKPiAtCWNtZGxp bmVfbW9kZSA9ICZmYl9oZWxwZXJfY29ubi0+Y21kbGluZV9tb2RlOwo+ICsJY21kbGluZV9tb2Rl ID0gJmZiX2hlbHBlcl9jb25uLT5jb25uZWN0b3ItPmNtZGxpbmVfbW9kZTsKPiAgCWlmIChjbWRs aW5lX21vZGUtPnNwZWNpZmllZCA9PSBmYWxzZSkKPiAgCQlyZXR1cm4gbW9kZTsKPiAgCj4gQEAg LTE1NTUsOCArMTQ5OSw2IEBAIGJvb2wgZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZyhzdHJ1 Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLCBpbnQgYnBwX3NlbCkKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBmYl9oZWxwZXItPmRldjsKPiAgCWludCBjb3VudCA9IDA7Cj4gIAo+IC0J ZHJtX2ZiX2hlbHBlcl9wYXJzZV9jb21tYW5kX2xpbmUoZmJfaGVscGVyKTsKPiAtCj4gIAltdXRl eF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiAgCWNvdW50ID0gZHJtX2ZiX2hlbHBl cl9wcm9iZV9jb25uZWN0b3JfbW9kZXMoZmJfaGVscGVyLAo+ICAJCQkJCQkgICAgZGV2LT5tb2Rl X2NvbmZpZy5tYXhfd2lkdGgsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9k ZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYwo+IGluZGV4IGJlZGYxODkuLmQxYjdk MjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jCj4gQEAgLTEyNTksNiArMTI1OSw3IEBAIGRybV9tb2Rl X2NyZWF0ZV9mcm9tX2NtZGxpbmVfbW9kZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJaWYg KCFtb2RlKQo+ICAJCXJldHVybiBOVUxMOwo+ICAKPiArCW1vZGUtPnR5cGUgfD0gRFJNX01PREVf VFlQRV9VU0VSREVGOwo+ICAJZHJtX21vZGVfc2V0X2NydGNpbmZvKG1vZGUsIENSVENfSU5URVJM QUNFX0hBTFZFX1YpOwo+ICAJcmV0dXJuIG1vZGU7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVf aGVscGVyLmMKPiBpbmRleCA3OWYwN2YyLi4wMDZlM2Y5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3By b2JlX2hlbHBlci5jCj4gQEAgLTgyLDYgKzgyLDIyIEBAIHN0YXRpYyB2b2lkIGRybV9tb2RlX3Zh bGlkYXRlX2ZsYWcoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCXJldHVybjsK PiAgfQo+ICAKPiArc3RhdGljIGludCBkcm1faGVscGVyX3Byb2JlX2FkZF9jbWRsaW5lX21vZGUo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKm1vZGU7Cj4gKwo+ICsJaWYgKCFjb25uZWN0b3ItPmNtZGxpbmVfbW9kZS5zcGVj aWZpZWQpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJbW9kZSA9IGRybV9tb2RlX2NyZWF0ZV9mcm9t X2NtZGxpbmVfbW9kZShjb25uZWN0b3ItPmRldiwKPiArCQkJCQkJICZjb25uZWN0b3ItPmNtZGxp bmVfbW9kZSk7Cj4gKwlpZiAobW9kZSA9PSBOVUxMKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWRy bV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKPiArCXJldHVybiAxOwo+ICt9Cj4g Kwo+ICBzdGF0aWMgaW50IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2Rlc19t ZXJnZV9iaXRzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAkJCQkJCQkgICAg ICB1aW50MzJfdCBtYXhYLCB1aW50MzJfdCBtYXhZLCBib29sIG1lcmdlX3R5cGVfYml0cykKPiAg ewo+IEBAIC0xMzQsNiArMTUwLDcgQEAgc3RhdGljIGludCBkcm1faGVscGVyX3Byb2JlX3Npbmds ZV9jb25uZWN0b3JfbW9kZXNfbWVyZ2VfYml0cyhzdHJ1Y3QgZHJtX2Nvbm5lY3QKPiAgCj4gIAlp ZiAoY291bnQgPT0gMCAmJiBjb25uZWN0b3ItPnN0YXR1cyA9PSBjb25uZWN0b3Jfc3RhdHVzX2Nv bm5lY3RlZCkKPiAgCQljb3VudCA9IGRybV9hZGRfbW9kZXNfbm9lZGlkKGNvbm5lY3RvciwgMTAy NCwgNzY4KTsKPiArCWNvdW50ICs9IGRybV9oZWxwZXJfcHJvYmVfYWRkX2NtZGxpbmVfbW9kZShj b25uZWN0b3IpOwo+ICAJaWYgKGNvdW50ID09IDApCj4gIAkJZ290byBwcnVuZTsKPiAgCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCAzMmE3NGUxLi5mMzhmOTQxIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtODI4LDcgKzgyOCw2IEBAIHZvaWQgaW50ZWxfZHZv X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIC8qIGxlZ2FjeSBmYmRldiBlbXVsYXRp b24gaW4gaW50ZWxfZmJkZXYuYyAqLwo+ICAjaWZkZWYgQ09ORklHX0RSTV9JOTE1X0ZCREVWCj4g IGV4dGVybiBpbnQgaW50ZWxfZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAt ZXh0ZXJuIHZvaWQgaW50ZWxfZmJkZXZfaW5pdGlhbF9jb25maWcoc3RydWN0IGRybV9kZXZpY2Ug KmRldik7Cj4gIGV4dGVybiB2b2lkIGludGVsX2ZiZGV2X2Zpbmkoc3RydWN0IGRybV9kZXZpY2Ug KmRldik7Cj4gIGV4dGVybiB2b2lkIGludGVsX2ZiZGV2X3NldF9zdXNwZW5kKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIGludCBzdGF0ZSk7Cj4gIGV4dGVybiB2b2lkIGludGVsX2ZiZGV2X291dHB1 dF9wb2xsX2NoYW5nZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gQEAgLTgzOSwxMCArODM4 LDYgQEAgc3RhdGljIGlubGluZSBpbnQgaW50ZWxfZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBpbnRl bF9mYmRldl9pbml0aWFsX2NvbmZpZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IC17Cj4gLX0K PiAtCj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9mYmRldl9maW5pKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gIHsKPiAgfQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5o IGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+IGluZGV4IGMwNjFiYjMuLjRkZGUxZmIgMTAwNjQ0 Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9j cnRjLmgKPiBAQCAtNTA4LDYgKzUwOCw3IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yIHsKPiAgCXZv aWQgKmhlbHBlcl9wcml2YXRlOwo+ICAKPiAgCS8qIGZvcmNlZCBvbiBjb25uZWN0b3IgKi8KPiAr CXN0cnVjdCBkcm1fY21kbGluZV9tb2RlIGNtZGxpbmVfbW9kZTsKPiAgCWVudW0gZHJtX2Nvbm5l Y3Rvcl9mb3JjZSBmb3JjZTsKPiAgCXVpbnQzMl90IGVuY29kZXJfaWRzW0RSTV9DT05ORUNUT1Jf TUFYX0VOQ09ERVJdOwo+ICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOyAvKiBjdXJyZW50 bHkgYWN0aXZlIGVuY29kZXIgKi8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2ZiX2hl bHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCj4gaW5kZXggNmU2MjJmNy4uYThh ZTFiOSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmgKPiArKysgYi9p bmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmgKPiBAQCAtNzcsNyArNzcsNiBAQCBzdHJ1Y3QgZHJt X2ZiX2hlbHBlcl9mdW5jcyB7Cj4gIAo+ICBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9jb25uZWN0b3Ig ewo+ICAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiAtCXN0cnVjdCBkcm1fY21k bGluZV9tb2RlIGNtZGxpbmVfbW9kZTsKPiAgfTsKPiAgCj4gIHN0cnVjdCBkcm1fZmJfaGVscGVy IHsKCkxvb2tzIG9rLi4uIGl0IG1peGVzIHRvZ2V0aGVyIHRoaW5ncyB0aGF0IGNvdWxkIGJlIGlu IHNlcGFyYXRlIHBhdGNoZXMKKGxpa2UgdGhlIHVzZXJkZWYgZml4KSwgYnV0IG92ZXJhbGwgSSB0 aGluayBpdCdzIGFuIGltcHJvdmVtZW50LgoKUmV2aWV3ZWQtYnk6IEplc3NlIEJhcm5lcyA8amJh cm5lc0B2aXJ0dW91c2dlZWsub3JnPgoKLS0gCkplc3NlIEJhcm5lcywgSW50ZWwgT3BlbiBTb3Vy Y2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK