From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sinclair Yeh Subject: Re: [PATCH] drm/vmwgfx: Switch to mode_cmd2 Date: Thu, 1 Dec 2016 15:09:40 -0800 Message-ID: <20161201230939.GB8891@vmware.com> References: <20161130170004.29477-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0071.outbound.protection.outlook.com [104.47.40.71]) by gabe.freedesktop.org (Postfix) with ESMTPS id 393946E8A3 for ; Fri, 2 Dec 2016 00:44:08 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20161130170004.29477-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Thomas Hellstrom , DRI Development , linux-graphics-maintainer@vmware.com, Laurent Pinchart , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T25lIGRlZmVjdCBiZWxvdyBvdGhlcndpc2U6ICBSZXZpZXdlZC1ieTogU2luY2xhaXIgWWVoIDxz eWVoQHZtd2FyZS5jb20+CgpPbiBXZWQsIE5vdiAzMCwgMjAxNiBhdCAwNjowMDowNFBNICswMTAw LCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+IFN1cnByaXNpbmdseSBmZXcgY2hhbmdlcyBuZWVkZWQg dG8gbWFrZSBpdCBoYXBwZW4uIENvbXBpbGUtdGVzdGVkCj4gb25seS4gVGhlIGlkZWEgaXMgdGhh dCB0aGlzIHJlcGxhY2VzIHRoZSAyIHBhdGNoZXMgZnJvbSBWaWxsZSdzIGJpZwo+IGZiLT5mb3Jt YXQgcGF0Y2ggc2VyaWVzIGFzIGEgcHJlcCBwYXRjaC4gT25seSBpbXBhY3QgdG8gbGF0ZXIgcGF0 Y2hlcwo+IHNob3VsZCBiZSB0aGUgb25lIGluc3RhY2UgYWRkZWQgaW4gdGhpcyBwYXRjaCB3aGVy ZSB3ZSBsb29rIGF0Cj4gZmItPnBpeGVsX2Zvcm1hdCAoaW5zdGVhZCBvZiBmYi0+YnBwIGFuZCBm Yi0+ZGVwdGgpLCBzbyBtaW5vcgo+IGFkanVzdGVtZW50cyBpbiB0aGUgY29jY2ktZ2VuZXJhdGVk IHBhdGNoZXMgbmVlZGVkLgo+IAo+IENjOiB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbQo+ IENjOiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+ Cj4gQ2M6IGxpbnV4LWdyYXBoaWNzLW1haW50YWluZXJAdm13YXJlLmNvbQo+IENjOiBTaW5jbGFp ciBZZWggPHN5ZWhAdm13YXJlLmNvbT4KPiBDYzogVGhvbWFzIEhlbGxzdHJvbSA8dGhlbGxzdHJv bUB2bXdhcmUuY29tPgo+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0 ZXJAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mYi5j ICB8ICAxOCArKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMgfCAx MTYgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2ttcy5oIHwgICAyICstCj4gIDMgZmlsZXMgY2hhbmdlZCwgNTIgaW5z ZXJ0aW9ucygrKSwgODQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9m Yi5jCj4gaW5kZXggZDJkOTM5NTliMTE5Li40YjFkZWZjN2FhNmQgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2ZiLmMKPiBAQCAtNDY1LDMzICs0NjUsMzMgQEAgc3RhdGljIGludCB2bXdf ZmJfa21zX2RldGFjaChzdHJ1Y3Qgdm13X2ZiX3BhciAqcGFyLAo+ICAKPiAgc3RhdGljIGludCB2 bXdfZmJfa21zX2ZyYW1lYnVmZmVyKHN0cnVjdCBmYl9pbmZvICppbmZvKQo+ICB7Cj4gLQlzdHJ1 Y3QgZHJtX21vZGVfZmJfY21kIG1vZGVfY21kOwo+ICsJc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIg bW9kZV9jbWQ7Cj4gIAlzdHJ1Y3Qgdm13X2ZiX3BhciAqcGFyID0gaW5mby0+cGFyOwo+ICAJc3Ry dWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIgPSAmaW5mby0+dmFyOwo+ICAJc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqY3VyX2ZiOwo+ICAJc3RydWN0IHZtd19mcmFtZWJ1ZmZlciAqdmZiOwo+IC0J aW50IHJldCA9IDA7Cj4gKwlpbnQgcmV0ID0gMCwgZGVwdGg7Cj4gIAlzaXplX3QgbmV3X2JvX3Np emU7Cj4gIAo+IC0JcmV0ID0gdm13X2ZiX2NvbXB1dGVfZGVwdGgodmFyLCAmbW9kZV9jbWQuZGVw dGgpOwo+ICsJcmV0ID0gdm13X2ZiX2NvbXB1dGVfZGVwdGgodmFyLCAmZGVwdGgpOwo+ICAJaWYg KHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAgCW1vZGVfY21kLndpZHRoID0gdmFyLT54cmVz Owo+ICAJbW9kZV9jbWQuaGVpZ2h0ID0gdmFyLT55cmVzOwo+IC0JbW9kZV9jbWQuYnBwID0gdmFy LT5iaXRzX3Blcl9waXhlbDsKPiAtCW1vZGVfY21kLnBpdGNoID0gKChtb2RlX2NtZC5icHAgKyA3 KSAvIDgpICogbW9kZV9jbWQud2lkdGg7Cgptb2RlX2NtZC5waXRjaGVzWzBdIG5lZWRzIHRvIGJl IGluaXRpYWxpemVkIGJlZm9yZSBiZWluZyB1c2VkIGJlbG93LgoKTWF5YmUgc29tZXRoaW5nIGxp a2U6Cm1vZGVfY21kLnBpdGNoZXNbMF0gPSAoKHZhci0+Yml0c19wZXJfcGl4ZWwgKyA3KSAvIDgp ICogbW9kZV9jbWQud2lkdGg7Cgo+ICsJbW9kZV9jbWQucGl4ZWxfZm9ybWF0ID0KPiArCQlkcm1f bW9kZV9sZWdhY3lfZmJfZm9ybWF0KHZhci0+Yml0c19wZXJfcGl4ZWwsCj4gKwkJCSgodmFyLT5i aXRzX3Blcl9waXhlbCArIDcpIC8gOCkgKiBtb2RlX2NtZC53aWR0aCk7Cj4gIAo+ICAJY3VyX2Zi ID0gcGFyLT5zZXRfZmI7Cj4gIAlpZiAoY3VyX2ZiICYmIGN1cl9mYi0+d2lkdGggPT0gbW9kZV9j bWQud2lkdGggJiYKPiAgCSAgICBjdXJfZmItPmhlaWdodCA9PSBtb2RlX2NtZC5oZWlnaHQgJiYK PiAtCSAgICBjdXJfZmItPmJpdHNfcGVyX3BpeGVsID09IG1vZGVfY21kLmJwcCAmJgo+IC0JICAg IGN1cl9mYi0+ZGVwdGggPT0gbW9kZV9jbWQuZGVwdGggJiYKPiAtCSAgICBjdXJfZmItPnBpdGNo ZXNbMF0gPT0gbW9kZV9jbWQucGl0Y2gpCj4gKwkgICAgY3VyX2ZiLT5waXhlbF9mb3JtYXQgPT0g bW9kZV9jbWQucGl4ZWxfZm9ybWF0ICYmCj4gKwkgICAgY3VyX2ZiLT5waXRjaGVzWzBdID09IG1v ZGVfY21kLnBpdGNoZXNbMF0pCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJLyogTmVlZCBuZXcgYnVm ZmVyIG9iamVjdCA/ICovCj4gLQluZXdfYm9fc2l6ZSA9IChzaXplX3QpIG1vZGVfY21kLnBpdGNo ICogKHNpemVfdCkgbW9kZV9jbWQuaGVpZ2h0Owo+ICsJbmV3X2JvX3NpemUgPSAoc2l6ZV90KSBt b2RlX2NtZC5waXRjaGVzWzBdICogKHNpemVfdCkgbW9kZV9jbWQuaGVpZ2h0Owo+ICAJcmV0ID0g dm13X2ZiX2ttc19kZXRhY2gocGFyLAo+ICAJCQkJcGFyLT5ib19zaXplIDwgbmV3X2JvX3NpemUg fHwKPiAgCQkJCXBhci0+Ym9fc2l6ZSA+IDIqbmV3X2JvX3NpemUsCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfa21zLmMKPiBpbmRleCBlM2Y2OGNjOWJiNGIuLmU3ZGFmNTliYWM4MCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCj4gQEAgLTUxNiw3ICs1MTYsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyB2bXdfZnJhbWVidWZmZXJfc3Vy ZmFjZV9mdW5jcyA9IHsKPiAgc3RhdGljIGludCB2bXdfa21zX25ld19mcmFtZWJ1ZmZlcl9zdXJm YWNlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCQkJICAgc3RydWN0IHZtd19z dXJmYWNlICpzdXJmYWNlLAo+ICAJCQkJCSAgIHN0cnVjdCB2bXdfZnJhbWVidWZmZXIgKipvdXQs Cj4gLQkJCQkJICAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZAo+ICsJCQkJCSAgIGNvbnN0 IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyCj4gIAkJCQkJICAgKm1vZGVfY21kLAo+ICAJCQkJCSAg IGJvb2wgaXNfZG1hYnVmX3Byb3h5KQo+ICAKPiBAQCAtNTI1LDYgKzUyNSw3IEBAIHN0YXRpYyBp bnQgdm13X2ttc19uZXdfZnJhbWVidWZmZXJfc3VyZmFjZShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRl dl9wcml2LAo+ICAJc3RydWN0IHZtd19mcmFtZWJ1ZmZlcl9zdXJmYWNlICp2ZmJzOwo+ICAJZW51 bSBTVkdBM2RTdXJmYWNlRm9ybWF0IGZvcm1hdDsKPiAgCWludCByZXQ7Cj4gKwlzdHJ1Y3QgZHJt X2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsKPiAgCj4gIAkvKiAzRCBpcyBvbmx5IHN1cHBv cnRlZCBvbiBIV3Y4IGFuZCBuZXdlciBob3N0cyAqLwo+ICAJaWYgKGRldl9wcml2LT5hY3RpdmVf ZGlzcGxheV91bml0ID09IHZtd19kdV9sZWdhY3kpCj4gQEAgLTU0OCwyMSArNTQ5LDIyIEBAIHN0 YXRpYyBpbnQgdm13X2ttc19uZXdfZnJhbWVidWZmZXJfc3VyZmFjZShzdHJ1Y3Qgdm13X3ByaXZh dGUgKmRldl9wcml2LAo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAJfQo+ICAKPiAtCXN3aXRjaCAo bW9kZV9jbWQtPmRlcHRoKSB7Cj4gLQljYXNlIDMyOgo+ICsJc3dpdGNoIChtb2RlX2NtZC0+cGl4 ZWxfZm9ybWF0KSB7Cj4gKwljYXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6Cj4gIAkJZm9ybWF0ID0g U1ZHQTNEX0E4UjhHOEI4Owo+ICAJCWJyZWFrOwo+IC0JY2FzZSAyNDoKPiArCWNhc2UgRFJNX0ZP Uk1BVF9YUkdCODg4ODoKPiAgCQlmb3JtYXQgPSBTVkdBM0RfWDhSOEc4Qjg7Cj4gIAkJYnJlYWs7 Cj4gLQljYXNlIDE2Ogo+ICsJY2FzZSBEUk1fRk9STUFUX1JHQjU2NToKPiAgCQlmb3JtYXQgPSBT VkdBM0RfUjVHNkI1Owo+ICAJCWJyZWFrOwo+IC0JY2FzZSAxNToKPiArCWNhc2UgRFJNX0ZPUk1B VF9YUkdCMTU1NToKPiAgCQlmb3JtYXQgPSBTVkdBM0RfQTFSNUc1QjU7Cj4gIAkJYnJlYWs7Cj4g IAlkZWZhdWx0Ogo+IC0JCURSTV9FUlJPUigiSW52YWxpZCBjb2xvciBkZXB0aDogJWRcbiIsIG1v ZGVfY21kLT5kZXB0aCk7Cj4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIHBpeGVsIGZvcm1hdDogJXNc biIsCj4gKwkJCSAgZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0LCAm Zm9ybWF0X25hbWUpKTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiAgCj4gQEAgLTU4MSwx NCArNTgzLDkgQEAgc3RhdGljIGludCB2bXdfa21zX25ld19mcmFtZWJ1ZmZlcl9zdXJmYWNlKHN0 cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJZ290byBvdXRfZXJyMTsKPiAgCX0KPiAg Cj4gLQkvKiBYWFggZ2V0IHRoZSBmaXJzdCAzIGZyb20gdGhlIHN1cmZhY2UgaW5mbyAqLwo+IC0J dmZicy0+YmFzZS5iYXNlLmJpdHNfcGVyX3BpeGVsID0gbW9kZV9jbWQtPmJwcDsKPiAtCXZmYnMt PmJhc2UuYmFzZS5waXRjaGVzWzBdID0gbW9kZV9jbWQtPnBpdGNoOwo+IC0JdmZicy0+YmFzZS5i YXNlLmRlcHRoID0gbW9kZV9jbWQtPmRlcHRoOwo+IC0JdmZicy0+YmFzZS5iYXNlLndpZHRoID0g bW9kZV9jbWQtPndpZHRoOwo+IC0JdmZicy0+YmFzZS5iYXNlLmhlaWdodCA9IG1vZGVfY21kLT5o ZWlnaHQ7Cj4gKwlkcm1faGVscGVyX21vZGVfZmlsbF9mYl9zdHJ1Y3QoJnZmYnMtPmJhc2UuYmFz ZSwgbW9kZV9jbWQpOwo+ICAJdmZicy0+c3VyZmFjZSA9IHZtd19zdXJmYWNlX3JlZmVyZW5jZShz dXJmYWNlKTsKPiAtCXZmYnMtPmJhc2UudXNlcl9oYW5kbGUgPSBtb2RlX2NtZC0+aGFuZGxlOwo+ ICsJdmZicy0+YmFzZS51c2VyX2hhbmRsZSA9IG1vZGVfY21kLT5oYW5kbGVzWzBdOwo+ICAJdmZi cy0+aXNfZG1hYnVmX3Byb3h5ID0gaXNfZG1hYnVmX3Byb3h5Owo+ICAKPiAgCSpvdXQgPSAmdmZi cy0+YmFzZTsKPiBAQCAtNzU1LDcgKzc1Miw3IEBAIHN0YXRpYyBpbnQgdm13X2ZyYW1lYnVmZmVy X3VucGluKHN0cnVjdCB2bXdfZnJhbWVidWZmZXIgKnZmYikKPiAgICogMCBvbiBzdWNjZXNzLCBl cnJvciBjb2RlIG90aGVyd2lzZQo+ICAgKi8KPiAgc3RhdGljIGludCB2bXdfY3JlYXRlX2RtYWJ1 Zl9wcm94eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCQkJICAgY29uc3Qgc3RydWN0IGRy bV9tb2RlX2ZiX2NtZCAqbW9kZV9jbWQsCj4gKwkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX21vZGVf ZmJfY21kMiAqbW9kZV9jbWQsCj4gIAkJCQkgICBzdHJ1Y3Qgdm13X2RtYV9idWZmZXIgKmRtYWJ1 Zl9tb2IsCj4gIAkJCQkgICBzdHJ1Y3Qgdm13X3N1cmZhY2UgKipzcmZfb3V0KQo+ICB7Cj4gQEAg LTc2MywxNyArNzYwLDE4IEBAIHN0YXRpYyBpbnQgdm13X2NyZWF0ZV9kbWFidWZfcHJveHkoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCXN0cnVjdCBkcm1fdm13X3NpemUgY29udGVudF9iYXNl X3NpemU7Cj4gIAlzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXM7Cj4gIAl1bnNpZ25lZCBpbnQgYnl0 ZXNfcHA7Cj4gKwlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsKPiAgCWlu dCByZXQ7Cj4gIAo+IC0Jc3dpdGNoIChtb2RlX2NtZC0+ZGVwdGgpIHsKPiAtCWNhc2UgMzI6Cj4g LQljYXNlIDI0Ogo+ICsJc3dpdGNoIChtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0KSB7Cj4gKwljYXNl IERSTV9GT1JNQVRfQVJHQjg4ODg6Cj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6Cj4gIAkJ Zm9ybWF0ID0gU1ZHQTNEX1g4UjhHOEI4Owo+ICAJCWJ5dGVzX3BwID0gNDsKPiAgCQlicmVhazsK PiAgCj4gLQljYXNlIDE2Ogo+IC0JY2FzZSAxNToKPiArCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6 Cj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjE1NTU6Cj4gIAkJZm9ybWF0ID0gU1ZHQTNEX1I1RzZC NTsKPiAgCQlieXRlc19wcCA9IDI7Cj4gIAkJYnJlYWs7Cj4gQEAgLTc4NCwxMSArNzgyLDEyIEBA IHN0YXRpYyBpbnQgdm13X2NyZWF0ZV9kbWFidWZfcHJveHkoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiAgCQlicmVhazsKPiAgCj4gIAlkZWZhdWx0Ogo+IC0JCURSTV9FUlJPUigiSW52YWxpZCBm cmFtZWJ1ZmZlciBmb3JtYXQgJWRcbiIsIG1vZGVfY21kLT5kZXB0aCk7Cj4gKwkJRFJNX0VSUk9S KCJJbnZhbGlkIGZyYW1lYnVmZmVyIGZvcm1hdCAlc1xuIiwKPiArCQkJICBkcm1fZ2V0X2Zvcm1h dF9uYW1lKG1vZGVfY21kLT5waXhlbF9mb3JtYXQsICZmb3JtYXRfbmFtZSkpOwo+ICAJCXJldHVy biAtRUlOVkFMOwo+ICAJfQo+ICAKPiAtCWNvbnRlbnRfYmFzZV9zaXplLndpZHRoICA9IG1vZGVf Y21kLT5waXRjaCAvIGJ5dGVzX3BwOwo+ICsJY29udGVudF9iYXNlX3NpemUud2lkdGggID0gbW9k ZV9jbWQtPnBpdGNoZXNbMF0gLyBieXRlc19wcDsKPiAgCWNvbnRlbnRfYmFzZV9zaXplLmhlaWdo dCA9IG1vZGVfY21kLT5oZWlnaHQ7Cj4gIAljb250ZW50X2Jhc2Vfc2l6ZS5kZXB0aCAgPSAxOwo+ ICAKPiBAQCAtODI2LDE2ICs4MjUsMTcgQEAgc3RhdGljIGludCB2bXdfY3JlYXRlX2RtYWJ1Zl9w cm94eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICBzdGF0aWMgaW50IHZtd19rbXNfbmV3X2Zy YW1lYnVmZmVyX2RtYWJ1ZihzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJCSAg c3RydWN0IHZtd19kbWFfYnVmZmVyICpkbWFidWYsCj4gIAkJCQkJICBzdHJ1Y3Qgdm13X2ZyYW1l YnVmZmVyICoqb3V0LAo+IC0JCQkJCSAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZAo+ICsJ CQkJCSAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIKPiAgCQkJCQkgICptb2RlX2NtZCkK PiAgCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICAJ c3RydWN0IHZtd19mcmFtZWJ1ZmZlcl9kbWFidWYgKnZmYmQ7Cj4gIAl1bnNpZ25lZCBpbnQgcmVx dWVzdGVkX3NpemU7Cj4gKwlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsK PiAgCWludCByZXQ7Cj4gIAo+IC0JcmVxdWVzdGVkX3NpemUgPSBtb2RlX2NtZC0+aGVpZ2h0ICog bW9kZV9jbWQtPnBpdGNoOwo+ICsJcmVxdWVzdGVkX3NpemUgPSBtb2RlX2NtZC0+aGVpZ2h0ICog bW9kZV9jbWQtPnBpdGNoZXNbMF07Cj4gIAlpZiAodW5saWtlbHkocmVxdWVzdGVkX3NpemUgPiBk bWFidWYtPmJhc2UubnVtX3BhZ2VzICogUEFHRV9TSVpFKSkgewo+ICAJCURSTV9FUlJPUigiU2Ny ZWVuIGJ1ZmZlciBvYmplY3Qgc2l6ZSBpcyB0b28gc21hbGwgIgo+ICAJCQkgICJmb3IgcmVxdWVz dGVkIG1vZGUuXG4iKTsKPiBAQCAtODQ0LDI3ICs4NDQsMTYgQEAgc3RhdGljIGludCB2bXdfa21z X25ld19mcmFtZWJ1ZmZlcl9kbWFidWYoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKPiAg Cj4gIAkvKiBMaW1pdGVkIGZyYW1lYnVmZmVyIGNvbG9yIGRlcHRoIHN1cHBvcnQgZm9yIHNjcmVl biBvYmplY3RzICovCj4gIAlpZiAoZGV2X3ByaXYtPmFjdGl2ZV9kaXNwbGF5X3VuaXQgPT0gdm13 X2R1X3NjcmVlbl9vYmplY3QpIHsKPiAtCQlzd2l0Y2ggKG1vZGVfY21kLT5kZXB0aCkgewo+IC0J CWNhc2UgMzI6Cj4gLQkJY2FzZSAyNDoKPiAtCQkJLyogT25seSBzdXBwb3J0IDMyIGJwcCBmb3Ig MzIgYW5kIDI0IGRlcHRoIGZicyAqLwo+IC0JCQlpZiAobW9kZV9jbWQtPmJwcCA9PSAzMikKPiAt CQkJCWJyZWFrOwo+IC0KPiAtCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGNvbG9yIGRlcHRoL2JicDog JWQgJWRcbiIsCj4gLQkJCQkgIG1vZGVfY21kLT5kZXB0aCwgbW9kZV9jbWQtPmJwcCk7Cj4gLQkJ CXJldHVybiAtRUlOVkFMOwo+IC0JCWNhc2UgMTY6Cj4gLQkJY2FzZSAxNToKPiAtCQkJLyogT25s eSBzdXBwb3J0IDE2IGJwcCBmb3IgMTYgYW5kIDE1IGRlcHRoIGZicyAqLwo+IC0JCQlpZiAobW9k ZV9jbWQtPmJwcCA9PSAxNikKPiAtCQkJCWJyZWFrOwo+IC0KPiAtCQkJRFJNX0VSUk9SKCJJbnZh bGlkIGNvbG9yIGRlcHRoL2JicDogJWQgJWRcbiIsCj4gLQkJCQkgIG1vZGVfY21kLT5kZXB0aCwg bW9kZV9jbWQtPmJwcCk7Cj4gLQkJCXJldHVybiAtRUlOVkFMOwo+ICsJCXN3aXRjaCAobW9kZV9j bWQtPnBpeGVsX2Zvcm1hdCkgewo+ICsJCWNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoKPiArCQlj YXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6Cj4gKwkJCWJyZWFrOwo+ICsJCWNhc2UgRFJNX0ZPUk1B VF9YUkdCMTU1NToKPiArCQljYXNlIERSTV9GT1JNQVRfUkdCNTY1Ogo+ICsJCQlicmVhazsKPiAg CQlkZWZhdWx0Ogo+IC0JCQlEUk1fRVJST1IoIkludmFsaWQgY29sb3IgZGVwdGg6ICVkXG4iLCBt b2RlX2NtZC0+ZGVwdGgpOwo+ICsJCQlEUk1fRVJST1IoIkludmFsaWQgcGl4ZWwgZm9ybWF0OiAl c1xuIiwKPiArCQkJCSAgZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0 LCAmZm9ybWF0X25hbWUpKTsKPiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gIAkJfQo+ICAJfQo+IEBA IC04NzUsMTQgKzg2NCwxMCBAQCBzdGF0aWMgaW50IHZtd19rbXNfbmV3X2ZyYW1lYnVmZmVyX2Rt YWJ1ZihzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCWdvdG8gb3V0X2VycjE7Cj4g IAl9Cj4gIAo+IC0JdmZiZC0+YmFzZS5iYXNlLmJpdHNfcGVyX3BpeGVsID0gbW9kZV9jbWQtPmJw cDsKPiAtCXZmYmQtPmJhc2UuYmFzZS5waXRjaGVzWzBdID0gbW9kZV9jbWQtPnBpdGNoOwo+IC0J dmZiZC0+YmFzZS5iYXNlLmRlcHRoID0gbW9kZV9jbWQtPmRlcHRoOwo+IC0JdmZiZC0+YmFzZS5i YXNlLndpZHRoID0gbW9kZV9jbWQtPndpZHRoOwo+IC0JdmZiZC0+YmFzZS5iYXNlLmhlaWdodCA9 IG1vZGVfY21kLT5oZWlnaHQ7Cj4gKwlkcm1faGVscGVyX21vZGVfZmlsbF9mYl9zdHJ1Y3QoJnZm YmQtPmJhc2UuYmFzZSwgbW9kZV9jbWQpOwo+ICAJdmZiZC0+YmFzZS5kbWFidWYgPSB0cnVlOwo+ ICAJdmZiZC0+YnVmZmVyID0gdm13X2RtYWJ1Zl9yZWZlcmVuY2UoZG1hYnVmKTsKPiAtCXZmYmQt PmJhc2UudXNlcl9oYW5kbGUgPSBtb2RlX2NtZC0+aGFuZGxlOwo+ICsJdmZiZC0+YmFzZS51c2Vy X2hhbmRsZSA9IG1vZGVfY21kLT5oYW5kbGVzWzBdOwo+ICAJKm91dCA9ICZ2ZmJkLT5iYXNlOwo+ ICAKPiAgCXJldCA9IGRybV9mcmFtZWJ1ZmZlcl9pbml0KGRldiwgJnZmYmQtPmJhc2UuYmFzZSwK PiBAQCAtOTE2LDcgKzkwMSw3IEBAIHZtd19rbXNfbmV3X2ZyYW1lYnVmZmVyKHN0cnVjdCB2bXdf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCXN0cnVjdCB2bXdfZG1hX2J1ZmZlciAqZG1hYnVmLAo+ ICAJCQlzdHJ1Y3Qgdm13X3N1cmZhY2UgKnN1cmZhY2UsCj4gIAkJCWJvb2wgb25seV8yZCwKPiAt CQkJY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZCAqbW9kZV9jbWQpCj4gKwkJCWNvbnN0IHN0 cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCkKPiAgewo+ICAJc3RydWN0IHZtd19mcmFt ZWJ1ZmZlciAqdmZiID0gTlVMTDsKPiAgCWJvb2wgaXNfZG1hYnVmX3Byb3h5ID0gZmFsc2U7Cj4g QEAgLTk3MSw3ICs5NTYsNyBAQCB2bXdfa21zX25ld19mcmFtZWJ1ZmZlcihzdHJ1Y3Qgdm13X3By aXZhdGUgKmRldl9wcml2LAo+ICAKPiAgc3RhdGljIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKnZt d19rbXNfZmJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkJCSBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiAtCQkJCQkJIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9j bWQyICptb2RlX2NtZDIpCj4gKwkJCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAq bW9kZV9jbWQpCj4gIHsKPiAgCXN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bXdfcHJp dihkZXYpOwo+ICAJc3RydWN0IHR0bV9vYmplY3RfZmlsZSAqdGZpbGUgPSB2bXdfZnByaXYoZmls ZV9wcml2KS0+dGZpbGU7Cj4gQEAgLTk3OSwyNSArOTY0LDggQEAgc3RhdGljIHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKnZtd19rbXNfZmJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g IAlzdHJ1Y3Qgdm13X3N1cmZhY2UgKnN1cmZhY2UgPSBOVUxMOwo+ICAJc3RydWN0IHZtd19kbWFf YnVmZmVyICpibyA9IE5VTEw7Cj4gIAlzdHJ1Y3QgdHRtX2Jhc2Vfb2JqZWN0ICp1c2VyX29iajsK PiAtCXN0cnVjdCBkcm1fbW9kZV9mYl9jbWQgbW9kZV9jbWQ7Cj4gLQljb25zdCBzdHJ1Y3QgZHJt X2Zvcm1hdF9pbmZvICppbmZvOwo+ICAJaW50IHJldDsKPiAgCj4gLQlpbmZvID0gZHJtX2Zvcm1h dF9pbmZvKG1vZGVfY21kMi0+cGl4ZWxfZm9ybWF0KTsKPiAtCWlmICghaW5mbyB8fCAhaW5mby0+ ZGVwdGgpIHsKPiAtCQlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsKPiAt CQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIGZyYW1lYnVmZmVyIGZvcm1hdCAlc1xuIiwKPiAtCQkg ICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZDItPnBpeGVsX2Zvcm1hdCwgJmZv cm1hdF9uYW1lKSk7Cj4gLQkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Cj4gLQl9Cj4gLQo+IC0J bW9kZV9jbWQud2lkdGggPSBtb2RlX2NtZDItPndpZHRoOwo+IC0JbW9kZV9jbWQuaGVpZ2h0ID0g bW9kZV9jbWQyLT5oZWlnaHQ7Cj4gLQltb2RlX2NtZC5waXRjaCA9IG1vZGVfY21kMi0+cGl0Y2hl c1swXTsKPiAtCW1vZGVfY21kLmhhbmRsZSA9IG1vZGVfY21kMi0+aGFuZGxlc1swXTsKPiAtCW1v ZGVfY21kLmRlcHRoID0gaW5mby0+ZGVwdGg7Cj4gLQltb2RlX2NtZC5icHAgPSBpbmZvLT5jcHBb MF0gKiA4Owo+IC0KPiAgCS8qKgo+ICAJICogVGhpcyBjb2RlIHNob3VsZCBiZSBjb25kaXRpb25l ZCBvbiBTY3JlZW4gT2JqZWN0cyBub3QgYmVpbmcgdXNlZC4KPiAgCSAqIElmIHNjcmVlbiBvYmpl Y3RzIGFyZSB1c2VkLCB3ZSBjYW4gYWxsb2NhdGUgYSBHTVIgdG8gaG9sZCB0aGUKPiBAQCAtMTAw NSw4ICs5NzMsOCBAQCBzdGF0aWMgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqdm13X2ttc19mYl9j cmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCSAqLwo+ICAKPiAgCWlmICghdm13X2tt c192YWxpZGF0ZV9tb2RlX3ZyYW0oZGV2X3ByaXYsCj4gLQkJCQkJbW9kZV9jbWQucGl0Y2gsCj4g LQkJCQkJbW9kZV9jbWQuaGVpZ2h0KSkgewo+ICsJCQkJCW1vZGVfY21kLT5waXRjaGVzWzBdLAo+ ICsJCQkJCW1vZGVfY21kLT5oZWlnaHQpKSB7Cj4gIAkJRFJNX0VSUk9SKCJSZXF1ZXN0ZWQgbW9k ZSBleGNlZWQgYm91bmRpbmcgYm94IGxpbWl0LlxuIik7Cj4gIAkJcmV0dXJuIEVSUl9QVFIoLUVO T01FTSk7Cj4gIAl9Cj4gQEAgLTEwMjAsNyArOTg4LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKnZtd19rbXNfZmJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkg KiBjb21tYW5kIHN0cmVhbSB1c2luZyB1c2VyLXNwYWNlIGhhbmRsZXMuCj4gIAkgKi8KPiAgCj4g LQl1c2VyX29iaiA9IHR0bV9iYXNlX29iamVjdF9sb29rdXAodGZpbGUsIG1vZGVfY21kLmhhbmRs ZSk7Cj4gKwl1c2VyX29iaiA9IHR0bV9iYXNlX29iamVjdF9sb29rdXAodGZpbGUsIG1vZGVfY21k LT5oYW5kbGVzWzBdKTsKPiAgCWlmICh1bmxpa2VseSh1c2VyX29iaiA9PSBOVUxMKSkgewo+ICAJ CURSTV9FUlJPUigiQ291bGQgbm90IGxvY2F0ZSByZXF1ZXN0ZWQga21zIGZyYW1lIGJ1ZmZlci5c biIpOwo+ICAJCXJldHVybiBFUlJfUFRSKC1FTk9FTlQpOwo+IEBAIC0xMDMyLDE0ICsxMDAwLDE0 IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICp2bXdfa21zX2ZiX2NyZWF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAKPiAgCS8qIHJldHVybnMgZWl0aGVyIGEgZG1hYnVmIG9y IHN1cmZhY2UgKi8KPiAgCXJldCA9IHZtd191c2VyX2xvb2t1cF9oYW5kbGUoZGV2X3ByaXYsIHRm aWxlLAo+IC0JCQkJICAgICBtb2RlX2NtZC5oYW5kbGUsCj4gKwkJCQkgICAgIG1vZGVfY21kLT5o YW5kbGVzWzBdLAo+ICAJCQkJICAgICAmc3VyZmFjZSwgJmJvKTsKPiAgCWlmIChyZXQpCj4gIAkJ Z290byBlcnJfb3V0Owo+ICAKPiAgCXZmYiA9IHZtd19rbXNfbmV3X2ZyYW1lYnVmZmVyKGRldl9w cml2LCBibywgc3VyZmFjZSwKPiAgCQkJCSAgICAgICEoZGV2X3ByaXYtPmNhcGFiaWxpdGllcyAm IFNWR0FfQ0FQXzNEKSwKPiAtCQkJCSAgICAgICZtb2RlX2NtZCk7Cj4gKwkJCQkgICAgICBtb2Rl X2NtZCk7Cj4gIAlpZiAoSVNfRVJSKHZmYikpIHsKPiAgCQlyZXQgPSBQVFJfRVJSKHZmYik7Cj4g IAkJZ290byBlcnJfb3V0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9rbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oCj4gaW5kZXgg ZmY0ODAzYzEwN2JjLi5mNDJjZTlhMWMzYWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfa21zLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9rbXMuaAo+IEBAIC0yNDgsNyArMjQ4LDcgQEAgdm13X2ttc19uZXdfZnJhbWVidWZmZXIoc3Ry dWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJc3RydWN0IHZtd19kbWFfYnVmZmVyICpk bWFidWYsCj4gIAkJCXN0cnVjdCB2bXdfc3VyZmFjZSAqc3VyZmFjZSwKPiAgCQkJYm9vbCBvbmx5 XzJkLAo+IC0JCQljb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kICptb2RlX2NtZCk7Cj4gKwkJ CWNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2RlX2NtZCk7Cj4gIGludCB2bXdfa21z X2ZiZGV2X2luaXRfZGF0YShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkgICAg dW5zaWduZWQgdW5pdCwKPiAgCQkJICAgIHUzMiBtYXhfd2lkdGgsCj4gLS0gCj4gMi4xMC4yCj4g Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=