From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/vmwgfx: Switch to mode_cmd2 Date: Fri, 2 Dec 2016 12:03:18 +0200 Message-ID: <20161202100318.GS31595@intel.com> References: <20161202070740.31689-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id EF1456E035 for ; Fri, 2 Dec 2016 10:03:22 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20161202070740.31689-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 T24gRnJpLCBEZWMgMDIsIDIwMTYgYXQgMDg6MDc6NDBBTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBTdXJwcmlzaW5nbHkgZmV3IGNoYW5nZXMgbmVlZGVkIHRvIG1ha2UgaXQgaGFwcGVu LiBDb21waWxlLXRlc3RlZAo+IG9ubHkuIFRoZSBpZGVhIGlzIHRoYXQgdGhpcyByZXBsYWNlcyB0 aGUgMiBwYXRjaGVzIGZyb20gVmlsbGUncyBiaWcKPiBmYi0+Zm9ybWF0IHBhdGNoIHNlcmllcyBh cyBhIHByZXAgcGF0Y2guIE9ubHkgaW1wYWN0IHRvIGxhdGVyIHBhdGNoZXMKPiBzaG91bGQgYmUg dGhlIG9uZSBpbnN0YWNlIGFkZGVkIGluIHRoaXMgcGF0Y2ggd2hlcmUgd2UgbG9vayBhdAo+IGZi LT5waXhlbF9mb3JtYXQgKGluc3RlYWQgb2YgZmItPmJwcCBhbmQgZmItPmRlcHRoKSwgc28gbWlu b3IKPiBhZGp1c3RlbWVudHMgaW4gdGhlIGNvY2NpLWdlbmVyYXRlZCBwYXRjaGVzIG5lZWRlZC4K PiAKPiB2MjogUmVzdG9yZSBwaXRjaCBjb21wdXRhdGlvbiBpbiB2bXdfZmJfa21zX2ZyYW1lYnVm ZmVyIChTaW5jbGFpcikuCj4gCj4gQ2M6IHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tCj4g Q2M6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4K PiBDYzogbGludXgtZ3JhcGhpY3MtbWFpbnRhaW5lckB2bXdhcmUuY29tCj4gQ2M6IFNpbmNsYWly IFllaCA8c3llaEB2bXdhcmUuY29tPgo+IENjOiBUaG9tYXMgSGVsbHN0cm9tIDx0aGVsbHN0cm9t QHZtd2FyZS5jb20+Cj4gUmV2aWV3ZWQtYnk6IFNpbmNsYWlyIFllaCA8c3llaEB2bXdhcmUuY29t Pgo+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29t PgoKQWNrIGZyb20gbXkgc2lkZSB0byBtZXJnZSB0aGlzIGJlZm9yZSBteSBmb3JtYXQgZGVkdXAg c3R1ZmYuIE1lYW5zIEkgY2FuCmp1c3QgZHJvcCB0aGUgdm13Z2Z4IHBhdGNoZXMgZnJvbSB0aGF0 IHNlcmllcy4KCkFja2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmIuYyAg fCAgMTkgKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jIHwgMTE2 ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9rbXMuaCB8ICAgMiArLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDUzIGluc2Vy dGlvbnMoKyksIDg0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmIu Ywo+IGluZGV4IGQyZDkzOTU5YjExOS4uNzIzZmQ3NjNkYThlIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZiLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9mYi5jCj4gQEAgLTQ2NSwzMyArNDY1LDM0IEBAIHN0YXRpYyBpbnQgdm13X2Zi X2ttc19kZXRhY2goc3RydWN0IHZtd19mYl9wYXIgKnBhciwKPiAgCj4gIHN0YXRpYyBpbnQgdm13 X2ZiX2ttc19mcmFtZWJ1ZmZlcihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKPiAgewo+IC0Jc3RydWN0 IGRybV9tb2RlX2ZiX2NtZCBtb2RlX2NtZDsKPiArCXN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyIG1v ZGVfY21kOwo+ICAJc3RydWN0IHZtd19mYl9wYXIgKnBhciA9IGluZm8tPnBhcjsKPiAgCXN0cnVj dCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyID0gJmluZm8tPnZhcjsKPiAgCXN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmN1cl9mYjsKPiAgCXN0cnVjdCB2bXdfZnJhbWVidWZmZXIgKnZmYjsKPiAtCWlu dCByZXQgPSAwOwo+ICsJaW50IHJldCA9IDAsIGRlcHRoOwo+ICAJc2l6ZV90IG5ld19ib19zaXpl Owo+ICAKPiAtCXJldCA9IHZtd19mYl9jb21wdXRlX2RlcHRoKHZhciwgJm1vZGVfY21kLmRlcHRo KTsKPiArCXJldCA9IHZtd19mYl9jb21wdXRlX2RlcHRoKHZhciwgJmRlcHRoKTsKPiAgCWlmIChy ZXQpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gIAltb2RlX2NtZC53aWR0aCA9IHZhci0+eHJlczsK PiAgCW1vZGVfY21kLmhlaWdodCA9IHZhci0+eXJlczsKPiAtCW1vZGVfY21kLmJwcCA9IHZhci0+ Yml0c19wZXJfcGl4ZWw7Cj4gLQltb2RlX2NtZC5waXRjaCA9ICgobW9kZV9jbWQuYnBwICsgNykg LyA4KSAqIG1vZGVfY21kLndpZHRoOwo+ICsJbW9kZV9jbWQucGl0Y2hlc1swXSA9ICgodmFyLT5i aXRzX3Blcl9waXhlbCArIDcpIC8gOCkgKiBtb2RlX2NtZC53aWR0aDsKPiArCW1vZGVfY21kLnBp eGVsX2Zvcm1hdCA9Cj4gKwkJZHJtX21vZGVfbGVnYWN5X2ZiX2Zvcm1hdCh2YXItPmJpdHNfcGVy X3BpeGVsLAo+ICsJCQkoKHZhci0+Yml0c19wZXJfcGl4ZWwgKyA3KSAvIDgpICogbW9kZV9jbWQu d2lkdGgpOwo+ICAKPiAgCWN1cl9mYiA9IHBhci0+c2V0X2ZiOwo+ICAJaWYgKGN1cl9mYiAmJiBj dXJfZmItPndpZHRoID09IG1vZGVfY21kLndpZHRoICYmCj4gIAkgICAgY3VyX2ZiLT5oZWlnaHQg PT0gbW9kZV9jbWQuaGVpZ2h0ICYmCj4gLQkgICAgY3VyX2ZiLT5iaXRzX3Blcl9waXhlbCA9PSBt b2RlX2NtZC5icHAgJiYKPiAtCSAgICBjdXJfZmItPmRlcHRoID09IG1vZGVfY21kLmRlcHRoICYm Cj4gLQkgICAgY3VyX2ZiLT5waXRjaGVzWzBdID09IG1vZGVfY21kLnBpdGNoKQo+ICsJICAgIGN1 cl9mYi0+cGl4ZWxfZm9ybWF0ID09IG1vZGVfY21kLnBpeGVsX2Zvcm1hdCAmJgo+ICsJICAgIGN1 cl9mYi0+cGl0Y2hlc1swXSA9PSBtb2RlX2NtZC5waXRjaGVzWzBdKQo+ICAJCXJldHVybiAwOwo+ ICAKPiAgCS8qIE5lZWQgbmV3IGJ1ZmZlciBvYmplY3QgPyAqLwo+IC0JbmV3X2JvX3NpemUgPSAo c2l6ZV90KSBtb2RlX2NtZC5waXRjaCAqIChzaXplX3QpIG1vZGVfY21kLmhlaWdodDsKPiArCW5l d19ib19zaXplID0gKHNpemVfdCkgbW9kZV9jbWQucGl0Y2hlc1swXSAqIChzaXplX3QpIG1vZGVf Y21kLmhlaWdodDsKPiAgCXJldCA9IHZtd19mYl9rbXNfZGV0YWNoKHBhciwKPiAgCQkJCXBhci0+ Ym9fc2l6ZSA8IG5ld19ib19zaXplIHx8Cj4gIAkJCQlwYXItPmJvX3NpemUgPiAyKm5ld19ib19z aXplLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCj4gaW5kZXggZTNmNjhjYzliYjRi Li5lN2RhZjU5YmFjODAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn Znhfa21zLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwo+IEBA IC01MTYsNyArNTE2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVu Y3Mgdm13X2ZyYW1lYnVmZmVyX3N1cmZhY2VfZnVuY3MgPSB7Cj4gIHN0YXRpYyBpbnQgdm13X2tt c19uZXdfZnJhbWVidWZmZXJfc3VyZmFjZShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAJCQkJCSAgIHN0cnVjdCB2bXdfc3VyZmFjZSAqc3VyZmFjZSwKPiAgCQkJCQkgICBzdHJ1Y3Qg dm13X2ZyYW1lYnVmZmVyICoqb3V0LAo+IC0JCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9m Yl9jbWQKPiArCQkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMgo+ICAJCQkJCSAg ICptb2RlX2NtZCwKPiAgCQkJCQkgICBib29sIGlzX2RtYWJ1Zl9wcm94eSkKPiAgCj4gQEAgLTUy NSw2ICs1MjUsNyBAQCBzdGF0aWMgaW50IHZtd19rbXNfbmV3X2ZyYW1lYnVmZmVyX3N1cmZhY2Uo c3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKPiAgCXN0cnVjdCB2bXdfZnJhbWVidWZmZXJf c3VyZmFjZSAqdmZiczsKPiAgCWVudW0gU1ZHQTNkU3VyZmFjZUZvcm1hdCBmb3JtYXQ7Cj4gIAlp bnQgcmV0Owo+ICsJc3RydWN0IGRybV9mb3JtYXRfbmFtZV9idWYgZm9ybWF0X25hbWU7Cj4gIAo+ ICAJLyogM0QgaXMgb25seSBzdXBwb3J0ZWQgb24gSFd2OCBhbmQgbmV3ZXIgaG9zdHMgKi8KPiAg CWlmIChkZXZfcHJpdi0+YWN0aXZlX2Rpc3BsYXlfdW5pdCA9PSB2bXdfZHVfbGVnYWN5KQo+IEBA IC01NDgsMjEgKzU0OSwyMiBAQCBzdGF0aWMgaW50IHZtd19rbXNfbmV3X2ZyYW1lYnVmZmVyX3N1 cmZhY2Uoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKPiAgCQlyZXR1cm4gLUVJTlZBTDsK PiAgCX0KPiAgCj4gLQlzd2l0Y2ggKG1vZGVfY21kLT5kZXB0aCkgewo+IC0JY2FzZSAzMjoKPiAr CXN3aXRjaCAobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCkgewo+ICsJY2FzZSBEUk1fRk9STUFUX0FS R0I4ODg4Ogo+ICAJCWZvcm1hdCA9IFNWR0EzRF9BOFI4RzhCODsKPiAgCQlicmVhazsKPiAtCWNh c2UgMjQ6Cj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6Cj4gIAkJZm9ybWF0ID0gU1ZHQTNE X1g4UjhHOEI4Owo+ICAJCWJyZWFrOwo+IC0JY2FzZSAxNjoKPiArCWNhc2UgRFJNX0ZPUk1BVF9S R0I1NjU6Cj4gIAkJZm9ybWF0ID0gU1ZHQTNEX1I1RzZCNTsKPiAgCQlicmVhazsKPiAtCWNhc2Ug MTU6Cj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjE1NTU6Cj4gIAkJZm9ybWF0ID0gU1ZHQTNEX0Ex UjVHNUI1Owo+ICAJCWJyZWFrOwo+ICAJZGVmYXVsdDoKPiAtCQlEUk1fRVJST1IoIkludmFsaWQg Y29sb3IgZGVwdGg6ICVkXG4iLCBtb2RlX2NtZC0+ZGVwdGgpOwo+ICsJCURSTV9FUlJPUigiSW52 YWxpZCBwaXhlbCBmb3JtYXQ6ICVzXG4iLAo+ICsJCQkgIGRybV9nZXRfZm9ybWF0X25hbWUobW9k ZV9jbWQtPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9uYW1lKSk7Cj4gIAkJcmV0dXJuIC1FSU5WQUw7 Cj4gIAl9Cj4gIAo+IEBAIC01ODEsMTQgKzU4Myw5IEBAIHN0YXRpYyBpbnQgdm13X2ttc19uZXdf ZnJhbWVidWZmZXJfc3VyZmFjZShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCWdv dG8gb3V0X2VycjE7Cj4gIAl9Cj4gIAo+IC0JLyogWFhYIGdldCB0aGUgZmlyc3QgMyBmcm9tIHRo ZSBzdXJmYWNlIGluZm8gKi8KPiAtCXZmYnMtPmJhc2UuYmFzZS5iaXRzX3Blcl9waXhlbCA9IG1v ZGVfY21kLT5icHA7Cj4gLQl2ZmJzLT5iYXNlLmJhc2UucGl0Y2hlc1swXSA9IG1vZGVfY21kLT5w aXRjaDsKPiAtCXZmYnMtPmJhc2UuYmFzZS5kZXB0aCA9IG1vZGVfY21kLT5kZXB0aDsKPiAtCXZm YnMtPmJhc2UuYmFzZS53aWR0aCA9IG1vZGVfY21kLT53aWR0aDsKPiAtCXZmYnMtPmJhc2UuYmFz ZS5oZWlnaHQgPSBtb2RlX2NtZC0+aGVpZ2h0Owo+ICsJZHJtX2hlbHBlcl9tb2RlX2ZpbGxfZmJf c3RydWN0KCZ2ZmJzLT5iYXNlLmJhc2UsIG1vZGVfY21kKTsKPiAgCXZmYnMtPnN1cmZhY2UgPSB2 bXdfc3VyZmFjZV9yZWZlcmVuY2Uoc3VyZmFjZSk7Cj4gLQl2ZmJzLT5iYXNlLnVzZXJfaGFuZGxl ID0gbW9kZV9jbWQtPmhhbmRsZTsKPiArCXZmYnMtPmJhc2UudXNlcl9oYW5kbGUgPSBtb2RlX2Nt ZC0+aGFuZGxlc1swXTsKPiAgCXZmYnMtPmlzX2RtYWJ1Zl9wcm94eSA9IGlzX2RtYWJ1Zl9wcm94 eTsKPiAgCj4gIAkqb3V0ID0gJnZmYnMtPmJhc2U7Cj4gQEAgLTc1NSw3ICs3NTIsNyBAQCBzdGF0 aWMgaW50IHZtd19mcmFtZWJ1ZmZlcl91bnBpbihzdHJ1Y3Qgdm13X2ZyYW1lYnVmZmVyICp2ZmIp Cj4gICAqIDAgb24gc3VjY2VzcywgZXJyb3IgY29kZSBvdGhlcndpc2UKPiAgICovCj4gIHN0YXRp YyBpbnQgdm13X2NyZWF0ZV9kbWFidWZfcHJveHkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAt CQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQgKm1vZGVfY21kLAo+ICsJCQkJICAg Y29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kLAo+ICAJCQkJICAgc3RydWN0 IHZtd19kbWFfYnVmZmVyICpkbWFidWZfbW9iLAo+ICAJCQkJICAgc3RydWN0IHZtd19zdXJmYWNl ICoqc3JmX291dCkKPiAgewo+IEBAIC03NjMsMTcgKzc2MCwxOCBAQCBzdGF0aWMgaW50IHZtd19j cmVhdGVfZG1hYnVmX3Byb3h5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlzdHJ1Y3QgZHJt X3Ztd19zaXplIGNvbnRlbnRfYmFzZV9zaXplOwo+ICAJc3RydWN0IHZtd19yZXNvdXJjZSAqcmVz Owo+ICAJdW5zaWduZWQgaW50IGJ5dGVzX3BwOwo+ICsJc3RydWN0IGRybV9mb3JtYXRfbmFtZV9i dWYgZm9ybWF0X25hbWU7Cj4gIAlpbnQgcmV0Owo+ICAKPiAtCXN3aXRjaCAobW9kZV9jbWQtPmRl cHRoKSB7Cj4gLQljYXNlIDMyOgo+IC0JY2FzZSAyNDoKPiArCXN3aXRjaCAobW9kZV9jbWQtPnBp eGVsX2Zvcm1hdCkgewo+ICsJY2FzZSBEUk1fRk9STUFUX0FSR0I4ODg4Ogo+ICsJY2FzZSBEUk1f Rk9STUFUX1hSR0I4ODg4Ogo+ICAJCWZvcm1hdCA9IFNWR0EzRF9YOFI4RzhCODsKPiAgCQlieXRl c19wcCA9IDQ7Cj4gIAkJYnJlYWs7Cj4gIAo+IC0JY2FzZSAxNjoKPiAtCWNhc2UgMTU6Cj4gKwlj YXNlIERSTV9GT1JNQVRfUkdCNTY1Ogo+ICsJY2FzZSBEUk1fRk9STUFUX1hSR0IxNTU1Ogo+ICAJ CWZvcm1hdCA9IFNWR0EzRF9SNUc2QjU7Cj4gIAkJYnl0ZXNfcHAgPSAyOwo+ICAJCWJyZWFrOwo+ IEBAIC03ODQsMTEgKzc4MiwxMiBAQCBzdGF0aWMgaW50IHZtd19jcmVhdGVfZG1hYnVmX3Byb3h5 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJYnJlYWs7Cj4gIAo+ICAJZGVmYXVsdDoKPiAt CQlEUk1fRVJST1IoIkludmFsaWQgZnJhbWVidWZmZXIgZm9ybWF0ICVkXG4iLCBtb2RlX2NtZC0+ ZGVwdGgpOwo+ICsJCURSTV9FUlJPUigiSW52YWxpZCBmcmFtZWJ1ZmZlciBmb3JtYXQgJXNcbiIs Cj4gKwkJCSAgZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0LCAmZm9y bWF0X25hbWUpKTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiAgCj4gLQljb250ZW50X2Jh c2Vfc2l6ZS53aWR0aCAgPSBtb2RlX2NtZC0+cGl0Y2ggLyBieXRlc19wcDsKPiArCWNvbnRlbnRf YmFzZV9zaXplLndpZHRoICA9IG1vZGVfY21kLT5waXRjaGVzWzBdIC8gYnl0ZXNfcHA7Cj4gIAlj b250ZW50X2Jhc2Vfc2l6ZS5oZWlnaHQgPSBtb2RlX2NtZC0+aGVpZ2h0Owo+ICAJY29udGVudF9i YXNlX3NpemUuZGVwdGggID0gMTsKPiAgCj4gQEAgLTgyNiwxNiArODI1LDE3IEBAIHN0YXRpYyBp bnQgdm13X2NyZWF0ZV9kbWFidWZfcHJveHkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgc3Rh dGljIGludCB2bXdfa21zX25ld19mcmFtZWJ1ZmZlcl9kbWFidWYoc3RydWN0IHZtd19wcml2YXRl ICpkZXZfcHJpdiwKPiAgCQkJCQkgIHN0cnVjdCB2bXdfZG1hX2J1ZmZlciAqZG1hYnVmLAo+ICAJ CQkJCSAgc3RydWN0IHZtd19mcmFtZWJ1ZmZlciAqKm91dCwKPiAtCQkJCQkgIGNvbnN0IHN0cnVj dCBkcm1fbW9kZV9mYl9jbWQKPiArCQkJCQkgIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQy Cj4gIAkJCQkJICAqbW9kZV9jbWQpCj4gIAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZGV2X3ByaXYtPmRldjsKPiAgCXN0cnVjdCB2bXdfZnJhbWVidWZmZXJfZG1hYnVmICp2ZmJk Owo+ICAJdW5zaWduZWQgaW50IHJlcXVlc3RlZF9zaXplOwo+ICsJc3RydWN0IGRybV9mb3JtYXRf bmFtZV9idWYgZm9ybWF0X25hbWU7Cj4gIAlpbnQgcmV0Owo+ICAKPiAtCXJlcXVlc3RlZF9zaXpl ID0gbW9kZV9jbWQtPmhlaWdodCAqIG1vZGVfY21kLT5waXRjaDsKPiArCXJlcXVlc3RlZF9zaXpl ID0gbW9kZV9jbWQtPmhlaWdodCAqIG1vZGVfY21kLT5waXRjaGVzWzBdOwo+ICAJaWYgKHVubGlr ZWx5KHJlcXVlc3RlZF9zaXplID4gZG1hYnVmLT5iYXNlLm51bV9wYWdlcyAqIFBBR0VfU0laRSkp IHsKPiAgCQlEUk1fRVJST1IoIlNjcmVlbiBidWZmZXIgb2JqZWN0IHNpemUgaXMgdG9vIHNtYWxs ICIKPiAgCQkJICAiZm9yIHJlcXVlc3RlZCBtb2RlLlxuIik7Cj4gQEAgLTg0NCwyNyArODQ0LDE2 IEBAIHN0YXRpYyBpbnQgdm13X2ttc19uZXdfZnJhbWVidWZmZXJfZG1hYnVmKHN0cnVjdCB2bXdf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAo+ICAJLyogTGltaXRlZCBmcmFtZWJ1ZmZlciBjb2xvciBk ZXB0aCBzdXBwb3J0IGZvciBzY3JlZW4gb2JqZWN0cyAqLwo+ICAJaWYgKGRldl9wcml2LT5hY3Rp dmVfZGlzcGxheV91bml0ID09IHZtd19kdV9zY3JlZW5fb2JqZWN0KSB7Cj4gLQkJc3dpdGNoICht b2RlX2NtZC0+ZGVwdGgpIHsKPiAtCQljYXNlIDMyOgo+IC0JCWNhc2UgMjQ6Cj4gLQkJCS8qIE9u bHkgc3VwcG9ydCAzMiBicHAgZm9yIDMyIGFuZCAyNCBkZXB0aCBmYnMgKi8KPiAtCQkJaWYgKG1v ZGVfY21kLT5icHAgPT0gMzIpCj4gLQkJCQlicmVhazsKPiAtCj4gLQkJCURSTV9FUlJPUigiSW52 YWxpZCBjb2xvciBkZXB0aC9iYnA6ICVkICVkXG4iLAo+IC0JCQkJICBtb2RlX2NtZC0+ZGVwdGgs IG1vZGVfY21kLT5icHApOwo+IC0JCQlyZXR1cm4gLUVJTlZBTDsKPiAtCQljYXNlIDE2Ogo+IC0J CWNhc2UgMTU6Cj4gLQkJCS8qIE9ubHkgc3VwcG9ydCAxNiBicHAgZm9yIDE2IGFuZCAxNSBkZXB0 aCBmYnMgKi8KPiAtCQkJaWYgKG1vZGVfY21kLT5icHAgPT0gMTYpCj4gLQkJCQlicmVhazsKPiAt Cj4gLQkJCURSTV9FUlJPUigiSW52YWxpZCBjb2xvciBkZXB0aC9iYnA6ICVkICVkXG4iLAo+IC0J CQkJICBtb2RlX2NtZC0+ZGVwdGgsIG1vZGVfY21kLT5icHApOwo+IC0JCQlyZXR1cm4gLUVJTlZB TDsKPiArCQlzd2l0Y2ggKG1vZGVfY21kLT5waXhlbF9mb3JtYXQpIHsKPiArCQljYXNlIERSTV9G T1JNQVRfWFJHQjg4ODg6Cj4gKwkJY2FzZSBEUk1fRk9STUFUX0FSR0I4ODg4Ogo+ICsJCQlicmVh azsKPiArCQljYXNlIERSTV9GT1JNQVRfWFJHQjE1NTU6Cj4gKwkJY2FzZSBEUk1fRk9STUFUX1JH QjU2NToKPiArCQkJYnJlYWs7Cj4gIAkJZGVmYXVsdDoKPiAtCQkJRFJNX0VSUk9SKCJJbnZhbGlk IGNvbG9yIGRlcHRoOiAlZFxuIiwgbW9kZV9jbWQtPmRlcHRoKTsKPiArCQkJRFJNX0VSUk9SKCJJ bnZhbGlkIHBpeGVsIGZvcm1hdDogJXNcbiIsCj4gKwkJCQkgIGRybV9nZXRfZm9ybWF0X25hbWUo bW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9uYW1lKSk7Cj4gIAkJCXJldHVybiAtRUlO VkFMOwo+ICAJCX0KPiAgCX0KPiBAQCAtODc1LDE0ICs4NjQsMTAgQEAgc3RhdGljIGludCB2bXdf a21zX25ld19mcmFtZWJ1ZmZlcl9kbWFidWYoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwK PiAgCQlnb3RvIG91dF9lcnIxOwo+ICAJfQo+ICAKPiAtCXZmYmQtPmJhc2UuYmFzZS5iaXRzX3Bl cl9waXhlbCA9IG1vZGVfY21kLT5icHA7Cj4gLQl2ZmJkLT5iYXNlLmJhc2UucGl0Y2hlc1swXSA9 IG1vZGVfY21kLT5waXRjaDsKPiAtCXZmYmQtPmJhc2UuYmFzZS5kZXB0aCA9IG1vZGVfY21kLT5k ZXB0aDsKPiAtCXZmYmQtPmJhc2UuYmFzZS53aWR0aCA9IG1vZGVfY21kLT53aWR0aDsKPiAtCXZm YmQtPmJhc2UuYmFzZS5oZWlnaHQgPSBtb2RlX2NtZC0+aGVpZ2h0Owo+ICsJZHJtX2hlbHBlcl9t b2RlX2ZpbGxfZmJfc3RydWN0KCZ2ZmJkLT5iYXNlLmJhc2UsIG1vZGVfY21kKTsKPiAgCXZmYmQt PmJhc2UuZG1hYnVmID0gdHJ1ZTsKPiAgCXZmYmQtPmJ1ZmZlciA9IHZtd19kbWFidWZfcmVmZXJl bmNlKGRtYWJ1Zik7Cj4gLQl2ZmJkLT5iYXNlLnVzZXJfaGFuZGxlID0gbW9kZV9jbWQtPmhhbmRs ZTsKPiArCXZmYmQtPmJhc2UudXNlcl9oYW5kbGUgPSBtb2RlX2NtZC0+aGFuZGxlc1swXTsKPiAg CSpvdXQgPSAmdmZiZC0+YmFzZTsKPiAgCj4gIAlyZXQgPSBkcm1fZnJhbWVidWZmZXJfaW5pdChk ZXYsICZ2ZmJkLT5iYXNlLmJhc2UsCj4gQEAgLTkxNiw3ICs5MDEsNyBAQCB2bXdfa21zX25ld19m cmFtZWJ1ZmZlcihzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQlzdHJ1Y3Qgdm13 X2RtYV9idWZmZXIgKmRtYWJ1ZiwKPiAgCQkJc3RydWN0IHZtd19zdXJmYWNlICpzdXJmYWNlLAo+ ICAJCQlib29sIG9ubHlfMmQsCj4gLQkJCWNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQgKm1v ZGVfY21kKQo+ICsJCQljb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQpCj4g IHsKPiAgCXN0cnVjdCB2bXdfZnJhbWVidWZmZXIgKnZmYiA9IE5VTEw7Cj4gIAlib29sIGlzX2Rt YWJ1Zl9wcm94eSA9IGZhbHNlOwo+IEBAIC05NzEsNyArOTU2LDcgQEAgdm13X2ttc19uZXdfZnJh bWVidWZmZXIoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKPiAgCj4gIHN0YXRpYyBzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICp2bXdfa21zX2ZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ICAJCQkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4gLQkJCQkJCSBjb25z dCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQyKQo+ICsJCQkJCQkgY29uc3Qgc3Ry dWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21kKQo+ICB7Cj4gIAlzdHJ1Y3Qgdm13X3ByaXZh dGUgKmRldl9wcml2ID0gdm13X3ByaXYoZGV2KTsKPiAgCXN0cnVjdCB0dG1fb2JqZWN0X2ZpbGUg KnRmaWxlID0gdm13X2Zwcml2KGZpbGVfcHJpdiktPnRmaWxlOwo+IEBAIC05NzksMjUgKzk2NCw4 IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICp2bXdfa21zX2ZiX2NyZWF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJc3RydWN0IHZtd19zdXJmYWNlICpzdXJmYWNlID0gTlVM TDsKPiAgCXN0cnVjdCB2bXdfZG1hX2J1ZmZlciAqYm8gPSBOVUxMOwo+ICAJc3RydWN0IHR0bV9i YXNlX29iamVjdCAqdXNlcl9vYmo7Cj4gLQlzdHJ1Y3QgZHJtX21vZGVfZmJfY21kIG1vZGVfY21k Owo+IC0JY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqaW5mbzsKPiAgCWludCByZXQ7Cj4g IAo+IC0JaW5mbyA9IGRybV9mb3JtYXRfaW5mbyhtb2RlX2NtZDItPnBpeGVsX2Zvcm1hdCk7Cj4g LQlpZiAoIWluZm8gfHwgIWluZm8tPmRlcHRoKSB7Cj4gLQkJc3RydWN0IGRybV9mb3JtYXRfbmFt ZV9idWYgZm9ybWF0X25hbWU7Cj4gLQkJRFJNX0VSUk9SKCJVbnN1cHBvcnRlZCBmcmFtZWJ1ZmZl ciBmb3JtYXQgJXNcbiIsCj4gLQkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9j bWQyLT5waXhlbF9mb3JtYXQsICZmb3JtYXRfbmFtZSkpOwo+IC0JCXJldHVybiBFUlJfUFRSKC1F SU5WQUwpOwo+IC0JfQo+IC0KPiAtCW1vZGVfY21kLndpZHRoID0gbW9kZV9jbWQyLT53aWR0aDsK PiAtCW1vZGVfY21kLmhlaWdodCA9IG1vZGVfY21kMi0+aGVpZ2h0Owo+IC0JbW9kZV9jbWQucGl0 Y2ggPSBtb2RlX2NtZDItPnBpdGNoZXNbMF07Cj4gLQltb2RlX2NtZC5oYW5kbGUgPSBtb2RlX2Nt ZDItPmhhbmRsZXNbMF07Cj4gLQltb2RlX2NtZC5kZXB0aCA9IGluZm8tPmRlcHRoOwo+IC0JbW9k ZV9jbWQuYnBwID0gaW5mby0+Y3BwWzBdICogODsKPiAtCj4gIAkvKioKPiAgCSAqIFRoaXMgY29k ZSBzaG91bGQgYmUgY29uZGl0aW9uZWQgb24gU2NyZWVuIE9iamVjdHMgbm90IGJlaW5nIHVzZWQu Cj4gIAkgKiBJZiBzY3JlZW4gb2JqZWN0cyBhcmUgdXNlZCwgd2UgY2FuIGFsbG9jYXRlIGEgR01S IHRvIGhvbGQgdGhlCj4gQEAgLTEwMDUsOCArOTczLDggQEAgc3RhdGljIHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKnZtd19rbXNfZmJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkg Ki8KPiAgCj4gIAlpZiAoIXZtd19rbXNfdmFsaWRhdGVfbW9kZV92cmFtKGRldl9wcml2LAo+IC0J CQkJCW1vZGVfY21kLnBpdGNoLAo+IC0JCQkJCW1vZGVfY21kLmhlaWdodCkpIHsKPiArCQkJCQlt b2RlX2NtZC0+cGl0Y2hlc1swXSwKPiArCQkJCQltb2RlX2NtZC0+aGVpZ2h0KSkgewo+ICAJCURS TV9FUlJPUigiUmVxdWVzdGVkIG1vZGUgZXhjZWVkIGJvdW5kaW5nIGJveCBsaW1pdC5cbiIpOwo+ ICAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ICAJfQo+IEBAIC0xMDIwLDcgKzk4OCw3IEBA IHN0YXRpYyBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICp2bXdfa21zX2ZiX2NyZWF0ZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+ICAJICogY29tbWFuZCBzdHJlYW0gdXNpbmcgdXNlci1zcGFjZSBo YW5kbGVzLgo+ICAJICovCj4gIAo+IC0JdXNlcl9vYmogPSB0dG1fYmFzZV9vYmplY3RfbG9va3Vw KHRmaWxlLCBtb2RlX2NtZC5oYW5kbGUpOwo+ICsJdXNlcl9vYmogPSB0dG1fYmFzZV9vYmplY3Rf bG9va3VwKHRmaWxlLCBtb2RlX2NtZC0+aGFuZGxlc1swXSk7Cj4gIAlpZiAodW5saWtlbHkodXNl cl9vYmogPT0gTlVMTCkpIHsKPiAgCQlEUk1fRVJST1IoIkNvdWxkIG5vdCBsb2NhdGUgcmVxdWVz dGVkIGttcyBmcmFtZSBidWZmZXIuXG4iKTsKPiAgCQlyZXR1cm4gRVJSX1BUUigtRU5PRU5UKTsK PiBAQCAtMTAzMiwxNCArMTAwMCwxNCBAQCBzdGF0aWMgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq dm13X2ttc19mYl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCj4gIAkvKiByZXR1 cm5zIGVpdGhlciBhIGRtYWJ1ZiBvciBzdXJmYWNlICovCj4gIAlyZXQgPSB2bXdfdXNlcl9sb29r dXBfaGFuZGxlKGRldl9wcml2LCB0ZmlsZSwKPiAtCQkJCSAgICAgbW9kZV9jbWQuaGFuZGxlLAo+ ICsJCQkJICAgICBtb2RlX2NtZC0+aGFuZGxlc1swXSwKPiAgCQkJCSAgICAgJnN1cmZhY2UsICZi byk7Cj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gZXJyX291dDsKPiAgCj4gIAl2ZmIgPSB2bXdfa21z X25ld19mcmFtZWJ1ZmZlcihkZXZfcHJpdiwgYm8sIHN1cmZhY2UsCj4gIAkJCQkgICAgICAhKGRl dl9wcml2LT5jYXBhYmlsaXRpZXMgJiBTVkdBX0NBUF8zRCksCj4gLQkJCQkgICAgICAmbW9kZV9j bWQpOwo+ICsJCQkJICAgICAgbW9kZV9jbWQpOwo+ICAJaWYgKElTX0VSUih2ZmIpKSB7Cj4gIAkJ cmV0ID0gUFRSX0VSUih2ZmIpOwo+ICAJCWdvdG8gZXJyX291dDsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9rbXMuaAo+IGluZGV4IGZmNDgwM2MxMDdiYy4uZjQyY2U5YTFjM2FjIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmgKPiBAQCAtMjQ4LDcgKzI0OCw3IEBAIHZtd19r bXNfbmV3X2ZyYW1lYnVmZmVyKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCXN0 cnVjdCB2bXdfZG1hX2J1ZmZlciAqZG1hYnVmLAo+ICAJCQlzdHJ1Y3Qgdm13X3N1cmZhY2UgKnN1 cmZhY2UsCj4gIAkJCWJvb2wgb25seV8yZCwKPiAtCQkJY29uc3Qgc3RydWN0IGRybV9tb2RlX2Zi X2NtZCAqbW9kZV9jbWQpOwo+ICsJCQljb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9k ZV9jbWQpOwo+ICBpbnQgdm13X2ttc19mYmRldl9pbml0X2RhdGEoc3RydWN0IHZtd19wcml2YXRl ICpkZXZfcHJpdiwKPiAgCQkJICAgIHVuc2lnbmVkIHVuaXQsCj4gIAkJCSAgICB1MzIgbWF4X3dp ZHRoLAo+IC0tIAo+IDIuMTAuMgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==