From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonyoung Shim Subject: Re: [PATCH 01/11] drm: add plane support Date: Tue, 25 Oct 2011 19:53:02 +0900 Message-ID: <4EA6950E.7020905@samsung.com> References: <1319536026-2877-1-git-send-email-jbarnes@virtuousgeek.org> <1319536026-2877-2-git-send-email-jbarnes@virtuousgeek.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1319536026-2877-2-git-send-email-jbarnes@virtuousgeek.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: Jesse Barnes Cc: intel-gfx@lists.freedesktop.org, =?UTF-8?B?Imt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20gPj4g67CV6rK966+8Ig==?= , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org MTAvMjUvMjAxMSAwNjo0NiBQTSwgSmVzc2UgQmFybmVzIOyTtCDquIA6Cj4gUGxhbmVzIGFyZSBh IGJpdCBsaWtlIGhhbGYtQ1JUQ3MuICBUaGV5IGhhdmUgYSBsb2NhdGlvbiBhbmQgZmIsIGJ1dAo+ IGRvbid0IGRyaXZlIG91dHB1dHMgZGlyZWN0bHkuICBBZGQgc3VwcG9ydCBmb3IgaGFuZGxpbmcg dGhlbSB0byB0aGUgY29yZQo+IEtNUyBjb2RlLgo+Cj4gU2lnbmVkLW9mZi1ieTogSmVzc2UgQmFy bmVzPGpiYXJuZXNAdmlydHVvdXNnZWVrLm9yZz4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9k cm1fY3J0Yy5jIHwgIDIzNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLQo+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYyAgfCAgICAzICsKPiAgIGluY2x1ZGUv ZHJtL2RybS5oICAgICAgICAgIHwgICAgMyArCj4gICBpbmNsdWRlL2RybS9kcm1fY3J0Yy5oICAg ICB8ICAgNzEgKysrKysrKysrKysrKy0KPiAgIGluY2x1ZGUvZHJtL2RybV9tb2RlLmggICAgIHwg ICAzMyArKysrKysKPiAgIDUgZmlsZXMgY2hhbmdlZCwgMzQzIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+IGluZGV4IGZlNzM4ZjAuLjBlMTI5YjEgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2NydGMuYwo+IEBAIC01MzUsNiArNTM1LDQ4IEBAIHZvaWQgZHJtX2VuY29kZXJfY2xl YW51cChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gICB9Cj4gICBFWFBPUlRfU1lNQk9M KGRybV9lbmNvZGVyX2NsZWFudXApOwo+Cj4gK3ZvaWQgZHJtX3BsYW5lX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gKwkJICAgIHVuc2lnbmVk IGxvbmcgcG9zc2libGVfY3J0Y3MsCj4gKwkJICAgIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVu Y3MgKmZ1bmNzLAo+ICsJCSAgICB1aW50MzJfdCAqZm9ybWF0cywgdWludDMyX3QgZm9ybWF0X2Nv dW50KQo+ICt7Cj4gKwltdXRleF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiArCj4g KwlwbGFuZS0+ZGV2ID0gZGV2Owo+ICsJZHJtX21vZGVfb2JqZWN0X2dldChkZXYsJnBsYW5lLT5i YXNlLCBEUk1fTU9ERV9PQkpFQ1RfUExBTkUpOwo+ICsJcGxhbmUtPmZ1bmNzID0gZnVuY3M7Cj4g KwlwbGFuZS0+Zm9ybWF0X3R5cGVzID0ga21hbGxvYyhzaXplb2YodWludDMyX3QpICogZm9ybWF0 X2NvdW50LAo+ICsJCQkJICAgICAgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIXBsYW5lLT5mb3JtYXRf dHlwZXMpIHsKPiArCQlEUk1fREVCVUdfS01TKCJvdXQgb2YgbWVtb3J5IHdoZW4gYWxsb2NhdGlu ZyBwbGFuZVxuIik7Cj4gKwkJZHJtX21vZGVfb2JqZWN0X3B1dChkZXYsJnBsYW5lLT5iYXNlKTsK PiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJbWVtY3B5KHBsYW5lLT5mb3JtYXRfdHlwZXMsIGZv cm1hdHMsIGZvcm1hdF9jb3VudCk7Cj4gKwlwbGFuZS0+Zm9ybWF0X2NvdW50ID0gZm9ybWF0X2Nv dW50Owo+ICsJcGxhbmUtPnBvc3NpYmxlX2NydGNzID0gcG9zc2libGVfY3J0Y3M7Cj4gKwo+ICsJ bGlzdF9hZGRfdGFpbCgmcGxhbmUtPmhlYWQsJmRldi0+bW9kZV9jb25maWcucGxhbmVfbGlzdCk7 Cj4gKwlkZXYtPm1vZGVfY29uZmlnLm51bV9wbGFuZSsrOwo+ICsKPiArCW11dGV4X3VubG9jaygm ZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChkcm1fcGxhbmVf aW5pdCk7Cj4gKwo+ICt2b2lkIGRybV9wbGFuZV9jbGVhbnVwKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKPiArCj4g KwltdXRleF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiArCWtmcmVlKHBsYW5lLT5m b3JtYXRfdHlwZXMpOwo+ICsJZHJtX21vZGVfb2JqZWN0X3B1dChkZXYsJnBsYW5lLT5iYXNlKTsK PiArCWxpc3RfZGVsKCZwbGFuZS0+aGVhZCk7Cj4gKwlkZXYtPm1vZGVfY29uZmlnLm51bV9wbGFu ZS0tOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiArfQo+ICtF WFBPUlRfU1lNQk9MKGRybV9wbGFuZV9jbGVhbnVwKTsKPiArCj4gICAvKioKPiAgICAqIGRybV9t b2RlX2NyZWF0ZSAtIGNyZWF0ZSBhIG5ldyBkaXNwbGF5IG1vZGUKPiAgICAqIEBkZXY6IERSTSBk ZXZpY2UKPiBAQCAtODY2LDYgKzkwOCw3IEBAIHZvaWQgZHJtX21vZGVfY29uZmlnX2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAlJTklUX0xJU1RfSEVBRCgmZGV2LT5tb2RlX2NvbmZp Zy5lbmNvZGVyX2xpc3QpOwo+ICAgCUlOSVRfTElTVF9IRUFEKCZkZXYtPm1vZGVfY29uZmlnLnBy b3BlcnR5X2xpc3QpOwo+ICAgCUlOSVRfTElTVF9IRUFEKCZkZXYtPm1vZGVfY29uZmlnLnByb3Bl cnR5X2Jsb2JfbGlzdCk7Cj4gKwlJTklUX0xJU1RfSEVBRCgmZGV2LT5tb2RlX2NvbmZpZy5wbGFu ZV9saXN0KTsKPiAgIAlpZHJfaW5pdCgmZGV2LT5tb2RlX2NvbmZpZy5jcnRjX2lkcik7Cj4KPiAg IAltdXRleF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiBAQCAtMTQ2Niw2ICsxNTA5 LDE5MyBAQCBvdXQ6Cj4gICB9Cj4KPiAgIC8qKgo+ICsgKiBkcm1fbW9kZV9nZXRwbGFuZV9yZXMg LSBnZXQgcGxhbmUgaW5mbwo+ICsgKiBAZGV2OiBEUk0gZGV2aWNlCj4gKyAqIEBkYXRhOiBpb2N0 bCBkYXRhCj4gKyAqIEBmaWxlX3ByaXY6IERSTSBmaWxlIGluZm8KPiArICoKPiArICogUmV0dXJu IGFuIHBsYW5lIGNvdW50IGFuZCBzZXQgb2YgSURzLgo+ICsgKi8KPiAraW50IGRybV9tb2RlX2dl dHBsYW5lX3JlcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICsJCQkgICAg c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gK3sKPiArCXN0cnVjdCBkcm1fbW9kZV9nZXRf cGxhbmVfcmVzICpwbGFuZV9yZXNwID0gZGF0YTsKPiArCXN0cnVjdCBkcm1fbW9kZV9jb25maWcg KmNvbmZpZzsKPiArCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ICsJdWludDMyX3QgX191c2Vy ICpwbGFuZV9wdHI7Cj4gKwlpbnQgY29waWVkID0gMCwgcmV0ID0gMDsKPiArCj4gKwlpZiAoIWRy bV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkpCj4gKwkJcmV0dXJuIC1F SU5WQUw7Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4gKwlj b25maWcgPSZkZXYtPm1vZGVfY29uZmlnOwo+ICsKPiArCS8qCj4gKwkgKiBUaGlzIGlvY3RsIGlz IGNhbGxlZCB0d2ljZSwgb25jZSB0byBkZXRlcm1pbmUgaG93IG11Y2ggc3BhY2UgaXMKPiArCSAq IG5lZWRlZCwgYW5kIHRoZSAybmQgdGltZSB0byBmaWxsIGl0Lgo+ICsJICovCj4gKwlpZiAoY29u ZmlnLT5udW1fcGxhbmUmJgo+ICsJICAgIChwbGFuZV9yZXNwLT5jb3VudF9wbGFuZXM+PSBjb25m aWctPm51bV9wbGFuZSkpIHsKPiArCQlwbGFuZV9wdHIgPSAodWludDMyX3QgKikodW5zaWduZWQg bG9uZylwbGFuZV9yZXNwLT5wbGFuZV9pZF9wdHI7Cj4gKwo+ICsJCWxpc3RfZm9yX2VhY2hfZW50 cnkocGxhbmUsJmNvbmZpZy0+cGxhbmVfbGlzdCwgaGVhZCkgewo+ICsJCQlpZiAocHV0X3VzZXIo cGxhbmUtPmJhc2UuaWQsIHBsYW5lX3B0ciArIGNvcGllZCkpIHsKPiArCQkJCXJldCA9IC1FRkFV TFQ7Cj4gKwkJCQlnb3RvIG91dDsKPiArCQkJfQo+ICsJCQljb3BpZWQrKzsKPiArCQl9Cj4gKwl9 Cj4gKwlwbGFuZV9yZXNwLT5jb3VudF9wbGFuZXMgPSBjb25maWctPm51bV9wbGFuZTsKPiArCj4g K291dDoKPiArCW11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4gKwlyZXR1 cm4gcmV0Owo+ICt9Cj4gKwo+ICsvKioKPiArICogZHJtX21vZGVfZ2V0cGxhbmUgLSBnZXQgcGxh bmUgaW5mbwo+ICsgKiBAZGV2OiBEUk0gZGV2aWNlCj4gKyAqIEBkYXRhOiBpb2N0bCBkYXRhCj4g KyAqIEBmaWxlX3ByaXY6IERSTSBmaWxlIGluZm8KPiArICoKPiArICogUmV0dXJuIHBsYW5lIGlu Zm8sIGluY2x1ZGluZyBmb3JtYXRzIHN1cHBvcnRlZCwgZ2FtbWEgc2l6ZSwgYW55Cj4gKyAqIGN1 cnJlbnQgZmIsIGV0Yy4KPiArICovCj4gK2ludCBkcm1fbW9kZV9nZXRwbGFuZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICsJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dikKPiArewo+ICsJc3RydWN0IGRybV9tb2RlX2dldF9wbGFuZSAqcGxhbmVfcmVzcCA9IGRhdGE7 Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmo7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZTsKPiArCXVpbnQzMl90IF9fdXNlciAqZm9ybWF0X3B0cjsKPiArCWludCByZXQgPSAwOwo+ ICsKPiArCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VUKSkK PiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwltdXRleF9sb2NrKCZkZXYtPm1vZGVfY29uZmln Lm11dGV4KTsKPiArCW9iaiA9IGRybV9tb2RlX29iamVjdF9maW5kKGRldiwgcGxhbmVfcmVzcC0+ cGxhbmVfaWQsCj4gKwkJCQkgICBEUk1fTU9ERV9PQkpFQ1RfUExBTkUpOwo+ICsJaWYgKCFvYmop IHsKPiArCQlyZXQgPSAtRUlOVkFMOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsJcGxhbmUgPSBv YmpfdG9fcGxhbmUob2JqKTsKPiArCj4gKwlpZiAocGxhbmUtPmNydGMpCj4gKwkJcGxhbmVfcmVz cC0+Y3J0Y19pZCA9IHBsYW5lLT5jcnRjLT5iYXNlLmlkOwo+ICsJZWxzZQo+ICsJCXBsYW5lX3Jl c3AtPmNydGNfaWQgPSAwOwo+ICsKPiArCWlmIChwbGFuZS0+ZmIpCj4gKwkJcGxhbmVfcmVzcC0+ ZmJfaWQgPSBwbGFuZS0+ZmItPmJhc2UuaWQ7Cj4gKwllbHNlCj4gKwkJcGxhbmVfcmVzcC0+ZmJf aWQgPSAwOwo+ICsKPiArCXBsYW5lX3Jlc3AtPnBsYW5lX2lkID0gcGxhbmUtPmJhc2UuaWQ7Cj4g KwlwbGFuZV9yZXNwLT5wb3NzaWJsZV9jcnRjcyA9IHBsYW5lLT5wb3NzaWJsZV9jcnRjczsKPiAr CXBsYW5lX3Jlc3AtPmdhbW1hX3NpemUgPSBwbGFuZS0+Z2FtbWFfc2l6ZTsKPiArCj4gKwkvKgo+ ICsJICogVGhpcyBpb2N0bCBpcyBjYWxsZWQgdHdpY2UsIG9uY2UgdG8gZGV0ZXJtaW5lIGhvdyBt dWNoIHNwYWNlIGlzCj4gKwkgKiBuZWVkZWQsIGFuZCB0aGUgMm5kIHRpbWUgdG8gZmlsbCBpdC4K PiArCSAqLwo+ICsJaWYgKHBsYW5lLT5mb3JtYXRfY291bnQmJgo+ICsJICAgIChwbGFuZV9yZXNw LT5jb3VudF9mb3JtYXRfdHlwZXM+PSBwbGFuZS0+Zm9ybWF0X2NvdW50KSkgewo+ICsJCWZvcm1h dF9wdHIgPSAodWludDMyX3QgKikodW5zaWduZWQgbG9uZylwbGFuZV9yZXNwLT5mb3JtYXRfdHlw ZV9wdHI7Cj4gKwkJaWYgKGNvcHlfdG9fdXNlcihmb3JtYXRfcHRyLAo+ICsJCQkJIHBsYW5lLT5m b3JtYXRfdHlwZXMsCj4gKwkJCQkgc2l6ZW9mKHVpbnQzMl90KSAqIHBsYW5lLT5mb3JtYXRfY291 bnQpKSB7Cj4gKwkJCXJldCA9IC1FRkFVTFQ7Cj4gKwkJCWdvdG8gb3V0Owo+ICsJCX0KPiArCX0K PiArCXBsYW5lX3Jlc3AtPmNvdW50X2Zvcm1hdF90eXBlcyA9IHBsYW5lLT5mb3JtYXRfY291bnQ7 Cj4gKwo+ICtvdXQ6Cj4gKwltdXRleF91bmxvY2soJmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwo+ ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArLyoqCj4gKyAqIGRybV9tb2RlX3NldHBsYW5lIC0g c2V0IHVwIG9yIHRlYXIgZG93biBhbiBwbGFuZQo+ICsgKiBAZGV2OiBEUk0gZGV2aWNlCj4gKyAq IEBkYXRhOiBpb2N0bCBkYXRhKgo+ICsgKiBAZmlsZV9wcml2ZTogRFJNIGZpbGUgaW5mbwo+ICsg Kgo+ICsgKiBTZXQgcGxhbmUgaW5mbywgaW5jbHVkaW5nIHBsYWNlbWVudCwgZmIsIHNjYWxpbmcs IGFuZCBvdGhlciBmYWN0b3JzLgo+ICsgKiBPciBwYXNzIGEgTlVMTCBmYiB0byBkaXNhYmxlLgo+ ICsgKi8KPiAraW50IGRybV9tb2RlX3NldHBsYW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCj4gKwkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICt7Cj4gKwlzdHJ1 Y3QgZHJtX21vZGVfc2V0X3BsYW5lICpwbGFuZV9yZXEgPSBkYXRhOwo+ICsJc3RydWN0IGRybV9t b2RlX29iamVjdCAqb2JqOwo+ICsJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gKwlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKPiArCWludCBy ZXQgPSAwOwo+ICsKPiArCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9N T0RFU0VUKSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwltdXRleF9sb2NrKCZkZXYtPm1v ZGVfY29uZmlnLm11dGV4KTsKPiArCj4gKwkvKgo+ICsJICogRmlyc3QsIGZpbmQgdGhlIHBsYW5l LCBjcnRjLCBhbmQgZmIgb2JqZWN0cy4gIElmIG5vdCBhdmFpbGFibGUsCj4gKwkgKiB3ZSBkb24n dCBib3RoZXIgdG8gY2FsbCB0aGUgZHJpdmVyLgo+ICsJICovCj4gKwlvYmogPSBkcm1fbW9kZV9v YmplY3RfZmluZChkZXYsIHBsYW5lX3JlcS0+cGxhbmVfaWQsCj4gKwkJCQkgICBEUk1fTU9ERV9P QkpFQ1RfUExBTkUpOwo+ICsJaWYgKCFvYmopIHsKPiArCQlEUk1fREVCVUdfS01TKCJVbmtub3du IHBsYW5lIElEICVkXG4iLAo+ICsJCQkgICAgICBwbGFuZV9yZXEtPnBsYW5lX2lkKTsKPiArCQly ZXQgPSAtRUlOVkFMOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsJcGxhbmUgPSBvYmpfdG9fcGxh bmUob2JqKTsKPiArCj4gKwkvKiBObyBmYiBtZWFucyBzaHV0IGl0IGRvd24gKi8KPiArCWlmICgh cGxhbmVfcmVxLT5mYl9pZCkgewo+ICsJCXBsYW5lLT5mdW5jcy0+ZGlzYWJsZV9wbGFuZShwbGFu ZSk7Cj4gKwkJZ290byBvdXQ7Cj4gKwl9Cj4gKwo+ICsJb2JqID0gZHJtX21vZGVfb2JqZWN0X2Zp bmQoZGV2LCBwbGFuZV9yZXEtPmNydGNfaWQsCj4gKwkJCQkgICBEUk1fTU9ERV9PQkpFQ1RfQ1JU Qyk7Cj4gKwlpZiAoIW9iaikgewo+ICsJCURSTV9ERUJVR19LTVMoIlVua25vd24gY3J0YyBJRCAl ZFxuIiwKPiArCQkJICAgICAgcGxhbmVfcmVxLT5jcnRjX2lkKTsKPiArCQlyZXQgPSAtRUlOVkFM Owo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsJY3J0YyA9IG9ial90b19jcnRjKG9iaik7Cj4gKwo+ ICsJb2JqID0gZHJtX21vZGVfb2JqZWN0X2ZpbmQoZGV2LCBwbGFuZV9yZXEtPmZiX2lkLAo+ICsJ CQkJICAgRFJNX01PREVfT0JKRUNUX0ZCKTsKPiArCWlmICghb2JqKSB7Cj4gKwkJRFJNX0RFQlVH X0tNUygiVW5rbm93biBmcmFtZWJ1ZmZlciBJRCAlZFxuIiwKPiArCQkJICAgICAgcGxhbmVfcmVx LT5mYl9pZCk7Cj4gKwkJcmV0ID0gLUVJTlZBTDsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCWZi ID0gb2JqX3RvX2ZiKG9iaik7Cj4gKwo+ICsJcmV0ID0gcGxhbmUtPmZ1bmNzLT51cGRhdGVfcGxh bmUocGxhbmUsIGNydGMsIGZiLAo+ICsJCQkJCSBwbGFuZV9yZXEtPmNydGNfeCwgcGxhbmVfcmVx LT5jcnRjX3ksCj4gKwkJCQkJIHBsYW5lX3JlcS0+Y3J0Y193LCBwbGFuZV9yZXEtPmNydGNfaCwK PiArCQkJCQkgcGxhbmVfcmVxLT5zcmNfeCwgcGxhbmVfcmVxLT5zcmNfeSwKPiArCQkJCQkgcGxh bmVfcmVxLT5zcmNfaCwgcGxhbmVfcmVxLT5zcmNfdyk7Cj4gKwo+ICtvdXQ6Cj4gKwltdXRleF91 bmxvY2soJmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30K PiArCj4gKy8qKgo+ICAgICogZHJtX21vZGVfc2V0Y3J0YyAtIHNldCBDUlRDIGNvbmZpZ3VyYXRp b24KPiAgICAqIEBpbm9kZTogaW5vZGUgZnJvbSB0aGUgaW9jdGwKPiAgICAqIEBmaWxwOiBmaWxl ICogZnJvbSB0aGUgaW9jdGwKPiBAQCAtMTY4OCwxMSArMTkxOCwxMyBAQCBpbnQgZHJtX21vZGVf YWRkZmIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4KPiAg IAlpZiAoKGNvbmZpZy0+bWluX3dpZHRoPiAgci0+d2lkdGgpIHx8IChyLT53aWR0aD4gIGNvbmZp Zy0+bWF4X3dpZHRoKSkgewo+IC0JCURSTV9FUlJPUigibW9kZSBuZXcgZnJhbWVidWZmZXIgd2lk dGggbm90IHdpdGhpbiBsaW1pdHNcbiIpOwo+ICsJCURSTV9FUlJPUigiYmFkIGZyYW1lYnVmZmVy IHdpZHRoICVkLCBzaG91bGQgYmU+PSAlZCYmICA8PSAlZFxuIiwKPiArCQkJICByLT53aWR0aCwg Y29uZmlnLT5taW5fd2lkdGgsIGNvbmZpZy0+bWF4X3dpZHRoKTsKPiAgIAkJcmV0dXJuIC1FSU5W QUw7Cj4gICAJfQo+ICAgCWlmICgoY29uZmlnLT5taW5faGVpZ2h0PiAgci0+aGVpZ2h0KSB8fCAo ci0+aGVpZ2h0PiAgY29uZmlnLT5tYXhfaGVpZ2h0KSkgewo+IC0JCURSTV9FUlJPUigibW9kZSBu ZXcgZnJhbWVidWZmZXIgaGVpZ2h0IG5vdCB3aXRoaW4gbGltaXRzXG4iKTsKPiArCQlEUk1fRVJS T1IoImJhZCBmcmFtZWJ1ZmZlciBoZWlnaHQgJWQsIHNob3VsZCBiZT49ICVkJiYgIDw9ICVkXG4i LAo+ICsJCQkgIHItPmhlaWdodCwgY29uZmlnLT5taW5faGVpZ2h0LCBjb25maWctPm1heF9oZWln aHQpOwo+ICAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgIAl9Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKPiBpbmRleCA5 M2ExMTJkLi4xNWRhNjE4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCj4gQEAgLTEzNSw4ICsxMzUsMTEgQEAg c3RhdGljIHN0cnVjdCBkcm1faW9jdGxfZGVzYyBkcm1faW9jdGxzW10gPSB7Cj4gICAJRFJNX0lP Q1RMX0RFRihEUk1fSU9DVExfR0VNX09QRU4sIGRybV9nZW1fb3Blbl9pb2N0bCwgRFJNX0FVVEh8 RFJNX1VOTE9DS0VEKSwKPgo+ICAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VUUkVT T1VSQ0VTLCBkcm1fbW9kZV9nZXRyZXNvdXJjZXMsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxM T1d8RFJNX1VOTE9DS0VEKSwKPiArCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VUUExB TkVSRVNPVVJDRVMsIGRybV9tb2RlX2dldHBsYW5lX3JlcywgRFJNX01BU1RFUnxEUk1fQ09OVFJP TF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+ICAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVf R0VUQ1JUQywgZHJtX21vZGVfZ2V0Y3J0YywgRFJNX01BU1RFUnxEUk1fQ09OVFJPTF9BTExPV3xE Uk1fVU5MT0NLRUQpLAo+ICAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfU0VUQ1JUQywg ZHJtX21vZGVfc2V0Y3J0YywgRFJNX01BU1RFUnxEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NL RUQpLAo+ICsJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRQTEFORSwgZHJtX21vZGVf Z2V0cGxhbmUsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiAr CURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfU0VUUExBTkUsIGRybV9tb2RlX3NldHBsYW5l LCBEUk1fTUFTVEVSfERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCj4gICAJRFJNX0lP Q1RMX0RFRihEUk1fSU9DVExfTU9ERV9DVVJTT1IsIGRybV9tb2RlX2N1cnNvcl9pb2N0bCwgRFJN X01BU1RFUnxEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+ICAgCURSTV9JT0NUTF9E RUYoRFJNX0lPQ1RMX01PREVfR0VUR0FNTUEsIGRybV9tb2RlX2dhbW1hX2dldF9pb2N0bCwgRFJN X01BU1RFUnxEUk1fVU5MT0NLRUQpLAo+ICAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVf U0VUR0FNTUEsIGRybV9tb2RlX2dhbW1hX3NldF9pb2N0bCwgRFJNX01BU1RFUnxEUk1fVU5MT0NL RUQpLAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm0uaCBiL2luY2x1ZGUvZHJtL2RybS5o Cj4gaW5kZXggNGJlMzNiNC4uMjg5Nzk2NyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm0u aAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybS5oCj4gQEAgLTcxNCw2ICs3MTQsOSBAQCBzdHJ1Y3Qg ZHJtX2dldF9jYXAgewo+ICAgI2RlZmluZSBEUk1fSU9DVExfTU9ERV9DUkVBVEVfRFVNQiBEUk1f SU9XUigweEIyLCBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIpCj4gICAjZGVmaW5lIERSTV9J T0NUTF9NT0RFX01BUF9EVU1CICAgIERSTV9JT1dSKDB4QjMsIHN0cnVjdCBkcm1fbW9kZV9tYXBf ZHVtYikKPiAgICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfREVTVFJPWV9EVU1CICAgIERSTV9JT1dS KDB4QjQsIHN0cnVjdCBkcm1fbW9kZV9kZXN0cm95X2R1bWIpCj4gKyNkZWZpbmUgRFJNX0lPQ1RM X01PREVfR0VUUExBTkVSRVNPVVJDRVMgRFJNX0lPV1IoMHhCNSwgc3RydWN0IGRybV9tb2RlX2dl dF9wbGFuZV9yZXMpCj4gKyNkZWZpbmUgRFJNX0lPQ1RMX01PREVfR0VUUExBTkUJRFJNX0lPV1Io MHhCNiwgc3RydWN0IGRybV9tb2RlX2dldF9wbGFuZSkKPiArI2RlZmluZSBEUk1fSU9DVExfTU9E RV9TRVRQTEFORQlEUk1fSU9XUigweEI3LCBzdHJ1Y3QgZHJtX21vZGVfc2V0X3BsYW5lKQo+Cj4g ICAvKioKPiAgICAqIERldmljZSBzcGVjaWZpYyBpb2N0bHMgc2hvdWxkIG9ubHkgYmUgaW4gdGhl aXIgcmVzcGVjdGl2ZSBoZWFkZXJzCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jcnRj LmggYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gaW5kZXggODAyMDc5OC4uZDdmMDNhYSAxMDA2 NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJt X2NydGMuaAo+IEBAIC00NCw2ICs0NCw3IEBAIHN0cnVjdCBkcm1fZnJhbWVidWZmZXI7Cj4gICAj ZGVmaW5lIERSTV9NT0RFX09CSkVDVF9QUk9QRVJUWSAweGIwYjBiMGIwCj4gICAjZGVmaW5lIERS TV9NT0RFX09CSkVDVF9GQiAweGZiZmJmYmZiCj4gICAjZGVmaW5lIERSTV9NT0RFX09CSkVDVF9C TE9CIDB4YmJiYmJiYmIKPiArI2RlZmluZSBEUk1fTU9ERV9PQkpFQ1RfUExBTkUgMHhlZWVlZWVl ZQo+Cj4gICBzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0IHsKPiAgIAl1aW50MzJfdCBpZDsKPiBAQCAt Mjc4LDYgKzI3OSw3IEBAIHN0cnVjdCBkcm1fY3J0YzsKPiAgIHN0cnVjdCBkcm1fY29ubmVjdG9y Owo+ICAgc3RydWN0IGRybV9lbmNvZGVyOwo+ICAgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19l dmVudDsKPiArc3RydWN0IGRybV9wbGFuZTsKPgo+ICAgLyoqCj4gICAgKiBkcm1fY3J0Y19mdW5j cyAtIGNvbnRyb2wgQ1JUQ3MgZm9yIGEgZ2l2ZW4gZGV2aWNlCj4gQEAgLTUzNiw2ICs1MzgsNTgg QEAgc3RydWN0IGRybV9jb25uZWN0b3Igewo+ICAgfTsKPgo+ICAgLyoqCj4gKyAqIGRybV9wbGFu ZV9mdW5jcyAtIGRyaXZlciBwbGFuZSBjb250cm9sIGZ1bmN0aW9ucwo+ICsgKiBAdXBkYXRlX3Bs YW5lOiB1cGRhdGUgdGhlIHBsYW5lIGNvbmZpZ3VyYXRpb24KPiArICovCj4gK3N0cnVjdCBkcm1f cGxhbmVfZnVuY3Mgewo+ICsJaW50ICgqdXBkYXRlX3BsYW5lKShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKPiArCQkJICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIsCj4gKwkJCSAgICBpbnQgY3J0Y194LCBpbnQgY3J0Y195LAo+ICsJCQkgICAgdW5z aWduZWQgaW50IGNydGNfdywgdW5zaWduZWQgaW50IGNydGNfaCwKPiArCQkJICAgIHVpbnQzMl90 IHNyY194LCB1aW50MzJfdCBzcmNfeSwKPiArCQkJICAgIHVpbnQzMl90IHNyY193LCB1aW50MzJf dCBzcmNfaCk7Cj4gKwlpbnQgKCpkaXNhYmxlX3BsYW5lKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSk7Cj4gK307Cj4gKwo+ICsvKioKPiArICogZHJtX3BsYW5lIC0gY2VudHJhbCBEUk0gcGxhbmUg Y29udHJvbCBzdHJ1Y3R1cmUKPiArICogQGRldjogRFJNIGRldmljZSB0aGlzIHBsYW5lIGJlbG9u Z3MgdG8KPiArICogQGtkZXY6IGtlcm5lbCBkZXZpY2UKPiArICogQGF0dHI6IGtkZXYgYXR0cmli dXRlcwo+ICsgKiBAaGVhZDogZm9yIGxpc3QgbWFuYWdlbWVudAo+ICsgKiBAYmFzZTogYmFzZSBt b2RlIG9iamVjdAo+ICsgKiBAY3J0Y194OiB4IHBvc2l0aW9uIG9mIHBsYW5lIChyZWxhdGl2ZSB0 byBwaXBlIGJhc2UpCj4gKyAqIEBjcnRjX3k6IHkgcG9zaXRpb24gb2YgcGxhbmUKPiArICogQHg6 IHggb2Zmc2V0IGludG8gZmIKPiArICogQHk6IHkgb2Zmc2V0IGludG8gZmIKQWJvdmUgNCBtZW1i ZXJzIGRvbid0IGJlIHVzZWQuCgo+ICsgKiBAY3J0YzogQ1JUQyB0aGlzIHBsYW5lIGlzIGZlZWRp bmcKPiArICovCj4gK3N0cnVjdCBkcm1fcGxhbmUgewo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRl djsKPiArCXN0cnVjdCBkZXZpY2Uga2RldjsKPiArCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICph dHRyOwo+ICsJc3RydWN0IGxpc3RfaGVhZCBoZWFkOwo+ICsKPiArCXN0cnVjdCBkcm1fbW9kZV9v YmplY3QgYmFzZTsKPiArCj4gKwl1aW50MzJfdCBwb3NzaWJsZV9jcnRjczsKPiArCXVpbnQzMl90 ICpmb3JtYXRfdHlwZXM7Cj4gKwl1aW50MzJfdCBmb3JtYXRfY291bnQ7Cj4gKwo+ICsJc3RydWN0 IGRybV9jcnRjICpjcnRjOwo+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7Cj4gKwo+ICsJ LyogQ1JUQyBnYW1tYSBzaXplIGZvciByZXBvcnRpbmcgdG8gdXNlcnNwYWNlICovCj4gKwl1aW50 MzJfdCBnYW1tYV9zaXplOwo+ICsJdWludDE2X3QgKmdhbW1hX3N0b3JlOwo+ICsKPiArCWJvb2wg ZW5hYmxlZDsKPiArCj4gKwljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzICpmdW5jczsKPiAr CXZvaWQgKmhlbHBlcl9wcml2YXRlOwo+ICt9Owo+ICsKPiArLyoqCj4gICAgKiBzdHJ1Y3QgZHJt X21vZGVfc2V0Cj4gICAgKgo+ICAgICogUmVwcmVzZW50cyBhIHNpbmdsZSBjcnRjIHRoZSBjb25u ZWN0b3JzIHRoYXQgaXQgZHJpdmVzIHdpdGggd2hhdCBtb2RlCj4gQEAgLTU4OSw2ICs2NDMsOCBA QCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnIHsKPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIGNvbm5lY3Rv cl9saXN0Owo+ICAgCWludCBudW1fZW5jb2RlcjsKPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIGVuY29k ZXJfbGlzdDsKPiArCWludCBudW1fcGxhbmU7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIHBsYW5lX2xp c3Q7Cj4KPiAgIAlpbnQgbnVtX2NydGM7Cj4gICAJc3RydWN0IGxpc3RfaGVhZCBjcnRjX2xpc3Q7 Cj4gQEAgLTY0MSw2ICs2OTcsNyBAQCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnIHsKPiAgICNkZWZp bmUgb2JqX3RvX2ZiKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyLCBi YXNlKQo+ICAgI2RlZmluZSBvYmpfdG9fcHJvcGVydHkoeCkgY29udGFpbmVyX29mKHgsIHN0cnVj dCBkcm1fcHJvcGVydHksIGJhc2UpCj4gICAjZGVmaW5lIG9ial90b19ibG9iKHgpIGNvbnRhaW5l cl9vZih4LCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IsIGJhc2UpCj4gKyNkZWZpbmUgb2JqX3Rv X3BsYW5lKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgZHJtX3BsYW5lLCBiYXNlKQo+Cj4KPiAg IGV4dGVybiB2b2lkIGRybV9jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiBAQCAt NjYwLDYgKzcxNywxMyBAQCBleHRlcm4gdm9pZCBkcm1fZW5jb2Rlcl9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gICAJCQkgICAgIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9mdW5jcyAq ZnVuY3MsCj4gICAJCQkgICAgIGludCBlbmNvZGVyX3R5cGUpOwo+Cj4gK2V4dGVybiB2b2lkIGRy bV9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCSAgIHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAo+ICsJCQkgICB1bnNpZ25lZCBsb25nIHBvc3NpYmxlX2NydGNzLAo+ICsJ CQkgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzICpmdW5jcywKPiArCQkJICAgdWludDMy X3QgKmZvcm1hdHMsIHVpbnQzMl90IGZvcm1hdF9jb3VudCk7Cj4gK2V4dGVybiB2b2lkIGRybV9w bGFuZV9jbGVhbnVwKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKPiArCj4gICBleHRlcm4gdm9p ZCBkcm1fZW5jb2Rlcl9jbGVhbnVwKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4KPiAg IGV4dGVybiBjaGFyICpkcm1fZ2V0X2Nvbm5lY3Rvcl9uYW1lKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpOwo+IEBAIC03NTMsMTMgKzgxNywxOCBAQCBleHRlcm4gc3RydWN0IGRybV9t b2RlX29iamVjdCAqZHJtX21vZGVfb2JqZWN0X2ZpbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAgIC8qIElPQ1RMcyAqLwo+ICAgZXh0ZXJuIGludCBkcm1fbW9kZV9nZXRyZXNvdXJjZXMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJCQkgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXYpOwo+IC0KPiArZXh0ZXJuIGludCBkcm1fbW9kZV9nZXRwbGFuZV9yZXMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiArCQkJCSAgIHN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2KTsKPiAgIGV4dGVybiBpbnQgZHJtX21vZGVfZ2V0Y3J0YyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ICAgCQkJICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmls ZV9wcml2KTsKPiAgIGV4dGVybiBpbnQgZHJtX21vZGVfZ2V0Y29ubmVjdG9yKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gICAJCQkgICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdik7Cj4gICBleHRlcm4gaW50IGRybV9tb2RlX3NldGNydGMoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiAgIAkJCSAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dik7Cj4gK2V4dGVybiBpbnQgZHJtX21vZGVfZ2V0cGxhbmUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiArCQkJICAgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsK PiArZXh0ZXJuIGludCBkcm1fbW9kZV9zZXRwbGFuZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICsJCQkgICAgICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+ICAg ZXh0ZXJuIGludCBkcm1fbW9kZV9jdXJzb3JfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAgIAkJCQl2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gICBleHRl cm4gaW50IGRybV9tb2RlX2FkZGZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gZGlmZiAtLWdp dCBhL2luY2x1ZGUvZHJtL2RybV9tb2RlLmggYi9pbmNsdWRlL2RybS9kcm1fbW9kZS5oCj4gaW5k ZXggYzQ5NjFlYS4uMDc3MTFiMCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZS5o Cj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGUuaAo+IEBAIC0xMjAsNiArMTIwLDM5IEBAIHN0 cnVjdCBkcm1fbW9kZV9jcnRjIHsKPiAgIAlzdHJ1Y3QgZHJtX21vZGVfbW9kZWluZm8gbW9kZTsK PiAgIH07Cj4KPiArLyogUGxhbmVzIGJsZW5kIHdpdGggb3Igb3ZlcnJpZGUgb3RoZXIgYml0cyBv biB0aGUgQ1JUQyAqLwo+ICtzdHJ1Y3QgZHJtX21vZGVfc2V0X3BsYW5lIHsKPiArCV9fdTMyIHBs YW5lX2lkOwo+ICsJX191MzIgY3J0Y19pZDsKPiArCV9fdTMyIGZiX2lkOyAvKiBmYiBvYmplY3Qg Y29udGFpbnMgc3VyZmFjZSBmb3JtYXQgdHlwZSAqLwo+ICsKPiArCS8qIFNpZ25lZCBkZXN0IGxv Y2F0aW9uIGFsbG93cyBpdCB0byBiZSBwYXJ0aWFsbHkgb2ZmIHNjcmVlbiAqLwo+ICsJX19zMzIg Y3J0Y194LCBjcnRjX3k7Cj4gKwlfX3UzMiBjcnRjX3csIGNydGNfaDsKPiArCj4gKwkvKiBTb3Vy Y2UgdmFsdWVzIGFyZSAxNi4xNiBmaXhlZCBwb2ludCAqLwo+ICsJX191MzIgc3JjX3gsIHNyY195 Owo+ICsJX191MzIgc3JjX2gsIHNyY193Owo+ICt9Owo+ICsKPiArc3RydWN0IGRybV9tb2RlX2dl dF9wbGFuZSB7Cj4gKwlfX3U2NCBmb3JtYXRfdHlwZV9wdHI7Cj4gKwlfX3UzMiBwbGFuZV9pZDsK PiArCj4gKwlfX3UzMiBjcnRjX2lkOwo+ICsJX191MzIgZmJfaWQ7Cj4gKwo+ICsJX191MzIgcG9z c2libGVfY3J0Y3M7Cj4gKwlfX3UzMiBnYW1tYV9zaXplOwo+ICsKPiArCV9fdTMyIGNvdW50X2Zv cm1hdF90eXBlczsKPiArfTsKCkkgd29uZGVyIHdoeSBkb2Vzbid0IGdpdmUgdG8gdXNlciBjcnRj X3gsIGNydGNfeSwgY3J0Y193LCBjcnRjX2gKaW5mb3JtYXRpb24/Cgo+ICsKPiArc3RydWN0IGRy bV9tb2RlX2dldF9wbGFuZV9yZXMgewo+ICsJX191NjQgcGxhbmVfaWRfcHRyOwo+ICsJX191MzIg Y291bnRfcGxhbmVzOwo+ICt9Owo+ICsKPiAgICNkZWZpbmUgRFJNX01PREVfRU5DT0RFUl9OT05F CTAKPiAgICNkZWZpbmUgRFJNX01PREVfRU5DT0RFUl9EQUMJMQo+ICAgI2RlZmluZSBEUk1fTU9E RV9FTkNPREVSX1RNRFMJMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK