From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 06/15] drm/i915: Pass around dev_priv for ddi buffer programming Date: Thu, 10 Dec 2015 14:25:42 +0100 Message-ID: <20151210132542.GD20822@phenom.ffwll.local> References: <1449597590-6971-1-git-send-email-ville.syrjala@linux.intel.com> <1449597590-6971-7-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-f44.google.com (mail-wm0-f44.google.com [74.125.82.44]) by gabe.freedesktop.org (Postfix) with ESMTPS id D1DAA7A08D for ; Thu, 10 Dec 2015 05:25:45 -0800 (PST) Received: by wmww144 with SMTP id w144so24600066wmw.0 for ; Thu, 10 Dec 2015 05:25:44 -0800 (PST) Content-Disposition: inline In-Reply-To: <1449597590-6971-7-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 T24gVHVlLCBEZWMgMDgsIDIwMTUgYXQgMDc6NTk6NDFQTSArMDIwMCwgdmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiAKPiBNYWtlIHRoZSBkZGkgYnVmZmVyIHByb2dyYW1taW5n IGNvZGUgYSBiaXQgbW9yZSBuZWF0IGJ5IHBhc3NpbmcKPiBhcm91bmQgZGV2X3ByaXYgaW5zdGVh ZCBvZiBkZXYuCj4gCj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KClRvbyBsYXp5IHRvIGNoZWNrIHlvdSBkaWRuJ3QgdXBzZXQg dGhlIGNvbXBpbGVyIGhlcmUuIEFzc3VtaW5nIGdjYyBpcwpzdGlsbCBoYXBweToKClJldmlld2Vk LWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgoKPiAtLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgfCA3OSArKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCA0 MiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGluZGV4IGUyODE4 MTNjYWQ4Mi4uNWQwYjAzZDZkMzg4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBA QCAtMzAxLDggKzMwMSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYnh0X2RkaV9idWZfdHJhbnMg Ynh0X2RkaV90cmFuc2xhdGlvbnNfaGRtaVtdID0gewo+ICAJeyAxNTQsIDB4OUEsIDEsIDEyOCwg dHJ1ZSB9LAkvKiA5OgkxMjAwCQkwICAgKi8KPiAgfTsKPiAgCj4gLXN0YXRpYyB2b2lkIGJ4dF9k ZGlfdnN3aW5nX3NlcXVlbmNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBsZXZlbCwKPiAt CQkJCSAgICBlbnVtIHBvcnQgcG9ydCwgaW50IHR5cGUpOwo+ICtzdGF0aWMgdm9pZCBieHRfZGRp X3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJ CQkgICAgdTMyIGxldmVsLCBlbnVtIHBvcnQgcG9ydCwgaW50IHR5cGUpOwo+ICAKPiAgc3RhdGlj IHZvaWQgZGRpX2dldF9lbmNvZGVyX3BvcnQoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2Vu Y29kZXIsCj4gIAkJCQkgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqKmRpZ19wb3J0LAo+IEBA IC0zNDksMTIgKzM0OSwxMiBAQCBpbnRlbF9kaWdfcG9ydF9zdXBwb3J0c19oZG1pKGNvbnN0IHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQo+ICB9Cj4gIAo+ICBzdGF0 aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgKgo+IC1za2xfZ2V0X2J1Zl90cmFuc19kcChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgKm5fZW50cmllcykKPiArc2tsX2dldF9idWZfdHJh bnNfZHAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgKm5fZW50cmllcykK PiAgewo+IC0JaWYgKElTX1NLTF9VTFgoZGV2KSkgewo+ICsJaWYgKElTX1NLTF9VTFgoZGV2X3By aXYpKSB7Cj4gIAkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUoc2tsX3lfZGRpX3RyYW5zbGF0aW9u c19kcCk7Cj4gIAkJcmV0dXJuIHNrbF95X2RkaV90cmFuc2xhdGlvbnNfZHA7Cj4gLQl9IGVsc2Ug aWYgKElTX1NLTF9VTFQoZGV2KSkgewo+ICsJfSBlbHNlIGlmIChJU19TS0xfVUxUKGRldl9wcml2 KSkgewo+ICAJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKHNrbF91X2RkaV90cmFuc2xhdGlvbnNf ZHApOwo+ICAJCXJldHVybiBza2xfdV9kZGlfdHJhbnNsYXRpb25zX2RwOwo+ICAJfSBlbHNlIHsK PiBAQCAtMzY0LDE1ICszNjQsMTMgQEAgc2tsX2dldF9idWZfdHJhbnNfZHAoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgaW50ICpuX2VudHJpZXMpCj4gIH0KPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZGRpX2J1Zl90cmFucyAqCj4gLXNrbF9nZXRfYnVmX3RyYW5zX2VkcChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBpbnQgKm5fZW50cmllcykKPiArc2tsX2dldF9idWZfdHJhbnNfZWRwKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50ICpuX2VudHJpZXMpCj4gIHsKPiAtCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQo+ ICAJaWYgKGRldl9wcml2LT5lZHBfbG93X3Zzd2luZykgewo+IC0JCWlmIChJU19TS0xfVUxYKGRl dikpIHsKPiArCQlpZiAoSVNfU0tMX1VMWChkZXZfcHJpdikpIHsKPiAgCQkJKm5fZW50cmllcyA9 IEFSUkFZX1NJWkUoc2tsX3lfZGRpX3RyYW5zbGF0aW9uc19lZHApOwo+ICAJCQlyZXR1cm4gc2ts X3lfZGRpX3RyYW5zbGF0aW9uc19lZHA7Cj4gLQkJfSBlbHNlIGlmIChJU19TS0xfVUxUKGRldikp IHsKPiArCQl9IGVsc2UgaWYgKElTX1NLTF9VTFQoZGV2X3ByaXYpKSB7Cj4gIAkJCSpuX2VudHJp ZXMgPSBBUlJBWV9TSVpFKHNrbF91X2RkaV90cmFuc2xhdGlvbnNfZWRwKTsKPiAgCQkJcmV0dXJu IHNrbF91X2RkaV90cmFuc2xhdGlvbnNfZWRwOwo+ICAJCX0gZWxzZSB7Cj4gQEAgLTM4MSwxMyAr Mzc5LDEzIEBAIHNrbF9nZXRfYnVmX3RyYW5zX2VkcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBp bnQgKm5fZW50cmllcykKPiAgCQl9Cj4gIAl9Cj4gIAo+IC0JcmV0dXJuIHNrbF9nZXRfYnVmX3Ry YW5zX2RwKGRldiwgbl9lbnRyaWVzKTsKPiArCXJldHVybiBza2xfZ2V0X2J1Zl90cmFuc19kcChk ZXZfcHJpdiwgbl9lbnRyaWVzKTsKPiAgfQo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlf YnVmX3RyYW5zICoKPiAtc2tsX2dldF9idWZfdHJhbnNfaGRtaShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgKm5fZW50cmllcykKPiArc2tsX2dldF9idWZfdHJhbnNfaGRtaShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCAqbl9lbnRyaWVzKQo+ICB7Cj4gLQlpZiAoSVNf U0tMX1VMWChkZXYpKSB7Cj4gKwlpZiAoSVNfU0tMX1VMWChkZXZfcHJpdikpIHsKPiAgCQkqbl9l bnRyaWVzID0gQVJSQVlfU0laRShza2xfeV9kZGlfdHJhbnNsYXRpb25zX2hkbWkpOwo+ICAJCXJl dHVybiBza2xfeV9kZGlfdHJhbnNsYXRpb25zX2hkbWk7Cj4gIAl9IGVsc2Ugewo+IEBAIC00MDMs MTAgKzQwMSw5IEBAIHNrbF9nZXRfYnVmX3RyYW5zX2hkbWkoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgaW50ICpuX2VudHJpZXMpCj4gICAqIGluIGVpdGhlciBGREkgb3IgRFAgbW9kZXMgb25seSwg YXMgSERNSSBjb25uZWN0aW9ucyB3aWxsIHdvcmsgd2l0aCBib3RoCj4gICAqIG9mIHRob3NlCj4g ICAqLwo+IC1zdGF0aWMgdm9pZCBpbnRlbF9wcmVwYXJlX2RkaV9idWZmZXJzKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIGVudW0gcG9ydCBwb3J0LAo+IC0JCQkJICAgICAgYm9vbCBzdXBwb3J0c19o ZG1pKQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9wcmVwYXJlX2RkaV9idWZmZXJzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCSAgICAgIGVudW0gcG9ydCBwb3J0LCBib29s IHN1cHBvcnRzX2hkbWkpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAl1MzIgaWJvb3N0X2JpdCA9IDA7Cj4gIAlpbnQgaSwg bl9oZG1pX2VudHJpZXMsIG5fZHBfZW50cmllcywgbl9lZHBfZW50cmllcywgaGRtaV9kZWZhdWx0 X2VudHJ5LAo+ICAJICAgIHNpemU7Cj4gQEAgLTQxNywyOCArNDE0LDI4IEBAIHN0YXRpYyB2b2lk IGludGVsX3ByZXBhcmVfZGRpX2J1ZmZlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBw b3J0IHBvcnQsCj4gIAljb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9u c19oZG1pOwo+ICAJY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgKmRkaV90cmFuc2xhdGlvbnM7 Cj4gIAo+IC0JaWYgKElTX0JST1hUT04oZGV2KSkgewo+ICsJaWYgKElTX0JST1hUT04oZGV2X3By aXYpKSB7Cj4gIAkJaWYgKCFzdXBwb3J0c19oZG1pKQo+ICAJCQlyZXR1cm47Cj4gIAo+ICAJCS8q IFZzd2luZyBwcm9ncmFtbWluZyBmb3IgSERNSSAqLwo+IC0JCWJ4dF9kZGlfdnN3aW5nX3NlcXVl bmNlKGRldiwgaGRtaV9sZXZlbCwgcG9ydCwKPiArCQlieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShk ZXZfcHJpdiwgaGRtaV9sZXZlbCwgcG9ydCwKPiAgCQkJCQlJTlRFTF9PVVRQVVRfSERNSSk7Cj4g IAkJcmV0dXJuOwo+IC0JfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0Uo ZGV2KSkgewo+ICsJfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFL RShkZXZfcHJpdikpIHsKPiAgCQlkZGlfdHJhbnNsYXRpb25zX2ZkaSA9IE5VTEw7Cj4gIAkJZGRp X3RyYW5zbGF0aW9uc19kcCA9Cj4gLQkJCQlza2xfZ2V0X2J1Zl90cmFuc19kcChkZXYsICZuX2Rw X2VudHJpZXMpOwo+ICsJCQkJc2tsX2dldF9idWZfdHJhbnNfZHAoZGV2X3ByaXYsICZuX2RwX2Vu dHJpZXMpOwo+ICAJCWRkaV90cmFuc2xhdGlvbnNfZWRwID0KPiAtCQkJCXNrbF9nZXRfYnVmX3Ry YW5zX2VkcChkZXYsICZuX2VkcF9lbnRyaWVzKTsKPiArCQkJCXNrbF9nZXRfYnVmX3RyYW5zX2Vk cChkZXZfcHJpdiwgJm5fZWRwX2VudHJpZXMpOwo+ICAJCWRkaV90cmFuc2xhdGlvbnNfaGRtaSA9 Cj4gLQkJCQlza2xfZ2V0X2J1Zl90cmFuc19oZG1pKGRldiwgJm5faGRtaV9lbnRyaWVzKTsKPiAr CQkJCXNrbF9nZXRfYnVmX3RyYW5zX2hkbWkoZGV2X3ByaXYsICZuX2hkbWlfZW50cmllcyk7Cj4g IAkJaGRtaV9kZWZhdWx0X2VudHJ5ID0gODsKPiAgCQkvKiBJZiB3ZSdyZSBib29zdGluZyB0aGUg Y3VycmVudCwgc2V0IGJpdCAzMSBvZiB0cmFuczEgKi8KPiAgCQlpZiAoZGV2X3ByaXYtPnZidC5k ZGlfcG9ydF9pbmZvW3BvcnRdLmhkbWlfYm9vc3RfbGV2ZWwgfHwKPiAgCQkgICAgZGV2X3ByaXYt PnZidC5kZGlfcG9ydF9pbmZvW3BvcnRdLmRwX2Jvb3N0X2xldmVsKQo+ICAJCQlpYm9vc3RfYml0 ID0gMTw8MzE7Cj4gLQl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXYpKSB7Cj4gKwl9IGVsc2Ug aWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKPiAgCQlkZGlfdHJhbnNsYXRpb25zX2ZkaSA9 IGJkd19kZGlfdHJhbnNsYXRpb25zX2ZkaTsKPiAgCQlkZGlfdHJhbnNsYXRpb25zX2RwID0gYmR3 X2RkaV90cmFuc2xhdGlvbnNfZHA7Cj4gIAkJZGRpX3RyYW5zbGF0aW9uc19lZHAgPSBiZHdfZGRp X3RyYW5zbGF0aW9uc19lZHA7Cj4gQEAgLTQ0Nyw3ICs0NDQsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9wcmVwYXJlX2RkaV9idWZmZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcG9ydCBw b3J0LAo+ICAJCW5fZHBfZW50cmllcyA9IEFSUkFZX1NJWkUoYmR3X2RkaV90cmFuc2xhdGlvbnNf ZHApOwo+ICAJCW5faGRtaV9lbnRyaWVzID0gQVJSQVlfU0laRShiZHdfZGRpX3RyYW5zbGF0aW9u c19oZG1pKTsKPiAgCQloZG1pX2RlZmF1bHRfZW50cnkgPSA3Owo+IC0JfSBlbHNlIGlmIChJU19I QVNXRUxMKGRldikpIHsKPiArCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKPiAg CQlkZGlfdHJhbnNsYXRpb25zX2ZkaSA9IGhzd19kZGlfdHJhbnNsYXRpb25zX2ZkaTsKPiAgCQlk ZGlfdHJhbnNsYXRpb25zX2RwID0gaHN3X2RkaV90cmFuc2xhdGlvbnNfZHA7Cj4gIAkJZGRpX3Ry YW5zbGF0aW9uc19lZHAgPSBoc3dfZGRpX3RyYW5zbGF0aW9uc19kcDsKPiBAQCAtNDc4LDcgKzQ3 NSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByZXBhcmVfZGRpX2J1ZmZlcnMoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgZW51bSBwb3J0IHBvcnQsCj4gIAkJc2l6ZSA9IG5fZHBfZW50cmllczsKPiAg CQlicmVhazsKPiAgCWNhc2UgUE9SVF9EOgo+IC0JCWlmIChpbnRlbF9kcF9pc19lZHAoZGV2LCBQ T1JUX0QpKSB7Cj4gKwkJaWYgKGludGVsX2RwX2lzX2VkcChkZXZfcHJpdi0+ZGV2LCBQT1JUX0Qp KSB7Cj4gIAkJCWRkaV90cmFuc2xhdGlvbnMgPSBkZGlfdHJhbnNsYXRpb25zX2VkcDsKPiAgCQkJ c2l6ZSA9IG5fZWRwX2VudHJpZXM7Cj4gIAkJfSBlbHNlIHsKPiBAQCAtNTQ1LDcgKzU0Miw3IEBA IHZvaWQgaW50ZWxfcHJlcGFyZV9kZGkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQlzdXBw b3J0c19oZG1pID0gaW50ZWxfZGlnX3BvcnQgJiYKPiAgCQkJCWludGVsX2RpZ19wb3J0X3N1cHBv cnRzX2hkbWkoaW50ZWxfZGlnX3BvcnQpOwo+ICAKPiAtCQlpbnRlbF9wcmVwYXJlX2RkaV9idWZm ZXJzKGRldiwgcG9ydCwgc3VwcG9ydHNfaGRtaSk7Cj4gKwkJaW50ZWxfcHJlcGFyZV9kZGlfYnVm ZmVycyh0b19pOTE1KGRldiksIHBvcnQsIHN1cHBvcnRzX2hkbWkpOwo+ICAJCXZpc2l0ZWRbcG9y dF0gPSB0cnVlOwo+ICAJfQo+ICB9Cj4gQEAgLTIwNjIsMTAgKzIwNTksOSBAQCB2b2lkIGludGVs X2RkaV9kaXNhYmxlX3BpcGVfY2xvY2soc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMpCj4g IAkJCSAgIFRSQU5TX0NMS19TRUxfRElTQUJMRUQpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBz a2xfZGRpX3NldF9pYm9vc3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGxldmVsLAo+IC0J CQkgICAgICAgZW51bSBwb3J0IHBvcnQsIGludCB0eXBlKQo+ICtzdGF0aWMgdm9pZCBza2xfZGRp X3NldF9pYm9vc3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkgICAg ICAgdTMyIGxldmVsLCBlbnVtIHBvcnQgcG9ydCwgaW50IHR5cGUpCj4gIHsKPiAtCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAljb25zdCBz dHJ1Y3QgZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9uczsKPiAgCXVpbnQ4X3QgaWJvb3N0 Owo+ICAJdWludDhfdCBkcF9pYm9vc3QsIGhkbWlfaWJvb3N0Owo+IEBAIC0yMDgwLDIxICsyMDc2 LDIxIEBAIHN0YXRpYyB2b2lkIHNrbF9kZGlfc2V0X2lib29zdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB1MzIgbGV2ZWwsCj4gIAkJaWYgKGRwX2lib29zdCkgewo+ICAJCQlpYm9vc3QgPSBkcF9p Ym9vc3Q7Cj4gIAkJfSBlbHNlIHsKPiAtCQkJZGRpX3RyYW5zbGF0aW9ucyA9IHNrbF9nZXRfYnVm X3RyYW5zX2RwKGRldiwgJm5fZW50cmllcyk7Cj4gKwkJCWRkaV90cmFuc2xhdGlvbnMgPSBza2xf Z2V0X2J1Zl90cmFuc19kcChkZXZfcHJpdiwgJm5fZW50cmllcyk7Cj4gIAkJCWlib29zdCA9IGRk aV90cmFuc2xhdGlvbnNbbGV2ZWxdLmlfYm9vc3Q7Cj4gIAkJfQo+ICAJfSBlbHNlIGlmICh0eXBl ID09IElOVEVMX09VVFBVVF9FRFApIHsKPiAgCQlpZiAoZHBfaWJvb3N0KSB7Cj4gIAkJCWlib29z dCA9IGRwX2lib29zdDsKPiAgCQl9IGVsc2Ugewo+IC0JCQlkZGlfdHJhbnNsYXRpb25zID0gc2ts X2dldF9idWZfdHJhbnNfZWRwKGRldiwgJm5fZW50cmllcyk7Cj4gKwkJCWRkaV90cmFuc2xhdGlv bnMgPSBza2xfZ2V0X2J1Zl90cmFuc19lZHAoZGV2X3ByaXYsICZuX2VudHJpZXMpOwo+ICAJCQlp Ym9vc3QgPSBkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5pX2Jvb3N0Owo+ICAJCX0KPiAgCX0gZWxz ZSBpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkgewo+ICAJCWlmIChoZG1pX2lib29zdCkg ewo+ICAJCQlpYm9vc3QgPSBoZG1pX2lib29zdDsKPiAgCQl9IGVsc2Ugewo+IC0JCQlkZGlfdHJh bnNsYXRpb25zID0gc2tsX2dldF9idWZfdHJhbnNfaGRtaShkZXYsICZuX2VudHJpZXMpOwo+ICsJ CQlkZGlfdHJhbnNsYXRpb25zID0gc2tsX2dldF9idWZfdHJhbnNfaGRtaShkZXZfcHJpdiwgJm5f ZW50cmllcyk7Cj4gIAkJCWlib29zdCA9IGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmlfYm9vc3Q7 Cj4gIAkJfQo+ICAJfSBlbHNlIHsKPiBAQCAtMjExOSwxMCArMjExNSw5IEBAIHN0YXRpYyB2b2lk IHNrbF9kZGlfc2V0X2lib29zdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgbGV2ZWwsCj4g IAlJOTE1X1dSSVRFKERJU1BJT19DUl9UWF9CTVVfQ1IwLCByZWcpOwo+ICB9Cj4gIAo+IC1zdGF0 aWMgdm9pZCBieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 MzIgbGV2ZWwsCj4gLQkJCQkgICAgZW51bSBwb3J0IHBvcnQsIGludCB0eXBlKQo+ICtzdGF0aWMg dm9pZCBieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gKwkJCQkgICAgdTMyIGxldmVsLCBlbnVtIHBvcnQgcG9ydCwgaW50IHR5cGUpCj4g IHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4gIAljb25zdCBzdHJ1Y3QgYnh0X2RkaV9idWZfdHJhbnMgKmRkaV90cmFuc2xhdGlvbnM7 Cj4gIAl1MzIgbl9lbnRyaWVzLCBpOwo+ICAJdWludDMyX3QgdmFsOwo+IEBAIC0yMjM3LDcgKzIy MzIsNyBAQCBzdGF0aWMgdWludDMyX3QgdHJhbnNsYXRlX3NpZ25hbF9sZXZlbChpbnQgc2lnbmFs X2xldmVscykKPiAgdWludDMyX3QgZGRpX3NpZ25hbF9sZXZlbHMoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiAgewo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBkcF90 b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZHBvcnQt PmJhc2UuYmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRwb3J0LT5iYXNlLmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyID0gJmRwb3J0LT5iYXNlOwo+ICAJdWludDhfdCB0cmFpbl9zZXQgPSBpbnRlbF9kcC0+ dHJhaW5fc2V0WzBdOwo+ICAJaW50IHNpZ25hbF9sZXZlbHMgPSB0cmFpbl9zZXQgJiAoRFBfVFJB SU5fVk9MVEFHRV9TV0lOR19NQVNLIHwKPiBAQCAtMjI0NywxMCArMjI0MiwxMCBAQCB1aW50MzJf dCBkZGlfc2lnbmFsX2xldmVscyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAKPiAgCWxl dmVsID0gdHJhbnNsYXRlX3NpZ25hbF9sZXZlbChzaWduYWxfbGV2ZWxzKTsKPiAgCj4gLQlpZiAo SVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRldikpCj4gLQkJc2tsX2RkaV9zZXRfaWJv b3N0KGRldiwgbGV2ZWwsIHBvcnQsIGVuY29kZXItPnR5cGUpOwo+IC0JZWxzZSBpZiAoSVNfQlJP WFRPTihkZXYpKQo+IC0JCWJ4dF9kZGlfdnN3aW5nX3NlcXVlbmNlKGRldiwgbGV2ZWwsIHBvcnQs IGVuY29kZXItPnR5cGUpOwo+ICsJaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllM QUtFKGRldl9wcml2KSkKPiArCQlza2xfZGRpX3NldF9pYm9vc3QoZGV2X3ByaXYsIGxldmVsLCBw b3J0LCBlbmNvZGVyLT50eXBlKTsKPiArCWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+ ICsJCWJ4dF9kZGlfdnN3aW5nX3NlcXVlbmNlKGRldl9wcml2LCBsZXZlbCwgcG9ydCwgZW5jb2Rl ci0+dHlwZSk7Cj4gIAo+ICAJcmV0dXJuIERESV9CVUZfVFJBTlNfU0VMRUNUKGxldmVsKTsKPiAg fQo+IEBAIC0yMzMzLDggKzIzMjgsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJs ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiAgCQlpZiAoSVNfQlJPWFRP TihkZXYpKSB7Cj4gIAkJCWhkbWlfbGV2ZWwgPSBkZXZfcHJpdi0+dmJ0Lgo+ICAJCQkJZGRpX3Bv cnRfaW5mb1twb3J0XS5oZG1pX2xldmVsX3NoaWZ0Owo+IC0JCQlieHRfZGRpX3Zzd2luZ19zZXF1 ZW5jZShkZXYsIGhkbWlfbGV2ZWwsIHBvcnQsCj4gLQkJCQkJSU5URUxfT1VUUFVUX0hETUkpOwo+ ICsJCQlieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShkZXZfcHJpdiwgaGRtaV9sZXZlbCwgcG9ydCwK PiArCQkJCQkJSU5URUxfT1VUUFVUX0hETUkpOwo+ICAJCX0KPiAgCQlpbnRlbF9oZG1pLT5zZXRf aW5mb2ZyYW1lcyhlbmNvZGVyLAo+ICAJCQkJCSAgIGNydGMtPmNvbmZpZy0+aGFzX2hkbWlfc2lu aywKPiAtLSAKPiAyLjQuMTAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIElu dGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==