From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 15/15] drm/i915: Split PNV version of crtc_compute_clock() Date: Tue, 22 Mar 2016 14:55:03 +0200 Message-ID: <20160322125503.GN4329@intel.com> References: <1458576016-30348-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1458576016-30348-16-git-send-email-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 5FCC96E336 for ; Tue, 22 Mar 2016 12:55:07 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1458576016-30348-16-git-send-email-ander.conselvan.de.oliveira@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan de Oliveira Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXIgMjEsIDIwMTYgYXQgMDY6MDA6MTZQTSArMDIwMCwgQW5kZXIgQ29uc2VsdmFu IGRlIE9saXZlaXJhIHdyb3RlOgo+IFNwbGl0IGEgcG52X2NydGNfY29tcHV0ZV9jbG9jaygpLCBz byB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBwbGF0Zm9ybXMKPiBiZWNvbWUgbW9yZSBvYnZpb3Vz Lgo+IAo+IFdpdGggdGhpcywgdGhlcmUgYXJlIG5vIG1vcmUgdXNlcnMgb2YgaW50ZWxfbGltaXQo KSBvciB0aGUgLT5maW5kX2RwbGwoKQo+IGhvb2ssIHNvIGdldCByaWQgb2YgdGhlbS4KPiAKPiBT aWduZWQtb2ZmLWJ5OiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGFuZGVyLmNvbnNlbHZh bi5kZS5vbGl2ZWlyYUBpbnRlbC5jb20+CgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggICAgICB8ICAxOCAtLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgfCAxMzQgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0K PiAgMiBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBlZmNhNTM0Li44M2VlOGQ3IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTU3NSwyNCArNTc1LDYgQEAgc3RydWN0IGRwbGw7 Cj4gIHN0cnVjdCBkcm1faTkxNV9kaXNwbGF5X2Z1bmNzIHsKPiAgCWludCAoKmdldF9kaXNwbGF5 X2Nsb2NrX3NwZWVkKShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgCWludCAoKmdldF9maWZv X3NpemUpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwbGFuZSk7Cj4gLQkvKioKPiAtCSAq IGZpbmRfZHBsbCgpIC0gRmluZCB0aGUgYmVzdCB2YWx1ZXMgZm9yIHRoZSBQTEwKPiAtCSAqIEBs aW1pdDogbGltaXRzIGZvciB0aGUgUExMCj4gLQkgKiBAY3J0YzogY3VycmVudCBDUlRDCj4gLQkg KiBAdGFyZ2V0OiB0YXJnZXQgZnJlcXVlbmN5IGluIGtIego+IC0JICogQHJlZmNsazogcmVmZXJl bmNlIGNsb2NrIGZyZXF1ZW5jeSBpbiBrSHoKPiAtCSAqIEBtYXRjaF9jbG9jazogaWYgcHJvdmlk ZWQsIEBiZXN0X2Nsb2NrIFAgZGl2aWRlciBtdXN0Cj4gLQkgKiAgICAgICAgICAgICAgIG1hdGNo IHRoZSBQIGRpdmlkZXIgZnJvbSBAbWF0Y2hfY2xvY2sKPiAtCSAqICAgICAgICAgICAgICAgdXNl ZCBmb3IgTFZEUyBkb3duY2xvY2tpbmcKPiAtCSAqIEBiZXN0X2Nsb2NrOiBiZXN0IFBMTCB2YWx1 ZXMgZm91bmQKPiAtCSAqCj4gLQkgKiBSZXR1cm5zIHRydWUgb24gc3VjY2VzcywgZmFsc2Ugb24g ZmFpbHVyZS4KPiAtCSAqLwo+IC0JYm9vbCAoKmZpbmRfZHBsbCkoY29uc3Qgc3RydWN0IGludGVs X2xpbWl0ICpsaW1pdCwKPiAtCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKPiAtCQkJICBpbnQgdGFyZ2V0LCBpbnQgcmVmY2xrLAo+IC0JCQkgIHN0cnVjdCBkcGxsICpt YXRjaF9jbG9jaywKPiAtCQkJICBzdHJ1Y3QgZHBsbCAqYmVzdF9jbG9jayk7Cj4gIAlpbnQgKCpj b21wdXRlX3BpcGVfd20pKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpOwo+ICAJaW50 ICgqY29tcHV0ZV9pbnRlcm1lZGlhdGVfd20pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJ CQkgICAgICAgc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDU1MmZkNGMuLjRkN2MyOWEgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTU2NiwzMyArNTY2LDYgQEAgc3RhdGljIGJv b2wgaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiAgCXJldHVybiBmYWxzZTsKPiAgfQo+ICAKPiAtc3RhdGljIGNvbnN0 IGludGVsX2xpbWl0X3QgKgo+IC1pbnRlbF9saW1pdChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwgaW50IHJlZmNsaykKPiAtewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2Owo+IC0JY29uc3QgaW50ZWxfbGltaXRfdCAqbGlt aXQ7Cj4gLQo+IC0JaWYgKElTX0JST1hUT04oZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikgfHwg SVNfVkFMTEVZVklFVyhkZXYpIHx8Cj4gLQkgICAgSEFTX1BDSF9TUExJVChkZXYpIHx8IElTX0c0 WChkZXYpIHx8IElTX0dFTjIoZGV2KSkKPiAtCQlsaW1pdCA9IE5VTEw7Cj4gLQo+IC0JaWYgKElT X1BJTkVWSUVXKGRldikpIHsKPiAtCQlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShjcnRj X3N0YXRlLCBJTlRFTF9PVVRQVVRfTFZEUykpCj4gLQkJCWxpbWl0ID0gJmludGVsX2xpbWl0c19w aW5ldmlld19sdmRzOwo+IC0JCWVsc2UKPiAtCQkJbGltaXQgPSAmaW50ZWxfbGltaXRzX3BpbmV2 aWV3X3Nkdm87Cj4gLQl9IGVsc2UgaWYgKCFJU19HRU4yKGRldikpIHsKPiAtCQlpZiAoaW50ZWxf cGlwZV93aWxsX2hhdmVfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfTFZEUykpCj4gLQkJ CWxpbWl0ID0gJmludGVsX2xpbWl0c19pOXh4X2x2ZHM7Cj4gLQkJZWxzZQo+IC0JCQlsaW1pdCA9 ICZpbnRlbF9saW1pdHNfaTl4eF9zZHZvOwo+IC0JfQo+IC0KPiAtCVdBUk5fT04obGltaXQgPT0g TlVMTCk7Cj4gLQo+IC0JcmV0dXJuIGxpbWl0Owo+IC19Cj4gLQo+ICAvKgo+ICAgKiBQbGF0Zm9y bSBzcGVjaWZpYyBoZWxwZXJzIHRvIGNhbGN1bGF0ZSB0aGUgcG9ydCBQTEwgbG9vcGJhY2stIChj bG9jay5tKSwKPiAgICogYW5kIHBvc3QtZGl2aWRlciAoY2xvY2sucCkgdmFsdWVzLCBwcmUtIChj bG9jay52Y28pIGFuZCBwb3N0LWRpdmlkZWQgZmFzdAo+IEBAIC03MjMsNiArNjk2LDE2IEBAIGk5 eHhfc2VsZWN0X3AyX2Rpdihjb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdCwKPiAgCX0KPiAgfQo+ ICAKPiArLyoKPiArICogUmV0dXJucyBhIHNldCBvZiBkaXZpc29ycyBmb3IgdGhlIGRlc2lyZWQg dGFyZ2V0IGNsb2NrIHdpdGggdGhlIGdpdmVuCj4gKyAqIHJlZmNsaywgb3IgRkFMU0UuICBUaGUg cmV0dXJuZWQgdmFsdWVzIHJlcHJlc2VudCB0aGUgY2xvY2sgZXF1YXRpb246Cj4gKyAqIHJlZmxj ayAqICg1ICogKG0xICsgMikgKyAobTIgKyAyKSkgLyAobiArIDIpIC8gcDEgLyBwMi4KPiArICoK PiArICogVGFyZ2V0IGFuZCByZWZlcmVuY2UgY2xvY2tzIGFyZSBzcGVjaWZpZWQgaW4ga0h6Lgo+ ICsgKgo+ICsgKiBJZiBtYXRjaF9jbG9jayBpcyBwcm92aWRlZCwgdGhlbiBiZXN0X2Nsb2NrIFAg ZGl2aWRlciBtdXN0IG1hdGNoIHRoZSBQCj4gKyAqIGRpdmlkZXIgZnJvbSBAbWF0Y2hfY2xvY2sg dXNlZCBmb3IgTFZEUyBkb3duY2xvY2tpbmcuCj4gKyAqLwo+ICBzdGF0aWMgYm9vbAo+ICBpOXh4 X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LAo+ICAJCSAgICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiBAQCAtNzcwLDYgKzc1MywxNiBAQCBp OXh4X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LAo+ICAJcmV0dXJu IChlcnIgIT0gdGFyZ2V0KTsKPiAgfQo+ICAKPiArLyoKPiArICogUmV0dXJucyBhIHNldCBvZiBk aXZpc29ycyBmb3IgdGhlIGRlc2lyZWQgdGFyZ2V0IGNsb2NrIHdpdGggdGhlIGdpdmVuCj4gKyAq IHJlZmNsaywgb3IgRkFMU0UuICBUaGUgcmV0dXJuZWQgdmFsdWVzIHJlcHJlc2VudCB0aGUgY2xv Y2sgZXF1YXRpb246Cj4gKyAqIHJlZmxjayAqICg1ICogKG0xICsgMikgKyAobTIgKyAyKSkgLyAo biArIDIpIC8gcDEgLyBwMi4KPiArICoKPiArICogVGFyZ2V0IGFuZCByZWZlcmVuY2UgY2xvY2tz IGFyZSBzcGVjaWZpZWQgaW4ga0h6Lgo+ICsgKgo+ICsgKiBJZiBtYXRjaF9jbG9jayBpcyBwcm92 aWRlZCwgdGhlbiBiZXN0X2Nsb2NrIFAgZGl2aWRlciBtdXN0IG1hdGNoIHRoZSBQCj4gKyAqIGRp dmlkZXIgZnJvbSBAbWF0Y2hfY2xvY2sgdXNlZCBmb3IgTFZEUyBkb3duY2xvY2tpbmcuCj4gKyAq Lwo+ICBzdGF0aWMgYm9vbAo+ICBwbnZfZmluZF9iZXN0X2RwbGwoY29uc3QgaW50ZWxfbGltaXRf dCAqbGltaXQsCj4gIAkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4g QEAgLTgxOSw2ICs4MTIsMTEgQEAgcG52X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IGludGVsX2xpbWl0 X3QgKmxpbWl0LAo+ICAgKiBSZXR1cm5zIGEgc2V0IG9mIGRpdmlzb3JzIGZvciB0aGUgZGVzaXJl ZCB0YXJnZXQgY2xvY2sgd2l0aCB0aGUgZ2l2ZW4KPiAgICogcmVmY2xrLCBvciBGQUxTRS4gIFRo ZSByZXR1cm5lZCB2YWx1ZXMgcmVwcmVzZW50IHRoZSBjbG9jayBlcXVhdGlvbjoKPiAgICogcmVm bGNrICogKDUgKiAobTEgKyAyKSArIChtMiArIDIpKSAvIChuICsgMikgLyBwMSAvIHAyLgo+ICsg Kgo+ICsgKiBUYXJnZXQgYW5kIHJlZmVyZW5jZSBjbG9ja3MgYXJlIHNwZWNpZmllZCBpbiBrSHou Cj4gKyAqCj4gKyAqIElmIG1hdGNoX2Nsb2NrIGlzIHByb3ZpZGVkLCB0aGVuIGJlc3RfY2xvY2sg UCBkaXZpZGVyIG11c3QgbWF0Y2ggdGhlIFAKPiArICogZGl2aWRlciBmcm9tIEBtYXRjaF9jbG9j ayB1c2VkIGZvciBMVkRTIGRvd25jbG9ja2luZy4KPiAgICovCj4gIHN0YXRpYyBib29sCj4gIGc0 eF9maW5kX2Jlc3RfZHBsbChjb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdCwKPiBAQCAtNzkwNCw0 MyArNzkwMiw2NyBAQCBzdGF0aWMgaW50IGc0eF9jcnRjX2NvbXB1dGVfY2xvY2soc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiArc3RhdGljIGludCBwbnZf Y3J0Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICsJCQkJICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCWNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0 Owo+ICsJaW50IHJlZmNsayA9IDk2MDAwOwo+ICsKPiArCW1lbXNldCgmY3J0Y19zdGF0ZS0+ZHBs bF9od19zdGF0ZSwgMCwKPiArCSAgICAgICBzaXplb2YoY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0 ZSkpOwo+ICsKPiArCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElO VEVMX09VVFBVVF9MVkRTKSkgewo+ICsJCWlmIChpbnRlbF9wYW5lbF91c2Vfc3NjKGRldl9wcml2 KSkgewo+ICsJCQlyZWZjbGsgPSBkZXZfcHJpdi0+dmJ0Lmx2ZHNfc3NjX2ZyZXE7Cj4gKwkJCURS TV9ERUJVR19LTVMoInVzaW5nIFNTQyByZWZlcmVuY2UgY2xvY2sgb2YgJWQga0h6XG4iLCByZWZj bGspOwo+ICsJCX0KPiArCj4gKwkJbGltaXQgPSAmaW50ZWxfbGltaXRzX3BpbmV2aWV3X2x2ZHM7 Cj4gKwl9IGVsc2Ugewo+ICsJCWxpbWl0ID0gJmludGVsX2xpbWl0c19waW5ldmlld19zZHZvOwo+ ICsJfQo+ICsKPiArCWlmICghY3J0Y19zdGF0ZS0+Y2xvY2tfc2V0ICYmCj4gKwkgICAgIXBudl9m aW5kX2Jlc3RfZHBsbChsaW1pdCwgY3J0Y19zdGF0ZSwgY3J0Y19zdGF0ZS0+cG9ydF9jbG9jaywK PiArCQkJCXJlZmNsaywgTlVMTCwgJmNydGNfc3RhdGUtPmRwbGwpKSB7Cj4gKwkJRFJNX0VSUk9S KCJDb3VsZG4ndCBmaW5kIFBMTCBzZXR0aW5ncyBmb3IgbW9kZSFcbiIpOwo+ICsJCXJldHVybiAt RUlOVkFMOwo+ICsJfQo+ICsKPiArCWk5eHhfY29tcHV0ZV9kcGxsKGNydGMsIGNydGNfc3RhdGUs IE5VTEwpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGk5eHhfY3J0 Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkJICAgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlib29sIG9rOwo+ICAJY29uc3QgaW50ZWxfbGlt aXRfdCAqbGltaXQ7Cj4gIAlpbnQgcmVmY2xrID0gOTYwMDA7Cj4gIAo+ICAJbWVtc2V0KCZjcnRj X3N0YXRlLT5kcGxsX2h3X3N0YXRlLCAwLAo+ICAJICAgICAgIHNpemVvZihjcnRjX3N0YXRlLT5k cGxsX2h3X3N0YXRlKSk7Cj4gIAo+IC0JaWYgKGNydGNfc3RhdGUtPmhhc19kc2lfZW5jb2RlcikK PiAtCQlyZXR1cm4gMDsKPiArCWlmIChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3Rh dGUsIElOVEVMX09VVFBVVF9MVkRTKSkgewo+ICsJCWlmIChpbnRlbF9wYW5lbF91c2Vfc3NjKGRl dl9wcml2KSkgewo+ICsJCQlyZWZjbGsgPSBkZXZfcHJpdi0+dmJ0Lmx2ZHNfc3NjX2ZyZXE7Cj4g KwkJCURSTV9ERUJVR19LTVMoInVzaW5nIFNTQyByZWZlcmVuY2UgY2xvY2sgb2YgJWQga0h6XG4i LCByZWZjbGspOwo+ICsJCX0KPiAgCj4gLQlpZiAoaW50ZWxfcGlwZV93aWxsX2hhdmVfdHlwZShj cnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfTFZEUykgJiYKPiAtCSAgICBpbnRlbF9wYW5lbF91c2Vf c3NjKGRldl9wcml2KSkgewo+IC0JCXJlZmNsayA9IGRldl9wcml2LT52YnQubHZkc19zc2NfZnJl cTsKPiAtCQlEUk1fREVCVUdfS01TKCJ1c2luZyBTU0MgcmVmZXJlbmNlIGNsb2NrIG9mICVkIGtI elxuIiwgcmVmY2xrKTsKPiArCQlsaW1pdCA9ICZpbnRlbF9saW1pdHNfaTl4eF9sdmRzOwo+ICsJ fSBlbHNlIHsKPiArCQlsaW1pdCA9ICZpbnRlbF9saW1pdHNfaTl4eF9zZHZvOwo+ICAJfQo+ICAK PiAtCWlmICghY3J0Y19zdGF0ZS0+Y2xvY2tfc2V0KSB7Cj4gLQkJLyoKPiAtCQkgKiBSZXR1cm5z IGEgc2V0IG9mIGRpdmlzb3JzIGZvciB0aGUgZGVzaXJlZCB0YXJnZXQgY2xvY2sgd2l0aAo+IC0J CSAqIHRoZSBnaXZlbiByZWZjbGssIG9yIEZBTFNFLiAgVGhlIHJldHVybmVkIHZhbHVlcyByZXBy ZXNlbnQKPiAtCQkgKiB0aGUgY2xvY2sgZXF1YXRpb246IHJlZmxjayAqICg1ICogKG0xICsgMikg KyAobTIgKyAyKSkgLyAobiArCj4gLQkJICogMikgLyBwMSAvIHAyLgo+IC0JCSAqLwo+IC0JCWxp bWl0ID0gaW50ZWxfbGltaXQoY3J0Y19zdGF0ZSwgcmVmY2xrKTsKPiAtCQlvayA9IGRldl9wcml2 LT5kaXNwbGF5LmZpbmRfZHBsbChsaW1pdCwgY3J0Y19zdGF0ZSwKPiAtCQkJCQkJIGNydGNfc3Rh dGUtPnBvcnRfY2xvY2ssCj4gLQkJCQkJCSByZWZjbGssIE5VTEwsCj4gLQkJCQkJCSAmY3J0Y19z dGF0ZS0+ZHBsbCk7Cj4gLQkJaWYgKCFvaykgewo+IC0JCQlEUk1fRVJST1IoIkNvdWxkbid0IGZp bmQgUExMIHNldHRpbmdzIGZvciBtb2RlIVxuIik7Cj4gLQkJCXJldHVybiAtRUlOVkFMOwo+IC0J CX0KPiArCWlmICghY3J0Y19zdGF0ZS0+Y2xvY2tfc2V0ICYmCj4gKwkgICAgIWk5eHhfZmluZF9i ZXN0X2RwbGwobGltaXQsIGNydGNfc3RhdGUsIGNydGNfc3RhdGUtPnBvcnRfY2xvY2ssCj4gKwkJ CQkgcmVmY2xrLCBOVUxMLCAmY3J0Y19zdGF0ZS0+ZHBsbCkpIHsKPiArCQlEUk1fRVJST1IoIkNv dWxkbid0IGZpbmQgUExMIHNldHRpbmdzIGZvciBtb2RlIVxuIik7Cj4gKwkJcmV0dXJuIC1FSU5W QUw7Cj4gIAl9Cj4gIAo+ICAJaTl4eF9jb21wdXRlX2RwbGwoY3J0YywgY3J0Y19zdGF0ZSwgTlVM TCk7Cj4gQEAgLTE0OTI1LDExICsxNDk0Nyw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX21v ZGVfY29uZmlnX2Z1bmNzIGludGVsX21vZGVfZnVuY3MgPSB7Cj4gICAqLwo+ICB2b2lkIGludGVs X2luaXRfZGlzcGxheV9ob29rcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g IHsKPiAtCWlmIChJU19QSU5FVklFVyhkZXZfcHJpdikpCj4gLQkJZGV2X3ByaXYtPmRpc3BsYXku ZmluZF9kcGxsID0gcG52X2ZpbmRfYmVzdF9kcGxsOwo+IC0JZWxzZQo+IC0JCWRldl9wcml2LT5k aXNwbGF5LmZpbmRfZHBsbCA9IGk5eHhfZmluZF9iZXN0X2RwbGw7Cj4gLQo+ICAJaWYgKElOVEVM X0lORk8oZGV2X3ByaXYpLT5nZW4gPj0gOSkgewo+ICAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9w aXBlX2NvbmZpZyA9IGhhc3dlbGxfZ2V0X3BpcGVfY29uZmlnOwo+ICAJCWRldl9wcml2LT5kaXNw bGF5LmdldF9pbml0aWFsX3BsYW5lX2NvbmZpZyA9Cj4gQEAgLTE0OTc1LDYgKzE0OTkyLDEzIEBA IHZvaWQgaW50ZWxfaW5pdF9kaXNwbGF5X2hvb2tzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2NvbXB1dGVfY2xvY2sgPSBnNHhf Y3J0Y19jb21wdXRlX2Nsb2NrOwo+ICAJCWRldl9wcml2LT5kaXNwbGF5LmNydGNfZW5hYmxlID0g aTl4eF9jcnRjX2VuYWJsZTsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2Rpc2FibGUgPSBp OXh4X2NydGNfZGlzYWJsZTsKPiArCX0gZWxzZSBpZiAoSVNfUElORVZJRVcoZGV2X3ByaXYpKSB7 Cj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X3BpcGVfY29uZmlnID0gaTl4eF9nZXRfcGlwZV9j b25maWc7Cj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnID0K PiArCQkJaTl4eF9nZXRfaW5pdGlhbF9wbGFuZV9jb25maWc7Cj4gKwkJZGV2X3ByaXYtPmRpc3Bs YXkuY3J0Y19jb21wdXRlX2Nsb2NrID0gcG52X2NydGNfY29tcHV0ZV9jbG9jazsKPiArCQlkZXZf cHJpdi0+ZGlzcGxheS5jcnRjX2VuYWJsZSA9IGk5eHhfY3J0Y19lbmFibGU7Cj4gKwkJZGV2X3By aXYtPmRpc3BsYXkuY3J0Y19kaXNhYmxlID0gaTl4eF9jcnRjX2Rpc2FibGU7Cj4gIAl9IGVsc2Ug aWYgKCFJU19HRU4yKGRldl9wcml2KSkgewo+ICAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9waXBl X2NvbmZpZyA9IGk5eHhfZ2V0X3BpcGVfY29uZmlnOwo+ICAJCWRldl9wcml2LT5kaXNwbGF5Lmdl dF9pbml0aWFsX3BsYW5lX2NvbmZpZyA9Cj4gLS0gCj4gMi40LjMKPiAKPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxp c3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApWaWxsZSBTeXJqw6Rs w6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=