From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v3 5/5] drm/i915/vbt: Parse power conservation features block Date: Thu, 28 Nov 2019 16:29:56 +0200 Message-ID: <8736e8m5uj.fsf@intel.com> References: <20191126005400.264480-5-jose.souza@intel.com> <20191127225451.60023-1-jose.souza@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id AF69A6E09A for ; Thu, 28 Nov 2019 14:30:01 +0000 (UTC) In-Reply-To: <20191127225451.60023-1-jose.souza@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?utf-8?Q?Jos=C3=A9?= Roberto de Souza , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyNyBOb3YgMjAxOSwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBp bnRlbC5jb20+IHdyb3RlOgo+IEZyb20gVkJUIDIyOCsgdGhpcyBpcyBibG9jayB0aGF0IFBTUiBh bmQgb3RoZXIgcG93ZXIgc2F2aW5nCj4gZmVhdHVyZXMgY29uZmlndXJhdGlvbiBzaG91bGQgYmUg cmVhZCBmcm9tLgo+Cj4gdjM6Cj4gVXNpbmcgRFJSUyBmcm9tIHRoaXMgbmV3IGJsb2NrCj4KPiBD YzogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPiBDYzogR3dhbi1neWVv bmcgTXVuIDxnd2FuLWd5ZW9uZy5tdW5AaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEpvc8Op IFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYyAgICAgfCAzNiArKysrKysrKysrKysr KysrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmJ0X2RlZnMuaCB8 IDI5ICsrKysrKysrKysrKysrKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9iaW9zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jp b3MuYwo+IGluZGV4IGY2YTlhNWNjYjU1Ni4uMmQwNmYxZjU3MzRkIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKPiBAQCAtNjU5LDE2ICs2NTksNDUgQEAg cGFyc2VfZHJpdmVyX2ZlYXR1cmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiAgCQkJZGV2X3ByaXYtPnZidC5pbnRfbHZkc19zdXBwb3J0ID0gMDsKPiAgCX0KPiAgCj4gLQlE Uk1fREVCVUdfS01TKCJEUlJTIFN0YXRlIEVuYWJsZWQ6JWRcbiIsIGRyaXZlci0+ZHJyc19lbmFi bGVkKTsKPiArCWlmIChiZGItPnZlcnNpb24gPCAyMjgpIHsKPiArCQlEUk1fREVCVUdfS01TKCJE UlJTIFN0YXRlIEVuYWJsZWQ6JWRcbiIsIGRyaXZlci0+ZHJyc19lbmFibGVkKTsKPiArCQkvKgo+ ICsJCSAqIElmIERSUlMgaXMgbm90IHN1cHBvcnRlZCwgZHJyc190eXBlIGhhcyB0byBiZSBzZXQg dG8gMC4KPiArCQkgKiBUaGlzIGlzIGJlY2F1c2UsIFZCVCBpcyBjb25maWd1cmVkIGluIHN1Y2gg YSB3YXkgdGhhdAo+ICsJCSAqIHN0YXRpYyBEUlJTIGlzIDAgYW5kIERSUlMgbm90IHN1cHBvcnRl ZCBpcyByZXByZXNlbnRlZCBieQo+ICsJCSAqIGRyaXZlci0+ZHJyc19lbmFibGVkPWZhbHNlCj4g KwkJICovCj4gKwkJaWYgKCFkcml2ZXItPmRycnNfZW5hYmxlZCkKPiArCQkJZGV2X3ByaXYtPnZi dC5kcnJzX3R5cGUgPSBEUlJTX05PVF9TVVBQT1JURUQ7Cj4gKwo+ICsJCWRldl9wcml2LT52YnQu cHNyLmVuYWJsZSA9IGRyaXZlci0+cHNyX2VuYWJsZWQ7Cj4gKwl9Cj4gK30KCk1heWJlIHRoaXMg cmV2aWV3IGNvbW1lbnQgZ2l2ZXMgeW91IGFuIGlkZWEgd2hhdCB3ZSBoYXZlIHRvIHRoaW5rIG9m IGFuZApkZWFsIHdpdGggd2hlbiB3b3JraW5nIHdpdGggVkJUIGFuZCBWQlQgcGFyc2luZy4KCklt YWdpbmUgVkJUIHZlcnNpb24gPj0gMjI4IHdpdGhvdXQgbHZkcyBwb3dlciBibG9jaywgYW5kCmRy aXZlci0+ZHJyc19lbmFibGVkID09IGZhbHNlLgoKPiArCj4gK3N0YXRpYyB2b2lkCj4gK3BhcnNl X3Bvd2VyX2NvbnNlcnZhdGlvbl9mZWF0dXJlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gKwkJCQkgIGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIpCj4gK3sKPiArCWNv bnN0IHN0cnVjdCBiZGJfbGZwX3Bvd2VyICpwb3dlcjsKPiArCXU4IHBhbmVsX3R5cGUgPSBkZXZf cHJpdi0+dmJ0LnBhbmVsX3R5cGU7Cj4gKwo+ICsJaWYgKGJkYi0+dmVyc2lvbiA8IDIyOCkKPiAr CQlyZXR1cm47Cj4gKwo+ICsJcG93ZXIgPSBmaW5kX3NlY3Rpb24oYmRiLCBCREJfTFZEU19QT1dF Uik7Cj4gKwlpZiAoIXBvd2VyKQo+ICsJCXJldHVybjsKPiArCj4gKwlkZXZfcHJpdi0+dmJ0LnBz ci5lbmFibGUgPSBwb3dlci0+cHNyICYgKDEgPDwgcGFuZWxfdHlwZSk7Cj4gKwo+ICAJLyoKPiAg CSAqIElmIERSUlMgaXMgbm90IHN1cHBvcnRlZCwgZHJyc190eXBlIGhhcyB0byBiZSBzZXQgdG8g MC4KPiAgCSAqIFRoaXMgaXMgYmVjYXVzZSwgVkJUIGlzIGNvbmZpZ3VyZWQgaW4gc3VjaCBhIHdh eSB0aGF0Cj4gIAkgKiBzdGF0aWMgRFJSUyBpcyAwIGFuZCBEUlJTIG5vdCBzdXBwb3J0ZWQgaXMg cmVwcmVzZW50ZWQgYnkKPiAgCSAqIGRyaXZlci0+ZHJyc19lbmFibGVkPWZhbHNlCj4gIAkgKi8K PiAtCWlmICghZHJpdmVyLT5kcnJzX2VuYWJsZWQpCj4gKwlpZiAoIShwb3dlci0+ZHJycyAmICgx IDw8IHBhbmVsX3R5cGUpKSkKPiAgCQlkZXZfcHJpdi0+dmJ0LmRycnNfdHlwZSA9IERSUlNfTk9U X1NVUFBPUlRFRDsKPiAtCWRldl9wcml2LT52YnQucHNyLmVuYWJsZSA9IGRyaXZlci0+cHNyX2Vu YWJsZWQ7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gQEAgLTE5NzMsNiArMjAwMiw3IEBAIHZv aWQgaW50ZWxfYmlvc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAg CXBhcnNlX2xmcF9iYWNrbGlnaHQoZGV2X3ByaXYsIGJkYik7Cj4gIAlwYXJzZV9zZHZvX3BhbmVs X2RhdGEoZGV2X3ByaXYsIGJkYik7Cj4gIAlwYXJzZV9kcml2ZXJfZmVhdHVyZXMoZGV2X3ByaXYs IGJkYik7Cj4gKwlwYXJzZV9wb3dlcl9jb25zZXJ2YXRpb25fZmVhdHVyZXMoZGV2X3ByaXYsIGJk Yik7Cj4gIAlwYXJzZV9lZHAoZGV2X3ByaXYsIGJkYik7Cj4gIAlwYXJzZV9wc3IoZGV2X3ByaXYs IGJkYik7Cj4gIAlwYXJzZV9taXBpX2NvbmZpZyhkZXZfcHJpdiwgYmRiKTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF92YnRfZGVmcy5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF92YnRfZGVmcy5oCj4gaW5kZXggZjAzMzhkYTNh ODJhLi45OGI3MWRjMzJkMmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF92YnRfZGVmcy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF92YnRfZGVmcy5oCj4gQEAgLTc5Myw2ICs3OTMsMzUgQEAgc3RydWN0IGJkYl9sZnBf YmFja2xpZ2h0X2RhdGEgewo+ICAJc3RydWN0IGxmcF9iYWNrbGlnaHRfY29udHJvbF9tZXRob2Qg YmFja2xpZ2h0X2NvbnRyb2xbMTZdOwo+ICB9IF9fcGFja2VkOwo+ICAKPiArLyoKPiArICogQmxv Y2sgNDQgLSBMRlAgUG93ZXIgQ29uc2VydmF0aW9uIEZlYXR1cmVzIEJsb2NrCj4gKyAqLwo+ICsK PiArc3RydWN0IGFsc19kYXRhX2VudHJ5IHsKPiArCXUxNiBiYWNrbGlnaHRfYWRqdXN0Owo+ICsJ dTE2IGx1eDsKPiArfSBfX3BhY2tlZDsKPiArCj4gK3N0cnVjdCBhZ3Jlc3NpdmVuZXNzX3Byb2Zp bGVfZW50cnkgewo+ICsJdTggZHBzdF9hZ3Jlc3NpdmVuZXNzIDogNDsKPiArCXU4IGxhY2VfYWdy ZXNzaXZlbmVzcyA6IDQ7CgpOaXRwaWNrLCBub25lIG9mIHRoZSBvdGhlciBiaXRmaWVsZHMgaGF2 ZSBzcGFjZXMgYXJvdW5kIDogaGVyZS4KCj4gK30gX19wYWNrZWQ7Cj4gKwo+ICtzdHJ1Y3QgYmRi X2xmcF9wb3dlciB7CgpUaGUgaWRlYSBpcyB0aGF0IHRoZSBiZGIgc3RydWN0IG5hbWUgaXMgdGhl IHNhbWUgYXMgdGhlIGJsb2NrIGlkIGVudW0sCmp1c3QgbG93ZXIgY2FzZS4gUGxlYXNlIGZpeCBl aXRoZXIuCgpCUiwKSmFuaS4KCgo+ICsJdTggbGZwX2ZlYXR1cmVfYml0czsKPiArCXN0cnVjdCBh bHNfZGF0YV9lbnRyeSBhbHNbNV07Cj4gKwl1OCBsYWNlX2FnZ3Jlc3NpdmVuZXNzX3Byb2ZpbGU7 Cj4gKwl1MTYgZHBzdDsKPiArCXUxNiBwc3I7Cj4gKwl1MTYgZHJyczsKPiArCXUxNiBsYWNlX3N1 cHBvcnQ7Cj4gKwl1MTYgYWR0Owo+ICsJdTE2IGRtcnJzOwo+ICsJdTE2IGFkYjsKPiArCXUxNiBs YWNlX2VuYWJsZWRfc3RhdHVzOwo+ICsJc3RydWN0IGFncmVzc2l2ZW5lc3NfcHJvZmlsZV9lbnRy eSBhZ2dyZXNzaXZlbmVzWzE2XTsKPiArfSBfX3BhY2tlZDsKPiArCj4gIC8qCj4gICAqIEJsb2Nr IDUyIC0gTUlQSSBDb25maWd1cmF0aW9uIEJsb2NrCj4gICAqLwoKLS0gCkphbmkgTmlrdWxhLCBJ bnRlbCBPcGVuIFNvdXJjZSBHcmFwaGljcyBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 90640C432C0 for ; Thu, 28 Nov 2019 14:30:04 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6BF022071F for ; Thu, 28 Nov 2019 14:30:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6BF022071F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D167F6E09A; Thu, 28 Nov 2019 14:30:02 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id AF69A6E09A for ; Thu, 28 Nov 2019 14:30:01 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Nov 2019 06:30:01 -0800 X-IronPort-AV: E=Sophos;i="5.69,253,1571727600"; d="scan'208";a="203448842" Received: from jnikula-mobl3.fi.intel.com (HELO localhost) ([10.237.66.161]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Nov 2019 06:29:59 -0800 From: Jani Nikula To: =?utf-8?Q?Jos=C3=A9?= Roberto de Souza , intel-gfx@lists.freedesktop.org In-Reply-To: <20191127225451.60023-1-jose.souza@intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20191126005400.264480-5-jose.souza@intel.com> <20191127225451.60023-1-jose.souza@intel.com> Date: Thu, 28 Nov 2019 16:29:56 +0200 Message-ID: <8736e8m5uj.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v3 5/5] drm/i915/vbt: Parse power conservation features block X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191128142956.G14DLjta70smxxYE2s5ssmvwzHXLt4NM5ZlR76uKLgI@z> T24gV2VkLCAyNyBOb3YgMjAxOSwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBp bnRlbC5jb20+IHdyb3RlOgo+IEZyb20gVkJUIDIyOCsgdGhpcyBpcyBibG9jayB0aGF0IFBTUiBh bmQgb3RoZXIgcG93ZXIgc2F2aW5nCj4gZmVhdHVyZXMgY29uZmlndXJhdGlvbiBzaG91bGQgYmUg cmVhZCBmcm9tLgo+Cj4gdjM6Cj4gVXNpbmcgRFJSUyBmcm9tIHRoaXMgbmV3IGJsb2NrCj4KPiBD YzogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPiBDYzogR3dhbi1neWVv bmcgTXVuIDxnd2FuLWd5ZW9uZy5tdW5AaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEpvc8Op IFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYyAgICAgfCAzNiArKysrKysrKysrKysr KysrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmJ0X2RlZnMuaCB8 IDI5ICsrKysrKysrKysrKysrKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9iaW9zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jp b3MuYwo+IGluZGV4IGY2YTlhNWNjYjU1Ni4uMmQwNmYxZjU3MzRkIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKPiBAQCAtNjU5LDE2ICs2NTksNDUgQEAg cGFyc2VfZHJpdmVyX2ZlYXR1cmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiAgCQkJZGV2X3ByaXYtPnZidC5pbnRfbHZkc19zdXBwb3J0ID0gMDsKPiAgCX0KPiAgCj4gLQlE Uk1fREVCVUdfS01TKCJEUlJTIFN0YXRlIEVuYWJsZWQ6JWRcbiIsIGRyaXZlci0+ZHJyc19lbmFi bGVkKTsKPiArCWlmIChiZGItPnZlcnNpb24gPCAyMjgpIHsKPiArCQlEUk1fREVCVUdfS01TKCJE UlJTIFN0YXRlIEVuYWJsZWQ6JWRcbiIsIGRyaXZlci0+ZHJyc19lbmFibGVkKTsKPiArCQkvKgo+ ICsJCSAqIElmIERSUlMgaXMgbm90IHN1cHBvcnRlZCwgZHJyc190eXBlIGhhcyB0byBiZSBzZXQg dG8gMC4KPiArCQkgKiBUaGlzIGlzIGJlY2F1c2UsIFZCVCBpcyBjb25maWd1cmVkIGluIHN1Y2gg YSB3YXkgdGhhdAo+ICsJCSAqIHN0YXRpYyBEUlJTIGlzIDAgYW5kIERSUlMgbm90IHN1cHBvcnRl ZCBpcyByZXByZXNlbnRlZCBieQo+ICsJCSAqIGRyaXZlci0+ZHJyc19lbmFibGVkPWZhbHNlCj4g KwkJICovCj4gKwkJaWYgKCFkcml2ZXItPmRycnNfZW5hYmxlZCkKPiArCQkJZGV2X3ByaXYtPnZi dC5kcnJzX3R5cGUgPSBEUlJTX05PVF9TVVBQT1JURUQ7Cj4gKwo+ICsJCWRldl9wcml2LT52YnQu cHNyLmVuYWJsZSA9IGRyaXZlci0+cHNyX2VuYWJsZWQ7Cj4gKwl9Cj4gK30KCk1heWJlIHRoaXMg cmV2aWV3IGNvbW1lbnQgZ2l2ZXMgeW91IGFuIGlkZWEgd2hhdCB3ZSBoYXZlIHRvIHRoaW5rIG9m IGFuZApkZWFsIHdpdGggd2hlbiB3b3JraW5nIHdpdGggVkJUIGFuZCBWQlQgcGFyc2luZy4KCklt YWdpbmUgVkJUIHZlcnNpb24gPj0gMjI4IHdpdGhvdXQgbHZkcyBwb3dlciBibG9jaywgYW5kCmRy aXZlci0+ZHJyc19lbmFibGVkID09IGZhbHNlLgoKPiArCj4gK3N0YXRpYyB2b2lkCj4gK3BhcnNl X3Bvd2VyX2NvbnNlcnZhdGlvbl9mZWF0dXJlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gKwkJCQkgIGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIpCj4gK3sKPiArCWNv bnN0IHN0cnVjdCBiZGJfbGZwX3Bvd2VyICpwb3dlcjsKPiArCXU4IHBhbmVsX3R5cGUgPSBkZXZf cHJpdi0+dmJ0LnBhbmVsX3R5cGU7Cj4gKwo+ICsJaWYgKGJkYi0+dmVyc2lvbiA8IDIyOCkKPiAr CQlyZXR1cm47Cj4gKwo+ICsJcG93ZXIgPSBmaW5kX3NlY3Rpb24oYmRiLCBCREJfTFZEU19QT1dF Uik7Cj4gKwlpZiAoIXBvd2VyKQo+ICsJCXJldHVybjsKPiArCj4gKwlkZXZfcHJpdi0+dmJ0LnBz ci5lbmFibGUgPSBwb3dlci0+cHNyICYgKDEgPDwgcGFuZWxfdHlwZSk7Cj4gKwo+ICAJLyoKPiAg CSAqIElmIERSUlMgaXMgbm90IHN1cHBvcnRlZCwgZHJyc190eXBlIGhhcyB0byBiZSBzZXQgdG8g MC4KPiAgCSAqIFRoaXMgaXMgYmVjYXVzZSwgVkJUIGlzIGNvbmZpZ3VyZWQgaW4gc3VjaCBhIHdh eSB0aGF0Cj4gIAkgKiBzdGF0aWMgRFJSUyBpcyAwIGFuZCBEUlJTIG5vdCBzdXBwb3J0ZWQgaXMg cmVwcmVzZW50ZWQgYnkKPiAgCSAqIGRyaXZlci0+ZHJyc19lbmFibGVkPWZhbHNlCj4gIAkgKi8K PiAtCWlmICghZHJpdmVyLT5kcnJzX2VuYWJsZWQpCj4gKwlpZiAoIShwb3dlci0+ZHJycyAmICgx IDw8IHBhbmVsX3R5cGUpKSkKPiAgCQlkZXZfcHJpdi0+dmJ0LmRycnNfdHlwZSA9IERSUlNfTk9U X1NVUFBPUlRFRDsKPiAtCWRldl9wcml2LT52YnQucHNyLmVuYWJsZSA9IGRyaXZlci0+cHNyX2Vu YWJsZWQ7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gQEAgLTE5NzMsNiArMjAwMiw3IEBAIHZv aWQgaW50ZWxfYmlvc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAg CXBhcnNlX2xmcF9iYWNrbGlnaHQoZGV2X3ByaXYsIGJkYik7Cj4gIAlwYXJzZV9zZHZvX3BhbmVs X2RhdGEoZGV2X3ByaXYsIGJkYik7Cj4gIAlwYXJzZV9kcml2ZXJfZmVhdHVyZXMoZGV2X3ByaXYs IGJkYik7Cj4gKwlwYXJzZV9wb3dlcl9jb25zZXJ2YXRpb25fZmVhdHVyZXMoZGV2X3ByaXYsIGJk Yik7Cj4gIAlwYXJzZV9lZHAoZGV2X3ByaXYsIGJkYik7Cj4gIAlwYXJzZV9wc3IoZGV2X3ByaXYs IGJkYik7Cj4gIAlwYXJzZV9taXBpX2NvbmZpZyhkZXZfcHJpdiwgYmRiKTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF92YnRfZGVmcy5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF92YnRfZGVmcy5oCj4gaW5kZXggZjAzMzhkYTNh ODJhLi45OGI3MWRjMzJkMmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF92YnRfZGVmcy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF92YnRfZGVmcy5oCj4gQEAgLTc5Myw2ICs3OTMsMzUgQEAgc3RydWN0IGJkYl9sZnBf YmFja2xpZ2h0X2RhdGEgewo+ICAJc3RydWN0IGxmcF9iYWNrbGlnaHRfY29udHJvbF9tZXRob2Qg YmFja2xpZ2h0X2NvbnRyb2xbMTZdOwo+ICB9IF9fcGFja2VkOwo+ICAKPiArLyoKPiArICogQmxv Y2sgNDQgLSBMRlAgUG93ZXIgQ29uc2VydmF0aW9uIEZlYXR1cmVzIEJsb2NrCj4gKyAqLwo+ICsK PiArc3RydWN0IGFsc19kYXRhX2VudHJ5IHsKPiArCXUxNiBiYWNrbGlnaHRfYWRqdXN0Owo+ICsJ dTE2IGx1eDsKPiArfSBfX3BhY2tlZDsKPiArCj4gK3N0cnVjdCBhZ3Jlc3NpdmVuZXNzX3Byb2Zp bGVfZW50cnkgewo+ICsJdTggZHBzdF9hZ3Jlc3NpdmVuZXNzIDogNDsKPiArCXU4IGxhY2VfYWdy ZXNzaXZlbmVzcyA6IDQ7CgpOaXRwaWNrLCBub25lIG9mIHRoZSBvdGhlciBiaXRmaWVsZHMgaGF2 ZSBzcGFjZXMgYXJvdW5kIDogaGVyZS4KCj4gK30gX19wYWNrZWQ7Cj4gKwo+ICtzdHJ1Y3QgYmRi X2xmcF9wb3dlciB7CgpUaGUgaWRlYSBpcyB0aGF0IHRoZSBiZGIgc3RydWN0IG5hbWUgaXMgdGhl IHNhbWUgYXMgdGhlIGJsb2NrIGlkIGVudW0sCmp1c3QgbG93ZXIgY2FzZS4gUGxlYXNlIGZpeCBl aXRoZXIuCgpCUiwKSmFuaS4KCgo+ICsJdTggbGZwX2ZlYXR1cmVfYml0czsKPiArCXN0cnVjdCBh bHNfZGF0YV9lbnRyeSBhbHNbNV07Cj4gKwl1OCBsYWNlX2FnZ3Jlc3NpdmVuZXNzX3Byb2ZpbGU7 Cj4gKwl1MTYgZHBzdDsKPiArCXUxNiBwc3I7Cj4gKwl1MTYgZHJyczsKPiArCXUxNiBsYWNlX3N1 cHBvcnQ7Cj4gKwl1MTYgYWR0Owo+ICsJdTE2IGRtcnJzOwo+ICsJdTE2IGFkYjsKPiArCXUxNiBs YWNlX2VuYWJsZWRfc3RhdHVzOwo+ICsJc3RydWN0IGFncmVzc2l2ZW5lc3NfcHJvZmlsZV9lbnRy eSBhZ2dyZXNzaXZlbmVzWzE2XTsKPiArfSBfX3BhY2tlZDsKPiArCj4gIC8qCj4gICAqIEJsb2Nr IDUyIC0gTUlQSSBDb25maWd1cmF0aW9uIEJsb2NrCj4gICAqLwoKLS0gCkphbmkgTmlrdWxhLCBJ bnRlbCBPcGVuIFNvdXJjZSBHcmFwaGljcyBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4