From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Subject: Re: [PATCH v2] drm/fb-helper: Propagate errors from initial config failure Date: Fri, 19 Dec 2014 11:39:16 +0100 Message-ID: <54940054.70908@amd.com> References: <1418984492-6598-1-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0135.outbound.protection.outlook.com [157.56.111.135]) by gabe.freedesktop.org (Postfix) with ESMTP id 35EF26E4AF for ; Fri, 19 Dec 2014 03:13:48 -0800 (PST) In-Reply-To: <1418984492-6598-1-git-send-email-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding , dri-devel@lists.freedesktop.org Cc: Daniel Vetter , Tomi Valkeinen , Ben Skeggs , Alex Deucher List-Id: dri-devel@lists.freedesktop.org QW0gMTkuMTIuMjAxNCB1bSAxMToyMSBzY2hyaWViIFRoaWVycnkgUmVkaW5nOgo+IEZyb206IFRo aWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+Cj4KPiBNYWtlIGRybV9mYl9oZWxwZXJf aW5pdGlhbF9jb25maWcoKSByZXR1cm4gYW4gaW50IHJhdGhlciB0aGFuIGEgYm9vbCBzbwo+IHRo YXQgdGhlIGVycm9yIGNhbiBiZSBwcm9wZXJseSBwcm9wYWdhdGVkLiBXaGlsZSBhdCBpdCwgdXBk YXRlIGRyaXZlcnMKPiB0byBwcm9wYWdhdGUgZXJyb3JzIGZ1cnRoZXIgcmF0aGVyIHRoYW4ganVz dCBpZ25vcmUgdGhlbS4KPgo+IHYyOgo+IC0gY2lycnVzOiBObyBjbGVhbnVwIGlzIHJlcXVpcmVk LCB0aGUgdG9wLWxldmVsIGNpcnJ1c19kcml2ZXJfbG9hZCgpCj4gICAgd2lsbCBkbyBpdCBhcyBw YXJ0IG9mIGNpcnJ1c19kcml2ZXJfdW5sb2FkKCkgaW4gaXRzIGNsZWFudXAgcGF0aC4KPiAgICBS ZXBvcnRlZC1ieTogRmVuZ2d1YW5nIFd1IDxmZW5nZ3Vhbmcud3VAaW50ZWwuY29tPgo+Cj4gQ2M6 IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBmZndsbC5jaD4KPiBDYzogUGF0cmlrIEpha29ic3NvbiA8cGF0cmlrLnIuamFr b2Jzc29uQGdtYWlsLmNvbT4KPiBDYzogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgo+ IENjOiBUb21pIFZhbGtlaW5lbiA8dG9taS52YWxrZWluZW5AdGkuY29tPgo+IENjOiBBbGV4IERl dWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Cj4gQ2M6IENocmlzdGlhbiBLw7ZuaWcg PGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPiBDYzogQmVuIFNrZWdncyA8YnNrZWdnc0ByZWRo YXQuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5j b20+Cj4gUmV2aWV3ZWQtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNv bT4KPiBSZXZpZXdlZC1ieTogUGF0cmlrIEpha29ic3NvbiA8cGF0cmlrLnIuamFrb2Jzc29uQGdt YWlsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZm d2xsLmNoPgoKUmV2aWV3ZWQtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdA YW1kLmNvbT4KCj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9mYi5jICAgICAgICAg ICAgfCAyMSArKysrKysrKysrKysrKystLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9ib2Nocy9i b2Noc19mYmRldi5jICAgICB8IDE0ICsrKysrKysrKysrKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0v Y2lycnVzL2NpcnJ1c19mYmRldi5jICAgfCAxNCArKysrKysrKystLS0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL2RybV9mYl9oZWxwZXIuYyAgICAgICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9nbWE1MDAvZnJhbWVidWZmZXIuYyAgICB8IDIyICsrKysrKysrKysrKysrKysrKy0tLS0KPiAg IGRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfZmIuYyAgICB8IDEyICsrKysrKysrKyst LQo+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmJkZXYuYyAgICAgICAgIHwgMTAgKysrKysr KystLQo+ICAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mYmNvbi5jIHwgMjEgKysr KysrKysrKysrKysrLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2ZiZGV2 LmMgICAgfCAxMCArKysrKysrKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9mYi5jICAg ICAgICAgICAgfCAyMiArKysrKysrKysrKysrKysrLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9mYi5jICAgICAgfCAyMSArKysrKysrKysrKysrKystLS0tLS0KPiAgIGRy aXZlcnMvZ3B1L2RybS91ZGwvdWRsX2ZiLmMgICAgICAgICAgICB8IDIyICsrKysrKysrKysrKysr Ky0tLS0tLS0KPiAgIGluY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaCAgICAgICAgICAgICB8ICAy ICstCj4gICAxMyBmaWxlcyBjaGFuZ2VkLCAxNDMgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25z KC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZmIuYyBiL2RyaXZl cnMvZ3B1L2RybS9hc3QvYXN0X2ZiLmMKPiBpbmRleCA1YzYwYWU1MjRjNDUuLmZmNjhlZWZhZTI3 MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9mYi5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FzdC9hc3RfZmIuYwo+IEBAIC0zMzUsMTggKzMzNSwyNyBAQCBpbnQgYXN0 X2ZiZGV2X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAo+ICAgCXJldCA9IGRybV9m Yl9oZWxwZXJfaW5pdChkZXYsICZhZmJkZXYtPmhlbHBlciwKPiAgIAkJCQkgMSwgMSk7Cj4gLQlp ZiAocmV0KSB7Cj4gLQkJa2ZyZWUoYWZiZGV2KTsKPiAtCQlyZXR1cm4gcmV0Owo+IC0JfQo+ICsJ aWYgKHJldCkKPiArCQlnb3RvIGZyZWU7Cj4gICAKPiAtCWRybV9mYl9oZWxwZXJfc2luZ2xlX2Fk ZF9hbGxfY29ubmVjdG9ycygmYWZiZGV2LT5oZWxwZXIpOwo+ICsJcmV0ID0gZHJtX2ZiX2hlbHBl cl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKCZhZmJkZXYtPmhlbHBlcik7Cj4gKwlpZiAocmV0 KQo+ICsJCWdvdG8gZmluaTsKPiAgIAo+ICAgCS8qIGRpc2FibGUgYWxsIHRoZSBwb3NzaWJsZSBv dXRwdXRzL2NydGNzIGJlZm9yZSBlbnRlcmluZyBLTVMgbW9kZSAqLwo+ICAgCWRybV9oZWxwZXJf ZGlzYWJsZV91bnVzZWRfZnVuY3Rpb25zKGRldik7Cj4gICAKPiAtCWRybV9mYl9oZWxwZXJfaW5p dGlhbF9jb25maWcoJmFmYmRldi0+aGVscGVyLCAzMik7Cj4gKwlyZXQgPSBkcm1fZmJfaGVscGVy X2luaXRpYWxfY29uZmlnKCZhZmJkZXYtPmhlbHBlciwgMzIpOwo+ICsJaWYgKHJldCkKPiArCQln b3RvIGZpbmk7Cj4gKwo+ICAgCXJldHVybiAwOwo+ICsKPiArZmluaToKPiArCWRybV9mYl9oZWxw ZXJfZmluaSgmYWZiZGV2LT5oZWxwZXIpOwo+ICtmcmVlOgo+ICsJa2ZyZWUoYWZiZGV2KTsKPiAr CXJldHVybiByZXQ7Cj4gICB9Cj4gICAKPiAgIHZvaWQgYXN0X2ZiZGV2X2Zpbmkoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hz X2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfZmJkZXYuYwo+IGluZGV4IDYx ZGJmMDlkZmY1ZC4uOTc2ZDk3OThkYzk5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9i b2Nocy9ib2Noc19mYmRldi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JvY2hzL2JvY2hzX2Zi ZGV2LmMKPiBAQCAtMjA3LDEyICsyMDcsMjIgQEAgaW50IGJvY2hzX2ZiZGV2X2luaXQoc3RydWN0 IGJvY2hzX2RldmljZSAqYm9jaHMpCj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPiAg IAo+IC0JZHJtX2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKCZib2Nocy0+ZmIu aGVscGVyKTsKPiArCXJldCA9IGRybV9mYl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxfY29ubmVjdG9y cygmYm9jaHMtPmZiLmhlbHBlcik7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZmluaTsKPiArCj4g ICAJZHJtX2hlbHBlcl9kaXNhYmxlX3VudXNlZF9mdW5jdGlvbnMoYm9jaHMtPmRldik7Cj4gLQlk cm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKCZib2Nocy0+ZmIuaGVscGVyLCAzMik7Cj4gKwo+ ICsJcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZygmYm9jaHMtPmZiLmhlbHBlciwg MzIpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGZpbmk7Cj4gICAKPiAgIAlib2Nocy0+ZmIuaW5p dGlhbGl6ZWQgPSB0cnVlOwo+ICAgCXJldHVybiAwOwo+ICsKPiArZmluaToKPiArCWRybV9mYl9o ZWxwZXJfZmluaSgmYm9jaHMtPmZiLmhlbHBlcik7Cj4gKwlyZXR1cm4gcmV0Owo+ICAgfQo+ICAg Cj4gICB2b2lkIGJvY2hzX2ZiZGV2X2Zpbmkoc3RydWN0IGJvY2hzX2RldmljZSAqYm9jaHMpCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2ZiZGV2LmMgYi9kcml2 ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19mYmRldi5jCj4gaW5kZXggNTAyYTg5ZWI1NGI1Li41 ZjM0ZDdlMjUyZDMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNf ZmJkZXYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2ZiZGV2LmMKPiBA QCAtMzE3LDE1ICszMTcsMTkgQEAgaW50IGNpcnJ1c19mYmRldl9pbml0KHN0cnVjdCBjaXJydXNf ZGV2aWNlICpjZGV2KQo+ICAgCj4gICAJcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0KGNkZXYtPmRl diwgJmdmYmRldi0+aGVscGVyLAo+ICAgCQkJCSBjZGV2LT5udW1fY3J0YywgQ0lSUlVTRkJfQ09O Tl9MSU1JVCk7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJa2ZyZWUoZ2ZiZGV2KTsKPiArCWlmIChyZXQp Cj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlyZXQgPSBkcm1fZmJfaGVscGVyX3NpbmdsZV9hZGRf YWxsX2Nvbm5lY3RvcnMoJmdmYmRldi0+aGVscGVyKTsKPiArCWlmIChyZXQpCj4gICAJCXJldHVy biByZXQ7Cj4gLQl9Cj4gLQlkcm1fZmJfaGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5lY3RvcnMo JmdmYmRldi0+aGVscGVyKTsKPiAgIAo+ICAgCS8qIGRpc2FibGUgYWxsIHRoZSBwb3NzaWJsZSBv dXRwdXRzL2NydGNzIGJlZm9yZSBlbnRlcmluZyBLTVMgbW9kZSAqLwo+ICAgCWRybV9oZWxwZXJf ZGlzYWJsZV91bnVzZWRfZnVuY3Rpb25zKGNkZXYtPmRldik7Cj4gLQlkcm1fZmJfaGVscGVyX2lu aXRpYWxfY29uZmlnKCZnZmJkZXYtPmhlbHBlciwgYnBwX3NlbCk7Cj4gKwo+ICsJcmV0ID0gZHJt X2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZygmZ2ZiZGV2LT5oZWxwZXIsIGJwcF9zZWwpOwo+ICsJ aWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICAgCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2ZiX2hlbHBlci5jCj4gaW5kZXggNTJjZTI2ZDZiNGZiLi44NzZmMWVmMGFjZDEgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiBAQCAtMTY4OCw3ICsxNjg4LDcgQEAgb3V0Ogo+ ICAgICogUkVUVVJOUzoKPiAgICAqIFplcm8gaWYgZXZlcnl0aGluZyB3ZW50IG9rLCBub256ZXJv IG90aGVyd2lzZS4KPiAgICAqLwo+IC1ib29sIGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWco c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwgaW50IGJwcF9zZWwpCj4gK2ludCBkcm1f ZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIs IGludCBicHBfc2VsKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmYl9oZWxw ZXItPmRldjsKPiAgIAlpbnQgY291bnQgPSAwOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZ21hNTAwL2ZyYW1lYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2ZyYW1lYnVm ZmVyLmMKPiBpbmRleCBkZGQ5MGRkYmMyMDAuLjJkNDJjZTZkMzc1NyAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vZ21hNTAwL2ZyYW1lYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vZ21hNTAwL2ZyYW1lYnVmZmVyLmMKPiBAQCAtNTkzLDYgKzU5Myw3IEBAIGludCBwc2JfZmJk ZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgewo+ICAgCXN0cnVjdCBwc2JfZmJk ZXYgKmZiZGV2Owo+ICAgCXN0cnVjdCBkcm1fcHNiX3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiArCWludCByZXQ7Cj4gICAKPiAgIAlmYmRldiA9IGt6YWxsb2Moc2l6ZW9m KHN0cnVjdCBwc2JfZmJkZXYpLCBHRlBfS0VSTkVMKTsKPiAgIAlpZiAoIWZiZGV2KSB7Cj4gQEAg LTYwNCwxNiArNjA1LDI5IEBAIGludCBwc2JfZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICAgCj4gICAJZHJtX2ZiX2hlbHBlcl9wcmVwYXJlKGRldiwgJmZiZGV2LT5wc2JfZmJf aGVscGVyLCAmcHNiX2ZiX2hlbHBlcl9mdW5jcyk7Cj4gICAKPiAtCWRybV9mYl9oZWxwZXJfaW5p dChkZXYsICZmYmRldi0+cHNiX2ZiX2hlbHBlciwgZGV2X3ByaXYtPm9wcy0+Y3J0Y3MsCj4gLQkJ CQkJCQlJTlRFTEZCX0NPTk5fTElNSVQpOwo+ICsJcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0KGRl diwgJmZiZGV2LT5wc2JfZmJfaGVscGVyLAo+ICsJCQkJIGRldl9wcml2LT5vcHMtPmNydGNzLCBJ TlRFTEZCX0NPTk5fTElNSVQpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGZyZWU7Cj4gICAKPiAt CWRybV9mYl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxfY29ubmVjdG9ycygmZmJkZXYtPnBzYl9mYl9o ZWxwZXIpOwo+ICsJcmV0ID0gZHJtX2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3Jz KCZmYmRldi0+cHNiX2ZiX2hlbHBlcik7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZmluaTsKPiAg IAo+ICAgCS8qIGRpc2FibGUgYWxsIHRoZSBwb3NzaWJsZSBvdXRwdXRzL2NydGNzIGJlZm9yZSBl bnRlcmluZyBLTVMgbW9kZSAqLwo+ICAgCWRybV9oZWxwZXJfZGlzYWJsZV91bnVzZWRfZnVuY3Rp b25zKGRldik7Cj4gICAKPiAtCWRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoJmZiZGV2LT5w c2JfZmJfaGVscGVyLCAzMik7Cj4gKwlyZXQgPSBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmln KCZmYmRldi0+cHNiX2ZiX2hlbHBlciwgMzIpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGZpbmk7 Cj4gKwo+ICAgCXJldHVybiAwOwo+ICsKPiArZmluaToKPiArCWRybV9mYl9oZWxwZXJfZmluaSgm ZmJkZXYtPnBzYl9mYl9oZWxwZXIpOwo+ICtmcmVlOgo+ICsJa2ZyZWUoZmJkZXYpOwo+ICsJcmV0 dXJuIHJldDsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgcHNiX2ZiZGV2X2Zpbmkoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAv bWdhZzIwMF9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9mYi5jCj4gaW5k ZXggNDQxNWFmMzY2NmFiLi5jMzZiODMwNDA0MmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21nYWcyMDAvbWdhZzIwMF9mYi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAv bWdhZzIwMF9mYi5jCj4gQEAgLTMwMywxNCArMzAzLDIyIEBAIGludCBtZ2FnMjAwX2ZiZGV2X2lu aXQoc3RydWN0IG1nYV9kZXZpY2UgKm1kZXYpCj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJl dDsKPiAgIAo+IC0JZHJtX2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKCZtZmJk ZXYtPmhlbHBlcik7Cj4gKwlyZXQgPSBkcm1fZmJfaGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5l Y3RvcnMoJm1mYmRldi0+aGVscGVyKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBmaW5pOwo+ICAg Cj4gICAJLyogZGlzYWJsZSBhbGwgdGhlIHBvc3NpYmxlIG91dHB1dHMvY3J0Y3MgYmVmb3JlIGVu dGVyaW5nIEtNUyBtb2RlICovCj4gICAJZHJtX2hlbHBlcl9kaXNhYmxlX3VudXNlZF9mdW5jdGlv bnMobWRldi0+ZGV2KTsKPiAgIAo+IC0JZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZygmbWZi ZGV2LT5oZWxwZXIsIGJwcF9zZWwpOwo+ICsJcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2Nv bmZpZygmbWZiZGV2LT5oZWxwZXIsIGJwcF9zZWwpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGZp bmk7Cj4gICAKPiAgIAlyZXR1cm4gMDsKPiArCj4gK2Zpbmk6Cj4gKwlkcm1fZmJfaGVscGVyX2Zp bmkoJm1mYmRldi0+aGVscGVyKTsKPiArCXJldHVybiByZXQ7Cj4gICB9Cj4gICAKPiAgIHZvaWQg bWdhZzIwMF9mYmRldl9maW5pKHN0cnVjdCBtZ2FfZGV2aWNlICptZGV2KQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZmJkZXYuYwo+IGluZGV4IDk0ZDU1ZTUyNmI0ZS4uNGM5NDY3ZDkxYWRkIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZiZGV2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9mYmRldi5jCj4gQEAgLTI0MiwxNyArMjQyLDIzIEBAIHN0cnVjdCBkcm1fZmJf aGVscGVyICptc21fZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCQlnb3Rv IGZhaWw7Cj4gICAJfQo+ICAgCj4gLQlkcm1fZmJfaGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5l Y3RvcnMoaGVscGVyKTsKPiArCXJldCA9IGRybV9mYl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxfY29u bmVjdG9ycyhoZWxwZXIpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGZpbmk7Cj4gICAKPiAgIAkv KiBkaXNhYmxlIGFsbCB0aGUgcG9zc2libGUgb3V0cHV0cy9jcnRjcyBiZWZvcmUgZW50ZXJpbmcg S01TIG1vZGUgKi8KPiAgIAlkcm1faGVscGVyX2Rpc2FibGVfdW51c2VkX2Z1bmN0aW9ucyhkZXYp Owo+ICAgCj4gLQlkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKGhlbHBlciwgMzIpOwo+ICsJ cmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZyhoZWxwZXIsIDMyKTsKPiArCWlmIChy ZXQpCj4gKwkJZ290byBmaW5pOwo+ICAgCj4gICAJcHJpdi0+ZmJkZXYgPSBoZWxwZXI7Cj4gICAK PiAgIAlyZXR1cm4gaGVscGVyOwo+ICAgCj4gK2Zpbmk6Cj4gKwlkcm1fZmJfaGVscGVyX2Zpbmko aGVscGVyKTsKPiAgIGZhaWw6Cj4gICAJa2ZyZWUoZmJkZXYpOwo+ICAgCXJldHVybiBOVUxMOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZiY29uLmMgYi9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZiY29uLmMKPiBpbmRleCAzZWQxMmE4Y2Zj OTEuLjVhNzcwNWRjZDY3ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u b3V2ZWF1X2ZiY29uLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Zi Y29uLmMKPiBAQCAtNTM5LDEyICs1MzksMTIgQEAgbm91dmVhdV9mYmNvbl9pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCj4gICAKPiAgIAlyZXQgPSBkcm1fZmJfaGVscGVyX2luaXQoZGV2LCAm ZmJjb24tPmhlbHBlciwKPiAgIAkJCQkgZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0YywgNCk7Cj4g LQlpZiAocmV0KSB7Cj4gLQkJa2ZyZWUoZmJjb24pOwo+IC0JCXJldHVybiByZXQ7Cj4gLQl9Cj4g KwlpZiAocmV0KQo+ICsJCWdvdG8gZnJlZTsKPiAgIAo+IC0JZHJtX2ZiX2hlbHBlcl9zaW5nbGVf YWRkX2FsbF9jb25uZWN0b3JzKCZmYmNvbi0+aGVscGVyKTsKPiArCXJldCA9IGRybV9mYl9oZWxw ZXJfc2luZ2xlX2FkZF9hbGxfY29ubmVjdG9ycygmZmJjb24tPmhlbHBlcik7Cj4gKwlpZiAocmV0 KQo+ICsJCWdvdG8gZmluaTsKPiAgIAo+ICAgCWlmIChkcm0tPmRldmljZS5pbmZvLnJhbV9zaXpl IDw9IDMyICogMTAyNCAqIDEwMjQpCj4gICAJCXByZWZlcnJlZF9icHAgPSA4Owo+IEBAIC01NTcs OCArNTU3LDE3IEBAIG5vdXZlYXVfZmJjb25faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ ICAgCS8qIGRpc2FibGUgYWxsIHRoZSBwb3NzaWJsZSBvdXRwdXRzL2NydGNzIGJlZm9yZSBlbnRl cmluZyBLTVMgbW9kZSAqLwo+ICAgCWRybV9oZWxwZXJfZGlzYWJsZV91bnVzZWRfZnVuY3Rpb25z KGRldik7Cj4gICAKPiAtCWRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoJmZiY29uLT5oZWxw ZXIsIHByZWZlcnJlZF9icHApOwo+ICsJcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZp ZygmZmJjb24tPmhlbHBlciwgcHJlZmVycmVkX2JwcCk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8g ZmluaTsKPiArCj4gICAJcmV0dXJuIDA7Cj4gKwo+ICtmaW5pOgo+ICsJZHJtX2ZiX2hlbHBlcl9m aW5pKCZmYmNvbi0+aGVscGVyKTsKPiArZnJlZToKPiArCWtmcmVlKGZiY29uKTsKPiArCXJldHVy biByZXQ7Cj4gICB9Cj4gICAKPiAgIHZvaWQKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L29tYXBkcm0vb21hcF9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9mYmRl di5jCj4gaW5kZXggODQzNmM2ODU3Y2RhLi5kMjkyZDI0YjNhNmUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9mYmRldi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L29tYXBkcm0vb21hcF9mYmRldi5jCj4gQEAgLTMzNCwxNyArMzM0LDIzIEBAIHN0cnVjdCBkcm1f ZmJfaGVscGVyICpvbWFwX2ZiZGV2X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAkJ Z290byBmYWlsOwo+ICAgCX0KPiAgIAo+IC0JZHJtX2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9j b25uZWN0b3JzKGhlbHBlcik7Cj4gKwlyZXQgPSBkcm1fZmJfaGVscGVyX3NpbmdsZV9hZGRfYWxs X2Nvbm5lY3RvcnMoaGVscGVyKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBmaW5pOwo+ICAgCj4g ICAJLyogZGlzYWJsZSBhbGwgdGhlIHBvc3NpYmxlIG91dHB1dHMvY3J0Y3MgYmVmb3JlIGVudGVy aW5nIEtNUyBtb2RlICovCj4gICAJZHJtX2hlbHBlcl9kaXNhYmxlX3VudXNlZF9mdW5jdGlvbnMo ZGV2KTsKPiAgIAo+IC0JZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZyhoZWxwZXIsIDMyKTsK PiArCXJldCA9IGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoaGVscGVyLCAzMik7Cj4gKwlp ZiAocmV0KQo+ICsJCWdvdG8gZmluaTsKPiAgIAo+ICAgCXByaXYtPmZiZGV2ID0gaGVscGVyOwo+ ICAgCj4gICAJcmV0dXJuIGhlbHBlcjsKPiAgIAo+ICtmaW5pOgo+ICsJZHJtX2ZiX2hlbHBlcl9m aW5pKGhlbHBlcik7Cj4gICBmYWlsOgo+ICAgCWtmcmVlKGZiZGV2KTsKPiAgIAlyZXR1cm4gTlVM TDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZmIuYyBiL2RyaXZlcnMv Z3B1L2RybS9xeGwvcXhsX2ZiLmMKPiBpbmRleCAzZDdjMWQwMGE0MjQuLmY3NzhjMGU4YWUzYyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9mYi5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3F4bC9xeGxfZmIuYwo+IEBAIC02ODYsMTQgKzY4NiwyNCBAQCBpbnQgcXhsX2Zi ZGV2X2luaXQoc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYpCj4gICAJcmV0ID0gZHJtX2ZiX2hlbHBl cl9pbml0KHFkZXYtPmRkZXYsICZxZmJkZXYtPmhlbHBlciwKPiAgIAkJCQkgcXhsX251bV9jcnRj IC8qIG51bV9jcnRjIC0gUVhMIHN1cHBvcnRzIGp1c3QgMSAqLywKPiAgIAkJCQkgUVhMRkJfQ09O Tl9MSU1JVCk7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJa2ZyZWUocWZiZGV2KTsKPiAtCQlyZXR1cm4g cmV0Owo+IC0JfQo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGZyZWU7Cj4gKwo+ICsJcmV0ID0gZHJt X2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKCZxZmJkZXYtPmhlbHBlcik7Cj4g KwlpZiAocmV0KQo+ICsJCWdvdG8gZmluaTsKPiArCj4gKwlyZXQgPSBkcm1fZmJfaGVscGVyX2lu aXRpYWxfY29uZmlnKCZxZmJkZXYtPmhlbHBlciwgYnBwX3NlbCk7Cj4gKwlpZiAocmV0KQo+ICsJ CWdvdG8gZmluaTsKPiAgIAo+IC0JZHJtX2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0 b3JzKCZxZmJkZXYtPmhlbHBlcik7Cj4gLQlkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKCZx ZmJkZXYtPmhlbHBlciwgYnBwX3NlbCk7Cj4gICAJcmV0dXJuIDA7Cj4gKwo+ICtmaW5pOgo+ICsJ ZHJtX2ZiX2hlbHBlcl9maW5pKCZxZmJkZXYtPmhlbHBlcik7Cj4gK2ZyZWU6Cj4gKwlrZnJlZShx ZmJkZXYpOwo+ICsJcmV0dXJuIHJldDsKPiAgIH0KPiAgIAo+ICAgdm9pZCBxeGxfZmJkZXZfZmlu aShzdHJ1Y3QgcXhsX2RldmljZSAqcWRldikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fZmIuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZiLmMK PiBpbmRleCAyOWI5MjIwZWMzOTkuLjMwMDBiYzRjMTM2YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9mYi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fZmIuYwo+IEBAIC0zOTAsMTggKzM5MCwyNyBAQCBpbnQgcmFkZW9uX2ZiZGV2X2lu aXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAJcmV0ID0gZHJtX2ZiX2hlbHBlcl9p bml0KHJkZXYtPmRkZXYsICZyZmJkZXYtPmhlbHBlciwKPiAgIAkJCQkgcmRldi0+bnVtX2NydGMs Cj4gICAJCQkJIFJBREVPTkZCX0NPTk5fTElNSVQpOwo+IC0JaWYgKHJldCkgewo+IC0JCWtmcmVl KHJmYmRldik7Cj4gLQkJcmV0dXJuIHJldDsKPiAtCX0KPiArCWlmIChyZXQpCj4gKwkJZ290byBm cmVlOwo+ICAgCj4gLQlkcm1fZmJfaGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5lY3RvcnMoJnJm YmRldi0+aGVscGVyKTsKPiArCXJldCA9IGRybV9mYl9oZWxwZXJfc2luZ2xlX2FkZF9hbGxfY29u bmVjdG9ycygmcmZiZGV2LT5oZWxwZXIpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGZpbmk7Cj4g ICAKPiAgIAkvKiBkaXNhYmxlIGFsbCB0aGUgcG9zc2libGUgb3V0cHV0cy9jcnRjcyBiZWZvcmUg ZW50ZXJpbmcgS01TIG1vZGUgKi8KPiAgIAlkcm1faGVscGVyX2Rpc2FibGVfdW51c2VkX2Z1bmN0 aW9ucyhyZGV2LT5kZGV2KTsKPiAgIAo+IC0JZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZygm cmZiZGV2LT5oZWxwZXIsIGJwcF9zZWwpOwo+ICsJcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0aWFs X2NvbmZpZygmcmZiZGV2LT5oZWxwZXIsIGJwcF9zZWwpOwo+ICsJaWYgKHJldCkKPiArCQlnb3Rv IGZpbmk7Cj4gKwo+ICAgCXJldHVybiAwOwo+ICsKPiArZmluaToKPiArCWRybV9mYl9oZWxwZXJf ZmluaSgmcmZiZGV2LT5oZWxwZXIpOwo+ICtmcmVlOgo+ICsJa2ZyZWUocmZiZGV2KTsKPiArCXJl dHVybiByZXQ7Cj4gICB9Cj4gICAKPiAgIHZvaWQgcmFkZW9uX2ZiZGV2X2Zpbmkoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRs X2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9mYi5jCj4gaW5kZXggOGNiY2I0NTg5YmQz Li41ZmMxNmNlY2QzYmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZmIu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2ZiLmMKPiBAQCAtNTg5LDE5ICs1ODks MjcgQEAgaW50IHVkbF9mYmRldl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAKPiAg IAlyZXQgPSBkcm1fZmJfaGVscGVyX2luaXQoZGV2LCAmdWZiZGV2LT5oZWxwZXIsCj4gICAJCQkJ IDEsIDEpOwo+IC0JaWYgKHJldCkgewo+IC0JCWtmcmVlKHVmYmRldik7Cj4gLQkJcmV0dXJuIHJl dDsKPiAtCj4gLQl9Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZnJlZTsKPiAgIAo+IC0JZHJtX2Zi X2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKCZ1ZmJkZXYtPmhlbHBlcik7Cj4gKwly ZXQgPSBkcm1fZmJfaGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5lY3RvcnMoJnVmYmRldi0+aGVs cGVyKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBmaW5pOwo+ICAgCj4gICAJLyogZGlzYWJsZSBh bGwgdGhlIHBvc3NpYmxlIG91dHB1dHMvY3J0Y3MgYmVmb3JlIGVudGVyaW5nIEtNUyBtb2RlICov Cj4gICAJZHJtX2hlbHBlcl9kaXNhYmxlX3VudXNlZF9mdW5jdGlvbnMoZGV2KTsKPiAgIAo+IC0J ZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZygmdWZiZGV2LT5oZWxwZXIsIGJwcF9zZWwpOwo+ ICsJcmV0ID0gZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZygmdWZiZGV2LT5oZWxwZXIsIGJw cF9zZWwpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGZpbmk7Cj4gKwo+ICAgCXJldHVybiAwOwo+ ICsKPiArZmluaToKPiArCWRybV9mYl9oZWxwZXJfZmluaSgmdWZiZGV2LT5oZWxwZXIpOwo+ICtm cmVlOgo+ICsJa2ZyZWUodWZiZGV2KTsKPiArCXJldHVybiByZXQ7Cj4gICB9Cj4gICAKPiAgIHZv aWQgdWRsX2ZiZGV2X2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBl ci5oCj4gaW5kZXggYjU5NzA2ODEwM2FhLi4yMWI5NDRjNDU2ZjYgMTAwNjQ0Cj4gLS0tIGEvaW5j bHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBl ci5oCj4gQEAgLTEyNSw3ICsxMjUsNyBAQCB2b2lkIGRybV9mYl9oZWxwZXJfZmlsbF9maXgoc3Ry dWN0IGZiX2luZm8gKmluZm8sIHVpbnQzMl90IHBpdGNoLAo+ICAgaW50IGRybV9mYl9oZWxwZXJf c2V0Y21hcChzdHJ1Y3QgZmJfY21hcCAqY21hcCwgc3RydWN0IGZiX2luZm8gKmluZm8pOwo+ICAg Cj4gICBpbnQgZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KHN0cnVjdCBkcm1fZmJfaGVscGVy ICpmYl9oZWxwZXIpOwo+IC1ib29sIGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoc3RydWN0 IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwgaW50IGJwcF9zZWwpOwo+ICtpbnQgZHJtX2ZiX2hl bHBlcl9pbml0aWFsX2NvbmZpZyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLCBpbnQg YnBwX3NlbCk7Cj4gICBpbnQgZHJtX2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3Jz KHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpOwo+ICAgaW50IGRybV9mYl9oZWxwZXJf ZGVidWdfZW50ZXIoc3RydWN0IGZiX2luZm8gKmluZm8pOwo+ICAgaW50IGRybV9mYl9oZWxwZXJf ZGVidWdfbGVhdmUoc3RydWN0IGZiX2luZm8gKmluZm8pOwoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK