From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v4 2/2] drm/i915/vbt: Handle generic DTD block Date: Fri, 15 Nov 2019 09:45:21 +0200 Message-ID: <87mucx1t2m.fsf@intel.com> References: <20191114170810.14829-1-matthew.d.roper@intel.com> <20191114170810.14829-3-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id B8F896E03D for ; Fri, 15 Nov 2019 07:45:26 +0000 (UTC) In-Reply-To: <20191114170810.14829-3-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAxNCBOb3YgMjAxOSwgTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNv bT4gd3JvdGU6Cj4gVkJUIHJldmlzaW9uIDIyOSBhZGRzIGEgbmV3ICJHZW5lcmljIERURCIgYmxv Y2sgNTggYW5kIGRlcHJlY2F0ZXMgdGhlCj4gb2xkIExGUCBwYW5lbCBtb2RlIGRhdGEgaW4gYmxv Y2sgNDIuICBMZXQncyBzdGFydCBwYXJzaW5nIHRoaXMgYmxvY2sgdG8KPiBmaWxsIGluIHRoZSBw YW5lbCBmaXhlZCBtb2RlIG9uIGRldmljZXMgd2l0aCBhID49MjI5IFZCVC4KPgo+IHYyOgo+ICAq IFVwZGF0ZSBhY2NvcmRpbmcgdG8gdGhlIHJlY2VudCB1cGRhdGVzOgo+ICAgICAtIERURCBzaXpl IGlzIG5vdyAxNiBiaXRzIGluc3RlYWQgb2YgMjQKPiAgICAgLSBwb2xhcml0eSBpcyBub3cganVz dCBhIHNpbmdsZSBiaXQgZm9yIGhzeW5jIGFuZCB2c3luYyBhbmQgaXMKPiAgICAgICBwcm9wZXJs eSBkb2N1bWVudGVkCj4gICogTWlub3IgY2hlY2twYXRjaCBmaXgKPgo+IHYzOgo+ICAqIE5vdyB0 aGF0IHBhbmVsIG9wdGlvbnMgYXJlIHBhcnNlZCBzZXBhcmF0ZWx5IGZyb20gdGhlIHByZXZpb3Vz IHBhdGNoLAo+ICAgIG1vdmUgZ2VuZXJpYyBEVEQgcGFyc2luZyBpbnRvIGEgZnVuY3Rpb24gcGFy YWxsZWwgdG8KPiAgICBwYXJzZV9sZnBfcGFuZWxfZHRkLiAgV2UnbGwgc3RpbGwgZmFsbCBiYWNr IHRvIGxvb2tpbmcgYXQgdGhlIGxlZ2FjeQo+ICAgIExWRFMgdGltaW5nIGJsb2NrIGlmIHRoZSBn ZW5lcmljIERURCBmYWlscy4gIChKYW5pKQo+ICAqIERvbid0IGZvcmdldCB0byBhY3R1YWxseSBz ZXQgbGZwX2x2ZHNfdmJ0X21vZGUhICAoSmFuaSkKPiAgKiBEcm9wICJiZGJfIiBwcmVmaXggZnJv bSBkdGQgZW50cnkgc3RydWN0dXJlLiAgKEphbmkpCj4gICogRm9sbG93IEM5OSBzdGFuZGFyZCBm b3Igc3RydWN0dXJlJ3MgZmxleGlibGUgYXJyYXkgbWVtYmVyLiAgKEphbmkpCj4KPiBCc3BlYzog NTQ3NTEKPiBCc3BlYzogMjAxNDgKPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVs LmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwu Y29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYyAg ICAgfCA4NiArKysrKysrKysrKysrKysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfdmJ0X2RlZnMuaCB8IDMxICsrKysrKysKPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMTUg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfYmlvcy5jCj4gaW5kZXggZDEzY2UwYjdkYjhiLi4zYjY2MTYwZmQzYzQgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYwo+IEBAIC0yOTYs NyArMjk2LDcgQEAgcGFyc2VfbGZwX3BhbmVsX2R0ZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gIAo+ICAJZGV2X3ByaXYtPnZidC5sZnBfbHZkc192YnRfbW9kZSA9IHBhbmVs X2ZpeGVkX21vZGU7Cj4gIAo+IC0JRFJNX0RFQlVHX0tNUygiRm91bmQgcGFuZWwgbW9kZSBpbiBC SU9TIFZCVCB0YWJsZXM6XG4iKTsKPiArCURSTV9ERUJVR19LTVMoIkZvdW5kIHBhbmVsIG1vZGUg aW4gQklPUyBWQlQgbGVnYWN5IGxmcCB0YWJsZTpcbiIpOwo+ICAJZHJtX21vZGVfZGVidWdfcHJp bnRtb2RlbGluZShwYW5lbF9maXhlZF9tb2RlKTsKPiAgCj4gIAlmcF90aW1pbmcgPSBnZXRfbHZk c19mcF90aW1pbmcoYmRiLCBsdmRzX2xmcF9kYXRhLAo+IEBAIC0zMTMsNiArMzEzLDgxIEBAIHBh cnNlX2xmcF9wYW5lbF9kdGQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJ fQo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZAo+ICtwYXJzZV9nZW5lcmljX2R0ZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJICBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAq YmRiKQo+ICt7Cj4gKwljb25zdCBzdHJ1Y3QgYmRiX2dlbmVyaWNfZHRkICpnZW5lcmljX2R0ZDsK PiArCWNvbnN0IHN0cnVjdCBnZW5lcmljX2R0ZF9lbnRyeSAqZHRkOwo+ICsJc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKnBhbmVsX2ZpeGVkX21vZGU7Cj4gKwlpbnQgbnVtX2R0ZDsKPiArCj4gKwln ZW5lcmljX2R0ZCA9IGZpbmRfc2VjdGlvbihiZGIsIEJEQl9HRU5FUklDX0RURCk7Cj4gKwlpZiAo IWdlbmVyaWNfZHRkKQo+ICsJCXJldHVybjsKPiArCj4gKwlpZiAoZ2VuZXJpY19kdGQtPmdkdGRf c2l6ZSA8IHNpemVvZihzdHJ1Y3QgZ2VuZXJpY19kdGRfZW50cnkpKSB7Cj4gKwkJRFJNX0VSUk9S KCJHRFREIHNpemUgJXUgaXMgdG9vIHNtYWxsLlxuIiwKPiArCQkJICBnZW5lcmljX2R0ZC0+Z2R0 ZF9zaXplKTsKPiArCQlyZXR1cm47Cj4gKwl9IGVsc2UgaWYgKGdlbmVyaWNfZHRkLT5nZHRkX3Np emUgIT0KPiArCQkgICBzaXplb2Yoc3RydWN0IGdlbmVyaWNfZHRkX2VudHJ5KSkgewo+ICsJCURS TV9FUlJPUigiVW5leHBlY3RlZCBHRFREIHNpemUgJXVcbiIsIGdlbmVyaWNfZHRkLT5nZHRkX3Np emUpOwo+ICsJCS8qIERURCBoYXMgdW5rbm93biBmaWVsZHMsIGJ1dCBrZWVwIGdvaW5nICovCj4g Kwl9Cj4gKwo+ICsJbnVtX2R0ZCA9IChnZXRfYmxvY2tzaXplKGdlbmVyaWNfZHRkKSAtCj4gKwkJ ICAgc2l6ZW9mKHN0cnVjdCBiZGJfZ2VuZXJpY19kdGQpKSAvIGdlbmVyaWNfZHRkLT5nZHRkX3Np emU7Cj4gKwlpZiAoZGV2X3ByaXYtPnZidC5wYW5lbF90eXBlID4gbnVtX2R0ZCkgewo+ICsJCURS TV9FUlJPUigiUGFuZWwgdHlwZSAlZCBub3QgZm91bmQgaW4gdGFibGUgb2YgJWQgRFREJ3NcbiIs Cj4gKwkJCSAgZGV2X3ByaXYtPnZidC5wYW5lbF90eXBlLCBudW1fZHRkKTsKPiArCQlyZXR1cm47 Cj4gKwl9CgpJIHdvbmRlciBob3cgbWFueSB0aW1lcyB3ZSd2ZSBkdXBsaWNhdGVkIGEgdmVyc2lv biBvZiB0aGUgZG96ZW4gb3Igc28KbGluZXMgYWJvdmUuLi4gTm90IHBhcnQgb2YgdGhpcyBwYXRj aCwgYnV0IHdlJ2xsIG5lZWQgdG8gYWRkcmVzcyB0aGlzCm9uZSBvZiB0aGVzZSBkYXlzLgoKPiAr Cj4gKwlkdGQgPSAmZ2VuZXJpY19kdGQtPmR0ZFtkZXZfcHJpdi0+dmJ0LnBhbmVsX3R5cGVdOwo+ ICsKPiArCXBhbmVsX2ZpeGVkX21vZGUgPSBremFsbG9jKHNpemVvZigqcGFuZWxfZml4ZWRfbW9k ZSksIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFwYW5lbF9maXhlZF9tb2RlKQo+ICsJCXJldHVybjsK PiArCj4gKwlwYW5lbF9maXhlZF9tb2RlLT5oZGlzcGxheSA9IGR0ZC0+aGFjdGl2ZTsKPiArCXBh bmVsX2ZpeGVkX21vZGUtPmhzeW5jX3N0YXJ0ID0KPiArCQlwYW5lbF9maXhlZF9tb2RlLT5oZGlz cGxheSArIGR0ZC0+aGZyb250X3BvcmNoOwo+ICsJcGFuZWxfZml4ZWRfbW9kZS0+aHN5bmNfZW5k ID0KPiArCQlwYW5lbF9maXhlZF9tb2RlLT5oc3luY19zdGFydCArIGR0ZC0+aHN5bmM7Cj4gKwlw YW5lbF9maXhlZF9tb2RlLT5odG90YWwgPSBwYW5lbF9maXhlZF9tb2RlLT5oc3luY19lbmQ7Cj4g Kwo+ICsJcGFuZWxfZml4ZWRfbW9kZS0+dmRpc3BsYXkgPSBkdGQtPnZhY3RpdmU7Cj4gKwlwYW5l bF9maXhlZF9tb2RlLT52c3luY19zdGFydCA9Cj4gKwkJcGFuZWxfZml4ZWRfbW9kZS0+dmRpc3Bs YXkgKyBkdGQtPnZmcm9udF9wb3JjaDsKPiArCXBhbmVsX2ZpeGVkX21vZGUtPnZzeW5jX2VuZCA9 Cj4gKwkJcGFuZWxfZml4ZWRfbW9kZS0+dnN5bmNfc3RhcnQgKyBkdGQtPnZzeW5jOwo+ICsJcGFu ZWxfZml4ZWRfbW9kZS0+dnRvdGFsID0gcGFuZWxfZml4ZWRfbW9kZS0+dnN5bmNfZW5kOwo+ICsK PiArCXBhbmVsX2ZpeGVkX21vZGUtPmNsb2NrID0gZHRkLT5waXhlbF9jbG9jazsKPiArCXBhbmVs X2ZpeGVkX21vZGUtPndpZHRoX21tID0gZHRkLT53aWR0aF9tbTsKPiArCXBhbmVsX2ZpeGVkX21v ZGUtPmhlaWdodF9tbSA9IGR0ZC0+aGVpZ2h0X21tOwo+ICsKPiArCXBhbmVsX2ZpeGVkX21vZGUt PnR5cGUgPSBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKPiArCWRybV9tb2RlX3NldF9uYW1lKHBh bmVsX2ZpeGVkX21vZGUpOwo+ICsKPiArCWlmIChkdGQtPmhzeW5jX3BvbGFyaXR5KQoKTml0cGlj aywgSSB0ZW5kIHRvIGxpa2UgYml0IGZsYWdzIG5hbWVzIHRoYXQgc2F5IHdoYXQgdGhlIHZhbHVl IG1lYW5zLAppLmUuIGhhdmUgInBvc2l0aXZlIiBpbiB0aGVyZSB0byBpbmRpY2F0ZSB0aGUgZmxh ZyBzZXQgbWVhbnMKcG9zaXRpdmUuIEJ1dCB3ZSBhbHJlYWR5IGhhdmUgdGhlIHNhbWUgdGhpbmcg aW4gdGhlIG9sZCBzdHJ1Y3QuICpzaHJ1ZyoKCj4gKwkJcGFuZWxfZml4ZWRfbW9kZS0+ZmxhZ3Mg fD0gRFJNX01PREVfRkxBR19QSFNZTkM7Cj4gKwllbHNlCj4gKwkJcGFuZWxfZml4ZWRfbW9kZS0+ ZmxhZ3MgfD0gRFJNX01PREVfRkxBR19OSFNZTkM7Cj4gKwo+ICsJaWYgKGR0ZC0+dnN5bmNfcG9s YXJpdHkpCj4gKwkJcGFuZWxfZml4ZWRfbW9kZS0+ZmxhZ3MgfD0gRFJNX01PREVfRkxBR19QVlNZ TkM7Cj4gKwllbHNlCj4gKwkJcGFuZWxfZml4ZWRfbW9kZS0+ZmxhZ3MgfD0gRFJNX01PREVfRkxB R19OVlNZTkM7Cj4gKwo+ICsJRFJNX0RFQlVHX0tNUygiRm91bmQgcGFuZWwgbW9kZSBpbiBCSU9T IFZCVCBnZW5lcmljIGR0ZCB0YWJsZTpcbiIpOwo+ICsJZHJtX21vZGVfZGVidWdfcHJpbnRtb2Rl bGluZShwYW5lbF9maXhlZF9tb2RlKTsKPiArCj4gKwlkZXZfcHJpdi0+dmJ0LmxmcF9sdmRzX3Zi dF9tb2RlID0gcGFuZWxfZml4ZWRfbW9kZTsKPiArfQo+ICsKPiArCgpOaXRwaWNrLCBkb3VibGUg bmV3bGluZXMuCgo+ICBzdGF0aWMgdm9pZAo+ICBwYXJzZV9sZnBfYmFja2xpZ2h0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkgICAgY29uc3Qgc3RydWN0IGJkYl9oZWFk ZXIgKmJkYikKPiBAQCAtMTg3Nyw3ICsxOTUyLDE0IEBAIHZvaWQgaW50ZWxfYmlvc19pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCXBhcnNlX2dlbmVyYWxfZmVhdHVy ZXMoZGV2X3ByaXYsIGJkYik7Cj4gIAlwYXJzZV9nZW5lcmFsX2RlZmluaXRpb25zKGRldl9wcml2 LCBiZGIpOwo+ICAJcGFyc2VfcGFuZWxfb3B0aW9ucyhkZXZfcHJpdiwgYmRiKTsKPiAtCXBhcnNl X2xmcF9wYW5lbF9kdGQoZGV2X3ByaXYsIGJkYik7Cj4gKwlpZiAoYmRiLT52ZXJzaW9uID49IDIy OSkKPiArCQkvKgo+ICsJCSAqIElmIHRoaXMgZmFpbHMsIHdlJ2xsIGZhbGwgYmFjayB0byB0cnlp bmcgdG8gcGFyc2UgdGhlCj4gKwkJICogbGVnYWN5IExWRFMgYmxvY2sgYmVsb3cuCj4gKwkJICov Cj4gKwkJcGFyc2VfZ2VuZXJpY19kdGQoZGV2X3ByaXYsIGJkYik7Cj4gKwlpZiAoIWRldl9wcml2 LT52YnQubGZwX2x2ZHNfdmJ0X21vZGUpCj4gKwkJcGFyc2VfbGZwX3BhbmVsX2R0ZChkZXZfcHJp diwgYmRiKTsKCk1heWJlIHdlIHNob3VsZCBhYnN0cmFjdCB0aGF0IHRvIGEgaGVscGVyIHRoYXQg YnJhbmNoZXMgb3V0IHRvIGhpZGUgaXQKZnJvbSB0aGUgdG9wIGxldmVsLiBDYW4gYmUgbGVmdCBm b3IgZm9sbG93LXVwLgoKPiAgCXBhcnNlX2xmcF9iYWNrbGlnaHQoZGV2X3ByaXYsIGJkYik7Cj4g IAlwYXJzZV9zZHZvX3BhbmVsX2RhdGEoZGV2X3ByaXYsIGJkYik7Cj4gIAlwYXJzZV9kcml2ZXJf ZmVhdHVyZXMoZGV2X3ByaXYsIGJkYik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfdmJ0X2RlZnMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfdmJ0X2RlZnMuaAo+IGluZGV4IDY5YTdjYjFmYTEyMS4uNDFlZmYyZWFlMjExIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmJ0X2RlZnMu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmJ0X2RlZnMuaAo+ IEBAIC0xMTUsNiArMTE1LDcgQEAgZW51bSBiZGJfYmxvY2tfaWQgewo+ICAJQkRCX01JUElfQ09O RklHCQkJPSA1MiwKPiAgCUJEQl9NSVBJX1NFUVVFTkNFCQk9IDUzLAo+ICAJQkRCX0NPTVBSRVNT SU9OX1BBUkFNRVRFUlMJPSA1NiwKPiArCUJEQl9HRU5FUklDX0RURAkJCT0gNTgsCj4gIAlCREJf U0tJUAkJCT0gMjU0LCAvKiBWQklPUyBwcml2YXRlIGJsb2NrLCBpZ25vcmUgKi8KPiAgfTsKPiAg Cj4gQEAgLTg2Myw0ICs4NjQsMzQgQEAgc3RydWN0IGJkYl9jb21wcmVzc2lvbl9wYXJhbWV0ZXJz IHsKPiAgCXN0cnVjdCBkc2NfY29tcHJlc3Npb25fcGFyYW1ldGVyc19lbnRyeSBkYXRhWzE2XTsK PiAgfSBfX3BhY2tlZDsKPiAgCj4gKy8qCj4gKyAqIEJsb2NrIDU4IC0gR2VuZXJpYyBEVEQgQmxv Y2sKPiArICovCj4gKwo+ICtzdHJ1Y3QgZ2VuZXJpY19kdGRfZW50cnkgewo+ICsJdTMyIHBpeGVs X2Nsb2NrOwo+ICsJdTE2IGhhY3RpdmU7Cj4gKwl1MTYgaGJsYW5rOwo+ICsJdTE2IGhmcm9udF9w b3JjaDsKPiArCXUxNiBoc3luYzsKPiArCXUxNiB2YWN0aXZlOwo+ICsJdTE2IHZibGFuazsKPiAr CXUxNiB2ZnJvbnRfcG9yY2g7Cj4gKwl1MTYgdnN5bmM7Cj4gKwl1MTYgd2lkdGhfbW07Cj4gKwl1 MTYgaGVpZ2h0X21tOwo+ICsKPiArCS8qIEZsYWdzICovCj4gKwl1OCByc3ZkX2ZsYWdzOjY7Cj4g Kwl1OCB2c3luY19wb2xhcml0eToxOwo+ICsJdTggaHN5bmNfcG9sYXJpdHk6MTsKPiArCj4gKwl1 MzIgcnN2ZDoyNDsKClRoaXMgZG9lcyBzZWVtIHRvIHdvcmsgKGFuZCBJIGhhZCB0byB0cnkgdG8g YmVsaWV2ZSksIGJ1dCBmb3IgcGFja2VkCnN0cnVjdHMgSSB0aGluayBJJ2QgZmVlbCBtb3JlIGNv bWZvcnRhYmxlIGdyb3VwaW5nIGJpdGZpZWxkcyBzdWNoIHRoYXQKdGhlIGJpdHMgZmlsbCB1cCB0 aGUgdHlwZS4gTm93IHRoaXMgZGVwZW5kcyBvbiB0aGUgdTggYW5kIDI0IGJpdHMgb2YgdGhlCnUz MiB0byBmb3JtIDQgYnl0ZXMuIEhhdmluZyB1MzIgcnN2ZDoyNCBkb2VzIG5vdCB3b3JrIGluZGVw ZW5kZW50bHksIGFuZApJIGRvbid0IHdhbnQgdG8gcmlzayBhbnlvbmUgcGlja2luZyB0aGF0IHVw IGFuZCBjYXJnbyBjdWx0aW5nCmluY29ycmVjdGx5LgoKU28gbWF5YmUganVzdCB1OCByc3ZkWzNd IGZvciBjbGFyaXR5PwoKVGhpcyBvbmUgSSdkIGxpa2UgZml4ZWQsIEknbGwgbGVhdmUgdGhlIG90 aGVyIG5pdHBpY2tzIHRvIHlvdXIKZGlzY3JldGlvbiBvciBtYXliZSBmb2xsb3ctdXAgcGF0Y2hl cywgYW5kIHdpdGggdGhhdCwKClJldmlld2VkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFA aW50ZWwuY29tPgoKPiArfSBfX3BhY2tlZDsKPiArCj4gK3N0cnVjdCBiZGJfZ2VuZXJpY19kdGQg ewo+ICsJdTE2IGdkdGRfc2l6ZTsKPiArCXN0cnVjdCBnZW5lcmljX2R0ZF9lbnRyeSBkdGRbXTsJ LyogdXAgdG8gMjQgRFREJ3MgKi8KPiArfSBfX3BhY2tlZDsKPiArCj4gICNlbmRpZiAvKiBfSU5U RUxfVkJUX0RFRlNfSF8gKi8KCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3Jh cGhpY3MgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eA== 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 EDC70C432C3 for ; Fri, 15 Nov 2019 07:45:28 +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 CBB3D2073C for ; Fri, 15 Nov 2019 07:45:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CBB3D2073C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=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 57E0B6E03D; Fri, 15 Nov 2019 07:45:28 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id B8F896E03D for ; Fri, 15 Nov 2019 07:45:26 +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 orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Nov 2019 23:45:26 -0800 X-IronPort-AV: E=Sophos;i="5.68,307,1569308400"; d="scan'208";a="199121817" 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; 14 Nov 2019 23:45:24 -0800 From: Jani Nikula To: Matt Roper , intel-gfx@lists.freedesktop.org In-Reply-To: <20191114170810.14829-3-matthew.d.roper@intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20191114170810.14829-1-matthew.d.roper@intel.com> <20191114170810.14829-3-matthew.d.roper@intel.com> Date: Fri, 15 Nov 2019 09:45:21 +0200 Message-ID: <87mucx1t2m.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v4 2/2] drm/i915/vbt: Handle generic DTD 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: <20191115074521.AyAAaoAJMdrzd979zAn4wH2QsaE63SnBtUildnEzB3o@z> T24gVGh1LCAxNCBOb3YgMjAxOSwgTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNv bT4gd3JvdGU6Cj4gVkJUIHJldmlzaW9uIDIyOSBhZGRzIGEgbmV3ICJHZW5lcmljIERURCIgYmxv Y2sgNTggYW5kIGRlcHJlY2F0ZXMgdGhlCj4gb2xkIExGUCBwYW5lbCBtb2RlIGRhdGEgaW4gYmxv Y2sgNDIuICBMZXQncyBzdGFydCBwYXJzaW5nIHRoaXMgYmxvY2sgdG8KPiBmaWxsIGluIHRoZSBw YW5lbCBmaXhlZCBtb2RlIG9uIGRldmljZXMgd2l0aCBhID49MjI5IFZCVC4KPgo+IHYyOgo+ICAq IFVwZGF0ZSBhY2NvcmRpbmcgdG8gdGhlIHJlY2VudCB1cGRhdGVzOgo+ICAgICAtIERURCBzaXpl IGlzIG5vdyAxNiBiaXRzIGluc3RlYWQgb2YgMjQKPiAgICAgLSBwb2xhcml0eSBpcyBub3cganVz dCBhIHNpbmdsZSBiaXQgZm9yIGhzeW5jIGFuZCB2c3luYyBhbmQgaXMKPiAgICAgICBwcm9wZXJs eSBkb2N1bWVudGVkCj4gICogTWlub3IgY2hlY2twYXRjaCBmaXgKPgo+IHYzOgo+ICAqIE5vdyB0 aGF0IHBhbmVsIG9wdGlvbnMgYXJlIHBhcnNlZCBzZXBhcmF0ZWx5IGZyb20gdGhlIHByZXZpb3Vz IHBhdGNoLAo+ICAgIG1vdmUgZ2VuZXJpYyBEVEQgcGFyc2luZyBpbnRvIGEgZnVuY3Rpb24gcGFy YWxsZWwgdG8KPiAgICBwYXJzZV9sZnBfcGFuZWxfZHRkLiAgV2UnbGwgc3RpbGwgZmFsbCBiYWNr IHRvIGxvb2tpbmcgYXQgdGhlIGxlZ2FjeQo+ICAgIExWRFMgdGltaW5nIGJsb2NrIGlmIHRoZSBn ZW5lcmljIERURCBmYWlscy4gIChKYW5pKQo+ICAqIERvbid0IGZvcmdldCB0byBhY3R1YWxseSBz ZXQgbGZwX2x2ZHNfdmJ0X21vZGUhICAoSmFuaSkKPiAgKiBEcm9wICJiZGJfIiBwcmVmaXggZnJv bSBkdGQgZW50cnkgc3RydWN0dXJlLiAgKEphbmkpCj4gICogRm9sbG93IEM5OSBzdGFuZGFyZCBm b3Igc3RydWN0dXJlJ3MgZmxleGlibGUgYXJyYXkgbWVtYmVyLiAgKEphbmkpCj4KPiBCc3BlYzog NTQ3NTEKPiBCc3BlYzogMjAxNDgKPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVs LmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwu Y29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYyAg ICAgfCA4NiArKysrKysrKysrKysrKysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfdmJ0X2RlZnMuaCB8IDMxICsrKysrKysKPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMTUg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfYmlvcy5jCj4gaW5kZXggZDEzY2UwYjdkYjhiLi4zYjY2MTYwZmQzYzQgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYwo+IEBAIC0yOTYs NyArMjk2LDcgQEAgcGFyc2VfbGZwX3BhbmVsX2R0ZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gIAo+ICAJZGV2X3ByaXYtPnZidC5sZnBfbHZkc192YnRfbW9kZSA9IHBhbmVs X2ZpeGVkX21vZGU7Cj4gIAo+IC0JRFJNX0RFQlVHX0tNUygiRm91bmQgcGFuZWwgbW9kZSBpbiBC SU9TIFZCVCB0YWJsZXM6XG4iKTsKPiArCURSTV9ERUJVR19LTVMoIkZvdW5kIHBhbmVsIG1vZGUg aW4gQklPUyBWQlQgbGVnYWN5IGxmcCB0YWJsZTpcbiIpOwo+ICAJZHJtX21vZGVfZGVidWdfcHJp bnRtb2RlbGluZShwYW5lbF9maXhlZF9tb2RlKTsKPiAgCj4gIAlmcF90aW1pbmcgPSBnZXRfbHZk c19mcF90aW1pbmcoYmRiLCBsdmRzX2xmcF9kYXRhLAo+IEBAIC0zMTMsNiArMzEzLDgxIEBAIHBh cnNlX2xmcF9wYW5lbF9kdGQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJ fQo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZAo+ICtwYXJzZV9nZW5lcmljX2R0ZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJICBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAq YmRiKQo+ICt7Cj4gKwljb25zdCBzdHJ1Y3QgYmRiX2dlbmVyaWNfZHRkICpnZW5lcmljX2R0ZDsK PiArCWNvbnN0IHN0cnVjdCBnZW5lcmljX2R0ZF9lbnRyeSAqZHRkOwo+ICsJc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKnBhbmVsX2ZpeGVkX21vZGU7Cj4gKwlpbnQgbnVtX2R0ZDsKPiArCj4gKwln ZW5lcmljX2R0ZCA9IGZpbmRfc2VjdGlvbihiZGIsIEJEQl9HRU5FUklDX0RURCk7Cj4gKwlpZiAo IWdlbmVyaWNfZHRkKQo+ICsJCXJldHVybjsKPiArCj4gKwlpZiAoZ2VuZXJpY19kdGQtPmdkdGRf c2l6ZSA8IHNpemVvZihzdHJ1Y3QgZ2VuZXJpY19kdGRfZW50cnkpKSB7Cj4gKwkJRFJNX0VSUk9S KCJHRFREIHNpemUgJXUgaXMgdG9vIHNtYWxsLlxuIiwKPiArCQkJICBnZW5lcmljX2R0ZC0+Z2R0 ZF9zaXplKTsKPiArCQlyZXR1cm47Cj4gKwl9IGVsc2UgaWYgKGdlbmVyaWNfZHRkLT5nZHRkX3Np emUgIT0KPiArCQkgICBzaXplb2Yoc3RydWN0IGdlbmVyaWNfZHRkX2VudHJ5KSkgewo+ICsJCURS TV9FUlJPUigiVW5leHBlY3RlZCBHRFREIHNpemUgJXVcbiIsIGdlbmVyaWNfZHRkLT5nZHRkX3Np emUpOwo+ICsJCS8qIERURCBoYXMgdW5rbm93biBmaWVsZHMsIGJ1dCBrZWVwIGdvaW5nICovCj4g Kwl9Cj4gKwo+ICsJbnVtX2R0ZCA9IChnZXRfYmxvY2tzaXplKGdlbmVyaWNfZHRkKSAtCj4gKwkJ ICAgc2l6ZW9mKHN0cnVjdCBiZGJfZ2VuZXJpY19kdGQpKSAvIGdlbmVyaWNfZHRkLT5nZHRkX3Np emU7Cj4gKwlpZiAoZGV2X3ByaXYtPnZidC5wYW5lbF90eXBlID4gbnVtX2R0ZCkgewo+ICsJCURS TV9FUlJPUigiUGFuZWwgdHlwZSAlZCBub3QgZm91bmQgaW4gdGFibGUgb2YgJWQgRFREJ3NcbiIs Cj4gKwkJCSAgZGV2X3ByaXYtPnZidC5wYW5lbF90eXBlLCBudW1fZHRkKTsKPiArCQlyZXR1cm47 Cj4gKwl9CgpJIHdvbmRlciBob3cgbWFueSB0aW1lcyB3ZSd2ZSBkdXBsaWNhdGVkIGEgdmVyc2lv biBvZiB0aGUgZG96ZW4gb3Igc28KbGluZXMgYWJvdmUuLi4gTm90IHBhcnQgb2YgdGhpcyBwYXRj aCwgYnV0IHdlJ2xsIG5lZWQgdG8gYWRkcmVzcyB0aGlzCm9uZSBvZiB0aGVzZSBkYXlzLgoKPiAr Cj4gKwlkdGQgPSAmZ2VuZXJpY19kdGQtPmR0ZFtkZXZfcHJpdi0+dmJ0LnBhbmVsX3R5cGVdOwo+ ICsKPiArCXBhbmVsX2ZpeGVkX21vZGUgPSBremFsbG9jKHNpemVvZigqcGFuZWxfZml4ZWRfbW9k ZSksIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFwYW5lbF9maXhlZF9tb2RlKQo+ICsJCXJldHVybjsK PiArCj4gKwlwYW5lbF9maXhlZF9tb2RlLT5oZGlzcGxheSA9IGR0ZC0+aGFjdGl2ZTsKPiArCXBh bmVsX2ZpeGVkX21vZGUtPmhzeW5jX3N0YXJ0ID0KPiArCQlwYW5lbF9maXhlZF9tb2RlLT5oZGlz cGxheSArIGR0ZC0+aGZyb250X3BvcmNoOwo+ICsJcGFuZWxfZml4ZWRfbW9kZS0+aHN5bmNfZW5k ID0KPiArCQlwYW5lbF9maXhlZF9tb2RlLT5oc3luY19zdGFydCArIGR0ZC0+aHN5bmM7Cj4gKwlw YW5lbF9maXhlZF9tb2RlLT5odG90YWwgPSBwYW5lbF9maXhlZF9tb2RlLT5oc3luY19lbmQ7Cj4g Kwo+ICsJcGFuZWxfZml4ZWRfbW9kZS0+dmRpc3BsYXkgPSBkdGQtPnZhY3RpdmU7Cj4gKwlwYW5l bF9maXhlZF9tb2RlLT52c3luY19zdGFydCA9Cj4gKwkJcGFuZWxfZml4ZWRfbW9kZS0+dmRpc3Bs YXkgKyBkdGQtPnZmcm9udF9wb3JjaDsKPiArCXBhbmVsX2ZpeGVkX21vZGUtPnZzeW5jX2VuZCA9 Cj4gKwkJcGFuZWxfZml4ZWRfbW9kZS0+dnN5bmNfc3RhcnQgKyBkdGQtPnZzeW5jOwo+ICsJcGFu ZWxfZml4ZWRfbW9kZS0+dnRvdGFsID0gcGFuZWxfZml4ZWRfbW9kZS0+dnN5bmNfZW5kOwo+ICsK PiArCXBhbmVsX2ZpeGVkX21vZGUtPmNsb2NrID0gZHRkLT5waXhlbF9jbG9jazsKPiArCXBhbmVs X2ZpeGVkX21vZGUtPndpZHRoX21tID0gZHRkLT53aWR0aF9tbTsKPiArCXBhbmVsX2ZpeGVkX21v ZGUtPmhlaWdodF9tbSA9IGR0ZC0+aGVpZ2h0X21tOwo+ICsKPiArCXBhbmVsX2ZpeGVkX21vZGUt PnR5cGUgPSBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKPiArCWRybV9tb2RlX3NldF9uYW1lKHBh bmVsX2ZpeGVkX21vZGUpOwo+ICsKPiArCWlmIChkdGQtPmhzeW5jX3BvbGFyaXR5KQoKTml0cGlj aywgSSB0ZW5kIHRvIGxpa2UgYml0IGZsYWdzIG5hbWVzIHRoYXQgc2F5IHdoYXQgdGhlIHZhbHVl IG1lYW5zLAppLmUuIGhhdmUgInBvc2l0aXZlIiBpbiB0aGVyZSB0byBpbmRpY2F0ZSB0aGUgZmxh ZyBzZXQgbWVhbnMKcG9zaXRpdmUuIEJ1dCB3ZSBhbHJlYWR5IGhhdmUgdGhlIHNhbWUgdGhpbmcg aW4gdGhlIG9sZCBzdHJ1Y3QuICpzaHJ1ZyoKCj4gKwkJcGFuZWxfZml4ZWRfbW9kZS0+ZmxhZ3Mg fD0gRFJNX01PREVfRkxBR19QSFNZTkM7Cj4gKwllbHNlCj4gKwkJcGFuZWxfZml4ZWRfbW9kZS0+ ZmxhZ3MgfD0gRFJNX01PREVfRkxBR19OSFNZTkM7Cj4gKwo+ICsJaWYgKGR0ZC0+dnN5bmNfcG9s YXJpdHkpCj4gKwkJcGFuZWxfZml4ZWRfbW9kZS0+ZmxhZ3MgfD0gRFJNX01PREVfRkxBR19QVlNZ TkM7Cj4gKwllbHNlCj4gKwkJcGFuZWxfZml4ZWRfbW9kZS0+ZmxhZ3MgfD0gRFJNX01PREVfRkxB R19OVlNZTkM7Cj4gKwo+ICsJRFJNX0RFQlVHX0tNUygiRm91bmQgcGFuZWwgbW9kZSBpbiBCSU9T IFZCVCBnZW5lcmljIGR0ZCB0YWJsZTpcbiIpOwo+ICsJZHJtX21vZGVfZGVidWdfcHJpbnRtb2Rl bGluZShwYW5lbF9maXhlZF9tb2RlKTsKPiArCj4gKwlkZXZfcHJpdi0+dmJ0LmxmcF9sdmRzX3Zi dF9tb2RlID0gcGFuZWxfZml4ZWRfbW9kZTsKPiArfQo+ICsKPiArCgpOaXRwaWNrLCBkb3VibGUg bmV3bGluZXMuCgo+ICBzdGF0aWMgdm9pZAo+ICBwYXJzZV9sZnBfYmFja2xpZ2h0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkgICAgY29uc3Qgc3RydWN0IGJkYl9oZWFk ZXIgKmJkYikKPiBAQCAtMTg3Nyw3ICsxOTUyLDE0IEBAIHZvaWQgaW50ZWxfYmlvc19pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCXBhcnNlX2dlbmVyYWxfZmVhdHVy ZXMoZGV2X3ByaXYsIGJkYik7Cj4gIAlwYXJzZV9nZW5lcmFsX2RlZmluaXRpb25zKGRldl9wcml2 LCBiZGIpOwo+ICAJcGFyc2VfcGFuZWxfb3B0aW9ucyhkZXZfcHJpdiwgYmRiKTsKPiAtCXBhcnNl X2xmcF9wYW5lbF9kdGQoZGV2X3ByaXYsIGJkYik7Cj4gKwlpZiAoYmRiLT52ZXJzaW9uID49IDIy OSkKPiArCQkvKgo+ICsJCSAqIElmIHRoaXMgZmFpbHMsIHdlJ2xsIGZhbGwgYmFjayB0byB0cnlp bmcgdG8gcGFyc2UgdGhlCj4gKwkJICogbGVnYWN5IExWRFMgYmxvY2sgYmVsb3cuCj4gKwkJICov Cj4gKwkJcGFyc2VfZ2VuZXJpY19kdGQoZGV2X3ByaXYsIGJkYik7Cj4gKwlpZiAoIWRldl9wcml2 LT52YnQubGZwX2x2ZHNfdmJ0X21vZGUpCj4gKwkJcGFyc2VfbGZwX3BhbmVsX2R0ZChkZXZfcHJp diwgYmRiKTsKCk1heWJlIHdlIHNob3VsZCBhYnN0cmFjdCB0aGF0IHRvIGEgaGVscGVyIHRoYXQg YnJhbmNoZXMgb3V0IHRvIGhpZGUgaXQKZnJvbSB0aGUgdG9wIGxldmVsLiBDYW4gYmUgbGVmdCBm b3IgZm9sbG93LXVwLgoKPiAgCXBhcnNlX2xmcF9iYWNrbGlnaHQoZGV2X3ByaXYsIGJkYik7Cj4g IAlwYXJzZV9zZHZvX3BhbmVsX2RhdGEoZGV2X3ByaXYsIGJkYik7Cj4gIAlwYXJzZV9kcml2ZXJf ZmVhdHVyZXMoZGV2X3ByaXYsIGJkYik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfdmJ0X2RlZnMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfdmJ0X2RlZnMuaAo+IGluZGV4IDY5YTdjYjFmYTEyMS4uNDFlZmYyZWFlMjExIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmJ0X2RlZnMu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmJ0X2RlZnMuaAo+ IEBAIC0xMTUsNiArMTE1LDcgQEAgZW51bSBiZGJfYmxvY2tfaWQgewo+ICAJQkRCX01JUElfQ09O RklHCQkJPSA1MiwKPiAgCUJEQl9NSVBJX1NFUVVFTkNFCQk9IDUzLAo+ICAJQkRCX0NPTVBSRVNT SU9OX1BBUkFNRVRFUlMJPSA1NiwKPiArCUJEQl9HRU5FUklDX0RURAkJCT0gNTgsCj4gIAlCREJf U0tJUAkJCT0gMjU0LCAvKiBWQklPUyBwcml2YXRlIGJsb2NrLCBpZ25vcmUgKi8KPiAgfTsKPiAg Cj4gQEAgLTg2Myw0ICs4NjQsMzQgQEAgc3RydWN0IGJkYl9jb21wcmVzc2lvbl9wYXJhbWV0ZXJz IHsKPiAgCXN0cnVjdCBkc2NfY29tcHJlc3Npb25fcGFyYW1ldGVyc19lbnRyeSBkYXRhWzE2XTsK PiAgfSBfX3BhY2tlZDsKPiAgCj4gKy8qCj4gKyAqIEJsb2NrIDU4IC0gR2VuZXJpYyBEVEQgQmxv Y2sKPiArICovCj4gKwo+ICtzdHJ1Y3QgZ2VuZXJpY19kdGRfZW50cnkgewo+ICsJdTMyIHBpeGVs X2Nsb2NrOwo+ICsJdTE2IGhhY3RpdmU7Cj4gKwl1MTYgaGJsYW5rOwo+ICsJdTE2IGhmcm9udF9w b3JjaDsKPiArCXUxNiBoc3luYzsKPiArCXUxNiB2YWN0aXZlOwo+ICsJdTE2IHZibGFuazsKPiAr CXUxNiB2ZnJvbnRfcG9yY2g7Cj4gKwl1MTYgdnN5bmM7Cj4gKwl1MTYgd2lkdGhfbW07Cj4gKwl1 MTYgaGVpZ2h0X21tOwo+ICsKPiArCS8qIEZsYWdzICovCj4gKwl1OCByc3ZkX2ZsYWdzOjY7Cj4g Kwl1OCB2c3luY19wb2xhcml0eToxOwo+ICsJdTggaHN5bmNfcG9sYXJpdHk6MTsKPiArCj4gKwl1 MzIgcnN2ZDoyNDsKClRoaXMgZG9lcyBzZWVtIHRvIHdvcmsgKGFuZCBJIGhhZCB0byB0cnkgdG8g YmVsaWV2ZSksIGJ1dCBmb3IgcGFja2VkCnN0cnVjdHMgSSB0aGluayBJJ2QgZmVlbCBtb3JlIGNv bWZvcnRhYmxlIGdyb3VwaW5nIGJpdGZpZWxkcyBzdWNoIHRoYXQKdGhlIGJpdHMgZmlsbCB1cCB0 aGUgdHlwZS4gTm93IHRoaXMgZGVwZW5kcyBvbiB0aGUgdTggYW5kIDI0IGJpdHMgb2YgdGhlCnUz MiB0byBmb3JtIDQgYnl0ZXMuIEhhdmluZyB1MzIgcnN2ZDoyNCBkb2VzIG5vdCB3b3JrIGluZGVw ZW5kZW50bHksIGFuZApJIGRvbid0IHdhbnQgdG8gcmlzayBhbnlvbmUgcGlja2luZyB0aGF0IHVw IGFuZCBjYXJnbyBjdWx0aW5nCmluY29ycmVjdGx5LgoKU28gbWF5YmUganVzdCB1OCByc3ZkWzNd IGZvciBjbGFyaXR5PwoKVGhpcyBvbmUgSSdkIGxpa2UgZml4ZWQsIEknbGwgbGVhdmUgdGhlIG90 aGVyIG5pdHBpY2tzIHRvIHlvdXIKZGlzY3JldGlvbiBvciBtYXliZSBmb2xsb3ctdXAgcGF0Y2hl cywgYW5kIHdpdGggdGhhdCwKClJldmlld2VkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFA aW50ZWwuY29tPgoKPiArfSBfX3BhY2tlZDsKPiArCj4gK3N0cnVjdCBiZGJfZ2VuZXJpY19kdGQg ewo+ICsJdTE2IGdkdGRfc2l6ZTsKPiArCXN0cnVjdCBnZW5lcmljX2R0ZF9lbnRyeSBkdGRbXTsJ LyogdXAgdG8gMjQgRFREJ3MgKi8KPiArfSBfX3BhY2tlZDsKPiArCj4gICNlbmRpZiAvKiBfSU5U RUxfVkJUX0RFRlNfSF8gKi8KCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3Jh cGhpY3MgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eA==