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 4F812C433F5 for ; Tue, 17 May 2022 14:02:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348278AbiEQOCo (ORCPT ); Tue, 17 May 2022 10:02:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60272 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348239AbiEQOCc (ORCPT ); Tue, 17 May 2022 10:02:32 -0400 Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::226]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DEB4A3CFDC; Tue, 17 May 2022 07:02:30 -0700 (PDT) Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id 5A6B9C000A; Tue, 17 May 2022 14:02:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1652796149; 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=AFYtPsh6s9dzHCZdoQzXiCPCMhM47AP7OmBzXLX/B4I=; b=HX3COE9t4BRjmNMfjKgyvM1XLP0ODDvStZTU9hi+qbFefEzb79wkyXSKSQ0swG9xtgopkp kb7BtpESwuOEj9NiHLMXQh7vzERBwIDFqVsEXb2o5tUrd/4HAhgCi9d/tPP+WsuM9+ADvb pXz+EhPuk8RNXC4x4/Pz7cJ1/lsu/BuoJvQOHeCWerF4kvc3BcLs0XV18/B/N3F/nHNlqo aKdG+rRP5Q6cwMAcSeS3UXQszTUk+Hj4MNKBWgsbFp+fqlESJEqFbmwzM2AOcPMUcSVwVz mL6e0HBgioq6t9FeejYiruQ6+O6DUlqHUkC8kWqR+koXOTxDkmfWo/xFvbmFBw== Date: Tue, 17 May 2022 16:02:26 +0200 From: Miquel Raynal To: Pratyush Yadav Cc: Nishanth Menon , Tero Kristo , Rob Herring , Tudor Ambarus , Michael Walle , Richard Weinberger , Vignesh Raghavendra , Mark Brown , , , , , , Lokesh Vutla Subject: Re: [RFC PATCH 3/6] mtd: spi-nor: core: run calibration when initialization is done Message-ID: <20220517160226.4107f282@xps-13> In-Reply-To: <20210311191216.7363-4-p.yadav@ti.com> References: <20210311191216.7363-1-p.yadav@ti.com> <20210311191216.7363-4-p.yadav@ti.com> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Pratyush, p.yadav@ti.com wrote on Fri, 12 Mar 2021 00:42:13 +0530: > Once the flash is initialized tell the controller it can run > calibration procedures if needed. This can be useful when calibration is > needed to run at higher clock speeds. >=20 > Signed-off-by: Pratyush Yadav > --- > drivers/mtd/spi-nor/core.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) >=20 > diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c > index 88888df009f0..e0cbcaf1be89 100644 > --- a/drivers/mtd/spi-nor/core.c > +++ b/drivers/mtd/spi-nor/core.c > @@ -3650,6 +3650,7 @@ static int spi_nor_probe(struct spi_mem *spimem) > * checking what's really supported using spi_mem_supports_op(). > */ > const struct spi_nor_hwcaps hwcaps =3D { .mask =3D SNOR_HWCAPS_ALL }; > + struct spi_mem_op op; > char *flash_name; > int ret; > =20 > @@ -3709,8 +3710,15 @@ static int spi_nor_probe(struct spi_mem *spimem) > if (ret) > return ret; > =20 > - return mtd_device_register(&nor->mtd, data ? data->parts : NULL, > - data ? data->nr_parts : 0); > + ret =3D mtd_device_register(&nor->mtd, data ? data->parts : NULL, > + data ? data->nr_parts : 0); > + if (ret) > + return ret; > + > + op =3D spi_nor_spimem_get_read_op(nor); Isn't this too specific? I really don't know much about spi-nors, but I find odd to have this op being created here, why not moving this into the _do_calibration() helper? > + spi_mem_do_calibration(nor->spimem, &op); A warning/info upon calibration error (not on the absence of the hook) would be nice? > + > + return 0; > } > =20 > static int spi_nor_remove(struct spi_mem *spimem) Otherwise I like the overall idea. Thanks, Miqu=C3=A8l 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 D3182C433F5 for ; Tue, 17 May 2022 14:03:47 +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:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=V+BRRZmSKmk7ms8WvKkpYUZI9Y1b+1Z+eeXjJNLvuK0=; b=v3lTKvECSznG2g Ib64G5gosSlUykjbxhH5wLFRLnmP8ltUUsqqkidZPhwDZ+tTVG8xHXpgwOSvjVzBUUTN/KXNj7+NH 8F17z4ojxLSbd9rPKYcYiEqmeEdlEa2jTp4evNPvv0gRH5Gi+ET5WDqVIPj7T9aqdykE6d7etz06R nYebe+s3BH8p1cXPVYufO8GwI3a9oOUm6cUm/2B0ebqm4F9BaFyAThc3X3IWjntGnX5kBtMFn1Ue7 rvj16daYFLpBWdLYhlNdJWJl/YTgiz/9390jhyBR0ZvGQjbqTFXlpTRkPOvWALnAo3SABBeeA6t2K C0jVGIqblr+U3Yd0U7Cg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqxnY-00EB0C-3z; Tue, 17 May 2022 14:03:40 +0000 Received: from relay6-d.mail.gandi.net ([2001:4b98:dc4:8::226]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqxmT-00EAQQ-2u; Tue, 17 May 2022 14:02:34 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id 5A6B9C000A; Tue, 17 May 2022 14:02:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1652796149; 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=AFYtPsh6s9dzHCZdoQzXiCPCMhM47AP7OmBzXLX/B4I=; b=HX3COE9t4BRjmNMfjKgyvM1XLP0ODDvStZTU9hi+qbFefEzb79wkyXSKSQ0swG9xtgopkp kb7BtpESwuOEj9NiHLMXQh7vzERBwIDFqVsEXb2o5tUrd/4HAhgCi9d/tPP+WsuM9+ADvb pXz+EhPuk8RNXC4x4/Pz7cJ1/lsu/BuoJvQOHeCWerF4kvc3BcLs0XV18/B/N3F/nHNlqo aKdG+rRP5Q6cwMAcSeS3UXQszTUk+Hj4MNKBWgsbFp+fqlESJEqFbmwzM2AOcPMUcSVwVz mL6e0HBgioq6t9FeejYiruQ6+O6DUlqHUkC8kWqR+koXOTxDkmfWo/xFvbmFBw== Date: Tue, 17 May 2022 16:02:26 +0200 From: Miquel Raynal To: Pratyush Yadav Cc: Nishanth Menon , Tero Kristo , Rob Herring , Tudor Ambarus , Michael Walle , Richard Weinberger , Vignesh Raghavendra , Mark Brown , , , , , , Lokesh Vutla Subject: Re: [RFC PATCH 3/6] mtd: spi-nor: core: run calibration when initialization is done Message-ID: <20220517160226.4107f282@xps-13> In-Reply-To: <20210311191216.7363-4-p.yadav@ti.com> References: <20210311191216.7363-1-p.yadav@ti.com> <20210311191216.7363-4-p.yadav@ti.com> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220517_070233_320109_05F080AD X-CRM114-Status: GOOD ( 18.54 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 SGkgUHJhdHl1c2gsCgpwLnlhZGF2QHRpLmNvbSB3cm90ZSBvbiBGcmksIDEyIE1hciAyMDIxIDAw OjQyOjEzICswNTMwOgoKPiBPbmNlIHRoZSBmbGFzaCBpcyBpbml0aWFsaXplZCB0ZWxsIHRoZSBj b250cm9sbGVyIGl0IGNhbiBydW4KPiBjYWxpYnJhdGlvbiBwcm9jZWR1cmVzIGlmIG5lZWRlZC4g VGhpcyBjYW4gYmUgdXNlZnVsIHdoZW4gY2FsaWJyYXRpb24gaXMKPiBuZWVkZWQgdG8gcnVuIGF0 IGhpZ2hlciBjbG9jayBzcGVlZHMuCj4gCj4gU2lnbmVkLW9mZi1ieTogUHJhdHl1c2ggWWFkYXYg PHAueWFkYXZAdGkuY29tPgo+IC0tLQo+ICBkcml2ZXJzL210ZC9zcGktbm9yL2NvcmUuYyB8IDEy ICsrKysrKysrKystLQo+ICAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvc3BpLW5vci9jb3JlLmMgYi9k cml2ZXJzL210ZC9zcGktbm9yL2NvcmUuYwo+IGluZGV4IDg4ODg4ZGYwMDlmMC4uZTBjYmNhZjFi ZTg5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvY29yZS5jCj4gKysrIGIvZHJp dmVycy9tdGQvc3BpLW5vci9jb3JlLmMKPiBAQCAtMzY1MCw2ICszNjUwLDcgQEAgc3RhdGljIGlu dCBzcGlfbm9yX3Byb2JlKHN0cnVjdCBzcGlfbWVtICpzcGltZW0pCj4gIAkgKiBjaGVja2luZyB3 aGF0J3MgcmVhbGx5IHN1cHBvcnRlZCB1c2luZyBzcGlfbWVtX3N1cHBvcnRzX29wKCkuCj4gIAkg Ki8KPiAgCWNvbnN0IHN0cnVjdCBzcGlfbm9yX2h3Y2FwcyBod2NhcHMgPSB7IC5tYXNrID0gU05P Ul9IV0NBUFNfQUxMIH07Cj4gKwlzdHJ1Y3Qgc3BpX21lbV9vcCBvcDsKPiAgCWNoYXIgKmZsYXNo X25hbWU7Cj4gIAlpbnQgcmV0Owo+ICAKPiBAQCAtMzcwOSw4ICszNzEwLDE1IEBAIHN0YXRpYyBp bnQgc3BpX25vcl9wcm9iZShzdHJ1Y3Qgc3BpX21lbSAqc3BpbWVtKQo+ICAJaWYgKHJldCkKPiAg CQlyZXR1cm4gcmV0Owo+ICAKPiAtCXJldHVybiBtdGRfZGV2aWNlX3JlZ2lzdGVyKCZub3ItPm10 ZCwgZGF0YSA/IGRhdGEtPnBhcnRzIDogTlVMTCwKPiAtCQkJCSAgIGRhdGEgPyBkYXRhLT5ucl9w YXJ0cyA6IDApOwo+ICsJcmV0ID0gbXRkX2RldmljZV9yZWdpc3Rlcigmbm9yLT5tdGQsIGRhdGEg PyBkYXRhLT5wYXJ0cyA6IE5VTEwsCj4gKwkJCQkgIGRhdGEgPyBkYXRhLT5ucl9wYXJ0cyA6IDAp Owo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCW9wID0gc3BpX25vcl9zcGlt ZW1fZ2V0X3JlYWRfb3Aobm9yKTsKCklzbid0IHRoaXMgdG9vIHNwZWNpZmljPyBJIHJlYWxseSBk b24ndCBrbm93IG11Y2ggYWJvdXQgc3BpLW5vcnMsIGJ1dCBJCmZpbmQgb2RkIHRvIGhhdmUgdGhp cyBvcCBiZWluZyBjcmVhdGVkIGhlcmUsIHdoeSBub3QgbW92aW5nIHRoaXMgaW50bwp0aGUgX2Rv X2NhbGlicmF0aW9uKCkgaGVscGVyPwoKPiArCXNwaV9tZW1fZG9fY2FsaWJyYXRpb24obm9yLT5z cGltZW0sICZvcCk7CgpBIHdhcm5pbmcvaW5mbyB1cG9uIGNhbGlicmF0aW9uIGVycm9yIChub3Qg b24gdGhlIGFic2VuY2Ugb2YgdGhlIGhvb2spCndvdWxkIGJlIG5pY2U/Cgo+ICsKPiArCXJldHVy biAwOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IHNwaV9ub3JfcmVtb3ZlKHN0cnVjdCBzcGlfbWVt ICpzcGltZW0pCgpPdGhlcndpc2UgSSBsaWtlIHRoZSBvdmVyYWxsIGlkZWEuCgpUaGFua3MsCk1p cXXDqGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvCg== 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 072ABC433EF for ; Tue, 17 May 2022 14:04:46 +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:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=xAKeYtareaZRohFByFGetDjmaWVcG9sP8doi2CkpWUg=; b=PYY+zxR3U+yCnH 434HtqRqA8mfnwApQvoSfZzcbkhUea3kMK8VRJPWnE3TwkVbxM6SxcCgpeg30HNJECTBRyF98Ke9i 8iWGa60H6rNw4S2Mpa82c5za0c2E3OXZYPuInNu0f5nl8+rjzyBXkVVrl+Uz2y7Z/YZ8EqH9hFyuc A3k/NahHF4vO7lOR5pw4MQa+jwidZ7kT25frYkQ+RHKnsUI0tV5EJH/mhH0zYxBXc9tk5z+YtO1+/ TYq/nJz4L0ppBT+K2civy/q9L/MJig+ytiLcbS2L2oxmzp1eSjp1k7BRbQOHzSZXyUfbAiWW/M+h6 yeQVstUIelyYMk1Q1jDg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqxnF-00EApb-6T; Tue, 17 May 2022 14:03:21 +0000 Received: from relay6-d.mail.gandi.net ([2001:4b98:dc4:8::226]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqxmT-00EAQQ-2u; Tue, 17 May 2022 14:02:34 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id 5A6B9C000A; Tue, 17 May 2022 14:02:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1652796149; 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=AFYtPsh6s9dzHCZdoQzXiCPCMhM47AP7OmBzXLX/B4I=; b=HX3COE9t4BRjmNMfjKgyvM1XLP0ODDvStZTU9hi+qbFefEzb79wkyXSKSQ0swG9xtgopkp kb7BtpESwuOEj9NiHLMXQh7vzERBwIDFqVsEXb2o5tUrd/4HAhgCi9d/tPP+WsuM9+ADvb pXz+EhPuk8RNXC4x4/Pz7cJ1/lsu/BuoJvQOHeCWerF4kvc3BcLs0XV18/B/N3F/nHNlqo aKdG+rRP5Q6cwMAcSeS3UXQszTUk+Hj4MNKBWgsbFp+fqlESJEqFbmwzM2AOcPMUcSVwVz mL6e0HBgioq6t9FeejYiruQ6+O6DUlqHUkC8kWqR+koXOTxDkmfWo/xFvbmFBw== Date: Tue, 17 May 2022 16:02:26 +0200 From: Miquel Raynal To: Pratyush Yadav Cc: Nishanth Menon , Tero Kristo , Rob Herring , Tudor Ambarus , Michael Walle , Richard Weinberger , Vignesh Raghavendra , Mark Brown , , , , , , Lokesh Vutla Subject: Re: [RFC PATCH 3/6] mtd: spi-nor: core: run calibration when initialization is done Message-ID: <20220517160226.4107f282@xps-13> In-Reply-To: <20210311191216.7363-4-p.yadav@ti.com> References: <20210311191216.7363-1-p.yadav@ti.com> <20210311191216.7363-4-p.yadav@ti.com> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220517_070233_320109_05F080AD X-CRM114-Status: GOOD ( 18.54 ) 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 SGkgUHJhdHl1c2gsCgpwLnlhZGF2QHRpLmNvbSB3cm90ZSBvbiBGcmksIDEyIE1hciAyMDIxIDAw OjQyOjEzICswNTMwOgoKPiBPbmNlIHRoZSBmbGFzaCBpcyBpbml0aWFsaXplZCB0ZWxsIHRoZSBj b250cm9sbGVyIGl0IGNhbiBydW4KPiBjYWxpYnJhdGlvbiBwcm9jZWR1cmVzIGlmIG5lZWRlZC4g VGhpcyBjYW4gYmUgdXNlZnVsIHdoZW4gY2FsaWJyYXRpb24gaXMKPiBuZWVkZWQgdG8gcnVuIGF0 IGhpZ2hlciBjbG9jayBzcGVlZHMuCj4gCj4gU2lnbmVkLW9mZi1ieTogUHJhdHl1c2ggWWFkYXYg PHAueWFkYXZAdGkuY29tPgo+IC0tLQo+ICBkcml2ZXJzL210ZC9zcGktbm9yL2NvcmUuYyB8IDEy ICsrKysrKysrKystLQo+ICAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvc3BpLW5vci9jb3JlLmMgYi9k cml2ZXJzL210ZC9zcGktbm9yL2NvcmUuYwo+IGluZGV4IDg4ODg4ZGYwMDlmMC4uZTBjYmNhZjFi ZTg5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvY29yZS5jCj4gKysrIGIvZHJp dmVycy9tdGQvc3BpLW5vci9jb3JlLmMKPiBAQCAtMzY1MCw2ICszNjUwLDcgQEAgc3RhdGljIGlu dCBzcGlfbm9yX3Byb2JlKHN0cnVjdCBzcGlfbWVtICpzcGltZW0pCj4gIAkgKiBjaGVja2luZyB3 aGF0J3MgcmVhbGx5IHN1cHBvcnRlZCB1c2luZyBzcGlfbWVtX3N1cHBvcnRzX29wKCkuCj4gIAkg Ki8KPiAgCWNvbnN0IHN0cnVjdCBzcGlfbm9yX2h3Y2FwcyBod2NhcHMgPSB7IC5tYXNrID0gU05P Ul9IV0NBUFNfQUxMIH07Cj4gKwlzdHJ1Y3Qgc3BpX21lbV9vcCBvcDsKPiAgCWNoYXIgKmZsYXNo X25hbWU7Cj4gIAlpbnQgcmV0Owo+ICAKPiBAQCAtMzcwOSw4ICszNzEwLDE1IEBAIHN0YXRpYyBp bnQgc3BpX25vcl9wcm9iZShzdHJ1Y3Qgc3BpX21lbSAqc3BpbWVtKQo+ICAJaWYgKHJldCkKPiAg CQlyZXR1cm4gcmV0Owo+ICAKPiAtCXJldHVybiBtdGRfZGV2aWNlX3JlZ2lzdGVyKCZub3ItPm10 ZCwgZGF0YSA/IGRhdGEtPnBhcnRzIDogTlVMTCwKPiAtCQkJCSAgIGRhdGEgPyBkYXRhLT5ucl9w YXJ0cyA6IDApOwo+ICsJcmV0ID0gbXRkX2RldmljZV9yZWdpc3Rlcigmbm9yLT5tdGQsIGRhdGEg PyBkYXRhLT5wYXJ0cyA6IE5VTEwsCj4gKwkJCQkgIGRhdGEgPyBkYXRhLT5ucl9wYXJ0cyA6IDAp Owo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCW9wID0gc3BpX25vcl9zcGlt ZW1fZ2V0X3JlYWRfb3Aobm9yKTsKCklzbid0IHRoaXMgdG9vIHNwZWNpZmljPyBJIHJlYWxseSBk b24ndCBrbm93IG11Y2ggYWJvdXQgc3BpLW5vcnMsIGJ1dCBJCmZpbmQgb2RkIHRvIGhhdmUgdGhp cyBvcCBiZWluZyBjcmVhdGVkIGhlcmUsIHdoeSBub3QgbW92aW5nIHRoaXMgaW50bwp0aGUgX2Rv X2NhbGlicmF0aW9uKCkgaGVscGVyPwoKPiArCXNwaV9tZW1fZG9fY2FsaWJyYXRpb24obm9yLT5z cGltZW0sICZvcCk7CgpBIHdhcm5pbmcvaW5mbyB1cG9uIGNhbGlicmF0aW9uIGVycm9yIChub3Qg b24gdGhlIGFic2VuY2Ugb2YgdGhlIGhvb2spCndvdWxkIGJlIG5pY2U/Cgo+ICsKPiArCXJldHVy biAwOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IHNwaV9ub3JfcmVtb3ZlKHN0cnVjdCBzcGlfbWVt ICpzcGltZW0pCgpPdGhlcndpc2UgSSBsaWtlIHRoZSBvdmVyYWxsIGlkZWEuCgpUaGFua3MsCk1p cXXDqGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK