From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [RFC 3/5] Move fifo_size from intel_plane_wm_parameters to vlv_wm_state Date: Fri, 3 Jun 2016 16:03:53 -0700 Message-ID: <20160603230353.GJ6245@intel.com> References: <1464765021-16206-1-git-send-email-chix.ding@intel.com> <1464765021-16206-4-git-send-email-chix.ding@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 29BF06E5B0 for ; Fri, 3 Jun 2016 23:03:54 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1464765021-16206-4-git-send-email-chix.ding@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: chix.ding@intel.com Cc: yetundex.adebisi@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKdW4gMDEsIDIwMTYgYXQgMDg6MTA6MTlBTSArMDEwMCwgY2hpeC5kaW5nQGludGVs LmNvbSB3cm90ZToKPiBGcm9tOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RA bGludXguaW50ZWwuY29tPgo+IAo+IFRoaXMgcGF0Y2ggZG9lc24ndCBjaGFuZ2UgdGhlIGNvZGUg dG8gdXNlIHR3by1sZXZlbCB3YXRlcm1hcmsgeWV0LAoKSnVzdCBhcyBhIGdlbmVyYWwgbm90ZSwg cGVvcGxlIG1heSBsb29rIGJhY2sgb24gdGhpcyBjb21taXQgaW4gdGhlCmZ1dHVyZSAob25jZSBp dCdzIGJlZW4gYWNjZXB0ZWQgYW5kIG1lcmdlZCB1cHN0cmVhbSkgYW5kIHdvbid0IGhhdmUgdGhl CmNvbnRleHQgb2YgdGhlIHJlc3Qgb2YgdGhlIHNlcmllcyBpbiBmcm9udCBvZiB0aGVtLCBzbyBu b3RlcyBsaWtlIHRoaXMKd2lsbCBqdXN0IGJlIGNvbmZ1c2luZyAoYW5kIHRoZXkncmUgcHJvYmFi bHkgY29uZnVzaW5nIGV2ZW4gdG8gcGVvcGxlCmxvb2tpbmcgYXQgdGhlIHdob2xlIHNlcmllcyBu b3cgd2hvIGFyZW4ndCBmYW1pbGlhciB3aXRoIHRoZSBtb3RpdmF0aW9uCmFuZCBjaGFsbGVuZ2Vz IG9mIHR3by1zdGFnZSB3YXRlcm1hcmtzIGZvciBhdG9taWMpLgoKSW4gZ2VuZXJhbCBpdCdzIGdv b2QgdG8gd3JpdGUgc29tZSBoaWdoLWxldmVsIG92ZXJ2aWV3IGluIHRoZSBjb3ZlcgpsZXR0ZXIg ZW1haWwgdG8gZ2l2ZSB0aGUgYmFja2dyb3VuZCBhbmQgb3ZlcmFsbCBnb2FsIG9mIHRoZSBzZXJp ZXMuClRoZW4gaXQncyBhIGxpdHRsZSBiaXQgZWFzaWVyIHRvIHdyaXRlIGluZGl2aWR1YWwgY29t bWl0IG1lc3NhZ2VzIHRoYXQKanVzdCBmb2N1cyBvbiB0aGUgc3BlY2lmaWMgY2hhbmdlcyB0aGF0 IHBhdGNoIGlzIG1ha2luZyAoc29tZXRpbWVzIHRoZXkKbWlnaHQgbWFrZSBnZW5lcmFsIGNvbW1l bnRzIGxpa2UgImluIHRoZSBmdXR1cmUgd2UnbGwgd2FudCB0byBkbyA8Zm9vPgpzbyBtYWtlIDxi YXI+IGNoYW5nZXMgbm93IGluIHByZXBhcmF0aW9uIikuCgo+IFdpdGggdGhpcyBwYXRjaCB0aGUg d2F0ZXJtYXJrcyBhcmUgc2F2ZWQgZm9yIGVhY2ggcGxhbmUgYW5kIHRoZSB3bQo+IHN0YXRlLCBp bnN0ZWFkIG9mIHByZXZpb3VzbHkgb25seSBmb3IgdGhlIHBsYW5lCgpJdCB3b3VsZCBiZSBnb29k IHRvIGV4cGxhaW4gYSBsaXR0bGUgYml0IG1vcmUgdGhlIG1vdGl2YXRpb24gZm9yIHRoZQpzd2l0 Y2ggZnJvbSBhIHBsYW5lLWJhc2VkIHN0cnVjdHVyZSB0byBhIENSVEMtYmFzZWQgc3RydWN0dXJl LgoKPiAKPiBUaGUgcGF0Y2ggaXMgYmFzZWQgb24gTWFhcnRlbiBMYW5raG9yc3QncyB3b3JrIGFu ZCBjcmVhdGVkIGJ5IENoaSBEaW5nCgpUaGlzIGNhbiBiZSBzZWVuIGZyb20gdGhlICJGcm9tOiIg bGluZSBhYm92ZSwgYWxvbmcgd2l0aCB0aGUKU2lnbmVkLW9mZi1ieSBsaW5lcywgc28gSSBkb24n dCB0aGluayB5b3UgbmVlZCB0byBpbmNsdWRlIGl0LgoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBNYWFy dGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IFNpZ25l ZC1vZmYtYnk6IENoaSBEaW5nIDxjaGl4LmRpbmdAaW50ZWwuY29tPgo+IAo+IGNjOiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IGNjOiBtYXR0aGV3LmQu cm9wZXJAaW50ZWwuY29tCj4gY2M6IHlldHVuZGV4LmFkZWJpc2lAaW50ZWwuY29tCj4gLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIHwgIDEyICstLS0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgfCAxMTcgKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwgNjQgZGVs ZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBiOTczYjg2Li4z MTExOGUxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtNjI0LDYgKzYyNCw3 IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiAgc3RydWN0IHZsdl93bV9zdGF0ZSB7Cj4g IAlzdHJ1Y3Qgdmx2X3BpcGVfd20gd21bM107Cj4gIAlzdHJ1Y3Qgdmx2X3NyX3dtIHNyWzNdOwo+ ICsJdWludDE2X3QgZmlmb19zaXplW0k5MTVfTUFYX1BMQU5FU107Cj4gIAl1aW50OF90IG51bV9h Y3RpdmVfcGxhbmVzOwo+ICAJdWludDhfdCBudW1fbGV2ZWxzOwo+ICAJdWludDhfdCBsZXZlbDsK PiBAQCAtNjk2LDEwICs2OTcsNiBAQCBzdHJ1Y3QgaW50ZWxfY3J0YyB7Cj4gIAlzdHJ1Y3Qgdmx2 X3dtX3N0YXRlIHdtX3N0YXRlOwo+ICB9Owo+ICAKPiAtc3RydWN0IGludGVsX3BsYW5lX3dtX3Bh cmFtZXRlcnMgewo+IC0JdWludDE2X3QgZmlmb19zaXplOwo+IC19Owo+IC0KPiAgc3RydWN0IGlu dGVsX3BsYW5lIHsKPiAgCXN0cnVjdCBkcm1fcGxhbmUgYmFzZTsKPiAgCWludCBwbGFuZTsKPiBA QCAtNzA4LDEzICs3MDUsNiBAQCBzdHJ1Y3QgaW50ZWxfcGxhbmUgewo+ICAJaW50IG1heF9kb3du c2NhbGU7Cj4gIAl1aW50MzJfdCBmcm9udGJ1ZmZlcl9iaXQ7Cj4gIAo+IC0JLyogU2luY2Ugd2Ug bmVlZCB0byBjaGFuZ2UgdGhlIHdhdGVybWFya3MgYmVmb3JlL2FmdGVyCj4gLQkgKiBlbmFibGlu Zy9kaXNhYmxpbmcgdGhlIHBsYW5lcywgd2UgbmVlZCB0byBzdG9yZSB0aGUgcGFyYW1ldGVycyBo ZXJlCj4gLQkgKiBhcyB0aGUgb3RoZXIgcGllY2VzIG9mIHRoZSBzdHJ1Y3QgbWF5IG5vdCByZWZs ZWN0IHRoZSB2YWx1ZXMgd2Ugd2FudAo+IC0JICogZm9yIHRoZSB3YXRlcm1hcmsgY2FsY3VsYXRp b25zLiBDdXJyZW50bHkgb25seSBIYXN3ZWxsIHVzZXMgdGhpcy4KPiAtCSAqLwo+IC0Jc3RydWN0 IGludGVsX3BsYW5lX3dtX3BhcmFtZXRlcnMgd207Cj4gLQo+ICAJLyoKPiAgCSAqIE5PVEU6IERv IG5vdCBwbGFjZSBuZXcgcGxhbmUgc3RhdGUgZmllbGRzIGhlcmUgKGUuZy4sIHdoZW4gYWRkaW5n Cj4gIAkgKiBuZXcgcGxhbmUgcHJvcGVydGllcykuICBOZXcgcnVudGltZSBzdGF0ZSBzaG91bGQg bm93IGJlIHBsYWNlZCBpbgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IGEzOTQyZGYu LjU1MTUzMjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBAQCAtNTUsNyArNTUsNyBA QAo+ICAjZGVmaW5lIElOVEVMX1JDNnBwX0VOQUJMRQkJCSgxPDwyKQo+ICAKPiAgLyoKPiAtICog UmV0dXJuIHRoZSBpbmRleCBvZiBhIHBsYW5lIGluIHRoZSBEREIgYW5kIHdtIHJlc3VsdCBhcnJh eXMuICBQcmltYXJ5Cj4gKyAqIFJldHVybiB0aGUgaW5kZXggb2YgYSBwbGFuZSBpbiB0aGUgd20g cmVzdWx0IGFycmF5cy4gIFByaW1hcnkKClRoaXMgY2hhbmdlIHNlZW1zIHVucmVsYXRlZCB0byB0 aGlzIHBhdGNoLiAgQWxzbywgdGhlIGNvZGUgdGhlIGNvbW1lbnQKYXBwbGllcyB0byBpcyBzdGls bCB1c2VkIG9uIFNLTC9CWFQgd2hlcmUgRERCIGlzIGltcG9ydGFudC4KCgo+ICAgKiBwbGFuZSBp cyBhbHdheXMgaW4gc2xvdCAwLCBjdXJzb3IgaXMgYWx3YXlzIGluIHNsb3QgSTkxNV9NQVhfUExB TkVTLTEsIGFuZAo+ICAgKiBvdGhlciB1bml2ZXJzYWwgcGxhbmVzIGFyZSBpbiBpbmRpY2VzIDEu Lm4uICBOb3RlIHRoYXQgdGhpcyBtYXkgbGVhdmUgdW51c2VkCj4gICAqIGluZGljZXMgYmV0d2Vl biB0aGUgdG9wICJzcHJpdGUiIHBsYW5lIGFuZCB0aGUgY3Vyc29yLgo+IEBAIC05ODMsMTQgKzk4 MywxNyBAQCBzdGF0aWMgdWludDE2X3Qgdmx2X2NvbXB1dGVfd21fbGV2ZWwoc3RydWN0IGludGVs X3BsYW5lICpwbGFuZSwKPiAgCXJldHVybiBtaW5fdChpbnQsIHdtLCBVU0hSVF9NQVgpOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgdm9pZCB2bHZfY29tcHV0ZV9maWZvKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjKQo+ICtzdGF0aWMgdm9pZCB2bHZfY29tcHV0ZV9maWZvKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjc3RhdGUsCj4gKwkJCQlzdHJ1Y3Qgdmx2X3dtX3N0YXRlICp3bV9zdGF0ZSkKPiAgewoK VGhlcmUncyBzb21lIGxvZ2ljIGNoYW5nZXMgaW4gdGhpcyBmdW5jdGlvbiAoYW5kIHNvbWUgb2Yg dGhlIHN1YnNlcXVlbnQKZnVuY3Rpb25zICkgdGhhdCBzZWVtIHVucmVsYXRlZCB0byB0aGUgbWln cmF0aW9uIG9mIGZpZm9fc2l6ZSBpbnRvCnZsdl93bV9zdGF0ZS4gIEknZCBicmVhayBvdXQgdGhv c2UgbG9naWMgY2hhbmdlcyBpbnRvIGEgc2VwYXJhdGUgcGF0Y2gKdGhhdCBoYXMgaXRzIG93biBj b21taXQgbWVzc2FnZSBkZXNjcmliaW5nIGhvdy93aHkgdGhlIGNvZGUgaXMgY2hhbmdpbmcuCgpF LmcuLCBjaGFuZ2luZyBzb21lIG9mIHRoZXNlIGZ1bmN0aW9ucyB0byBvcGVyYXRlIG9uIHN0YXRl IHJhdGhlciB0aGFuCnRoZSBiYXNlIENSVEMgb2JqZWN0cyBpcyBhbiBpbXBvcnRhbnQgc3RlcCBp biB0cmFuc2l0aW9uaW5nIHRvIGF0b21pYywKYnV0IHRoZSBjaGFuZ2VzIGFyZW4ndCB3aGF0IHRo aXMgcGF0Y2ggd2FzIGFkdmVydGlzaW5nIGluIHRoZSBjb21taXQKbWVzc2FnZSwgc28gdGhleSBr aW5kIG9mIHNsaXAgdW5kZXIgdGhlIHJhZGFyLgoKCk1hdHQKCgo+ICsJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNzdGF0ZS0+YmFzZS5jcnRjKTsKPiAgCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPiAtCXN0cnVjdCB2bHZfd21fc3RhdGUg KndtX3N0YXRlID0gJmNydGMtPndtX3N0YXRlOwo+ICAJc3RydWN0IGludGVsX3BsYW5lICpwbGFu ZTsKPiAgCXVuc2lnbmVkIGludCB0b3RhbF9yYXRlID0gMDsKPiAgCWNvbnN0IGludCBmaWZvX3Np emUgPSA1MTIgLSAxOwo+ICAJaW50IGZpZm9fZXh0cmEsIGZpZm9fbGVmdCA9IGZpZm9fc2l6ZTsK PiArCWludCByYXRlW0k5MTVfTUFYX1BMQU5FU10gPSB7fTsKPiArCWludCBpOwo+ICAKPiAgCWZv cl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBjcnRjLCBwbGFuZSkgewo+ICAJCXN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUgPQo+IEBAIC0xMDAxLDU4ICsxMDA0LDU1IEBAIHN0 YXRpYyB2b2lkIHZsdl9jb21wdXRlX2ZpZm8oc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAo+ ICAJCWlmIChzdGF0ZS0+dmlzaWJsZSkgewo+ICAJCQl3bV9zdGF0ZS0+bnVtX2FjdGl2ZV9wbGFu ZXMrKzsKPiAtCQkJdG90YWxfcmF0ZSArPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChzdGF0ZS0+YmFz ZS5mYi0+cGl4ZWxfZm9ybWF0LCAwKTsKPiArCQkJcmF0ZVt3bV9wbGFuZV9pZChwbGFuZSldID0K PiArCQkJZHJtX2Zvcm1hdF9wbGFuZV9jcHAoc3RhdGUtPmJhc2UuZmItPnBpeGVsX2Zvcm1hdCwg MCk7Cj4gKwkJCXRvdGFsX3JhdGUgKz0gcmF0ZVt3bV9wbGFuZV9pZChwbGFuZSldOwo+ICAJCX0K PiAgCX0KPiAgCj4gLQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0YywgcGxh bmUpIHsKPiAtCQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlID0KPiAtCQkJdG9faW50 ZWxfcGxhbmVfc3RhdGUocGxhbmUtPmJhc2Uuc3RhdGUpOwo+IC0JCXVuc2lnbmVkIGludCByYXRl Owo+IC0KPiAtCQlpZiAocGxhbmUtPmJhc2UudHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1Ip IHsKPiAtCQkJcGxhbmUtPndtLmZpZm9fc2l6ZSA9IDYzOwo+ICsJZm9yIChpID0gMDsgaSA8IEk5 MTVfTUFYX1BMQU5FUzsgaSsrKSB7Cj4gKwkJaWYgKGkgPT0gUExBTkVfQ1VSU09SKSB7Cj4gKwkJ CXdtX3N0YXRlLT5maWZvX3NpemVbaV0gPSA2MzsKPiAgCQkJY29udGludWU7Cj4gIAkJfQo+ICAK PiAtCQlpZiAoIXN0YXRlLT52aXNpYmxlKSB7Cj4gLQkJCXBsYW5lLT53bS5maWZvX3NpemUgPSAw Owo+ICsJCWlmICghcmF0ZVtpXSkgewo+ICsJCQl3bV9zdGF0ZS0+Zmlmb19zaXplW2ldID0gMDsK PiAgCQkJY29udGludWU7Cj4gIAkJfQo+ICAKPiAtCQlyYXRlID0gZHJtX2Zvcm1hdF9wbGFuZV9j cHAoc3RhdGUtPmJhc2UuZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4gLQkJcGxhbmUtPndtLmZpZm9f c2l6ZSA9IGZpZm9fc2l6ZSAqIHJhdGUgLyB0b3RhbF9yYXRlOwo+IC0JCWZpZm9fbGVmdCAtPSBw bGFuZS0+d20uZmlmb19zaXplOwo+ICsJCXdtX3N0YXRlLT5maWZvX3NpemVbaV0gPSBmaWZvX3Np emUgKiByYXRlW2ldIC8gdG90YWxfcmF0ZTsKPiArCQlmaWZvX2xlZnQgLT0gd21fc3RhdGUtPmZp Zm9fc2l6ZVtpXTsKPiAgCX0KPiAgCj4gIAlmaWZvX2V4dHJhID0gRElWX1JPVU5EX1VQKGZpZm9f bGVmdCwgd21fc3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzID86IDEpOwo+ICAKPiAgCS8qIHNwcmVh ZCB0aGUgcmVtYWluZGVyIGV2ZW5seSAqLwo+IC0JZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0 YyhkZXYsIGNydGMsIHBsYW5lKSB7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgSTkxNV9NQVhfUExBTkVT OyBpKyspIHsKPiAgCQlpbnQgcGxhbmVfZXh0cmE7Cj4gIAo+ICAJCWlmIChmaWZvX2xlZnQgPT0g MCkKPiAgCQkJYnJlYWs7Cj4gIAo+IC0JCWlmIChwbGFuZS0+YmFzZS50eXBlID09IERSTV9QTEFO RV9UWVBFX0NVUlNPUikKPiArCQlpZiAoaSA9PSBQTEFORV9DVVJTT1IpCj4gIAkJCWNvbnRpbnVl Owo+ICAKPiAgCQkvKiBnaXZlIGl0IGFsbCB0byB0aGUgZmlyc3QgcGxhbmUgaWYgbm9uZSBhcmUg YWN0aXZlICovCj4gLQkJaWYgKHBsYW5lLT53bS5maWZvX3NpemUgPT0gMCAmJgo+ICsJCWlmICgh d21fc3RhdGUtPmZpZm9fc2l6ZVtpXSAmJgo+ICAJCSAgICB3bV9zdGF0ZS0+bnVtX2FjdGl2ZV9w bGFuZXMpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQlwbGFuZV9leHRyYSA9IG1pbihmaWZvX2V4 dHJhLCBmaWZvX2xlZnQpOwo+IC0JCXBsYW5lLT53bS5maWZvX3NpemUgKz0gcGxhbmVfZXh0cmE7 Cj4gKwkJd21fc3RhdGUtPmZpZm9fc2l6ZVtpXSArPSBwbGFuZV9leHRyYTsKPiAgCQlmaWZvX2xl ZnQgLT0gcGxhbmVfZXh0cmE7Cj4gIAl9Cj4gIAo+ICAJV0FSTl9PTihmaWZvX2xlZnQgIT0gMCk7 Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIHZsdl9pbnZlcnRfd21zKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjKQo+ICtzdGF0aWMgdm9pZCB2bHZfaW52ZXJ0X3dtcyhzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKPiArCQkJc3RydWN0IHZsdl93bV9zdGF0ZSAqd21fc3RhdGUpCj4gIHsKPiAtCXN0cnVj dCB2bHZfd21fc3RhdGUgKndtX3N0YXRlID0gJmNydGMtPndtX3N0YXRlOwo+ICAJaW50IGxldmVs Owo+ICAKPiAgCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8IHdtX3N0YXRlLT5udW1fbGV2ZWxzOyBs ZXZlbCsrKSB7Cj4gQEAgLTEwNjQsMTkgKzEwNjQsMjQgQEAgc3RhdGljIHZvaWQgdmx2X2ludmVy dF93bXMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAkJd21fc3RhdGUtPnNyW2xldmVsXS5j dXJzb3IgPSA2MyAtIHdtX3N0YXRlLT5zcltsZXZlbF0uY3Vyc29yOwo+ICAKPiAgCQlmb3JfZWFj aF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0YywgcGxhbmUpIHsKPiArCQkJaW50IGkgPSB3 bV9wbGFuZV9pZChwbGFuZSk7Cj4gKwo+ICAJCQlzd2l0Y2ggKHBsYW5lLT5iYXNlLnR5cGUpIHsK PiAgCQkJCWludCBzcHJpdGU7Cj4gIAkJCWNhc2UgRFJNX1BMQU5FX1RZUEVfQ1VSU09SOgo+IC0J CQkJd21fc3RhdGUtPndtW2xldmVsXS5jdXJzb3IgPSBwbGFuZS0+d20uZmlmb19zaXplIC0KPiAr CQkJCXdtX3N0YXRlLT53bVtsZXZlbF0uY3Vyc29yID0KPiArCQkJCQl3bV9zdGF0ZS0+Zmlmb19z aXplW2ldIC0KPiAgCQkJCQl3bV9zdGF0ZS0+d21bbGV2ZWxdLmN1cnNvcjsKPiAgCQkJCWJyZWFr Owo+ICAJCQljYXNlIERSTV9QTEFORV9UWVBFX1BSSU1BUlk6Cj4gLQkJCQl3bV9zdGF0ZS0+d21b bGV2ZWxdLnByaW1hcnkgPSBwbGFuZS0+d20uZmlmb19zaXplIC0KPiArCQkJCXdtX3N0YXRlLT53 bVtsZXZlbF0ucHJpbWFyeSA9Cj4gKwkJCQkJd21fc3RhdGUtPmZpZm9fc2l6ZVtpXSAtCj4gIAkJ CQkJd21fc3RhdGUtPndtW2xldmVsXS5wcmltYXJ5Owo+ICAJCQkJYnJlYWs7Cj4gIAkJCWNhc2Ug RFJNX1BMQU5FX1RZUEVfT1ZFUkxBWToKPiAgCQkJCXNwcml0ZSA9IHBsYW5lLT5wbGFuZTsKPiAt CQkJCXdtX3N0YXRlLT53bVtsZXZlbF0uc3ByaXRlW3Nwcml0ZV0gPSBwbGFuZS0+d20uZmlmb19z aXplIC0KPiArCQkJCXdtX3N0YXRlLT53bVtsZXZlbF0uc3ByaXRlW3Nwcml0ZV0gPQo+ICsJCQkJ CXdtX3N0YXRlLT5maWZvX3NpemVbaV0gLQo+ICAJCQkJCXdtX3N0YXRlLT53bVtsZXZlbF0uc3By aXRlW3Nwcml0ZV07Cj4gIAkJCQlicmVhazsKPiAgCQkJfQo+IEBAIC0xMDg0LDggKzEwODksOSBA QCBzdGF0aWMgdm9pZCB2bHZfaW52ZXJ0X3dtcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAg CX0KPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgdmx2X2NvbXB1dGVfd20oc3RydWN0IGludGVsX2Ny dGMgKmNydGMpCj4gK3N0YXRpYyBpbnQgdmx2X2NvbXB1dGVfd20oc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNzdGF0ZSkKPiAgewo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNzdGF0ZS0+YmFzZS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjLT5iYXNlLmRldjsKPiAgCXN0cnVjdCB2bHZfd21fc3RhdGUgKndtX3N0YXRlID0gJmNydGMt PndtX3N0YXRlOwo+ICAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKPiBAQCAtMTA5OSw3ICsx MTA1LDcgQEAgc3RhdGljIHZvaWQgdmx2X2NvbXB1dGVfd20oc3RydWN0IGludGVsX2NydGMgKmNy dGMpCj4gIAo+ICAJd21fc3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzID0gMDsKPiAgCj4gLQl2bHZf Y29tcHV0ZV9maWZvKGNydGMpOwo+ICsJdmx2X2NvbXB1dGVfZmlmbyhjc3RhdGUsIHdtX3N0YXRl KTsKPiAgCj4gIAlpZiAod21fc3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzICE9IDEpCj4gIAkJd21f c3RhdGUtPmN4c3IgPSBmYWxzZTsKPiBAQCAtMTEyMywxMSArMTEyOSwxNiBAQCBzdGF0aWMgdm9p ZCB2bHZfY29tcHV0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCQkJaW50IHdtID0g dmx2X2NvbXB1dGVfd21fbGV2ZWwocGxhbmUsIGNydGMsIHN0YXRlLCBsZXZlbCk7Cj4gIAkJCWlu dCBtYXhfd20gPSBwbGFuZS0+YmFzZS50eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNPUiA/IDYz IDogNTExOwo+ICAKPiAtCQkJLyogaGFjayAqLwo+IC0JCQlpZiAoV0FSTl9PTihsZXZlbCA9PSAw ICYmIHdtID4gbWF4X3dtKSkKPiAtCQkJCXdtID0gbWF4X3dtOwo+ICsJCQlpZiAobGV2ZWwgPT0g MCAmJiB3bSA+IG1heF93bSkgewo+ICsJCQkJRFJNX0RFQlVHX0tNUygiUmVxdWVzdGVkIGRpc3Bs YXkgY29uZmlndXJhdGlvbiAiCj4gKwkJCQkiZXhjZWVkcyBzeXN0ZW0gd2F0ZXJtYXJrIGxpbWl0 YXRpb25zXG4iKTsKPiArCQkJCURSTV9ERUJVR19LTVMoIlBsYW5lICVkLiVkOiBibG9ja3MgcmVx dWlyZWQgPSAldS8ldVxuIiwKPiArCQkJCSAgICAgIHRvX2ludGVsX2NydGMoY3N0YXRlLT5iYXNl LmNydGMpLT5waXBlLAo+ICsJCQkJICAgICAgZHJtX3BsYW5lX2luZGV4KCZwbGFuZS0+YmFzZSks IHdtLCBtYXhfd20pOwo+ICsJCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJCX0KPiAgCj4gLQkJCWlm ICh3bSA+IHBsYW5lLT53bS5maWZvX3NpemUpCj4gKwkJCWlmICh3bSA+IHdtX3N0YXRlLT5maWZv X3NpemVbd21fcGxhbmVfaWQocGxhbmUpXSkKPiAgCQkJCWJyZWFrOwo+ICAKPiAgCQkJc3dpdGNo IChwbGFuZS0+YmFzZS50eXBlKSB7Cj4gQEAgLTExODAsNyArMTE5MSw5IEBAIHN0YXRpYyB2b2lk IHZsdl9jb21wdXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICAJCW1lbXNldCgmd21f c3RhdGUtPnNyW2xldmVsXSwgMCwgc2l6ZW9mKHdtX3N0YXRlLT5zcltsZXZlbF0pKTsKPiAgCX0K PiAgCj4gLQl2bHZfaW52ZXJ0X3dtcyhjcnRjKTsKPiArCXZsdl9pbnZlcnRfd21zKGNydGMsIHdt X3N0YXRlKTsKPiArCj4gKwlyZXR1cm4gMDsKPiAgfQo+ICAKPiAgI2RlZmluZSBWTFZfRklGTyhw bGFuZSwgdmFsdWUpIFwKPiBAQCAtMTE5MCwyNCArMTIwMywxOCBAQCBzdGF0aWMgdm9pZCB2bHZf cGlwZV9zZXRfZmlmb19zaXplKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfcGxhbmUg KnBsYW5lOwo+ICAJaW50IHNwcml0ZTBfc3RhcnQgPSAwLCBzcHJpdGUxX3N0YXJ0ID0gMCwgZmlm b19zaXplID0gMDsKPiArCWNvbnN0IHN0cnVjdCB2bHZfd21fc3RhdGUgKndtX3N0YXRlID0gJmNy dGMtPndtX3N0YXRlOwo+ICAKPiAtCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBj cnRjLCBwbGFuZSkgewo+IC0JCWlmIChwbGFuZS0+YmFzZS50eXBlID09IERSTV9QTEFORV9UWVBF X0NVUlNPUikgewo+IC0JCQlXQVJOX09OKHBsYW5lLT53bS5maWZvX3NpemUgIT0gNjMpOwo+IC0J CQljb250aW51ZTsKPiAtCQl9Cj4gIAo+IC0JCWlmIChwbGFuZS0+YmFzZS50eXBlID09IERSTV9Q TEFORV9UWVBFX1BSSU1BUlkpCj4gLQkJCXNwcml0ZTBfc3RhcnQgPSBwbGFuZS0+d20uZmlmb19z aXplOwo+IC0JCWVsc2UgaWYgKHBsYW5lLT5wbGFuZSA9PSAwKQo+IC0JCQlzcHJpdGUxX3N0YXJ0 ID0gc3ByaXRlMF9zdGFydCArIHBsYW5lLT53bS5maWZvX3NpemU7Cj4gLQkJZWxzZQo+IC0JCQlm aWZvX3NpemUgPSBzcHJpdGUxX3N0YXJ0ICsgcGxhbmUtPndtLmZpZm9fc2l6ZTsKPiAtCX0KPiAr CVdBUk5fT04od21fc3RhdGUtPmZpZm9fc2l6ZVtQTEFORV9DVVJTT1JdICE9IDYzKTsKPiArCXNw cml0ZTBfc3RhcnQgPSB3bV9zdGF0ZS0+Zmlmb19zaXplWzBdOwo+ICsJc3ByaXRlMV9zdGFydCA9 IHNwcml0ZTBfc3RhcnQgKyB3bV9zdGF0ZS0+Zmlmb19zaXplWzFdOwo+ICsJZmlmb19zaXplID0g c3ByaXRlMV9zdGFydCArIHdtX3N0YXRlLT5maWZvX3NpemVbMl07Cj4gIAo+IC0JV0FSTl9PTihm aWZvX3NpemUgIT0gNTEyIC0gMSk7Cj4gKwlXQVJOKGZpZm9fc2l6ZSAhPSA1MTIgLSAxLCAiUGlw ZSAlYyBGSUZPIHNwbGl0ICVkIC8gJWQgLyAlZFxuIiwKPiArCQkgICAgICBwaXBlX25hbWUoY3J0 Yy0+cGlwZSksIHNwcml0ZTBfc3RhcnQsCj4gKwkJICAgICAgc3ByaXRlMV9zdGFydCwgZmlmb19z aXplKTsKPiAgCj4gIAlEUk1fREVCVUdfS01TKCJQaXBlICVjIEZJRk8gc3BsaXQgJWQgLyAlZCAv ICVkXG4iLAo+ICAJCSAgICAgIHBpcGVfbmFtZShjcnRjLT5waXBlKSwgc3ByaXRlMF9zdGFydCwK PiBAQCAtMTMyNyw3ICsxMzM0LDcgQEAgc3RhdGljIHZvaWQgdmx2X3VwZGF0ZV93bShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCj4gIAllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4g IAlzdHJ1Y3Qgdmx2X3dtX3ZhbHVlcyB3bSA9IHt9Owo+ICAKPiAtCXZsdl9jb21wdXRlX3dtKGlu dGVsX2NydGMpOwo+ICsJdmx2X2NvbXB1dGVfd20oaW50ZWxfY3J0Yy0+Y29uZmlnKTsKPiAgCXZs dl9tZXJnZV93bShkZXYsICZ3bSk7Cj4gIAo+ICAJaWYgKG1lbWNtcCgmZGV2X3ByaXYtPndtLnZs diwgJndtLCBzaXplb2Yod20pKSA9PSAwKSB7Cj4gQEAgLTQyMTYsNiArNDIyMyw3IEBAIHZvaWQg dmx2X3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIAlzdHJ1Y3Qg dmx2X3dtX3ZhbHVlcyAqd20gPSAmZGV2X3ByaXYtPndtLnZsdjsKPiArCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjOwo+ICAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKPiAgCWVudW0gcGlwZSBw aXBlOwo+ICAJdTMyIHZhbDsKPiBAQCAtNDIyMywxNyArNDIzMSwyMCBAQCB2b2lkIHZsdl93bV9n ZXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCXZsdl9yZWFkX3dtX3ZhbHVl cyhkZXZfcHJpdiwgd20pOwo+ICAKPiAgCWZvcl9lYWNoX2ludGVsX3BsYW5lKGRldiwgcGxhbmUp IHsKPiArCQlzdHJ1Y3Qgdmx2X3dtX3N0YXRlICp3bV9zdGF0ZTsKPiArCQlpbnQgaSA9IHdtX3Bs YW5lX2lkKHBsYW5lKTsKPiArCj4gKwkJY3J0YyA9IHRvX2ludGVsX2NydGMoaW50ZWxfZ2V0X2Ny dGNfZm9yX3BpcGUoZGV2LCBwbGFuZS0+cGlwZSkpOwo+ICsJCXdtX3N0YXRlID0gJmNydGMtPndt X3N0YXRlOwo+ICsKPiAgCQlzd2l0Y2ggKHBsYW5lLT5iYXNlLnR5cGUpIHsKPiAtCQkJaW50IHNw cml0ZTsKPiAgCQljYXNlIERSTV9QTEFORV9UWVBFX0NVUlNPUjoKPiAtCQkJcGxhbmUtPndtLmZp Zm9fc2l6ZSA9IDYzOwo+ICsJCQl3bV9zdGF0ZS0+Zmlmb19zaXplW2ldID0gNjM7Cj4gIAkJCWJy ZWFrOwo+ICAJCWNhc2UgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWToKPiAtCQkJcGxhbmUtPndtLmZp Zm9fc2l6ZSA9IHZsdl9nZXRfZmlmb19zaXplKGRldiwgcGxhbmUtPnBpcGUsIDApOwo+IC0JCQli cmVhazsKPiAgCQljYXNlIERSTV9QTEFORV9UWVBFX09WRVJMQVk6Cj4gLQkJCXNwcml0ZSA9IHBs YW5lLT5wbGFuZTsKPiAtCQkJcGxhbmUtPndtLmZpZm9fc2l6ZSA9IHZsdl9nZXRfZmlmb19zaXpl KGRldiwgcGxhbmUtPnBpcGUsIHNwcml0ZSArIDEpOwo+ICsJCQl3bV9zdGF0ZS0+Zmlmb19zaXpl W2ldID0KPiArCQkJCXZsdl9nZXRfZmlmb19zaXplKGRldiwgcGxhbmUtPnBpcGUsIGkpOwo+ICAJ CQlicmVhazsKPiAgCQl9Cj4gIAl9Cj4gLS0gCj4gMS44LjAuMQo+IAoKLS0gCk1hdHQgUm9wZXIK R3JhcGhpY3MgU29mdHdhcmUgRW5naW5lZXIKSW9URyBQbGF0Zm9ybSBFbmFibGluZyAmIERldmVs b3BtZW50CkludGVsIENvcnBvcmF0aW9uCig5MTYpIDM1Ni0yNzk1Cl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=