Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp1010185pxb; Thu, 26 Aug 2021 22:08:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJynvZVz3kdQWzzM/ChwKqn37puslRjIA6xJdc3b/yFnYcthS1AA+Iy4OuHshadXuofTk405 X-Received: by 2002:a17:907:1b1b:: with SMTP id mp27mr7876129ejc.538.1630040889133; Thu, 26 Aug 2021 22:08:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1630040889; cv=none; d=google.com; s=arc-20160816; b=fKW9T9CiVCWDPL0UE9cZj/dj8AW2mcAKGnWkU1hgbc0wx6VjYOqOj2tKn8cnuL+C+6 qwtPQFMf0/dYGg1dZ4twyLaKofgE2RGw7cjTHfPJK8YM/ckBS/RgNl80UNd0ejoMO6iF IgfLTmXy7VHODF7jdx2nNWD4zHj176c7j2CB6Pte/WG8ulP+rcEyrGx6PtWTxgCIHcRy uZVAPNTdSsL4lArNr9m4ki166QEgDt5flSU4qoy5t68XTQfFx4eengs7bZpGEis7Ecaq cindEIwQ+X6BMjY6hcz8VOq3MKiMsM1JPQM0Oy7lXcwb4xCLzfTUmFpMWuXelMwzHh6I gjHQ== 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:dkim-signature:from; bh=CCGe3l7vX7fN0xeU/nOfzM7VX7yQ/ff/as6wuEAK9KE=; b=rzNcauBu7RTT54ZEcs3OuCNDR7qC7EYJ2K5Pib5FKPMWPA6uQUnj9ya04PXBjKCCqm v79lNOiUwY/soFCCef9iSJ8MobNMK66yO9/Nm2Vj4ADCGaANSZgkBM7yxgfRb15HWtWv JieUozH1dL+OLSba0qtJngMqa4dv5OC8I4eGgwQGIY795pI5J3CPx/dTIgZnK9lMvk+t h/xtFueQQtDdXX1ULzU35hbNN44w+VvzDLHT66td4c+TsFLiUWvqYYgSUPA0sECxHPNs OELik2RNEsz3WG1BqJj5jGXSfaKACnsZ7IcidHaB85zxVPYiCMOBlXFLfVwRH6cofEOx 9o6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@manjaro.org header.s=2021 header.b=LjpDAzCi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=manjaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h16si5175442edz.437.2021.08.26.22.07.46; Thu, 26 Aug 2021 22:08:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@manjaro.org header.s=2021 header.b=LjpDAzCi; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=manjaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244214AbhH0FFO (ORCPT + 99 others); Fri, 27 Aug 2021 01:05:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32972 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229645AbhH0FFN (ORCPT ); Fri, 27 Aug 2021 01:05:13 -0400 X-Greylist: delayed 40649 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Thu, 26 Aug 2021 22:04:25 PDT Received: from mail.manjaro.org (mail.manjaro.org [IPv6:2a01:4f8:c0c:51f3::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 96B47C061757 for ; Thu, 26 Aug 2021 22:04:25 -0700 (PDT) From: Tobias Schramm DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=manjaro.org; s=2021; t=1630040663; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=CCGe3l7vX7fN0xeU/nOfzM7VX7yQ/ff/as6wuEAK9KE=; b=LjpDAzCiCaVwFIh4DfutFmxf9GqvTbwqKiyGitq+ye1tCOhDH8F9LPEGW0zDNbCvM07E9z eyRekW34kHW87+7Nt6LDGMn12tDeIYrVYd81jt9swNaHFBKgA/56hIJ3uiDDO5n0oZ+OIB F4riSGuyThtwOGfIFVKyOgKhA6UHtr3q0ZmjEeOjnZoKYUEnU3F7vK//V6UAwGGDprdv/f gIsukLETAWJNgwTx8rZcJuwCCa2mA7Jhm46pBPvqkeArOvMFmdX+Dib2l/dDm4qbpSwsNl maIlDaZjL2Yejpn1YVV68XA5HsE9hEwIAbOe/2IoyO/rFOBYyIfUbRm1ofFpUA== To: linux-spi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Mark Brown , Heiko Stuebner , Tobias Schramm Subject: [PATCH] spi: rockchip: handle zero length transfers without timing out Date: Fri, 27 Aug 2021 07:03:57 +0200 Message-Id: <20210827050357.165409-1-t.schramm@manjaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Authentication-Results: ORIGINATING; auth=pass smtp.auth=t.schramm@manjaro.org smtp.mailfrom=t.schramm@manjaro.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Previously zero length transfers submitted to the Rokchip SPI driver would time out in the SPI layer. This happens because the SPI peripheral does not trigger a transfer completion interrupt for zero length transfers. Fix that by completing zero length transfers immediately at start of transfer. Signed-off-by: Tobias Schramm --- drivers/spi/spi-rockchip.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/spi/spi-rockchip.c b/drivers/spi/spi-rockchip.c index 540861ca2ba3..553b6b9d0222 100644 --- a/drivers/spi/spi-rockchip.c +++ b/drivers/spi/spi-rockchip.c @@ -600,6 +600,12 @@ static int rockchip_spi_transfer_one( int ret; bool use_dma; + /* Zero length transfers won't trigger an interrupt on completion */ + if (!xfer->len) { + spi_finalize_current_transfer(ctlr); + return 1; + } + WARN_ON(readl_relaxed(rs->regs + ROCKCHIP_SPI_SSIENR) && (readl_relaxed(rs->regs + ROCKCHIP_SPI_SR) & SR_BUSY)); -- 2.33.0