From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 2/2] drm/i915: Don't assume primary & cursor are always on for wm calculation (v2) Date: Fri, 06 Mar 2015 09:58:33 +0000 Message-ID: <54F97A49.40102@linux.intel.com> References: <54F74106.7040309@linux.intel.com> <1425605478-21129-1-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 8534A6E0F9 for ; Fri, 6 Mar 2015 01:58:35 -0800 (PST) In-Reply-To: <1425605478-21129-1-git-send-email-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 Ck9uIDAzLzA2LzIwMTUgMDE6MzEgQU0sIE1hdHQgUm9wZXIgd3JvdGU6Cj4gQ3VycmVudCBJTEst c3R5bGUgd2F0ZXJtYXJrIGNvZGUgYXNzdW1lcyB0aGUgcHJpbWFyeSBwbGFuZSBhbmQgY3Vyc29y Cj4gcGxhbmUgYXJlIGFsd2F5cyBlbmFibGVkLiAgVGhpcyBhc3N1bXB0aW9uLCBhbG9uZyB3aXRo IHRoZSBjb21iaW5hdGlvbgo+IG9mIHR3byBpbmRlcGVuZGVudCBjb21taXRzIHRoYXQgZ290IG1l cmdlZCBhdCB0aGUgc2FtZSB0aW1lLCByZXN1bHRzIGluCj4gYSBOVUxMIGRlcmVmZXJlbmNlLiAg VGhlIG9mZmVuZGluZyBjb21taXRzIGFyZToKPgo+ICAgICAgICAgIGNvbW1pdCBmZDJkNjEzNDFi ZjM5ZDEwNTQyNTZjMDdkNmVkZGQ2MjRlYmM0MjQxCj4gICAgICAgICAgQXV0aG9yOiBNYXR0IFJv cGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+ICAgICAgICAgIERhdGU6ICAgRnJpIEZl YiAyNyAxMDoxMjowMSAyMDE1IC0wODAwCj4KPiAgICAgICAgICAgICAgZHJtL2k5MTU6IFVzZSBw bGFuZS0+c3RhdGUtPmZiIGluIHdhdGVybWFyayBjb2RlICh2MikKPgo+IGFuZAo+Cj4gICAgICAg ICAgY29tbWl0IDBmZGE2NTY4MGU5MjU0NWNhZWE1YmU3ODA1YTdmMGE2MTdmYjZjMjAKPiAgICAg ICAgICBBdXRob3I6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4g ICAgICAgICAgRGF0ZTogICBGcmkgRmViIDI3IDE1OjEyOjM1IDIwMTUgKzAwMDAKPgo+ICAgICAg ICAgICAgICBkcm0vaTkxNS9za2w6IFVwZGF0ZSB3YXRlcm1hcmtzIGZvciBZIHRpbGluZwo+Cj4g VGhlIGZpcnN0IGNvbW1pdCBjYXVzZXMgdXMgdG8gdXNlIHRoZSBGQiBmcm9tIHBsYW5lLT5zdGF0 ZS0+ZmIgcmF0aGVyCj4gdGhhbiB0aGUgbGVnYWN5IHBsYW5lLT5mYiwgd2hpY2ggaXMgdXBkYXRl ZCBhIGJpdCBsYXRlciBpbiB0aGUgcHJvY2Vzcy4KPgo+IFRoZSBzZWNvbmQgY29tbWl0IGluY2x1 ZGVzIGEgY2hhbmdlIHRoYXQgbm93IHRyaWdnZXJzIHdhdGVybWFyawo+IHJlcHJvZ3JhbW1pbmcg b24gcHJpbWFyeSBwbGFuZSBlbmFibGUvZGlzYWJsZSB3aGVyZSB3ZSBkaWRuJ3QgaGF2ZSBvbmUK PiBiZWZvcmUgKHdoaWNoIHdhc24ndCByZWFsbHkgY29ycmVjdCwgYnV0IHdlIGhhZCBiZWVuIGdl dHRpbmcgbHVja3kKPiBiZWNhdXNlIHdlIGFsd2F5cyBjYWxjdWxhdGVkIGFzIGlmIHRoZSBwcmlt YXJ5IHBsYW5lIHdhcyBvbikuCj4KPiBUb2dldGhlciwgdGhlc2UgdHdvIGNvbW1pdHMgY2F1c2Ug dGhlIHdhdGVybWFyayBjYWxjdWxhdGlvbiB0bwo+IChwcm9wZXJseSkgc2VlIHBsYW5lLT5zdGF0 ZS0+ZmIgPSBOVUxMIHdoZW4gd2UncmUgaW4gdGhlIHByb2Nlc3Mgb2YKPiBkaXNhYmxpbmcgdGhl IHByaW1hcnkgcGxhbmUuICBIb3dldmVyIHRoZSBleGlzdGluZyB3YXRlcm1hcmsgY29kZQo+IGFz c3VtZXMgdGhlcmUncyBhbHdheXMgYSBwcmltYXJ5IGZiIGFuZCB0cmllcyB0byBkZXJlZmVyZW5j ZSBpdCB0byBmaW5kCj4gb3V0IHBpeGVsIGZvcm1hdCAvIGJwcCBpbmZvcm1hdGlvbi4KPgo+IFRo ZSBmaXggaXMgdG8gbWFrZSBJTEstc3R5bGUgd2F0ZXJtYXJrIGNhbGN1bGF0aW9uIGFjdHVhbGx5 IGNoZWNrIHRoZQo+IHRydWUgc3RhdHVzIG9mIHByaW1hcnkgJiBjdXJzb3IgcGxhbmVzIGFuZCBh ZGp1c3Qgb3VyIHdhdGVybWFyayBsb2dpYwo+IGFjY29yZGluZ2x5Lgo+Cj4gdjI6IFVwZGF0ZSB1 bmNoZWNrZWQgdXNlcyBvZiBzdGF0ZS0+ZmIgZm9yIG90aGVyIHBsYXRmb3JtcyAocG52LCBza2ws Cj4gICAgICBldGMuKS4gIE5vdGUgdGhhdCB0aGlzIGlzIGp1c3QgYSB0ZW1wb3JhcnkgZml4LiAg VWx0aW1hdGVseSB0aGUKPiAgICAgIHVzZWZ1bCBpbmZvcm1hdGlvbiBpcyBnb2luZyB0byBiZSBj b21wdXRlZCBhdCBjaGVjayB0aW1lIGFuZCBzdG9yZWQKPiAgICAgIHJpZ2h0IGluIHRoZSBzdGF0 ZSBzdHJ1Y3R1cmVzIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBmaWd1cmUgdGhpcwo+ICAgICAg YWxsIG91dCB3aGlsZSB3ZSdyZSBzdXBwb3NlZCB0byBiZSBwcm9ncmFtbWluZyB0aGUgd2F0ZXJt YXJrcy4KPiAgICAgIChjYXVnaHQgYnkgVHZydGtvKQo+Cj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0 dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gUmVwb3J0ZWQtYnk6IE1pY2hhZWwgTGV1Y2h0ZW5i dXJnIDxtaWNoYWVsQHNsYXNoaG9tZS5vcmc+Cj4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVl ZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTg5Mzg4Cj4gU2lnbmVkLW9mZi1ieTogTWF0dCBS b3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMgfCAxMTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9u cygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gaW5kZXggZTJlODQxNC4uMDllMjEwYyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBAIC01NTMsMTIgKzU1MywxNyBAQCBzdGF0 aWMgdm9pZCBwaW5ldmlld191cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICp1bnVzZWRfY3J0YykK PiAgIAljcnRjID0gc2luZ2xlX2VuYWJsZWRfY3J0YyhkZXYpOwo+ICAgCWlmIChjcnRjKSB7Cj4g ICAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlOwo+IC0JCWlu dCBwaXhlbF9zaXplID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLT5iaXRzX3Blcl9waXhlbCAv IDg7Cj4gKwkJaW50IHBpeGVsX3NpemU7Cj4gICAJCWludCBjbG9jazsKPgo+ICAgCQlhZGp1c3Rl ZF9tb2RlID0gJnRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2Rl Owo+ICAgCQljbG9jayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2s7Cj4KPiArCQlpZiAoY3J0 Yy0+cHJpbWFyeS0+c3RhdGUtPmZiKQo+ICsJCQlwaXhlbF9zaXplID0gY3J0Yy0+cHJpbWFyeS0+ c3RhdGUtPmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gKwkJZWxzZQo+ICsJCQlwaXhlbF9zaXpl ID0gNDsKPiArCj4gICAJCS8qIERpc3BsYXkgU1IgKi8KPiAgIAkJd20gPSBpbnRlbF9jYWxjdWxh dGVfd20oY2xvY2ssICZwaW5ldmlld19kaXNwbGF5X3dtLAo+ICAgCQkJCQlwaW5ldmlld19kaXNw bGF5X3dtLmZpZm9fc2l6ZSwKPiBAQCAtNjI5LDcgKzYzNCwxMSBAQCBzdGF0aWMgYm9vbCBnNHhf Y29tcHV0ZV93bTAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAljbG9jayA9IGFkanVzdGVk X21vZGUtPmNydGNfY2xvY2s7Cj4gICAJaHRvdGFsID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90 YWw7Cj4gICAJaGRpc3BsYXkgPSB0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWctPnBpcGVfc3Jj X3c7Cj4gLQlwaXhlbF9zaXplID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLT5iaXRzX3Blcl9w aXhlbCAvIDg7Cj4gKwo+ICsJaWYgKGNydGMtPnByaW1hcnktPnN0YXRlLT5mYikKPiArCQlwaXhl bF9zaXplID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4g KwllbHNlCj4gKwkJcGl4ZWxfc2l6ZSA9IDQ7Cj4KPiAgIAkvKiBVc2UgdGhlIHNtYWxsIGJ1ZmZl ciBtZXRob2QgdG8gY2FsY3VsYXRlIHBsYW5lIHdhdGVybWFyayAqLwo+ICAgCWVudHJpZXMgPSAo KGNsb2NrICogcGl4ZWxfc2l6ZSAvIDEwMDApICogZGlzcGxheV9sYXRlbmN5X25zKSAvIDEwMDA7 Cj4gQEAgLTcxNiw3ICs3MjUsMTEgQEAgc3RhdGljIGJvb2wgZzR4X2NvbXB1dGVfc3J3bShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCWNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9j azsKPiAgIAlodG90YWwgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2h0b3RhbDsKPiAgIAloZGlzcGxh eSA9IHRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy0+cGlwZV9zcmNfdzsKPiAtCXBpeGVsX3Np emUgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCj4g KwlpZiAoY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiKQo+ICsJCXBpeGVsX3NpemUgPSBjcnRjLT5w cmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCWVsc2UKPiArCQlwaXhl bF9zaXplID0gNDsKPgo+ICAgCWxpbmVfdGltZV91cyA9IG1heChodG90YWwgKiAxMDAwIC8gY2xv Y2ssIDEpOwo+ICAgCWxpbmVfY291bnQgPSAobGF0ZW5jeV9ucyAvIGxpbmVfdGltZV91cyArIDEw MDApIC8gMTAwMDsKPiBAQCAtNzk5LDcgKzgxMiwxMCBAQCBzdGF0aWMgdm9pZCB2bHZfdXBkYXRl X2RyYWluX2xhdGVuY3koc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAgCX0KPgo+ICAgCS8qIFBy aW1hcnkgcGxhbmUgRHJhaW4gTGF0ZW5jeSAqLwo+IC0JcGl4ZWxfc2l6ZSA9IGNydGMtPnByaW1h cnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4OwkvKiBCUFAgKi8KPiArCWlmIChjcnRj LT5wcmltYXJ5LT5zdGF0ZS0+ZmIpCj4gKwkJcGl4ZWxfc2l6ZSA9IGNydGMtPnByaW1hcnktPnN0 YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ICsJZWxzZQo+ICsJCXBpeGVsX3NpemUgPSA0 Owo+ICAgCWlmICh2bHZfY29tcHV0ZV9kcmFpbl9sYXRlbmN5KGNydGMsIHBpeGVsX3NpemUsICZw cmVjX211bHQsICZkcmFpbl9sYXRlbmN5KSkgewo+ICAgCQlwbGFuZV9wcmVjID0gKHByZWNfbXVs dCA9PSBoaWdoX3ByZWNpc2lvbikgPwo+ICAgCQkJCQkgICBERExfUExBTkVfUFJFQ0lTSU9OX0hJ R0ggOgo+IEBAIC0xMDgwLDEwICsxMDk2LDE1IEBAIHN0YXRpYyB2b2lkIGk5NjVfdXBkYXRlX3dt KHN0cnVjdCBkcm1fY3J0YyAqdW51c2VkX2NydGMpCj4gICAJCWludCBjbG9jayA9IGFkanVzdGVk X21vZGUtPmNydGNfY2xvY2s7Cj4gICAJCWludCBodG90YWwgPSBhZGp1c3RlZF9tb2RlLT5jcnRj X2h0b3RhbDsKPiAgIAkJaW50IGhkaXNwbGF5ID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmln LT5waXBlX3NyY193Owo+IC0JCWludCBwaXhlbF9zaXplID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUt PmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gKwkJaW50IHBpeGVsX3NpemU7Cj4gICAJCXVuc2ln bmVkIGxvbmcgbGluZV90aW1lX3VzOwo+ICAgCQlpbnQgZW50cmllczsKPgo+ICsJCWlmIChjcnRj LT5wcmltYXJ5LT5zdGF0ZS0+ZmIpCj4gKwkJCXBpeGVsX3NpemUgPSBjcnRjLT5wcmltYXJ5LT5z dGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCQllbHNlCj4gKwkJCXBpeGVsX3NpemUg PSA0Owo+ICsKPiAgIAkJbGluZV90aW1lX3VzID0gbWF4KGh0b3RhbCAqIDEwMDAgLyBjbG9jaywg MSk7Cj4KPiAgIAkJLyogVXNlIG5zL3VzIHRoZW4gZGl2aWRlIHRvIHByZXNlcnZlIHByZWNpc2lv biAqLwo+IEBAIC0xMTU3LDcgKzExNzgsMTMgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfd20o c3RydWN0IGRybV9jcnRjICp1bnVzZWRfY3J0YykKPiAgIAljcnRjID0gaW50ZWxfZ2V0X2NydGNf Zm9yX3BsYW5lKGRldiwgMCk7Cj4gICAJaWYgKGludGVsX2NydGNfYWN0aXZlKGNydGMpKSB7Cj4g ICAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlOwo+IC0JCWlu dCBjcHAgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiAr CQlpbnQgY3BwOwo+ICsKPiArCQlpZiAoY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiKQo+ICsJCQlj cHAgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCQll bHNlCj4gKwkJCWNwcCA9IDQ7Cj4gKwo+ICAgCQlpZiAoSVNfR0VOMihkZXYpKQo+ICAgCQkJY3Bw ID0gNDsKPgo+IEBAIC0xMTc5LDcgKzEyMDYsMTMgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVf d20oc3RydWN0IGRybV9jcnRjICp1bnVzZWRfY3J0YykKPiAgIAljcnRjID0gaW50ZWxfZ2V0X2Ny dGNfZm9yX3BsYW5lKGRldiwgMSk7Cj4gICAJaWYgKGludGVsX2NydGNfYWN0aXZlKGNydGMpKSB7 Cj4gICAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlOwo+IC0J CWludCBjcHAgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsK PiArCQlpbnQgY3BwOwo+ICsKPiArCQlpZiAoY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiKQo+ICsJ CQljcHAgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiAr CQllbHNlCj4gKwkJCWNwcCA9IDQ7Cj4gKwo+ICAgCQlpZiAoSVNfR0VOMihkZXYpKQo+ICAgCQkJ Y3BwID0gNDsKPgo+IEBAIC0xMjA1LDcgKzEyMzgsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0 ZV93bShzdHJ1Y3QgZHJtX2NydGMgKnVudXNlZF9jcnRjKQo+ICAgCQlvYmogPSBpbnRlbF9mYl9v YmooZW5hYmxlZC0+cHJpbWFyeS0+c3RhdGUtPmZiKTsKPgo+ICAgCQkvKiBzZWxmLXJlZnJlc2gg c2VlbXMgYnVzdGVkIHdpdGggdW50aWxlZCAqLwo+IC0JCWlmIChvYmotPnRpbGluZ19tb2RlID09 IEk5MTVfVElMSU5HX05PTkUpCj4gKwkJaWYgKCFvYmogfHwgb2JqLT50aWxpbmdfbW9kZSA9PSBJ OTE1X1RJTElOR19OT05FKQo+ICAgCQkJZW5hYmxlZCA9IE5VTEw7Cj4gICAJfQo+Cj4gQEAgLTEy MjYsMTAgKzEyNTksMTUgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfd20oc3RydWN0IGRybV9j cnRjICp1bnVzZWRfY3J0YykKPiAgIAkJaW50IGNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19j bG9jazsKPiAgIAkJaW50IGh0b3RhbCA9IGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsOwo+ICAg CQlpbnQgaGRpc3BsYXkgPSB0b19pbnRlbF9jcnRjKGVuYWJsZWQpLT5jb25maWctPnBpcGVfc3Jj X3c7Cj4gLQkJaW50IHBpeGVsX3NpemUgPSBlbmFibGVkLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJp dHNfcGVyX3BpeGVsIC8gODsKPiArCQlpbnQgcGl4ZWxfc2l6ZTsKPiAgIAkJdW5zaWduZWQgbG9u ZyBsaW5lX3RpbWVfdXM7Cj4gICAJCWludCBlbnRyaWVzOwo+Cj4gKwkJaWYgKGVuYWJsZWQtPnBy aW1hcnktPnN0YXRlLT5mYikKPiArCQkJcGl4ZWxfc2l6ZSA9IGVuYWJsZWQtPnByaW1hcnktPnN0 YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ICsJCWVsc2UKPiArCQkJcGl4ZWxfc2l6ZSA9 IDQ7Cj4gKwo+ICAgCQlsaW5lX3RpbWVfdXMgPSBtYXgoaHRvdGFsICogMTAwMCAvIGNsb2NrLCAx KTsKPgo+ICAgCQkvKiBVc2UgbnMvdXMgdGhlbiBkaXZpZGUgdG8gcHJlc2VydmUgcHJlY2lzaW9u ICovCj4gQEAgLTE5MjQsMTMgKzE5NjIsMjUgQEAgc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21f cGFyYW1ldGVycyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gICAJcC0+YWN0aXZlID0gdHJ1ZTsK PiAgIAlwLT5waXBlX2h0b3RhbCA9IGludGVsX2NydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9t b2RlLmNydGNfaHRvdGFsOwo+ICAgCXAtPnBpeGVsX3JhdGUgPSBpbGtfcGlwZV9waXhlbF9yYXRl KGRldiwgY3J0Yyk7Cj4gLQlwLT5wcmkuYnl0ZXNfcGVyX3BpeGVsID0gY3J0Yy0+cHJpbWFyeS0+ c3RhdGUtPmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gLQlwLT5jdXIuYnl0ZXNfcGVyX3BpeGVs ID0gNDsKPiArCj4gKwlpZiAoY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiKSB7Cj4gKwkJcC0+cHJp LmVuYWJsZWQgPSB0cnVlOwo+ICsJCXAtPnByaS5ieXRlc19wZXJfcGl4ZWwgPQo+ICsJCQljcnRj LT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCX0gZWxzZSB7Cj4g KwkJcC0+cHJpLmVuYWJsZWQgPSBmYWxzZTsKPiArCQlwLT5wcmkuYnl0ZXNfcGVyX3BpeGVsID0g MDsKPiArCX0KPiArCj4gKwlpZiAoY3J0Yy0+Y3Vyc29yLT5zdGF0ZS0+ZmIpIHsKPiArCQlwLT5j dXIuZW5hYmxlZCA9IHRydWU7Cj4gKwkJcC0+Y3VyLmJ5dGVzX3Blcl9waXhlbCA9IDQ7Cj4gKwl9 IGVsc2Ugewo+ICsJCXAtPmN1ci5lbmFibGVkID0gZmFsc2U7Cj4gKwkJcC0+Y3VyLmJ5dGVzX3Bl cl9waXhlbCA9IDA7Cj4gKwl9Cj4gICAJcC0+cHJpLmhvcml6X3BpeGVscyA9IGludGVsX2NydGMt PmNvbmZpZy0+cGlwZV9zcmNfdzsKPiAgIAlwLT5jdXIuaG9yaXpfcGl4ZWxzID0gaW50ZWxfY3J0 Yy0+YmFzZS5jdXJzb3ItPnN0YXRlLT5jcnRjX3c7Cj4gLQkvKiBUT0RPOiBmb3Igbm93LCBhc3N1 bWUgcHJpbWFyeSBhbmQgY3Vyc29yIHBsYW5lcyBhcmUgYWx3YXlzIGVuYWJsZWQuICovCj4gLQlw LT5wcmkuZW5hYmxlZCA9IHRydWU7Cj4gLQlwLT5jdXIuZW5hYmxlZCA9IHRydWU7Cj4KPiAgIAlk cm1fZm9yX2VhY2hfbGVnYWN5X3BsYW5lKHBsYW5lLCAmZGV2LT5tb2RlX2NvbmZpZy5wbGFuZV9s aXN0KSB7Cj4gICAJCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9w bGFuZShwbGFuZSk7Cj4gQEAgLTI2OTYsMjcgKzI3NDYsMzEgQEAgc3RhdGljIHZvaWQgc2tsX2Nv bXB1dGVfd21fcGlwZV9wYXJhbWV0ZXJzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAkJcC0+ cGlwZV9odG90YWwgPSBpbnRlbF9jcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRj X2h0b3RhbDsKPiAgIAkJcC0+cGl4ZWxfcmF0ZSA9IHNrbF9waXBlX3BpeGVsX3JhdGUoaW50ZWxf Y3J0Yy0+Y29uZmlnKTsKPgo+IC0JCS8qCj4gLQkJICogRm9yIG5vdywgYXNzdW1lIHByaW1hcnkg YW5kIGN1cnNvciBwbGFuZXMgYXJlIGFsd2F5cyBlbmFibGVkLgo+IC0JCSAqLwo+IC0JCXAtPnBs YW5lWzBdLmVuYWJsZWQgPSB0cnVlOwo+IC0JCXAtPnBsYW5lWzBdLmJ5dGVzX3Blcl9waXhlbCA9 Cj4gLQkJCWNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ICsJ CWZiID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiOwo+ICsJCWlmIChmYikgewo+ICsJCQlwLT5w bGFuZVswXS5lbmFibGVkID0gdHJ1ZTsKPiArCQkJcC0+cGxhbmVbMF0uYnl0ZXNfcGVyX3BpeGVs ID0gZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCQkJcC0+cGxhbmVbMF0udGlsaW5nID0gZmIt Pm1vZGlmaWVyWzBdOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCXAtPnBsYW5lWzBdLmVuYWJsZWQgPSBm YWxzZTsKPiArCQkJcC0+cGxhbmVbMF0uYnl0ZXNfcGVyX3BpeGVsID0gMDsKPiArCQl9Cj4gICAJ CXAtPnBsYW5lWzBdLmhvcml6X3BpeGVscyA9IGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNf dzsKPiAgIAkJcC0+cGxhbmVbMF0udmVydF9waXhlbHMgPSBpbnRlbF9jcnRjLT5jb25maWctPnBp cGVfc3JjX2g7Cj4gICAJCXAtPnBsYW5lWzBdLnRpbGluZyA9IERSTV9GT1JNQVRfTU9EX05PTkU7 CgpMYXN0IGxpbmUgc2hvdWxkIGdvIGluIHRoZSBlbHNlIGJsb2NrIGFib3ZlLgoKPiAtCQlmYiA9 IGNydGMtPnByaW1hcnktPnN0YXRlLT5mYjsKPiAtCQkvKgo+IC0JCSAqIEZyYW1lYnVmZmVyIGNh biBiZSBOVUxMIG9uIHBsYW5lIGRpc2FibGUsIGJ1dCBpdCBkb2VzIG5vdAo+IC0JCSAqIG1hdHRl ciBmb3Igd2F0ZXJtYXJrcyBpZiB3ZSBhc3N1bWUgbm8gdGlsaW5nIGluIHRoYXQgY2FzZS4KPiAt CQkgKi8KPiAtCQlpZiAoZmIpCj4gLQkJCXAtPnBsYW5lWzBdLnRpbGluZyA9IGZiLT5tb2RpZmll clswXTsKPgo+IC0JCXAtPmN1cnNvci5lbmFibGVkID0gdHJ1ZTsKPiAtCQlwLT5jdXJzb3IuYnl0 ZXNfcGVyX3BpeGVsID0gNDsKPiAtCQlwLT5jdXJzb3IuaG9yaXpfcGl4ZWxzID0gaW50ZWxfY3J0 Yy0+YmFzZS5jdXJzb3ItPnN0YXRlLT5jcnRjX3cgPwo+IC0JCQkJCSBpbnRlbF9jcnRjLT5iYXNl LmN1cnNvci0+c3RhdGUtPmNydGNfdyA6IDY0Owo+ICsJCWZiID0gY3J0Yy0+cHJpbWFyeS0+c3Rh dGUtPmZiOwo+ICsJCWlmIChmYikgewo+ICsJCQlwLT5jdXJzb3IuZW5hYmxlZCA9IHRydWU7Cj4g KwkJCXAtPmN1cnNvci5ieXRlc19wZXJfcGl4ZWwgPSBmYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ ICsJCQlwLT5jdXJzb3IuaG9yaXpfcGl4ZWxzID0gY3J0Yy0+Y3Vyc29yLT5zdGF0ZS0+Y3J0Y193 Owo+ICsJCQlwLT5jdXJzb3IudmVydF9waXhlbHMgPSBjcnRjLT5jdXJzb3ItPnN0YXRlLT5jcnRj X2g7Cj4gKwkJfSBlbHNlIHsKPiArCQkJcC0+Y3Vyc29yLmVuYWJsZWQgPSBmYWxzZTsKPiArCQkJ cC0+Y3Vyc29yLmJ5dGVzX3Blcl9waXhlbCA9IDA7Cj4gKwkJCXAtPmN1cnNvci5ob3Jpel9waXhl bHMgPSA2NDsKPiArCQkJcC0+Y3Vyc29yLnZlcnRfcGl4ZWxzID0gNjQ7Cj4gKwkJfQoKVGhlcmUg Y2FuIGJlIGFuIGFjdGl2ZSBjcnRjIHdpdGggbm8gcHJpbWFyeSBwbGFuZSBidXQgY3Vyc29yIHRo ZW4gY2Fubm90IApiZSBhY3RpdmU/CgpSZWdhcmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==