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=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,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 1D50BC5519B for ; Mon, 27 Apr 2020 08:26:54 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 A5DA62192A for ; Mon, 27 Apr 2020 08:26:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="gn9nLDTL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A5DA62192A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=EPaxZR7C16GT5RyyGHvwF3b8P7dtiVGGLjMwPIR5aDU=; b=gn9nLDTLf13sCV iGhP1bzkx7Mii2PaIJhgZ31UgEM5h7/Ge7TyHt13bjNp6FXIvoNngGrS7wO61qLeP7/v0EHrhJCnI E71N/fD0lHWKEFOL1zf8Fv0PFP877vs3pLuOudgBtn8VTDumIzEaD832pjs4d6faEaqRqlQhD6dd9 y6W0PH6U6K9koUI07LOJ/ulV2j0ngXzVK4DNFj+Lz+mx/temT8gzVJv7nKvBN3XTo1zlNNEQcdOJw FbPsr0keQQkbwem9clqMJoCZpifSTpoCQBaZWnIa54Y2zjyZNzst3A4RwQDzaN6slOUJcSidggkBO z89E38xb5L9ojJWWHxvQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jSz6D-0005J1-3t; Mon, 27 Apr 2020 08:26:45 +0000 Received: from bhuna.collabora.co.uk ([46.235.227.227]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jSz0K-000682-0D for linux-mtd@lists.infradead.org; Mon, 27 Apr 2020 08:20:45 +0000 Received: from localhost.localdomain (unknown [IPv6:2a01:e0a:2c:6930:5cf4:84a1:2763:fe0d]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: bbrezillon) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id C8B822A088B; Mon, 27 Apr 2020 09:20:36 +0100 (BST) From: Boris Brezillon To: David Woodhouse , Miquel Raynal , linux-mtd@lists.infradead.org Subject: [PATCH 05/17] mtd: rawnand: cafe: Demistify register fields Date: Mon, 27 Apr 2020 10:20:15 +0200 Message-Id: <20200427082028.394719-6-boris.brezillon@collabora.com> X-Mailer: git-send-email 2.25.3 In-Reply-To: <20200427082028.394719-1-boris.brezillon@collabora.com> References: <20200427082028.394719-1-boris.brezillon@collabora.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200427_012040_330027_DC3B235F X-CRM114-Status: GOOD ( 19.74 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Weinberger , Boris Brezillon , Vignesh Raghavendra , Tudor Ambarus Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org VGhlIGRyaXZlciBoYXMgYSBidW5jaCBvZiBtYWdpYyB2YWx1ZXMuIExldCdzIGRlZmluZSBwcm9w ZXIgcmVnaXN0ZXIKZmllbGRzIGJhc2VkIG9uIHRoZSB0aGlzIHNwZWMKaHR0cDovL3dpa2kubGFw dG9wLm9yZy9pbWFnZXMvNS81Yy84OEFMUDAxX0RhdGFzaGVldF9KdWx5XzIwMDcucGRmIGFuZAp1 c2UgdGhlbS4KClNpZ25lZC1vZmYtYnk6IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMuYnJlemlsbG9u QGNvbGxhYm9yYS5jb20+Ci0tLQogZHJpdmVycy9tdGQvbmFuZC9yYXcvY2FmZV9uYW5kLmMgfCAz NTEgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI3MCBp bnNlcnRpb25zKCspLCA4MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9u YW5kL3Jhdy9jYWZlX25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2NhZmVfbmFuZC5jCmlu ZGV4IDE1NmEzMDhiNTMwYi4uZmJjMThiYzNkNDZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9u YW5kL3Jhdy9jYWZlX25hbmQuYworKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9jYWZlX25hbmQu YwpAQCAtOSw2ICs5LDcgQEAKICAqIENvcHlyaWdodCDCqSAyMDA2IERhdmlkIFdvb2Rob3VzZSA8 ZHdtdzJAaW5mcmFkZWFkLm9yZz4KICAqLwogCisjaW5jbHVkZSA8bGludXgvYml0ZmllbGQuaD4K ICNkZWZpbmUgREVCVUcKIAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgpAQCAtMjUsMzcgKzI2 LDEyNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+ CiAKLSNkZWZpbmUgQ0FGRV9OQU5EX0NUUkwxCQkweDAwCi0jZGVmaW5lIENBRkVfTkFORF9DVFJM MgkJMHgwNAotI2RlZmluZSBDQUZFX05BTkRfQ1RSTDMJCTB4MDgKLSNkZWZpbmUgQ0FGRV9OQU5E X1NUQVRVUwkweDBjCi0jZGVmaW5lIENBRkVfTkFORF9JUlEJCTB4MTAKLSNkZWZpbmUgQ0FGRV9O QU5EX0lSUV9NQVNLCTB4MTQKLSNkZWZpbmUgQ0FGRV9OQU5EX0RBVEFfTEVOCTB4MTgKLSNkZWZp bmUgQ0FGRV9OQU5EX0FERFIxCQkweDFjCi0jZGVmaW5lIENBRkVfTkFORF9BRERSMgkJMHgyMAot I2RlZmluZSBDQUZFX05BTkRfVElNSU5HMQkweDI0Ci0jZGVmaW5lIENBRkVfTkFORF9USU1JTkcy CTB4MjgKLSNkZWZpbmUgQ0FGRV9OQU5EX1RJTUlORzMJMHgyYwotI2RlZmluZSBDQUZFX05BTkRf Tk9OTUVNCTB4MzAKLSNkZWZpbmUgQ0FGRV9OQU5EX0VDQ19SRVNVTFQJMHgzQwotI2RlZmluZSBD QUZFX05BTkRfRE1BX0NUUkwJMHg0MAotI2RlZmluZSBDQUZFX05BTkRfRE1BX0FERFIwCTB4NDQK LSNkZWZpbmUgQ0FGRV9OQU5EX0RNQV9BRERSMQkweDQ4Ci0jZGVmaW5lIENBRkVfTkFORF9FQ0Nf U1lOMDEJMHg1MAotI2RlZmluZSBDQUZFX05BTkRfRUNDX1NZTjIzCTB4NTQKLSNkZWZpbmUgQ0FG RV9OQU5EX0VDQ19TWU40NQkweDU4Ci0jZGVmaW5lIENBRkVfTkFORF9FQ0NfU1lONjcJMHg1Ywot I2RlZmluZSBDQUZFX05BTkRfUkVBRF9EQVRBCTB4MTAwMAotI2RlZmluZSBDQUZFX05BTkRfV1JJ VEVfREFUQQkweDIwMDAKKyNkZWZpbmUgQ0FGRV9OQU5EX0NUUkwxCQkJCTB4MDAKKyNkZWZpbmUg Q0FGRV9OQU5EX0NUUkwxX0hBU19DTUQJCQlCSVQoMzEpCisjZGVmaW5lIENBRkVfTkFORF9DVFJM MV9IQVNfQUREUgkJQklUKDMwKQorI2RlZmluZSBDQUZFX05BTkRfQ1RSTDFfTlVNX0FERFJfQ1lD CQlHRU5NQVNLKDI5LCAyNykKKyNkZWZpbmUgQ0FGRV9OQU5EX0NUUkwxX0hBU19EQVRBX0lOCQlC SVQoMjYpCisjZGVmaW5lIENBRkVfTkFORF9DVFJMMV9IQVNfREFUQV9PVVQJCUJJVCgyNSkKKyNk ZWZpbmUgQ0FGRV9OQU5EX0NUUkwxX05VTV9OT05NRU1fUkVBRF9ISUdICUdFTk1BU0soMjQsIDIy KQorI2RlZmluZSBDQUZFX05BTkRfQ1RSTDFfV0FJVF9CU1lfQUZURVJfU0VRCUJJVCgyMSkKKyNk ZWZpbmUgQ0FGRV9OQU5EX0NUUkwxX05VTV9OT05NRU1fUkVBRF9MT1cJQklUKDIwKQorI2RlZmlu ZSBDQUZFX05BTkRfQ1RSTDFfQ0UJCQlCSVQoMTkpCisjZGVmaW5lIENBRkVfTkFORF9DVFJMMV9D TUQJCQlHRU5NQVNLKDcsIDApCiAKLSNkZWZpbmUgQ0FGRV9HTE9CQUxfQ1RSTAkweDMwMDQKLSNk ZWZpbmUgQ0FGRV9HTE9CQUxfSVJRCQkweDMwMDgKLSNkZWZpbmUgQ0FGRV9HTE9CQUxfSVJRX01B U0sJMHgzMDBjCi0jZGVmaW5lIENBRkVfTkFORF9SRVNFVAkJMHgzMDM0CisjZGVmaW5lIENBRkVf TkFORF9DVFJMMgkJCQkweDA0CisjZGVmaW5lIENBRkVfTkFORF9DVFJMMl9BVVRPX1dSSVRFX0VD QwkJQklUKDMwKQorI2RlZmluZSBDQUZFX05BTkRfQ1RSTDJfUEFHRV9TSVpFCQlHRU5NQVNLKDI5 LCAyOCkKKyNkZWZpbmUgQ0FGRV9OQU5EX0NUUkwyX0VDQ19BTEdfUlMJCUJJVCgyNykKKyNkZWZp bmUgQ0FGRV9OQU5EX0NUUkwyX0hBU19DTUQyCQlCSVQoOCkKKyNkZWZpbmUgQ0FGRV9OQU5EX0NU UkwyX0NNRDIJCQlHRU5NQVNLKDcsIDApCiAKLS8qIE1pc3NpbmcgZnJvbSB0aGUgZGF0YXNoZWV0 OiBiaXQgMTkgb2YgQ1RSTDEgc2V0cyBDRTAgdnMuIENFMSAqLwotI2RlZmluZSBDVFJMMV9DSElQ U0VMRUNUCSgxPDwxOSkKKyNkZWZpbmUgQ0FGRV9OQU5EX0NUUkwzCQkJCTB4MDgKKyNkZWZpbmUg Q0FGRV9OQU5EX0NUUkwzX1JFQURfQlVTWV9SRVNFVAkJQklUKDMxKQorI2RlZmluZSBDQUZFX05B TkRfQ1RSTDNfV1AJCQlCSVQoMzApCisKKyNkZWZpbmUgQ0FGRV9OQU5EX1NUQVRVUwkJCTB4MGMK KyNkZWZpbmUgQ0FGRV9OQU5EX1NUQVRVU19DT05UUk9MTEVSX0JVU1kJQklUKDMxKQorI2RlZmlu ZSBDQUZFX05BTkRfU1RBVFVTX0ZMQVNIX0JVU1kJCUJJVCgzMCkKKworI2RlZmluZSBDQUZFX05B TkRfSVJRCQkJCTB4MTAKKyNkZWZpbmUgQ0FGRV9OQU5EX0lSUV9NQVNLCQkJMHgxNAorI2RlZmlu ZSBDQUZFX05BTkRfSVJRX0NNRF9ET05FCQkJQklUKDMxKQorI2RlZmluZSBDQUZFX05BTkRfSVJR X0ZMQVNIX1JEWQkJCUJJVCgzMCkKKyNkZWZpbmUgQ0FGRV9OQU5EX0lSUV9ETUFfRE9ORQkJCUJJ VCgyOCkKKyNkZWZpbmUgQ0FGRV9OQU5EX0lSUV9CT09UX0RPTkUJCQlCSVQoMjcpCisKKyNkZWZp bmUgQ0FGRV9OQU5EX0RBVEFfTEVOCQkJMHgxOAorI2RlZmluZSBDQUZFX05BTkRfQUREUjEJCQkJ MHgxYworI2RlZmluZSBDQUZFX05BTkRfQUREUjIJCQkJMHgyMAorCisjZGVmaW5lIENBRkVfTkFO RF9USU1JTkcxCQkJMHgyNAorI2RlZmluZSBDQUZFX05BTkRfVElNSU5HMV9UQ0xTCQkJR0VOTUFT SygzMSwgMjgpCisjZGVmaW5lIENBRkVfTkFORF9USU1JTkcxX1RDTEgJCQlHRU5NQVNLKDI3LCAy NCkKKyNkZWZpbmUgQ0FGRV9OQU5EX1RJTUlORzFfVEFMUwkJCUdFTk1BU0soMjMsIDIwKQorI2Rl ZmluZSBDQUZFX05BTkRfVElNSU5HMV9UQUxICQkJR0VOTUFTSygxOSwgMTYpCisjZGVmaW5lIENB RkVfTkFORF9USU1JTkcxX1RXQgkJCUdFTk1BU0soMTUsIDgpCisjZGVmaW5lIENBRkVfTkFORF9U SU1JTkcxX1RSQgkJCUdFTk1BU0soNywgMCkKKworI2RlZmluZSBDQUZFX05BTkRfVElNSU5HMgkJ CTB4MjgKKyNkZWZpbmUgQ0FGRV9OQU5EX1RJTUlORzJfVFJSCQkJR0VOTUFTSygzMSwgMjgpCisj ZGVmaW5lIENBRkVfTkFORF9USU1JTkcyX1RSRUEJCQlHRU5NQVNLKDI3LCAyNCkKKyNkZWZpbmUg Q0FGRV9OQU5EX1RJTUlORzJfVERICQkJR0VOTUFTSygyMywgMjApCisjZGVmaW5lIENBRkVfTkFO RF9USU1JTkcyX1REUwkJCUdFTk1BU0soMTksIDE2KQorI2RlZmluZSBDQUZFX05BTkRfVElNSU5H Ml9UUkgJCQlHRU5NQVNLKDE1LCAxMikKKyNkZWZpbmUgQ0FGRV9OQU5EX1RJTUlORzJfVFJQCQkJ R0VOTUFTSygxMSwgOCkKKyNkZWZpbmUgQ0FGRV9OQU5EX1RJTUlORzJfVFdICQkJR0VOTUFTSyg3 LCA0KQorI2RlZmluZSBDQUZFX05BTkRfVElNSU5HMl9UV1AJCQlHRU5NQVNLKDMsIDApCisKKyNk ZWZpbmUgQ0FGRV9OQU5EX1RJTUlORzMJCQkweDJjCisjZGVmaW5lIENBRkVfTkFORF9USU1JTkcz X1RBUgkJCUdFTk1BU0soMzEsIDI4KQorI2RlZmluZSBDQUZFX05BTkRfVElNSU5HM19UQ0xSCQkJ R0VOTUFTSygyNywgMjQpCisKKyNkZWZpbmUgQ0FGRV9OQU5EX05PTk1FTV9SRUFEX0RBVEEJCTB4 MzAKKyNkZWZpbmUgQ0FGRV9OQU5EX0VDQ19SRUFEX0NPREUJCQkweDM4CisKKyNkZWZpbmUgQ0FG RV9OQU5EX0VDQ19SRVNVTFQJCQkweDNDCisjZGVmaW5lIENBRkVfTkFORF9FQ0NfUkVTVUxUX1JT X0VSUk9SUwkJQklUKDE4KQorI2RlZmluZSBDQUZFX05BTkRfRUNDX1JFU1VMVF9TVEFUVVMJCUdF Tk1BU0soMTcsIDE2KQorI2RlZmluZSBDQUZFX05BTkRfRUNDX1JFU1VMVF9OT19FUlJPUgkJKDAg PDwgMTYpCisjZGVmaW5lIENBRkVfTkFORF9FQ0NfUkVTVUxUX0NPUlJFQ1RBQkxFX0VSUlMJKDEg PDwgMTYpCisjZGVmaW5lIENBRkVfTkFORF9FQ0NfUkVTVUxUX1VOQ09SUkVDVEFCTEVfRVJSUwko MiA8PCAxNikKKyNkZWZpbmUgQ0FGRV9OQU5EX0VDQ19SRVNVTFRfRkFJTF9CSVRfTE9DCUdFTk1B U0soMTMsIDApCisKKyNkZWZpbmUgQ0FGRV9OQU5EX0RNQV9DVFJMCQkJMHg0MAorI2RlZmluZSBD QUZFX05BTkRfRE1BX0NUUkxfRU5BQkxFCQlCSVQoMzEpCisjZGVmaW5lIENBRkVfTkFORF9ETUFf Q1RSTF9SRVNFUlZFRAkJQklUKDMwKQorI2RlZmluZSBDQUZFX05BTkRfRE1BX0NUUkxfREFUQV9J TgkJQklUKDI5KQorI2RlZmluZSBDQUZFX05BTkRfRE1BX0NUUkxfREFUQV9MRU4JCUdFTk1BU0so MTEsIDApCisKKyNkZWZpbmUgQ0FGRV9OQU5EX0RNQV9BRERSMAkJCTB4NDQKKyNkZWZpbmUgQ0FG RV9OQU5EX0RNQV9BRERSMQkJCTB4NDgKKyNkZWZpbmUgQ0FGRV9OQU5EX0VDQ19TWU5fUkVHKHgp CQkoKCh4KSAvIDIpICsgMHg1MCkKKyNkZWZpbmUgQ0FGRV9OQU5EX0VDQ19TWU5fRklFTEQoeCkJ CSgoKHgpICUgMikgPyBHRU5NQVNLKDMxLCAxNikgOiBHRU5NQVNLKDE1LCAwKSkKKworI2RlZmlu ZSBDQUZFX05BTkRfQ1RSTDQJCQkJMHg2MAorI2RlZmluZSBDQUZFX05BTkRfQ1RSTDRfTk9fUkVB RF9ERUxBWQkJQklUKDgpCisKKyNkZWZpbmUgQ0FGRV9OQU5EX0RSSVZFX1NUUkVOR1RICQkweDY0 CisjZGVmaW5lIENBRkVfTkFORF9EUklWRV9TVFJFTkdUSF9WQUwJCUdFTk1BU0soNCwgMCkKKwor I2RlZmluZSBDQUZFX05BTkRfUkVBRF9EQVRBCQkJMHgxMDAwCisjZGVmaW5lIENBRkVfTkFORF9X UklURV9EQVRBCQkJMHgyMDAwCisKKyNkZWZpbmUgQ0FGRV9HTE9CQUxfQ1RSTAkJCTB4MzAwNAor I2RlZmluZSBDQUZFX0dMT0JBTF9DQ0lDX0NMS19FTkFCTEUJCUJJVCgxNCkKKyNkZWZpbmUgQ0FG RV9HTE9CQUxfU0RIX0NMS19FTkFCTEUJCUJJVCgxMykKKyNkZWZpbmUgQ0FGRV9HTE9CQUxfTkFO RF9DTEtfRU5BQkxFCQlCSVQoMTIpCisjZGVmaW5lIENBRkVfR0xPQkFMX0NMS1JVTl9FTkFCTEVf U0VUCQlCSVQoMTEpCisjZGVmaW5lIENBRkVfR0xPQkFMX0NMS1JVTl9FTkFCTEVfQ0xFQVIJCUJJ VCgxMCkKKyNkZWZpbmUgQ0FGRV9HTE9CQUxfU1dfSVJRX1NFVAkJCUJJVCg3KQorI2RlZmluZSBD QUZFX0dMT0JBTF9TV19JUlFfQ0xFQVIJCUJJVCg2KQorI2RlZmluZSBDQUZFX0dMT0JBTF9TVE9Q X01BU1RFUl9ET05FCQlCSVQoNSkKKyNkZWZpbmUgQ0FGRV9HTE9CQUxfU1RPUF9NQVNURVIJCQlC SVQoNCkKKyNkZWZpbmUgQ0FGRV9HTE9CQUxfTUFTVEVSX1JFU0VUX0NMRUFSCQlCSVQoMykKKyNk ZWZpbmUgQ0FGRV9HTE9CQUxfTUFTVEVSX1JFU0VUX1NFVAkJQklUKDIpCisjZGVmaW5lIENBRkVf R0xPQkFMX1NXX1JFU0VUX0NMRUFSCQlCSVQoMSkKKyNkZWZpbmUgQ0FGRV9HTE9CQUxfU1dfUkVT RVRfU0VUCQlCSVQoMCkKKworI2RlZmluZSBDQUZFX0dMT0JBTF9JUlEJCQkJMHgzMDA4CisjZGVm aW5lIENBRkVfR0xPQkFMX0lSUV9NQVNLCQkJMHgzMDBjCisjZGVmaW5lIENBRkVfR0xPQkFMX0lS UV9QQ0lfRVJST1IJCUJJVCgzMSkKKyNkZWZpbmUgQ0FGRV9HTE9CQUxfSVJRX1ZQRF9UV1NJCQlC SVQoMjYpCisjZGVmaW5lIENBRkVfR0xPQkFMX0lSUV9DQ0lDCQkJQklUKDIpCisjZGVmaW5lIENB RkVfR0xPQkFMX0lSUV9TREgJCQlCSVQoMSkKKyNkZWZpbmUgQ0FGRV9HTE9CQUxfSVJRX05BTkQJ CQlCSVQoMCkKKworI2RlZmluZSBDQUZFX0dMT0JBTF9SRVNFVAkJCTB4MzAzNAorI2RlZmluZSBD QUZFX0dMT0JBTF9SRVNFVF9DQ0lDCQkJQklUKDIpCisjZGVmaW5lIENBRkVfR0xPQkFMX1JFU0VU X1NESAkJCUJJVCgxKQorI2RlZmluZSBDQUZFX0dMT0JBTF9SRVNFVF9OQU5ECQkJQklUKDApCisK KyNkZWZpbmUgQ0FGRV9GSUVMRF9QUkVQKHJlZywgZmllbGQsIHZhbCkJRklFTERfUFJFUChDQUZF XyMjcmVnIyNfIyNmaWVsZCwgdmFsKQorI2RlZmluZSBDQUZFX0ZJRUxEX0dFVChyZWcsIGZpZWxk LCB2YWwpCQlGSUVMRF9HRVQoQ0FGRV8jI3JlZyMjXyMjZmllbGQsIHZhbCkKIAogc3RydWN0IGNh ZmVfcHJpdiB7CiAJc3RydWN0IG5hbmRfY2hpcCBuYW5kOwpAQCAtMTA0LDcgKzE5NSw4IEBAIHN0 YXRpYyBjb25zdCBjaGFyICpwYXJ0X3Byb2Jlc1tdID0geyAiY21kbGluZXBhcnQiLCAiUmVkQm9v dCIsIE5VTEwgfTsKIHN0YXRpYyBpbnQgY2FmZV9kZXZpY2VfcmVhZHkoc3RydWN0IG5hbmRfY2hp cCAqY2hpcCkKIHsKIAlzdHJ1Y3QgY2FmZV9wcml2ICpjYWZlID0gbmFuZF9nZXRfY29udHJvbGxl cl9kYXRhKGNoaXApOwotCWludCByZXN1bHQgPSAhIShjYWZlX3JlYWRsKGNhZmUsIE5BTkRfU1RB VFVTKSAmIDB4NDAwMDAwMDApOworCWludCByZXN1bHQgPSAhIShjYWZlX3JlYWRsKGNhZmUsIE5B TkRfU1RBVFVTKSAmCisJCQlDQUZFX05BTkRfU1RBVFVTX0ZMQVNIX0JVU1kpOwogCXVpbnQzMl90 IGlycXMgPSBjYWZlX3JlYWRsKGNhZmUsIE5BTkRfSVJRKTsKIAogCWNhZmVfd3JpdGVsKGNhZmUs IGlycXMsIE5BTkRfSVJRKTsKQEAgLTE2NCwxNiArMjU2LDIwIEBAIHN0YXRpYyB2b2lkIGNhZmVf bmFuZF9jbWRmdW5jKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsIHVuc2lnbmVkIGNvbW1hbmQsCiAJ c3RydWN0IGNhZmVfcHJpdiAqY2FmZSA9IG5hbmRfZ2V0X2NvbnRyb2xsZXJfZGF0YShjaGlwKTsK IAlpbnQgYWRyYnl0ZXMgPSAwOwogCXVpbnQzMl90IGN0bDE7Ci0JdWludDMyX3QgZG9uZWludCA9 IDB4ODAwMDAwMDA7CisJdWludDMyX3QgZG9uZWludCA9IENBRkVfTkFORF9JUlFfQ01EX0RPTkU7 CiAKIAljYWZlX2Rldl9kYmcoJmNhZmUtPnBkZXYtPmRldiwgImNtZGZ1bmMgJTAyeCwgMHgleCwg MHgleFxuIiwKIAkJY29tbWFuZCwgY29sdW1uLCBwYWdlX2FkZHIpOwogCiAJaWYgKGNvbW1hbmQg PT0gTkFORF9DTURfRVJBU0UyIHx8IGNvbW1hbmQgPT0gTkFORF9DTURfUEFHRVBST0cpIHsKIAkJ LyogU2Vjb25kIGhhbGYgb2YgYSBjb21tYW5kIHdlIGFscmVhZHkgY2FsY3VsYXRlZCAqLwotCQlj YWZlX3dyaXRlbChjYWZlLCBjYWZlLT5jdGwyIHwgMHgxMDAgfCBjb21tYW5kLCBOQU5EX0NUUkwy KTsKKwkJY2FmZV93cml0ZWwoY2FmZSwKKwkJCSAgICBjYWZlLT5jdGwyIHwKKwkJCSAgICBDQUZF X05BTkRfQ1RSTDJfQ01EMiB8CisJCQkgICAgQ0FGRV9GSUVMRF9QUkVQKE5BTkRfQ1RSTDIsIENN RDIsIGNvbW1hbmQpLAorCQkJICAgIE5BTkRfQ1RSTDIpOwogCQljdGwxID0gY2FmZS0+Y3RsMTsK LQkJY2FmZS0+Y3RsMiAmPSB+KDE8PDMwKTsKKwkJY2FmZS0+Y3RsMiAmPSB+Q0FGRV9OQU5EX0NU UkwyX0FVVE9fV1JJVEVfRUNDOwogCQljYWZlX2Rldl9kYmcoJmNhZmUtPnBkZXYtPmRldiwgIkNv bnRpbnVlIGNvbW1hbmQsIGN0bDEgJTA4eCwgI2RhdGEgJWRcbiIsCiAJCQkgIGNhZmUtPmN0bDEs IGNhZmUtPm5yX2RhdGEpOwogCQlnb3RvIGRvX2NvbW1hbmQ7CkBAIC0yMDksMjYgKzMwNSwyOSBA QCBzdGF0aWMgdm9pZCBjYWZlX25hbmRfY21kZnVuYyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCB1 bnNpZ25lZCBjb21tYW5kLAogCWNhZmUtPmRhdGFfcG9zID0gY2FmZS0+ZGF0YWxlbiA9IDA7CiAK IAkvKiBTZXQgY29tbWFuZCB2YWxpZCBiaXQsIG1hc2sgaW4gdGhlIGNoaXAgc2VsZWN0IGJpdCAg Ki8KLQljdGwxID0gMHg4MDAwMDAwMCB8IGNvbW1hbmQgfCAoY2FmZS0+Y3RsMSAmIENUUkwxX0NI SVBTRUxFQ1QpOworCWN0bDEgPSBDQUZFX05BTkRfQ1RSTDFfSEFTX0NNRCB8CisJICAgICAgIENB RkVfRklFTERfUFJFUChOQU5EX0NUUkwxLCBDTUQsIGNvbW1hbmQpIHwKKwkgICAgICAgKGNhZmUt PmN0bDEgJiBDQUZFX05BTkRfQ1RSTDFfQ0UpOwogCiAJLyogU2V0IFJEIG9yIFdSIGJpdHMgYXMg YXBwcm9wcmlhdGUgKi8KIAlpZiAoY29tbWFuZCA9PSBOQU5EX0NNRF9SRUFESUQgfHwgY29tbWFu ZCA9PSBOQU5EX0NNRF9TVEFUVVMpIHsKLQkJY3RsMSB8PSAoMTw8MjYpOyAvKiByZCAqLworCQlj dGwxIHw9IENBRkVfTkFORF9DVFJMMV9IQVNfREFUQV9JTjsKIAkJLyogQWx3YXlzIDUgYnl0ZXMs IGZvciBub3cgKi8KIAkJY2FmZS0+ZGF0YWxlbiA9IDQ7CiAJCS8qIEFuZCBvbmUgYWRkcmVzcyBj eWNsZSAtLSBldmVuIGZvciBTVEFUVVMsIHNpbmNlIHRoZSBjb250cm9sbGVyIGRvZXNuJ3Qgd29y ayB3aXRob3V0ICovCiAJCWFkcmJ5dGVzID0gMTsKIAl9IGVsc2UgaWYgKGNvbW1hbmQgPT0gTkFO RF9DTURfUkVBRDAgfHwgY29tbWFuZCA9PSBOQU5EX0NNRF9SRUFEMSB8fAogCQkgICBjb21tYW5k ID09IE5BTkRfQ01EX1JFQURPT0IgfHwgY29tbWFuZCA9PSBOQU5EX0NNRF9STkRPVVQpIHsKLQkJ Y3RsMSB8PSAxPDwyNjsgLyogcmQgKi8KKwkJY3RsMSB8PSBDQUZFX05BTkRfQ1RSTDFfSEFTX0RB VEFfSU47CiAJCS8qIEZvciBub3csIGFzc3VtZSBqdXN0IHJlYWQgdG8gZW5kIG9mIHBhZ2UgKi8K IAkJY2FmZS0+ZGF0YWxlbiA9IG10ZC0+d3JpdGVzaXplICsgbXRkLT5vb2JzaXplIC0gY29sdW1u OwogCX0gZWxzZSBpZiAoY29tbWFuZCA9PSBOQU5EX0NNRF9TRVFJTikKLQkJY3RsMSB8PSAxPDwy NTsgLyogd3IgKi8KKwkJY3RsMSB8PSBDQUZFX05BTkRfQ1RSTDFfSEFTX0RBVEFfT1VUOwogCiAJ LyogU2V0IG51bWJlciBvZiBhZGRyZXNzIGJ5dGVzICovCiAJaWYgKGFkcmJ5dGVzKQotCQljdGwx IHw9ICgoYWRyYnl0ZXMtMSl8OCkgPDwgMjc7CisJCWN0bDEgfD0gQ0FGRV9OQU5EX0NUUkwxX0hB U19BRERSIHwKKwkJCUNBRkVfRklFTERfUFJFUChOQU5EX0NUUkwxLCBOVU1fQUREUl9DWUMsIGFk cmJ5dGVzIC0gMSk7CiAKIAlpZiAoY29tbWFuZCA9PSBOQU5EX0NNRF9TRVFJTiB8fCBjb21tYW5k ID09IE5BTkRfQ01EX0VSQVNFMSkgewogCQkvKiBJZ25vcmUgdGhlIGZpcnN0IGNvbW1hbmQgb2Yg YSBwYWlyOyB0aGUgaGFyZHdhcmUKQEAgLTI0MCw5ICszMzksMTUgQEAgc3RhdGljIHZvaWQgY2Fm ZV9uYW5kX2NtZGZ1bmMoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgdW5zaWduZWQgY29tbWFuZCwK IAl9CiAJLyogUk5ET1VUIGFuZCBSRUFEMCBjb21tYW5kcyBuZWVkIGEgZm9sbG93aW5nIGJ5dGUg Ki8KIAlpZiAoY29tbWFuZCA9PSBOQU5EX0NNRF9STkRPVVQpCi0JCWNhZmVfd3JpdGVsKGNhZmUs IGNhZmUtPmN0bDIgfCAweDEwMCB8IE5BTkRfQ01EX1JORE9VVFNUQVJULCBOQU5EX0NUUkwyKTsK KwkJY2FmZV93cml0ZWwoY2FmZSwKKwkJCSAgICBjYWZlLT5jdGwyIHwgQ0FGRV9OQU5EX0NUUkwy X0NNRDIgfAorCQkJICAgIENBRkVfRklFTERfUFJFUChOQU5EX0NUUkwyLCBDTUQyLCBOQU5EX0NN RF9STkRPVVRTVEFSVCksCisJCQkgICAgTkFORF9DVFJMMik7CiAJZWxzZSBpZiAoY29tbWFuZCA9 PSBOQU5EX0NNRF9SRUFEMCAmJiBtdGQtPndyaXRlc2l6ZSA+IDUxMikKLQkJY2FmZV93cml0ZWwo Y2FmZSwgY2FmZS0+Y3RsMiB8IDB4MTAwIHwgTkFORF9DTURfUkVBRFNUQVJULCBOQU5EX0NUUkwy KTsKKwkJY2FmZV93cml0ZWwoY2FmZSwKKwkJCSAgICBjYWZlLT5jdGwyIHwgQ0FGRV9OQU5EX0NU UkwyX0NNRDIgfAorCQkJICAgIENBRkVfRklFTERfUFJFUChOQU5EX0NUUkwyLCBDTUQyLCBOQU5E X0NNRF9SRUFEU1RBUlQpLAorCQkJICAgIE5BTkRfQ1RSTDIpOwogCiAgZG9fY29tbWFuZDoKIAlj YWZlX2Rldl9kYmcoJmNhZmUtPnBkZXYtPmRldiwgImRsZW4gJXgsIGN0bDEgJXgsIGN0bDIgJXhc biIsCkBAIC0yNTAsMTYgKzM1NSwyMyBAQCBzdGF0aWMgdm9pZCBjYWZlX25hbmRfY21kZnVuYyhz dHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCB1bnNpZ25lZCBjb21tYW5kLAogCiAJLyogTkI6IFRoZSBk YXRhc2hlZXQgbGllcyAtLSB3ZSByZWFsbHkgc2hvdWxkIGJlIHN1YnRyYWN0aW5nIDEgaGVyZSAq LwogCWNhZmVfd3JpdGVsKGNhZmUsIGNhZmUtPmRhdGFsZW4sIE5BTkRfREFUQV9MRU4pOwotCWNh ZmVfd3JpdGVsKGNhZmUsIDB4OTAwMDAwMDAsIE5BTkRfSVJRKTsKLQlpZiAoY2FmZS0+dXNlZG1h ICYmIChjdGwxICYgKDM8PDI1KSkpIHsKLQkJdWludDMyX3QgZG1hY3RsID0gMHhjMDAwMDAwMCAr IGNhZmUtPmRhdGFsZW47CisJY2FmZV93cml0ZWwoY2FmZSwgQ0FGRV9OQU5EX0lSUV9DTURfRE9O RSB8IENBRkVfTkFORF9JUlFfRE1BX0RPTkUsCisJCSAgICBOQU5EX0lSUSk7CisJaWYgKGNhZmUt PnVzZWRtYSAmJgorCSAgICAoY3RsMSAmIChDQUZFX05BTkRfQ1RSTDFfSEFTX0RBVEFfSU4gfAor CQkgICAgIENBRkVfTkFORF9DVFJMMV9IQVNfREFUQV9PVVQpKSkgeworCQl1aW50MzJfdCBkbWFj dGwgPSBDQUZFX05BTkRfRE1BX0NUUkxfRU5BQkxFIHwKKwkJCQkgIENBRkVfTkFORF9ETUFfQ1RS TF9SRVNFUlZFRDsKKworCQlkbWFjdGwgfD0gQ0FGRV9GSUVMRF9QUkVQKE5BTkRfRE1BX0NUUkws IERBVEFfTEVOLAorCQkJCQkgIGNhZmUtPmRhdGFsZW4pOwogCQkvKiBJZiBXUiBvciBSRCBiaXRz IHNldCwgc2V0IHVwIERNQSAqLwotCQlpZiAoY3RsMSAmICgxPDwyNikpIHsKKwkJaWYgKGN0bDEg JiBDQUZFX05BTkRfQ1RSTDFfSEFTX0RBVEFfSU4pIHsKIAkJCS8qIEl0J3MgYSByZWFkICovCi0J CQlkbWFjdGwgfD0gKDE8PDI5KTsKKwkJCWRtYWN0bCB8PSBDQUZFX05BTkRfRE1BX0NUUkxfREFU QV9JTjsKIAkJCS8qIC4uLiBzbyBpdCdzIGRvbmUgd2hlbiB0aGUgRE1BIGlzIGRvbmUsIG5vdCBq dXN0CiAJCQkgICB0aGUgY29tbWFuZC4gKi8KLQkJCWRvbmVpbnQgPSAweDEwMDAwMDAwOworCQkJ ZG9uZWludCA9IENBRkVfTkFORF9JUlFfRE1BX0RPTkU7CiAJCX0KIAkJY2FmZV93cml0ZWwoY2Fm ZSwgZG1hY3RsLCBOQU5EX0RNQV9DVFJMKTsKIAl9CkBAIC0yOTUsNyArNDA3LDcgQEAgc3RhdGlj IHZvaWQgY2FmZV9uYW5kX2NtZGZ1bmMoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgdW5zaWduZWQg Y29tbWFuZCwKIAkJCSAgICAgY29tbWFuZCwgNTAwMDAwLWMsIGlycXMsIGNhZmVfcmVhZGwoY2Fm ZSwgTkFORF9JUlEpKTsKIAl9CiAKLQlXQVJOX09OKGNhZmUtPmN0bDIgJiAoMTw8MzApKTsKKwlX QVJOX09OKGNhZmUtPmN0bDIgJiBDQUZFX05BTkRfQ1RSTDJfQVVUT19XUklURV9FQ0MpOwogCiAJ c3dpdGNoIChjb21tYW5kKSB7CiAKQEAgLTMxOCwxNCArNDMwLDE0IEBAIHN0YXRpYyB2b2lkIGNh ZmVfc2VsZWN0X2NoaXAoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgaW50IGNoaXBucikKIHsKIAlz dHJ1Y3QgY2FmZV9wcml2ICpjYWZlID0gbmFuZF9nZXRfY29udHJvbGxlcl9kYXRhKGNoaXApOwog CisJaWYgKGNoaXBuciA8IDAgfHwgY2hpcG5yID4gMSkKKwkJcmV0dXJuOworCiAJY2FmZV9kZXZf ZGJnKCZjYWZlLT5wZGV2LT5kZXYsICJzZWxlY3RfY2hpcCAlZFxuIiwgY2hpcG5yKTsKIAogCS8q IE1hc2sgdGhlIGFwcHJvcHJpYXRlIGJpdCBpbnRvIHRoZSBzdG9yZWQgdmFsdWUgb2YgY3RsMQog CSAgIHdoaWNoIHdpbGwgYmUgdXNlZCBieSBjYWZlX25hbmRfY21kZnVuYygpICovCi0JaWYgKGNo aXBucikKLQkJY2FmZS0+Y3RsMSB8PSBDVFJMMV9DSElQU0VMRUNUOwotCWVsc2UKLQkJY2FmZS0+ Y3RsMSAmPSB+Q1RSTDFfQ0hJUFNFTEVDVDsKKwljYWZlLT5jdGwxIHw9IENBRkVfRklFTERfUFJF UChOQU5EX0NUUkwxLCBDRSwgY2hpcG5yKTsKIH0KIAogc3RhdGljIGlycXJldHVybl90IGNhZmVf bmFuZF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqaWQpCkBAIC0zMzQsNyArNDQ2LDkgQEAgc3Rh dGljIGlycXJldHVybl90IGNhZmVfbmFuZF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqaWQpCiAJ c3RydWN0IG5hbmRfY2hpcCAqY2hpcCA9IG10ZF90b19uYW5kKG10ZCk7CiAJc3RydWN0IGNhZmVf cHJpdiAqY2FmZSA9IG5hbmRfZ2V0X2NvbnRyb2xsZXJfZGF0YShjaGlwKTsKIAl1aW50MzJfdCBp cnFzID0gY2FmZV9yZWFkbChjYWZlLCBOQU5EX0lSUSk7Ci0JY2FmZV93cml0ZWwoY2FmZSwgaXJx cyAmIH4weDkwMDAwMDAwLCBOQU5EX0lSUSk7CisJY2FmZV93cml0ZWwoY2FmZSwKKwkJICAgIGly cXMgJiB+KENBRkVfTkFORF9JUlFfQ01EX0RPTkUgfCBDQUZFX05BTkRfSVJRX0RNQV9ET05FKSwK KwkJICAgIE5BTkRfSVJRKTsKIAlpZiAoIWlycXMpCiAJCXJldHVybiBJUlFfTk9ORTsKIApAQCAt MzY4LDI1ICs0ODIsMzEgQEAgc3RhdGljIGludCBjYWZlX25hbmRfcmVhZF9wYWdlKHN0cnVjdCBu YW5kX2NoaXAgKmNoaXAsIHVpbnQ4X3QgKmJ1ZiwKIAlzdHJ1Y3QgbXRkX2luZm8gKm10ZCA9IG5h bmRfdG9fbXRkKGNoaXApOwogCXN0cnVjdCBjYWZlX3ByaXYgKmNhZmUgPSBuYW5kX2dldF9jb250 cm9sbGVyX2RhdGEoY2hpcCk7CiAJdW5zaWduZWQgaW50IG1heF9iaXRmbGlwcyA9IDA7CisJdTMy IGVjY19yZXN1bHQsIHN0YXR1czsKIAogCWNhZmVfZGV2X2RiZygmY2FmZS0+cGRldi0+ZGV2LCAi RUNDIHJlc3VsdCAlMDh4IFNZTjEsMiAlMDh4XG4iLAogCQkgICAgIGNhZmVfcmVhZGwoY2FmZSwg TkFORF9FQ0NfUkVTVUxUKSwKLQkJICAgICBjYWZlX3JlYWRsKGNhZmUsIE5BTkRfRUNDX1NZTjAx KSk7CisJCSAgICAgY2FmZV9yZWFkbChjYWZlLCBOQU5EX0VDQ19TWU5fUkVHKDApKSk7CiAKIAlu YW5kX3JlYWRfcGFnZV9vcChjaGlwLCBwYWdlLCAwLCBidWYsIG10ZC0+d3JpdGVzaXplKTsKIAlj aGlwLT5sZWdhY3kucmVhZF9idWYoY2hpcCwgY2hpcC0+b29iX3BvaSwgbXRkLT5vb2JzaXplKTsK IAotCWlmIChjaGVja2VjYyAmJiBjYWZlX3JlYWRsKGNhZmUsIE5BTkRfRUNDX1JFU1VMVCkgJiAo MTw8MTgpKSB7CisJZWNjX3Jlc3VsdCA9IGNhZmVfcmVhZGwoY2FmZSwgTkFORF9FQ0NfUkVTVUxU KTsKKwlzdGF0dXMgPSBDQUZFX0ZJRUxEX0dFVChOQU5EX0VDQ19SRVNVTFQsIFNUQVRVUywgZWNj X3Jlc3VsdCk7CisJaWYgKGNoZWNrZWNjICYmIHN0YXR1cyA9PSBDQUZFX05BTkRfRUNDX1JFU1VM VF9DT1JSRUNUQUJMRV9FUlJTKSB7CiAJCXVuc2lnbmVkIHNob3J0IHN5bls4XSwgcGF0WzRdOwog CQlpbnQgcG9zWzRdOwogCQl1OCAqb29iID0gY2hpcC0+b29iX3BvaTsKIAkJaW50IGksIG47CiAK IAkJZm9yIChpPTA7IGk8ODsgaSs9MikgewotCQkJdWludDMyX3QgdG1wID0gY2FmZV9yZWFkbChj YWZlLCBOQU5EX0VDQ19TWU4wMSArIChpKjIpKTsKKwkJCXVpbnQzMl90IHRtcCA9IGNhZmVfcmVh ZGwoY2FmZSwgTkFORF9FQ0NfU1lOX1JFRyhpKSk7CisJCQl1aW50MTZfdCBpZHg7CiAKLQkJCXN5 bltpXSA9IGNhZmUtPnJzLT5jb2RlYy0+aW5kZXhfb2ZbdG1wICYgMHhmZmZdOwotCQkJc3luW2kr MV0gPSBjYWZlLT5ycy0+Y29kZWMtPmluZGV4X29mWyh0bXAgPj4gMTYpICYgMHhmZmZdOworCQkJ aWR4ID0gRklFTERfR0VUKENBRkVfTkFORF9FQ0NfU1lOX0ZJRUxEKGkpLCB0bXApOworCQkJc3lu W2ldID0gY2FmZS0+cnMtPmNvZGVjLT5pbmRleF9vZltpZHhdOworCQkJaWR4ID0gRklFTERfR0VU KENBRkVfTkFORF9FQ0NfU1lOX0ZJRUxEKGkgKyAxKSwgdG1wKTsKKwkJCXN5bltpKzFdID0gY2Fm ZS0+cnMtPmNvZGVjLT5pbmRleF9vZltpZHhdOwogCQl9CiAKIAkJbiA9IGRlY29kZV9yczE2KGNh ZmUtPnJzLCBOVUxMLCBOVUxMLCAxMzY3LCBzeW4sIDAsIHBvcywgMCwKQEAgLTUzNiw3ICs2NTYs NyBAQCBzdGF0aWMgaW50IGNhZmVfbmFuZF93cml0ZV9wYWdlKHN0cnVjdCBuYW5kX2NoaXAgKmNo aXAsCiAJY2hpcC0+bGVnYWN5LndyaXRlX2J1ZihjaGlwLCBjaGlwLT5vb2JfcG9pLCBtdGQtPm9v YnNpemUpOwogCiAJLyogU2V0IHVwIEVDQyBhdXRvZ2VuZXJhdGlvbiAqLwotCWNhZmUtPmN0bDIg fD0gKDE8PDMwKTsKKwljYWZlLT5jdGwyIHw9IENBRkVfTkFORF9DVFJMMl9BVVRPX1dSSVRFX0VD QzsKIAogCXJldHVybiBuYW5kX3Byb2dfcGFnZV9lbmRfb3AoY2hpcCk7CiB9CkBAIC02MDQsOSAr NzI0LDkgQEAgc3RhdGljIGludCBjYWZlX25hbmRfYXR0YWNoX2NoaXAoc3RydWN0IG5hbmRfY2hp cCAqY2hpcCkKIAkvKiBSZXN0b3JlIHRoZSBETUEgZmxhZyAqLwogCWNhZmUtPnVzZWRtYSA9IHVz ZWRtYTsKIAotCWNhZmUtPmN0bDIgPSBCSVQoMjcpOyAvKiBSZWVkLVNvbG9tb24gRUNDICovCi0J aWYgKG10ZC0+d3JpdGVzaXplID09IDIwNDgpCi0JCWNhZmUtPmN0bDIgfD0gQklUKDI5KTsgLyog MktpQiBwYWdlIHNpemUgKi8KKwljYWZlLT5jdGwyID0gQ0FGRV9OQU5EX0NUUkwyX0VDQ19BTEdf UlMgfAorCQkgICAgIENBRkVfRklFTERfUFJFUChOQU5EX0NUUkwyLCBQQUdFX1NJWkUsCisJCQkJ ICAgICBtdGQtPndyaXRlc2l6ZSAvIDUxMik7CiAKIAkvKiBTZXQgdXAgRUNDIGFjY29yZGluZyB0 byB0aGUgdHlwZSBvZiBjaGlwIHdlIGZvdW5kICovCiAJbXRkX3NldF9vb2JsYXlvdXQobXRkLCAm Y2FmZV9vb2JsYXlvdXRfb3BzKTsKQEAgLTczNCw4ICs4NTQsOCBAQCBzdGF0aWMgaW50IGNhZmVf bmFuZF9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAl9CiAKIAkvKiBTdGFydCBvZmYgYnkg cmVzZXR0aW5nIHRoZSBOQU5EIGNvbnRyb2xsZXIgY29tcGxldGVseSAqLwotCWNhZmVfd3JpdGVs KGNhZmUsIDEsIE5BTkRfUkVTRVQpOwotCWNhZmVfd3JpdGVsKGNhZmUsIDAsIE5BTkRfUkVTRVQp OworCWNhZmVfd3JpdGVsKGNhZmUsIENBRkVfR0xPQkFMX1JFU0VUX05BTkQsIEdMT0JBTF9SRVNF VCk7CisJY2FmZV93cml0ZWwoY2FmZSwgMCwgR0xPQkFMX1JFU0VUKTsKIAogCWNhZmVfd3JpdGVs KGNhZmUsIHRpbWluZ1swXSwgTkFORF9USU1JTkcxKTsKIAljYWZlX3dyaXRlbChjYWZlLCB0aW1p bmdbMV0sIE5BTkRfVElNSU5HMik7CkBAIC03NTEsMTcgKzg3MSw0OSBAQCBzdGF0aWMgaW50IGNh ZmVfbmFuZF9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAogCS8qIERpc2FibGUgbWFzdGVy IHJlc2V0LCBlbmFibGUgTkFORCBjbG9jayAqLwogCWN0cmwgPSBjYWZlX3JlYWRsKGNhZmUsIEdM T0JBTF9DVFJMKTsKLQljdHJsICY9IDB4ZmZmZmVmZjA7Ci0JY3RybCB8PSAweDAwMDA3MDAwOwot CWNhZmVfd3JpdGVsKGNhZmUsIGN0cmwgfCAweDA1LCBHTE9CQUxfQ1RSTCk7Ci0JY2FmZV93cml0 ZWwoY2FmZSwgY3RybCB8IDB4MGEsIEdMT0JBTF9DVFJMKTsKKwljdHJsICY9IH4oQ0FGRV9HTE9C QUxfU1dfUkVTRVRfU0VUIHwKKwkJICBDQUZFX0dMT0JBTF9TV19SRVNFVF9DTEVBUiB8CisJCSAg Q0FGRV9HTE9CQUxfTUFTVEVSX1JFU0VUX1NFVCB8CisJCSAgQ0FGRV9HTE9CQUxfTUFTVEVSX1JF U0VUX0NMRUFSIHwKKwkJICBDQUZFX0dMT0JBTF9OQU5EX0NMS19FTkFCTEUpOworCWN0cmwgfD0g Q0FGRV9HTE9CQUxfTkFORF9DTEtfRU5BQkxFIHwKKwkJQ0FGRV9HTE9CQUxfU0RIX0NMS19FTkFC TEUgfAorCQlDQUZFX0dMT0JBTF9DQ0lDX0NMS19FTkFCTEU7CisJY2FmZV93cml0ZWwoY2FmZSwK KwkJICAgIGN0cmwgfAorCQkgICAgQ0FGRV9HTE9CQUxfTUFTVEVSX1JFU0VUX1NFVCB8CisJCSAg ICBDQUZFX0dMT0JBTF9TV19SRVNFVF9TRVQsCisJCSAgICBHTE9CQUxfQ1RSTCk7CisJY2FmZV93 cml0ZWwoY2FmZSwKKwkJICAgIGN0cmwgfAorCQkgICAgQ0FGRV9HTE9CQUxfTUFTVEVSX1JFU0VU X0NMRUFSIHwKKwkJICAgIENBRkVfR0xPQkFMX1NXX1JFU0VUX0NMRUFSLAorCQkgICAgR0xPQkFM X0NUUkwpOworCiAJY2FmZV93cml0ZWwoY2FmZSwgMCwgTkFORF9ETUFfQ1RSTCk7CiAKLQljYWZl X3dyaXRlbChjYWZlLCAweDcwMDYsIEdMT0JBTF9DVFJMKTsKLQljYWZlX3dyaXRlbChjYWZlLCAw eDcwMGEsIEdMT0JBTF9DVFJMKTsKKwljYWZlX3dyaXRlbChjYWZlLAorCQkgICAgQ0FGRV9HTE9C QUxfTkFORF9DTEtfRU5BQkxFIHwKKwkJICAgIENBRkVfR0xPQkFMX1NESF9DTEtfRU5BQkxFIHwK KwkJICAgIENBRkVfR0xPQkFMX0NDSUNfQ0xLX0VOQUJMRSB8CisJCSAgICBDQUZFX0dMT0JBTF9N QVNURVJfUkVTRVRfU0VUIHwKKwkJICAgIENBRkVfR0xPQkFMX1NXX1JFU0VUX0NMRUFSLAorCQkg ICAgR0xPQkFMX0NUUkwpOworCWNhZmVfd3JpdGVsKGNhZmUsCisJCSAgICBDQUZFX0dMT0JBTF9O QU5EX0NMS19FTkFCTEUgfAorCQkgICAgQ0FGRV9HTE9CQUxfU0RIX0NMS19FTkFCTEUgfAorCQkg ICAgQ0FGRV9HTE9CQUxfQ0NJQ19DTEtfRU5BQkxFIHwKKwkJICAgIENBRkVfR0xPQkFMX01BU1RF Ul9SRVNFVF9DTEVBUiB8CisJCSAgICBDQUZFX0dMT0JBTF9TV19SRVNFVF9DTEVBUiwKKwkJICAg IEdMT0JBTF9DVFJMKTsKIAogCS8qIEVuYWJsZSBOQU5EIElSUSBpbiBnbG9iYWwgSVJRIG1hc2sg cmVnaXN0ZXIgKi8KLQljYWZlX3dyaXRlbChjYWZlLCAweDgwMDAwMDA3LCBHTE9CQUxfSVJRX01B U0spOworCWNhZmVfd3JpdGVsKGNhZmUsCisJCSAgICBDQUZFX0dMT0JBTF9JUlFfUENJX0VSUk9S IHwKKwkJICAgIENBRkVfR0xPQkFMX0lSUV9DQ0lDIHwKKwkJICAgIENBRkVfR0xPQkFMX0lSUV9T REggfAorCQkgICAgQ0FGRV9HTE9CQUxfSVJRX05BTkQsCisJCSAgICBHTE9CQUxfSVJRX01BU0sp OwogCWNhZmVfZGV2X2RiZygmY2FmZS0+cGRldi0+ZGV2LCAiQ29udHJvbCAleCwgSVJRIG1hc2sg JXhcbiIsCiAJCWNhZmVfcmVhZGwoY2FmZSwgR0xPQkFMX0NUUkwpLAogCQljYWZlX3JlYWRsKGNh ZmUsIEdMT0JBTF9JUlFfTUFTSykpOwpAQCAtNzg4LDcgKzk0MCw5IEBAIHN0YXRpYyBpbnQgY2Fm ZV9uYW5kX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCW5hbmRfY2xlYW51cCgmY2FmZS0+ bmFuZCk7CiAgb3V0X2lycToKIAkvKiBEaXNhYmxlIE5BTkQgSVJRIGluIGdsb2JhbCBJUlEgbWFz ayByZWdpc3RlciAqLwotCWNhZmVfd3JpdGVsKGNhZmUsIH4xICYgY2FmZV9yZWFkbChjYWZlLCBH TE9CQUxfSVJRX01BU0spLCBHTE9CQUxfSVJRX01BU0spOworCWNhZmVfd3JpdGVsKGNhZmUsCisJ CSAgICBjYWZlX3JlYWRsKGNhZmUsIEdMT0JBTF9JUlFfTUFTSykgJiB+Q0FGRV9HTE9CQUxfSVJR X05BTkQsCisJCSAgICBHTE9CQUxfSVJRX01BU0spOwogCWZyZWVfaXJxKHBkZXYtPmlycSwgbXRk KTsKICBvdXRfaW9yOgogCXBjaV9pb3VubWFwKHBkZXYsIGNhZmUtPm1taW8pOwpAQCAtODA1LDcg Kzk1OSw5IEBAIHN0YXRpYyB2b2lkIGNhZmVfbmFuZF9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBk ZXYpCiAJc3RydWN0IGNhZmVfcHJpdiAqY2FmZSA9IG5hbmRfZ2V0X2NvbnRyb2xsZXJfZGF0YShj aGlwKTsKIAogCS8qIERpc2FibGUgTkFORCBJUlEgaW4gZ2xvYmFsIElSUSBtYXNrIHJlZ2lzdGVy ICovCi0JY2FmZV93cml0ZWwoY2FmZSwgfjEgJiBjYWZlX3JlYWRsKGNhZmUsIEdMT0JBTF9JUlFf TUFTSyksIEdMT0JBTF9JUlFfTUFTSyk7CisJY2FmZV93cml0ZWwoY2FmZSwKKwkJICAgIGNhZmVf cmVhZGwoY2FmZSwgR0xPQkFMX0lSUV9NQVNLKSAmIH5DQUZFX0dMT0JBTF9JUlFfTkFORCwKKwkJ ICAgIEdMT0JBTF9JUlFfTUFTSyk7CiAJZnJlZV9pcnEocGRldi0+aXJxLCBtdGQpOwogCW5hbmRf cmVsZWFzZShjaGlwKTsKIAlmcmVlX3JzKGNhZmUtPnJzKTsKQEAgLTgzMCw4ICs5ODYsOCBAQCBz dGF0aWMgaW50IGNhZmVfbmFuZF9yZXN1bWUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJc3RydWN0 IGNhZmVfcHJpdiAqY2FmZSA9IG5hbmRfZ2V0X2NvbnRyb2xsZXJfZGF0YShjaGlwKTsKIAogICAg ICAgIC8qIFN0YXJ0IG9mZiBieSByZXNldHRpbmcgdGhlIE5BTkQgY29udHJvbGxlciBjb21wbGV0 ZWx5ICovCi0JY2FmZV93cml0ZWwoY2FmZSwgMSwgTkFORF9SRVNFVCk7Ci0JY2FmZV93cml0ZWwo Y2FmZSwgMCwgTkFORF9SRVNFVCk7CisJY2FmZV93cml0ZWwoY2FmZSwgQ0FGRV9HTE9CQUxfUkVT RVRfTkFORCwgR0xPQkFMX1JFU0VUKTsKKwljYWZlX3dyaXRlbChjYWZlLCAwLCBHTE9CQUxfUkVT RVQpOwogCWNhZmVfd3JpdGVsKGNhZmUsIDB4ZmZmZmZmZmYsIE5BTkRfSVJRX01BU0spOwogCiAJ LyogUmVzdG9yZSB0aW1pbmcgY29uZmlndXJhdGlvbiAqLwpAQCAtODQxLDEzICs5OTcsNDEgQEAg c3RhdGljIGludCBjYWZlX25hbmRfcmVzdW1lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCiAgICAg ICAgIC8qIERpc2FibGUgbWFzdGVyIHJlc2V0LCBlbmFibGUgTkFORCBjbG9jayAqLwogCWN0cmwg PSBjYWZlX3JlYWRsKGNhZmUsIEdMT0JBTF9DVFJMKTsKLQljdHJsICY9IDB4ZmZmZmVmZjA7Ci0J Y3RybCB8PSAweDAwMDA3MDAwOwotCWNhZmVfd3JpdGVsKGNhZmUsIGN0cmwgfCAweDA1LCBHTE9C QUxfQ1RSTCk7Ci0JY2FmZV93cml0ZWwoY2FmZSwgY3RybCB8IDB4MGEsIEdMT0JBTF9DVFJMKTsK KwljdHJsICY9IH4oQ0FGRV9HTE9CQUxfU1dfUkVTRVRfU0VUIHwKKwkJICBDQUZFX0dMT0JBTF9T V19SRVNFVF9DTEVBUiB8CisJCSAgQ0FGRV9HTE9CQUxfTUFTVEVSX1JFU0VUX1NFVCB8CisJCSAg Q0FGRV9HTE9CQUxfTUFTVEVSX1JFU0VUX0NMRUFSIHwKKwkJICBDQUZFX0dMT0JBTF9OQU5EX0NM S19FTkFCTEUpOworCWN0cmwgfD0gQ0FGRV9HTE9CQUxfTkFORF9DTEtfRU5BQkxFIHwKKwkJQ0FG RV9HTE9CQUxfU0RIX0NMS19FTkFCTEUgfAorCQlDQUZFX0dMT0JBTF9DQ0lDX0NMS19FTkFCTEU7 CisJY2FmZV93cml0ZWwoY2FmZSwKKwkJICAgIGN0cmwgfAorCQkgICAgQ0FGRV9HTE9CQUxfTUFT VEVSX1JFU0VUX1NFVCB8CisJCSAgICBDQUZFX0dMT0JBTF9TV19SRVNFVF9TRVQsCisJCSAgICBH TE9CQUxfQ1RSTCk7CisJY2FmZV93cml0ZWwoY2FmZSwKKwkJICAgIGN0cmwgfAorCQkgICAgQ0FG RV9HTE9CQUxfTUFTVEVSX1JFU0VUX0NMRUFSIHwKKwkJICAgIENBRkVfR0xPQkFMX1NXX1JFU0VU X0NMRUFSLAorCQkgICAgR0xPQkFMX0NUUkwpOworCiAJY2FmZV93cml0ZWwoY2FmZSwgMCwgTkFO RF9ETUFfQ1RSTCk7Ci0JY2FmZV93cml0ZWwoY2FmZSwgMHg3MDA2LCBHTE9CQUxfQ1RSTCk7Ci0J Y2FmZV93cml0ZWwoY2FmZSwgMHg3MDBhLCBHTE9CQUxfQ1RSTCk7CisKKwljYWZlX3dyaXRlbChj YWZlLAorCQkgICAgQ0FGRV9HTE9CQUxfTkFORF9DTEtfRU5BQkxFIHwKKwkJICAgIENBRkVfR0xP QkFMX1NESF9DTEtfRU5BQkxFIHwKKwkJICAgIENBRkVfR0xPQkFMX0NDSUNfQ0xLX0VOQUJMRSB8 CisJCSAgICBDQUZFX0dMT0JBTF9NQVNURVJfUkVTRVRfU0VUIHwKKwkJICAgIENBRkVfR0xPQkFM X1NXX1JFU0VUX0NMRUFSLAorCQkgICAgR0xPQkFMX0NUUkwpOworCWNhZmVfd3JpdGVsKGNhZmUs CisJCSAgICBDQUZFX0dMT0JBTF9OQU5EX0NMS19FTkFCTEUgfAorCQkgICAgQ0FGRV9HTE9CQUxf U0RIX0NMS19FTkFCTEUgfAorCQkgICAgQ0FGRV9HTE9CQUxfQ0NJQ19DTEtfRU5BQkxFIHwKKwkJ ICAgIENBRkVfR0xPQkFMX01BU1RFUl9SRVNFVF9DTEVBUiB8CisJCSAgICBDQUZFX0dMT0JBTF9T V19SRVNFVF9DTEVBUiwKKwkJICAgIEdMT0JBTF9DVFJMKTsKIAogCS8qIFNldCB1cCBETUEgYWRk cmVzcyAqLwogCWNhZmVfd3JpdGVsKGNhZmUsIGNhZmUtPmRtYWFkZHIgJiAweGZmZmZmZmZmLCBO QU5EX0RNQV9BRERSMCk7CkBAIC04NTgsNyArMTA0MiwxMiBAQCBzdGF0aWMgaW50IGNhZmVfbmFu ZF9yZXN1bWUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJCWNhZmVfd3JpdGVsKGNhZmUsIDAsIE5B TkRfRE1BX0FERFIxKTsKIAogCS8qIEVuYWJsZSBOQU5EIElSUSBpbiBnbG9iYWwgSVJRIG1hc2sg cmVnaXN0ZXIgKi8KLQljYWZlX3dyaXRlbChjYWZlLCAweDgwMDAwMDA3LCBHTE9CQUxfSVJRX01B U0spOworCWNhZmVfd3JpdGVsKGNhZmUsCisJCSAgICBDQUZFX0dMT0JBTF9JUlFfUENJX0VSUk9S IHwKKwkJICAgIENBRkVfR0xPQkFMX0lSUV9DQ0lDIHwKKwkJICAgIENBRkVfR0xPQkFMX0lSUV9T REggfAorCQkgICAgQ0FGRV9HTE9CQUxfSVJRX05BTkQsCisJCSAgICBHTE9CQUxfSVJRX01BU0sp OwogCXJldHVybiAwOwogfQogCi0tIAoyLjI1LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1c3Npb24gbWFpbGlu ZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt bXRkLwo=