From nobody Thu Oct 2 00:46:15 2025 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 0366B242D88 for ; Sat, 27 Sep 2025 08:10:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758960654; cv=none; b=nLZ4HMUJEK0dq4sp9jQ9gpnSUZnj87KjSFPU14zNhHia6WcbEhcrehU7StiWXsdOHGEovRhL80Ty42Y5z9qncECOUCxuhwoRD4+4EboY5pWLyD6J4wwpqFNDJLXm3qNgkjQb3X29iZ1wjyY5BGG5634WkHWWeO3rWez8g0BqZD0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758960654; c=relaxed/simple; bh=ASAoL0wewSEbqehJdlhPMOC6Yab6jICgC6v+92dmYUE=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=gFcHzDouvdRRMsAr1DNplj6M/XSfWPE00Me4dZVjaISdmJ6N5k3jdHoYGaABZPZHUbh2BpNcuembRrIOSxkE707uVmZ8BALnd96UC9L5XUhZkpKQ/MPJ0DjTO1LgQOtAWyqpaqM0wLvgZiMRTC+LqonY+DIBmOZmSabeT/L4I2U= 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=KBWZEy5n; arc=none smtp.client-ip=209.85.166.51 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="KBWZEy5n" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-8ed2c10d61eso107568839f.1 for ; Sat, 27 Sep 2025 01:10:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1758960652; x=1759565452; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=lQUetzEQMP4LAhqW9E/G21GQbOBqRaYhD1bJwLd7FZQ=; b=KBWZEy5nzzZ2sC3Gzd8pDpzBD1RWGPXxynpzUUTF1HbtCZDexGifo7xUMidYpIKPT/ 5cauUbBkMsVtQI0Z4irm8Hb6oGmoUJvEN9hv+hozcmUH3ypnO6jWkcuFkp26qO6i+HN9 j2gWsc3wovepv8w1ySK6XAgbZCj66lS9LDXapyNsN5S/VponoqcT10SwSoSYmBEteO8x hhad31Ed+fvHKOZIHOVR8DJJfDaxOSeVdV5GA0Pcig6d/flExbJ9kTv8J6v/FflgXJbf W5ITKxBsdGY4W8TNmP8AJxylu4BiFWtGn4TO0eG+FzKgjzOu2TktfcKmq3jBvy/ZWs9W mr9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758960652; x=1759565452; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=lQUetzEQMP4LAhqW9E/G21GQbOBqRaYhD1bJwLd7FZQ=; b=b6g6XtqX8EB5P8mMCj/9WM/sGXTP5pSTX1yxf6dM3Qg7R3pV+vApomqqH7gEPfJSKi NK2oxTADDkONVAj0qtOomWe0oafhdxihtx8pyk/0TXoI/PGJ0bfJK8AhXFDR151Gvdd0 HWEuhutJpZIFYOAO/Po00wL134zEEyWJuiUwa0kS4TESJK+yggCNKohwtM8IgKhQ6CXQ VgiAhhQbYsPozW+3KLO0Y+1yPiHKn7orJJ4bMwBVXQS6suM9iglvC+f4Q5PdWvlhlXBg ln31xLf9HT7QSdi6fZMk4+1ee9h2+jiZQkVi63OQLY5QVdzNv315+7LDR2YdvBTu/wjP Z2Cg== X-Forwarded-Encrypted: i=1; AJvYcCVzWO6GIIO7OshBFclkpF88fyrCNtSHELVdZAIDAHLJuW30sEUVID1D9pwJiHHnpJnZvIwyXm9HlRRNDic=@vger.kernel.org X-Gm-Message-State: AOJu0Yy2VL+UqYV6Iq54n/S+T2U5QFA6j33mFe0uusGB1yvB72kYrBrS CtIImE5qUX/SkYwShAumDHB9O07pzGa5H3vP58tMYGHAhX0smcQX6LEC X-Gm-Gg: ASbGncssAaBI47JvwylA4ZcAdcYNbpOczMk6d1eW1oGxY+PxjUxgcu7NVaIHh5eInWP FO1gocUQ4whTKL7mMD+JT6jQnunUIcpfn++itstGodMJ6n1FZxglQ67XKMgZJlgYatMxcYTA6KU 0ZKJuZ6RO4Hvung8fj7Ccx8rKqwxnUgb+rlIaMpyFAJVpHICLixK2Ql32ddOjglv3kkdWgajpS4 SvWONihyz7CQRo7RQ9Xp9meTRMybJ4EORIQHbRwZUhulaNzmpvKXOZWEtMLUpl4EBO8oxw6p/ql jVJjFnM0XJCvHiyNjTsQ4C8qWuzHnwszocCwjEemD+ZkdtzjoB2RdNNqTgQp1+1p6djAL/M+dzh d6DyABKTX3VSN7/OZevGn5XfV94sOAQdITfXmAg== X-Google-Smtp-Source: AGHT+IH0IVO5vzLeRO4V6lWOrPlzDHkhJS4CVNTknktDnTu3FcBbSqcFVPYeFHLy8GA/XY52U+1p6w== X-Received: by 2002:a05:6e02:1a27:b0:426:5a34:77ec with SMTP id e9e14a558f8ab-4265a347968mr138432705ab.11.1758960651856; Sat, 27 Sep 2025 01:10:51 -0700 (PDT) Received: from orangepi5-plus.lan ([144.24.43.60]) by smtp.gmail.com with ESMTPSA id e9e14a558f8ab-4282de12fc8sm10852155ab.3.2025.09.27.01.10.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Sep 2025 01:10:51 -0700 (PDT) From: Furong Xu <0x1207@gmail.com> To: netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Maxime Coquelin , Alexandre Torgue , xfr@outlook.com, Furong Xu <0x1207@gmail.com>, Simon Horman Subject: [PATCH net-next v2] net: stmmac: Convert open-coded register polling to helper macro Date: Sat, 27 Sep 2025 16:10:36 +0800 Message-ID: <20250927081036.10611-1-0x1207@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Drop the open-coded register polling routines. Use readl_poll_timeout_atomic() in atomic state. Also adjust the delay time to 10us which seems more reasonable. Tested on NXP i.MX8MP and ROCKCHIP RK3588 boards, the break condition was met right after the first polling, no delay involved at all. So the 10us delay should be long enough for most cases. Reviewed-by: Simon Horman Signed-off-by: Furong Xu <0x1207@gmail.com> --- V1 -> V2: fix code alignment, update commit message V1: https://lore.kernel.org/all/20250924152217.10749-1-0x1207@gmail.com/ --- .../ethernet/stmicro/stmmac/stmmac_hwtstamp.c | 28 ++++--------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c b/driver= s/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c index e2840fa241f2..bb110124f21e 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c @@ -135,7 +135,6 @@ static int init_systime(void __iomem *ioaddr, u32 sec, = u32 nsec) static int config_addend(void __iomem *ioaddr, u32 addend) { u32 value; - int limit; =20 writel(addend, ioaddr + PTP_TAR); /* issue command to update the addend value */ @@ -144,23 +143,15 @@ static int config_addend(void __iomem *ioaddr, u32 ad= dend) writel(value, ioaddr + PTP_TCR); =20 /* wait for present addend update to complete */ - limit =3D 10; - while (limit--) { - if (!(readl(ioaddr + PTP_TCR) & PTP_TCR_TSADDREG)) - break; - mdelay(10); - } - if (limit < 0) - return -EBUSY; - - return 0; + return readl_poll_timeout_atomic(ioaddr + PTP_TCR, value, + !(value & PTP_TCR_TSADDREG), + 10, 100000); } =20 static int adjust_systime(void __iomem *ioaddr, u32 sec, u32 nsec, int add_sub, int gmac4) { u32 value; - int limit; =20 if (add_sub) { /* If the new sec value needs to be subtracted with @@ -187,16 +178,9 @@ static int adjust_systime(void __iomem *ioaddr, u32 se= c, u32 nsec, writel(value, ioaddr + PTP_TCR); =20 /* wait for present system time adjust/update to complete */ - limit =3D 10; - while (limit--) { - if (!(readl(ioaddr + PTP_TCR) & PTP_TCR_TSUPDT)) - break; - mdelay(10); - } - if (limit < 0) - return -EBUSY; - - return 0; + return readl_poll_timeout_atomic(ioaddr + PTP_TCR, value, + !(value & PTP_TCR_TSUPDT), + 10, 100000); } =20 static void get_systime(void __iomem *ioaddr, u64 *systime) --=20 2.43.0