From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH 1/3] drm/i915: unify the x_modeset_calc_cdclk() functions Date: Fri, 03 Mar 2017 14:13:13 +0200 Message-ID: <1488543193.4567.10.camel@gmail.com> References: <1487620842-22893-1-git-send-email-paulo.r.zanoni@intel.com> <1487620842-22893-2-git-send-email-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pg0-x244.google.com (mail-pg0-x244.google.com [IPv6:2607:f8b0:400e:c05::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 500B36ECE7 for ; Fri, 3 Mar 2017 12:13:19 +0000 (UTC) Received: by mail-pg0-x244.google.com with SMTP id 16so4056392pga.0 for ; Fri, 03 Mar 2017 04:13:19 -0800 (PST) In-Reply-To: <1487620842-22893-2-git-send-email-paulo.r.zanoni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni , intel-gfx@lists.freedesktop.org, "Pandiyan, Dhinakaran" Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMDE3LTAyLTIwIGF0IDE3OjAwIC0wMzAwLCBQYXVsbyBaYW5vbmkgd3JvdGU6Cj4g VGhlcmUncyBhIGxvdCBvZiBkdXBsaWNhdGVkIHBsYXRmb3JtLWluZGVwZW5kZW50IGxvZ2ljIGlu IHRoZSBjdXJyZW50Cj4gbW9kZXNldF9jYWxjX2NkY2xrKCkgZnVuY3Rpb25zLiBBZGRpbmcgY2Rj bGsgc3VwcG9ydCBmb3IgbW9yZQo+IHBsYXRmb3JtcyB3aWxsIG9ubHkgYWRkIG1vcmUgY29waWVz IG9mIHRoaXMgY29kZS4KPiAKPiBUbyBzb2x2ZSB0aGlzIHByb2JsZW0sIGluIHRoaXMgcGF0Y2gg d2UgY3JlYXRlIGEgbmV3IGZ1bmN0aW9uIGNhbGxlZAo+IGludGVsX21vZGVzZXRfY2FsY19jZGNs aygpIHdoaWNoIHVuaWZpZXMgdGhlIHBsYXRmb3JtLWluZGVwZW5kZW50Cj4gbG9naWMsIGFuZCB3 ZSBhbHNvIGNyZWF0ZSBhIG5ldyB2ZnVuYyBjYWxsZWQgY2FsY19jZGNsa19zdGF0ZSgpLCB3aGlj aAo+IGlzIHJlc3BvbnNpYmxlIHRvIGNvbnRhaW4gb25seSB0aGUgcGxhdGZvcm0tZGVwZW5kZW50 IGNvZGUuCj4gCj4gVGhlIGNvZGUgaXMgbm93IHNtYWxsZXIgYW5kIHN1cHBvcnQgZm9yIG5ldyBw bGF0Zm9ybXMgc2hvdWxkIGJlIGVhc2llcgo+IGFuZCBub3QgcmVxdWlyZSBkdXBsaWNhdGVkIHBs YXRmb3JtLWluZGVwZW5kZW50IGNvZGUuCj4gCj4gdjI6IFByZXZpb3VzbHkgSSBoYWQgMiBkaWZm ZXJlbnQgcGF0Y2hlcyBhZGRyZXNzaW5nIHRoZXNlIHByb2JsZW1zLAo+IGJ1dCB3aWh0IFZpbGxl J3Mgc3VnZ2VzdGlvbiBJIHRoaW5rIGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8ga2VlcAo+IGV2ZXJ5 dGhpbmcgaW4gYSBzaW5nbGUgcGF0Y2ggKFZpbGxlKS4KPiAKPiBDYzogVmlsbGUgU3lyasOkbMOk IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogUm9kcmlnbyBWaXZpIDxyb2Ry aWdvLnZpdmlAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8u ci56YW5vbmlAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICAgICAgfCAgIDQgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYyAg IHwgMTg3ICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAgNiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCAgICAgfCAgIDEgKwo+ICA0IGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlv bnMoKyksIDEzOCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRl eCA0ZTcwNDZkLi5mMWMzNWM3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTY0 NCw3ICs2NDQsOSBAQCBzdHJ1Y3QgZHJtX2k5MTVfZGlzcGxheV9mdW5jcyB7Cj4gIAkJCQkgICAg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSk7Cj4gIAlpbnQgKCpjb21wdXRlX2dsb2Jh bF93YXRlcm1hcmtzKShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ICAJdm9pZCAo KnVwZGF0ZV93bSkoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+IC0JaW50ICgqbW9kZXNldF9j YWxjX2NkY2xrKShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ICsJdm9pZCAoKmNh bGNfY2RjbGtfc3RhdGUpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJ CSBpbnQgbWF4X3BpeGNsaywKPiArCQkJCSBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xr X3N0YXRlKTsKPiAgCS8qIFJldHVybnMgdGhlIGFjdGl2ZSBzdGF0ZSBvZiB0aGUgY3J0YywgYW5k IGlmIHRoZSBjcnRjIGlzIGFjdGl2ZSwKPiAgCSAqIGZpbGxzIG91dCB0aGUgcGlwZS1jb25maWcg d2l0aCB0aGUgaHcgc3RhdGUuICovCj4gIAlib29sICgqZ2V0X3BpcGVfY29uZmlnKShzdHJ1Y3Qg aW50ZWxfY3J0YyAqLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9j ZGNsay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYwo+IGluZGV4IGQ2NDNj MGMuLmRkNmZlMjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2Rj bGsuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMKPiBAQCAtMTQ5 NiwxNDggKzE0OTYsNjkgQEAgc3RhdGljIGludCBpbnRlbF9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAlyZXR1cm4gbWF4X3BpeGVsX3JhdGU7Cj4gIH0K PiAgCj4gLXN0YXRpYyBpbnQgdmx2X21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUpCj4gK3N0YXRpYyB2b2lkIHZsdl9jYWxjX2NkY2xrX3N0YXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCSBpbnQgbWF4X3BpeGNsaywKPiAr CQkJCSBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5kZXYpOwo+IC0J aW50IG1heF9waXhjbGsgPSBpbnRlbF9tYXhfcGl4ZWxfcmF0ZShzdGF0ZSk7Cj4gLQlzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9Cj4gLQkJdG9faW50ZWxfYXRvbWljX3N0 YXRlKHN0YXRlKTsKPiAtCWludCBjZGNsazsKPiAtCj4gLQljZGNsayA9IHZsdl9jYWxjX2NkY2xr KGRldl9wcml2LCBtYXhfcGl4Y2xrKTsKPiAtCj4gLQlpZiAoY2RjbGsgPiBkZXZfcHJpdi0+bWF4 X2NkY2xrX2ZyZXEpIHsKPiAtCQlEUk1fREVCVUdfS01TKCJyZXF1ZXN0ZWQgY2RjbGsgKCVkIGtI eikgZXhjZWVkcyBtYXggKCVkIGtIeilcbiIsCj4gLQkJCSAgICAgIGNkY2xrLCBkZXZfcHJpdi0+ bWF4X2NkY2xrX2ZyZXEpOwo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0JfQo+IC0KPiAtCWludGVs X3N0YXRlLT5jZGNsay5sb2dpY2FsLmNkY2xrID0gY2RjbGs7Cj4gLQo+IC0JaWYgKCFpbnRlbF9z dGF0ZS0+YWN0aXZlX2NydGNzKSB7Cj4gLQkJY2RjbGsgPSB2bHZfY2FsY19jZGNsayhkZXZfcHJp diwgMCk7Cj4gLQo+IC0JCWludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwuY2RjbGsgPSBjZGNsazsK PiAtCX0gZWxzZSB7Cj4gLQkJaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbCA9Cj4gLQkJCWludGVs X3N0YXRlLT5jZGNsay5sb2dpY2FsOwo+IC0JfQo+IC0KPiAtCXJldHVybiAwOwo+ICsJY2RjbGtf c3RhdGUtPmNkY2xrID0gdmx2X2NhbGNfY2RjbGsoZGV2X3ByaXYsIG1heF9waXhjbGspOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgaW50IGJkd19tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQo+ICtzdGF0aWMgdm9pZCBiZHdfY2FsY19jZGNsa19zdGF0ZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCQkgaW50IG1heF9waXhjbGssCj4g KwkJCQkgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSkKPiAgewo+IC0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKPiAt CXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWlj X3N0YXRlKHN0YXRlKTsKPiAtCWludCBtYXhfcGl4Y2xrID0gaW50ZWxfbWF4X3BpeGVsX3JhdGUo c3RhdGUpOwo+IC0JaW50IGNkY2xrOwo+IC0KPiAtCS8qCj4gLQkgKiBGSVhNRSBzaG91bGQgYWxz byBhY2NvdW50IGZvciBwbGFuZSByYXRpbwo+IC0JICogb25jZSA2NGJwcCBwaXhlbCBmb3JtYXRz IGFyZSBzdXBwb3J0ZWQuCj4gLQkgKi8KPiAtCWNkY2xrID0gYmR3X2NhbGNfY2RjbGsobWF4X3Bp eGNsayk7Cj4gLQo+IC0JaWYgKGNkY2xrID4gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKSB7Cj4g LQkJRFJNX0RFQlVHX0tNUygicmVxdWVzdGVkIGNkY2xrICglZCBrSHopIGV4Y2VlZHMgbWF4ICgl ZCBrSHopXG4iLAo+IC0JCQkgICAgICBjZGNsaywgZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKTsK PiAtCQlyZXR1cm4gLUVJTlZBTDsKPiAtCX0KPiAtCj4gLQlpbnRlbF9zdGF0ZS0+Y2RjbGsubG9n aWNhbC5jZGNsayA9IGNkY2xrOwo+IC0KPiAtCWlmICghaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRj cykgewo+IC0JCWNkY2xrID0gYmR3X2NhbGNfY2RjbGsoMCk7Cj4gLQo+IC0JCWludGVsX3N0YXRl LT5jZGNsay5hY3R1YWwuY2RjbGsgPSBjZGNsazsKPiAtCX0gZWxzZSB7Cj4gLQkJaW50ZWxfc3Rh dGUtPmNkY2xrLmFjdHVhbCA9Cj4gLQkJCWludGVsX3N0YXRlLT5jZGNsay5sb2dpY2FsOwo+IC0J fQo+IC0KPiAtCXJldHVybiAwOwo+ICsJY2RjbGtfc3RhdGUtPmNkY2xrID0gYmR3X2NhbGNfY2Rj bGsobWF4X3BpeGNsayk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgc2tsX21vZGVzZXRfY2FsY19j ZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gK3N0YXRpYyB2b2lkIHNrbF9j YWxjX2NkY2xrX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJ CSBpbnQgbWF4X3BpeGNsaywKPiArCQkJCSBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xr X3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9 IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5kZXYpOwo+IC0JY29uc3QgaW50IG1heF9waXhj bGsgPSBpbnRlbF9tYXhfcGl4ZWxfcmF0ZShzdGF0ZSk7Cj4gLQlpbnQgY2RjbGssIHZjbzsKPiAr CWlmICghY2RjbGtfc3RhdGUtPnZjbykKPiArCQljZGNsa19zdGF0ZS0+dmNvID0gZGV2X3ByaXYt PnNrbF9wcmVmZXJyZWRfdmNvX2ZyZXE7Cj4gIAo+IC0JdmNvID0gaW50ZWxfc3RhdGUtPmNkY2xr LmxvZ2ljYWwudmNvOwo+IC0JaWYgKCF2Y28pCj4gLQkJdmNvID0gZGV2X3ByaXYtPnNrbF9wcmVm ZXJyZWRfdmNvX2ZyZXE7Cj4gLQo+IC0JLyoKPiAtCSAqIEZJWE1FIHNob3VsZCBhbHNvIGFjY291 bnQgZm9yIHBsYW5lIHJhdGlvCj4gLQkgKiBvbmNlIDY0YnBwIHBpeGVsIGZvcm1hdHMgYXJlIHN1 cHBvcnRlZC4KPiAtCSAqLwo+IC0JY2RjbGsgPSBza2xfY2FsY19jZGNsayhtYXhfcGl4Y2xrLCB2 Y28pOwo+IC0KPiAtCWlmIChjZGNsayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSkgewo+IC0J CURSTV9ERUJVR19LTVMoInJlcXVlc3RlZCBjZGNsayAoJWQga0h6KSBleGNlZWRzIG1heCAoJWQg a0h6KVxuIiwKPiAtCQkJICAgICAgY2RjbGssIGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSk7Cj4g LQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQl9Cj4gLQo+IC0JaW50ZWxfc3RhdGUtPmNkY2xrLmxvZ2lj YWwudmNvID0gdmNvOwo+IC0JaW50ZWxfc3RhdGUtPmNkY2xrLmxvZ2ljYWwuY2RjbGsgPSBjZGNs azsKPiAtCj4gLQlpZiAoIWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MpIHsKPiAtCQljZGNsayA9 IHNrbF9jYWxjX2NkY2xrKDAsIHZjbyk7Cj4gKwljZGNsa19zdGF0ZS0+Y2RjbGsgPSBza2xfY2Fs Y19jZGNsayhtYXhfcGl4Y2xrLCBjZGNsa19zdGF0ZS0+dmNvKTsKPiArfQo+ICAKPiAtCQlpbnRl bF9zdGF0ZS0+Y2RjbGsuYWN0dWFsLnZjbyA9IHZjbzsKPiAtCQlpbnRlbF9zdGF0ZS0+Y2RjbGsu YWN0dWFsLmNkY2xrID0gY2RjbGs7Cj4gLQl9IGVsc2Ugewo+IC0JCWludGVsX3N0YXRlLT5jZGNs ay5hY3R1YWwgPQo+IC0JCQlpbnRlbF9zdGF0ZS0+Y2RjbGsubG9naWNhbDsKPiAtCX0KPiArc3Rh dGljIHZvaWQgYnh0X2NhbGNfY2RjbGtfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ICsJCQkJIGludCBtYXhfcGl4Y2xrLAo+ICsJCQkJIHN0cnVjdCBpbnRlbF9jZGNs a19zdGF0ZSAqY2RjbGtfc3RhdGUpCj4gK3sKPiArCWNkY2xrX3N0YXRlLT5jZGNsayA9IGJ4dF9j YWxjX2NkY2xrKG1heF9waXhjbGspOwo+ICsJY2RjbGtfc3RhdGUtPnZjbyA9IGJ4dF9kZV9wbGxf dmNvKGRldl9wcml2LCBjZGNsa19zdGF0ZS0+Y2RjbGspOwo+ICt9Cj4gIAo+IC0JcmV0dXJuIDA7 Cj4gK3N0YXRpYyB2b2lkIGdsa19jYWxjX2NkY2xrX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiArCQkJCSBpbnQgbWF4X3BpeGNsaywKPiArCQkJCSBzdHJ1Y3QgaW50 ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQo+ICt7Cj4gKwljZGNsa19zdGF0ZS0+Y2RjbGsg PSBnbGtfY2FsY19jZGNsayhtYXhfcGl4Y2xrKTsKPiArCWNkY2xrX3N0YXRlLT52Y28gPSBnbGtf ZGVfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGtfc3RhdGUtPmNkY2xrKTsKPiAgfQo+ICAKPiAtc3Rh dGljIGludCBieHRfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKPiAraW50IGludGVsX21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKPiAtCWludCBtYXhfcGl4Y2xrID0gaW50ZWxfbWF4X3Bp eGVsX3JhdGUoc3RhdGUpOwo+IC0Jc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3Rh dGUgPQo+IC0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4gLQlpbnQgY2RjbGssIHZj bzsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUt PmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqbG9naWNhbCA9ICZzdGF0 ZS0+Y2RjbGsubG9naWNhbDsKPiArCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqYWN0dWFsID0g JnN0YXRlLT5jZGNsay5hY3R1YWw7Cj4gKwlpbnQgbWF4X3BpeGNsayA9IGludGVsX21heF9waXhl bF9yYXRlKCZzdGF0ZS0+YmFzZSk7Cj4gIAo+IC0JaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYp KSB7Cj4gLQkJY2RjbGsgPSBnbGtfY2FsY19jZGNsayhtYXhfcGl4Y2xrKTsKPiAtCQl2Y28gPSBn bGtfZGVfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOwo+IC0JfSBlbHNlIHsKPiAtCQljZGNsayA9 IGJ4dF9jYWxjX2NkY2xrKG1heF9waXhjbGspOwo+IC0JCXZjbyA9IGJ4dF9kZV9wbGxfdmNvKGRl dl9wcml2LCBjZGNsayk7Cj4gLQl9Cj4gKwkvKgo+ICsJICogRklYTUU6IHNob3VsZCBhbHNvIGFj Y291bnQgZm9yIHBsYW5lIHJhdGlvIG9uY2UgNjRicHAgcGl4ZWwgZm9ybWF0cwo+ICsJICogYXJl IHN1cHBvcnRlZC4KPiArCSAqLwo+ICsJZGV2X3ByaXYtPmRpc3BsYXkuY2FsY19jZGNsa19zdGF0 ZShkZXZfcHJpdiwgbWF4X3BpeGNsaywgbG9naWNhbCk7CgpJIHdhcyBsb29raW5nIGF0IERLJ3Mg cGF0Y2ggYWRkaW5nIG1pbmltdW0gY2RjbGsgcmVzdHJpY3Rpb25zIGZvciBnbGsgWzFdIGFuZAp0 aGF0IGxlZCBtZSB0byB0aGluayB0aGUgY29kZSBiZWZvcmUgdGhlIHBhdGNoIHNob3VsZCBsb29r IGxpa2UKCgljZGNsayA9IGNhbGNfY2RjbGsoKQoJaWYgKGNkY2xrIDwgbWluX2NkY2xrKQoJCWNk Y2xrID0gbWluX2NkY2xrOwoKCXZjbyA9IGRlX3BsbF92Y28oY2RjbGspOwoKTm93IHRoYXQgcGF0 Y2ggd2lsbCBjb25mbGljdCB3aXRoIHRoaXMgYW5kIEkgdGhpbmsgd2UgZWl0aGVyIHdpbGwgaGF2 ZSB0bwpyZXBsaWNhdGUgdGhhdCBtaW5fY2RjbGsgY2hlY2sgaW4gZXZlcnkgY2FsY19jZGNsa19z dGF0ZSgpIGltcGxlbWVudGF0aW9uIG9yCnRoZW4gc3BsaXQgdGhhdCBpbnRvIHR3byBob29rczog b25lIGZvciB0aGUgY2FsY19jZGNsaygpIHBhcnQgYW5kIGFub3RoZXIgZm9yCnRoZSB2Y28gcGFy dC4gT3Igc29tZXRoaW5nIGVsc2U/CgoKWzFdIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9w Lm9yZy9wYXRjaC8xNDEzNzEvCgoKQW5kZXIKCj4gIAo+IC0JaWYgKGNkY2xrID4gZGV2X3ByaXYt Pm1heF9jZGNsa19mcmVxKSB7Cj4gKwlpZiAobG9naWNhbC0+Y2RjbGsgPiBkZXZfcHJpdi0+bWF4 X2NkY2xrX2ZyZXEpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJyZXF1ZXN0ZWQgY2RjbGsgKCVkIGtI eikgZXhjZWVkcyBtYXggKCVkIGtIeilcbiIsCj4gLQkJCSAgICAgIGNkY2xrLCBkZXZfcHJpdi0+ bWF4X2NkY2xrX2ZyZXEpOwo+ICsJCQkgICAgICBsb2dpY2FsLT5jZGNsaywgZGV2X3ByaXYtPm1h eF9jZGNsa19mcmVxKTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiAgCj4gLQlpbnRlbF9z dGF0ZS0+Y2RjbGsubG9naWNhbC52Y28gPSB2Y287Cj4gLQlpbnRlbF9zdGF0ZS0+Y2RjbGsubG9n aWNhbC5jZGNsayA9IGNkY2xrOwo+IC0KPiAtCWlmICghaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRj cykgewo+IC0JCWlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewo+IC0JCQljZGNsayA9IGds a19jYWxjX2NkY2xrKDApOwo+IC0JCQl2Y28gPSBnbGtfZGVfcGxsX3ZjbyhkZXZfcHJpdiwgY2Rj bGspOwo+IC0JCX0gZWxzZSB7Cj4gLQkJCWNkY2xrID0gYnh0X2NhbGNfY2RjbGsoMCk7Cj4gLQkJ CXZjbyA9IGJ4dF9kZV9wbGxfdmNvKGRldl9wcml2LCBjZGNsayk7Cj4gLQkJfQo+IC0KPiAtCQlp bnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsLnZjbyA9IHZjbzsKPiAtCQlpbnRlbF9zdGF0ZS0+Y2Rj bGsuYWN0dWFsLmNkY2xrID0gY2RjbGs7Cj4gLQl9IGVsc2Ugewo+IC0JCWludGVsX3N0YXRlLT5j ZGNsay5hY3R1YWwgPQo+IC0JCQlpbnRlbF9zdGF0ZS0+Y2RjbGsubG9naWNhbDsKPiAtCX0KPiAr CWlmICghc3RhdGUtPmFjdGl2ZV9jcnRjcykKPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5jYWxjX2Nk Y2xrX3N0YXRlKGRldl9wcml2LCAwLCBhY3R1YWwpOwo+ICsJZWxzZQo+ICsJCSphY3R1YWwgPSAq bG9naWNhbDsKPiAgCj4gIAlyZXR1cm4gMDsKPiAgfQo+IEBAIC0xODIzLDI0ICsxNzQ0LDIyIEBA IHZvaWQgaW50ZWxfaW5pdF9jZGNsa19ob29rcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gIHsKPiAgCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ICAJCWRldl9w cml2LT5kaXNwbGF5LnNldF9jZGNsayA9IGNodl9zZXRfY2RjbGs7Cj4gLQkJZGV2X3ByaXYtPmRp c3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0KPiAtCQkJdmx2X21vZGVzZXRfY2FsY19jZGNsazsK PiArCQlkZXZfcHJpdi0+ZGlzcGxheS5jYWxjX2NkY2xrX3N0YXRlID0gdmx2X2NhbGNfY2RjbGtf c3RhdGU7Cj4gIAl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpKSB7Cj4gIAkJZGV2 X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrID0gdmx2X3NldF9jZGNsazsKPiAtCQlkZXZfcHJpdi0+ ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+IC0JCQl2bHZfbW9kZXNldF9jYWxjX2NkY2xr Owo+ICsJCWRldl9wcml2LT5kaXNwbGF5LmNhbGNfY2RjbGtfc3RhdGUgPSB2bHZfY2FsY19jZGNs a19zdGF0ZTsKPiAgCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewo+ICAJCWRl dl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayA9IGJkd19zZXRfY2RjbGs7Cj4gLQkJZGV2X3ByaXYt PmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0KPiAtCQkJYmR3X21vZGVzZXRfY2FsY19jZGNs azsKPiAtCX0gZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpIHsKPiArCQlkZXZfcHJpdi0+ ZGlzcGxheS5jYWxjX2NkY2xrX3N0YXRlID0gYmR3X2NhbGNfY2RjbGtfc3RhdGU7Cj4gKwl9IGVs c2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7Cj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuc2V0 X2NkY2xrID0gYnh0X3NldF9jZGNsazsKPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5jYWxjX2NkY2xr X3N0YXRlID0gYnh0X2NhbGNfY2RjbGtfc3RhdGU7Cj4gKwl9IGVsc2UgaWYgKElTX0dFTUlOSUxB S0UoZGV2X3ByaXYpKSB7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrID0gYnh0X3Nl dF9jZGNsazsKPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+IC0J CQlieHRfbW9kZXNldF9jYWxjX2NkY2xrOwo+ICsJCWRldl9wcml2LT5kaXNwbGF5LmNhbGNfY2Rj bGtfc3RhdGUgPSBnbGtfY2FsY19jZGNsa19zdGF0ZTsKPiAgCX0gZWxzZSBpZiAoSVNfR0VOOV9C QyhkZXZfcHJpdikpIHsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5zZXRfY2RjbGsgPSBza2xfc2V0 X2NkY2xrOwo+IC0JCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9Cj4gLQkJ CXNrbF9tb2Rlc2V0X2NhbGNfY2RjbGs7Cj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuY2FsY19jZGNs a19zdGF0ZSA9IHNrbF9jYWxjX2NkY2xrX3N0YXRlOwo+ICAJfQo+ICAKPiAgCWlmIChJU19HRU45 X0JDKGRldl9wcml2KSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXgg ZjZmZWI5My4uMWQyY2I0OTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gQEAgLTEyNDE0LDggKzEyNDE0LDggQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNr cyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkgKiBtb2RlIHNldCBvbiB0aGlz IGNydGMuICBGb3Igb3RoZXIgY3J0Y3Mgd2UgbmVlZCB0byB1c2UgdGhlCj4gIAkgKiBhZGp1c3Rl ZF9tb2RlIGJpdHMgaW4gdGhlIGNydGMgZGlyZWN0bHkuCj4gIAkgKi8KPiAtCWlmIChkZXZfcHJp di0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGspIHsKPiAtCQlyZXQgPSBkZXZfcHJpdi0+ZGlz cGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsoc3RhdGUpOwo+ICsJaWYgKGRldl9wcml2LT5kaXNwbGF5 LmNhbGNfY2RjbGtfc3RhdGUpIHsKPiArCQlyZXQgPSBpbnRlbF9tb2Rlc2V0X2NhbGNfY2RjbGso aW50ZWxfc3RhdGUpOwo+ICAJCWlmIChyZXQgPCAwKQo+ICAJCQlyZXR1cm4gcmV0Owo+ICAKPiBA QCAtMTU0NjgsNyArMTU0NjgsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRf aHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkJICAgIElTX1ZBTExFWVZJRVco ZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ICAJCQkJcGl4Y2xrID0gY3J0 Y19zdGF0ZS0+cGl4ZWxfcmF0ZTsKPiAgCQkJZWxzZQo+IC0JCQkJV0FSTl9PTihkZXZfcHJpdi0+ ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGspOwo+ICsJCQkJV0FSTl9PTihkZXZfcHJpdi0+ZGlz cGxheS5jYWxjX2NkY2xrX3N0YXRlKTsKPiAgCj4gIAkJCS8qIHBpeGVsIHJhdGUgbXVzdG4ndCBl eGNlZWQgOTUlIG9mIGNkY2xrIHdpdGggSVBTIG9uIEJEVyAqLwo+ICAJCQlpZiAoSVNfQlJPQURX RUxMKGRldl9wcml2KSAmJiBjcnRjX3N0YXRlLT5pcHNfZW5hYmxlZCkKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+IGluZGV4IDgyMWM1N2MuLjNlMTEyZmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+IEBAIC0xMjYwLDYgKzEyNjAsNyBAQCBib29sIGludGVsX2NkY2xrX3N0YXRl X2NvbXBhcmUoY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICphLAo+ICAJCQkgICAgICAg Y29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpiKTsKPiAgdm9pZCBpbnRlbF9zZXRfY2Rj bGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCSAgICAgY29uc3Qgc3Ry dWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSk7Cj4gK2ludCBpbnRlbF9tb2Rlc2V0 X2NhbGNfY2RjbGsoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ICAKPiAgLyog aW50ZWxfZGlzcGxheS5jICovCj4gIGVudW0gdHJhbnNjb2RlciBpbnRlbF9jcnRjX3BjaF90cmFu c2NvZGVyKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==