From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: [PATCH v2 23/28] drm: omapdrm: Merge the dss_features and omap_dss_features structures Date: Mon, 8 May 2017 14:32:58 +0300 Message-ID: <20170508113303.27521-24-laurent.pinchart@ideasonboard.com> References: <20170508113303.27521-1-laurent.pinchart@ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [185.26.127.97]) by gabe.freedesktop.org (Postfix) with ESMTPS id 57C2F6E24E for ; Mon, 8 May 2017 11:33:28 +0000 (UTC) In-Reply-To: <20170508113303.27521-1-laurent.pinchart@ideasonboard.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Tomi Valkeinen List-Id: dri-devel@lists.freedesktop.org Qm90aCBzdHJ1Y3R1cmVzIGRlc2NyaWJlIGZlYXR1cmVzIG9mIGEgcGFydGljdWxhciBPTUFQIERT UyB2ZXJzaW9uLAp0aGVyZSdzIG5vIHJlYXNvbiB0byBrZWVwIHRoZW0gc2VwYXJhdGUuIE1lcmdl IHRoZW0gdG9nZXRoZXIsIGFsbG93aW5nCmluaXRpYWxpemF0aW9uIG9mIHRoZSBmZWF0dXJlcyBi YXNlZCBvbiB0aGUgRFNTIGNvbXBhdGlibGUgc3RyaW5nCmluc3RlYWQgb2YgdGhlIE9NQVAgU29D IHZlcnNpb24uCgpTaWduZWQtb2ZmLWJ5OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNo YXJ0QGlkZWFzb25ib2FyZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2Nv cmUuYyAgICAgICAgIHwgICAyIC0KIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kc3MuYyAg ICAgICAgICB8IDEyOCArLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL29tYXBkcm0v ZHNzL2Rzcy5oICAgICAgICAgIHwgICA2ICsKIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9k c3NfZmVhdHVyZXMuYyB8IDIyMCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL29tYXBkcm0vZHNzL2Rzc19mZWF0dXJlcy5oIHwgIDQxICsrKysrLQogNSBmaWxl cyBjaGFuZ2VkLCAyMDQgaW5zZXJ0aW9ucygrKSwgMTkzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0v b21hcGRybS9kc3MvY29yZS5jCmluZGV4IDgzOWJmYjVhMmU0OC4uMmE4YmY0NDFkMzhkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvY29yZS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9vbWFwZHJtL2Rzcy9jb3JlLmMKQEAgLTU0LDggKzU0LDYgQEAgc3RhdGljIGludCBf X2luaXQgb21hcF9kc3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAlj b3JlLnBkZXYgPSBwZGV2OwogCi0JZHNzX2ZlYXR1cmVzX2luaXQob21hcGRzc19nZXRfdmVyc2lv bigpKTsKLQogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21h cGRybS9kc3MvZHNzLmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvZHNzLmMKaW5kZXgg MzRkNWNhYTdkMGI1Li5lZGZiMWVjZGVkNzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9v bWFwZHJtL2Rzcy9kc3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvZHNzLmMK QEAgLTc3LDE2ICs3Nyw2IEBAIHN0cnVjdCBkc3Nfb3BzIHsKIAkJZW51bSBkc3NfY2xrX3NvdXJj ZSBjbGtfc3JjKTsKIH07CiAKLXN0cnVjdCBkc3NfZmVhdHVyZXMgewotCWVudW0gZHNzX2Rldmlj ZV90eXBlIHR5cGU7Ci0JdTggZmNrX2Rpdl9tYXg7Ci0JdTggZHNzX2Zja19tdWx0aXBsaWVyOwot CWNvbnN0IGNoYXIgKnBhcmVudF9jbGtfbmFtZTsKLQljb25zdCBlbnVtIG9tYXBfZGlzcGxheV90 eXBlICpwb3J0czsKLQlpbnQgbnVtX3BvcnRzOwotCWNvbnN0IHN0cnVjdCBkc3Nfb3BzICpvcHM7 Ci19OwotCiBzdGF0aWMgc3RydWN0IHsKIAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2Owog CXZvaWQgX19pb21lbSAgICAqYmFzZTsKQEAgLTEwOCw3ICs5OCw3IEBAIHN0YXRpYyBzdHJ1Y3Qg ewogCWJvb2wJCWN0eF92YWxpZDsKIAl1MzIJCWN0eFtEU1NfU1pfUkVHUyAvIHNpemVvZih1MzIp XTsKIAotCWNvbnN0IHN0cnVjdCBkc3NfZmVhdHVyZXMgKmZlYXQ7CisJY29uc3Qgc3RydWN0IG9t YXBfZHNzX2ZlYXR1cmVzICpmZWF0OwogCiAJc3RydWN0IGRzc19wbGwJKnZpZGVvMV9wbGw7CiAJ c3RydWN0IGRzc19wbGwJKnZpZGVvMl9wbGw7CkBAIC05NjksMTE0ICs5NTksMjUgQEAgc3RhdGlj IGlubGluZSB2b2lkIGRzc191bmluaXRpYWxpemVfZGVidWdmcyh2b2lkKQogfQogI2VuZGlmIC8q IENPTkZJR19PTUFQMl9EU1NfREVCVUdGUyAqLwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRzc19v cHMgZHNzX29wc19vbWFwMl9vbWFwMyA9IHsKK2NvbnN0IHN0cnVjdCBkc3Nfb3BzIGRzc19vcHNf b21hcDJfb21hcDMgPSB7CiAJLmRwaV9zZWxlY3Rfc291cmNlID0gJmRzc19kcGlfc2VsZWN0X3Nv dXJjZV9vbWFwMl9vbWFwMywKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNzX29wcyBkc3Nf b3BzX29tYXA0ID0geworY29uc3Qgc3RydWN0IGRzc19vcHMgZHNzX29wc19vbWFwNCA9IHsKIAku ZHBpX3NlbGVjdF9zb3VyY2UgPSAmZHNzX2RwaV9zZWxlY3Rfc291cmNlX29tYXA0LAogCS5zZWxl Y3RfbGNkX3NvdXJjZSA9ICZkc3NfbGNkX2Nsa19tdXhfb21hcDQsCiB9OwogCi1zdGF0aWMgY29u c3Qgc3RydWN0IGRzc19vcHMgZHNzX29wc19vbWFwNSA9IHsKK2NvbnN0IHN0cnVjdCBkc3Nfb3Bz IGRzc19vcHNfb21hcDUgPSB7CiAJLmRwaV9zZWxlY3Rfc291cmNlID0gJmRzc19kcGlfc2VsZWN0 X3NvdXJjZV9vbWFwNSwKIAkuc2VsZWN0X2xjZF9zb3VyY2UgPSAmZHNzX2xjZF9jbGtfbXV4X29t YXA1LAogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBkc3Nfb3BzIGRzc19vcHNfZHJhNyA9IHsK K2NvbnN0IHN0cnVjdCBkc3Nfb3BzIGRzc19vcHNfZHJhNyA9IHsKIAkuZHBpX3NlbGVjdF9zb3Vy Y2UgPSAmZHNzX2RwaV9zZWxlY3Rfc291cmNlX2RyYTd4eCwKIAkuc2VsZWN0X2xjZF9zb3VyY2Ug PSAmZHNzX2xjZF9jbGtfbXV4X2RyYTcsCiB9OwogCi1zdGF0aWMgY29uc3QgZW51bSBvbWFwX2Rp c3BsYXlfdHlwZSBvbWFwMnBsdXNfcG9ydHNbXSA9IHsKLQlPTUFQX0RJU1BMQVlfVFlQRV9EUEks Ci19OwotCi1zdGF0aWMgY29uc3QgZW51bSBvbWFwX2Rpc3BsYXlfdHlwZSBvbWFwMzR4eF9wb3J0 c1tdID0gewotCU9NQVBfRElTUExBWV9UWVBFX0RQSSwKLQlPTUFQX0RJU1BMQVlfVFlQRV9TREks Ci19OwotCi1zdGF0aWMgY29uc3QgZW51bSBvbWFwX2Rpc3BsYXlfdHlwZSBkcmE3eHhfcG9ydHNb XSA9IHsKLQlPTUFQX0RJU1BMQVlfVFlQRV9EUEksCi0JT01BUF9ESVNQTEFZX1RZUEVfRFBJLAot CU9NQVBfRElTUExBWV9UWVBFX0RQSSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNzX2Zl YXR1cmVzIG9tYXAyNHh4X2Rzc19mZWF0cyA9IHsKLQkudHlwZQkJCT0JRFNTX1RZUEVfT01BUDIs Ci0JLyoKLQkgKiBmY2sgZGl2IG1heCBpcyByZWFsbHkgMTYsIGJ1dCB0aGUgZGl2aWRlciByYW5n ZSBoYXMgZ2Fwcy4gVGhlIHJhbmdlCi0JICogZnJvbSAxIHRvIDYgaGFzIG5vIGdhcHMsIHNvIGxl dCdzIHVzZSB0aGF0IGFzIGEgbWF4LgotCSAqLwotCS5mY2tfZGl2X21heAkJPQk2LAotCS5kc3Nf ZmNrX211bHRpcGxpZXIJPQkyLAotCS5wYXJlbnRfY2xrX25hbWUJPQkiY29yZV9jayIsCi0JLnBv cnRzCQkJPQlvbWFwMnBsdXNfcG9ydHMsCi0JLm51bV9wb3J0cwkJPQlBUlJBWV9TSVpFKG9tYXAy cGx1c19wb3J0cyksCi0JLm9wcwkJCT0JJmRzc19vcHNfb21hcDJfb21hcDMsCi19OwotCi1zdGF0 aWMgY29uc3Qgc3RydWN0IGRzc19mZWF0dXJlcyBvbWFwMzR4eF9kc3NfZmVhdHMgPSB7Ci0JLnR5 cGUJCQk9CURTU19UWVBFX09NQVAzLAotCS5mY2tfZGl2X21heAkJPQkxNiwKLQkuZHNzX2Zja19t dWx0aXBsaWVyCT0JMiwKLQkucGFyZW50X2Nsa19uYW1lCT0JImRwbGw0X2NrIiwKLQkucG9ydHMJ CQk9CW9tYXAzNHh4X3BvcnRzLAotCS5udW1fcG9ydHMJCT0JQVJSQVlfU0laRShvbWFwMzR4eF9w b3J0cyksCi0JLm9wcwkJCT0JJmRzc19vcHNfb21hcDJfb21hcDMsCi19OwotCi1zdGF0aWMgY29u c3Qgc3RydWN0IGRzc19mZWF0dXJlcyBvbWFwMzYzMF9kc3NfZmVhdHMgPSB7Ci0JLnR5cGUJCQk9 CURTU19UWVBFX09NQVAzLAotCS5mY2tfZGl2X21heAkJPQkzMiwKLQkuZHNzX2Zja19tdWx0aXBs aWVyCT0JMSwKLQkucGFyZW50X2Nsa19uYW1lCT0JImRwbGw0X2NrIiwKLQkucG9ydHMJCQk9CW9t YXAycGx1c19wb3J0cywKLQkubnVtX3BvcnRzCQk9CUFSUkFZX1NJWkUob21hcDJwbHVzX3BvcnRz KSwKLQkub3BzCQkJPQkmZHNzX29wc19vbWFwMl9vbWFwMywKLX07Ci0KLXN0YXRpYyBjb25zdCBz dHJ1Y3QgZHNzX2ZlYXR1cmVzIG9tYXA0NHh4X2Rzc19mZWF0cyA9IHsKLQkudHlwZQkJCT0JRFNT X1RZUEVfT01BUDQsCi0JLmZja19kaXZfbWF4CQk9CTMyLAotCS5kc3NfZmNrX211bHRpcGxpZXIJ PQkxLAotCS5wYXJlbnRfY2xrX25hbWUJPQkiZHBsbF9wZXJfeDJfY2siLAotCS5wb3J0cwkJCT0J b21hcDJwbHVzX3BvcnRzLAotCS5udW1fcG9ydHMJCT0JQVJSQVlfU0laRShvbWFwMnBsdXNfcG9y dHMpLAotCS5vcHMJCQk9CSZkc3Nfb3BzX2RyYTcsCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0 IGRzc19mZWF0dXJlcyBvbWFwNTR4eF9kc3NfZmVhdHMgPSB7Ci0JLnR5cGUJCQk9CURTU19UWVBF X09NQVA1LAotCS5mY2tfZGl2X21heAkJPQk2NCwKLQkuZHNzX2Zja19tdWx0aXBsaWVyCT0JMSwK LQkucGFyZW50X2Nsa19uYW1lCT0JImRwbGxfcGVyX3gyX2NrIiwKLQkucG9ydHMJCQk9CW9tYXAy cGx1c19wb3J0cywKLQkubnVtX3BvcnRzCQk9CUFSUkFZX1NJWkUob21hcDJwbHVzX3BvcnRzKSwK LQkub3BzCQkJPQkmZHNzX29wc19vbWFwNSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNz X2ZlYXR1cmVzIGFtNDN4eF9kc3NfZmVhdHMgPSB7Ci0JLnR5cGUJCQk9CURTU19UWVBFX09NQVAz LAotCS5mY2tfZGl2X21heAkJPQkwLAotCS5kc3NfZmNrX211bHRpcGxpZXIJPQkwLAotCS5wYXJl bnRfY2xrX25hbWUJPQlOVUxMLAotCS5wb3J0cwkJCT0Jb21hcDJwbHVzX3BvcnRzLAotCS5udW1f cG9ydHMJCT0JQVJSQVlfU0laRShvbWFwMnBsdXNfcG9ydHMpLAotCS5vcHMJCQk9CSZkc3Nfb3Bz X29tYXAyX29tYXAzLAotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkc3NfZmVhdHVyZXMgZHJh N3h4X2Rzc19mZWF0cyA9IHsKLQkudHlwZQkJCT0JRFNTX1RZUEVfRFJBNywKLQkuZmNrX2Rpdl9t YXgJCT0JNjQsCi0JLmRzc19mY2tfbXVsdGlwbGllcgk9CTEsCi0JLnBhcmVudF9jbGtfbmFtZQk9 CSJkcGxsX3Blcl94Ml9jayIsCi0JLnBvcnRzCQkJPQlkcmE3eHhfcG9ydHMsCi0JLm51bV9wb3J0 cwkJPQlBUlJBWV9TSVpFKGRyYTd4eF9wb3J0cyksCi0JLm9wcwkJCT0JJmRzc19vcHNfZHJhNywK LX07Ci0KIHN0YXRpYyBpbnQgZHNzX2luaXRfcG9ydHMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKIHsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBhcmVudCA9IHBkZXYtPmRldi5vZl9ub2Rl OwpAQCAtMTIyNSwyMyArMTEyNiw2IEBAIHN0YXRpYyBpbnQgZHNzX3ZpZGVvX3BsbF9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogfQogCiAvKiBEU1MgSFcgSVAgaW5pdGlhbGlz YXRpb24gKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGRzc19vZl9tYXRjaFtd ID0gewotCXsgLmNvbXBhdGlibGUgPSAidGksb21hcDItZHNzIiwgLmRhdGEgPSAmb21hcDI0eHhf ZHNzX2ZlYXRzIH0sCi0JeyAuY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1kc3MiLCAuZGF0YSA9ICZv bWFwMzYzMF9kc3NfZmVhdHMgfSwKLQl7IC5jb21wYXRpYmxlID0gInRpLG9tYXA0LWRzcyIsIC5k YXRhID0gJm9tYXA0NHh4X2Rzc19mZWF0cyB9LAotCXsgLmNvbXBhdGlibGUgPSAidGksb21hcDUt ZHNzIiwgLmRhdGEgPSAmb21hcDU0eHhfZHNzX2ZlYXRzIH0sCi0JeyAuY29tcGF0aWJsZSA9ICJ0 aSxkcmE3LWRzcyIsICAuZGF0YSA9ICZkcmE3eHhfZHNzX2ZlYXRzIH0sCi0Je30sCi19OwotTU9E VUxFX0RFVklDRV9UQUJMRShvZiwgZHNzX29mX21hdGNoKTsKLQotc3RhdGljIGNvbnN0IHN0cnVj dCBzb2NfZGV2aWNlX2F0dHJpYnV0ZSBkc3Nfc29jX2RldmljZXNbXSA9IHsKLQl7IC5tYWNoaW5l ID0gIk9NQVAzNDMwLzM1MzAiLCAuZGF0YSA9ICZvbWFwMzR4eF9kc3NfZmVhdHMgfSwKLQl7IC5t YWNoaW5lID0gIkFNMzU/PyIsICAgICAgICAuZGF0YSA9ICZvbWFwMzR4eF9kc3NfZmVhdHMgfSwK LQl7IC5mYW1pbHkgID0gIkFNNDN4eCIsICAgICAgICAuZGF0YSA9ICZhbTQzeHhfZHNzX2ZlYXRz IH0sCi0JeyAvKiBzZW50aW5lbCAqLyB9Ci19OwotCiBzdGF0aWMgaW50IGRzc19iaW5kKHN0cnVj dCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxh dGZvcm1fZGV2aWNlKGRldik7CkBAIC0xMzk2LDYgKzEyODAsOCBAQCBzdGF0aWMgaW50IGRzc19w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWVsc2UKIAkJZHNzLmZlYXQgPSBv Zl9tYXRjaF9kZXZpY2UoZHNzX29mX21hdGNoLCAmcGRldi0+ZGV2KS0+ZGF0YTsKIAorCWRzc19m ZWF0dXJlc19pbml0KGRzcy5mZWF0KTsKKwogCXIgPSBkc3NfaW5pdGlhbGl6ZV9kZWJ1Z2ZzKCk7 CiAJaWYgKHIpCiAJCXJldHVybiByOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBk cm0vZHNzL2Rzcy5oIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2Rzcy5oCmluZGV4IGVj YTdkNzMxZjVjOC4uZTMzOTg3NGY2ODI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21h cGRybS9kc3MvZHNzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2Rzcy5oCkBA IC0yNDUsNiArMjQ1LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBkc3NfbWdyX2lzX2xjZChlbnVt IG9tYXBfY2hhbm5lbCBpZCkKIAkJcmV0dXJuIGZhbHNlOwogfQogCitzdHJ1Y3QgZHNzX29wczsK K2V4dGVybiBjb25zdCBzdHJ1Y3QgZHNzX29wcyBkc3Nfb3BzX29tYXAyX29tYXAzOworZXh0ZXJu IGNvbnN0IHN0cnVjdCBkc3Nfb3BzIGRzc19vcHNfb21hcDQ7CitleHRlcm4gY29uc3Qgc3RydWN0 IGRzc19vcHMgZHNzX29wc19vbWFwNTsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZHNzX29wcyBkc3Nf b3BzX2RyYTc7CisKIC8qIERTUyAqLwogI2lmIGRlZmluZWQoQ09ORklHX09NQVAyX0RTU19ERUJV R0ZTKQogaW50IGRzc19kZWJ1Z2ZzX2NyZWF0ZV9maWxlKGNvbnN0IGNoYXIgKm5hbWUsIHZvaWQg KCp3cml0ZSkoc3RydWN0IHNlcV9maWxlICopKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9vbWFwZHJtL2Rzcy9kc3NfZmVhdHVyZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rz cy9kc3NfZmVhdHVyZXMuYwppbmRleCBlZTViOTNjZTI3NjMuLmY5MmRmOTFhOWQ0YyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2Rzc19mZWF0dXJlcy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kc3NfZmVhdHVyZXMuYwpAQCAtMjEsNyArMjEsOSBA QAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAj aW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvbW9kX2RldmljZXRhYmxlLmg+ CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3N5c19zb2MuaD4KIAog I2luY2x1ZGUgIm9tYXBkc3MuaCIKICNpbmNsdWRlICJkc3MuaCIKQEAgLTM2LDI3ICszOCw2IEBA IHN0cnVjdCBkc3NfcGFyYW1fcmFuZ2UgewogCWludCBtaW4sIG1heDsKIH07CiAKLXN0cnVjdCBv bWFwX2Rzc19mZWF0dXJlcyB7Ci0JY29uc3Qgc3RydWN0IGRzc19yZWdfZmllbGQgKnJlZ19maWVs ZHM7Ci0JY29uc3QgaW50IG51bV9yZWdfZmllbGRzOwotCi0JY29uc3QgZW51bSBkc3NfZmVhdF9p ZCAqZmVhdHVyZXM7Ci0JY29uc3QgaW50IG51bV9mZWF0dXJlczsKLQotCWNvbnN0IGludCBudW1f bWdyczsKLQljb25zdCBpbnQgbnVtX292bHM7Ci0JY29uc3QgZW51bSBvbWFwX2Rpc3BsYXlfdHlw ZSAqc3VwcG9ydGVkX2Rpc3BsYXlzOwotCWNvbnN0IGVudW0gb21hcF9kc3Nfb3V0cHV0X2lkICpz dXBwb3J0ZWRfb3V0cHV0czsKLQljb25zdCBlbnVtIG9tYXBfY29sb3JfbW9kZSAqc3VwcG9ydGVk X2NvbG9yX21vZGVzOwotCWNvbnN0IGVudW0gb21hcF9vdmVybGF5X2NhcHMgKm92ZXJsYXlfY2Fw czsKLQljb25zdCBzdHJ1Y3QgZHNzX3BhcmFtX3JhbmdlICpkc3NfcGFyYW1zOwotCi0JY29uc3Qg ZW51bSBvbWFwX2Rzc19yb3RhdGlvbl90eXBlIHN1cHBvcnRlZF9yb3RhdGlvbl90eXBlczsKLQot CWNvbnN0IHUzMiBidWZmZXJfc2l6ZV91bml0OwotCWNvbnN0IHUzMiBidXJzdF9zaXplX3VuaXQ7 Ci19OwotCiAvKiBUaGlzIHN0cnVjdCBpcyBhc3NpZ25lZCB0byBvbmUgb2YgdGhlIGJlbG93IGR1 cmluZyBpbml0aWFsaXphdGlvbiAqLwogc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX2Rzc19mZWF0 dXJlcyAqb21hcF9jdXJyZW50X2Rzc19mZWF0dXJlczsKIApAQCAtNTg3LDggKzU2OCwzNSBAQCBz dGF0aWMgY29uc3QgZW51bSBkc3NfZmVhdF9pZCBvbWFwNV9kc3NfZmVhdF9saXN0W10gPSB7CiAJ RkVBVF9NRkxBRywKIH07CiAKK3N0YXRpYyBjb25zdCBlbnVtIG9tYXBfZGlzcGxheV90eXBlIG9t YXAycGx1c19wb3J0c1tdID0geworCU9NQVBfRElTUExBWV9UWVBFX0RQSSwKK307CisKK3N0YXRp YyBjb25zdCBlbnVtIG9tYXBfZGlzcGxheV90eXBlIG9tYXAzNHh4X3BvcnRzW10gPSB7CisJT01B UF9ESVNQTEFZX1RZUEVfRFBJLAorCU9NQVBfRElTUExBWV9UWVBFX1NESSwKK307CisKK3N0YXRp YyBjb25zdCBlbnVtIG9tYXBfZGlzcGxheV90eXBlIGRyYTd4eF9wb3J0c1tdID0geworCU9NQVBf RElTUExBWV9UWVBFX0RQSSwKKwlPTUFQX0RJU1BMQVlfVFlQRV9EUEksCisJT01BUF9ESVNQTEFZ X1RZUEVfRFBJLAorfTsKKwogLyogT01BUDIgRFNTIEZlYXR1cmVzICovCi1zdGF0aWMgY29uc3Qg c3RydWN0IG9tYXBfZHNzX2ZlYXR1cmVzIG9tYXAyX2Rzc19mZWF0dXJlcyA9IHsKK3N0YXRpYyBj b25zdCBzdHJ1Y3Qgb21hcF9kc3NfZmVhdHVyZXMgb21hcDI0eHhfZHNzX2ZlYXR1cmVzID0gewor CS50eXBlID0gRFNTX1RZUEVfT01BUDIsCisJLyoKKwkgKiBmY2sgZGl2IG1heCBpcyByZWFsbHkg MTYsIGJ1dCB0aGUgZGl2aWRlciByYW5nZSBoYXMgZ2Fwcy4gVGhlIHJhbmdlCisJICogZnJvbSAx IHRvIDYgaGFzIG5vIGdhcHMsIHNvIGxldCdzIHVzZSB0aGF0IGFzIGEgbWF4LgorCSAqLworCS5m Y2tfZGl2X21heCA9IDYsCisJLmRzc19mY2tfbXVsdGlwbGllciA9IDIsCisJLnBhcmVudF9jbGtf bmFtZSA9ICJjb3JlX2NrIiwKKwkucG9ydHMgPSBvbWFwMnBsdXNfcG9ydHMsCisJLm51bV9wb3J0 cyA9IEFSUkFZX1NJWkUob21hcDJwbHVzX3BvcnRzKSwKKwkub3BzID0gJmRzc19vcHNfb21hcDJf b21hcDMsCisKIAkucmVnX2ZpZWxkcyA9IG9tYXAyX2Rzc19yZWdfZmllbGRzLAogCS5udW1fcmVn X2ZpZWxkcyA9IEFSUkFZX1NJWkUob21hcDJfZHNzX3JlZ19maWVsZHMpLAogCkBAIC02MDksNiAr NjE3LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9kc3NfZmVhdHVyZXMgb21hcDJfZHNz X2ZlYXR1cmVzID0gewogCiAvKiBPTUFQMyBEU1MgRmVhdHVyZXMgKi8KIHN0YXRpYyBjb25zdCBz dHJ1Y3Qgb21hcF9kc3NfZmVhdHVyZXMgb21hcDM0MzBfZHNzX2ZlYXR1cmVzID0geworCS50eXBl ID0gRFNTX1RZUEVfT01BUDMsCisJLmZja19kaXZfbWF4ID0gMTYsCisJLmRzc19mY2tfbXVsdGlw bGllciA9IDIsCisJLnBhcmVudF9jbGtfbmFtZSA9ICJkcGxsNF9jayIsCisJLnBvcnRzID0gb21h cDM0eHhfcG9ydHMsCisJLm51bV9wb3J0cyA9IEFSUkFZX1NJWkUob21hcDM0eHhfcG9ydHMpLAor CS5vcHMgPSAmZHNzX29wc19vbWFwMl9vbWFwMywKKwogCS5yZWdfZmllbGRzID0gb21hcDNfZHNz X3JlZ19maWVsZHMsCiAJLm51bV9yZWdfZmllbGRzID0gQVJSQVlfU0laRShvbWFwM19kc3NfcmVn X2ZpZWxkcyksCiAKQEAgLTYzMiw2ICs2NDgsMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFw X2Rzc19mZWF0dXJlcyBvbWFwMzQzMF9kc3NfZmVhdHVyZXMgPSB7CiAgKiB2ZGRzX2RzaSByZWd1 bGF0b3IuCiAgKi8KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9kc3NfZmVhdHVyZXMgYW0zNXh4 X2Rzc19mZWF0dXJlcyA9IHsKKwkudHlwZSA9IERTU19UWVBFX09NQVAzLAorCS5mY2tfZGl2X21h eCA9IDE2LAorCS5kc3NfZmNrX211bHRpcGxpZXIgPSAyLAorCS5wYXJlbnRfY2xrX25hbWUgPSAi ZHBsbDRfY2siLAorCS5wb3J0cyA9IG9tYXAzNHh4X3BvcnRzLAorCS5udW1fcG9ydHMgPSBBUlJB WV9TSVpFKG9tYXAzNHh4X3BvcnRzKSwKKwkub3BzID0gJmRzc19vcHNfb21hcDJfb21hcDMsCisK IAkucmVnX2ZpZWxkcyA9IG9tYXAzX2Rzc19yZWdfZmllbGRzLAogCS5udW1fcmVnX2ZpZWxkcyA9 IEFSUkFZX1NJWkUob21hcDNfZHNzX3JlZ19maWVsZHMpLAogCkBAIC02NTEsNiArNjc1LDE0IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9kc3NfZmVhdHVyZXMgYW0zNXh4X2Rzc19mZWF0dXJl cyA9IHsKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9kc3NfZmVhdHVyZXMgYW00M3h4 X2Rzc19mZWF0dXJlcyA9IHsKKwkudHlwZSA9IERTU19UWVBFX09NQVAzLAorCS5mY2tfZGl2X21h eCA9IDAsCisJLmRzc19mY2tfbXVsdGlwbGllciA9IDAsCisJLnBhcmVudF9jbGtfbmFtZSA9IE5V TEwsCisJLnBvcnRzID0gb21hcDJwbHVzX3BvcnRzLAorCS5udW1fcG9ydHMgPSBBUlJBWV9TSVpF KG9tYXAycGx1c19wb3J0cyksCisJLm9wcyA9ICZkc3Nfb3BzX29tYXAyX29tYXAzLAorCiAJLnJl Z19maWVsZHMgPSBhbTQzeHhfZHNzX3JlZ19maWVsZHMsCiAJLm51bV9yZWdfZmllbGRzID0gQVJS QVlfU0laRShhbTQzeHhfZHNzX3JlZ19maWVsZHMpLAogCkBAIC02NzAsNiArNzAyLDE0IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9kc3NfZmVhdHVyZXMgYW00M3h4X2Rzc19mZWF0dXJlcyA9 IHsKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9kc3NfZmVhdHVyZXMgb21hcDM2MzBf ZHNzX2ZlYXR1cmVzID0geworCS50eXBlID0gRFNTX1RZUEVfT01BUDMsCisJLmZja19kaXZfbWF4 ID0gMzIsCisJLmRzc19mY2tfbXVsdGlwbGllciA9IDEsCisJLnBhcmVudF9jbGtfbmFtZSA9ICJk cGxsNF9jayIsCisJLnBvcnRzID0gb21hcDJwbHVzX3BvcnRzLAorCS5udW1fcG9ydHMgPSBBUlJB WV9TSVpFKG9tYXAycGx1c19wb3J0cyksCisJLm9wcyA9ICZkc3Nfb3BzX29tYXAyX29tYXAzLAor CiAJLnJlZ19maWVsZHMgPSBvbWFwM19kc3NfcmVnX2ZpZWxkcywKIAkubnVtX3JlZ19maWVsZHMg PSBBUlJBWV9TSVpFKG9tYXAzX2Rzc19yZWdfZmllbGRzKSwKIApAQCAtNjkxLDYgKzczMSwxNCBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IG9tYXBfZHNzX2ZlYXR1cmVzIG9tYXAzNjMwX2Rzc19mZWF0 dXJlcyA9IHsKIC8qIE9NQVA0IERTUyBGZWF0dXJlcyAqLwogLyogRm9yIE9NQVA0NDMwIEVTIDEu MCByZXZpc2lvbiAqLwogc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX2Rzc19mZWF0dXJlcyBvbWFw NDQzMF9lczFfMF9kc3NfZmVhdHVyZXMgID0geworCS50eXBlID0gRFNTX1RZUEVfT01BUDQsCisJ LmZja19kaXZfbWF4ID0gMzIsCisJLmRzc19mY2tfbXVsdGlwbGllciA9IDEsCisJLnBhcmVudF9j bGtfbmFtZSA9ICJkcGxsX3Blcl94Ml9jayIsCisJLnBvcnRzID0gb21hcDJwbHVzX3BvcnRzLAor CS5udW1fcG9ydHMgPSBBUlJBWV9TSVpFKG9tYXAycGx1c19wb3J0cyksCisJLm9wcyA9ICZkc3Nf b3BzX2RyYTcsCisKIAkucmVnX2ZpZWxkcyA9IG9tYXA0X2Rzc19yZWdfZmllbGRzLAogCS5udW1f cmVnX2ZpZWxkcyA9IEFSUkFZX1NJWkUob21hcDRfZHNzX3JlZ19maWVsZHMpLAogCkBAIC03MTEs NiArNzU5LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9kc3NfZmVhdHVyZXMgb21hcDQ0 MzBfZXMxXzBfZHNzX2ZlYXR1cmVzICA9IHsKIAogLyogRm9yIE9NQVA0NDMwIEVTIDIuMCwgMi4x IGFuZCAyLjIgcmV2aXNpb25zICovCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9tYXBfZHNzX2ZlYXR1 cmVzIG9tYXA0NDMwX2VzMl8wXzFfMl9kc3NfZmVhdHVyZXMgPSB7CisJLnR5cGUgPSBEU1NfVFlQ RV9PTUFQNCwKKwkuZmNrX2Rpdl9tYXggPSAzMiwKKwkuZHNzX2Zja19tdWx0aXBsaWVyID0gMSwK KwkucGFyZW50X2Nsa19uYW1lID0gImRwbGxfcGVyX3gyX2NrIiwKKwkucG9ydHMgPSBvbWFwMnBs dXNfcG9ydHMsCisJLm51bV9wb3J0cyA9IEFSUkFZX1NJWkUob21hcDJwbHVzX3BvcnRzKSwKKwku b3BzID0gJmRzc19vcHNfZHJhNywKKwogCS5yZWdfZmllbGRzID0gb21hcDRfZHNzX3JlZ19maWVs ZHMsCiAJLm51bV9yZWdfZmllbGRzID0gQVJSQVlfU0laRShvbWFwNF9kc3NfcmVnX2ZpZWxkcyks CiAKQEAgLTczMCw3ICs3ODYsMTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX2Rzc19mZWF0 dXJlcyBvbWFwNDQzMF9lczJfMF8xXzJfZHNzX2ZlYXR1cmVzID0gewogfTsKIAogLyogRm9yIGFs bCB0aGUgb3RoZXIgT01BUDQgdmVyc2lvbnMgKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9k c3NfZmVhdHVyZXMgb21hcDRfZHNzX2ZlYXR1cmVzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBv bWFwX2Rzc19mZWF0dXJlcyBvbWFwNDR4eF9kc3NfZmVhdHVyZXMgPSB7CisJLnR5cGUgPSBEU1Nf VFlQRV9PTUFQNCwKKwkuZmNrX2Rpdl9tYXggPSAzMiwKKwkuZHNzX2Zja19tdWx0aXBsaWVyID0g MSwKKwkucGFyZW50X2Nsa19uYW1lID0gImRwbGxfcGVyX3gyX2NrIiwKKwkucG9ydHMgPSBvbWFw MnBsdXNfcG9ydHMsCisJLm51bV9wb3J0cyA9IEFSUkFZX1NJWkUob21hcDJwbHVzX3BvcnRzKSwK Kwkub3BzID0gJmRzc19vcHNfZHJhNywKKwogCS5yZWdfZmllbGRzID0gb21hcDRfZHNzX3JlZ19m aWVsZHMsCiAJLm51bV9yZWdfZmllbGRzID0gQVJSQVlfU0laRShvbWFwNF9kc3NfcmVnX2ZpZWxk cyksCiAKQEAgLTc1MCw3ICs4MTQsMTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX2Rzc19m ZWF0dXJlcyBvbWFwNF9kc3NfZmVhdHVyZXMgPSB7CiB9OwogCiAvKiBPTUFQNSBEU1MgRmVhdHVy ZXMgKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9kc3NfZmVhdHVyZXMgb21hcDVfZHNzX2Zl YXR1cmVzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX2Rzc19mZWF0dXJlcyBvbWFwNTR4 eF9kc3NfZmVhdHVyZXMgPSB7CisJLnR5cGUgPSBEU1NfVFlQRV9PTUFQNSwKKwkuZmNrX2Rpdl9t YXggPSA2NCwKKwkuZHNzX2Zja19tdWx0aXBsaWVyID0gMSwKKwkucGFyZW50X2Nsa19uYW1lID0g ImRwbGxfcGVyX3gyX2NrIiwKKwkucG9ydHMgPSBvbWFwMnBsdXNfcG9ydHMsCisJLm51bV9wb3J0 cyA9IEFSUkFZX1NJWkUob21hcDJwbHVzX3BvcnRzKSwKKwkub3BzID0gJmRzc19vcHNfb21hcDUs CisKIAkucmVnX2ZpZWxkcyA9IG9tYXA1X2Rzc19yZWdfZmllbGRzLAogCS5udW1fcmVnX2ZpZWxk cyA9IEFSUkFZX1NJWkUob21hcDVfZHNzX3JlZ19maWVsZHMpLAogCkBAIC03NjksNyArODQxLDU5 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9kc3NfZmVhdHVyZXMgb21hcDVfZHNzX2ZlYXR1 cmVzID0gewogCS5idXJzdF9zaXplX3VuaXQgPSAxNiwKIH07CiAKLS8qIEZ1bmN0aW9ucyByZXR1 cm5pbmcgdmFsdWVzIHJlbGF0ZWQgdG8gYSBEU1MgZmVhdHVyZSAqLworLyogRFJBNyBEU1MgRmVh dHVyZXMgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb21hcF9kc3NfZmVhdHVyZXMgZHJhN3h4X2Rz c19mZWF0dXJlcyA9IHsKKwkudHlwZSA9IERTU19UWVBFX0RSQTcsCisJLmZja19kaXZfbWF4ID0g NjQsCisJLmRzc19mY2tfbXVsdGlwbGllciA9IDEsCisJLnBhcmVudF9jbGtfbmFtZSA9ICJkcGxs X3Blcl94Ml9jayIsCisJLnBvcnRzID0gZHJhN3h4X3BvcnRzLAorCS5udW1fcG9ydHMgPSBBUlJB WV9TSVpFKGRyYTd4eF9wb3J0cyksCisJLm9wcyA9ICZkc3Nfb3BzX2RyYTcsCisKKwkucmVnX2Zp ZWxkcyA9IG9tYXA1X2Rzc19yZWdfZmllbGRzLAorCS5udW1fcmVnX2ZpZWxkcyA9IEFSUkFZX1NJ WkUob21hcDVfZHNzX3JlZ19maWVsZHMpLAorCisJLmZlYXR1cmVzID0gb21hcDVfZHNzX2ZlYXRf bGlzdCwKKwkubnVtX2ZlYXR1cmVzID0gQVJSQVlfU0laRShvbWFwNV9kc3NfZmVhdF9saXN0KSwK KworCS5udW1fbWdycyA9IDQsCisJLm51bV9vdmxzID0gNCwKKwkuc3VwcG9ydGVkX2Rpc3BsYXlz ID0gb21hcDVfZHNzX3N1cHBvcnRlZF9kaXNwbGF5cywKKwkuc3VwcG9ydGVkX291dHB1dHMgPSBv bWFwNV9kc3Nfc3VwcG9ydGVkX291dHB1dHMsCisJLnN1cHBvcnRlZF9jb2xvcl9tb2RlcyA9IG9t YXA0X2Rzc19zdXBwb3J0ZWRfY29sb3JfbW9kZXMsCisJLm92ZXJsYXlfY2FwcyA9IG9tYXA0X2Rz c19vdmVybGF5X2NhcHMsCisJLmRzc19wYXJhbXMgPSBvbWFwNV9kc3NfcGFyYW1fcmFuZ2UsCisJ LnN1cHBvcnRlZF9yb3RhdGlvbl90eXBlcyA9IE9NQVBfRFNTX1JPVF9ETUEgfCBPTUFQX0RTU19S T1RfVElMRVIsCisJLmJ1ZmZlcl9zaXplX3VuaXQgPSAxNiwKKwkuYnVyc3Rfc2l6ZV91bml0ID0g MTYsCit9OworCitjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGRzc19vZl9tYXRjaFtdID0gewor CXsgLmNvbXBhdGlibGUgPSAidGksb21hcDItZHNzIiwgLmRhdGEgPSAmb21hcDI0eHhfZHNzX2Zl YXR1cmVzIH0sCisJeyAuY29tcGF0aWJsZSA9ICJ0aSxvbWFwMy1kc3MiLCAuZGF0YSA9ICZvbWFw MzYzMF9kc3NfZmVhdHVyZXMgfSwKKwl7IC5jb21wYXRpYmxlID0gInRpLG9tYXA0LWRzcyIsIC5k YXRhID0gJm9tYXA0NHh4X2Rzc19mZWF0dXJlcyB9LAorCXsgLmNvbXBhdGlibGUgPSAidGksb21h cDUtZHNzIiwgLmRhdGEgPSAmb21hcDU0eHhfZHNzX2ZlYXR1cmVzIH0sCisJeyAuY29tcGF0aWJs ZSA9ICJ0aSxkcmE3LWRzcyIsICAuZGF0YSA9ICZkcmE3eHhfZHNzX2ZlYXR1cmVzIH0sCisJe30s Cit9OworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZHNzX29mX21hdGNoKTsKKworY29uc3Qgc3Ry dWN0IHNvY19kZXZpY2VfYXR0cmlidXRlIGRzc19zb2NfZGV2aWNlc1tdID0geworCXsgLm1hY2hp bmUgPSAiT01BUDM0MzAvMzUzMCIsIC5kYXRhID0gJm9tYXAzNDMwX2Rzc19mZWF0dXJlcyB9LAor CXsgLm1hY2hpbmUgPSAiT01BUDQ0MzAiLAorCSAgLnJldmlzaW9uID0gIkVTMS4wIiwgICAgICAg IC5kYXRhID0gJm9tYXA0NDMwX2VzMV8wX2Rzc19mZWF0dXJlcyB9LAorCXsgLm1hY2hpbmUgPSAi T01BUDQ0MzAiLAorCSAgLnJldmlzaW9uID0gIkVTMi5bMDEyXSIsICAgIC5kYXRhID0gJm9tYXA0 NDMwX2VzMl8wXzFfMl9kc3NfZmVhdHVyZXMgfSwKKwl7IC5tYWNoaW5lID0gIkFNMzU/PyIsICAg ICAgICAuZGF0YSA9ICZhbTM1eHhfZHNzX2ZlYXR1cmVzIH0sCisJeyAuZmFtaWx5ICA9ICJBTTQz eHgiLCAgICAgICAgLmRhdGEgPSAmYW00M3h4X2Rzc19mZWF0dXJlcyB9LAorCXsgLyogc2VudGlu ZWwgKi8gfQorfTsKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIEZ1bmN0aW9ucyByZXR1 cm5pbmcgdmFsdWVzIHJlbGF0ZWQgdG8gYSBEU1MgZmVhdHVyZQorICovCisKIGludCBkc3NfZmVh dF9nZXRfbnVtX21ncnModm9pZCkKIHsKIAlyZXR1cm4gb21hcF9jdXJyZW50X2Rzc19mZWF0dXJl cy0+bnVtX21ncnM7CkBAIC04NTksNDkgKzk4Myw3IEBAIGJvb2wgZHNzX2ZlYXRfcm90YXRpb25f dHlwZV9zdXBwb3J0ZWQoZW51bSBvbWFwX2Rzc19yb3RhdGlvbl90eXBlIHJvdF90eXBlKQogCXJl dHVybiBvbWFwX2N1cnJlbnRfZHNzX2ZlYXR1cmVzLT5zdXBwb3J0ZWRfcm90YXRpb25fdHlwZXMg JiByb3RfdHlwZTsKIH0KIAotdm9pZCBkc3NfZmVhdHVyZXNfaW5pdChlbnVtIG9tYXBkc3NfdmVy c2lvbiB2ZXJzaW9uKQordm9pZCBkc3NfZmVhdHVyZXNfaW5pdChjb25zdCBzdHJ1Y3Qgb21hcF9k c3NfZmVhdHVyZXMgKmZlYXR1cmVzKQogewotCXN3aXRjaCAodmVyc2lvbikgewotCWNhc2UgT01B UERTU19WRVJfT01BUDI0eHg6Ci0JCW9tYXBfY3VycmVudF9kc3NfZmVhdHVyZXMgPSAmb21hcDJf ZHNzX2ZlYXR1cmVzOwotCQlicmVhazsKLQotCWNhc2UgT01BUERTU19WRVJfT01BUDM0eHhfRVMx OgotCWNhc2UgT01BUERTU19WRVJfT01BUDM0eHhfRVMzOgotCQlvbWFwX2N1cnJlbnRfZHNzX2Zl YXR1cmVzID0gJm9tYXAzNDMwX2Rzc19mZWF0dXJlczsKLQkJYnJlYWs7Ci0KLQljYXNlIE9NQVBE U1NfVkVSX09NQVAzNjMwOgotCQlvbWFwX2N1cnJlbnRfZHNzX2ZlYXR1cmVzID0gJm9tYXAzNjMw X2Rzc19mZWF0dXJlczsKLQkJYnJlYWs7Ci0KLQljYXNlIE9NQVBEU1NfVkVSX09NQVA0NDMwX0VT MToKLQkJb21hcF9jdXJyZW50X2Rzc19mZWF0dXJlcyA9ICZvbWFwNDQzMF9lczFfMF9kc3NfZmVh dHVyZXM7Ci0JCWJyZWFrOwotCi0JY2FzZSBPTUFQRFNTX1ZFUl9PTUFQNDQzMF9FUzI6Ci0JCW9t YXBfY3VycmVudF9kc3NfZmVhdHVyZXMgPSAmb21hcDQ0MzBfZXMyXzBfMV8yX2Rzc19mZWF0dXJl czsKLQkJYnJlYWs7Ci0KLQljYXNlIE9NQVBEU1NfVkVSX09NQVA0OgotCQlvbWFwX2N1cnJlbnRf ZHNzX2ZlYXR1cmVzID0gJm9tYXA0X2Rzc19mZWF0dXJlczsKLQkJYnJlYWs7Ci0KLQljYXNlIE9N QVBEU1NfVkVSX09NQVA1OgotCWNhc2UgT01BUERTU19WRVJfRFJBN3h4OgotCQlvbWFwX2N1cnJl bnRfZHNzX2ZlYXR1cmVzID0gJm9tYXA1X2Rzc19mZWF0dXJlczsKLQkJYnJlYWs7Ci0KLQljYXNl IE9NQVBEU1NfVkVSX0FNMzV4eDoKLQkJb21hcF9jdXJyZW50X2Rzc19mZWF0dXJlcyA9ICZhbTM1 eHhfZHNzX2ZlYXR1cmVzOwotCQlicmVhazsKLQotCWNhc2UgT01BUERTU19WRVJfQU00M3h4Ogot CQlvbWFwX2N1cnJlbnRfZHNzX2ZlYXR1cmVzID0gJmFtNDN4eF9kc3NfZmVhdHVyZXM7Ci0JCWJy ZWFrOwotCi0JZGVmYXVsdDoKLQkJRFNTV0FSTigiVW5zdXBwb3J0ZWQgT01BUCB2ZXJzaW9uIik7 Ci0JCWJyZWFrOwotCX0KKwlvbWFwX2N1cnJlbnRfZHNzX2ZlYXR1cmVzID0gZmVhdHVyZXM7CiB9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvZHNzX2ZlYXR1cmVzLmgg Yi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvZHNzX2ZlYXR1cmVzLmgKaW5kZXggYmI0Yjdm MGU2NDJiLi5kZGU4ZjMyZTY3N2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJt L2Rzcy9kc3NfZmVhdHVyZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvZHNz X2ZlYXR1cmVzLmgKQEAgLTIwLDYgKzIwLDEzIEBACiAjaWZuZGVmIF9fT01BUDJfRFNTX0ZFQVRV UkVTX0gKICNkZWZpbmUgX19PTUFQMl9EU1NfRkVBVFVSRVNfSAogCisjaW5jbHVkZSA8bGludXgv bW9kX2RldmljZXRhYmxlLmg+CisjaW5jbHVkZSA8bGludXgvc3lzX3NvYy5oPgorCitzdHJ1Y3Qg ZHNzX29wczsKK3N0cnVjdCBkc3NfcGFyYW1fcmFuZ2U7CitzdHJ1Y3QgZHNzX3JlZ19maWVsZDsK KwogI2RlZmluZSBNQVhfRFNTX01BTkFHRVJTCTQKICNkZWZpbmUgTUFYX0RTU19PVkVSTEFZUwk0 CiAjZGVmaW5lIE1BWF9EU1NfTENEX01BTkFHRVJTCTMKQEAgLTg1LDYgKzkyLDM1IEBAIGVudW0g ZHNzX3JhbmdlX3BhcmFtIHsKIAlGRUFUX1BBUkFNX0xJTkVXSURUSCwKIH07CiAKK3N0cnVjdCBv bWFwX2Rzc19mZWF0dXJlcyB7CisJZW51bSBkc3NfZGV2aWNlX3R5cGUgdHlwZTsKKwl1OCBmY2tf ZGl2X21heDsKKwl1OCBkc3NfZmNrX211bHRpcGxpZXI7CisJY29uc3QgY2hhciAqcGFyZW50X2Ns a19uYW1lOworCWNvbnN0IGVudW0gb21hcF9kaXNwbGF5X3R5cGUgKnBvcnRzOworCWludCBudW1f cG9ydHM7CisJY29uc3Qgc3RydWN0IGRzc19vcHMgKm9wczsKKworCWNvbnN0IHN0cnVjdCBkc3Nf cmVnX2ZpZWxkICpyZWdfZmllbGRzOworCWludCBudW1fcmVnX2ZpZWxkczsKKworCWNvbnN0IGVu dW0gZHNzX2ZlYXRfaWQgKmZlYXR1cmVzOworCWludCBudW1fZmVhdHVyZXM7CisKKwlpbnQgbnVt X21ncnM7CisJaW50IG51bV9vdmxzOworCWNvbnN0IGVudW0gb21hcF9kaXNwbGF5X3R5cGUgKnN1 cHBvcnRlZF9kaXNwbGF5czsKKwljb25zdCBlbnVtIG9tYXBfZHNzX291dHB1dF9pZCAqc3VwcG9y dGVkX291dHB1dHM7CisJY29uc3QgZW51bSBvbWFwX2NvbG9yX21vZGUgKnN1cHBvcnRlZF9jb2xv cl9tb2RlczsKKwljb25zdCBlbnVtIG9tYXBfb3ZlcmxheV9jYXBzICpvdmVybGF5X2NhcHM7CisJ Y29uc3Qgc3RydWN0IGRzc19wYXJhbV9yYW5nZSAqZHNzX3BhcmFtczsKKworCWVudW0gb21hcF9k c3Nfcm90YXRpb25fdHlwZSBzdXBwb3J0ZWRfcm90YXRpb25fdHlwZXM7CisKKwl1MzIgYnVmZmVy X3NpemVfdW5pdDsKKwl1MzIgYnVyc3Rfc2l6ZV91bml0OworfTsKKwogLyogRFNTIEZlYXR1cmUg RnVuY3Rpb25zICovCiB1bnNpZ25lZCBsb25nIGRzc19mZWF0X2dldF9wYXJhbV9taW4oZW51bSBk c3NfcmFuZ2VfcGFyYW0gcGFyYW0pOwogdW5zaWduZWQgbG9uZyBkc3NfZmVhdF9nZXRfcGFyYW1f bWF4KGVudW0gZHNzX3JhbmdlX3BhcmFtIHBhcmFtKTsKQEAgLTk5LDkgKzEzNSwxMiBAQCBib29s IGRzc19mZWF0X3JvdGF0aW9uX3R5cGVfc3VwcG9ydGVkKGVudW0gb21hcF9kc3Nfcm90YXRpb25f dHlwZSByb3RfdHlwZSk7CiAKIGJvb2wgZHNzX2hhc19mZWF0dXJlKGVudW0gZHNzX2ZlYXRfaWQg aWQpOwogdm9pZCBkc3NfZmVhdF9nZXRfcmVnX2ZpZWxkKGVudW0gZHNzX2ZlYXRfcmVnX2ZpZWxk IGlkLCB1OCAqc3RhcnQsIHU4ICplbmQpOwotdm9pZCBkc3NfZmVhdHVyZXNfaW5pdChlbnVtIG9t YXBkc3NfdmVyc2lvbiB2ZXJzaW9uKTsKK3ZvaWQgZHNzX2ZlYXR1cmVzX2luaXQoY29uc3Qgc3Ry dWN0IG9tYXBfZHNzX2ZlYXR1cmVzICpmZWF0dXJlcyk7CiAKIGVudW0gb21hcF9kaXNwbGF5X3R5 cGUgZHNzX2ZlYXRfZ2V0X3N1cHBvcnRlZF9kaXNwbGF5cyhlbnVtIG9tYXBfY2hhbm5lbCBjaGFu bmVsKTsKIGVudW0gb21hcF9kc3Nfb3V0cHV0X2lkIGRzc19mZWF0X2dldF9zdXBwb3J0ZWRfb3V0 cHV0cyhlbnVtIG9tYXBfY2hhbm5lbCBjaGFubmVsKTsKIAorZXh0ZXJuIGNvbnN0IHN0cnVjdCBv Zl9kZXZpY2VfaWQgZHNzX29mX21hdGNoW107CitleHRlcm4gY29uc3Qgc3RydWN0IHNvY19kZXZp Y2VfYXR0cmlidXRlIGRzc19zb2NfZGV2aWNlc1tdOworCiAjZW5kaWYKLS0gClJlZ2FyZHMsCgpM YXVyZW50IFBpbmNoYXJ0CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK