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 08A06C48BF6 for ; Thu, 29 Feb 2024 18:11:17 +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=ApFrODsjvjUyVEkvJf1rezSHbwnMWc55QgMZerzBMjY=; b=umMKF+LrjGm/o/ cNWzJpDo77x+q/3nPd1RH27124ENd2ocFMnc4x3UcR1DDdyQH3S8aksMxr0Wz6+xZJ7F8KQwAzr2A /8GfBf6tAAJ0pxh6roYfdexYUOnkOLMCFDC7xuqfZaOAdPeDAamXQpzV1FVhNaqBnTwK9kWtMaVb7 U6Ckut96xLZpb1hTMi5n9laWjCAsmF5mT6f3/4WKjJyLG2wfOqk9eHrCOnHhMp9Ff+RgbHVQXWTUp PnK45PxLD6kYi5bD7wxNpBcSy/za0/sZweRucTtW0E9PtkPYGEIh0K0XBBtFb4jwgLIllGBjIWT+p +bG5v/sOCV1dfJebkrAg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rfks4-0000000EdCI-37F6; Thu, 29 Feb 2024 18:11:04 +0000 Received: from relay3-d.mail.gandi.net ([217.70.183.195]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rfkry-0000000Ed7S-3Z0V for linux-arm-kernel@lists.infradead.org; Thu, 29 Feb 2024 18:11:00 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 809156000B; Thu, 29 Feb 2024 18:10:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1709230256; 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=wtwQ2ji2nM4bXmI3s508x8Gmx6AEiuv95YyhrGVGp7M=; b=juPqF+tXXPlPjsIyn1mSBQsK17kzkqxK+wab8zQO3CXWIffjRd6xmlCav6jl4NaHwKY8t/ JR52VqMXzs6qbXwFcErdOUj4xL6hG3ZugR+TEHOmHP5ZomEsBxG+t3XYDChVB6OLd6jd10 9Jt5PJcut5CJqd9Uz1VwHF7WeQbXD4r1qQ1gzFkCui08xFDzN6F6rMmpBj5qfeu8Fw+ze5 WgW7XeJGx6CugmazxUVPkq1+C6Kr84T9tOgTelS7ErAsTM1J0vfysBakE+VgZoeSpb2TP3 0qh7qMmctjTLtc0egB4lzpYnZQSFBLZSIOelDv1B/Ovge+pfXWLExm7JN5UN6g== From: =?utf-8?q?Th=C3=A9o_Lebrun?= Date: Thu, 29 Feb 2024 19:10:53 +0100 Subject: [PATCH v2 05/11] i2c: nomadik: use bitops helpers MIME-Version: 1.0 Message-Id: <20240229-mbly-i2c-v2-5-b32ed18c098c@bootlin.com> References: <20240229-mbly-i2c-v2-0-b32ed18c098c@bootlin.com> In-Reply-To: <20240229-mbly-i2c-v2-0-b32ed18c098c@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.13.0 X-GND-Sasl: theo.lebrun@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240229_101059_177009_9579EF82 X-CRM114-Status: GOOD ( 18.94 ) 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 TERfR0VUKCkgbWFjcm8uCgpSZXZpZXdlZC1ieTogTGludXMgV2FsbGVpaiA8bGludXMud2FsbGVp akBsaW5hcm8ub3JnPgpTaWduZWQtb2ZmLWJ5OiBUaMOpbyBMZWJydW4gPHRoZW8ubGVicnVuQGJv b3RsaW4uY29tPgotLS0KIGRyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbm9tYWRpay5jIHwgMTUwICsr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDc3 IGluc2VydGlvbnMoKyksIDczIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJj L2J1c3Nlcy9pMmMtbm9tYWRpay5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1ub21hZGlrLmMK aW5kZXggODBiZGY3ZTQyNjEzLi5hYTY4YWI0MDJiMTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJj L2J1c3Nlcy9pMmMtbm9tYWRpay5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbm9tYWRp ay5jCkBAIC05LDYgKzksNyBAQAogICogQXV0aG9yOiBTcmluaWRoaSBLYXNhZ2FyIDxzcmluaWRo aS5rYXNhZ2FyQHN0ZXJpY3Nzb24uY29tPgogICogQXV0aG9yOiBTYWNoaW4gVmVybWEgPHNhY2hp bi52ZXJtYUBzdC5jb20+CiAgKi8KKyNpbmNsdWRlIDxsaW51eC9iaXRmaWVsZC5oPgogI2luY2x1 ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxs aW51eC9hbWJhL2J1cy5oPgpAQCAtNDIsNTQgKzQzLDU5IEBACiAjZGVmaW5lIEkyQ19JQ1IJCSgw eDAzOCkKIAogLyogQ29udHJvbCByZWdpc3RlcnMgKi8KLSNkZWZpbmUgSTJDX0NSX1BFCQkoMHgx IDw8IDApCS8qIFBlcmlwaGVyYWwgRW5hYmxlICovCi0jZGVmaW5lIEkyQ19DUl9PTQkJKDB4MyA8 PCAxKQkvKiBPcGVyYXRpbmcgbW9kZSAqLwotI2RlZmluZSBJMkNfQ1JfU0FNCQkoMHgxIDw8IDMp CS8qIFNsYXZlIGFkZHJlc3NpbmcgbW9kZSAqLwotI2RlZmluZSBJMkNfQ1JfU00JCSgweDMgPDwg NCkJLyogU3BlZWQgbW9kZSAqLwotI2RlZmluZSBJMkNfQ1JfU0dDTQkJKDB4MSA8PCA2KQkvKiBT bGF2ZSBnZW5lcmFsIGNhbGwgbW9kZSAqLwotI2RlZmluZSBJMkNfQ1JfRlRYCQkoMHgxIDw8IDcp CS8qIEZsdXNoIFRyYW5zbWl0ICovCi0jZGVmaW5lIEkyQ19DUl9GUlgJCSgweDEgPDwgOCkJLyog Rmx1c2ggUmVjZWl2ZSAqLwotI2RlZmluZSBJMkNfQ1JfRE1BX1RYX0VOCSgweDEgPDwgOSkJLyog RE1BIFR4IGVuYWJsZSAqLwotI2RlZmluZSBJMkNfQ1JfRE1BX1JYX0VOCSgweDEgPDwgMTApCS8q IERNQSBSeCBFbmFibGUgKi8KLSNkZWZpbmUgSTJDX0NSX0RNQV9TTEUJCSgweDEgPDwgMTEpCS8q IERNQSBzeW5jLiBsb2dpYyBlbmFibGUgKi8KLSNkZWZpbmUgSTJDX0NSX0xNCQkoMHgxIDw8IDEy KQkvKiBMb29wYmFjayBtb2RlICovCi0jZGVmaW5lIEkyQ19DUl9GT04JCSgweDMgPDwgMTMpCS8q IEZpbHRlcmluZyBvbiAqLwotI2RlZmluZSBJMkNfQ1JfRlMJCSgweDMgPDwgMTUpCS8qIEZvcmNl IHN0b3AgZW5hYmxlICovCisjZGVmaW5lIEkyQ19DUl9QRQkJQklUKDApCQkvKiBQZXJpcGhlcmFs IEVuYWJsZSAqLworI2RlZmluZSBJMkNfQ1JfT00JCUdFTk1BU0soMiwgMSkJLyogT3BlcmF0aW5n IG1vZGUgKi8KKyNkZWZpbmUgSTJDX0NSX1NBTQkJQklUKDMpCQkvKiBTbGF2ZSBhZGRyZXNzaW5n IG1vZGUgKi8KKyNkZWZpbmUgSTJDX0NSX1NNCQlHRU5NQVNLKDUsIDQpCS8qIFNwZWVkIG1vZGUg Ki8KKyNkZWZpbmUgSTJDX0NSX1NHQ00JCUJJVCg2KQkJLyogU2xhdmUgZ2VuZXJhbCBjYWxsIG1v ZGUgKi8KKyNkZWZpbmUgSTJDX0NSX0ZUWAkJQklUKDcpCQkvKiBGbHVzaCBUcmFuc21pdCAqLwor I2RlZmluZSBJMkNfQ1JfRlJYCQlCSVQoOCkJCS8qIEZsdXNoIFJlY2VpdmUgKi8KKyNkZWZpbmUg STJDX0NSX0RNQV9UWF9FTglCSVQoOSkJCS8qIERNQSBUeCBlbmFibGUgKi8KKyNkZWZpbmUgSTJD X0NSX0RNQV9SWF9FTglCSVQoMTApCQkvKiBETUEgUnggRW5hYmxlICovCisjZGVmaW5lIEkyQ19D Ul9ETUFfU0xFCQlCSVQoMTEpCQkvKiBETUEgc3luYy4gbG9naWMgZW5hYmxlICovCisjZGVmaW5l IEkyQ19DUl9MTQkJQklUKDEyKQkJLyogTG9vcGJhY2sgbW9kZSAqLworI2RlZmluZSBJMkNfQ1Jf Rk9OCQlHRU5NQVNLKDE0LCAxMykJLyogRmlsdGVyaW5nIG9uICovCisjZGVmaW5lIEkyQ19DUl9G UwkJR0VOTUFTSygxNiwgMTUpCS8qIEZvcmNlIHN0b3AgZW5hYmxlICovCisKKy8qIFNsYXZlIGNv bnRyb2wgcmVnaXN0ZXIgKFNDUikgKi8KKyNkZWZpbmUgSTJDX1NDUl9TTFNVCQlHRU5NQVNLKDMx LCAxNikJLyogU2xhdmUgZGF0YSBzZXR1cCB0aW1lICovCiAKIC8qIE1hc3RlciBjb250cm9sbGVy IChNQ1IpIHJlZ2lzdGVyICovCi0jZGVmaW5lIEkyQ19NQ1JfT1AJCSgweDEgPDwgMCkJLyogT3Bl cmF0aW9uICovCi0jZGVmaW5lIEkyQ19NQ1JfQTcJCSgweDdmIDw8IDEpCS8qIDctYml0IGFkZHJl c3MgKi8KLSNkZWZpbmUgSTJDX01DUl9FQTEwCQkoMHg3IDw8IDgpCS8qIDEwLWJpdCBFeHRlbmRl ZCBhZGRyZXNzICovCi0jZGVmaW5lIEkyQ19NQ1JfU0IJCSgweDEgPDwgMTEpCS8qIEV4dGVuZGVk IGFkZHJlc3MgKi8KLSNkZWZpbmUgSTJDX01DUl9BTQkJKDB4MyA8PCAxMikJLyogQWRkcmVzcyB0 eXBlICovCi0jZGVmaW5lIEkyQ19NQ1JfU1RPUAkJKDB4MSA8PCAxNCkJLyogU3RvcCBjb25kaXRp b24gKi8KLSNkZWZpbmUgSTJDX01DUl9MRU5HVEgJCSgweDdmZiA8PCAxNSkJLyogVHJhbnNhY3Rp b24gbGVuZ3RoICovCisjZGVmaW5lIEkyQ19NQ1JfT1AJCUJJVCgwKQkJLyogT3BlcmF0aW9uICov CisjZGVmaW5lIEkyQ19NQ1JfQTcJCUdFTk1BU0soNywgMSkJLyogNy1iaXQgYWRkcmVzcyAqLwor I2RlZmluZSBJMkNfTUNSX0VBMTAJCUdFTk1BU0soMTAsIDgpCS8qIDEwLWJpdCBFeHRlbmRlZCBh ZGRyZXNzICovCisjZGVmaW5lIEkyQ19NQ1JfU0IJCUJJVCgxMSkJCS8qIEV4dGVuZGVkIGFkZHJl c3MgKi8KKyNkZWZpbmUgSTJDX01DUl9BTQkJR0VOTUFTSygxMywgMTIpCS8qIEFkZHJlc3MgdHlw ZSAqLworI2RlZmluZSBJMkNfTUNSX1NUT1AJCUJJVCgxNCkJCS8qIFN0b3AgY29uZGl0aW9uICov CisjZGVmaW5lIEkyQ19NQ1JfTEVOR1RICQlHRU5NQVNLKDI1LCAxNSkJLyogVHJhbnNhY3Rpb24g bGVuZ3RoICovCiAKIC8qIFN0YXR1cyByZWdpc3RlciAoU1IpICovCi0jZGVmaW5lIEkyQ19TUl9P UAkJKDB4MyA8PCAwKQkvKiBPcGVyYXRpb24gKi8KLSNkZWZpbmUgSTJDX1NSX1NUQVRVUwkJKDB4 MyA8PCAyKQkvKiBjb250cm9sbGVyIHN0YXR1cyAqLwotI2RlZmluZSBJMkNfU1JfQ0FVU0UJCSgw eDcgPDwgNCkJLyogQWJvcnQgY2F1c2UgKi8KLSNkZWZpbmUgSTJDX1NSX1RZUEUJCSgweDMgPDwg NykJLyogUmVjZWl2ZSB0eXBlICovCi0jZGVmaW5lIEkyQ19TUl9MRU5HVEgJCSgweDdmZiA8PCA5 KQkvKiBUcmFuc2ZlciBsZW5ndGggKi8KKyNkZWZpbmUgSTJDX1NSX09QCQlHRU5NQVNLKDEsIDAp CS8qIE9wZXJhdGlvbiAqLworI2RlZmluZSBJMkNfU1JfU1RBVFVTCQlHRU5NQVNLKDMsIDIpCS8q IGNvbnRyb2xsZXIgc3RhdHVzICovCisjZGVmaW5lIEkyQ19TUl9DQVVTRQkJR0VOTUFTSyg2LCA0 KQkvKiBBYm9ydCBjYXVzZSAqLworI2RlZmluZSBJMkNfU1JfVFlQRQkJR0VOTUFTSyg4LCA3KQkv KiBSZWNlaXZlIHR5cGUgKi8KKyNkZWZpbmUgSTJDX1NSX0xFTkdUSAkJR0VOTUFTSygxOSwgOSkJ LyogVHJhbnNmZXIgbGVuZ3RoICovCisKKy8qIEJhdWQtcmF0ZSBjb3VudGVyIHJlZ2lzdGVyIChC UkNSKSAqLworI2RlZmluZSBJMkNfQlJDUl9CUkNOVDEJCUdFTk1BU0soMzEsIDE2KQkvKiBCYXVk LXJhdGUgY291bnRlciAxICovCisjZGVmaW5lIEkyQ19CUkNSX0JSQ05UMgkJR0VOTUFTSygxNSwg MCkJLyogQmF1ZC1yYXRlIGNvdW50ZXIgMiAqLwogCiAvKiBJbnRlcnJ1cHQgbWFzayBzZXQvY2xl YXIgKElNU0NSKSBiaXRzICovCi0jZGVmaW5lIEkyQ19JVF9UWEZFCQkoMHgxIDw8IDApCi0jZGVm aW5lIEkyQ19JVF9UWEZORQkJKDB4MSA8PCAxKQotI2RlZmluZSBJMkNfSVRfVFhGRgkJKDB4MSA8 PCAyKQotI2RlZmluZSBJMkNfSVRfVFhGT1ZSCQkoMHgxIDw8IDMpCi0jZGVmaW5lIEkyQ19JVF9S WEZFCQkoMHgxIDw8IDQpCi0jZGVmaW5lIEkyQ19JVF9SWEZORgkJKDB4MSA8PCA1KQotI2RlZmlu ZSBJMkNfSVRfUlhGRgkJKDB4MSA8PCA2KQotI2RlZmluZSBJMkNfSVRfUkZTUgkJKDB4MSA8PCAx NikKLSNkZWZpbmUgSTJDX0lUX1JGU0UJCSgweDEgPDwgMTcpCi0jZGVmaW5lIEkyQ19JVF9XVFNS CQkoMHgxIDw8IDE4KQotI2RlZmluZSBJMkNfSVRfTVRECQkoMHgxIDw8IDE5KQotI2RlZmluZSBJ MkNfSVRfU1RECQkoMHgxIDw8IDIwKQotI2RlZmluZSBJMkNfSVRfTUFMCQkoMHgxIDw8IDI0KQot I2RlZmluZSBJMkNfSVRfQkVSUgkJKDB4MSA8PCAyNSkKLSNkZWZpbmUgSTJDX0lUX01URFdTCQko MHgxIDw8IDI4KQotCi0jZGVmaW5lIEdFTl9NQVNLKHZhbCwgbWFzaywgc2IpICAoKCh2YWwpIDw8 IChzYikpICYgKG1hc2spKQorI2RlZmluZSBJMkNfSVRfVFhGRQkJQklUKDApCisjZGVmaW5lIEky Q19JVF9UWEZORQkJQklUKDEpCisjZGVmaW5lIEkyQ19JVF9UWEZGCQlCSVQoMikKKyNkZWZpbmUg STJDX0lUX1RYRk9WUgkJQklUKDMpCisjZGVmaW5lIEkyQ19JVF9SWEZFCQlCSVQoNCkKKyNkZWZp bmUgSTJDX0lUX1JYRk5GCQlCSVQoNSkKKyNkZWZpbmUgSTJDX0lUX1JYRkYJCUJJVCg2KQorI2Rl ZmluZSBJMkNfSVRfUkZTUgkJQklUKDE2KQorI2RlZmluZSBJMkNfSVRfUkZTRQkJQklUKDE3KQor I2RlZmluZSBJMkNfSVRfV1RTUgkJQklUKDE4KQorI2RlZmluZSBJMkNfSVRfTVRECQlCSVQoMTkp CisjZGVmaW5lIEkyQ19JVF9TVEQJCUJJVCgyMCkKKyNkZWZpbmUgSTJDX0lUX01BTAkJQklUKDI0 KQorI2RlZmluZSBJMkNfSVRfQkVSUgkJQklUKDI1KQorI2RlZmluZSBJMkNfSVRfTVREV1MJCUJJ VCgyOCkKIAogLyogc29tZSBiaXRzIGluIElDUiBhcmUgcmVzZXJ2ZWQgKi8KICNkZWZpbmUgSTJD X0NMRUFSX0FMTF9JTlRTCTB4MTMxZjAwN2YKQEAgLTI4NCw3ICsyOTAsNyBAQCBzdGF0aWMgaW50 IGluaXRfaHcoc3RydWN0IG5ta19pMmNfZGV2ICpwcml2KQogfQogCiAvKiBlbmFibGUgcGVyaXBo ZXJhbCwgbWFzdGVyIG1vZGUgb3BlcmF0aW9uICovCi0jZGVmaW5lIERFRkFVTFRfSTJDX1JFR19D UgkoKDEgPDwgMSkgfCBJMkNfQ1JfUEUpCisjZGVmaW5lIERFRkFVTFRfSTJDX1JFR19DUgkoRklF TERfUFJFUChJMkNfQ1JfT00sIDBiMDEpIHwgSTJDX0NSX1BFKQogCiAvKioKICAqIGxvYWRfaTJj X21jcl9yZWcoKSAtIGxvYWQgdGhlIE1DUiByZWdpc3RlcgpAQCAtMjk2LDQxICszMDIsNDIgQEAg c3RhdGljIHUzMiBsb2FkX2kyY19tY3JfcmVnKHN0cnVjdCBubWtfaTJjX2RldiAqcHJpdiwgdTE2 IGZsYWdzKQogCXUzMiBtY3IgPSAwOwogCXVuc2lnbmVkIHNob3J0IHNsYXZlX2Fkcl8zbXNiX2Jp dHM7CiAKLQltY3IgfD0gR0VOX01BU0socHJpdi0+Y2xpLnNsYXZlX2FkciwgSTJDX01DUl9BNywg MSk7CisJbWNyIHw9IEZJRUxEX1BSRVAoSTJDX01DUl9BNywgcHJpdi0+Y2xpLnNsYXZlX2Fkcik7 CiAKIAlpZiAodW5saWtlbHkoZmxhZ3MgJiBJMkNfTV9URU4pKSB7CiAJCS8qIDEwLWJpdCBhZGRy ZXNzIHRyYW5zYWN0aW9uICovCi0JCW1jciB8PSBHRU5fTUFTSygyLCBJMkNfTUNSX0FNLCAxMik7 CisJCW1jciB8PSBGSUVMRF9QUkVQKEkyQ19NQ1JfQU0sIDIpOwogCQkvKgogCQkgKiBHZXQgdGhl IHRvcCAzIGJpdHMuCiAJCSAqIEVBMTAgcmVwcmVzZW50cyBleHRlbmRlZCBhZGRyZXNzIGluIE1D Ui4gVGhpcyBpbmNsdWRlcwogCQkgKiB0aGUgZXh0ZW5zaW9uIChNU0IgYml0cykgb2YgdGhlIDcg Yml0IGFkZHJlc3MgbG9hZGVkCiAJCSAqIGluIEE3CiAJCSAqLwotCQlzbGF2ZV9hZHJfM21zYl9i aXRzID0gKHByaXYtPmNsaS5zbGF2ZV9hZHIgPj4gNykgJiAweDc7CisJCXNsYXZlX2Fkcl8zbXNi X2JpdHMgPSBGSUVMRF9HRVQoR0VOTUFTSyg5LCA3KSwKKwkJCQkJCXByaXYtPmNsaS5zbGF2ZV9h ZHIpOwogCi0JCW1jciB8PSBHRU5fTUFTSyhzbGF2ZV9hZHJfM21zYl9iaXRzLCBJMkNfTUNSX0VB MTAsIDgpOworCQltY3IgfD0gRklFTERfUFJFUChJMkNfTUNSX0VBMTAsIHNsYXZlX2Fkcl8zbXNi X2JpdHMpOwogCX0gZWxzZSB7CiAJCS8qIDctYml0IGFkZHJlc3MgdHJhbnNhY3Rpb24gKi8KLQkJ bWNyIHw9IEdFTl9NQVNLKDEsIEkyQ19NQ1JfQU0sIDEyKTsKKwkJbWNyIHw9IEZJRUxEX1BSRVAo STJDX01DUl9BTSwgMSk7CiAJfQogCiAJLyogc3RhcnQgYnl0ZSBwcm9jZWR1cmUgbm90IGFwcGxp ZWQgKi8KLQltY3IgfD0gR0VOX01BU0soMCwgSTJDX01DUl9TQiwgMTEpOworCW1jciB8PSBGSUVM RF9QUkVQKEkyQ19NQ1JfU0IsIDApOwogCiAJLyogY2hlY2sgdGhlIG9wZXJhdGlvbiwgbWFzdGVy IHJlYWQvd3JpdGU/ICovCiAJaWYgKHByaXYtPmNsaS5vcGVyYXRpb24gPT0gSTJDX1dSSVRFKQot CQltY3IgfD0gR0VOX01BU0soSTJDX1dSSVRFLCBJMkNfTUNSX09QLCAwKTsKKwkJbWNyIHw9IEZJ RUxEX1BSRVAoSTJDX01DUl9PUCwgSTJDX1dSSVRFKTsKIAllbHNlCi0JCW1jciB8PSBHRU5fTUFT SyhJMkNfUkVBRCwgSTJDX01DUl9PUCwgMCk7CisJCW1jciB8PSBGSUVMRF9QUkVQKEkyQ19NQ1Jf T1AsIEkyQ19SRUFEKTsKIAogCS8qIHN0b3Agb3IgcmVwZWF0ZWQgc3RhcnQ/ICovCiAJaWYgKHBy aXYtPnN0b3ApCi0JCW1jciB8PSBHRU5fTUFTSygxLCBJMkNfTUNSX1NUT1AsIDE0KTsKKwkJbWNy IHw9IEZJRUxEX1BSRVAoSTJDX01DUl9TVE9QLCAxKTsKIAllbHNlCi0JCW1jciAmPSB+KEdFTl9N QVNLKDEsIEkyQ19NQ1JfU1RPUCwgMTQpKTsKKwkJbWNyICY9IH5GSUVMRF9QUkVQKEkyQ19NQ1Jf U1RPUCwgMSk7CiAKLQltY3IgfD0gR0VOX01BU0socHJpdi0+Y2xpLmNvdW50LCBJMkNfTUNSX0xF TkdUSCwgMTUpOworCW1jciB8PSBGSUVMRF9QUkVQKEkyQ19NQ1JfTEVOR1RILCBwcml2LT5jbGku Y291bnQpOwogCiAJcmV0dXJuIG1jcjsKIH0KQEAgLTM4Myw3ICszOTAsNyBAQCBzdGF0aWMgdm9p ZCBzZXR1cF9pMmNfY29udHJvbGxlcihzdHJ1Y3Qgbm1rX2kyY19kZXYgKnByaXYpCiAJc2xzdSAr PSAxOwogCiAJZGV2X2RiZygmcHJpdi0+YWRldi0+ZGV2LCAiY2FsY3VsYXRlZCBTTFNVID0gJTA0 eFxuIiwgc2xzdSk7Ci0Jd3JpdGVsKHNsc3UgPDwgMTYsIHByaXYtPnZpcnRiYXNlICsgSTJDX1ND Uik7CisJd3JpdGVsKEZJRUxEX1BSRVAoSTJDX1NDUl9TTFNVLCBzbHN1KSwgcHJpdi0+dmlydGJh c2UgKyBJMkNfU0NSKTsKIAogCS8qCiAJICogVGhlIHNwZWMgc2F5cywgaW4gY2FzZSBvZiBzdGQu IG1vZGUgdGhlIGRpdmlkZXIgaXMKQEAgLTM5OSw4ICs0MDYsOCBAQCBzdGF0aWMgdm9pZCBzZXR1 cF9pMmNfY29udHJvbGxlcihzdHJ1Y3Qgbm1rX2kyY19kZXYgKnByaXYpCiAJICogcGx1cyBvcGVy YXRpb24uIEN1cnJlbnRseSB3ZSBkbyBub3Qgc3VwcHJ0IGhpZ2ggc3BlZWQgbW9kZQogCSAqIHNv IHNldCBicmNyMSB0byAwLgogCSAqLwotCWJyY3IxID0gMCA8PCAxNjsKLQlicmNyMiA9IChpMmNf Y2xrIC8gKHByaXYtPmNsa19mcmVxICogZGl2KSkgJiAweGZmZmY7CisJYnJjcjEgPSBGSUVMRF9Q UkVQKEkyQ19CUkNSX0JSQ05UMSwgMCk7CisJYnJjcjIgPSBGSUVMRF9QUkVQKEkyQ19CUkNSX0JS Q05UMiwgaTJjX2NsayAvIChwcml2LT5jbGtfZnJlcSAqIGRpdikpOwogCiAJLyogc2V0IHRoZSBi YXVkIHJhdGUgY291bnRlciByZWdpc3RlciAqLwogCXdyaXRlbCgoYnJjcjEgfCBicmNyMiksIHBy aXYtPnZpcnRiYXNlICsgSTJDX0JSQ1IpOwpAQCAtNDE0LDEyICs0MjEsMTMgQEAgc3RhdGljIHZv aWQgc2V0dXBfaTJjX2NvbnRyb2xsZXIoc3RydWN0IG5ta19pMmNfZGV2ICpwcml2KQogCWlmIChw cml2LT5zbSA+IEkyQ19GUkVRX01PREVfRkFTVCkgewogCQlkZXZfZXJyKCZwcml2LT5hZGV2LT5k ZXYsCiAJCQkiZG8gbm90IHN1cHBvcnQgdGhpcyBtb2RlIGRlZmF1bHRpbmcgdG8gc3RkLiBtb2Rl XG4iKTsKLQkJYnJjcjIgPSBpMmNfY2xrIC8gKEkyQ19NQVhfU1RBTkRBUkRfTU9ERV9GUkVRICog MikgJiAweGZmZmY7CisJCWJyY3IyID0gRklFTERfUFJFUChJMkNfQlJDUl9CUkNOVDIsCisJCQkJ ICAgaTJjX2NsayAvIChJMkNfTUFYX1NUQU5EQVJEX01PREVfRlJFUSAqIDIpKTsKIAkJd3JpdGVs KChicmNyMSB8IGJyY3IyKSwgcHJpdi0+dmlydGJhc2UgKyBJMkNfQlJDUik7Ci0JCXdyaXRlbChJ MkNfRlJFUV9NT0RFX1NUQU5EQVJEIDw8IDQsCi0JCQkJcHJpdi0+dmlydGJhc2UgKyBJMkNfQ1Ip OworCQl3cml0ZWwoRklFTERfUFJFUChJMkNfQ1JfU00sIEkyQ19GUkVRX01PREVfU1RBTkRBUkQp LAorCQkgICAgICAgcHJpdi0+dmlydGJhc2UgKyBJMkNfQ1IpOwogCX0KLQl3cml0ZWwocHJpdi0+ c20gPDwgNCwgcHJpdi0+dmlydGJhc2UgKyBJMkNfQ1IpOworCXdyaXRlbChGSUVMRF9QUkVQKEky Q19DUl9TTSwgcHJpdi0+c20pLCBwcml2LT52aXJ0YmFzZSArIEkyQ19DUik7CiAKIAkvKiBzZXQg dGhlIFR4IGFuZCBSeCBGSUZPIHRocmVzaG9sZCAqLwogCXdyaXRlbChwcml2LT50ZnQsIHByaXYt PnZpcnRiYXNlICsgSTJDX1RGVFIpOwpAQCAtNTgzLDEzICs1OTEsOCBAQCBzdGF0aWMgaW50IG5t a19pMmNfeGZlcl9vbmUoc3RydWN0IG5ta19pMmNfZGV2ICpwcml2LCB1MTYgZmxhZ3MpCiAJCXUz MiBjYXVzZTsKIAogCQlpMmNfc3IgPSByZWFkbChwcml2LT52aXJ0YmFzZSArIEkyQ19TUik7Ci0J CS8qCi0JCSAqIENoZWNrIGlmIHRoZSBjb250cm9sbGVyIEkyQyBvcGVyYXRpb24gc3RhdHVzCi0J CSAqIGlzIHNldCB0byBBQk9SVCgxMWIpLgotCQkgKi8KLQkJaWYgKCgoaTJjX3NyID4+IDIpICYg MHgzKSA9PSAweDMpIHsKLQkJCS8qIGdldCB0aGUgYWJvcnQgY2F1c2UgKi8KLQkJCWNhdXNlID0J KGkyY19zciA+PiA0KSAmIDB4NzsKKwkJaWYgKEZJRUxEX0dFVChJMkNfU1JfU1RBVFVTLCBpMmNf c3IpID09IEkyQ19BQk9SVCkgeworCQkJY2F1c2UgPSBGSUVMRF9HRVQoSTJDX1NSX0NBVVNFLCBp MmNfc3IpOwogCQkJZGV2X2VycigmcHJpdi0+YWRldi0+ZGV2LCAiJXNcbiIsCiAJCQkJY2F1c2Ug Pj0gQVJSQVlfU0laRShhYm9ydF9jYXVzZXMpID8KIAkJCQkidW5rbm93biByZWFzb24iIDoKQEAg LTczMCw3ICs3MzMsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaTJjX2lycV9oYW5kbGVyKGludCBp cnEsIHZvaWQgKmFyZykKIAltaXNyID0gcmVhZGwocHJpdi0+dmlydGJhc2UgKyBJMkNfTUlTUik7 CiAKIAlzcmMgPSBfX2ZmcyhtaXNyKTsKLQlzd2l0Y2ggKCgxIDw8IHNyYykpIHsKKwlzd2l0Y2gg KEJJVChzcmMpKSB7CiAKIAkvKiBUcmFuc21pdCBGSUZPIG5lYXJseSBlbXB0eSBpbnRlcnJ1cHQg Ki8KIAljYXNlIEkyQ19JVF9UWEZORToKQEAgLTgyNCwxNSArODI3LDE2IEBAIHN0YXRpYyBpcnFy ZXR1cm5fdCBpMmNfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCSAqIGR1cmluZyB0 aGUgdHJhbnNhY3Rpb24uCiAJICovCiAJY2FzZSBJMkNfSVRfQkVSUjoKKwl7CisJCXUzMiBzciA9 IHJlYWRsKHByaXYtPnZpcnRiYXNlICsgSTJDX1NSKTsKIAkJcHJpdi0+cmVzdWx0ID0gLUVJTzsK LQkJLyogZ2V0IHRoZSBzdGF0dXMgKi8KLQkJaWYgKCgocmVhZGwocHJpdi0+dmlydGJhc2UgKyBJ MkNfU1IpID4+IDIpICYgMHgzKSA9PSBJMkNfQUJPUlQpCisJCWlmIChGSUVMRF9HRVQoSTJDX1NS X1NUQVRVUywgc3IpID09IEkyQ19BQk9SVCkKIAkJCWluaXRfaHcocHJpdik7CiAKIAkJaTJjX3Nl dF9iaXQocHJpdi0+dmlydGJhc2UgKyBJMkNfSUNSLCBJMkNfSVRfQkVSUik7CiAJCWNvbXBsZXRl KCZwcml2LT54ZmVyX2NvbXBsZXRlKTsKLQotCQlicmVhazsKKwl9CisJYnJlYWs7CiAKIAkvKgog CSAqIFR4IEZJRk8gb3ZlcnJ1biBpbnRlcnJ1cHQuCgotLSAKMi40NC4wCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWls aW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=