From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Li, Sun peng (Leo)" Subject: Re: [PATCH 2/2] drm/atomic: Create and use __drm_atomic_helper_crtc_reset() everywhere Date: Mon, 12 Nov 2018 15:23:58 +0000 Message-ID: <2496f9bb-7b58-66f7-2e0f-6a3550822612@amd.com> References: <20181112150114.18395-1-maarten.lankhorst@linux.intel.com> <20181112150114.18395-2-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181112150114.18395-2-maarten.lankhorst-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Maarten Lankhorst , "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: Haneen Mohammed , Alexandre Belloni , David Airlie , Daniel Vetter , Mahesh Kumar , Liviu Dudau , Nicolas Ferre , "linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , Thierry Reding , Laurent Pinchart , "Koo, Anthony" , Thomas Hellstrom , "Lakha, Bhawanpreet" , "Francis, David" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , Jonathan Hunter , "linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org" , Ludovic Desroches , Tomi Valkeinen List-Id: linux-tegra@vger.kernel.org DQoNCk9uIDIwMTgtMTEtMTIgMTA6MDEgQU0sIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOg0KPiBX ZSBhbHJlYWR5IGhhdmUgX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVzZXQoKSBhbmQN Cj4gX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9yZXNldCgpLCBleHRlbmQgdGhpcyB0byBjcnRj IGFzIHdlbGwuDQo+IA0KPiBNb3N0IGRyaXZlcnMgYWxyZWFkeSBoYXZlIGEgZ3B1IHJlc2V0IGhv b2ssIGNvcnJlY3QgaXQuDQo+IE5vdXZlYXUgYWxyZWFkeSBpbXBsZW1lbnRlZCBpdHMgb3duIF9f ZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCgpLA0KPiBjb252ZXJ0IGl0IHRvIHRoZSBjb21t b24gb25lLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4u bGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4NCj4gQ2M6IEhhcnJ5IFdlbnRsYW5kIDxoYXJyeS53 ZW50bGFuZEBhbWQuY29tPg0KPiBDYzogTGVvIExpIDxzdW5wZW5nLmxpQGFtZC5jb20+DQo+IENj OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+DQo+IENjOiAiQ2hyaXN0 aWFuIEvDg8K2bmlnIiA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPg0KPiBDYzogIkRhdmlkIChD aHVuTWluZykgWmhvdSIgPERhdmlkMS5aaG91QGFtZC5jb20+DQo+IENjOiBEYXZpZCBBaXJsaWUg PGFpcmxpZWRAbGludXguaWU+DQo+IENjOiBMaXZpdSBEdWRhdSA8bGl2aXUuZHVkYXVAYXJtLmNv bT4NCj4gQ2M6IEJyaWFuIFN0YXJrZXkgPGJyaWFuLnN0YXJrZXlAYXJtLmNvbT4NCj4gQ2M6IE1h bGkgRFAgTWFpbnRhaW5lcnMgPG1hbGlkcEBmb3NzLmFybS5jb20+DQo+IENjOiBCb3JpcyBCcmV6 aWxsb24gPGJvcmlzLmJyZXppbGxvbkBib290bGluLmNvbT4NCj4gQ2M6IE5pY29sYXMgRmVycmUg PG5pY29sYXMuZmVycmVAbWljcm9jaGlwLmNvbT4NCj4gQ2M6IEFsZXhhbmRyZSBCZWxsb25pIDxh bGV4YW5kcmUuYmVsbG9uaUBib290bGluLmNvbT4NCj4gQ2M6IEx1ZG92aWMgRGVzcm9jaGVzIDxs dWRvdmljLmRlc3JvY2hlc0BtaWNyb2NoaXAuY29tPg0KPiBDYzogTWFhcnRlbiBMYW5raG9yc3Qg PG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4NCj4gQ2M6IE1heGltZSBSaXBhcmQg PG1heGltZS5yaXBhcmRAYm9vdGxpbi5jb20+DQo+IENjOiBTZWFuIFBhdWwgPHNlYW5AcG9vcmx5 LnJ1bj4NCj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+DQo+ IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+DQo+ IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+DQo+IENjOiBQaGlsaXBw IFphYmVsIDxwLnphYmVsQHBlbmd1dHJvbml4LmRlPg0KPiBDYzogQ0sgSHUgPGNrLmh1QG1lZGlh dGVrLmNvbT4NCj4gQ2M6IE1hdHRoaWFzIEJydWdnZXIgPG1hdHRoaWFzLmJnZ0BnbWFpbC5jb20+ DQo+IENjOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+DQo+IENjOiBCZW4gU2tlZ2dz IDxic2tlZ2dzQHJlZGhhdC5jb20+DQo+IENjOiBUb21pIFZhbGtlaW5lbiA8dG9taS52YWxrZWlu ZW5AdGkuY29tPg0KPiBDYzogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBpZGVh c29uYm9hcmQuY29tPg0KPiBDYzogS2llcmFuIEJpbmdoYW0gPGtpZXJhbi5iaW5naGFtK3JlbmVz YXNAaWRlYXNvbmJvYXJkLmNvbT4NCj4gQ2M6IFNhbmR5IEh1YW5nIDxoamNAcm9jay1jaGlwcy5j b20+DQo+IENjOiAiSGVpa28gU3TDg8K8Ym5lciIgPGhlaWtvQHNudGVjaC5kZT4NCj4gQ2M6IFRo aWVycnkgUmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BnbWFpbC5jb20+DQo+IENjOiBKb25hdGhhbiBI dW50ZXIgPGpvbmF0aGFuaEBudmlkaWEuY29tPg0KPiBDYzogRXJpYyBBbmhvbHQgPGVyaWNAYW5o b2x0Lm5ldD4NCj4gQ2M6IFZNd2FyZSBHcmFwaGljcyA8bGludXgtZ3JhcGhpY3MtbWFpbnRhaW5l ckB2bXdhcmUuY29tPg0KPiBDYzogU2luY2xhaXIgWWVoIDxzeWVoQHZtd2FyZS5jb20+DQo+IENj OiBUaG9tYXMgSGVsbHN0cm9tIDx0aGVsbHN0cm9tQHZtd2FyZS5jb20+DQo+IENjOiBUb255IENo ZW5nIDxUb255LkNoZW5nQGFtZC5jb20+DQo+IENjOiBTaGlyaXNoIFMgPHNoaXJpc2guc0BhbWQu Y29tPg0KPiBDYzogTWlraXRhIExpcHNraSA8bWlraXRhLmxpcHNraUBhbWQuY29tPg0KPiBDYzog Qmhhd2FucHJlZXQgTGFraGEgPEJoYXdhbnByZWV0Lkxha2hhQGFtZC5jb20+DQo+IENjOiBEYXZp ZCBGcmFuY2lzIDxEYXZpZC5GcmFuY2lzQGFtZC5jb20+DQo+IENjOiBBbnRob255IEtvbyA8QW50 aG9ueS5Lb29AYW1kLmNvbT4NCj4gQ2M6IEpleWt1bWFyIFNhbmthcmFuIDxqc2Fua2FAY29kZWF1 cm9yYS5vcmc+DQo+IENjOiBKb3JkYW4gQ3JvdXNlIDxqY3JvdXNlQGNvZGVhdXJvcmEub3JnPg0K PiBDYzogQnJ1Y2UgV2FuZyA8Ynp3YW5nQGNocm9taXVtLm9yZz4NCj4gQ2M6IFNyYXZhbnRoaSBL b2xsdWt1ZHVydSA8c2tvbGx1a3VAY29kZWF1cm9yYS5vcmc+DQo+IENjOiBBcmNoaXQgVGFuZWph IDxhcmNoaXR0QGNvZGVhdXJvcmEub3JnPg0KPiBDYzogU3RldmUgS293YWxpayA8c3RldmVuQHdl ZG9udHNsZWVwLm9yZz4NCj4gQ2M6IENhcnN0ZW4gQmVobGluZyA8Y2Fyc3Rlbi5iZWhsaW5nQGdv b2dsZW1haWwuY29tPg0KPiBDYzogSGFuZWVuIE1vaGFtbWVkIDxoYW1vaGFtbWVkLnNhQGdtYWls LmNvbT4NCj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+DQo+IENj OiBSb2RyaWdvIFNpcXVlaXJhIDxyb2RyaWdvc2lxdWVpcmFtZWxvQGdtYWlsLmNvbT4NCj4gQ2M6 IE1haGVzaCBLdW1hciA8bWFoZXNoMS5rdW1hckBpbnRlbC5jb20+DQo+IENjOiBhbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZw0KPiBDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y Zw0KPiBDYzogbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZw0KPiBDYzogbGludXgtYXJtLWtl cm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnDQo+IENjOiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnDQo+IENjOiBsaW51eC1tZWRpYXRla0BsaXN0cy5pbmZyYWRlYWQub3JnDQo+IENjOiBs aW51eC1hcm0tbXNtQHZnZXIua2VybmVsLm9yZw0KPiBDYzogZnJlZWRyZW5vQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZw0KPiBDYzogbm91dmVhdUBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gQ2M6IGxp bnV4LXJlbmVzYXMtc29jQHZnZXIua2VybmVsLm9yZw0KPiBDYzogbGludXgtcm9ja2NoaXBAbGlz dHMuaW5mcmFkZWFkLm9yZw0KPiBDYzogbGludXgtdGVncmFAdmdlci5rZXJuZWwub3JnDQo+IC0t LQ0KPiAgIC4uLi9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYyB8ICA0 ICstLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2NydGMuYyAgICAgICAgICAgICB8 ICA1ICstLQ0KPiAgIC4uLi9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2NydGMuYyAg ICB8ICA1ICstLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5j ICAgICB8IDMxICsrKysrKysrKysrKysrKystLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgICAgICAgICAgfCAgMiArLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pbXgv aXB1djMtY3J0Yy5jICAgICAgICAgICAgICB8ICA1ICstLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZHJtX2NydGMuYyAgICAgICB8ICA1ICstLQ0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgICAgICB8IDEyICsrLS0tLS0NCj4gICBkcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2NydGMuYyAgICAgfCAgNiArLS0tDQo+ICAgZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZC5jICAgICAgIHwgMTMgKystLS0tLS0N Cj4gICBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYyAgICAgICAgICAgfCAgNyAr Ky0tLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfY3J0Yy5jICAgICAgICB8 ICA0ICstLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMg ICB8ICA3ICsrKy0tDQo+ICAgZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMgICAgICAgICAgICAg ICAgICAgIHwgIDUgKy0tDQo+ICAgZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jICAgICAg ICAgICAgICAgIHwgIDggKystLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMu YyAgICAgICAgICAgICAgfCAgNyArLS0tLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2ttcy5jICAgICAgICAgICB8ICA5ICstLS0tLQ0KPiAgIGluY2x1ZGUvZHJtL2RybV9hdG9t aWNfc3RhdGVfaGVscGVyLmggICAgICAgICB8ICAyICsrDQo+ICAgMTggZmlsZXMgY2hhbmdlZCwg NTYgaW5zZXJ0aW9ucygrKSwgODEgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMNCj4gaW5kZXggNTA2NDc2 ODY0MmYzLi43NzBhNzE3MjZjZDEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYw0KPiBAQCAtMjgwMiw5ICsyODAyLDcgQEAg c3RhdGljIHZvaWQgZG1fY3J0Y19yZXNldF9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+ ICAgCWlmIChXQVJOX09OKCFzdGF0ZSkpDQo+ICAgCQlyZXR1cm47DQo+ICAgDQo+IC0JY3J0Yy0+ c3RhdGUgPSAmc3RhdGUtPmJhc2U7DQo+IC0JY3J0Yy0+c3RhdGUtPmNydGMgPSBjcnRjOw0KPiAt DQo+ICsJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KGNydGMsICZzdGF0ZS0+YmFzZSk7 DQo+ICAgfQ0KPiAgIA0KPiAgIHN0YXRpYyBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKg0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfY3J0Yy5jIGIvZHJpdmVycy9ncHUv ZHJtL2FybS9tYWxpZHBfY3J0Yy5jDQo+IGluZGV4IGUxYjcyNzgyODQ4Yy4uOWE5MjRmZjI3MTQ4 IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9jcnRjLmMNCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfY3J0Yy5jDQo+IEBAIC00NzQsMTAgKzQ3NCw3 IEBAIHN0YXRpYyB2b2lkIG1hbGlkcF9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykN Cj4gICANCj4gICAJa2ZyZWUoc3RhdGUpOw0KPiAgIAlzdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpz dGF0ZSksIEdGUF9LRVJORUwpOw0KPiAtCWlmIChzdGF0ZSkgew0KPiAtCQljcnRjLT5zdGF0ZSA9 ICZzdGF0ZS0+YmFzZTsNCj4gLQkJY3J0Yy0+c3RhdGUtPmNydGMgPSBjcnRjOw0KPiAtCX0NCj4g KwlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQoY3J0YywgJnN0YXRlLT5iYXNlKTsNCj4g ICB9DQo+ICAgDQo+ICAgc3RhdGljIHZvaWQgbWFsaWRwX2NydGNfZGVzdHJveV9zdGF0ZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXRtZWwt aGxjZGMvYXRtZWxfaGxjZGNfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0 bWVsX2hsY2RjX2NydGMuYw0KPiBpbmRleCA5NmY0MDgyNjcxZmUuLjgwODRkNTQ5YzdkMSAxMDA2 NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2NydGMu Yw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfY3J0Yy5j DQo+IEBAIC00MTIsMTAgKzQxMiw3IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2hsY2RjX2NydGNfcmVz ZXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQ0KPiAgIAl9DQo+ICAgDQo+ICAgCXN0YXRlID0ga3ph bGxvYyhzaXplb2YoKnN0YXRlKSwgR0ZQX0tFUk5FTCk7DQo+IC0JaWYgKHN0YXRlKSB7DQo+IC0J CWNydGMtPnN0YXRlID0gJnN0YXRlLT5iYXNlOw0KPiAtCQljcnRjLT5zdGF0ZS0+Y3J0YyA9IGNy dGM7DQo+IC0JfQ0KPiArCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldChjcnRjLCAmc3Rh dGUtPmJhc2UpOw0KPiAgIH0NCj4gICANCj4gICBzdGF0aWMgc3RydWN0IGRybV9jcnRjX3N0YXRl ICoNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMNCj4gaW5kZXgg M2JhOTk2MDY5ZDY5Li4zZWVlMWNhMzNmYzUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljX3N0YXRlX2hlbHBlci5jDQo+IEBAIC01NSw2ICs1NSwyOSBAQA0KPiAgICAqIGZvciB0 aGVzZSBmdW5jdGlvbnMuDQo+ICAgICovDQo+ICAgDQo+ICsvKioNCj4gKyAqIF9fZHJtX2F0b21p Y19oZWxwZXJfY3J0Y19yZXNldCAtIHJlc2V0IHN0YXRlIG9uIENSVEMNCj4gKyAqIEBjcnRjOiBk cm0gQ1JUQw0KPiArICogQGNydGNfc3RhdGU6IENSVEMgc3RhdGUgdG8gYXNzaWduDQo+ICsgKg0K PiArICogSW5pdGlhbGl6ZXMgdGhlIG5ld2x5IGFsbG9jYXRlZCBAY3J0Y19zdGF0ZSBhbmQgYXNz aWducyBpdCB0bw0KPiArICogdGhlICZkcm1fY29uZWN0b3ItPnN0YXRlIHBvaW50ZXIgb2YgQGNy dGMsIHVzdWFsbHkgcmVxdWlyZWQgd2hlbg0KICAgICAgICAgICAgXiBEbyB5b3UgbWVhbiBkcm1f Y3J0Yy0+c3RhdGU/DQoNCkZvciBhbWRncHVfZG0sDQpBY2tlZC1ieTogTGVvIExpIDxzdW5wZW5n LmxpQGFtZC5jb20+DQoNCkxlbw0KDQo+ICsgKiBpbml0aWFsaXppbmcgdGhlIGRyaXZlcnMgb3Ig d2hlbiBjYWxsZWQgZnJvbSB0aGUgJmRybV9jcnRjX2Z1bmNzLnJlc2V0DQo+ICsgKiBob29rLg0K PiArICoNCj4gKyAqIFRoaXMgaXMgdXNlZnVsIGZvciBkcml2ZXJzIHRoYXQgc3ViY2xhc3MgdGhl IENSVEMgc3RhdGUuDQo+ICsgKi8NCj4gK3ZvaWQNCj4gK19fZHJtX2F0b21pY19oZWxwZXJfY3J0 Y19yZXNldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsDQo+ICsJCQkgICAgICAgc3RydWN0IGRybV9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQ0KPiArew0KPiArCWlmIChjcnRjX3N0YXRlKQ0KPiArCQlj cnRjX3N0YXRlLT5jcnRjID0gY3J0YzsNCj4gKw0KPiArCWNydGMtPnN0YXRlID0gY3J0Y19zdGF0 ZTsNCj4gK30NCj4gK0VYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0 KTsNCj4gKw0KPiAgIC8qKg0KPiAgICAqIGRybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQgLSBk ZWZhdWx0ICZkcm1fY3J0Y19mdW5jcy5yZXNldCBob29rIGZvciBDUlRDcw0KPiAgICAqIEBjcnRj OiBkcm0gQ1JUQw0KPiBAQCAtNjQsMTQgKzg3LDE0IEBADQo+ICAgICovDQo+ICAgdm9pZCBkcm1f YXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICB7DQo+ ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0NCj4gKwkJa3phbGxvYyhzaXpl b2YoKmNydGMtPnN0YXRlKSwgR0ZQX0tFUk5FTCk7DQo+ICsNCj4gICAJaWYgKGNydGMtPnN0YXRl KQ0KPiAgIAkJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoY3J0Yy0+c3Rh dGUpOw0KPiAgIA0KPiAgIAlrZnJlZShjcnRjLT5zdGF0ZSk7DQo+IC0JY3J0Yy0+c3RhdGUgPSBr emFsbG9jKHNpemVvZigqY3J0Yy0+c3RhdGUpLCBHRlBfS0VSTkVMKTsNCj4gLQ0KPiAtCWlmIChj cnRjLT5zdGF0ZSkNCj4gLQkJY3J0Yy0+c3RhdGUtPmNydGMgPSBjcnRjOw0KPiArCV9fZHJtX2F0 b21pY19oZWxwZXJfY3J0Y19yZXNldChjcnRjLCBjcnRjX3N0YXRlKTsNCj4gICB9DQo+ICAgRVhQ T1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KTsNCj4gICANCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KPiBpbmRleCBmMzgzNDE3NTcxZWMuLjkwN2ZmZWI2 NDc4MSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j DQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KPiBAQCAtMTU0 NTcsNyArMTU0NTcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3Rh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikNCj4gICANCj4gICAJCV9fZHJtX2F0b21pY19oZWxw ZXJfY3J0Y19kZXN0cm95X3N0YXRlKCZjcnRjX3N0YXRlLT5iYXNlKTsNCj4gICAJCW1lbXNldChj cnRjX3N0YXRlLCAwLCBzaXplb2YoKmNydGNfc3RhdGUpKTsNCj4gLQkJY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjID0gJmNydGMtPmJhc2U7DQo+ICsJCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNl dCgmY3J0Yy0+YmFzZSwgJmNydGNfc3RhdGUtPmJhc2UpOw0KPiAgIA0KPiAgIAkJY3J0Y19zdGF0 ZS0+YmFzZS5hY3RpdmUgPSBjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSA9DQo+ICAgCQkJZGV2X3By aXYtPmRpc3BsYXkuZ2V0X3BpcGVfY29uZmlnKGNydGMsIGNydGNfc3RhdGUpOw0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0v aW14L2lwdXYzLWNydGMuYw0KPiBpbmRleCA3ZDRiNzEwYjgzN2EuLjhiYzM2ZjBkMmI2YiAxMDA2 NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1jcnRjLmMNCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2lteC9pcHV2My1jcnRjLmMNCj4gQEAgLTEyMCwxMiArMTIwLDkgQEAgc3Rh dGljIHZvaWQgaW14X2RybV9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICAJ CW1lbXNldChzdGF0ZSwgMCwgc2l6ZW9mKCpzdGF0ZSkpOw0KPiAgIAl9IGVsc2Ugew0KPiAgIAkJ c3RhdGUgPSBremFsbG9jKHNpemVvZigqc3RhdGUpLCBHRlBfS0VSTkVMKTsNCj4gLQkJaWYgKCFz dGF0ZSkNCj4gLQkJCXJldHVybjsNCj4gLQkJY3J0Yy0+c3RhdGUgPSAmc3RhdGUtPmJhc2U7DQo+ ICAgCX0NCj4gICANCj4gLQlzdGF0ZS0+YmFzZS5jcnRjID0gY3J0YzsNCj4gKwlfX2RybV9hdG9t aWNfaGVscGVyX2NydGNfcmVzZXQoY3J0YywgJnN0YXRlLT5iYXNlKTsNCj4gICB9DQo+ICAgDQo+ ICAgc3RhdGljIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqaW14X2RybV9jcnRjX2R1cGxpY2F0ZV9z dGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RybV9jcnRjLmMNCj4gaW5kZXggOTJlY2I5YmY5ODJjLi5hNzQzZTVlZDExNzcgMTAwNjQ0DQo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYw0KPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMNCj4gQEAgLTExOSwxMiArMTE5 LDkgQEAgc3RhdGljIHZvaWQgbXRrX2RybV9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykNCj4gICAJCW1lbXNldChzdGF0ZSwgMCwgc2l6ZW9mKCpzdGF0ZSkpOw0KPiAgIAl9IGVsc2Ug ew0KPiAgIAkJc3RhdGUgPSBremFsbG9jKHNpemVvZigqc3RhdGUpLCBHRlBfS0VSTkVMKTsNCj4g LQkJaWYgKCFzdGF0ZSkNCj4gLQkJCXJldHVybjsNCj4gLQkJY3J0Yy0+c3RhdGUgPSAmc3RhdGUt PmJhc2U7DQo+ICAgCX0NCj4gICANCj4gLQlzdGF0ZS0+YmFzZS5jcnRjID0gY3J0YzsNCj4gKwlf X2RybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQoY3J0YywgJnN0YXRlLT5iYXNlKTsNCj4gICB9 DQo+ICAgDQo+ICAgc3RhdGljIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbXRrX2RybV9jcnRjX2R1 cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NydGMuYw0KPiBpbmRleCBkNDUzMGQ2MDc2N2IuLmM4NmU2MDNmNDg2 YSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMu Yw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jDQo+IEBA IC04OTQsMjAgKzg5NCwxMiBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19yZXNldChzdHJ1Y3QgZHJt X2NydGMgKmNydGMpDQo+ICAgCQlfZHB1X2NydGNfc2V0X3N1c3BlbmQoY3J0YywgZmFsc2UpOw0K PiAgIA0KPiAgIAkvKiByZW1vdmUgcHJldmlvdXMgc3RhdGUsIGlmIHByZXNlbnQgKi8NCj4gLQlp ZiAoY3J0Yy0+c3RhdGUpIHsNCj4gKwlpZiAoY3J0Yy0+c3RhdGUpDQo+ICAgCQlkcHVfY3J0Y19k ZXN0cm95X3N0YXRlKGNydGMsIGNydGMtPnN0YXRlKTsNCj4gLQkJY3J0Yy0+c3RhdGUgPSAwOw0K PiAtCX0NCj4gICANCj4gICAJZHB1X2NydGMgPSB0b19kcHVfY3J0YyhjcnRjKTsNCj4gICAJY3N0 YXRlID0ga3phbGxvYyhzaXplb2YoKmNzdGF0ZSksIEdGUF9LRVJORUwpOw0KPiAtCWlmICghY3N0 YXRlKSB7DQo+IC0JCURQVV9FUlJPUigiZmFpbGVkIHRvIGFsbG9jYXRlIHN0YXRlXG4iKTsNCj4g LQkJcmV0dXJuOw0KPiAtCX0NCj4gLQ0KPiAtCWNzdGF0ZS0+YmFzZS5jcnRjID0gY3J0YzsNCj4g LQljcnRjLT5zdGF0ZSA9ICZjc3RhdGUtPmJhc2U7DQo+ICsJX19kcm1fYXRvbWljX2hlbHBlcl9j cnRjX3Jlc2V0KGNydGMsICZjc3RhdGUtPmJhc2UpOw0KPiAgIH0NCj4gICANCj4gICBzdGF0aWMg dm9pZCBkcHVfY3J0Y19oYW5kbGVfcG93ZXJfZXZlbnQodTMyIGV2ZW50X3R5cGUsIHZvaWQgKmFy ZykNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfY3J0 Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9jcnRjLmMNCj4gaW5kZXgg YjFkYTljZTU0Mzc5Li4xMzhkYTY2YjE1MzAgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9tZHA1L21kcDVfY3J0Yy5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9tZHA1L21kcDVfY3J0Yy5jDQo+IEBAIC0xMDE5LDExICsxMDE5LDcgQEAgc3RhdGljIHZv aWQgbWRwNV9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICAJfQ0KPiAgIA0K PiAgIAltZHA1X2NzdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCptZHA1X2NzdGF0ZSksIEdGUF9LRVJO RUwpOw0KPiAtDQo+IC0JaWYgKG1kcDVfY3N0YXRlKSB7DQo+IC0JCW1kcDVfY3N0YXRlLT5iYXNl LmNydGMgPSBjcnRjOw0KPiAtCQljcnRjLT5zdGF0ZSA9ICZtZHA1X2NzdGF0ZS0+YmFzZTsNCj4g LQl9DQo+ICsJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KGNydGMsICZtZHA1X2NzdGF0 ZS0+YmFzZSk7DQo+ICAgfQ0KPiAgIA0KPiAgIHN0YXRpYyBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg Kg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZC5j IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZC5jDQo+IGluZGV4IDRmNTdl NTM3OTc5Ni4uMzQxNjAwNDA2NTg5IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9kaXNwbnY1MC9oZWFkLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlz cG52NTAvaGVhZC5jDQo+IEBAIC00MTgsMTYgKzQxOCw2IEBAIG52NTBfaGVhZF9hdG9taWNfZHVw bGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICAJcmV0dXJuICZhc3loLT5z dGF0ZTsNCj4gICB9DQo+ICAgDQo+IC1zdGF0aWMgdm9pZA0KPiAtX19kcm1fYXRvbWljX2hlbHBl cl9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywNCj4gLQkJCSAgICAgICBzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKnN0YXRlKQ0KPiAtew0KPiAtCWlmIChjcnRjLT5zdGF0ZSkNCj4gLQkJ Y3J0Yy0+ZnVuY3MtPmF0b21pY19kZXN0cm95X3N0YXRlKGNydGMsIGNydGMtPnN0YXRlKTsNCj4g LQljcnRjLT5zdGF0ZSA9IHN0YXRlOw0KPiAtCWNydGMtPnN0YXRlLT5jcnRjID0gY3J0YzsNCj4g LX0NCj4gLQ0KPiAgIHN0YXRpYyB2b2lkDQo+ICAgbnY1MF9oZWFkX3Jlc2V0KHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykNCj4gICB7DQo+IEBAIC00MzYsNiArNDI2LDkgQEAgbnY1MF9oZWFkX3Jlc2V0 KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICAJaWYgKFdBUk5fT04oIShhc3loID0ga3phbGxv YyhzaXplb2YoKmFzeWgpLCBHRlBfS0VSTkVMKSkpKQ0KPiAgIAkJcmV0dXJuOw0KPiAgIA0KPiAr CWlmIChjcnRjLT5zdGF0ZSkNCj4gKwkJY3J0Yy0+ZnVuY3MtPmF0b21pY19kZXN0cm95X3N0YXRl KGNydGMsIGNydGMtPnN0YXRlKTsNCj4gKw0KPiAgIAlfX2RybV9hdG9taWNfaGVscGVyX2NydGNf cmVzZXQoY3J0YywgJmFzeWgtPnN0YXRlKTsNCj4gICB9DQo+ICAgDQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFw ZHJtL29tYXBfY3J0Yy5jDQo+IGluZGV4IGNhZmZjNTQ3ZWY5Ny4uOWM1ZjgxMDk5MTNjIDEwMDY0 NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYw0KPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYw0KPiBAQCAtNTU0LDE0ICs1NTQsMTMg QEAgc3RhdGljIGludCBvbWFwX2NydGNfYXRvbWljX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsDQo+ICAgDQo+ICAgc3RhdGljIHZvaWQgb21hcF9jcnRjX3Jlc2V0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YykNCj4gICB7DQo+ICsJc3RydWN0IG9tYXBfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSA9DQo+ICsJCWt6YWxsb2Moc2l6ZW9mKCpjcnRjX3N0YXRlKSwgR0ZQX0tFUk5FTCk7DQo+ ICAgCWlmIChjcnRjLT5zdGF0ZSkNCj4gICAJCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0 cm95X3N0YXRlKGNydGMtPnN0YXRlKTsNCj4gICANCj4gICAJa2ZyZWUoY3J0Yy0+c3RhdGUpOw0K PiAtCWNydGMtPnN0YXRlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG9tYXBfY3J0Y19zdGF0ZSks IEdGUF9LRVJORUwpOw0KPiAtDQo+IC0JaWYgKGNydGMtPnN0YXRlKQ0KPiAtCQljcnRjLT5zdGF0 ZS0+Y3J0YyA9IGNydGM7DQo+ICsJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KGNydGMs ICZjcnRjX3N0YXRlLT5iYXNlKTsNCj4gICB9DQo+ICAgDQo+ICAgc3RhdGljIHN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2Fy X2R1X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfY3J0Yy5jDQo+IGlu ZGV4IDE3NzQxODQzY2Y1MS4uN2JlYWIyMmI0Njc0IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmNhci1kdS9yY2FyX2R1X2NydGMuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNh ci1kdS9yY2FyX2R1X2NydGMuYw0KPiBAQCAtODU3LDE0ICs4NTcsMTIgQEAgc3RhdGljIHZvaWQg cmNhcl9kdV9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICAJfQ0KPiAgIA0K PiAgIAlzdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpzdGF0ZSksIEdGUF9LRVJORUwpOw0KPiArCV9f ZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldChjcnRjLCAmc3RhdGUtPnN0YXRlKTsNCj4gICAJ aWYgKHN0YXRlID09IE5VTEwpDQo+ICAgCQlyZXR1cm47DQo+ICAgDQo+ICAgCXN0YXRlLT5jcmMu c291cmNlID0gVlNQMV9EVV9DUkNfTk9ORTsNCj4gICAJc3RhdGUtPmNyYy5pbmRleCA9IDA7DQo+ IC0NCj4gLQljcnRjLT5zdGF0ZSA9ICZzdGF0ZS0+c3RhdGU7DQo+IC0JY3J0Yy0+c3RhdGUtPmNy dGMgPSBjcnRjOw0KPiAgIH0NCj4gICANCj4gICBzdGF0aWMgaW50IHJjYXJfZHVfY3J0Y19lbmFi bGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jDQo+IGluZGV4IGZiNzBmYjQ4NmZiZi4uZDJkNWFhNjc2 MDg0IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJt X3ZvcC5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9w LmMNCj4gQEAgLTEwNzEsMTMgKzEwNzEsMTQgQEAgc3RhdGljIHZvaWQgdm9wX2NydGNfZGVzdHJv eShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+ICAgDQo+ICAgc3RhdGljIHZvaWQgdm9wX2NydGNf cmVzZXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQ0KPiAgIHsNCj4gKwlzdHJ1Y3Qgcm9ja2NoaXBf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9DQo+ICsJCWt6YWxsb2Moc2l6ZW9mKCpjcnRjX3N0YXRl KSwgR0ZQX0tFUk5FTCk7DQo+ICsNCj4gICAJaWYgKGNydGMtPnN0YXRlKQ0KPiAgIAkJX19kcm1f YXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoY3J0Yy0+c3RhdGUpOw0KPiAgIAlrZnJl ZShjcnRjLT5zdGF0ZSk7DQo+ICAgDQo+IC0JY3J0Yy0+c3RhdGUgPSBremFsbG9jKHNpemVvZihz dHJ1Y3Qgcm9ja2NoaXBfY3J0Y19zdGF0ZSksIEdGUF9LRVJORUwpOw0KPiAtCWlmIChjcnRjLT5z dGF0ZSkNCj4gLQkJY3J0Yy0+c3RhdGUtPmNydGMgPSBjcnRjOw0KPiArCV9fZHJtX2F0b21pY19o ZWxwZXJfY3J0Y19yZXNldChjcnRjLCAmY3J0Y19zdGF0ZS0+YmFzZSk7DQo+ICAgfQ0KPiAgIA0K PiAgIHN0YXRpYyBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnZvcF9jcnRjX2R1cGxpY2F0ZV9zdGF0 ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dGVncmEvZGMuYyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jDQo+IGluZGV4IGY4MGU4MmUx NjQ3NS4uMTQwZDYxOTFkOGQyIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEv ZGMuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYw0KPiBAQCAtMTE2NCwxMCAr MTE2NCw3IEBAIHN0YXRpYyB2b2lkIHRlZ3JhX2NydGNfcmVzZXQoc3RydWN0IGRybV9jcnRjICpj cnRjKQ0KPiAgIAljcnRjLT5zdGF0ZSA9IE5VTEw7DQo+ICAgDQo+ICAgCXN0YXRlID0ga3phbGxv YyhzaXplb2YoKnN0YXRlKSwgR0ZQX0tFUk5FTCk7DQo+IC0JaWYgKHN0YXRlKSB7DQo+IC0JCWNy dGMtPnN0YXRlID0gJnN0YXRlLT5iYXNlOw0KPiAtCQljcnRjLT5zdGF0ZS0+Y3J0YyA9IGNydGM7 DQo+IC0JfQ0KPiArCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldChjcnRjLCAmc3RhdGUt PmJhc2UpOw0KPiAgIA0KPiAgIAlkcm1fY3J0Y192YmxhbmtfcmVzZXQoY3J0Yyk7DQo+ICAgfQ0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jIGIvZHJpdmVycy9n cHUvZHJtL3ZjNC92YzRfY3J0Yy5jDQo+IGluZGV4IGNkMjI2ZTYzZDU1Ny4uNzZiZWVkYTE1N2Zj IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9jcnRjLmMNCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jDQo+IEBAIC05OTgsMTIgKzk5OCwxMiBAQCBz dGF0aWMgdm9pZCB2YzRfY3J0Y19kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywN Cj4gICBzdGF0aWMgdm9pZA0KPiAgIHZjNF9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykNCj4gICB7DQo+IC0JaWYgKGNydGMtPnN0YXRlKQ0KPiAtCQl2YzRfY3J0Y19kZXN0cm95X3N0 YXRlKGNydGMtPnN0YXRlKTsNCj4gKwlzdHJ1Y3QgdmM0X2NydGNfc3RhdGUgKmNydGNfc3RhdGUg PQ0KPiArCQlremFsbG9jKHNpemVvZigqY3J0Y19zdGF0ZSksIEdGUF9LRVJORUwpOw0KPiAgIA0K PiAtCWNydGMtPnN0YXRlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHZjNF9jcnRjX3N0YXRlKSwg R0ZQX0tFUk5FTCk7DQo+ICAgCWlmIChjcnRjLT5zdGF0ZSkNCj4gLQkJY3J0Yy0+c3RhdGUtPmNy dGMgPSBjcnRjOw0KPiArCQl2YzRfY3J0Y19kZXN0cm95X3N0YXRlKGNydGMsIGNydGMtPnN0YXRl KTsNCj4gKwlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQoY3J0YywgJmNydGNfc3RhdGUt PmJhc2UpOw0KPiAgIH0NCj4gICANCj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1 bmNzIHZjNF9jcnRjX2Z1bmNzID0gew0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYw0KPiBpbmRl eCAxNzdiYmNiMzgzMDYuLjdiMDE4ZjZlZTk3MSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3ZrbXMvdmttc19jcnRjLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19j cnRjLmMNCj4gQEAgLTk4LDE1ICs5OCwxMCBAQCBzdGF0aWMgdm9pZCB2a21zX2F0b21pY19jcnRj X3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICAJCXZrbXNfc3RhdGUgPSB0b192a21z X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOw0KPiAgIAkJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRj X2Rlc3Ryb3lfc3RhdGUoY3J0Yy0+c3RhdGUpOw0KPiAgIAkJa2ZyZWUodmttc19zdGF0ZSk7DQo+ IC0JCWNydGMtPnN0YXRlID0gTlVMTDsNCj4gICAJfQ0KPiAgIA0KPiAgIAl2a21zX3N0YXRlID0g a3phbGxvYyhzaXplb2YoKnZrbXNfc3RhdGUpLCBHRlBfS0VSTkVMKTsNCj4gLQlpZiAoIXZrbXNf c3RhdGUpDQo+IC0JCXJldHVybjsNCj4gLQ0KPiAtCWNydGMtPnN0YXRlID0gJnZrbXNfc3RhdGUt PmJhc2U7DQo+IC0JY3J0Yy0+c3RhdGUtPmNydGMgPSBjcnRjOw0KPiArCV9fZHJtX2F0b21pY19o ZWxwZXJfY3J0Y19yZXNldChjcnRjLCAmdmttc19zdGF0ZS0+YmFzZSk7DQo+ICAgfQ0KPiAgIA0K PiAgIHN0YXRpYyBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9rbXMuYw0KPiBpbmRleCBlNmIxMWY2YWUyZTQuLjI4NzhiYzBhNDcxOCAxMDA2NDQNCj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMNCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMNCj4gQEAgLTYzMywxNCArNjMzLDcgQEAgdm9p ZCB2bXdfZHVfY3J0Y19yZXNldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+ICAgCX0NCj4gICAN Cj4gICAJdmNzID0ga3phbGxvYyhzaXplb2YoKnZjcyksIEdGUF9LRVJORUwpOw0KPiAtDQo+IC0J aWYgKCF2Y3MpIHsNCj4gLQkJRFJNX0VSUk9SKCJDYW5ub3QgYWxsb2NhdGUgdm13X2NydGNfc3Rh dGVcbiIpOw0KPiAtCQlyZXR1cm47DQo+IC0JfQ0KPiAtDQo+IC0JY3J0Yy0+c3RhdGUgPSAmdmNz LT5iYXNlOw0KPiAtCWNydGMtPnN0YXRlLT5jcnRjID0gY3J0YzsNCj4gKwlfX2RybV9hdG9taWNf aGVscGVyX2NydGNfcmVzZXQoY3J0YywgJnZjcy0+YmFzZSk7DQo+ICAgfQ0KPiAgIA0KPiAgIA0K PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuaCBiL2lu Y2x1ZGUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmgNCj4gaW5kZXggNWI4MmNjZmRiNTAy Li5hYjJiNWE0OTk0OGMgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfc3Rh dGVfaGVscGVyLmgNCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIu aA0KPiBAQCAtMzcsNiArMzcsOCBAQCBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGU7DQo+ICAgc3Ry dWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4Ow0KPiAgIHN0cnVjdCBkcm1fZGV2aWNlOw0KPiAg IA0KPiArdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQoc3RydWN0IGRybV9jcnRj ICpjcnRjLA0KPiArCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKTsNCj4gICB2 b2lkIGRybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQoc3RydWN0IGRybV9jcnRjICpjcnRjKTsN Cj4gICB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0 IGRybV9jcnRjICpjcnRjLA0KPiAgIAkJCQkJICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpz dGF0ZSk7DQo+IA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: "Li, Sun peng (Leo)" To: Maarten Lankhorst , "dri-devel@lists.freedesktop.org" Subject: Re: [PATCH 2/2] drm/atomic: Create and use __drm_atomic_helper_crtc_reset() everywhere Date: Mon, 12 Nov 2018 15:23:58 +0000 Message-ID: <2496f9bb-7b58-66f7-2e0f-6a3550822612@amd.com> References: <20181112150114.18395-1-maarten.lankhorst@linux.intel.com> <20181112150114.18395-2-maarten.lankhorst@linux.intel.com> In-Reply-To: <20181112150114.18395-2-maarten.lankhorst@linux.intel.com> Content-Language: en-US Content-ID: MIME-Version: 1.0 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Haneen Mohammed , Alexandre Belloni , David Airlie , Daniel Vetter , Mahesh Kumar , Liviu Dudau , "linux-tegra@vger.kernel.org" , Thierry Reding , Laurent Pinchart , "Koo, Anthony" , Thomas Hellstrom , "Lakha, Bhawanpreet" , "Francis, David" , "amd-gfx@lists.freedesktop.org" , Jonathan Hunter , "linux-rockchip@lists.infradead.org" , Ludovic Desroches , Tomi Valkeinen , Mali DP Maintainers , Ben Skeggs , "nouveau@lists.freedesktop.org" , VMware Graphics , Matthias Brugger , Steve Kowalik , "linux-arm-msm@vger.kernel.org" , "intel-gfx@lists.freedesktop.org" , Bruce Wang , Boris Brezillon , "linux-mediatek@lists.infradead.org" , Rodrigo Vivi , Maxime Ripard , Mikita Lipski , "Cheng, Tony" , "linux-arm-kernel@lists.infradead.org" , Sean Paul , Carsten Behling , Rodrigo Siqueira , "linux-kernel@vger.kernel.org" , "S, Shirish" , "linux-renesas-soc@vger.kernel.org" , Kieran Bingham , "Deucher, Alexander" , "freedreno@lists.freedesktop.org" , "Koenig, Christian" , Sravanthi Kollukuduru Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+geert=linux-m68k.org@lists.infradead.org List-ID: DQoNCk9uIDIwMTgtMTEtMTIgMTA6MDEgQU0sIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOg0KPiBX ZSBhbHJlYWR5IGhhdmUgX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVzZXQoKSBhbmQN Cj4gX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9yZXNldCgpLCBleHRlbmQgdGhpcyB0byBjcnRj IGFzIHdlbGwuDQo+IA0KPiBNb3N0IGRyaXZlcnMgYWxyZWFkeSBoYXZlIGEgZ3B1IHJlc2V0IGhv b2ssIGNvcnJlY3QgaXQuDQo+IE5vdXZlYXUgYWxyZWFkeSBpbXBsZW1lbnRlZCBpdHMgb3duIF9f ZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCgpLA0KPiBjb252ZXJ0IGl0IHRvIHRoZSBjb21t b24gb25lLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4u bGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4NCj4gQ2M6IEhhcnJ5IFdlbnRsYW5kIDxoYXJyeS53 ZW50bGFuZEBhbWQuY29tPg0KPiBDYzogTGVvIExpIDxzdW5wZW5nLmxpQGFtZC5jb20+DQo+IENj OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+DQo+IENjOiAiQ2hyaXN0 aWFuIEvDg8K2bmlnIiA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPg0KPiBDYzogIkRhdmlkIChD aHVuTWluZykgWmhvdSIgPERhdmlkMS5aaG91QGFtZC5jb20+DQo+IENjOiBEYXZpZCBBaXJsaWUg PGFpcmxpZWRAbGludXguaWU+DQo+IENjOiBMaXZpdSBEdWRhdSA8bGl2aXUuZHVkYXVAYXJtLmNv bT4NCj4gQ2M6IEJyaWFuIFN0YXJrZXkgPGJyaWFuLnN0YXJrZXlAYXJtLmNvbT4NCj4gQ2M6IE1h bGkgRFAgTWFpbnRhaW5lcnMgPG1hbGlkcEBmb3NzLmFybS5jb20+DQo+IENjOiBCb3JpcyBCcmV6 aWxsb24gPGJvcmlzLmJyZXppbGxvbkBib290bGluLmNvbT4NCj4gQ2M6IE5pY29sYXMgRmVycmUg PG5pY29sYXMuZmVycmVAbWljcm9jaGlwLmNvbT4NCj4gQ2M6IEFsZXhhbmRyZSBCZWxsb25pIDxh bGV4YW5kcmUuYmVsbG9uaUBib290bGluLmNvbT4NCj4gQ2M6IEx1ZG92aWMgRGVzcm9jaGVzIDxs dWRvdmljLmRlc3JvY2hlc0BtaWNyb2NoaXAuY29tPg0KPiBDYzogTWFhcnRlbiBMYW5raG9yc3Qg PG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4NCj4gQ2M6IE1heGltZSBSaXBhcmQg PG1heGltZS5yaXBhcmRAYm9vdGxpbi5jb20+DQo+IENjOiBTZWFuIFBhdWwgPHNlYW5AcG9vcmx5 LnJ1bj4NCj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+DQo+ IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+DQo+ IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+DQo+IENjOiBQaGlsaXBw IFphYmVsIDxwLnphYmVsQHBlbmd1dHJvbml4LmRlPg0KPiBDYzogQ0sgSHUgPGNrLmh1QG1lZGlh dGVrLmNvbT4NCj4gQ2M6IE1hdHRoaWFzIEJydWdnZXIgPG1hdHRoaWFzLmJnZ0BnbWFpbC5jb20+ DQo+IENjOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+DQo+IENjOiBCZW4gU2tlZ2dz IDxic2tlZ2dzQHJlZGhhdC5jb20+DQo+IENjOiBUb21pIFZhbGtlaW5lbiA8dG9taS52YWxrZWlu ZW5AdGkuY29tPg0KPiBDYzogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBpZGVh c29uYm9hcmQuY29tPg0KPiBDYzogS2llcmFuIEJpbmdoYW0gPGtpZXJhbi5iaW5naGFtK3JlbmVz YXNAaWRlYXNvbmJvYXJkLmNvbT4NCj4gQ2M6IFNhbmR5IEh1YW5nIDxoamNAcm9jay1jaGlwcy5j b20+DQo+IENjOiAiSGVpa28gU3TDg8K8Ym5lciIgPGhlaWtvQHNudGVjaC5kZT4NCj4gQ2M6IFRo aWVycnkgUmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BnbWFpbC5jb20+DQo+IENjOiBKb25hdGhhbiBI dW50ZXIgPGpvbmF0aGFuaEBudmlkaWEuY29tPg0KPiBDYzogRXJpYyBBbmhvbHQgPGVyaWNAYW5o b2x0Lm5ldD4NCj4gQ2M6IFZNd2FyZSBHcmFwaGljcyA8bGludXgtZ3JhcGhpY3MtbWFpbnRhaW5l ckB2bXdhcmUuY29tPg0KPiBDYzogU2luY2xhaXIgWWVoIDxzeWVoQHZtd2FyZS5jb20+DQo+IENj OiBUaG9tYXMgSGVsbHN0cm9tIDx0aGVsbHN0cm9tQHZtd2FyZS5jb20+DQo+IENjOiBUb255IENo ZW5nIDxUb255LkNoZW5nQGFtZC5jb20+DQo+IENjOiBTaGlyaXNoIFMgPHNoaXJpc2guc0BhbWQu Y29tPg0KPiBDYzogTWlraXRhIExpcHNraSA8bWlraXRhLmxpcHNraUBhbWQuY29tPg0KPiBDYzog Qmhhd2FucHJlZXQgTGFraGEgPEJoYXdhbnByZWV0Lkxha2hhQGFtZC5jb20+DQo+IENjOiBEYXZp ZCBGcmFuY2lzIDxEYXZpZC5GcmFuY2lzQGFtZC5jb20+DQo+IENjOiBBbnRob255IEtvbyA8QW50 aG9ueS5Lb29AYW1kLmNvbT4NCj4gQ2M6IEpleWt1bWFyIFNhbmthcmFuIDxqc2Fua2FAY29kZWF1 cm9yYS5vcmc+DQo+IENjOiBKb3JkYW4gQ3JvdXNlIDxqY3JvdXNlQGNvZGVhdXJvcmEub3JnPg0K PiBDYzogQnJ1Y2UgV2FuZyA8Ynp3YW5nQGNocm9taXVtLm9yZz4NCj4gQ2M6IFNyYXZhbnRoaSBL b2xsdWt1ZHVydSA8c2tvbGx1a3VAY29kZWF1cm9yYS5vcmc+DQo+IENjOiBBcmNoaXQgVGFuZWph IDxhcmNoaXR0QGNvZGVhdXJvcmEub3JnPg0KPiBDYzogU3RldmUgS293YWxpayA8c3RldmVuQHdl ZG9udHNsZWVwLm9yZz4NCj4gQ2M6IENhcnN0ZW4gQmVobGluZyA8Y2Fyc3Rlbi5iZWhsaW5nQGdv b2dsZW1haWwuY29tPg0KPiBDYzogSGFuZWVuIE1vaGFtbWVkIDxoYW1vaGFtbWVkLnNhQGdtYWls LmNvbT4NCj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+DQo+IENj OiBSb2RyaWdvIFNpcXVlaXJhIDxyb2RyaWdvc2lxdWVpcmFtZWxvQGdtYWlsLmNvbT4NCj4gQ2M6 IE1haGVzaCBLdW1hciA8bWFoZXNoMS5rdW1hckBpbnRlbC5jb20+DQo+IENjOiBhbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZw0KPiBDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y Zw0KPiBDYzogbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZw0KPiBDYzogbGludXgtYXJtLWtl cm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnDQo+IENjOiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnDQo+IENjOiBsaW51eC1tZWRpYXRla0BsaXN0cy5pbmZyYWRlYWQub3JnDQo+IENjOiBs aW51eC1hcm0tbXNtQHZnZXIua2VybmVsLm9yZw0KPiBDYzogZnJlZWRyZW5vQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZw0KPiBDYzogbm91dmVhdUBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gQ2M6IGxp bnV4LXJlbmVzYXMtc29jQHZnZXIua2VybmVsLm9yZw0KPiBDYzogbGludXgtcm9ja2NoaXBAbGlz dHMuaW5mcmFkZWFkLm9yZw0KPiBDYzogbGludXgtdGVncmFAdmdlci5rZXJuZWwub3JnDQo+IC0t LQ0KPiAgIC4uLi9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYyB8ICA0 ICstLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2NydGMuYyAgICAgICAgICAgICB8 ICA1ICstLQ0KPiAgIC4uLi9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2NydGMuYyAg ICB8ICA1ICstLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5j ICAgICB8IDMxICsrKysrKysrKysrKysrKystLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgICAgICAgICAgfCAgMiArLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pbXgv aXB1djMtY3J0Yy5jICAgICAgICAgICAgICB8ICA1ICstLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZHJtX2NydGMuYyAgICAgICB8ICA1ICstLQ0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgICAgICB8IDEyICsrLS0tLS0NCj4gICBkcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2NydGMuYyAgICAgfCAgNiArLS0tDQo+ICAgZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZC5jICAgICAgIHwgMTMgKystLS0tLS0N Cj4gICBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYyAgICAgICAgICAgfCAgNyAr Ky0tLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfY3J0Yy5jICAgICAgICB8 ICA0ICstLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMg ICB8ICA3ICsrKy0tDQo+ICAgZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMgICAgICAgICAgICAg ICAgICAgIHwgIDUgKy0tDQo+ICAgZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jICAgICAg ICAgICAgICAgIHwgIDggKystLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMu YyAgICAgICAgICAgICAgfCAgNyArLS0tLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2ttcy5jICAgICAgICAgICB8ICA5ICstLS0tLQ0KPiAgIGluY2x1ZGUvZHJtL2RybV9hdG9t aWNfc3RhdGVfaGVscGVyLmggICAgICAgICB8ICAyICsrDQo+ICAgMTggZmlsZXMgY2hhbmdlZCwg NTYgaW5zZXJ0aW9ucygrKSwgODEgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMNCj4gaW5kZXggNTA2NDc2 ODY0MmYzLi43NzBhNzE3MjZjZDEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYw0KPiBAQCAtMjgwMiw5ICsyODAyLDcgQEAg c3RhdGljIHZvaWQgZG1fY3J0Y19yZXNldF9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+ ICAgCWlmIChXQVJOX09OKCFzdGF0ZSkpDQo+ICAgCQlyZXR1cm47DQo+ICAgDQo+IC0JY3J0Yy0+ c3RhdGUgPSAmc3RhdGUtPmJhc2U7DQo+IC0JY3J0Yy0+c3RhdGUtPmNydGMgPSBjcnRjOw0KPiAt DQo+ICsJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KGNydGMsICZzdGF0ZS0+YmFzZSk7 DQo+ICAgfQ0KPiAgIA0KPiAgIHN0YXRpYyBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKg0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfY3J0Yy5jIGIvZHJpdmVycy9ncHUv ZHJtL2FybS9tYWxpZHBfY3J0Yy5jDQo+IGluZGV4IGUxYjcyNzgyODQ4Yy4uOWE5MjRmZjI3MTQ4 IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9jcnRjLmMNCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfY3J0Yy5jDQo+IEBAIC00NzQsMTAgKzQ3NCw3 IEBAIHN0YXRpYyB2b2lkIG1hbGlkcF9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykN Cj4gICANCj4gICAJa2ZyZWUoc3RhdGUpOw0KPiAgIAlzdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpz dGF0ZSksIEdGUF9LRVJORUwpOw0KPiAtCWlmIChzdGF0ZSkgew0KPiAtCQljcnRjLT5zdGF0ZSA9 ICZzdGF0ZS0+YmFzZTsNCj4gLQkJY3J0Yy0+c3RhdGUtPmNydGMgPSBjcnRjOw0KPiAtCX0NCj4g KwlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQoY3J0YywgJnN0YXRlLT5iYXNlKTsNCj4g ICB9DQo+ICAgDQo+ICAgc3RhdGljIHZvaWQgbWFsaWRwX2NydGNfZGVzdHJveV9zdGF0ZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXRtZWwt aGxjZGMvYXRtZWxfaGxjZGNfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0 bWVsX2hsY2RjX2NydGMuYw0KPiBpbmRleCA5NmY0MDgyNjcxZmUuLjgwODRkNTQ5YzdkMSAxMDA2 NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2NydGMu Yw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfY3J0Yy5j DQo+IEBAIC00MTIsMTAgKzQxMiw3IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2hsY2RjX2NydGNfcmVz ZXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQ0KPiAgIAl9DQo+ICAgDQo+ICAgCXN0YXRlID0ga3ph bGxvYyhzaXplb2YoKnN0YXRlKSwgR0ZQX0tFUk5FTCk7DQo+IC0JaWYgKHN0YXRlKSB7DQo+IC0J CWNydGMtPnN0YXRlID0gJnN0YXRlLT5iYXNlOw0KPiAtCQljcnRjLT5zdGF0ZS0+Y3J0YyA9IGNy dGM7DQo+IC0JfQ0KPiArCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldChjcnRjLCAmc3Rh dGUtPmJhc2UpOw0KPiAgIH0NCj4gICANCj4gICBzdGF0aWMgc3RydWN0IGRybV9jcnRjX3N0YXRl ICoNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMNCj4gaW5kZXgg M2JhOTk2MDY5ZDY5Li4zZWVlMWNhMzNmYzUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljX3N0YXRlX2hlbHBlci5jDQo+IEBAIC01NSw2ICs1NSwyOSBAQA0KPiAgICAqIGZvciB0 aGVzZSBmdW5jdGlvbnMuDQo+ICAgICovDQo+ICAgDQo+ICsvKioNCj4gKyAqIF9fZHJtX2F0b21p Y19oZWxwZXJfY3J0Y19yZXNldCAtIHJlc2V0IHN0YXRlIG9uIENSVEMNCj4gKyAqIEBjcnRjOiBk cm0gQ1JUQw0KPiArICogQGNydGNfc3RhdGU6IENSVEMgc3RhdGUgdG8gYXNzaWduDQo+ICsgKg0K PiArICogSW5pdGlhbGl6ZXMgdGhlIG5ld2x5IGFsbG9jYXRlZCBAY3J0Y19zdGF0ZSBhbmQgYXNz aWducyBpdCB0bw0KPiArICogdGhlICZkcm1fY29uZWN0b3ItPnN0YXRlIHBvaW50ZXIgb2YgQGNy dGMsIHVzdWFsbHkgcmVxdWlyZWQgd2hlbg0KICAgICAgICAgICAgXiBEbyB5b3UgbWVhbiBkcm1f Y3J0Yy0+c3RhdGU/DQoNCkZvciBhbWRncHVfZG0sDQpBY2tlZC1ieTogTGVvIExpIDxzdW5wZW5n LmxpQGFtZC5jb20+DQoNCkxlbw0KDQo+ICsgKiBpbml0aWFsaXppbmcgdGhlIGRyaXZlcnMgb3Ig d2hlbiBjYWxsZWQgZnJvbSB0aGUgJmRybV9jcnRjX2Z1bmNzLnJlc2V0DQo+ICsgKiBob29rLg0K PiArICoNCj4gKyAqIFRoaXMgaXMgdXNlZnVsIGZvciBkcml2ZXJzIHRoYXQgc3ViY2xhc3MgdGhl IENSVEMgc3RhdGUuDQo+ICsgKi8NCj4gK3ZvaWQNCj4gK19fZHJtX2F0b21pY19oZWxwZXJfY3J0 Y19yZXNldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsDQo+ICsJCQkgICAgICAgc3RydWN0IGRybV9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQ0KPiArew0KPiArCWlmIChjcnRjX3N0YXRlKQ0KPiArCQlj cnRjX3N0YXRlLT5jcnRjID0gY3J0YzsNCj4gKw0KPiArCWNydGMtPnN0YXRlID0gY3J0Y19zdGF0 ZTsNCj4gK30NCj4gK0VYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0 KTsNCj4gKw0KPiAgIC8qKg0KPiAgICAqIGRybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQgLSBk ZWZhdWx0ICZkcm1fY3J0Y19mdW5jcy5yZXNldCBob29rIGZvciBDUlRDcw0KPiAgICAqIEBjcnRj OiBkcm0gQ1JUQw0KPiBAQCAtNjQsMTQgKzg3LDE0IEBADQo+ICAgICovDQo+ICAgdm9pZCBkcm1f YXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICB7DQo+ ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0NCj4gKwkJa3phbGxvYyhzaXpl b2YoKmNydGMtPnN0YXRlKSwgR0ZQX0tFUk5FTCk7DQo+ICsNCj4gICAJaWYgKGNydGMtPnN0YXRl KQ0KPiAgIAkJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoY3J0Yy0+c3Rh dGUpOw0KPiAgIA0KPiAgIAlrZnJlZShjcnRjLT5zdGF0ZSk7DQo+IC0JY3J0Yy0+c3RhdGUgPSBr emFsbG9jKHNpemVvZigqY3J0Yy0+c3RhdGUpLCBHRlBfS0VSTkVMKTsNCj4gLQ0KPiAtCWlmIChj cnRjLT5zdGF0ZSkNCj4gLQkJY3J0Yy0+c3RhdGUtPmNydGMgPSBjcnRjOw0KPiArCV9fZHJtX2F0 b21pY19oZWxwZXJfY3J0Y19yZXNldChjcnRjLCBjcnRjX3N0YXRlKTsNCj4gICB9DQo+ICAgRVhQ T1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KTsNCj4gICANCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KPiBpbmRleCBmMzgzNDE3NTcxZWMuLjkwN2ZmZWI2 NDc4MSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j DQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KPiBAQCAtMTU0 NTcsNyArMTU0NTcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3Rh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikNCj4gICANCj4gICAJCV9fZHJtX2F0b21pY19oZWxw ZXJfY3J0Y19kZXN0cm95X3N0YXRlKCZjcnRjX3N0YXRlLT5iYXNlKTsNCj4gICAJCW1lbXNldChj cnRjX3N0YXRlLCAwLCBzaXplb2YoKmNydGNfc3RhdGUpKTsNCj4gLQkJY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjID0gJmNydGMtPmJhc2U7DQo+ICsJCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNl dCgmY3J0Yy0+YmFzZSwgJmNydGNfc3RhdGUtPmJhc2UpOw0KPiAgIA0KPiAgIAkJY3J0Y19zdGF0 ZS0+YmFzZS5hY3RpdmUgPSBjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSA9DQo+ICAgCQkJZGV2X3By aXYtPmRpc3BsYXkuZ2V0X3BpcGVfY29uZmlnKGNydGMsIGNydGNfc3RhdGUpOw0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0v aW14L2lwdXYzLWNydGMuYw0KPiBpbmRleCA3ZDRiNzEwYjgzN2EuLjhiYzM2ZjBkMmI2YiAxMDA2 NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1jcnRjLmMNCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2lteC9pcHV2My1jcnRjLmMNCj4gQEAgLTEyMCwxMiArMTIwLDkgQEAgc3Rh dGljIHZvaWQgaW14X2RybV9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICAJ CW1lbXNldChzdGF0ZSwgMCwgc2l6ZW9mKCpzdGF0ZSkpOw0KPiAgIAl9IGVsc2Ugew0KPiAgIAkJ c3RhdGUgPSBremFsbG9jKHNpemVvZigqc3RhdGUpLCBHRlBfS0VSTkVMKTsNCj4gLQkJaWYgKCFz dGF0ZSkNCj4gLQkJCXJldHVybjsNCj4gLQkJY3J0Yy0+c3RhdGUgPSAmc3RhdGUtPmJhc2U7DQo+ ICAgCX0NCj4gICANCj4gLQlzdGF0ZS0+YmFzZS5jcnRjID0gY3J0YzsNCj4gKwlfX2RybV9hdG9t aWNfaGVscGVyX2NydGNfcmVzZXQoY3J0YywgJnN0YXRlLT5iYXNlKTsNCj4gICB9DQo+ICAgDQo+ ICAgc3RhdGljIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqaW14X2RybV9jcnRjX2R1cGxpY2F0ZV9z dGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RybV9jcnRjLmMNCj4gaW5kZXggOTJlY2I5YmY5ODJjLi5hNzQzZTVlZDExNzcgMTAwNjQ0DQo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYw0KPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMNCj4gQEAgLTExOSwxMiArMTE5 LDkgQEAgc3RhdGljIHZvaWQgbXRrX2RybV9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykNCj4gICAJCW1lbXNldChzdGF0ZSwgMCwgc2l6ZW9mKCpzdGF0ZSkpOw0KPiAgIAl9IGVsc2Ug ew0KPiAgIAkJc3RhdGUgPSBremFsbG9jKHNpemVvZigqc3RhdGUpLCBHRlBfS0VSTkVMKTsNCj4g LQkJaWYgKCFzdGF0ZSkNCj4gLQkJCXJldHVybjsNCj4gLQkJY3J0Yy0+c3RhdGUgPSAmc3RhdGUt PmJhc2U7DQo+ICAgCX0NCj4gICANCj4gLQlzdGF0ZS0+YmFzZS5jcnRjID0gY3J0YzsNCj4gKwlf X2RybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQoY3J0YywgJnN0YXRlLT5iYXNlKTsNCj4gICB9 DQo+ICAgDQo+ICAgc3RhdGljIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbXRrX2RybV9jcnRjX2R1 cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NydGMuYw0KPiBpbmRleCBkNDUzMGQ2MDc2N2IuLmM4NmU2MDNmNDg2 YSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMu Yw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jDQo+IEBA IC04OTQsMjAgKzg5NCwxMiBAQCBzdGF0aWMgdm9pZCBkcHVfY3J0Y19yZXNldChzdHJ1Y3QgZHJt X2NydGMgKmNydGMpDQo+ICAgCQlfZHB1X2NydGNfc2V0X3N1c3BlbmQoY3J0YywgZmFsc2UpOw0K PiAgIA0KPiAgIAkvKiByZW1vdmUgcHJldmlvdXMgc3RhdGUsIGlmIHByZXNlbnQgKi8NCj4gLQlp ZiAoY3J0Yy0+c3RhdGUpIHsNCj4gKwlpZiAoY3J0Yy0+c3RhdGUpDQo+ICAgCQlkcHVfY3J0Y19k ZXN0cm95X3N0YXRlKGNydGMsIGNydGMtPnN0YXRlKTsNCj4gLQkJY3J0Yy0+c3RhdGUgPSAwOw0K PiAtCX0NCj4gICANCj4gICAJZHB1X2NydGMgPSB0b19kcHVfY3J0YyhjcnRjKTsNCj4gICAJY3N0 YXRlID0ga3phbGxvYyhzaXplb2YoKmNzdGF0ZSksIEdGUF9LRVJORUwpOw0KPiAtCWlmICghY3N0 YXRlKSB7DQo+IC0JCURQVV9FUlJPUigiZmFpbGVkIHRvIGFsbG9jYXRlIHN0YXRlXG4iKTsNCj4g LQkJcmV0dXJuOw0KPiAtCX0NCj4gLQ0KPiAtCWNzdGF0ZS0+YmFzZS5jcnRjID0gY3J0YzsNCj4g LQljcnRjLT5zdGF0ZSA9ICZjc3RhdGUtPmJhc2U7DQo+ICsJX19kcm1fYXRvbWljX2hlbHBlcl9j cnRjX3Jlc2V0KGNydGMsICZjc3RhdGUtPmJhc2UpOw0KPiAgIH0NCj4gICANCj4gICBzdGF0aWMg dm9pZCBkcHVfY3J0Y19oYW5kbGVfcG93ZXJfZXZlbnQodTMyIGV2ZW50X3R5cGUsIHZvaWQgKmFy ZykNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfY3J0 Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9jcnRjLmMNCj4gaW5kZXgg YjFkYTljZTU0Mzc5Li4xMzhkYTY2YjE1MzAgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9tZHA1L21kcDVfY3J0Yy5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9tZHA1L21kcDVfY3J0Yy5jDQo+IEBAIC0xMDE5LDExICsxMDE5LDcgQEAgc3RhdGljIHZv aWQgbWRwNV9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICAJfQ0KPiAgIA0K PiAgIAltZHA1X2NzdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCptZHA1X2NzdGF0ZSksIEdGUF9LRVJO RUwpOw0KPiAtDQo+IC0JaWYgKG1kcDVfY3N0YXRlKSB7DQo+IC0JCW1kcDVfY3N0YXRlLT5iYXNl LmNydGMgPSBjcnRjOw0KPiAtCQljcnRjLT5zdGF0ZSA9ICZtZHA1X2NzdGF0ZS0+YmFzZTsNCj4g LQl9DQo+ICsJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KGNydGMsICZtZHA1X2NzdGF0 ZS0+YmFzZSk7DQo+ICAgfQ0KPiAgIA0KPiAgIHN0YXRpYyBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg Kg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZC5j IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvaGVhZC5jDQo+IGluZGV4IDRmNTdl NTM3OTc5Ni4uMzQxNjAwNDA2NTg5IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9kaXNwbnY1MC9oZWFkLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlz cG52NTAvaGVhZC5jDQo+IEBAIC00MTgsMTYgKzQxOCw2IEBAIG52NTBfaGVhZF9hdG9taWNfZHVw bGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICAJcmV0dXJuICZhc3loLT5z dGF0ZTsNCj4gICB9DQo+ICAgDQo+IC1zdGF0aWMgdm9pZA0KPiAtX19kcm1fYXRvbWljX2hlbHBl cl9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywNCj4gLQkJCSAgICAgICBzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKnN0YXRlKQ0KPiAtew0KPiAtCWlmIChjcnRjLT5zdGF0ZSkNCj4gLQkJ Y3J0Yy0+ZnVuY3MtPmF0b21pY19kZXN0cm95X3N0YXRlKGNydGMsIGNydGMtPnN0YXRlKTsNCj4g LQljcnRjLT5zdGF0ZSA9IHN0YXRlOw0KPiAtCWNydGMtPnN0YXRlLT5jcnRjID0gY3J0YzsNCj4g LX0NCj4gLQ0KPiAgIHN0YXRpYyB2b2lkDQo+ICAgbnY1MF9oZWFkX3Jlc2V0KHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykNCj4gICB7DQo+IEBAIC00MzYsNiArNDI2LDkgQEAgbnY1MF9oZWFkX3Jlc2V0 KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICAJaWYgKFdBUk5fT04oIShhc3loID0ga3phbGxv YyhzaXplb2YoKmFzeWgpLCBHRlBfS0VSTkVMKSkpKQ0KPiAgIAkJcmV0dXJuOw0KPiAgIA0KPiAr CWlmIChjcnRjLT5zdGF0ZSkNCj4gKwkJY3J0Yy0+ZnVuY3MtPmF0b21pY19kZXN0cm95X3N0YXRl KGNydGMsIGNydGMtPnN0YXRlKTsNCj4gKw0KPiAgIAlfX2RybV9hdG9taWNfaGVscGVyX2NydGNf cmVzZXQoY3J0YywgJmFzeWgtPnN0YXRlKTsNCj4gICB9DQo+ICAgDQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFw ZHJtL29tYXBfY3J0Yy5jDQo+IGluZGV4IGNhZmZjNTQ3ZWY5Ny4uOWM1ZjgxMDk5MTNjIDEwMDY0 NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYw0KPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2NydGMuYw0KPiBAQCAtNTU0LDE0ICs1NTQsMTMg QEAgc3RhdGljIGludCBvbWFwX2NydGNfYXRvbWljX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsDQo+ICAgDQo+ICAgc3RhdGljIHZvaWQgb21hcF9jcnRjX3Jlc2V0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YykNCj4gICB7DQo+ICsJc3RydWN0IG9tYXBfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSA9DQo+ICsJCWt6YWxsb2Moc2l6ZW9mKCpjcnRjX3N0YXRlKSwgR0ZQX0tFUk5FTCk7DQo+ ICAgCWlmIChjcnRjLT5zdGF0ZSkNCj4gICAJCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0 cm95X3N0YXRlKGNydGMtPnN0YXRlKTsNCj4gICANCj4gICAJa2ZyZWUoY3J0Yy0+c3RhdGUpOw0K PiAtCWNydGMtPnN0YXRlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG9tYXBfY3J0Y19zdGF0ZSks IEdGUF9LRVJORUwpOw0KPiAtDQo+IC0JaWYgKGNydGMtPnN0YXRlKQ0KPiAtCQljcnRjLT5zdGF0 ZS0+Y3J0YyA9IGNydGM7DQo+ICsJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KGNydGMs ICZjcnRjX3N0YXRlLT5iYXNlKTsNCj4gICB9DQo+ICAgDQo+ICAgc3RhdGljIHN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2Fy X2R1X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfY3J0Yy5jDQo+IGlu ZGV4IDE3NzQxODQzY2Y1MS4uN2JlYWIyMmI0Njc0IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmNhci1kdS9yY2FyX2R1X2NydGMuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNh ci1kdS9yY2FyX2R1X2NydGMuYw0KPiBAQCAtODU3LDE0ICs4NTcsMTIgQEAgc3RhdGljIHZvaWQg cmNhcl9kdV9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICAJfQ0KPiAgIA0K PiAgIAlzdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpzdGF0ZSksIEdGUF9LRVJORUwpOw0KPiArCV9f ZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldChjcnRjLCAmc3RhdGUtPnN0YXRlKTsNCj4gICAJ aWYgKHN0YXRlID09IE5VTEwpDQo+ICAgCQlyZXR1cm47DQo+ICAgDQo+ICAgCXN0YXRlLT5jcmMu c291cmNlID0gVlNQMV9EVV9DUkNfTk9ORTsNCj4gICAJc3RhdGUtPmNyYy5pbmRleCA9IDA7DQo+ IC0NCj4gLQljcnRjLT5zdGF0ZSA9ICZzdGF0ZS0+c3RhdGU7DQo+IC0JY3J0Yy0+c3RhdGUtPmNy dGMgPSBjcnRjOw0KPiAgIH0NCj4gICANCj4gICBzdGF0aWMgaW50IHJjYXJfZHVfY3J0Y19lbmFi bGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jDQo+IGluZGV4IGZiNzBmYjQ4NmZiZi4uZDJkNWFhNjc2 MDg0IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJt X3ZvcC5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9w LmMNCj4gQEAgLTEwNzEsMTMgKzEwNzEsMTQgQEAgc3RhdGljIHZvaWQgdm9wX2NydGNfZGVzdHJv eShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+ICAgDQo+ICAgc3RhdGljIHZvaWQgdm9wX2NydGNf cmVzZXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQ0KPiAgIHsNCj4gKwlzdHJ1Y3Qgcm9ja2NoaXBf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9DQo+ICsJCWt6YWxsb2Moc2l6ZW9mKCpjcnRjX3N0YXRl KSwgR0ZQX0tFUk5FTCk7DQo+ICsNCj4gICAJaWYgKGNydGMtPnN0YXRlKQ0KPiAgIAkJX19kcm1f YXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoY3J0Yy0+c3RhdGUpOw0KPiAgIAlrZnJl ZShjcnRjLT5zdGF0ZSk7DQo+ICAgDQo+IC0JY3J0Yy0+c3RhdGUgPSBremFsbG9jKHNpemVvZihz dHJ1Y3Qgcm9ja2NoaXBfY3J0Y19zdGF0ZSksIEdGUF9LRVJORUwpOw0KPiAtCWlmIChjcnRjLT5z dGF0ZSkNCj4gLQkJY3J0Yy0+c3RhdGUtPmNydGMgPSBjcnRjOw0KPiArCV9fZHJtX2F0b21pY19o ZWxwZXJfY3J0Y19yZXNldChjcnRjLCAmY3J0Y19zdGF0ZS0+YmFzZSk7DQo+ICAgfQ0KPiAgIA0K PiAgIHN0YXRpYyBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnZvcF9jcnRjX2R1cGxpY2F0ZV9zdGF0 ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dGVncmEvZGMuYyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jDQo+IGluZGV4IGY4MGU4MmUx NjQ3NS4uMTQwZDYxOTFkOGQyIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEv ZGMuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYw0KPiBAQCAtMTE2NCwxMCAr MTE2NCw3IEBAIHN0YXRpYyB2b2lkIHRlZ3JhX2NydGNfcmVzZXQoc3RydWN0IGRybV9jcnRjICpj cnRjKQ0KPiAgIAljcnRjLT5zdGF0ZSA9IE5VTEw7DQo+ICAgDQo+ICAgCXN0YXRlID0ga3phbGxv YyhzaXplb2YoKnN0YXRlKSwgR0ZQX0tFUk5FTCk7DQo+IC0JaWYgKHN0YXRlKSB7DQo+IC0JCWNy dGMtPnN0YXRlID0gJnN0YXRlLT5iYXNlOw0KPiAtCQljcnRjLT5zdGF0ZS0+Y3J0YyA9IGNydGM7 DQo+IC0JfQ0KPiArCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldChjcnRjLCAmc3RhdGUt PmJhc2UpOw0KPiAgIA0KPiAgIAlkcm1fY3J0Y192YmxhbmtfcmVzZXQoY3J0Yyk7DQo+ICAgfQ0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jIGIvZHJpdmVycy9n cHUvZHJtL3ZjNC92YzRfY3J0Yy5jDQo+IGluZGV4IGNkMjI2ZTYzZDU1Ny4uNzZiZWVkYTE1N2Zj IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9jcnRjLmMNCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jDQo+IEBAIC05OTgsMTIgKzk5OCwxMiBAQCBz dGF0aWMgdm9pZCB2YzRfY3J0Y19kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywN Cj4gICBzdGF0aWMgdm9pZA0KPiAgIHZjNF9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykNCj4gICB7DQo+IC0JaWYgKGNydGMtPnN0YXRlKQ0KPiAtCQl2YzRfY3J0Y19kZXN0cm95X3N0 YXRlKGNydGMtPnN0YXRlKTsNCj4gKwlzdHJ1Y3QgdmM0X2NydGNfc3RhdGUgKmNydGNfc3RhdGUg PQ0KPiArCQlremFsbG9jKHNpemVvZigqY3J0Y19zdGF0ZSksIEdGUF9LRVJORUwpOw0KPiAgIA0K PiAtCWNydGMtPnN0YXRlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHZjNF9jcnRjX3N0YXRlKSwg R0ZQX0tFUk5FTCk7DQo+ICAgCWlmIChjcnRjLT5zdGF0ZSkNCj4gLQkJY3J0Yy0+c3RhdGUtPmNy dGMgPSBjcnRjOw0KPiArCQl2YzRfY3J0Y19kZXN0cm95X3N0YXRlKGNydGMsIGNydGMtPnN0YXRl KTsNCj4gKwlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQoY3J0YywgJmNydGNfc3RhdGUt PmJhc2UpOw0KPiAgIH0NCj4gICANCj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1 bmNzIHZjNF9jcnRjX2Z1bmNzID0gew0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYw0KPiBpbmRl eCAxNzdiYmNiMzgzMDYuLjdiMDE4ZjZlZTk3MSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3ZrbXMvdmttc19jcnRjLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19j cnRjLmMNCj4gQEAgLTk4LDE1ICs5OCwxMCBAQCBzdGF0aWMgdm9pZCB2a21zX2F0b21pY19jcnRj X3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICAJCXZrbXNfc3RhdGUgPSB0b192a21z X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOw0KPiAgIAkJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRj X2Rlc3Ryb3lfc3RhdGUoY3J0Yy0+c3RhdGUpOw0KPiAgIAkJa2ZyZWUodmttc19zdGF0ZSk7DQo+ IC0JCWNydGMtPnN0YXRlID0gTlVMTDsNCj4gICAJfQ0KPiAgIA0KPiAgIAl2a21zX3N0YXRlID0g a3phbGxvYyhzaXplb2YoKnZrbXNfc3RhdGUpLCBHRlBfS0VSTkVMKTsNCj4gLQlpZiAoIXZrbXNf c3RhdGUpDQo+IC0JCXJldHVybjsNCj4gLQ0KPiAtCWNydGMtPnN0YXRlID0gJnZrbXNfc3RhdGUt PmJhc2U7DQo+IC0JY3J0Yy0+c3RhdGUtPmNydGMgPSBjcnRjOw0KPiArCV9fZHJtX2F0b21pY19o ZWxwZXJfY3J0Y19yZXNldChjcnRjLCAmdmttc19zdGF0ZS0+YmFzZSk7DQo+ICAgfQ0KPiAgIA0K PiAgIHN0YXRpYyBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9rbXMuYw0KPiBpbmRleCBlNmIxMWY2YWUyZTQuLjI4NzhiYzBhNDcxOCAxMDA2NDQNCj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMNCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMNCj4gQEAgLTYzMywxNCArNjMzLDcgQEAgdm9p ZCB2bXdfZHVfY3J0Y19yZXNldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+ICAgCX0NCj4gICAN Cj4gICAJdmNzID0ga3phbGxvYyhzaXplb2YoKnZjcyksIEdGUF9LRVJORUwpOw0KPiAtDQo+IC0J aWYgKCF2Y3MpIHsNCj4gLQkJRFJNX0VSUk9SKCJDYW5ub3QgYWxsb2NhdGUgdm13X2NydGNfc3Rh dGVcbiIpOw0KPiAtCQlyZXR1cm47DQo+IC0JfQ0KPiAtDQo+IC0JY3J0Yy0+c3RhdGUgPSAmdmNz LT5iYXNlOw0KPiAtCWNydGMtPnN0YXRlLT5jcnRjID0gY3J0YzsNCj4gKwlfX2RybV9hdG9taWNf aGVscGVyX2NydGNfcmVzZXQoY3J0YywgJnZjcy0+YmFzZSk7DQo+ICAgfQ0KPiAgIA0KPiAgIA0K PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuaCBiL2lu Y2x1ZGUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmgNCj4gaW5kZXggNWI4MmNjZmRiNTAy Li5hYjJiNWE0OTk0OGMgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfc3Rh dGVfaGVscGVyLmgNCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIu aA0KPiBAQCAtMzcsNiArMzcsOCBAQCBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGU7DQo+ICAgc3Ry dWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4Ow0KPiAgIHN0cnVjdCBkcm1fZGV2aWNlOw0KPiAg IA0KPiArdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQoc3RydWN0IGRybV9jcnRj ICpjcnRjLA0KPiArCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKTsNCj4gICB2 b2lkIGRybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQoc3RydWN0IGRybV9jcnRjICpjcnRjKTsN Cj4gICB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0 IGRybV9jcnRjICpjcnRjLA0KPiAgIAkJCQkJICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpz dGF0ZSk7DQo+IA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sunpeng.Li@amd.com (Li, Sun peng (Leo)) Date: Mon, 12 Nov 2018 15:23:58 +0000 Subject: [PATCH 2/2] drm/atomic: Create and use __drm_atomic_helper_crtc_reset() everywhere In-Reply-To: <20181112150114.18395-2-maarten.lankhorst@linux.intel.com> References: <20181112150114.18395-1-maarten.lankhorst@linux.intel.com> <20181112150114.18395-2-maarten.lankhorst@linux.intel.com> Message-ID: <2496f9bb-7b58-66f7-2e0f-6a3550822612@amd.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 2018-11-12 10:01 AM, Maarten Lankhorst wrote: > We already have __drm_atomic_helper_connector_reset() and > __drm_atomic_helper_plane_reset(), extend this to crtc as well. > > Most drivers already have a gpu reset hook, correct it. > Nouveau already implemented its own __drm_atomic_helper_crtc_reset(), > convert it to the common one. > > Signed-off-by: Maarten Lankhorst > Cc: Harry Wentland > Cc: Leo Li > Cc: Alex Deucher > Cc: "Christian K??nig" > Cc: "David (ChunMing) Zhou" > Cc: David Airlie > Cc: Liviu Dudau > Cc: Brian Starkey > Cc: Mali DP Maintainers > Cc: Boris Brezillon > Cc: Nicolas Ferre > Cc: Alexandre Belloni > Cc: Ludovic Desroches > Cc: Maarten Lankhorst > Cc: Maxime Ripard > Cc: Sean Paul > Cc: Jani Nikula > Cc: Joonas Lahtinen > Cc: Rodrigo Vivi > Cc: Philipp Zabel > Cc: CK Hu > Cc: Matthias Brugger > Cc: Rob Clark > Cc: Ben Skeggs > Cc: Tomi Valkeinen > Cc: Laurent Pinchart > Cc: Kieran Bingham > Cc: Sandy Huang > Cc: "Heiko St??bner" > Cc: Thierry Reding > Cc: Jonathan Hunter > Cc: Eric Anholt > Cc: VMware Graphics > Cc: Sinclair Yeh > Cc: Thomas Hellstrom > Cc: Tony Cheng > Cc: Shirish S > Cc: Mikita Lipski > Cc: Bhawanpreet Lakha > Cc: David Francis > Cc: Anthony Koo > Cc: Jeykumar Sankaran > Cc: Jordan Crouse > Cc: Bruce Wang > Cc: Sravanthi Kollukuduru > Cc: Archit Taneja > Cc: Steve Kowalik > Cc: Carsten Behling > Cc: Haneen Mohammed > Cc: Daniel Vetter > Cc: Rodrigo Siqueira > Cc: Mahesh Kumar > Cc: amd-gfx at lists.freedesktop.org > Cc: dri-devel at lists.freedesktop.org > Cc: linux-kernel at vger.kernel.org > Cc: linux-arm-kernel at lists.infradead.org > Cc: intel-gfx at lists.freedesktop.org > Cc: linux-mediatek at lists.infradead.org > Cc: linux-arm-msm at vger.kernel.org > Cc: freedreno at lists.freedesktop.org > Cc: nouveau at lists.freedesktop.org > Cc: linux-renesas-soc at vger.kernel.org > Cc: linux-rockchip at lists.infradead.org > Cc: linux-tegra at vger.kernel.org > --- > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 +-- > drivers/gpu/drm/arm/malidp_crtc.c | 5 +-- > .../gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 5 +-- > drivers/gpu/drm/drm_atomic_state_helper.c | 31 ++++++++++++++++--- > drivers/gpu/drm/i915/intel_display.c | 2 +- > drivers/gpu/drm/imx/ipuv3-crtc.c | 5 +-- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 5 +-- > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 12 ++----- > drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 6 +--- > drivers/gpu/drm/nouveau/dispnv50/head.c | 13 ++------ > drivers/gpu/drm/omapdrm/omap_crtc.c | 7 ++--- > drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 4 +-- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 7 +++-- > drivers/gpu/drm/tegra/dc.c | 5 +-- > drivers/gpu/drm/vc4/vc4_crtc.c | 8 ++--- > drivers/gpu/drm/vkms/vkms_crtc.c | 7 +---- > drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 9 +----- > include/drm/drm_atomic_state_helper.h | 2 ++ > 18 files changed, 56 insertions(+), 81 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > index 5064768642f3..770a71726cd1 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -2802,9 +2802,7 @@ static void dm_crtc_reset_state(struct drm_crtc *crtc) > if (WARN_ON(!state)) > return; > > - crtc->state = &state->base; > - crtc->state->crtc = crtc; > - > + __drm_atomic_helper_crtc_reset(crtc, &state->base); > } > > static struct drm_crtc_state * > diff --git a/drivers/gpu/drm/arm/malidp_crtc.c b/drivers/gpu/drm/arm/malidp_crtc.c > index e1b72782848c..9a924ff27148 100644 > --- a/drivers/gpu/drm/arm/malidp_crtc.c > +++ b/drivers/gpu/drm/arm/malidp_crtc.c > @@ -474,10 +474,7 @@ static void malidp_crtc_reset(struct drm_crtc *crtc) > > kfree(state); > state = kzalloc(sizeof(*state), GFP_KERNEL); > - if (state) { > - crtc->state = &state->base; > - crtc->state->crtc = crtc; > - } > + __drm_atomic_helper_crtc_reset(crtc, &state->base); > } > > static void malidp_crtc_destroy_state(struct drm_crtc *crtc, > diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c > index 96f4082671fe..8084d549c7d1 100644 > --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c > +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c > @@ -412,10 +412,7 @@ static void atmel_hlcdc_crtc_reset(struct drm_crtc *crtc) > } > > state = kzalloc(sizeof(*state), GFP_KERNEL); > - if (state) { > - crtc->state = &state->base; > - crtc->state->crtc = crtc; > - } > + __drm_atomic_helper_crtc_reset(crtc, &state->base); > } > > static struct drm_crtc_state * > diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c > index 3ba996069d69..3eee1ca33fc5 100644 > --- a/drivers/gpu/drm/drm_atomic_state_helper.c > +++ b/drivers/gpu/drm/drm_atomic_state_helper.c > @@ -55,6 +55,29 @@ > * for these functions. > */ > > +/** > + * __drm_atomic_helper_crtc_reset - reset state on CRTC > + * @crtc: drm CRTC > + * @crtc_state: CRTC state to assign > + * > + * Initializes the newly allocated @crtc_state and assigns it to > + * the &drm_conector->state pointer of @crtc, usually required when ^ Do you mean drm_crtc->state? For amdgpu_dm, Acked-by: Leo Li Leo > + * initializing the drivers or when called from the &drm_crtc_funcs.reset > + * hook. > + * > + * This is useful for drivers that subclass the CRTC state. > + */ > +void > +__drm_atomic_helper_crtc_reset(struct drm_crtc *crtc, > + struct drm_crtc_state *crtc_state) > +{ > + if (crtc_state) > + crtc_state->crtc = crtc; > + > + crtc->state = crtc_state; > +} > +EXPORT_SYMBOL(__drm_atomic_helper_crtc_reset); > + > /** > * drm_atomic_helper_crtc_reset - default &drm_crtc_funcs.reset hook for CRTCs > * @crtc: drm CRTC > @@ -64,14 +87,14 @@ > */ > void drm_atomic_helper_crtc_reset(struct drm_crtc *crtc) > { > + struct drm_crtc_state *crtc_state = > + kzalloc(sizeof(*crtc->state), GFP_KERNEL); > + > if (crtc->state) > __drm_atomic_helper_crtc_destroy_state(crtc->state); > > kfree(crtc->state); > - crtc->state = kzalloc(sizeof(*crtc->state), GFP_KERNEL); > - > - if (crtc->state) > - crtc->state->crtc = crtc; > + __drm_atomic_helper_crtc_reset(crtc, crtc_state); > } > EXPORT_SYMBOL(drm_atomic_helper_crtc_reset); > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index f383417571ec..907ffeb64781 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -15457,7 +15457,7 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev) > > __drm_atomic_helper_crtc_destroy_state(&crtc_state->base); > memset(crtc_state, 0, sizeof(*crtc_state)); > - crtc_state->base.crtc = &crtc->base; > + __drm_atomic_helper_crtc_reset(&crtc->base, &crtc_state->base); > > crtc_state->base.active = crtc_state->base.enable = > dev_priv->display.get_pipe_config(crtc, crtc_state); > diff --git a/drivers/gpu/drm/imx/ipuv3-crtc.c b/drivers/gpu/drm/imx/ipuv3-crtc.c > index 7d4b710b837a..8bc36f0d2b6b 100644 > --- a/drivers/gpu/drm/imx/ipuv3-crtc.c > +++ b/drivers/gpu/drm/imx/ipuv3-crtc.c > @@ -120,12 +120,9 @@ static void imx_drm_crtc_reset(struct drm_crtc *crtc) > memset(state, 0, sizeof(*state)); > } else { > state = kzalloc(sizeof(*state), GFP_KERNEL); > - if (!state) > - return; > - crtc->state = &state->base; > } > > - state->base.crtc = crtc; > + __drm_atomic_helper_crtc_reset(crtc, &state->base); > } > > static struct drm_crtc_state *imx_drm_crtc_duplicate_state(struct drm_crtc *crtc) > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > index 92ecb9bf982c..a743e5ed1177 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > @@ -119,12 +119,9 @@ static void mtk_drm_crtc_reset(struct drm_crtc *crtc) > memset(state, 0, sizeof(*state)); > } else { > state = kzalloc(sizeof(*state), GFP_KERNEL); > - if (!state) > - return; > - crtc->state = &state->base; > } > > - state->base.crtc = crtc; > + __drm_atomic_helper_crtc_reset(crtc, &state->base); > } > > static struct drm_crtc_state *mtk_drm_crtc_duplicate_state(struct drm_crtc *crtc) > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > index d4530d60767b..c86e603f486a 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > @@ -894,20 +894,12 @@ static void dpu_crtc_reset(struct drm_crtc *crtc) > _dpu_crtc_set_suspend(crtc, false); > > /* remove previous state, if present */ > - if (crtc->state) { > + if (crtc->state) > dpu_crtc_destroy_state(crtc, crtc->state); > - crtc->state = 0; > - } > > dpu_crtc = to_dpu_crtc(crtc); > cstate = kzalloc(sizeof(*cstate), GFP_KERNEL); > - if (!cstate) { > - DPU_ERROR("failed to allocate state\n"); > - return; > - } > - > - cstate->base.crtc = crtc; > - crtc->state = &cstate->base; > + __drm_atomic_helper_crtc_reset(crtc, &cstate->base); > } > > static void dpu_crtc_handle_power_event(u32 event_type, void *arg) > diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c > index b1da9ce54379..138da66b1530 100644 > --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c > +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c > @@ -1019,11 +1019,7 @@ static void mdp5_crtc_reset(struct drm_crtc *crtc) > } > > mdp5_cstate = kzalloc(sizeof(*mdp5_cstate), GFP_KERNEL); > - > - if (mdp5_cstate) { > - mdp5_cstate->base.crtc = crtc; > - crtc->state = &mdp5_cstate->base; > - } > + __drm_atomic_helper_crtc_reset(crtc, &mdp5_cstate->base); > } > > static struct drm_crtc_state * > diff --git a/drivers/gpu/drm/nouveau/dispnv50/head.c b/drivers/gpu/drm/nouveau/dispnv50/head.c > index 4f57e5379796..341600406589 100644 > --- a/drivers/gpu/drm/nouveau/dispnv50/head.c > +++ b/drivers/gpu/drm/nouveau/dispnv50/head.c > @@ -418,16 +418,6 @@ nv50_head_atomic_duplicate_state(struct drm_crtc *crtc) > return &asyh->state; > } > > -static void > -__drm_atomic_helper_crtc_reset(struct drm_crtc *crtc, > - struct drm_crtc_state *state) > -{ > - if (crtc->state) > - crtc->funcs->atomic_destroy_state(crtc, crtc->state); > - crtc->state = state; > - crtc->state->crtc = crtc; > -} > - > static void > nv50_head_reset(struct drm_crtc *crtc) > { > @@ -436,6 +426,9 @@ nv50_head_reset(struct drm_crtc *crtc) > if (WARN_ON(!(asyh = kzalloc(sizeof(*asyh), GFP_KERNEL)))) > return; > > + if (crtc->state) > + crtc->funcs->atomic_destroy_state(crtc, crtc->state); > + > __drm_atomic_helper_crtc_reset(crtc, &asyh->state); > } > > diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c > index caffc547ef97..9c5f8109913c 100644 > --- a/drivers/gpu/drm/omapdrm/omap_crtc.c > +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c > @@ -554,14 +554,13 @@ static int omap_crtc_atomic_get_property(struct drm_crtc *crtc, > > static void omap_crtc_reset(struct drm_crtc *crtc) > { > + struct omap_crtc_state *crtc_state = > + kzalloc(sizeof(*crtc_state), GFP_KERNEL); > if (crtc->state) > __drm_atomic_helper_crtc_destroy_state(crtc->state); > > kfree(crtc->state); > - crtc->state = kzalloc(sizeof(struct omap_crtc_state), GFP_KERNEL); > - > - if (crtc->state) > - crtc->state->crtc = crtc; > + __drm_atomic_helper_crtc_reset(crtc, &crtc_state->base); > } > > static struct drm_crtc_state * > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c > index 17741843cf51..7beab22b4674 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c > @@ -857,14 +857,12 @@ static void rcar_du_crtc_reset(struct drm_crtc *crtc) > } > > state = kzalloc(sizeof(*state), GFP_KERNEL); > + __drm_atomic_helper_crtc_reset(crtc, &state->state); > if (state == NULL) > return; > > state->crc.source = VSP1_DU_CRC_NONE; > state->crc.index = 0; > - > - crtc->state = &state->state; > - crtc->state->crtc = crtc; > } > > static int rcar_du_crtc_enable_vblank(struct drm_crtc *crtc) > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > index fb70fb486fbf..d2d5aa676084 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > @@ -1071,13 +1071,14 @@ static void vop_crtc_destroy(struct drm_crtc *crtc) > > static void vop_crtc_reset(struct drm_crtc *crtc) > { > + struct rockchip_crtc_state *crtc_state = > + kzalloc(sizeof(*crtc_state), GFP_KERNEL); > + > if (crtc->state) > __drm_atomic_helper_crtc_destroy_state(crtc->state); > kfree(crtc->state); > > - crtc->state = kzalloc(sizeof(struct rockchip_crtc_state), GFP_KERNEL); > - if (crtc->state) > - crtc->state->crtc = crtc; > + __drm_atomic_helper_crtc_reset(crtc, &crtc_state->base); > } > > static struct drm_crtc_state *vop_crtc_duplicate_state(struct drm_crtc *crtc) > diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c > index f80e82e16475..140d6191d8d2 100644 > --- a/drivers/gpu/drm/tegra/dc.c > +++ b/drivers/gpu/drm/tegra/dc.c > @@ -1164,10 +1164,7 @@ static void tegra_crtc_reset(struct drm_crtc *crtc) > crtc->state = NULL; > > state = kzalloc(sizeof(*state), GFP_KERNEL); > - if (state) { > - crtc->state = &state->base; > - crtc->state->crtc = crtc; > - } > + __drm_atomic_helper_crtc_reset(crtc, &state->base); > > drm_crtc_vblank_reset(crtc); > } > diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c > index cd226e63d557..76beeda157fc 100644 > --- a/drivers/gpu/drm/vc4/vc4_crtc.c > +++ b/drivers/gpu/drm/vc4/vc4_crtc.c > @@ -998,12 +998,12 @@ static void vc4_crtc_destroy_state(struct drm_crtc *crtc, > static void > vc4_crtc_reset(struct drm_crtc *crtc) > { > - if (crtc->state) > - vc4_crtc_destroy_state(crtc->state); > + struct vc4_crtc_state *crtc_state = > + kzalloc(sizeof(*crtc_state), GFP_KERNEL); > > - crtc->state = kzalloc(sizeof(struct vc4_crtc_state), GFP_KERNEL); > if (crtc->state) > - crtc->state->crtc = crtc; > + vc4_crtc_destroy_state(crtc, crtc->state); > + __drm_atomic_helper_crtc_reset(crtc, &crtc_state->base); > } > > static const struct drm_crtc_funcs vc4_crtc_funcs = { > diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c > index 177bbcb38306..7b018f6ee971 100644 > --- a/drivers/gpu/drm/vkms/vkms_crtc.c > +++ b/drivers/gpu/drm/vkms/vkms_crtc.c > @@ -98,15 +98,10 @@ static void vkms_atomic_crtc_reset(struct drm_crtc *crtc) > vkms_state = to_vkms_crtc_state(crtc->state); > __drm_atomic_helper_crtc_destroy_state(crtc->state); > kfree(vkms_state); > - crtc->state = NULL; > } > > vkms_state = kzalloc(sizeof(*vkms_state), GFP_KERNEL); > - if (!vkms_state) > - return; > - > - crtc->state = &vkms_state->base; > - crtc->state->crtc = crtc; > + __drm_atomic_helper_crtc_reset(crtc, &vkms_state->base); > } > > static struct drm_crtc_state * > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c > index e6b11f6ae2e4..2878bc0a4718 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c > @@ -633,14 +633,7 @@ void vmw_du_crtc_reset(struct drm_crtc *crtc) > } > > vcs = kzalloc(sizeof(*vcs), GFP_KERNEL); > - > - if (!vcs) { > - DRM_ERROR("Cannot allocate vmw_crtc_state\n"); > - return; > - } > - > - crtc->state = &vcs->base; > - crtc->state->crtc = crtc; > + __drm_atomic_helper_crtc_reset(crtc, &vcs->base); > } > > > diff --git a/include/drm/drm_atomic_state_helper.h b/include/drm/drm_atomic_state_helper.h > index 5b82ccfdb502..ab2b5a49948c 100644 > --- a/include/drm/drm_atomic_state_helper.h > +++ b/include/drm/drm_atomic_state_helper.h > @@ -37,6 +37,8 @@ struct drm_private_state; > struct drm_modeset_acquire_ctx; > struct drm_device; > > +void __drm_atomic_helper_crtc_reset(struct drm_crtc *crtc, > + struct drm_crtc_state *state); > void drm_atomic_helper_crtc_reset(struct drm_crtc *crtc); > void __drm_atomic_helper_crtc_duplicate_state(struct drm_crtc *crtc, > struct drm_crtc_state *state); >