From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v1 11/16] drm/panel: move drm_panel functions to .c file Date: Mon, 5 Aug 2019 13:45:15 +0300 Message-ID: <20190805104515.GF29747@pendragon.ideasonboard.com> References: <20190804201637.1240-1-sam@ravnborg.org> <20190804201637.1240-12-sam@ravnborg.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190804201637.1240-12-sam@ravnborg.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sam Ravnborg Cc: Neil Armstrong , David Airlie , dri-devel@lists.freedesktop.org, Thierry Reding , Marek Vasut , Laurent Pinchart , Vincent Abriou , Krzysztof Kozlowski , Jonathan Hunter , Maxime Ripard , Kukjin Kim , linux-arm-kernel@lists.infradead.org, NXP Linux Team , Pengutronix Kernel Team , Jonas Karlman , Alison Wang , Gwan-gyeong Mun , Alexios Zavras , linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, Thomas Gleixner , Sean Paul , Allison Randal List-Id: linux-tegra@vger.kernel.org SGkgU2FtLAoKVGhhbmsgeW91IGZvciB0aGUgcGF0Y2guCgpPbiBTdW4sIEF1ZyAwNCwgMjAxOSBh dCAxMDoxNjozMlBNICswMjAwLCBTYW0gUmF2bmJvcmcgd3JvdGU6Cj4gTW92ZSBpbmxpbmUgZnVu Y3Rpb25zIGZyb20gaW5jbHVkZS9kcm0vZHJtX3BhbmVsLmggdG8gZHJtX3BhbmVsLmMuCj4gVGhp cyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgZm9sbG93LXVwIHBhdGNoZXMgdGhhdCB3aWxsIGFkZCBl eHRyYQo+IGxvZ2ljIHRvIHRoZSBmdW5jdGlvbnMuCj4gQXMgdGhleSBhcmUgbm8gbG9uZ2VyIHN0 YXRpYyBpbmxpbmUsIEVYUE9SVCB0aGVtLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNhbSBSYXZuYm9y ZyA8c2FtQHJhdm5ib3JnLm9yZz4KPiBDYzogVGhpZXJyeSBSZWRpbmcgPHRoaWVycnkucmVkaW5n QGdtYWlsLmNvbT4KPiBDYzogU2FtIFJhdm5ib3JnIDxzYW1AcmF2bmJvcmcub3JnPgo+IENjOiBN YWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IENj OiBNYXhpbWUgUmlwYXJkIDxtYXhpbWUucmlwYXJkQGJvb3RsaW4uY29tPgo+IENjOiBTZWFuIFBh dWwgPHNlYW5AcG9vcmx5LnJ1bj4KPiBDYzogRGF2aWQgQWlybGllIDxhaXJsaWVkQGxpbnV4Lmll Pgo+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+Cj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9kcm1fcGFuZWwuYyB8IDk2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCj4gIGluY2x1ZGUvZHJtL2RybV9wYW5lbC5oICAgICB8IDk5ICsrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMDQgaW5zZXJ0aW9ucygr KSwgOTEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f cGFuZWwuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWwuYwo+IGluZGV4IGRiZDViODczZThm Mi4uOTk0NmI4ZDliYWNjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWwu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWwuYwo+IEBAIC01NCw2ICs1NCwxMDIg QEAgdm9pZCBkcm1fcGFuZWxfaW5pdChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKPiAgfQo+ICBF WFBPUlRfU1lNQk9MKGRybV9wYW5lbF9pbml0KTsKPiAgCj4gKy8qKgo+ICsgKiBkcm1fcGFuZWxf cHJlcGFyZSAtIHBvd2VyIG9uIGEgcGFuZWwKPiArICogQHBhbmVsOiBEUk0gcGFuZWwKPiArICoK PiArICogQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIHdpbGwgZW5hYmxlIHBvd2VyIGFuZCBkZWFzc2Vy dCBhbnkgcmVzZXQgc2lnbmFscyB0bwo+ICsgKiB0aGUgcGFuZWwuIEFmdGVyIHRoaXMgaGFzIGNv bXBsZXRlZCBpdCBpcyBwb3NzaWJsZSB0byBjb21tdW5pY2F0ZSB3aXRoIGFueQo+ICsgKiBpbnRl Z3JhdGVkIGNpcmN1aXRyeSB2aWEgYSBjb21tYW5kIGJ1cy4KPiArICoKPiArICogUmV0dXJuOiAw IG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gKyAqLwo+ ICtpbnQgZHJtX3BhbmVsX3ByZXBhcmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCj4gK3sKPiAr CWlmIChwYW5lbCAmJiBwYW5lbC0+ZnVuY3MgJiYgcGFuZWwtPmZ1bmNzLT5wcmVwYXJlKQo+ICsJ CXJldHVybiBwYW5lbC0+ZnVuY3MtPnByZXBhcmUocGFuZWwpOwo+ICsKPiArCXJldHVybiBwYW5l bCA/IC1FTk9TWVMgOiAtRUlOVkFMOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX3BhbmVsX3By ZXBhcmUpOwo+ICsKPiArLyoqCj4gKyAqIGRybV9wYW5lbF9lbmFibGUgLSBlbmFibGUgYSBwYW5l bAo+ICsgKiBAcGFuZWw6IERSTSBwYW5lbAo+ICsgKgo+ICsgKiBDYWxsaW5nIHRoaXMgZnVuY3Rp b24gd2lsbCBjYXVzZSB0aGUgcGFuZWwgZGlzcGxheSBkcml2ZXJzIHRvIGJlIHR1cm5lZCBvbgo+ ICsgKiBhbmQgdGhlIGJhY2tsaWdodCB0byBiZSBlbmFibGVkLiBDb250ZW50IHdpbGwgYmUgdmlz aWJsZSBvbiBzY3JlZW4gYWZ0ZXIKPiArICogdGhpcyBjYWxsIGNvbXBsZXRlcy4KPiArICoKPiAr ICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1 cmUuCj4gKyAqLwo+ICtpbnQgZHJtX3BhbmVsX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5l bCkKPiArewo+ICsJaWYgKHBhbmVsICYmIHBhbmVsLT5mdW5jcyAmJiBwYW5lbC0+ZnVuY3MtPmVu YWJsZSkKPiArCQlyZXR1cm4gcGFuZWwtPmZ1bmNzLT5lbmFibGUocGFuZWwpOwo+ICsKPiArCXJl dHVybiBwYW5lbCA/IC1FTk9TWVMgOiAtRUlOVkFMOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJt X3BhbmVsX2VuYWJsZSk7Cj4gKwo+ICsvKioKPiArICogZHJtX3BhbmVsX2Rpc2FibGUgLSBkaXNh YmxlIGEgcGFuZWwKPiArICogQHBhbmVsOiBEUk0gcGFuZWwKPiArICoKPiArICogVGhpcyB3aWxs IHR5cGljYWxseSB0dXJuIG9mZiB0aGUgcGFuZWwncyBiYWNrbGlnaHQgb3IgZGlzYWJsZSB0aGUg ZGlzcGxheQo+ICsgKiBkcml2ZXJzLiBGb3Igc21hcnQgcGFuZWxzIGl0IHNob3VsZCBzdGlsbCBi ZSBwb3NzaWJsZSB0byBjb21tdW5pY2F0ZSB3aXRoCj4gKyAqIHRoZSBpbnRlZ3JhdGVkIGNpcmN1 aXRyeSB2aWEgYW55IGNvbW1hbmQgYnVzIGFmdGVyIHRoaXMgY2FsbC4KPiArICoKPiArICogUmV0 dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4g KyAqLwo+ICtpbnQgZHJtX3BhbmVsX2Rpc2FibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCj4g K3sKPiArCWlmIChwYW5lbCAmJiBwYW5lbC0+ZnVuY3MgJiYgcGFuZWwtPmZ1bmNzLT5kaXNhYmxl KQo+ICsJCXJldHVybiBwYW5lbC0+ZnVuY3MtPmRpc2FibGUocGFuZWwpOwo+ICsKPiArCXJldHVy biBwYW5lbCA/IC1FTk9TWVMgOiAtRUlOVkFMOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX3Bh bmVsX2Rpc2FibGUpOwo+ICsKPiArLyoqCj4gKyAqIGRybV9wYW5lbF91bnByZXBhcmUgLSBwb3dl ciBvZmYgYSBwYW5lbAo+ICsgKiBAcGFuZWw6IERSTSBwYW5lbAo+ICsgKgo+ICsgKiBDYWxsaW5n IHRoaXMgZnVuY3Rpb24gd2lsbCBjb21wbGV0ZWx5IHBvd2VyIG9mZiBhIHBhbmVsIChhc3NlcnQg dGhlIHBhbmVsJ3MKPiArICogcmVzZXQsIHR1cm4gb2ZmIHBvd2VyIHN1cHBsaWVzLCAuLi4pLiBB ZnRlciB0aGlzIGZ1bmN0aW9uIGhhcyBjb21wbGV0ZWQsIGl0Cj4gKyAqIGlzIHVzdWFsbHkgbm8g bG9uZ2VyIHBvc3NpYmxlIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIHBhbmVsIHVudGlsIGFub3Ro ZXIKPiArICogY2FsbCB0byBkcm1fcGFuZWxfcHJlcGFyZSgpLgo+ICsgKgo+ICsgKiBSZXR1cm46 IDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiArICov Cj4gK2ludCBkcm1fcGFuZWxfdW5wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+ICt7 Cj4gKwlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+dW5wcmVwYXJl KQo+ICsJCXJldHVybiBwYW5lbC0+ZnVuY3MtPnVucHJlcGFyZShwYW5lbCk7Cj4gKwo+ICsJcmV0 dXJuIHBhbmVsID8gLUVOT1NZUyA6IC1FSU5WQUw7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChkcm1f cGFuZWxfdW5wcmVwYXJlKTsKPiArCj4gKy8qKgo+ICsgKiBkcm1fcGFuZWxfZ2V0X21vZGVzIC0g cHJvYmUgdGhlIGF2YWlsYWJsZSBkaXNwbGF5IG1vZGVzIG9mIGEgcGFuZWwKPiArICogQHBhbmVs OiBEUk0gcGFuZWwKPiArICoKPiArICogVGhlIG1vZGVzIHByb2JlZCBmcm9tIHRoZSBwYW5lbCBh cmUgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgY29ubmVjdG9yCj4gKyAqIHRoYXQgdGhlIHBh bmVsIGlzIGF0dGFjaGVkIHRvLgo+ICsgKgo+ICsgKiBSZXR1cm46IFRoZSBudW1iZXIgb2YgbW9k ZXMgYXZhaWxhYmxlIGZyb20gdGhlIHBhbmVsIG9uIHN1Y2Nlc3Mgb3IgYQo+ICsgKiBuZWdhdGl2 ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gKyAqLwo+ICtpbnQgZHJtX3BhbmVsX2dldF9tb2Rl cyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKPiArewo+ICsJaWYgKHBhbmVsICYmIHBhbmVsLT5m dW5jcyAmJiBwYW5lbC0+ZnVuY3MtPmdldF9tb2RlcykKPiArCQlyZXR1cm4gcGFuZWwtPmZ1bmNz LT5nZXRfbW9kZXMocGFuZWwpOwo+ICsKPiArCXJldHVybiBwYW5lbCA/IC1FTk9TWVMgOiAtRUlO VkFMOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX3BhbmVsX2dldF9tb2Rlcyk7Cj4gKwo+ICAv KioKPiAgICogZHJtX3BhbmVsX2FkZCAtIGFkZCBhIHBhbmVsIHRvIHRoZSBnbG9iYWwgcmVnaXN0 cnkKPiAgICogQHBhbmVsOiBwYW5lbCB0byBhZGQKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX3BhbmVsLmggYi9pbmNsdWRlL2RybS9kcm1fcGFuZWwuaAo+IGluZGV4IDI2Mzc3ODM2MTQx Yy4uMDUzZDYxMTY1NmI5IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9wYW5lbC5oCj4g KysrIGIvaW5jbHVkZS9kcm0vZHJtX3BhbmVsLmgKPiBAQCAtOTcsOTcgKzk3LDYgQEAgc3RydWN0 IGRybV9wYW5lbCB7Cj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cj4gIH07Cj4gIAo+IC0vKioK PiAtICogZHJtX2Rpc2FibGVfdW5wcmVwYXJlIC0gcG93ZXIgb2ZmIGEgcGFuZWwKPiAtICogQHBh bmVsOiBEUk0gcGFuZWwKPiAtICoKPiAtICogQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIHdpbGwgY29t cGxldGVseSBwb3dlciBvZmYgYSBwYW5lbCAoYXNzZXJ0IHRoZSBwYW5lbCdzCj4gLSAqIHJlc2V0 LCB0dXJuIG9mZiBwb3dlciBzdXBwbGllcywgLi4uKS4gQWZ0ZXIgdGhpcyBmdW5jdGlvbiBoYXMg Y29tcGxldGVkLCBpdAo+IC0gKiBpcyB1c3VhbGx5IG5vIGxvbmdlciBwb3NzaWJsZSB0byBjb21t dW5pY2F0ZSB3aXRoIHRoZSBwYW5lbCB1bnRpbCBhbm90aGVyCj4gLSAqIGNhbGwgdG8gZHJtX3Bh bmVsX3ByZXBhcmUoKS4KPiAtICoKPiAtICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdh dGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gLSAqLwo+IC1zdGF0aWMgaW5saW5lIGludCBk cm1fcGFuZWxfdW5wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+IC17Cj4gLQlpZiAo cGFuZWwgJiYgcGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+dW5wcmVwYXJlKQo+IC0JCXJl dHVybiBwYW5lbC0+ZnVuY3MtPnVucHJlcGFyZShwYW5lbCk7Cj4gLQo+IC0JcmV0dXJuIHBhbmVs ID8gLUVOT1NZUyA6IC1FSU5WQUw7Cj4gLX0KPiAtCj4gLS8qKgo+IC0gKiBkcm1fcGFuZWxfZGlz YWJsZSAtIGRpc2FibGUgYSBwYW5lbAo+IC0gKiBAcGFuZWw6IERSTSBwYW5lbAo+IC0gKgo+IC0g KiBUaGlzIHdpbGwgdHlwaWNhbGx5IHR1cm4gb2ZmIHRoZSBwYW5lbCdzIGJhY2tsaWdodCBvciBk aXNhYmxlIHRoZSBkaXNwbGF5Cj4gLSAqIGRyaXZlcnMuIEZvciBzbWFydCBwYW5lbHMgaXQgc2hv dWxkIHN0aWxsIGJlIHBvc3NpYmxlIHRvIGNvbW11bmljYXRlIHdpdGgKPiAtICogdGhlIGludGVn cmF0ZWQgY2lyY3VpdHJ5IHZpYSBhbnkgY29tbWFuZCBidXMgYWZ0ZXIgdGhpcyBjYWxsLgo+IC0g Kgo+IC0gKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24g ZmFpbHVyZS4KPiAtICovCj4gLXN0YXRpYyBpbmxpbmUgaW50IGRybV9wYW5lbF9kaXNhYmxlKHN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+IC17Cj4gLQlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNz ICYmIHBhbmVsLT5mdW5jcy0+ZGlzYWJsZSkKPiAtCQlyZXR1cm4gcGFuZWwtPmZ1bmNzLT5kaXNh YmxlKHBhbmVsKTsKPiAtCj4gLQlyZXR1cm4gcGFuZWwgPyAtRU5PU1lTIDogLUVJTlZBTDsKPiAt fQo+IC0KPiAtLyoqCj4gLSAqIGRybV9wYW5lbF9wcmVwYXJlIC0gcG93ZXIgb24gYSBwYW5lbAo+ IC0gKiBAcGFuZWw6IERSTSBwYW5lbAo+IC0gKgo+IC0gKiBDYWxsaW5nIHRoaXMgZnVuY3Rpb24g d2lsbCBlbmFibGUgcG93ZXIgYW5kIGRlYXNzZXJ0IGFueSByZXNldCBzaWduYWxzIHRvCj4gLSAq IHRoZSBwYW5lbC4gQWZ0ZXIgdGhpcyBoYXMgY29tcGxldGVkIGl0IGlzIHBvc3NpYmxlIHRvIGNv bW11bmljYXRlIHdpdGggYW55Cj4gLSAqIGludGVncmF0ZWQgY2lyY3VpdHJ5IHZpYSBhIGNvbW1h bmQgYnVzLgo+IC0gKgo+IC0gKiBSZXR1cm46IDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVy cm9yIGNvZGUgb24gZmFpbHVyZS4KPiAtICovCj4gLXN0YXRpYyBpbmxpbmUgaW50IGRybV9wYW5l bF9wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+IC17Cj4gLQlpZiAocGFuZWwgJiYg cGFuZWwtPmZ1bmNzICYmIHBhbmVsLT5mdW5jcy0+cHJlcGFyZSkKPiAtCQlyZXR1cm4gcGFuZWwt PmZ1bmNzLT5wcmVwYXJlKHBhbmVsKTsKPiAtCj4gLQlyZXR1cm4gcGFuZWwgPyAtRU5PU1lTIDog LUVJTlZBTDsKPiAtfQo+IC0KPiAtLyoqCj4gLSAqIGRybV9wYW5lbF9lbmFibGUgLSBlbmFibGUg YSBwYW5lbAo+IC0gKiBAcGFuZWw6IERSTSBwYW5lbAo+IC0gKgo+IC0gKiBDYWxsaW5nIHRoaXMg ZnVuY3Rpb24gd2lsbCBjYXVzZSB0aGUgcGFuZWwgZGlzcGxheSBkcml2ZXJzIHRvIGJlIHR1cm5l ZCBvbgo+IC0gKiBhbmQgdGhlIGJhY2tsaWdodCB0byBiZSBlbmFibGVkLiBDb250ZW50IHdpbGwg YmUgdmlzaWJsZSBvbiBzY3JlZW4gYWZ0ZXIKPiAtICogdGhpcyBjYWxsIGNvbXBsZXRlcy4KPiAt ICoKPiAtICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9u IGZhaWx1cmUuCj4gLSAqLwo+IC1zdGF0aWMgaW5saW5lIGludCBkcm1fcGFuZWxfZW5hYmxlKHN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+IC17Cj4gLQlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNz ICYmIHBhbmVsLT5mdW5jcy0+ZW5hYmxlKQo+IC0JCXJldHVybiBwYW5lbC0+ZnVuY3MtPmVuYWJs ZShwYW5lbCk7Cj4gLQo+IC0JcmV0dXJuIHBhbmVsID8gLUVOT1NZUyA6IC1FSU5WQUw7Cj4gLX0K PiAtCj4gLS8qKgo+IC0gKiBkcm1fcGFuZWxfZ2V0X21vZGVzIC0gcHJvYmUgdGhlIGF2YWlsYWJs ZSBkaXNwbGF5IG1vZGVzIG9mIGEgcGFuZWwKPiAtICogQHBhbmVsOiBEUk0gcGFuZWwKPiAtICoK PiAtICogVGhlIG1vZGVzIHByb2JlZCBmcm9tIHRoZSBwYW5lbCBhcmUgYXV0b21hdGljYWxseSBh ZGRlZCB0byB0aGUgY29ubmVjdG9yCj4gLSAqIHRoYXQgdGhlIHBhbmVsIGlzIGF0dGFjaGVkIHRv Lgo+IC0gKgo+IC0gKiBSZXR1cm46IFRoZSBudW1iZXIgb2YgbW9kZXMgYXZhaWxhYmxlIGZyb20g dGhlIHBhbmVsIG9uIHN1Y2Nlc3Mgb3IgYQo+IC0gKiBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZh aWx1cmUuCj4gLSAqLwo+IC1zdGF0aWMgaW5saW5lIGludCBkcm1fcGFuZWxfZ2V0X21vZGVzKHN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+IC17Cj4gLQlpZiAocGFuZWwgJiYgcGFuZWwtPmZ1bmNz ICYmIHBhbmVsLT5mdW5jcy0+Z2V0X21vZGVzKQo+IC0JCXJldHVybiBwYW5lbC0+ZnVuY3MtPmdl dF9tb2RlcyhwYW5lbCk7Cj4gLQo+IC0JcmV0dXJuIHBhbmVsID8gLUVOT1NZUyA6IC1FSU5WQUw7 Cj4gLX0KPiAtCj4gIHZvaWQgZHJtX3BhbmVsX2luaXQoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwp Owo+ICAKPiAgaW50IGRybV9wYW5lbF9hZGQoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpOwo+IEBA IC0xOTYsNiArMTA1LDE0IEBAIHZvaWQgZHJtX3BhbmVsX3JlbW92ZShzdHJ1Y3QgZHJtX3BhbmVs ICpwYW5lbCk7Cj4gIGludCBkcm1fcGFuZWxfYXR0YWNoKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVs LCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiAgaW50IGRybV9wYW5lbF9kZXRh Y2goc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpOwo+ICAKPiAraW50IGRybV9wYW5lbF9wcmVwYXJl KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKTsKPiAraW50IGRybV9wYW5lbF91bnByZXBhcmUoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwpOwo+ICsKPiAraW50IGRybV9wYW5lbF9lbmFibGUoc3RydWN0 IGRybV9wYW5lbCAqcGFuZWwpOwo+ICtpbnQgZHJtX3BhbmVsX2Rpc2FibGUoc3RydWN0IGRybV9w YW5lbCAqcGFuZWwpOwoKTml0cGlja2luZywgSSB3b3VsZCBrZWVwIHRoZSBvcmRlciBvZiB0aGUg ZGVjbGFyYXRpb25zIGFsaWduZWQgd2l0aCB0aGUKZGVmaW5pdGlvbnMuIHByZXBhcmUgLSBlbmFi bGUgLSBkaXNhYmxlIC0gdW5wcmVwYXJlIGFuZCBwcmVwYXJlIC0KdW5wcmVwYXJlIC0gZW5hYmxl IC0gZGlzYWJsZSBhcmUgYm90aCBmaW5lIHdpdGggbWUsIGFzIGxvbmcgYXMgdGhleSdyZQpjb25z aXN0ZW50LgoKQXBhcnQgZnJvbSB0aGF0LAoKUmV2aWV3ZWQtYnk6IExhdXJlbnQgUGluY2hhcnQg PGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KCj4gKwo+ICtpbnQgZHJtX3BhbmVs X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCk7Cj4gKwo+ICAjaWYgZGVmaW5lZChD T05GSUdfT0YpICYmIGRlZmluZWQoQ09ORklHX0RSTV9QQU5FTCkKPiAgc3RydWN0IGRybV9wYW5l bCAqb2ZfZHJtX2ZpbmRfcGFuZWwoY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpucCk7Cj4gICNl bHNlCgotLSAKUmVnYXJkcywKCkxhdXJlbnQgUGluY2hhcnQKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVs