From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Kristian_H=C3=B8gsberg?= Subject: Re: [PATCH v2] drm/rockchip: Use an enum to identify Rockchip VOPs Date: Thu, 19 Oct 2017 10:46:43 -0700 Message-ID: References: <1478202408-11635-1-git-send-email-hoegsberg@chromium.org> <20171018175208.GA73666@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Mark yao Cc: Brian Norris , dri-devel , linux-rockchip@lists.infradead.org, Matthias Kaehlcke , "Kristian H. Kristensen" , Guenter Roeck List-Id: linux-rockchip.vger.kernel.org T24gV2VkLCBPY3QgMTgsIDIwMTcgYXQgNTo0OSBQTSwgTWFyayB5YW8gPG1hcmsueWFvQHJvY2st Y2hpcHMuY29tPiB3cm90ZToKPiBPbiAyMDE35bm0MTDmnIgxOeaXpSAwMTo1MiwgQnJpYW4gTm9y cmlzIHdyb3RlOgo+Pgo+PiBIaSBLcmlzdGlhbiwKPj4KPj4gT24gVGh1LCBOb3YgMDMsIDIwMTYg YXQgMTI6NDY6NDhQTSAtMDcwMCwgS3Jpc3RpYW4gSMO2Z3NiZXJnIHdyb3RlOgo+Pj4KPj4+IFdl IHVzZWQgdG8gY2FsbCBkcm1fb2ZfZW5jb2Rlcl9hY3RpdmVfZW5kcG9pbnRfaWQoKSBmcm9tCj4+ PiByb2NrY2hpcF9kcF9kcm1fZW5jb2Rlcl9hdG9taWNfY2hlY2soKSB0byBkZXRlcm1pbmUgdGhl IGVuZHBvaW50IGZvciB0aGUKPj4+IGFjdGl2ZSBlbmNvZGVyLiBIb3dldmVyLCB0aGUgZW5jb2Rl ciBpc24ndCBuZWNlc3NhcmlseSBhY3RpdmUgYXQgdGhpcwo+Pj4gcG9pbnQgb3IgaXQgbWF5IGJl IGNvbm5lY3RlZCB0byBkaWZmZXJlbnQgY3J0YyB0aGFuIHdoYXQgd2UncmUgc3dpdGNoaW5nCj4+ PiB0by4gSW5zdGVhZCwgbG9vayBhdCB0aGUgY3J0YyBmcm9tIHRoZSBkcm1fY3J0Y19zdGF0ZS4g IFRoaXMgZml4ZXMgd3JvbmcKPj4+IGNvbG9ycyB3aGVuIGRyaXZpbmcgdGhlIGVEUCB3aXRoIHRo ZSBiaWcgVk9QLiAgRnVydGhlciwgd2UgY2FuIGlkZW50aWZ5Cj4+PiB0aGUgdHlwZSBvZiBWT1Ag d2UncmUgZGVhbGluZyB3aXRoIGJ5IGp1c3QgcHV0dGluZyBhIFZPUCBpZCBlbnVtIGluIHRoZQo+ Pj4gdm9wX2RhdGEuCj4KPgo+IFVuZm9ydHVuYXRlbHksIHZvcCBpb211eCBhbmQgdm9wIGRhdGEg YXJlIG5vdCBvbmUtdG8tb25lIGNvcnJlc3BvbmRlbmNlLgo+Cj4gU3VjaCBhcyByazMyODgsIHZv cCBiaWcgYW5kIHZvcCBsaXR0bGUgYm90aCB1c2UgcmszMjg4X3ZvcCBkYXRhLCBpZiB5b3UgdXNl Cj4gdm9wIGRhdGEgaWQgd2lsbCBub3QgYmUgYWJsZQo+IHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4g dGhlbS4KCldoYXQgd291bGQgeW91IHN1Z2dlc3QgdGhlbj8gV2UgbmVlZCB0aGlzIHRvIGJlIGFi bGUgdG8gZHJpdmUgZURQIGZyb20KdGhlIGJpZyBWT1AuIFdlJ3ZlIGJlZW4gY2FycnlpbmcgdGhp cyBwYXRjaCBmb3IgcXVpdGUgYSB3aGlsZSBhbmQgaXQKaGFzbid0IHJlZ3Jlc3NlZCBuZWl0aGVy IHJrMzI4OCBub3IgcmszMzk5IGJvYXJkcy4KCktyaXN0aWFuCgo+IE1hcmsKPj4+Cj4+Pgo+Pj4g T24gd2F5IHRvIHRlc3QgdGhpcyBpcyB0byB1c2UgdGhlIG1vZGV0ZXN0IHRvb2wgZnJvbSBsaWJk cm06Cj4+Pgo+Pj4gICAgJCBtb2RldGVzdCAtTSByb2NrY2hpcCAtcyAzMkAyODoyNDAweDE2MDAK Pj4+Cj4+PiB3aGljaCBkaXNwbGF5cyBkYXJrIG9yIGJsYWNrIGNvbG9ycyBiZWNhdXNlIHdlIGZh aWwgdG8gbG9vayB1cCB0aGUKPj4+IGVuZHBvaW50IGFuZCB1c2UgZGVmYXVsdCAwICh3aGljaCBp cyBST0NLQ0hJUF9PVVRfTU9ERV9QODg4KSBmb3IgYmlnCj4+PiBWT1AgaW5zdGVhZCBvZiBSR0Ix MCBhcyByZXF1aXJlZC4KPj4+Cj4+PiBGb3IgcmVmZXJlbmNlLAo+Pj4KPj4+ICAgICQgbW9kZXRl c3QgLU0gcm9ja2NoaXAgLXMgMzJAMjU6MjQwMHgxNjAwCj4+Pgo+Pj4gZHJpdmVzIHRoZSBlRFAg ZnJvbSBsaXR0bGUgVk9QIGFuZCBkaXNwbGF5cyBjb3JyZWN0bHkuCj4+Pgo+Pj4gU2lnbmVkLW9m Zi1ieTogS3Jpc3RpYW4gSC4gS3Jpc3RlbnNlbiA8aG9lZ3NiZXJnQGNocm9taXVtLm9yZz4KPj4+ IC0tLQo+Pj4gdjI6IFN0cmlwcGVkIGNocm9tZW9zIGFubm90YXRpb25zLCBmaXggY29tcGlsZSBl cnJvcnMgZm9yIGRyaXZlcnMgSQo+Pj4gZGlkbid0Cj4+PiBjb21waWxlIHdoZW4gSSBmaXJzdCB3 cm90ZSB0aGUgcGF0Y2guCj4+Cj4+IERvIHlvdSBwbGFuIHRvIGZpeCB0aGUgZXJyb3JzIEd1ZW50 ZXIgcG9pbnRlZCBvdXQgYW5kIHJlc2VuZD8gVGhpcyBpcwo+PiBzdGlsbCBjYXVzaW5nIGNvbmZs aWN0cyBiZXR3ZWVuIG91ciBDaHJvbWVPUyBrZXJuZWwgdHJlZXMgYW5kIHVwc3RyZWFtLgo+Pgo+ PiBBbHNvLCBwbGVhc2UgQ0MgbGludXgtcm9ja2NoaXAgb24gUm9ja2NoaXAtcmVsYXRlZCBwYXRj aGVzLiBJdCdzIG11Y2gKPj4gZWFzaWVyIGZvciBtZSB0byBmaW5kIHlvdXIgd29yayB0aGF0IHdh eSA6KQo+Pgo+PiBCcmlhbgo+Pgo+Pj4gZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4 X2RwLXJvY2tjaGlwLmMgfCA0NQo+Pj4gKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+Pj4gICBk cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvY2RuLWRwLWNvcmUuYyAgICAgICAgICB8IDE5ICsrKysr LS0tLS0tCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jICAgICAg ICAgIHwgMTIgKysrKy0tLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf ZHJtX3ZvcC5jICAgICB8ICA3ICsrKysKPj4+ICAgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3Jv Y2tjaGlwX2RybV92b3AuaCAgICAgfCAxMCArKysrKysKPj4+ICAgZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYyAgICAgfCAgNCArKysKPj4+ICAgNiBmaWxlcyBjaGFu Z2VkLCA1NiBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKPj4+Cj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMKPj4+IGIv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMKPj4+IGluZGV4 IDU1OGEzYmMuLjlhZTRhOWMgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvYW5hbG9naXhfZHAtcm9ja2NoaXAuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMKPj4+IEBAIC0xOTYsMTQgKzE5NiwxNiBAQCBzdGF0 aWMgdm9pZCByb2NrY2hpcF9kcF9kcm1fZW5jb2Rlcl9lbmFibGUoc3RydWN0Cj4+PiBkcm1fZW5j b2RlciAqZW5jb2RlcikKPj4+ICAgICAgICAgaW50IHJldDsKPj4+ICAgICAgICAgdTMyIHZhbDsK Pj4+ICAgLSAgICAgcmV0ID0gZHJtX29mX2VuY29kZXJfYWN0aXZlX2VuZHBvaW50X2lkKGRwLT5k ZXYtPm9mX25vZGUsCj4+PiBlbmNvZGVyKTsKPj4+IC0gICAgICAgaWYgKHJldCA8IDApCj4+PiAt ICAgICAgICAgICAgICAgcmV0dXJuOwo+Pj4gLQo+Pj4gLSAgICAgICBpZiAocmV0KQo+Pj4gKyAg ICAgICBzd2l0Y2ggKHZvcF9nZXRfY3J0Y192b3BfaWQoZW5jb2Rlci0+Y3J0YykpIHsKPj4+ICsg ICAgICAgY2FzZSBSSzMzOTlfVk9QX0xJVDoKPj4+ICAgICAgICAgICAgICAgICB2YWwgPSBkcC0+ ZGF0YS0+bGNkc2VsX2xpdDsKPj4+IC0gICAgICAgZWxzZQo+Pj4gKyAgICAgICAgICAgICAgIGJy ZWFrOwo+Pj4gKyAgICAgICBjYXNlIFJLMzM5OV9WT1BfQklHOgo+Pj4gICAgICAgICAgICAgICAg IHZhbCA9IGRwLT5kYXRhLT5sY2RzZWxfYmlnOwo+Pj4gKyAgICAgICAgICAgICAgIGJyZWFrOwo+ Pj4gKyAgICAgICBkZWZhdWx0Ogo+Pj4gKyAgICAgICAgICAgICAgIHJldHVybjsKPj4+ICsgICAg ICAgfQo+Pj4gICAgICAgICBkZXZfZGJnKGRwLT5kZXYsICJ2b3AgJXMgb3V0cHV0IHRvIGRwXG4i LCAocmV0KSA/ICJMSVQiIDogIkJJRyIpOwo+Pj4gICBAQCAtMjMxLDM0ICsyMzMsMjMgQEAgcm9j a2NoaXBfZHBfZHJtX2VuY29kZXJfYXRvbWljX2NoZWNrKHN0cnVjdAo+Pj4gZHJtX2VuY29kZXIg KmVuY29kZXIsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlCj4+PiAqY29ubl9zdGF0ZSkKPj4+ICAgewo+Pj4gICAgICAg ICBzdHJ1Y3Qgcm9ja2NoaXBfY3J0Y19zdGF0ZSAqcyA9Cj4+PiB0b19yb2NrY2hpcF9jcnRjX3N0 YXRlKGNydGNfc3RhdGUpOwo+Pj4gLSAgICAgICBzdHJ1Y3Qgcm9ja2NoaXBfZHBfZGV2aWNlICpk cCA9IHRvX2RwKGVuY29kZXIpOwo+Pj4gLSAgICAgICBpbnQgcmV0Owo+Pj4gICAtICAgICAvKgo+ Pj4gLSAgICAgICAgKiBUaGUgaGFyZHdhcmUgSUMgZGVzaWduZWQgdGhhdCBWT1AgbXVzdCBvdXRw dXQgdGhlIFJHQjEwIHZpZGVvCj4+PiAtICAgICAgICAqIGZvcm1hdCB0byBlRFAgY29udG9sbGVy LCBhbmQgaWYgZURQIHBhbmVsIG9ubHkgc3VwcG9ydCBSR0I4LAo+Pj4gLSAgICAgICAgKiB0aGVu IGVEUCBjb250b2xsZXIgc2hvdWxkIGN1dCBkb3duIHRoZSB2aWRlbyBkYXRhLCBub3QgdmlhIFZP UAo+Pj4gLSAgICAgICAgKiBjb250b2xsZXIsIHRoYXQncyB3aHkgd2UgbmVlZCB0byBoYXJkY29k ZSB0aGUgVk9QIG91dHB1dCBtb2RlCj4+PiAtICAgICAgICAqIHRvIFJHQTEwIGhlcmUuCj4+PiAt ICAgICAgICAqLwo+Pj4gLQo+Pj4gLSAgICAgICByZXQgPSBkcm1fb2ZfZW5jb2Rlcl9hY3RpdmVf ZW5kcG9pbnRfaWQoZHAtPmRldi0+b2Zfbm9kZSwKPj4+IGVuY29kZXIpOwo+Pj4gLSAgICAgICBp ZiAocmV0IDwgMCkKPj4+IC0gICAgICAgICAgICAgICByZXR1cm4gMDsKPj4+IC0KPj4+IC0gICAg ICAgc3dpdGNoIChkcC0+ZGF0YS0+Y2hpcF90eXBlKSB7Cj4+PiAtICAgICAgIGNhc2UgUkszMzk5 X0VEUDoKPj4+ICsgICAgICAgc3dpdGNoICh2b3BfZ2V0X2NydGNfdm9wX2lkKGNydGNfc3RhdGUt PmNydGMpKSB7Cj4+PiArICAgICAgIGNhc2UgUkszMzk5X1ZPUF9MSVQ6Cj4+PiAgICAgICAgICAg ICAgICAgLyoKPj4+ICAgICAgICAgICAgICAgICAgKiBGb3IgUkszMzk5LCBWT1AgTGl0IG11c3Qg Y29kZSB0aGUgb3V0IG1vZGUgdG8gUkdCODg4LAo+Pj4gICAgICAgICAgICAgICAgICAqIFZPUCBC aWcgbXVzdCBjb2RlIHRoZSBvdXQgbW9kZSB0byBSR0IxMC4KPj4+ICAgICAgICAgICAgICAgICAg Ki8KPj4+IC0gICAgICAgICAgICAgICBpZiAocmV0KQo+Pj4gLSAgICAgICAgICAgICAgICAgICAg ICAgcy0+b3V0cHV0X21vZGUgPSBST0NLQ0hJUF9PVVRfTU9ERV9QODg4Owo+Pj4gLSAgICAgICAg ICAgICAgIGVsc2UKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgIHMtPm91dHB1dF9tb2RlID0g Uk9DS0NISVBfT1VUX01PREVfQUFBQTsKPj4+ICsgICAgICAgICAgICAgICBzLT5vdXRwdXRfbW9k ZSA9IFJPQ0tDSElQX09VVF9NT0RFX1A4ODg7Cj4+PiAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+ PiAtCj4+PiAgICAgICAgIGRlZmF1bHQ6Cj4+PiArICAgICAgICAgICAgICAgLyoKPj4+ICsgICAg ICAgICAgICAgICAgKiBUaGUgaGFyZHdhcmUgSUMgZGVzaWduZWQgdGhhdCBWT1AgbXVzdCBvdXRw dXQgdGhlCj4+PiBSR0IxMCB2aWRlbwo+Pj4gKyAgICAgICAgICAgICAgICAqIGZvcm1hdCB0byBl RFAgY29udG9sbGVyLCBhbmQgaWYgZURQIHBhbmVsIG9ubHkgc3VwcG9ydAo+Pj4gUkdCOCwKPj4+ ICsgICAgICAgICAgICAgICAgKiB0aGVuIGVEUCBjb250b2xsZXIgc2hvdWxkIGN1dCBkb3duIHRo ZSB2aWRlbyBkYXRhLCBub3QKPj4+IHZpYSBWT1AKPj4+ICsgICAgICAgICAgICAgICAgKiBjb250 b2xsZXIsIHRoYXQncyB3aHkgd2UgbmVlZCB0byBoYXJkY29kZSB0aGUgVk9QCj4+PiBvdXRwdXQg bW9kZQo+Pj4gKyAgICAgICAgICAgICAgICAqIHRvIFJHQTEwIGhlcmUuCj4+PiArICAgICAgICAg ICAgICAgICovCj4+PiAgICAgICAgICAgICAgICAgcy0+b3V0cHV0X21vZGUgPSBST0NLQ0hJUF9P VVRfTU9ERV9BQUFBOwo+Pj4gICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gICAgICAgICB9Cj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmMKPj4+ IGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmMKPj4+IGluZGV4IGYwMjBl MmUuLmI5ZTYxODQgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvY2Ru LWRwLWNvcmUuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3Jl LmMKPj4+IEBAIC01NzAsMjEgKzU3MCwyMCBAQCBzdGF0aWMgdm9pZCBjZG5fZHBfZW5jb2Rlcl9t b2RlX3NldChzdHJ1Y3QKPj4+IGRybV9lbmNvZGVyICplbmNvZGVyLAo+Pj4gICAgICAgICB2aWRl by0+dl9zeW5jX3BvbGFyaXR5ID0gISEobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX05WU1lO Qyk7Cj4+PiAgICAgICAgIHZpZGVvLT5oX3N5bmNfcG9sYXJpdHkgPSAhIShtb2RlLT5mbGFncyAm IERSTV9NT0RFX0ZMQUdfTkhTWU5DKTsKPj4+ICAgLSAgICAgcmV0ID0gZHJtX29mX2VuY29kZXJf YWN0aXZlX2VuZHBvaW50X2lkKGRwLT5kZXYtPm9mX25vZGUsCj4+PiBlbmNvZGVyKTsKPj4+IC0g ICAgICAgaWYgKHJldCA8IDApIHsKPj4+IC0gICAgICAgICAgICAgICBEUk1fREVWX0VSUk9SKGRw LT5kZXYsICJDb3VsZCBub3QgZ2V0IHZvcCBpZCwgJWQiLCByZXQpOwo+Pj4gLSAgICAgICAgICAg ICAgIHJldHVybjsKPj4+IC0gICAgICAgfQo+Pj4gLQo+Pj4gLSAgICAgICBEUk1fREVWX0RFQlVH X0tNUyhkcC0+ZGV2LCAidm9wICVzIG91dHB1dCB0byBjZG4tZHBcbiIsCj4+PiAtICAgICAgICAg ICAgICAgICAgICAgICAgIChyZXQpID8gIkxJVCIgOiAiQklHIik7Cj4+PiAgICAgICAgIHN0YXRl ID0gdG9fcm9ja2NoaXBfY3J0Y19zdGF0ZShlbmNvZGVyLT5jcnRjLT5zdGF0ZSk7Cj4+PiAtICAg ICAgIGlmIChyZXQpIHsKPj4+ICsgICAgICAgc3dpdGNoICh2b3BfZ2V0X2NydGNfdm9wX2lkKGVu Y29kZXItPmNydGMpKSB7Cj4+PiArICAgICAgIGNhc2UgUkszMzk5X1ZPUF9MSVQ6Cj4+PiArICAg ICAgICAgICAgICAgRFJNX0RFVl9ERUJVR19LTVMoZHAtPmRldiwgInZvcCBMSVQgb3V0cHV0IHRv IGNkbi1kcFxuIik7Cj4+PiAgICAgICAgICAgICAgICAgdmFsID0gRFBfU0VMX1ZPUF9MSVQgfCAo RFBfU0VMX1ZPUF9MSVQgPDwgMTYpOwo+Pj4gICAgICAgICAgICAgICAgIHN0YXRlLT5vdXRwdXRf bW9kZSA9IFJPQ0tDSElQX09VVF9NT0RFX1A4ODg7Cj4+PiAtICAgICAgIH0gZWxzZSB7Cj4+PiAr ICAgICAgICAgICAgICAgYnJlYWs7Cj4+PiArICAgICAgIGNhc2UgUkszMzk5X1ZPUF9CSUc6Cj4+ PiArICAgICAgICAgICAgICAgRFJNX0RFVl9ERUJVR19LTVMoZHAtPmRldiwgInZvcCBCSUcgb3V0 cHV0IHRvIGNkbi1kcFxuIik7Cj4+PiAgICAgICAgICAgICAgICAgdmFsID0gRFBfU0VMX1ZPUF9M SVQgPDwgMTY7Cj4+PiAgICAgICAgICAgICAgICAgc3RhdGUtPm91dHB1dF9tb2RlID0gUk9DS0NI SVBfT1VUX01PREVfQUFBQTsKPj4+ICsgICAgICAgICAgICAgICBicmVhazsKPj4+ICsgICAgICAg ZGVmYXVsdDoKPj4+ICsgICAgICAgICAgICAgICBicmVhazsKPj4+ICAgICAgICAgfQo+Pj4gICAg ICAgICByZXQgPSBjZG5fZHBfZ3JmX3dyaXRlKGRwLCBHUkZfU09DX0NPTjksIHZhbCk7Cj4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMKPj4+IGIv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMKPj4+IGluZGV4IGRlZGM2NWIu LmIwMWE4MmEgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlw aS1kc2kuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMK Pj4+IEBAIC04NzgsNyArODc4LDYgQEAgc3RhdGljIHZvaWQgZHdfbWlwaV9kc2lfZW5jb2Rlcl9k aXNhYmxlKHN0cnVjdAo+Pj4gZHJtX2VuY29kZXIgKmVuY29kZXIpCj4+PiAgIHN0YXRpYyB2b2lk IGR3X21pcGlfZHNpX2VuY29kZXJfY29tbWl0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikK Pj4+ICAgewo+Pj4gICAgICAgICBzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSA9IGVuY29kZXJfdG9f ZHNpKGVuY29kZXIpOwo+Pj4gLSAgICAgICBpbnQgbXV4ID0gZHJtX29mX2VuY29kZXJfYWN0aXZl X2VuZHBvaW50X2lkKGRzaS0+ZGV2LT5vZl9ub2RlLAo+Pj4gZW5jb2Rlcik7Cj4+PiAgICAgICAg IHUzMiB2YWw7Cj4+PiAgICAgICAgIGlmIChjbGtfcHJlcGFyZV9lbmFibGUoZHNpLT5wY2xrKSkg ewo+Pj4gQEAgLTg5NCwxMyArODkzLDE4IEBAIHN0YXRpYyB2b2lkIGR3X21pcGlfZHNpX2VuY29k ZXJfY29tbWl0KHN0cnVjdAo+Pj4gZHJtX2VuY29kZXIgKmVuY29kZXIpCj4+PiAgICAgICAgIGNs a19kaXNhYmxlX3VucHJlcGFyZShkc2ktPnBjbGspOwo+Pj4gICAtICAgICBpZiAobXV4KQo+Pj4g KyAgICAgICBzd2l0Y2ggKHZvcF9nZXRfY3J0Y192b3BfaWQoZW5jb2Rlci0+Y3J0YykpIHsKPj4+ ICsgICAgICAgY2FzZSBSSzMzOTlfVk9QX0xJVDoKPj4+ICsgICAgICAgICAgICAgICBkZXZfZGJn KGRzaS0+ZGV2LCAidm9wIExJVCBvdXRwdXQgdG8gZHNpMFxuIik7Cj4+PiAgICAgICAgICAgICAg ICAgdmFsID0gRFNJMF9TRUxfVk9QX0xJVCB8IChEU0kwX1NFTF9WT1BfTElUIDw8IDE2KTsKPj4+ IC0gICAgICAgZWxzZQo+Pj4gKyAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gKyAgICAgICBkZWZh dWx0Ogo+Pj4gKyAgICAgICAgICAgICAgIGRldl9kYmcoZHNpLT5kZXYsICJ2b3AgQklHIG91dHB1 dCB0byBkc2kwXG4iKTsKPj4+ICAgICAgICAgICAgICAgICB2YWwgPSBEU0kwX1NFTF9WT1BfTElU IDw8IDE2Owo+Pj4gKyAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gKyAgICAgICB9Cj4+PiAgICAg ICAgIHJlZ21hcF93cml0ZShkc2ktPmdyZl9yZWdtYXAsIEdSRl9TT0NfQ09ONiwgdmFsKTsKPj4+ IC0gICAgICAgZGV2X2RiZyhkc2ktPmRldiwgInZvcCAlcyBvdXRwdXQgdG8gZHNpMFxuIiwgKG11 eCkgPyAiTElUIiA6Cj4+PiAiQklHIik7Cj4+PiAgIH0KPj4+ICAgICBzdGF0aWMgaW50Cj4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYwo+ Pj4gYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCj4+PiBpbmRl eCBkNWVhNGFiLi5lODQ5ZjI2IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL3JvY2tjaGlwX2RybV92b3AuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX2RybV92b3AuYwo+Pj4gQEAgLTE0MSw2ICsxNDEsMTMgQEAgc3RydWN0IHZvcCB7 Cj4+PiAgICAgICAgIHN0cnVjdCB2b3Bfd2luIHdpbltdOwo+Pj4gICB9Owo+Pj4gICArZW51bSB2 b3BfaWQgdm9wX2dldF9jcnRjX3ZvcF9pZChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+PiArewo+ Pj4gKyAgICAgICBzdHJ1Y3Qgdm9wICp2b3AgPSB0b192b3AoY3J0Yyk7Cj4+PiArCj4+PiArICAg ICAgIHJldHVybiB2b3AtPmRhdGEtPmlkOwo+Pj4gK30KPj4+ICsKPj4+ICAgc3RhdGljIGlubGlu ZSB2b2lkIHZvcF93cml0ZWwoc3RydWN0IHZvcCAqdm9wLCB1aW50MzJfdCBvZmZzZXQsCj4+PiB1 aW50MzJfdCB2KQo+Pj4gICB7Cj4+PiAgICAgICAgIHdyaXRlbCh2LCB2b3AtPnJlZ3MgKyBvZmZz ZXQpOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9k cm1fdm9wLmgKPj4+IGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3Au aAo+Pj4gaW5kZXggNWE0ZmFhODUuLjJjNTRiY2MgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5oCj4+PiBAQCAtMTM1LDggKzEzNSwxNiBAQCBz dHJ1Y3Qgdm9wX3dpbl9kYXRhIHsKPj4+ICAgICAgICAgZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBl Owo+Pj4gICB9Owo+Pj4gICArZW51bSB2b3BfaWQgewo+Pj4gKyAgICAgICBSSzMwMzZfVk9QLAo+ Pj4gKyAgICAgICBSSzMyODhfVk9QLAo+Pj4gKyAgICAgICBSSzMzOTlfVk9QX0JJRywKPj4+ICsg ICAgICAgUkszMzk5X1ZPUF9MSVQsCj4+PiArfTsKPj4+ICsKPj4+ICAgc3RydWN0IHZvcF9kYXRh IHsKPj4+ICAgICAgICAgY29uc3Qgc3RydWN0IHZvcF9yZWdfZGF0YSAqaW5pdF90YWJsZTsKPj4+ ICsgICAgICAgdWludDMyX3QgaWQ7Cj4+PiAgICAgICAgIHVuc2lnbmVkIGludCB0YWJsZV9zaXpl Owo+Pj4gICAgICAgICBjb25zdCBzdHJ1Y3Qgdm9wX2N0cmwgKmN0cmw7Cj4+PiAgICAgICAgIGNv bnN0IHN0cnVjdCB2b3BfaW50ciAqaW50cjsKPj4+IEBAIC0zMjEsNSArMzI5LDcgQEAgc3RhdGlj IGlubGluZSBpbnQgc2NsX3ZvcF9jYWxfbGJfbW9kZShpbnQgd2lkdGgsIGJvb2wKPj4+IGlzX3l1 dikKPj4+ICAgICAgICAgcmV0dXJuIGxiX21vZGU7Cj4+PiAgIH0KPj4+ICAgK2VudW0gdm9wX2lk IHZvcF9nZXRfY3J0Y192b3BfaWQoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPj4+ICsKPj4+ICAg ZXh0ZXJuIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfb3BzIHZvcF9jb21wb25lbnRfb3BzOwo+Pj4g ICAjZW5kaWYgLyogX1JPQ0tDSElQX0RSTV9WT1BfSCAqLwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMKPj4+IGIvZHJpdmVycy9ncHUv ZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYwo+Pj4gaW5kZXggYWFlZGU2Yi4uYTQ2ZTJj OCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3Bf cmVnLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVn LmMKPj4+IEBAIC0xMzEsNiArMTMxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfcmVnX2Rh dGEKPj4+IHJrMzAzNl92b3BfaW5pdF9yZWdfdGFibGVbXSA9IHsKPj4+ICAgfTsKPj4+ICAgICBz dGF0aWMgY29uc3Qgc3RydWN0IHZvcF9kYXRhIHJrMzAzNl92b3AgPSB7Cj4+PiArICAgICAgIC5p ZCA9IFJLMzAzNl9WT1AsCj4+PiAgICAgICAgIC5pbml0X3RhYmxlID0gcmszMDM2X3ZvcF9pbml0 X3JlZ190YWJsZSwKPj4+ICAgICAgICAgLnRhYmxlX3NpemUgPSBBUlJBWV9TSVpFKHJrMzAzNl92 b3BfaW5pdF9yZWdfdGFibGUpLAo+Pj4gICAgICAgICAuY3RybCA9ICZyazMwMzZfY3RybF9kYXRh LAo+Pj4gQEAgLTI3Miw2ICsyNzMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZvcF9pbnRyIHJr MzI4OF92b3BfaW50ciA9IHsKPj4+ICAgfTsKPj4+ICAgICBzdGF0aWMgY29uc3Qgc3RydWN0IHZv cF9kYXRhIHJrMzI4OF92b3AgPSB7Cj4+PiArICAgICAgIC5pZCA9IFJLMzI4OF9WT1AsCj4+PiAg ICAgICAgIC5pbml0X3RhYmxlID0gcmszMjg4X2luaXRfcmVnX3RhYmxlLAo+Pj4gICAgICAgICAu dGFibGVfc2l6ZSA9IEFSUkFZX1NJWkUocmszMjg4X2luaXRfcmVnX3RhYmxlKSwKPj4+ICAgICAg ICAgLmludHIgPSAmcmszMjg4X3ZvcF9pbnRyLAo+Pj4gQEAgLTM0MCw2ICszNDIsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHZvcF9yZWdfZGF0YQo+Pj4gcmszMzk5X2luaXRfcmVnX3RhYmxlW10g PSB7Cj4+PiAgIH07Cj4+PiAgICAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfZGF0YSByazMzOTlf dm9wX2JpZyA9IHsKPj4+ICsgICAgICAgLmlkID0gUkszMzk5X1ZPUF9CSUcsCj4+PiAgICAgICAg IC5pbml0X3RhYmxlID0gcmszMzk5X2luaXRfcmVnX3RhYmxlLAo+Pj4gICAgICAgICAudGFibGVf c2l6ZSA9IEFSUkFZX1NJWkUocmszMzk5X2luaXRfcmVnX3RhYmxlKSwKPj4+ICAgICAgICAgLmlu dHIgPSAmcmszMzk5X3ZvcF9pbnRyLAo+Pj4gQEAgLTM1OSw2ICszNjIsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHZvcF93aW5fZGF0YQo+Pj4gcmszMzk5X3ZvcF9saXRfd2luX2RhdGFbXSA9IHsK Pj4+ICAgfTsKPj4+ICAgICBzdGF0aWMgY29uc3Qgc3RydWN0IHZvcF9kYXRhIHJrMzM5OV92b3Bf bGl0ID0gewo+Pj4gKyAgICAgICAuaWQgPSBSSzMzOTlfVk9QX0xJVCwKPj4+ICAgICAgICAgLmlu aXRfdGFibGUgPSByazMzOTlfaW5pdF9yZWdfdGFibGUsCj4+PiAgICAgICAgIC50YWJsZV9zaXpl ID0gQVJSQVlfU0laRShyazMzOTlfaW5pdF9yZWdfdGFibGUpLAo+Pj4gICAgICAgICAuaW50ciA9 ICZyazMzOTlfdm9wX2ludHIsCj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4+IExpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdAo+PiBMaW51eC1y b2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQub3JnCj4+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtcm9ja2NoaXAKPj4KPj4KPj4KPgo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcg bGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK