From mboxrd@z Thu Jan 1 00:00:00 1970 From: Inki Dae Subject: Re: [PATCH v10 17/17] drm/exynos: split exynos_crtc->dpms in enable() and disable() Date: Tue, 02 Jun 2015 21:09:49 +0900 Message-ID: <556D9D0D.6010408@samsung.com> References: <1433171095-23773-1-git-send-email-gustavo@padovan.org> <1433171095-23773-18-git-send-email-gustavo@padovan.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 202736E81C for ; Tue, 2 Jun 2015 05:09:51 -0700 (PDT) Received: from epcpsbgr2.samsung.com (u142.gpu120.samsung.co.kr [203.254.230.142]) by mailout1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NPB01CMCGGD8L20@mailout1.samsung.com> for dri-devel@lists.freedesktop.org; Tue, 02 Jun 2015 21:09:49 +0900 (KST) In-reply-to: <1433171095-23773-18-git-send-email-gustavo@padovan.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Gustavo Padovan Cc: tjakobi@math.uni-bielefeld.de, linux-samsung-soc@vger.kernel.org, Gustavo Padovan , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGksCgpPbiAyMDE164WEIDA27JuUIDAy7J28IDAwOjA0LCBHdXN0YXZvIFBhZG92YW4gd3JvdGU6 Cj4gRnJvbTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvLnVr Pgo+IAo+IFRvIGZvbGxvdyBtb3JlIGNsb3NlbHkgdGhlIG5ldyBhdG9taWMgQVBJIHdlIHNwbGl0 IHRoZSBkcG1zKCkKPiBoZWxwZXIgaW50byB0aGUgZW5hYmxlKCkgYW5kIGRpc2FibGUoKSBoZWxw ZXIgdG8gZ2V0IGV4YWN0bHkgdGhlCj4gc2FtZSBzZW1hbnRpY3MuCgpCZWxvdyBpcyB0aGUgcmVz dWx0IGZyb20gY2hlY2twYXRjaC5wbC4gUGxlYXNlIGZpeCBhbGwgZXJyb3JzIGFuZCBjaGVjawp5 b3VyIHBhdGNoIHdpdGggY2hlY2twYXRjaC5wbCBiZWZvcmUgcG9zdGluZyBpdC4KClRoYW5rcywK SW5raSBEYWUKCnRvdGFsOiA2MiBlcnJvcnMsIDAgd2FybmluZ3MsIDQxMCBsaW5lcyBjaGVja2Vk CgoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBHdXN0YXZvIFBhZG92YW4gPGd1c3Rhdm8ucGFkb3ZhbkBj b2xsYWJvcmEuY28udWs+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zN19k cm1fZGVjb24uYyB8IDg3ICsrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fY3J0Yy5jICAgfCAgOCArLS0KPiAgZHJpdmVycy9n cHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rydi5oICAgIHwgIDYgKystCj4gIGRyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zX2RybV9maW1kLmMgICB8IDY5ICsrKysrLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fdmlkaS5jICAgfCA1MyAr KysrKysrLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIu YyAgICAgIHwgMjYgKysrLS0tLS0tCj4gIDYgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygr KSwgMTg3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL2V4eW5vczdfZHJtX2RlY29uLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczdf ZHJtX2RlY29uLmMKPiBpbmRleCBmMjllNGJlLi5kNjU5YmEyIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zN19kcm1fZGVjb24uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zN19kcm1fZGVjb24uYwo+IEBAIC02MDMsNzUgKzYwMywzOSBAQCBz dGF0aWMgdm9pZCBkZWNvbl9pbml0KHN0cnVjdCBkZWNvbl9jb250ZXh0ICpjdHgpCj4gIAkJd3Jp dGVsKFZJRENPTjFfVkNMS19IT0xELCBjdHgtPnJlZ3MgKyBWSURDT04xKDApKTsKPiAgfQo+ICAK PiAtc3RhdGljIGludCBkZWNvbl9wb3dlcm9uKHN0cnVjdCBkZWNvbl9jb250ZXh0ICpjdHgpCj4g K3N0YXRpYyB2b2lkIGRlY29uX2VuYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+ ICB7Cj4gLQlpbnQgcmV0Owo+ICsJc3RydWN0IGRlY29uX2NvbnRleHQgKmN0eCA9IGNydGMtPmN0 eDsKPiAgCj4gIAlpZiAoIWN0eC0+c3VzcGVuZGVkKQo+IC0JCXJldHVybiAwOwo+ICsJCXJldHVy bjsKPiAgCj4gIAljdHgtPnN1c3BlbmRlZCA9IGZhbHNlOwo+ICAKPiAgCXBtX3J1bnRpbWVfZ2V0 X3N5bmMoY3R4LT5kZXYpOwo+ICAKPiAtCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShjdHgtPnBj bGspOwo+IC0JaWYgKHJldCA8IDApIHsKPiAtCQlEUk1fRVJST1IoIkZhaWxlZCB0byBwcmVwYXJl X2VuYWJsZSB0aGUgcGNsayBbJWRdXG4iLCByZXQpOwo+IC0JCWdvdG8gcGNsa19lcnI7Cj4gLQl9 Cj4gLQo+IC0JcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGN0eC0+YWNsayk7Cj4gLQlpZiAocmV0 IDwgMCkgewo+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRvIHByZXBhcmVfZW5hYmxlIHRoZSBhY2xr IFslZF1cbiIsIHJldCk7Cj4gLQkJZ290byBhY2xrX2VycjsKPiAtCX0KPiAtCj4gLQlyZXQgPSBj bGtfcHJlcGFyZV9lbmFibGUoY3R4LT5lY2xrKTsKPiAtCWlmICAocmV0IDwgMCkgewo+IC0JCURS TV9FUlJPUigiRmFpbGVkIHRvIHByZXBhcmVfZW5hYmxlIHRoZSBlY2xrIFslZF1cbiIsIHJldCk7 Cj4gLQkJZ290byBlY2xrX2VycjsKPiAtCX0KPiAtCj4gLQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFi bGUoY3R4LT52Y2xrKTsKPiAtCWlmICAocmV0IDwgMCkgewo+IC0JCURSTV9FUlJPUigiRmFpbGVk IHRvIHByZXBhcmVfZW5hYmxlIHRoZSB2Y2xrIFslZF1cbiIsIHJldCk7Cj4gLQkJZ290byB2Y2xr X2VycjsKPiAtCX0KPiArCWNsa19wcmVwYXJlX2VuYWJsZShjdHgtPnBjbGspOwo+ICsJY2xrX3By ZXBhcmVfZW5hYmxlKGN0eC0+YWNsayk7Cj4gKwljbGtfcHJlcGFyZV9lbmFibGUoY3R4LT5lY2xr KTsKPiArCWNsa19wcmVwYXJlX2VuYWJsZShjdHgtPnZjbGspOwo+ICAKPiAgCWRlY29uX2luaXQo Y3R4KTsKPiAgCj4gIAkvKiBpZiB2Ymxhbmsgd2FzIGVuYWJsZWQgc3RhdHVzLCBlbmFibGUgaXQg YWdhaW4uICovCj4gLQlpZiAodGVzdF9hbmRfY2xlYXJfYml0KDAsICZjdHgtPmlycV9mbGFncykp IHsKPiAtCQlyZXQgPSBkZWNvbl9lbmFibGVfdmJsYW5rKGN0eC0+Y3J0Yyk7Cj4gLQkJaWYgKHJl dCkgewo+IC0JCQlEUk1fRVJST1IoIkZhaWxlZCB0byByZS1lbmFibGUgdmJsYW5rIFslZF1cbiIs IHJldCk7Cj4gLQkJCWdvdG8gZXJyOwo+IC0JCX0KPiAtCX0KPiArCWlmICh0ZXN0X2FuZF9jbGVh cl9iaXQoMCwgJmN0eC0+aXJxX2ZsYWdzKSkKPiArCQlkZWNvbl9lbmFibGVfdmJsYW5rKGN0eC0+ Y3J0Yyk7Cj4gIAo+ICAJZGVjb25fd2luZG93X3Jlc3VtZShjdHgpOwo+ICAKPiAgCWRlY29uX2Fw cGx5KGN0eCk7Cj4gLQo+IC0JcmV0dXJuIDA7Cj4gLQo+IC1lcnI6Cj4gLQljbGtfZGlzYWJsZV91 bnByZXBhcmUoY3R4LT52Y2xrKTsKPiAtdmNsa19lcnI6Cj4gLQljbGtfZGlzYWJsZV91bnByZXBh cmUoY3R4LT5lY2xrKTsKPiAtZWNsa19lcnI6Cj4gLQljbGtfZGlzYWJsZV91bnByZXBhcmUoY3R4 LT5hY2xrKTsKPiAtYWNsa19lcnI6Cj4gLQljbGtfZGlzYWJsZV91bnByZXBhcmUoY3R4LT5wY2xr KTsKPiAtcGNsa19lcnI6Cj4gLQljdHgtPnN1c3BlbmRlZCA9IHRydWU7Cj4gLQlyZXR1cm4gcmV0 Owo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGRlY29uX3Bvd2Vyb2ZmKHN0cnVjdCBkZWNvbl9jb250 ZXh0ICpjdHgpCj4gK3N0YXRpYyB2b2lkIGRlY29uX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1f Y3J0YyAqY3J0YykKPiAgewo+ICsJc3RydWN0IGRlY29uX2NvbnRleHQgKmN0eCA9IGNydGMtPmN0 eDsKPiArCj4gIAlpZiAoY3R4LT5zdXNwZW5kZWQpCj4gLQkJcmV0dXJuIDA7Cj4gKwkJcmV0dXJu Owo+ICAKPiAgCS8qCj4gIAkgKiBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCB3aW5kb3dz IGFyZSBkaXNhYmxlZCBiZWZvcmUgd2UKPiBAQCAtNjg4LDMwICs2NTIsMTEgQEAgc3RhdGljIGlu dCBkZWNvbl9wb3dlcm9mZihzdHJ1Y3QgZGVjb25fY29udGV4dCAqY3R4KQo+ICAJcG1fcnVudGlt ZV9wdXRfc3luYyhjdHgtPmRldik7Cj4gIAo+ICAJY3R4LT5zdXNwZW5kZWQgPSB0cnVlOwo+IC0J cmV0dXJuIDA7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGRlY29uX2RwbXMoc3RydWN0IGV4eW5v c19kcm1fY3J0YyAqY3J0YywgaW50IG1vZGUpCj4gLXsKPiAtCURSTV9ERUJVR19LTVMoIiVzLCAl ZFxuIiwgX19GSUxFX18sIG1vZGUpOwo+IC0KPiAtCXN3aXRjaCAobW9kZSkgewo+IC0JY2FzZSBE Uk1fTU9ERV9EUE1TX09OOgo+IC0JCWRlY29uX3Bvd2Vyb24oY3J0Yy0+Y3R4KTsKPiAtCQlicmVh azsKPiAtCWNhc2UgRFJNX01PREVfRFBNU19TVEFOREJZOgo+IC0JY2FzZSBEUk1fTU9ERV9EUE1T X1NVU1BFTkQ6Cj4gLQljYXNlIERSTV9NT0RFX0RQTVNfT0ZGOgo+IC0JCWRlY29uX3Bvd2Vyb2Zm KGNydGMtPmN0eCk7Cj4gLQkJYnJlYWs7Cj4gLQlkZWZhdWx0Ogo+IC0JCURSTV9ERUJVR19LTVMo InVuc3BlY2lmaWVkIG1vZGUgJWRcbiIsIG1vZGUpOwo+IC0JCWJyZWFrOwo+IC0JfQo+ICB9Cj4g IAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGV4eW5vc19kcm1fY3J0Y19vcHMgZGVjb25fY3J0Y19v cHMgPSB7Cj4gLQkuZHBtcyA9IGRlY29uX2RwbXMsCj4gKwkuZW5hYmxlID0gZGVjb25fZW5hYmxl LAo+ICsJLmRpc2FibGUgPSBkZWNvbl9kaXNhYmxlLAo+ICAJLm1vZGVfZml4dXAgPSBkZWNvbl9t b2RlX2ZpeHVwLAo+ICAJLmNvbW1pdCA9IGRlY29uX2NvbW1pdCwKPiAgCS5lbmFibGVfdmJsYW5r ID0gZGVjb25fZW5hYmxlX3ZibGFuaywKPiBAQCAtNzk2LDcgKzc0MSw3IEBAIHN0YXRpYyB2b2lk IGRlY29uX3VuYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwK PiAgewo+ICAJc3RydWN0IGRlY29uX2NvbnRleHQgKmN0eCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYp Owo+ICAKPiAtCWRlY29uX2RwbXMoY3R4LT5jcnRjLCBEUk1fTU9ERV9EUE1TX09GRik7Cj4gKwlk ZWNvbl9kaXNhYmxlKGN0eC0+Y3J0Yyk7Cj4gIAo+ICAJaWYgKGN0eC0+ZGlzcGxheSkKPiAgCQll eHlub3NfZHBpX3JlbW92ZShjdHgtPmRpc3BsYXkpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX2NydGMuYwo+IGluZGV4IGI3YzZkNTEuLjY0NGI0YjcgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2NydGMuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jcnRjLmMKPiBAQCAtMjksOCArMjksOCBAQCBzdGF0 aWMgdm9pZCBleHlub3NfZHJtX2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAg CWlmIChleHlub3NfY3J0Yy0+ZW5hYmxlZCkKPiAgCQlyZXR1cm47Cj4gIAo+IC0JaWYgKGV4eW5v c19jcnRjLT5vcHMtPmRwbXMpCj4gLQkJZXh5bm9zX2NydGMtPm9wcy0+ZHBtcyhleHlub3NfY3J0 YywgRFJNX01PREVfRFBNU19PTik7Cj4gKwlpZiAoZXh5bm9zX2NydGMtPm9wcy0+ZW5hYmxlKQo+ ICsJCWV4eW5vc19jcnRjLT5vcHMtPmVuYWJsZShleHlub3NfY3J0Yyk7Cj4gIAo+ICAJZXh5bm9z X2NydGMtPmVuYWJsZWQgPSB0cnVlOwo+ICAKPiBAQCAtNTEsOCArNTEsOCBAQCBzdGF0aWMgdm9p ZCBleHlub3NfZHJtX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAo+ICAJ ZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsKPiAgCj4gLQlpZiAoZXh5bm9zX2NydGMtPm9wcy0+ ZHBtcykKPiAtCQlleHlub3NfY3J0Yy0+b3BzLT5kcG1zKGV4eW5vc19jcnRjLCBEUk1fTU9ERV9E UE1TX09GRik7Cj4gKwlpZiAoZXh5bm9zX2NydGMtPm9wcy0+ZGlzYWJsZSkKPiArCQlleHlub3Nf Y3J0Yy0+b3BzLT5kaXNhYmxlKGV4eW5vc19jcnRjKTsKPiAgCj4gIAlleHlub3NfY3J0Yy0+ZW5h YmxlZCA9IGZhbHNlOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3Mv ZXh5bm9zX2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYu aAo+IGluZGV4IDg2ZDY4OTQuLjFjNjZmNjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2V4eW5vcy9leHlub3NfZHJtX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX2Rydi5oCj4gQEAgLTE1Nyw3ICsxNTcsOCBAQCBzdHJ1Y3QgZXh5bm9zX2RybV9k aXNwbGF5IHsKPiAgLyoKPiAgICogRXh5bm9zIGRybSBjcnRjIG9wcwo+ICAgKgo+IC0gKiBAZHBt czogY29udHJvbCBkZXZpY2UgcG93ZXIuCj4gKyAqIEBlbmFibGU6IGVuYWJsZSB0aGUgZGV2aWNl Cj4gKyAqIEBkaXNhYmxlOiBkaXNhYmxlIHRoZSBkZXZpY2UKPiAgICogQG1vZGVfZml4dXA6IGZp eCBtb2RlIGRhdGEgYmVmb3JlIGFwcGx5aW5nIGl0Cj4gICAqIEBjb21taXQ6IHNldCBjdXJyZW50 IGh3IHNwZWNpZmljIGRpc3BsYXkgbW9kZSB0byBody4KPiAgICogQGVuYWJsZV92Ymxhbms6IHNw ZWNpZmljIGRyaXZlciBjYWxsYmFjayBmb3IgZW5hYmxpbmcgdmJsYW5rIGludGVycnVwdC4KPiBA QCAtMTc1LDcgKzE3Niw4IEBAIHN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgewo+ICAgKi8KPiAg c3RydWN0IGV4eW5vc19kcm1fY3J0YzsKPiAgc3RydWN0IGV4eW5vc19kcm1fY3J0Y19vcHMgewo+ IC0Jdm9pZCAoKmRwbXMpKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMsIGludCBtb2RlKTsK PiArCXZvaWQgKCplbmFibGUpKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpOwo+ICsJdm9p ZCAoKmRpc2FibGUpKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpOwo+ICAJYm9vbCAoKm1v ZGVfZml4dXApKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMsCj4gIAkJCQljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiAgCQkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX2ZpbWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9maW1k LmMKPiBpbmRleCBiMzI2YjMxLi45NjYxODUzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2RybV9maW1kLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9z L2V4eW5vc19kcm1fZmltZC5jCj4gQEAgLTgwNSw1NyArODA1LDM1IEBAIHN0YXRpYyB2b2lkIGZp bWRfYXBwbHkoc3RydWN0IGZpbWRfY29udGV4dCAqY3R4KQo+ICAJZmltZF9jb21taXQoY3R4LT5j cnRjKTsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBmaW1kX3Bvd2Vyb24oc3RydWN0IGZpbWRfY29u dGV4dCAqY3R4KQo+ICtzdGF0aWMgdm9pZCBmaW1kX2VuYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9j cnRjICpjcnRjKQo+ICB7Cj4gLQlpbnQgcmV0Owo+ICsJc3RydWN0IGZpbWRfY29udGV4dCAqY3R4 ID0gY3J0Yy0+Y3R4Owo+ICAKPiAgCWlmICghY3R4LT5zdXNwZW5kZWQpCj4gLQkJcmV0dXJuIDA7 Cj4gKwkJcmV0dXJuOwo+ICAKPiAgCWN0eC0+c3VzcGVuZGVkID0gZmFsc2U7Cj4gIAo+ICAJcG1f cnVudGltZV9nZXRfc3luYyhjdHgtPmRldik7Cj4gIAo+IC0JcmV0ID0gY2xrX3ByZXBhcmVfZW5h YmxlKGN0eC0+YnVzX2Nsayk7Cj4gLQlpZiAocmV0IDwgMCkgewo+IC0JCURSTV9FUlJPUigiRmFp bGVkIHRvIHByZXBhcmVfZW5hYmxlIHRoZSBidXMgY2xrIFslZF1cbiIsIHJldCk7Cj4gLQkJZ290 byBidXNfY2xrX2VycjsKPiAtCX0KPiAtCj4gLQlyZXQgPSBjbGtfcHJlcGFyZV9lbmFibGUoY3R4 LT5sY2RfY2xrKTsKPiAtCWlmICAocmV0IDwgMCkgewo+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRv IHByZXBhcmVfZW5hYmxlIHRoZSBsY2QgY2xrIFslZF1cbiIsIHJldCk7Cj4gLQkJZ290byBsY2Rf Y2xrX2VycjsKPiAtCX0KPiArCWNsa19wcmVwYXJlX2VuYWJsZShjdHgtPmJ1c19jbGspOwo+ICsJ Y2xrX3ByZXBhcmVfZW5hYmxlKGN0eC0+bGNkX2Nsayk7Cj4gIAo+ICAJLyogaWYgdmJsYW5rIHdh cyBlbmFibGVkIHN0YXR1cywgZW5hYmxlIGl0IGFnYWluLiAqLwo+IC0JaWYgKHRlc3RfYW5kX2Ns ZWFyX2JpdCgwLCAmY3R4LT5pcnFfZmxhZ3MpKSB7Cj4gLQkJcmV0ID0gZmltZF9lbmFibGVfdmJs YW5rKGN0eC0+Y3J0Yyk7Cj4gLQkJaWYgKHJldCkgewo+IC0JCQlEUk1fRVJST1IoIkZhaWxlZCB0 byByZS1lbmFibGUgdmJsYW5rIFslZF1cbiIsIHJldCk7Cj4gLQkJCWdvdG8gZW5hYmxlX3ZibGFu a19lcnI7Cj4gLQkJfQo+IC0JfQo+ICsJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdCgwLCAmY3R4LT5p cnFfZmxhZ3MpKQo+ICsJCWZpbWRfZW5hYmxlX3ZibGFuayhjdHgtPmNydGMpOwo+ICAKPiAgCWZp bWRfd2luZG93X3Jlc3VtZShjdHgpOwo+ICAKPiAgCWZpbWRfYXBwbHkoY3R4KTsKPiAtCj4gLQly ZXR1cm4gMDsKPiAtCj4gLWVuYWJsZV92YmxhbmtfZXJyOgo+IC0JY2xrX2Rpc2FibGVfdW5wcmVw YXJlKGN0eC0+bGNkX2Nsayk7Cj4gLWxjZF9jbGtfZXJyOgo+IC0JY2xrX2Rpc2FibGVfdW5wcmVw YXJlKGN0eC0+YnVzX2Nsayk7Cj4gLWJ1c19jbGtfZXJyOgo+IC0JY3R4LT5zdXNwZW5kZWQgPSB0 cnVlOwo+IC0JcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBmaW1kX3Bvd2Vyb2Zm KHN0cnVjdCBmaW1kX2NvbnRleHQgKmN0eCkKPiArc3RhdGljIHZvaWQgZmltZF9kaXNhYmxlKHN0 cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCj4gIHsKPiArCXN0cnVjdCBmaW1kX2NvbnRleHQg KmN0eCA9IGNydGMtPmN0eDsKPiArCj4gIAlpZiAoY3R4LT5zdXNwZW5kZWQpCj4gLQkJcmV0dXJu IDA7Cj4gKwkJcmV0dXJuOwo+ICAKPiAgCS8qCj4gIAkgKiBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0 aGF0IGFsbCB3aW5kb3dzIGFyZSBkaXNhYmxlZCBiZWZvcmUgd2UKPiBAQCAtODcwLDI2ICs4NDgs NiBAQCBzdGF0aWMgaW50IGZpbWRfcG93ZXJvZmYoc3RydWN0IGZpbWRfY29udGV4dCAqY3R4KQo+ ICAJcG1fcnVudGltZV9wdXRfc3luYyhjdHgtPmRldik7Cj4gIAo+ICAJY3R4LT5zdXNwZW5kZWQg PSB0cnVlOwo+IC0JcmV0dXJuIDA7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGZpbWRfZHBtcyhz dHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLCBpbnQgbW9kZSkKPiAtewo+IC0JRFJNX0RFQlVH X0tNUygiJXMsICVkXG4iLCBfX0ZJTEVfXywgbW9kZSk7Cj4gLQo+IC0Jc3dpdGNoIChtb2RlKSB7 Cj4gLQljYXNlIERSTV9NT0RFX0RQTVNfT046Cj4gLQkJZmltZF9wb3dlcm9uKGNydGMtPmN0eCk7 Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIERSTV9NT0RFX0RQTVNfU1RBTkRCWToKPiAtCWNhc2UgRFJN X01PREVfRFBNU19TVVNQRU5EOgo+IC0JY2FzZSBEUk1fTU9ERV9EUE1TX09GRjoKPiAtCQlmaW1k X3Bvd2Vyb2ZmKGNydGMtPmN0eCk7Cj4gLQkJYnJlYWs7Cj4gLQlkZWZhdWx0Ogo+IC0JCURSTV9E RUJVR19LTVMoInVuc3BlY2lmaWVkIG1vZGUgJWRcbiIsIG1vZGUpOwo+IC0JCWJyZWFrOwo+IC0J fQo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBmaW1kX3RyaWdnZXIoc3RydWN0IGRldmljZSAqZGV2 KQo+IEBAIC05NjQsNyArOTIyLDggQEAgc3RhdGljIHZvaWQgZmltZF9kcF9jbG9ja19lbmFibGUo c3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YywgYm9vbCBlbmFibGUpCj4gIH0KPiAgCj4gIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjX29wcyBmaW1kX2NydGNfb3BzID0gewo+ IC0JLmRwbXMgPSBmaW1kX2RwbXMsCj4gKwkuZW5hYmxlID0gZmltZF9lbmFibGUsCj4gKwkuZGlz YWJsZSA9IGZpbWRfZGlzYWJsZSwKPiAgCS5tb2RlX2ZpeHVwID0gZmltZF9tb2RlX2ZpeHVwLAo+ ICAJLmNvbW1pdCA9IGZpbWRfY29tbWl0LAo+ICAJLmVuYWJsZV92YmxhbmsgPSBmaW1kX2VuYWJs ZV92YmxhbmssCj4gQEAgLTEwNTEsNyArMTAxMCw3IEBAIHN0YXRpYyB2b2lkIGZpbWRfdW5iaW5k KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAo+ICB7Cj4gIAlzdHJ1 Y3QgZmltZF9jb250ZXh0ICpjdHggPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiAgCj4gLQlmaW1k X2RwbXMoY3R4LT5jcnRjLCBEUk1fTU9ERV9EUE1TX09GRik7Cj4gKwlmaW1kX2Rpc2FibGUoY3R4 LT5jcnRjKTsKPiAgCj4gIAlmaW1kX2lvbW11X2RldGFjaF9kZXZpY2VzKGN0eCk7Cj4gIAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fdmlkaS5jIGIvZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3ZpZGkuYwo+IGluZGV4IDYzYzE1MzYuLmFi ZTRlZTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3Zp ZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV92aWRpLmMKPiBA QCAtMTUzLDU2ICsxNTMsMzggQEAgc3RhdGljIHZvaWQgdmlkaV93aW5fZGlzYWJsZShzdHJ1Y3Qg ZXh5bm9zX2RybV9jcnRjICpjcnRjLCB1bnNpZ25lZCBpbnQgd2luKQo+ICAJLyogVE9ETy4gKi8K PiAgfQo+ICAKPiAtc3RhdGljIGludCB2aWRpX3Bvd2VyX29uKHN0cnVjdCB2aWRpX2NvbnRleHQg KmN0eCwgYm9vbCBlbmFibGUpCj4gK3N0YXRpYyB2b2lkIHZpZGlfZW5hYmxlKHN0cnVjdCBleHlu b3NfZHJtX2NydGMgKmNydGMpCj4gIHsKPiArCXN0cnVjdCB2aWRpX2NvbnRleHQgKmN0eCA9IGNy dGMtPmN0eDsKPiAgCXN0cnVjdCBleHlub3NfZHJtX3BsYW5lICpwbGFuZTsKPiAgCWludCBpOwo+ ICAKPiAtCURSTV9ERUJVR19LTVMoIiVzXG4iLCBfX0ZJTEVfXyk7Cj4gLQo+IC0JaWYgKGVuYWJs ZSAhPSBmYWxzZSAmJiBlbmFibGUgIT0gdHJ1ZSkKPiAtCQlyZXR1cm4gLUVJTlZBTDsKPiArCW11 dGV4X2xvY2soJmN0eC0+bG9jayk7Cj4gIAo+IC0JaWYgKGVuYWJsZSkgewo+IC0JCWN0eC0+c3Vz cGVuZGVkID0gZmFsc2U7Cj4gKwljdHgtPnN1c3BlbmRlZCA9IGZhbHNlOwo+ICAKPiAtCQkvKiBp ZiB2Ymxhbmsgd2FzIGVuYWJsZWQgc3RhdHVzLCBlbmFibGUgaXQgYWdhaW4uICovCj4gLQkJaWYg KHRlc3RfYW5kX2NsZWFyX2JpdCgwLCAmY3R4LT5pcnFfZmxhZ3MpKQo+IC0JCQl2aWRpX2VuYWJs ZV92YmxhbmsoY3R4LT5jcnRjKTsKPiArCS8qIGlmIHZibGFuayB3YXMgZW5hYmxlZCBzdGF0dXMs IGVuYWJsZSBpdCBhZ2Fpbi4gKi8KPiArCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoMCwgJmN0eC0+ aXJxX2ZsYWdzKSkKPiArCQl2aWRpX2VuYWJsZV92YmxhbmsoY3R4LT5jcnRjKTsKPiAgCj4gLQkJ Zm9yIChpID0gMDsgaSA8IFdJTkRPV1NfTlI7IGkrKykgewo+IC0JCQlwbGFuZSA9ICZjdHgtPnBs YW5lc1tpXTsKPiAtCQkJaWYgKHBsYW5lLT5lbmFibGVkKQo+IC0JCQkJdmlkaV93aW5fY29tbWl0 KGN0eC0+Y3J0YywgaSk7Cj4gLQkJfQo+IC0JfSBlbHNlIHsKPiAtCQljdHgtPnN1c3BlbmRlZCA9 IHRydWU7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgV0lORE9XU19OUjsgaSsrKSB7Cj4gKwkJcGxhbmUg PSAmY3R4LT5wbGFuZXNbaV07Cj4gKwkJaWYgKHBsYW5lLT5lbmFibGVkKQo+ICsJCQl2aWRpX3dp bl9jb21taXQoY3R4LT5jcnRjLCBpKTsKPiAgCX0KPiAgCj4gLQlyZXR1cm4gMDsKPiArCW11dGV4 X3VubG9jaygmY3R4LT5sb2NrKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgdmlkaV9kcG1zKHN0 cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMsIGludCBtb2RlKQo+ICtzdGF0aWMgdm9pZCB2aWRp X2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKPiAgewo+ICAJc3RydWN0IHZp ZGlfY29udGV4dCAqY3R4ID0gY3J0Yy0+Y3R4Owo+IC0KPiAtCURSTV9ERUJVR19LTVMoIiVkXG4i LCBtb2RlKTsKPiArCXN0cnVjdCBleHlub3NfZHJtX3BsYW5lICpwbGFuZTsKPiArCWludCBpOwo+ ICAKPiAgCW11dGV4X2xvY2soJmN0eC0+bG9jayk7Cj4gIAo+IC0Jc3dpdGNoIChtb2RlKSB7Cj4g LQljYXNlIERSTV9NT0RFX0RQTVNfT046Cj4gLQkJdmlkaV9wb3dlcl9vbihjdHgsIHRydWUpOwo+ IC0JCWJyZWFrOwo+IC0JY2FzZSBEUk1fTU9ERV9EUE1TX1NUQU5EQlk6Cj4gLQljYXNlIERSTV9N T0RFX0RQTVNfU1VTUEVORDoKPiAtCWNhc2UgRFJNX01PREVfRFBNU19PRkY6Cj4gLQkJdmlkaV9w b3dlcl9vbihjdHgsIGZhbHNlKTsKPiAtCQlicmVhazsKPiAtCWRlZmF1bHQ6Cj4gLQkJRFJNX0RF QlVHX0tNUygidW5zcGVjaWZpZWQgbW9kZSAlZFxuIiwgbW9kZSk7Cj4gLQkJYnJlYWs7Cj4gLQl9 Cj4gKwljdHgtPnN1c3BlbmRlZCA9IHRydWU7Cj4gIAo+ICAJbXV0ZXhfdW5sb2NrKCZjdHgtPmxv Y2spOwo+ICB9Cj4gQEAgLTIxOSw3ICsyMDEsOCBAQCBzdGF0aWMgaW50IHZpZGlfY3R4X2luaXRp YWxpemUoc3RydWN0IHZpZGlfY29udGV4dCAqY3R4LAo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3Qg c3RydWN0IGV4eW5vc19kcm1fY3J0Y19vcHMgdmlkaV9jcnRjX29wcyA9IHsKPiAtCS5kcG1zID0g dmlkaV9kcG1zLAo+ICsJLmVuYWJsZSA9IHZpZGlfZW5hYmxlLAo+ICsJLmRpc2FibGUgPSB2aWRp X2Rpc2FibGUsCj4gIAkuZW5hYmxlX3ZibGFuayA9IHZpZGlfZW5hYmxlX3ZibGFuaywKPiAgCS5k aXNhYmxlX3ZibGFuayA9IHZpZGlfZGlzYWJsZV92YmxhbmssCj4gIAkud2luX2NvbW1pdCA9IHZp ZGlfd2luX2NvbW1pdCwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlu b3NfbWl4ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX21peGVyLmMKPiBpbmRl eCA4ODc0YzFmLi42YmFiNzE3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3Mv ZXh5bm9zX21peGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhl ci5jCj4gQEAgLTEwMjcsOCArMTAyNyw5IEBAIHN0YXRpYyB2b2lkIG1peGVyX3dpbmRvd19yZXN1 bWUoc3RydWN0IG1peGVyX2NvbnRleHQgKmN0eCkKPiAgCX0KPiAgfQo+ICAKPiAtc3RhdGljIHZv aWQgbWl4ZXJfcG93ZXJvbihzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4KQo+ICtzdGF0aWMgdm9p ZCBtaXhlcl9lbmFibGUoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKPiAgewo+ICsJc3Ry dWN0IG1peGVyX2NvbnRleHQgKmN0eCA9IGNydGMtPmN0eDsKPiAgCXN0cnVjdCBtaXhlcl9yZXNv dXJjZXMgKnJlcyA9ICZjdHgtPm1peGVyX3JlczsKPiAgCj4gIAltdXRleF9sb2NrKCZjdHgtPm1p eGVyX211dGV4KTsKPiBAQCAtMTA2MSw4ICsxMDYyLDkgQEAgc3RhdGljIHZvaWQgbWl4ZXJfcG93 ZXJvbihzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4KQo+ICAJbWl4ZXJfd2luZG93X3Jlc3VtZShj dHgpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBtaXhlcl9wb3dlcm9mZihzdHJ1Y3QgbWl4ZXJf Y29udGV4dCAqY3R4KQo+ICtzdGF0aWMgdm9pZCBtaXhlcl9kaXNhYmxlKHN0cnVjdCBleHlub3Nf ZHJtX2NydGMgKmNydGMpCj4gIHsKPiArCXN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHggPSBjcnRj LT5jdHg7Cj4gIAlzdHJ1Y3QgbWl4ZXJfcmVzb3VyY2VzICpyZXMgPSAmY3R4LT5taXhlcl9yZXM7 Cj4gIAo+ICAJbXV0ZXhfbG9jaygmY3R4LT5taXhlcl9tdXRleCk7Cj4gQEAgLTEwOTMsMjMgKzEw OTUsNiBAQCBzdGF0aWMgdm9pZCBtaXhlcl9wb3dlcm9mZihzdHJ1Y3QgbWl4ZXJfY29udGV4dCAq Y3R4KQo+ICAJcG1fcnVudGltZV9wdXRfc3luYyhjdHgtPmRldik7Cj4gIH0KPiAgCj4gLXN0YXRp YyB2b2lkIG1peGVyX2RwbXMoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YywgaW50IG1vZGUp Cj4gLXsKPiAtCXN3aXRjaCAobW9kZSkgewo+IC0JY2FzZSBEUk1fTU9ERV9EUE1TX09OOgo+IC0J CW1peGVyX3Bvd2Vyb24oY3J0Yy0+Y3R4KTsKPiAtCQlicmVhazsKPiAtCWNhc2UgRFJNX01PREVf RFBNU19TVEFOREJZOgo+IC0JY2FzZSBEUk1fTU9ERV9EUE1TX1NVU1BFTkQ6Cj4gLQljYXNlIERS TV9NT0RFX0RQTVNfT0ZGOgo+IC0JCW1peGVyX3Bvd2Vyb2ZmKGNydGMtPmN0eCk7Cj4gLQkJYnJl YWs7Cj4gLQlkZWZhdWx0Ogo+IC0JCURSTV9ERUJVR19LTVMoInVua25vd24gZHBtcyBtb2RlOiAl ZFxuIiwgbW9kZSk7Cj4gLQkJYnJlYWs7Cj4gLQl9Cj4gLX0KPiAtCj4gIC8qIE9ubHkgdmFsaWQg Zm9yIE1peGVyIHZlcnNpb24gMTYuMC4zMy4wICovCj4gIGludCBtaXhlcl9jaGVja19tb2RlKHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ICB7Cj4gQEAgLTExMzEsNyArMTExNiw4IEBA IGludCBtaXhlcl9jaGVja19tb2RlKHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ICB9 Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGV4eW5vc19kcm1fY3J0Y19vcHMgbWl4ZXJfY3J0 Y19vcHMgPSB7Cj4gLQkuZHBtcwkJCT0gbWl4ZXJfZHBtcywKPiArCS5lbmFibGUJCQk9IG1peGVy X2VuYWJsZSwKPiArCS5kaXNhYmxlCQk9IG1peGVyX2Rpc2FibGUsCj4gIAkuZW5hYmxlX3ZibGFu awkJPSBtaXhlcl9lbmFibGVfdmJsYW5rLAo+ICAJLmRpc2FibGVfdmJsYW5rCQk9IG1peGVyX2Rp c2FibGVfdmJsYW5rLAo+ICAJLndhaXRfZm9yX3ZibGFuawk9IG1peGVyX3dhaXRfZm9yX3ZibGFu aywKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==