From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH] drm/atomic: Allow for holes in connector state. Date: Mon, 15 Feb 2016 14:17:01 +0100 Message-ID: <1455542221-4848-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QmVjYXVzZSB3ZSByZWNvcmQgY29ubmVjdG9yX21hc2sgdXNpbmcgMSA8PCBkcm1fY29ubmVjdG9y X2luZGV4IG5vdwp0aGUgY29ubmVjdG9yX21hc2sgc2hvdWxkIHN0YXkgdGhlIHNhbWUgZXZlbiB3 aGVuIG90aGVyIGNvbm5lY3RvcnMKYXJlIHJlbW92ZWQuIFRoaXMgd2FzIG5vdCB0aGUgY2FzZSB3 aXRoIE1TVCwgaW4gdGhhdCBjYXNlIHdoZW4gcmVtb3ZpbmcKYSBjb25uZWN0b3IgYWxsIG90aGVy IGNvbm5lY3RvcnMgbWF5IGNoYW5nZSB0aGVpciBpbmRleC4KClRoaXMgaXMgZml4ZWQgYnkgd2Fp dGluZyB1bnRpbCB0aGUgZmlyc3QgZ2V0X2Nvbm5lY3Rvcl9zdGF0ZSB0byBhbGxvY2F0ZQpjb25u ZWN0b3Jfc3RhdGUsIGFuZCBmb3JjZSByZWFsbG9jYXRpb24gd2hlbiBzdGF0ZSBpcyB0b28gc21h bGwuCgpBcyBhIHNpZGUgZWZmZWN0IGNvbm5lY3RvciBhcnJheXMgbm8gbG9uZ2VyIGhhdmUgdG8g YmUgcHJlYWxsb2NhdGVkLAphbmQgY2FuIGJlIGFsbG9jYXRlZCBvbiBmaXJzdCB1c2Ugd2hpY2gg bWVhbnMgYSBsZXNzIGFsbG9jYXRpb25zIGluCnRoZSBwYWdlIGZsaXAgb25seSBwYXRoLgoKRml4 ZXM6IDE0ZGU2YzQ0ZDE0OSAoImRybS9hdG9taWM6IFJlbW92ZSBkcm1fYXRvbWljX2Nvbm5lY3Rv cnNfZm9yX2NydGMuIikKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4u bGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Yy5jICAgICAgICB8IDQ1ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9kcm1fY3J0Yy5jICAgICAgICAgIHwgNDUgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAgICAgICAgICAgICAgfCAgOCArKysrKyst CiA0IGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pYy5jCmluZGV4IDhmYjQ2OWM0ZTRiOC4uNWQ0Nzc0NDUwNTQwIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljLmMKQEAgLTY1LDggKzY1LDYgQEAgZHJtX2F0b21pY19zdGF0ZV9pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkgKi8KIAlz dGF0ZS0+YWxsb3dfbW9kZXNldCA9IHRydWU7CiAKLQlzdGF0ZS0+bnVtX2Nvbm5lY3RvciA9IEFD Q0VTU19PTkNFKGRldi0+bW9kZV9jb25maWcubnVtX2Nvbm5lY3Rvcik7Ci0KIAlzdGF0ZS0+Y3J0 Y3MgPSBrY2FsbG9jKGRldi0+bW9kZV9jb25maWcubnVtX2NydGMsCiAJCQkgICAgICAgc2l6ZW9m KCpzdGF0ZS0+Y3J0Y3MpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXN0YXRlLT5jcnRjcykKQEAgLTgz LDE2ICs4MSw2IEBAIGRybV9hdG9taWNfc3RhdGVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCQkJICAgICAgc2l6ZW9mKCpzdGF0 ZS0+cGxhbmVfc3RhdGVzKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzdGF0ZS0+cGxhbmVfc3RhdGVz KQogCQlnb3RvIGZhaWw7Ci0Jc3RhdGUtPmNvbm5lY3RvcnMgPSBrY2FsbG9jKHN0YXRlLT5udW1f Y29ubmVjdG9yLAotCQkJCSAgICBzaXplb2YoKnN0YXRlLT5jb25uZWN0b3JzKSwKLQkJCQkgICAg R0ZQX0tFUk5FTCk7Ci0JaWYgKCFzdGF0ZS0+Y29ubmVjdG9ycykKLQkJZ290byBmYWlsOwotCXN0 YXRlLT5jb25uZWN0b3Jfc3RhdGVzID0ga2NhbGxvYyhzdGF0ZS0+bnVtX2Nvbm5lY3RvciwKLQkJ CQkJICBzaXplb2YoKnN0YXRlLT5jb25uZWN0b3Jfc3RhdGVzKSwKLQkJCQkJICBHRlBfS0VSTkVM KTsKLQlpZiAoIXN0YXRlLT5jb25uZWN0b3Jfc3RhdGVzKQotCQlnb3RvIGZhaWw7CiAKIAlzdGF0 ZS0+ZGV2ID0gZGV2OwogCkBAIC04MjMsMTkgKzgxMSwyOCBAQCBkcm1fYXRvbWljX2dldF9jb25u ZWN0b3Jfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCiAJaW5kZXggPSBk cm1fY29ubmVjdG9yX2luZGV4KGNvbm5lY3Rvcik7CiAKLQkvKgotCSAqIENvbnN0cnVjdGlvbiBv ZiBhdG9taWMgc3RhdGUgdXBkYXRlcyBjYW4gcmFjZSB3aXRoIGEgY29ubmVjdG9yCi0JICogaG90 LWFkZCB3aGljaCBtaWdodCBvdmVyZmxvdy4gSW4gdGhpcyBjYXNlIGZsaXAgdGhlIHRhYmxlIGFu ZCBqdXN0Ci0JICogcmVzdGFydCB0aGUgZW50aXJlIGlvY3RsIC0gbm8gb25lIGlzIGZhc3QgZW5v dWdoIHRvIGxpdmVsb2NrIGEgY3B1Ci0JICogd2l0aCBwaHlzaWNhbCBob3RwbHVnIGV2ZW50cyBh bnl3YXkuCi0JICoKLQkgKiBOb3RlIHRoYXQgd2Ugb25seSBncmFiIHRoZSBpbmRleGVzIG9uY2Ug d2UgaGF2ZSB0aGUgcmlnaHQgbG9jayB0bwotCSAqIHByZXZlbnQgaG90cGx1Zy91bnBsdWdnaW5n IG9mIGNvbm5lY3RvcnMuIFNvIHJlbW92YWwgaXMgbm8gcHJvYmxlbSwKLQkgKiBhdCBtb3N0IHRo ZSBhcnJheSBpcyBhIGJpdCB0b28gbGFyZ2UuCi0JICovCiAJaWYgKGluZGV4ID49IHN0YXRlLT5u dW1fY29ubmVjdG9yKSB7Ci0JCURSTV9ERUJVR19BVE9NSUMoIkhvdC1hZGRlZCBjb25uZWN0b3Ig d291bGQgb3ZlcmZsb3cgc3RhdGUgYXJyYXksIHJlc3RhcnRpbmdcbiIpOwotCQlyZXR1cm4gRVJS X1BUUigtRUFHQUlOKTsKKwkJc3RydWN0IGRybV9jb25uZWN0b3IgKipjOworCQlzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqKmNzOworCisJCXUzMiBhbGxvYyA9IG1heChpbmRleCArIDEsIGNv bmZpZy0+bnVtX2Nvbm5lY3Rvcik7CisKKwkJYyA9IGtyZWFsbG9jKHN0YXRlLT5jb25uZWN0b3Jz LCBhbGxvYyAqIHNpemVvZigqc3RhdGUtPmNvbm5lY3RvcnMpLCBHRlBfS0VSTkVMKTsKKwkJaWYg KCFjKQorCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwkJc3RhdGUtPmNvbm5lY3RvcnMg PSBjOworCQltZW1zZXQoJnN0YXRlLT5jb25uZWN0b3JzW3N0YXRlLT5udW1fY29ubmVjdG9yXSwg MCwKKwkJICAgICAgIHNpemVvZigqc3RhdGUtPmNvbm5lY3RvcnMpICogKGFsbG9jIC0gc3RhdGUt Pm51bV9jb25uZWN0b3IpKTsKKworCQljcyA9IGtyZWFsbG9jKHN0YXRlLT5jb25uZWN0b3Jfc3Rh dGVzLCBhbGxvYyAqIHNpemVvZigqc3RhdGUtPmNvbm5lY3Rvcl9zdGF0ZXMpLCBHRlBfS0VSTkVM KTsKKwkJaWYgKCFjcykKKwkJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJCXN0YXRlLT5j b25uZWN0b3Jfc3RhdGVzID0gY3M7CisJCW1lbXNldCgmc3RhdGUtPmNvbm5lY3Rvcl9zdGF0ZXNb c3RhdGUtPm51bV9jb25uZWN0b3JdLCAwLAorCQkgICAgICAgc2l6ZW9mKCpzdGF0ZS0+Y29ubmVj dG9yX3N0YXRlcykgKiAoYWxsb2MgLSBzdGF0ZS0+bnVtX2Nvbm5lY3RvcikpOworCQlzdGF0ZS0+ bnVtX2Nvbm5lY3RvciA9IGFsbG9jOwogCX0KIAogCWlmIChzdGF0ZS0+Y29ubmVjdG9yX3N0YXRl c1tpbmRleF0pCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4IDJiNDMwYjA1ZjM1 ZC4uNGRhNGYyYTQ5MDc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19o ZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpAQCAtMTUz NSw3ICsxNTM1LDcgQEAgdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiB7CiAJaW50IGk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgZGV2LT5tb2Rl X2NvbmZpZy5udW1fY29ubmVjdG9yOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgc3RhdGUtPm51 bV9jb25uZWN0b3I7IGkrKykgewogCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0g c3RhdGUtPmNvbm5lY3RvcnNbaV07CiAKIAkJaWYgKCFjb25uZWN0b3IpCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCmlu ZGV4IDY1MjU4YWNkZGI5MC4uZWEwMGFlYTg4ZGU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwpAQCAtOTE4LDEy ICs5MTgsMTggQEAgaW50IGRybV9jb25uZWN0b3JfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCWNvbm5lY3Rvci0+YmFzZS5wcm9wZXJ0aWVzID0gJmNvbm5lY3Rvci0+cHJvcGVydGllczsK IAljb25uZWN0b3ItPmRldiA9IGRldjsKIAljb25uZWN0b3ItPmZ1bmNzID0gZnVuY3M7CisJY29u bmVjdG9yLT5jb25uZWN0b3JfaWQgPSBpZGFfc2ltcGxlX2dldCgmY29uZmlnLT5jb25uZWN0b3Jf aWRhLCAwLCAwLCBHRlBfS0VSTkVMKTsKKwlpZiAoY29ubmVjdG9yLT5jb25uZWN0b3JfaWQgPCAw KSB7CisJCXJldCA9IGNvbm5lY3Rvci0+Y29ubmVjdG9yX2lkOworCQlnb3RvIG91dF9wdXQ7CisJ fQorCiAJY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9IGNvbm5lY3Rvcl90eXBlOwogCWNvbm5l Y3Rvci0+Y29ubmVjdG9yX3R5cGVfaWQgPQogCQlpZGFfc2ltcGxlX2dldChjb25uZWN0b3JfaWRh LCAxLCAwLCBHRlBfS0VSTkVMKTsKIAlpZiAoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZV9pZCA8 IDApIHsKIAkJcmV0ID0gY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZV9pZDsKLQkJZ290byBvdXRf cHV0OworCQlnb3RvIG91dF9wdXRfaWQ7CiAJfQogCWNvbm5lY3Rvci0+bmFtZSA9CiAJCWthc3By aW50ZihHRlBfS0VSTkVMLCAiJXMtJWQiLApAQCAtOTMxLDcgKzkzNyw3IEBAIGludCBkcm1fY29u bmVjdG9yX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgY29ubmVjdG9yLT5jb25u ZWN0b3JfdHlwZV9pZCk7CiAJaWYgKCFjb25uZWN0b3ItPm5hbWUpIHsKIAkJcmV0ID0gLUVOT01F TTsKLQkJZ290byBvdXRfcHV0OworCQlnb3RvIG91dF9wdXRfdHlwZV9pZDsKIAl9CiAKIAlJTklU X0xJU1RfSEVBRCgmY29ubmVjdG9yLT5wcm9iZWRfbW9kZXMpOwpAQCAtOTU5LDcgKzk2NSwxMiBA QCBpbnQgZHJtX2Nvbm5lY3Rvcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJfQogCiAJ Y29ubmVjdG9yLT5kZWJ1Z2ZzX2VudHJ5ID0gTlVMTDsKLQorb3V0X3B1dF90eXBlX2lkOgorCWlm IChyZXQpCisJCWlkYV9yZW1vdmUoY29ubmVjdG9yX2lkYSwgY29ubmVjdG9yLT5jb25uZWN0b3Jf dHlwZV9pZCk7CitvdXRfcHV0X2lkOgorCWlmIChyZXQpCisJCWlkYV9yZW1vdmUoJmNvbmZpZy0+ Y29ubmVjdG9yX2lkYSwgY29ubmVjdG9yLT5jb25uZWN0b3JfaWQpOwogb3V0X3B1dDoKIAlpZiAo cmV0KQogCQlkcm1fbW9kZV9vYmplY3RfcHV0KGRldiwgJmNvbm5lY3Rvci0+YmFzZSk7CkBAIC0x MDEzLDMyICsxMDI0LDYgQEAgdm9pZCBkcm1fY29ubmVjdG9yX2NsZWFudXAoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvcikKIEVYUE9SVF9TWU1CT0woZHJtX2Nvbm5lY3Rvcl9jbGVhbnVw KTsKIAogLyoqCi0gKiBkcm1fY29ubmVjdG9yX2luZGV4IC0gZmluZCB0aGUgaW5kZXggb2YgYSBy ZWdpc3RlcmVkIGNvbm5lY3RvcgotICogQGNvbm5lY3RvcjogY29ubmVjdG9yIHRvIGZpbmQgaW5k ZXggZm9yCi0gKgotICogR2l2ZW4gYSByZWdpc3RlcmVkIGNvbm5lY3RvciwgcmV0dXJuIHRoZSBp bmRleCBvZiB0aGF0IGNvbm5lY3RvciB3aXRoaW4gYSBEUk0KLSAqIGRldmljZSdzIGxpc3Qgb2Yg Y29ubmVjdG9ycy4KLSAqLwotdW5zaWduZWQgaW50IGRybV9jb25uZWN0b3JfaW5kZXgoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKLXsKLQl1bnNpZ25lZCBpbnQgaW5kZXggPSAwOwot CXN0cnVjdCBkcm1fY29ubmVjdG9yICp0bXA7Ci0Jc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29u ZmlnID0gJmNvbm5lY3Rvci0+ZGV2LT5tb2RlX2NvbmZpZzsKLQotCVdBUk5fT04oIWRybV9tb2Rl c2V0X2lzX2xvY2tlZCgmY29uZmlnLT5jb25uZWN0aW9uX211dGV4KSk7Ci0KLQlkcm1fZm9yX2Vh Y2hfY29ubmVjdG9yKHRtcCwgY29ubmVjdG9yLT5kZXYpIHsKLQkJaWYgKHRtcCA9PSBjb25uZWN0 b3IpCi0JCQlyZXR1cm4gaW5kZXg7Ci0KLQkJaW5kZXgrKzsKLQl9Ci0KLQlCVUcoKTsKLX0KLUVY UE9SVF9TWU1CT0woZHJtX2Nvbm5lY3Rvcl9pbmRleCk7Ci0KLS8qKgogICogZHJtX2Nvbm5lY3Rv cl9yZWdpc3RlciAtIHJlZ2lzdGVyIGEgY29ubmVjdG9yCiAgKiBAY29ubmVjdG9yOiB0aGUgY29u bmVjdG9yIHRvIHJlZ2lzdGVyCiAgKgpAQCAtNTgzOCw2ICs1ODIzLDcgQEAgdm9pZCBkcm1fbW9k ZV9jb25maWdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCUlOSVRfTElTVF9IRUFEKCZk ZXYtPm1vZGVfY29uZmlnLnBsYW5lX2xpc3QpOwogCWlkcl9pbml0KCZkZXYtPm1vZGVfY29uZmln LmNydGNfaWRyKTsKIAlpZHJfaW5pdCgmZGV2LT5tb2RlX2NvbmZpZy50aWxlX2lkcik7CisJaWRh X2luaXQoJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2lkYSk7CiAKIAlkcm1fbW9kZXNldF9s b2NrX2FsbChkZXYpOwogCWRybV9tb2RlX2NyZWF0ZV9zdGFuZGFyZF9wcm9wZXJ0aWVzKGRldik7 CkBAIC01OTE4LDYgKzU5MDQsNyBAQCB2b2lkIGRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAJCWNydGMtPmZ1bmNzLT5kZXN0cm95KGNydGMpOwogCX0KIAor CWlkYV9kZXN0cm95KCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9pZGEpOwogCWlkcl9kZXN0 cm95KCZkZXYtPm1vZGVfY29uZmlnLnRpbGVfaWRyKTsKIAlpZHJfZGVzdHJveSgmZGV2LT5tb2Rl X2NvbmZpZy5jcnRjX2lkcik7CiAJZHJtX21vZGVzZXRfbG9ja19maW5pKCZkZXYtPm1vZGVfY29u ZmlnLmNvbm5lY3Rpb25fbXV0ZXgpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMu aCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKaW5kZXggOGM3ZmIzZDBmOWQwLi43ZmFkMTkzZGM2 NDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKKysrIGIvaW5jbHVkZS9kcm0v ZHJtX2NydGMuaApAQCAtMTE2OCw2ICsxMTY4LDcgQEAgc3RydWN0IGRybV9jb25uZWN0b3Igewog CXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgYmFzZTsKIAogCWNoYXIgKm5hbWU7CisJaW50IGNvbm5l Y3Rvcl9pZDsKIAlpbnQgY29ubmVjdG9yX3R5cGU7CiAJaW50IGNvbm5lY3Rvcl90eXBlX2lkOwog CWJvb2wgaW50ZXJsYWNlX2FsbG93ZWQ7CkBAIC0yMDQ5LDYgKzIwNTAsNyBAQCBzdHJ1Y3QgZHJt X21vZGVfY29uZmlnIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGZiX2xpc3Q7CiAKIAlpbnQgbnVtX2Nv bm5lY3RvcjsKKwlzdHJ1Y3QgaWRhIGNvbm5lY3Rvcl9pZGE7CiAJc3RydWN0IGxpc3RfaGVhZCBj b25uZWN0b3JfbGlzdDsKIAlpbnQgbnVtX2VuY29kZXI7CiAJc3RydWN0IGxpc3RfaGVhZCBlbmNv ZGVyX2xpc3Q7CkBAIC0yMjEzLDcgKzIyMTUsMTEgQEAgaW50IGRybV9jb25uZWN0b3JfcmVnaXN0 ZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7CiB2b2lkIGRybV9jb25uZWN0b3Jf dW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKIAogZXh0ZXJuIHZv aWQgZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ip OwotZXh0ZXJuIHVuc2lnbmVkIGludCBkcm1fY29ubmVjdG9yX2luZGV4KHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IpOworc3RhdGljIGlubGluZSB1bnNpZ25lZCBkcm1fY29ubmVjdG9y X2luZGV4KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJcmV0dXJuIGNvbm5l Y3Rvci0+Y29ubmVjdG9yX2lkOworfQorCiAvKiBoZWxwZXIgdG8gdW5wbHVnIGFsbCBjb25uZWN0 b3JzIGZyb20gc3lzZnMgZm9yIGRldmljZSAqLwogZXh0ZXJuIHZvaWQgZHJtX2Nvbm5lY3Rvcl91 bnBsdWdfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCi0tIAoyLjEuMAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==