From mboxrd@z Thu Jan 1 00:00:00 1970 From: "james qian wang (Arm Technology China)" Subject: [PATCH v2 5/9] drm/komeda: Add komeda_format_caps for format handling Date: Wed, 19 Dec 2018 12:33:59 +0000 Message-ID: <20181219123147.16090-6-james.qian.wang@arm.com> References: <20181219123147.16090-1-james.qian.wang@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181219123147.16090-1-james.qian.wang@arm.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Liviu Dudau Cc: Mark Rutland , "linux-doc@vger.kernel.org" , "maxime.ripard@bootlin.com" , "Jonathan Chai (Arm Technology China)" , Alexandru-Cosmin Gheorghe , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "yamada.masahiro@socionext.com" , "Yiqi Kang (Arm Technology China)" , "mchehab+samsung@kernel.org" , "Tiannan Zhu (Arm Technology China)" , "corbet@lwn.net" , "airlied@linux.ie" , "malidp@foss.arm.com" , "thomas Sun (Arm Technology China)" , Ayan Halder , devicetree List-Id: devicetree@vger.kernel.org a29tZWRhX2Zvcm1hdF9jYXBzIGlzIGZvciBkZXNjcmliaW5nIEFSTSBkaXNwbGF5IHNwZWNpZmlj IGZlYXR1cmVzIGFuZApsaW1pdGF0aW9ucyBvZiBhIHNwZWNpZmljIGZvcm1hdCwgYW5kIGZvcm1h dF9jYXBzIHdpbGwgYmUgbGlua2VkIGludG8KJmtvbWVkYV9mcmFtZWJ1ZmZlciBsaWtlIGEgZXh0 ZW5zaW9uIG9mICZkcm1fZm9ybWF0X2luZm8uCkFuZCBrb21lZF9mb3JtYXRfY2Fwc190YWJsZSB3 aWxsIGJlIGluaXRpYWxpemVkIGJlZm9yZSB0aGUgZW51bV9yZXNvdXJjZXMsCnNpbmNlIHRoZSBs YXllciBmZWF0dXJlcyBkZXNjcmlwdGlvbiBkZXBlbmQgb24gdGhpcyBmb3JtYXRfY2FwcyB0YWJs ZSwgc28Kd2UnZCBiZXR0ZXIgaW5pdGlhbGl6ZSB0aGUgdGFibGUgZmlyc3QuCgpTaWduZWQtb2Zm LWJ5OiBKYW1lcyAoUWlhbikgV2FuZyA8amFtZXMucWlhbi53YW5nQGFybS5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9NYWtlZmlsZSAgIHwgIDEgKwogLi4uL2dw dS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3MS9kNzFfZGV2LmMgIHwgNzggKysrKysrKysrKysr KysrKwogLi4uL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kZXYuYyAgIHwgIDIg KwogLi4uL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kZXYuaCAgIHwgMTEgKyst CiAuLi4vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mb3JtYXRfY2Fwcy5jICAgfCA3NSArKysr KysrKysrKysrKysrCiAuLi4vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mb3JtYXRfY2Fwcy5o ICAgfCA4OSArKysrKysrKysrKysrKysrKysrCiAuLi4vZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9r b21lZGFfcGlwZWxpbmUuaCAgfCAgMSArCiA3IGZpbGVzIGNoYW5nZWQsIDI1NiBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2Fy bS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZm9ybWF0X2NhcHMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2Zvcm1hdF9jYXBzLmgK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL01ha2VmaWxl IGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9NYWtlZmlsZQppbmRleCA0ZWZj Y2UwY2RjZTguLmM4NjYwMjEzMWRiYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9k aXNwbGF5L2tvbWVkYS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkv a29tZWRhL01ha2VmaWxlCkBAIC03LDYgKzcsNyBAQCBjY2ZsYWdzLXkgOj0gXAoga29tZWRhLXkg Oj0gXAogCWtvbWVkYV9kcnYubyBcCiAJa29tZWRhX2Rldi5vIFwKKwlrb21lZGFfZm9ybWF0X2Nh cHMubyBcCiAJa29tZWRhX3BpcGVsaW5lLm8KIAoga29tZWRhLXkgKz0gXApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9kNzEvZDcxX2Rldi5jIGIvZHJpdmVy cy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9kNzEvZDcxX2Rldi5jCmluZGV4IGFmM2RhYmI0 OTljZC4uMmQyMmJlNTRlZjQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3Bs YXkva29tZWRhL2Q3MS9kNzFfZGV2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5 L2tvbWVkYS9kNzEvZDcxX2Rldi5jCkBAIC0xMyw3ICsxMyw4NSBAQCBzdGF0aWMgaW50IGQ3MV9l bnVtX3Jlc291cmNlcyhzdHJ1Y3Qga29tZWRhX2RldiAqbWRldikKIAlyZXR1cm4gLTE7CiB9CiAK KyNkZWZpbmUgX19IV19JRChfX2dyb3VwLCBfX2Zvcm1hdCkgXAorCSgoKF9fZ3JvdXAgJiAweDcp IDw8IDMpIHwgKF9fZm9ybWF0ICYgMHg3KSkKKworI2RlZmluZSBSSUNICQlLT01FREFfRk1UX1JJ Q0hfTEFZRVIKKyNkZWZpbmUgU0lNUExFCQlLT01FREFfRk1UX1NJTVBMRV9MQVlFUgorI2RlZmlu ZSBSSUNIX1NJTVBMRQlLT01FREFfRk1UX1JJQ0hfTEFZRVIgfCBLT01FREFfRk1UX1NJTVBMRV9M QVlFUgorI2RlZmluZSBSSUNIX1dCCQlLT01FREFfRk1UX1JJQ0hfTEFZRVIgfCBLT01FREFfRk1U X1dCX0xBWUVSCisjZGVmaW5lIFJJQ0hfU0lNUExFX1dCCVJJQ0hfU0lNUExFIHwgS09NRURBX0ZN VF9XQl9MQVlFUgorCisjZGVmaW5lIFJvdF8wCQlEUk1fTU9ERV9ST1RBVEVfMAorI2RlZmluZSBG bGlwX0hfVglEUk1fTU9ERV9SRUZMRUNUX1ggfCBEUk1fTU9ERV9SRUZMRUNUX1kgfCBSb3RfMAor I2RlZmluZSBSb3RfQUxMX0hfVglEUk1fTU9ERV9ST1RBVEVfTUFTSyB8IEZsaXBfSF9WCisKKyNk ZWZpbmUgTFlUX05NCQlCSVQoQUZCQ19GT1JNQVRfTU9EX0JMT0NLX1NJWkVfMTZ4MTYpCisjZGVm aW5lIExZVF9XQgkJQklUKEFGQkNfRk9STUFUX01PRF9CTE9DS19TSVpFXzMyeDgpCisjZGVmaW5l IExZVF9OTV9XQglMWVRfTk0gfCBMWVRfV0IKKworI2RlZmluZSBBRkJfVEgJCUFGQkMoX1RJTEVE IHwgX1NQQVJTRSkKKyNkZWZpbmUgQUZCX1RIX1NDX1lUUglBRkJDKF9USUxFRCB8IF9TQyB8IF9T UEFSU0UgfCBfWVRSKQorI2RlZmluZSBBRkJfVEhfU0NfWVRSX0JTIEFGQkMoX1RJTEVEIHwgX1ND IHwgX1NQQVJTRSB8IF9ZVFIgfCBfU1BMSVQpCisKK3N0YXRpYyBzdHJ1Y3Qga29tZWRhX2Zvcm1h dF9jYXBzIGQ3MV9mb3JtYXRfY2Fwc190YWJsZVtdID0geworCS8qICAgSFdfSUQgICAgfCAgICAg ICAgZm91cmNjICAgICAgICB8IHRpbGVfc3ogfCAgIGxheWVyX3R5cGVzIHwgICByb3RzICAgIHwg YWZiY19sYXlvdXRzIHwgYWZiY19mZWF0dXJlcyAqLworCS8qIEFCR1JfMjEwMTAxMCovCisJe19f SFdfSUQoMCwgMCksCURSTV9GT1JNQVRfQVJHQjIxMDEwMTAsCTEsCVJJQ0hfU0lNUExFX1dCLAlG bGlwX0hfViwJCTAsIDB9LAorCXtfX0hXX0lEKDAsIDEpLAlEUk1fRk9STUFUX0FCR1IyMTAxMDEw LAkxLAlSSUNIX1NJTVBMRV9XQiwJRmxpcF9IX1YsCQkwLCAwfSwKKwl7X19IV19JRCgwLCAxKSwJ RFJNX0ZPUk1BVF9BQkdSMjEwMTAxMCwJMSwJUklDSF9TSU1QTEUsCVJvdF9BTExfSF9WLAlMWVRf Tk1fV0IsIEFGQl9USF9TQ19ZVFJfQlN9LCAvKiBhZmJjICovCisJe19fSFdfSUQoMCwgMiksCURS TV9GT1JNQVRfUkdCQTEwMTAxMDIsCTEsCVJJQ0hfU0lNUExFX1dCLAlGbGlwX0hfViwJCTAsIDB9 LAorCXtfX0hXX0lEKDAsIDMpLAlEUk1fRk9STUFUX0JHUkExMDEwMTAyLAkxLAlSSUNIX1NJTVBM RV9XQiwJRmxpcF9IX1YsCQkwLCAwfSwKKwkvKiBBQkdSXzg4ODgqLworCXtfX0hXX0lEKDEsIDAp LAlEUk1fRk9STUFUX0FSR0I4ODg4LAkxLAlSSUNIX1NJTVBMRV9XQiwJRmxpcF9IX1YsCQkwLCAw fSwKKwl7X19IV19JRCgxLCAxKSwJRFJNX0ZPUk1BVF9BQkdSODg4OCwJMSwJUklDSF9TSU1QTEVf V0IsCUZsaXBfSF9WLAkJMCwgMH0sCisJe19fSFdfSUQoMSwgMSksCURSTV9GT1JNQVRfQUJHUjg4 ODgsCTEsCVJJQ0hfU0lNUExFLAlSb3RfQUxMX0hfViwJTFlUX05NX1dCLCBBRkJfVEhfU0NfWVRS X0JTfSwgLyogYWZiYyAqLworCXtfX0hXX0lEKDEsIDIpLAlEUk1fRk9STUFUX1JHQkE4ODg4LAkx LAlSSUNIX1NJTVBMRV9XQiwJRmxpcF9IX1YsCQkwLCAwfSwKKwl7X19IV19JRCgxLCAzKSwJRFJN X0ZPUk1BVF9CR1JBODg4OCwJMSwJUklDSF9TSU1QTEVfV0IsCUZsaXBfSF9WLAkJMCwgMH0sCisJ LyogWEJHQl84ODg4ICovCisJe19fSFdfSUQoMiwgMCksCURSTV9GT1JNQVRfWFJHQjg4ODgsCTEs CVJJQ0hfU0lNUExFX1dCLAlGbGlwX0hfViwJCTAsIDB9LAorCXtfX0hXX0lEKDIsIDEpLAlEUk1f Rk9STUFUX1hCR1I4ODg4LAkxLAlSSUNIX1NJTVBMRV9XQiwJRmxpcF9IX1YsCQkwLCAwfSwKKwl7 X19IV19JRCgyLCAyKSwJRFJNX0ZPUk1BVF9SR0JYODg4OCwJMSwJUklDSF9TSU1QTEVfV0IsCUZs aXBfSF9WLAkJMCwgMH0sCisJe19fSFdfSUQoMiwgMyksCURSTV9GT1JNQVRfQkdSWDg4ODgsCTEs CVJJQ0hfU0lNUExFX1dCLAlGbGlwX0hfViwJCTAsIDB9LAorCS8qIEJHUl84ODggKi8gLyogbm9u ZS1hZmJjIFJHQjg4OCBkb2Vzbid0IHN1cHBvcnQgcm90YXRpb24gYW5kIGZsaXAgKi8KKwl7X19I V19JRCgzLCAwKSwJRFJNX0ZPUk1BVF9SR0I4ODgsCTEsCVJJQ0hfU0lNUExFX1dCLAlSb3RfMCwJ CQkwLCAwfSwKKwl7X19IV19JRCgzLCAxKSwJRFJNX0ZPUk1BVF9CR1I4ODgsCTEsCVJJQ0hfU0lN UExFX1dCLAlSb3RfMCwJCQkwLCAwfSwKKwl7X19IV19JRCgzLCAxKSwJRFJNX0ZPUk1BVF9CR1I4 ODgsCTEsCVJJQ0hfU0lNUExFLAlSb3RfQUxMX0hfViwJTFlUX05NX1dCLCBBRkJfVEhfU0NfWVRS X0JTfSwgLyogYWZiYyAqLworCS8qIEJHUiAxNmJwcCAqLworCXtfX0hXX0lEKDQsIDApLAlEUk1f Rk9STUFUX1JHQkE1NTUxLAkxLAlSSUNIX1NJTVBMRSwJRmxpcF9IX1YsCQkwLCAwfSwKKwl7X19I V19JRCg0LCAxKSwJRFJNX0ZPUk1BVF9BQkdSMTU1NSwJMSwJUklDSF9TSU1QTEUsCUZsaXBfSF9W LAkJMCwgMH0sCisJe19fSFdfSUQoNCwgMSksCURSTV9GT1JNQVRfQUJHUjE1NTUsCTEsCVJJQ0hf U0lNUExFLAlSb3RfQUxMX0hfViwJTFlUX05NX1dCLCBBRkJfVEhfU0NfWVRSfSwgLyogYWZiYyAq LworCXtfX0hXX0lEKDQsIDIpLAlEUk1fRk9STUFUX1JHQjU2NSwJMSwJUklDSF9TSU1QTEUsCUZs aXBfSF9WLAkJMCwgMH0sCisJe19fSFdfSUQoNCwgMyksCURSTV9GT1JNQVRfQkdSNTY1LAkxLAlS SUNIX1NJTVBMRSwJRmxpcF9IX1YsCQkwLCAwfSwKKwl7X19IV19JRCg0LCAzKSwJRFJNX0ZPUk1B VF9CR1I1NjUsCTEsCVJJQ0hfU0lNUExFLAlSb3RfQUxMX0hfViwJTFlUX05NX1dCLCBBRkJfVEhf U0NfWVRSfSwgLyogYWZiYyAqLworCXtfX0hXX0lEKDQsIDQpLCBEUk1fRk9STUFUX1I4LAkJMSwJ U0lNUExFLAkJUm90XzAsCQkJMCwgMH0sCisJLyogWVVWIDQ0NC80MjIvNDIwIDhiaXQgICovCisJ e19fSFdfSUQoNSwgMCksCTAgLypYWVVWODg4OCovLAkJMSwJMCwJCTAsCQkJMCwgMH0sCisJLyog WFlVViB1bnN1cHBvcnRlZCovCisJe19fSFdfSUQoNSwgMSksCURSTV9GT1JNQVRfWVVZViwJMSwJ UklDSCwJCVJvdF9BTExfSF9WLAlMWVRfTk0sIEFGQl9USH0sIC8qIGFmYmMgKi8KKwl7X19IV19J RCg1LCAyKSwJRFJNX0ZPUk1BVF9ZVVlWLAkxLAlSSUNILAkJRmxpcF9IX1YsCQkwLCAwfSwKKwl7 X19IV19JRCg1LCAzKSwJRFJNX0ZPUk1BVF9VWVZZLAkxLAlSSUNILAkJRmxpcF9IX1YsCQkwLCAw fSwKKwl7X19IV19JRCg1LCA0KSwJMCwgLypYMEwwICovCQkyLAkJMCwJCQkwLCAwfSwgLyogWTBM MCB1bnN1cHBvcnRlZCAqLworCXtfX0hXX0lEKDUsIDYpLAlEUk1fRk9STUFUX05WMTIsCTEsCVJJ Q0gsCQlGbGlwX0hfViwJCTAsIDB9LAorCXtfX0hXX0lEKDUsIDYpLAkwLypEUk1fRk9STUFUX1lV VjQyMF84QklUKi8sCTEsCVJJQ0gsCVJvdF9BTExfSF9WLAlMWVRfTk0sIEFGQl9USH0sIC8qIGFm YmMgKi8KKwl7X19IV19JRCg1LCA3KSwJRFJNX0ZPUk1BVF9ZVVY0MjAsCTEsCVJJQ0gsCQlGbGlw X0hfViwJCTAsIDB9LAorCS8qIFlVViAxMGJpdCovCisJe19fSFdfSUQoNiwgMCksCTAsLypYVllV MjEwMTAxMCovCTEsCTAsCQkwLAkJCTAsIDB9LC8qIFZZVjMwIHVuc3VwcG9ydGVkICovCisJe19f SFdfSUQoNiwgNiksCTAvKkRSTV9GT1JNQVRfWDBMMiovLAkyLAlSSUNILAkJRmxpcF9IX1YsCQkw LCAwfSwKKwl7X19IV19JRCg2LCA3KSwJMC8qRFJNX0ZPUk1BVF9QMDEwKi8sCTEsCVJJQ0gsCQlG bGlwX0hfViwJCTAsIDB9LAorCXtfX0hXX0lEKDYsIDcpLAkwLypEUk1fRk9STUFUX1lVVjQyMF8x MEJJVCovLDEsCVJJQ0gsCVJvdF9BTExfSF9WLAlMWVRfTk0sIEFGQl9USH0sCit9OworCitzdGF0 aWMgdm9pZCBkNzFfaW5pdF9mbXRfdGJsKHN0cnVjdCBrb21lZGFfZGV2ICptZGV2KQoreworCXN0 cnVjdCBrb21lZGFfZm9ybWF0X2NhcHNfdGFibGUgKnRhYmxlID0gJm1kZXYtPmZtdF90Ymw7CisK Kwl0YWJsZS0+Zm9ybWF0X2NhcHMgPSBkNzFfZm9ybWF0X2NhcHNfdGFibGU7CisJdGFibGUtPm5f Zm9ybWF0cyA9IEFSUkFZX1NJWkUoZDcxX2Zvcm1hdF9jYXBzX3RhYmxlKTsKK30KKwogc3RhdGlj IHN0cnVjdCBrb21lZGFfZGV2X2Z1bmNzIGQ3MV9jaGlwX2Z1bmNzID0geworCS5pbml0X2Zvcm1h dF90YWJsZSA9IGQ3MV9pbml0X2ZtdF90YmwsCiAJLmVudW1fcmVzb3VyY2VzCT0gZDcxX2VudW1f cmVzb3VyY2VzLAogCS5jbGVhbnVwCT0gTlVMTCwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9h cm0vZGlzcGxheS9rb21lZGEva29tZWRhX2Rldi5jCmluZGV4IDIxNGVmNzVlMGUyNC4uZmQ1MmQ4 NWIwZDEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tv bWVkYV9kZXYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVk YV9kZXYuYwpAQCAtMTM2LDYgKzEzNiw4IEBAIHN0cnVjdCBrb21lZGFfZGV2ICprb21lZGFfZGV2 X2NyZWF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJCSBNQUxJRFBfQ09SRV9JRF9NQUpPUihtZGV2 LT5jaGlwLmNvcmVfaWQpLAogCQkgTUFMSURQX0NPUkVfSURfTUlOT1IobWRldi0+Y2hpcC5jb3Jl X2lkKSk7CiAKKwltZGV2LT5mdW5jcy0+aW5pdF9mb3JtYXRfdGFibGUobWRldik7CisKIAllcnIg PSBtZGV2LT5mdW5jcy0+ZW51bV9yZXNvdXJjZXMobWRldik7CiAJaWYgKGVycikgewogCQlEUk1f RVJST1IoImVudW1lcmF0ZSBkaXNwbGF5IHJlc291cmNlIGZhaWxlZC5cbiIpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZGV2LmggYi9kcml2 ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kZXYuaAppbmRleCA0YTI3YTQ0 ZTJlYzYuLjU1NTUxMGJlNjZmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNw bGF5L2tvbWVkYS9rb21lZGFfZGV2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5 L2tvbWVkYS9rb21lZGFfZGV2LmgKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlIDxsaW51eC9p bnRlcnJ1cHQuaD4KICNpbmNsdWRlICJrb21lZGFfcGlwZWxpbmUuaCIKICNpbmNsdWRlICJtYWxp ZHBfcHJvZHVjdC5oIgorI2luY2x1ZGUgImtvbWVkYV9mb3JtYXRfY2Fwcy5oIgogCiAvKiBtYWxp ZHAgZGV2aWNlIGlkICovCiBlbnVtIHsKQEAgLTQ0LDYgKzQ1LDEzIEBAIHN0cnVjdCBrb21lZGFf ZGV2OwogICogU3VwcGxpZWQgYnkgY2hpcCBsZXZlbCBhbmQgcmV0dXJuZWQgYnkgdGhlIGNoaXAg ZW50cnkgZnVuY3Rpb24geHh4X2lkZW50aWZ5LAogICovCiBzdHJ1Y3Qga29tZWRhX2Rldl9mdW5j cyB7CisJLyoqCisJICogQGluaXRfZm9ybWF0X3RhYmxlOgorCSAqCisJICogaW5pdGlhbGl6ZSAm a29tZWRhX2Rldi0+Zm9ybWF0X3RhYmxlLCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQK KwkgKiBiZWZvcmUgdGhlICZlbnVtX3Jlc291cmNlCisJICovCisJdm9pZCAoKmluaXRfZm9ybWF0 X3RhYmxlKShzdHJ1Y3Qga29tZWRhX2RldiAqbWRldik7CiAJLyoqCiAJICogQGVudW1fcmVzb3Vy Y2VzOgogCSAqCkBAIC02Niw3ICs3NCw4IEBAIHN0cnVjdCBrb21lZGFfZGV2IHsKIAl1MzIgX19p b21lbSAgICpyZWdfYmFzZTsKIAogCXN0cnVjdCBrb21lZGFfY2hpcF9pbmZvIGNoaXA7Ci0KKwkv KiogQGZtdF90Ymw6IGluaXRpYWxpemVkIGJ5ICZrb21lZGFfZGV2X2Z1bmNzLT5pbml0X2Zvcm1h dF90YWJsZSAqLworCXN0cnVjdCBrb21lZGFfZm9ybWF0X2NhcHNfdGFibGUgZm10X3RibDsKIAkv KiogQHBjbGs6IEFQQiBjbG9jayBmb3IgcmVnaXN0ZXIgYWNjZXNzICovCiAJc3RydWN0IGNsayAq cGNsazsKIAkvKiogQG1jazogSFcgbWFpbiBlbmdpbmUgY2xrICovCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mb3JtYXRfY2Fwcy5jIGIvZHJp dmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZm9ybWF0X2NhcHMuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM4YWViN2QzMDA0OAotLS0gL2Rl di9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2Zv cm1hdF9jYXBzLmMKQEAgLTAsMCArMSw3NSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAKKy8qCisgKiAoQykgQ09QWVJJR0hUIDIwMTggQVJNIExpbWl0ZWQuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCisgKiBBdXRob3I6IEphbWVzLlFpYW4uV2FuZyA8amFtZXMucWlhbi53YW5n QGFybS5jb20+CisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSAi a29tZWRhX2Zvcm1hdF9jYXBzLmgiCisjaW5jbHVkZSAibWFsaWRwX3V0aWxzLmgiCisKK2NvbnN0 IHN0cnVjdCBrb21lZGFfZm9ybWF0X2NhcHMgKgora29tZWRhX2dldF9mb3JtYXRfY2FwcyhzdHJ1 Y3Qga29tZWRhX2Zvcm1hdF9jYXBzX3RhYmxlICp0YWJsZSwKKwkJICAgICAgIHUzMiBmb3VyY2Ms IHU2NCBtb2RpZmllcikKK3sKKwljb25zdCBzdHJ1Y3Qga29tZWRhX2Zvcm1hdF9jYXBzICpjYXBz OworCXU2NCBhZmJjX2ZlYXR1cmVzID0gbW9kaWZpZXIgJiB+KEFGQkNfRk9STUFUX01PRF9CTE9D S19TSVpFX01BU0spOworCXUzMiBhZmJjX2xheW91dCA9IG1vZGlmaWVyICYgQUZCQ19GT1JNQVRf TU9EX0JMT0NLX1NJWkVfTUFTSzsKKwlpbnQgaWQ7CisKKwlmb3IoaWQgPSAwOyBpZCA8IHRhYmxl LT5uX2Zvcm1hdHM7IGlkKyspIHsKKwkJY2FwcyA9ICZ0YWJsZS0+Zm9ybWF0X2NhcHNbaWRdOwor CisJCWlmKGZvdXJjYyAhPSBjYXBzLT5mb3VyY2MpCisJCQljb250aW51ZTsKKworCQlpZiAoKG1v ZGlmaWVyID09IDBVTEwpICYmIChjYXBzLT5zdXBwb3J0ZWRfYWZiY19sYXlvdXRzID09IDApKQor CQkJcmV0dXJuIGNhcHM7CisKKwkJaWYgKChoYXNfYml0cyhhZmJjX2ZlYXR1cmVzLCBjYXBzLT5z dXBwb3J0ZWRfYWZiY19mZWF0dXJlcykpICYmCisJCSAgICAoaGFzX2JpdChhZmJjX2xheW91dCwg Y2Fwcy0+c3VwcG9ydGVkX2FmYmNfbGF5b3V0cykpKQorCQkJcmV0dXJuIGNhcHM7CisJfQorCisJ cmV0dXJuIE5VTEw7Cit9CisKK3UzMiAqa29tZWRhX2dldF9sYXllcl9mb3VyY2NfbGlzdChzdHJ1 Y3Qga29tZWRhX2Zvcm1hdF9jYXBzX3RhYmxlICp0YWJsZSwKKwkJCQkgIHUzMiBsYXllcl90eXBl LCB1MzIgKm5fZm10cykKK3sKKwljb25zdCBzdHJ1Y3Qga29tZWRhX2Zvcm1hdF9jYXBzICpjYXA7 CisJdTMyICpmbXRzOworCWludCBpLCBqLCBuID0gMDsKKworCWZtdHMgPSBremFsbG9jKHNpemVv Zih1MzIpICogdGFibGUtPm5fZm9ybWF0cywgR0ZQX0tFUk5FTCk7CisJaWYgKGZtdHMgPT0gTlVM TCkKKwkJcmV0dXJuIE5VTEw7CisKKwlmb3IgKGkgPSAwOyBpIDwgdGFibGUtPm5fZm9ybWF0czsg aSsrKSB7CisJCWNhcCA9ICZ0YWJsZS0+Zm9ybWF0X2NhcHNbaV07CisJCWlmICghKGxheWVyX3R5 cGUgJiBjYXAtPnN1cHBvcnRlZF9sYXllcl90eXBlcykgfHwKKwkJICAgICAoY2FwLT5mb3VyY2Mg PT0gMCkpCisJCQljb250aW51ZTsKKworCQkvKiBvbmUgZm91cmNjIG1heSBoYXMgdHdvIGNhcHMg aXRlbXMgaW4gdGFibGUgKGFmYmMvbm9uZS1hZmJjKSwKKwkJICogc28gY2hlY2sgdGhlIGV4aXN0 aW5nIGxpc3QgdG8gYXZvaWQgYWRkaW5nIGEgZHVwbGljYXRlZCBvbmUuCisJCSAqLworCQlmb3Ig KGogPSBuIC0gMTsgaiA+PSAwOyBqLS0pCisJCQlpZiAoZm10c1tqXSA9PSBjYXAtPmZvdXJjYykK KwkJCQlicmVhazsKKworCQlpZiAoaiA8IDApCisJCQlmbXRzW24rK10gPSBjYXAtPmZvdXJjYzsK Kwl9CisKKwlpZiAobl9mbXRzICE9IE5VTEwpCisJCSpuX2ZtdHMgPSBuOworCisJcmV0dXJuIGZt dHM7Cit9CisKK3ZvaWQga29tZWRhX3B1dF9mb3VyY2NfbGlzdCh1MzIgKmZvdXJjY19saXN0KQor eworCWtmcmVlKGZvdXJjY19saXN0KTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mb3Jt YXRfY2Fwcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZm9y bWF0X2NhcHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmZlN2Vi YWY2MDY4NwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9r b21lZGEva29tZWRhX2Zvcm1hdF9jYXBzLmgKQEAgLTAsMCArMSw4OSBAQAorLyogU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKy8qCisgKiAoQykgQ09QWVJJR0hUIDIwMTggQVJN IExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBBdXRob3I6IEphbWVzLlFpYW4uV2Fu ZyA8amFtZXMucWlhbi53YW5nQGFybS5jb20+CisgKgorICovCisKKyNpZm5kZWYgX0tPTUVEQV9G T1JNQVRfQ0FQU19IXworI2RlZmluZSBfS09NRURBX0ZPUk1BVF9DQVBTX0hfCisKKyNpbmNsdWRl IDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPHVhcGkvZHJtL2RybV9mb3VyY2MuaD4KKyNpbmNs dWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgorCisjZGVmaW5lIEFGQkMoeCkJCURSTV9GT1JNQVRfTU9E X0FSTV9BRkJDKHgpCisKKy8qIGFmYmMgbGF5ZXJvdXQgKi8KKyNkZWZpbmUgQUZCQ18xNngxNih4 KQlBRkJDKEFGQkNfRk9STUFUX01PRF9CTE9DS19TSVpFXzE2eDE2IHwgKHgpKQorI2RlZmluZSBB RkJDXzMyeDgoeCkJQUZCQyhBRkJDX0ZPUk1BVF9NT0RfQkxPQ0tfU0laRV8zMng4IHwgKHgpKQor CisvKiBhZmJjIGZlYXR1cmVzICovCisjZGVmaW5lIF9ZVFIJCUFGQkNfRk9STUFUX01PRF9ZVFIK KyNkZWZpbmUgX1NQTElUCQlBRkJDX0ZPUk1BVF9NT0RfU1BMSVQKKyNkZWZpbmUgX1NQQVJTRQkJ QUZCQ19GT1JNQVRfTU9EX1NQQVJTRQorI2RlZmluZSBfQ0JSCQlBRkJDX0ZPUk1BVF9NT0RfQ0JS CisjZGVmaW5lIF9USUxFRAkJQUZCQ19GT1JNQVRfTU9EX1RJTEVECisjZGVmaW5lIF9TQwkJQUZC Q19GT1JNQVRfTU9EX1NDCisKKy8qIGxheWVyX3R5cGUgKi8KKyNkZWZpbmUgS09NRURBX0ZNVF9S SUNIX0xBWUVSCQlCSVQoMCkKKyNkZWZpbmUgS09NRURBX0ZNVF9TSU1QTEVfTEFZRVIJCUJJVCgx KQorI2RlZmluZSBLT01FREFfRk1UX1dCX0xBWUVSCQlCSVQoMikKKworI2RlZmluZSBBRkJDX1RI X0xBWU9VVF9BTElHTk1FTlQJOAorI2RlZmluZSBBRkJDX0hFQURFUl9TSVpFIAkJMTYKKyNkZWZp bmUgQUZCQ19TVVBFUkJMS19BTElHTk1FTlQJCTEyOAorI2RlZmluZSBBRkJDX1NVUEVSQkxLX1BJ WEVMUwkJMjU2CisjZGVmaW5lIEFGQkNfQk9EWV9TVEFSVF9BTElHTk1FTlQJMTAyNAorI2RlZmlu ZSBBRkJDX1RIX0JPRFlfU1RBUlRfQUxJR05NRU5UCTQwOTYKKworLyoqCisgKiBzdHJ1Y3Qga29t ZWRhX2Zvcm1hdF9jYXBzCisgKgorICoga29tZWRhX2Zvcm1hdF9jYXBzIGlzIGZvciBkZXNjcmli aW5nIEFSTSBkaXNwbGF5IHNwZWNpZmljIGZlYXR1cmVzIGFuZAorICogbGltaXRhdGlvbnMgZm9y IGEgc3BlY2lmaWMgZm9ybWF0LCBhbmQgZm9ybWF0X2NhcHMgd2lsbCBiZSBsaW5rZWQgaW50bwor ICogJmtvbWVkYV9mcmFtZWJ1ZmZlciBsaWtlIGEgZXh0ZW5zaW9uIG9mICZkcm1fZm9ybWF0X2lu Zm8uCisgKgorICogTk9URTogb25lIGZvdXJjYyBtYXkgaGFzIHR3byBkaWZmZXJlbnQgZm9ybWF0 X2NhcHMgaXRlbXMgZm9yIGZvdXJjYyBhbmQKKyAqIGZvdXJjYyttb2RpZmllcgorICoKKyAqIEBo d19pZDogaHcgZm9ybWF0IGlkLCBodyBzcGVjaWZpYyB2YWx1ZS4KKyAqIEBmb3VyY2M6IGRybSBm b3VyY2MgZm9ybWF0LgorICogQHRpbGVfc2l6ZTogZm9ybWF0IHRpbGVkIHNpemUsIHVzZWQgYnkg QVJNIGZvcm1hdCBYMEwwL1gwTDIKKyAqIEBzdXBwb3J0ZWRfbGF5ZXJfdHlwZXM6IGluZGljYXRl IHdoaWNoIGxheWVyIHN1cHBvcnRzIHRoaXMgZm9ybWF0CisgKiBAc3VwcG9ydGVkX3JvdHM6IGFs bG93ZWQgcm90YXRpb25zIGZvciB0aGlzIGZvcm1hdAorICogQHN1cHBvcnRlZF9hZmJjX2xheW91 dHM6IHN1cHBvcnRlZCBhZmJjIGxheWVyb3V0CisgKiBAc3VwcG9ydGVkX2FmYmNfZmVhdHVyZXM6 IHN1cHBvcnRlZCBhZmJjIGZlYXR1cmVzCisgKi8KK3N0cnVjdCBrb21lZGFfZm9ybWF0X2NhcHMg eworCXUzMiBod19pZDsKKwl1MzIgZm91cmNjOworCXUzMiB0aWxlX3NpemU7CisJdTMyIHN1cHBv cnRlZF9sYXllcl90eXBlczsKKwl1MzIgc3VwcG9ydGVkX3JvdHM7CisJdTMyIHN1cHBvcnRlZF9h ZmJjX2xheW91dHM7CisJdTY0IHN1cHBvcnRlZF9hZmJjX2ZlYXR1cmVzOworfTsKKworLyoqCisg KiBzdHJ1Y3Qga29tZWRhX2Zvcm1hdF9jYXBzX3RhYmxlIC0gZm9ybWF0X2NhcHMgbWFuYW5nZXIK KyAqCisgKiBAbl9mb3JtYXRzOiB0aGUgc2l6ZSBvZiBmb3JtYXRfY2FwcyBsaXN0LgorICogQGZv cm1hdF9jYXBzOiBmb3JtYXRfY2FwcyBsaXN0LgorICovCitzdHJ1Y3Qga29tZWRhX2Zvcm1hdF9j YXBzX3RhYmxlIHsKKwl1MzIgbl9mb3JtYXRzOworCWNvbnN0IHN0cnVjdCBrb21lZGFfZm9ybWF0 X2NhcHMgKmZvcm1hdF9jYXBzOworfTsKKworY29uc3Qgc3RydWN0IGtvbWVkYV9mb3JtYXRfY2Fw cyAqCitrb21lZGFfZ2V0X2Zvcm1hdF9jYXBzKHN0cnVjdCBrb21lZGFfZm9ybWF0X2NhcHNfdGFi bGUgKnRhYmxlLAorCQkgICAgICAgdTMyIGZvdXJjYywgdTY0IG1vZGlmaWVyKTsKKwordTMyICpr b21lZGFfZ2V0X2xheWVyX2ZvdXJjY19saXN0KHN0cnVjdCBrb21lZGFfZm9ybWF0X2NhcHNfdGFi bGUgKnRhYmxlLAorCQkJCSAgdTMyIGxheWVyX3R5cGUsIHUzMiAqbl9mbXRzKTsKKwordm9pZCBr b21lZGFfcHV0X2ZvdXJjY19saXN0KHUzMiAqZm91cmNjX2xpc3QpOworCisjZW5kaWYKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5l LmggYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5o CmluZGV4IGUwOTdkNGZjYjJjNS4uZWFkODk3NzIwZTFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmgKQEAgLTIxMCw2ICsy MTAsNyBAQCBzdGF0aWMgaW5saW5lIHUxNiBjb21wb25lbnRfY2hhbmdlZF9pbnB1dHMoc3RydWN0 IGtvbWVkYV9jb21wb25lbnRfc3RhdGUgKnN0KQogc3RydWN0IGtvbWVkYV9sYXllciB7CiAJc3Ry dWN0IGtvbWVkYV9jb21wb25lbnQgYmFzZTsKIAkvKiBsYXllciBzcGVjaWZpYyBmZWF0dXJlcyBh bmQgY2FwcyAqLworCWludCBsYXllcl90eXBlOyAvKiBSSUNILCBTSU1QTEUgb3IgV0IgKi8KIH07 CiAKIHN0cnVjdCBrb21lZGFfbGF5ZXJfc3RhdGUgewotLSAKMi4xNy4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK