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,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 A21A1C47247 for ; Tue, 5 May 2020 10:18:41 +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 68F94206CC for ; Tue, 5 May 2020 10:18:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="U8OYq2a/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 68F94206CC 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=8AxdY5bl6zeYdYw/3N2jbYzO7wUsOBeNE+tV/CVi4MI=; b=U8OYq2a/fTsFFf xPF+ICXjg6xo9Y8LpGPbn9S2vsEzRDtUveMLK3S3SW9yXCTgod1raJe0WL+YLXEwaX3qu9ixPQ/Gw mx+by4oE3rNWBgf4/CFKQioept5uG7vM5jN/GQvzVJJIBRULplP3zT11lcYHWPQyw+BLPu+jVnifN 49nSzaE3TgkcEezEYmEkXpWNgisn/9ny6o+IS2Cquw8nsTQaBEuPXJllsJkkAOPpTcMFMnLHU+pOx M6q4FERBt4/USvbnf1IYKeD6YpxVPPRg0sMRsTRIF6930wr9t8AR4P4T3pkg2fIpwwzmN6O7a1zPB HdSoDAPraHcTMiGMBHfg==; 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 1jVueh-0005Hf-Rg; Tue, 05 May 2020 10:18:27 +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 1jVuaP-00076s-QI for linux-mtd@lists.infradead.org; Tue, 05 May 2020 10:14:07 +0000 Received: from localhost.localdomain (unknown [IPv6:2a01:e0a:2c:6930:d3ea:1c7:41fd:3038]) (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 AD4982A1AF5; Tue, 5 May 2020 11:13:59 +0100 (BST) From: Boris Brezillon To: Miquel Raynal , linux-mtd@lists.infradead.org, Lubomir Rintel Subject: [PATCH v2 06/19] mtd: rawnand: cafe: Demistify register fields Date: Tue, 5 May 2020 12:13:40 +0200 Message-Id: <20200505101353.1776394-7-boris.brezillon@collabora.com> X-Mailer: git-send-email 2.25.3 In-Reply-To: <20200505101353.1776394-1-boris.brezillon@collabora.com> References: <20200505101353.1776394-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-20200505_031402_140792_9D3F1D0A X-CRM114-Status: GOOD ( 19.43 ) 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 ZXIgcmVnaXN0ZXIKZmllbGRzIGJhc2VkIG9uIHRoZSBzcGVjIFsxXSBhbmQgdXNlIHRoZW0uCgpb MV1odHRwOi8vd2lraS5sYXB0b3Aub3JnL2ltYWdlcy81LzVjLzg4QUxQMDFfRGF0YXNoZWV0X0p1 bHlfMjAwNy5wZGYKClNpZ25lZC1vZmYtYnk6IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMuYnJlemls bG9uQGNvbGxhYm9yYS5jb20+ClJldmlld2VkLWJ5OiBMdWJvbWlyIFJpbnRlbCA8bGt1bmRyYWtA djMuc2s+ClRlc3RlZC1ieTogTHVib21pciBSaW50ZWwgPGxrdW5kcmFrQHYzLnNrPgotLS0KQ2hh bmdlcyBpbiB2MjoKKiBBZGQgUi1iL1QtYgoqIEdldCByaWQgb2YgdW5yZWxhdGVkIHNlbGVjdF9j aGlwKCkgY2hhbmdlCiogRml4IENFIHNlbGVjdGlvbiBsb2dpYwoqIHMvQ0FGRV9OQU5EX0NUUkwy X0NNRDIvQ0FGRV9OQU5EX0NUUkwyX0hBU19DTUQyLyAoUmVwb3J0ZWQgYnkgTHVib21pcikKLS0t CiBkcml2ZXJzL210ZC9uYW5kL3Jhdy9jYWZlX25hbmQuYyB8IDM0OSArKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjY4IGluc2VydGlvbnMoKyksIDgxIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L2NhZmVfbmFuZC5j IGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvY2FmZV9uYW5kLmMKaW5kZXggMTU2YTMwOGI1MzBiLi43 ZmI1YjIxYWViMDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L2NhZmVfbmFuZC5j CisrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2NhZmVfbmFuZC5jCkBAIC05LDYgKzksNyBAQAog ICogQ29weXJpZ2h0IMKpIDIwMDYgRGF2aWQgV29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3Jn PgogICovCiAKKyNpbmNsdWRlIDxsaW51eC9iaXRmaWVsZC5oPgogI2RlZmluZSBERUJVRwogCiAj aW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CkBAIC0yNSwzNyArMjYsMTI3IEBACiAjaW5jbHVkZSA8 bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KIAotI2RlZmluZSBDQUZFX05B TkRfQ1RSTDEJCTB4MDAKLSNkZWZpbmUgQ0FGRV9OQU5EX0NUUkwyCQkweDA0Ci0jZGVmaW5lIENB RkVfTkFORF9DVFJMMwkJMHgwOAotI2RlZmluZSBDQUZFX05BTkRfU1RBVFVTCTB4MGMKLSNkZWZp bmUgQ0FGRV9OQU5EX0lSUQkJMHgxMAotI2RlZmluZSBDQUZFX05BTkRfSVJRX01BU0sJMHgxNAot I2RlZmluZSBDQUZFX05BTkRfREFUQV9MRU4JMHgxOAotI2RlZmluZSBDQUZFX05BTkRfQUREUjEJ CTB4MWMKLSNkZWZpbmUgQ0FGRV9OQU5EX0FERFIyCQkweDIwCi0jZGVmaW5lIENBRkVfTkFORF9U SU1JTkcxCTB4MjQKLSNkZWZpbmUgQ0FGRV9OQU5EX1RJTUlORzIJMHgyOAotI2RlZmluZSBDQUZF X05BTkRfVElNSU5HMwkweDJjCi0jZGVmaW5lIENBRkVfTkFORF9OT05NRU0JMHgzMAotI2RlZmlu ZSBDQUZFX05BTkRfRUNDX1JFU1VMVAkweDNDCi0jZGVmaW5lIENBRkVfTkFORF9ETUFfQ1RSTAkw eDQwCi0jZGVmaW5lIENBRkVfTkFORF9ETUFfQUREUjAJMHg0NAotI2RlZmluZSBDQUZFX05BTkRf RE1BX0FERFIxCTB4NDgKLSNkZWZpbmUgQ0FGRV9OQU5EX0VDQ19TWU4wMQkweDUwCi0jZGVmaW5l IENBRkVfTkFORF9FQ0NfU1lOMjMJMHg1NAotI2RlZmluZSBDQUZFX05BTkRfRUNDX1NZTjQ1CTB4 NTgKLSNkZWZpbmUgQ0FGRV9OQU5EX0VDQ19TWU42NwkweDVjCi0jZGVmaW5lIENBRkVfTkFORF9S RUFEX0RBVEEJMHgxMDAwCi0jZGVmaW5lIENBRkVfTkFORF9XUklURV9EQVRBCTB4MjAwMAorI2Rl ZmluZSBDQUZFX05BTkRfQ1RSTDEJCQkJMHgwMAorI2RlZmluZSBDQUZFX05BTkRfQ1RSTDFfSEFT X0NNRAkJCUJJVCgzMSkKKyNkZWZpbmUgQ0FGRV9OQU5EX0NUUkwxX0hBU19BRERSCQlCSVQoMzAp CisjZGVmaW5lIENBRkVfTkFORF9DVFJMMV9OVU1fQUREUl9DWUMJCUdFTk1BU0soMjksIDI3KQor I2RlZmluZSBDQUZFX05BTkRfQ1RSTDFfSEFTX0RBVEFfSU4JCUJJVCgyNikKKyNkZWZpbmUgQ0FG RV9OQU5EX0NUUkwxX0hBU19EQVRBX09VVAkJQklUKDI1KQorI2RlZmluZSBDQUZFX05BTkRfQ1RS TDFfTlVNX05PTk1FTV9SRUFEX0hJR0gJR0VOTUFTSygyNCwgMjIpCisjZGVmaW5lIENBRkVfTkFO RF9DVFJMMV9XQUlUX0JTWV9BRlRFUl9TRVEJQklUKDIxKQorI2RlZmluZSBDQUZFX05BTkRfQ1RS TDFfTlVNX05PTk1FTV9SRUFEX0xPVwlCSVQoMjApCisjZGVmaW5lIENBRkVfTkFORF9DVFJMMV9D RQkJCUJJVCgxOSkKKyNkZWZpbmUgQ0FGRV9OQU5EX0NUUkwxX0NNRAkJCUdFTk1BU0soNywgMCkK IAotI2RlZmluZSBDQUZFX0dMT0JBTF9DVFJMCTB4MzAwNAotI2RlZmluZSBDQUZFX0dMT0JBTF9J UlEJCTB4MzAwOAotI2RlZmluZSBDQUZFX0dMT0JBTF9JUlFfTUFTSwkweDMwMGMKLSNkZWZpbmUg Q0FGRV9OQU5EX1JFU0VUCQkweDMwMzQKKyNkZWZpbmUgQ0FGRV9OQU5EX0NUUkwyCQkJCTB4MDQK KyNkZWZpbmUgQ0FGRV9OQU5EX0NUUkwyX0FVVE9fV1JJVEVfRUNDCQlCSVQoMzApCisjZGVmaW5l IENBRkVfTkFORF9DVFJMMl9QQUdFX1NJWkUJCUdFTk1BU0soMjksIDI4KQorI2RlZmluZSBDQUZF X05BTkRfQ1RSTDJfRUNDX0FMR19SUwkJQklUKDI3KQorI2RlZmluZSBDQUZFX05BTkRfQ1RSTDJf SEFTX0NNRDIJCUJJVCg4KQorI2RlZmluZSBDQUZFX05BTkRfQ1RSTDJfQ01EMgkJCUdFTk1BU0so NywgMCkKIAotLyogTWlzc2luZyBmcm9tIHRoZSBkYXRhc2hlZXQ6IGJpdCAxOSBvZiBDVFJMMSBz ZXRzIENFMCB2cy4gQ0UxICovCi0jZGVmaW5lIENUUkwxX0NISVBTRUxFQ1QJKDE8PDE5KQorI2Rl ZmluZSBDQUZFX05BTkRfQ1RSTDMJCQkJMHgwOAorI2RlZmluZSBDQUZFX05BTkRfQ1RSTDNfUkVB RF9CVVNZX1JFU0VUCQlCSVQoMzEpCisjZGVmaW5lIENBRkVfTkFORF9DVFJMM19XUAkJCUJJVCgz MCkKKworI2RlZmluZSBDQUZFX05BTkRfU1RBVFVTCQkJMHgwYworI2RlZmluZSBDQUZFX05BTkRf U1RBVFVTX0NPTlRST0xMRVJfQlVTWQlCSVQoMzEpCisjZGVmaW5lIENBRkVfTkFORF9TVEFUVVNf RkxBU0hfQlVTWQkJQklUKDMwKQorCisjZGVmaW5lIENBRkVfTkFORF9JUlEJCQkJMHgxMAorI2Rl ZmluZSBDQUZFX05BTkRfSVJRX01BU0sJCQkweDE0CisjZGVmaW5lIENBRkVfTkFORF9JUlFfQ01E X0RPTkUJCQlCSVQoMzEpCisjZGVmaW5lIENBRkVfTkFORF9JUlFfRkxBU0hfUkRZCQkJQklUKDMw KQorI2RlZmluZSBDQUZFX05BTkRfSVJRX0RNQV9ET05FCQkJQklUKDI4KQorI2RlZmluZSBDQUZF X05BTkRfSVJRX0JPT1RfRE9ORQkJCUJJVCgyNykKKworI2RlZmluZSBDQUZFX05BTkRfREFUQV9M RU4JCQkweDE4CisjZGVmaW5lIENBRkVfTkFORF9BRERSMQkJCQkweDFjCisjZGVmaW5lIENBRkVf TkFORF9BRERSMgkJCQkweDIwCisKKyNkZWZpbmUgQ0FGRV9OQU5EX1RJTUlORzEJCQkweDI0Cisj ZGVmaW5lIENBRkVfTkFORF9USU1JTkcxX1RDTFMJCQlHRU5NQVNLKDMxLCAyOCkKKyNkZWZpbmUg Q0FGRV9OQU5EX1RJTUlORzFfVENMSAkJCUdFTk1BU0soMjcsIDI0KQorI2RlZmluZSBDQUZFX05B TkRfVElNSU5HMV9UQUxTCQkJR0VOTUFTSygyMywgMjApCisjZGVmaW5lIENBRkVfTkFORF9USU1J TkcxX1RBTEgJCQlHRU5NQVNLKDE5LCAxNikKKyNkZWZpbmUgQ0FGRV9OQU5EX1RJTUlORzFfVFdC CQkJR0VOTUFTSygxNSwgOCkKKyNkZWZpbmUgQ0FGRV9OQU5EX1RJTUlORzFfVFJCCQkJR0VOTUFT Syg3LCAwKQorCisjZGVmaW5lIENBRkVfTkFORF9USU1JTkcyCQkJMHgyOAorI2RlZmluZSBDQUZF X05BTkRfVElNSU5HMl9UUlIJCQlHRU5NQVNLKDMxLCAyOCkKKyNkZWZpbmUgQ0FGRV9OQU5EX1RJ TUlORzJfVFJFQQkJCUdFTk1BU0soMjcsIDI0KQorI2RlZmluZSBDQUZFX05BTkRfVElNSU5HMl9U REgJCQlHRU5NQVNLKDIzLCAyMCkKKyNkZWZpbmUgQ0FGRV9OQU5EX1RJTUlORzJfVERTCQkJR0VO TUFTSygxOSwgMTYpCisjZGVmaW5lIENBRkVfTkFORF9USU1JTkcyX1RSSAkJCUdFTk1BU0soMTUs IDEyKQorI2RlZmluZSBDQUZFX05BTkRfVElNSU5HMl9UUlAJCQlHRU5NQVNLKDExLCA4KQorI2Rl ZmluZSBDQUZFX05BTkRfVElNSU5HMl9UV0gJCQlHRU5NQVNLKDcsIDQpCisjZGVmaW5lIENBRkVf TkFORF9USU1JTkcyX1RXUAkJCUdFTk1BU0soMywgMCkKKworI2RlZmluZSBDQUZFX05BTkRfVElN SU5HMwkJCTB4MmMKKyNkZWZpbmUgQ0FGRV9OQU5EX1RJTUlORzNfVEFSCQkJR0VOTUFTSygzMSwg MjgpCisjZGVmaW5lIENBRkVfTkFORF9USU1JTkczX1RDTFIJCQlHRU5NQVNLKDI3LCAyNCkKKwor I2RlZmluZSBDQUZFX05BTkRfTk9OTUVNX1JFQURfREFUQQkJMHgzMAorI2RlZmluZSBDQUZFX05B TkRfRUNDX1JFQURfQ09ERQkJCTB4MzgKKworI2RlZmluZSBDQUZFX05BTkRfRUNDX1JFU1VMVAkJ CTB4M0MKKyNkZWZpbmUgQ0FGRV9OQU5EX0VDQ19SRVNVTFRfUlNfRVJST1JTCQlCSVQoMTgpCisj ZGVmaW5lIENBRkVfTkFORF9FQ0NfUkVTVUxUX1NUQVRVUwkJR0VOTUFTSygxNywgMTYpCisjZGVm aW5lIENBRkVfTkFORF9FQ0NfUkVTVUxUX05PX0VSUk9SCQkoMCA8PCAxNikKKyNkZWZpbmUgQ0FG RV9OQU5EX0VDQ19SRVNVTFRfQ09SUkVDVEFCTEVfRVJSUwkoMSA8PCAxNikKKyNkZWZpbmUgQ0FG RV9OQU5EX0VDQ19SRVNVTFRfVU5DT1JSRUNUQUJMRV9FUlJTCSgyIDw8IDE2KQorI2RlZmluZSBD QUZFX05BTkRfRUNDX1JFU1VMVF9GQUlMX0JJVF9MT0MJR0VOTUFTSygxMywgMCkKKworI2RlZmlu ZSBDQUZFX05BTkRfRE1BX0NUUkwJCQkweDQwCisjZGVmaW5lIENBRkVfTkFORF9ETUFfQ1RSTF9F TkFCTEUJCUJJVCgzMSkKKyNkZWZpbmUgQ0FGRV9OQU5EX0RNQV9DVFJMX1JFU0VSVkVECQlCSVQo MzApCisjZGVmaW5lIENBRkVfTkFORF9ETUFfQ1RSTF9EQVRBX0lOCQlCSVQoMjkpCisjZGVmaW5l IENBRkVfTkFORF9ETUFfQ1RSTF9EQVRBX0xFTgkJR0VOTUFTSygxMSwgMCkKKworI2RlZmluZSBD QUZFX05BTkRfRE1BX0FERFIwCQkJMHg0NAorI2RlZmluZSBDQUZFX05BTkRfRE1BX0FERFIxCQkJ MHg0OAorI2RlZmluZSBDQUZFX05BTkRfRUNDX1NZTl9SRUcoeCkJCSgoKHgpIC8gMikgKyAweDUw KQorI2RlZmluZSBDQUZFX05BTkRfRUNDX1NZTl9GSUVMRCh4KQkJKCgoeCkgJSAyKSA/IEdFTk1B U0soMzEsIDE2KSA6IEdFTk1BU0soMTUsIDApKQorCisjZGVmaW5lIENBRkVfTkFORF9DVFJMNAkJ CQkweDYwCisjZGVmaW5lIENBRkVfTkFORF9DVFJMNF9OT19SRUFEX0RFTEFZCQlCSVQoOCkKKwor I2RlZmluZSBDQUZFX05BTkRfRFJJVkVfU1RSRU5HVEgJCTB4NjQKKyNkZWZpbmUgQ0FGRV9OQU5E X0RSSVZFX1NUUkVOR1RIX1ZBTAkJR0VOTUFTSyg0LCAwKQorCisjZGVmaW5lIENBRkVfTkFORF9S RUFEX0RBVEEJCQkweDEwMDAKKyNkZWZpbmUgQ0FGRV9OQU5EX1dSSVRFX0RBVEEJCQkweDIwMDAK KworI2RlZmluZSBDQUZFX0dMT0JBTF9DVFJMCQkJMHgzMDA0CisjZGVmaW5lIENBRkVfR0xPQkFM X0NDSUNfQ0xLX0VOQUJMRQkJQklUKDE0KQorI2RlZmluZSBDQUZFX0dMT0JBTF9TREhfQ0xLX0VO QUJMRQkJQklUKDEzKQorI2RlZmluZSBDQUZFX0dMT0JBTF9OQU5EX0NMS19FTkFCTEUJCUJJVCgx MikKKyNkZWZpbmUgQ0FGRV9HTE9CQUxfQ0xLUlVOX0VOQUJMRV9TRVQJCUJJVCgxMSkKKyNkZWZp bmUgQ0FGRV9HTE9CQUxfQ0xLUlVOX0VOQUJMRV9DTEVBUgkJQklUKDEwKQorI2RlZmluZSBDQUZF X0dMT0JBTF9TV19JUlFfU0VUCQkJQklUKDcpCisjZGVmaW5lIENBRkVfR0xPQkFMX1NXX0lSUV9D TEVBUgkJQklUKDYpCisjZGVmaW5lIENBRkVfR0xPQkFMX1NUT1BfTUFTVEVSX0RPTkUJCUJJVCg1 KQorI2RlZmluZSBDQUZFX0dMT0JBTF9TVE9QX01BU1RFUgkJCUJJVCg0KQorI2RlZmluZSBDQUZF X0dMT0JBTF9NQVNURVJfUkVTRVRfQ0xFQVIJCUJJVCgzKQorI2RlZmluZSBDQUZFX0dMT0JBTF9N QVNURVJfUkVTRVRfU0VUCQlCSVQoMikKKyNkZWZpbmUgQ0FGRV9HTE9CQUxfU1dfUkVTRVRfQ0xF QVIJCUJJVCgxKQorI2RlZmluZSBDQUZFX0dMT0JBTF9TV19SRVNFVF9TRVQJCUJJVCgwKQorCisj ZGVmaW5lIENBRkVfR0xPQkFMX0lSUQkJCQkweDMwMDgKKyNkZWZpbmUgQ0FGRV9HTE9CQUxfSVJR X01BU0sJCQkweDMwMGMKKyNkZWZpbmUgQ0FGRV9HTE9CQUxfSVJRX1BDSV9FUlJPUgkJQklUKDMx KQorI2RlZmluZSBDQUZFX0dMT0JBTF9JUlFfVlBEX1RXU0kJCUJJVCgyNikKKyNkZWZpbmUgQ0FG RV9HTE9CQUxfSVJRX0NDSUMJCQlCSVQoMikKKyNkZWZpbmUgQ0FGRV9HTE9CQUxfSVJRX1NESAkJ CUJJVCgxKQorI2RlZmluZSBDQUZFX0dMT0JBTF9JUlFfTkFORAkJCUJJVCgwKQorCisjZGVmaW5l IENBRkVfR0xPQkFMX1JFU0VUCQkJMHgzMDM0CisjZGVmaW5lIENBRkVfR0xPQkFMX1JFU0VUX0ND SUMJCQlCSVQoMikKKyNkZWZpbmUgQ0FGRV9HTE9CQUxfUkVTRVRfU0RICQkJQklUKDEpCisjZGVm aW5lIENBRkVfR0xPQkFMX1JFU0VUX05BTkQJCQlCSVQoMCkKKworI2RlZmluZSBDQUZFX0ZJRUxE X1BSRVAocmVnLCBmaWVsZCwgdmFsKQlGSUVMRF9QUkVQKENBRkVfIyNyZWcjI18jI2ZpZWxkLCB2 YWwpCisjZGVmaW5lIENBRkVfRklFTERfR0VUKHJlZywgZmllbGQsIHZhbCkJCUZJRUxEX0dFVChD QUZFXyMjcmVnIyNfIyNmaWVsZCwgdmFsKQogCiBzdHJ1Y3QgY2FmZV9wcml2IHsKIAlzdHJ1Y3Qg bmFuZF9jaGlwIG5hbmQ7CkBAIC0xMDQsNyArMTk1LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKnBh cnRfcHJvYmVzW10gPSB7ICJjbWRsaW5lcGFydCIsICJSZWRCb290IiwgTlVMTCB9Owogc3RhdGlj IGludCBjYWZlX2RldmljZV9yZWFkeShzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwKQogewogCXN0cnVj dCBjYWZlX3ByaXYgKmNhZmUgPSBuYW5kX2dldF9jb250cm9sbGVyX2RhdGEoY2hpcCk7Ci0JaW50 IHJlc3VsdCA9ICEhKGNhZmVfcmVhZGwoY2FmZSwgTkFORF9TVEFUVVMpICYgMHg0MDAwMDAwMCk7 CisJaW50IHJlc3VsdCA9ICEhKGNhZmVfcmVhZGwoY2FmZSwgTkFORF9TVEFUVVMpICYKKwkJCUNB RkVfTkFORF9TVEFUVVNfRkxBU0hfQlVTWSk7CiAJdWludDMyX3QgaXJxcyA9IGNhZmVfcmVhZGwo Y2FmZSwgTkFORF9JUlEpOwogCiAJY2FmZV93cml0ZWwoY2FmZSwgaXJxcywgTkFORF9JUlEpOwpA QCAtMTY0LDE2ICsyNTYsMjAgQEAgc3RhdGljIHZvaWQgY2FmZV9uYW5kX2NtZGZ1bmMoc3RydWN0 IG5hbmRfY2hpcCAqY2hpcCwgdW5zaWduZWQgY29tbWFuZCwKIAlzdHJ1Y3QgY2FmZV9wcml2ICpj YWZlID0gbmFuZF9nZXRfY29udHJvbGxlcl9kYXRhKGNoaXApOwogCWludCBhZHJieXRlcyA9IDA7 CiAJdWludDMyX3QgY3RsMTsKLQl1aW50MzJfdCBkb25laW50ID0gMHg4MDAwMDAwMDsKKwl1aW50 MzJfdCBkb25laW50ID0gQ0FGRV9OQU5EX0lSUV9DTURfRE9ORTsKIAogCWNhZmVfZGV2X2RiZygm Y2FmZS0+cGRldi0+ZGV2LCAiY21kZnVuYyAlMDJ4LCAweCV4LCAweCV4XG4iLAogCQljb21tYW5k LCBjb2x1bW4sIHBhZ2VfYWRkcik7CiAKIAlpZiAoY29tbWFuZCA9PSBOQU5EX0NNRF9FUkFTRTIg fHwgY29tbWFuZCA9PSBOQU5EX0NNRF9QQUdFUFJPRykgewogCQkvKiBTZWNvbmQgaGFsZiBvZiBh IGNvbW1hbmQgd2UgYWxyZWFkeSBjYWxjdWxhdGVkICovCi0JCWNhZmVfd3JpdGVsKGNhZmUsIGNh ZmUtPmN0bDIgfCAweDEwMCB8IGNvbW1hbmQsIE5BTkRfQ1RSTDIpOworCQljYWZlX3dyaXRlbChj YWZlLAorCQkJICAgIGNhZmUtPmN0bDIgfAorCQkJICAgIENBRkVfTkFORF9DVFJMMl9IQVNfQ01E MiB8CisJCQkgICAgQ0FGRV9GSUVMRF9QUkVQKE5BTkRfQ1RSTDIsIENNRDIsIGNvbW1hbmQpLAor CQkJICAgIE5BTkRfQ1RSTDIpOwogCQljdGwxID0gY2FmZS0+Y3RsMTsKLQkJY2FmZS0+Y3RsMiAm PSB+KDE8PDMwKTsKKwkJY2FmZS0+Y3RsMiAmPSB+Q0FGRV9OQU5EX0NUUkwyX0FVVE9fV1JJVEVf RUNDOwogCQljYWZlX2Rldl9kYmcoJmNhZmUtPnBkZXYtPmRldiwgIkNvbnRpbnVlIGNvbW1hbmQs IGN0bDEgJTA4eCwgI2RhdGEgJWRcbiIsCiAJCQkgIGNhZmUtPmN0bDEsIGNhZmUtPm5yX2RhdGEp OwogCQlnb3RvIGRvX2NvbW1hbmQ7CkBAIC0yMDksMjYgKzMwNSwyOSBAQCBzdGF0aWMgdm9pZCBj YWZlX25hbmRfY21kZnVuYyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCB1bnNpZ25lZCBjb21tYW5k LAogCWNhZmUtPmRhdGFfcG9zID0gY2FmZS0+ZGF0YWxlbiA9IDA7CiAKIAkvKiBTZXQgY29tbWFu ZCB2YWxpZCBiaXQsIG1hc2sgaW4gdGhlIGNoaXAgc2VsZWN0IGJpdCAgKi8KLQljdGwxID0gMHg4 MDAwMDAwMCB8IGNvbW1hbmQgfCAoY2FmZS0+Y3RsMSAmIENUUkwxX0NISVBTRUxFQ1QpOworCWN0 bDEgPSBDQUZFX05BTkRfQ1RSTDFfSEFTX0NNRCB8CisJICAgICAgIENBRkVfRklFTERfUFJFUChO QU5EX0NUUkwxLCBDTUQsIGNvbW1hbmQpIHwKKwkgICAgICAgKGNhZmUtPmN0bDEgJiBDQUZFX05B TkRfQ1RSTDFfQ0UpOwogCiAJLyogU2V0IFJEIG9yIFdSIGJpdHMgYXMgYXBwcm9wcmlhdGUgKi8K IAlpZiAoY29tbWFuZCA9PSBOQU5EX0NNRF9SRUFESUQgfHwgY29tbWFuZCA9PSBOQU5EX0NNRF9T VEFUVVMpIHsKLQkJY3RsMSB8PSAoMTw8MjYpOyAvKiByZCAqLworCQljdGwxIHw9IENBRkVfTkFO RF9DVFJMMV9IQVNfREFUQV9JTjsKIAkJLyogQWx3YXlzIDUgYnl0ZXMsIGZvciBub3cgKi8KIAkJ Y2FmZS0+ZGF0YWxlbiA9IDQ7CiAJCS8qIEFuZCBvbmUgYWRkcmVzcyBjeWNsZSAtLSBldmVuIGZv ciBTVEFUVVMsIHNpbmNlIHRoZSBjb250cm9sbGVyIGRvZXNuJ3Qgd29yayB3aXRob3V0ICovCiAJ CWFkcmJ5dGVzID0gMTsKIAl9IGVsc2UgaWYgKGNvbW1hbmQgPT0gTkFORF9DTURfUkVBRDAgfHwg Y29tbWFuZCA9PSBOQU5EX0NNRF9SRUFEMSB8fAogCQkgICBjb21tYW5kID09IE5BTkRfQ01EX1JF QURPT0IgfHwgY29tbWFuZCA9PSBOQU5EX0NNRF9STkRPVVQpIHsKLQkJY3RsMSB8PSAxPDwyNjsg LyogcmQgKi8KKwkJY3RsMSB8PSBDQUZFX05BTkRfQ1RSTDFfSEFTX0RBVEFfSU47CiAJCS8qIEZv ciBub3csIGFzc3VtZSBqdXN0IHJlYWQgdG8gZW5kIG9mIHBhZ2UgKi8KIAkJY2FmZS0+ZGF0YWxl biA9IG10ZC0+d3JpdGVzaXplICsgbXRkLT5vb2JzaXplIC0gY29sdW1uOwogCX0gZWxzZSBpZiAo Y29tbWFuZCA9PSBOQU5EX0NNRF9TRVFJTikKLQkJY3RsMSB8PSAxPDwyNTsgLyogd3IgKi8KKwkJ Y3RsMSB8PSBDQUZFX05BTkRfQ1RSTDFfSEFTX0RBVEFfT1VUOwogCiAJLyogU2V0IG51bWJlciBv ZiBhZGRyZXNzIGJ5dGVzICovCiAJaWYgKGFkcmJ5dGVzKQotCQljdGwxIHw9ICgoYWRyYnl0ZXMt MSl8OCkgPDwgMjc7CisJCWN0bDEgfD0gQ0FGRV9OQU5EX0NUUkwxX0hBU19BRERSIHwKKwkJCUNB RkVfRklFTERfUFJFUChOQU5EX0NUUkwxLCBOVU1fQUREUl9DWUMsIGFkcmJ5dGVzIC0gMSk7CiAK IAlpZiAoY29tbWFuZCA9PSBOQU5EX0NNRF9TRVFJTiB8fCBjb21tYW5kID09IE5BTkRfQ01EX0VS QVNFMSkgewogCQkvKiBJZ25vcmUgdGhlIGZpcnN0IGNvbW1hbmQgb2YgYSBwYWlyOyB0aGUgaGFy ZHdhcmUKQEAgLTI0MCw5ICszMzksMTUgQEAgc3RhdGljIHZvaWQgY2FmZV9uYW5kX2NtZGZ1bmMo c3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgdW5zaWduZWQgY29tbWFuZCwKIAl9CiAJLyogUk5ET1VU IGFuZCBSRUFEMCBjb21tYW5kcyBuZWVkIGEgZm9sbG93aW5nIGJ5dGUgKi8KIAlpZiAoY29tbWFu ZCA9PSBOQU5EX0NNRF9STkRPVVQpCi0JCWNhZmVfd3JpdGVsKGNhZmUsIGNhZmUtPmN0bDIgfCAw eDEwMCB8IE5BTkRfQ01EX1JORE9VVFNUQVJULCBOQU5EX0NUUkwyKTsKKwkJY2FmZV93cml0ZWwo Y2FmZSwKKwkJCSAgICBjYWZlLT5jdGwyIHwgQ0FGRV9OQU5EX0NUUkwyX0hBU19DTUQyIHwKKwkJ CSAgICBDQUZFX0ZJRUxEX1BSRVAoTkFORF9DVFJMMiwgQ01EMiwgTkFORF9DTURfUk5ET1VUU1RB UlQpLAorCQkJICAgIE5BTkRfQ1RSTDIpOwogCWVsc2UgaWYgKGNvbW1hbmQgPT0gTkFORF9DTURf UkVBRDAgJiYgbXRkLT53cml0ZXNpemUgPiA1MTIpCi0JCWNhZmVfd3JpdGVsKGNhZmUsIGNhZmUt PmN0bDIgfCAweDEwMCB8IE5BTkRfQ01EX1JFQURTVEFSVCwgTkFORF9DVFJMMik7CisJCWNhZmVf d3JpdGVsKGNhZmUsCisJCQkgICAgY2FmZS0+Y3RsMiB8IENBRkVfTkFORF9DVFJMMl9IQVNfQ01E MiB8CisJCQkgICAgQ0FGRV9GSUVMRF9QUkVQKE5BTkRfQ1RSTDIsIENNRDIsIE5BTkRfQ01EX1JF QURTVEFSVCksCisJCQkgICAgTkFORF9DVFJMMik7CiAKICBkb19jb21tYW5kOgogCWNhZmVfZGV2 X2RiZygmY2FmZS0+cGRldi0+ZGV2LCAiZGxlbiAleCwgY3RsMSAleCwgY3RsMiAleFxuIiwKQEAg LTI1MCwxNiArMzU1LDIzIEBAIHN0YXRpYyB2b2lkIGNhZmVfbmFuZF9jbWRmdW5jKHN0cnVjdCBu YW5kX2NoaXAgKmNoaXAsIHVuc2lnbmVkIGNvbW1hbmQsCiAKIAkvKiBOQjogVGhlIGRhdGFzaGVl dCBsaWVzIC0tIHdlIHJlYWxseSBzaG91bGQgYmUgc3VidHJhY3RpbmcgMSBoZXJlICovCiAJY2Fm ZV93cml0ZWwoY2FmZSwgY2FmZS0+ZGF0YWxlbiwgTkFORF9EQVRBX0xFTik7Ci0JY2FmZV93cml0 ZWwoY2FmZSwgMHg5MDAwMDAwMCwgTkFORF9JUlEpOwotCWlmIChjYWZlLT51c2VkbWEgJiYgKGN0 bDEgJiAoMzw8MjUpKSkgewotCQl1aW50MzJfdCBkbWFjdGwgPSAweGMwMDAwMDAwICsgY2FmZS0+ ZGF0YWxlbjsKKwljYWZlX3dyaXRlbChjYWZlLCBDQUZFX05BTkRfSVJRX0NNRF9ET05FIHwgQ0FG RV9OQU5EX0lSUV9ETUFfRE9ORSwKKwkJICAgIE5BTkRfSVJRKTsKKwlpZiAoY2FmZS0+dXNlZG1h ICYmCisJICAgIChjdGwxICYgKENBRkVfTkFORF9DVFJMMV9IQVNfREFUQV9JTiB8CisJCSAgICAg Q0FGRV9OQU5EX0NUUkwxX0hBU19EQVRBX09VVCkpKSB7CisJCXVpbnQzMl90IGRtYWN0bCA9IENB RkVfTkFORF9ETUFfQ1RSTF9FTkFCTEUgfAorCQkJCSAgQ0FGRV9OQU5EX0RNQV9DVFJMX1JFU0VS VkVEOworCisJCWRtYWN0bCB8PSBDQUZFX0ZJRUxEX1BSRVAoTkFORF9ETUFfQ1RSTCwgREFUQV9M RU4sCisJCQkJCSAgY2FmZS0+ZGF0YWxlbik7CiAJCS8qIElmIFdSIG9yIFJEIGJpdHMgc2V0LCBz ZXQgdXAgRE1BICovCi0JCWlmIChjdGwxICYgKDE8PDI2KSkgeworCQlpZiAoY3RsMSAmIENBRkVf TkFORF9DVFJMMV9IQVNfREFUQV9JTikgewogCQkJLyogSXQncyBhIHJlYWQgKi8KLQkJCWRtYWN0 bCB8PSAoMTw8MjkpOworCQkJZG1hY3RsIHw9IENBRkVfTkFORF9ETUFfQ1RSTF9EQVRBX0lOOwog CQkJLyogLi4uIHNvIGl0J3MgZG9uZSB3aGVuIHRoZSBETUEgaXMgZG9uZSwgbm90IGp1c3QKIAkJ CSAgIHRoZSBjb21tYW5kLiAqLwotCQkJZG9uZWludCA9IDB4MTAwMDAwMDA7CisJCQlkb25laW50 ID0gQ0FGRV9OQU5EX0lSUV9ETUFfRE9ORTsKIAkJfQogCQljYWZlX3dyaXRlbChjYWZlLCBkbWFj dGwsIE5BTkRfRE1BX0NUUkwpOwogCX0KQEAgLTI5NSw3ICs0MDcsNyBAQCBzdGF0aWMgdm9pZCBj YWZlX25hbmRfY21kZnVuYyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCB1bnNpZ25lZCBjb21tYW5k LAogCQkJICAgICBjb21tYW5kLCA1MDAwMDAtYywgaXJxcywgY2FmZV9yZWFkbChjYWZlLCBOQU5E X0lSUSkpOwogCX0KIAotCVdBUk5fT04oY2FmZS0+Y3RsMiAmICgxPDwzMCkpOworCVdBUk5fT04o Y2FmZS0+Y3RsMiAmIENBRkVfTkFORF9DVFJMMl9BVVRPX1dSSVRFX0VDQyk7CiAKIAlzd2l0Y2gg KGNvbW1hbmQpIHsKIApAQCAtMzIyLDEwICs0MzQsOCBAQCBzdGF0aWMgdm9pZCBjYWZlX3NlbGVj dF9jaGlwKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsIGludCBjaGlwbnIpCiAKIAkvKiBNYXNrIHRo ZSBhcHByb3ByaWF0ZSBiaXQgaW50byB0aGUgc3RvcmVkIHZhbHVlIG9mIGN0bDEKIAkgICB3aGlj aCB3aWxsIGJlIHVzZWQgYnkgY2FmZV9uYW5kX2NtZGZ1bmMoKSAqLwotCWlmIChjaGlwbnIpCi0J CWNhZmUtPmN0bDEgfD0gQ1RSTDFfQ0hJUFNFTEVDVDsKLQllbHNlCi0JCWNhZmUtPmN0bDEgJj0g fkNUUkwxX0NISVBTRUxFQ1Q7CisJY2FmZS0+Y3RsMSAmPSB+Q0FGRV9OQU5EX0NUUkwxX0NFOwor CWNhZmUtPmN0bDEgfD0gQ0FGRV9GSUVMRF9QUkVQKE5BTkRfQ1RSTDEsIENFLCBjaGlwbnIpOwog fQogCiBzdGF0aWMgaXJxcmV0dXJuX3QgY2FmZV9uYW5kX2ludGVycnVwdChpbnQgaXJxLCB2b2lk ICppZCkKQEAgLTMzNCw3ICs0NDQsOSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgY2FmZV9uYW5kX2lu dGVycnVwdChpbnQgaXJxLCB2b2lkICppZCkKIAlzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwID0gbXRk X3RvX25hbmQobXRkKTsKIAlzdHJ1Y3QgY2FmZV9wcml2ICpjYWZlID0gbmFuZF9nZXRfY29udHJv bGxlcl9kYXRhKGNoaXApOwogCXVpbnQzMl90IGlycXMgPSBjYWZlX3JlYWRsKGNhZmUsIE5BTkRf SVJRKTsKLQljYWZlX3dyaXRlbChjYWZlLCBpcnFzICYgfjB4OTAwMDAwMDAsIE5BTkRfSVJRKTsK KwljYWZlX3dyaXRlbChjYWZlLAorCQkgICAgaXJxcyAmIH4oQ0FGRV9OQU5EX0lSUV9DTURfRE9O RSB8IENBRkVfTkFORF9JUlFfRE1BX0RPTkUpLAorCQkgICAgTkFORF9JUlEpOwogCWlmICghaXJx cykKIAkJcmV0dXJuIElSUV9OT05FOwogCkBAIC0zNjgsMjUgKzQ4MCwzMSBAQCBzdGF0aWMgaW50 IGNhZmVfbmFuZF9yZWFkX3BhZ2Uoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgdWludDhfdCAqYnVm LAogCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gbmFuZF90b19tdGQoY2hpcCk7CiAJc3RydWN0IGNh ZmVfcHJpdiAqY2FmZSA9IG5hbmRfZ2V0X2NvbnRyb2xsZXJfZGF0YShjaGlwKTsKIAl1bnNpZ25l ZCBpbnQgbWF4X2JpdGZsaXBzID0gMDsKKwl1MzIgZWNjX3Jlc3VsdCwgc3RhdHVzOwogCiAJY2Fm ZV9kZXZfZGJnKCZjYWZlLT5wZGV2LT5kZXYsICJFQ0MgcmVzdWx0ICUwOHggU1lOMSwyICUwOHhc biIsCiAJCSAgICAgY2FmZV9yZWFkbChjYWZlLCBOQU5EX0VDQ19SRVNVTFQpLAotCQkgICAgIGNh ZmVfcmVhZGwoY2FmZSwgTkFORF9FQ0NfU1lOMDEpKTsKKwkJICAgICBjYWZlX3JlYWRsKGNhZmUs IE5BTkRfRUNDX1NZTl9SRUcoMCkpKTsKIAogCW5hbmRfcmVhZF9wYWdlX29wKGNoaXAsIHBhZ2Us IDAsIGJ1ZiwgbXRkLT53cml0ZXNpemUpOwogCWNoaXAtPmxlZ2FjeS5yZWFkX2J1ZihjaGlwLCBj aGlwLT5vb2JfcG9pLCBtdGQtPm9vYnNpemUpOwogCi0JaWYgKGNoZWNrZWNjICYmIGNhZmVfcmVh ZGwoY2FmZSwgTkFORF9FQ0NfUkVTVUxUKSAmICgxPDwxOCkpIHsKKwllY2NfcmVzdWx0ID0gY2Fm ZV9yZWFkbChjYWZlLCBOQU5EX0VDQ19SRVNVTFQpOworCXN0YXR1cyA9IENBRkVfRklFTERfR0VU KE5BTkRfRUNDX1JFU1VMVCwgU1RBVFVTLCBlY2NfcmVzdWx0KTsKKwlpZiAoY2hlY2tlY2MgJiYg c3RhdHVzID09IENBRkVfTkFORF9FQ0NfUkVTVUxUX0NPUlJFQ1RBQkxFX0VSUlMpIHsKIAkJdW5z aWduZWQgc2hvcnQgc3luWzhdLCBwYXRbNF07CiAJCWludCBwb3NbNF07CiAJCXU4ICpvb2IgPSBj aGlwLT5vb2JfcG9pOwogCQlpbnQgaSwgbjsKIAogCQlmb3IgKGk9MDsgaTw4OyBpKz0yKSB7Ci0J CQl1aW50MzJfdCB0bXAgPSBjYWZlX3JlYWRsKGNhZmUsIE5BTkRfRUNDX1NZTjAxICsgKGkqMikp OworCQkJdWludDMyX3QgdG1wID0gY2FmZV9yZWFkbChjYWZlLCBOQU5EX0VDQ19TWU5fUkVHKGkp KTsKKwkJCXVpbnQxNl90IGlkeDsKIAotCQkJc3luW2ldID0gY2FmZS0+cnMtPmNvZGVjLT5pbmRl eF9vZlt0bXAgJiAweGZmZl07Ci0JCQlzeW5baSsxXSA9IGNhZmUtPnJzLT5jb2RlYy0+aW5kZXhf b2ZbKHRtcCA+PiAxNikgJiAweGZmZl07CisJCQlpZHggPSBGSUVMRF9HRVQoQ0FGRV9OQU5EX0VD Q19TWU5fRklFTEQoaSksIHRtcCk7CisJCQlzeW5baV0gPSBjYWZlLT5ycy0+Y29kZWMtPmluZGV4 X29mW2lkeF07CisJCQlpZHggPSBGSUVMRF9HRVQoQ0FGRV9OQU5EX0VDQ19TWU5fRklFTEQoaSAr IDEpLCB0bXApOworCQkJc3luW2krMV0gPSBjYWZlLT5ycy0+Y29kZWMtPmluZGV4X29mW2lkeF07 CiAJCX0KIAogCQluID0gZGVjb2RlX3JzMTYoY2FmZS0+cnMsIE5VTEwsIE5VTEwsIDEzNjcsIHN5 biwgMCwgcG9zLCAwLApAQCAtNTM2LDcgKzY1NCw3IEBAIHN0YXRpYyBpbnQgY2FmZV9uYW5kX3dy aXRlX3BhZ2Uoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwKIAljaGlwLT5sZWdhY3kud3JpdGVfYnVm KGNoaXAsIGNoaXAtPm9vYl9wb2ksIG10ZC0+b29ic2l6ZSk7CiAKIAkvKiBTZXQgdXAgRUNDIGF1 dG9nZW5lcmF0aW9uICovCi0JY2FmZS0+Y3RsMiB8PSAoMTw8MzApOworCWNhZmUtPmN0bDIgfD0g Q0FGRV9OQU5EX0NUUkwyX0FVVE9fV1JJVEVfRUNDOwogCiAJcmV0dXJuIG5hbmRfcHJvZ19wYWdl X2VuZF9vcChjaGlwKTsKIH0KQEAgLTYwNCw5ICs3MjIsOSBAQCBzdGF0aWMgaW50IGNhZmVfbmFu ZF9hdHRhY2hfY2hpcChzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwKQogCS8qIFJlc3RvcmUgdGhlIERN QSBmbGFnICovCiAJY2FmZS0+dXNlZG1hID0gdXNlZG1hOwogCi0JY2FmZS0+Y3RsMiA9IEJJVCgy Nyk7IC8qIFJlZWQtU29sb21vbiBFQ0MgKi8KLQlpZiAobXRkLT53cml0ZXNpemUgPT0gMjA0OCkK LQkJY2FmZS0+Y3RsMiB8PSBCSVQoMjkpOyAvKiAyS2lCIHBhZ2Ugc2l6ZSAqLworCWNhZmUtPmN0 bDIgPSBDQUZFX05BTkRfQ1RSTDJfRUNDX0FMR19SUyB8CisJCSAgICAgQ0FGRV9GSUVMRF9QUkVQ KE5BTkRfQ1RSTDIsIFBBR0VfU0laRSwKKwkJCQkgICAgIG10ZC0+d3JpdGVzaXplIC8gNTEyKTsK IAogCS8qIFNldCB1cCBFQ0MgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIGNoaXAgd2UgZm91bmQg Ki8KIAltdGRfc2V0X29vYmxheW91dChtdGQsICZjYWZlX29vYmxheW91dF9vcHMpOwpAQCAtNzM0 LDggKzg1Miw4IEBAIHN0YXRpYyBpbnQgY2FmZV9uYW5kX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpw ZGV2LAogCX0KIAogCS8qIFN0YXJ0IG9mZiBieSByZXNldHRpbmcgdGhlIE5BTkQgY29udHJvbGxl ciBjb21wbGV0ZWx5ICovCi0JY2FmZV93cml0ZWwoY2FmZSwgMSwgTkFORF9SRVNFVCk7Ci0JY2Fm ZV93cml0ZWwoY2FmZSwgMCwgTkFORF9SRVNFVCk7CisJY2FmZV93cml0ZWwoY2FmZSwgQ0FGRV9H TE9CQUxfUkVTRVRfTkFORCwgR0xPQkFMX1JFU0VUKTsKKwljYWZlX3dyaXRlbChjYWZlLCAwLCBH TE9CQUxfUkVTRVQpOwogCiAJY2FmZV93cml0ZWwoY2FmZSwgdGltaW5nWzBdLCBOQU5EX1RJTUlO RzEpOwogCWNhZmVfd3JpdGVsKGNhZmUsIHRpbWluZ1sxXSwgTkFORF9USU1JTkcyKTsKQEAgLTc1 MSwxNyArODY5LDQ5IEBAIHN0YXRpYyBpbnQgY2FmZV9uYW5kX3Byb2JlKHN0cnVjdCBwY2lfZGV2 ICpwZGV2LAogCiAJLyogRGlzYWJsZSBtYXN0ZXIgcmVzZXQsIGVuYWJsZSBOQU5EIGNsb2NrICov CiAJY3RybCA9IGNhZmVfcmVhZGwoY2FmZSwgR0xPQkFMX0NUUkwpOwotCWN0cmwgJj0gMHhmZmZm ZWZmMDsKLQljdHJsIHw9IDB4MDAwMDcwMDA7Ci0JY2FmZV93cml0ZWwoY2FmZSwgY3RybCB8IDB4 MDUsIEdMT0JBTF9DVFJMKTsKLQljYWZlX3dyaXRlbChjYWZlLCBjdHJsIHwgMHgwYSwgR0xPQkFM X0NUUkwpOworCWN0cmwgJj0gfihDQUZFX0dMT0JBTF9TV19SRVNFVF9TRVQgfAorCQkgIENBRkVf R0xPQkFMX1NXX1JFU0VUX0NMRUFSIHwKKwkJICBDQUZFX0dMT0JBTF9NQVNURVJfUkVTRVRfU0VU IHwKKwkJICBDQUZFX0dMT0JBTF9NQVNURVJfUkVTRVRfQ0xFQVIgfAorCQkgIENBRkVfR0xPQkFM X05BTkRfQ0xLX0VOQUJMRSk7CisJY3RybCB8PSBDQUZFX0dMT0JBTF9OQU5EX0NMS19FTkFCTEUg fAorCQlDQUZFX0dMT0JBTF9TREhfQ0xLX0VOQUJMRSB8CisJCUNBRkVfR0xPQkFMX0NDSUNfQ0xL X0VOQUJMRTsKKwljYWZlX3dyaXRlbChjYWZlLAorCQkgICAgY3RybCB8CisJCSAgICBDQUZFX0dM T0JBTF9NQVNURVJfUkVTRVRfU0VUIHwKKwkJICAgIENBRkVfR0xPQkFMX1NXX1JFU0VUX1NFVCwK KwkJICAgIEdMT0JBTF9DVFJMKTsKKwljYWZlX3dyaXRlbChjYWZlLAorCQkgICAgY3RybCB8CisJ CSAgICBDQUZFX0dMT0JBTF9NQVNURVJfUkVTRVRfQ0xFQVIgfAorCQkgICAgQ0FGRV9HTE9CQUxf U1dfUkVTRVRfQ0xFQVIsCisJCSAgICBHTE9CQUxfQ1RSTCk7CisKIAljYWZlX3dyaXRlbChjYWZl LCAwLCBOQU5EX0RNQV9DVFJMKTsKIAotCWNhZmVfd3JpdGVsKGNhZmUsIDB4NzAwNiwgR0xPQkFM X0NUUkwpOwotCWNhZmVfd3JpdGVsKGNhZmUsIDB4NzAwYSwgR0xPQkFMX0NUUkwpOworCWNhZmVf d3JpdGVsKGNhZmUsCisJCSAgICBDQUZFX0dMT0JBTF9OQU5EX0NMS19FTkFCTEUgfAorCQkgICAg Q0FGRV9HTE9CQUxfU0RIX0NMS19FTkFCTEUgfAorCQkgICAgQ0FGRV9HTE9CQUxfQ0NJQ19DTEtf RU5BQkxFIHwKKwkJICAgIENBRkVfR0xPQkFMX01BU1RFUl9SRVNFVF9TRVQgfAorCQkgICAgQ0FG RV9HTE9CQUxfU1dfUkVTRVRfQ0xFQVIsCisJCSAgICBHTE9CQUxfQ1RSTCk7CisJY2FmZV93cml0 ZWwoY2FmZSwKKwkJICAgIENBRkVfR0xPQkFMX05BTkRfQ0xLX0VOQUJMRSB8CisJCSAgICBDQUZF X0dMT0JBTF9TREhfQ0xLX0VOQUJMRSB8CisJCSAgICBDQUZFX0dMT0JBTF9DQ0lDX0NMS19FTkFC TEUgfAorCQkgICAgQ0FGRV9HTE9CQUxfTUFTVEVSX1JFU0VUX0NMRUFSIHwKKwkJICAgIENBRkVf R0xPQkFMX1NXX1JFU0VUX0NMRUFSLAorCQkgICAgR0xPQkFMX0NUUkwpOwogCiAJLyogRW5hYmxl IE5BTkQgSVJRIGluIGdsb2JhbCBJUlEgbWFzayByZWdpc3RlciAqLwotCWNhZmVfd3JpdGVsKGNh ZmUsIDB4ODAwMDAwMDcsIEdMT0JBTF9JUlFfTUFTSyk7CisJY2FmZV93cml0ZWwoY2FmZSwKKwkJ ICAgIENBRkVfR0xPQkFMX0lSUV9QQ0lfRVJST1IgfAorCQkgICAgQ0FGRV9HTE9CQUxfSVJRX0ND SUMgfAorCQkgICAgQ0FGRV9HTE9CQUxfSVJRX1NESCB8CisJCSAgICBDQUZFX0dMT0JBTF9JUlFf TkFORCwKKwkJICAgIEdMT0JBTF9JUlFfTUFTSyk7CiAJY2FmZV9kZXZfZGJnKCZjYWZlLT5wZGV2 LT5kZXYsICJDb250cm9sICV4LCBJUlEgbWFzayAleFxuIiwKIAkJY2FmZV9yZWFkbChjYWZlLCBH TE9CQUxfQ1RSTCksCiAJCWNhZmVfcmVhZGwoY2FmZSwgR0xPQkFMX0lSUV9NQVNLKSk7CkBAIC03 ODgsNyArOTM4LDkgQEAgc3RhdGljIGludCBjYWZlX25hbmRfcHJvYmUoc3RydWN0IHBjaV9kZXYg KnBkZXYsCiAJbmFuZF9jbGVhbnVwKCZjYWZlLT5uYW5kKTsKICBvdXRfaXJxOgogCS8qIERpc2Fi bGUgTkFORCBJUlEgaW4gZ2xvYmFsIElSUSBtYXNrIHJlZ2lzdGVyICovCi0JY2FmZV93cml0ZWwo Y2FmZSwgfjEgJiBjYWZlX3JlYWRsKGNhZmUsIEdMT0JBTF9JUlFfTUFTSyksIEdMT0JBTF9JUlFf TUFTSyk7CisJY2FmZV93cml0ZWwoY2FmZSwKKwkJICAgIGNhZmVfcmVhZGwoY2FmZSwgR0xPQkFM X0lSUV9NQVNLKSAmIH5DQUZFX0dMT0JBTF9JUlFfTkFORCwKKwkJICAgIEdMT0JBTF9JUlFfTUFT Syk7CiAJZnJlZV9pcnEocGRldi0+aXJxLCBtdGQpOwogIG91dF9pb3I6CiAJcGNpX2lvdW5tYXAo cGRldiwgY2FmZS0+bW1pbyk7CkBAIC04MDUsNyArOTU3LDkgQEAgc3RhdGljIHZvaWQgY2FmZV9u YW5kX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIAlzdHJ1Y3QgY2FmZV9wcml2ICpjYWZl ID0gbmFuZF9nZXRfY29udHJvbGxlcl9kYXRhKGNoaXApOwogCiAJLyogRGlzYWJsZSBOQU5EIElS USBpbiBnbG9iYWwgSVJRIG1hc2sgcmVnaXN0ZXIgKi8KLQljYWZlX3dyaXRlbChjYWZlLCB+MSAm IGNhZmVfcmVhZGwoY2FmZSwgR0xPQkFMX0lSUV9NQVNLKSwgR0xPQkFMX0lSUV9NQVNLKTsKKwlj YWZlX3dyaXRlbChjYWZlLAorCQkgICAgY2FmZV9yZWFkbChjYWZlLCBHTE9CQUxfSVJRX01BU0sp ICYgfkNBRkVfR0xPQkFMX0lSUV9OQU5ELAorCQkgICAgR0xPQkFMX0lSUV9NQVNLKTsKIAlmcmVl X2lycShwZGV2LT5pcnEsIG10ZCk7CiAJbmFuZF9yZWxlYXNlKGNoaXApOwogCWZyZWVfcnMoY2Fm ZS0+cnMpOwpAQCAtODMwLDggKzk4NCw4IEBAIHN0YXRpYyBpbnQgY2FmZV9uYW5kX3Jlc3VtZShz dHJ1Y3QgcGNpX2RldiAqcGRldikKIAlzdHJ1Y3QgY2FmZV9wcml2ICpjYWZlID0gbmFuZF9nZXRf Y29udHJvbGxlcl9kYXRhKGNoaXApOwogCiAgICAgICAgLyogU3RhcnQgb2ZmIGJ5IHJlc2V0dGlu ZyB0aGUgTkFORCBjb250cm9sbGVyIGNvbXBsZXRlbHkgKi8KLQljYWZlX3dyaXRlbChjYWZlLCAx LCBOQU5EX1JFU0VUKTsKLQljYWZlX3dyaXRlbChjYWZlLCAwLCBOQU5EX1JFU0VUKTsKKwljYWZl X3dyaXRlbChjYWZlLCBDQUZFX0dMT0JBTF9SRVNFVF9OQU5ELCBHTE9CQUxfUkVTRVQpOworCWNh ZmVfd3JpdGVsKGNhZmUsIDAsIEdMT0JBTF9SRVNFVCk7CiAJY2FmZV93cml0ZWwoY2FmZSwgMHhm ZmZmZmZmZiwgTkFORF9JUlFfTUFTSyk7CiAKIAkvKiBSZXN0b3JlIHRpbWluZyBjb25maWd1cmF0 aW9uICovCkBAIC04NDEsMTMgKzk5NSw0MSBAQCBzdGF0aWMgaW50IGNhZmVfbmFuZF9yZXN1bWUo c3RydWN0IHBjaV9kZXYgKnBkZXYpCiAKICAgICAgICAgLyogRGlzYWJsZSBtYXN0ZXIgcmVzZXQs IGVuYWJsZSBOQU5EIGNsb2NrICovCiAJY3RybCA9IGNhZmVfcmVhZGwoY2FmZSwgR0xPQkFMX0NU UkwpOwotCWN0cmwgJj0gMHhmZmZmZWZmMDsKLQljdHJsIHw9IDB4MDAwMDcwMDA7Ci0JY2FmZV93 cml0ZWwoY2FmZSwgY3RybCB8IDB4MDUsIEdMT0JBTF9DVFJMKTsKLQljYWZlX3dyaXRlbChjYWZl LCBjdHJsIHwgMHgwYSwgR0xPQkFMX0NUUkwpOworCWN0cmwgJj0gfihDQUZFX0dMT0JBTF9TV19S RVNFVF9TRVQgfAorCQkgIENBRkVfR0xPQkFMX1NXX1JFU0VUX0NMRUFSIHwKKwkJICBDQUZFX0dM T0JBTF9NQVNURVJfUkVTRVRfU0VUIHwKKwkJICBDQUZFX0dMT0JBTF9NQVNURVJfUkVTRVRfQ0xF QVIgfAorCQkgIENBRkVfR0xPQkFMX05BTkRfQ0xLX0VOQUJMRSk7CisJY3RybCB8PSBDQUZFX0dM T0JBTF9OQU5EX0NMS19FTkFCTEUgfAorCQlDQUZFX0dMT0JBTF9TREhfQ0xLX0VOQUJMRSB8CisJ CUNBRkVfR0xPQkFMX0NDSUNfQ0xLX0VOQUJMRTsKKwljYWZlX3dyaXRlbChjYWZlLAorCQkgICAg Y3RybCB8CisJCSAgICBDQUZFX0dMT0JBTF9NQVNURVJfUkVTRVRfU0VUIHwKKwkJICAgIENBRkVf R0xPQkFMX1NXX1JFU0VUX1NFVCwKKwkJICAgIEdMT0JBTF9DVFJMKTsKKwljYWZlX3dyaXRlbChj YWZlLAorCQkgICAgY3RybCB8CisJCSAgICBDQUZFX0dMT0JBTF9NQVNURVJfUkVTRVRfQ0xFQVIg fAorCQkgICAgQ0FGRV9HTE9CQUxfU1dfUkVTRVRfQ0xFQVIsCisJCSAgICBHTE9CQUxfQ1RSTCk7 CisKIAljYWZlX3dyaXRlbChjYWZlLCAwLCBOQU5EX0RNQV9DVFJMKTsKLQljYWZlX3dyaXRlbChj YWZlLCAweDcwMDYsIEdMT0JBTF9DVFJMKTsKLQljYWZlX3dyaXRlbChjYWZlLCAweDcwMGEsIEdM T0JBTF9DVFJMKTsKKworCWNhZmVfd3JpdGVsKGNhZmUsCisJCSAgICBDQUZFX0dMT0JBTF9OQU5E X0NMS19FTkFCTEUgfAorCQkgICAgQ0FGRV9HTE9CQUxfU0RIX0NMS19FTkFCTEUgfAorCQkgICAg Q0FGRV9HTE9CQUxfQ0NJQ19DTEtfRU5BQkxFIHwKKwkJICAgIENBRkVfR0xPQkFMX01BU1RFUl9S RVNFVF9TRVQgfAorCQkgICAgQ0FGRV9HTE9CQUxfU1dfUkVTRVRfQ0xFQVIsCisJCSAgICBHTE9C QUxfQ1RSTCk7CisJY2FmZV93cml0ZWwoY2FmZSwKKwkJICAgIENBRkVfR0xPQkFMX05BTkRfQ0xL X0VOQUJMRSB8CisJCSAgICBDQUZFX0dMT0JBTF9TREhfQ0xLX0VOQUJMRSB8CisJCSAgICBDQUZF X0dMT0JBTF9DQ0lDX0NMS19FTkFCTEUgfAorCQkgICAgQ0FGRV9HTE9CQUxfTUFTVEVSX1JFU0VU X0NMRUFSIHwKKwkJICAgIENBRkVfR0xPQkFMX1NXX1JFU0VUX0NMRUFSLAorCQkgICAgR0xPQkFM X0NUUkwpOwogCiAJLyogU2V0IHVwIERNQSBhZGRyZXNzICovCiAJY2FmZV93cml0ZWwoY2FmZSwg Y2FmZS0+ZG1hYWRkciAmIDB4ZmZmZmZmZmYsIE5BTkRfRE1BX0FERFIwKTsKQEAgLTg1OCw3ICsx MDQwLDEyIEBAIHN0YXRpYyBpbnQgY2FmZV9uYW5kX3Jlc3VtZShzdHJ1Y3QgcGNpX2RldiAqcGRl dikKIAkJY2FmZV93cml0ZWwoY2FmZSwgMCwgTkFORF9ETUFfQUREUjEpOwogCiAJLyogRW5hYmxl IE5BTkQgSVJRIGluIGdsb2JhbCBJUlEgbWFzayByZWdpc3RlciAqLwotCWNhZmVfd3JpdGVsKGNh ZmUsIDB4ODAwMDAwMDcsIEdMT0JBTF9JUlFfTUFTSyk7CisJY2FmZV93cml0ZWwoY2FmZSwKKwkJ ICAgIENBRkVfR0xPQkFMX0lSUV9QQ0lfRVJST1IgfAorCQkgICAgQ0FGRV9HTE9CQUxfSVJRX0ND SUMgfAorCQkgICAgQ0FGRV9HTE9CQUxfSVJRX1NESCB8CisJCSAgICBDQUZFX0dMT0JBTF9JUlFf TkFORCwKKwkJICAgIEdMT0JBTF9JUlFfTUFTSyk7CiAJcmV0dXJuIDA7CiB9CiAKLS0gCjIuMjUu MwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvCg==