From patchwork Tue Sep 14 03:22:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 1527714 X-Patchwork-Delegate: jagannadh.teki@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=denx.de header.i=@denx.de header.a=rsa-sha256 header.s=phobos-20191101 header.b=DkcJhHMY; dkim=pass (2048-bit key) header.d=denx.de header.i=@denx.de header.a=rsa-sha256 header.s=phobos-20191101 header.b=HUMUnB5N; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4H7pZ90MNyz9sXS for ; Tue, 14 Sep 2021 13:22:40 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6AA918389E; Tue, 14 Sep 2021 05:22:37 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1631589758; bh=db51J92jXoPWANibj3Z4sUOCSZr3vEsfygVTTIOT5Tw=; h=From:To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From; b=DkcJhHMY06KelQ2pW+QRFdB0gHEuJ+TzVqicxhx99PxGeFtKNvH4j10l/mLun3Hzd IERz8tHC4Eu9XAy4gW9XaMi9xk9iXO7urYKPBqfuixOB+FDmBdH4FToFdhV3yvv/4f e4s62kFz6yZylpvatZ3d6/eQp0Ng3VTICYEvt2xkIZjeD2eeypP94/6j30PbDYOTDd X53ECaoeAbNq/JGqXPZ7S8ylIpcyu2NQm3WPPCCyNFrSrv+iDx2fwutP6DZrvxkbA/ 3lCx2IHwSWLc7KZA3BzeLxzMgSEPtN4cKOvOp39IbgCBZVSta5jhMNWyIeUqutIGhG 0eE6IXP9nlyrg== Received: from tr.lan (ip-89-176-112-137.net.upcbroadband.cz [89.176.112.137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: marex@denx.de) by phobos.denx.de (Postfix) with ESMTPSA id B843E8387E; Tue, 14 Sep 2021 05:22:34 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1631589755; bh=db51J92jXoPWANibj3Z4sUOCSZr3vEsfygVTTIOT5Tw=; h=From:To:Cc:Subject:Date:From; b=HUMUnB5NUQ1qoTvSai+5pmIZH7rPdky/IIs4Y8zSh2q7KKpBdBTHxjBeYr4LM1UhS 3EwRLX4GB5D+jnwNDh42dREln/F9IkEdsBmygq3lV/ttRKLyYiAukd1QbEssr/YrhQ 4/lyyt4UA3sW8Q2koauSOhLZdMnWZR0w6iAWqxcbVSlaq9Q2LDKYUVdCMlSNhcXjZ6 L3BbjowH++ZYC5bdmABNIza+v1My7Og4Y02S19R33+DUcp/QTEvUddHH8iOmMIgbPx yOmLiKuE6xQJUn2lJCKNAb3RTIHFZkU+G3CZ5BtZ/nFzXArgHgMP3KC32cxajuTacB ZHmSOF1zTf3fg== From: Marek Vasut To: u-boot@lists.denx.de Cc: Marek Vasut , Jagan Teki , Vignesh R , Pratyush Yadav Subject: [PATCH] mtd: cqspi: Wait for transfer completion Date: Tue, 14 Sep 2021 05:22:31 +0200 Message-Id: <20210914032231.273509-1-marex@denx.de> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean Wait for the read/write transfer finish bit get actually cleared, this does not happen immediately on at least SoCFPGA Gen5. Signed-off-by: Marek Vasut Cc: Jagan Teki Cc: Vignesh R Cc: Pratyush Yadav --- drivers/spi/cadence_qspi_apb.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/spi/cadence_qspi_apb.c b/drivers/spi/cadence_qspi_apb.c index 429ee335db6..2cdf4c9c9f8 100644 --- a/drivers/spi/cadence_qspi_apb.c +++ b/drivers/spi/cadence_qspi_apb.c @@ -858,6 +858,14 @@ cadence_qspi_apb_indirect_read_execute(struct cadence_spi_plat *plat, writel(CQSPI_REG_INDIRECTRD_DONE, plat->regbase + CQSPI_REG_INDIRECTRD); + /* Check indirect done status */ + ret = wait_for_bit_le32(plat->regbase + CQSPI_REG_INDIRECTRD, + CQSPI_REG_INDIRECTRD_DONE, 0, 10, 0); + if (ret) { + printf("Indirect read clear completion error (%i)\n", ret); + goto failrd; + } + return 0; failrd: @@ -1012,6 +1020,15 @@ cadence_qspi_apb_indirect_write_execute(struct cadence_spi_plat *plat, /* Clear indirect completion status */ writel(CQSPI_REG_INDIRECTWR_DONE, plat->regbase + CQSPI_REG_INDIRECTWR); + + /* Check indirect done status */ + ret = wait_for_bit_le32(plat->regbase + CQSPI_REG_INDIRECTWR, + CQSPI_REG_INDIRECTWR_DONE, 0, 10, 0); + if (ret) { + printf("Indirect write clear completion error (%i)\n", ret); + goto failwr; + } + if (bounce_buf) free(bounce_buf); return 0;