From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/7] drm/udl: Convert to struct drm_simple_display_pipe Date: Thu, 28 Nov 2019 15:09:18 +0100 Message-ID: <20191128140918.GW406127@phenom.ffwll.local> References: <20191126134707.22385-1-tzimmermann@suse.de> <20191126134707.22385-3-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by gabe.freedesktop.org (Postfix) with ESMTPS id 308A96E07B for ; Thu, 28 Nov 2019 14:09:23 +0000 (UTC) Received: by mail-wm1-x341.google.com with SMTP id b11so11060417wmj.4 for ; Thu, 28 Nov 2019 06:09:23 -0800 (PST) Content-Disposition: inline In-Reply-To: <20191126134707.22385-3-tzimmermann@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thomas Zimmermann Cc: dri-devel@lists.freedesktop.org, kraxel@redhat.com, airlied@redhat.com, sam@ravnborg.org, emil.velikov@collabora.com List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBOb3YgMjYsIDIwMTkgYXQgMDI6NDc6MDJQTSArMDEwMCwgVGhvbWFzIFppbW1lcm1h bm4gd3JvdGU6Cj4gVWRsIGhhcyBhIHNpbmdsZSBkaXNwbGF5IHBpcGVsaW5lIHdpdGggYXByaW1h cnkgcGxhbmU7IHBlcmZlY3QgZm9yCj4gc2ltcGxlLXBpcGUgaGVscGVycy4gQ29udmVydCBpdCBv dmVyLiBUaGUgb2xkIGVuY29kZXIgYW5kIENSVEMgY29kZQo+IGJlY29tZXMgdW51c2VkIGFuZCBv YnNvbGV0ZS4KPiAKPiBFeHBvcnRlZCBmb3JtYXRzIGZvciB0aGUgcHJpbWFyeSBwbGFuZSBhcmUg UkdCNTY1IGFuZCBYUkdCODg4OCwgd2l0aAo+IHRoZSBsYXR0ZXIgYmVpbmcgZW11bGF0ZWQuIFRo ZSAxNi1iaXQgZm9ybWF0IGlzIHRoZSBkZWZhdWx0IGFuZCB3aGF0Cj4gaXMgdXNlZCB3aGVuIGNv bW11bmljYXRpbmcgd2l0aCB0aGUgZGV2aWNlLgo+IAo+IFRoaXMgcGF0Y2ggZW5hYmxlcyBhdG9t aWMgbW9kZXNldHRpbmcgZm9yIHVkbCBkZXZpY2VzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFRob21h cyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vdWRsL3VkbF9jb25uZWN0b3IuYyB8ICAxMiArLS0KPiAgZHJpdmVycy9ncHUvZHJtL3VkbC91 ZGxfZHJ2LmMgICAgICAgfCAgIDkgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZHJ2Lmgg ICAgICAgfCAgIDQgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfbW9kZXNldC5jICAgfCAx NDIgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDEzNiBp bnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3VkbC91ZGxfY29ubmVjdG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9jb25u ZWN0b3IuYwo+IGluZGV4IDY4ZTExM2FlNDRmNy4uNDdhYjhkMTUwZjFhIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Nvbm5lY3Rvci5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3VkbC91ZGxfY29ubmVjdG9yLmMKPiBAQCAtNyw2ICs3LDcgQEAKPiAgICogQ29weXJpZ2h0 IChDKSAyMDA5IEJlcm5pZSBUaG9tcHNvbiA8YmVybmllQHBsdWdhYmxlLmNvbT4KPiAgICovCj4g IAo+ICsjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmg+Cj4gICNpbmNsdWRl IDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hlbHBl ci5oPgo+ICAKPiBAQCAtOTAsMTMgKzkxLDYgQEAgdWRsX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+ICAJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNf Y29ubmVjdGVkOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IHVkbF9jb25uZWN0b3Jfc2V0X3Byb3Bl cnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gLQkJCQkgICAgICBzdHJ1Y3Qg ZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKPiAtCQkJCSAgICAgIHVpbnQ2NF90IHZhbCkKPiAtewo+ IC0JcmV0dXJuIDA7Cj4gLX0KPiAtCj4gIHN0YXRpYyB2b2lkIHVkbF9jb25uZWN0b3JfZGVzdHJv eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB7Cj4gIAlzdHJ1Y3QgdWRsX2Ry bV9jb25uZWN0b3IgKnVkbF9jb25uZWN0b3IgPQo+IEBAIC0xMTcsMTAgKzExMSwxMiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIHVkbF9jb25uZWN0b3Jf aGVscGVyX2Z1bmNzID0gewo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9y X2Z1bmNzIHVkbF9jb25uZWN0b3JfZnVuY3MgPSB7Cj4gIAkuZHBtcyA9IGRybV9oZWxwZXJfY29u bmVjdG9yX2RwbXMsCj4gKwkucmVzZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVz ZXQsCj4gIAkuZGV0ZWN0ID0gdWRsX2RldGVjdCwKPiAgCS5maWxsX21vZGVzID0gZHJtX2hlbHBl cl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAo+ICAJLmRlc3Ryb3kgPSB1ZGxfY29ubmVj dG9yX2Rlc3Ryb3ksCj4gLQkuc2V0X3Byb3BlcnR5ID0gdWRsX2Nvbm5lY3Rvcl9zZXRfcHJvcGVy dHksCj4gKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5l Y3Rvcl9kdXBsaWNhdGVfc3RhdGUsCj4gKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgICA9IGRybV9h dG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAo+ICB9Owo+ICAKPiAgc3RydWN0 IGRybV9jb25uZWN0b3IgKnVkbF9jb25uZWN0b3JfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9kcnYuYyBiL2RyaXZlcnMv Z3B1L2RybS91ZGwvdWRsX2Rydi5jCj4gaW5kZXggZDU3ODNmYTMyYzViLi5iM2ZhNmJmNDFhY2Mg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZHJ2LmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vdWRsL3VkbF9kcnYuYwo+IEBAIC0yMSwxNyArMjEsMTQgQEAgc3RhdGljIGlu dCB1ZGxfdXNiX3N1c3BlbmQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSwKPiAgewo+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEoaW50ZXJmYWNlKTsK PiAgCj4gLQlkcm1fa21zX2hlbHBlcl9wb2xsX2Rpc2FibGUoZGV2KTsKPiAtCXJldHVybiAwOwo+ ICsJcmV0dXJuIGRybV9tb2RlX2NvbmZpZ19oZWxwZXJfc3VzcGVuZChkZXYpOwo+ICB9Cj4gIAo+ ICBzdGF0aWMgaW50IHVkbF91c2JfcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZh Y2UpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSB1c2JfZ2V0X2ludGZkYXRhKGlu dGVyZmFjZSk7Cj4gIAo+IC0JZHJtX2ttc19oZWxwZXJfcG9sbF9lbmFibGUoZGV2KTsKPiAtCXVk bF9tb2Rlc2V0X3Jlc3RvcmUoZGV2KTsKPiAtCXJldHVybiAwOwo+ICsJcmV0dXJuIGRybV9tb2Rl X2NvbmZpZ19oZWxwZXJfcmVzdW1lKGRldik7CgpQbGVhc2UgbWVudGlvbiBpbiB0aGUgY29tbWl0 IG1lc3NhZ2UgdGhhdCB5b3UncmUgYWxzbyBzd2l0Y2hpbmcgb3ZlciB0bwp0aGUgYXRvbWljLWJh c2VkIGdlbmVyaWMgc3VzcGVuZC9yZXN1bWUgaGVscGVycy4gTWlnaHQgZXZlbiB3YW50IHRvIHNw bGl0CnRoYXQgb3V0IGFzIGEgc2VwYXJhdGUgcGF0Y2ggKGJ1dCB3aWxsIHJlcXVpcmUgbWlub3Ig YWRqdXN0ZW1lbnRzIGluCnVkbF9tb2Rlc2V0X3Jlc3RvcmUpLgoKCj4gIH0KPiAgCj4gIERFRklO RV9EUk1fR0VNX0ZPUFModWRsX2RyaXZlcl9mb3BzKTsKPiBAQCAtNDUsNyArNDIsNyBAQCBzdGF0 aWMgdm9pZCB1ZGxfZHJpdmVyX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgfQo+ ICAKPiAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlciA9IHsKPiAtCS5kcml2ZXJfZmVh dHVyZXMgPSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0sCj4gKwkuZHJpdmVyX2ZlYXR1cmVz ID0gRFJJVkVSX0FUT01JQyB8IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNFVCwKPiAgCS5yZWxl YXNlID0gdWRsX2RyaXZlcl9yZWxlYXNlLAo+ICAKPiAgCS8qIGdlbSBob29rcyAqLwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS91 ZGwvdWRsX2Rydi5oCj4gaW5kZXggOGRjMDQ3MTdhYmFjLi4yMzM0NmJkYzc0YmMgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vdWRsL3VkbF9kcnYuaAo+IEBAIC0xNyw2ICsxNyw3IEBACj4gICNpbmNsdWRlIDxkcm0vZHJt X2RldmljZS5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9mcmFtZWJ1ZmZlci5oPgo+ICAjaW5jbHVk ZSA8ZHJtL2RybV9nZW0uaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIu aD4KPiAgCj4gIHN0cnVjdCBkcm1fZW5jb2RlcjsKPiAgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9k dW1iOwo+IEBAIC01Myw2ICs1NCw4IEBAIHN0cnVjdCB1ZGxfZGV2aWNlIHsKPiAgCXN0cnVjdCB1 c2JfZGV2aWNlICp1ZGV2Owo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICAKPiArCXN0cnVj dCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSBkaXNwbGF5X3BpcGU7Cj4gKwo+ICAJLyogYWN0aXZl IGZyYW1lYnVmZmVyIG9uIHRoZSAxNi1iaXQgY2hhbm5lbCAqLwo+ICAJY29uc3Qgc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqYWN0aXZlX2ZiXzE2Owo+ICAJc3BpbmxvY2tfdCBhY3RpdmVfZmJfMTZf bG9jazsKPiBAQCAtNzYsNyArNzksNiBAQCBzdHJ1Y3QgdWRsX2RldmljZSB7Cj4gIAo+ICAvKiBt b2Rlc2V0ICovCj4gIGludCB1ZGxfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Owo+IC12b2lkIHVkbF9tb2Rlc2V0X3Jlc3RvcmUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4g IHZvaWQgdWRsX21vZGVzZXRfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgc3Ry dWN0IGRybV9jb25uZWN0b3IgKnVkbF9jb25uZWN0b3JfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX21vZGVzZXQu YyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX21vZGVzZXQuYwo+IGluZGV4IDViYjE1MjIwMzZj Ny4uYzhiZDQzOGRlNmU5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX21v ZGVzZXQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX21vZGVzZXQuYwo+IEBAIC05 LDEyICs5LDE2IEBACj4gIAo+ICAgKi8KPiAgCj4gKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19o ZWxwZXIuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KPiArI2luY2x1ZGUg PGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9t b2Rlc2V0X2hlbHBlcl92dGFibGVzLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX3ZibGFuay5oPgo+ ICAKPiAgI2luY2x1ZGUgInVkbF9kcnYuaCIKPiAgCj4gKyNkZWZpbmUgVURMX0NPTE9SX0RFUFRI XzE2QlBQCTAKPiArCj4gIC8qCj4gICAqIEFsbCBEaXNwbGF5TGluayBidWxrIG9wZXJhdGlvbnMg c3RhcnQgd2l0aCAweEFGLCBmb2xsb3dlZCBieSBzcGVjaWZpYyBjb2RlCj4gICAqIEFsbCBvcGVy YXRpb25zIGFyZSB3cml0dGVuIHRvIGJ1ZmZlcnMgd2hpY2ggdGhlbiBsYXRlciBnZXQgc2VudCB0 byBkZXZpY2UKPiBAQCAtNDE1LDE0ICs0MTksMTI2IEBAIHN0YXRpYyBpbnQgdWRsX2NydGNfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gKy8qCj4g KyAqIFNpbXBsZSBkaXNwbGF5IHBpcGVsaW5lCj4gKyAqLwo+ICsKPiArc3RhdGljIGNvbnN0IHVp bnQzMl90IHVkbF9zaW1wbGVfZGlzcGxheV9waXBlX2Zvcm1hdHNbXSA9IHsKPiArCURSTV9GT1JN QVRfUkdCNTY1LAo+ICsJRFJNX0ZPUk1BVF9YUkdCODg4OCwKPiArfTsKPiArCj4gK3N0YXRpYyBl bnVtIGRybV9tb2RlX3N0YXR1cwo+ICt1ZGxfc2ltcGxlX2Rpc3BsYXlfcGlwZV9tb2RlX3ZhbGlk KHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKPiArCQkJCSAgIGNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ICt7Cj4gKwlyZXR1cm4gTU9ERV9PSzsKPiAr fQo+ICsKPiArc3RhdGljIHZvaWQKPiArdWRsX3NpbXBsZV9kaXNwbGF5X3BpcGVfZW5hYmxlKHN0 cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKPiArCQkJICAgICAgIHN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArCQkJICAgICAgIHN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKnBsYW5lX3N0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmcGlw ZS0+Y3J0YzsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gKwlzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5mYjsKPiArCXN0cnVjdCB1ZGxf ZGV2aWNlICp1ZGwgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUgPSAmY3J0Y19zdGF0ZS0+bW9kZTsKPiArCWNoYXIgKmJ1ZjsKPiArCWNoYXIgKndy cHRyOwo+ICsJaW50IGNvbG9yX2RlcHRoID0gVURMX0NPTE9SX0RFUFRIXzE2QlBQOwo+ICsKPiAr CXVkbC0+Y3J0YyA9IGNydGM7Cj4gKwo+ICsJYnVmID0gKGNoYXIgKil1ZGwtPm1vZGVfYnVmOwo+ ICsKPiArCS8qIFRoaXMgZmlyc3Qgc2VjdGlvbiBoYXMgdG8gZG8gd2l0aCBzZXR0aW5nIHRoZSBi YXNlIGFkZHJlc3Mgb24gdGhlCj4gKwkgKiBjb250cm9sbGVyIGFzc29jaWF0ZWQgd2l0aCB0aGUg ZGlzcGxheS4gVGhlcmUgYXJlIDIgYmFzZQo+ICsJICogcG9pbnRlcnMsIGN1cnJlbnRseSwgd2Ug b25seSB1c2UgdGhlIDE2IGJwcCBzZWdtZW50Lgo+ICsJICovCj4gKwl3cnB0ciA9IHVkbF92aWRy ZWdfbG9jayhidWYpOwo+ICsJd3JwdHIgPSB1ZGxfc2V0X2NvbG9yX2RlcHRoKHdycHRyLCBjb2xv cl9kZXB0aCk7Cj4gKwkvKiBzZXQgYmFzZSBmb3IgMTZicHAgc2VnbWVudCB0byAwICovCj4gKwl3 cnB0ciA9IHVkbF9zZXRfYmFzZTE2YnBwKHdycHRyLCAwKTsKPiArCS8qIHNldCBiYXNlIGZvciA4 YnBwIHNlZ21lbnQgdG8gZW5kIG9mIGZiICovCj4gKwl3cnB0ciA9IHVkbF9zZXRfYmFzZThicHAo d3JwdHIsIDIgKiBtb2RlLT52ZGlzcGxheSAqIG1vZGUtPmhkaXNwbGF5KTsKPiArCj4gKwl3cnB0 ciA9IHVkbF9zZXRfdmlkX2NtZHMod3JwdHIsIG1vZGUpOwo+ICsJd3JwdHIgPSB1ZGxfc2V0X2Js YW5rKHdycHRyLCBEUk1fTU9ERV9EUE1TX09OKTsKPiArCXdycHRyID0gdWRsX3ZpZHJlZ191bmxv Y2sod3JwdHIpOwo+ICsKPiArCXdycHRyID0gdWRsX2R1bW15X3JlbmRlcih3cnB0cik7Cj4gKwo+ ICsJc3Bpbl9sb2NrKCZ1ZGwtPmFjdGl2ZV9mYl8xNl9sb2NrKTsKPiArCXVkbC0+YWN0aXZlX2Zi XzE2ID0gZmI7Cj4gKwlzcGluX3VubG9jaygmdWRsLT5hY3RpdmVfZmJfMTZfbG9jayk7Cj4gKwl1 ZGwtPm1vZGVfYnVmX2xlbiA9IHdycHRyIC0gYnVmOwo+ICsKPiArCXVkbF9oYW5kbGVfZGFtYWdl KGZiLCAwLCAwLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQpOwo+ICsKPiArCXVkbF9jcnRjX2RwbXMo JnBpcGUtPmNydGMsIERSTV9NT0RFX0RQTVNfT04pOwoKSGF2aW5nIGEgX2RwbXMoKSBmdW5jdGlv biBpcyB2ZXJ5IG11Y2ggbGVnYWN5LW1vZGVzZXQgc3R5bGUuIEkgdGhpbmsgbXVjaApjbGVhbmVy IGlmIHlvdSdkIGp1c3QgaW5saW5lIHRoZSByZWxldmFudCBwYXJ0IG9mIHRoZSBmdW5jdGlvbiBo ZXJlIGFuZApiZWxvdy4KCj4gKwo+ICsJY3J0Y19zdGF0ZS0+bm9fdmJsYW5rID0gdHJ1ZTsKPiAr fQo+ICsKPiArc3RhdGljIHZvaWQKPiArdWRsX3NpbXBsZV9kaXNwbGF5X3BpcGVfZGlzYWJsZShz dHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpCj4gK3sKPiArCXVkbF9jcnRjX2Rw bXMoJnBpcGUtPmNydGMsIERSTV9NT0RFX0RQTVNfT0ZGKTsKPiArfQo+ICsKPiArc3RhdGljIGlu dAo+ICt1ZGxfc2ltcGxlX2Rpc3BsYXlfcGlwZV9jaGVjayhzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNw bGF5X3BpcGUgKnBpcGUsCj4gKwkJCSAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlLAo+ICsJCQkgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4g K3sKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICt1ZGxfc2ltcGxlX2Rp c3BsYXlfcGlwZV91cGRhdGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAo+ ICsJCQkgICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlKQo+ICt7 Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGlwZS0+Y3J0Yy5kZXY7Cj4gKwlzdHJ1Y3Qg dWRsX2RldmljZSAqdWRsID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gcGlwZS0+cGxhbmUuc3RhdGUtPmZiOwo+ICsKPiArCXNwaW5fbG9jaygmdWRs LT5hY3RpdmVfZmJfMTZfbG9jayk7Cj4gKwl1ZGwtPmFjdGl2ZV9mYl8xNiA9IGZiOwo+ICsJc3Bp bl91bmxvY2soJnVkbC0+YWN0aXZlX2ZiXzE2X2xvY2spOwo+ICsKPiArCWlmICghZmIpCj4gKwkJ cmV0dXJuOwo+ICsKPiArCXVkbF9oYW5kbGVfZGFtYWdlKGZiLCAwLCAwLCBmYi0+d2lkdGgsIGZi LT5oZWlnaHQpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3QKPiArc3RydWN0IGRybV9zaW1wbGVf ZGlzcGxheV9waXBlX2Z1bmNzIHVkbF9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzID0gewo+ICsJ Lm1vZGVfdmFsaWQgPSB1ZGxfc2ltcGxlX2Rpc3BsYXlfcGlwZV9tb2RlX3ZhbGlkLAo+ICsJLmVu YWJsZSA9IHVkbF9zaW1wbGVfZGlzcGxheV9waXBlX2VuYWJsZSwKPiArCS5kaXNhYmxlID0gdWRs X3NpbXBsZV9kaXNwbGF5X3BpcGVfZGlzYWJsZSwKPiArCS5jaGVjayA9IHVkbF9zaW1wbGVfZGlz cGxheV9waXBlX2NoZWNrLAo+ICsJLnVwZGF0ZSA9IHVkbF9zaW1wbGVfZGlzcGxheV9waXBlX3Vw ZGF0ZSwKPiArCS5wcmVwYXJlX2ZiID0gZHJtX2dlbV9mYl9zaW1wbGVfZGlzcGxheV9waXBlX3By ZXBhcmVfZmIsCj4gK307Cj4gKwo+ICsvKgo+ICsgKiBNb2Rlc2V0dGluZwo+ICsgKi8KPiArCj4g IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIHVkbF9tb2RlX2Z1bmNz ID0gewo+ICAJLmZiX2NyZWF0ZSA9IHVkbF9mYl91c2VyX2ZiX2NyZWF0ZSwKPiArCS5hdG9taWNf Y2hlY2sgID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2ssCj4gKwkuYXRvbWljX2NvbW1pdCA9IGRy bV9hdG9taWNfaGVscGVyX2NvbW1pdCwKPiAgfTsKPiAgCj4gIGludCB1ZGxfbW9kZXNldF9pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiArCXNpemVfdCBmb3JtYXRfY291bnQgPSBB UlJBWV9TSVpFKHVkbF9zaW1wbGVfZGlzcGxheV9waXBlX2Zvcm1hdHMpOwo+ICsJc3RydWN0IHVk bF9kZXZpY2UgKnVkbCA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yOwo+IC0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwo+ICAJaW50IHJl dDsKPiAgCj4gIAlkcm1fbW9kZV9jb25maWdfaW5pdChkZXYpOwo+IEBAIC00NDQsMTAgKzU2MCwx NiBAQCBpbnQgdWRsX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCWdv dG8gZXJyX2RybV9tb2RlX2NvbmZpZ19jbGVhbnVwOwo+ICAJfQo+ICAKPiAtCXVkbF9jcnRjX2lu aXQoZGV2KTsKPiArCWZvcm1hdF9jb3VudCA9IEFSUkFZX1NJWkUodWRsX3NpbXBsZV9kaXNwbGF5 X3BpcGVfZm9ybWF0cyk7Cj4gIAo+IC0JZW5jb2RlciA9IHVkbF9lbmNvZGVyX2luaXQoZGV2KTsK PiAtCWRybV9jb25uZWN0b3JfYXR0YWNoX2VuY29kZXIoY29ubmVjdG9yLCBlbmNvZGVyKTsKPiAr CXJldCA9IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2luaXQoZGV2LCAmdWRsLT5kaXNwbGF5X3Bp cGUsCj4gKwkJCQkJICAgJnVkbF9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzLAo+ICsJCQkJCSAg IHVkbF9zaW1wbGVfZGlzcGxheV9waXBlX2Zvcm1hdHMsCj4gKwkJCQkJICAgZm9ybWF0X2NvdW50 LCBOVUxMLCBjb25uZWN0b3IpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGVycl9kcm1fbW9kZV9j b25maWdfY2xlYW51cDsKPiArCj4gKwlkcm1fbW9kZV9jb25maWdfcmVzZXQoZGV2KTsKPiAgCj4g IAlyZXR1cm4gMDsKPiAgCj4gQEAgLTQ1NiwxOCArNTc4LDYgQEAgaW50IHVkbF9tb2Rlc2V0X2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLXZv aWQgdWRsX21vZGVzZXRfcmVzdG9yZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IC17Cj4gLQlz dHJ1Y3QgdWRsX2RldmljZSAqdWRsID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiOwo+IC0KPiAtCWlmICghdWRsLT5jcnRjIHx8ICF1ZGwtPmNydGMtPnBy aW1hcnktPmZiKQo+IC0JCXJldHVybjsKPiAtCXVkbF9jcnRjX2NvbW1pdCh1ZGwtPmNydGMpOwo+ IC0JZmIgPSB1ZGwtPmNydGMtPnByaW1hcnktPmZiOwo+IC0JdWRsX2hhbmRsZV9kYW1hZ2UoZmIs IDAsIDAsIGZiLT53aWR0aCwgZmItPmhlaWdodCk7Cj4gLX0KPiAtCj4gIHZvaWQgdWRsX21vZGVz ZXRfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gIAlkcm1fbW9kZV9jb25m aWdfY2xlYW51cChkZXYpOwoKV2hlcmUncyBhbGwgdGhlIGRlbGV0ZWQgY29kZSB0aGF0IHJlbW92 ZXMgdGhlIHVkbCBjcnRjIGFuZCBlbmNvZGVyCmNvZGUvc3RydWN0cz8KCkNoZWVycywgRGFuaWVs Cgo+IC0tIAo+IDIuMjMuMAo+IAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIs IEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==