Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp6521569ybl; Wed, 15 Jan 2020 06:06:40 -0800 (PST) X-Google-Smtp-Source: APXvYqw6YkGHr8VO6ucYdU4WgxRS0zJqJAweQ5PMQn4W7ucPgGNAifZ5sL7ZYp2vRnMDbZix7CPc X-Received: by 2002:aca:36c1:: with SMTP id d184mr21291768oia.70.1579097200254; Wed, 15 Jan 2020 06:06:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579097200; cv=none; d=google.com; s=arc-20160816; b=kuPVQki2JMVA4sRRqGqV3EqG8fHYt7vjTZZ6bhPZ86YbzzGErRqIKjXjrlwd27mjux 4KORPXkkYaXNUFEAwGMWZOEpp8yYTksfvO++NmZnzBCIL6/QFRaJMep5L/ofpl26HVNW Ru2PC3mhZxHxiuyQBsQ8nBixDwiuq3oy9gF9WH1PoNhW7D8HHN9azHJwQ5LH4LbvrTRA PPdhOR1o+SBZlRKqUpuuBSPOGXkWoMIWtlo6eP9IOp6jGWPdjsuFlgUU3CWZf7IqTWPW Ps3INHDGErAKRot1VDy9JOHieZxckNLhfbkuRZiFjrLGurtJbuZ0e+Lpgvcvtbq7/5N9 RFJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=L9+U+Oq75iPogjCd7JRwn7veHL8Rh+KJNtAjsYXDB8I=; b=Sk6mBdDy0Hs7LD0mCl/xMaFcqaJ/v6c+h1nVQPg/+35qK7+y6m19nLTwLka4po3fv2 AXSrJM0S/19CLG6CFnH3zV/PMiMIP9+GTSMrRXtfeddxVTOQeop9QYeunp6h+MYV45jg EuI0mS1sZv6FwxE1rfq5dcNNrxRAXxXAj3OTutVcoj6rAWr9FO+50e1HDkRqa9KcCB6t Ddb8xeCoylxc290Bfir/8TnE4uDZlW3UKjdHBhZt7jmbTBNZMbpqHUOrdJorRpKPY9xC BjZoGCXjMbRCW7Wirf/Ilvhbatr/Teu/A54ICs8pCGSj5G3ZzJosLDP56MwQykG1Yfj3 QqRw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=dH0+fn7D; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 25si9177258oix.178.2020.01.15.06.06.25; Wed, 15 Jan 2020 06:06:40 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=dH0+fn7D; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729153AbgAOODn (ORCPT + 99 others); Wed, 15 Jan 2020 09:03:43 -0500 Received: from mailgw02.mediatek.com ([1.203.163.81]:17085 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1729603AbgAOODm (ORCPT ); Wed, 15 Jan 2020 09:03:42 -0500 X-UUID: d22f567e67b541a9b46df1af894cc089-20200115 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=L9+U+Oq75iPogjCd7JRwn7veHL8Rh+KJNtAjsYXDB8I=; b=dH0+fn7DeMM+/2kGVersA8FxQqG93XyjBA12Sk6Rko3bQExTak3rADlFiig+K88kvTOki+L5RGek8ETcLf5hMBVi1nn8UyPto3R1j8erR6ZZyrb+zo2cR24dtQkO51GoBH0SrfTzvYmwlAIzA6smD88yvUVxeesnvP8OEFOKn5Q=; X-UUID: d22f567e67b541a9b46df1af894cc089-20200115 Received: from mtkcas35.mediatek.inc [(172.27.4.253)] by mailgw02.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLS) with ESMTP id 2025952255; Wed, 15 Jan 2020 22:00:57 +0800 Received: from MTKCAS32.mediatek.inc (172.27.4.184) by MTKMBS33N2.mediatek.inc (172.27.4.76) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Wed, 15 Jan 2020 22:01:23 +0800 Received: from mszsdclx1018.gcn.mediatek.inc (10.16.6.18) by MTKCAS32.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Wed, 15 Jan 2020 22:01:06 +0800 From: Jitao Shi To: Thierry Reding , Sam Ravnborg , David Airlie , Daniel Vetter , Matthias Brugger , , CC: , , , , , , , , Jitao Shi Subject: [PATCH v8 2/8] drm/panel: support for BOE tv101wum-nl6 wuxga dsi video mode panel Date: Wed, 15 Jan 2020 21:59:52 +0800 Message-ID: <20200115135958.126303-3-jitao.shi@mediatek.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20200115135958.126303-1-jitao.shi@mediatek.com> References: <20200115135958.126303-1-jitao.shi@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: A228B83BBBA7BBF9447748D5B071DB4E4B2040ABCFBEC1B1955C2FAFA31F83912000:8 X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org QWRkIGRyaXZlciBmb3IgQk9FIHR2MTAxd3VtLW5sNiBwYW5lbCBpcyBhIDEwLjEiIDEyMDB4MTky MCBwYW5lbC4NCg0KU2lnbmVkLW9mZi1ieTogSml0YW8gU2hpIDxqaXRhby5zaGlAbWVkaWF0ZWsu Y29tPg0KLS0tDQogZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcgICAgICAgICAgICAgICAg IHwgICA5ICsNCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUgICAgICAgICAgICAgICAg fCAgIDEgKw0KIC4uLi9ncHUvZHJtL3BhbmVsL3BhbmVsLWJvZS10djEwMXd1bS1ubDYuYyAgICB8 IDY5MyArKysrKysrKysrKysrKysrKysNCiAzIGZpbGVzIGNoYW5nZWQsIDcwMyBpbnNlcnRpb25z KCspDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1ib2Ut dHYxMDF3dW0tbmw2LmMNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29u ZmlnIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcNCmluZGV4IGFlNDRhYzJlYzEwNi4u Y2E3MjdjMjMzYTlhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcN CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnDQpAQCAtMjksNiArMjksMTUgQEAg Y29uZmlnIERSTV9QQU5FTF9CT0VfSElNQVg4Mjc5RA0KIAkgIDI0IGJpdCBSR0IgcGVyIHBpeGVs LiBJdCBwcm92aWRlcyBhIE1JUEkgRFNJIGludGVyZmFjZSB0bw0KIAkgIHRoZSBob3N0IGFuZCBo YXMgYSBidWlsdC1pbiBMRUQgYmFja2xpZ2h0Lg0KIA0KK2NvbmZpZyBEUk1fUEFORUxfQk9FX1RW MTAxV1VNX05MNg0KKwl0cmlzdGF0ZSAiQk9FIFRWMTAxV1VNIDEyMDB4MTkyMCBwYW5lbCINCisJ ZGVwZW5kcyBvbiBPRg0KKwlkZXBlbmRzIG9uIERSTV9NSVBJX0RTSQ0KKwlkZXBlbmRzIG9uIEJB Q0tMSUdIVF9DTEFTU19ERVZJQ0UNCisJaGVscA0KKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQg dG8gc3VwcG9ydCBmb3IgQk9FIFRWMTAxV1VNIFdVWEdBIFBBTkVMDQorCSAgRFNJIFZpZGVvIE1v ZGUgcGFuZWwNCisNCiBjb25maWcgRFJNX1BBTkVMX0xWRFMNCiAJdHJpc3RhdGUgIkdlbmVyaWMg TFZEUyBwYW5lbCBkcml2ZXIiDQogCWRlcGVuZHMgb24gT0YNCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUN CmluZGV4IDdjNGQzYzU4MWZkNC4uYTY1OWNlNDAzZDBlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL01ha2VmaWxlDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZp bGUNCkBAIC0xLDYgKzEsNyBAQA0KICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAN CiBvYmotJChDT05GSUdfRFJNX1BBTkVMX0FSTV9WRVJTQVRJTEUpICs9IHBhbmVsLWFybS12ZXJz YXRpbGUubw0KIG9iai0kKENPTkZJR19EUk1fUEFORUxfQk9FX0hJTUFYODI3OUQpICs9IHBhbmVs LWJvZS1oaW1heDgyNzlkLm8NCitvYmotJChDT05GSUdfRFJNX1BBTkVMX0JPRV9UVjEwMVdVTV9O TDYpICs9IHBhbmVsLWJvZS10djEwMXd1bS1ubDYubw0KIG9iai0kKENPTkZJR19EUk1fUEFORUxf TFZEUykgKz0gcGFuZWwtbHZkcy5vDQogb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9TSU1QTEUpICs9 IHBhbmVsLXNpbXBsZS5vDQogb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9GRUlZQU5HX0ZZMDcwMjRE STI2QTMwRCkgKz0gcGFuZWwtZmVpeWFuZy1meTA3MDI0ZGkyNmEzMGQubw0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1ib2UtdHYxMDF3dW0tbmw2LmMgYi9kcml2ZXJz L2dwdS9kcm0vcGFuZWwvcGFuZWwtYm9lLXR2MTAxd3VtLW5sNi5jDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi43OTMzNDdmNTFmNGINCi0tLSAvZGV2L251bGwNCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1ib2UtdHYxMDF3dW0tbmw2LmMNCkBAIC0w LDAgKzEsNjkzIEBADQorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCisvKg0K KyAqIENvcHlyaWdodCAoYykgMjAxOCBNZWRpYVRlayBJbmMuDQorICogQXV0aG9yOiBKaXRhbyBT aGkgPGppdGFvLnNoaUBtZWRpYXRlay5jb20+DQorICovDQorDQorI2luY2x1ZGUgPGxpbnV4L2Rl bGF5Lmg+DQorI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4NCisjaW5jbHVkZSA8bGlu dXgvbW9kdWxlLmg+DQorI2luY2x1ZGUgPGxpbnV4L29mLmg+DQorI2luY2x1ZGUgPGxpbnV4L29m X2RldmljZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4NCisNCisj aW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+DQorI2luY2x1ZGUgPGRybS9kcm1fbWlwaV9kc2kuaD4N CisjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPg0KKw0KKyNpbmNsdWRlIDx2aWRlby9taXBpX2Rp c3BsYXkuaD4NCisNCitzdHJ1Y3QgcGFuZWxfZGVzYyB7DQorCWNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlczsNCisJdW5zaWduZWQgaW50IGJwYzsNCisNCisJLyoqDQorCSAqIEB3 aWR0aF9tbTogd2lkdGggb2YgdGhlIHBhbmVsJ3MgYWN0aXZlIGRpc3BsYXkgYXJlYQ0KKwkgKiBA aGVpZ2h0X21tOiBoZWlnaHQgb2YgdGhlIHBhbmVsJ3MgYWN0aXZlIGRpc3BsYXkgYXJlYQ0KKwkg Ki8NCisJc3RydWN0IHsNCisJCXVuc2lnbmVkIGludCB3aWR0aF9tbTsNCisJCXVuc2lnbmVkIGlu dCBoZWlnaHRfbW07DQorCX0gc2l6ZTsNCisNCisJdW5zaWduZWQgbG9uZyBtb2RlX2ZsYWdzOw0K KwllbnVtIG1pcGlfZHNpX3BpeGVsX2Zvcm1hdCBmb3JtYXQ7DQorCWNvbnN0IHN0cnVjdCBwYW5l bF9pbml0X2NtZCAqaW5pdF9jbWRzOw0KKwl1bnNpZ25lZCBpbnQgbGFuZXM7DQorfTsNCisNCitz dHJ1Y3QgYm9lX3BhbmVsIHsNCisJc3RydWN0IGRybV9wYW5lbCBiYXNlOw0KKwlzdHJ1Y3QgbWlw aV9kc2lfZGV2aWNlICpkc2k7DQorDQorCWNvbnN0IHN0cnVjdCBwYW5lbF9kZXNjICpkZXNjOw0K Kw0KKwlzdHJ1Y3QgcmVndWxhdG9yICpwcDE4MDA7DQorCXN0cnVjdCByZWd1bGF0b3IgKmF2ZWU7 DQorCXN0cnVjdCByZWd1bGF0b3IgKmF2ZGQ7DQorCXN0cnVjdCBncGlvX2Rlc2MgKmVuYWJsZV9n cGlvOw0KKw0KKwlib29sIHByZXBhcmVkOw0KK307DQorDQorZW51bSBkc2lfY21kX3R5cGUgew0K KwlJTklUX0RDU19DTUQsDQorCURFTEFZX0NNRCwNCit9Ow0KKw0KK3N0cnVjdCBwYW5lbF9pbml0 X2NtZCB7DQorCWVudW0gZHNpX2NtZF90eXBlIHR5cGU7DQorCXNpemVfdCBsZW47DQorCWNvbnN0 IGNoYXIgKmRhdGE7DQorfTsNCisNCisjZGVmaW5lIF9JTklUX0RDU19DTUQoLi4uKSB7IFwNCisJ LnR5cGUgPSBJTklUX0RDU19DTUQsIFwNCisJLmxlbiA9IHNpemVvZigoY2hhcltdKXtfX1ZBX0FS R1NfX30pLCBcDQorCS5kYXRhID0gKGNoYXJbXSl7X19WQV9BUkdTX199IH0NCisNCisjZGVmaW5l IF9JTklUX0RFTEFZX0NNRCguLi4pIHsgXA0KKwkudHlwZSA9IERFTEFZX0NNRCxcDQorCS5sZW4g PSBzaXplb2YoKGNoYXJbXSl7X19WQV9BUkdTX199KSwgXA0KKwkuZGF0YSA9IChjaGFyW10pe19f VkFfQVJHU19ffSB9DQorDQorc3RhdGljIGNvbnN0IHN0cnVjdCBwYW5lbF9pbml0X2NtZCBib2Vf aW5pdF9jbWRbXSA9IHsNCisJX0lOSVRfREVMQVlfQ01EKDI0KSwNCisJX0lOSVRfRENTX0NNRCgw eEIwLCAweDA1KSwNCisJX0lOSVRfRENTX0NNRCgweEIxLCAweEU1KSwNCisJX0lOSVRfRENTX0NN RCgweEIzLCAweDUyKSwNCisJX0lOSVRfRENTX0NNRCgweEIwLCAweDAwKSwNCisJX0lOSVRfRENT X0NNRCgweEIzLCAweDg4KSwNCisJX0lOSVRfRENTX0NNRCgweEIwLCAweDA0KSwNCisJX0lOSVRf RENTX0NNRCgweEI4LCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweEIwLCAweDAwKSwNCisJX0lO SVRfRENTX0NNRCgweEI2LCAweDAzKSwNCisJX0lOSVRfRENTX0NNRCgweEJBLCAweDhCKSwNCisJ X0lOSVRfRENTX0NNRCgweEJGLCAweDFBKSwNCisJX0lOSVRfRENTX0NNRCgweEMwLCAweDBGKSwN CisJX0lOSVRfRENTX0NNRCgweEMyLCAweDBDKSwNCisJX0lOSVRfRENTX0NNRCgweEMzLCAweDAy KSwNCisJX0lOSVRfRENTX0NNRCgweEM0LCAweDBDKSwNCisJX0lOSVRfRENTX0NNRCgweEM1LCAw eDAyKSwNCisJX0lOSVRfRENTX0NNRCgweEIwLCAweDAxKSwNCisJX0lOSVRfRENTX0NNRCgweEUw LCAweDI2KSwNCisJX0lOSVRfRENTX0NNRCgweEUxLCAweDI2KSwNCisJX0lOSVRfRENTX0NNRCgw eERDLCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweERELCAweDAwKSwNCisJX0lOSVRfRENTX0NN RCgweENDLCAweDI2KSwNCisJX0lOSVRfRENTX0NNRCgweENELCAweDI2KSwNCisJX0lOSVRfRENT X0NNRCgweEM4LCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweEM5LCAweDAwKSwNCisJX0lOSVRf RENTX0NNRCgweEQyLCAweDAzKSwNCisJX0lOSVRfRENTX0NNRCgweEQzLCAweDAzKSwNCisJX0lO SVRfRENTX0NNRCgweEU2LCAweDA0KSwNCisJX0lOSVRfRENTX0NNRCgweEU3LCAweDA0KSwNCisJ X0lOSVRfRENTX0NNRCgweEM0LCAweDA5KSwNCisJX0lOSVRfRENTX0NNRCgweEM1LCAweDA5KSwN CisJX0lOSVRfRENTX0NNRCgweEQ4LCAweDBBKSwNCisJX0lOSVRfRENTX0NNRCgweEQ5LCAweDBB KSwNCisJX0lOSVRfRENTX0NNRCgweEMyLCAweDBCKSwNCisJX0lOSVRfRENTX0NNRCgweEMzLCAw eDBCKSwNCisJX0lOSVRfRENTX0NNRCgweEQ2LCAweDBDKSwNCisJX0lOSVRfRENTX0NNRCgweEQ3 LCAweDBDKSwNCisJX0lOSVRfRENTX0NNRCgweEMwLCAweDA1KSwNCisJX0lOSVRfRENTX0NNRCgw eEMxLCAweDA1KSwNCisJX0lOSVRfRENTX0NNRCgweEQ0LCAweDA2KSwNCisJX0lOSVRfRENTX0NN RCgweEQ1LCAweDA2KSwNCisJX0lOSVRfRENTX0NNRCgweENBLCAweDA3KSwNCisJX0lOSVRfRENT X0NNRCgweENCLCAweDA3KSwNCisJX0lOSVRfRENTX0NNRCgweERFLCAweDA4KSwNCisJX0lOSVRf RENTX0NNRCgweERGLCAweDA4KSwNCisJX0lOSVRfRENTX0NNRCgweEIwLCAweDAyKSwNCisJX0lO SVRfRENTX0NNRCgweEMwLCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweEMxLCAweDBEKSwNCisJ X0lOSVRfRENTX0NNRCgweEMyLCAweDE3KSwNCisJX0lOSVRfRENTX0NNRCgweEMzLCAweDI2KSwN CisJX0lOSVRfRENTX0NNRCgweEM0LCAweDMxKSwNCisJX0lOSVRfRENTX0NNRCgweEM1LCAweDFD KSwNCisJX0lOSVRfRENTX0NNRCgweEM2LCAweDJDKSwNCisJX0lOSVRfRENTX0NNRCgweEM3LCAw eDMzKSwNCisJX0lOSVRfRENTX0NNRCgweEM4LCAweDMxKSwNCisJX0lOSVRfRENTX0NNRCgweEM5 LCAweDM3KSwNCisJX0lOSVRfRENTX0NNRCgweENBLCAweDM3KSwNCisJX0lOSVRfRENTX0NNRCgw eENCLCAweDM3KSwNCisJX0lOSVRfRENTX0NNRCgweENDLCAweDM5KSwNCisJX0lOSVRfRENTX0NN RCgweENELCAweDJFKSwNCisJX0lOSVRfRENTX0NNRCgweENFLCAweDJGKSwNCisJX0lOSVRfRENT X0NNRCgweENGLCAweDJGKSwNCisJX0lOSVRfRENTX0NNRCgweEQwLCAweDA3KSwNCisJX0lOSVRf RENTX0NNRCgweEQyLCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweEQzLCAweDBEKSwNCisJX0lO SVRfRENTX0NNRCgweEQ0LCAweDE3KSwNCisJX0lOSVRfRENTX0NNRCgweEQ1LCAweDI2KSwNCisJ X0lOSVRfRENTX0NNRCgweEQ2LCAweDMxKSwNCisJX0lOSVRfRENTX0NNRCgweEQ3LCAweDNGKSwN CisJX0lOSVRfRENTX0NNRCgweEQ4LCAweDNGKSwNCisJX0lOSVRfRENTX0NNRCgweEQ5LCAweDNG KSwNCisJX0lOSVRfRENTX0NNRCgweERBLCAweDNGKSwNCisJX0lOSVRfRENTX0NNRCgweERCLCAw eDM3KSwNCisJX0lOSVRfRENTX0NNRCgweERDLCAweDM3KSwNCisJX0lOSVRfRENTX0NNRCgweERE LCAweDM3KSwNCisJX0lOSVRfRENTX0NNRCgweERFLCAweDM5KSwNCisJX0lOSVRfRENTX0NNRCgw eERGLCAweDJFKSwNCisJX0lOSVRfRENTX0NNRCgweEUwLCAweDJGKSwNCisJX0lOSVRfRENTX0NN RCgweEUxLCAweDJGKSwNCisJX0lOSVRfRENTX0NNRCgweEUyLCAweDA3KSwNCisJX0lOSVRfRENT X0NNRCgweEIwLCAweDAzKSwNCisJX0lOSVRfRENTX0NNRCgweEM4LCAweDBCKSwNCisJX0lOSVRf RENTX0NNRCgweEM5LCAweDA3KSwNCisJX0lOSVRfRENTX0NNRCgweEMzLCAweDAwKSwNCisJX0lO SVRfRENTX0NNRCgweEU3LCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweEM1LCAweDJBKSwNCisJ X0lOSVRfRENTX0NNRCgweERFLCAweDJBKSwNCisJX0lOSVRfRENTX0NNRCgweENBLCAweDQzKSwN CisJX0lOSVRfRENTX0NNRCgweEM5LCAweDA3KSwNCisJX0lOSVRfRENTX0NNRCgweEU0LCAweEMw KSwNCisJX0lOSVRfRENTX0NNRCgweEU1LCAweDBEKSwNCisJX0lOSVRfRENTX0NNRCgweENCLCAw eDAwKSwNCisJX0lOSVRfRENTX0NNRCgweEIwLCAweDA2KSwNCisJX0lOSVRfRENTX0NNRCgweEI4 LCAweEE1KSwNCisJX0lOSVRfRENTX0NNRCgweEMwLCAweEE1KSwNCisJX0lOSVRfRENTX0NNRCgw eEM3LCAweDBGKSwNCisJX0lOSVRfRENTX0NNRCgweEQ1LCAweDMyKSwNCisJX0lOSVRfRENTX0NN RCgweEI4LCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweEMwLCAweDAwKSwNCisJX0lOSVRfRENT X0NNRCgweEJDLCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweEIwLCAweDA3KSwNCisJX0lOSVRf RENTX0NNRCgweEIxLCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweEIyLCAweDAyKSwNCisJX0lO SVRfRENTX0NNRCgweEIzLCAweDBGKSwNCisJX0lOSVRfRENTX0NNRCgweEI0LCAweDI1KSwNCisJ X0lOSVRfRENTX0NNRCgweEI1LCAweDM5KSwNCisJX0lOSVRfRENTX0NNRCgweEI2LCAweDRFKSwN CisJX0lOSVRfRENTX0NNRCgweEI3LCAweDcyKSwNCisJX0lOSVRfRENTX0NNRCgweEI4LCAweDk3 KSwNCisJX0lOSVRfRENTX0NNRCgweEI5LCAweERDKSwNCisJX0lOSVRfRENTX0NNRCgweEJBLCAw eDIyKSwNCisJX0lOSVRfRENTX0NNRCgweEJCLCAweEE0KSwNCisJX0lOSVRfRENTX0NNRCgweEJD LCAweDJCKSwNCisJX0lOSVRfRENTX0NNRCgweEJELCAweDJGKSwNCisJX0lOSVRfRENTX0NNRCgw eEJFLCAweEE5KSwNCisJX0lOSVRfRENTX0NNRCgweEJGLCAweDI1KSwNCisJX0lOSVRfRENTX0NN RCgweEMwLCAweDYxKSwNCisJX0lOSVRfRENTX0NNRCgweEMxLCAweDk3KSwNCisJX0lOSVRfRENT X0NNRCgweEMyLCAweEIyKSwNCisJX0lOSVRfRENTX0NNRCgweEMzLCAweENEKSwNCisJX0lOSVRf RENTX0NNRCgweEM0LCAweEQ5KSwNCisJX0lOSVRfRENTX0NNRCgweEM1LCAweEU3KSwNCisJX0lO SVRfRENTX0NNRCgweEM2LCAweEY0KSwNCisJX0lOSVRfRENTX0NNRCgweEM3LCAweEZBKSwNCisJ X0lOSVRfRENTX0NNRCgweEM4LCAweEZDKSwNCisJX0lOSVRfRENTX0NNRCgweEM5LCAweDAwKSwN CisJX0lOSVRfRENTX0NNRCgweENBLCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweENCLCAweDE2 KSwNCisJX0lOSVRfRENTX0NNRCgweENDLCAweEFGKSwNCisJX0lOSVRfRENTX0NNRCgweENELCAw eEZGKSwNCisJX0lOSVRfRENTX0NNRCgweENFLCAweEZGKSwNCisJX0lOSVRfRENTX0NNRCgweEIw LCAweDA4KSwNCisJX0lOSVRfRENTX0NNRCgweEIxLCAweDA0KSwNCisJX0lOSVRfRENTX0NNRCgw eEIyLCAweDA1KSwNCisJX0lOSVRfRENTX0NNRCgweEIzLCAweDExKSwNCisJX0lOSVRfRENTX0NN RCgweEI0LCAweDI0KSwNCisJX0lOSVRfRENTX0NNRCgweEI1LCAweDM5KSwNCisJX0lOSVRfRENT X0NNRCgweEI2LCAweDRGKSwNCisJX0lOSVRfRENTX0NNRCgweEI3LCAweDcyKSwNCisJX0lOSVRf RENTX0NNRCgweEI4LCAweDk4KSwNCisJX0lOSVRfRENTX0NNRCgweEI5LCAweERDKSwNCisJX0lO SVRfRENTX0NNRCgweEJBLCAweDIzKSwNCisJX0lOSVRfRENTX0NNRCgweEJCLCAweEE2KSwNCisJ X0lOSVRfRENTX0NNRCgweEJDLCAweDJDKSwNCisJX0lOSVRfRENTX0NNRCgweEJELCAweDMwKSwN CisJX0lOSVRfRENTX0NNRCgweEJFLCAweEFBKSwNCisJX0lOSVRfRENTX0NNRCgweEJGLCAweDI2 KSwNCisJX0lOSVRfRENTX0NNRCgweEMwLCAweDYyKSwNCisJX0lOSVRfRENTX0NNRCgweEMxLCAw eDlCKSwNCisJX0lOSVRfRENTX0NNRCgweEMyLCAweEI1KSwNCisJX0lOSVRfRENTX0NNRCgweEMz LCAweENGKSwNCisJX0lOSVRfRENTX0NNRCgweEM0LCAweERCKSwNCisJX0lOSVRfRENTX0NNRCgw eEM1LCAweEU4KSwNCisJX0lOSVRfRENTX0NNRCgweEM2LCAweEY1KSwNCisJX0lOSVRfRENTX0NN RCgweEM3LCAweEZBKSwNCisJX0lOSVRfRENTX0NNRCgweEM4LCAweEZDKSwNCisJX0lOSVRfRENT X0NNRCgweEM5LCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweENBLCAweDAwKSwNCisJX0lOSVRf RENTX0NNRCgweENCLCAweDE2KSwNCisJX0lOSVRfRENTX0NNRCgweENDLCAweEFGKSwNCisJX0lO SVRfRENTX0NNRCgweENELCAweEZGKSwNCisJX0lOSVRfRENTX0NNRCgweENFLCAweEZGKSwNCisJ X0lOSVRfRENTX0NNRCgweEIwLCAweDA5KSwNCisJX0lOSVRfRENTX0NNRCgweEIxLCAweDA0KSwN CisJX0lOSVRfRENTX0NNRCgweEIyLCAweDAyKSwNCisJX0lOSVRfRENTX0NNRCgweEIzLCAweDE2 KSwNCisJX0lOSVRfRENTX0NNRCgweEI0LCAweDI0KSwNCisJX0lOSVRfRENTX0NNRCgweEI1LCAw eDNCKSwNCisJX0lOSVRfRENTX0NNRCgweEI2LCAweDRGKSwNCisJX0lOSVRfRENTX0NNRCgweEI3 LCAweDczKSwNCisJX0lOSVRfRENTX0NNRCgweEI4LCAweDk5KSwNCisJX0lOSVRfRENTX0NNRCgw eEI5LCAweEUwKSwNCisJX0lOSVRfRENTX0NNRCgweEJBLCAweDI2KSwNCisJX0lOSVRfRENTX0NN RCgweEJCLCAweEFEKSwNCisJX0lOSVRfRENTX0NNRCgweEJDLCAweDM2KSwNCisJX0lOSVRfRENT X0NNRCgweEJELCAweDNBKSwNCisJX0lOSVRfRENTX0NNRCgweEJFLCAweEFFKSwNCisJX0lOSVRf RENTX0NNRCgweEJGLCAweDJBKSwNCisJX0lOSVRfRENTX0NNRCgweEMwLCAweDY2KSwNCisJX0lO SVRfRENTX0NNRCgweEMxLCAweDlFKSwNCisJX0lOSVRfRENTX0NNRCgweEMyLCAweEI4KSwNCisJ X0lOSVRfRENTX0NNRCgweEMzLCAweEQxKSwNCisJX0lOSVRfRENTX0NNRCgweEM0LCAweEREKSwN CisJX0lOSVRfRENTX0NNRCgweEM1LCAweEU5KSwNCisJX0lOSVRfRENTX0NNRCgweEM2LCAweEY2 KSwNCisJX0lOSVRfRENTX0NNRCgweEM3LCAweEZBKSwNCisJX0lOSVRfRENTX0NNRCgweEM4LCAw eEZDKSwNCisJX0lOSVRfRENTX0NNRCgweEM5LCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweENB LCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweENCLCAweDE2KSwNCisJX0lOSVRfRENTX0NNRCgw eENDLCAweEFGKSwNCisJX0lOSVRfRENTX0NNRCgweENELCAweEZGKSwNCisJX0lOSVRfRENTX0NN RCgweENFLCAweEZGKSwNCisJX0lOSVRfRENTX0NNRCgweEIwLCAweDBBKSwNCisJX0lOSVRfRENT X0NNRCgweEIxLCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweEIyLCAweDAyKSwNCisJX0lOSVRf RENTX0NNRCgweEIzLCAweDBGKSwNCisJX0lOSVRfRENTX0NNRCgweEI0LCAweDI1KSwNCisJX0lO SVRfRENTX0NNRCgweEI1LCAweDM5KSwNCisJX0lOSVRfRENTX0NNRCgweEI2LCAweDRFKSwNCisJ X0lOSVRfRENTX0NNRCgweEI3LCAweDcyKSwNCisJX0lOSVRfRENTX0NNRCgweEI4LCAweDk3KSwN CisJX0lOSVRfRENTX0NNRCgweEI5LCAweERDKSwNCisJX0lOSVRfRENTX0NNRCgweEJBLCAweDIy KSwNCisJX0lOSVRfRENTX0NNRCgweEJCLCAweEE0KSwNCisJX0lOSVRfRENTX0NNRCgweEJDLCAw eDJCKSwNCisJX0lOSVRfRENTX0NNRCgweEJELCAweDJGKSwNCisJX0lOSVRfRENTX0NNRCgweEJF LCAweEE5KSwNCisJX0lOSVRfRENTX0NNRCgweEJGLCAweDI1KSwNCisJX0lOSVRfRENTX0NNRCgw eEMwLCAweDYxKSwNCisJX0lOSVRfRENTX0NNRCgweEMxLCAweDk3KSwNCisJX0lOSVRfRENTX0NN RCgweEMyLCAweEIyKSwNCisJX0lOSVRfRENTX0NNRCgweEMzLCAweENEKSwNCisJX0lOSVRfRENT X0NNRCgweEM0LCAweEQ5KSwNCisJX0lOSVRfRENTX0NNRCgweEM1LCAweEU3KSwNCisJX0lOSVRf RENTX0NNRCgweEM2LCAweEY0KSwNCisJX0lOSVRfRENTX0NNRCgweEM3LCAweEZBKSwNCisJX0lO SVRfRENTX0NNRCgweEM4LCAweEZDKSwNCisJX0lOSVRfRENTX0NNRCgweEM5LCAweDAwKSwNCisJ X0lOSVRfRENTX0NNRCgweENBLCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweENCLCAweDE2KSwN CisJX0lOSVRfRENTX0NNRCgweENDLCAweEFGKSwNCisJX0lOSVRfRENTX0NNRCgweENELCAweEZG KSwNCisJX0lOSVRfRENTX0NNRCgweENFLCAweEZGKSwNCisJX0lOSVRfRENTX0NNRCgweEIwLCAw eDBCKSwNCisJX0lOSVRfRENTX0NNRCgweEIxLCAweDA0KSwNCisJX0lOSVRfRENTX0NNRCgweEIy LCAweDA1KSwNCisJX0lOSVRfRENTX0NNRCgweEIzLCAweDExKSwNCisJX0lOSVRfRENTX0NNRCgw eEI0LCAweDI0KSwNCisJX0lOSVRfRENTX0NNRCgweEI1LCAweDM5KSwNCisJX0lOSVRfRENTX0NN RCgweEI2LCAweDRGKSwNCisJX0lOSVRfRENTX0NNRCgweEI3LCAweDcyKSwNCisJX0lOSVRfRENT X0NNRCgweEI4LCAweDk4KSwNCisJX0lOSVRfRENTX0NNRCgweEI5LCAweERDKSwNCisJX0lOSVRf RENTX0NNRCgweEJBLCAweDIzKSwNCisJX0lOSVRfRENTX0NNRCgweEJCLCAweEE2KSwNCisJX0lO SVRfRENTX0NNRCgweEJDLCAweDJDKSwNCisJX0lOSVRfRENTX0NNRCgweEJELCAweDMwKSwNCisJ X0lOSVRfRENTX0NNRCgweEJFLCAweEFBKSwNCisJX0lOSVRfRENTX0NNRCgweEJGLCAweDI2KSwN CisJX0lOSVRfRENTX0NNRCgweEMwLCAweDYyKSwNCisJX0lOSVRfRENTX0NNRCgweEMxLCAweDlC KSwNCisJX0lOSVRfRENTX0NNRCgweEMyLCAweEI1KSwNCisJX0lOSVRfRENTX0NNRCgweEMzLCAw eENGKSwNCisJX0lOSVRfRENTX0NNRCgweEM0LCAweERCKSwNCisJX0lOSVRfRENTX0NNRCgweEM1 LCAweEU4KSwNCisJX0lOSVRfRENTX0NNRCgweEM2LCAweEY1KSwNCisJX0lOSVRfRENTX0NNRCgw eEM3LCAweEZBKSwNCisJX0lOSVRfRENTX0NNRCgweEM4LCAweEZDKSwNCisJX0lOSVRfRENTX0NN RCgweEM5LCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweENBLCAweDAwKSwNCisJX0lOSVRfRENT X0NNRCgweENCLCAweDE2KSwNCisJX0lOSVRfRENTX0NNRCgweENDLCAweEFGKSwNCisJX0lOSVRf RENTX0NNRCgweENELCAweEZGKSwNCisJX0lOSVRfRENTX0NNRCgweENFLCAweEZGKSwNCisJX0lO SVRfRENTX0NNRCgweEIwLCAweDBDKSwNCisJX0lOSVRfRENTX0NNRCgweEIxLCAweDA0KSwNCisJ X0lOSVRfRENTX0NNRCgweEIyLCAweDAyKSwNCisJX0lOSVRfRENTX0NNRCgweEIzLCAweDE2KSwN CisJX0lOSVRfRENTX0NNRCgweEI0LCAweDI0KSwNCisJX0lOSVRfRENTX0NNRCgweEI1LCAweDNC KSwNCisJX0lOSVRfRENTX0NNRCgweEI2LCAweDRGKSwNCisJX0lOSVRfRENTX0NNRCgweEI3LCAw eDczKSwNCisJX0lOSVRfRENTX0NNRCgweEI4LCAweDk5KSwNCisJX0lOSVRfRENTX0NNRCgweEI5 LCAweEUwKSwNCisJX0lOSVRfRENTX0NNRCgweEJBLCAweDI2KSwNCisJX0lOSVRfRENTX0NNRCgw eEJCLCAweEFEKSwNCisJX0lOSVRfRENTX0NNRCgweEJDLCAweDM2KSwNCisJX0lOSVRfRENTX0NN RCgweEJELCAweDNBKSwNCisJX0lOSVRfRENTX0NNRCgweEJFLCAweEFFKSwNCisJX0lOSVRfRENT X0NNRCgweEJGLCAweDJBKSwNCisJX0lOSVRfRENTX0NNRCgweEMwLCAweDY2KSwNCisJX0lOSVRf RENTX0NNRCgweEMxLCAweDlFKSwNCisJX0lOSVRfRENTX0NNRCgweEMyLCAweEI4KSwNCisJX0lO SVRfRENTX0NNRCgweEMzLCAweEQxKSwNCisJX0lOSVRfRENTX0NNRCgweEM0LCAweEREKSwNCisJ X0lOSVRfRENTX0NNRCgweEM1LCAweEU5KSwNCisJX0lOSVRfRENTX0NNRCgweEM2LCAweEY2KSwN CisJX0lOSVRfRENTX0NNRCgweEM3LCAweEZBKSwNCisJX0lOSVRfRENTX0NNRCgweEM4LCAweEZD KSwNCisJX0lOSVRfRENTX0NNRCgweEM5LCAweDAwKSwNCisJX0lOSVRfRENTX0NNRCgweENBLCAw eDAwKSwNCisJX0lOSVRfRENTX0NNRCgweENCLCAweDE2KSwNCisJX0lOSVRfRENTX0NNRCgweEND LCAweEFGKSwNCisJX0lOSVRfRENTX0NNRCgweENELCAweEZGKSwNCisJX0lOSVRfRENTX0NNRCgw eENFLCAweEZGKSwNCisJX0lOSVRfRENTX0NNRCgweEIwLCAweDAwKSwNCisJX0lOSVRfRENTX0NN RCgweEIzLCAweDA4KSwNCisJX0lOSVRfRENTX0NNRCgweEIwLCAweDA0KSwNCisJX0lOSVRfRENT X0NNRCgweEI4LCAweDY4KSwNCisJX0lOSVRfREVMQVlfQ01EKDE1MCksDQorCXt9LA0KK307DQor DQorc3RhdGljIGlubGluZSBzdHJ1Y3QgYm9lX3BhbmVsICp0b19ib2VfcGFuZWwoc3RydWN0IGRy bV9wYW5lbCAqcGFuZWwpDQorew0KKwlyZXR1cm4gY29udGFpbmVyX29mKHBhbmVsLCBzdHJ1Y3Qg Ym9lX3BhbmVsLCBiYXNlKTsNCit9DQorDQorc3RhdGljIGludCBib2VfcGFuZWxfaW5pdF9kY3Nf Y21kKHN0cnVjdCBib2VfcGFuZWwgKmJvZSkNCit7DQorCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2Ug KmRzaSA9IGJvZS0+ZHNpOw0KKwlzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCA9ICZib2UtPmJhc2U7 DQorCWludCBpLCBlcnIgPSAwOw0KKw0KKwlpZiAoYm9lLT5kZXNjLT5pbml0X2NtZHMpIHsNCisJ CWNvbnN0IHN0cnVjdCBwYW5lbF9pbml0X2NtZCAqaW5pdF9jbWRzID0gYm9lLT5kZXNjLT5pbml0 X2NtZHM7DQorDQorCQlmb3IgKGkgPSAwOyBpbml0X2NtZHNbaV0ubGVuICE9IDA7IGkrKykgew0K KwkJCWNvbnN0IHN0cnVjdCBwYW5lbF9pbml0X2NtZCAqY21kID0gJmluaXRfY21kc1tpXTsNCisN CisJCQlzd2l0Y2ggKGNtZC0+dHlwZSkgew0KKwkJCWNhc2UgREVMQVlfQ01EOg0KKwkJCQltc2xl ZXAoY21kLT5kYXRhWzBdKTsNCisJCQkJZXJyID0gMDsNCisJCQkJYnJlYWs7DQorDQorCQkJY2Fz ZSBJTklUX0RDU19DTUQ6DQorCQkJCWVyciA9IG1pcGlfZHNpX2Rjc193cml0ZShkc2ksIGNtZC0+ ZGF0YVswXSwNCisJCQkJCQkJIGNtZC0+bGVuIDw9IDEgPyBOVUxMIDoNCisJCQkJCQkJICZjbWQt PmRhdGFbMV0sDQorCQkJCQkJCSBjbWQtPmxlbiAtIDEpOw0KKwkJCQlicmVhazsNCisNCisJCQlk ZWZhdWx0Og0KKwkJCQllcnIgPSAtRUlOVkFMOw0KKwkJCX0NCisNCisJCQlpZiAoZXJyIDwgMCkg ew0KKwkJCQlkZXZfZXJyKHBhbmVsLT5kZXYsDQorCQkJCQkiZmFpbGVkIHRvIHdyaXRlIGNvbW1h bmQgJXVcbiIsIGkpOw0KKwkJCQlyZXR1cm4gZXJyOw0KKwkJCX0NCisJCX0NCisJfQ0KKwlyZXR1 cm4gMDsNCit9DQorDQorc3RhdGljIGludCBib2VfcGFuZWxfZW50ZXJfc2xlZXBfbW9kZShzdHJ1 Y3QgYm9lX3BhbmVsICpib2UpDQorew0KKwlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICpkc2kgPSBi b2UtPmRzaTsNCisJaW50IHJldDsNCisNCisJZHNpLT5tb2RlX2ZsYWdzICY9IH5NSVBJX0RTSV9N T0RFX0xQTTsNCisNCisJcmV0ID0gbWlwaV9kc2lfZGNzX3NldF9kaXNwbGF5X29mZihkc2kpOw0K KwlpZiAocmV0IDwgMCkNCisJCXJldHVybiByZXQ7DQorDQorCXJldCA9IG1pcGlfZHNpX2Rjc19l bnRlcl9zbGVlcF9tb2RlKGRzaSk7DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0dXJuIHJldDsNCisN CisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgYm9lX3BhbmVsX3VucHJlcGFyZShzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCkNCit7DQorCXN0cnVjdCBib2VfcGFuZWwgKmJvZSA9IHRvX2Jv ZV9wYW5lbChwYW5lbCk7DQorCWludCByZXQ7DQorDQorCWlmICghYm9lLT5wcmVwYXJlZCkNCisJ CXJldHVybiAwOw0KKw0KKwlyZXQgPSBib2VfcGFuZWxfZW50ZXJfc2xlZXBfbW9kZShib2UpOw0K KwlpZiAocmV0IDwgMCkgew0KKwkJZGV2X2VycihwYW5lbC0+ZGV2LCAiZmFpbGVkIHRvIHNldCBw YW5lbCBvZmY6ICVkXG4iLCByZXQpOw0KKwkJcmV0dXJuIHJldDsNCisJfQ0KKw0KKwltc2xlZXAo MTUwKTsNCisJZ3Bpb2Rfc2V0X3ZhbHVlKGJvZS0+ZW5hYmxlX2dwaW8sIDApOw0KKwl1c2xlZXBf cmFuZ2UoNTAwLCAxMDAwKTsNCisJcmVndWxhdG9yX2Rpc2FibGUoYm9lLT5hdmVlKTsNCisJcmVn dWxhdG9yX2Rpc2FibGUoYm9lLT5hdmRkKTsNCisJdXNsZWVwX3JhbmdlKDUwMDAsIDcwMDApOw0K KwlyZWd1bGF0b3JfZGlzYWJsZShib2UtPnBwMTgwMCk7DQorDQorCWJvZS0+cHJlcGFyZWQgPSBm YWxzZTsNCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgYm9lX3BhbmVsX3ByZXBh cmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpDQorew0KKwlzdHJ1Y3QgYm9lX3BhbmVsICpib2Ug PSB0b19ib2VfcGFuZWwocGFuZWwpOw0KKwlpbnQgcmV0Ow0KKw0KKwlpZiAoYm9lLT5wcmVwYXJl ZCkNCisJCXJldHVybiAwOw0KKw0KKwlncGlvZF9zZXRfdmFsdWUoYm9lLT5lbmFibGVfZ3Bpbywg MCk7DQorCXVzbGVlcF9yYW5nZSgxMDAwLCAxNTAwKTsNCisNCisJcmV0ID0gcmVndWxhdG9yX2Vu YWJsZShib2UtPnBwMTgwMCk7DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0dXJuIHJldDsNCisNCisJ dXNsZWVwX3JhbmdlKDMwMDAsIDUwMDApOw0KKw0KKwlyZXQgPSByZWd1bGF0b3JfZW5hYmxlKGJv ZS0+YXZkZCk7DQorCWlmIChyZXQgPCAwKQ0KKwkJZ290byBwb3dlcm9mZjF2ODsNCisJcmV0ID0g cmVndWxhdG9yX2VuYWJsZShib2UtPmF2ZWUpOw0KKwlpZiAocmV0IDwgMCkNCisJCWdvdG8gcG93 ZXJvZmZhdmRkOw0KKw0KKwl1c2xlZXBfcmFuZ2UoNTAwMCwgMTAwMDApOw0KKw0KKwlncGlvZF9z ZXRfdmFsdWUoYm9lLT5lbmFibGVfZ3BpbywgMSk7DQorCXVzbGVlcF9yYW5nZSgxMDAwLCAyMDAw KTsNCisJZ3Bpb2Rfc2V0X3ZhbHVlKGJvZS0+ZW5hYmxlX2dwaW8sIDApOw0KKwl1c2xlZXBfcmFu Z2UoMTAwMCwgMjAwMCk7DQorCWdwaW9kX3NldF92YWx1ZShib2UtPmVuYWJsZV9ncGlvLCAxKTsN CisJdXNsZWVwX3JhbmdlKDYwMDAsIDEwMDAwKTsNCisNCisJcmV0ID0gYm9lX3BhbmVsX2luaXRf ZGNzX2NtZChib2UpOw0KKwlpZiAocmV0IDwgMCkgew0KKwkJZGV2X2VycihwYW5lbC0+ZGV2LCAi ZmFpbGVkIHRvIGluaXQgcGFuZWw6ICVkXG4iLCByZXQpOw0KKwkJZ290byBwb3dlcm9mZjsNCisJ fQ0KKw0KKwlib2UtPnByZXBhcmVkID0gdHJ1ZTsNCisNCisJcmV0dXJuIDA7DQorDQorcG93ZXJv ZmY6DQorCXJlZ3VsYXRvcl9kaXNhYmxlKGJvZS0+YXZlZSk7DQorcG93ZXJvZmZhdmRkOg0KKwly ZWd1bGF0b3JfZGlzYWJsZShib2UtPmF2ZGQpOw0KK3Bvd2Vyb2ZmMXY4Og0KKwl1c2xlZXBfcmFu Z2UoNTAwMCwgNzAwMCk7DQorCXJlZ3VsYXRvcl9kaXNhYmxlKGJvZS0+cHAxODAwKTsNCisJZ3Bp b2Rfc2V0X3ZhbHVlKGJvZS0+ZW5hYmxlX2dwaW8sIDApOw0KKw0KKwlyZXR1cm4gcmV0Ow0KK30N CisNCitzdGF0aWMgaW50IGJvZV9wYW5lbF9lbmFibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwp DQorew0KKwltc2xlZXAoMTMwKTsNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBib2VfdHYxMDF3dW1fbmw2X2RlZmF1bHRfbW9kZSA9IHsN CisJLmNsb2NrID0gMTU5NDI1LA0KKwkuaGRpc3BsYXkgPSAxMjAwLA0KKwkuaHN5bmNfc3RhcnQg PSAxMjAwICsgMTAwLA0KKwkuaHN5bmNfZW5kID0gMTIwMCArIDEwMCArIDQwLA0KKwkuaHRvdGFs ID0gMTIwMCArIDEwMCArIDQwICsgMjQsDQorCS52ZGlzcGxheSA9IDE5MjAsDQorCS52c3luY19z dGFydCA9IDE5MjAgKyAxMCwNCisJLnZzeW5jX2VuZCA9IDE5MjAgKyAxMCArIDE0LA0KKwkudnRv dGFsID0gMTkyMCArIDEwICsgMTQgKyA0LA0KKwkudnJlZnJlc2ggPSA2MCwNCit9Ow0KKw0KK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgcGFuZWxfZGVzYyBib2VfdHYxMDF3dW1fbmw2X2Rlc2MgPSB7DQor CS5tb2RlcyA9ICZib2VfdHYxMDF3dW1fbmw2X2RlZmF1bHRfbW9kZSwNCisJLmJwYyA9IDgsDQor CS5zaXplID0gew0KKwkJLndpZHRoX21tID0gMTM1LA0KKwkJLmhlaWdodF9tbSA9IDIxNiwNCisJ fSwNCisJLmxhbmVzID0gNCwNCisJLmZvcm1hdCA9IE1JUElfRFNJX0ZNVF9SR0I4ODgsDQorCS5t b2RlX2ZsYWdzID0gTUlQSV9EU0lfTU9ERV9WSURFTyB8IE1JUElfRFNJX01PREVfVklERU9fU1lO Q19QVUxTRSB8DQorCQkgICAgICBNSVBJX0RTSV9NT0RFX0xQTSwNCisJLmluaXRfY21kcyA9IGJv ZV9pbml0X2NtZCwNCit9Ow0KKw0KK3N0YXRpYyBpbnQgYm9lX3BhbmVsX2dldF9tb2RlcyhzdHJ1 Y3QgZHJtX3BhbmVsICpwYW5lbCwNCisJCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvcikNCit7DQorCXN0cnVjdCBib2VfcGFuZWwgKmJvZSA9IHRvX2JvZV9wYW5lbChwYW5l bCk7DQorCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptID0gYm9lLT5kZXNjLT5tb2Rl czsNCisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7DQorDQorCW1vZGUgPSBkcm1fbW9k ZV9kdXBsaWNhdGUoY29ubmVjdG9yLT5kZXYsIG0pOw0KKwlpZiAoIW1vZGUpIHsNCisJCWRldl9l cnIocGFuZWwtPmRldiwgImZhaWxlZCB0byBhZGQgbW9kZSAldXgldUAldVxuIiwNCisJCQltLT5o ZGlzcGxheSwgbS0+dmRpc3BsYXksIG0tPnZyZWZyZXNoKTsNCisJCXJldHVybiAtRU5PTUVNOw0K Kwl9DQorDQorCW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZFUiB8IERSTV9NT0RFX1RZ UEVfUFJFRkVSUkVEOw0KKwlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsNCisJZHJtX21vZGVfcHJv YmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOw0KKw0KKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby53 aWR0aF9tbSA9IGJvZS0+ZGVzYy0+c2l6ZS53aWR0aF9tbTsNCisJY29ubmVjdG9yLT5kaXNwbGF5 X2luZm8uaGVpZ2h0X21tID0gYm9lLT5kZXNjLT5zaXplLmhlaWdodF9tbTsNCisJY29ubmVjdG9y LT5kaXNwbGF5X2luZm8uYnBjID0gYm9lLT5kZXNjLT5icGM7DQorDQorCXJldHVybiAxOw0KK30N CisNCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wYW5lbF9mdW5jcyBib2VfcGFuZWxfZnVuY3Mg PSB7DQorCS51bnByZXBhcmUgPSBib2VfcGFuZWxfdW5wcmVwYXJlLA0KKwkucHJlcGFyZSA9IGJv ZV9wYW5lbF9wcmVwYXJlLA0KKwkuZW5hYmxlID0gYm9lX3BhbmVsX2VuYWJsZSwNCisJLmdldF9t b2RlcyA9IGJvZV9wYW5lbF9nZXRfbW9kZXMsDQorfTsNCisNCitzdGF0aWMgaW50IGJvZV9wYW5l bF9hZGQoc3RydWN0IGJvZV9wYW5lbCAqYm9lKQ0KK3sNCisJc3RydWN0IGRldmljZSAqZGV2ID0g JmJvZS0+ZHNpLT5kZXY7DQorCWludCBlcnI7DQorDQorCWJvZS0+YXZkZCA9IGRldm1fcmVndWxh dG9yX2dldChkZXYsICJhdmRkIik7DQorCWlmIChJU19FUlIoYm9lLT5hdmRkKSkNCisJCXJldHVy biBQVFJfRVJSKGJvZS0+YXZkZCk7DQorDQorCWJvZS0+YXZlZSA9IGRldm1fcmVndWxhdG9yX2dl dChkZXYsICJhdmVlIik7DQorCWlmIChJU19FUlIoYm9lLT5hdmVlKSkNCisJCXJldHVybiBQVFJf RVJSKGJvZS0+YXZlZSk7DQorDQorCWJvZS0+cHAxODAwID0gZGV2bV9yZWd1bGF0b3JfZ2V0KGRl diwgInBwMTgwMCIpOw0KKwlpZiAoSVNfRVJSKGJvZS0+cHAxODAwKSkNCisJCXJldHVybiBQVFJf RVJSKGJvZS0+cHAxODAwKTsNCisNCisJYm9lLT5lbmFibGVfZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0 KGRldiwgImVuYWJsZSIsIEdQSU9EX09VVF9MT1cpOw0KKwlpZiAoSVNfRVJSKGJvZS0+ZW5hYmxl X2dwaW8pKSB7DQorCQlkZXZfZXJyKGRldiwgImNhbm5vdCBnZXQgcmVzZXQtZ3Bpb3MgJWxkXG4i LA0KKwkJCVBUUl9FUlIoYm9lLT5lbmFibGVfZ3BpbykpOw0KKwkJcmV0dXJuIFBUUl9FUlIoYm9l LT5lbmFibGVfZ3Bpbyk7DQorCX0NCisNCisJZ3Bpb2Rfc2V0X3ZhbHVlKGJvZS0+ZW5hYmxlX2dw aW8sIDApOw0KKw0KKwllcnIgPSBkcm1fcGFuZWxfb2ZfYmFja2xpZ2h0KCZib2UtPmJhc2UpOw0K KwlpZiAoZXJyKQ0KKwkJcmV0dXJuIGVycjsNCisNCisJZHJtX3BhbmVsX2luaXQoJmJvZS0+YmFz ZSwgZGV2LCAmYm9lX3BhbmVsX2Z1bmNzLA0KKwkJICAgICAgIERSTV9NT0RFX0NPTk5FQ1RPUl9E U0kpOw0KKw0KKwlib2UtPmJhc2UuZnVuY3MgPSAmYm9lX3BhbmVsX2Z1bmNzOw0KKwlib2UtPmJh c2UuZGV2ID0gJmJvZS0+ZHNpLT5kZXY7DQorDQorCXJldHVybiBkcm1fcGFuZWxfYWRkKCZib2Ut PmJhc2UpOw0KK30NCisNCitzdGF0aWMgaW50IGJvZV9wYW5lbF9wcm9iZShzdHJ1Y3QgbWlwaV9k c2lfZGV2aWNlICpkc2kpDQorew0KKwlzdHJ1Y3QgYm9lX3BhbmVsICpib2U7DQorCWludCByZXQ7 DQorCWNvbnN0IHN0cnVjdCBwYW5lbF9kZXNjICpkZXNjOw0KKw0KKwlib2UgPSBkZXZtX2t6YWxs b2MoJmRzaS0+ZGV2LCBzaXplb2YoKmJvZSksIEdGUF9LRVJORUwpOw0KKwlpZiAoIWJvZSkNCisJ CXJldHVybiAtRU5PTUVNOw0KKw0KKwlkZXNjID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZk c2ktPmRldik7DQorCWRzaS0+bGFuZXMgPSBkZXNjLT5sYW5lczsNCisJZHNpLT5mb3JtYXQgPSBk ZXNjLT5mb3JtYXQ7DQorCWRzaS0+bW9kZV9mbGFncyA9IGRlc2MtPm1vZGVfZmxhZ3M7DQorCWJv ZS0+ZGVzYyA9IGRlc2M7DQorCWJvZS0+ZHNpID0gZHNpOw0KKwlyZXQgPSBib2VfcGFuZWxfYWRk KGJvZSk7DQorCWlmIChyZXQgPCAwKQ0KKwkJcmV0dXJuIHJldDsNCisNCisJbWlwaV9kc2lfc2V0 X2RydmRhdGEoZHNpLCBib2UpOw0KKw0KKwlyZXQgPSBtaXBpX2RzaV9hdHRhY2goZHNpKTsNCisJ aWYgKHJldCkNCisJCWRybV9wYW5lbF9yZW1vdmUoJmJvZS0+YmFzZSk7DQorDQorCXJldHVybiBy ZXQ7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIGJvZV9wYW5lbF9zaHV0ZG93bihzdHJ1Y3QgbWlwaV9k c2lfZGV2aWNlICpkc2kpDQorew0KKwlzdHJ1Y3QgYm9lX3BhbmVsICpib2UgPSBtaXBpX2RzaV9n ZXRfZHJ2ZGF0YShkc2kpOw0KKw0KKwlkcm1fcGFuZWxfZGlzYWJsZSgmYm9lLT5iYXNlKTsNCisJ ZHJtX3BhbmVsX3VucHJlcGFyZSgmYm9lLT5iYXNlKTsNCit9DQorDQorc3RhdGljIGludCBib2Vf cGFuZWxfcmVtb3ZlKHN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaSkNCit7DQorCXN0cnVjdCBi b2VfcGFuZWwgKmJvZSA9IG1pcGlfZHNpX2dldF9kcnZkYXRhKGRzaSk7DQorCWludCByZXQ7DQor DQorCWJvZV9wYW5lbF9zaHV0ZG93bihkc2kpOw0KKw0KKwlyZXQgPSBtaXBpX2RzaV9kZXRhY2go ZHNpKTsNCisJaWYgKHJldCA8IDApDQorCQlkZXZfZXJyKCZkc2ktPmRldiwgImZhaWxlZCB0byBk ZXRhY2ggZnJvbSBEU0kgaG9zdDogJWRcbiIsIHJldCk7DQorDQorCWlmIChib2UtPmJhc2UuZGV2 KQ0KKwkJZHJtX3BhbmVsX3JlbW92ZSgmYm9lLT5iYXNlKTsNCisNCisJcmV0dXJuIDA7DQorfQ0K Kw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGJvZV9vZl9tYXRjaFtdID0gew0K Kwl7IC5jb21wYXRpYmxlID0gImJvZSx0djEwMXd1bS1ubDYiLA0KKwkgIC5kYXRhID0gJmJvZV90 djEwMXd1bV9ubDZfZGVzYw0KKwl9LA0KKwl7IC8qIHNlbnRpbmVsICovIH0NCit9Ow0KK01PRFVM RV9ERVZJQ0VfVEFCTEUob2YsIGJvZV9vZl9tYXRjaCk7DQorDQorc3RhdGljIHN0cnVjdCBtaXBp X2RzaV9kcml2ZXIgYm9lX3BhbmVsX2RyaXZlciA9IHsNCisJLmRyaXZlciA9IHsNCisJCS5uYW1l ID0gInBhbmVsLWJvZS10djEwMXd1bS1ubDYiLA0KKwkJLm9mX21hdGNoX3RhYmxlID0gYm9lX29m X21hdGNoLA0KKwl9LA0KKwkucHJvYmUgPSBib2VfcGFuZWxfcHJvYmUsDQorCS5yZW1vdmUgPSBi b2VfcGFuZWxfcmVtb3ZlLA0KKwkuc2h1dGRvd24gPSBib2VfcGFuZWxfc2h1dGRvd24sDQorfTsN Cittb2R1bGVfbWlwaV9kc2lfZHJpdmVyKGJvZV9wYW5lbF9kcml2ZXIpOw0KKw0KK01PRFVMRV9B VVRIT1IoIkppdGFvIFNoaSA8aml0YW8uc2hpQG1lZGlhdGVrLmNvbT4iKTsNCitNT0RVTEVfREVT Q1JJUFRJT04oIkJPRSB0djEwMXd1bS1ubDYgMTIwMHgxOTIwIHZpZGVvIG1vZGUgcGFuZWwgZHJp dmVyIik7DQorTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOw0KLS0gDQoyLjIxLjANCg==