From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: [PATCH v5 2/7] drm: Add panel orientation quirks Date: Sat, 4 Nov 2017 15:08:23 +0100 Message-ID: <20171104140828.32469-3-hdegoede@redhat.com> References: <20171104140828.32469-1-hdegoede@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171104140828.32469-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 , David Airlie , Bartlomiej Zolnierkiewicz Cc: linux-fbdev@vger.kernel.org, intel-gfx , dri-devel@lists.freedesktop.org, Daniel Drake , Hans de Goede , Carlo Caione , Bastien Nocera , Robert McQueen List-Id: dri-devel@lists.freedesktop.org U29tZSB4ODYgY2xhbXNoZWxsIGRlc2lnbiBkZXZpY2VzIHVzZSBwb3J0cmFpdCB0YWJsZXQgc2Ny ZWVucyBhbmQgYSBkaXNwbGF5CmVuZ2luZSB3aGljaCBjYW5ub3Qgcm90YXRlIGluIGhhcmR3YXJl LCBzbyB0aGUgZmlybXdhcmUganVzdCBsZWF2ZXMgdGhpbmdzCmFzIGlzIGFuZCB3ZSBjYW5ub3Qg ZmlndXJlIG91dCB0aGF0IHRoZSBkaXNwbGF5IGlzIG9yaWVudGVkIG5vbiB1cHJpZ2h0CmZyb20g dGhlIGhhcmR3YXJlLgoKU28gYXQgbGVhc3Qgb24geDg2LCB3ZSBuZWVkIGEgcXVpcmsgdGFibGUg Zm9yIHRoaXMuIFRoaXMgY29tbWl0IGFkZHMgYSBETUkKYmFzZWQgcXVpcmsgdGFibGUgd2hpY2gg aXMgaW5pdGlhbGx5IHBvcHVsYXRlZCB3aXRoIDUgc3VjaCBkZXZpY2VzOiBBc3VzClQxMDBIQSwg R1BEIFBvY2tldCwgR1BEIHdpbiwgSS5ULldvcmtzIFRXODkxIGFuZCB0aGUgVklPUyBMVEgxNy4K ClRoaXMgcXVpcmsgdGFibGUgd2lsbCBiZSB1c2VkIGJ5IHRoZSBkcm0gY29kZSB0byBsZXQgdXNl cnNwYWNlIGtub3cgdGhhdAp0aGUgZGlzcGxheSBpcyBub3QgbW91bnRlZCB1cHJpZ2h0IGluc2lk ZSB0aGUgZGV2aWNlcyBjYXNlIHRocm91Z2ggYSBuZXcKcGFuZWwgb3JpZW50YXRpb24gZHJtLWNv bm5lY3RvciBwcm9wZXJ0eSwgYXMgd2VsbCBhcyB0byB0ZWxsIGZiY29uIHRvCnJvdGF0ZSB0aGUg Y29uc29sZSBzbyB0aGF0IGl0IHNob3dzIHRoZSByaWdodCB3YXkgdXAuCgpTaWduZWQtb2ZmLWJ5 OiBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPgotLS0KQ2hhbmdlcyBpbiB2NToK LUFkZCBhIGtlcm5lbC1kb2MgY29tbWVudCBkb2N1bWVudGluZyBkcm1fZ2V0X3BhbmVsX29yaWVu dGF0aW9uX3F1aXJrKCkKLVJlbW92ZSBib2FyZF8qIG1hdGNoZXMgZnJvbSB0aGUgZG1pLW1hdGNo ZXMgZm9yIHRoZSBWSU9TIExUSDE3IGxhcHRvcCwKIGtlZXBpbmcgb25seSB0aGUgKGlkZW50aWNh bCkgc3lzX3ZlbmRvciBhbmQgcHJvZHVjdF9uYW1lIG1hdGNoZXMuCiBUaGlzIGlzIG5lY2Vzc2Fy eSBiZWNhdXNlIGFuIG9sZGVyIHZlcnNpb24gb2YgdGhlIGJpb3MgaGFzCiBib2FyZF92ZW5kb3Ig c2V0IHRvIFZPSVMgaW5zdGVhZCBvZiBWSU9TCi0tLQogZHJpdmVycy9ncHUvZHJtL0tjb25maWcg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUg ICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWxf b3JpZW50YXRpb25fcXVpcmtzLmMgfCAxNzQgKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5j bHVkZS9kcm0vZHJtX3V0aWxzLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAxOCArKysKIDQg ZmlsZXMgY2hhbmdlZCwgMTk2IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vZHJtX3BhbmVsX29yaWVudGF0aW9uX3F1aXJrcy5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgaW5jbHVkZS9kcm0vZHJtX3V0aWxzLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCmluZGV4IDRkOWYyMTgzMTc0MS4u OWQwMDVhYzk4YzJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZworKysgYi9k cml2ZXJzL2dwdS9kcm0vS2NvbmZpZwpAQCAtMjYsNiArMjYsOSBAQCBjb25maWcgRFJNX01JUElf RFNJCiAJYm9vbAogCWRlcGVuZHMgb24gRFJNCiAKK2NvbmZpZyBEUk1fUEFORUxfT1JJRU5UQVRJ T05fUVVJUktTCisJdHJpc3RhdGUKKwogY29uZmlnIERSTV9EUF9BVVhfQ0hBUkRFVgogCWJvb2wg IkRSTSBEUCBBVVggSW50ZXJmYWNlIgogCWRlcGVuZHMgb24gRFJNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKaW5kZXggYTNm ZGM1YTY4ZGZmLi5mZmI2MjE4MTliYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtl ZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKQEAgLTQ2LDYgKzQ2LDcgQEAgb2Jq LSQoQ09ORklHX0RSTV9ERUJVR19NTV9TRUxGVEVTVCkgKz0gc2VsZnRlc3RzLwogCiBvYmotJChD T05GSUdfRFJNKQkrPSBkcm0ubwogb2JqLSQoQ09ORklHX0RSTV9NSVBJX0RTSSkgKz0gZHJtX21p cGlfZHNpLm8KK29iai0kKENPTkZJR19EUk1fUEFORUxfT1JJRU5UQVRJT05fUVVJUktTKSArPSBk cm1fcGFuZWxfb3JpZW50YXRpb25fcXVpcmtzLm8KIG9iai0kKENPTkZJR19EUk1fQVJNKQkrPSBh cm0vCiBvYmotJChDT05GSUdfRFJNX1RUTSkJKz0gdHRtLwogb2JqLSQoQ09ORklHX0RSTV9UREZY KQkrPSB0ZGZ4LwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wYW5lbF9vcmllbnRh dGlvbl9xdWlya3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWxfb3JpZW50YXRpb25fcXVp cmtzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iODc2NWUyZWQx ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BhbmVsX29yaWVudGF0 aW9uX3F1aXJrcy5jCkBAIC0wLDAgKzEsMTc0IEBACisvKgorICogIGRybV9wYW5lbF9vcmllbnRh dGlvbl9xdWlya3MuYyAtLSBRdWlya3MgZm9yIG5vbi1ub3JtYWwgcGFuZWwgb3JpZW50YXRpb24K KyAqCisgKglDb3B5cmlnaHQgKEMpIDIwMTcgSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0 LmNvbT4KKyAqCisgKiAgVGhpcyBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25k aXRpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlLiAgU2VlIHRoZSBm aWxlIENPUFlJTkcgaW4gdGhlIG1haW4gZGlyZWN0b3J5IG9mIHRoaXMgYXJjaGl2ZSBmb3IKKyAq ICBtb3JlIGRldGFpbHMuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2RtaS5oPgorI2luY2x1ZGUg PGRybS9kcm1fY29ubmVjdG9yLmg+CisKKyNpZmRlZiBDT05GSUdfRE1JCisKKy8qCisgKiBTb21l IHg4NiBjbGFtc2hlbGwgZGVzaWduIGRldmljZXMgdXNlIHBvcnRyYWl0IHRhYmxldCBzY3JlZW5z IGFuZCBhIGRpc3BsYXkKKyAqIGVuZ2luZSB3aGljaCBjYW5ub3Qgcm90YXRlIGluIGhhcmR3YXJl LCBzbyB3ZSBuZWVkIHRvIHJvdGF0ZSB0aGUgZmJjb24gdG8KKyAqIGNvbXBlbnNhdGUuIFVuZm9y dHVuYXRlbHkgdGhlc2UgKGNoZWFwKSBkZXZpY2VzIGFsc28gdHlwaWNhbGx5IGhhdmUgcXVpdGUK KyAqIGdlbmVyaWMgRE1JIGRhdGEsIHNvIHdlIG1hdGNoIG9uIGEgY29tYmluYXRpb24gb2YgRE1J IGRhdGEsIHNjcmVlbiByZXNvbHV0aW9uCisgKiBhbmQgYSBsaXN0IG9mIGtub3duIEJJT1MgZGF0 ZXMgdG8gYXZvaWQgZmFsc2UgcG9zaXRpdmVzLgorICovCisKK3N0cnVjdCBkcm1fZG1pX3BhbmVs X29yaWVudGF0aW9uX2RhdGEgeworCWludCB3aWR0aDsKKwlpbnQgaGVpZ2h0OworCWNvbnN0IGNo YXIgKiBjb25zdCAqYmlvc19kYXRlczsKKwlpbnQgb3JpZW50YXRpb247Cit9OworCitzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9kbWlfcGFuZWxfb3JpZW50YXRpb25fZGF0YSBhc3VzX3QxMDBoYSA9 IHsKKwkud2lkdGggPSA4MDAsCisJLmhlaWdodCA9IDEyODAsCisJLm9yaWVudGF0aW9uID0gRFJN X01PREVfUEFORUxfT1JJRU5UQVRJT05fTEVGVF9VUCwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX2RtaV9wYW5lbF9vcmllbnRhdGlvbl9kYXRhIGdwZF9wb2NrZXQgPSB7CisJLndpZHRo ID0gMTIwMCwKKwkuaGVpZ2h0ID0gMTkyMCwKKwkuYmlvc19kYXRlcyA9IChjb25zdCBjaGFyICog Y29uc3QgW10peyAiMDUvMjYvMjAxNyIsICIwNi8yOC8yMDE3IiwKKwkJIjA3LzA1LzIwMTciLCAi MDgvMDcvMjAxNyIsIE5VTEwgfSwKKwkub3JpZW50YXRpb24gPSBEUk1fTU9ERV9QQU5FTF9PUklF TlRBVElPTl9SSUdIVF9VUCwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2RtaV9wYW5l bF9vcmllbnRhdGlvbl9kYXRhIGdwZF93aW4gPSB7CisJLndpZHRoID0gNzIwLAorCS5oZWlnaHQg PSAxMjgwLAorCS5iaW9zX2RhdGVzID0gKGNvbnN0IGNoYXIgKiBjb25zdCBbXSl7CisJCSIxMC8y NS8yMDE2IiwgIjExLzE4LzIwMTYiLCAiMTIvMjMvMjAxNiIsICIxMi8yNi8yMDE2IiwKKwkJIjAy LzIxLzIwMTciLCAiMDMvMjAvMjAxNyIsICIwNS8yNS8yMDE3IiwgTlVMTCB9LAorCS5vcmllbnRh dGlvbiA9IERSTV9NT0RFX1BBTkVMX09SSUVOVEFUSU9OX1JJR0hUX1VQLAorfTsKKworc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1fZG1pX3BhbmVsX29yaWVudGF0aW9uX2RhdGEgaXR3b3Jrc190dzg5 MSA9IHsKKwkud2lkdGggPSA4MDAsCisJLmhlaWdodCA9IDEyODAsCisJLmJpb3NfZGF0ZXMgPSAo Y29uc3QgY2hhciAqIGNvbnN0IFtdKXsgIjEwLzE2LzIwMTUiLCBOVUxMIH0sCisJLm9yaWVudGF0 aW9uID0gRFJNX01PREVfUEFORUxfT1JJRU5UQVRJT05fUklHSFRfVVAsCit9OworCitzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9kbWlfcGFuZWxfb3JpZW50YXRpb25fZGF0YSB2aW9zX2x0aDE3ID0g eworCS53aWR0aCA9IDgwMCwKKwkuaGVpZ2h0ID0gMTI4MCwKKwkub3JpZW50YXRpb24gPSBEUk1f TU9ERV9QQU5FTF9PUklFTlRBVElPTl9SSUdIVF9VUCwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZG1pX3N5c3RlbV9pZCBvcmllbnRhdGlvbl9kYXRhW10gPSB7CisJewkvKiBBc3VzIFQxMDBI QSAqLworCQkubWF0Y2hlcyA9IHsKKwkJICBETUlfRVhBQ1RfTUFUQ0goRE1JX1NZU19WRU5ET1Is ICJBU1VTVGVLIENPTVBVVEVSIElOQy4iKSwKKwkJICBETUlfRVhBQ1RfTUFUQ0goRE1JX1BST0RV Q1RfTkFNRSwgIlQxMDBIQU4iKSwKKwkJfSwKKwkJLmRyaXZlcl9kYXRhID0gKHZvaWQgKikmYXN1 c190MTAwaGEsCisJfSwgewkvKgorCQkgKiBHUEQgUG9ja2V0LCBub3RlIHRoYXQgdGhlIHRoZSBE TUkgZGF0YSBpcyBsZXNzIGdlbmVyaWMgdGhlbgorCQkgKiBpdCBzZWVtcywgZGV2aWNlcyB3aXRo IGEgYm9hcmQtdmVuZG9yIG9mICJBTUkgQ29ycG9yYXRpb24iCisJCSAqIGFyZSBxdWl0ZSByYXJl LCBhcyBhcmUgZGV2aWNlcyB3aGljaCBoYXZlIGJvdGggYm9hcmQtICphbmQqCisJCSAqIHByb2R1 Y3QtaWQgc2V0IHRvICJEZWZhdWx0IFN0cmluZyIKKwkJICovCisJCS5tYXRjaGVzID0geworCQkg IERNSV9FWEFDVF9NQVRDSChETUlfQk9BUkRfVkVORE9SLCAiQU1JIENvcnBvcmF0aW9uIiksCisJ CSAgRE1JX0VYQUNUX01BVENIKERNSV9CT0FSRF9OQU1FLCAiRGVmYXVsdCBzdHJpbmciKSwKKwkJ ICBETUlfRVhBQ1RfTUFUQ0goRE1JX0JPQVJEX1NFUklBTCwgIkRlZmF1bHQgc3RyaW5nIiksCisJ CSAgRE1JX0VYQUNUX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJEZWZhdWx0IHN0cmluZyIpLAor CQl9LAorCQkuZHJpdmVyX2RhdGEgPSAodm9pZCAqKSZncGRfcG9ja2V0LAorCX0sIHsJLyogR1BE IFdpbiAoc2FtZSBub3RlIG9uIERNSSBtYXRjaCBhcyBHUEQgUG9ja2V0KSAqLworCQkubWF0Y2hl cyA9IHsKKwkJICBETUlfRVhBQ1RfTUFUQ0goRE1JX0JPQVJEX1ZFTkRPUiwgIkFNSSBDb3Jwb3Jh dGlvbiIpLAorCQkgIERNSV9FWEFDVF9NQVRDSChETUlfQk9BUkRfTkFNRSwgIkRlZmF1bHQgc3Ry aW5nIiksCisJCSAgRE1JX0VYQUNUX01BVENIKERNSV9CT0FSRF9TRVJJQUwsICJEZWZhdWx0IHN0 cmluZyIpLAorCQkgIERNSV9FWEFDVF9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiRGVmYXVsdCBz dHJpbmciKSwKKwkJfSwKKwkJLmRyaXZlcl9kYXRhID0gKHZvaWQgKikmZ3BkX3dpbiwKKwl9LCB7 CS8qIEkuVC5Xb3JrcyBUVzg5MSAqLworCQkubWF0Y2hlcyA9IHsKKwkJICBETUlfRVhBQ1RfTUFU Q0goRE1JX1NZU19WRU5ET1IsICJUbyBiZSBmaWxsZWQgYnkgTy5FLk0uIiksCisJCSAgRE1JX0VY QUNUX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJUVzg5MSIpLAorCQkgIERNSV9FWEFDVF9NQVRD SChETUlfQk9BUkRfVkVORE9SLCAiVG8gYmUgZmlsbGVkIGJ5IE8uRS5NLiIpLAorCQkgIERNSV9F WEFDVF9NQVRDSChETUlfQk9BUkRfTkFNRSwgIlRXODkxIiksCisJCX0sCisJCS5kcml2ZXJfZGF0 YSA9ICh2b2lkICopJml0d29ya3NfdHc4OTEsCisJfSwgewkvKiBWSU9TIExUSDE3ICovCisJCS5t YXRjaGVzID0geworCQkgIERNSV9FWEFDVF9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIlZJT1MiKSwK KwkJICBETUlfRVhBQ1RfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIkxUSDE3IiksCisJCX0sCisJ CS5kcml2ZXJfZGF0YSA9ICh2b2lkICopJnZpb3NfbHRoMTcsCisJfSwKKwl7fQorfTsKKworLyoq CisgKiBkcm1fZ2V0X3BhbmVsX29yaWVudGF0aW9uX3F1aXJrIC0gQ2hlY2sgZm9yIHBhbmVsIG9y aWVudGF0aW9uIHF1aXJrcworICogQHdpZHRoOiB3aWR0aCBpbiBwaXhlbHMgb2YgdGhlIHBhbmVs CisgKiBAaGVpZ2h0OiBoZWlnaHQgaW4gcGl4ZWxzIG9mIHRoZSBwYW5lbAorICoKKyAqIFRoaXMg ZnVuY3Rpb24gY2hlY2tzIGZvciBwbGF0Zm9ybSBzcGVjaWZpYyAoZS5nLiBETUkgYmFzZWQpIHF1 aXJrcworICogcHJvdmlkaW5nIGluZm8gb24gcGFuZWxfb3JpZW50YXRpb24gZm9yIHN5c3RlbXMg d2hlcmUgdGhpcyBjYW5ub3QgYmUKKyAqIHByb2JlZCBmcm9tIHRoZSBoYXJkLS9maXJtLXdhcmUu IFRvIGF2b2lkIGZhbHNlLXBvc2l0aXZlIHRoaXMgZnVuY3Rpb24KKyAqIHRha2VzIHRoZSBwYW5l bCByZXNvbHV0aW9uIGFzIGFyZ3VtZW50IGFuZCBjaGVja3MgdGhhdCBhZ2FpbnN0IHRoZQorICog cmVzb2x1dGlvbiBleHBlY3RlZCBieSB0aGUgcXVpcmstdGFibGUgZW50cnkuCisgKgorICogTm90 ZSB0aGlzIGZ1bmN0aW9uIGlzIGFsc28gdXNlZCBvdXRzaWRlIG9mIHRoZSBkcm0tc3Vic3lzLCBi eSBmb3IgZXhhbXBsZQorICogdGhlIGVmaWZiIGNvZGUuIEJlY2F1c2Ugb2YgdGhpcyB0aGlzIGZ1 bmN0aW9uIGdldHMgY29tcGlsZWQgaW50byBpdHMgb3duCisgKiBrZXJuZWwtbW9kdWxlIHdoZW4g YnVpbHQgYXMgYSBtb2R1bGUuCisgKgorICogUmV0dXJuczoKKyAqIEEgRFJNX01PREVfUEFORUxf T1JJRU5UQVRJT05fKiB2YWx1ZSBpZiB0aGVyZSBpcyBhIHF1aXJrIGZvciB0aGlzIHN5c3RlbSwK KyAqIG9yIERSTV9NT0RFX1BBTkVMX09SSUVOVEFUSU9OX1VOS05PV04gaWYgdGhlcmUgaXMgbm8g cXVpcmsuCisgKi8KK2ludCBkcm1fZ2V0X3BhbmVsX29yaWVudGF0aW9uX3F1aXJrKGludCB3aWR0 aCwgaW50IGhlaWdodCkKK3sKKwljb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqbWF0Y2g7CisJ Y29uc3Qgc3RydWN0IGRybV9kbWlfcGFuZWxfb3JpZW50YXRpb25fZGF0YSAqZGF0YTsKKwljb25z dCBjaGFyICpiaW9zX2RhdGU7CisJaW50IGk7CisKKwlmb3IgKG1hdGNoID0gZG1pX2ZpcnN0X21h dGNoKG9yaWVudGF0aW9uX2RhdGEpOworCSAgICAgbWF0Y2g7CisJICAgICBtYXRjaCA9IGRtaV9m aXJzdF9tYXRjaChtYXRjaCArIDEpKSB7CisJCWRhdGEgPSBtYXRjaC0+ZHJpdmVyX2RhdGE7CisK KwkJaWYgKGRhdGEtPndpZHRoICE9IHdpZHRoIHx8CisJCSAgICBkYXRhLT5oZWlnaHQgIT0gaGVp Z2h0KQorCQkJY29udGludWU7CisKKwkJaWYgKCFkYXRhLT5iaW9zX2RhdGVzKQorCQkJcmV0dXJu IGRhdGEtPm9yaWVudGF0aW9uOworCisJCWJpb3NfZGF0ZSA9IGRtaV9nZXRfc3lzdGVtX2luZm8o RE1JX0JJT1NfREFURSk7CisJCWlmICghYmlvc19kYXRlKQorCQkJY29udGludWU7CisKKwkJZm9y IChpID0gMDsgZGF0YS0+Ymlvc19kYXRlc1tpXTsgaSsrKSB7CisJCQlpZiAoIXN0cmNtcChkYXRh LT5iaW9zX2RhdGVzW2ldLCBiaW9zX2RhdGUpKQorCQkJCXJldHVybiBkYXRhLT5vcmllbnRhdGlv bjsKKwkJfQorCX0KKworCXJldHVybiBEUk1fTU9ERV9QQU5FTF9PUklFTlRBVElPTl9VTktOT1dO OworfQorRVhQT1JUX1NZTUJPTChkcm1fZ2V0X3BhbmVsX29yaWVudGF0aW9uX3F1aXJrKTsKKwor I2Vsc2UKKworLyogVGhlcmUgYXJlIG5vIHF1aXJrcyBmb3Igbm9uIHg4NiBkZXZpY2VzIHlldCAq LworaW50IGRybV9nZXRfcGFuZWxfb3JpZW50YXRpb25fcXVpcmsoaW50IHdpZHRoLCBpbnQgaGVp Z2h0KQoreworCXJldHVybiBEUk1fTU9ERV9QQU5FTF9PUklFTlRBVElPTl9VTktOT1dOOworfQor RVhQT1JUX1NZTUJPTChkcm1fZ2V0X3BhbmVsX29yaWVudGF0aW9uX3F1aXJrKTsKKworI2VuZGlm CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fdXRpbHMuaCBiL2luY2x1ZGUvZHJtL2RybV91 dGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uY2VhMzYyYWVh ZmZlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9kcm0vZHJtX3V0aWxzLmgKQEAgLTAsMCAr MSwxOCBAQAorLyoKKyAqIEZ1bmN0aW9uIHByb3RvdHlwZXMgZm9yIG1pc2MuIGRybSB1dGlsaXR5 IGZ1bmN0aW9ucy4KKyAqIFNwZWNpZmljYWxseSB0aGlzIGZpbGUgaXMgZm9yIGZ1bmN0aW9uIHBy b3RvdHlwZXMgZm9yIGZ1bmN0aW9ucyB3aGljaAorICogbWF5IGFsc28gYmUgdXNlZCBvdXRzaWRl IG9mIGRybSBjb2RlIChlLmcuIGluIGZiZGV2IGRyaXZlcnMpLgorICoKKyAqIENvcHlyaWdodCAo QykgMjAxNyBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPgorICoKKyAqIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24uCisgKi8KKworI2lmbmRlZiBfX0RSTV9VVElMU19IX18KKyNkZWZpbmUgX19EUk1f VVRJTFNfSF9fCisKK2ludCBkcm1fZ2V0X3BhbmVsX29yaWVudGF0aW9uX3F1aXJrKGludCB3aWR0 aCwgaW50IGhlaWdodCk7CisKKyNlbmRpZgotLSAKMi4xNC4zCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK