From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/2] drm/i915: Don't assume primary & cursor are always on for wm calculation (v2) Date: Fri, 6 Mar 2015 14:57:41 +0200 Message-ID: <20150306125741.GN11371@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" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 0D0BA6E865 for ; Fri, 6 Mar 2015 04:57:46 -0800 (PST) Content-Disposition: inline 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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXIgMDUsIDIwMTUgYXQgMDU6MzE6MThQTSAtMDgwMCwgTWF0dCBSb3BlciB3cm90 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 LgoKSSB0aGluayB5b3UgbmVlZCB0byBjaGFuZ2UgaW50ZWxfY3J0Y19hY3RpdmUoKSB0byBjaGVj awpwcmltYXJ5LT5zdGF0ZS0+ZmIgaW5zdGVhZCBvZiBwcmltYXJ5LT5mYiBhcyB3ZWxsLiBPdGhl cndpc2UgSSdsbCBleGVwY3QKc29tZSBleHBsb3Npb25zIG9uIG9sZCBwbGF0Zm9ybXMuCgo+IAo+ IHYyOiBVcGRhdGUgdW5jaGVja2VkIHVzZXMgb2Ygc3RhdGUtPmZiIGZvciBvdGhlciBwbGF0Zm9y bXMgKHBudiwgc2tsLAo+ICAgICBldGMuKS4gIE5vdGUgdGhhdCB0aGlzIGlzIGp1c3QgYSB0ZW1w b3JhcnkgZml4LiAgVWx0aW1hdGVseSB0aGUKPiAgICAgdXNlZnVsIGluZm9ybWF0aW9uIGlzIGdv aW5nIHRvIGJlIGNvbXB1dGVkIGF0IGNoZWNrIHRpbWUgYW5kIHN0b3JlZAo+ICAgICByaWdodCBp biB0aGUgc3RhdGUgc3RydWN0dXJlcyBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gZmlndXJlIHRo aXMKPiAgICAgYWxsIG91dCB3aGlsZSB3ZSdyZSBzdXBwb3NlZCB0byBiZSBwcm9ncmFtbWluZyB0 aGUgd2F0ZXJtYXJrcy4KPiAgICAgKGNhdWdodCBieSBUdnJ0a28pCj4gCj4gQ2M6IFR2cnRrbyBV cnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gUmVwb3J0ZWQtYnk6IE1pY2hhZWwg TGV1Y2h0ZW5idXJnIDxtaWNoYWVsQHNsYXNoaG9tZS5vcmc+Cj4gQnVnemlsbGE6IGh0dHBzOi8v YnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTg5Mzg4Cj4gU2lnbmVkLW9mZi1i eTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyB8IDExNiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA4NSBpbnNlcnRpb25zKCspLCAzMSBk ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCBlMmU4NDE0Li4w OWUyMTBjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTU1MywxMiArNTUzLDE3 IEBAIHN0YXRpYyB2b2lkIHBpbmV2aWV3X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKnVudXNl ZF9jcnRjKQo+ICAJY3J0YyA9IHNpbmdsZV9lbmFibGVkX2NydGMoZGV2KTsKPiAgCWlmIChjcnRj KSB7Cj4gIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGU7Cj4g LQkJaW50IHBpeGVsX3NpemUgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3Bp eGVsIC8gODsKPiArCQlpbnQgcGl4ZWxfc2l6ZTsKPiAgCQlpbnQgY2xvY2s7Cj4gIAo+ICAJCWFk anVzdGVkX21vZGUgPSAmdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGU7Cj4gIAkJY2xvY2sgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrOwo+ICAKPiArCQlp ZiAoY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiKQo+ICsJCQlwaXhlbF9zaXplID0gY3J0Yy0+cHJp bWFyeS0+c3RhdGUtPmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4gKwkJZWxzZQo+ICsJCQlwaXhl bF9zaXplID0gNDsKPiArCj4gIAkJLyogRGlzcGxheSBTUiAqLwo+ICAJCXdtID0gaW50ZWxfY2Fs Y3VsYXRlX3dtKGNsb2NrLCAmcGluZXZpZXdfZGlzcGxheV93bSwKPiAgCQkJCQlwaW5ldmlld19k aXNwbGF5X3dtLmZpZm9fc2l6ZSwKPiBAQCAtNjI5LDcgKzYzNCwxMSBAQCBzdGF0aWMgYm9vbCBn NHhfY29tcHV0ZV93bTAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCWNsb2NrID0gYWRqdXN0 ZWRfbW9kZS0+Y3J0Y19jbG9jazsKPiAgCWh0b3RhbCA9IGFkanVzdGVkX21vZGUtPmNydGNfaHRv dGFsOwo+ICAJaGRpc3BsYXkgPSB0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWctPnBpcGVfc3Jj X3c7Cj4gLQlwaXhlbF9zaXplID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLT5iaXRzX3Blcl9w aXhlbCAvIDg7Cj4gKwo+ICsJaWYgKGNydGMtPnByaW1hcnktPnN0YXRlLT5mYikKPiArCQlwaXhl bF9zaXplID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLT5iaXRzX3Blcl9waXhlbCAvIDg7Cj4g KwllbHNlCj4gKwkJcGl4ZWxfc2l6ZSA9IDQ7Cj4gIAo+ICAJLyogVXNlIHRoZSBzbWFsbCBidWZm ZXIgbWV0aG9kIHRvIGNhbGN1bGF0ZSBwbGFuZSB3YXRlcm1hcmsgKi8KPiAgCWVudHJpZXMgPSAo KGNsb2NrICogcGl4ZWxfc2l6ZSAvIDEwMDApICogZGlzcGxheV9sYXRlbmN5X25zKSAvIDEwMDA7 Cj4gQEAgLTcxNiw3ICs3MjUsMTEgQEAgc3RhdGljIGJvb2wgZzR4X2NvbXB1dGVfc3J3bShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJY2xvY2sgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2Nr Owo+ICAJaHRvdGFsID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWw7Cj4gIAloZGlzcGxheSA9 IHRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy0+cGlwZV9zcmNfdzsKPiAtCXBpeGVsX3NpemUg PSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCj4gKwlp ZiAoY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiKQo+ICsJCXBpeGVsX3NpemUgPSBjcnRjLT5wcmlt YXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCWVsc2UKPiArCQlwaXhlbF9z aXplID0gNDsKPiAgCj4gIAlsaW5lX3RpbWVfdXMgPSBtYXgoaHRvdGFsICogMTAwMCAvIGNsb2Nr LCAxKTsKPiAgCWxpbmVfY291bnQgPSAobGF0ZW5jeV9ucyAvIGxpbmVfdGltZV91cyArIDEwMDAp IC8gMTAwMDsKPiBAQCAtNzk5LDcgKzgxMiwxMCBAQCBzdGF0aWMgdm9pZCB2bHZfdXBkYXRlX2Ry YWluX2xhdGVuY3koc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJfQo+ICAKPiAgCS8qIFByaW1h cnkgcGxhbmUgRHJhaW4gTGF0ZW5jeSAqLwo+IC0JcGl4ZWxfc2l6ZSA9IGNydGMtPnByaW1hcnkt PnN0YXRlLT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4OwkvKiBCUFAgKi8KPiArCWlmIChjcnRjLT5w cmltYXJ5LT5zdGF0ZS0+ZmIpCj4gKwkJcGl4ZWxfc2l6ZSA9IGNydGMtPnByaW1hcnktPnN0YXRl LT5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ICsJZWxzZQo+ICsJCXBpeGVsX3NpemUgPSA0Owo+ ICAJaWYgKHZsdl9jb21wdXRlX2RyYWluX2xhdGVuY3koY3J0YywgcGl4ZWxfc2l6ZSwgJnByZWNf bXVsdCwgJmRyYWluX2xhdGVuY3kpKSB7Cj4gIAkJcGxhbmVfcHJlYyA9IChwcmVjX211bHQgPT0g aGlnaF9wcmVjaXNpb24pID8KPiAgCQkJCQkgICBERExfUExBTkVfUFJFQ0lTSU9OX0hJR0ggOgo+ IEBAIC0xMDgwLDEwICsxMDk2LDE1IEBAIHN0YXRpYyB2b2lkIGk5NjVfdXBkYXRlX3dtKHN0cnVj dCBkcm1fY3J0YyAqdW51c2VkX2NydGMpCj4gIAkJaW50IGNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+ Y3J0Y19jbG9jazsKPiAgCQlpbnQgaHRvdGFsID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWw7 Cj4gIAkJaW50IGhkaXNwbGF5ID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+Y29uZmlnLT5waXBlX3Ny Y193Owo+IC0JCWludCBwaXhlbF9zaXplID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLT5iaXRz X3Blcl9waXhlbCAvIDg7Cj4gKwkJaW50IHBpeGVsX3NpemU7Cj4gIAkJdW5zaWduZWQgbG9uZyBs aW5lX3RpbWVfdXM7Cj4gIAkJaW50IGVudHJpZXM7Cj4gIAo+ICsJCWlmIChjcnRjLT5wcmltYXJ5 LT5zdGF0ZS0+ZmIpCj4gKwkJCXBpeGVsX3NpemUgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmIt PmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCQllbHNlCj4gKwkJCXBpeGVsX3NpemUgPSA0Owo+ICsK PiAgCQlsaW5lX3RpbWVfdXMgPSBtYXgoaHRvdGFsICogMTAwMCAvIGNsb2NrLCAxKTsKPiAgCj4g IAkJLyogVXNlIG5zL3VzIHRoZW4gZGl2aWRlIHRvIHByZXNlcnZlIHByZWNpc2lvbiAqLwo+IEBA IC0xMTU3LDcgKzExNzgsMTMgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfd20oc3RydWN0IGRy bV9jcnRjICp1bnVzZWRfY3J0YykKPiAgCWNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGxhbmUo ZGV2LCAwKTsKPiAgCWlmIChpbnRlbF9jcnRjX2FjdGl2ZShjcnRjKSkgewo+ICAJCWNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlOwo+IC0JCWludCBjcHAgPSBjcnRj LT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCQlpbnQgY3BwOwo+ ICsKPiArCQlpZiAoY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiKQo+ICsJCQljcHAgPSBjcnRjLT5w cmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCQllbHNlCj4gKwkJCWNw cCA9IDQ7Cj4gKwo+ICAJCWlmIChJU19HRU4yKGRldikpCj4gIAkJCWNwcCA9IDQ7Cj4gIAo+IEBA IC0xMTc5LDcgKzEyMDYsMTMgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfd20oc3RydWN0IGRy bV9jcnRjICp1bnVzZWRfY3J0YykKPiAgCWNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGxhbmUo ZGV2LCAxKTsKPiAgCWlmIChpbnRlbF9jcnRjX2FjdGl2ZShjcnRjKSkgewo+ICAJCWNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlOwo+IC0JCWludCBjcHAgPSBjcnRj LT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCQlpbnQgY3BwOwo+ ICsKPiArCQlpZiAoY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiKQo+ICsJCQljcHAgPSBjcnRjLT5w cmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCQllbHNlCj4gKwkJCWNw cCA9IDQ7Cj4gKwo+ICAJCWlmIChJU19HRU4yKGRldikpCj4gIAkJCWNwcCA9IDQ7Cj4gIAo+IEBA IC0xMjA1LDcgKzEyMzgsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgZHJt X2NydGMgKnVudXNlZF9jcnRjKQo+ICAJCW9iaiA9IGludGVsX2ZiX29iaihlbmFibGVkLT5wcmlt YXJ5LT5zdGF0ZS0+ZmIpOwo+ICAKPiAgCQkvKiBzZWxmLXJlZnJlc2ggc2VlbXMgYnVzdGVkIHdp dGggdW50aWxlZCAqLwo+IC0JCWlmIChvYmotPnRpbGluZ19tb2RlID09IEk5MTVfVElMSU5HX05P TkUpCj4gKwkJaWYgKCFvYmogfHwgb2JqLT50aWxpbmdfbW9kZSA9PSBJOTE1X1RJTElOR19OT05F KQo+ICAJCQllbmFibGVkID0gTlVMTDsKPiAgCX0KPiAgCj4gQEAgLTEyMjYsMTAgKzEyNTksMTUg QEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICp1bnVzZWRfY3J0 YykKPiAgCQlpbnQgY2xvY2sgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrOwo+ICAJCWludCBo dG90YWwgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2h0b3RhbDsKPiAgCQlpbnQgaGRpc3BsYXkgPSB0 b19pbnRlbF9jcnRjKGVuYWJsZWQpLT5jb25maWctPnBpcGVfc3JjX3c7Cj4gLQkJaW50IHBpeGVs X3NpemUgPSBlbmFibGVkLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsK PiArCQlpbnQgcGl4ZWxfc2l6ZTsKPiAgCQl1bnNpZ25lZCBsb25nIGxpbmVfdGltZV91czsKPiAg CQlpbnQgZW50cmllczsKPiAgCj4gKwkJaWYgKGVuYWJsZWQtPnByaW1hcnktPnN0YXRlLT5mYikK PiArCQkJcGl4ZWxfc2l6ZSA9IGVuYWJsZWQtPnByaW1hcnktPnN0YXRlLT5mYi0+Yml0c19wZXJf cGl4ZWwgLyA4Owo+ICsJCWVsc2UKPiArCQkJcGl4ZWxfc2l6ZSA9IDQ7Cj4gKwo+ICAJCWxpbmVf dGltZV91cyA9IG1heChodG90YWwgKiAxMDAwIC8gY2xvY2ssIDEpOwo+ICAKPiAgCQkvKiBVc2Ug bnMvdXMgdGhlbiBkaXZpZGUgdG8gcHJlc2VydmUgcHJlY2lzaW9uICovCj4gQEAgLTE5MjQsMTMg KzE5NjIsMjUgQEAgc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fcGFyYW1ldGVycyhzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCj4gIAlwLT5hY3RpdmUgPSB0cnVlOwo+ICAJcC0+cGlwZV9odG90YWwg PSBpbnRlbF9jcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbDsKPiAg CXAtPnBpeGVsX3JhdGUgPSBpbGtfcGlwZV9waXhlbF9yYXRlKGRldiwgY3J0Yyk7Cj4gLQlwLT5w cmkuYnl0ZXNfcGVyX3BpeGVsID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLT5iaXRzX3Blcl9w aXhlbCAvIDg7Cj4gLQlwLT5jdXIuYnl0ZXNfcGVyX3BpeGVsID0gNDsKPiArCj4gKwlpZiAoY3J0 Yy0+cHJpbWFyeS0+c3RhdGUtPmZiKSB7Cj4gKwkJcC0+cHJpLmVuYWJsZWQgPSB0cnVlOwo+ICsJ CXAtPnByaS5ieXRlc19wZXJfcGl4ZWwgPQo+ICsJCQljcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmIt PmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCX0gZWxzZSB7Cj4gKwkJcC0+cHJpLmVuYWJsZWQgPSBm YWxzZTsKPiArCQlwLT5wcmkuYnl0ZXNfcGVyX3BpeGVsID0gMDsKPiArCX0KPiArCj4gKwlpZiAo Y3J0Yy0+Y3Vyc29yLT5zdGF0ZS0+ZmIpIHsKPiArCQlwLT5jdXIuZW5hYmxlZCA9IHRydWU7Cj4g KwkJcC0+Y3VyLmJ5dGVzX3Blcl9waXhlbCA9IDQ7Cj4gKwl9IGVsc2Ugewo+ICsJCXAtPmN1ci5l bmFibGVkID0gZmFsc2U7Cj4gKwkJcC0+Y3VyLmJ5dGVzX3Blcl9waXhlbCA9IDA7Cj4gKwl9Cj4g IAlwLT5wcmkuaG9yaXpfcGl4ZWxzID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY193Owo+ ICAJcC0+Y3VyLmhvcml6X3BpeGVscyA9IGludGVsX2NydGMtPmJhc2UuY3Vyc29yLT5zdGF0ZS0+ Y3J0Y193Owo+IC0JLyogVE9ETzogZm9yIG5vdywgYXNzdW1lIHByaW1hcnkgYW5kIGN1cnNvciBw bGFuZXMgYXJlIGFsd2F5cyBlbmFibGVkLiAqLwo+IC0JcC0+cHJpLmVuYWJsZWQgPSB0cnVlOwo+ IC0JcC0+Y3VyLmVuYWJsZWQgPSB0cnVlOwo+ICAKPiAgCWRybV9mb3JfZWFjaF9sZWdhY3lfcGxh bmUocGxhbmUsICZkZXYtPm1vZGVfY29uZmlnLnBsYW5lX2xpc3QpIHsKPiAgCQlzdHJ1Y3QgaW50 ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwo+IEBAIC0yNjk2 LDI3ICsyNzQ2LDMxIEBAIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3dtX3BpcGVfcGFyYW1ldGVy cyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJcC0+cGlwZV9odG90YWwgPSBpbnRlbF9jcnRj LT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbDsKPiAgCQlwLT5waXhlbF9y YXRlID0gc2tsX3BpcGVfcGl4ZWxfcmF0ZShpbnRlbF9jcnRjLT5jb25maWcpOwo+ICAKPiAtCQkv Kgo+IC0JCSAqIEZvciBub3csIGFzc3VtZSBwcmltYXJ5IGFuZCBjdXJzb3IgcGxhbmVzIGFyZSBh bHdheXMgZW5hYmxlZC4KPiAtCQkgKi8KPiAtCQlwLT5wbGFuZVswXS5lbmFibGVkID0gdHJ1ZTsK PiAtCQlwLT5wbGFuZVswXS5ieXRlc19wZXJfcGl4ZWwgPQo+IC0JCQljcnRjLT5wcmltYXJ5LT5z dGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCQlmYiA9IGNydGMtPnByaW1hcnktPnN0 YXRlLT5mYjsKPiArCQlpZiAoZmIpIHsKPiArCQkJcC0+cGxhbmVbMF0uZW5hYmxlZCA9IHRydWU7 Cj4gKwkJCXAtPnBsYW5lWzBdLmJ5dGVzX3Blcl9waXhlbCA9IGZiLT5iaXRzX3Blcl9waXhlbCAv IDg7Cj4gKwkJCXAtPnBsYW5lWzBdLnRpbGluZyA9IGZiLT5tb2RpZmllclswXTsKPiArCQl9IGVs c2Ugewo+ICsJCQlwLT5wbGFuZVswXS5lbmFibGVkID0gZmFsc2U7Cj4gKwkJCXAtPnBsYW5lWzBd LmJ5dGVzX3Blcl9waXhlbCA9IDA7Cj4gKwkJfQo+ICAJCXAtPnBsYW5lWzBdLmhvcml6X3BpeGVs cyA9IGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNfdzsKPiAgCQlwLT5wbGFuZVswXS52ZXJ0 X3BpeGVscyA9IGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNfaDsKPiAgCQlwLT5wbGFuZVsw XS50aWxpbmcgPSBEUk1fRk9STUFUX01PRF9OT05FOwo+IC0JCWZiID0gY3J0Yy0+cHJpbWFyeS0+ c3RhdGUtPmZiOwo+IC0JCS8qCj4gLQkJICogRnJhbWVidWZmZXIgY2FuIGJlIE5VTEwgb24gcGxh bmUgZGlzYWJsZSwgYnV0IGl0IGRvZXMgbm90Cj4gLQkJICogbWF0dGVyIGZvciB3YXRlcm1hcmtz IGlmIHdlIGFzc3VtZSBubyB0aWxpbmcgaW4gdGhhdCBjYXNlLgo+IC0JCSAqLwo+IC0JCWlmIChm YikKPiAtCQkJcC0+cGxhbmVbMF0udGlsaW5nID0gZmItPm1vZGlmaWVyWzBdOwo+ICAKPiAtCQlw LT5jdXJzb3IuZW5hYmxlZCA9IHRydWU7Cj4gLQkJcC0+Y3Vyc29yLmJ5dGVzX3Blcl9waXhlbCA9 IDQ7Cj4gLQkJcC0+Y3Vyc29yLmhvcml6X3BpeGVscyA9IGludGVsX2NydGMtPmJhc2UuY3Vyc29y LT5zdGF0ZS0+Y3J0Y193ID8KPiAtCQkJCQkgaW50ZWxfY3J0Yy0+YmFzZS5jdXJzb3ItPnN0YXRl LT5jcnRjX3cgOiA2NDsKPiArCQlmYiA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5mYjsKPiArCQlp ZiAoZmIpIHsKPiArCQkJcC0+Y3Vyc29yLmVuYWJsZWQgPSB0cnVlOwo+ICsJCQlwLT5jdXJzb3Iu Ynl0ZXNfcGVyX3BpeGVsID0gZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKPiArCQkJcC0+Y3Vyc29y Lmhvcml6X3BpeGVscyA9IGNydGMtPmN1cnNvci0+c3RhdGUtPmNydGNfdzsKPiArCQkJcC0+Y3Vy c29yLnZlcnRfcGl4ZWxzID0gY3J0Yy0+Y3Vyc29yLT5zdGF0ZS0+Y3J0Y19oOwo+ICsJCX0gZWxz ZSB7Cj4gKwkJCXAtPmN1cnNvci5lbmFibGVkID0gZmFsc2U7Cj4gKwkJCXAtPmN1cnNvci5ieXRl c19wZXJfcGl4ZWwgPSAwOwo+ICsJCQlwLT5jdXJzb3IuaG9yaXpfcGl4ZWxzID0gNjQ7Cj4gKwkJ CXAtPmN1cnNvci52ZXJ0X3BpeGVscyA9IDY0Owo+ICsJCX0KPiAgCX0KPiAgCj4gIAlsaXN0X2Zv cl9lYWNoX2VudHJ5KHBsYW5lLCAmZGV2LT5tb2RlX2NvbmZpZy5wbGFuZV9saXN0LCBoZWFkKSB7 Cj4gLS0gCj4gMS44LjUuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=