From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/3] drm/i915: Don't assume primary & cursor are always on for wm calculation (v3) Date: Mon, 9 Mar 2015 19:44:00 +0200 Message-ID: <20150309174400.GA11371@intel.com> References: <1425921565-10828-1-git-send-email-matthew.d.roper@intel.com> <1425921565-10828-4-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 2915F6E2A8 for ; Mon, 9 Mar 2015 10:44:05 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1425921565-10828-4-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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXIgMDksIDIwMTUgYXQgMTA6MTk6MjVBTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90 ZToKPiBDdXJyZW50IElMSy1zdHlsZSB3YXRlcm1hcmsgY29kZSBhc3N1bWVzIHRoZSBwcmltYXJ5 IHBsYW5lIGFuZCBjdXJzb3IKPiBwbGFuZSBhcmUgYWx3YXlzIGVuYWJsZWQuICBUaGlzIGFzc3Vt cHRpb24sIGFsb25nIHdpdGggdGhlIGNvbWJpbmF0aW9uCj4gb2YgdHdvIGluZGVwZW5kZW50IGNv bW1pdHMgdGhhdCBnb3QgbWVyZ2VkIGF0IHRoZSBzYW1lIHRpbWUsIHJlc3VsdHMgaW4KPiBhIE5V TEwgZGVyZWZlcmVuY2UuICBUaGUgb2ZmZW5kaW5nIGNvbW1pdHMgYXJlOgo+IAo+ICAgICAgICAg Y29tbWl0IGZkMmQ2MTM0MWJmMzlkMTA1NDI1NmMwN2Q2ZWRkZDYyNGViYzQyNDEKPiAgICAgICAg IEF1dGhvcjogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPiAgICAgICAg IERhdGU6ICAgRnJpIEZlYiAyNyAxMDoxMjowMSAyMDE1IC0wODAwCj4gCj4gICAgICAgICAgICAg ZHJtL2k5MTU6IFVzZSBwbGFuZS0+c3RhdGUtPmZiIGluIHdhdGVybWFyayBjb2RlICh2MikKPiAK PiBhbmQKPiAKPiAgICAgICAgIGNvbW1pdCAwZmRhNjU2ODBlOTI1NDVjYWVhNWJlNzgwNWE3ZjBh NjE3ZmI2YzIwCj4gICAgICAgICBBdXRob3I6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxp bkBpbnRlbC5jb20+Cj4gICAgICAgICBEYXRlOiAgIEZyaSBGZWIgMjcgMTU6MTI6MzUgMjAxNSAr MDAwMAo+IAo+ICAgICAgICAgICAgIGRybS9pOTE1L3NrbDogVXBkYXRlIHdhdGVybWFya3MgZm9y IFkgdGlsaW5nCj4gCj4gVGhlIGZpcnN0IGNvbW1pdCBjYXVzZXMgdXMgdG8gdXNlIHRoZSBGQiBm cm9tIHBsYW5lLT5zdGF0ZS0+ZmIgcmF0aGVyCj4gdGhhbiB0aGUgbGVnYWN5IHBsYW5lLT5mYiwg d2hpY2ggaXMgdXBkYXRlZCBhIGJpdCBsYXRlciBpbiB0aGUgcHJvY2Vzcy4KPiAKPiBUaGUgc2Vj b25kIGNvbW1pdCBpbmNsdWRlcyBhIGNoYW5nZSB0aGF0IG5vdyB0cmlnZ2VycyB3YXRlcm1hcmsK PiByZXByb2dyYW1taW5nIG9uIHByaW1hcnkgcGxhbmUgZW5hYmxlL2Rpc2FibGUgd2hlcmUgd2Ug ZGlkbid0IGhhdmUgb25lCj4gYmVmb3JlICh3aGljaCB3YXNuJ3QgcmVhbGx5IGNvcnJlY3QsIGJ1 dCB3ZSBoYWQgYmVlbiBnZXR0aW5nIGx1Y2t5Cj4gYmVjYXVzZSB3ZSBhbHdheXMgY2FsY3VsYXRl ZCBhcyBpZiB0aGUgcHJpbWFyeSBwbGFuZSB3YXMgb24pLgo+IAo+IFRvZ2V0aGVyLCB0aGVzZSB0 d28gY29tbWl0cyBjYXVzZSB0aGUgd2F0ZXJtYXJrIGNhbGN1bGF0aW9uIHRvCj4gKHByb3Blcmx5 KSBzZWUgcGxhbmUtPnN0YXRlLT5mYiA9IE5VTEwgd2hlbiB3ZSdyZSBpbiB0aGUgcHJvY2VzcyBv Zgo+IGRpc2FibGluZyB0aGUgcHJpbWFyeSBwbGFuZS4gIEhvd2V2ZXIgdGhlIGV4aXN0aW5nIHdh dGVybWFyayBjb2RlCj4gYXNzdW1lcyB0aGVyZSdzIGFsd2F5cyBhIHByaW1hcnkgZmIgYW5kIHRy aWVzIHRvIGRlcmVmZXJlbmNlIGl0IHRvIGZpbmQKPiBvdXQgcGl4ZWwgZm9ybWF0IC8gYnBwIGlu Zm9ybWF0aW9uLgo+IAo+IFRoZSBmaXggaXMgdG8gbWFrZSBJTEstc3R5bGUgd2F0ZXJtYXJrIGNh bGN1bGF0aW9uIGFjdHVhbGx5IGNoZWNrIHRoZQo+IHRydWUgc3RhdHVzIG9mIHByaW1hcnkgJiBj dXJzb3IgcGxhbmVzIGFuZCBhZGp1c3Qgb3VyIHdhdGVybWFyayBsb2dpYwo+IGFjY29yZGluZ2x5 Lgo+IAo+IHYyOiBVcGRhdGUgdW5jaGVja2VkIHVzZXMgb2Ygc3RhdGUtPmZiIGZvciBvdGhlciBw bGF0Zm9ybXMgKHBudiwgc2tsLAo+ICAgICBldGMuKS4gIE5vdGUgdGhhdCB0aGlzIGlzIGp1c3Qg YSB0ZW1wb3JhcnkgZml4LiAgVWx0aW1hdGVseSB0aGUKPiAgICAgdXNlZnVsIGluZm9ybWF0aW9u IGlzIGdvaW5nIHRvIGJlIGNvbXB1dGVkIGF0IGNoZWNrIHRpbWUgYW5kIHN0b3JlZAo+ICAgICBy aWdodCBpbiB0aGUgc3RhdGUgc3RydWN0dXJlcyBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gZmln dXJlIHRoaXMKPiAgICAgYWxsIG91dCB3aGlsZSB3ZSdyZSBzdXBwb3NlZCB0byBiZSBwcm9ncmFt bWluZyB0aGUgd2F0ZXJtYXJrcy4KPiAgICAgKGNhdWdodCBieSBUdnJ0a28pCj4gCj4gdjM6IEZp eCBhIGNvdXBsZSBjb3B5L3Bhc3RlIG1pc3Rha2VzIGluIFNLTCBjb2RlLiAoVHZydGtvKQo+IAo+ IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IFJlcG9ydGVk LWJ5OiBNaWNoYWVsIExldWNodGVuYnVyZyA8bWljaGFlbEBzbGFzaGhvbWUub3JnPgo+IEJ1Z3pp bGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD04OTM4OAo+ IFNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Cj4g LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgfCAxMTMgKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgODIgaW5zZXJ0 aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gaW5k ZXggYTA2YTJjNy4uMjA3Yzk3MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBAIC02 MDgsMTIgKzYwOCwxNyBAQCBzdGF0aWMgdm9pZCBwaW5ldmlld191cGRhdGVfd20oc3RydWN0IGRy bV9jcnRjICp1bnVzZWRfY3J0YykKPiAgCWNydGMgPSBzaW5nbGVfZW5hYmxlZF9jcnRjKGRldik7 Cj4gIAlpZiAoY3J0Yykgewo+ICAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlOwo+IC0JCWludCBwaXhlbF9zaXplID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZi LT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gKwkJaW50IHBpeGVsX3NpemU7Cj4gIAkJaW50IGNsb2Nr Owo+ICAKPiAgCQlhZGp1c3RlZF9tb2RlID0gJnRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlOwo+ICAJCWNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9j azsKPiAgCj4gKwkJaWYgKGNydGMtPnByaW1hcnktPnN0YXRlLT5mYikKPiArCQkJcGl4ZWxfc2l6 ZSA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ICsJCWVs c2UKPiArCQkJcGl4ZWxfc2l6ZSA9IDQ7Cj4gKwo+ICAJCS8qIERpc3BsYXkgU1IgKi8KPiAgCQl3 bSA9IGludGVsX2NhbGN1bGF0ZV93bShjbG9jaywgJnBpbmV2aWV3X2Rpc3BsYXlfd20sCj4gIAkJ CQkJcGluZXZpZXdfZGlzcGxheV93bS5maWZvX3NpemUsCj4gQEAgLTY4NCw3ICs2ODksMTEgQEAg c3RhdGljIGJvb2wgZzR4X2NvbXB1dGVfd20wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlj bG9jayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2s7Cj4gIAlodG90YWwgPSBhZGp1c3RlZF9t b2RlLT5jcnRjX2h0b3RhbDsKPiAgCWhkaXNwbGF5ID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29u ZmlnLT5waXBlX3NyY193Owo+IC0JcGl4ZWxfc2l6ZSA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5m Yi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ICsKPiArCWlmIChjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ ZmIpCj4gKwkJcGl4ZWxfc2l6ZSA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJf cGl4ZWwgLyA4Owo+ICsJZWxzZQo+ICsJCXBpeGVsX3NpemUgPSA0Owo+ICAKPiAgCS8qIFVzZSB0 aGUgc21hbGwgYnVmZmVyIG1ldGhvZCB0byBjYWxjdWxhdGUgcGxhbmUgd2F0ZXJtYXJrICovCj4g IAllbnRyaWVzID0gKChjbG9jayAqIHBpeGVsX3NpemUgLyAxMDAwKSAqIGRpc3BsYXlfbGF0ZW5j eV9ucykgLyAxMDAwOwo+IEBAIC03NzEsNyArNzgwLDExIEBAIHN0YXRpYyBib29sIGc0eF9jb21w dXRlX3Nyd20oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCWNsb2NrID0gYWRqdXN0ZWRfbW9k ZS0+Y3J0Y19jbG9jazsKPiAgCWh0b3RhbCA9IGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsOwo+ ICAJaGRpc3BsYXkgPSB0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWctPnBpcGVfc3JjX3c7Cj4g LQlwaXhlbF9zaXplID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLT5iaXRzX3Blcl9waXhlbCAv IDg7Cj4gKwo+ICsJaWYgKGNydGMtPnByaW1hcnktPnN0YXRlLT5mYikKPiArCQlwaXhlbF9zaXpl ID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gKwllbHNl Cj4gKwkJcGl4ZWxfc2l6ZSA9IDQ7Cj4gIAo+ICAJbGluZV90aW1lX3VzID0gbWF4KGh0b3RhbCAq IDEwMDAgLyBjbG9jaywgMSk7Cj4gIAlsaW5lX2NvdW50ID0gKGxhdGVuY3lfbnMgLyBsaW5lX3Rp bWVfdXMgKyAxMDAwKSAvIDEwMDA7Cj4gQEAgLTExMTgsMTAgKzExMzEsMTUgQEAgc3RhdGljIHZv aWQgaTk2NV91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICp1bnVzZWRfY3J0YykKPiAgCQlpbnQg Y2xvY2sgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrOwo+ICAJCWludCBodG90YWwgPSBhZGp1 c3RlZF9tb2RlLT5jcnRjX2h0b3RhbDsKPiAgCQlpbnQgaGRpc3BsYXkgPSB0b19pbnRlbF9jcnRj KGNydGMpLT5jb25maWctPnBpcGVfc3JjX3c7Cj4gLQkJaW50IHBpeGVsX3NpemUgPSBjcnRjLT5w cmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCQlpbnQgcGl4ZWxfc2l6 ZTsKPiAgCQl1bnNpZ25lZCBsb25nIGxpbmVfdGltZV91czsKPiAgCQlpbnQgZW50cmllczsKPiAg Cj4gKwkJaWYgKGNydGMtPnByaW1hcnktPnN0YXRlLT5mYikKPiArCQkJcGl4ZWxfc2l6ZSA9IGNy dGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ICsJCWVsc2UKPiAr CQkJcGl4ZWxfc2l6ZSA9IDQ7Cj4gKwo+ICAJCWxpbmVfdGltZV91cyA9IG1heChodG90YWwgKiAx MDAwIC8gY2xvY2ssIDEpOwo+ICAKPiAgCQkvKiBVc2UgbnMvdXMgdGhlbiBkaXZpZGUgdG8gcHJl c2VydmUgcHJlY2lzaW9uICovCj4gQEAgLTExOTUsNyArMTIxMywxMyBAQCBzdGF0aWMgdm9pZCBp OXh4X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKnVudXNlZF9jcnRjKQo+ICAJY3J0YyA9IGlu dGVsX2dldF9jcnRjX2Zvcl9wbGFuZShkZXYsIDApOwo+ICAJaWYgKGludGVsX2NydGNfYWN0aXZl KGNydGMpKSB7Cj4gIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGU7Cj4gLQkJaW50IGNwcCA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4 ZWwgLyA4Owo+ICsJCWludCBjcHA7Cj4gKwo+ICsJCWlmIChjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ ZmIpCj4gKwkJCWNwcCA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwg LyA4Owo+ICsJCWVsc2UKPiArCQkJY3BwID0gNDsKPiArCj4gIAkJaWYgKElTX0dFTjIoZGV2KSkK PiAgCQkJY3BwID0gNDsKPiAgCj4gQEAgLTEyMTcsNyArMTI0MSwxMyBAQCBzdGF0aWMgdm9pZCBp OXh4X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKnVudXNlZF9jcnRjKQo+ICAJY3J0YyA9IGlu dGVsX2dldF9jcnRjX2Zvcl9wbGFuZShkZXYsIDEpOwo+ICAJaWYgKGludGVsX2NydGNfYWN0aXZl KGNydGMpKSB7Cj4gIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGU7Cj4gLQkJaW50IGNwcCA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4 ZWwgLyA4Owo+ICsJCWludCBjcHA7Cj4gKwo+ICsJCWlmIChjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ ZmIpCj4gKwkJCWNwcCA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwg LyA4Owo+ICsJCWVsc2UKPiArCQkJY3BwID0gNDsKPiArCj4gIAkJaWYgKElTX0dFTjIoZGV2KSkK PiAgCQkJY3BwID0gNDsKPiAgCj4gQEAgLTEyNDMsNyArMTI3Myw3IEBAIHN0YXRpYyB2b2lkIGk5 eHhfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqdW51c2VkX2NydGMpCj4gIAkJb2JqID0gaW50 ZWxfZmJfb2JqKGVuYWJsZWQtPnByaW1hcnktPnN0YXRlLT5mYik7Cj4gIAo+ICAJCS8qIHNlbGYt cmVmcmVzaCBzZWVtcyBidXN0ZWQgd2l0aCB1bnRpbGVkICovCj4gLQkJaWYgKG9iai0+dGlsaW5n X21vZGUgPT0gSTkxNV9USUxJTkdfTk9ORSkKPiArCQlpZiAoIW9iaiB8fCBvYmotPnRpbGluZ19t b2RlID09IEk5MTVfVElMSU5HX05PTkUpCj4gIAkJCWVuYWJsZWQgPSBOVUxMOwo+ICAJfQo+ICAK PiBAQCAtMTI2NCwxMCArMTI5NCwxNSBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1 Y3QgZHJtX2NydGMgKnVudXNlZF9jcnRjKQo+ICAJCWludCBjbG9jayA9IGFkanVzdGVkX21vZGUt PmNydGNfY2xvY2s7Cj4gIAkJaW50IGh0b3RhbCA9IGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFs Owo+ICAJCWludCBoZGlzcGxheSA9IHRvX2ludGVsX2NydGMoZW5hYmxlZCktPmNvbmZpZy0+cGlw ZV9zcmNfdzsKPiAtCQlpbnQgcGl4ZWxfc2l6ZSA9IGVuYWJsZWQtPnByaW1hcnktPnN0YXRlLT5m Yi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ICsJCWludCBwaXhlbF9zaXplOwo+ICAJCXVuc2lnbmVk IGxvbmcgbGluZV90aW1lX3VzOwo+ICAJCWludCBlbnRyaWVzOwo+ICAKPiArCQlpZiAoZW5hYmxl ZC0+cHJpbWFyeS0+c3RhdGUtPmZiKQo+ICsJCQlwaXhlbF9zaXplID0gZW5hYmxlZC0+cHJpbWFy eS0+c3RhdGUtPmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gKwkJZWxzZQo+ICsJCQlwaXhlbF9z aXplID0gNDsKPiArCj4gIAkJbGluZV90aW1lX3VzID0gbWF4KGh0b3RhbCAqIDEwMDAgLyBjbG9j aywgMSk7Cj4gIAo+ICAJCS8qIFVzZSBucy91cyB0aGVuIGRpdmlkZSB0byBwcmVzZXJ2ZSBwcmVj aXNpb24gKi8KCldpdGggdGhlIGNoYW5nZSB0byBpbnRlbF9jcnRjX2FjdGl2ZSgpIHRvIGxvb2sg YXQgc3RhdGUtPmZiIEkgdGhpbmsgeW91CmNvdWxkIGRyb3AgYWxsIG9mIHRoZSBjaGFuZ2VzIGFi b3ZlLCBhbmQganVzdCBrZWVwIHRoZSBjaGFuZ2VzIGJlbG93LgoKPiBAQCAtMTk2MiwxMyArMTk5 NywyNSBAQCBzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9wYXJhbWV0ZXJzKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKPiAgCXAtPmFjdGl2ZSA9IHRydWU7Cj4gIAlwLT5waXBlX2h0b3RhbCA9IGlu dGVsX2NydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsOwo+ICAJcC0+ cGl4ZWxfcmF0ZSA9IGlsa19waXBlX3BpeGVsX3JhdGUoZGV2LCBjcnRjKTsKPiAtCXAtPnByaS5i eXRlc19wZXJfcGl4ZWwgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVs IC8gODsKPiAtCXAtPmN1ci5ieXRlc19wZXJfcGl4ZWwgPSA0Owo+ICsKPiArCWlmIChjcnRjLT5w cmltYXJ5LT5zdGF0ZS0+ZmIpIHsKPiArCQlwLT5wcmkuZW5hYmxlZCA9IHRydWU7Cj4gKwkJcC0+ cHJpLmJ5dGVzX3Blcl9waXhlbCA9Cj4gKwkJCWNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0 c19wZXJfcGl4ZWwgLyA4Owo+ICsJfSBlbHNlIHsKPiArCQlwLT5wcmkuZW5hYmxlZCA9IGZhbHNl Owo+ICsJCXAtPnByaS5ieXRlc19wZXJfcGl4ZWwgPSAwOwo+ICsJfQo+ICsKPiArCWlmIChjcnRj LT5jdXJzb3ItPnN0YXRlLT5mYikgewo+ICsJCXAtPmN1ci5lbmFibGVkID0gdHJ1ZTsKPiArCQlw LT5jdXIuYnl0ZXNfcGVyX3BpeGVsID0gNDsKPiArCX0gZWxzZSB7Cj4gKwkJcC0+Y3VyLmVuYWJs ZWQgPSBmYWxzZTsKPiArCQlwLT5jdXIuYnl0ZXNfcGVyX3BpeGVsID0gMDsKPiArCX0KPiAgCXAt PnByaS5ob3Jpel9waXhlbHMgPSBpbnRlbF9jcnRjLT5jb25maWctPnBpcGVfc3JjX3c7Cj4gIAlw LT5jdXIuaG9yaXpfcGl4ZWxzID0gaW50ZWxfY3J0Yy0+YmFzZS5jdXJzb3ItPnN0YXRlLT5jcnRj X3c7Cj4gLQkvKiBUT0RPOiBmb3Igbm93LCBhc3N1bWUgcHJpbWFyeSBhbmQgY3Vyc29yIHBsYW5l cyBhcmUgYWx3YXlzIGVuYWJsZWQuICovCj4gLQlwLT5wcmkuZW5hYmxlZCA9IHRydWU7Cj4gLQlw LT5jdXIuZW5hYmxlZCA9IHRydWU7Cj4gIAo+ICAJZHJtX2Zvcl9lYWNoX2xlZ2FjeV9wbGFuZShw bGFuZSwgJmRldi0+bW9kZV9jb25maWcucGxhbmVfbGlzdCkgewo+ICAJCXN0cnVjdCBpbnRlbF9w bGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Cj4gQEAgLTI3MzQsMjcg KzI3ODEsMzEgQEAgc3RhdGljIHZvaWQgc2tsX2NvbXB1dGVfd21fcGlwZV9wYXJhbWV0ZXJzKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQlwLT5waXBlX2h0b3RhbCA9IGludGVsX2NydGMtPmNv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsOwo+ICAJCXAtPnBpeGVsX3JhdGUg PSBza2xfcGlwZV9waXhlbF9yYXRlKGludGVsX2NydGMtPmNvbmZpZyk7Cj4gIAo+IC0JCS8qCj4g LQkJICogRm9yIG5vdywgYXNzdW1lIHByaW1hcnkgYW5kIGN1cnNvciBwbGFuZXMgYXJlIGFsd2F5 cyBlbmFibGVkLgo+IC0JCSAqLwo+IC0JCXAtPnBsYW5lWzBdLmVuYWJsZWQgPSB0cnVlOwo+IC0J CXAtPnBsYW5lWzBdLmJ5dGVzX3Blcl9waXhlbCA9Cj4gLQkJCWNydGMtPnByaW1hcnktPnN0YXRl LT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+IC0JCXAtPnBsYW5lWzBdLmhvcml6X3BpeGVscyA9 IGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNfdzsKPiAtCQlwLT5wbGFuZVswXS52ZXJ0X3Bp eGVscyA9IGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNfaDsKPiAtCQlwLT5wbGFuZVswXS50 aWxpbmcgPSBEUk1fRk9STUFUX01PRF9OT05FOwo+ICAJCWZiID0gY3J0Yy0+cHJpbWFyeS0+c3Rh dGUtPmZiOwo+IC0JCS8qCj4gLQkJICogRnJhbWVidWZmZXIgY2FuIGJlIE5VTEwgb24gcGxhbmUg ZGlzYWJsZSwgYnV0IGl0IGRvZXMgbm90Cj4gLQkJICogbWF0dGVyIGZvciB3YXRlcm1hcmtzIGlm IHdlIGFzc3VtZSBubyB0aWxpbmcgaW4gdGhhdCBjYXNlLgo+IC0JCSAqLwo+IC0JCWlmIChmYikK PiArCQlpZiAoZmIpIHsKPiArCQkJcC0+cGxhbmVbMF0uZW5hYmxlZCA9IHRydWU7Cj4gKwkJCXAt PnBsYW5lWzBdLmJ5dGVzX3Blcl9waXhlbCA9IGZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gIAkJ CXAtPnBsYW5lWzBdLnRpbGluZyA9IGZiLT5tb2RpZmllclswXTsKPiArCQl9IGVsc2Ugewo+ICsJ CQlwLT5wbGFuZVswXS5lbmFibGVkID0gZmFsc2U7Cj4gKwkJCXAtPnBsYW5lWzBdLmJ5dGVzX3Bl cl9waXhlbCA9IDA7Cj4gKwkJCXAtPnBsYW5lWzBdLnRpbGluZyA9IERSTV9GT1JNQVRfTU9EX05P TkU7Cj4gKwkJfQo+ICsJCXAtPnBsYW5lWzBdLmhvcml6X3BpeGVscyA9IGludGVsX2NydGMtPmNv bmZpZy0+cGlwZV9zcmNfdzsKPiArCQlwLT5wbGFuZVswXS52ZXJ0X3BpeGVscyA9IGludGVsX2Ny dGMtPmNvbmZpZy0+cGlwZV9zcmNfaDsKPiAgCj4gLQkJcC0+Y3Vyc29yLmVuYWJsZWQgPSB0cnVl Owo+IC0JCXAtPmN1cnNvci5ieXRlc19wZXJfcGl4ZWwgPSA0Owo+IC0JCXAtPmN1cnNvci5ob3Jp el9waXhlbHMgPSBpbnRlbF9jcnRjLT5iYXNlLmN1cnNvci0+c3RhdGUtPmNydGNfdyA/Cj4gLQkJ CQkJIGludGVsX2NydGMtPmJhc2UuY3Vyc29yLT5zdGF0ZS0+Y3J0Y193IDogNjQ7Cj4gKwkJZmIg PSBjcnRjLT5jdXJzb3ItPnN0YXRlLT5mYjsKPiArCQlpZiAoZmIpIHsKPiArCQkJcC0+Y3Vyc29y LmVuYWJsZWQgPSB0cnVlOwo+ICsJCQlwLT5jdXJzb3IuYnl0ZXNfcGVyX3BpeGVsID0gZmItPmJp dHNfcGVyX3BpeGVsIC8gODsKPiArCQkJcC0+Y3Vyc29yLmhvcml6X3BpeGVscyA9IGNydGMtPmN1 cnNvci0+c3RhdGUtPmNydGNfdzsKPiArCQkJcC0+Y3Vyc29yLnZlcnRfcGl4ZWxzID0gY3J0Yy0+ Y3Vyc29yLT5zdGF0ZS0+Y3J0Y19oOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCXAtPmN1cnNvci5lbmFi bGVkID0gZmFsc2U7Cj4gKwkJCXAtPmN1cnNvci5ieXRlc19wZXJfcGl4ZWwgPSAwOwo+ICsJCQlw LT5jdXJzb3IuaG9yaXpfcGl4ZWxzID0gNjQ7Cj4gKwkJCXAtPmN1cnNvci52ZXJ0X3BpeGVscyA9 IDY0Owo+ICsJCX0KPiAgCX0KPiAgCj4gIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBsYW5lLCAmZGV2 LT5tb2RlX2NvbmZpZy5wbGFuZV9saXN0LCBoZWFkKSB7Cj4gLS0gCj4gMS44LjUuMQo+IAo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmls bGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=