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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id CF6F7C48BEB for ; Thu, 15 Feb 2024 16:53:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=/VymZ3qqOcqJKJXfw4Y+5KLO8hVTr849PIW7Gcq8hck=; b=j04gOcF0/k1U1Q 1jmbtDBtk+k1dGBrx/mzTfngGP8tUrn61rMFPSZ1YTCk3MjxZNQqYqFVTjKIScZ3aiP10tX1PkEDW izMkK1/SbHLaEenwajiR6sJiHte+DqQogH/ieB5FrLsvR1kd9ZCDY7WwsaZQ8Vh+EJRQ8mbd8ZkAe eKWt13ITlWmg8JbMVIAmlxaBrHpg9XuDatj3fN12mHTNyVZGKzeM4B83BczHaKHtMxDkV9M7O7wfV vLeU0edGlP+kmfL2XSSjA8kxPT3TJQdOxi+YtBpF+uhEzrcNxBa1wVFj37S9zgh37yHyxp/zN7SGL eH4eOHxIf2sJcOWpXF4w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1raeyo-0000000H3TO-0nnx; Thu, 15 Feb 2024 16:52:58 +0000 Received: from relay4-d.mail.gandi.net ([217.70.183.196]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1raeyV-0000000H3FV-0JXd for linux-arm-kernel@lists.infradead.org; Thu, 15 Feb 2024 16:52:45 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id F2D8DE0017; Thu, 15 Feb 2024 16:52:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1708015957; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ch8tjKPy7nBDupOpE8cNjrCAOYNZCyjkUOP1wYjWAEI=; b=VVirSm/5GxKXpZJE22DcH0Nr7q0tP0ItL/g2COO4hLKbCUakOI72ciJOJb6n4LTX5WHQEY Y6CCjcskndgXiFrKn8fzmupYoJo4nUTnu6KWCjP6MXaRX3cHj1Zy0my9c1h0LQuhjNbEM5 I6q1o+vrhk1I6vTB41bl46pL0Ha+SEc/iHKBUWdqwNB1fpPRcaE5A7unoIa00lGzTtjrTH LJ/fDgej+wiP09v3pBBDGogbantMurLecZH2xD9Q/eqRfdo5pYkbmWSgBGicYnfiYZoMI4 CWXRJZMHuQk1q1eQi5RNQps1U5Jb2xaQ0x5IWhZmSRc3N1J1/TKrJwRubKWVTA== From: =?utf-8?q?Th=C3=A9o_Lebrun?= Date: Thu, 15 Feb 2024 17:52:13 +0100 Subject: [PATCH 06/13] i2c: nomadik: use bitops helpers MIME-Version: 1.0 Message-Id: <20240215-mbly-i2c-v1-6-19a336e91dca@bootlin.com> References: <20240215-mbly-i2c-v1-0-19a336e91dca@bootlin.com> In-Reply-To: <20240215-mbly-i2c-v1-0-19a336e91dca@bootlin.com> To: Linus Walleij , Andi Shyti , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thomas Bogendoerfer Cc: linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org, Gregory Clement , Vladimir Kondratiev , Thomas Petazzoni , Tawfik Bayouk , =?utf-8?q?Th=C3=A9o_Lebrun?= X-Mailer: b4 0.12.4 X-GND-Sasl: theo.lebrun@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240215_085239_444783_6393E632 X-CRM114-Status: GOOD ( 18.62 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Q29uc3RhbnQgcmVnaXN0ZXIgYml0IGZpZWxkcyBhcmUgZGVjbGFyZWQgdXNpbmcgaGFyZGNvZGVk IGhleCB2YWx1ZXM7CnJlcGxhY2UgdGhlbSBieSBjYWxscyB0byBCSVQoKSBhbmQgR0VOTUFTSygp LiBSZXBsYWNlIGN1c3RvbSBHRU5fTUFTSygpCm1hY3JvIGJ5IHRoZSBnZW5lcmljIEZJRUxEX1BS RVAoKS4gUmVwbGFjZSBtYW51YWwgYml0IG1hbmlwdWxhdGlvbnMgYnkKdGhlIGdlbmVyaWMgRklF TERfR0VUKCkgbWFjcm8uCgpTaWduZWQtb2ZmLWJ5OiBUaMOpbyBMZWJydW4gPHRoZW8ubGVicnVu QGJvb3RsaW4uY29tPgotLS0KIGRyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbm9tYWRpay5jIHwgMTUw ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDc3IGluc2VydGlvbnMoKyksIDczIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv aTJjL2J1c3Nlcy9pMmMtbm9tYWRpay5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1ub21hZGlr LmMKaW5kZXggODBiZGY3ZTQyNjEzLi5hYTY4YWI0MDJiMTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv aTJjL2J1c3Nlcy9pMmMtbm9tYWRpay5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbm9t YWRpay5jCkBAIC05LDYgKzksNyBAQAogICogQXV0aG9yOiBTcmluaWRoaSBLYXNhZ2FyIDxzcmlu aWRoaS5rYXNhZ2FyQHN0ZXJpY3Nzb24uY29tPgogICogQXV0aG9yOiBTYWNoaW4gVmVybWEgPHNh Y2hpbi52ZXJtYUBzdC5jb20+CiAgKi8KKyNpbmNsdWRlIDxsaW51eC9iaXRmaWVsZC5oPgogI2lu Y2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRl IDxsaW51eC9hbWJhL2J1cy5oPgpAQCAtNDIsNTQgKzQzLDU5IEBACiAjZGVmaW5lIEkyQ19JQ1IJ CSgweDAzOCkKIAogLyogQ29udHJvbCByZWdpc3RlcnMgKi8KLSNkZWZpbmUgSTJDX0NSX1BFCQko MHgxIDw8IDApCS8qIFBlcmlwaGVyYWwgRW5hYmxlICovCi0jZGVmaW5lIEkyQ19DUl9PTQkJKDB4 MyA8PCAxKQkvKiBPcGVyYXRpbmcgbW9kZSAqLwotI2RlZmluZSBJMkNfQ1JfU0FNCQkoMHgxIDw8 IDMpCS8qIFNsYXZlIGFkZHJlc3NpbmcgbW9kZSAqLwotI2RlZmluZSBJMkNfQ1JfU00JCSgweDMg PDwgNCkJLyogU3BlZWQgbW9kZSAqLwotI2RlZmluZSBJMkNfQ1JfU0dDTQkJKDB4MSA8PCA2KQkv KiBTbGF2ZSBnZW5lcmFsIGNhbGwgbW9kZSAqLwotI2RlZmluZSBJMkNfQ1JfRlRYCQkoMHgxIDw8 IDcpCS8qIEZsdXNoIFRyYW5zbWl0ICovCi0jZGVmaW5lIEkyQ19DUl9GUlgJCSgweDEgPDwgOCkJ LyogRmx1c2ggUmVjZWl2ZSAqLwotI2RlZmluZSBJMkNfQ1JfRE1BX1RYX0VOCSgweDEgPDwgOSkJ LyogRE1BIFR4IGVuYWJsZSAqLwotI2RlZmluZSBJMkNfQ1JfRE1BX1JYX0VOCSgweDEgPDwgMTAp CS8qIERNQSBSeCBFbmFibGUgKi8KLSNkZWZpbmUgSTJDX0NSX0RNQV9TTEUJCSgweDEgPDwgMTEp CS8qIERNQSBzeW5jLiBsb2dpYyBlbmFibGUgKi8KLSNkZWZpbmUgSTJDX0NSX0xNCQkoMHgxIDw8 IDEyKQkvKiBMb29wYmFjayBtb2RlICovCi0jZGVmaW5lIEkyQ19DUl9GT04JCSgweDMgPDwgMTMp CS8qIEZpbHRlcmluZyBvbiAqLwotI2RlZmluZSBJMkNfQ1JfRlMJCSgweDMgPDwgMTUpCS8qIEZv cmNlIHN0b3AgZW5hYmxlICovCisjZGVmaW5lIEkyQ19DUl9QRQkJQklUKDApCQkvKiBQZXJpcGhl cmFsIEVuYWJsZSAqLworI2RlZmluZSBJMkNfQ1JfT00JCUdFTk1BU0soMiwgMSkJLyogT3BlcmF0 aW5nIG1vZGUgKi8KKyNkZWZpbmUgSTJDX0NSX1NBTQkJQklUKDMpCQkvKiBTbGF2ZSBhZGRyZXNz aW5nIG1vZGUgKi8KKyNkZWZpbmUgSTJDX0NSX1NNCQlHRU5NQVNLKDUsIDQpCS8qIFNwZWVkIG1v ZGUgKi8KKyNkZWZpbmUgSTJDX0NSX1NHQ00JCUJJVCg2KQkJLyogU2xhdmUgZ2VuZXJhbCBjYWxs IG1vZGUgKi8KKyNkZWZpbmUgSTJDX0NSX0ZUWAkJQklUKDcpCQkvKiBGbHVzaCBUcmFuc21pdCAq LworI2RlZmluZSBJMkNfQ1JfRlJYCQlCSVQoOCkJCS8qIEZsdXNoIFJlY2VpdmUgKi8KKyNkZWZp bmUgSTJDX0NSX0RNQV9UWF9FTglCSVQoOSkJCS8qIERNQSBUeCBlbmFibGUgKi8KKyNkZWZpbmUg STJDX0NSX0RNQV9SWF9FTglCSVQoMTApCQkvKiBETUEgUnggRW5hYmxlICovCisjZGVmaW5lIEky Q19DUl9ETUFfU0xFCQlCSVQoMTEpCQkvKiBETUEgc3luYy4gbG9naWMgZW5hYmxlICovCisjZGVm aW5lIEkyQ19DUl9MTQkJQklUKDEyKQkJLyogTG9vcGJhY2sgbW9kZSAqLworI2RlZmluZSBJMkNf Q1JfRk9OCQlHRU5NQVNLKDE0LCAxMykJLyogRmlsdGVyaW5nIG9uICovCisjZGVmaW5lIEkyQ19D Ul9GUwkJR0VOTUFTSygxNiwgMTUpCS8qIEZvcmNlIHN0b3AgZW5hYmxlICovCisKKy8qIFNsYXZl IGNvbnRyb2wgcmVnaXN0ZXIgKFNDUikgKi8KKyNkZWZpbmUgSTJDX1NDUl9TTFNVCQlHRU5NQVNL KDMxLCAxNikJLyogU2xhdmUgZGF0YSBzZXR1cCB0aW1lICovCiAKIC8qIE1hc3RlciBjb250cm9s bGVyIChNQ1IpIHJlZ2lzdGVyICovCi0jZGVmaW5lIEkyQ19NQ1JfT1AJCSgweDEgPDwgMCkJLyog T3BlcmF0aW9uICovCi0jZGVmaW5lIEkyQ19NQ1JfQTcJCSgweDdmIDw8IDEpCS8qIDctYml0IGFk ZHJlc3MgKi8KLSNkZWZpbmUgSTJDX01DUl9FQTEwCQkoMHg3IDw8IDgpCS8qIDEwLWJpdCBFeHRl bmRlZCBhZGRyZXNzICovCi0jZGVmaW5lIEkyQ19NQ1JfU0IJCSgweDEgPDwgMTEpCS8qIEV4dGVu ZGVkIGFkZHJlc3MgKi8KLSNkZWZpbmUgSTJDX01DUl9BTQkJKDB4MyA8PCAxMikJLyogQWRkcmVz cyB0eXBlICovCi0jZGVmaW5lIEkyQ19NQ1JfU1RPUAkJKDB4MSA8PCAxNCkJLyogU3RvcCBjb25k aXRpb24gKi8KLSNkZWZpbmUgSTJDX01DUl9MRU5HVEgJCSgweDdmZiA8PCAxNSkJLyogVHJhbnNh Y3Rpb24gbGVuZ3RoICovCisjZGVmaW5lIEkyQ19NQ1JfT1AJCUJJVCgwKQkJLyogT3BlcmF0aW9u ICovCisjZGVmaW5lIEkyQ19NQ1JfQTcJCUdFTk1BU0soNywgMSkJLyogNy1iaXQgYWRkcmVzcyAq LworI2RlZmluZSBJMkNfTUNSX0VBMTAJCUdFTk1BU0soMTAsIDgpCS8qIDEwLWJpdCBFeHRlbmRl ZCBhZGRyZXNzICovCisjZGVmaW5lIEkyQ19NQ1JfU0IJCUJJVCgxMSkJCS8qIEV4dGVuZGVkIGFk ZHJlc3MgKi8KKyNkZWZpbmUgSTJDX01DUl9BTQkJR0VOTUFTSygxMywgMTIpCS8qIEFkZHJlc3Mg dHlwZSAqLworI2RlZmluZSBJMkNfTUNSX1NUT1AJCUJJVCgxNCkJCS8qIFN0b3AgY29uZGl0aW9u ICovCisjZGVmaW5lIEkyQ19NQ1JfTEVOR1RICQlHRU5NQVNLKDI1LCAxNSkJLyogVHJhbnNhY3Rp b24gbGVuZ3RoICovCiAKIC8qIFN0YXR1cyByZWdpc3RlciAoU1IpICovCi0jZGVmaW5lIEkyQ19T Ul9PUAkJKDB4MyA8PCAwKQkvKiBPcGVyYXRpb24gKi8KLSNkZWZpbmUgSTJDX1NSX1NUQVRVUwkJ KDB4MyA8PCAyKQkvKiBjb250cm9sbGVyIHN0YXR1cyAqLwotI2RlZmluZSBJMkNfU1JfQ0FVU0UJ CSgweDcgPDwgNCkJLyogQWJvcnQgY2F1c2UgKi8KLSNkZWZpbmUgSTJDX1NSX1RZUEUJCSgweDMg PDwgNykJLyogUmVjZWl2ZSB0eXBlICovCi0jZGVmaW5lIEkyQ19TUl9MRU5HVEgJCSgweDdmZiA8 PCA5KQkvKiBUcmFuc2ZlciBsZW5ndGggKi8KKyNkZWZpbmUgSTJDX1NSX09QCQlHRU5NQVNLKDEs IDApCS8qIE9wZXJhdGlvbiAqLworI2RlZmluZSBJMkNfU1JfU1RBVFVTCQlHRU5NQVNLKDMsIDIp CS8qIGNvbnRyb2xsZXIgc3RhdHVzICovCisjZGVmaW5lIEkyQ19TUl9DQVVTRQkJR0VOTUFTSyg2 LCA0KQkvKiBBYm9ydCBjYXVzZSAqLworI2RlZmluZSBJMkNfU1JfVFlQRQkJR0VOTUFTSyg4LCA3 KQkvKiBSZWNlaXZlIHR5cGUgKi8KKyNkZWZpbmUgSTJDX1NSX0xFTkdUSAkJR0VOTUFTSygxOSwg OSkJLyogVHJhbnNmZXIgbGVuZ3RoICovCisKKy8qIEJhdWQtcmF0ZSBjb3VudGVyIHJlZ2lzdGVy IChCUkNSKSAqLworI2RlZmluZSBJMkNfQlJDUl9CUkNOVDEJCUdFTk1BU0soMzEsIDE2KQkvKiBC YXVkLXJhdGUgY291bnRlciAxICovCisjZGVmaW5lIEkyQ19CUkNSX0JSQ05UMgkJR0VOTUFTSygx NSwgMCkJLyogQmF1ZC1yYXRlIGNvdW50ZXIgMiAqLwogCiAvKiBJbnRlcnJ1cHQgbWFzayBzZXQv Y2xlYXIgKElNU0NSKSBiaXRzICovCi0jZGVmaW5lIEkyQ19JVF9UWEZFCQkoMHgxIDw8IDApCi0j ZGVmaW5lIEkyQ19JVF9UWEZORQkJKDB4MSA8PCAxKQotI2RlZmluZSBJMkNfSVRfVFhGRgkJKDB4 MSA8PCAyKQotI2RlZmluZSBJMkNfSVRfVFhGT1ZSCQkoMHgxIDw8IDMpCi0jZGVmaW5lIEkyQ19J VF9SWEZFCQkoMHgxIDw8IDQpCi0jZGVmaW5lIEkyQ19JVF9SWEZORgkJKDB4MSA8PCA1KQotI2Rl ZmluZSBJMkNfSVRfUlhGRgkJKDB4MSA8PCA2KQotI2RlZmluZSBJMkNfSVRfUkZTUgkJKDB4MSA8 PCAxNikKLSNkZWZpbmUgSTJDX0lUX1JGU0UJCSgweDEgPDwgMTcpCi0jZGVmaW5lIEkyQ19JVF9X VFNSCQkoMHgxIDw8IDE4KQotI2RlZmluZSBJMkNfSVRfTVRECQkoMHgxIDw8IDE5KQotI2RlZmlu ZSBJMkNfSVRfU1RECQkoMHgxIDw8IDIwKQotI2RlZmluZSBJMkNfSVRfTUFMCQkoMHgxIDw8IDI0 KQotI2RlZmluZSBJMkNfSVRfQkVSUgkJKDB4MSA8PCAyNSkKLSNkZWZpbmUgSTJDX0lUX01URFdT CQkoMHgxIDw8IDI4KQotCi0jZGVmaW5lIEdFTl9NQVNLKHZhbCwgbWFzaywgc2IpICAoKCh2YWwp IDw8IChzYikpICYgKG1hc2spKQorI2RlZmluZSBJMkNfSVRfVFhGRQkJQklUKDApCisjZGVmaW5l IEkyQ19JVF9UWEZORQkJQklUKDEpCisjZGVmaW5lIEkyQ19JVF9UWEZGCQlCSVQoMikKKyNkZWZp bmUgSTJDX0lUX1RYRk9WUgkJQklUKDMpCisjZGVmaW5lIEkyQ19JVF9SWEZFCQlCSVQoNCkKKyNk ZWZpbmUgSTJDX0lUX1JYRk5GCQlCSVQoNSkKKyNkZWZpbmUgSTJDX0lUX1JYRkYJCUJJVCg2KQor I2RlZmluZSBJMkNfSVRfUkZTUgkJQklUKDE2KQorI2RlZmluZSBJMkNfSVRfUkZTRQkJQklUKDE3 KQorI2RlZmluZSBJMkNfSVRfV1RTUgkJQklUKDE4KQorI2RlZmluZSBJMkNfSVRfTVRECQlCSVQo MTkpCisjZGVmaW5lIEkyQ19JVF9TVEQJCUJJVCgyMCkKKyNkZWZpbmUgSTJDX0lUX01BTAkJQklU KDI0KQorI2RlZmluZSBJMkNfSVRfQkVSUgkJQklUKDI1KQorI2RlZmluZSBJMkNfSVRfTVREV1MJ CUJJVCgyOCkKIAogLyogc29tZSBiaXRzIGluIElDUiBhcmUgcmVzZXJ2ZWQgKi8KICNkZWZpbmUg STJDX0NMRUFSX0FMTF9JTlRTCTB4MTMxZjAwN2YKQEAgLTI4NCw3ICsyOTAsNyBAQCBzdGF0aWMg aW50IGluaXRfaHcoc3RydWN0IG5ta19pMmNfZGV2ICpwcml2KQogfQogCiAvKiBlbmFibGUgcGVy aXBoZXJhbCwgbWFzdGVyIG1vZGUgb3BlcmF0aW9uICovCi0jZGVmaW5lIERFRkFVTFRfSTJDX1JF R19DUgkoKDEgPDwgMSkgfCBJMkNfQ1JfUEUpCisjZGVmaW5lIERFRkFVTFRfSTJDX1JFR19DUgko RklFTERfUFJFUChJMkNfQ1JfT00sIDBiMDEpIHwgSTJDX0NSX1BFKQogCiAvKioKICAqIGxvYWRf aTJjX21jcl9yZWcoKSAtIGxvYWQgdGhlIE1DUiByZWdpc3RlcgpAQCAtMjk2LDQxICszMDIsNDIg QEAgc3RhdGljIHUzMiBsb2FkX2kyY19tY3JfcmVnKHN0cnVjdCBubWtfaTJjX2RldiAqcHJpdiwg dTE2IGZsYWdzKQogCXUzMiBtY3IgPSAwOwogCXVuc2lnbmVkIHNob3J0IHNsYXZlX2Fkcl8zbXNi X2JpdHM7CiAKLQltY3IgfD0gR0VOX01BU0socHJpdi0+Y2xpLnNsYXZlX2FkciwgSTJDX01DUl9B NywgMSk7CisJbWNyIHw9IEZJRUxEX1BSRVAoSTJDX01DUl9BNywgcHJpdi0+Y2xpLnNsYXZlX2Fk cik7CiAKIAlpZiAodW5saWtlbHkoZmxhZ3MgJiBJMkNfTV9URU4pKSB7CiAJCS8qIDEwLWJpdCBh ZGRyZXNzIHRyYW5zYWN0aW9uICovCi0JCW1jciB8PSBHRU5fTUFTSygyLCBJMkNfTUNSX0FNLCAx Mik7CisJCW1jciB8PSBGSUVMRF9QUkVQKEkyQ19NQ1JfQU0sIDIpOwogCQkvKgogCQkgKiBHZXQg dGhlIHRvcCAzIGJpdHMuCiAJCSAqIEVBMTAgcmVwcmVzZW50cyBleHRlbmRlZCBhZGRyZXNzIGlu IE1DUi4gVGhpcyBpbmNsdWRlcwogCQkgKiB0aGUgZXh0ZW5zaW9uIChNU0IgYml0cykgb2YgdGhl IDcgYml0IGFkZHJlc3MgbG9hZGVkCiAJCSAqIGluIEE3CiAJCSAqLwotCQlzbGF2ZV9hZHJfM21z Yl9iaXRzID0gKHByaXYtPmNsaS5zbGF2ZV9hZHIgPj4gNykgJiAweDc7CisJCXNsYXZlX2Fkcl8z bXNiX2JpdHMgPSBGSUVMRF9HRVQoR0VOTUFTSyg5LCA3KSwKKwkJCQkJCXByaXYtPmNsaS5zbGF2 ZV9hZHIpOwogCi0JCW1jciB8PSBHRU5fTUFTSyhzbGF2ZV9hZHJfM21zYl9iaXRzLCBJMkNfTUNS X0VBMTAsIDgpOworCQltY3IgfD0gRklFTERfUFJFUChJMkNfTUNSX0VBMTAsIHNsYXZlX2Fkcl8z bXNiX2JpdHMpOwogCX0gZWxzZSB7CiAJCS8qIDctYml0IGFkZHJlc3MgdHJhbnNhY3Rpb24gKi8K LQkJbWNyIHw9IEdFTl9NQVNLKDEsIEkyQ19NQ1JfQU0sIDEyKTsKKwkJbWNyIHw9IEZJRUxEX1BS RVAoSTJDX01DUl9BTSwgMSk7CiAJfQogCiAJLyogc3RhcnQgYnl0ZSBwcm9jZWR1cmUgbm90IGFw cGxpZWQgKi8KLQltY3IgfD0gR0VOX01BU0soMCwgSTJDX01DUl9TQiwgMTEpOworCW1jciB8PSBG SUVMRF9QUkVQKEkyQ19NQ1JfU0IsIDApOwogCiAJLyogY2hlY2sgdGhlIG9wZXJhdGlvbiwgbWFz dGVyIHJlYWQvd3JpdGU/ICovCiAJaWYgKHByaXYtPmNsaS5vcGVyYXRpb24gPT0gSTJDX1dSSVRF KQotCQltY3IgfD0gR0VOX01BU0soSTJDX1dSSVRFLCBJMkNfTUNSX09QLCAwKTsKKwkJbWNyIHw9 IEZJRUxEX1BSRVAoSTJDX01DUl9PUCwgSTJDX1dSSVRFKTsKIAllbHNlCi0JCW1jciB8PSBHRU5f TUFTSyhJMkNfUkVBRCwgSTJDX01DUl9PUCwgMCk7CisJCW1jciB8PSBGSUVMRF9QUkVQKEkyQ19N Q1JfT1AsIEkyQ19SRUFEKTsKIAogCS8qIHN0b3Agb3IgcmVwZWF0ZWQgc3RhcnQ/ICovCiAJaWYg KHByaXYtPnN0b3ApCi0JCW1jciB8PSBHRU5fTUFTSygxLCBJMkNfTUNSX1NUT1AsIDE0KTsKKwkJ bWNyIHw9IEZJRUxEX1BSRVAoSTJDX01DUl9TVE9QLCAxKTsKIAllbHNlCi0JCW1jciAmPSB+KEdF Tl9NQVNLKDEsIEkyQ19NQ1JfU1RPUCwgMTQpKTsKKwkJbWNyICY9IH5GSUVMRF9QUkVQKEkyQ19N Q1JfU1RPUCwgMSk7CiAKLQltY3IgfD0gR0VOX01BU0socHJpdi0+Y2xpLmNvdW50LCBJMkNfTUNS X0xFTkdUSCwgMTUpOworCW1jciB8PSBGSUVMRF9QUkVQKEkyQ19NQ1JfTEVOR1RILCBwcml2LT5j bGkuY291bnQpOwogCiAJcmV0dXJuIG1jcjsKIH0KQEAgLTM4Myw3ICszOTAsNyBAQCBzdGF0aWMg dm9pZCBzZXR1cF9pMmNfY29udHJvbGxlcihzdHJ1Y3Qgbm1rX2kyY19kZXYgKnByaXYpCiAJc2xz dSArPSAxOwogCiAJZGV2X2RiZygmcHJpdi0+YWRldi0+ZGV2LCAiY2FsY3VsYXRlZCBTTFNVID0g JTA0eFxuIiwgc2xzdSk7Ci0Jd3JpdGVsKHNsc3UgPDwgMTYsIHByaXYtPnZpcnRiYXNlICsgSTJD X1NDUik7CisJd3JpdGVsKEZJRUxEX1BSRVAoSTJDX1NDUl9TTFNVLCBzbHN1KSwgcHJpdi0+dmly dGJhc2UgKyBJMkNfU0NSKTsKIAogCS8qCiAJICogVGhlIHNwZWMgc2F5cywgaW4gY2FzZSBvZiBz dGQuIG1vZGUgdGhlIGRpdmlkZXIgaXMKQEAgLTM5OSw4ICs0MDYsOCBAQCBzdGF0aWMgdm9pZCBz ZXR1cF9pMmNfY29udHJvbGxlcihzdHJ1Y3Qgbm1rX2kyY19kZXYgKnByaXYpCiAJICogcGx1cyBv cGVyYXRpb24uIEN1cnJlbnRseSB3ZSBkbyBub3Qgc3VwcHJ0IGhpZ2ggc3BlZWQgbW9kZQogCSAq IHNvIHNldCBicmNyMSB0byAwLgogCSAqLwotCWJyY3IxID0gMCA8PCAxNjsKLQlicmNyMiA9IChp MmNfY2xrIC8gKHByaXYtPmNsa19mcmVxICogZGl2KSkgJiAweGZmZmY7CisJYnJjcjEgPSBGSUVM RF9QUkVQKEkyQ19CUkNSX0JSQ05UMSwgMCk7CisJYnJjcjIgPSBGSUVMRF9QUkVQKEkyQ19CUkNS X0JSQ05UMiwgaTJjX2NsayAvIChwcml2LT5jbGtfZnJlcSAqIGRpdikpOwogCiAJLyogc2V0IHRo ZSBiYXVkIHJhdGUgY291bnRlciByZWdpc3RlciAqLwogCXdyaXRlbCgoYnJjcjEgfCBicmNyMiks IHByaXYtPnZpcnRiYXNlICsgSTJDX0JSQ1IpOwpAQCAtNDE0LDEyICs0MjEsMTMgQEAgc3RhdGlj IHZvaWQgc2V0dXBfaTJjX2NvbnRyb2xsZXIoc3RydWN0IG5ta19pMmNfZGV2ICpwcml2KQogCWlm IChwcml2LT5zbSA+IEkyQ19GUkVRX01PREVfRkFTVCkgewogCQlkZXZfZXJyKCZwcml2LT5hZGV2 LT5kZXYsCiAJCQkiZG8gbm90IHN1cHBvcnQgdGhpcyBtb2RlIGRlZmF1bHRpbmcgdG8gc3RkLiBt b2RlXG4iKTsKLQkJYnJjcjIgPSBpMmNfY2xrIC8gKEkyQ19NQVhfU1RBTkRBUkRfTU9ERV9GUkVR ICogMikgJiAweGZmZmY7CisJCWJyY3IyID0gRklFTERfUFJFUChJMkNfQlJDUl9CUkNOVDIsCisJ CQkJICAgaTJjX2NsayAvIChJMkNfTUFYX1NUQU5EQVJEX01PREVfRlJFUSAqIDIpKTsKIAkJd3Jp dGVsKChicmNyMSB8IGJyY3IyKSwgcHJpdi0+dmlydGJhc2UgKyBJMkNfQlJDUik7Ci0JCXdyaXRl bChJMkNfRlJFUV9NT0RFX1NUQU5EQVJEIDw8IDQsCi0JCQkJcHJpdi0+dmlydGJhc2UgKyBJMkNf Q1IpOworCQl3cml0ZWwoRklFTERfUFJFUChJMkNfQ1JfU00sIEkyQ19GUkVRX01PREVfU1RBTkRB UkQpLAorCQkgICAgICAgcHJpdi0+dmlydGJhc2UgKyBJMkNfQ1IpOwogCX0KLQl3cml0ZWwocHJp di0+c20gPDwgNCwgcHJpdi0+dmlydGJhc2UgKyBJMkNfQ1IpOworCXdyaXRlbChGSUVMRF9QUkVQ KEkyQ19DUl9TTSwgcHJpdi0+c20pLCBwcml2LT52aXJ0YmFzZSArIEkyQ19DUik7CiAKIAkvKiBz ZXQgdGhlIFR4IGFuZCBSeCBGSUZPIHRocmVzaG9sZCAqLwogCXdyaXRlbChwcml2LT50ZnQsIHBy aXYtPnZpcnRiYXNlICsgSTJDX1RGVFIpOwpAQCAtNTgzLDEzICs1OTEsOCBAQCBzdGF0aWMgaW50 IG5ta19pMmNfeGZlcl9vbmUoc3RydWN0IG5ta19pMmNfZGV2ICpwcml2LCB1MTYgZmxhZ3MpCiAJ CXUzMiBjYXVzZTsKIAogCQlpMmNfc3IgPSByZWFkbChwcml2LT52aXJ0YmFzZSArIEkyQ19TUik7 Ci0JCS8qCi0JCSAqIENoZWNrIGlmIHRoZSBjb250cm9sbGVyIEkyQyBvcGVyYXRpb24gc3RhdHVz Ci0JCSAqIGlzIHNldCB0byBBQk9SVCgxMWIpLgotCQkgKi8KLQkJaWYgKCgoaTJjX3NyID4+IDIp ICYgMHgzKSA9PSAweDMpIHsKLQkJCS8qIGdldCB0aGUgYWJvcnQgY2F1c2UgKi8KLQkJCWNhdXNl ID0JKGkyY19zciA+PiA0KSAmIDB4NzsKKwkJaWYgKEZJRUxEX0dFVChJMkNfU1JfU1RBVFVTLCBp MmNfc3IpID09IEkyQ19BQk9SVCkgeworCQkJY2F1c2UgPSBGSUVMRF9HRVQoSTJDX1NSX0NBVVNF LCBpMmNfc3IpOwogCQkJZGV2X2VycigmcHJpdi0+YWRldi0+ZGV2LCAiJXNcbiIsCiAJCQkJY2F1 c2UgPj0gQVJSQVlfU0laRShhYm9ydF9jYXVzZXMpID8KIAkJCQkidW5rbm93biByZWFzb24iIDoK QEAgLTczMCw3ICs3MzMsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaTJjX2lycV9oYW5kbGVyKGlu dCBpcnEsIHZvaWQgKmFyZykKIAltaXNyID0gcmVhZGwocHJpdi0+dmlydGJhc2UgKyBJMkNfTUlT Uik7CiAKIAlzcmMgPSBfX2ZmcyhtaXNyKTsKLQlzd2l0Y2ggKCgxIDw8IHNyYykpIHsKKwlzd2l0 Y2ggKEJJVChzcmMpKSB7CiAKIAkvKiBUcmFuc21pdCBGSUZPIG5lYXJseSBlbXB0eSBpbnRlcnJ1 cHQgKi8KIAljYXNlIEkyQ19JVF9UWEZORToKQEAgLTgyNCwxNSArODI3LDE2IEBAIHN0YXRpYyBp cnFyZXR1cm5fdCBpMmNfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCSAqIGR1cmlu ZyB0aGUgdHJhbnNhY3Rpb24uCiAJICovCiAJY2FzZSBJMkNfSVRfQkVSUjoKKwl7CisJCXUzMiBz ciA9IHJlYWRsKHByaXYtPnZpcnRiYXNlICsgSTJDX1NSKTsKIAkJcHJpdi0+cmVzdWx0ID0gLUVJ TzsKLQkJLyogZ2V0IHRoZSBzdGF0dXMgKi8KLQkJaWYgKCgocmVhZGwocHJpdi0+dmlydGJhc2Ug KyBJMkNfU1IpID4+IDIpICYgMHgzKSA9PSBJMkNfQUJPUlQpCisJCWlmIChGSUVMRF9HRVQoSTJD X1NSX1NUQVRVUywgc3IpID09IEkyQ19BQk9SVCkKIAkJCWluaXRfaHcocHJpdik7CiAKIAkJaTJj X3NldF9iaXQocHJpdi0+dmlydGJhc2UgKyBJMkNfSUNSLCBJMkNfSVRfQkVSUik7CiAJCWNvbXBs ZXRlKCZwcml2LT54ZmVyX2NvbXBsZXRlKTsKLQotCQlicmVhazsKKwl9CisJYnJlYWs7CiAKIAkv KgogCSAqIFR4IEZJRk8gb3ZlcnJ1biBpbnRlcnJ1cHQuCgotLSAKMi40My4xCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBt YWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=