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 3B478E784AC for ; Mon, 2 Oct 2023 12:35:43 +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=bbg1Oi/w1RcwWYg3vD/ncshvZX2XB84/xhLev2wf2hY=; b=mUS4YE86cMrASh CCGgYKFgcnfm+haj/Ev7Vy1L/0fxSfpmIAHH8OXXnzjhzdCkiA17UXnDonPtG0WCNft18/eNGLFR/ V2PbpKOCL/CetoqLQNGv0aQ0+4d67rObKnlGYJvss5BaoI4xu8h8kI9nNUye3VH7CkrQbN2XRzmNI eTuu410expIAk9Ra0SDTlBFluwTH6RcGsJj7A+DJR4T059HpfyZeiR9nZzU7a1ZK0t7UaK0nFxehr Ao32jgkbAcFT9VVXdpWvvPGXGg/DMSogGtN2U6bJEa6hLVRRBrK5tDm7Te0SVG7m1l59wWrwobiRa vU2kKi9iAgCJtYw/4XtA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qnI9B-00Ciuf-01; Mon, 02 Oct 2023 12:35:37 +0000 Received: from relay6-d.mail.gandi.net ([217.70.183.198]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qnI98-00CiuI-0A for linux-mtd@lists.infradead.org; Mon, 02 Oct 2023 12:35:35 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 023FAC000C; Mon, 2 Oct 2023 12:35:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1696250131; 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=nNMuGJL44gj1ZB3e/uIcPx32jrKTbp3WUjy5cGFxIrI=; b=UaYnoZbI9nCRnp+/H4oltdkSs70wxX+I01PxntZGZZYeYIJCrGKSNK5eg7y892Qh6Eolct 30aCRk5yz1i4cV5BBApon3dVHnya7+DDwsjYzfDsxW5UGL0Y38C3656zFcjExO3zNvfsKx XzBkxnFwIGfE3b8uN4lCuP0/OCwHinymBiscuCF3/vXjTyhyV+uWtatIj1ZJP/Zwx36rhD ONhPESCrNSzZruBIJtCyK73GNT1cY9eQmyP89tNSMqjw9DOx2cS3sclxSqwDmH9735hEsd oTriY9YKyORJbbr24sw1CqZEczeb6FagqrBM8fcpCtTsKynVd3umVkFdRi5PAw== Date: Mon, 2 Oct 2023 14:35:27 +0200 From: Miquel Raynal To: dregan@mail.com Cc: bcm-kernel-feedback-list@broadcom.com, linux-mtd@lists.infradead.org, f.fainelli@gmail.com, rafal@milecki.pl, joel.peshkin@broadcom.com, computersforpeace@gmail.com, dan.beygelman@broadcom.com, william.zhang@broadcom.com, frieder.schrempf@kontron.de, linux-kernel@vger.kernel.org, vigneshr@ti.com, richard@nod.at, bbrezillon@kernel.org, kdasu.kdev@gmail.com Subject: Re: [PATCH v2] mtd: rawnand: brcmnand: Initial exec_op implementation Message-ID: <20231002143527.4ccf254a@xps-13> In-Reply-To: References: <20230922162424.4a7b27ec@xps-13> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-GND-Sasl: miquel.raynal@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231002_053534_361357_A6175F26 X-CRM114-Status: GOOD ( 23.95 ) 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 SGkgRGF2aWQsCgpkcmVnYW5AbWFpbC5jb20gd3JvdGUgb24gU2F0LCAzMCBTZXAgMjAyMyAwMzo1 NzozNSArMDIwMDoKCj4gSW5pdGlhbCBleGVjX29wIGltcGxlbWVudGF0aW9uIGZvciBCcm9hZGNv bSBTVEIsIEJyb2FkYmFuZCBhbmQgaVByb2MgU29DCj4gVGhpcyBhZGRzIGV4ZWNfb3AgYW5kIHJl bW92ZXMgdGhlIGxlZ2FjeSBpbnRlcmZhY2UuCj4gCj4gU2lnbmVkLW9mZi1ieTogRGF2aWQgUmVn YW4gPGRyZWdhbkBtYWlsLmNvbT4KPiBSZXZpZXdlZC1ieTogV2lsbGlhbSBaaGFuZyA8d2lsbGlh bS56aGFuZ0Bicm9hZGNvbS5jb20+Cj4gCj4gLS0tCj4gCgouLi4KCj4gK3N0YXRpYyBpbnQgYnJj bW5hbmRfcGFyc2VyX2V4ZWNfbWF0Y2hlZF9vcChzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLAo+ICsJ CQkJCSBjb25zdCBzdHJ1Y3QgbmFuZF9zdWJvcCAqc3Vib3ApCj4gK3sKPiArCXN0cnVjdCBicmNt bmFuZF9ob3N0ICpob3N0ID0gbmFuZF9nZXRfY29udHJvbGxlcl9kYXRhKGNoaXApOwo+ICsJc3Ry dWN0IGJyY21uYW5kX2NvbnRyb2xsZXIgKmN0cmwgPSBob3N0LT5jdHJsOwo+ICsJc3RydWN0IG10 ZF9pbmZvICptdGQgPSBuYW5kX3RvX210ZChjaGlwKTsKPiArCWNvbnN0IHN0cnVjdCBuYW5kX29w X2luc3RyICppbnN0ciA9ICZzdWJvcC0+aW5zdHJzWzBdOwo+ICsJdW5zaWduZWQgaW50IGk7Cj4g KwlpbnQgcmV0ID0gMDsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgc3Vib3AtPm5pbnN0cnM7IGkr Kykgewo+ICsJCWluc3RyID0gJnN1Ym9wLT5pbnN0cnNbaV07Cj4gKwo+ICsJCWlmICgoaW5zdHIt PnR5cGUgPT0gTkFORF9PUF9DTURfSU5TVFIpICYmCj4gKwkJCShpbnN0ci0+Y3R4LmNtZC5vcGNv ZGUgPT0gTkFORF9DTURfU1RBVFVTKSkKPiArCQkJY3RybC0+c3RhdHVzX2NtZCA9IDE7Cj4gKwkJ ZWxzZSBpZiAoY3RybC0+c3RhdHVzX2NtZCAmJiAoaW5zdHItPnR5cGUgPT0gTkFORF9PUF9EQVRB X0lOX0lOU1RSKSkgewo+ICsJCQkvKgo+ICsJCQkgKiBuZWVkIHRvIGZha2UgdGhlIG5hbmQgZGV2 aWNlIHdyaXRlIHByb3RlY3QgYmVjYXVzZSBuYW5kX2Jhc2UgZG9lcyBhCj4gKwkJCSAqIG5hbmRf Y2hlY2tfd3Agd2hpY2ggY2FsbHMgbmFuZF9zdGF0dXNfb3AgTkFORF9DTURfU1RBVFVTIHdoaWNo IGNoZWNrcwo+ICsJCQkgKiB0aGF0IHRoZSBuYW5kIGlzIG5vdCB3cml0ZSBwcm90ZWN0ZWQgYmVm b3JlIGFuIG9wZXJhdGlvbiBzdGFydHMuCj4gKwkJCSAqIFRoZSBwcm9ibGVtIHdpdGggdGhpcyBp cyBpdCdzIGRvbmUgb3V0c2lkZSBleGVjX29wIHNvIHRoZSBuYW5kIGlzCj4gKwkJCSAqIHdyaXRl IHByb3RlY3RlZCBhbmQgdGhpcyBjaGVjayB3aWxsIGZhaWwgdW50aWwgdGhlIHdyaXRlIG9yIGVy YXNlCj4gKwkJCSAqIG9yIHdyaXRlIGJhY2sgb3BlcmF0aW9uIGFjdHVhbGx5IGhhcHBlbnMgd2hl cmUgd2UgdHVybiBvZmYgd3AuCj4gKwkJCSAqLwo+ICsJCQl1OCAqaW47Cj4gKwo+ICsJCQljdHJs LT5zdGF0dXNfY21kID0gMDsKPiArCj4gKwkJCWluc3RyID0gJnN1Ym9wLT5pbnN0cnNbaV07Cj4g KwkJCWluID0gaW5zdHItPmN0eC5kYXRhLmJ1Zi5pbjsKPiArCQkJaW5bMF0gPSBicmNtbmFuZF9z dGF0dXMoaG9zdCkgfCBOQU5EX1NUQVRVU19XUDsgLyogaGlkZSBXUCBzdGF0dXMgKi8KCkkgZG9u J3QgdW5kZXJzdGFuZCB3aHkgeW91IGFyZSBmYWtpbmcgdGhlIFdQIGJpdC4gSWYgaXQncyBzZXQs CmJyY21uYW5kX3N0YXR1cygpIHNob3VsZCByZXR1cm4gaXQgYW5kIHlvdSBzaG91bGQgbm90IGNh cmUgYWJvdXQgaXQuIElmCml0J3Mgbm90IGhvd2V2ZXIsIGNhbiB5b3UgcGxlYXNlIGdpdmUgbWUg dGhlIHBhdGggdXNlZCB3aGVuIHdlIGhhdmUKdGhpcyBpc3N1ZT8gRWl0aGVyIHdlIG5lZWQgdG8g bW9kaWZ5IHRoZSBjb3JlIG9yIHdlIG5lZWQgdG8gcHJvdmlkZQphZGRpdGlvbmFsIGhlbHBlcnMg aW4gdGhpcyBkcml2ZXIgdG8gY2lyY3VtdmVudCB0aGUgZmF1bHR5IHBhdGguCgo+ICsJCX0gZWxz ZSBpZiAoaW5zdHItPnR5cGUgPT0gTkFORF9PUF9XQUlUUkRZX0lOU1RSKSB7Cj4gKwkJCXJldCA9 IGJjbW5hbmRfY3RybF9wb2xsX3N0YXR1cyhob3N0LCBOQU5EX0NUUkxfUkRZLCBOQU5EX0NUUkxf UkRZLCAwKTsKPiArCQkJaWYgKGN0cmwtPndwX2NtZCkgewo+ICsJCQkJY3RybC0+d3BfY21kID0g MDsKPiArCQkJCWJyY21uYW5kX3dwKG10ZCwgMSk7CgpUaGlzIGlkZWFsbHkgc2hvdWxkIGRpc2Fw cGVhci4KCj4gKwkJCX0KPiArCQl9IGVsc2UgeyAvKiBvdGhlcndpc2UgcGFzcyB0byBsb3cgbGV2 ZWwgaW1wbGVtZW50YXRpb24gKi8KPiArCQkJaWYgKChpbnN0ci0+dHlwZSA9PSBOQU5EX09QX0NN RF9JTlNUUikgJiYKPiArCQkJCShpbnN0ci0+Y3R4LmNtZC5vcGNvZGUgPT0gTkFORF9DTURfUkVT RVQpKSB7Cj4gKwkJCQlicmNtbmFuZF9zdGF0dXMoaG9zdCk7Cj4gKwkJCQljdHJsLT5zdGF0dXNf Y21kID0gMDsKPiArCQkJCWN0cmwtPndwX2NtZCA9IDA7Cj4gKwkJCQlicmNtbmFuZF93cChtdGQs IDEpOwoKU2FtZQoKPiArCQkJfQo+ICsKPiArCQkJaWYgKChpbnN0ci0+dHlwZSA9PSBOQU5EX09Q X0NNRF9JTlNUUikgJiYKPiArCQkJCSgoaW5zdHItPmN0eC5jbWQub3Bjb2RlID09IE5BTkRfQ01E X0VSQVNFMSkgfHwKPiArCQkJCShpbnN0ci0+Y3R4LmNtZC5vcGNvZGUgPT0gTkFORF9DTURfU0VR SU4pKSkgewo+ICsJCQkJYnJjbW5hbmRfd3AobXRkLCAwKTsKPiArCQkJCWN0cmwtPndwX2NtZCA9 IDE7CgpTYW1lCgo+ICsJCQl9Cj4gKwo+ICsJCQlyZXQgPSBicmNtbmFuZF9leGVjX2luc3RyKGhv c3QsIGluc3RyLCBpID09IChzdWJvcC0+bmluc3RycyAtIDEpKTsKPiArCQl9Cj4gKwl9Cj4gKwo+ ICsJcmV0dXJuIHJldDsKPiArfQoKCgpUaGFua3MsCk1pcXXDqGwKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlzY3Vzc2lv biBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1tdGQvCg== 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 2B480E784AC for ; Mon, 2 Oct 2023 12:35:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237061AbjJBMfi (ORCPT ); Mon, 2 Oct 2023 08:35:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38582 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236623AbjJBMfg (ORCPT ); Mon, 2 Oct 2023 08:35:36 -0400 Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [217.70.183.198]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B38B383 for ; Mon, 2 Oct 2023 05:35:32 -0700 (PDT) Received: by mail.gandi.net (Postfix) with ESMTPSA id 023FAC000C; Mon, 2 Oct 2023 12:35:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1696250131; 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=nNMuGJL44gj1ZB3e/uIcPx32jrKTbp3WUjy5cGFxIrI=; b=UaYnoZbI9nCRnp+/H4oltdkSs70wxX+I01PxntZGZZYeYIJCrGKSNK5eg7y892Qh6Eolct 30aCRk5yz1i4cV5BBApon3dVHnya7+DDwsjYzfDsxW5UGL0Y38C3656zFcjExO3zNvfsKx XzBkxnFwIGfE3b8uN4lCuP0/OCwHinymBiscuCF3/vXjTyhyV+uWtatIj1ZJP/Zwx36rhD ONhPESCrNSzZruBIJtCyK73GNT1cY9eQmyP89tNSMqjw9DOx2cS3sclxSqwDmH9735hEsd oTriY9YKyORJbbr24sw1CqZEczeb6FagqrBM8fcpCtTsKynVd3umVkFdRi5PAw== Date: Mon, 2 Oct 2023 14:35:27 +0200 From: Miquel Raynal To: dregan@mail.com Cc: bcm-kernel-feedback-list@broadcom.com, linux-mtd@lists.infradead.org, f.fainelli@gmail.com, rafal@milecki.pl, joel.peshkin@broadcom.com, computersforpeace@gmail.com, dan.beygelman@broadcom.com, william.zhang@broadcom.com, frieder.schrempf@kontron.de, linux-kernel@vger.kernel.org, vigneshr@ti.com, richard@nod.at, bbrezillon@kernel.org, kdasu.kdev@gmail.com Subject: Re: [PATCH v2] mtd: rawnand: brcmnand: Initial exec_op implementation Message-ID: <20231002143527.4ccf254a@xps-13> In-Reply-To: References: <20230922162424.4a7b27ec@xps-13> 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 X-GND-Sasl: miquel.raynal@bootlin.com Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi David, dregan@mail.com wrote on Sat, 30 Sep 2023 03:57:35 +0200: > Initial exec_op implementation for Broadcom STB, Broadband and iProc SoC > This adds exec_op and removes the legacy interface. >=20 > Signed-off-by: David Regan > Reviewed-by: William Zhang >=20 > --- >=20 ... > +static int brcmnand_parser_exec_matched_op(struct nand_chip *chip, > + const struct nand_subop *subop) > +{ > + struct brcmnand_host *host =3D nand_get_controller_data(chip); > + struct brcmnand_controller *ctrl =3D host->ctrl; > + struct mtd_info *mtd =3D nand_to_mtd(chip); > + const struct nand_op_instr *instr =3D &subop->instrs[0]; > + unsigned int i; > + int ret =3D 0; > + > + for (i =3D 0; i < subop->ninstrs; i++) { > + instr =3D &subop->instrs[i]; > + > + if ((instr->type =3D=3D NAND_OP_CMD_INSTR) && > + (instr->ctx.cmd.opcode =3D=3D NAND_CMD_STATUS)) > + ctrl->status_cmd =3D 1; > + else if (ctrl->status_cmd && (instr->type =3D=3D NAND_OP_DATA_IN_INSTR= )) { > + /* > + * need to fake the nand device write protect because nand_base does a > + * nand_check_wp which calls nand_status_op NAND_CMD_STATUS which che= cks > + * that the nand is not write protected before an operation starts. > + * The problem with this is it's done outside exec_op so the nand is > + * write protected and this check will fail until the write or erase > + * or write back operation actually happens where we turn off wp. > + */ > + u8 *in; > + > + ctrl->status_cmd =3D 0; > + > + instr =3D &subop->instrs[i]; > + in =3D instr->ctx.data.buf.in; > + in[0] =3D brcmnand_status(host) | NAND_STATUS_WP; /* hide WP status */ I don't understand why you are faking the WP bit. If it's set, brcmnand_status() should return it and you should not care about it. If it's not however, can you please give me the path used when we have this issue? Either we need to modify the core or we need to provide additional helpers in this driver to circumvent the faulty path. > + } else if (instr->type =3D=3D NAND_OP_WAITRDY_INSTR) { > + ret =3D bcmnand_ctrl_poll_status(host, NAND_CTRL_RDY, NAND_CTRL_RDY, = 0); > + if (ctrl->wp_cmd) { > + ctrl->wp_cmd =3D 0; > + brcmnand_wp(mtd, 1); This ideally should disappear. > + } > + } else { /* otherwise pass to low level implementation */ > + if ((instr->type =3D=3D NAND_OP_CMD_INSTR) && > + (instr->ctx.cmd.opcode =3D=3D NAND_CMD_RESET)) { > + brcmnand_status(host); > + ctrl->status_cmd =3D 0; > + ctrl->wp_cmd =3D 0; > + brcmnand_wp(mtd, 1); Same > + } > + > + if ((instr->type =3D=3D NAND_OP_CMD_INSTR) && > + ((instr->ctx.cmd.opcode =3D=3D NAND_CMD_ERASE1) || > + (instr->ctx.cmd.opcode =3D=3D NAND_CMD_SEQIN))) { > + brcmnand_wp(mtd, 0); > + ctrl->wp_cmd =3D 1; Same > + } > + > + ret =3D brcmnand_exec_instr(host, instr, i =3D=3D (subop->ninstrs - 1= )); > + } > + } > + > + return ret; > +} Thanks, Miqu=C3=A8l