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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B3244C76195 for ; Tue, 28 Mar 2023 09:20:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230423AbjC1JUH (ORCPT ); Tue, 28 Mar 2023 05:20:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47150 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230381AbjC1JUG (ORCPT ); Tue, 28 Mar 2023 05:20:06 -0400 Received: from mail-yb1-xb33.google.com (mail-yb1-xb33.google.com [IPv6:2607:f8b0:4864:20::b33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D5F16195 for ; Tue, 28 Mar 2023 02:20:03 -0700 (PDT) Received: by mail-yb1-xb33.google.com with SMTP id p203so14139413ybb.13 for ; Tue, 28 Mar 2023 02:20:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; t=1679995203; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=rydAqL2xjCh9m8x5P5P2xf+yVVNlT8mq2EopIER2YF4=; b=Rjr+MdnqwFCGnuQdLml0S8Rg+dbGWPtX0rYliRuYF6Vx1BGLHxmv6BqbxyH+0adZWt F4F25hvkqcOJZlpWwo6b5GR+8oC7WRANZsp1iZtlM10kl43ujXjzT4mVnjn+QN7nkgH/ ylTdaoxbTSTFpvfWJ/g0nndUO0lYAvmY9yhg1/8mIWR5OEvmAWMkjDfOKgUuhqZKCqbd /XnCOmgTUB7Jaf88M6jctxsTiOC4cPYSWTzYQ3VK+ZC/OsqtaI+LviwJ68FcYbjcW2li 1YKX3WbXfqFml0Qo8EG3vuVsx79HR+CcCAm0vKhI+PvaHiudqk1bm6pgS6G6pcpgh7yx iwdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679995203; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rydAqL2xjCh9m8x5P5P2xf+yVVNlT8mq2EopIER2YF4=; b=1nb0JZRp/4t1VCb4dk0tEyjMalyDstRTsGqKtBs7LfdjurpmCBUOM+s0TgvQaSVmB9 0u+tKPnCGi97/k+5Z7wfE/3lNkiSQ2Vg7sFrG6snav3z1fBJ9hb0+dwUPZHak1vOQQEG QRowRTS4xi7PUfyt91REoUUmpgZEUEKnrEVN5qHauv/KKJE7NrvluXvwj9kreGOWCp3D 76O3qf6W+m7y79Pb5ch3XFUFsXmEnS5/qPkG03m37XizhIeVFiAcIDZdwMtTK+aaXC3M jRmEJGXVMfIIfhX/Wd2FR6M4ygcDsEVL0w2knBrwHhaDeRVvItUtsgtUkIdic0YgazVc p4aw== X-Gm-Message-State: AAQBX9eg/VbxmflU+LPOMJrxLhiBnsNQh548FabtGl0ooLDJKlzsrYH8 BfUTiAQ+D82bnTG1yU+7eDh+JwawXJDxEui0GFok3A== X-Google-Smtp-Source: AKy350bysJsJQEMIVvOgRrtDQqvgDbyfnCMQZJxShJfJthTEA4O/F/mDGDMWyhxv19f8BsA5jRUCcPGquZnZUmPXvCU= X-Received: by 2002:a05:6902:1586:b0:98e:6280:74ca with SMTP id k6-20020a056902158600b0098e628074camr9294491ybu.1.1679995202855; Tue, 28 Mar 2023 02:20:02 -0700 (PDT) MIME-Version: 1.0 References: <20230324094205.33266-1-angelogioacchino.delregno@collabora.com> <20230324094205.33266-3-angelogioacchino.delregno@collabora.com> In-Reply-To: <20230324094205.33266-3-angelogioacchino.delregno@collabora.com> From: Alexandre Mergnat Date: Tue, 28 Mar 2023 11:19:52 +0200 Message-ID: Subject: Re: [PATCH v2 2/6] soc: mediatek: pwrap: Move PMIC read test sequence in function To: AngeloGioacchino Del Regno Cc: matthias.bgg@gmail.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, flora.fu@mediatek.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, kernel@collabora.com, phone-devel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: phone-devel@vger.kernel.org Le ven. 24 mars 2023 =C3=A0 10:42, AngeloGioacchino Del Regno a =C3=A9crit : > > The PMIC read test is performed in two places: pwrap_init_dual_io() > and pwrap_init_sidly(). > In preparation for adding support for PMICs requiring a companion > part, move this sequence to a new function pwrap_pmic_read_test(). > > Signed-off-by: AngeloGioacchino Del Regno > --- > drivers/soc/mediatek/mtk-pmic-wrap.c | 32 +++++++++++++++++----------- > 1 file changed, 20 insertions(+), 12 deletions(-) > > diff --git a/drivers/soc/mediatek/mtk-pmic-wrap.c b/drivers/soc/mediatek/= mtk-pmic-wrap.c > index 15789a03e6c6..5c500be48f7c 100644 > --- a/drivers/soc/mediatek/mtk-pmic-wrap.c > +++ b/drivers/soc/mediatek/mtk-pmic-wrap.c > @@ -1455,6 +1455,18 @@ static int pwrap_regmap_write(void *context, u32 a= dr, u32 wdata) > return pwrap_write(context, adr, wdata); > } > > +static bool pwrap_pmic_read_test(struct pmic_wrapper *wrp, const u32 *de= w_regs, > + u16 read_test_val) > +{ > + bool is_success; > + u32 rdata; > + > + pwrap_read(wrp, dew_regs[PWRAP_DEW_READ_TEST], &rdata); > + is_success =3D ((rdata & U16_MAX) =3D=3D read_test_val); > + > + return is_success; > +} > + > static int pwrap_reset_spislave(struct pmic_wrapper *wrp) > { > bool tmp; > @@ -1498,18 +1510,18 @@ static int pwrap_reset_spislave(struct pmic_wrapp= er *wrp) > */ > static int pwrap_init_sidly(struct pmic_wrapper *wrp) > { > - u32 rdata; > u32 i; > u32 pass =3D 0; > + bool read_ok; > signed char dly[16] =3D { > -1, 0, 1, 0, 2, -1, 1, 1, 3, -1, -1, -1, 3, -1, 2, 1 > }; > > for (i =3D 0; i < 4; i++) { > pwrap_writel(wrp, i, PWRAP_SIDLY); > - pwrap_read(wrp, wrp->slave->dew_regs[PWRAP_DEW_READ_TEST]= , > - &rdata); > - if (rdata =3D=3D PWRAP_DEW_READ_TEST_VAL) { > + read_ok =3D pwrap_pmic_read_test(wrp, wrp->slave->dew_reg= s, > + PWRAP_DEW_READ_TEST_VAL); > + if (read_ok) { > dev_dbg(wrp->dev, "[Read Test] pass, SIDLY=3D%x\n= ", i); > pass |=3D 1 << i; > } > @@ -1529,8 +1541,7 @@ static int pwrap_init_sidly(struct pmic_wrapper *wr= p) > static int pwrap_init_dual_io(struct pmic_wrapper *wrp) > { > int ret; > - bool tmp; > - u32 rdata; > + bool read_ok, tmp; > > /* Enable dual IO mode */ > pwrap_write(wrp, wrp->slave->dew_regs[PWRAP_DEW_DIO_EN], 1); > @@ -1546,12 +1557,9 @@ static int pwrap_init_dual_io(struct pmic_wrapper = *wrp) > pwrap_writel(wrp, 1, PWRAP_DIO_EN); > > /* Read Test */ > - pwrap_read(wrp, > - wrp->slave->dew_regs[PWRAP_DEW_READ_TEST], &rdata); > - if (rdata !=3D PWRAP_DEW_READ_TEST_VAL) { > - dev_err(wrp->dev, > - "Read failed on DIO mode: 0x%04x!=3D0x%04x\n", > - PWRAP_DEW_READ_TEST_VAL, rdata); > + read_ok =3D pwrap_pmic_read_test(wrp, wrp->slave->dew_regs, PWRAP= _DEW_READ_TEST_VAL); > + if (!read_ok) { > + dev_err(wrp->dev, "Read failed on DIO mode.\n"); > return -EFAULT; > } Reviewed-by: Alexandre Mergnat Regards, Alexandre 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 4AE1AC76195 for ; Tue, 28 Mar 2023 09:21:01 +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:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=hj4ISOImFx6ZLkODaHix89GEnKzYU1Vg0Q3jnxSnIKA=; b=Lmnsmj8YnIxnZO UIfKsDNvdnVBYf2Mckn5fKfPRDOR2SjKlkJhGNT0qhEIIUBiMa9Y0ovU9Xhy53QkDFgO/L8qqpYYQ V5pjFBV0dtrSnHrUMywCP/w23wfv8f9Fs0Cvf4I8rKEjK+e8Qw5E3LM+CjzhZLQWj6pbd9bo3Ns8S 5YCZjicbbUZotygG5ME/mE0rCOV+X2SscuuNXuoQZvwwRXqrVdHRTcA7Px4m2q27rXHK60aM9V5/w 0uJLLndEhfweYKpvueFDXaRZzc6XnyN0k7NoY1wd2BdQ2AP5q0ZDjM2A8s8za8lOph5d91TPkRUMj M9LcsoCyxLmZltFtWUGQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1ph5Uw-00DiUv-16; Tue, 28 Mar 2023 09:20:10 +0000 Received: from mail-yb1-xb2b.google.com ([2607:f8b0:4864:20::b2b]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1ph5Us-00DiTI-1D for linux-arm-kernel@lists.infradead.org; Tue, 28 Mar 2023 09:20:08 +0000 Received: by mail-yb1-xb2b.google.com with SMTP id r187so14168635ybr.6 for ; Tue, 28 Mar 2023 02:20:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; t=1679995203; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=rydAqL2xjCh9m8x5P5P2xf+yVVNlT8mq2EopIER2YF4=; b=Rjr+MdnqwFCGnuQdLml0S8Rg+dbGWPtX0rYliRuYF6Vx1BGLHxmv6BqbxyH+0adZWt F4F25hvkqcOJZlpWwo6b5GR+8oC7WRANZsp1iZtlM10kl43ujXjzT4mVnjn+QN7nkgH/ ylTdaoxbTSTFpvfWJ/g0nndUO0lYAvmY9yhg1/8mIWR5OEvmAWMkjDfOKgUuhqZKCqbd /XnCOmgTUB7Jaf88M6jctxsTiOC4cPYSWTzYQ3VK+ZC/OsqtaI+LviwJ68FcYbjcW2li 1YKX3WbXfqFml0Qo8EG3vuVsx79HR+CcCAm0vKhI+PvaHiudqk1bm6pgS6G6pcpgh7yx iwdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679995203; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rydAqL2xjCh9m8x5P5P2xf+yVVNlT8mq2EopIER2YF4=; b=ID0u3VF+XM1FSIIZNorvLen6NLSmTkHThDXpCDvPR7fzw2lPN5MQyeEkwWTBtjD3G0 SHOKPjSYOFmYmfRQ/ifyBRuPc87kcQkm9c/Pyx9FmSI9+1CyB3fKwaiQa2+G8jSS7S21 iFkvcJYNHCaZdr2/BoG1RW8ZgPyUso+2+4afCBJkGqqj9HJ0xayxpxImjK1mygqvl4rl 6L5mu4SGhUOJG8GW/E8ijCueyPVlids2x16EPEUSi0nBhuT/W58EEchrH1j4u6CfT2bv PU2UbXQqnS14OuRO8uez9ArdkRkt8MZOZIxz1FGHZdYKvswmdy3WJdtVva8mmZkZX5hd GgVA== X-Gm-Message-State: AAQBX9f68fPeFVOXc4p8yRdkoAj3F2KMjViKSITKBMfGEORWMxlMSsJT wA/4iYkR/BZo+Yn0z6ir+80IGZnm7WwJnV8BLbpTyA== X-Google-Smtp-Source: AKy350bysJsJQEMIVvOgRrtDQqvgDbyfnCMQZJxShJfJthTEA4O/F/mDGDMWyhxv19f8BsA5jRUCcPGquZnZUmPXvCU= X-Received: by 2002:a05:6902:1586:b0:98e:6280:74ca with SMTP id k6-20020a056902158600b0098e628074camr9294491ybu.1.1679995202855; Tue, 28 Mar 2023 02:20:02 -0700 (PDT) MIME-Version: 1.0 References: <20230324094205.33266-1-angelogioacchino.delregno@collabora.com> <20230324094205.33266-3-angelogioacchino.delregno@collabora.com> In-Reply-To: <20230324094205.33266-3-angelogioacchino.delregno@collabora.com> From: Alexandre Mergnat Date: Tue, 28 Mar 2023 11:19:52 +0200 Message-ID: Subject: Re: [PATCH v2 2/6] soc: mediatek: pwrap: Move PMIC read test sequence in function To: AngeloGioacchino Del Regno Cc: matthias.bgg@gmail.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, flora.fu@mediatek.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, kernel@collabora.com, phone-devel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230328_022006_419597_EDBFB9C8 X-CRM114-Status: GOOD ( 18.82 ) 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 TGUgdmVuLiAyNCBtYXJzIDIwMjMgw6AgMTA6NDIsIEFuZ2Vsb0dpb2FjY2hpbm8gRGVsIFJlZ25v CjxhbmdlbG9naW9hY2NoaW5vLmRlbHJlZ25vQGNvbGxhYm9yYS5jb20+IGEgw6ljcml0IDoKPgo+ IFRoZSBQTUlDIHJlYWQgdGVzdCBpcyBwZXJmb3JtZWQgaW4gdHdvIHBsYWNlczogcHdyYXBfaW5p dF9kdWFsX2lvKCkKPiBhbmQgcHdyYXBfaW5pdF9zaWRseSgpLgo+IEluIHByZXBhcmF0aW9uIGZv ciBhZGRpbmcgc3VwcG9ydCBmb3IgUE1JQ3MgcmVxdWlyaW5nIGEgY29tcGFuaW9uCj4gcGFydCwg bW92ZSB0aGlzIHNlcXVlbmNlIHRvIGEgbmV3IGZ1bmN0aW9uIHB3cmFwX3BtaWNfcmVhZF90ZXN0 KCkuCj4KPiBTaWduZWQtb2ZmLWJ5OiBBbmdlbG9HaW9hY2NoaW5vIERlbCBSZWdubyA8YW5nZWxv Z2lvYWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEuY29tPgo+IC0tLQo+ICBkcml2ZXJzL3NvYy9t ZWRpYXRlay9tdGstcG1pYy13cmFwLmMgfCAzMiArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t Cj4gIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKPgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstcG1pYy13cmFwLmMgYi9kcml2 ZXJzL3NvYy9tZWRpYXRlay9tdGstcG1pYy13cmFwLmMKPiBpbmRleCAxNTc4OWEwM2U2YzYuLjVj NTAwYmU0OGY3YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstcG1pYy13 cmFwLmMKPiArKysgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstcG1pYy13cmFwLmMKPiBAQCAt MTQ1NSw2ICsxNDU1LDE4IEBAIHN0YXRpYyBpbnQgcHdyYXBfcmVnbWFwX3dyaXRlKHZvaWQgKmNv bnRleHQsIHUzMiBhZHIsIHUzMiB3ZGF0YSkKPiAgICAgICAgIHJldHVybiBwd3JhcF93cml0ZShj b250ZXh0LCBhZHIsIHdkYXRhKTsKPiAgfQo+Cj4gK3N0YXRpYyBib29sIHB3cmFwX3BtaWNfcmVh ZF90ZXN0KHN0cnVjdCBwbWljX3dyYXBwZXIgKndycCwgY29uc3QgdTMyICpkZXdfcmVncywKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MTYgcmVhZF90ZXN0X3ZhbCkKPiArewo+ ICsgICAgICAgYm9vbCBpc19zdWNjZXNzOwo+ICsgICAgICAgdTMyIHJkYXRhOwo+ICsKPiArICAg ICAgIHB3cmFwX3JlYWQod3JwLCBkZXdfcmVnc1tQV1JBUF9ERVdfUkVBRF9URVNUXSwgJnJkYXRh KTsKPiArICAgICAgIGlzX3N1Y2Nlc3MgPSAoKHJkYXRhICYgVTE2X01BWCkgPT0gcmVhZF90ZXN0 X3ZhbCk7Cj4gKwo+ICsgICAgICAgcmV0dXJuIGlzX3N1Y2Nlc3M7Cj4gK30KPiArCj4gIHN0YXRp YyBpbnQgcHdyYXBfcmVzZXRfc3Bpc2xhdmUoc3RydWN0IHBtaWNfd3JhcHBlciAqd3JwKQo+ICB7 Cj4gICAgICAgICBib29sIHRtcDsKPiBAQCAtMTQ5OCwxOCArMTUxMCwxOCBAQCBzdGF0aWMgaW50 IHB3cmFwX3Jlc2V0X3NwaXNsYXZlKHN0cnVjdCBwbWljX3dyYXBwZXIgKndycCkKPiAgICovCj4g IHN0YXRpYyBpbnQgcHdyYXBfaW5pdF9zaWRseShzdHJ1Y3QgcG1pY193cmFwcGVyICp3cnApCj4g IHsKPiAtICAgICAgIHUzMiByZGF0YTsKPiAgICAgICAgIHUzMiBpOwo+ICAgICAgICAgdTMyIHBh c3MgPSAwOwo+ICsgICAgICAgYm9vbCByZWFkX29rOwo+ICAgICAgICAgc2lnbmVkIGNoYXIgZGx5 WzE2XSA9IHsKPiAgICAgICAgICAgICAgICAgLTEsIDAsIDEsIDAsIDIsIC0xLCAxLCAxLCAzLCAt MSwgLTEsIC0xLCAzLCAtMSwgMiwgMQo+ICAgICAgICAgfTsKPgo+ICAgICAgICAgZm9yIChpID0g MDsgaSA8IDQ7IGkrKykgewo+ICAgICAgICAgICAgICAgICBwd3JhcF93cml0ZWwod3JwLCBpLCBQ V1JBUF9TSURMWSk7Cj4gLSAgICAgICAgICAgICAgIHB3cmFwX3JlYWQod3JwLCB3cnAtPnNsYXZl LT5kZXdfcmVnc1tQV1JBUF9ERVdfUkVBRF9URVNUXSwKPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAmcmRhdGEpOwo+IC0gICAgICAgICAgICAgICBpZiAocmRhdGEgPT0gUFdSQVBfREVXX1JF QURfVEVTVF9WQUwpIHsKPiArICAgICAgICAgICAgICAgcmVhZF9vayA9IHB3cmFwX3BtaWNfcmVh ZF90ZXN0KHdycCwgd3JwLT5zbGF2ZS0+ZGV3X3JlZ3MsCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQV1JBUF9ERVdfUkVBRF9URVNUX1ZBTCk7Cj4gKyAg ICAgICAgICAgICAgIGlmIChyZWFkX29rKSB7Cj4gICAgICAgICAgICAgICAgICAgICAgICAgZGV2 X2RiZyh3cnAtPmRldiwgIltSZWFkIFRlc3RdIHBhc3MsIFNJRExZPSV4XG4iLCBpKTsKPiAgICAg ICAgICAgICAgICAgICAgICAgICBwYXNzIHw9IDEgPDwgaTsKPiAgICAgICAgICAgICAgICAgfQo+ IEBAIC0xNTI5LDggKzE1NDEsNyBAQCBzdGF0aWMgaW50IHB3cmFwX2luaXRfc2lkbHkoc3RydWN0 IHBtaWNfd3JhcHBlciAqd3JwKQo+ICBzdGF0aWMgaW50IHB3cmFwX2luaXRfZHVhbF9pbyhzdHJ1 Y3QgcG1pY193cmFwcGVyICp3cnApCj4gIHsKPiAgICAgICAgIGludCByZXQ7Cj4gLSAgICAgICBi b29sIHRtcDsKPiAtICAgICAgIHUzMiByZGF0YTsKPiArICAgICAgIGJvb2wgcmVhZF9vaywgdG1w Owo+Cj4gICAgICAgICAvKiBFbmFibGUgZHVhbCBJTyBtb2RlICovCj4gICAgICAgICBwd3JhcF93 cml0ZSh3cnAsIHdycC0+c2xhdmUtPmRld19yZWdzW1BXUkFQX0RFV19ESU9fRU5dLCAxKTsKPiBA QCAtMTU0NiwxMiArMTU1Nyw5IEBAIHN0YXRpYyBpbnQgcHdyYXBfaW5pdF9kdWFsX2lvKHN0cnVj dCBwbWljX3dyYXBwZXIgKndycCkKPiAgICAgICAgIHB3cmFwX3dyaXRlbCh3cnAsIDEsIFBXUkFQ X0RJT19FTik7Cj4KPiAgICAgICAgIC8qIFJlYWQgVGVzdCAqLwo+IC0gICAgICAgcHdyYXBfcmVh ZCh3cnAsCj4gLSAgICAgICAgICAgICAgICAgIHdycC0+c2xhdmUtPmRld19yZWdzW1BXUkFQX0RF V19SRUFEX1RFU1RdLCAmcmRhdGEpOwo+IC0gICAgICAgaWYgKHJkYXRhICE9IFBXUkFQX0RFV19S RUFEX1RFU1RfVkFMKSB7Cj4gLSAgICAgICAgICAgICAgIGRldl9lcnIod3JwLT5kZXYsCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgIlJlYWQgZmFpbGVkIG9uIERJTyBtb2RlOiAweCUwNHghPTB4 JTA0eFxuIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICBQV1JBUF9ERVdfUkVBRF9URVNUX1ZB TCwgcmRhdGEpOwo+ICsgICAgICAgcmVhZF9vayA9IHB3cmFwX3BtaWNfcmVhZF90ZXN0KHdycCwg d3JwLT5zbGF2ZS0+ZGV3X3JlZ3MsIFBXUkFQX0RFV19SRUFEX1RFU1RfVkFMKTsKPiArICAgICAg IGlmICghcmVhZF9vaykgewo+ICsgICAgICAgICAgICAgICBkZXZfZXJyKHdycC0+ZGV2LCAiUmVh ZCBmYWlsZWQgb24gRElPIG1vZGUuXG4iKTsKPiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FRkFV TFQ7Cj4gICAgICAgICB9CgpSZXZpZXdlZC1ieTogQWxleGFuZHJlIE1lcmduYXQgPGFtZXJnbmF0 QGJheWxpYnJlLmNvbT4KClJlZ2FyZHMsCkFsZXhhbmRyZQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QK bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=