From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: [PATCH v2 1/4] drm/connector: Add generic underscan properties Date: Fri, 11 May 2018 16:59:16 +0200 Message-ID: <20180511145919.22447-2-boris.brezillon@bootlin.com> References: <20180511145919.22447-1-boris.brezillon@bootlin.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180511145919.22447-1-boris.brezillon-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: David Airlie , Daniel Vetter , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: "David (ChunMing) Zhou" , Boris Brezillon , nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Eric Anholt , Ben Skeggs , Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org V2UgaGF2ZSAzIGRyaXZlcnMgZGVmaW5pbmcgdGhlICJ1bmRlcnNjYW4iLCAidW5kZXJzY2FuIGhi b3JkZXIiIGFuZAoidW5kZXJzY2FuIHZib3JkZXIiIHByb3BlcnRpZXMgKHJhZGVvbiwgYW1kIGFu ZCBub3V2ZWF1KSBhbmQgd2UgYXJlCmFib3V0IHRvIGFkZCB0aGUgc2FtZSBraW5kIG9mIHRoaW5n IGluIFZDNC4KCkRlZmluZSBnZW5lcmljIHVuZGVyc2NhbiBwcm9wcyBhbmQgYWRkIG5ldyBmaWVs ZHMgdG8gdGhlIGRybV9jb25uZWN0b3IKc3RhdGUgc28gdGhhdCB0aGUgcHJvcGVydHkgcGFyc2lu ZyBsb2dpYyBjYW4gYmUgc2hhcmVkIGJ5IGFsbCBEUk0KZHJpdmVycy4KCkEgZHJpdmVyIGNhbiBu b3cgYXR0YWNoIHVuZGVyc2NhbiBwcm9wZXJ0aWVzIHRvIGl0cyBjb25uZWN0b3IgdGhyb3VnaAp0 aGUgZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfdW5kZXJzY2FuX3Byb3BlcnRpZXMoKSBoZWxwZXIsIGFu ZCBjYW4KY2hlY2svYXBwbHkgdGhlIHVuZGVyc2NhbiBzZXR1cCBiYXNlZCBvbiB0aGUKZHJtX2Nv bm5lY3Rvcl9zdGF0ZS0+dW5kZXJzY2FuIGZpZWxkcy4KClNpZ25lZC1vZmYtYnk6IEJvcmlzIEJy ZXppbGxvbiA8Ym9yaXMuYnJlemlsbG9uQGJvb3RsaW4uY29tPgotLS0KQ2hhbmdlcyBpbiB2MjoK LSBBZGQgYSBuZXcgc2VjdGlvbiBpbiB0aGUgY29ubmVjdG9yIHByb3BzIGRvYyB0byBkZXNjcmli ZSB1bmRlcnNjYW4KICBwcm9wcwotIEZpeCBkZXNjcmlwdGlvbiBvZiBhdXRvIG1vZGUgKGF1dG8g bWVhbnMgYXBwbHkgdW5kZXJzY2FuIGZvciBIRE1JCiAgbW9uaXRvcnMgb25seSkKLSBGaXggZGVz Y3JpcHRpb24gb2YgdmJvcmRlci9oYm9yZGVyOgogICAgcmlnaHRfYm9yZGVyID0gbGVmdF9ib3Jk ZXIgPSBoYm9yZGVyCiAgICB0b3BfYm9yZGVyID0gYm90dG9tX2JvcmRlciA9IHZib3JkZXIKICBu b3QKICAgIHJpZ2h0X2JvcmRlciA9IGxlZnRfYm9yZGVyID0gaGJvcmRlciAvIDIKICAgIHRvcF9i b3JkZXIgPSBib3R0b21fYm9yZGVyID0gdmJvcmRlciAvIDIKLSBSZW5hbWUgZHJtX3VuZGVyc2Nh biBpbnRvIGRybV91bmRlcnNjYW5fc3RhdGUKLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Yy5jICAgIHwgIDEyICsrKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgfCAxMjcg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJt X2Nvbm5lY3Rvci5oICAgICB8ICA4MCArKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVz IGNoYW5nZWQsIDIxOSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKaW5kZXggZGM4NTBi NGI2ZTIxLi5iNzMxMmJkMTcyYzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAtMTI3OCw2ICsxMjc4 LDEyIEBAIHN0YXRpYyBpbnQgZHJtX2F0b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCQlz dGF0ZS0+Y29udGVudF9wcm90ZWN0aW9uID0gdmFsOworCX0gZWxzZSBpZiAocHJvcGVydHkgPT0g Y29ubmVjdG9yLT51bmRlcnNjYW5fbW9kZV9wcm9wZXJ0eSkgeworCQlzdGF0ZS0+dW5kZXJzY2Fu Lm1vZGUgPSB2YWw7CisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPnVuZGVyc2Nh bl9oYm9yZGVyX3Byb3BlcnR5KSB7CisJCXN0YXRlLT51bmRlcnNjYW4uaGJvcmRlciA9IHZhbDsK Kwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+dW5kZXJzY2FuX3Zib3JkZXJfcHJv cGVydHkpIHsKKwkJc3RhdGUtPnVuZGVyc2Nhbi52Ym9yZGVyID0gdmFsOwogCX0gZWxzZSBpZiAo Y29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eSkgewogCQlyZXR1cm4gY29ubmVj dG9yLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eShjb25uZWN0b3IsCiAJCQkJc3RhdGUsIHBy b3BlcnR5LCB2YWwpOwpAQCAtMTM1OSw2ICsxMzY1LDEyIEBAIGRybV9hdG9taWNfY29ubmVjdG9y X2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkqdmFsID0g c3RhdGUtPnNjYWxpbmdfbW9kZTsKIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+ Y29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5KSB7CiAJCSp2YWwgPSBzdGF0ZS0+Y29udGVudF9w cm90ZWN0aW9uOworCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT51bmRlcnNjYW5f bW9kZV9wcm9wZXJ0eSkgeworCQkqdmFsID0gc3RhdGUtPnVuZGVyc2Nhbi5tb2RlOworCX0gZWxz ZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT51bmRlcnNjYW5faGJvcmRlcl9wcm9wZXJ0eSkg eworCQkqdmFsID0gc3RhdGUtPnVuZGVyc2Nhbi5oYm9yZGVyOworCX0gZWxzZSBpZiAocHJvcGVy dHkgPT0gY29ubmVjdG9yLT51bmRlcnNjYW5fdmJvcmRlcl9wcm9wZXJ0eSkgeworCQkqdmFsID0g c3RhdGUtPnVuZGVyc2Nhbi52Ym9yZGVyOwogCX0gZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+ YXRvbWljX2dldF9wcm9wZXJ0eSkgewogCQlyZXR1cm4gY29ubmVjdG9yLT5mdW5jcy0+YXRvbWlj X2dldF9wcm9wZXJ0eShjb25uZWN0b3IsCiAJCQkJc3RhdGUsIHByb3BlcnR5LCB2YWwpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fY29ubmVjdG9yLmMKaW5kZXggOWI5YmE1ZDVlYzBjLi44MjZhZjYyNjdhNGYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9jb25uZWN0b3IuYwpAQCAtOTE0LDYgKzkxNCwzOCBAQCBEUk1fRU5VTV9OQU1FX0ZO KGRybV9nZXRfY29udGVudF9wcm90ZWN0aW9uX25hbWUsIGRybV9jcF9lbnVtX2xpc3QpCiAgKglj YW4gYWxzbyBleHBvc2UgdGhpcyBwcm9wZXJ0eSB0byBleHRlcm5hbCBvdXRwdXRzLCBpbiB3aGlj aCBjYXNlIHRoZXkKICAqCW11c3Qgc3VwcG9ydCAiTm9uZSIsIHdoaWNoIHNob3VsZCBiZSB0aGUg ZGVmYXVsdCAoc2luY2UgZXh0ZXJuYWwgc2NyZWVucwogICoJaGF2ZSBhIGJ1aWx0LWluIHNjYWxl cikuCisgKgorICogQ29ubmVjdG9ycyBmb3Igbm9uLWFuYWxvZyBvdXRwdXRzIG1heSBhbHNvIGhh dmUgc3RhbmRhcmRpemVkIHVuZGVyc2NhbgorICogcHJvcGVydGllcyAoZHJpdmVycyBjYW4gc2V0 IHRoaXMgdXAgYnkgY2FsbGluZworICogZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfY29udGVudF9wcm90 ZWN0aW9uX3Byb3BlcnR5KCkgb24gaW5pdGlhbGl6YXRpb24pOgorICoKKyAqIHVuZGVyc2NhbjoK KyAqCVRoaXMgcHJvcGVydGllcyBkZWZpbmVzIHdoZXRoZXIgdW5kZXJzY2FuIGlzIGFjdGl2YXRl ZCBvciBub3QsIGFuZCB3aGVuCisgKglpdCBpcyBhY3RpdmF0ZWQsIGhvdyB0aGUgaG9yaXpvbnRh bCBhbmQgdmVydGljYWwgYm9yZGVycyBhcmUgY2FsY3VsYXRlZDoKKyAqCisgKglvZmY6CisgKgkJ VW5kZXJzY2FuIGlzIGRpc2FibGVkLiBUaGUgb3V0cHV0IGltYWdlIHNob3VsZG4ndCBiZSBzY2Fs ZWQgdG8KKyAqCQl0YWtlIHNjcmVlbiBib3JkZXJzIGludG8gYWNjb3VudC4KKyAqCW9uOgorICoJ CVVuZGVyc2NhbiBpcyBhY3RpdmF0ZWQgYW5kIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIGJvcmRl cnMgYXJlCisgKgkJc3BlY2lmaWVkIHRocm91Z2ggdGhlICJ1bmRlcnNjYW4gaGJvcmRlciIgYW5k CisgKgkJInVuZGVyc2NhbiB2Ym9yZGVyIiBwcm9wZXJ0aWVzLgorICoJYXV0bzoKKyAqCQlVbmRl cnNjYW4gaXMgYWN0aXZhdGVkIG9ubHkgZm9yIEhETUkgbW9uaXRvcnMuCisgKgorICogdW5kZXJz Y2FuIGhib3JkZXI6CisgKglIb3Jpem9udGFsIGJvcmRlciBleHByZXNzZWQgaW4gcGl4ZWxzLiBU aGUgYm9yZGVyIGlzIHN5bW1ldHJpYywgd2hpY2gKKyAqCW1lYW5zIHlvdSdsbCBoYXZlIGEgYm9y ZGVyIG9mICdoYm9yZGVyJyBwaXhlbHMgb24gdGhlIGxlZnQgYW5kIG9uIHRoZQorICoJc2FtZSBi b3JkZXIgb24gdGhlIHJpZ2h0LgorICoJV2hlbiB0aGlzIHZhbHVlIGlzIDAgYW5kIHVuZGVyc2Nh biBpcyAib24iIG9yICJhdXRvIiwgdGhlIGRyaXZlciB3aWxsCisgKglwaWNrIGEgZGVmYXVsdCB2 YWx1ZSAodGhlIGRlZmF1bHQgdmFsdWUgaXMgZHJpdmVyIGRlcGVuZGVudCkuCisgKgorICogdW5k ZXJzY2FuIHZib3JkZXI6CisgKglWZXJ0aWNhbCBib3JkZXIgZXhwcmVzc2VkIGluIHBpeGVscy4g VGhlIGJvcmRlciBpcyBzeW1tZXRyaWMsIHdoaWNoCisgKgltZWFucyB5b3UnbGwgaGF2ZSBhIGJv cmRlciBvZiAndmJvcmRlcicgcGl4ZWxzIG9uIHRoZSB0b3AgYW5kIHRoZSBzYW1lCisgKglib3Jk ZXIgb24gdGhlIGJvdHRvbS4KKyAqCVdoZW4gdGhpcyB2YWx1ZSBpcyAwIGFuZCB1bmRlcnNjYW4g aXMgIm9uIiBvciAiYXV0byIsIHRoZSBkcml2ZXIgd2lsbAorICoJcGljayBhIGRlZmF1bHQgdmFs dWUgKHRoZSBkZWZhdWx0IHZhbHVlIGlzIGRyaXZlciBkZXBlbmRlbnQpLgogICovCiAKIGludCBk cm1fY29ubmVjdG9yX2NyZWF0ZV9zdGFuZGFyZF9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCkBAIC0xMTA4LDYgKzExNDAsMTAxIEBAIGludCBkcm1fbW9kZV9jcmVhdGVfdHZfcHJv cGVydGllcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogfQogRVhQT1JUX1NZTUJPTChkcm1fbW9k ZV9jcmVhdGVfdHZfcHJvcGVydGllcyk7CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3Byb3Bf ZW51bV9saXN0IGRybV91bmRlcnNjYW5fbW9kZV9lbnVtX2xpc3RbXSA9IHsKKwl7IERSTV9VTkRF UlNDQU5fT0ZGLCAib2ZmIiB9LAorCXsgRFJNX1VOREVSU0NBTl9PTiwgIm9uIiB9LAorCXsgRFJN X1VOREVSU0NBTl9BVVRPLCAiYXV0byIgfSwKK307CisKKy8qKgorICogZHJtX2Nvbm5lY3Rvcl9h dHRhY2hfdW5kZXJzY2FuX3Byb3BlcnRpZXMgLSBhdHRhY2ggYXRvbWljIHVuZGVyc2NhbgorICoJ CQkJCSAgICAgICBwcm9wZXJ0aWVzCisgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgdG8gYXR0YWNo IHVuZGVyc2NhbiBtb2RlIHByb3BlcnRpZXMgb24uCisgKiBAbW9kZV9tYXNrOiBiaXRtYXNrIG9m ICVEUk1fVU5ERVJTQ0FOX1hYIG1vZGVzIGVuY29kaW5nIHRoZSBzdXBwb3J0ZWQKKyAqCSAgICAg ICB1bmRlcnNjYW4gbW9kZXMuCisgKiBAbWF4X2hib3JkZXI6IG1heGltdW0gc2l6ZSBvZiB0aGUg aG9yaXpvbnRhbCBib3JkZXIgZXhwcmVzc2VkIGluIHBpeGVscy4KKyAqCQkgU2hvdWxkIGJlID4g MC4KKyAqIEBtYXhfdmJvcmRlcjogbWF4aW11bSBzaXplIG9mIHRoZSB2ZXJ0aWNhbCBib3JkZXIg ZXhwcmVzc2VkIGluIHBpeGVscy4KKyAqCQkgU2hvdWxkIGJlID4gMC4KKyAqCisgKiBUaGlzIGlz IHVzZWQgdG8gYWRkIHN1cHBvcnQgZm9yIHVuZGVyc2NhbiB0byBhdG9taWMgZHJpdmVycy4KKyAq IFRoZSB1bmRlcnNjYW4gY29uZmlnIHdpbGwgYmUgc2V0IHRvICZkcm1fY29ubmVjdG9yX3N0YXRl LnVuZGVyc2NhbgorICogYW5kIGNhbiBiZSB1c2VkIGZyb20gJmRybV9jb25uZWN0b3JfaGVscGVy X2Z1bmNzLT5hdG9taWNfY2hlY2sgZm9yCisgKiB2YWxpZGF0aW9uLgorICoKKyAqIFJldHVybnM6 CisgKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1cmUuCisgKi8KK2lu dCBkcm1fY29ubmVjdG9yX2F0dGFjaF91bmRlcnNjYW5fcHJvcGVydGllcyhzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAorCQkJCQkgICAgICB1MzIgbW9kZV9tYXNrLCB1NjQgbWF4X2hi b3JkZXIsCisJCQkJCSAgICAgIHU2NCBtYXhfdmJvcmRlcikKK3sKKwl1bnNpZ25lZCBpbnQgaSwg bm1vZGVzID0gQVJSQVlfU0laRShkcm1fdW5kZXJzY2FuX21vZGVfZW51bV9saXN0KTsKKwlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7CisJc3RydWN0IGRybV9wcm9wZXJ0 eSAqcHJvcDsKKworCWlmICghbWF4X2hib3JkZXIgfHwgIW1heF92Ym9yZGVyKQorCQlyZXR1cm4g LUVJTlZBTDsKKworCWlmICghaHdlaWdodDMyKG1vZGVfbWFzaykgfHwgKG1vZGVfbWFzayAmIH5H RU5NQVNLKG5tb2RlcyAtIDEsIDApKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlwcm9wID0gZHJt X3Byb3BlcnR5X2NyZWF0ZShkZXYsIERSTV9NT0RFX1BST1BfRU5VTSwgInVuZGVyc2NhbiIsCisJ CQkJICAgaHdlaWdodDMyKG1vZGVfbWFzaykpOworCWlmICghcHJvcCkKKwkJcmV0dXJuIC1FTk9N RU07CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShkcm1fdW5kZXJzY2FuX21vZGVfZW51 bV9saXN0KTsgaSsrKSB7CisJCWNvbnN0IHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgKmVudHJ5 OworCQlpbnQgcmV0OworCisJCWlmICghKEJJVChpKSAmIG1vZGVfbWFzaykpCisJCQljb250aW51 ZTsKKworCQllbnRyeSA9ICZkcm1fdW5kZXJzY2FuX21vZGVfZW51bV9saXN0W2ldOworCQlyZXQg PSBkcm1fcHJvcGVydHlfYWRkX2VudW0ocHJvcCwgZW50cnktPnR5cGUsIGVudHJ5LT5uYW1lKTsK KwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyX2ZyZWVfbW9kZV9wcm9wOworCX0KKworCWNvbm5lY3Rv ci0+dW5kZXJzY2FuX21vZGVfcHJvcGVydHkgPSBwcm9wOworCisJcHJvcCA9IGRybV9wcm9wZXJ0 eV9jcmVhdGVfcmFuZ2UoZGV2LCAwLCAidW5kZXJzY2FuIGhib3JkZXIiLCAwLAorCQkJCQkgbWF4 X2hib3JkZXIpOworCWlmICghcHJvcCkKKwkJZ290byBlcnJfZnJlZV9tb2RlX3Byb3A7CisKKwlj b25uZWN0b3ItPnVuZGVyc2Nhbl9oYm9yZGVyX3Byb3BlcnR5ID0gcHJvcDsKKworCXByb3AgPSBk cm1fcHJvcGVydHlfY3JlYXRlX3JhbmdlKGRldiwgMCwgInVuZGVyc2NhbiB2Ym9yZGVyIiwgMCwK KwkJCQkJIG1heF92Ym9yZGVyKTsKKwlpZiAoIXByb3ApCisJCWdvdG8gZXJyX2ZyZWVfaGJvcmRl cl9wcm9wOworCisJY29ubmVjdG9yLT51bmRlcnNjYW5fdmJvcmRlcl9wcm9wZXJ0eSA9IHByb3A7 CisKKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAorCQkJCSAg IGNvbm5lY3Rvci0+dW5kZXJzY2FuX21vZGVfcHJvcGVydHksCisJCQkJICAgRFJNX1VOREVSU0NB Tl9PRkYpOworCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCisJ CQkJICAgY29ubmVjdG9yLT51bmRlcnNjYW5faGJvcmRlcl9wcm9wZXJ0eSwgMCk7CisJZHJtX29i amVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKKwkJCQkgICBjb25uZWN0b3It PnVuZGVyc2Nhbl92Ym9yZGVyX3Byb3BlcnR5LCAwKTsKKworCXJldHVybiAwOworCitlcnJfZnJl ZV9oYm9yZGVyX3Byb3A6CisJZHJtX3Byb3BlcnR5X2Rlc3Ryb3koZGV2LCBjb25uZWN0b3ItPnVu ZGVyc2Nhbl9oYm9yZGVyX3Byb3BlcnR5KTsKKwljb25uZWN0b3ItPnVuZGVyc2Nhbl9oYm9yZGVy X3Byb3BlcnR5ID0gTlVMTDsKKworZXJyX2ZyZWVfbW9kZV9wcm9wOgorCWRybV9wcm9wZXJ0eV9k ZXN0cm95KGRldiwgY29ubmVjdG9yLT51bmRlcnNjYW5fbW9kZV9wcm9wZXJ0eSk7CisJY29ubmVj dG9yLT51bmRlcnNjYW5fbW9kZV9wcm9wZXJ0eSA9IE5VTEw7CisKKwlyZXR1cm4gLUVOT01FTTsK K30KK0VYUE9SVF9TWU1CT0woZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfdW5kZXJzY2FuX3Byb3BlcnRp ZXMpOworCiAvKioKICAqIGRybV9tb2RlX2NyZWF0ZV9zY2FsaW5nX21vZGVfcHJvcGVydHkgLSBj cmVhdGUgc2NhbGluZyBtb2RlIHByb3BlcnR5CiAgKiBAZGV2OiBEUk0gZGV2aWNlCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggYi9pbmNsdWRlL2RybS9kcm1fY29ubmVj dG9yLmgKaW5kZXggNjc1Y2MzZjhjZjg1Li41YWQ5NjhkYzQ4YzMgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvZHJtL2RybV9jb25uZWN0b3IuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgK QEAgLTM3Miw2ICszNzIsNTMgQEAgc3RydWN0IGRybV90dl9jb25uZWN0b3Jfc3RhdGUgewogCXVu c2lnbmVkIGludCBodWU7CiB9OwogCisvKioKKyAqIGVudW0gZHJtX3VuZGVyc2Nhbl9tb2RlIC0g VW5kZXJzY2FuIG1vZGUKKyAqCisgKiBUaGlzIGVudW0gaXMgdXNlZCB0byB0cmFjayB0aGUgdW5k ZXJzY2FuIG1vZGUuCisgKgorICogQERSTV9VTkRFUlNDQU5fT0ZGOiBObyB1bmRlcnNjYW4gYXBw bGllZCwgdGhlIG91dHB1dCBpbWFnZSB3aWxsIGJlIHVuY2hhbmdlZAorICogQERSTV9VTkRFUlND QU5fT046IFVuZGVyc2NhbiBpcyBlbmFibGVkLCBhbmQgaG9yaXpvbnRhbC92ZXJ0aWNhbCBib3Jk ZXIgc2l6ZQorICoJCSAgICAgIGFyZSBzcGVjaWZpZWQgdGhyb3VnaCB0aGUgJnN0cnVjdF9kcm1f dW5kZXJzY2FuLT5oYm9yZGVyCisgKgkJICAgICAgYW5kICZzdHJ1Y3RfZHJtX3VuZGVyc2Nhbi0+ dmJvcmRlciBmaWVsZHMuCisgKiBARFJNX1VOREVSU0NBTl9BVVRPOiBVbmRlcnNjYW4gaXMgZW5h YmxlZCBhbmQgJnN0cnVjdF9kcm1fdW5kZXJzY2FuLT5oYm9yZGVyCisgKgkJCWFuZCAmc3RydWN0 X2RybV91bmRlcnNjYW4tPnZib3JkZXIgYXJlIGd1ZXNzZWQgYnkgdGhlCisgKgkJCWRyaXZlci4K KyAqLworZW51bSBkcm1fdW5kZXJzY2FuX21vZGUgeworCURSTV9VTkRFUlNDQU5fT0ZGLAorCURS TV9VTkRFUlNDQU5fT04sCisJRFJNX1VOREVSU0NBTl9BVVRPLAorfTsKKworLyoqCisgKiBzdHJ1 Y3QgZHJtX3VuZGVyc2Nhbl9zdGF0ZSAtIFVuZGVyc2NhbiBwcm9wZXJ0aWVzIGF0dGFjaGVkIHRv IGEgY29ubmVjdG9yCisgKgkJCQlzdGF0ZQorICoKKyAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gdGVs bCB0aGUgQ1JUQyBob3cgdGhlIGltYWdlIHNob3VsZCBiZSBzY2FsZWQvcGxhY2VkIGluCisgKiBv cmRlciB0byBjb3ZlciBmaXQgaW4gdGhlIGRpc3BsYXkgY29ubmVjdGVkIHRocm91Z2ggdGhpcyBj b25uZWN0b3IuIE1vc3Qgb2YKKyAqIHRoZSB0aW1lIHVzZWQgdG8gYWRkcmVzcyBzaXR1YXRpb25z IHdoZXJlIHRoZSBkaXNwbGF5IGJvcmRlcnMgYXJlIGhpZGRlbi4KKyAqIENhbiBhbHNvIGJlIHVz ZWQgdG8gY29tcGVuc2F0ZSBvdmVyc2NhbiBkb25lIG9uIHRoZSBkaXNwbGF5IHNpZGUuCisgKi8K K3N0cnVjdCBkcm1fdW5kZXJzY2FuX3N0YXRlIHsKKwkvKioKKwkgKiBAbW9kZTogVW5kZXJzY2Fu IG1vZGUuCisJICovCisJZW51bSBkcm1fdW5kZXJzY2FuX21vZGUgbW9kZTsKKworCS8qKgorCSAq IEBoYm9yZGVyOiBIb3Jpem9udGFsIGJvcmRlci4gVGhpcyB2YWx1ZXMgZW5jb2RlcyBib3RoIHRo ZSBsZWZ0IGFuZAorCSAqIHJpZ2h0IGJvcmRlcnM6IGxlZnRfYm9yZGVyID0gcmlnaHRfYm9yZGVy ID0gaGJvcmRlciAvIDIuCisJICovCisJdW5zaWduZWQgaW50IGhib3JkZXI7CisKKwkvKioKKwkg KiBAdmJvcmRlcjogVmVydGljYWwgYm9yZGVyLiBUaGlzIHZhbHVlcyBlbmNvZGVzIGJvdGggdGhl IHRvcCBhbmQKKwkgKiBib3R0b20gYm9yZGVyczogdG9wX2JvcmRlciA9IGJvdHRvbV9ib3JkZXIg PSB2Ym9yZGVyIC8gMi4KKwkgKi8KKwl1bnNpZ25lZCBpbnQgdmJvcmRlcjsKK307CisKIC8qKgog ICogc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgLSBtdXRhYmxlIGNvbm5lY3RvciBzdGF0ZQog ICogQGNvbm5lY3RvcjogYmFja3BvaW50ZXIgdG8gdGhlIGNvbm5lY3RvcgpAQCAtNDI5LDYgKzQ3 NiwxMyBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSB7CiAJICogcHJvdGVjdGlvbi4gVGhp cyBpcyBtb3N0IGNvbW1vbmx5IHVzZWQgZm9yIEhEQ1AuCiAJICovCiAJdW5zaWduZWQgaW50IGNv bnRlbnRfcHJvdGVjdGlvbjsKKworCS8qKgorCSAqIEB1bmRlcnNjYW46IFVuZGVyc2NhbiBpbmZv cm1hdGlvbi4gTW9zdCBjb21tb25seSB1c2VkIHRvIGFkanVzdAorCSAqIGltYWdlIHdoZW4gdGhl IGRpc3BsYXkgaGFzIGJvcmRlcnMgY292ZXJpbmcgcGFydCBvZiB0aGUgaW1hZ2Ugb2YKKwkgKiB3 aGVuIGl0J3MgZG9pbmcgb3ZlcnNjYW4gb24gaXRzIG93bi4KKwkgKi8KKwlzdHJ1Y3QgZHJtX3Vu ZGVyc2Nhbl9zdGF0ZSB1bmRlcnNjYW47CiB9OwogCiAvKioKQEAgLTg5Miw2ICs5NDYsMjkgQEAg c3RydWN0IGRybV9jb25uZWN0b3IgewogCSAqLwogCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAq dGlsZV9ibG9iX3B0cjsKIAorCS8qKgorCSAqIEB1bmRlcnNjYW5fbW9kZV9wcm9wZXJ0eTogT3B0 aW9uYWwgY29ubmVjdG9yIHVuZGVyc2NhbiBtb2RlLiBVc2VkIGJ5CisJICogdGhlIGRyaXZlciB0 byBzY2FsZSB0aGUgb3V0cHV0IGltYWdlIGFuZCBjb21wZW5zYXRlIGFuIG92ZXJzY2FuIGRvbmUK KwkgKiBvbiB0aGUgZGlzcGxheSBzaWRlLgorCSAqLworCXN0cnVjdCBkcm1fcHJvcGVydHkgKnVu ZGVyc2Nhbl9tb2RlX3Byb3BlcnR5OworCisJLyoqCisJICogQHVuZGVyc2Nhbl9oYm9yZGVyX3By b3BlcnR5OiBPcHRpb25hbCBjb25uZWN0b3IgdW5kZXJzY2FuIGhvcml6b250YWwKKwkgKiBib3Jk ZXIgKGV4cHJlc3NlZCBpbiBwaXhlbHMpLiBVc2VkIGJ5IHRoZSBkcml2ZXIgdG8gYWRqdXN0IHRo ZQorCSAqIG91dHB1dCBpbWFnZSBwb3NpdGlvbiBhbmQgY29tcGVuc2F0ZSBhbiBvdmVyc2NhbiBk b25lIG9uIHRoZSBkaXNwbGF5CisJICogc2lkZS4KKwkgKi8KKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5 ICp1bmRlcnNjYW5faGJvcmRlcl9wcm9wZXJ0eTsKKworCS8qKgorCSAqIEB1bmRlcnNjYW5faGJv cmRlcl9wcm9wZXJ0eTogT3B0aW9uYWwgY29ubmVjdG9yIHVuZGVyc2NhbiB2ZXJ0aWNhbAorCSAq IGJvcmRlciAoZXhwcmVzc2VkIGluIHBpeGVscykuIFVzZWQgYnkgdGhlIGRyaXZlciB0byBhZGp1 c3QgdGhlCisJICogb3V0cHV0IGltYWdlIHBvc2l0aW9uIGFuZCBjb21wZW5zYXRlIGFuIG92ZXJz Y2FuIGRvbmUgb24gdGhlIGRpc3BsYXkKKwkgKiBzaWRlLgorCSAqLworCXN0cnVjdCBkcm1fcHJv cGVydHkgKnVuZGVyc2Nhbl92Ym9yZGVyX3Byb3BlcnR5OworCiAvKiBzaG91bGQgd2UgcG9sbCB0 aGlzIGNvbm5lY3RvciBmb3IgY29ubmVjdHMgYW5kIGRpc2Nvbm5lY3RzICovCiAvKiBob3QgcGx1 ZyBkZXRlY3RhYmxlICovCiAjZGVmaW5lIERSTV9DT05ORUNUT1JfUE9MTF9IUEQgKDEgPDwgMCkK QEAgLTEwODgsNiArMTE2NSw5IEBAIGludCBkcm1fbW9kZV9jcmVhdGVfZHZpX2lfcHJvcGVydGll cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGludCBkcm1fbW9kZV9jcmVhdGVfdHZfcHJvcGVy dGllcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSAgdW5zaWduZWQgaW50IG51bV9tb2Rl cywKIAkJCQkgIGNvbnN0IGNoYXIgKiBjb25zdCBtb2Rlc1tdKTsKK2ludCBkcm1fY29ubmVjdG9y X2F0dGFjaF91bmRlcnNjYW5fcHJvcGVydGllcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAorCQkJCQkgICAgICB1MzIgbW9kZV9tYXNrLCB1NjQgbWF4X2hib3JkZXIsCisJCQkJCSAg ICAgIHU2NCBtYXhfdmJvcmRlcik7CiBpbnQgZHJtX21vZGVfY3JlYXRlX3NjYWxpbmdfbW9kZV9w cm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGludCBkcm1fY29ubmVjdG9yX2F0dGFj aF9zY2FsaW5nX21vZGVfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK IAkJCQkJICAgICAgIHUzMiBzY2FsaW5nX21vZGVfbWFzayk7Ci0tIAoyLjE0LjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBs aXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=