From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 12/18] drm/i915: Reorganize intel_rotation_info Date: Mon, 25 Jan 2016 18:38:57 +0100 Message-ID: <20160125173857.GG11240@phenom.ffwll.local> References: <1453316739-13296-1-git-send-email-ville.syrjala@linux.intel.com> <1453316739-13296-13-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f54.google.com (mail-wm0-f54.google.com [74.125.82.54]) by gabe.freedesktop.org (Postfix) with ESMTPS id E59D76E4E4 for ; Mon, 25 Jan 2016 09:38:49 -0800 (PST) Received: by mail-wm0-f54.google.com with SMTP id 123so75348840wmz.0 for ; Mon, 25 Jan 2016 09:38:49 -0800 (PST) Content-Disposition: inline In-Reply-To: <1453316739-13296-13-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKYW4gMjAsIDIwMTYgYXQgMDk6MDU6MzNQTSArMDIwMCwgdmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiAKPiBUaHJvdyBvdXQgYSBidW5jaCBvZiB1bm5lY2Vzc2Fy eSBzdHVmZiBmcm9tIHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvLAo+IGFuZCBwdWxsIG1vc3Qg b2YgdGhlIHJlbWFpbmluZyBzdHVmZiB0byBsaXZlIHVuZGVyIGFuIGFycmF5IG9mCj4gcGVyLWNv bG9yIHBsYW5lIHN1Yi1zdHJ1Y3R1cmVzLgo+IAo+IFdoYXQgc3RpbGwgcmVtYWlucyBvdXRzaWRl IHRoZSBzdWItc3RydWN0dXJlIHdpbGwgYmUgcmVvcmdyYW5pemVkIGxhdGVyCj4gYXMgd2VsbCwg YnV0IHRoYXQgcmVxdWlyZXMgbW9yZSB3b3JrIGVsc2V3aGVyZSBzbyBsZWF2ZSBpdCBiZSBmb3Ig bm93Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5jICB8IDM1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oICB8IDExICsrKystLS0tLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDI1ICsrKysrKysrKysrKysrKy0tLS0tLS0t LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDEgKwo+ICA0IGZp bGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXggYjNkOGUyYjA5NDhjLi5mOTU0NjhjZDA0 NzAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IEBAIC0zMzY3LDcgKzMz NjcsNyBAQCBzdGF0aWMgc3RydWN0IHNnX3RhYmxlICoKPiAgaW50ZWxfcm90YXRlX2ZiX29ial9w YWdlcyhzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyAqcm90X2luZm8sCj4gIAkJCSAgc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiAgewo+IC0JdW5zaWduZWQgaW50IHNpemVfcGFn ZXMgPSByb3RfaW5mby0+c2l6ZSA+PiBQQUdFX1NISUZUOwo+ICsJdW5zaWduZWQgaW50IHNpemVf cGFnZXMgPSByb3RfaW5mby0+cGxhbmVbMF0ud2lkdGggKiByb3RfaW5mby0+cGxhbmVbMF0uaGVp Z2h0Owo+ICAJdW5zaWduZWQgaW50IHNpemVfcGFnZXNfdXY7Cj4gIAlzdHJ1Y3Qgc2dfcGFnZV9p dGVyIHNnX2l0ZXI7Cj4gIAl1bnNpZ25lZCBsb25nIGk7Cj4gQEAgLTMzODUsNyArMzM4NSw3IEBA IGludGVsX3JvdGF0ZV9mYl9vYmpfcGFnZXMoc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gKnJv dF9pbmZvLAo+ICAKPiAgCS8qIEFjY291bnQgZm9yIFVWIHBsYW5lIHdpdGggTlYxMi4gKi8KPiAg CWlmIChyb3RfaW5mby0+cGl4ZWxfZm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMikKPiAtCQlzaXpl X3BhZ2VzX3V2ID0gcm90X2luZm8tPnNpemVfdXYgPj4gUEFHRV9TSElGVDsKPiArCQlzaXplX3Bh Z2VzX3V2ID0gcm90X2luZm8tPnBsYW5lWzFdLndpZHRoICogcm90X2luZm8tPnBsYW5lWzFdLmhl aWdodDsKPiAgCWVsc2UKPiAgCQlzaXplX3BhZ2VzX3V2ID0gMDsKPiAgCj4gQEAgLTM0MDcsOSAr MzQwNyw5IEBAIGludGVsX3JvdGF0ZV9mYl9vYmpfcGFnZXMoc3RydWN0IGludGVsX3JvdGF0aW9u X2luZm8gKnJvdF9pbmZvLAo+ICAKPiAgCS8qIFJvdGF0ZSB0aGUgcGFnZXMuICovCj4gIAlzZyA9 IHJvdGF0ZV9wYWdlcyhwYWdlX2FkZHJfbGlzdCwgMCwKPiAtCQkgICAgIHJvdF9pbmZvLT53aWR0 aF9wYWdlcywgcm90X2luZm8tPmhlaWdodF9wYWdlcywKPiAtCQkgICAgIHJvdF9pbmZvLT53aWR0 aF9wYWdlcywKPiAtCQkgICAgIHN0LCBOVUxMKTsKPiArCQkJICByb3RfaW5mby0+cGxhbmVbMF0u d2lkdGgsIHJvdF9pbmZvLT5wbGFuZVswXS5oZWlnaHQsCj4gKwkJCSAgcm90X2luZm8tPnBsYW5l WzBdLndpZHRoLAo+ICsJCQkgIHN0LCBOVUxMKTsKPiAgCj4gIAkvKiBBcHBlbmQgdGhlIFVWIHBs YW5lIGlmIE5WMTIuICovCj4gIAlpZiAocm90X2luZm8tPnBpeGVsX2Zvcm1hdCA9PSBEUk1fRk9S TUFUX05WMTIpIHsKPiBAQCAtMzQyMSwxOCArMzQyMSwxNSBAQCBpbnRlbF9yb3RhdGVfZmJfb2Jq X3BhZ2VzKHN0cnVjdCBpbnRlbF9yb3RhdGlvbl9pbmZvICpyb3RfaW5mbywKPiAgCj4gIAkJcm90 X2luZm8tPnV2X3N0YXJ0X3BhZ2UgPSB1dl9zdGFydF9wYWdlOwo+ICAKPiAtCQlyb3RhdGVfcGFn ZXMocGFnZV9hZGRyX2xpc3QsIHV2X3N0YXJ0X3BhZ2UsCj4gLQkJCSAgICAgcm90X2luZm8tPndp ZHRoX3BhZ2VzX3V2LAo+IC0JCQkgICAgIHJvdF9pbmZvLT5oZWlnaHRfcGFnZXNfdXYsCj4gLQkJ CSAgICAgcm90X2luZm8tPndpZHRoX3BhZ2VzX3V2LAo+ICsJCXJvdGF0ZV9wYWdlcyhwYWdlX2Fk ZHJfbGlzdCwgcm90X2luZm8tPnV2X3N0YXJ0X3BhZ2UsCj4gKwkJCSAgICAgcm90X2luZm8tPnBs YW5lWzFdLndpZHRoLCByb3RfaW5mby0+cGxhbmVbMV0uaGVpZ2h0LAo+ICsJCQkgICAgIHJvdF9p bmZvLT5wbGFuZVsxXS53aWR0aCwKPiAgCQkJICAgICBzdCwgc2cpOwo+ICAJfQo+ICAKPiAtCURS TV9ERUJVR19LTVMoCj4gLQkJICAgICAgIkNyZWF0ZWQgcm90YXRlZCBwYWdlIG1hcHBpbmcgZm9y IG9iamVjdCBzaXplICV6dSAocGl0Y2g9JXUsIGhlaWdodD0ldSwgcGl4ZWxfZm9ybWF0PTB4JXgs ICV1eCV1IHRpbGVzLCAldSBwYWdlcyAoJXUgcGxhbmUgMCkpLlxuIiwKPiAtCQkgICAgICBvYmot PmJhc2Uuc2l6ZSwgcm90X2luZm8tPnBpdGNoLCByb3RfaW5mby0+aGVpZ2h0LAo+IC0JCSAgICAg IHJvdF9pbmZvLT5waXhlbF9mb3JtYXQsIHJvdF9pbmZvLT53aWR0aF9wYWdlcywKPiAtCQkgICAg ICByb3RfaW5mby0+aGVpZ2h0X3BhZ2VzLCBzaXplX3BhZ2VzICsgc2l6ZV9wYWdlc191diwKPiAr CURSTV9ERUJVR19LTVMoIkNyZWF0ZWQgcm90YXRlZCBwYWdlIG1hcHBpbmcgZm9yIG9iamVjdCBz aXplICV6dSAoJXV4JXUgdGlsZXMsICV1IHBhZ2VzICgldSBwbGFuZSAwKSkuXG4iLAo+ICsJCSAg ICAgIG9iai0+YmFzZS5zaXplLCByb3RfaW5mby0+cGxhbmVbMF0ud2lkdGgsCj4gKwkJICAgICAg cm90X2luZm8tPnBsYW5lWzBdLmhlaWdodCwgc2l6ZV9wYWdlcyArIHNpemVfcGFnZXNfdXYsCj4g IAkJICAgICAgc2l6ZV9wYWdlcyk7Cj4gIAo+ICAJZHJtX2ZyZWVfbGFyZ2UocGFnZV9hZGRyX2xp c3QpOwo+IEBAIC0zNDQ0LDExICszNDQxLDkgQEAgZXJyX3NnX2FsbG9jOgo+ICBlcnJfc3RfYWxs b2M6Cj4gIAlkcm1fZnJlZV9sYXJnZShwYWdlX2FkZHJfbGlzdCk7Cj4gIAo+IC0JRFJNX0RFQlVH X0tNUygKPiAtCQkgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSByb3RhdGVkIG1hcHBpbmcgZm9yIG9i amVjdCBzaXplICV6dSEgKCVkKSAocGl0Y2g9JXUsIGhlaWdodD0ldSwgcGl4ZWxfZm9ybWF0PTB4 JXgsICV1eCV1IHRpbGVzLCAldSBwYWdlcyAoJXUgcGxhbmUgMCkpXG4iLAo+IC0JCSAgICAgIG9i ai0+YmFzZS5zaXplLCByZXQsIHJvdF9pbmZvLT5waXRjaCwgcm90X2luZm8tPmhlaWdodCwKPiAt CQkgICAgICByb3RfaW5mby0+cGl4ZWxfZm9ybWF0LCByb3RfaW5mby0+d2lkdGhfcGFnZXMsCj4g LQkJICAgICAgcm90X2luZm8tPmhlaWdodF9wYWdlcywgc2l6ZV9wYWdlcyArIHNpemVfcGFnZXNf dXYsCj4gKwlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gY3JlYXRlIHJvdGF0ZWQgbWFwcGluZyBm b3Igb2JqZWN0IHNpemUgJXp1ISAoJWQpICgldXgldSB0aWxlcywgJXUgcGFnZXMgKCV1IHBsYW5l IDApKVxuIiwKPiArCQkgICAgICBvYmotPmJhc2Uuc2l6ZSwgcmV0LCByb3RfaW5mby0+cGxhbmVb MF0ud2lkdGgsCj4gKwkJICAgICAgcm90X2luZm8tPnBsYW5lWzBdLmhlaWdodCwgc2l6ZV9wYWdl cyArIHNpemVfcGFnZXNfdXYsCj4gIAkJICAgICAgc2l6ZV9wYWdlcyk7Cj4gIAlyZXR1cm4gRVJS X1BUUihyZXQpOwo+ICB9Cj4gQEAgLTM2MDAsNyArMzU5NSw3IEBAIGk5MTVfZ2d0dF92aWV3X3Np emUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCWlmICh2aWV3LT50eXBlID09 IEk5MTVfR0dUVF9WSUVXX05PUk1BTCkgewo+ICAJCXJldHVybiBvYmotPmJhc2Uuc2l6ZTsKPiAg CX0gZWxzZSBpZiAodmlldy0+dHlwZSA9PSBJOTE1X0dHVFRfVklFV19ST1RBVEVEKSB7Cj4gLQkJ cmV0dXJuIHZpZXctPnBhcmFtcy5yb3RhdGVkLnNpemU7Cj4gKwkJcmV0dXJuIGludGVsX3JvdGF0 aW9uX2luZm9fc2l6ZSgmdmlldy0+cGFyYW1zLnJvdGF0ZWQpIDw8IFBBR0VfU0hJRlQ7CgpJc24n dCB0aGlzIGEgaGlkZGVuIGJ1Z2ZpeD8gYmVmb3JlIHRoaXMgd2FzIHNpemUsIG5vdyBpdCdzIHNp emUrc2l6ZV91di4KCklmIHlvdSBhZ3JlZSB0aGVuIHBsZWFzZSBhZGQgYSBibHVyYiB0byB0aGUg Y29tbWl0IG1lc3NhZ2UgKG9yIGJldHRlciwKc3BsaXQgdGhpcyBvdXQgaW50byBhIHRpbnkgcHJl cCBwYXRjaCkuIE90aGVyd2lzZSBkaWRuJ3Qgc3BvdCBhbnl0aGluZywKd2l0aCBlaXRoZXIgYXBw cm9hY2gKClJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNo PgoKPiAgCX0gZWxzZSBpZiAodmlldy0+dHlwZSA9PSBJOTE1X0dHVFRfVklFV19QQVJUSUFMKSB7 Cj4gIAkJcmV0dXJuIHZpZXctPnBhcmFtcy5wYXJ0aWFsLnNpemUgPDwgUEFHRV9TSElGVDsKPiAg CX0gZWxzZSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBpbmRleCBmNTIwYzkw ZTUzNzcuLjRiOGEzNzhiOWQzZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5o Cj4gQEAgLTEzNSwxNiArMTM1LDEzIEBAIGVudW0gaTkxNV9nZ3R0X3ZpZXdfdHlwZSB7Cj4gIH07 Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyB7Cj4gLQl1bnNpZ25lZCBpbnQgaGVp Z2h0Owo+IC0JdW5zaWduZWQgaW50IHBpdGNoOwo+ICAJdW5zaWduZWQgaW50IHV2X29mZnNldDsK PiAgCXVpbnQzMl90IHBpeGVsX2Zvcm1hdDsKPiAtCXVpbnQ2NF90IGZiX21vZGlmaWVyOwo+IC0J dW5zaWduZWQgaW50IHdpZHRoX3BhZ2VzLCBoZWlnaHRfcGFnZXM7Cj4gLQl1aW50NjRfdCBzaXpl Owo+IC0JdW5zaWduZWQgaW50IHdpZHRoX3BhZ2VzX3V2LCBoZWlnaHRfcGFnZXNfdXY7Cj4gLQl1 aW50NjRfdCBzaXplX3V2Owo+ICAJdW5zaWduZWQgaW50IHV2X3N0YXJ0X3BhZ2U7Cj4gKwlzdHJ1 Y3Qgewo+ICsJCS8qIHRpbGVzICovCj4gKwkJdW5zaWduZWQgaW50IHdpZHRoLCBoZWlnaHQ7Cj4g Kwl9IHBsYW5lWzJdOwo+ICB9Owo+ICAKPiAgc3RydWN0IGk5MTVfZ2d0dF92aWV3IHsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggMDg0YzhhZTM2NjhmLi44OTlmZmIx YTliMTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTIyOTEs NiArMjI5MSwxNyBAQCBpbnRlbF9mYl9hbGlnbl9oZWlnaHQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdW5zaWduZWQgaW50IGhlaWdodCwKPiAgCXJldHVybiBBTElHTihoZWlnaHQsIHRpbGVfaGVp Z2h0KTsKPiAgfQo+ICAKPiArdW5zaWduZWQgaW50IGludGVsX3JvdGF0aW9uX2luZm9fc2l6ZShj b25zdCBzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5mbyAqcm90X2luZm8pCj4gK3sKPiArCXVuc2ln bmVkIGludCBzaXplID0gMDsKPiArCWludCBpOwo+ICsKPiArCWZvciAoaSA9IDAgOyBpIDwgQVJS QVlfU0laRShyb3RfaW5mby0+cGxhbmUpOyBpKyspCj4gKwkJc2l6ZSArPSByb3RfaW5mby0+cGxh bmVbaV0ud2lkdGggKiByb3RfaW5mby0+cGxhbmVbaV0uaGVpZ2h0Owo+ICsKPiArCXJldHVybiBz aXplOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZAo+ICBpbnRlbF9maWxsX2ZiX2dndHRfdmlldyhz dHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcsCj4gIAkJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiLAo+IEBAIC0yMzA3LDExICsyMzE4LDcgQEAgaW50ZWxfZmlsbF9mYl9nZ3R0X3Zp ZXcoc3RydWN0IGk5MTVfZ2d0dF92aWV3ICp2aWV3LAo+ICAKPiAgCSp2aWV3ID0gaTkxNV9nZ3R0 X3ZpZXdfcm90YXRlZDsKPiAgCj4gLQlpbmZvLT5oZWlnaHQgPSBmYi0+aGVpZ2h0Owo+IC0JaW5m by0+cGl4ZWxfZm9ybWF0ID0gZmItPnBpeGVsX2Zvcm1hdDsKPiAtCWluZm8tPnBpdGNoID0gZmIt PnBpdGNoZXNbMF07Cj4gIAlpbmZvLT51dl9vZmZzZXQgPSBmYi0+b2Zmc2V0c1sxXTsKPiAtCWlu Zm8tPmZiX21vZGlmaWVyID0gZmItPm1vZGlmaWVyWzBdOwo+ICAKPiAgCXRpbGVfc2l6ZSA9IGlu dGVsX3RpbGVfc2l6ZShkZXZfcHJpdik7Cj4gIAo+IEBAIC0yMzE5LDE4ICsyMzI2LDE2IEBAIGlu dGVsX2ZpbGxfZmJfZ2d0dF92aWV3KHN0cnVjdCBpOTE1X2dndHRfdmlldyAqdmlldywKPiAgCWlu dGVsX3RpbGVfZGltcyhkZXZfcHJpdiwgJnRpbGVfd2lkdGgsICZ0aWxlX2hlaWdodCwKPiAgCQkJ ZmItPm1vZGlmaWVyWzBdLCBjcHApOwo+ICAKPiAtCWluZm8tPndpZHRoX3BhZ2VzID0gRElWX1JP VU5EX1VQKGZiLT5waXRjaGVzWzBdLCB0aWxlX3dpZHRoICogY3BwKTsKPiAtCWluZm8tPmhlaWdo dF9wYWdlcyA9IERJVl9ST1VORF9VUChmYi0+aGVpZ2h0LCB0aWxlX2hlaWdodCk7Cj4gLQlpbmZv LT5zaXplID0gaW5mby0+d2lkdGhfcGFnZXMgKiBpbmZvLT5oZWlnaHRfcGFnZXMgKiB0aWxlX3Np emU7Cj4gKwlpbmZvLT5wbGFuZVswXS53aWR0aCA9IERJVl9ST1VORF9VUChmYi0+cGl0Y2hlc1sw XSwgdGlsZV93aWR0aCAqIGNwcCk7Cj4gKwlpbmZvLT5wbGFuZVswXS5oZWlnaHQgPSBESVZfUk9V TkRfVVAoZmItPmhlaWdodCwgdGlsZV9oZWlnaHQpOwo+ICAKPiAgCWlmIChpbmZvLT5waXhlbF9m b3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEyKSB7Cj4gIAkJY3BwID0gZHJtX2Zvcm1hdF9wbGFuZV9j cHAoZmItPnBpeGVsX2Zvcm1hdCwgMSk7Cj4gIAkJaW50ZWxfdGlsZV9kaW1zKGRldl9wcml2LCAm dGlsZV93aWR0aCwgJnRpbGVfaGVpZ2h0LAo+ICAJCQkJZmItPm1vZGlmaWVyWzFdLCBjcHApOwo+ ICAKPiAtCQlpbmZvLT53aWR0aF9wYWdlc191diA9IERJVl9ST1VORF9VUChmYi0+cGl0Y2hlc1sx XSwgdGlsZV93aWR0aCAqIGNwcCk7Cj4gLQkJaW5mby0+aGVpZ2h0X3BhZ2VzX3V2ID0gRElWX1JP VU5EX1VQKGZiLT5oZWlnaHQgLyAyLCB0aWxlX2hlaWdodCk7Cj4gLQkJaW5mby0+c2l6ZV91diA9 IGluZm8tPndpZHRoX3BhZ2VzX3V2ICogaW5mby0+aGVpZ2h0X3BhZ2VzX3V2ICogdGlsZV9zaXpl Owo+ICsJCWluZm8tPnBsYW5lWzFdLndpZHRoID0gRElWX1JPVU5EX1VQKGZiLT5waXRjaGVzWzFd LCB0aWxlX3dpZHRoICogY3BwKTsKPiArCQlpbmZvLT5wbGFuZVsxXS5oZWlnaHQgPSBESVZfUk9V TkRfVVAoZmItPmhlaWdodCAvIDIsIHRpbGVfaGVpZ2h0KTsKPiAgCX0KPiAgfQo+ICAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGI5ZWY5ZDVmMTA0MS4uZjI1MWYyNTNjYzk5IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMTA1OSw2ICsxMDU5LDcgQEAgdm9p ZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4gIAo+ICAvKiBpbnRlbF9kaXNwbGF5LmMgKi8KPiAgZXh0ZXJuIGNvbnN0IHN0 cnVjdCBkcm1fcGxhbmVfZnVuY3MgaW50ZWxfcGxhbmVfZnVuY3M7Cj4gK3Vuc2lnbmVkIGludCBp bnRlbF9yb3RhdGlvbl9pbmZvX3NpemUoY29uc3Qgc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8g KnJvdF9pbmZvKTsKPiAgYm9vbCBpbnRlbF9oYXNfcGVuZGluZ19mYl91bnBpbihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKPiAgaW50IGludGVsX3BjaF9yYXdjbGsoc3RydWN0IGRybV9kZXZpY2Ug KmRldik7Cj4gIGludCBpbnRlbF9ocmF3Y2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IC0t IAo+IDIuNC4xMAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29y cG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK