Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp384901ybb; Fri, 20 Mar 2020 00:33:40 -0700 (PDT) X-Google-Smtp-Source: ADFU+vuI5pOdmc0myXHcmhlZLdkRyCcUxsrD1K5QdjX3tqvXC4T6CQpWVXX3OpG2uUfzPxQLBUpp X-Received: by 2002:a05:6830:10c7:: with SMTP id z7mr5297618oto.235.1584689620178; Fri, 20 Mar 2020 00:33:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584689620; cv=none; d=google.com; s=arc-20160816; b=pUeIjez63iXod0HUJqNGRGTEhlOH5QzGmDfWZ9mR6q1RjQAmOwd/x2lBTP5iR/FpZY xTqx7V/NbP1LHtobhRVDUpkLUkrUFZ30D1Ood7f4My/csbDP9xfNcKq2Q2tdXW6NSzD5 ZvZlIZNt+xvfuVwO6q14J0c7e2GVX3HWMtpioqAR3rv8rxK8tO97G+Vdc7suxdtM7J9u /by0jIKepRoN5rmXQPCcFENVHPU2CvNn4DZcaW2fUjKqom0K5EDO6KVXoYnMw7v3tYfH 0VW/+tFHT5x2UlxNderiO8XakmLtVIyQWu/g22m8Y0YKXWJ8QoGnVBgxMf9nqa4eL6eN NHzw== 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=UoBRWYbFNfabvInxJHk1WWSuIldaY4FrX1tZzVWLp/I=; b=BW/rqjeNK1PSScnl+BgDiV1biJGJo1K5MlPQfi5qR9RFlobixgTg1JWnDaH29mXMLi ZyFxGNXOuDLikzbnAgc+ilGn/8IJU2oaXQMjNCJKUTMRA+s95ILkidoOqbVmwz4vReub 98pySFKRrI8xOboI7iVTyk0WY6LImanWKpHrnvjGFi2/+prQjHWB08XEyUNcgGLGfXeo zNTGwlsmGuiJtuMnfMq/wiwHwcWlpP5iEO/QqJPPUDL8vPaJOMq48/oG0544fluPon0c Bi+zTu8blORnwpje0Rsf8sjeIAUxMVBBmAfxDVPMxVUFyDG7tH6CaSBY97B6FwwVjYam 8R8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=D2Zkc4qT; 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 f24si2501935otl.300.2020.03.20.00.33.27; Fri, 20 Mar 2020 00:33:40 -0700 (PDT) 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=D2Zkc4qT; 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 S1727193AbgCTHc5 (ORCPT + 99 others); Fri, 20 Mar 2020 03:32:57 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:15951 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727095AbgCTHc4 (ORCPT ); Fri, 20 Mar 2020 03:32:56 -0400 X-UUID: 1c663608dc9f499b94f2ac8eb6bb9fcc-20200320 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=UoBRWYbFNfabvInxJHk1WWSuIldaY4FrX1tZzVWLp/I=; b=D2Zkc4qT6clv/mV3q+UPuAOPGXb1yd8ngQ21BpINcVgy0lB1QMv5e5gW2Dzs/qpS1f7gGe9oC1Dq5EQSkAjBtMf7JLcqWc4EDJcgWIq2mmsngZq102JneHj3SyWDL39YewQDKwio2CypEF5UvirXRsBVXEb6HwghyptF0fNv10A=; X-UUID: 1c663608dc9f499b94f2ac8eb6bb9fcc-20200320 Received: from mtkcas09.mediatek.inc [(172.21.101.178)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 116707591; Fri, 20 Mar 2020 15:32:26 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs07n1.mediatek.inc (172.21.101.16) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 20 Mar 2020 15:31:24 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Fri, 20 Mar 2020 15:29:19 +0800 From: Weiyi Lu To: Matthias Brugger , Nicolas Boichat , Rob Herring , Sascha Hauer CC: James Liao , Fan Chen , , , , , Weiyi Lu Subject: [PATCH v13 05/11] soc: mediatek: Add multiple step bus protection control Date: Fri, 20 Mar 2020 15:32:14 +0800 Message-ID: <1584689540-5227-6-git-send-email-weiyi.lu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1584689540-5227-1-git-send-email-weiyi.lu@mediatek.com> References: <1584689540-5227-1-git-send-email-weiyi.lu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain 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 Qm90aCBNVDgxODMgJiBNVDY3NjUgaGF2ZSBtb3JlIGNvbnRyb2wgc3RlcHMgb2YgYnVzIHByb3Rl Y3Rpb24NCnRoYW4gcHJldmlvdXMgcHJvamVjdC4gQW5kIHRoZXJlIGFkZCBtb3JlIGJ1cyBwcm90 ZWN0aW9uIHJlZ2lzdGVycw0KcmVzaWRlIGF0IGluZnJhY2ZnICYgc21pLWNvbW1vbi4NCkV4dGVu ZCBmdW5jdGlvbiB0byBzdXBwb3J0IG11bHRpcGxlIHN0ZXAgYnVzIHByb3RlY3Rpb24gY29udHJv bA0Kd2l0aCBtb3JlIGN1c3RvbWl6ZWQgYXJndW1lbnRzLg0KQW5kIHRoZW4gdXNlIGJwX3RhYmxl IGZvciBidXMgcHJvdGVjdGlvbiBvZiBhbGwgY29tcGF0aWJsZXMsDQppbnN0ZWFkIG9mIG1peGlu ZyBidXNfcHJvdF9tYXNrIGFuZCBidXNfcHJvdF9yZWdfdXBkYXRlLg0KDQpTaWduZWQtb2ZmLWJ5 OiBXZWl5aSBMdSA8d2VpeWkubHVAbWVkaWF0ZWsuY29tPg0KLS0tDQogZHJpdmVycy9zb2MvbWVk aWF0ZWsvbXRrLXNjcHN5cy5jIHwgMjA2ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tDQogZHJpdmVycy9zb2MvbWVkaWF0ZWsvc2Nwc3lzLmggICAgIHwgIDQyICsrKysrKyst DQogMiBmaWxlcyBjaGFuZ2VkLCAxODIgaW5zZXJ0aW9ucygrKSwgNjYgZGVsZXRpb25zKC0pDQoN CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstc2Nwc3lzLmMgYi9kcml2ZXJz L3NvYy9tZWRpYXRlay9tdGstc2Nwc3lzLmMNCmluZGV4IGU1MGE1NjguLmE0ZmIwYjIzIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLXNjcHN5cy5jDQorKysgYi9kcml2ZXJz L3NvYy9tZWRpYXRlay9tdGstc2Nwc3lzLmMNCkBAIC04OCw5ICs4OCw5IEBADQogICogQGN0bF9v ZmZzOiBUaGUgb2Zmc2V0IGZvciBtYWluIHBvd2VyIGNvbnRyb2wgcmVnaXN0ZXIuDQogICogQHNy YW1fcGRuX2JpdHM6IFRoZSBtYXNrIGZvciBzcmFtIHBvd2VyIGNvbnRyb2wgYml0cy4NCiAgKiBA c3JhbV9wZG5fYWNrX2JpdHM6IFRoZSBtYXNrIGZvciBzcmFtIHBvd2VyIGNvbnRyb2wgYWNrZWQg Yml0cy4NCi0gKiBAYnVzX3Byb3RfbWFzazogVGhlIG1hc2sgZm9yIHNpbmdsZSBzdGVwIGJ1cyBw cm90ZWN0aW9uLg0KICAqIEBiYXNpY19jbGtfbmFtZTogVGhlIGJhc2ljIGNsb2NrcyByZXF1aXJl ZCBieSB0aGlzIHBvd2VyIGRvbWFpbi4NCiAgKiBAY2FwczogVGhlIGZsYWcgZm9yIGFjdGl2ZSB3 YWtlLXVwIGFjdGlvbi4NCisgKiBAYnBfdGFibGU6IFRoZSBtYXNrIHRhYmxlIGZvciBtdWx0aXBs ZSBzdGVwIGJ1cyBwcm90ZWN0aW9uLg0KICAqLw0KIHN0cnVjdCBzY3BfZG9tYWluX2RhdGEgew0K IAljb25zdCBjaGFyICpuYW1lOw0KQEAgLTk4LDkgKzk4LDkgQEAgc3RydWN0IHNjcF9kb21haW5f ZGF0YSB7DQogCWludCBjdGxfb2ZmczsNCiAJdTMyIHNyYW1fcGRuX2JpdHM7DQogCXUzMiBzcmFt X3Bkbl9hY2tfYml0czsNCi0JdTMyIGJ1c19wcm90X21hc2s7DQogCWNvbnN0IGNoYXIgKmJhc2lj X2Nsa19uYW1lW01BWF9DTEtTXTsNCiAJdTggY2FwczsNCisJc3RydWN0IGJ1c19wcm90IGJwX3Rh YmxlW01BWF9TVEVQU107DQogfTsNCiANCiBzdHJ1Y3Qgc2NwOw0KQEAgLTEyNCw4ICsxMjQsOCBA QCBzdHJ1Y3Qgc2NwIHsNCiAJc3RydWN0IGRldmljZSAqZGV2Ow0KIAl2b2lkIF9faW9tZW0gKmJh c2U7DQogCXN0cnVjdCByZWdtYXAgKmluZnJhY2ZnOw0KKwlzdHJ1Y3QgcmVnbWFwICpzbWlfY29t bW9uOw0KIAlzdHJ1Y3Qgc2NwX2N0cmxfcmVnIGN0cmxfcmVnOw0KLQlib29sIGJ1c19wcm90X3Jl Z191cGRhdGU7DQogfTsNCiANCiBzdHJ1Y3Qgc2NwX3N1YmRvbWFpbiB7DQpAQCAtMTM5LDcgKzEz OSw2IEBAIHN0cnVjdCBzY3Bfc29jX2RhdGEgew0KIAljb25zdCBzdHJ1Y3Qgc2NwX3N1YmRvbWFp biAqc3ViZG9tYWluczsNCiAJaW50IG51bV9zdWJkb21haW5zOw0KIAljb25zdCBzdHJ1Y3Qgc2Nw X2N0cmxfcmVnIHJlZ3M7DQotCWJvb2wgYnVzX3Byb3RfcmVnX3VwZGF0ZTsNCiB9Ow0KIA0KIHN0 YXRpYyBpbnQgc2Nwc3lzX2RvbWFpbl9pc19vbihzdHJ1Y3Qgc2NwX2RvbWFpbiAqc2NwZCkNCkBA IC0yNDksNTMgKzI0OCwxMDIgQEAgc3RhdGljIGludCBzY3BzeXNfc3JhbV9kaXNhYmxlKHN0cnVj dCBzY3BfZG9tYWluICpzY3BkLCB2b2lkIF9faW9tZW0gKmN0bF9hZGRyKQ0KIAkJCU1US19QT0xM X0RFTEFZX1VTLCBNVEtfUE9MTF9USU1FT1VUKTsNCiB9DQogDQorc3RhdGljIGludCBzZXRfYnVz X3Byb3RlY3Rpb24oc3RydWN0IHJlZ21hcCAqbWFwLCBzdHJ1Y3QgYnVzX3Byb3QgKmJwKQ0KK3sN CisJdTMyIHZhbDsNCisJdTMyIHNldF9vZnMgPSBicC0+c2V0X29mczsNCisJdTMyIGVuX29mcyA9 IGJwLT5lbl9vZnM7DQorCXUzMiBzdGFfb2ZzID0gYnAtPnN0YV9vZnM7DQorCXUzMiBtYXNrID0g YnAtPm1hc2s7DQorDQorCWlmIChzZXRfb2ZzKQ0KKwkJcmVnbWFwX3dyaXRlKG1hcCwgc2V0X29m cywgbWFzayk7DQorCWVsc2UNCisJCXJlZ21hcF91cGRhdGVfYml0cyhtYXAsIGVuX29mcywgbWFz aywgbWFzayk7DQorDQorCXJldHVybiByZWdtYXBfcmVhZF9wb2xsX3RpbWVvdXQobWFwLCBzdGFf b2ZzLA0KKwkJCXZhbCwgKHZhbCAmIG1hc2spID09IG1hc2ssDQorCQkJTVRLX1BPTExfREVMQVlf VVMsIE1US19QT0xMX1RJTUVPVVQpOw0KK30NCisNCitzdGF0aWMgaW50IGNsZWFyX2J1c19wcm90 ZWN0aW9uKHN0cnVjdCByZWdtYXAgKm1hcCwgc3RydWN0IGJ1c19wcm90ICpicCkNCit7DQorCXUz MiB2YWw7DQorCXUzMiBjbHJfb2ZzID0gYnAtPmNscl9vZnM7DQorCXUzMiBlbl9vZnMgPSBicC0+ ZW5fb2ZzOw0KKwl1MzIgc3RhX29mcyA9IGJwLT5zdGFfb2ZzOw0KKwl1MzIgbWFzayA9IGJwLT5t YXNrOw0KKwlib29sIGlnbm9yZV9hY2sgPSBicC0+aWdub3JlX2Nscl9hY2s7DQorDQorCWlmIChj bHJfb2ZzKQ0KKwkJcmVnbWFwX3dyaXRlKG1hcCwgY2xyX29mcywgbWFzayk7DQorCWVsc2UNCisJ CXJlZ21hcF91cGRhdGVfYml0cyhtYXAsIGVuX29mcywgbWFzaywgMCk7DQorDQorCWlmIChpZ25v cmVfYWNrKQ0KKwkJcmV0dXJuIDA7DQorDQorCXJldHVybiByZWdtYXBfcmVhZF9wb2xsX3RpbWVv dXQobWFwLCBzdGFfb2ZzLA0KKwkJCXZhbCwgISh2YWwgJiBtYXNrKSwNCisJCQlNVEtfUE9MTF9E RUxBWV9VUywgTVRLX1BPTExfVElNRU9VVCk7DQorfQ0KKw0KIHN0YXRpYyBpbnQgc2Nwc3lzX2J1 c19wcm90ZWN0X2VuYWJsZShzdHJ1Y3Qgc2NwX2RvbWFpbiAqc2NwZCkNCiB7DQogCXN0cnVjdCBz Y3AgKnNjcCA9IHNjcGQtPnNjcDsNCisJY29uc3Qgc3RydWN0IGJ1c19wcm90ICpicF90YWJsZSA9 IHNjcGQtPmRhdGEtPmJwX3RhYmxlOw0KIAlzdHJ1Y3QgcmVnbWFwICppbmZyYWNmZyA9IHNjcC0+ aW5mcmFjZmc7DQotCXUzMiBtYXNrID0gc2NwZC0+ZGF0YS0+YnVzX3Byb3RfbWFzazsNCi0JYm9v bCByZWdfdXBkYXRlID0gc2NwLT5idXNfcHJvdF9yZWdfdXBkYXRlOw0KLQl1MzIgdmFsOw0KLQlp bnQgcmV0Ow0KKwlzdHJ1Y3QgcmVnbWFwICpzbWlfY29tbW9uID0gc2NwLT5zbWlfY29tbW9uOw0K KwlpbnQgaTsNCiANCi0JaWYgKCFtYXNrKQ0KLQkJcmV0dXJuIDA7DQorCWZvciAoaSA9IDA7IGkg PCBNQVhfU1RFUFM7IGkrKykgew0KKwkJc3RydWN0IHJlZ21hcCAqbWFwID0gTlVMTDsNCisJCWlu dCByZXQ7DQorCQlzdHJ1Y3QgYnVzX3Byb3QgYnAgPSBicF90YWJsZVtpXTsNCiANCi0JaWYgKHJl Z191cGRhdGUpDQotCQlyZWdtYXBfdXBkYXRlX2JpdHMoaW5mcmFjZmcsIElORlJBX1RPUEFYSV9Q Uk9URUNURU4sIG1hc2ssDQotCQkJCW1hc2spOw0KLQllbHNlDQotCQlyZWdtYXBfd3JpdGUoaW5m cmFjZmcsIElORlJBX1RPUEFYSV9QUk9URUNURU5fU0VULCBtYXNrKTsNCisJCWlmIChicC50eXBl ID09IElGUl9UWVBFKQ0KKwkJCW1hcCA9IGluZnJhY2ZnOw0KKwkJZWxzZSBpZiAoYnAudHlwZSA9 PSBTTUlfVFlQRSkNCisJCQltYXAgPSBzbWlfY29tbW9uOw0KKwkJZWxzZQ0KKwkJCWJyZWFrOw0K IA0KLQlyZXQgPSByZWdtYXBfcmVhZF9wb2xsX3RpbWVvdXQoaW5mcmFjZmcsIElORlJBX1RPUEFY SV9QUk9URUNUU1RBMSwNCi0JCQkJICAgICAgIHZhbCwgKHZhbCAmIG1hc2spID09IG1hc2ssDQot CQkJCSAgICAgICBNVEtfUE9MTF9ERUxBWV9VUywgTVRLX1BPTExfVElNRU9VVCk7DQorCQlyZXQg PSBzZXRfYnVzX3Byb3RlY3Rpb24obWFwLCAmYnApOw0KIA0KLQlyZXR1cm4gcmV0Ow0KKwkJaWYg KHJldCkNCisJCQlyZXR1cm4gcmV0Ow0KKwl9DQorDQorCXJldHVybiAwOw0KIH0NCiANCiBzdGF0 aWMgaW50IHNjcHN5c19idXNfcHJvdGVjdF9kaXNhYmxlKHN0cnVjdCBzY3BfZG9tYWluICpzY3Bk KQ0KIHsNCiAJc3RydWN0IHNjcCAqc2NwID0gc2NwZC0+c2NwOw0KKwljb25zdCBzdHJ1Y3QgYnVz X3Byb3QgKmJwX3RhYmxlID0gc2NwZC0+ZGF0YS0+YnBfdGFibGU7DQogCXN0cnVjdCByZWdtYXAg KmluZnJhY2ZnID0gc2NwLT5pbmZyYWNmZzsNCi0JdTMyIG1hc2sgPSBzY3BkLT5kYXRhLT5idXNf cHJvdF9tYXNrOw0KLQlib29sIHJlZ191cGRhdGUgPSBzY3AtPmJ1c19wcm90X3JlZ191cGRhdGU7 DQotCXUzMiB2YWw7DQotCWludCByZXQ7DQorCXN0cnVjdCByZWdtYXAgKnNtaV9jb21tb24gPSBz Y3AtPnNtaV9jb21tb247DQorCWludCBpOw0KIA0KLQlpZiAoIW1hc2spDQotCQlyZXR1cm4gMDsN CisJZm9yIChpID0gTUFYX1NURVBTIC0gMTsgaSA+PSAwOyBpLS0pIHsNCisJCXN0cnVjdCByZWdt YXAgKm1hcCA9IE5VTEw7DQorCQlpbnQgcmV0Ow0KKwkJc3RydWN0IGJ1c19wcm90IGJwID0gYnBf dGFibGVbaV07DQogDQotCWlmIChyZWdfdXBkYXRlKQ0KLQkJcmVnbWFwX3VwZGF0ZV9iaXRzKGlu ZnJhY2ZnLCBJTkZSQV9UT1BBWElfUFJPVEVDVEVOLCBtYXNrLCAwKTsNCi0JZWxzZQ0KLQkJcmVn bWFwX3dyaXRlKGluZnJhY2ZnLCBJTkZSQV9UT1BBWElfUFJPVEVDVEVOX0NMUiwgbWFzayk7DQor CQlpZiAoYnAudHlwZSA9PSBJRlJfVFlQRSkNCisJCQltYXAgPSBpbmZyYWNmZzsNCisJCWVsc2Ug aWYgKGJwLnR5cGUgPT0gU01JX1RZUEUpDQorCQkJbWFwID0gc21pX2NvbW1vbjsNCisJCWVsc2UN CisJCQljb250aW51ZTsNCiANCi0JcmV0ID0gcmVnbWFwX3JlYWRfcG9sbF90aW1lb3V0KGluZnJh Y2ZnLCBJTkZSQV9UT1BBWElfUFJPVEVDVFNUQTEsDQotCQkJCSAgICAgICB2YWwsICEodmFsICYg bWFzayksDQotCQkJCSAgICAgICBNVEtfUE9MTF9ERUxBWV9VUywgTVRLX1BPTExfVElNRU9VVCk7 DQorCQlyZXQgPSBjbGVhcl9idXNfcHJvdGVjdGlvbihtYXAsICZicCk7DQogDQotCXJldHVybiBy ZXQ7DQorCQlpZiAocmV0KQ0KKwkJCXJldHVybiByZXQ7DQorCX0NCisNCisJcmV0dXJuIDA7DQog fQ0KIA0KIHN0YXRpYyBpbnQgc2Nwc3lzX3Bvd2VyX29uKHN0cnVjdCBnZW5lcmljX3BtX2RvbWFp biAqZ2VucGQpDQpAQCAtNDMwLDggKzQ3OCw3IEBAIHN0YXRpYyBpbnQgaW5pdF9iYXNpY19jbGtz KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHN0cnVjdCBjbGsgKipjbGssDQogDQogc3Rh dGljIHN0cnVjdCBzY3AgKmluaXRfc2NwKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQog CQkJY29uc3Qgc3RydWN0IHNjcF9kb21haW5fZGF0YSAqc2NwX2RvbWFpbl9kYXRhLCBpbnQgbnVt LA0KLQkJCWNvbnN0IHN0cnVjdCBzY3BfY3RybF9yZWcgKnNjcF9jdHJsX3JlZywNCi0JCQlib29s IGJ1c19wcm90X3JlZ191cGRhdGUpDQorCQkJY29uc3Qgc3RydWN0IHNjcF9jdHJsX3JlZyAqc2Nw X2N0cmxfcmVnKQ0KIHsNCiAJc3RydWN0IGdlbnBkX29uZWNlbGxfZGF0YSAqcGRfZGF0YTsNCiAJ c3RydWN0IHJlc291cmNlICpyZXM7DQpAQCAtNDQ1LDggKzQ5Miw2IEBAIHN0YXRpYyBzdHJ1Y3Qg c2NwICppbml0X3NjcChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAlzY3AtPmN0cmxf cmVnLnB3cl9zdGFfb2ZmcyA9IHNjcF9jdHJsX3JlZy0+cHdyX3N0YV9vZmZzOw0KIAlzY3AtPmN0 cmxfcmVnLnB3cl9zdGEybmRfb2ZmcyA9IHNjcF9jdHJsX3JlZy0+cHdyX3N0YTJuZF9vZmZzOw0K IA0KLQlzY3AtPmJ1c19wcm90X3JlZ191cGRhdGUgPSBidXNfcHJvdF9yZWdfdXBkYXRlOw0KLQ0K IAlzY3AtPmRldiA9ICZwZGV2LT5kZXY7DQogDQogCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJj ZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7DQpAQCAtNDc0LDYgKzUxOSwxNyBAQCBzdGF0aWMg c3RydWN0IHNjcCAqaW5pdF9zY3Aoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCXJl dHVybiBFUlJfQ0FTVChzY3AtPmluZnJhY2ZnKTsNCiAJfQ0KIA0KKwlzY3AtPnNtaV9jb21tb24g PSBzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9waGFuZGxlKHBkZXYtPmRldi5vZl9ub2RlLA0KKwkJ CSJzbWlfY29tbSIpOw0KKw0KKwlpZiAoc2NwLT5zbWlfY29tbW9uID09IEVSUl9QVFIoLUVOT0RF VikpIHsNCisJCXNjcC0+c21pX2NvbW1vbiA9IE5VTEw7DQorCX0gZWxzZSBpZiAoSVNfRVJSKHNj cC0+c21pX2NvbW1vbikpIHsNCisJCWRldl9lcnIoJnBkZXYtPmRldiwgIkNhbm5vdCBmaW5kIHNt aV9jb21tb24gY29udHJvbGxlcjogJWxkXG4iLA0KKwkJCQlQVFJfRVJSKHNjcC0+c21pX2NvbW1v bikpOw0KKwkJcmV0dXJuIEVSUl9DQVNUKHNjcC0+c21pX2NvbW1vbik7DQorCX0NCisNCiAJZm9y IChpID0gMDsgaSA8IG51bTsgaSsrKSB7DQogCQlzdHJ1Y3Qgc2NwX2RvbWFpbiAqc2NwZCA9ICZz Y3AtPmRvbWFpbnNbaV07DQogCQljb25zdCBzdHJ1Y3Qgc2NwX2RvbWFpbl9kYXRhICpkYXRhID0g JnNjcF9kb21haW5fZGF0YVtpXTsNCkBAIC01NTYsOCArNjEyLDExIEBAIHN0YXRpYyB2b2lkIG10 a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQog CQkubmFtZSA9ICJjb25uIiwNCiAJCS5zdGFfbWFzayA9IFBXUl9TVEFUVVNfQ09OTiwNCiAJCS5j dGxfb2ZmcyA9IFNQTV9DT05OX1BXUl9DT04sDQotCQkuYnVzX3Byb3RfbWFzayA9IE1UMjcwMV9U T1BfQVhJX1BST1RfRU5fQ09OTl9NIHwNCi0JCQkJIE1UMjcwMV9UT1BfQVhJX1BST1RfRU5fQ09O Tl9TLA0KKwkJLmJwX3RhYmxlID0gew0KKwkJCUJVU19QUk9UKElGUl9UWVBFLCAwLCAwLCAweDIy MCwgMHgyMjgsDQorCQkJCU1UMjcwMV9UT1BfQVhJX1BST1RfRU5fQ09OTl9NIHwNCisJCQkJTVQy NzAxX1RPUF9BWElfUFJPVF9FTl9DT05OX1MpLA0KKwkJfSwNCiAJCS5jYXBzID0gTVRLX1NDUERf QUNUSVZFX1dBS0VVUCwNCiAJfSwNCiAJW01UMjcwMV9QT1dFUl9ET01BSU5fRElTUF0gPSB7DQpA QCAtNTY2LDcgKzYyNSwxMCBAQCBzdGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlu cyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJLmN0bF9vZmZzID0gU1BNX0RJU19Q V1JfQ09OLA0KIAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDExLCA4KSwNCiAJCS5iYXNpY19j bGtfbmFtZSA9IHsibW0ifSwNCi0JCS5idXNfcHJvdF9tYXNrID0gTVQyNzAxX1RPUF9BWElfUFJP VF9FTl9NTV9NMCwNCisJCS5icF90YWJsZSA9IHsNCisJCQlCVVNfUFJPVChJRlJfVFlQRSwgMCwg MCwgMHgyMjAsIDB4MjI4LA0KKwkJCQlNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX01NX00wKSwNCisJ CX0sDQogCQkuY2FwcyA9IE1US19TQ1BEX0FDVElWRV9XQUtFVVAsDQogCX0sDQogCVtNVDI3MDFf UE9XRVJfRE9NQUlOX01GR10gPSB7DQpAQCAtNzAxLDcgKzc2MywxMCBAQCBzdGF0aWMgdm9pZCBt dGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0K IAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDgsIDgpLA0KIAkJLnNyYW1fcGRuX2Fja19iaXRz ID0gR0VOTUFTSygxNiwgMTYpLA0KIAkJLmJhc2ljX2Nsa19uYW1lID0geyJtZmcifSwNCi0JCS5i dXNfcHJvdF9tYXNrID0gQklUKDE0KSB8IEJJVCgyMSkgfCBCSVQoMjMpLA0KKwkJLmJwX3RhYmxl ID0gew0KKwkJCUJVU19QUk9UKElGUl9UWVBFLCAweDI2MCwgMHgyNjQsIDB4MjIwLCAweDIyOCwN CisJCQkJQklUKDE0KSB8IEJJVCgyMSkgfCBCSVQoMjMpKSwNCisJCX0sDQogCQkuY2FwcyA9IE1U S19TQ1BEX0FDVElWRV9XQUtFVVAsDQogCX0sDQogCVtNVDI3MTJfUE9XRVJfRE9NQUlOX01GR19T QzFdID0gew0KQEAgLTc3Myw3ICs4MzgsMTAgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bv d2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCS5zcmFtX3Bkbl9i aXRzID0gR0VOTUFTSyg4LCA4KSwNCiAJCS5zcmFtX3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMTIs IDEyKSwNCiAJCS5iYXNpY19jbGtfbmFtZSA9IHsibW0ifSwNCi0JCS5idXNfcHJvdF9tYXNrID0g KEJJVCgxKSB8IEJJVCgyKSksDQorCQkuYnBfdGFibGUgPSB7DQorCQkJQlVTX1BST1QoSUZSX1RZ UEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCisJCQkJQklUKDEpIHwgQklUKDIpKSwNCisJCX0sDQog CX0sDQogCVtNVDY3OTdfUE9XRVJfRE9NQUlOX0FVRElPXSA9IHsNCiAJCS5uYW1lID0gImF1ZGlv IiwNCkBAIC04MjAsNyArODg4LDEwIEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9k b21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkuY3RsX29mZnMgPSBTUE1f RVRIU1lTX1BXUl9DT04sDQogCQkuc3JhbV9wZG5fYml0cyA9IEdFTk1BU0soMTEsIDgpLA0KIAkJ LnNyYW1fcGRuX2Fja19iaXRzID0gR0VOTUFTSygxNSwgMTIpLA0KLQkJLmJ1c19wcm90X21hc2sg PSBNVDc2MjJfVE9QX0FYSV9QUk9UX0VOX0VUSFNZUywNCisJCS5icF90YWJsZSA9IHsNCisJCQlC VVNfUFJPVChJRlJfVFlQRSwgMCwgMCwgMHgyMjAsIDB4MjI4LA0KKwkJCQlNVDc2MjJfVE9QX0FY SV9QUk9UX0VOX0VUSFNZUyksDQorCQl9LA0KIAkJLmNhcHMgPSBNVEtfU0NQRF9BQ1RJVkVfV0FL RVVQLA0KIAl9LA0KIAlbTVQ3NjIyX1BPV0VSX0RPTUFJTl9ISUYwXSA9IHsNCkBAIC04MzAsNyAr OTAxLDEwIEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkuc3JhbV9wZG5fYml0cyA9IEdFTk1BU0soMTEsIDgp LA0KIAkJLnNyYW1fcGRuX2Fja19iaXRzID0gR0VOTUFTSygxNSwgMTIpLA0KIAkJLmJhc2ljX2Ns a19uYW1lID0geyJoaWZfc2VsIn0sDQotCQkuYnVzX3Byb3RfbWFzayA9IE1UNzYyMl9UT1BfQVhJ X1BST1RfRU5fSElGMCwNCisJCS5icF90YWJsZSA9IHsNCisJCQlCVVNfUFJPVChJRlJfVFlQRSwg MCwgMCwgMHgyMjAsIDB4MjI4LA0KKwkJCQlNVDc2MjJfVE9QX0FYSV9QUk9UX0VOX0hJRjApLA0K KwkJfSwNCiAJCS5jYXBzID0gTVRLX1NDUERfQUNUSVZFX1dBS0VVUCwNCiAJfSwNCiAJW01UNzYy Ml9QT1dFUl9ET01BSU5fSElGMV0gPSB7DQpAQCAtODQwLDcgKzkxNCwxMCBAQCBzdGF0aWMgdm9p ZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 LA0KIAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDExLCA4KSwNCiAJCS5zcmFtX3Bkbl9hY2tf Yml0cyA9IEdFTk1BU0soMTUsIDEyKSwNCiAJCS5iYXNpY19jbGtfbmFtZSA9IHsiaGlmX3NlbCJ9 LA0KLQkJLmJ1c19wcm90X21hc2sgPSBNVDc2MjJfVE9QX0FYSV9QUk9UX0VOX0hJRjEsDQorCQku YnBfdGFibGUgPSB7DQorCQkJQlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwN CisJCQkJTVQ3NjIyX1RPUF9BWElfUFJPVF9FTl9ISUYxKSwNCisJCX0sDQogCQkuY2FwcyA9IE1U S19TQ1BEX0FDVElWRV9XQUtFVVAsDQogCX0sDQogCVtNVDc2MjJfUE9XRVJfRE9NQUlOX1dCXSA9 IHsNCkBAIC04NDksNyArOTI2LDEwIEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9k b21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkuY3RsX29mZnMgPSBTUE1f V0JfUFdSX0NPTiwNCiAJCS5zcmFtX3Bkbl9iaXRzID0gMCwNCiAJCS5zcmFtX3Bkbl9hY2tfYml0 cyA9IDAsDQotCQkuYnVzX3Byb3RfbWFzayA9IE1UNzYyMl9UT1BfQVhJX1BST1RfRU5fV0IsDQor CQkuYnBfdGFibGUgPSB7DQorCQkJQlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIy OCwNCisJCQkJTVQ3NjIyX1RPUF9BWElfUFJPVF9FTl9XQiksDQorCQl9LA0KIAkJLmNhcHMgPSBN VEtfU0NQRF9BQ1RJVkVfV0FLRVVQIHwgTVRLX1NDUERfRldBSVRfU1JBTSwNCiAJfSwNCiB9Ow0K QEAgLTg2Myw4ICs5NDMsMTEgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFp bnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCS5uYW1lID0gImNvbm4iLA0KIAkJ LnN0YV9tYXNrID0gUFdSX1NUQVRVU19DT05OLA0KIAkJLmN0bF9vZmZzID0gU1BNX0NPTk5fUFdS X0NPTiwNCi0JCS5idXNfcHJvdF9tYXNrID0gTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9DT05OX00g fA0KLQkJCQkgTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9DT05OX1MsDQorCQkuYnBfdGFibGUgPSB7 DQorCQkJQlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCisJCQkJTVQyNzAx X1RPUF9BWElfUFJPVF9FTl9DT05OX00gfA0KKwkJCQlNVDI3MDFfVE9QX0FYSV9QUk9UX0VOX0NP Tk5fUyksDQorCQl9LA0KIAkJLmNhcHMgPSBNVEtfU0NQRF9BQ1RJVkVfV0FLRVVQLA0KIAl9LA0K IAlbTVQ3NjIzQV9QT1dFUl9ET01BSU5fRVRIXSA9IHsNCkBAIC05MjksOCArMTAxMiwxMSBAQCBz dGF0aWMgdm9pZCBtdGtfcmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2LA0KIAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNLKDExLCA4KSwNCiAJCS5zcmFt X3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMTIsIDEyKSwNCiAJCS5iYXNpY19jbGtfbmFtZSA9IHsi bW0ifSwNCi0JCS5idXNfcHJvdF9tYXNrID0gTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NTV9NMCB8 DQotCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NTV9NMSwNCisJCS5icF90YWJsZSA9IHsNCisJ CQlCVVNfUFJPVChJRlJfVFlQRSwgMCwgMCwgMHgyMjAsIDB4MjI4LA0KKwkJCQlNVDgxNzNfVE9Q X0FYSV9QUk9UX0VOX01NX00wIHwNCisJCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NTV9NMSks DQorCQl9LA0KIAl9LA0KIAlbTVQ4MTczX1BPV0VSX0RPTUFJTl9WRU5DX0xUXSA9IHsNCiAJCS5u YW1lID0gInZlbmNfbHQiLA0KQEAgLTk3NiwxMCArMTA2MiwxMyBAQCBzdGF0aWMgdm9pZCBtdGtf cmVnaXN0ZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJ LmN0bF9vZmZzID0gU1BNX01GR19QV1JfQ09OLA0KIAkJLnNyYW1fcGRuX2JpdHMgPSBHRU5NQVNL KDEzLCA4KSwNCiAJCS5zcmFtX3Bkbl9hY2tfYml0cyA9IEdFTk1BU0soMjEsIDE2KSwNCi0JCS5i dXNfcHJvdF9tYXNrID0gTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfUyB8DQotCQkJTVQ4MTcz X1RPUF9BWElfUFJPVF9FTl9NRkdfTTAgfA0KLQkJCU1UODE3M19UT1BfQVhJX1BST1RfRU5fTUZH X00xIHwNCi0JCQlNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01GR19TTk9PUF9PVVQsDQorCQkuYnBf dGFibGUgPSB7DQorCQkJQlVTX1BST1QoSUZSX1RZUEUsIDAsIDAsIDB4MjIwLCAweDIyOCwNCisJ CQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfUyB8DQorCQkJCU1UODE3M19UT1BfQVhJX1BS T1RfRU5fTUZHX00wIHwNCisJCQkJTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfTTEgfA0KKwkJ CQlNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01GR19TTk9PUF9PVVQpLA0KKwkJfSwNCiAJfSwNCiB9 Ow0KIA0KQEAgLTk5NSw3ICsxMDg0LDYgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2Vy X2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCS5wd3Jfc3RhX29mZnMg PSBTUE1fUFdSX1NUQVRVUywNCiAJCS5wd3Jfc3RhMm5kX29mZnMgPSBTUE1fUFdSX1NUQVRVU18y TkQNCiAJfSwNCi0JLmJ1c19wcm90X3JlZ191cGRhdGUgPSB0cnVlLA0KIH07DQogDQogc3RhdGlj IGNvbnN0IHN0cnVjdCBzY3Bfc29jX2RhdGEgbXQyNzEyX2RhdGEgPSB7DQpAQCAtMTAwNyw3ICsx MDk1LDYgQEAgc3RhdGljIHZvaWQgbXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldiwNCiAJCS5wd3Jfc3RhX29mZnMgPSBTUE1fUFdSX1NUQVRVUywN CiAJCS5wd3Jfc3RhMm5kX29mZnMgPSBTUE1fUFdSX1NUQVRVU18yTkQNCiAJfSwNCi0JLmJ1c19w cm90X3JlZ191cGRhdGUgPSBmYWxzZSwNCiB9Ow0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Nw X3NvY19kYXRhIG10Njc5N19kYXRhID0gew0KQEAgLTEwMTksNyArMTEwNiw2IEBAIHN0YXRpYyB2 b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYsDQogCQkucHdyX3N0YV9vZmZzID0gU1BNX1BXUl9TVEFUVVNfTVQ2Nzk3LA0KIAkJLnB3cl9z dGEybmRfb2ZmcyA9IFNQTV9QV1JfU1RBVFVTXzJORF9NVDY3OTcNCiAJfSwNCi0JLmJ1c19wcm90 X3JlZ191cGRhdGUgPSB0cnVlLA0KIH07DQogDQogc3RhdGljIGNvbnN0IHN0cnVjdCBzY3Bfc29j X2RhdGEgbXQ3NjIyX2RhdGEgPSB7DQpAQCAtMTAyOSw3ICsxMTE1LDYgQEAgc3RhdGljIHZvaWQg bXRrX3JlZ2lzdGVyX3Bvd2VyX2RvbWFpbnMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwN CiAJCS5wd3Jfc3RhX29mZnMgPSBTUE1fUFdSX1NUQVRVUywNCiAJCS5wd3Jfc3RhMm5kX29mZnMg PSBTUE1fUFdSX1NUQVRVU18yTkQNCiAJfSwNCi0JLmJ1c19wcm90X3JlZ191cGRhdGUgPSB0cnVl LA0KIH07DQogDQogc3RhdGljIGNvbnN0IHN0cnVjdCBzY3Bfc29jX2RhdGEgbXQ3NjIzYV9kYXRh ID0gew0KQEAgLTEwMzksNyArMTEyNCw2IEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dl cl9kb21haW5zKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkucHdyX3N0YV9vZmZz ID0gU1BNX1BXUl9TVEFUVVMsDQogCQkucHdyX3N0YTJuZF9vZmZzID0gU1BNX1BXUl9TVEFUVVNf Mk5EDQogCX0sDQotCS5idXNfcHJvdF9yZWdfdXBkYXRlID0gdHJ1ZSwNCiB9Ow0KIA0KIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgc2NwX3NvY19kYXRhIG10ODE3M19kYXRhID0gew0KQEAgLTEwNTEsNyAr MTEzNSw2IEBAIHN0YXRpYyB2b2lkIG10a19yZWdpc3Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkucHdyX3N0YV9vZmZzID0gU1BNX1BXUl9TVEFUVVMs DQogCQkucHdyX3N0YTJuZF9vZmZzID0gU1BNX1BXUl9TVEFUVVNfMk5EDQogCX0sDQotCS5idXNf cHJvdF9yZWdfdXBkYXRlID0gdHJ1ZSwNCiB9Ow0KIA0KIC8qDQpAQCAtMTA5Miw4ICsxMTc1LDcg QEAgc3RhdGljIGludCBzY3BzeXNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikN CiANCiAJc29jID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOw0KIA0KLQlz Y3AgPSBpbml0X3NjcChwZGV2LCBzb2MtPmRvbWFpbnMsIHNvYy0+bnVtX2RvbWFpbnMsICZzb2Mt PnJlZ3MsDQotCQkJc29jLT5idXNfcHJvdF9yZWdfdXBkYXRlKTsNCisJc2NwID0gaW5pdF9zY3Ao cGRldiwgc29jLT5kb21haW5zLCBzb2MtPm51bV9kb21haW5zLCAmc29jLT5yZWdzKTsNCiAJaWYg KElTX0VSUihzY3ApKQ0KIAkJcmV0dXJuIFBUUl9FUlIoc2NwKTsNCiANCmRpZmYgLS1naXQgYS9k cml2ZXJzL3NvYy9tZWRpYXRlay9zY3BzeXMuaCBiL2RyaXZlcnMvc29jL21lZGlhdGVrL3NjcHN5 cy5oDQppbmRleCBhZDI1NTliLi40NWJjNjQ0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zb2MvbWVk aWF0ZWsvc2Nwc3lzLmgNCisrKyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL3NjcHN5cy5oDQpAQCAt MiwxMCArMiwyOCBAQA0KICNpZm5kZWYgX19TT0NfTUVESUFURUtfU0NQU1lTX0gNCiAjZGVmaW5l IF9fU09DX01FRElBVEVLX1NDUFNZU19IDQogDQotI2RlZmluZSBJTkZSQV9UT1BBWElfUFJPVEVD VEVOCQkweDAyMjANCi0jZGVmaW5lIElORlJBX1RPUEFYSV9QUk9URUNUU1RBMQkweDAyMjgNCi0j ZGVmaW5lIElORlJBX1RPUEFYSV9QUk9URUNURU5fU0VUCTB4MDI2MA0KLSNkZWZpbmUgSU5GUkFf VE9QQVhJX1BST1RFQ1RFTl9DTFIJMHgwMjY0DQorI2RlZmluZSBNQVhfU1RFUFMJNA0KKw0KKyNk ZWZpbmUgX0JVU19QUk9UKF90eXBlLCBfc2V0X29mcywgX2Nscl9vZnMsCQkJXA0KKwkJX2VuX29m cywgX3N0YV9vZnMsIF9tYXNrLCBfaWdub3JlX2Nscl9hY2spIHsJXA0KKwkJLnR5cGUgPSBfdHlw ZSwJCQkJCVwNCisJCS5zZXRfb2ZzID0gX3NldF9vZnMsCQkJCVwNCisJCS5jbHJfb2ZzID0gX2Ns cl9vZnMsCQkJCVwNCisJCS5lbl9vZnMgPSBfZW5fb2ZzLAkJCQlcDQorCQkuc3RhX29mcyA9IF9z dGFfb2ZzLAkJCQlcDQorCQkubWFzayA9IF9tYXNrLAkJCQkJXA0KKwkJLmlnbm9yZV9jbHJfYWNr ID0gX2lnbm9yZV9jbHJfYWNrLAkJXA0KKwl9DQorDQorI2RlZmluZSBCVVNfUFJPVChfdHlwZSwg X3NldF9vZnMsIF9jbHJfb2ZzLAkJXA0KKwkJX2VuX29mcywgX3N0YV9vZnMsIF9tYXNrKQkJXA0K KwkJX0JVU19QUk9UKF90eXBlLCBfc2V0X29mcywgX2Nscl9vZnMsCVwNCisJCV9lbl9vZnMsIF9z dGFfb2ZzLCBfbWFzaywgZmFsc2UpDQorDQorI2RlZmluZSBCVVNfUFJPVF9JR04oX3R5cGUsIF9z ZXRfb2ZzLCBfY2xyX29mcywJXA0KKwkJX2VuX29mcywgX3N0YV9vZnMsIF9tYXNrKQkJXA0KKwkJ X0JVU19QUk9UKF90eXBlLCBfc2V0X29mcywgX2Nscl9vZnMsCVwNCisJCV9lbl9vZnMsIF9zdGFf b2ZzLCBfbWFzaywgdHJ1ZSkNCiANCiAjZGVmaW5lIE1UMjcwMV9UT1BfQVhJX1BST1RfRU5fTU1f TTAJCUJJVCgxKQ0KICNkZWZpbmUgTVQyNzAxX1RPUF9BWElfUFJPVF9FTl9DT05OX00JCUJJVCgy KQ0KQEAgLTI1LDQgKzQzLDIwIEBADQogI2RlZmluZSBNVDgxNzNfVE9QX0FYSV9QUk9UX0VOX01G R19NMQkJQklUKDIyKQ0KICNkZWZpbmUgTVQ4MTczX1RPUF9BWElfUFJPVF9FTl9NRkdfU05PT1Bf T1VUCUJJVCgyMykNCiANCitlbnVtIHJlZ21hcF90eXBlIHsNCisJSU5WQUxJRF9UWVBFID0gMCwN CisJSUZSX1RZUEUsDQorCVNNSV9UWVBFLA0KK307DQorDQorc3RydWN0IGJ1c19wcm90IHsNCisJ ZW51bSByZWdtYXBfdHlwZSB0eXBlOw0KKwl1MzIgc2V0X29mczsNCisJdTMyIGNscl9vZnM7DQor CXUzMiBlbl9vZnM7DQorCXUzMiBzdGFfb2ZzOw0KKwl1MzIgbWFzazsNCisJYm9vbCBpZ25vcmVf Y2xyX2FjazsNCit9Ow0KKw0KICNlbmRpZiAvKiBfX1NPQ19NRURJQVRFS19TQ1BTWVNfSCAqLw0K LS0gDQoxLjguMS4xLmRpcnR5DQo=