Received: by 2002:a5d:925a:0:0:0:0:0 with SMTP id e26csp274149iol; Sat, 11 Jun 2022 04:04:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxUDIRErH1sYWZX50sWl2HqoGoU2uJRc5JjT2mQA6/LxBE5VF8oirHyYzz8aze/4TZZ6M4o X-Received: by 2002:a17:906:14d5:b0:711:c55a:998 with SMTP id y21-20020a17090614d500b00711c55a0998mr30416744ejc.708.1654945484752; Sat, 11 Jun 2022 04:04:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654945484; cv=none; d=google.com; s=arc-20160816; b=NDEcuMhlI6h42XzYcSL15YqUHJh61Zn668jp05a+BC75J9alrGG6Zd8Ztk1qeVQrLz xmCZ+kEdLWBTseMbN+ijyAYBX5qJ6SB8rMImpcqWYrXxf6f4MvKCvQjrBz99Lrpwbip0 mGvmzaL4wA+6gha0+aT7RjtJCT5m3jifu7uBbmOKhEmXEP3oolItV3/GnwJM/LcB7Bi4 uvg9PeMsR4Oy5OPAYT6FpVvApMwMtxj1oSLz0hoZ3ne8Yxk5q2Y8AjcD+aPrTQQEA6D8 9wtDjYIKIlNIsxveKWBO842Xv+I++ntXwDMq/Legdhu30lXsSvNGgtL+fIcHiOs7ypl6 Lk4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=m6Q8lgOQgR8fwW8aH0ekpb6Nf4VUsLhhIbCBFPPtF18=; b=dGRtgUlwdio87amkAUpuTWDSj+VOHvEMMpSiqCp/9Iw0U3nptoDAd3xgYB9IHUP8rk 8FkJPyB8N3CGDdNc8BZsRWjV0p6xlY6/Z9CVKQlUkG2n852ohciFUg05Q+Abgq7CT8Xb 1Cms2TizIF36RAX/Ty/CczBVtP68/Bt1lp/JDwAJDb9CAIQNe88Tozz5li2/+vqeDqP+ StnrX3oQE9dotUP13UNSVnIz6FeF7sfJRgiFcpINptaIt02NCdWQlfYbnFKWc0ampT5D +Db4yD53dzA66gI4U5EVsw7zXrHovfRPeLYIeYWJWvR1qEZS6fswVcTtOmf30UlHT+iy rsKg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b7-20020a056402278700b0042ddc352f85si1927238ede.107.2022.06.11.04.04.20; Sat, 11 Jun 2022 04:04:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229708AbiFKKjr (ORCPT + 99 others); Sat, 11 Jun 2022 06:39:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60576 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230176AbiFKKjq (ORCPT ); Sat, 11 Jun 2022 06:39:46 -0400 Received: from gandalf.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1B60827FCA; Sat, 11 Jun 2022 03:39:45 -0700 (PDT) Received: from gandalf.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by gandalf.ozlabs.org (Postfix) with ESMTP id 4LKvTq5Txzz4xXh; Sat, 11 Jun 2022 20:39:43 +1000 (AEST) Received: from authenticated.ozlabs.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.ozlabs.org (Postfix) with ESMTPSA id 4LKvTg4kn6z4xXg; Sat, 11 Jun 2022 20:39:35 +1000 (AEST) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: linux-spi@vger.kernel.org Cc: Mark Brown , Pratyush Yadav , linux-aspeed@lists.ozlabs.org, openbmc@lists.ozlabs.org, Joel Stanley , Andrew Jeffery , Chin-Ting Kuo , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Ian Woloschin Subject: [PATCH] spi: aspeed: Fix division by zero Date: Sat, 11 Jun 2022 12:39:29 +0200 Message-Id: <20220611103929.1484062-1-clg@kaod.org> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When using the normal read operation for data transfers, the dummy bus width is zero. In that case, they are no dummy bytes to transfer and setting the dummy field in the controller register becomes useless. Issue was found on a custom "Bifrost" board with a AST2500 SoC and using a MX25L51245GMI-08G SPI Flash. Cc: Chin-Ting Kuo Reported-by: Ian Woloschin Fixes: 54613fc6659b ("spi: aspeed: Add support for direct mapping") Signed-off-by: Cédric Le Goater --- drivers/spi/spi-aspeed-smc.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-aspeed-smc.c b/drivers/spi/spi-aspeed-smc.c index 496f3e1e9079..3e891bf22470 100644 --- a/drivers/spi/spi-aspeed-smc.c +++ b/drivers/spi/spi-aspeed-smc.c @@ -558,6 +558,14 @@ static int aspeed_spi_dirmap_create(struct spi_mem_dirmap_desc *desc) u32 ctl_val; int ret = 0; + dev_dbg(aspi->dev, + "CE%d %s dirmap [ 0x%.8llx - 0x%.8llx ] OP %#x mode:%d.%d.%d.%d naddr:%#x ndummies:%#x\n", + chip->cs, op->data.dir == SPI_MEM_DATA_IN ? "read" : "write", + desc->info.offset, desc->info.offset + desc->info.length, + op->cmd.opcode, op->cmd.buswidth, op->addr.buswidth, + op->dummy.buswidth, op->data.buswidth, + op->addr.nbytes, op->dummy.nbytes); + chip->clk_freq = desc->mem->spi->max_speed_hz; /* Only for reads */ @@ -574,9 +582,11 @@ static int aspeed_spi_dirmap_create(struct spi_mem_dirmap_desc *desc) ctl_val = readl(chip->ctl) & ~CTRL_IO_CMD_MASK; ctl_val |= aspeed_spi_get_io_mode(op) | op->cmd.opcode << CTRL_COMMAND_SHIFT | - CTRL_IO_DUMMY_SET(op->dummy.nbytes / op->dummy.buswidth) | CTRL_IO_MODE_READ; + if (op->dummy.nbytes) + ctl_val |= CTRL_IO_DUMMY_SET(op->dummy.nbytes / op->dummy.buswidth); + /* Tune 4BYTE address mode */ if (op->addr.nbytes) { u32 addr_mode = readl(aspi->regs + CE_CTRL_REG); -- 2.35.3