From nobody Sat Jul 25 17:36:02 2026 Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DFE5C42049B for ; Wed, 15 Jul 2026 12:52:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784119954; cv=none; b=ZnNytq2iWqUbXT5Incm3N3e0IYP5rTw51/ThcfVLaDgYToqy1xSGrI5Da8a8guB2Gtiw/toRiT9BtLdpaPbJyxxCtSwiIgCyNbUtyU79vUwVBfER6lLbK8qUunH6KIPGIZvCT9dl5WjtefTmLW22GTZse8ytNvOPr21rApyusis= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784119954; c=relaxed/simple; bh=jC5K1NA2Qi20lryJrip427XM3Y5XYrk3Gmi9jleDf2o=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=ZNVHP8q4Cbt9cUOjqALSlAkwUtt8XTyGkcd0CJDaAoBPIazo8uenSvEhuwxmmtbR3ir2h3SQzA3nAKJ4i+ZByq0F2YYl/bXvgyTrUVe5dL/7ZLyo7jcfMffF37ohf9pJtN5Jlz4TE+HcdMKDdpen4fb8GZSs7UPJMYgW/RdXS7c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=En+Y2EFt; arc=none smtp.client-ip=209.85.216.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="En+Y2EFt" Received: by mail-pj1-f44.google.com with SMTP id 98e67ed59e1d1-38dfe910e9dso2803096a91.3 for ; Wed, 15 Jul 2026 05:52:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784119951; x=1784724751; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:message-id:date :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to :content-type; bh=RWcdIs2ci+zPyHZ1UgU5XfiAjrJantGzHWpSqVd+iVQ=; b=En+Y2EFtsEf4oRoe457udRunu//giD0BhNJ63jtqG8mtkEz0xSfJ+eBWu0MSnlb+FJ 56wS79Wg+PUiZa1yXmrkFpECOGnVCyeQYveOvn4HX22mWzF06xFjvsjPNYUXKJYyWR5r P1hYGwAf75dQKsn5zJzLiTliSPSDqk+4llpx2iq9UVDATRt3QooqGY++PhXV4ScVr+YD X+n+ghnY6VShKZ+4qPiSvjpLBpCNTj1oQnQjqexmZrsarfAc/pmXqStF0bBHixJmuuQg DPqWyJNT5+H+s+Lt4JRQ8sd4V/YNJEjM3Rmf3QUCKetzfCsc8YRWu6UWvhXNab/Bx+d2 rvvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784119951; x=1784724751; h=content-transfer-encoding:content-type:mime-version:message-id:date :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to:content-type; bh=RWcdIs2ci+zPyHZ1UgU5XfiAjrJantGzHWpSqVd+iVQ=; b=J2Yrblf99G1d/GP8bq87ZcCNSOlEhn/sAOcqAqJ18Q7szB45cK0pjZwpeEqZGPICbF sD/UxhABlFc0M8fCGSfKLUSj8ZF0tKWF5yLyeTwdXjU7n/YtsHjk99JC4szDhlORsJvh TI8H8NDRLqvuklSfpvDMYwnWZ6HLGlwmtHgCqZ/MEJE7PLAE2AeUPddQSZVsmQHSY+P4 FdR0FXgFGnL7tNhLsd7eh6cgz27AcqIicy/ByELExkZBlNxWIOS93ZuqNo/ICmjn/6op P+PQgwmA5KID6beuKNmdnZs0TkGWGbSjuTxt9Hr7KWquPSm5F2HWfydj1pl+7NGJvRiN wDmQ== X-Forwarded-Encrypted: i=1; AHgh+RquS2/NwNya26atu8HHkefeEPRQJlBINSxw4lAiJTRxES86V2L880Ksdpf+3Q8mFegIH5AaBz2B0JOWqSk=@vger.kernel.org X-Gm-Message-State: AOJu0YzrByPGwXJ1LyJ8Z1qW/uejSU3EBX1JEDLWhr2DnLOYwKP/6ipp LorE4BypoX8rlDHgWtzaUbBXxNqPmTrOf7Rt1eU55WjZyDEyYwsu8AfL X-Gm-Gg: AfdE7cl/HMO0aB4Ihg0m0R3AyW3eUhcuOP5gCOiAQBHnBS2LyZA0EzdgPVJIvhcXpek 3jjhq24+TFEUyeVNBWsAgqUBUBcSc3w+ZHPbFFnBYjacvatTKEqGAkQl3fjuzPGFDNLAbJmGXR8 pwBpNpjoJqSlygkQerE6+modDgKwijQ4DqcEdpA/xf4NsMpdPnJP1lX2odUA+TpbuhQdC3XY6cS FNKimOpCi85mAA5+nGBCIlljOLekcshmDvqt0lcqWDbJhqg94EIBMSGWTQ6H9g8yCqmlr7Bs07W tmKf6I0GgNy+kse+X+2CQ1eRjm6/H6iBzQkTE9xtxG/4EfcFsa7w88mIGaKmLaOy1z2Xq5W+O1N FFqGq8zFHEgsMVyIn+ZSic2/bwu9xzFjPkWyH6mI98nv+2Z1EV6n+RGqowAZxPIsBCTf/H9H0qQ 3xQ6VGsMKT7WdGFDTiORRiKkqFVdN6V8u2pRTZx1Q= X-Received: by 2002:a17:90b:4e8f:b0:38d:e658:5959 with SMTP id 98e67ed59e1d1-38e17d96412mr7448999a91.5.1784119951167; Wed, 15 Jul 2026 05:52:31 -0700 (PDT) Received: from MacBookPro.lan ([2408:8256:3310:8e00:f02b:c960:26d3:2b22]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-38e172cba1fsm3036140a91.5.2026.07.15.05.52.27 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 15 Jul 2026 05:52:30 -0700 (PDT) From: Zhengyu He To: Mark Brown , Yixun Lan Cc: wefu@redhat.com, Zhengyu He , linux-spi@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org, Peixin Xie Subject: [PATCH] spi: spacemit: Correct TX FIFO slot calculation Date: Wed, 15 Jul 2026 20:52:15 +0800 Message-ID: <20260715-k1-spi-tx-fifo-fix-v1-for-next-v1-1-02024223b08a@gmail.com> X-Mailer: git-send-email 2.50.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Change-ID: 20260715-k1-spi-tx-fifo-fix-v1-for-next-43cdd0d9213f X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1999; i=hezhy472013@gmail.com; h=from:subject:message-id; bh=jC5K1NA2Qi20lryJrip427XM3Y5XYrk3Gmi9jleDf2o=; b=owEBbQKS/ZANAwAKAc32nDaAuA3YAcsmYgBqV31qlRwpRvEkyvTUy4uncIOL9TlEAlgjz+Jsp RUGLads05eJAjMEAAEKAB0WIQS9XD2kxy1NmfC2u/XN9pw2gLgN2AUCald9agAKCRDN9pw2gLgN 2BgLEACEiMAXQf5d7wzj918XbzCyvgH3JojkX5J45Fs6Qk5AP0sNvlewOxIYinhm1gTStnxa9Ta LB+21b+WXPxgVfgGrCnDfxpK/rR7SLZkmgiJNmpXhebrKDHY/2DMvzafZu37EiihZLNqX/dRhTa EpZgLe0zfD3pn6czo561TLMaV9SQDzNLLitsnJIfpKtO5FrRq4ChBsUnYNp8CQpk5DMXEaYRbVY VNz6e05pjjA8Q0YDd3yhVMAV1KVSgclq81Q+qERowiEDzKDo4oQDxS53et25Fxtj4UkzXwx11t0 TCAS9FPA30049y1aqfKDMs9d3czb0X8GOj3oLBVPkc9CEX1v7ae32kwjCshr27whNfjFmEGmbRb PqzWfjtJ4cWUDJ8oCaOtellab5Eo6PhQ9tlyG1R3W/V55IHTGu9uq7zMKcDMYA8kK8I2js/OR/1 PaXRfvSdg5kBgkjJ4KRAn3bpyW5s1HlrWOVYzA/XOogRS54EU3UtygZ0ymdFIJ3U/soev51RthE cuErPy7pM9cbzy1lFw4/Qisy00azAyJn3mMqsK6knbU/X63chY3FChgNTo5jTa5ptFvSAMGt3Um yysNS34cLkUBmFq/IVKS320JKIEoANLVZ1c6n2VjDW19ineJEXurLCk5HY8pwRhMIH5lhE8CQJL bg0AgFEW2lf4GaA== X-Developer-Key: i=hezhy472013@gmail.com; a=openpgp; fpr=26CA97B1A229C229822278F254AF850165158959 Content-Transfer-Encoding: quoted-printable In k1_spi_write, the count variable is intended to represent the number of slots available for writing into the TX FIFO. The current implementation uses FIELD_GET(SSP_STATUS_TFL, val) in an attempt to determine this count, but this register field returns the number of occupied slots, not the available space. The previous implementation attempted to handle this via a ternary operator (? : K1_SPI_FIFO_SIZE), which incorrectly assumed that the hardware returned 0 when the FIFO was empty (meaning all slots were available), leading to incorrect accounting of the buffer space. Fix this by calculating the free slots: count =3D K1_SPI_FIFO_SIZE - FIELD_GET(SSP_STATUS_TFL, val); The associated comment has been updated to reflect the logic change: The old comment reflected an incorrect assumption about the hardware behavior, which was the root cause of the previous buggy logic. This patch accurately and concisely describes the purpose of the new calculation. Signed-off-by: Peixin Xie Signed-off-by: Zhengyu He --- drivers/spi/spi-spacemit-k1.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi-spacemit-k1.c b/drivers/spi/spi-spacemit-k1.c index 215fe66d27b4..0faf7ffed676 100644 --- a/drivers/spi/spi-spacemit-k1.c +++ b/drivers/spi/spi-spacemit-k1.c @@ -494,8 +494,8 @@ static bool k1_spi_write(struct k1_spi_driver_data *drv= _data, u32 val) { unsigned int count; =20 - /* Get the number of open slots in the FIFO; zero means all */ - count =3D FIELD_GET(SSP_STATUS_TFL, val) ? : K1_SPI_FIFO_SIZE; + /* Get the number of free slots in the FIFO */ + count =3D K1_SPI_FIFO_SIZE - FIELD_GET(SSP_STATUS_TFL, val); =20 /* * Limit how much we try to send at a time, to reduce the --- base-commit: 51ed53630915c9cc290036fe4f430849e23bbf8e change-id: 20260715-k1-spi-tx-fifo-fix-v1-for-next-43cdd0d9213f Best regards, --=20 Zhengyu He