From nobody Sat Feb 7 21:24:53 2026 Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) (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 EFD68238159 for ; Thu, 23 Oct 2025 20:53:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252785; cv=none; b=Z44K2SlCFHhmrkZ0HbDOobjonqhEj8NT6mI+ksSHxe/tJhnyN+UieuQdVGyofyINym9O0RfjauFVM6k/ojVEvf6UxYKuf51ryS1YhtMHuEtOw4WXNiY93K41iwWLqGu+ku8jcUsPOaLZkIz4wxaCZdJvJD8+a5Z/w4fJ6qPJT/U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252785; c=relaxed/simple; bh=vidsleBrv6UezkEOZ8wsCGdMuLsh7QY/kEWRWgsv0s8=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=WsKAZHKa+XIc3spFOHarldssZzJn7RoohNtR0p93kWle8x9qi4X7+JNs+QC0BklTMZm+WztHKxlxFI6g6zPXYliGmd2Bk45Qv0Eu1ftCGvYx4F7N6TbpN2yc7nQ3GMvK4x3Cs0kx7u4hktcSDv0H1+pdWTyuYocNBizVAAnIQsw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--willmcvicker.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=wEcCSZCx; arc=none smtp.client-ip=209.85.214.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--willmcvicker.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="wEcCSZCx" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-27ee41e062cso14171855ad.1 for ; Thu, 23 Oct 2025 13:53:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1761252783; x=1761857583; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=GTNDlcC66j9mF3WCrjdhKpeenuKBiHXH6QybTCxkPhc=; b=wEcCSZCxL4O4Dfzjq6WX3cbLcHNT+dSlInHAKQeJ9ZsWpeHE+MH6/UjJLzPGFG2ZH1 /Jne1MO4Y2aH3iS8TEX3nDtI998LY84x9mDxST5eVFZgAeNdofyxygnyveW4cS8AEYZz djIVNECKtRdvHvQF220kuxM7IQReqjmYyl1Dc3zZ7kSdugw0Ht2P/nsAFn8lPmF5R0fS 9jBxgV1TNzj2MV2X43VznPXM0IgbojXQ3bh6M9c7kVgGHys/rGHGMJecRZlDmvMuqkrG 86SCA+d/0kBnIad+egBtf1Tz6moMdUMOkYSi1Vx3SerI1RKQbd0ojhziEuClWDYwXgQ7 sddQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761252783; x=1761857583; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=GTNDlcC66j9mF3WCrjdhKpeenuKBiHXH6QybTCxkPhc=; b=hxtoJa8svtFGycUeuNfibgyCw/QaGKv5F7veodW5j3GJsFZPbMKO1mLl3AhI5kgFPE XcziLBLYSiof2YMfhO0z0dOBBmooVMdTCnRPbCmJ42NOTRtL/Tw9fFzUyCfwspeT6CtP hTDm7M04ws0ZfCXMICZWzKxqm2dngkKlSqNpMJveCyY4l6eVHbZ5uv+58hOurTkbLBwG hAPsHfqTkygoQjBk8Eqa/o+AIzcB3gPn0hiQD8pTBsBmsaImnaqzjSGLJtf3db8eZ3Nx /9ZFogRSb0Xf2KfNZ9s7j5YO+aAFriwAUX1xRj/vQezhVpZualbUsqzac4I7EfVjG5h+ IDTg== X-Forwarded-Encrypted: i=1; AJvYcCWOgYCz03VsHI4wsRZIZkySh2lV93+u6+CDSzI11aXTQcmnMbQirdbH3lqxEs4/W5YD5oK7JZxAKjB+Ht0=@vger.kernel.org X-Gm-Message-State: AOJu0YzMcSBbtl/lmJo2pzjFHc1nZCTYru0EAFsTU5I/ka7Wyhh35VK+ BG/HGastStMBMKz47vQiUcOcMLgm45UnAWrATcYVG6ntdfbsoz9dzIsr9T9oarqgIFoStkWXfQp KPxUQx3W1DpL/3VoaB23tysLE7z0c3g== X-Google-Smtp-Source: AGHT+IGZ8YUla39b6Z83W7WgxBQC43Iqqksh+N1ptF+fhn6Q2OrPyzQYe93BSwde0qjKCGwbnFHIHl9SHzvH0QPzRfM= X-Received: from plbjh6.prod.google.com ([2002:a17:903:3286:b0:290:b136:4f08]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:d60d:b0:270:e595:a440 with SMTP id d9443c01a7336-290c9cd4b48mr299453355ad.25.1761252783163; Thu, 23 Oct 2025 13:53:03 -0700 (PDT) Date: Thu, 23 Oct 2025 20:52:43 +0000 In-Reply-To: <20251023205257.2029526-1-willmcvicker@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251023205257.2029526-1-willmcvicker@google.com> X-Mailer: git-send-email 2.51.1.821.gb6fe4d2222-goog Message-ID: <20251023205257.2029526-2-willmcvicker@google.com> Subject: [PATCH v5 1/7] ARM: make register_current_timer_delay() accessible after init From: Will McVicker To: Russell King , Catalin Marinas , Will Deacon , Daniel Lezcano , Thomas Gleixner , Krzysztof Kozlowski , Alim Akhtar , Hosung Kim , Will McVicker , Ingo Molnar , Peter Griffin , Youngmin Nam Cc: Donghoon Yu , Rob Herring , Saravana Kannan , John Stultz , Tudor Ambarus , "=?UTF-8?q?Andr=C3=A9=20Draszik?=" , Conor Dooley , Marek Szyprowski , linux-samsung-soc@vger.kernel.org, kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The function register_current_timer_delay() is called from the exynos_mct clocksource driver at probe time. In the event that the exynos_mct driver is probed deferred or the platform manually unbinds and rebinds the driver we need this function available. So drop the __init tag. Signed-off-by: Will McVicker --- arch/arm/lib/delay.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/lib/delay.c b/arch/arm/lib/delay.c index b7fe84f68bf1..acfb87143f21 100644 --- a/arch/arm/lib/delay.c +++ b/arch/arm/lib/delay.c @@ -62,7 +62,7 @@ static void __timer_udelay(unsigned long usecs) __timer_const_udelay(usecs * UDELAY_MULT); } =20 -void __init register_current_timer_delay(const struct delay_timer *timer) +void register_current_timer_delay(const struct delay_timer *timer) { u32 new_mult, new_shift; u64 res; --=20 2.51.1.821.gb6fe4d2222-goog From nobody Sat Feb 7 21:24:53 2026 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) (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 5E73F23BF8F for ; Thu, 23 Oct 2025 20:53:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252788; cv=none; b=KySRukyfRfJLJY0E3TGctqRcyVDF2l6ZvNiDvcE0KnTJR9c7nJy04r+JL2ru4WPb/6Vpx2AJueyei3x0bTQNQ9rgtVZ0NLdO+PNRqjcMFotzsjNsHWPPXTRn0ZJHfxLOLk5IGYRJozEGm2AEEGpLmZZpSbkFKYlST1/poX8RCwQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252788; c=relaxed/simple; bh=2OVYsiaEALq8X/jeb/e/72PKIxNOL2+WIgOo7aBNVYU=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=jax2wLVpNNiwTG0VEa3LuKfmSXuBWbwczhxJBR2m6KZh9qAAj//WTDNEuSnhEkhLuL8Et4FfS4kJyhTb6nG8cXiVMxbvPA5XTEI5oPybEHWtETX3SAcylCYmGptCO/5BCC8RyJdsIU24kF2sgS6QsAlLGTGuU/5WOyExR3aF7No= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--willmcvicker.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=yBV2Tw/v; arc=none smtp.client-ip=209.85.216.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--willmcvicker.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="yBV2Tw/v" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-336b646768eso1330033a91.1 for ; Thu, 23 Oct 2025 13:53:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1761252785; x=1761857585; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=nOlNjzKGrmabtYpeYty40nfBQK9A/mPHc8f9qhi2ylg=; b=yBV2Tw/vzcH6yAbKfyYONLU77dQp5VlaNoqUQCJcWpseDX5Wn6jzayn/xvvg9JNxFi 20U+VbLFK4LRLaxPH8pRoB1W8TEfFC+9XJ6JW0HnMnvyH16apzzc5/N+tC3n0L5rMMfV Xkk1/RT31z9Pc6oiGq2v8nytw8v4WMj+/2jkl5XrMBScF986yFIhPlN98mjf/A9uMxVB 8Piwni9MPjptHFlbxB3PtwfBk4Nmj5Daay+f15HdT0suO+tjJ5fXN6mNV46zidrw9RL5 oPFHbVAFinjO+eWmSChIXalxhYePRBvpb3hRqgT48C9Ve5W6ooZ4wku8aMDaHrjlOMT/ 3FBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761252785; x=1761857585; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nOlNjzKGrmabtYpeYty40nfBQK9A/mPHc8f9qhi2ylg=; b=k/jyFJkR8x+CLSPGU/TJD+eJ496kl8sPywjypOHRAhFBFQv2/JP0CooOKmRLytH84Y VLTsCh2elw38XfYaIBcP1PL3he3YtHpyBIJZTxgl5fAifHt8MdyELs0d4JMqys3Vyprn k14M+eH+Bxp4DoMsZygWVY8V6uXwz0//sHikJlAX5LyVIfOBv+FdU29FsE0DrJdVqKp9 IpF0CcoAo80B2tAzmEPOfpe6qSCB5TPDmlaR9IXvXSOyVGrYu3BLt71Ai2EN5ijebRNa /k+e0q55DviutlfhEJQ7tNs1QCUv2xAsrSNPN3IfcTOuK+lOP3NdvJhibNpDsmJv0Iw/ d7Fw== X-Forwarded-Encrypted: i=1; AJvYcCXGTIyo9FLe9K2gBxJbeqVS1b4o3S7D5FpfF5M5R3FcfkeT5oYY2rXrIhsTgfLBJdfVqyrdotkBJW7/OQc=@vger.kernel.org X-Gm-Message-State: AOJu0YytmUZb5Dv2lGKSh1LiSxQInAYfyt2eFW4q3YL8hZZMVgCvZ6oq /sfhw3snGmJ6JtcLPUHSZkYVimBp2sqqyK1rmiOGA72uiWOMw9BG036Eu1XbvgVuOvyHNGtXIjH +bvBGfHQi3YXXWsa9pmYxLX9G1cdzeQ== X-Google-Smtp-Source: AGHT+IFP81I1iyalJE6aYdlbb3aYFaFBB5LVK9Iwi6HZICalmHAgswwkY0DX0NqFtFW5Im4RHwVUP8KP+TPcn7qo9cA= X-Received: from pjxx4.prod.google.com ([2002:a17:90b:58c4:b0:33d:98cb:883b]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90a:c2c3:b0:327:f216:4360 with SMTP id 98e67ed59e1d1-33bcf853706mr35210162a91.8.1761252785336; Thu, 23 Oct 2025 13:53:05 -0700 (PDT) Date: Thu, 23 Oct 2025 20:52:44 +0000 In-Reply-To: <20251023205257.2029526-1-willmcvicker@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251023205257.2029526-1-willmcvicker@google.com> X-Mailer: git-send-email 2.51.1.821.gb6fe4d2222-goog Message-ID: <20251023205257.2029526-3-willmcvicker@google.com> Subject: [PATCH v5 2/7] clocksource/drivers/exynos_mct: Don't register as a sched_clock on arm64 From: Will McVicker To: Russell King , Catalin Marinas , Will Deacon , Daniel Lezcano , Thomas Gleixner , Krzysztof Kozlowski , Alim Akhtar , Hosung Kim , Will McVicker , Ingo Molnar , Peter Griffin , Youngmin Nam Cc: Donghoon Yu , Rob Herring , Saravana Kannan , John Stultz , Tudor Ambarus , "=?UTF-8?q?Andr=C3=A9=20Draszik?=" , Conor Dooley , Marek Szyprowski , linux-samsung-soc@vger.kernel.org, kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Donghoon Yu The MCT register is unfortunately very slow to access, but importantly does not halt in the c2 idle state. So for ARM64, we can improve performance by not registering the MCT for sched_clock, allowing the system to use the faster ARM architected timer for sched_clock instead. The MCT is still registered as a clocksource, and a clockevent in order to be a wakeup source for the arch_timer to exit the "c2" idle state. Since ARM32 SoCs don't have an architected timer, the MCT must continue to be used for sched_clock. Detailed discussion on this topic can be found at [1]. [1] https://lore.kernel.org/linux-samsung-soc/1400188079-21832-1-git-send-e= mail-chirantan@chromium.org/ [Original commit from https://android.googlesource.com/kernel/gs/+/630817f7= 080e92c5e0216095ff52f6eb8dd00727 Signed-off-by: Donghoon Yu Signed-off-by: Youngmin Nam Signed-off-by: Will McVicker Signed-off-by: Daniel Lezcano Acked-by: John Stultz Tested-by: Youngmin Nam # AOSP -> Linux port Reviewed-by: Youngmin Nam # AOSP -> Linux port --- drivers/clocksource/exynos_mct.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_= mct.c index da09f467a6bb..96361d5dc57d 100644 --- a/drivers/clocksource/exynos_mct.c +++ b/drivers/clocksource/exynos_mct.c @@ -219,12 +219,18 @@ static struct clocksource mct_frc =3D { .resume =3D exynos4_frc_resume, }; =20 +/* + * Since ARM devices do not have an architected timer, they need to contin= ue + * using the MCT as the main clocksource for timekeeping, sched_clock, and= the + * delay timer. For AARCH64 SoCs, the architected timer is the preferred + * clocksource due to it's superior performance. + */ +#if defined(CONFIG_ARM) static u64 notrace exynos4_read_sched_clock(void) { return exynos4_read_count_32(); } =20 -#if defined(CONFIG_ARM) static struct delay_timer exynos4_delay_timer; =20 static cycles_t exynos4_read_current_timer(void) @@ -250,12 +256,13 @@ static int __init exynos4_clocksource_init(bool frc_s= hared) exynos4_delay_timer.read_current_timer =3D &exynos4_read_current_timer; exynos4_delay_timer.freq =3D clk_rate; register_current_timer_delay(&exynos4_delay_timer); + + sched_clock_register(exynos4_read_sched_clock, 32, clk_rate); #endif =20 if (clocksource_register_hz(&mct_frc, clk_rate)) panic("%s: can't register clocksource\n", mct_frc.name); =20 - sched_clock_register(exynos4_read_sched_clock, 32, clk_rate); =20 return 0; } --=20 2.51.1.821.gb6fe4d2222-goog From nobody Sat Feb 7 21:24:53 2026 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) (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 8FF9826F2BC for ; Thu, 23 Oct 2025 20:53:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252790; cv=none; b=Ik+5/A6FtKfS8J/jgmyWgTlwhy6RbWC91QbyqK4W625n7WuZUzgAWUUk+HjVGMKoLNXv9+YEFMGjWB+x/vzkRJJ9ggGQCiCkdDp28Tj4C0ai4dSiSTH+LV7NiakOB9NhVZ8zGtJujb/z6NaGrZMFZsY7iiYOoJGHj/dRBRidOfY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252790; c=relaxed/simple; bh=dz27i2JZrLdYVCfKj6wR/Q4ULc2X6qv3RE59HEWlXnA=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=REnM7XpI9o4eVStDF44yUMmNQ619pxX4wiFv9B+qQuuNnr3jYyhRD7JTsDeFKkZLWP+5eAVWsznLgH+ryIuijcaRbnToJAqa0vtQLzJdDwjlQakbH1rjLoQFNXptQdPKzeps1TrXyrbciT1qae/kdWPcVLFsIoIsRqmUBrDHgNk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--willmcvicker.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=xFT5fDP/; arc=none smtp.client-ip=209.85.216.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--willmcvicker.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="xFT5fDP/" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-33c6140336eso2733076a91.3 for ; Thu, 23 Oct 2025 13:53:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1761252787; x=1761857587; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=Yk+s1ISc6dEFltbJ5xY708N1Sz+4JaPN5G4h2ago+Qw=; b=xFT5fDP/vFb9NuyS4zhP90YemMC59ErUHGObTQUbf4uEZVxIiw4E/mXZB5MR2k2bxG q+fIHii9rpV51FVcPLyNnIm6a1VfMd0WyvDPKbOF/gx2YJdkvyg+5P8jCn96ahZu3ukE /zEaXtTFMCVX9ObonNdCaEdUNAkZZ+qx7HpmnEb6prCgHlTkof0b3vCBeBfcGiiO5Ro0 7BUH1r2GNAY7PPJ4GdyC/jzIvDa+HxnwtAUo1fbasGhOHN9iNqPWFbFHcClFrg2RulIj Bglw/C3Hmi2TQcrS5jo2a8CAmHXLklrHIOK8unUbs6l+fxQBsXzFvEmj7l86jLvgCuP4 14eQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761252787; x=1761857587; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Yk+s1ISc6dEFltbJ5xY708N1Sz+4JaPN5G4h2ago+Qw=; b=lsO/ydlURZ6z16y6yMgXpZN9olQ0UMT2QALmEdNs3XapH5lHKh8IQy/P2tsfiRx2LH GFa8OqlOY6OkckFQy04fVQyTG4KcZ25riBQmvvPUVqjcGiFuYBzBhIscS+gx5U8Vbfdv eYO1sfQURNa5Qac6FNb8amTb3bPeqQ+LhES0jgyQO94SMhdyYUftAkqTMu7J1JuSsiPq VR7rqyj6p3UNMueXHiLhYPt++0ofMtbLNx4LGjyaia64vZIo5ssy4vjNWkT/C7W60EaT TjHyQIIin/9f+fnYSz+TYbBO73FmgpQcJCpfu5ZGvp0JNQoEOn9hXG7wZKJRkLUaUpEt T2YQ== X-Forwarded-Encrypted: i=1; AJvYcCUVN4VCGYvEsQnb0e7eMfH4rTx2Ep1XEM6fVB3fpOBE9X4jTPU9MohhXQWbGG6Zk01nW/HOtl1yeXgshqs=@vger.kernel.org X-Gm-Message-State: AOJu0Yy/cILtrFoI0coPmewCwrqFxGYfMOQoUWl/aNapQhqBSN3xUUKV ICm9nuFMJe05HOxpEOLc8tDHtFnOUBtPUvkh8e4/ULISjzcmedGfz37jeZRP/waqWhSzbtpQVch fm6X7LPEP7L9B/zMhzeQQuqBhbwhX9A== X-Google-Smtp-Source: AGHT+IGkZMpKJqJOm+EoIaC26wIwW3Vcq2H4akvTHbJ23iF2ppwmzR08YRck2L56OCpeCC/yq0C1twga9aOUBHTIEUQ= X-Received: from pjzm22.prod.google.com ([2002:a17:90b:696:b0:339:ee20:f620]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:28c4:b0:32e:38b0:15f4 with SMTP id 98e67ed59e1d1-33bcf86bf50mr35134169a91.7.1761252787527; Thu, 23 Oct 2025 13:53:07 -0700 (PDT) Date: Thu, 23 Oct 2025 20:52:45 +0000 In-Reply-To: <20251023205257.2029526-1-willmcvicker@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251023205257.2029526-1-willmcvicker@google.com> X-Mailer: git-send-email 2.51.1.821.gb6fe4d2222-goog Message-ID: <20251023205257.2029526-4-willmcvicker@google.com> Subject: [PATCH v5 3/7] clocksource/drivers/exynos_mct: Set local timer interrupts as percpu From: Will McVicker To: Russell King , Catalin Marinas , Will Deacon , Daniel Lezcano , Thomas Gleixner , Krzysztof Kozlowski , Alim Akhtar , Hosung Kim , Will McVicker , Ingo Molnar , Peter Griffin , Youngmin Nam Cc: Donghoon Yu , Rob Herring , Saravana Kannan , John Stultz , Tudor Ambarus , "=?UTF-8?q?Andr=C3=A9=20Draszik?=" , Conor Dooley , Marek Szyprowski , linux-samsung-soc@vger.kernel.org, kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Hosung Kim To allow the CPU to handle it's own clock events, we need to set the IRQF_PERCPU flag. This prevents the local timer interrupts from migrating to other CPUs. Signed-off-by: Hosung Kim [Original commit from https://android.googlesource.com/kernel/gs/+/03267fad= 19f093bac979ca78309483e9eb3a8d16] Reviewed-by: Peter Griffin Reviewed-by: Youngmin Nam Tested-by: Youngmin Nam Signed-off-by: Will McVicker --- drivers/clocksource/exynos_mct.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_= mct.c index 96361d5dc57d..a5ef7d64b1c2 100644 --- a/drivers/clocksource/exynos_mct.c +++ b/drivers/clocksource/exynos_mct.c @@ -596,7 +596,8 @@ static int __init exynos4_timer_interrupts(struct devic= e_node *np, irq_set_status_flags(mct_irq, IRQ_NOAUTOEN); if (request_irq(mct_irq, exynos4_mct_tick_isr, - IRQF_TIMER | IRQF_NOBALANCING, + IRQF_TIMER | IRQF_NOBALANCING | + IRQF_PERCPU, pcpu_mevt->name, pcpu_mevt)) { pr_err("exynos-mct: cannot register IRQ (cpu%d)\n", cpu); --=20 2.51.1.821.gb6fe4d2222-goog From nobody Sat Feb 7 21:24:53 2026 Received: from mail-pg1-f202.google.com (mail-pg1-f202.google.com [209.85.215.202]) (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 6BA04270EBB for ; Thu, 23 Oct 2025 20:53:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252792; cv=none; b=gcZF4U5Fi6zqXqepa0pKWJUDE7s9BgGUVLoN1rU6xZz1Owb8fiDk/Ryl8hgHqv6EjaF7z0sWw9mPUAvznie+Q5cVn6AUXI8YiigjeZoSC52tUEMhN+ApDP88uCSNjh6T+pGr1SNHqER9Wd6jToLyUH9gIZ+r1kxOCBXPwmHq78w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252792; c=relaxed/simple; bh=n8cqZMaXb4WTd1saP6x9nx7lED6lPw7jzNOTy2/I9Vo=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=WN6fURL8Nn98byUKkuujHWPnFrYEGwuoOt0fsDqriaibvnMFknkh5KSqCVDL+eq6IPQDTwEpEt9bFgZo6BBriti8/j6GrAj+NzPMp6NySTTIgJU1IttxHD0p4ckq9Pi4ntYP7DIOsc7+2K8lSeGxDmzUr8tWAFpqbz0ftB5N1s8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--willmcvicker.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=jlxyKTB3; arc=none smtp.client-ip=209.85.215.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--willmcvicker.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="jlxyKTB3" Received: by mail-pg1-f202.google.com with SMTP id 41be03b00d2f7-b6cf40b2c2bso2332355a12.0 for ; Thu, 23 Oct 2025 13:53:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1761252790; x=1761857590; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=salcdC7S6u/qcABB4HnnPaySmiqlvAFAzi3hyX+XJeI=; b=jlxyKTB3gybt8FUhFCvqKuivW62duf7vgJTfh+fgVKu5TCcLGcSvaW4C70HiCkuyUv vHrZpv3OeyIv+sEE/3MXeCgkLulYwLeyO6hYARQuX4aSxW/zgdrEzvjJm4DhGr+p9W5u 1sGvgbC5M5DNPFvBm03CXn2YF/VAhikvGKIwBPRRz/spzWmjlmPB7j3Ww6wvcho5PwqD GXRfOZY+xQWXaqIoBHdPQytBdbozLStaNPisB5Sg9taYH20OZWj3JK+qHTb/lnIH5/4+ NiTObhAOjFa+bN3HBGLWnEHaIk0MNPHHveUpbrJS/pejnOJeSDBWdhg1AzbgvfWPwOyg AA3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761252790; x=1761857590; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=salcdC7S6u/qcABB4HnnPaySmiqlvAFAzi3hyX+XJeI=; b=EMH0ImD+njM8K3+/zvIEPsfi/Wxz0Eso0T5/ToSG7Ju7aSBR0jbQwzDZD6kfBsBqX/ WK1MIg+XT1S1++droMGAELgW23UHUZ0xjq2tTr4zqYSHCTTULnHDryGApw6F1ZleS/8Z xAcehoELXpSZ4XigCMbAFbSfs/AjBti6PKndkK03PH0Jp6YY3047Urg2a1O9lP7pF76+ mlSyfAFrWquF9gf3thZis8FuJmHkPtxPR0ZG5NzaKfWvao1xd+nHYYGNBbRPGy3es2yA +Am3GoJN+M83zgs3aFqz4zmNPHhOT/iamc2NEvXc4JEYry7Uio7/Ps9B7ZUkCfxFlxfF I8Hg== X-Forwarded-Encrypted: i=1; AJvYcCWGZ/D0MzJHaGgqHqV4/aQ8abi5s8sdroOt7pMLIxUWd73fnblBUVEU8zzpPWnxc7iQUoLMmPMmVFUewDY=@vger.kernel.org X-Gm-Message-State: AOJu0Yx2z6G36KzdLlQok5JQkYWsjP1mQB6g5LI11jIedK7oeL8tp1dY n3GvF6yqrgfrWdaIqWoIaNu8UhB544kyxmOsJ4UonmM59/Jz+FByIjmZRfYFlocCCccZUBEAmV9 zxdwPJfkxReoUGokRqgGJMDeQj/1BJA== X-Google-Smtp-Source: AGHT+IEIa3iCmSK88WeYaF57yxXrkmbmjgzKXsIudMzptYilutAUUKrusmtBqAF1jBuMVBsyJrYvu9lT45iuYPB4xpU= X-Received: from ploe2.prod.google.com ([2002:a17:903:2402:b0:290:2921:d4d3]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:e944:b0:27d:69de:edd3 with SMTP id d9443c01a7336-290c9d2649bmr315429985ad.20.1761252789682; Thu, 23 Oct 2025 13:53:09 -0700 (PDT) Date: Thu, 23 Oct 2025 20:52:46 +0000 In-Reply-To: <20251023205257.2029526-1-willmcvicker@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251023205257.2029526-1-willmcvicker@google.com> X-Mailer: git-send-email 2.51.1.821.gb6fe4d2222-goog Message-ID: <20251023205257.2029526-5-willmcvicker@google.com> Subject: [PATCH v5 4/7] clocksource/drivers/exynos_mct: Use percpu interrupts only on ARM64 From: Will McVicker To: Russell King , Catalin Marinas , Will Deacon , Daniel Lezcano , Thomas Gleixner , Krzysztof Kozlowski , Alim Akhtar , Hosung Kim , Will McVicker , Ingo Molnar , Peter Griffin , Youngmin Nam Cc: Donghoon Yu , Rob Herring , Saravana Kannan , John Stultz , Tudor Ambarus , "=?UTF-8?q?Andr=C3=A9=20Draszik?=" , Conor Dooley , Marek Szyprowski , linux-samsung-soc@vger.kernel.org, kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Marek Szyprowski For some unknown reasons forcing percpu interrupts for local timers breaks CPU hotplug for 'little' cores on legacy ARM 32bit Exynos based machines (for example Exynos5422-based Odroid-XU3/XU4 boards). Use percpu flag only when driver is compiled for newer ARM64 architecture. Fixes: f3cec54ee3bf ("clocksource/drivers/exynos_mct: Set local timer inter= rupts as percpu") Signed-off-by: Marek Szyprowski Reviewed-by: Peter Griffin Reviewed-by: Krzysztof Kozlowski Suggested-by: Marek Szyprowski --- drivers/clocksource/exynos_mct.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_= mct.c index a5ef7d64b1c2..1429b9d03a58 100644 --- a/drivers/clocksource/exynos_mct.c +++ b/drivers/clocksource/exynos_mct.c @@ -597,7 +597,8 @@ static int __init exynos4_timer_interrupts(struct devic= e_node *np, if (request_irq(mct_irq, exynos4_mct_tick_isr, IRQF_TIMER | IRQF_NOBALANCING | - IRQF_PERCPU, + (IS_ENABLED(CONFIG_ARM64) ? + IRQF_PERCPU : 0), pcpu_mevt->name, pcpu_mevt)) { pr_err("exynos-mct: cannot register IRQ (cpu%d)\n", cpu); --=20 2.51.1.821.gb6fe4d2222-goog From nobody Sat Feb 7 21:24:53 2026 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) (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 7F2112C026E for ; Thu, 23 Oct 2025 20:53:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252794; cv=none; b=D/f4zXbZwj8lpX1BFwnPS0dIYbYk0LuoXbvI28d/r7GVl4ZGCNfW9R4sCQT08X/HsIv6XZnSBCz0Yftvr6iE819ATLXAljaTXab2GPpgKnKeIjVY+YwtVElVw3tbjQjAO+m15HSw9o9P9gZAnPv7jcJN28WJvLeIWqs3CrAnMMM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252794; c=relaxed/simple; bh=C/1zX22wjI4qtmE/Rs+0jxW/rC4laO75J74Tq/ISSYo=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=pa8X9a9JhIxsrLoT8PAziEa9TtT+SFCp982H6KujngeUiCoYj90jP2XcBrqCKBaOICKJ+pcYzWfdgUmET/ecyGdTm3g03PX0RO5JF2k4I69451T6i8lSHoqp6Mw23KsfwzXhipoF1iWjB6eH+MlsJ/n8uAOzS47sbR+mq2TvnDg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--willmcvicker.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=RWlsbH7+; arc=none smtp.client-ip=209.85.216.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--willmcvicker.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="RWlsbH7+" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-33bc5d7c289so2624944a91.0 for ; Thu, 23 Oct 2025 13:53:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1761252792; x=1761857592; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=n3ErCVLsFFmYy6ztYolejF5Ple6tVW26MCiEzz3ldVw=; b=RWlsbH7+tPtS85Su5B18H9/OwJc6o3vcyDCLKocUUY28Npa3zdngH9vdW57/bFojTM oV+3M2sVGEXiph6I2AdTtZwc4TGt4ARACKttwo2iRAVeC2FyvWrbbabH3bnwfxiyC/ft NGe7GPpA4WhWNgZX4pM7XQBMtbA14o0jtmzsDvrfexX8qMwI283zimtakGTz1zSNieQE hX/r17qUyFXpbAaTUSpNX8vMEgZhSpnggTG3WNvuJXWwc8Ev1WLeg9P1wdUvHkJmNddv 3xuQTKAfCRdM9tMUPMw7Ef+rD4xoyr2ZztY7AsdZu1ExUDuhCNA0yR1QaMdysLByB1kS jc5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761252792; x=1761857592; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=n3ErCVLsFFmYy6ztYolejF5Ple6tVW26MCiEzz3ldVw=; b=lIoskc/ffcTVlY3lLLYBRwaQCz4Wvrnc4QR1dpf0JcJ0338ZIBrzZ0MBpM2PTeh1bb za61vL0O5ZtDLZMiZIddMJXSnq2sAkR07XEjPi/umsvU0Z79QOf7pGx38MWShQ4jyGVN XadGu+oUFus+2U6klQo+6dVD25l3bMt7WiCtMWfVaDfzEPRFlFXRJBXAfaUNoh7ZLeQA UPc58rx4QaikwjulGT1EZYF2vHac57/3xBWuz17DOm+IYucAnaKNU9PSI5ZThEcxzx1V uIFGADRlryBT+e0zDd+aWySxIqD+QzKoOuxmYA8Zs20rE3kxqrLpp1xqEyKkKCNd6ewn sD/Q== X-Forwarded-Encrypted: i=1; AJvYcCXwaQJclj4NrCn6alY+v3HQ5jASs3RXBqLX8pdAhw3ICsjhlMca/gh5ROathLPndTsqMXCEPel3bLvaYj4=@vger.kernel.org X-Gm-Message-State: AOJu0Yxb5Ttj1Fs5kwSsXSPfp/44SxhyXPBOpLi5Hi4PFN6AXgcJTUb9 dSVv3w3NDtWzG+L+HNQwtpNVIASM3gZq68YFL/T2O+p6vPAaPZjrzCNvXmoUmldLu4n82oda8AG dbFbajuKBacodvb69+DnrKoL6uXY1LQ== X-Google-Smtp-Source: AGHT+IFW1kad+/CsnnzJKL1H1lX75kDUCzIPITXCJ5Bo7w07f+DaO2z/DzasuC8nJRHc1pc75xqQpvcM/Ch6dWDL4aY= X-Received: from pjni12.prod.google.com ([2002:a17:90a:838c:b0:33e:3082:9b48]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:4ac4:b0:33e:30b2:d20 with SMTP id 98e67ed59e1d1-33e30b20e23mr9036228a91.33.1761252791696; Thu, 23 Oct 2025 13:53:11 -0700 (PDT) Date: Thu, 23 Oct 2025 20:52:47 +0000 In-Reply-To: <20251023205257.2029526-1-willmcvicker@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251023205257.2029526-1-willmcvicker@google.com> X-Mailer: git-send-email 2.51.1.821.gb6fe4d2222-goog Message-ID: <20251023205257.2029526-6-willmcvicker@google.com> Subject: [PATCH v5 5/7] clocksource/drivers/exynos_mct: Fix uninitialized irq name warning From: Will McVicker To: Russell King , Catalin Marinas , Will Deacon , Daniel Lezcano , Thomas Gleixner , Krzysztof Kozlowski , Alim Akhtar , Hosung Kim , Will McVicker , Ingo Molnar , Peter Griffin , Youngmin Nam Cc: Donghoon Yu , Rob Herring , Saravana Kannan , John Stultz , Tudor Ambarus , "=?UTF-8?q?Andr=C3=A9=20Draszik?=" , Conor Dooley , Marek Szyprowski , linux-samsung-soc@vger.kernel.org, kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The Exynos MCT driver doesn't set the clocksource name until the CPU hotplug state is setup which happens after the IRQs are requested. This results in an empty IRQ name which leads to the below warning at proc_create() time. When this happens, the userdata partition fails to mount and the device gets stuck in an endless loop printing the error: root '/dev/disk/by-partlabel/userdata' doesn't exist or does not contain = a /dev. To fix this, we just need to initialize the name before requesting the IRQs. Warning from Pixel 6 kernel log: [ T430] name len 0 [ T430] WARNING: CPU: 6 PID: 430 at fs/proc/generic.c:407 __proc_create+0x= 258/0x2b4 [ T430] Modules linked in: dwc3_exynos(E+) [ T430] ufs_exynos(E+) phy_exynos_ufs(E) [ T430] phy_exynos5_usbdrd(E) exynos_usi(E+) exynos_mct(E+) s3c2410_wdt(E) [ T430] arm_dsu_pmu(E) simplefb(E) [ T430] CPU: 6 UID: 0 PID: 430 Comm: (udev-worker) Tainted: ... 6.14.0-next-20250331-4k-00008-g59adf909e40e #1 ... [ T430] Tainted: [W]=3DWARN, [E]=3DUNSIGNED_MODULE [ T430] Hardware name: Raven (DT) [...] [ T430] Call trace: [ T430] __proc_create+0x258/0x2b4 (P) [ T430] proc_mkdir+0x40/0xa0 [ T430] register_handler_proc+0x118/0x140 [ T430] __setup_irq+0x460/0x6d0 [ T430] request_threaded_irq+0xcc/0x1b0 [ T430] mct_init_dt+0x244/0x604 [exynos_mct ...] [ T430] mct_init_spi+0x18/0x34 [exynos_mct ...] [ T430] exynos4_mct_probe+0x30/0x4c [exynos_mct ...] [ T430] platform_probe+0x6c/0xe4 [ T430] really_probe+0xf4/0x38c [...] [ T430] driver_register+0x6c/0x140 [ T430] __platform_driver_register+0x28/0x38 [ T430] exynos4_mct_driver_init+0x24/0xfe8 [exynos_mct ...] [ T430] do_one_initcall+0x84/0x3c0 [ T430] do_init_module+0x58/0x208 [ T430] load_module+0x1de0/0x2500 [ T430] init_module_from_file+0x8c/0xdc Signed-off-by: Will McVicker Reviewed-by: Peter Griffin Reviewed-by: Youngmin Nam Tested-by: Youngmin Nam --- drivers/clocksource/exynos_mct.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_= mct.c index 1429b9d03a58..fece6bbc190e 100644 --- a/drivers/clocksource/exynos_mct.c +++ b/drivers/clocksource/exynos_mct.c @@ -465,8 +465,6 @@ static int exynos4_mct_starting_cpu(unsigned int cpu) per_cpu_ptr(&percpu_mct_tick, cpu); struct clock_event_device *evt =3D &mevt->evt; =20 - snprintf(mevt->name, sizeof(mevt->name), "mct_tick%d", cpu); - evt->name =3D mevt->name; evt->cpumask =3D cpumask_of(cpu); evt->set_next_event =3D exynos4_tick_set_next_event; @@ -567,6 +565,14 @@ static int __init exynos4_timer_interrupts(struct devi= ce_node *np, for (i =3D MCT_L0_IRQ; i < nr_irqs; i++) mct_irqs[i] =3D irq_of_parse_and_map(np, i); =20 + for_each_possible_cpu(cpu) { + struct mct_clock_event_device *mevt =3D + per_cpu_ptr(&percpu_mct_tick, cpu); + + snprintf(mevt->name, sizeof(mevt->name), "mct_tick%d", + cpu); + } + if (mct_int_type =3D=3D MCT_INT_PPI) { =20 err =3D request_percpu_irq(mct_irqs[MCT_L0_IRQ], --=20 2.51.1.821.gb6fe4d2222-goog From nobody Sat Feb 7 21:24:53 2026 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) (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 936CC2C326C for ; Thu, 23 Oct 2025 20:53:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252796; cv=none; b=QSX4mGxKhnvcOi9rmE6mPjCwRcJi4aHLwa/z4wDFKnGx2RIacDnRIsgj/fbHnuUTOmOtLDdBdKo9POj5Fqnex9hKgJu/pKGSsEnseTRFx0d3J9skqpIy8nMGPsbRIisU6FKKX5ZVhB0LiHjI4CsQvjx2IqiY6M61k226OWwXtFM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252796; c=relaxed/simple; bh=CESpfuQKSTARvsi02223z0qLzhBNqlIQPJ9hcvIXEto=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=VYTb7MUoqeD9s6upGFybJ7krf334pW1EGeAM+nonYIxqmf5xJuEiLH/jINOMGya7vrxJQxpbIymAbZ1wt4W116qop8U/hk/p2zzXEQvlbBSPRUzSpJgEMr4fvFES7sbX1d0ZpkJ/gDioPZU46jtn4/olPpcnMAPVGKyIJwMAl9k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--willmcvicker.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=qo8WL8Fe; arc=none smtp.client-ip=209.85.216.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--willmcvicker.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="qo8WL8Fe" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-33bcb7796d4so1313317a91.0 for ; Thu, 23 Oct 2025 13:53:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1761252794; x=1761857594; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=t8LUdY9Gbr3c9MBtkrMrb9ELOUUlz3DwF1vW+da8Cus=; b=qo8WL8Fed5pF3kxSuXW5qWclP8e8/mKOfIB7k2P/qhW6S9yypXdv3551/hkOUcjxYY bEV0W6urYZ5Z692LAzwNfDpXXfY2630FRxUvePjKTfQLslSCW1UnFLa3mrIJsWEOtLFJ 24xy8nKPDXk3STKDJd65gntVlKMcN8mqaGl3+/sRQsnQv3XJZKLc4qbkW2fSVSmKq6Dz DMmozBMgTt9s4GLB0nR5bQ4xpWTXjfq3dCcpzeTP59RSxWHsKp7X5K36V85la1jNCdj0 5lA/RJd7qfKmrVhU5/EwTSkc8nXa+roAfFNuIZFPjf3AiObgXLefoRQ5JNXjW0QhBt5n twpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761252794; x=1761857594; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=t8LUdY9Gbr3c9MBtkrMrb9ELOUUlz3DwF1vW+da8Cus=; b=U5tKl/JU5dDy50G7kkXGqwx0qEQZHYwNcYnNggIjDdjfm8MqGyOLU9HJ8KAE6N32cg HcfirxZ8MsTwztj04jP2K6qy82Q/t6SfcXTXgsjicp41bIwtPibgdLr2Vp848iI50EOz fi0KPYJ6KTmyRMvCWeaGFdqLPuiIYW5Z/jB1SyF/jd4y51dumGt/4Bxyg1YrsuSN4JGz 2+1FlWHVAyU/SZ27RHhtyi8JvWewPkpH2Dwdf+kBDk3xpaRtCcIi7RtfUnQ6JldiVqQM SCvwWJmNa6kA1UYJMkbOPlNnFI9YROEOc+5/QtijzBeIBEszA6Nt7tdE8aWe/l4t/ItJ I1zA== X-Forwarded-Encrypted: i=1; AJvYcCWumMeXroSQISXk0BZ1zuvrEyiNeWX23JO/SDrWgF/6quc/qVGHFmyb1RpXJ7SCEzGp3YiFWsBzRwbCMCE=@vger.kernel.org X-Gm-Message-State: AOJu0Yxd8q0uj1AnIqYjfOcss2ltqTvDHiO//hTpf/icHy+Ju2kWKFyr +0+ZWa+Gu4e8C4P5F6uZ5HHkHd2DU+amRBraQTAYmhP5iA2ysqORb8PF2Zjup22qbifaDptsb1q 3GLl7Mz42F0lDWBiWv6SixwtOMVnFeA== X-Google-Smtp-Source: AGHT+IGBf1IJzGzHW/dQ74bgawMiYQGBddoxKJ6LePC8746ZA/Ftq/tF6PBMtE1kkx8goimn/4nF1bVNeCHWhrBhu3o= X-Received: from pjbei7.prod.google.com ([2002:a17:90a:e547:b0:33b:cba3:7277]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90a:c88c:b0:330:6d5e:f17e with SMTP id 98e67ed59e1d1-33fafc1cdfcmr4966565a91.24.1761252793850; Thu, 23 Oct 2025 13:53:13 -0700 (PDT) Date: Thu, 23 Oct 2025 20:52:48 +0000 In-Reply-To: <20251023205257.2029526-1-willmcvicker@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251023205257.2029526-1-willmcvicker@google.com> X-Mailer: git-send-email 2.51.1.821.gb6fe4d2222-goog Message-ID: <20251023205257.2029526-7-willmcvicker@google.com> Subject: [PATCH v5 6/7] clocksource/drivers/exynos_mct: Add module support From: Will McVicker To: Russell King , Catalin Marinas , Will Deacon , Daniel Lezcano , Thomas Gleixner , Krzysztof Kozlowski , Alim Akhtar , Hosung Kim , Will McVicker , Ingo Molnar , Peter Griffin , Youngmin Nam Cc: Donghoon Yu , Rob Herring , Saravana Kannan , John Stultz , Tudor Ambarus , "=?UTF-8?q?Andr=C3=A9=20Draszik?=" , Conor Dooley , Marek Szyprowski , linux-samsung-soc@vger.kernel.org, kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Donghoon Yu On Arm64 platforms the Exynos MCT driver can be built as a module. On boot (and even after boot) the arch_timer is used as the clocksource and tick timer. Once the MCT driver is loaded, it can be used as the wakeup source for the arch_timer. Signed-off-by: Donghoon Yu Signed-off-by: Youngmin Nam Signed-off-by: Will McVicker Signed-off-by: Daniel Lezcano [original commit from https://android.googlesource.com/kernel/gs/+/8a52a828= 8ec7d88ff78f0b37480dbb0e9c65bbfd] Reviewed-by: Youngmin Nam # AOSP -> Linux port Tested-by: Youngmin Nam # AOSP -> Linux port --- drivers/clocksource/Kconfig | 3 +- drivers/clocksource/exynos_mct.c | 56 +++++++++++++++++++++++++++----- 2 files changed, 49 insertions(+), 10 deletions(-) diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig index ffcd23668763..9450cfaf982f 100644 --- a/drivers/clocksource/Kconfig +++ b/drivers/clocksource/Kconfig @@ -451,7 +451,8 @@ config ATMEL_TCB_CLKSRC Support for Timer Counter Blocks on Atmel SoCs. =20 config CLKSRC_EXYNOS_MCT - bool "Exynos multi core timer driver" if COMPILE_TEST + tristate "Exynos multi core timer driver" if ARM64 + default y if ARCH_EXYNOS || COMPILE_TEST depends on ARM || ARM64 depends on ARCH_ARTPEC || ARCH_EXYNOS || COMPILE_TEST help diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_= mct.c index fece6bbc190e..a87caf3928ef 100644 --- a/drivers/clocksource/exynos_mct.c +++ b/drivers/clocksource/exynos_mct.c @@ -15,9 +15,11 @@ #include #include #include +#include #include #include #include +#include #include #include =20 @@ -217,6 +219,7 @@ static struct clocksource mct_frc =3D { .mask =3D CLOCKSOURCE_MASK(32), .flags =3D CLOCK_SOURCE_IS_CONTINUOUS, .resume =3D exynos4_frc_resume, + .owner =3D THIS_MODULE, }; =20 /* @@ -241,7 +244,7 @@ static cycles_t exynos4_read_current_timer(void) } #endif =20 -static int __init exynos4_clocksource_init(bool frc_shared) +static int exynos4_clocksource_init(bool frc_shared) { /* * When the frc is shared, the main processor should have already @@ -336,6 +339,7 @@ static struct clock_event_device mct_comp_device =3D { .set_state_oneshot =3D mct_set_state_shutdown, .set_state_oneshot_stopped =3D mct_set_state_shutdown, .tick_resume =3D mct_set_state_shutdown, + .owner =3D THIS_MODULE, }; =20 static irqreturn_t exynos4_mct_comp_isr(int irq, void *dev_id) @@ -476,6 +480,7 @@ static int exynos4_mct_starting_cpu(unsigned int cpu) evt->features =3D CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT | CLOCK_EVT_FEAT_PERCPU; evt->rating =3D MCT_CLKEVENTS_RATING; + evt->owner =3D THIS_MODULE; =20 exynos4_mct_write(TICK_BASE_CNT, mevt->base + MCT_L_TCNTB_OFFSET); =20 @@ -511,7 +516,7 @@ static int exynos4_mct_dying_cpu(unsigned int cpu) return 0; } =20 -static int __init exynos4_timer_resources(struct device_node *np) +static int exynos4_timer_resources(struct device_node *np) { struct clk *mct_clk, *tick_clk; =20 @@ -539,7 +544,7 @@ static int __init exynos4_timer_resources(struct device= _node *np) * @local_idx: array mapping CPU numbers to local timer indices * @nr_local: size of @local_idx array */ -static int __init exynos4_timer_interrupts(struct device_node *np, +static int exynos4_timer_interrupts(struct device_node *np, unsigned int int_type, const u32 *local_idx, size_t nr_local) @@ -653,7 +658,7 @@ static int __init exynos4_timer_interrupts(struct devic= e_node *np, return err; } =20 -static int __init mct_init_dt(struct device_node *np, unsigned int int_typ= e) +static int mct_init_dt(struct device_node *np, unsigned int int_type) { bool frc_shared =3D of_property_read_bool(np, "samsung,frc-shared"); u32 local_idx[MCT_NR_LOCAL] =3D {0}; @@ -701,15 +706,48 @@ static int __init mct_init_dt(struct device_node *np,= unsigned int int_type) return exynos4_clockevent_init(); } =20 - -static int __init mct_init_spi(struct device_node *np) +static int mct_init_spi(struct device_node *np) { return mct_init_dt(np, MCT_INT_SPI); } =20 -static int __init mct_init_ppi(struct device_node *np) +static int mct_init_ppi(struct device_node *np) { return mct_init_dt(np, MCT_INT_PPI); } -TIMER_OF_DECLARE(exynos4210, "samsung,exynos4210-mct", mct_init_spi); -TIMER_OF_DECLARE(exynos4412, "samsung,exynos4412-mct", mct_init_ppi); + +static int exynos4_mct_probe(struct platform_device *pdev) +{ + struct device *dev =3D &pdev->dev; + int (*mct_init)(struct device_node *np); + + mct_init =3D of_device_get_match_data(dev); + if (!mct_init) + return -EINVAL; + + return mct_init(dev->of_node); +} + +static const struct of_device_id exynos4_mct_match_table[] =3D { + { .compatible =3D "samsung,exynos4210-mct", .data =3D &mct_init_spi, }, + { .compatible =3D "samsung,exynos4412-mct", .data =3D &mct_init_ppi, }, + {} +}; +MODULE_DEVICE_TABLE(of, exynos4_mct_match_table); + +static struct platform_driver exynos4_mct_driver =3D { + .probe =3D exynos4_mct_probe, + .driver =3D { + .name =3D "exynos-mct", + .of_match_table =3D exynos4_mct_match_table, + }, +}; + +static __init int exynos_mct_init(void) +{ + return platform_driver_register(&exynos4_mct_driver); +} +module_init(exynos_mct_init); + +MODULE_DESCRIPTION("Exynos Multi Core Timer Driver"); +MODULE_LICENSE("GPL"); --=20 2.51.1.821.gb6fe4d2222-goog From nobody Sat Feb 7 21:24:53 2026 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) (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 91AEC270EBB for ; Thu, 23 Oct 2025 20:53:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252798; cv=none; b=K5hikja0JTuvH1IaV2WBdHeRzdX7p8gqrGWT28CxWsyTr/CHmntmQm+xEae59oPZvdNm+/hqv+d7ggc0Bg5QbbfB2VsftOe3Zr/9Y65fDLHewNa6DTKaWhMlLE5HlYOppJrvJUKa5wLEEm+vqK4NJ3FXJJdASouLRgZzu0vztD4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252798; c=relaxed/simple; bh=osKoAFkbQ+bMRzkFjXuuMZNRDBV5CkEsQ+WWxrz7Ba0=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=Mz0ehrDS9f/fh5PH0KSg8gHAXI+vMMJ8YTi/VTbv7aACHbTMxJnj1iM56HYPrBEBydrIcsGBigDWdezQ9YGY+MViNu3WqEta4BGDRQMog/OqpR6h60vN8KYgMaDpDRRKuG8JXGiISXLKGw++X6h9vpG7IQTaH8aBRnPWoJwdD48= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--willmcvicker.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=0xXSNNGl; arc=none smtp.client-ip=209.85.216.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--willmcvicker.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="0xXSNNGl" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-33c6140336eso2733275a91.3 for ; Thu, 23 Oct 2025 13:53:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1761252796; x=1761857596; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=o8cB2JKISSz6B9qz7HS2qbamQvKm9jtJ2xZpz8CPDiY=; b=0xXSNNGlk3OBpWsqmFbyQ7A6HsB1mLX4k8T63bSix2UHLlEGhw1771xDCq2oScOWXl ZhCui+UStZHYopiiP/8DE83xLBzICnJB1sep032z/qltbyUDQD2K+o4d6ZzrfnDJIxTg g84HQNcTAoWB2rXS9kJ1PpjOrAHpOPOmTfezds8ESFqYBdGjJ9B7AmgXDEsClprf40gX rQ+Rl8RMPBKu2GlggeUOVHqLLWTLnriCBvPUgGpeZmexEMOJ7NTi3dwh95xN+B8nYcld UgYl4n0NBENyevcY8gRR/p6ER1EV+tphjXNjJsA5KhFFDTnNWtGyiVE3MgROtExFEPbd gY3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761252796; x=1761857596; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=o8cB2JKISSz6B9qz7HS2qbamQvKm9jtJ2xZpz8CPDiY=; b=HuPGfvMVHUd0ykNTGPpxUncSvMH4Y3jZChAfT9lTVID1bjF/OfXxqcbTjW+QCHBi2j NacrQ/Wf8qyXQRU43d230EOiQq7AyEcruifGvpf73dxWHyWtJLX8DIlDFpFN7X4VkeJX eEuBuh4YSj6vZKBz168OqdDTzXXzRr7TEnXvF6KlJvNUtEHVarjuUCdEAVvlIykj+YDD 0FKnwIGEmuW3kig40WNi8d8wc6VBueXZF/pGMRo16x3lSIgLAWZcj9i5VnT/NiHGcFU8 ypFKXjO3t0k4Fru0HXjh/3H4+s3SmQyvABdL+KrfKpB3+v/GCKuV3sWV0RBiU/5pdMqB V+Uw== X-Forwarded-Encrypted: i=1; AJvYcCU0iU9DPN8m5rKRhR9BZ5rjkZcUHZ/7hFQaX1BpufOag8UK+4+Ax3Rm3TU7PYj9q/XSiOEvqCkl99BrulQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwojXCXvksQL5yxLvlYTqQnz4YOq6YXSOyJlD190jTxdcPrjyJi lMHEc3synx9l1MQddcE6bmiSS3dwzW4/xLbgSIns/DQqcXq3PSgS6wpNejlHh3WJgtjJxwhxUgg 70Snv7h/pcKbMv4Iv1dskisLacXLZgQ== X-Google-Smtp-Source: AGHT+IGHJ6pvvQTONfUgausz91DB8YXTKIZ2yC/0dVMsDeXg0rMdse/dnPjwuJXay8ZVELJRf+0mhTMoklNFavlOnNM= X-Received: from pjqf18.prod.google.com ([2002:a17:90a:a792:b0:329:e84e:1c50]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90a:d44c:b0:33b:da53:d116 with SMTP id 98e67ed59e1d1-33bda53d1f3mr36146909a91.26.1761252795891; Thu, 23 Oct 2025 13:53:15 -0700 (PDT) Date: Thu, 23 Oct 2025 20:52:49 +0000 In-Reply-To: <20251023205257.2029526-1-willmcvicker@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251023205257.2029526-1-willmcvicker@google.com> X-Mailer: git-send-email 2.51.1.821.gb6fe4d2222-goog Message-ID: <20251023205257.2029526-8-willmcvicker@google.com> Subject: [PATCH v5 7/7] arm64: exynos: Drop select CLKSRC_EXYNOS_MCT From: Will McVicker To: Russell King , Catalin Marinas , Will Deacon , Daniel Lezcano , Thomas Gleixner , Krzysztof Kozlowski , Alim Akhtar , Hosung Kim , Will McVicker , Ingo Molnar , Peter Griffin , Youngmin Nam Cc: Donghoon Yu , Rob Herring , Saravana Kannan , John Stultz , Tudor Ambarus , "=?UTF-8?q?Andr=C3=A9=20Draszik?=" , Conor Dooley , Marek Szyprowski , linux-samsung-soc@vger.kernel.org, kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Since the Exynos MCT driver can be built as a module for some Arm64 SoCs like gs101, drop force-selecting it as a built-in driver by ARCH_EXYNOS and instead depend on `default y if ARCH_EXYNOS` to select it automatically. This allows platforms like Android to build the driver as a module if desired. Signed-off-by: Will McVicker Reviewed-by: Youngmin Nam Tested-by: Youngmin Nam --- arch/arm64/Kconfig.platforms | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index 13173795c43d..fc6026c368ca 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -128,7 +128,6 @@ config ARCH_CIX config ARCH_EXYNOS bool "Samsung Exynos SoC family" select COMMON_CLK_SAMSUNG - select CLKSRC_EXYNOS_MCT select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS select EXYNOS_PMU select PINCTRL --=20 2.51.1.821.gb6fe4d2222-goog