From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: [PATCH v7 2/7] drm: Add panel orientation quirks, v6. Date: Sat, 25 Nov 2017 20:35:48 +0100 Message-ID: <20171125193553.23986-3-hdegoede@redhat.com> References: <20171125193553.23986-1-hdegoede@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171125193553.23986-1-hdegoede@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter , Jani Nikula , Sean Paul , Dave Airlie , Bartlomiej Zolnierkiewicz Cc: Hans de Goede , intel-gfx , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org U29tZSB4ODYgY2xhbXNoZWxsIGRlc2lnbiBkZXZpY2VzIHVzZSBwb3J0cmFpdCB0YWJsZXQgc2Ny ZWVucyBhbmQgYSBkaXNwbGF5CmVuZ2luZSB3aGljaCBjYW5ub3Qgcm90YXRlIGluIGhhcmR3YXJl LCBzbyB0aGUgZmlybXdhcmUganVzdCBsZWF2ZXMgdGhpbmdzCmFzIGlzIGFuZCB3ZSBjYW5ub3Qg ZmlndXJlIG91dCB0aGF0IHRoZSBkaXNwbGF5IGlzIG9yaWVudGVkIG5vbiB1cHJpZ2h0CmZyb20g dGhlIGhhcmR3YXJlLgoKU28gYXQgbGVhc3Qgb24geDg2LCB3ZSBuZWVkIGEgcXVpcmsgdGFibGUg Zm9yIHRoaXMuIFRoaXMgY29tbWl0IGFkZHMgYSBETUkKYmFzZWQgcXVpcmsgdGFibGUgd2hpY2gg aXMgaW5pdGlhbGx5IHBvcHVsYXRlZCB3aXRoIDUgc3VjaCBkZXZpY2VzOiBBc3VzClQxMDBIQSwg R1BEIFBvY2tldCwgR1BEIHdpbiwgSS5ULldvcmtzIFRXODkxIGFuZCB0aGUgVklPUyBMVEgxNy4K ClRoaXMgcXVpcmsgdGFibGUgd2lsbCBiZSB1c2VkIGJ5IHRoZSBkcm0gY29kZSB0byBsZXQgdXNl cnNwYWNlIGtub3cgdGhhdAp0aGUgZGlzcGxheSBpcyBub3QgbW91bnRlZCB1cHJpZ2h0IGluc2lk ZSB0aGUgZGV2aWNlcyBjYXNlIHRocm91Z2ggYSBuZXcKcGFuZWwgb3JpZW50YXRpb24gZHJtLWNv bm5lY3RvciBwcm9wZXJ0eSwgYXMgd2VsbCBhcyB0byB0ZWxsIGZiY29uIHRvCnJvdGF0ZSB0aGUg Y29uc29sZSBzbyB0aGF0IGl0IHNob3dzIHRoZSByaWdodCB3YXkgdXAuCgpDaGFuZ2VzIGluIHY1 OgotQWRkIGEga2VybmVsLWRvYyBjb21tZW50IGRvY3VtZW50aW5nIGRybV9nZXRfcGFuZWxfb3Jp ZW50YXRpb25fcXVpcmsoKQotUmVtb3ZlIGJvYXJkXyogbWF0Y2hlcyBmcm9tIHRoZSBkbWktbWF0 Y2hlcyBmb3IgdGhlIFZJT1MgTFRIMTcgbGFwdG9wLAoga2VlcGluZyBvbmx5IHRoZSAoaWRlbnRp Y2FsKSBzeXNfdmVuZG9yIGFuZCBwcm9kdWN0X25hbWUgbWF0Y2hlcy4KIFRoaXMgaXMgbmVjZXNz YXJ5IGJlY2F1c2UgYW4gb2xkZXIgdmVyc2lvbiBvZiB0aGUgYmlvcyBoYXMKIGJvYXJkX3ZlbmRv ciBzZXQgdG8gVk9JUyBpbnN0ZWFkIG9mIFZJT1MKCkNoYW5nZXMgaW4gdjY6Ci1BZGQgcmVmZXJl bmNlIHRvIGFkZGVkIGtlcm5lbC1kb2NzIGluIERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVs cGVycy5yc3QKClJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xs LmNoPgpTaWduZWQtb2ZmLWJ5OiBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPgot LS0KIERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QgICAgICAgICAgfCAgIDMg KwogZHJpdmVycy9ncHUvZHJtL0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyAr CiBkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsK IGRyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWxfb3JpZW50YXRpb25fcXVpcmtzLmMgfCAxNzQgKysr KysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJtX3V0aWxzLmggICAgICAgICAg ICAgICAgICAgICAgICB8ICAxOCArKysKIDUgZmlsZXMgY2hhbmdlZCwgMTk5IGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZHJtX3BhbmVsX29yaWVudGF0 aW9uX3F1aXJrcy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kcm0vZHJtX3V0aWxzLmgK CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0IGIvRG9j dW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdAppbmRleCAxM2RkMjM3NDE4Y2MuLjNl YTYyMjg3NmI2NyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJz LnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0CkBAIC0xNjMs NiArMTYzLDkgQEAgUGFuZWwgSGVscGVyIFJlZmVyZW5jZQogLi4ga2VybmVsLWRvYzo6IGRyaXZl cnMvZ3B1L2RybS9kcm1fcGFuZWwuYwogICAgOmV4cG9ydDoKIAorLi4ga2VybmVsLWRvYzo6IGRy aXZlcnMvZ3B1L2RybS9kcm1fcGFuZWxfb3JpZW50YXRpb25fcXVpcmtzLmMKKyAgIDpleHBvcnQ6 CisKIERpc3BsYXkgUG9ydCBIZWxwZXIgRnVuY3Rpb25zIFJlZmVyZW5jZQogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKaW5kZXggNGQ5ZjIxODMxNzQxLi45 ZDAwNWFjOThjMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9LY29uZmlnCkBAIC0yNiw2ICsyNiw5IEBAIGNvbmZpZyBEUk1fTUlQSV9E U0kKIAlib29sCiAJZGVwZW5kcyBvbiBEUk0KIAorY29uZmlnIERSTV9QQU5FTF9PUklFTlRBVElP Tl9RVUlSS1MKKwl0cmlzdGF0ZQorCiBjb25maWcgRFJNX0RQX0FVWF9DSEFSREVWCiAJYm9vbCAi RFJNIERQIEFVWCBJbnRlcmZhY2UiCiAJZGVwZW5kcyBvbiBEUk0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQppbmRleCBlOTUw MDg0NDMzM2UuLmU1YmY2OGI5YzE3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL01ha2Vm aWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQpAQCAtNDcsNiArNDcsNyBAQCBvYmot JChDT05GSUdfRFJNX0RFQlVHX01NX1NFTEZURVNUKSArPSBzZWxmdGVzdHMvCiAKIG9iai0kKENP TkZJR19EUk0pCSs9IGRybS5vCiBvYmotJChDT05GSUdfRFJNX01JUElfRFNJKSArPSBkcm1fbWlw aV9kc2kubworb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9PUklFTlRBVElPTl9RVUlSS1MpICs9IGRy bV9wYW5lbF9vcmllbnRhdGlvbl9xdWlya3Mubwogb2JqLSQoQ09ORklHX0RSTV9BUk0pCSs9IGFy bS8KIG9iai0kKENPTkZJR19EUk1fVFRNKQkrPSB0dG0vCiBvYmotJChDT05GSUdfRFJNX1RERlgp CSs9IHRkZngvCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BhbmVsX29yaWVudGF0 aW9uX3F1aXJrcy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbF9vcmllbnRhdGlvbl9xdWly a3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmI4NzY1ZTJlZDFk NgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWxfb3JpZW50YXRp b25fcXVpcmtzLmMKQEAgLTAsMCArMSwxNzQgQEAKKy8qCisgKiAgZHJtX3BhbmVsX29yaWVudGF0 aW9uX3F1aXJrcy5jIC0tIFF1aXJrcyBmb3Igbm9uLW5vcm1hbCBwYW5lbCBvcmllbnRhdGlvbgor ICoKKyAqCUNvcHlyaWdodCAoQykgMjAxNyBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQu Y29tPgorICoKKyAqICBUaGlzIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRp dGlvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UuICBTZWUgdGhlIGZp bGUgQ09QWUlORyBpbiB0aGUgbWFpbiBkaXJlY3Rvcnkgb2YgdGhpcyBhcmNoaXZlIGZvcgorICog IG1vcmUgZGV0YWlscy4KKyAqLworCisjaW5jbHVkZSA8bGludXgvZG1pLmg+CisjaW5jbHVkZSA8 ZHJtL2RybV9jb25uZWN0b3IuaD4KKworI2lmZGVmIENPTkZJR19ETUkKKworLyoKKyAqIFNvbWUg eDg2IGNsYW1zaGVsbCBkZXNpZ24gZGV2aWNlcyB1c2UgcG9ydHJhaXQgdGFibGV0IHNjcmVlbnMg YW5kIGEgZGlzcGxheQorICogZW5naW5lIHdoaWNoIGNhbm5vdCByb3RhdGUgaW4gaGFyZHdhcmUs IHNvIHdlIG5lZWQgdG8gcm90YXRlIHRoZSBmYmNvbiB0bworICogY29tcGVuc2F0ZS4gVW5mb3J0 dW5hdGVseSB0aGVzZSAoY2hlYXApIGRldmljZXMgYWxzbyB0eXBpY2FsbHkgaGF2ZSBxdWl0ZQor ICogZ2VuZXJpYyBETUkgZGF0YSwgc28gd2UgbWF0Y2ggb24gYSBjb21iaW5hdGlvbiBvZiBETUkg ZGF0YSwgc2NyZWVuIHJlc29sdXRpb24KKyAqIGFuZCBhIGxpc3Qgb2Yga25vd24gQklPUyBkYXRl cyB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZXMuCisgKi8KKworc3RydWN0IGRybV9kbWlfcGFuZWxf b3JpZW50YXRpb25fZGF0YSB7CisJaW50IHdpZHRoOworCWludCBoZWlnaHQ7CisJY29uc3QgY2hh ciAqIGNvbnN0ICpiaW9zX2RhdGVzOworCWludCBvcmllbnRhdGlvbjsKK307CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2RtaV9wYW5lbF9vcmllbnRhdGlvbl9kYXRhIGFzdXNfdDEwMGhhID0g eworCS53aWR0aCA9IDgwMCwKKwkuaGVpZ2h0ID0gMTI4MCwKKwkub3JpZW50YXRpb24gPSBEUk1f TU9ERV9QQU5FTF9PUklFTlRBVElPTl9MRUZUX1VQLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1fZG1pX3BhbmVsX29yaWVudGF0aW9uX2RhdGEgZ3BkX3BvY2tldCA9IHsKKwkud2lkdGgg PSAxMjAwLAorCS5oZWlnaHQgPSAxOTIwLAorCS5iaW9zX2RhdGVzID0gKGNvbnN0IGNoYXIgKiBj b25zdCBbXSl7ICIwNS8yNi8yMDE3IiwgIjA2LzI4LzIwMTciLAorCQkiMDcvMDUvMjAxNyIsICIw OC8wNy8yMDE3IiwgTlVMTCB9LAorCS5vcmllbnRhdGlvbiA9IERSTV9NT0RFX1BBTkVMX09SSUVO VEFUSU9OX1JJR0hUX1VQLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZG1pX3BhbmVs X29yaWVudGF0aW9uX2RhdGEgZ3BkX3dpbiA9IHsKKwkud2lkdGggPSA3MjAsCisJLmhlaWdodCA9 IDEyODAsCisJLmJpb3NfZGF0ZXMgPSAoY29uc3QgY2hhciAqIGNvbnN0IFtdKXsKKwkJIjEwLzI1 LzIwMTYiLCAiMTEvMTgvMjAxNiIsICIxMi8yMy8yMDE2IiwgIjEyLzI2LzIwMTYiLAorCQkiMDIv MjEvMjAxNyIsICIwMy8yMC8yMDE3IiwgIjA1LzI1LzIwMTciLCBOVUxMIH0sCisJLm9yaWVudGF0 aW9uID0gRFJNX01PREVfUEFORUxfT1JJRU5UQVRJT05fUklHSFRfVVAsCit9OworCitzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9kbWlfcGFuZWxfb3JpZW50YXRpb25fZGF0YSBpdHdvcmtzX3R3ODkx ID0geworCS53aWR0aCA9IDgwMCwKKwkuaGVpZ2h0ID0gMTI4MCwKKwkuYmlvc19kYXRlcyA9IChj b25zdCBjaGFyICogY29uc3QgW10peyAiMTAvMTYvMjAxNSIsIE5VTEwgfSwKKwkub3JpZW50YXRp b24gPSBEUk1fTU9ERV9QQU5FTF9PUklFTlRBVElPTl9SSUdIVF9VUCwKK307CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2RtaV9wYW5lbF9vcmllbnRhdGlvbl9kYXRhIHZpb3NfbHRoMTcgPSB7 CisJLndpZHRoID0gODAwLAorCS5oZWlnaHQgPSAxMjgwLAorCS5vcmllbnRhdGlvbiA9IERSTV9N T0RFX1BBTkVMX09SSUVOVEFUSU9OX1JJR0hUX1VQLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVj dCBkbWlfc3lzdGVtX2lkIG9yaWVudGF0aW9uX2RhdGFbXSA9IHsKKwl7CS8qIEFzdXMgVDEwMEhB ICovCisJCS5tYXRjaGVzID0geworCQkgIERNSV9FWEFDVF9NQVRDSChETUlfU1lTX1ZFTkRPUiwg IkFTVVNUZUsgQ09NUFVURVIgSU5DLiIpLAorCQkgIERNSV9FWEFDVF9NQVRDSChETUlfUFJPRFVD VF9OQU1FLCAiVDEwMEhBTiIpLAorCQl9LAorCQkuZHJpdmVyX2RhdGEgPSAodm9pZCAqKSZhc3Vz X3QxMDBoYSwKKwl9LCB7CS8qCisJCSAqIEdQRCBQb2NrZXQsIG5vdGUgdGhhdCB0aGUgdGhlIERN SSBkYXRhIGlzIGxlc3MgZ2VuZXJpYyB0aGVuCisJCSAqIGl0IHNlZW1zLCBkZXZpY2VzIHdpdGgg YSBib2FyZC12ZW5kb3Igb2YgIkFNSSBDb3Jwb3JhdGlvbiIKKwkJICogYXJlIHF1aXRlIHJhcmUs IGFzIGFyZSBkZXZpY2VzIHdoaWNoIGhhdmUgYm90aCBib2FyZC0gKmFuZCoKKwkJICogcHJvZHVj dC1pZCBzZXQgdG8gIkRlZmF1bHQgU3RyaW5nIgorCQkgKi8KKwkJLm1hdGNoZXMgPSB7CisJCSAg RE1JX0VYQUNUX01BVENIKERNSV9CT0FSRF9WRU5ET1IsICJBTUkgQ29ycG9yYXRpb24iKSwKKwkJ ICBETUlfRVhBQ1RfTUFUQ0goRE1JX0JPQVJEX05BTUUsICJEZWZhdWx0IHN0cmluZyIpLAorCQkg IERNSV9FWEFDVF9NQVRDSChETUlfQk9BUkRfU0VSSUFMLCAiRGVmYXVsdCBzdHJpbmciKSwKKwkJ ICBETUlfRVhBQ1RfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIkRlZmF1bHQgc3RyaW5nIiksCisJ CX0sCisJCS5kcml2ZXJfZGF0YSA9ICh2b2lkICopJmdwZF9wb2NrZXQsCisJfSwgewkvKiBHUEQg V2luIChzYW1lIG5vdGUgb24gRE1JIG1hdGNoIGFzIEdQRCBQb2NrZXQpICovCisJCS5tYXRjaGVz ID0geworCQkgIERNSV9FWEFDVF9NQVRDSChETUlfQk9BUkRfVkVORE9SLCAiQU1JIENvcnBvcmF0 aW9uIiksCisJCSAgRE1JX0VYQUNUX01BVENIKERNSV9CT0FSRF9OQU1FLCAiRGVmYXVsdCBzdHJp bmciKSwKKwkJICBETUlfRVhBQ1RfTUFUQ0goRE1JX0JPQVJEX1NFUklBTCwgIkRlZmF1bHQgc3Ry aW5nIiksCisJCSAgRE1JX0VYQUNUX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJEZWZhdWx0IHN0 cmluZyIpLAorCQl9LAorCQkuZHJpdmVyX2RhdGEgPSAodm9pZCAqKSZncGRfd2luLAorCX0sIHsJ LyogSS5ULldvcmtzIFRXODkxICovCisJCS5tYXRjaGVzID0geworCQkgIERNSV9FWEFDVF9NQVRD SChETUlfU1lTX1ZFTkRPUiwgIlRvIGJlIGZpbGxlZCBieSBPLkUuTS4iKSwKKwkJICBETUlfRVhB Q1RfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIlRXODkxIiksCisJCSAgRE1JX0VYQUNUX01BVENI KERNSV9CT0FSRF9WRU5ET1IsICJUbyBiZSBmaWxsZWQgYnkgTy5FLk0uIiksCisJCSAgRE1JX0VY QUNUX01BVENIKERNSV9CT0FSRF9OQU1FLCAiVFc4OTEiKSwKKwkJfSwKKwkJLmRyaXZlcl9kYXRh ID0gKHZvaWQgKikmaXR3b3Jrc190dzg5MSwKKwl9LCB7CS8qIFZJT1MgTFRIMTcgKi8KKwkJLm1h dGNoZXMgPSB7CisJCSAgRE1JX0VYQUNUX01BVENIKERNSV9TWVNfVkVORE9SLCAiVklPUyIpLAor CQkgIERNSV9FWEFDVF9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiTFRIMTciKSwKKwkJfSwKKwkJ LmRyaXZlcl9kYXRhID0gKHZvaWQgKikmdmlvc19sdGgxNywKKwl9LAorCXt9Cit9OworCisvKioK KyAqIGRybV9nZXRfcGFuZWxfb3JpZW50YXRpb25fcXVpcmsgLSBDaGVjayBmb3IgcGFuZWwgb3Jp ZW50YXRpb24gcXVpcmtzCisgKiBAd2lkdGg6IHdpZHRoIGluIHBpeGVscyBvZiB0aGUgcGFuZWwK KyAqIEBoZWlnaHQ6IGhlaWdodCBpbiBwaXhlbHMgb2YgdGhlIHBhbmVsCisgKgorICogVGhpcyBm dW5jdGlvbiBjaGVja3MgZm9yIHBsYXRmb3JtIHNwZWNpZmljIChlLmcuIERNSSBiYXNlZCkgcXVp cmtzCisgKiBwcm92aWRpbmcgaW5mbyBvbiBwYW5lbF9vcmllbnRhdGlvbiBmb3Igc3lzdGVtcyB3 aGVyZSB0aGlzIGNhbm5vdCBiZQorICogcHJvYmVkIGZyb20gdGhlIGhhcmQtL2Zpcm0td2FyZS4g VG8gYXZvaWQgZmFsc2UtcG9zaXRpdmUgdGhpcyBmdW5jdGlvbgorICogdGFrZXMgdGhlIHBhbmVs IHJlc29sdXRpb24gYXMgYXJndW1lbnQgYW5kIGNoZWNrcyB0aGF0IGFnYWluc3QgdGhlCisgKiBy ZXNvbHV0aW9uIGV4cGVjdGVkIGJ5IHRoZSBxdWlyay10YWJsZSBlbnRyeS4KKyAqCisgKiBOb3Rl IHRoaXMgZnVuY3Rpb24gaXMgYWxzbyB1c2VkIG91dHNpZGUgb2YgdGhlIGRybS1zdWJzeXMsIGJ5 IGZvciBleGFtcGxlCisgKiB0aGUgZWZpZmIgY29kZS4gQmVjYXVzZSBvZiB0aGlzIHRoaXMgZnVu Y3Rpb24gZ2V0cyBjb21waWxlZCBpbnRvIGl0cyBvd24KKyAqIGtlcm5lbC1tb2R1bGUgd2hlbiBi dWlsdCBhcyBhIG1vZHVsZS4KKyAqCisgKiBSZXR1cm5zOgorICogQSBEUk1fTU9ERV9QQU5FTF9P UklFTlRBVElPTl8qIHZhbHVlIGlmIHRoZXJlIGlzIGEgcXVpcmsgZm9yIHRoaXMgc3lzdGVtLAor ICogb3IgRFJNX01PREVfUEFORUxfT1JJRU5UQVRJT05fVU5LTk9XTiBpZiB0aGVyZSBpcyBubyBx dWlyay4KKyAqLworaW50IGRybV9nZXRfcGFuZWxfb3JpZW50YXRpb25fcXVpcmsoaW50IHdpZHRo LCBpbnQgaGVpZ2h0KQoreworCWNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICptYXRjaDsKKwlj b25zdCBzdHJ1Y3QgZHJtX2RtaV9wYW5lbF9vcmllbnRhdGlvbl9kYXRhICpkYXRhOworCWNvbnN0 IGNoYXIgKmJpb3NfZGF0ZTsKKwlpbnQgaTsKKworCWZvciAobWF0Y2ggPSBkbWlfZmlyc3RfbWF0 Y2gob3JpZW50YXRpb25fZGF0YSk7CisJICAgICBtYXRjaDsKKwkgICAgIG1hdGNoID0gZG1pX2Zp cnN0X21hdGNoKG1hdGNoICsgMSkpIHsKKwkJZGF0YSA9IG1hdGNoLT5kcml2ZXJfZGF0YTsKKwor CQlpZiAoZGF0YS0+d2lkdGggIT0gd2lkdGggfHwKKwkJICAgIGRhdGEtPmhlaWdodCAhPSBoZWln aHQpCisJCQljb250aW51ZTsKKworCQlpZiAoIWRhdGEtPmJpb3NfZGF0ZXMpCisJCQlyZXR1cm4g ZGF0YS0+b3JpZW50YXRpb247CisKKwkJYmlvc19kYXRlID0gZG1pX2dldF9zeXN0ZW1faW5mbyhE TUlfQklPU19EQVRFKTsKKwkJaWYgKCFiaW9zX2RhdGUpCisJCQljb250aW51ZTsKKworCQlmb3Ig KGkgPSAwOyBkYXRhLT5iaW9zX2RhdGVzW2ldOyBpKyspIHsKKwkJCWlmICghc3RyY21wKGRhdGEt PmJpb3NfZGF0ZXNbaV0sIGJpb3NfZGF0ZSkpCisJCQkJcmV0dXJuIGRhdGEtPm9yaWVudGF0aW9u OworCQl9CisJfQorCisJcmV0dXJuIERSTV9NT0RFX1BBTkVMX09SSUVOVEFUSU9OX1VOS05PV047 Cit9CitFWFBPUlRfU1lNQk9MKGRybV9nZXRfcGFuZWxfb3JpZW50YXRpb25fcXVpcmspOworCisj ZWxzZQorCisvKiBUaGVyZSBhcmUgbm8gcXVpcmtzIGZvciBub24geDg2IGRldmljZXMgeWV0ICov CitpbnQgZHJtX2dldF9wYW5lbF9vcmllbnRhdGlvbl9xdWlyayhpbnQgd2lkdGgsIGludCBoZWln aHQpCit7CisJcmV0dXJuIERSTV9NT0RFX1BBTkVMX09SSUVOVEFUSU9OX1VOS05PV047Cit9CitF WFBPUlRfU1lNQk9MKGRybV9nZXRfcGFuZWxfb3JpZW50YXRpb25fcXVpcmspOworCisjZW5kaWYK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV91dGlscy5oIGIvaW5jbHVkZS9kcm0vZHJtX3V0 aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jZWEzNjJhZWFm ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2RybS9kcm1fdXRpbHMuaApAQCAtMCwwICsx LDE4IEBACisvKgorICogRnVuY3Rpb24gcHJvdG90eXBlcyBmb3IgbWlzYy4gZHJtIHV0aWxpdHkg ZnVuY3Rpb25zLgorICogU3BlY2lmaWNhbGx5IHRoaXMgZmlsZSBpcyBmb3IgZnVuY3Rpb24gcHJv dG90eXBlcyBmb3IgZnVuY3Rpb25zIHdoaWNoCisgKiBtYXkgYWxzbyBiZSB1c2VkIG91dHNpZGUg b2YgZHJtIGNvZGUgKGUuZy4gaW4gZmJkZXYgZHJpdmVycykuCisgKgorICogQ29weXJpZ2h0IChD KSAyMDE3IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+CisgKgorICogVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbi4KKyAqLworCisjaWZuZGVmIF9fRFJNX1VUSUxTX0hfXworI2RlZmluZSBfX0RSTV9V VElMU19IX18KKworaW50IGRybV9nZXRfcGFuZWxfb3JpZW50YXRpb25fcXVpcmsoaW50IHdpZHRo LCBpbnQgaGVpZ2h0KTsKKworI2VuZGlmCi0tIAoyLjE0LjMKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=