From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 616E3C4360C for ; Thu, 10 Oct 2019 07:44:16 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B3761218AC for ; Thu, 10 Oct 2019 07:44:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="eZ/RDIav"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=analog.onmicrosoft.com header.i=@analog.onmicrosoft.com header.b="g/9Vgy2Y" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B3761218AC Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=analog.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id EA6481665; Thu, 10 Oct 2019 09:43:23 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz EA6481665 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1570693454; bh=FF0AxMKMg0+4oAdnPfzfwbnx1NHjyM/JJSLa2lI+RZ0=; h=From:To:Date:Cc:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From; b=eZ/RDIavGR+uvz1azfEPfRRKdjdPorfqrRg8Y+Sfvqh7dC/nEeA7w6OWswqK7VKJH 88GUI7II2JsYykRGWUp0GFDlDgz4u6U6/vc9ztbif2PPFj8AD2L9HQM0WbYhiDd1R9 Svo7RWZc2RqkKdW6Eri2zJ3JoVhmaMNp3TGIyZho= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id B6768F804CB; Thu, 10 Oct 2019 09:42:28 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 41800F8038F; Thu, 10 Oct 2019 09:42:26 +0200 (CEST) Received: from mx0b-00128a01.pphosted.com (mx0b-00128a01.pphosted.com [148.163.139.77]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 52589F802BC for ; Thu, 10 Oct 2019 09:42:20 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 52589F802BC Authentication-Results: alsa1.perex.cz; dkim=pass (1024-bit key) header.d=analog.onmicrosoft.com header.i=@analog.onmicrosoft.com header.b="g/9Vgy2Y" Received: from pps.filterd (m0167090.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x9A7c1FC001964; Thu, 10 Oct 2019 03:42:14 -0400 Received: from nam05-by2-obe.outbound.protection.outlook.com (mail-by2nam05lp2055.outbound.protection.outlook.com [104.47.50.55]) by mx0b-00128a01.pphosted.com with ESMTP id 2veqt5gg3x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Oct 2019 03:42:14 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fNTwaZt7QCrGcYubAj/Unh8h50lJpeQjSKi65hqx6fwg/qvDARnfM/IkI0Ogs+8qlPH8OQW8w/gBdXvjDopfm/yGzTsfgx2vj+cLQTznh7y0Ei0UlR89B8XJLqtXhySb3UyUNkuZn7fvzJ/PzLvsJGdn/H7N9ddrycjaRRMVa3RInZ12XrdDNGzqIQlhwhst1JAZfPpy5m+gMwKW4sa6YggoVvVvXDAe44OosWijoMtxtWhw0bGNlK8S5sSJETkzH0usd9zxN9piytX2akJpT0bIQSuO/QHACtf6Bc6iwyHsGABHMSY0Rce1jBCrTgVQT5kcQtiJmQLDvghCT5p9fg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=m61ngQcFwBJx4helHkP+KwCabcehC+bTr7Q7UDAfB9Q=; b=kR4Vnhy94Kz0LKxgjkf/kXzQb9Xq9iT2xlcELkLwtF2w7eo29Z9ugqYwKDvq3Xp0ImjkJZ4AO/0XWjNr98yr0FbvH2MTXfQCjAbfzQbkh9CWaeFsCGcBcNgTB0AXyfjYvA5qkNom0P59GrMbOwx368f9phENbCnYdxON/Kw2wAaiXEQ2T8AqOdT+7EmbXN/XEzOC/z0Q+2d3KMFi9SyKN5I4oqbLwdCR0CwSO1vipTtudftfMiuwNP/MSweesTMNlpfX4Vtr5Svy8LUU8asec4zGkQRgtSCzH/G7YJ6zo3PiAWHeHHQ5W0+bHDpmfYZlfk+RnISx+ZaPWbk5xlj++A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 137.71.25.55) smtp.rcpttodomain=arm.com smtp.mailfrom=analog.com; dmarc=bestguesspass action=none header.from=analog.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.onmicrosoft.com; s=selector2-analog-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=m61ngQcFwBJx4helHkP+KwCabcehC+bTr7Q7UDAfB9Q=; b=g/9Vgy2Yu8Jp19bAJWlkJpAlV5Q1uIiUSfPZnvJIGnojVm2diPC6d4unO02QXGo2ywn5DC+TjMZv/mFwY/FLk7toB8sG/Z09rePcICqUH4+oRomjPT8yp+zM6DwQfyv+Gd4JIXAtTI5NJh+DGoUKBW5VGbT3v6YFy82WadLoKrw= Received: from BN6PR03CA0081.namprd03.prod.outlook.com (2603:10b6:405:6f::19) by CH2PR03MB5192.namprd03.prod.outlook.com (2603:10b6:610:90::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2347.17; Thu, 10 Oct 2019 07:42:12 +0000 Received: from BL2NAM02FT057.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e46::202) by BN6PR03CA0081.outlook.office365.com (2603:10b6:405:6f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2347.18 via Frontend Transport; Thu, 10 Oct 2019 07:42:12 +0000 Received-SPF: Pass (protection.outlook.com: domain of analog.com designates 137.71.25.55 as permitted sender) receiver=protection.outlook.com; client-ip=137.71.25.55; helo=nwd2mta1.analog.com; Received: from nwd2mta1.analog.com (137.71.25.55) by BL2NAM02FT057.mail.protection.outlook.com (10.152.77.36) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.2347.16 via Frontend Transport; Thu, 10 Oct 2019 07:42:11 +0000 Received: from NWD2HUBCAS7.ad.analog.com (nwd2hubcas7.ad.analog.com [10.64.69.107]) by nwd2mta1.analog.com (8.13.8/8.13.8) with ESMTP id x9A7g4bC013825 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=OK); Thu, 10 Oct 2019 00:42:04 -0700 Received: from nsa.sphairon.box (10.44.3.90) by NWD2HUBCAS7.ad.analog.com (10.64.69.107) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 10 Oct 2019 03:42:09 -0400 From: =?UTF-8?q?Nuno=20S=C3=A1?= To: , Date: Thu, 10 Oct 2019 09:42:33 +0200 Message-ID: <20191010074234.7344-1-nuno.sa@analog.com> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 X-Originating-IP: [10.44.3.90] X-ADIRoutedOnPrem: True X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:137.71.25.55; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(396003)(136003)(39860400002)(346002)(376002)(199004)(189003)(86362001)(7736002)(106002)(54906003)(50226002)(966005)(5660300002)(30864003)(70206006)(246002)(50466002)(2870700001)(305945005)(45776006)(478600001)(336012)(110136005)(1076003)(6306002)(70586007)(426003)(7636002)(8936002)(6666004)(356004)(2616005)(186003)(4326008)(36756003)(16526019)(316002)(3846002)(5820100001)(2906002)(23676004)(26005)(53416004)(486006)(476003)(47776003)(14444005)(126002)(8676002)(6116002); DIR:OUT; SFP:1101; SCL:1; SRVR:CH2PR03MB5192; H:nwd2mta1.analog.com; FPR:; SPF:Pass; LANG:en; PTR:nwd2mail10.analog.com; A:1; MX:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: be100cbe-cf9f-4c85-e494-08d74d555c6e X-MS-TrafficTypeDiagnostic: CH2PR03MB5192: X-MS-Exchange-PUrlCount: 2 X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1417; X-Forefront-PRVS: 018632C080 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rB1w0v00BC3tZZfPQ/g4XCYvu8ifqV37srQPnDYj9AD5KM774XkaN5OT1e78ujQ37ceHSnMZrMDlPGNwvA1x4F40mWM4r8aGHCyd/DwkLifFVGyv8SvKQ0atTTPWeo6VcFUQqAmDl8HS4Neg3HRVd5EYWdEwuhsv4wGD6xO/Vt8BGDT1wdS/6PSfPdF3iovJAHHYrX/gQXtrOf+WBuTz2vKtwfPkt9NK+g0nA6+niBfNMDF6aIvT/o/iIjn1xg3eelGhrWHolFxf8sdyCvSo3ZrRWfY8d1segcSgxjh8wTMpNdsDBxv6apPB9b6wqyxiNVDzH+DfLvkuGlTgPDdohiLeCk3k+9+JHBCtPMB2PnPsnllK+LOeED7/ZJxOtRuFSVtMWSfSFe3ryW4wrDDkt8jVvxIs4woyRiwWpSxVkirM4RwfaMcv2TnZ6GhLWW05+Z4Ltsh3GyZteiOTbGondQ== X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Oct 2019 07:42:11.4074 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: be100cbe-cf9f-4c85-e494-08d74d555c6e X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=eaa689b4-8f87-40e0-9c6f-7228de4d754a; Ip=[137.71.25.55]; Helo=[nwd2mta1.analog.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5192 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-10-10_04:2019-10-08,2019-10-10 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 spamscore=0 mlxlogscore=999 malwarescore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 clxscore=1015 bulkscore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1908290000 definitions=main-1910100071 Cc: Mark Rutland , Lars-Peter Clausen , Takashi Iwai , Rob Herring , Liam Girdwood , Mark Brown Subject: [alsa-devel] [PATCH v3 1/2] ASOC: Add ADAU7118 8 Channel PDM-to-I2S/TDM Converter driver X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" VGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSA4IGNoYW5uZWwgUERNLXRvLUkyUy9URE0g Y29udmVydGVyLiBUaGUKQURBVTcxMTggY29udmVydHMgZm91ciBzdGVyZW8gcHVsc2UgZGVuc2l0 eSBtb2R1bGF0aW9uIChQRE0pIGJpdHN0cmVhbXMKaW50byBvbmUgcHVsc2UgY29kZSBtb2R1bGF0 aW9uIChQQ00pIG91dHB1dCBzdHJlYW0uIFRoZSBzb3VyY2UgZm9yIHRoZSBQRE0KZGF0YSBjYW4g YmUgZWlnaHQgbWljcm9waG9uZXMgb3Igb3RoZXIgUERNIHNvdXJjZXMuIFRoZSBQQ00gYXVkaW8g ZGF0YSBpcwpvdXRwdXQgb24gYSBzZXJpYWwgYXVkaW8gaW50ZXJmYWNlIHBvcnQgaW4gZWl0aGVy IGludGVyLUlDIHNlcmlhbCAoSTJTKSBvcgp0aW1lIGRvbWFpbiBtdWx0aXBsZXhlZCAoVERNKSBm b3JtYXQuCgpTaWduZWQtb2ZmLWJ5OiBOdW5vIFPDoSA8bnVuby5zYUBhbmFsb2cuY29tPgotLS0K Q2hhbmdlcyBpbiB2MjoKICogVXNlIEMrKyBjb21lbnQgc3R5bGUgb24gdGhlIGVudGlyZSBjb21t ZW50IGluIHRoZSAuYyBmaWxlczsKICogRG8gbm90IHVzZSB0ZXJuZXJ5IG9wZXJhdG9yOwogKiBE byBub3QgdXNlIGBkZXZtX3JlZ3VsYXRvcl9nZXRfb3B0aW9uYWxgIGFzIHRoZSBkZXZpY2UgYWx3 YXlzIHJlcXVpcmVzIHBvd2VyOwogKiBMZXQgREFQTSBzdXNwZW5kL3Jlc3VtZSB0aGUgZGV2aWNl LgoKQ2hhbmdlcyBpbiB2MzoKICogbm8gY2hhbmdlcy4KCiBNQUlOVEFJTkVSUyAgICAgICAgICAg ICAgICAgICAgIHwgICAxICsKIHNvdW5kL3NvYy9jb2RlY3MvS2NvbmZpZyAgICAgICAgfCAgMjgg KysKIHNvdW5kL3NvYy9jb2RlY3MvTWFrZWZpbGUgICAgICAgfCAgIDYgKwogc291bmQvc29jL2Nv ZGVjcy9hZGF1NzExOC1ody5jICB8ICA0MyArKysKIHNvdW5kL3NvYy9jb2RlY3MvYWRhdTcxMTgt aTJjLmMgfCAgODIgKysrKysKIHNvdW5kL3NvYy9jb2RlY3MvYWRhdTcxMTguYyAgICAgfCA1ODYg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNvdW5kL3NvYy9jb2RlY3MvYWRhdTcx MTguaCAgICAgfCAgMjQgKysKIDcgZmlsZXMgY2hhbmdlZCwgNzcwIGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzb3VuZC9zb2MvY29kZWNzL2FkYXU3MTE4LWh3LmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzb3VuZC9zb2MvY29kZWNzL2FkYXU3MTE4LWkyYy5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgc291bmQvc29jL2NvZGVjcy9hZGF1NzExOC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc291 bmQvc29jL2NvZGVjcy9hZGF1NzExOC5oCgpkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlO VEFJTkVSUwppbmRleCA1NTE5OWVmN2ZhNzQuLmJmMmM3MWY5MGViNiAxMDA2NDQKLS0tIGEvTUFJ TlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAgLTEwMDIsNiArMTAwMiw3IEBAIEY6CWRyaXZl cnMvbWVkaWEvaTJjL2Fkdjc4NDIqCiAKIEFOQUxPRyBERVZJQ0VTIElOQyBBU09DIENPREVDIERS SVZFUlMKIE06CUxhcnMtUGV0ZXIgQ2xhdXNlbiA8bGFyc0BtZXRhZm9vLmRlPgorTToJTnVubyBT w6EgPG51bm8uc2FAYW5hbG9nLmNvbT4KIEw6CWFsc2EtZGV2ZWxAYWxzYS1wcm9qZWN0Lm9yZyAo bW9kZXJhdGVkIGZvciBub24tc3Vic2NyaWJlcnMpCiBXOglodHRwOi8vd2lraS5hbmFsb2cuY29t LwogVzoJaHR0cDovL2V6LmFuYWxvZy5jb20vY29tbXVuaXR5L2xpbnV4LWRldmljZS1kcml2ZXJz CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL0tjb25maWcgYi9zb3VuZC9zb2MvY29kZWNz L0tjb25maWcKaW5kZXggYmNhYzk1Nzg1NDkzLi5hZTIxM2M2MzkyZWMgMTAwNjQ0Ci0tLSBhL3Nv dW5kL3NvYy9jb2RlY3MvS2NvbmZpZworKysgYi9zb3VuZC9zb2MvY29kZWNzL0tjb25maWcKQEAg LTM0LDYgKzM0LDggQEAgY29uZmlnIFNORF9TT0NfQUxMX0NPREVDUwogCXNlbGVjdCBTTkRfU09D X0FEQVUxOTc3X0kyQyBpZiBJMkMKIAlzZWxlY3QgU05EX1NPQ19BREFVMTcwMSBpZiBJMkMKIAlz ZWxlY3QgU05EX1NPQ19BREFVNzAwMgorCXNlbGVjdCBTTkRfU09DX0FEQVU3MTE4X0kyQyBpZiBJ MkMKKwlzZWxlY3QgU05EX1NPQ19BREFVNzExOF9IVwogCXNlbGVjdCBTTkRfU09DX0FEUzExN1gK IAlzZWxlY3QgU05EX1NPQ19BSzQxMDQgaWYgU1BJX01BU1RFUgogCXNlbGVjdCBTTkRfU09DX0FL NDExOCBpZiBJMkMKQEAgLTM5Niw2ICszOTgsMzIgQEAgY29uZmlnIFNORF9TT0NfQURBVTE5Nzdf STJDCiBjb25maWcgU05EX1NPQ19BREFVNzAwMgogCXRyaXN0YXRlICJBbmFsb2cgRGV2aWNlcyBB REFVNzAwMiBTdGVyZW8gUERNLXRvLUkyUy9URE0gQ29udmVydGVyIgogCitjb25maWcgU05EX1NP Q19BREFVNzExOAorCXRyaXN0YXRlCisKK2NvbmZpZyBTTkRfU09DX0FEQVU3MTE4X0hXCisJdHJp c3RhdGUgIkFuYWxvZyBEZXZpY2VzIEFEQVU3MTE4IDggQ2hhbm5lbCBQRE0tdG8tSTJTL1RETSBD b252ZXJ0ZXIgLSBIVyBNb2RlIgorCXNlbGVjdCBTTkRfU09DX0FEQVU3MTE4CisJaGVscAorCSAg RW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBBbmFsb2cgRGV2aWNlcyBBREFVNzExOCA4IENoYW5uZWwg UERNLXRvLUkyUy9URE0KKwkgIENvbnZlcnRlci4gSW4gdGhpcyBtb2RlLCB0aGUgZGV2aWNlIHdv cmtzIGluIHN0YW5kYWxvbmUgbW9kZSB3aGljaAorCSAgbWVhbnMgdGhhdCB0aGVyZSBpcyBubyBi dXMgdG8gY29tdW5pY2F0ZSB3aXRoIGl0LiBTdGVyZW8gbW9kZSBpcyBub3QKKwkgIHN1cHBvcnRl ZCBpbiB0aGlzIG1vZGUuCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUs IGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIHNuZC1zb2MtYWRh dTcxMTgtaHcuCisKK2NvbmZpZyBTTkRfU09DX0FEQVU3MTE4X0kyQworCXRyaXN0YXRlICJBbmFs b2cgRGV2aWNlcyBBREFVNzExOCA4IENoYW5uZWwgUERNLXRvLUkyUy9URE0gQ29udmVydGVyIC0g STJDIgorCXNlbGVjdCBTTkRfU09DX0FEQVU3MTE4CisJc2VsZWN0IFJFR01BUF9JMkMKKwloZWxw CisJICBFbmFibGUgc3VwcG9ydCBmb3IgdGhlIEFuYWxvZyBEZXZpY2VzIEFEQVU3MTE4IDggQ2hh bm5lbCBQRE0tdG8tSTJTL1RETQorCSAgQ29udmVydGVyIG92ZXIgSTJDLiBUaGlzIGdpdmVzIGZ1 bGwgc3VwcG9ydCBvdmVyIHRoZSBkZXZpY2UuCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIg YXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVk IHNuZC1zb2MtYWRhdTcxMTgtaTJjLgorCiBjb25maWcgU05EX1NPQ19BREFWODBYCiAJdHJpc3Rh dGUKIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9NYWtlZmlsZSBiL3NvdW5kL3NvYy9j b2RlY3MvTWFrZWZpbGUKaW5kZXggNzNiMmQ1OTgyZGNiLi4yMTE4NDA3YTFkZDUgMTAwNjQ0Ci0t LSBhL3NvdW5kL3NvYy9jb2RlY3MvTWFrZWZpbGUKKysrIGIvc291bmQvc29jL2NvZGVjcy9NYWtl ZmlsZQpAQCAtMjIsNiArMjIsOSBAQCBzbmQtc29jLWFkYXUxOTc3LW9ianMgOj0gYWRhdTE5Nzcu bwogc25kLXNvYy1hZGF1MTk3Ny1zcGktb2JqcyA6PSBhZGF1MTk3Ny1zcGkubwogc25kLXNvYy1h ZGF1MTk3Ny1pMmMtb2JqcyA6PSBhZGF1MTk3Ny1pMmMubwogc25kLXNvYy1hZGF1NzAwMi1vYmpz IDo9IGFkYXU3MDAyLm8KK3NuZC1zb2MtYWRhdTcxMTgtb2JqcyA6PSBhZGF1NzExOC5vCitzbmQt c29jLWFkYXU3MTE4LWkyYy1vYmpzIDo9IGFkYXU3MTE4LWkyYy5vCitzbmQtc29jLWFkYXU3MTE4 LWh3LW9ianMgOj0gYWRhdTcxMTgtaHcubwogc25kLXNvYy1hZGF2ODB4LW9ianMgOj0gYWRhdjgw eC5vCiBzbmQtc29jLWFkYXY4MDEtb2JqcyA6PSBhZGF2ODAxLm8KIHNuZC1zb2MtYWRhdjgwMy1v YmpzIDo9IGFkYXY4MDMubwpAQCAtMzA1LDYgKzMwOCw5IEBAIG9iai0kKENPTkZJR19TTkRfU09D X0FEQVUxOTc3KQkJKz0gc25kLXNvYy1hZGF1MTk3Ny5vCiBvYmotJChDT05GSUdfU05EX1NPQ19B REFVMTk3N19TUEkpCSs9IHNuZC1zb2MtYWRhdTE5Nzctc3BpLm8KIG9iai0kKENPTkZJR19TTkRf U09DX0FEQVUxOTc3X0kyQykJKz0gc25kLXNvYy1hZGF1MTk3Ny1pMmMubwogb2JqLSQoQ09ORklH X1NORF9TT0NfQURBVTcwMDIpCSs9IHNuZC1zb2MtYWRhdTcwMDIubworb2JqLSQoQ09ORklHX1NO RF9TT0NfQURBVTcxMTgpCSs9IHNuZC1zb2MtYWRhdTcxMTgubworb2JqLSQoQ09ORklHX1NORF9T T0NfQURBVTcxMThfSTJDKQkrPSBzbmQtc29jLWFkYXU3MTE4LWkyYy5vCitvYmotJChDT05GSUdf U05EX1NPQ19BREFVNzExOF9IVykJKz0gc25kLXNvYy1hZGF1NzExOC1ody5vCiBvYmotJChDT05G SUdfU05EX1NPQ19BREFWODBYKSAgKz0gc25kLXNvYy1hZGF2ODB4Lm8KIG9iai0kKENPTkZJR19T TkRfU09DX0FEQVY4MDEpICArPSBzbmQtc29jLWFkYXY4MDEubwogb2JqLSQoQ09ORklHX1NORF9T T0NfQURBVjgwMykgICs9IHNuZC1zb2MtYWRhdjgwMy5vCmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mv Y29kZWNzL2FkYXU3MTE4LWh3LmMgYi9zb3VuZC9zb2MvY29kZWNzL2FkYXU3MTE4LWh3LmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40NWE1ZDJkY2MwZjIKLS0tIC9k ZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvY29kZWNzL2FkYXU3MTE4LWh3LmMKQEAgLTAsMCArMSw0 MyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8vCisvLyBBbmFsb2cg RGV2aWNlcyBBREFVNzExOCA4IGNoYW5uZWwgUERNLXRvLUkyUy9URE0gQ29udmVydGVyIFN0YW5k YWxvbmUgSHcKKy8vIGRyaXZlcgorLy8KKy8vIENvcHlyaWdodCAyMDE5IEFuYWxvZyBEZXZpY2Vz IEluYy4KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZF9k ZXZpY2V0YWJsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorCisjaW5j bHVkZSAiYWRhdTcxMTguaCIKKworc3RhdGljIGludCBhZGF1NzExOF9wcm9iZV9odyhzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBhZGF1NzExOF9wcm9iZSgmcGRldi0+ ZGV2LCBOVUxMLCB0cnVlKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg YWRhdTcxMThfb2ZfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gImFkaSxhZGF1NzExOCIg fSwKKwl7fQorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGFkYXU3MTE4X29mX21hdGNoKTsK Kworc3RhdGljIGNvbnN0IHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaWQgYWRhdTcxMThfaWRbXSA9 IHsKKwl7IC5uYW1lCT0gImFkYXU3MTE4IiB9LAorCXsgfQorfTsKK01PRFVMRV9ERVZJQ0VfVEFC TEUocGxhdGZvcm0sIGFkYXU3MTE4X2lkKTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2 ZXIgYWRhdTcxMThfZHJpdmVyX2h3ID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImFkYXU3 MTE4IiwKKwkJLm9mX21hdGNoX3RhYmxlID0gYWRhdTcxMThfb2ZfbWF0Y2gsCisJfSwKKwkucHJv YmUgPSBhZGF1NzExOF9wcm9iZV9odywKKwkuaWRfdGFibGUgPSBhZGF1NzExOF9pZCwKK307Citt b2R1bGVfcGxhdGZvcm1fZHJpdmVyKGFkYXU3MTE4X2RyaXZlcl9odyk7CisKK01PRFVMRV9BVVRI T1IoIk51bm8gU2EgPG51bm8uc2FAYW5hbG9nLmNvbT4iKTsKK01PRFVMRV9ERVNDUklQVElPTigi QURBVTcxMTggOCBjaGFubmVsIFBETS10by1JMlMvVERNIENvbnZlcnRlciBkcml2ZXIgZm9yIHN0 YW5kYWxvbmUgaHcgbW9kZSIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEv c291bmQvc29jL2NvZGVjcy9hZGF1NzExOC1pMmMuYyBiL3NvdW5kL3NvYy9jb2RlY3MvYWRhdTcx MTgtaTJjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hODIxMTM2 MmZlODIKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvY29kZWNzL2FkYXU3MTE4LWkyYy5j CkBAIC0wLDAgKzEsODIgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisv LworLy8gQW5hbG9nIERldmljZXMgQURBVTcxMTggOCBjaGFubmVsIFBETS10by1JMlMvVERNIENv bnZlcnRlciBkcml2ZXIgb3ZlciBJMkMKKy8vCisvLyBDb3B5cmlnaHQgMjAxOSBBbmFsb2cgRGV2 aWNlcyBJbmMuCisKKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1 bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKworI2luY2x1ZGUgImFkYXU3MTE4Lmgi CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnX2RlZmF1bHQgYWRhdTcxMThfcmVnX2RlZmF1bHRz W10gPSB7CisJeyBBREFVNzExOF9SRUdfVkVORE9SX0lELCAweDQxIH0sCisJeyBBREFVNzExOF9S RUdfREVWSUNFX0lEMSwgMHg3MSB9LAorCXsgQURBVTcxMThfUkVHX0RFVklDRV9JRDIsIDB4MTgg fSwKKwl7IEFEQVU3MTE4X1JFR19SRVZJU0lPTl9JRCwgMHgwMCB9LAorCXsgQURBVTcxMThfUkVH X0VOQUJMRVMsIDB4M0YgfSwKKwl7IEFEQVU3MTE4X1JFR19ERUNfUkFUSU9fQ0xLX01BUCwgMHhD MCB9LAorCXsgQURBVTcxMThfUkVHX0hQRl9DT05UUk9MLCAweEQwIH0sCisJeyBBREFVNzExOF9S RUdfU1BUX0NUUkwxLCAweDQxIH0sCisJeyBBREFVNzExOF9SRUdfU1BUX0NUUkwyLCAweDAwIH0s CisJeyBBREFVNzExOF9SRUdfU1BUX0NYKDApLCAweDAxIH0sCisJeyBBREFVNzExOF9SRUdfU1BU X0NYKDEpLCAweDExIH0sCisJeyBBREFVNzExOF9SRUdfU1BUX0NYKDIpLCAweDIxIH0sCisJeyBB REFVNzExOF9SRUdfU1BUX0NYKDMpLCAweDMxIH0sCisJeyBBREFVNzExOF9SRUdfU1BUX0NYKDQp LCAweDQxIH0sCisJeyBBREFVNzExOF9SRUdfU1BUX0NYKDUpLCAweDUxIH0sCisJeyBBREFVNzEx OF9SRUdfU1BUX0NYKDYpLCAweDYxIH0sCisJeyBBREFVNzExOF9SRUdfU1BUX0NYKDcpLCAweDcx IH0sCisJeyBBREFVNzExOF9SRUdfRFJJVkVfU1RSRU5HVEgsIDB4MmEgfSwKKwl7IEFEQVU3MTE4 X1JFR19SRVNFVCwgMHgwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29u ZmlnIGFkYXU3MTE4X3JlZ21hcF9jb25maWcgPSB7CisJLnJlZ19iaXRzID0gOCwKKwkudmFsX2Jp dHMgPSA4LAorCS5yZWdfZGVmYXVsdHMgPSBhZGF1NzExOF9yZWdfZGVmYXVsdHMsCisJLm51bV9y ZWdfZGVmYXVsdHMgPSBBUlJBWV9TSVpFKGFkYXU3MTE4X3JlZ19kZWZhdWx0cyksCisJLmNhY2hl X3R5cGUgPSBSRUdDQUNIRV9SQlRSRUUsCisJLm1heF9yZWdpc3RlciA9IEFEQVU3MTE4X1JFR19S RVNFVCwKK307CisKK3N0YXRpYyBpbnQgYWRhdTcxMThfcHJvYmVfaTJjKHN0cnVjdCBpMmNfY2xp ZW50ICppMmMsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCit7CisJ c3RydWN0IHJlZ21hcCAqbWFwOworCisJbWFwID0gZGV2bV9yZWdtYXBfaW5pdF9pMmMoaTJjLCAm YWRhdTcxMThfcmVnbWFwX2NvbmZpZyk7CisJaWYgKElTX0VSUihtYXApKSB7CisJCWRldl9lcnIo JmkyYy0+ZGV2LCAiRmFpbGVkIHRvIGluaXQgcmVnbWFwICVsZFxuIiwgUFRSX0VSUihtYXApKTsK KwkJcmV0dXJuIFBUUl9FUlIobWFwKTsKKwl9CisKKwlyZXR1cm4gYWRhdTcxMThfcHJvYmUoJmky Yy0+ZGV2LCBtYXAsIGZhbHNlKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2Vf aWQgYWRhdTcxMThfb2ZfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gImFkaSxhZGF1NzEx OCIgfSwKKwl7fQorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGFkYXU3MTE4X29mX21hdGNo KTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIGFkYXU3MTE4X2lkW10gPSB7 CisJeyJhZGF1NzExOCIsIDB9LAorCXt9Cit9OworTU9EVUxFX0RFVklDRV9UQUJMRShpMmMsIGFk YXU3MTE4X2lkKTsKKworc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIGFkYXU3MTE4X2RyaXZlciA9 IHsKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJhZGF1NzExOCIsCisJCS5vZl9tYXRjaF90YWJs ZSA9IGFkYXU3MTE4X29mX21hdGNoLAorCX0sCisJLnByb2JlID0gYWRhdTcxMThfcHJvYmVfaTJj LAorCS5pZF90YWJsZSA9IGFkYXU3MTE4X2lkLAorfTsKK21vZHVsZV9pMmNfZHJpdmVyKGFkYXU3 MTE4X2RyaXZlcik7CisKK01PRFVMRV9BVVRIT1IoIk51bm8gU2EgPG51bm8uc2FAYW5hbG9nLmNv bT4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiQURBVTcxMTggOCBjaGFubmVsIFBETS10by1JMlMv VERNIENvbnZlcnRlciBkcml2ZXIgb3ZlciBJMkMiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsK ZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvYWRhdTcxMTguYyBiL3NvdW5kL3NvYy9jb2Rl Y3MvYWRhdTcxMTguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJm NWE1ZDc1ZjgxYQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvYWRhdTcxMTgu YwpAQCAtMCwwICsxLDU4NiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAK Ky8vCisvLyBBbmFsb2cgRGV2aWNlcyBBREFVNzExOCA4IGNoYW5uZWwgUERNLXRvLUkyUy9URE0g Q29udmVydGVyIGRyaXZlcgorLy8KKy8vIENvcHlyaWdodCAyMDE5IEFuYWxvZyBEZXZpY2VzIElu Yy4KKworI2luY2x1ZGUgPGxpbnV4L2JpdGZpZWxkLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxl Lmg+CisjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisjaW5jbHVkZSA8bGludXgvcmVndWxhdG9y L2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8c291bmQvcGNtX3BhcmFtcy5oPgorI2luY2x1ZGUgPHNv dW5kL3NvYy5oPgorCisjaW5jbHVkZSAiYWRhdTcxMTguaCIKKworI2RlZmluZSBBREFVNzExOF9E RUNfUkFUSU9fTUFTSwkJR0VOTUFTSygxLCAwKQorI2RlZmluZSBBREFVNzExOF9ERUNfUkFUSU8o eCkJCUZJRUxEX1BSRVAoQURBVTcxMThfREVDX1JBVElPX01BU0ssIHgpCisjZGVmaW5lIEFEQVU3 MTE4X0NMS19NQVBfTUFTSwkJR0VOTUFTSyg3LCA0KQorI2RlZmluZSBBREFVNzExOF9TTE9UX1dJ RFRIX01BU0sJR0VOTUFTSyg1LCA0KQorI2RlZmluZSBBREFVNzExOF9TTE9UX1dJRFRIKHgpCQlG SUVMRF9QUkVQKEFEQVU3MTE4X1NMT1RfV0lEVEhfTUFTSywgeCkKKyNkZWZpbmUgQURBVTcxMThf VFJJU1RBVEVfTUFTSwkJQklUKDYpCisjZGVmaW5lIEFEQVU3MTE4X1RSSVNUQVRFKHgpCQlGSUVM RF9QUkVQKEFEQVU3MTE4X1RSSVNUQVRFX01BU0ssIHgpCisjZGVmaW5lIEFEQVU3MTE4X0RBVEFf Rk1UX01BU0sJCUdFTk1BU0soMywgMSkKKyNkZWZpbmUgQURBVTcxMThfREFUQV9GTVQoeCkJCUZJ RUxEX1BSRVAoQURBVTcxMThfREFUQV9GTVRfTUFTSywgeCkKKyNkZWZpbmUgQURBVTcxMThfU0FJ X01PREVfTUFTSwkJQklUKDApCisjZGVmaW5lIEFEQVU3MTE4X1NBSV9NT0RFKHgpCQlGSUVMRF9Q UkVQKEFEQVU3MTE4X1NBSV9NT0RFX01BU0ssIHgpCisjZGVmaW5lIEFEQVU3MTE4X0xSQ0xLX0JD TEtfUE9MX01BU0sJR0VOTUFTSygxLCAwKQorI2RlZmluZSBBREFVNzExOF9MUkNMS19CQ0xLX1BP TCh4KSBcCisJCQkJRklFTERfUFJFUChBREFVNzExOF9MUkNMS19CQ0xLX1BPTF9NQVNLLCB4KQor I2RlZmluZSBBREFVNzExOF9TUFRfU0xPVF9NQVNLCQlHRU5NQVNLKDcsIDQpCisjZGVmaW5lIEFE QVU3MTE4X1NQVF9TTE9UKHgpCQlGSUVMRF9QUkVQKEFEQVU3MTE4X1NQVF9TTE9UX01BU0ssIHgp CisjZGVmaW5lIEFEQVU3MTE4X0ZVTExfU09GVF9SX01BU0sJQklUKDEpCisjZGVmaW5lIEFEQVU3 MTE4X0ZVTExfU09GVF9SKHgpCQlGSUVMRF9QUkVQKEFEQVU3MTE4X0ZVTExfU09GVF9SX01BU0ss IHgpCisKK3N0cnVjdCBhZGF1NzExOF9kYXRhIHsKKwlzdHJ1Y3QgcmVnbWFwICptYXA7CisJc3Ry dWN0IGRldmljZSAqZGV2OworCXN0cnVjdCByZWd1bGF0b3IgKmlvdmRkOworCXN0cnVjdCByZWd1 bGF0b3IgKmR2ZGQ7CisJdTMyIHNsb3Rfd2lkdGg7CisJdTMyIHNsb3RzOworCWJvb2wgaHdfbW9k ZTsKKwlib29sIHJpZ2h0X2o7Cit9OworCisvKiBJbnB1dCBFbmFibGUgKi8KK3N0YXRpYyBjb25z dCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhZGF1NzExOF9kYXBtX3BkbV9jb250cm9sWzRdID0g eworCVNPQ19EQVBNX1NJTkdMRSgiQ2FwdHVyZSBTd2l0Y2giLCBBREFVNzExOF9SRUdfRU5BQkxF UywgMCwgMSwgMCksCisJU09DX0RBUE1fU0lOR0xFKCJDYXB0dXJlIFN3aXRjaCIsIEFEQVU3MTE4 X1JFR19FTkFCTEVTLCAxLCAxLCAwKSwKKwlTT0NfREFQTV9TSU5HTEUoIkNhcHR1cmUgU3dpdGNo IiwgQURBVTcxMThfUkVHX0VOQUJMRVMsIDIsIDEsIDApLAorCVNPQ19EQVBNX1NJTkdMRSgiQ2Fw dHVyZSBTd2l0Y2giLCBBREFVNzExOF9SRUdfRU5BQkxFUywgMywgMSwgMCksCit9OworCitzdGF0 aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgYWRhdTcxMThfd2lkZ2V0c19zd1td ID0geworCS8qIElucHV0IEVuYWJsZSBTd2l0Y2hlcyAqLworCVNORF9TT0NfREFQTV9TV0lUQ0go IlBETTAiLCBTTkRfU09DX05PUE0sIDAsIDAsCisJCQkgICAgJmFkYXU3MTE4X2RhcG1fcGRtX2Nv bnRyb2xbMF0pLAorCVNORF9TT0NfREFQTV9TV0lUQ0goIlBETTEiLCBTTkRfU09DX05PUE0sIDAs IDAsCisJCQkgICAgJmFkYXU3MTE4X2RhcG1fcGRtX2NvbnRyb2xbMV0pLAorCVNORF9TT0NfREFQ TV9TV0lUQ0goIlBETTIiLCBTTkRfU09DX05PUE0sIDAsIDAsCisJCQkgICAgJmFkYXU3MTE4X2Rh cG1fcGRtX2NvbnRyb2xbMl0pLAorCVNORF9TT0NfREFQTV9TV0lUQ0goIlBETTMiLCBTTkRfU09D X05PUE0sIDAsIDAsCisJCQkgICAgJmFkYXU3MTE4X2RhcG1fcGRtX2NvbnRyb2xbM10pLAorCisJ LyogUERNIENsb2NrcyAqLworCVNORF9TT0NfREFQTV9TVVBQTFkoIlBETV9DTEswIiwgQURBVTcx MThfUkVHX0VOQUJMRVMsIDQsIDAsIE5VTEwsIDApLAorCVNORF9TT0NfREFQTV9TVVBQTFkoIlBE TV9DTEsxIiwgQURBVTcxMThfUkVHX0VOQUJMRVMsIDUsIDAsIE5VTEwsIDApLAorCisJLyogT3V0 cHV0IGNoYW5uZWxzICovCisJU05EX1NPQ19EQVBNX0FJRl9PVVQoIkFJRjFUWDEiLCAiQ2FwdHVy ZSIsIDAsIEFEQVU3MTE4X1JFR19TUFRfQ1goMCksCisJCQkgICAgIDAsIDApLAorCVNORF9TT0Nf REFQTV9BSUZfT1VUKCJBSUYxVFgyIiwgIkNhcHR1cmUiLCAwLCBBREFVNzExOF9SRUdfU1BUX0NY KDEpLAorCQkJICAgICAwLCAwKSwKKwlTTkRfU09DX0RBUE1fQUlGX09VVCgiQUlGMVRYMyIsICJD YXB0dXJlIiwgMCwgQURBVTcxMThfUkVHX1NQVF9DWCgyKSwKKwkJCSAgICAgMCwgMCksCisJU05E X1NPQ19EQVBNX0FJRl9PVVQoIkFJRjFUWDQiLCAiQ2FwdHVyZSIsIDAsIEFEQVU3MTE4X1JFR19T UFRfQ1goMyksCisJCQkgICAgIDAsIDApLAorCVNORF9TT0NfREFQTV9BSUZfT1VUKCJBSUYxVFg1 IiwgIkNhcHR1cmUiLCAwLCBBREFVNzExOF9SRUdfU1BUX0NYKDQpLAorCQkJICAgICAwLCAwKSwK KwlTTkRfU09DX0RBUE1fQUlGX09VVCgiQUlGMVRYNiIsICJDYXB0dXJlIiwgMCwgQURBVTcxMThf UkVHX1NQVF9DWCg1KSwKKwkJCSAgICAgMCwgMCksCisJU05EX1NPQ19EQVBNX0FJRl9PVVQoIkFJ RjFUWDciLCAiQ2FwdHVyZSIsIDAsIEFEQVU3MTE4X1JFR19TUFRfQ1goNiksCisJCQkgICAgIDAs IDApLAorCVNORF9TT0NfREFQTV9BSUZfT1VUKCJBSUYxVFg4IiwgIkNhcHR1cmUiLCAwLCBBREFV NzExOF9SRUdfU1BUX0NYKDcpLAorCQkJICAgICAwLCAwKSwKK307CisKK3N0YXRpYyBjb25zdCBz dHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGFkYXU3MTE4X3JvdXRlc19zd1tdID0geworCXsgIlBE TTAiLCAiQ2FwdHVyZSBTd2l0Y2giLCAiUERNX0RBVDAiIH0sCisJeyAiUERNMSIsICJDYXB0dXJl IFN3aXRjaCIsICJQRE1fREFUMSIgfSwKKwl7ICJQRE0yIiwgIkNhcHR1cmUgU3dpdGNoIiwgIlBE TV9EQVQyIiB9LAorCXsgIlBETTMiLCAiQ2FwdHVyZSBTd2l0Y2giLCAiUERNX0RBVDMiIH0sCisJ eyAiQUlGMVRYMSIsIE5VTEwsICJQRE0wIiB9LAorCXsgIkFJRjFUWDIiLCBOVUxMLCAiUERNMCIg fSwKKwl7ICJBSUYxVFgzIiwgTlVMTCwgIlBETTEiIH0sCisJeyAiQUlGMVRYNCIsIE5VTEwsICJQ RE0xIiB9LAorCXsgIkFJRjFUWDUiLCBOVUxMLCAiUERNMiIgfSwKKwl7ICJBSUYxVFg2IiwgTlVM TCwgIlBETTIiIH0sCisJeyAiQUlGMVRYNyIsIE5VTEwsICJQRE0zIiB9LAorCXsgIkFJRjFUWDgi LCBOVUxMLCAiUERNMyIgfSwKKwl7ICJDYXB0dXJlIiwgTlVMTCwgIlBETV9DTEswIiB9LAorCXsg IkNhcHR1cmUiLCBOVUxMLCAiUERNX0NMSzEiIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0 IHNuZF9zb2NfZGFwbV93aWRnZXQgYWRhdTcxMThfd2lkZ2V0c19od1tdID0geworCVNORF9TT0Nf REFQTV9BSUZfT1VUKCJBSUYxVFgiLCAiQ2FwdHVyZSIsIDAsIFNORF9TT0NfTk9QTSwgMCwgMCks Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhZGF1NzExOF9y b3V0ZXNfaHdbXSA9IHsKKwl7ICJBSUYxVFgiLCBOVUxMLCAiUERNX0RBVDAiIH0sCisJeyAiQUlG MVRYIiwgTlVMTCwgIlBETV9EQVQxIiB9LAorCXsgIkFJRjFUWCIsIE5VTEwsICJQRE1fREFUMiIg fSwKKwl7ICJBSUYxVFgiLCBOVUxMLCAiUERNX0RBVDMiIH0sCit9OworCitzdGF0aWMgY29uc3Qg c3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgYWRhdTcxMThfd2lkZ2V0c1tdID0geworCVNORF9T T0NfREFQTV9JTlBVVCgiUERNX0RBVDAiKSwKKwlTTkRfU09DX0RBUE1fSU5QVVQoIlBETV9EQVQx IiksCisJU05EX1NPQ19EQVBNX0lOUFVUKCJQRE1fREFUMiIpLAorCVNORF9TT0NfREFQTV9JTlBV VCgiUERNX0RBVDMiKSwKK307CisKK3N0YXRpYyBpbnQgYWRhdTcxMThfc2V0X2NoYW5uZWxfbWFw KHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAorCQkJCSAgICB1bnNpZ25lZCBpbnQgdHhfbnVtLCB1 bnNpZ25lZCBpbnQgKnR4X3Nsb3QsCisJCQkJICAgIHVuc2lnbmVkIGludCByeF9udW0sIHVuc2ln bmVkIGludCAqcnhfc2xvdCkKK3sKKwlzdHJ1Y3QgYWRhdTcxMThfZGF0YSAqc3QgPQorCQlzbmRf c29jX2NvbXBvbmVudF9nZXRfZHJ2ZGF0YShkYWktPmNvbXBvbmVudCk7CisJaW50IGNoYW4sIHJl dDsKKworCWRldl9kYmcoc3QtPmRldiwgIlNldCBjaGFubmVsIG1hcCwgJWQiLCB0eF9udW0pOwor CisJZm9yIChjaGFuID0gMDsgY2hhbiA8IHR4X251bTsgY2hhbisrKSB7CisJCXJldCA9IHNuZF9z b2NfY29tcG9uZW50X3VwZGF0ZV9iaXRzKGRhaS0+Y29tcG9uZW50LAorCQkJCQlBREFVNzExOF9S RUdfU1BUX0NYKGNoYW4pLAorCQkJCQlBREFVNzExOF9TUFRfU0xPVF9NQVNLLAorCQkJCQlBREFV NzExOF9TUFRfU0xPVCh0eF9zbG90W2NoYW5dKSk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJu IHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhZGF1NzExOF9zZXRfZm10 KHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCB1bnNpZ25lZCBpbnQgZm10KQoreworCXN0cnVjdCBh ZGF1NzExOF9kYXRhICpzdCA9CisJCXNuZF9zb2NfY29tcG9uZW50X2dldF9kcnZkYXRhKGRhaS0+ Y29tcG9uZW50KTsKKwlpbnQgcmV0ID0gMDsKKwl1MzIgcmVndmFsOworCisJZGV2X2RiZyhzdC0+ ZGV2LCAiU2V0IGZvcm1hdCwgZm10OiVkXG4iLCBmbXQpOworCisJc3dpdGNoIChmbXQgJiBTTkRf U09DX0RBSUZNVF9GT1JNQVRfTUFTSykgeworCWNhc2UgU05EX1NPQ19EQUlGTVRfSTJTOgorCQly ZXQgPSBzbmRfc29jX2NvbXBvbmVudF91cGRhdGVfYml0cyhkYWktPmNvbXBvbmVudCwKKwkJCQkJ CSAgICBBREFVNzExOF9SRUdfU1BUX0NUUkwxLAorCQkJCQkJICAgIEFEQVU3MTE4X0RBVEFfRk1U X01BU0ssCisJCQkJCQkgICAgQURBVTcxMThfREFUQV9GTVQoMCkpOworCQlicmVhazsKKwljYXNl IFNORF9TT0NfREFJRk1UX0xFRlRfSjoKKwkJcmV0ID0gc25kX3NvY19jb21wb25lbnRfdXBkYXRl X2JpdHMoZGFpLT5jb21wb25lbnQsCisJCQkJCQkgICAgQURBVTcxMThfUkVHX1NQVF9DVFJMMSwK KwkJCQkJCSAgICBBREFVNzExOF9EQVRBX0ZNVF9NQVNLLAorCQkJCQkJICAgIEFEQVU3MTE4X0RB VEFfRk1UKDEpKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9SSUdIVF9KOgorCQlz dC0+cmlnaHRfaiA9IHRydWU7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl9lcnIoc3QtPmRl diwgIkludmFsaWQgZm9ybWF0ICVkIiwKKwkJCWZtdCAmIFNORF9TT0NfREFJRk1UX0ZPUk1BVF9N QVNLKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKHJldCA8IDApCisJCXJldHVybiBy ZXQ7CisKKwlzd2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX0lOVl9NQVNLKSB7CisJY2FzZSBT TkRfU09DX0RBSUZNVF9OQl9ORjoKKwkJcmVndmFsID0gQURBVTcxMThfTFJDTEtfQkNMS19QT0wo MCk7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfTkJfSUY6CisJCXJlZ3ZhbCA9IEFE QVU3MTE4X0xSQ0xLX0JDTEtfUE9MKDIpOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1U X0lCX05GOgorCQlyZWd2YWwgPSBBREFVNzExOF9MUkNMS19CQ0xLX1BPTCgxKTsKKwkJYnJlYWs7 CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JQl9JRjoKKwkJcmVndmFsID0gQURBVTcxMThfTFJDTEtf QkNMS19QT0woMyk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl9lcnIoc3QtPmRldiwgIklu dmFsaWQgSW52IG1hc2sgJWQiLAorCQkJZm10ICYgU05EX1NPQ19EQUlGTVRfSU5WX01BU0spOwor CQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXQgPSBzbmRfc29jX2NvbXBvbmVudF91cGRhdGVf Yml0cyhkYWktPmNvbXBvbmVudCwKKwkJCQkJICAgIEFEQVU3MTE4X1JFR19TUFRfQ1RSTDIsCisJ CQkJCSAgICBBREFVNzExOF9MUkNMS19CQ0xLX1BPTF9NQVNLLAorCQkJCQkgICAgcmVndmFsKTsK KwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMg aW50IGFkYXU3MTE4X3NldF90cmlzdGF0ZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IHRy aXN0YXRlKQoreworCXN0cnVjdCBhZGF1NzExOF9kYXRhICpzdCA9CisJCXNuZF9zb2NfY29tcG9u ZW50X2dldF9kcnZkYXRhKGRhaS0+Y29tcG9uZW50KTsKKwlpbnQgcmV0OworCisJZGV2X2RiZyhz dC0+ZGV2LCAiU2V0IHRyaXN0YXRlLCAlZFxuIiwgdHJpc3RhdGUpOworCisJcmV0ID0gc25kX3Nv Y19jb21wb25lbnRfdXBkYXRlX2JpdHMoZGFpLT5jb21wb25lbnQsCisJCQkJCSAgICBBREFVNzEx OF9SRUdfU1BUX0NUUkwxLAorCQkJCQkgICAgQURBVTcxMThfVFJJU1RBVEVfTUFTSywKKwkJCQkJ ICAgIEFEQVU3MTE4X1RSSVNUQVRFKHRyaXN0YXRlKSk7CisJaWYgKHJldCA8IDApCisJCXJldHVy biByZXQ7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhZGF1NzExOF9zZXRfdGRtX3Ns b3Qoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIHVuc2lnbmVkIGludCB0eF9tYXNrLAorCQkJCSB1 bnNpZ25lZCBpbnQgcnhfbWFzaywgaW50IHNsb3RzLAorCQkJCSBpbnQgc2xvdF93aWR0aCkKK3sK KwlzdHJ1Y3QgYWRhdTcxMThfZGF0YSAqc3QgPQorCQlzbmRfc29jX2NvbXBvbmVudF9nZXRfZHJ2 ZGF0YShkYWktPmNvbXBvbmVudCk7CisJaW50IHJldCA9IDA7CisJdTMyIHJlZ3ZhbDsKKworCWRl dl9kYmcoc3QtPmRldiwgIlNldCB0ZG0sIHNsb3RzOiVkIHdpZHRoOiVkXG4iLCBzbG90cywgc2xv dF93aWR0aCk7CisKKwlzd2l0Y2ggKHNsb3Rfd2lkdGgpIHsKKwljYXNlIDMyOgorCQlyZWd2YWwg PSBBREFVNzExOF9TTE9UX1dJRFRIKDApOworCQlicmVhazsKKwljYXNlIDI0OgorCQlyZWd2YWwg PSBBREFVNzExOF9TTE9UX1dJRFRIKDIpOworCQlicmVhazsKKwljYXNlIDE2OgorCQlyZWd2YWwg PSBBREFVNzExOF9TTE9UX1dJRFRIKDEpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlkZXZfZXJy KHN0LT5kZXYsICJJbnZhbGlkIHNsb3Qgd2lkdGg6JWRcbiIsIHNsb3Rfd2lkdGgpOworCQlyZXR1 cm4gLUVJTlZBTDsKKwl9CisKKwlyZXQgPSBzbmRfc29jX2NvbXBvbmVudF91cGRhdGVfYml0cyhk YWktPmNvbXBvbmVudCwKKwkJCQkJICAgIEFEQVU3MTE4X1JFR19TUFRfQ1RSTDEsCisJCQkJCSAg ICBBREFVNzExOF9TTE9UX1dJRFRIX01BU0ssIHJlZ3ZhbCk7CisJaWYgKHJldCA8IDApCisJCXJl dHVybiByZXQ7CisKKwlzdC0+c2xvdF93aWR0aCA9IHNsb3Rfd2lkdGg7CisJc3QtPnNsb3RzID0g c2xvdHM7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhZGF1NzExOF9od19wYXJhbXMo c3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkgICAgICBzdHJ1Y3Qgc25k X3BjbV9od19wYXJhbXMgKnBhcmFtcywKKwkJCSAgICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFp KQoreworCXN0cnVjdCBhZGF1NzExOF9kYXRhICpzdCA9CisJCXNuZF9zb2NfY29tcG9uZW50X2dl dF9kcnZkYXRhKGRhaS0+Y29tcG9uZW50KTsKKwl1MzIgZGF0YV93aWR0aCA9IHBhcmFtc193aWR0 aChwYXJhbXMpLCBzbG90c193aWR0aDsKKwlpbnQgcmV0OworCXUzMiByZWd2YWw7CisKKwlpZiAo IXN0LT5zbG90cykgeworCQkvKiBzZXQgc3RlcmVvIG1vZGUgKi8KKwkJcmV0ID0gc25kX3NvY19j b21wb25lbnRfdXBkYXRlX2JpdHMoZGFpLT5jb21wb25lbnQsCisJCQkJCQkgICAgQURBVTcxMThf UkVHX1NQVF9DVFJMMSwKKwkJCQkJCSAgICBBREFVNzExOF9TQUlfTU9ERV9NQVNLLAorCQkJCQkJ ICAgIEFEQVU3MTE4X1NBSV9NT0RFKDApKTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0 OworCisJCXNsb3RzX3dpZHRoID0gMzI7CisJfSBlbHNlIHsKKwkJc2xvdHNfd2lkdGggPSBzdC0+ c2xvdF93aWR0aDsKKwl9CisKKwlpZiAoZGF0YV93aWR0aCA+IHNsb3RzX3dpZHRoKSB7CisJCWRl dl9lcnIoc3QtPmRldiwgIkludmFsaWQgZGF0YV93aWR0aDolZCwgc2xvdHNfd2lkdGg6JWQiLAor CQkJZGF0YV93aWR0aCwgc2xvdHNfd2lkdGgpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlp ZiAoc3QtPnJpZ2h0X2opIHsKKwkJc3dpdGNoIChzbG90c193aWR0aCAtIGRhdGFfd2lkdGgpIHsK KwkJY2FzZSA4OgorCQkJLyogZGVsYXkgYmNsY2sgYnkgOCAqLworCQkJcmVndmFsID0gQURBVTcx MThfREFUQV9GTVQoMik7CisJCQlicmVhazsKKwkJY2FzZSAxMjoKKwkJCS8qIGRlbGF5IGJjbGNr IGJ5IDEyICovCisJCQlyZWd2YWwgPSBBREFVNzExOF9EQVRBX0ZNVCgzKTsKKwkJCWJyZWFrOwor CQljYXNlIDE2OgorCQkJLyogZGVsYXkgYmNsY2sgYnkgMTYgKi8KKwkJCXJlZ3ZhbCA9IEFEQVU3 MTE4X0RBVEFfRk1UKDQpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlkZXZfZXJyKHN0LT5k ZXYsCisJCQkJIkNhbm5vdCBzZXQgcmlnaHRfaiBzZXR0aW5nLCBzbG90X3c6JWQsIGRhdGFfdzol ZFxuIiwKKwkJCQkJc2xvdHNfd2lkdGgsIGRhdGFfd2lkdGgpOworCQkJcmV0dXJuIC1FSU5WQUw7 CisJCX0KKworCQlyZXQgPSBzbmRfc29jX2NvbXBvbmVudF91cGRhdGVfYml0cyhkYWktPmNvbXBv bmVudCwKKwkJCQkJCSAgICBBREFVNzExOF9SRUdfU1BUX0NUUkwxLAorCQkJCQkJICAgIEFEQVU3 MTE4X0RBVEFfRk1UX01BU0ssCisJCQkJCQkgICAgcmVndmFsKTsKKwkJaWYgKHJldCA8IDApCisJ CQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFkYXU3MTE4 X3NldF9iaWFzX2xldmVsKHN0cnVjdCBzbmRfc29jX2NvbXBvbmVudCAqY29tcG9uZW50LAorCQkJ CSAgIGVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQoreworCXN0cnVjdCBhZGF1NzExOF9k YXRhICpzdCA9IHNuZF9zb2NfY29tcG9uZW50X2dldF9kcnZkYXRhKGNvbXBvbmVudCk7CisJaW50 IHJldCA9IDA7CisKKwlkZXZfZGJnKHN0LT5kZXYsICJTZXQgYmlhcyBsZXZlbCAlZFxuIiwgbGV2 ZWwpOworCisJc3dpdGNoIChsZXZlbCkgeworCWNhc2UgU05EX1NPQ19CSUFTX09OOgorCWNhc2Ug U05EX1NPQ19CSUFTX1BSRVBBUkU6CisJCWJyZWFrOworCisJY2FzZSBTTkRfU09DX0JJQVNfU1RB TkRCWToKKwkJaWYgKHNuZF9zb2NfY29tcG9uZW50X2dldF9iaWFzX2xldmVsKGNvbXBvbmVudCkg PT0KKwkJCQkJCQlTTkRfU09DX0JJQVNfT0ZGKSB7CisJCQkvKiBwb3dlciBvbiAqLworCQkJcmV0 ID0gcmVndWxhdG9yX2VuYWJsZShzdC0+aW92ZGQpOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4g cmV0OworCisJCQkvKiB0aGVyZSdzIG5vIHRpbWluZyBjb25zdHJhaW50cyBiZWZvcmUgZW5hYmxp bmcgZHZkZCAqLworCQkJcmV0ID0gcmVndWxhdG9yX2VuYWJsZShzdC0+ZHZkZCk7CisJCQlpZiAo cmV0KSB7CisJCQkJcmVndWxhdG9yX2Rpc2FibGUoc3QtPmlvdmRkKTsKKwkJCQlyZXR1cm4gcmV0 OworCQkJfQorCisJCQlpZiAoc3QtPmh3X21vZGUpCisJCQkJcmV0dXJuIDA7CisKKwkJCXJlZ2Nh Y2hlX2NhY2hlX29ubHkoc3QtPm1hcCwgZmFsc2UpOworCQkJLyogc3luYyBjYWNoZSAqLworCQkJ cmV0ID0gc25kX3NvY19jb21wb25lbnRfY2FjaGVfc3luYyhjb21wb25lbnQpOworCQl9CisJCWJy ZWFrOworCWNhc2UgU05EX1NPQ19CSUFTX09GRjoKKwkJLyogcG93ZXIgb2ZmICovCisJCXJldCA9 IHJlZ3VsYXRvcl9kaXNhYmxlKHN0LT5kdmRkKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7 CisKKwkJcmV0ID0gcmVndWxhdG9yX2Rpc2FibGUoc3QtPmlvdmRkKTsKKwkJaWYgKHJldCkKKwkJ CXJldHVybiByZXQ7CisKKwkJaWYgKHN0LT5od19tb2RlKQorCQkJcmV0dXJuIDA7CisKKwkJLyog Y2FjaGUgb25seSAqLworCQlyZWdjYWNoZV9tYXJrX2RpcnR5KHN0LT5tYXApOworCQlyZWdjYWNo ZV9jYWNoZV9vbmx5KHN0LT5tYXAsIHRydWUpOworCisJCWJyZWFrOworCX0KKworCXJldHVybiBy ZXQ7Cit9CisKK3N0YXRpYyBpbnQgYWRhdTcxMThfY29tcG9uZW50X3Byb2JlKHN0cnVjdCBzbmRf c29jX2NvbXBvbmVudCAqY29tcG9uZW50KQoreworCXN0cnVjdCBhZGF1NzExOF9kYXRhICpzdCA9 IHNuZF9zb2NfY29tcG9uZW50X2dldF9kcnZkYXRhKGNvbXBvbmVudCk7CisJc3RydWN0IHNuZF9z b2NfZGFwbV9jb250ZXh0ICpkYXBtID0KKwkJCQkJc25kX3NvY19jb21wb25lbnRfZ2V0X2RhcG0o Y29tcG9uZW50KTsKKwlpbnQgcmV0ID0gMDsKKworCWlmIChzdC0+aHdfbW9kZSkgeworCQlyZXQg PSBzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGRhcG0sIGFkYXU3MTE4X3dpZGdldHNfaHcsCisJ CQkJCUFSUkFZX1NJWkUoYWRhdTcxMThfd2lkZ2V0c19odykpOworCQlpZiAocmV0KQorCQkJcmV0 dXJuIHJldDsKKworCQlyZXQgPSBzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhkYXBtLCBhZGF1NzEx OF9yb3V0ZXNfaHcsCisJCQkJCSAgICAgIEFSUkFZX1NJWkUoYWRhdTcxMThfcm91dGVzX2h3KSk7 CisJfSBlbHNlIHsKKwkJc25kX3NvY19jb21wb25lbnRfaW5pdF9yZWdtYXAoY29tcG9uZW50LCBz dC0+bWFwKTsKKwkJcmV0ID0gc25kX3NvY19kYXBtX25ld19jb250cm9scyhkYXBtLCBhZGF1NzEx OF93aWRnZXRzX3N3LAorCQkJCQlBUlJBWV9TSVpFKGFkYXU3MTE4X3dpZGdldHNfc3cpKTsKKwkJ aWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisKKwkJcmV0ID0gc25kX3NvY19kYXBtX2FkZF9yb3V0 ZXMoZGFwbSwgYWRhdTcxMThfcm91dGVzX3N3LAorCQkJCQkgICAgICBBUlJBWV9TSVpFKGFkYXU3 MTE4X3JvdXRlc19zdykpOworCX0KKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBjb25zdCBz dHJ1Y3Qgc25kX3NvY19kYWlfb3BzIGFkYXU3MTE4X29wcyA9IHsKKwkuaHdfcGFyYW1zID0gYWRh dTcxMThfaHdfcGFyYW1zLAorCS5zZXRfY2hhbm5lbF9tYXAgPSBhZGF1NzExOF9zZXRfY2hhbm5l bF9tYXAsCisJLnNldF9mbXQgPSBhZGF1NzExOF9zZXRfZm10LAorCS5zZXRfdGRtX3Nsb3QgPSBh ZGF1NzExOF9zZXRfdGRtX3Nsb3QsCisJLnNldF90cmlzdGF0ZSA9IGFkYXU3MTE4X3NldF90cmlz dGF0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYWlfZHJpdmVyIGFkYXU3MTE4X2Rh aSA9IHsKKwkubmFtZSA9ICJhZGF1NzExOC1oaWZpLWNhcHR1cmUiLAorCS5jYXB0dXJlID0gewor CQkuc3RyZWFtX25hbWUgPSAiQ2FwdHVyZSIsCisJCS5jaGFubmVsc19taW4gPSAxLAorCQkuY2hh bm5lbHNfbWF4ID0gOCwKKwkJLmZvcm1hdHMgPSBTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8IFNO RFJWX1BDTV9GTVRCSVRfUzIwXzNMRSB8CisJCQlTTkRSVl9QQ01fRk1UQklUX1MyMF9MRSB8IFNO RFJWX1BDTV9GTVRCSVRfUzI0X0xFIHwKKwkJCVNORFJWX1BDTV9GTVRCSVRfUzI0XzNMRSwKKwkJ LnJhdGVzID0gU05EUlZfUENNX1JBVEVfQ09OVElOVU9VUywKKwkJLnJhdGVfbWluID0gNDAwMCwK KwkJLnJhdGVfbWF4ID0gMTkyMDAwLAorCQkuc2lnX2JpdHMgPSAyNCwKKwl9LAorfTsKKworc3Rh dGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2NvbXBvbmVudF9kcml2ZXIgYWRhdTcxMThfY29tcG9u ZW50X2RyaXZlciA9IHsKKwkucHJvYmUJCQk9IGFkYXU3MTE4X2NvbXBvbmVudF9wcm9iZSwKKwku c2V0X2JpYXNfbGV2ZWwJCT0gYWRhdTcxMThfc2V0X2JpYXNfbGV2ZWwsCisJLmRhcG1fd2lkZ2V0 cwkJPSBhZGF1NzExOF93aWRnZXRzLAorCS5udW1fZGFwbV93aWRnZXRzCT0gQVJSQVlfU0laRShh ZGF1NzExOF93aWRnZXRzKSwKKwkudXNlX3BtZG93bl90aW1lCT0gMSwKKwkuZW5kaWFubmVzcwkJ PSAxLAorCS5ub25fbGVnYWN5X2RhaV9uYW1pbmcJPSAxLAorfTsKKworc3RhdGljIHZvaWQgYWRh dTcxMThfcmVndWxhdG9yX2Rpc2FibGUodm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgYWRhdTcxMThf ZGF0YSAqc3QgPSBkYXRhOworCWludCByZXQ7CisJLyoKKwkgKiBJZiB3ZSBmYWlsIHRvIGRpc2Fi bGUgRFZERCwgZG9uJ3QgYm90aGVyIGluIHRyeWluZyBJT1ZERC4gV2UKKwkgKiBhY3R1YWxseSBk b24ndCB3YW50IHRvIGJlIGxlZnQgaW4gdGhlIHNpdHVhdGlvbiB3aGVyZSBEVkRECisJICogaXMg ZW5hYmxlZCBhbmQgSU9WREQgaXMgZGlzYWJsZWQuCisJICovCisJcmV0ID0gcmVndWxhdG9yX2Rp c2FibGUoc3QtPmR2ZGQpOworCWlmIChyZXQpCisJCXJldHVybjsKKworCXJlZ3VsYXRvcl9kaXNh YmxlKHN0LT5pb3ZkZCk7Cit9CisKK3N0YXRpYyBpbnQgYWRhdTcxMThfcmVndWxhdG9yX3NldHVw KHN0cnVjdCBhZGF1NzExOF9kYXRhICpzdCkKK3sKKwlzdC0+aW92ZGQgPSBkZXZtX3JlZ3VsYXRv cl9nZXQoc3QtPmRldiwgIklPVkREIik7CisJaWYgKElTX0VSUihzdC0+aW92ZGQpKSB7CisJCWRl dl9lcnIoc3QtPmRldiwgIkNvdWxkIG5vdCBnZXQgaW92ZGQ6ICVsZFxuIiwKKwkJCVBUUl9FUlIo c3QtPmlvdmRkKSk7CisJCXJldHVybiBQVFJfRVJSKHN0LT5pb3ZkZCk7CisJfQorCisJc3QtPmR2 ZGQgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoc3QtPmRldiwgIkRWREQiKTsKKwlpZiAoSVNfRVJSKHN0 LT5kdmRkKSkgeworCQlkZXZfZXJyKHN0LT5kZXYsICJDb3VsZCBub3QgZ2V0IGR2ZGQ6ICVsZFxu IiwKKwkJCVBUUl9FUlIoc3QtPmR2ZGQpKTsKKwkJcmV0dXJuIFBUUl9FUlIoc3QtPmR2ZGQpOwor CX0KKwkvKiBqdXN0IGFzc3VtZSB0aGUgZGV2aWNlIGlzIGluIHJlc2V0ICovCisJaWYgKCFzdC0+ aHdfbW9kZSkgeworCQlyZWdjYWNoZV9tYXJrX2RpcnR5KHN0LT5tYXApOworCQlyZWdjYWNoZV9j YWNoZV9vbmx5KHN0LT5tYXAsIHRydWUpOworCX0KKworCXJldHVybiBkZXZtX2FkZF9hY3Rpb25f b3JfcmVzZXQoc3QtPmRldiwgYWRhdTcxMThfcmVndWxhdG9yX2Rpc2FibGUsCisJCQkJCXN0KTsK K30KKworc3RhdGljIGludCBhZGF1NzExOF9wYXJzZXRfZHQoY29uc3Qgc3RydWN0IGFkYXU3MTE4 X2RhdGEgKnN0KQoreworCWludCByZXQ7CisJdTMyIGRlY19yYXRpbyA9IDA7CisJLyogNCBpbnB1 dHMgKi8KKwl1MzIgY2xrX21hcFs0XSwgcmVndmFsOworCisJaWYgKHN0LT5od19tb2RlKQorCQly ZXR1cm4gMDsKKworCXJldCA9IGRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMihzdC0+ZGV2LCAiYWRp LGRlY2ltYXRpb24tcmF0aW8iLAorCQkJCSAgICAgICAmZGVjX3JhdGlvKTsKKwlpZiAoIXJldCkg eworCQlzd2l0Y2ggKGRlY19yYXRpbykgeworCQljYXNlIDY0OgorCQkJcmVndmFsID0gQURBVTcx MThfREVDX1JBVElPKDApOworCQkJYnJlYWs7CisJCWNhc2UgMzI6CisJCQlyZWd2YWwgPSBBREFV NzExOF9ERUNfUkFUSU8oMSk7CisJCQlicmVhazsKKwkJY2FzZSAxNjoKKwkJCXJlZ3ZhbCA9IEFE QVU3MTE4X0RFQ19SQVRJTygyKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJZGV2X2Vycihz dC0+ZGV2LCAiSW52YWxpZCBkZWMgcmF0aW86ICV1IiwgZGVjX3JhdGlvKTsKKwkJCXJldHVybiAt RUlOVkFMOworCQl9CisKKwkJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKHN0LT5tYXAsCisJCQkJ CSBBREFVNzExOF9SRUdfREVDX1JBVElPX0NMS19NQVAsCisJCQkJCSBBREFVNzExOF9ERUNfUkFU SU9fTUFTSywgcmVndmFsKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcmV0 ID0gZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyX2FycmF5KHN0LT5kZXYsICJhZGkscGRtLWNsay1t YXAiLAorCQkJCQkgICAgIGNsa19tYXAsIEFSUkFZX1NJWkUoY2xrX21hcCkpOworCWlmICghcmV0 KSB7CisJCWludCBwZG07CisJCXUzMiBfY2xrX21hcCA9IDA7CisKKwkJZm9yIChwZG0gPSAwOyBw ZG0gPCBBUlJBWV9TSVpFKGNsa19tYXApOyBwZG0rKykKKwkJCV9jbGtfbWFwIHw9IChjbGtfbWFw W3BkbV0gPDwgKHBkbSArIDQpKTsKKworCQlyZXQgPSByZWdtYXBfdXBkYXRlX2JpdHMoc3QtPm1h cCwKKwkJCQkJIEFEQVU3MTE4X1JFR19ERUNfUkFUSU9fQ0xLX01BUCwKKwkJCQkJIEFEQVU3MTE4 X0NMS19NQVBfTUFTSywgX2Nsa19tYXApOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9 CisKKwlyZXR1cm4gMDsKK30KKworaW50IGFkYXU3MTE4X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IHJlZ21hcCAqbWFwLCBib29sIGh3X21vZGUpCit7CisJc3RydWN0IGFkYXU3MTE4 X2RhdGEgKnN0OworCWludCByZXQ7CisKKwlzdCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigq c3QpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXN0KQorCQlyZXR1cm4gLUVOT01FTTsKKworCXN0LT5k ZXYgPSBkZXY7CisJc3QtPmh3X21vZGUgPSBod19tb2RlOworCWRldl9zZXRfZHJ2ZGF0YShkZXYs IHN0KTsKKworCWlmICghaHdfbW9kZSkgeworCQlzdC0+bWFwID0gbWFwOworCQlhZGF1NzExOF9k YWkub3BzID0gJmFkYXU3MTE4X29wczsKKwkJLyoKKwkJICogUGVyZm9ybSBhIGZ1bGwgc29mdCBy ZXNldC4gVGhpcyB3aWxsIHNldCBhbGwgcmVnaXN0ZXIncworCQkgKiB3aXRoIHRoZWlyIHJlc2V0 IHZhbHVlcy4KKwkJICovCisJCXJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhtYXAsIEFEQVU3MTE4 X1JFR19SRVNFVCwKKwkJCQkJIEFEQVU3MTE4X0ZVTExfU09GVF9SX01BU0ssCisJCQkJCSBBREFV NzExOF9GVUxMX1NPRlRfUigxKSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKwor CXJldCA9IGFkYXU3MTE4X3BhcnNldF9kdChzdCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsK KworCXJldCA9IGFkYXU3MTE4X3JlZ3VsYXRvcl9zZXR1cChzdCk7CisJaWYgKHJldCkKKwkJcmV0 dXJuIHJldDsKKworCXJldHVybiBkZXZtX3NuZF9zb2NfcmVnaXN0ZXJfY29tcG9uZW50KGRldiwK KwkJCQkJICAgICAgICZhZGF1NzExOF9jb21wb25lbnRfZHJpdmVyLAorCQkJCQkgICAgICAgJmFk YXU3MTE4X2RhaSwgMSk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChhZGF1NzExOF9wcm9iZSk7CisK K01PRFVMRV9BVVRIT1IoIk51bm8gU2EgPG51bm8uc2FAYW5hbG9nLmNvbT4iKTsKK01PRFVMRV9E RVNDUklQVElPTigiQURBVTcxMTggOCBjaGFubmVsIFBETS10by1JMlMvVERNIENvbnZlcnRlciBk cml2ZXIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9j b2RlY3MvYWRhdTcxMTguaCBiL3NvdW5kL3NvYy9jb2RlY3MvYWRhdTcxMTguaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmM2NTY3OWE0ZGZmMQotLS0gL2Rldi9udWxs CisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvYWRhdTcxMTguaApAQCAtMCwwICsxLDI0IEBACisvKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworI2lmbmRlZiBfTElOVVhfQURBVTcx MThfSAorI2RlZmluZSBfTElOVVhfQURBVTcxMThfSAorCitzdHJ1Y3QgcmVnbWFwOworc3RydWN0 IGRldmljZTsKKworLyogcmVnaXN0ZXIgbWFwICovCisjZGVmaW5lIEFEQVU3MTE4X1JFR19WRU5E T1JfSUQJCTB4MDAKKyNkZWZpbmUgQURBVTcxMThfUkVHX0RFVklDRV9JRDEJCTB4MDEKKyNkZWZp bmUgQURBVTcxMThfUkVHX0RFVklDRV9JRDIJCTB4MDIKKyNkZWZpbmUgQURBVTcxMThfUkVHX1JF VklTSU9OX0lECTB4MDMKKyNkZWZpbmUgQURBVTcxMThfUkVHX0VOQUJMRVMJCTB4MDQKKyNkZWZp bmUgQURBVTcxMThfUkVHX0RFQ19SQVRJT19DTEtfTUFQCTB4MDUKKyNkZWZpbmUgQURBVTcxMThf UkVHX0hQRl9DT05UUk9MCTB4MDYKKyNkZWZpbmUgQURBVTcxMThfUkVHX1NQVF9DVFJMMQkJMHgw NworI2RlZmluZSBBREFVNzExOF9SRUdfU1BUX0NUUkwyCQkweDA4CisjZGVmaW5lIEFEQVU3MTE4 X1JFR19TUFRfQ1gobnVtKQkoMHgwOSArIChudW0pKQorI2RlZmluZSBBREFVNzExOF9SRUdfRFJJ VkVfU1RSRU5HVEgJMHgxMQorI2RlZmluZSBBREFVNzExOF9SRUdfUkVTRVQJCTB4MTIKKworaW50 IGFkYXU3MTE4X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJlZ21hcCAqbWFwLCBi b29sIGh3X21vZGUpOworCisjZW5kaWYKLS0gCjIuMjMuMAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KQWxzYS1kZXZlbCBtYWlsaW5nIGxpc3QKQWxzYS1k ZXZlbEBhbHNhLXByb2plY3Qub3JnCmh0dHBzOi8vbWFpbG1hbi5hbHNhLXByb2plY3Qub3JnL21h aWxtYW4vbGlzdGluZm8vYWxzYS1kZXZlbAo=