From nobody Sat Feb 7 21:24:39 2026 Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) (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 9C4EF23C50F for ; Thu, 23 Oct 2025 20:50:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252652; cv=none; b=ciO+FRJmz2qs5m3IqBit/EvJ/H00A8pU6ZrKHjYNfQu9t7lAK77aWcJ1lJRp1ddH96R9YfNg578l9UlfrkTR1gc5L/Aybz7pnupKQOfNHeNneFVocKp+42gFhmNy4/wJa8U4ILsmfBuTN+M2hJfP/8zqZEnVyVIODwQAwPRVluc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252652; c=relaxed/simple; bh=vidsleBrv6UezkEOZ8wsCGdMuLsh7QY/kEWRWgsv0s8=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=owqvuLzkIbJ6R49Nd2wKXvhYjpBh7+3dQxHEC3H6uDmXTTAkoQRXWeptBNu1wDNtrvgX4pWihmF5mvxMi4xGEuIC1RQ53KCCUyCYq4Y+w3j3aMr8AoGiFGe7A99rZ0f7kFsfk7s2SFxPy2Ygzxwqu8MHsR2QMR2j7giPjM+yBo8= 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=mwhUkgIR; arc=none smtp.client-ip=209.85.216.73 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="mwhUkgIR" Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-33ba9047881so1462697a91.1 for ; Thu, 23 Oct 2025 13:50:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1761252650; x=1761857450; 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=mwhUkgIRgzV7DgzYp/pQsduxcK5RRAyYh0XvhJEOjXPTHtFgdKjC9yizrZ4rl99YZ9 DGr0tH2ZqpDZNEiypG1vYDl6Q4NswMCcryEwrHlHxNHy1H28EAyS/A/Jsr5+5KmcTq3v rSfsgGGV0LOqR6O34ELDKlbad46u9d8YHQG9M1YOjfojQyhXXTn6au7/CIFRkuJeN5s3 iwCda82RFQ8KDpumEtunpDJXWjqaPATY88a1HhhWzZlzDkWJWHTi8ywGQoQz3ZkDap2c 5ZkjRHw4Lp9XhNM6eYyOYk7QjDKGp4Rk90fcA6V3jny+FH19dXIJlxbhYdYO2MHdUc3v fk0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761252650; x=1761857450; 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=gp7KuJe3qhisUL7OY5nbG3UDkQOMheomhK48xYEZTMp1HmC1y+J5d6xusDiZOxXcoN 3sL914C3me8CuB/kl+nJ6ZQ28tVO7uPel59WDB8Ggr4aQt+pVvZ60GWBhJ0DTHRz+fwK nUkViYL6PvrPdjgbbReofL4ZfUZXvxTD38llbxyzYBijSwuz5vKukRP/OitK7H25Nlk4 BtMrCJ8g3IKyfPX59kaTQBYTViKo08gcIPn4t80+GcOaiD4gICaMhqMsTmLNsSiH9pe1 0kimu9nEIbYFg6qeWULnCt/biyRWXPQcvIerVV/5dZc0uwjHEA2SrB1zwOoVJMvHvn9B eiMQ== X-Forwarded-Encrypted: i=1; AJvYcCU/QGmxxvGT0iV5J/TPQwmBiYJTQtMhAfTFiei42EXiYoBnFqXdoQspNZ3Mx5+yJZI/lPmMVrQTxd/l36E=@vger.kernel.org X-Gm-Message-State: AOJu0YxEzDkbd6UyK43IMQ6uAgVIXRcLc5RFU/Ga3mVH6GH5TlkNNIlL WGVS5lavFuUp3BbDwH5q49gfiO+1QEf72OSmrgooCpauSXPKYR2L3ZLh7sg4Qjv8T2SrJosK98d XzmNNXrGNz+rqUP9gKfPaBIlBIEfIuw== X-Google-Smtp-Source: AGHT+IGNMg2DMCJiL+F+pPhnBIlXppfMVHZRBUW9I2WIAEdbh06XGL0yXf0m3s/lwp4/2Oi/pJT3D4KTbFExW6OHopg= X-Received: from pjih1.prod.google.com ([2002:a17:90a:5801:b0:33e:28eb:7df2]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:5490:b0:32d:e309:8d76 with SMTP id 98e67ed59e1d1-33fd3bbda7amr336959a91.10.1761252649957; Thu, 23 Oct 2025 13:50:49 -0700 (PDT) Date: Thu, 23 Oct 2025 20:50:27 +0000 In-Reply-To: <20251023205041.2027336-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: <20251023205041.2027336-1-willmcvicker@google.com> X-Mailer: git-send-email 2.51.1.821.gb6fe4d2222-goog Message-ID: <20251023205041.2027336-2-willmcvicker@google.com> Subject: [PATCH 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 , Peter Griffin , Ingo Molnar , Youngmin Nam , Will McVicker , Hosung Kim 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:39 2026 Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.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 CA8A526F29F for ; Thu, 23 Oct 2025 20:50:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252654; cv=none; b=U77KyI5ZGNDjkJV5K6gMw8DSEfC4DCZrKvzEsoer0PFEVdkM5engezmioPFf187vCwpCk3slaRmL3nUKVlNL+thsLhdHOyqk528hvPQnLxrNVrcn11qm4y/FDo0dKSHPQg1PtpJyM2LLB6PwX6hqXiJSQvOmrbXwEoRGP3yEpJg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252654; 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=GkySA79CqlGZRFRlOTTm690mgIGVol79R7fI78N0Uu67nl781iaf2Zl+V6wfrA1Qh3RAD6E/FAwdMEo3Zuc2lbYOa6Jjh8laRlXt2wCjT2x88Xy3lC1ZJ6I7EPKWB7Ax7RmZhgCaud5T0r8Ao4gzCkHNmdDQmjQnICIcDqTSii0= 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=tnIWBBpX; arc=none smtp.client-ip=209.85.215.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="tnIWBBpX" Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-b6cff817142so555222a12.1 for ; Thu, 23 Oct 2025 13:50:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1761252652; x=1761857452; 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=tnIWBBpXceEWSY9PqiRvdLwM6u/meHVmvl2ad0cgxFvrYB+0VdhVrNEiRVOoObZ70F 6Sc1HfP+rkJlg05kewPjPh15Fl4XM2cZmElGum3/ZgiCOuhjHvnPGxv+GRx1jpTFYwcw 9ZA0vVpavSpf2uGF98b1q7ufDPvINooG/0J6EVNvinZ9sk7UaeVxW2Qt/al2o3+ivNNR O+h0dPr82sQZTovPxRTA6wREEXI4LNRAxTd4NCToJkohF47ey6PO8pujZoXBxUypePRT /6GbUM+4RC6f0Dp2QrrXnUHiu/B+iKOlTAZ4z0j04sgN7VHHglOaZiLOYaMlkNOn/NT/ 4hVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761252652; x=1761857452; 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=m5NTihZwZd0cZK0a6/KqvIrVMDm7IW0INAhPP+jDDpntOhse68MtLWrjkXmP9VKzBL b+afis+a4dx+J5GD6QsxOZXq3co/PnQyXQP5czpXflj9r8muFWXaMvIhpAOedY1V1HO6 MmEkeFTWRdHbkw3SdTzMDL51SWUvIzk7VK/A6t5C8vOStp2CdwrMUzBen/cgOlP6tSSK h+iRWU03PmWJZpTYVPvIb3t+8Gf44dxdC0ho7EgHAX/lGgnwgAiL1THqeLcOkNzXlL6L QX6ryewHJEEUIovwQwLbjlgdZoorgcbn8h1yREAAPTZUcOy8Pof6d3S432DQb3VEY8l/ amXg== X-Forwarded-Encrypted: i=1; AJvYcCVlr49LrdpmvemX+2GUqd5bBNFFKDYcGLV3Idjz7iUVWNUB77A1At7wFXMSpaUEA3aGqvda7W+r32K5PbY=@vger.kernel.org X-Gm-Message-State: AOJu0YypzyLkThibyrg2VYtpnvbj4aSEK5WlUPzASXqY4lZXKtuvhTRh 3/gBq/z+IH2456vu2A1q7cdGQc3N0vZ7UNCtPK3OqDTPENPElBl0ERj3k5IX5GAq+aFdswMi7Eh ovzNV75VpzRBzrcsnh/UkTypMzDruYg== X-Google-Smtp-Source: AGHT+IG8p3pkosaZ8VG4QyHxJWpBTvZC8r9Ms20gd0LJHErCKtPSqmFaP4ynOh3lhy9g1UGNqy/yUuBIw+1NXTJ6JfM= X-Received: from pjgg16.prod.google.com ([2002:a17:90b:57d0:b0:33b:51fe:1a91]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:4322:b0:33b:2c70:78d8 with SMTP id adf61e73a8af0-33c619d0bd1mr5081679637.37.1761252652128; Thu, 23 Oct 2025 13:50:52 -0700 (PDT) Date: Thu, 23 Oct 2025 20:50:28 +0000 In-Reply-To: <20251023205041.2027336-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: <20251023205041.2027336-1-willmcvicker@google.com> X-Mailer: git-send-email 2.51.1.821.gb6fe4d2222-goog Message-ID: <20251023205041.2027336-3-willmcvicker@google.com> Subject: [PATCH 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 , Peter Griffin , Ingo Molnar , Youngmin Nam , Will McVicker , Hosung Kim 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:39 2026 Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.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 D9F5927AC21 for ; Thu, 23 Oct 2025 20:50:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252656; cv=none; b=HQD/YWHF5gkh42GJ0rSgWJQjpAciVG21SKa8v9JkmocbIqdvrLnoGD8q+/oElLPHQ3D25gehmbOqfdp/JVB6il4C4MI240L66/Azd9q4RkwTObUOnyDNpLxENjcZtoQP7AePRBWd03barwkvlDM/U23VRwO2rWecRozLSCsxxiw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252656; c=relaxed/simple; bh=dz27i2JZrLdYVCfKj6wR/Q4ULc2X6qv3RE59HEWlXnA=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=SSsjwyF34lZl1rYj6uTqwCVGE2yzwNZjGLQ0zWcW0cVK/RplXYoqhw1y47P4tGOfNST7397Gq+WsppaNTwAeDK+KJPL7nw+qI4CTi3Sjnv26ZZyPqmbE/cgPhyX7Hrr/OpaQKyK0CrZVcvavUAb66edBK+T4nyQHJ1zrwPqOaLY= 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=27DqkAzk; arc=none smtp.client-ip=209.85.215.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="27DqkAzk" Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-b557abaad02so1897265a12.3 for ; Thu, 23 Oct 2025 13:50:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1761252654; x=1761857454; 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=27DqkAzkwxiXBd6nh99BYvxPFAc6myfzuhr/dMgRsSeORgt2bGneE/yNY6dpycgRyy STFF6noyENTDzr0JpRdc/+6Gb6Wh2mrfIo1DZxIHblhb8+9R74g26iBIpSQBHvuB1Yp7 7MA/Wh7ykJYOMiy0UKaiv7j35cBOiDIS7k4Wi77CqlDIvWxwPILNEph0Xg8uQNXZ9Zr7 T9FDu5tdWfhQURYv0IHe+RWBH/HMZI24d//IjgNZ8DM8dSGVxDyWMb0aT2KgG6T7JlNE dFpYXgN1GoaDc2rpPcJb6tYrwE9FBvtXR0PQuTIUtgMTO0glds74tWQeCmn3kqKl5mPC L04Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761252654; x=1761857454; 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=C79nzU4zBMPXaZX502YHWQTAjP7wmFGaQsusjTNoBIFwJC6S54MU3JC7zUv+nLgAbt wdrTQ+keZiSeZeMRXSXPtopImJxq17W4DL+A15RlPARsBx1Fep/64ZX2P+ZbjrII3Fcu Elxmn/iFzMkPSwWStrpi9bRPcyUfmAZ+LKCx0RLFzbsa+d2pXPqa7/RQQj4g5Ss1wHnj Zh/nd610ZRKC/sqyCIToA5IzYq7Yg7nK1v9bj4buDPb+jAgNpCGrRKYZR6igIjDpdzb4 a3vvsV7w+zXoG/R+b9VWCRxB6znnkGKL+WE9L9BQZL2nUtL7CxJ/0+BJhte3sVUR0CXC QBNQ== X-Forwarded-Encrypted: i=1; AJvYcCWT3SFns3uL5DxF6Hd+341ASUoKUPqN26NWQLx1HESGE26YmeUR+pKV7O+iRfyJbjzmBEHMW1PUZvTHq98=@vger.kernel.org X-Gm-Message-State: AOJu0YweAQvZIEsvTsc/8Tz/UbOWZXEQvsRE9C/pX7EUH1wHMujsLZM3 MWA5DAMk5LC0WnwTMM8jCv/SV7qFesLZzOCKCuzIVBDE9i9qJs3IOJ1+uVTpOOkM3laFjuNk+Gw iKCw1WSDWAVs7L5Vb3uk6IH5kSu/Gxw== X-Google-Smtp-Source: AGHT+IGL+5kVHhQd1OfDjE63ymS8X2c8akCZDgOtgOFkQSZNDy1zc7o/AWAgmT8EIgOAV2XCAQ/VH6rMwtmcpBUAUkk= X-Received: from pjqt14.prod.google.com ([2002:a17:90a:ae0e:b0:33b:c59f:b015]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:998a:b0:331:e662:c97e with SMTP id adf61e73a8af0-334a86172d0mr31428687637.37.1761252654301; Thu, 23 Oct 2025 13:50:54 -0700 (PDT) Date: Thu, 23 Oct 2025 20:50:29 +0000 In-Reply-To: <20251023205041.2027336-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: <20251023205041.2027336-1-willmcvicker@google.com> X-Mailer: git-send-email 2.51.1.821.gb6fe4d2222-goog Message-ID: <20251023205041.2027336-4-willmcvicker@google.com> Subject: [PATCH 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 , Peter Griffin , Ingo Molnar , Youngmin Nam , Will McVicker , Hosung Kim 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:39 2026 Received: from mail-pf1-f202.google.com (mail-pf1-f202.google.com [209.85.210.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 0805229D270 for ; Thu, 23 Oct 2025 20:50:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252658; cv=none; b=XXp3Ve65Wf6o7B/ZHTXxxCFJK5dK91EOuMB0QCEXG+vTSFOJzHVKLSvYtXQS1EteDpdPIIiBZ9Ar9hLkDPnJhTEcET1fjlNl/GcqEm51jVOoKV3636Yr7YgJdv5B82Tgk+6nwfFprNadUfgdDkvF8sAZaGwbAnH2ulvSvM59gTU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252658; c=relaxed/simple; bh=n8cqZMaXb4WTd1saP6x9nx7lED6lPw7jzNOTy2/I9Vo=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=s0d7EgFSHUZ4Y1vM684HoEpMd4zeZiHYsvoTHdOEnk3NzdfHBU8+X34Dncv1aObp4Apqlu+r4tuwt9kV3FNJWFgJXSKerTcCKAXjJIh3l/Oz5KqKsXPyQAZrCdc4OnEn/5PklcPNF5kKGeKTmc1ag99jlIBD+3NOFs0Ak6fCn0Q= 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=kwDf1OUY; arc=none smtp.client-ip=209.85.210.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="kwDf1OUY" Received: by mail-pf1-f202.google.com with SMTP id d2e1a72fcca58-780f914b5a4so1055062b3a.1 for ; Thu, 23 Oct 2025 13:50:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1761252656; x=1761857456; 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=kwDf1OUYPNkz8oL4LMyG4VQpfc5KQXcY+4LunG+SoK+pftsTi78Mnppiv50quUNXt+ DNj1VZ6hkRP06W98BQK0JAz4NxeUfKjv54xtIjG14H2nnOFBWy1Z2jSHuAYbGniNBK2u riFEemOtAckV1Evb06IM/U8IlXaEQNk0xmRK8WkDP55YnK5BuR7QgxdFjCzyOim8MZ6g 7KGTI6IV3zVOP9XEBBq45jE+qKip+nZ70jEqJWvxtOtfV9fCep7gSE0JplI2DHY+Ug77 jJiag0D98G90MiaRnDsY8jnC0ACK+DGQz0fAnGYfc/dWAEluZBISXXNmIn+yCVisIjKu fmaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761252656; x=1761857456; 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=PbQw3BGl5n6JPXG0spYVd5PAAN35EWA/IW8EoIEuwG96VEBNSGMromWYnCUcsjbwXT KDwkEXuSD+DQ94r/QSQ3FhDr3t6jSdcuMCSFBWluo1qc7swzhOpiocVcLd6vq0SPk/Fp /QzWYQCTcm+hNxL7Hsrp7Ar97YQ73fuU3ogg1JTGwimEXss/eJZzJPW4zJZyejheazno 0vg/2wFRL7G0oeWx2bTk61mcFDXQwlueXwU5/PcrYRcgl3un5nlb/AGSLRgDFMbq7YEQ 5fzBuEKRo4kpLfvpDhonX/dqFT63w9DT8BGURqdW9QOOVV0mRm9hDfq18oBhnZrXAR7T WNqg== X-Forwarded-Encrypted: i=1; AJvYcCVUTwTnNpLnmdUw44meaBfUyC8Qtg9MY1YwxG57H1rykCG1GoUnW2ATWRbCA33avE791Gnf9U6+ry1/PKY=@vger.kernel.org X-Gm-Message-State: AOJu0YzkNSdqYUWra0ZtRcUAhHLYlkS4sLsL483/WdnsYhaQ87B0X33l /UMy84gVXHSJlV+QFjO4GUMfDS6k9u09lgx05ckUJ45Rw96RZhFRZ2jr51Q7s7WSeehK4d7gAjz GP0EAQmj5PRMyhmqp+qVkzymZ6h72LA== X-Google-Smtp-Source: AGHT+IETotZz5W0RAewxokNGtYUCB28DdEc6PiIk8ALIvsRgLEcx3podfH3b9UqPF76nl00xJnrSRtGNgN/gaeVnwNQ= X-Received: from pjyq10.prod.google.com ([2002:a17:90a:e08a:b0:330:793a:2e77]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:a109:b0:334:a440:f244 with SMTP id adf61e73a8af0-334a8606ea3mr34560423637.36.1761252656337; Thu, 23 Oct 2025 13:50:56 -0700 (PDT) Date: Thu, 23 Oct 2025 20:50:30 +0000 In-Reply-To: <20251023205041.2027336-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: <20251023205041.2027336-1-willmcvicker@google.com> X-Mailer: git-send-email 2.51.1.821.gb6fe4d2222-goog Message-ID: <20251023205041.2027336-5-willmcvicker@google.com> Subject: [PATCH 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 , Peter Griffin , Ingo Molnar , Youngmin Nam , Will McVicker , Hosung Kim 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 --- 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:39 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 4AC8C2C15BB for ; Thu, 23 Oct 2025 20:50:59 +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=1761252660; cv=none; b=NQuHiG94zJ/btD6/k4EICgdQfOUOz00flIw3TksrzV1pshWg2+cQDImmMNqqSr1zwU7BMBzEGaYxRGcToQSsGP0ePmzv0bxw5i9lwbYAM7ohIanaQdeHv/sDteZZk/QSbYmOUVNfGvzUHqgCjQSPJfRq1Ql37BzPXcVi+W175Mk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252660; 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=uRRo2UZzKI6tVxWwXU7A1NGMdTKz0EKrNwMzMWgfrmn0tOmhe0Xo6pPERMp3QWI4nMYCZR/xX/UStg4gnqdjEfeV5JgJ0Zy24IlygnIZAxreuSFyH9K54l2lFwkXFw4fsFcKOIQ6DnNsl/gOXOJlWKnCjwxZIKPA2291STkfZq0= 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=pIB0NClm; 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="pIB0NClm" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-3307af9b55eso978637a91.2 for ; Thu, 23 Oct 2025 13:50:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1761252658; x=1761857458; 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=pIB0NClmaULvLSTNIHcjIhIQz2exfmdB0n7aPUlM2BudOddYi9/tdy3QsMLB116Zyk 0R9up3sxyKMTBQyUNimYHGMXdD/u7SNZUWFFmUJdBom6mywJxCcahQXUJyCyryKh5Fqt cu1l+Boj3wrje/zynYz68QeWN8d8hO/t5I8qu/9jgUXm3OTGG2FMhMrYC4DAR79o16IF zrj2ruM2OYZ8/pmvIfJmzueZuFm3jAls/NSBRnzMyssQQeZd0LKMAb9ursVzARTq9iap DFMreHkKM07mt5FKUrz22bsK8XN1fl7LXSyA/WfBxmPwFeV0KCJXrcLLDxJrFpDc8CLe BrgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761252658; x=1761857458; 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=huHvYVrDFQgXaIGBboujd73mW81uIaAIJJZsXMKJGLDA5dErMXZks4qk/u75hGT+Wb bKe0WptOeTGil0s2869Tk055qvHcK3v0O3e/uOOU9ptm+KMuuy4NTn38+VXXH+Gbgv6l 5+ZxAeLogbEFDvGzXLIHw4FxLovP0eFkm2qTewu7wp2ywH5qmslGBnb8c7Du+ZX2Oozu aVDIvLbpc/rvLe7RQtoOkKekjvRKJOooFczndelQUmBFQZcgJNnLiaQdYI1ZHr88fnK7 NYBZSM1PEPrhOeLZIzm4TWqH6q5k9QQSeOmly1lOzVxYMxBllpLL/enpSB/EBOe/qQmr /M3Q== X-Forwarded-Encrypted: i=1; AJvYcCXRmsCfv54dhUUyVtgp+AMryUcJ2no9yim4sZsRdt/dgZf5/xYurqj3Y6IlkKDRnhamYYZGaLr2wBMyhcc=@vger.kernel.org X-Gm-Message-State: AOJu0YwUvIAulcWGSFEPgSVT3iXZ1S7eq1FftOC9EJpUyyaXamRfzGG2 CxOSoe4n3Az3ew1gycLBlnJ8PX33x6Nk9KttbEkcZZAiCihmM7Me9qcKAQjftyeSoUQeWmv2+PZ wybfP1/mWb/EJxY3fxQF7OMR2vc3kOA== X-Google-Smtp-Source: AGHT+IHJvKbU9UgJaSGXWAUX+DnipcUlKhq0hmwyYZnhUYzOqrdpDg7R1VNHjGHXBcYDkXnRvHh8GcGOhqCddYEK0g4= X-Received: from pjbsb7.prod.google.com ([2002:a17:90b:50c7:b0:33b:51fe:1a94]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:33c3:b0:32e:8c14:5d09 with SMTP id 98e67ed59e1d1-33fafb97551mr5184629a91.7.1761252658519; Thu, 23 Oct 2025 13:50:58 -0700 (PDT) Date: Thu, 23 Oct 2025 20:50:31 +0000 In-Reply-To: <20251023205041.2027336-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: <20251023205041.2027336-1-willmcvicker@google.com> X-Mailer: git-send-email 2.51.1.821.gb6fe4d2222-goog Message-ID: <20251023205041.2027336-6-willmcvicker@google.com> Subject: [PATCH 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 , Peter Griffin , Ingo Molnar , Youngmin Nam , Will McVicker , Hosung Kim 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:39 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 83A732D0298 for ; Thu, 23 Oct 2025 20:51:01 +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=1761252664; cv=none; b=a9ts4J4EmLBehggVn2+ySg5XwhTLHvpd+e/bA7oRxTKEDTYAwMHpGIwPwLeEW9MHwgT0hxpq2sdIfWz5Q7ZrzmpgYVwYpC8vfPYgU7E4wd4tCMjF0SGJS7EF/rJ2RQ2FiF/+2Azk2xhb2nrBvFBgVlf9E32a4P1Pyh/ynz/72ks= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252664; c=relaxed/simple; bh=CESpfuQKSTARvsi02223z0qLzhBNqlIQPJ9hcvIXEto=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=UUQNkfUYTNVq6CzgzGuzWvCDIhsiloHcObDy4Cpa9LcO/II+63ZNwjomKYtTDXApVxj3vcuBib18Cmbzk0V+NoUiJRH7QwrZCLvRLh1h53n1Hp4WNgcBQrM3g+v6xU+1+u8qn2+hM6JwxpP6C72Vr7v8HsUflvIc8XG0I7VIriM= 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=iCfyKqwg; 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="iCfyKqwg" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-33428befbbaso1469049a91.0 for ; Thu, 23 Oct 2025 13:51:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1761252661; x=1761857461; 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=iCfyKqwghetGnOVwe7cBH63Hi/oXTxTk56X3X4HIV9cJ8JN7tGwppDNdGoGmCUDOro e9SZ295apS49mWIqy1E2g6tIVvYqmpr7ZUuNDFaKwj+Ej4z91eJD9wEst1+FdUVVOyQw EZ/sZz30avVCQGWvSA081AxNZDlmAAJJLbfwzIIF6GmDtwyJq7EgQ+TsNQhWHnT3Mm2I ZPOY6X8njyFQNcpGpiczXs2T+o9MRsncUbywgyncvo/eIgHXiq9+DQWt2eo4gcqcGUOd Zg9t1QA13SynhHE1dXcy8DC6Acxo4SP1vBWkHtkRWLi9hgz9RQmzcDhp0LYzDCwHJSEp eTuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761252661; x=1761857461; 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=bIRe/xvPlVoxDHEdx8M/DDfep81T6D1lsgEbTMR8HFv/kA9g0Ev6+q952/aOlaMxVg g+1BsUux1Hm3xRIRUyAcGwx3g96yaVOeeJC1RFDPhHbpDExA86pc4xapjMgAHjiZDQ5d ssfpoGe8largJNwhAxluXOjGodIyqMdt+YOpOB66fM4taQSqNljVLMNKx8ueYDQjDcBx ifH5Ukl7HJmDXta195n9mMyb/wagTObgKPRPI14nyt7MHADB/iqj9znqxPL0MbWXg2HF WUCYnG1/oNTjJ97JMPZJ2ri4Z2ri/Si0wuxBFnjlFrLo6XEaR9wrUkBc3iEnDnh7kHvz KHBQ== X-Forwarded-Encrypted: i=1; AJvYcCV38cFshNsyEpdtg8evSCvbNklcyi8LV3h037D3AmPfhY09N3Kf5ylF3/2frTmX9pb1f58+YXYyQawDoZk=@vger.kernel.org X-Gm-Message-State: AOJu0YzTSofmte1GilSyOGprjGZI0EkYOMDMSL4R+qdIYU4PwREX3i8K X+vdjwFfMuy8eR2tl8jtL6EoMAMajWCtLCYYAculZnq178vZcyw//ybUexbg7Gt6x36Hvvd3l5N PoY21Z7WBY0EPK/BjpnaAhJ1ixq3lbg== X-Google-Smtp-Source: AGHT+IGZwCLIN0qBdss7bwnQG0xdzE5CJ3qy6ePDJaDdI1o3uYJcy1pIi0nEoqY8x0tKoW4cyHmd0aXb3yasAgkkA78= X-Received: from pjnj13.prod.google.com ([2002:a17:90a:840d:b0:329:7261:93b6]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:28c4:b0:330:852e:2bcc with SMTP id 98e67ed59e1d1-33bcf8e6348mr33498556a91.21.1761252660734; Thu, 23 Oct 2025 13:51:00 -0700 (PDT) Date: Thu, 23 Oct 2025 20:50:32 +0000 In-Reply-To: <20251023205041.2027336-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: <20251023205041.2027336-1-willmcvicker@google.com> X-Mailer: git-send-email 2.51.1.821.gb6fe4d2222-goog Message-ID: <20251023205041.2027336-7-willmcvicker@google.com> Subject: [PATCH 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 , Peter Griffin , Ingo Molnar , Youngmin Nam , Will McVicker , Hosung Kim 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:39 2026 Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.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 A7EEA2D248C for ; Thu, 23 Oct 2025 20:51:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252666; cv=none; b=sGS+jvBOU4bGUT79wD7N9DaP0NojyheRggtfXsEKQDx+oyMnW5aLS1nta+CB/ztZp5p5pPEBG+w5hj6gPzY3gopbKyVTimw3zNPTo4Q9npTGOPtAZSQBFxsNulTJhychWl0LwcD1M0PFNaa9ru31wfyzKZ2RzeXRv/K/gjaS71c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761252666; c=relaxed/simple; bh=osKoAFkbQ+bMRzkFjXuuMZNRDBV5CkEsQ+WWxrz7Ba0=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=ejcekcuj/W6xpEsMthW91W0W9gdx3CtIa3wYuBB7tCscLrZPf4TSckPUOsFjOf3CfM1i4CHT5yM+zIVnyoBBPAsJcLxl944r+sUVP48s8zc7aUL06e04tv0EIeMq6iIsIeZZ+paS5qz31uQJncNgRXZp7u02+wDYJzQAcM9+Lik= 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=vaO3TSvX; arc=none smtp.client-ip=209.85.215.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="vaO3TSvX" Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-b57cf8dba28so1024956a12.1 for ; Thu, 23 Oct 2025 13:51:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1761252663; x=1761857463; 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=vaO3TSvXCUvP2L8xrsnuCNSMhjVt2QFvvm2JuCOZaXI+G0fWv1G5zWwDFJeJel+Nmr DFgE7NyRwR9PCVdZ6gCcCFdp8pMW9G+TblAE5utwEfbL3Zrv59FxDbogL2znEEBMGfAN +TcT4J8ByBuiHgWmN8r7qZXdtPlror0fFkrrmh1kud7v4XnMbaaKwoxG/B/8dZitv4W8 eDN8jJCYxAnJyXX147Y0dz4zPx4Gob13EPn3B4yHfLscqDB72q9N/JcgxLwi8NcLzVEK E8rIpZTto2syYZpUgacjbjT6FNyi2uE1cyds3wc5PgXiQVz1oZZnnP19e/I14Wlk+9p2 vOUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761252663; x=1761857463; 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=aM54Ql4OwzCJRNJmTAcga0rYnwbV1cxy95Hp+pr6k1XdAnugJmNa3YfU5tzYCFxlv+ rlXsEmNnDhB2kiKFS/GhKfKRAv8/cN9mPUEFmPe+syx91PaZY1CIp11TIIA2RQ9mDaet VxmlNa8EC2LCWBWQAYHZLjCRffIvxrdsiTOFPDh11Hzz47Xp3QN93VgctL24CZUVcBVI S2uK9DeHA2UDD+0bexF8R6d9XX6l+odZxuu+QSGkWL6LeSxuSRj5x4/6LreSMNr3QJUg TK8aEo5pUPVpNegct5pGQXZu0fHc9+D8USbevvorujQBxkjbVUbve4UKPap9OWd/p/gs kLXw== X-Forwarded-Encrypted: i=1; AJvYcCVcZwC57RuICQ/YyB6PYQkwsEtd5r7AIz18DsbsjGR3nHus6yQ311t4C/gcIUMtOK39FVas5UqOO7y0mLw=@vger.kernel.org X-Gm-Message-State: AOJu0YwWxjd0ebLmJc7a8/26V7RkT+G3uTnQCcTndsi2lPFoMrs40+TB k9ov0O/rqBrYhMH2NiyfpZfBt4OHPUJ1YzFfXbRBOvEYeO+NBSbFluaJ5Dv2LxkLhR4dH8yFjBC R6+GThJqRXvvQrqSk40GTmS6V7sWbtQ== X-Google-Smtp-Source: AGHT+IFyBdY0WL7vBw43kUVAfg+zsn8947aI2UMr2nngIWa/h2HcRjI0oJntAshNL/DThPFMcrGZEe5MnbRO0EsgMrM= X-Received: from pjot4.prod.google.com ([2002:a17:90a:9504:b0:33b:c327:1273]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:3f10:b0:330:7ff5:2c58 with SMTP id 98e67ed59e1d1-33bcf85ffafmr33543640a91.7.1761252662882; Thu, 23 Oct 2025 13:51:02 -0700 (PDT) Date: Thu, 23 Oct 2025 20:50:33 +0000 In-Reply-To: <20251023205041.2027336-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: <20251023205041.2027336-1-willmcvicker@google.com> X-Mailer: git-send-email 2.51.1.821.gb6fe4d2222-goog Message-ID: <20251023205041.2027336-8-willmcvicker@google.com> Subject: [PATCH 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 , Peter Griffin , Ingo Molnar , Youngmin Nam , Will McVicker , Hosung Kim 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