From patchwork Wed Apr 2 23:33:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William McVicker X-Patchwork-Id: 14036593 Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.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 725601F5844 for ; Wed, 2 Apr 2025 23:34:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743636883; cv=none; b=dVHr6j8rA87qnlFPVICK6GIkCUomE8J9P7SQMkv1tF5LR1FLekAMGW9XHEN0Q6G2mu4qV13+PiWjHVgIPGJTB1EUrStATvEj1f87PU3iR+B2nokJc4zG8Wis191Qbb0nQ2K3IAREZ4bxtXJSfQJSLXqQw4oKqQXUT4rIIU8XRNQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743636883; c=relaxed/simple; bh=JuJg3RWFLu45pm77OOaGXe9n2ejYZstIDW/7RArcbeY=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=tc++DlmWGnDgMcNkjR67ruNzC8QDspZnMiN5fN+B8Il216xhBpNgr6yMTaRpmhPpJNfTrGUdZmeNioQReAPLLzSJmazvccU42UAOGIaXGwHf72hwTOZzXVtkXSKyVpFre88y1mSGpIb0GBBvwICd4eOBS3Jtv/HR93Z2y/g5ZZY= 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=Oe7OE2Lv; arc=none smtp.client-ip=209.85.210.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="Oe7OE2Lv" Received: by mail-pf1-f201.google.com with SMTP id d2e1a72fcca58-736b5f9279cso275909b3a.2 for ; Wed, 02 Apr 2025 16:34:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743636882; x=1744241682; 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=5xi5mLFbZUHgD9CBrYI3yiaxvs0vxI4kX9JEPJJ2pFk=; b=Oe7OE2LvcWTeDfs3Imd8tDUrhPyqV23tYaIJQDpjZiw7YrBIb1Ra9w5+DgAYpUMVao m7ry4nrp8aBSVVfA1dmQyMIo8MF9b3mMa9qarOgJmlO6Hi4hkH/3LnyQxgTogV8BQmp4 qaeJgcyK3hCn/AhmrjFRPKze0GQaCPBJMYyNcdYa6pTKZHHYQSOhWrdQlIqzsIEQu4Rb vJw48FLbHDe+eE7vxMJ3g8wEngLXHmh5nTyz7J0C719yfEjBfTOtinBYOYY+NzkOpIbP QI7x3kyobXmumBuM6bU8spy7jr2eVpZm/t+cfXDSK+6YvT6NkNnnPuISo0FW/T1IJeuS c9Nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743636882; x=1744241682; 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=5xi5mLFbZUHgD9CBrYI3yiaxvs0vxI4kX9JEPJJ2pFk=; b=CAGQa5r+tmSgvthEOn7REIEgYTy3F2jwOAZwAH5w4vYIO5lQRRc63y6KjuG960kFYc 4QycEofmLrISEtBuRtCxDsg0dlI84c+0YmG8nu6Mw1g4DHD1yTKEntd2Ru2/VSvHzMfz GdhEIDaEikMfe97oEJuYBk8ZrG9m+yvxpADHOIa9wh0j109R9Y3NlMxzunV9sdeJEZbh rMpFqaeKwBYWtVTyRs2H4/mam9U/Cp/E+5PKQrW6Wx/88KqeYmuPs9V1vLrD898rI4xd p0PlsRoRm0ZTDrnHfgM8y8rY5zGST1TcMbLIxzT0Tn0a5x3ULKVNX2XDAhc5mZvS0bHl BCtA== X-Forwarded-Encrypted: i=1; AJvYcCXk3lTa6g0UobaIpj2rRhDbC4Pnu/Ube6CDRZIlYUzbTOkRMtfAbGZo8U7B20QA8dzXGdPJXteZDlL350gQQnQ/Bg==@vger.kernel.org X-Gm-Message-State: AOJu0Ywm7kesVzaaOV9DmGvEuguPbGVYyYPGvzS3zs7yJpTkMM8/v/Th cesfmJ8bU6gzcfofoC8A2eww6Jxe4GAP/YPe5ECmukN2NZnnH1VW9Cmbir/oeDFVyxBR7nqOtWw S6T/igbBRoAhVRL6QkK42hnr4gA== X-Google-Smtp-Source: AGHT+IGTNM1wxMMNBBsjkTvh/Xn764ju971ydcAgLFhQFJR70t7PGAxvgV/oZ/gvmmS2Z14LxOex+r7v9TwTloj7VDM= X-Received: from pfbfa18.prod.google.com ([2002:a05:6a00:2d12:b0:736:aaee:120e]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:a02:b0:736:62a8:e52d with SMTP id d2e1a72fcca58-739d85573d8mr639945b3a.12.1743636881683; Wed, 02 Apr 2025 16:34:41 -0700 (PDT) Date: Wed, 2 Apr 2025 16:33:52 -0700 In-Reply-To: <20250402233407.2452429-1-willmcvicker@google.com> Precedence: bulk X-Mailing-List: linux-samsung-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250402233407.2452429-1-willmcvicker@google.com> X-Mailer: git-send-email 2.49.0.472.ge94155a9ec-goog Message-ID: <20250402233407.2452429-2-willmcvicker@google.com> Subject: [PATCH v2 1/7] of/irq: Export of_irq_count for modules From: Will McVicker To: Catalin Marinas , Will Deacon , Peter Griffin , " =?utf-8?q?Andr=C3=A9_Draszik?= " , Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alim Akhtar , Daniel Lezcano , Thomas Gleixner , Saravana Kannan Cc: Will McVicker , Donghoon Yu , Hosung Kim , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Youngmin Nam , Krzysztof Kozlowski , linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org Need to export `of_irq_count` in preparation for modularizing the Exynos MCT driver which uses this API for setting up the timer IRQs. Signed-off-by: Will McVicker Acked-by: Rob Herring (Arm) --- drivers/of/irq.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/of/irq.c b/drivers/of/irq.c index f8ad79b9b1c9..5adda1dac3cf 100644 --- a/drivers/of/irq.c +++ b/drivers/of/irq.c @@ -519,6 +519,7 @@ int of_irq_count(struct device_node *dev) return nr; } +EXPORT_SYMBOL_GPL(of_irq_count); /** * of_irq_to_resource_table - Fill in resource table with node's IRQ info From patchwork Wed Apr 2 23:33:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William McVicker X-Patchwork-Id: 14036594 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 B215F1F8720 for ; Wed, 2 Apr 2025 23:34:47 +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=1743636889; cv=none; b=eC39qmxi1fbVW1oEFy5p/ToppA1S8bIgZXWDColb7x1jvo1ZlLrqdBbtWsPGBu/FOxdhu4tX1uAz9yrHcoh0+CCnUmwbONOaKwFonvgv93+Rwf/ibXedhr0BwRvSoL8lMPDzhKQZQUaLkd7TuxxorrbGgtGv6a6oeUU1mKzaN0I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743636889; c=relaxed/simple; bh=ueaYVRAKsehc2srS373efDZ/O4VukJoPLwDJHqA71FQ=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=X5B8y5DF2Qs9dpSRwcREoN4zTxMSFfYkYzfYYWtJalnb3Q5u2oTlHAJpU0nmDw1gZ4OkNNPp6KyjdwtuZXIVgbvc6rjJDmquCZa+wLH8P3MHJgo7aWkLa4mH3m6jsW5ef+UoXaCWe06dsZy1RzT+tMm6dAyPKautxw3AKDJXyIA= 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=1sxlpa0H; 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="1sxlpa0H" Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-2ff55176edcso248174a91.1 for ; Wed, 02 Apr 2025 16:34:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743636887; x=1744241687; 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=cVr3hb8iK4op+4MgIQ86kZFXoHl/MtKw2J/QRgo4taw=; b=1sxlpa0H1JF8BrH7hggp6Na6klo3Gkj8cXo/wjXBmDLkIG5lpj9IA2IGXXdIk3fowQ TCYeblyVJHBH+/sycbO06EdbqQwgdj8qdk0ap08vgjtmSjIAsUoBxrfmCdwOCaYS2MQC +WwRfrWl9mTl0lRWZ1rIvj4W/cjXdGxUm+Tppdc2ogCXDf6zfir+nS2+9FR+T9nzVyEJ A3mVrALbefXiE2ZVqsleh86D7OX3tdaCREAeguPQoKVGkDI82UzwytEr8/Sgl07aRjoI GJIuY5sPCdrs1tQ93XhOqePWKN9aHicUas8UV13vUf+s/HF9rGRlslWyjfdFVTijzNpq UKuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743636887; x=1744241687; 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=cVr3hb8iK4op+4MgIQ86kZFXoHl/MtKw2J/QRgo4taw=; b=faz9g2mdBTJSPBlRPAfsWtyrXYqZri7ZumZahcoH8snmLxsque5FP6/1WklmLcy2C/ yS7S1n/YAYKEm8ypdxbtFD/y+cRxCZgH+jfCp5bnMtMB8EsJA87DRpyIDD3vDZenFYwr X5v33klHiC8l7YPAZjJaHRRpFShW3rQ9IDu6qdWLo+xsHVCNSKtKev0A0ZRYEXlsIk9R 091jmgj2LXmQqgcXHFM51OArHawAM8UHSkUKFR0K3a9u5XHOblopUE5Nw5zPW2Ty1SOJ PjZv60YtWKXqDaQQ3kQ4nhfNmY2Oq/GBE58LQHmgXckmZQ1PhcilyuhRfobUpILPXFSR ydYQ== X-Forwarded-Encrypted: i=1; AJvYcCXMoeBW9pS8/OJoUOBhjzRj4v0LMB1GGyw0LQE0cYqPwvhzhI+t0QbdLTpMs2Zecvgi/wY3rkK9M7k0oSRrYKciFQ==@vger.kernel.org X-Gm-Message-State: AOJu0YxQOZxlzYbVccYhQesec4EgOasRziuGbk6Y9VIl5e4OYOSft2D+ Ey63idg7m/o0LVRHfosoZlvZx60v9uPC32OzDgiCE5EzQfDmpV9nfGk72fPwYTsHjn8qo20K6Kd 7Fna590HhlFDeW/seV/eLR2FOsA== X-Google-Smtp-Source: AGHT+IGFOOhmWr3Z6viGq+ulkQ92nT2eBCuYGsXtiOmRX4Ho8ivQC5UMWY8LfRMuamRE7HQJon2Mz8MvCxGpPT2O6fQ= X-Received: from pjbee12.prod.google.com ([2002:a17:90a:fc4c:b0:2ff:4be0:c675]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:3b50:b0:2fe:a0ac:5fcc with SMTP id 98e67ed59e1d1-3053215c05cmr20698254a91.34.1743636886898; Wed, 02 Apr 2025 16:34:46 -0700 (PDT) Date: Wed, 2 Apr 2025 16:33:53 -0700 In-Reply-To: <20250402233407.2452429-1-willmcvicker@google.com> Precedence: bulk X-Mailing-List: linux-samsung-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250402233407.2452429-1-willmcvicker@google.com> X-Mailer: git-send-email 2.49.0.472.ge94155a9ec-goog Message-ID: <20250402233407.2452429-3-willmcvicker@google.com> Subject: [PATCH v2 2/7] clocksource/drivers/exynos_mct: Don't register as a sched_clock on arm64 From: Will McVicker To: Catalin Marinas , Will Deacon , Peter Griffin , " =?utf-8?q?Andr=C3=A9_Draszik?= " , Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alim Akhtar , Daniel Lezcano , Thomas Gleixner , Saravana Kannan , Krzysztof Kozlowski Cc: Will McVicker , Donghoon Yu , Hosung Kim , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Youngmin Nam , linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org To use the MCT as a sched_clock, the timer value has to be accessed vi an MCT register which is extremely slow. To improve performance on Arm64 SoCs, use the Arm architected timer as the default clocksource. Note, we can't completely disable the MCT on Arm64 since it needs to be used as the wakeup source for the arch_timer to exit the "c2" idle state. Since ARM SoCs don't have an architectured timer, the MCT will continue to be the default clocksource. Detailed discussion on this topic can be found at [1]. [1] https://lore.kernel.org/linux-samsung-soc/1400188079-21832-1-git-send-email-chirantan@chromium.org/ Signed-off-by: Donghoon Yu Signed-off-by: Youngmin Nam [Original commit from https://android.googlesource.com/kernel/gs/+/630817f7080e92c5e0216095ff52f6eb8dd00727 Signed-off-by: Will McVicker Reviewed-by: Youngmin Nam Acked-by: John Stultz --- 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 = { .resume = exynos4_frc_resume, }; +/* + * Since ARM devices do not have an architected timer, they need to continue + * 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(); } -#if defined(CONFIG_ARM) static struct delay_timer exynos4_delay_timer; static cycles_t exynos4_read_current_timer(void) @@ -250,12 +256,13 @@ static int __init exynos4_clocksource_init(bool frc_shared) exynos4_delay_timer.read_current_timer = &exynos4_read_current_timer; exynos4_delay_timer.freq = clk_rate; register_current_timer_delay(&exynos4_delay_timer); + + sched_clock_register(exynos4_read_sched_clock, 32, clk_rate); #endif if (clocksource_register_hz(&mct_frc, clk_rate)) panic("%s: can't register clocksource\n", mct_frc.name); - sched_clock_register(exynos4_read_sched_clock, 32, clk_rate); return 0; } From patchwork Wed Apr 2 23:33:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William McVicker X-Patchwork-Id: 14036595 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 A2A6E1F7545 for ; Wed, 2 Apr 2025 23:34:49 +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=1743636891; cv=none; b=MnxL7tN2KT/mAqC0Pw4ueSTNu9uJQZO9sWvVRhJp5LYqph+MMTpxihMgw7cZHb06vd4/KW0glL4bKXZNLbIb4aWphKfpe+L2AT02+vmxwn9W7sn5J4WFdT/frSV07sAy3PY91jvnRISIX36lT8BsZTJBUoSRtboHDWFQn/c4V1I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743636891; c=relaxed/simple; bh=ybEIMl+QUKadqWELK4Gmy+9k+si2Cgc18MkjtCiGmP8=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=ZuWFF9udR2fD04mkLTHA/Hfz5qw14zR++ehtT0vgBhMnuL6Br6t5tGMBT8KytvtnjB4iXH+ll1s+YH+vBWG222TlEnwDrWMqzt1saATxZCRak7fo5hWrjFOvwXnFOTGheC28ahOnoMfsyHvHeI1XkH7wQretIO7+1+q0fSqn4I0= 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=21th/tS6; 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="21th/tS6" Received: by mail-pf1-f202.google.com with SMTP id d2e1a72fcca58-736cb72efd5so244039b3a.3 for ; Wed, 02 Apr 2025 16:34:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743636889; x=1744241689; 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=igB5EzbZ4UddujnhN5pTR462QEE2CggaY13KiAdG+kI=; b=21th/tS644a9Q/tsOdV+XBf+z2xo87d+KHLOe0IYRo9GJdjZSDQHdPNKM6A6MWddgY ITpdDLu9Sey5x4Oy4/AXyg1X+CY5fwGKvbEEZwY6BVjBgHw0ohNvRZ7aNyeN3qWM0p4g FeGW7yuo/h4k/uSGBS0aM4lcs/SvewZvLyHRxHjWPZxnV4qP6zJKgUDEetN9X5Ldb74E +lvsqOWQgW1U+Hnk4wp3Hrz7bJ+EKNurT1o6gQk/ZXXwNwCR9XQ4jw5Vp6gWNaEvXLzo idj8gEIRDEqLio2twqU+mntQzFwDusnBkerT/WsAaKkRkdENnr8Zlcx8YioaeyNX51yO RUIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743636889; x=1744241689; 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=igB5EzbZ4UddujnhN5pTR462QEE2CggaY13KiAdG+kI=; b=db5G6DSJjfa6hloGKZt+Fnnt9QtfdDaoft4E/yOD/Q5t1R552cFYNkIsYovos8EeL3 KGMuFhk/dato7I76XtNdq9lUOrAt9fFwBiSqy1qZsQdWO5RLIg5DJUieU+juUzO1v8+7 9fNGSF8SnWQ9VJszTU5uIBzpNRgiv4Hr/GTkb3V7WXRoWwjMrNbHS2boiiBmb9t3jocG lkZEoL6gg0kI+wDsMWDSVWQn/okZkwo8zUZEu3I2BLeF0nDRPQr6zQtyVaZN4YTifDnW Qnkx9jTIhK4+aznBDHmGoYkuBUsQGC2v57pPiXLRE2oHiF2Kb3WQtCxF4b/zuPOJhrWP 6lrQ== X-Forwarded-Encrypted: i=1; AJvYcCXn8HZ3o2aIU5ayjehl+4r/gPi14/rXThWrkenzb5YCsHPD6S6AQkxpvYf4Fv/1KxfKULwXIR1//aGaeuXFWxzzqQ==@vger.kernel.org X-Gm-Message-State: AOJu0Yy/DAERlHyhpzSnwVNMxzDpI7dhx+wqVseKRjB+/Yo1vSjoIkuB pT5rYsTdc/q406r+5fKq8tLXHVwgA1lQdW2xPMcnnJtp8e+s9ijKWxVRCy0qZOTLTZ5Hd4QsHkb Aly0RYOO/8yVETXzctCTbkAs2aA== X-Google-Smtp-Source: AGHT+IHliF72RhoVlooK9L+c1Y4iuJGgr9wHIupvklzWWd4gEqQfjkuZNyDHtoJev6b5CUsHoC8Btppiv9aU79bLH+M= X-Received: from pggj2.prod.google.com ([2002:a63:cf02:0:b0:af2:3436:98b5]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:2d28:b0:1f5:93b1:6a58 with SMTP id adf61e73a8af0-2009f5b912cmr30610075637.8.1743636888966; Wed, 02 Apr 2025 16:34:48 -0700 (PDT) Date: Wed, 2 Apr 2025 16:33:54 -0700 In-Reply-To: <20250402233407.2452429-1-willmcvicker@google.com> Precedence: bulk X-Mailing-List: linux-samsung-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250402233407.2452429-1-willmcvicker@google.com> X-Mailer: git-send-email 2.49.0.472.ge94155a9ec-goog Message-ID: <20250402233407.2452429-4-willmcvicker@google.com> Subject: [PATCH v2 3/7] clocksource/drivers/exynos_mct: Set local timer interrupts as percpu From: Will McVicker To: Catalin Marinas , Will Deacon , Peter Griffin , " =?utf-8?q?Andr=C3=A9_Draszik?= " , Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alim Akhtar , Daniel Lezcano , Thomas Gleixner , Saravana Kannan , Krzysztof Kozlowski Cc: Will McVicker , Donghoon Yu , Hosung Kim , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Youngmin Nam , linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org 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/+/03267fad19f093bac979ca78309483e9eb3a8d16] 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 device_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); From patchwork Wed Apr 2 23:33:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William McVicker X-Patchwork-Id: 14036596 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 C66A11F76C2 for ; Wed, 2 Apr 2025 23:34:51 +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=1743636893; cv=none; b=KCU498qeFzyytVA6aI8blTFe/eaAEKuHOoWpheAJvMKSWJouOlVWBi71KjkjPWUhSUgtJpfUpiwzTSNhf6moEo/1jwRTjhee1FE0gdynw5rjRK5JDpDiXXNDabIYOsG6NOkwoIzoRvM2GC7HjZ5pq/VdCIiTlZfWRg12BuruCMY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743636893; c=relaxed/simple; bh=KGOLMUoqhgT8o6lRGzM2BT8QYWSv9CekKOeXvgxXs90=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=JIUwF9TjzMf1DlyCkfaOnFoxKriEIaE9gSU+lljeNwxDW274WQYjkp6zrQfDzzONUlC1kCMq9tgo1ppN+27FRq40X69so7rZUF/mryQg9ikFjXRefdUqusM8V9pHuABUBcJBVRLEQGESHSIVL/0sA+QwIrG8pXFC40dM+O1CGVY= 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=qZj/5GnI; 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="qZj/5GnI" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-3032f4eca83so242918a91.3 for ; Wed, 02 Apr 2025 16:34:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743636891; x=1744241691; 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=5wAloBg1GSJoUoSs1Fe6e5szwOsXLtBgN31oDTUHQ8I=; b=qZj/5GnInh0GgTNYDlKb2m0KK7/rDqyB+1B/5hXyaPLCb/ZDJ/QK5v2gotsKijJTv0 s9qub8gB7K7vWPkMG6PZ66PB37ZOnMIhOiWzbdYSOZGF/JNqoz53uMmQXgHQnyXGd/AH RFczcp228DqsEYLQ5xOqRw1Aa+sQLzyc0Mo4IZ7gge01nwlEgwenSP4T16Uwj6GLaRJ8 7C2QA9d4CXWyWwugh2xNfuJHtHOCfzIRoRdurQMxHmBsSP5gXcY3QHs6G5mCQGzPR9aK OA8em3la9dbRgxyfXS8DCOxxcfmoxH6EYY6w2NMpsd8S6x7KgzKFopgL53wLsVQ1cLxb Sj9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743636891; x=1744241691; 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=5wAloBg1GSJoUoSs1Fe6e5szwOsXLtBgN31oDTUHQ8I=; b=tkEsnKDJTlNFbkFHrJQtaSkjd4eMDAf/jTHOsZQVDMGIb5zfZpLplT23cfh7wAnXcO dAzn/FnAVq45JVLcJ5SDbmbSSB4C2mcEDa/cqFIza4ut6Aw71bWMSQQiUKGAmJ9CKwh+ ZR1UopoxRmvAFpx5gDmWyNyjjZGdXNZIZ6N/Qzy/X4D99nQWe0IVROXeuOlGM8ZjbbMv 47e35YzERKUKmA94LnCIenwH25Ryx4uLBmCp25JPdtUskgkGYExgYPckcFu4NKo4ODN0 poNIuj9nPdyo4ZSu9g1QJcmP1jNbHK0FWmKFtLhhVaEy1u++bKlhpnfUrmNFcwIaD5gu yPKQ== X-Forwarded-Encrypted: i=1; AJvYcCXMDaoppaRRk2I5wBx2C1bVFRQcdkO0dhnJlRZcNCQBJ2ZE674ZaXJ1VrPyqZNQg40YNcJQsS8LVF4ZI0m0UdQDbA==@vger.kernel.org X-Gm-Message-State: AOJu0YzNe73MNO+8rg17Uxsv4N+n52Kf1yULHcIE9lA7eSz6ET9vwR7L f/zpo0b0JzGVRjVJ8aoWSxtehB0oxphrHSAM4ciINbWs3zdBuOQnzJWyHwC0eZRD4mhjmZQJBeO IBAgeSxYOS3jrrNHH9Yh8FW7e1g== X-Google-Smtp-Source: AGHT+IEiKn3CQVmPMTLKprEJLyfSe5jv8B99g5wOxhodbCJvNHuufgRdp4KFjo2AWb/3XvYfkZ3bTBmaSOWf4m+NNUs= X-Received: from pjbqn7.prod.google.com ([2002:a17:90b:3d47:b0:2e9:38ea:ca0f]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:2dcd:b0:2f6:d266:f45e with SMTP id 98e67ed59e1d1-3057cbcf16amr864128a91.2.1743636891016; Wed, 02 Apr 2025 16:34:51 -0700 (PDT) Date: Wed, 2 Apr 2025 16:33:55 -0700 In-Reply-To: <20250402233407.2452429-1-willmcvicker@google.com> Precedence: bulk X-Mailing-List: linux-samsung-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250402233407.2452429-1-willmcvicker@google.com> X-Mailer: git-send-email 2.49.0.472.ge94155a9ec-goog Message-ID: <20250402233407.2452429-5-willmcvicker@google.com> Subject: [PATCH v2 4/7] arm64: dts: exynos: gs101: Add 'local-timer-stop' to cpuidle nodes From: Will McVicker To: Catalin Marinas , Will Deacon , Peter Griffin , " =?utf-8?q?Andr=C3=A9_Draszik?= " , Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alim Akhtar , Daniel Lezcano , Thomas Gleixner , Saravana Kannan Cc: Will McVicker , Donghoon Yu , Hosung Kim , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Youngmin Nam , Krzysztof Kozlowski , linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, Will Deacon From: Will Deacon In preparation for switching to the architected timer as the primary clockevents device, mark the cpuidle nodes with the 'local-timer-stop' property to indicate that an alternative clockevents device must be used for waking up from the "c2" idle state. Signed-off-by: Will Deacon [Original commit from https://android.googlesource.com/kernel/gs/+/a896fd98638047989513d05556faebd28a62b27c] Signed-off-by: Will McVicker --- arch/arm64/boot/dts/exynos/google/gs101.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm64/boot/dts/exynos/google/gs101.dtsi b/arch/arm64/boot/dts/exynos/google/gs101.dtsi index 3de3a758f113..fd0badf24e6f 100644 --- a/arch/arm64/boot/dts/exynos/google/gs101.dtsi +++ b/arch/arm64/boot/dts/exynos/google/gs101.dtsi @@ -155,6 +155,7 @@ ananke_cpu_sleep: cpu-ananke-sleep { idle-state-name = "c2"; compatible = "arm,idle-state"; arm,psci-suspend-param = <0x0010000>; + local-timer-stop; entry-latency-us = <70>; exit-latency-us = <160>; min-residency-us = <2000>; @@ -164,6 +165,7 @@ enyo_cpu_sleep: cpu-enyo-sleep { idle-state-name = "c2"; compatible = "arm,idle-state"; arm,psci-suspend-param = <0x0010000>; + local-timer-stop; entry-latency-us = <150>; exit-latency-us = <190>; min-residency-us = <2500>; @@ -173,6 +175,7 @@ hera_cpu_sleep: cpu-hera-sleep { idle-state-name = "c2"; compatible = "arm,idle-state"; arm,psci-suspend-param = <0x0010000>; + local-timer-stop; entry-latency-us = <235>; exit-latency-us = <220>; min-residency-us = <3500>; From patchwork Wed Apr 2 23:33:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William McVicker X-Patchwork-Id: 14036597 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 CC5BB1F8EEC for ; Wed, 2 Apr 2025 23:34:53 +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=1743636895; cv=none; b=QIn4jGlPE9F8Mqvu0zQIhNyMUVmYVftyMFY69ipajKjAtGZ5F5dhLuFhXc83BBwpjCYzQMFcwDeSapB7fhOSjLSKH62a31CkY3OHFP4nW+NL4saqZ1s3vNt3DTgqFJzuB0I/lPF7oDXwBUFhrhaeg8URU3RuJGj52ykVc5AOlMo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743636895; c=relaxed/simple; bh=OAknLtJvsu5Z8il1CGx/QAgW0sT8q2LX/C14tT3L9I4=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=Ul224rQKxJnnSwo/UhEEiV9GrFRpzGPHHL75hQkzGZk7gzwR6KVp/dDU6Xv/ECsGnfYMY4uqW4om44bxMuAicNtrY8JQPrPhLFPegItdJyo7ze06xToCfZa+gOOPBMzZlkObO1d+7biQLwOyLvVuSsUF27iGPzQ6fo5nVHkYQIA= 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=bZPnea8z; 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="bZPnea8z" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-2240a7aceeaso3598795ad.0 for ; Wed, 02 Apr 2025 16:34:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743636893; x=1744241693; 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=Z3woyidQeaVM0OgW9Tejczk+jE7A6Ip+4MgT+pOFZpA=; b=bZPnea8zr75mLFe+j9B/womVxTLhEW9DKjHxo6Ekq2cIR20A6Hu8p86FU4ZLCkb5Hm Qze9JTkvO7Vvgo8p/5t/1XkN7cesYwXtAzyK4YHiyDI/qH9+7EUeQ81Tqw1HS125kbxy eIo55nqEgek57o1FpPrLpKC8iNKMAkKy5UsugoFVJt3mJDVCh+ZBLWVP7JngFotgKbMC JC43EuWN4TPc3IQuTxpBzAlb9RLnSu5tUV7+9PV7wHbSrUysV6UtRLsMqZ/vI7UHrvkD 4Ylv2h5C2lQflDw4Um0/d1yviGlxoAqRPjmeWReOSsvVOSE01Tl2u/uYhXYTFRyFvVqE JyRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743636893; x=1744241693; 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=Z3woyidQeaVM0OgW9Tejczk+jE7A6Ip+4MgT+pOFZpA=; b=T1fn2AR6MNI8JOJiPhNhda2CNfEVENLyMHHWsdWJHopUiFZq/zsykzhctlcIullqQw m6tYaxE9ogtEkPR9XqE7uRw4Eum62T9D+qo8AoSZboc2gtXsorisQLK65SNuMeqDZDlH JsDz0fNdAIhzrs1eYpBy+YRUeqVMpoPRan06BLbBvu0AfxXgx28C7tMN+12MllBOfUyA UKB4HSmyhlaCmky4wR75E3Fxh25MH36Jpn3umaMxpz6g/3uhDIifesoCBpZ/KxOoyJl4 3GQbmSVm0pWDJ+GJyNmJKWxf8aiXjrGT7u0MCFg8gishdLKPTOX9Y72BLEYrrYr8QA5Y xbeA== X-Forwarded-Encrypted: i=1; AJvYcCVgxKYaj4jdi9zy553pHNs4cmeRF57LHqlnoPD6NLoJEdkkC2I/nRT8cWAavy03eOBc55XRvKwTroFgZcRP4kmAqw==@vger.kernel.org X-Gm-Message-State: AOJu0YyNFXnjNYDHAiC7IKclE9KGOyMsjLqzn1VtxtEUBZAiOjgTQXf8 PP5M4NC21lOv0ovWD495jnQC0EBNeNbn6tjoQNL3ZicxlGe5LUJ10ZCr6o8CiHLKwlEQKrgN+Oz KXaF+hEzDsGltJhCkIGCkUBZmlQ== X-Google-Smtp-Source: AGHT+IGiCVuhnR8Hm4ls6yhYVA+bAhMO7b7R8+FdaaPf0Sw6oW8BjVfyrFlY1Hg1Xa0Er5xFqEgThNby8zWx1wNh1Eo= X-Received: from pfjd22.prod.google.com ([2002:a05:6a00:2456:b0:736:9c55:9272]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:cf0f:b0:220:fe51:1aab with SMTP id d9443c01a7336-22977e0fa71mr9553365ad.38.1743636893194; Wed, 02 Apr 2025 16:34:53 -0700 (PDT) Date: Wed, 2 Apr 2025 16:33:56 -0700 In-Reply-To: <20250402233407.2452429-1-willmcvicker@google.com> Precedence: bulk X-Mailing-List: linux-samsung-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250402233407.2452429-1-willmcvicker@google.com> X-Mailer: git-send-email 2.49.0.472.ge94155a9ec-goog Message-ID: <20250402233407.2452429-6-willmcvicker@google.com> Subject: [PATCH v2 5/7] clocksource/drivers/exynos_mct: Fix uninitialized irq name warning From: Will McVicker To: Catalin Marinas , Will Deacon , Peter Griffin , " =?utf-8?q?Andr=C3=A9_Draszik?= " , Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alim Akhtar , Daniel Lezcano , Thomas Gleixner , Saravana Kannan , Krzysztof Kozlowski Cc: Will McVicker , Donghoon Yu , Hosung Kim , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Youngmin Nam , linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org 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+0x258/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]=WARN, [E]=UNSIGNED_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 --- 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 a5ef7d64b1c2..62febeb4e1de 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 = &mevt->evt; - snprintf(mevt->name, sizeof(mevt->name), "mct_tick%d", cpu); - evt->name = mevt->name; evt->cpumask = cpumask_of(cpu); evt->set_next_event = exynos4_tick_set_next_event; @@ -567,6 +565,14 @@ static int __init exynos4_timer_interrupts(struct device_node *np, for (i = MCT_L0_IRQ; i < nr_irqs; i++) mct_irqs[i] = irq_of_parse_and_map(np, i); + for_each_possible_cpu(cpu) { + struct mct_clock_event_device *mevt = + per_cpu_ptr(&percpu_mct_tick, cpu); + + snprintf(mevt->name, sizeof(mevt->name), "mct_tick%d", + cpu); + } + if (mct_int_type == MCT_INT_PPI) { err = request_percpu_irq(mct_irqs[MCT_L0_IRQ], From patchwork Wed Apr 2 23:33:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William McVicker X-Patchwork-Id: 14036598 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 E33C61F9F51 for ; Wed, 2 Apr 2025 23:34:55 +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=1743636897; cv=none; b=mN0bPYkQLgkpRJg04k2nwnYWksLV9FnJxaTt7Y+ZwqUFFskajWwd+CayW235FR1ys9AaGGI6yZjjcRMwYkwPt/H+J90jHe56u1i1FeV8rijCB2/NRTbZlXBHV4udD1dkFKkXR/fwWfeRI9cgHTzl9UeQP9PZ3xo35r3XzmgCOKk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743636897; c=relaxed/simple; bh=qAYEYh13xb1QG7YK8KWZYMX04aS1UtrvsKb32eVZ+XA=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=Un4T5s3p6Hx6HO1U1o37lRbyJOt8MnUSLhDdtan04BXQ4Xpi/SoOga6tiqiDbhgcBLFBVvnapDC7JQPCJt8YenDkEUkdrKq2n362a+WuZlMG7NjQwNgDYyb2iC6xuPxs2CgtFFun6sNetl6P6TYCrzEQ1xfKr7CYaz2+U06aUsU= 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=mWwL3sBe; 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="mWwL3sBe" Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-2ff82dd6de0so241468a91.0 for ; Wed, 02 Apr 2025 16:34:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743636895; x=1744241695; 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=hT8+V7ZuQjQdgRqgqrLtrWk6gURFJ9+tH19teOBSnwg=; b=mWwL3sBejdnf9rKa6ytoTL/Fba3jwTzCEjj/EYOQtxPmMgyotEFlSldxpXdCbS+Pnd 2mi3/pF7DrN4PkfpG3wE3PrmTL3Q/8KwTaoP2tAAr3wS+bF07ipKvaJUis0/tQooqT4j qH04YbssOb0SuVZV4a6brgWbC+spln2DAost4cOQAKZV3LUAr0cKWntKk2s/ju5PPn7b zNPv0o00VWu1TPdyrUmQfHVyquy0Iyd16l8c39KQ2TfrghFhv0Hqf6vM6jJHNbAgJLPb CwnuHI+Bx+1nNZWVdqOtqjIalCZiVaOCbcmcc7oe4vlqrkhmQZHFJbulN8ZVmvQCwfee XdyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743636895; x=1744241695; 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=hT8+V7ZuQjQdgRqgqrLtrWk6gURFJ9+tH19teOBSnwg=; b=XaWkyEXF8w0dUutbN4/9hmB542qprbNE43F462gNbId3pykbe6CZ7SKFphaUlwH8d/ 8l6cixWHN9gwDxDHOSQN/ciW53OxGbGJGIC70UxW6Pr9DHbRs9HtPMv20p4iX7ecVurk qzceL0/qyvxiljHJFQwDEyBCuhI1Cpfk7NGQGu9rRPQpWKcTFagee7Ly5jOgJCoK/0gI 1Z4VH9tWmV5IsSAEbIxNMr4qTSXedfwwvGDMUCmACPcdW7Ael3Cny6h30lv0FTTg/Ho/ TgCLubPAflXuofY/soQnCAdxDqTTYpSdoAhg4W7a4t5JxpLsasA7ckLPaWGYyagjhISm xBOg== X-Forwarded-Encrypted: i=1; AJvYcCVRjkcS8s4qzY4U+INR5EurvmjE14C+heXgNOgVIA/nvDa00ithleEsQ7JmFhiCXnWGlEM7avM506B8j52KyE39hA==@vger.kernel.org X-Gm-Message-State: AOJu0YzwEsP/VoAj4AfiOPKhvZZuC8lNyqK6H3lCdrbtPfY+V7WG4oz1 45mYwKyVQuU5GIlAijgJj35NZTWJotVKt8s6rKSI4sF8vV+CsJV5CeVVr1zlv3nMpO4r+4chfAQ hSxxIT6lizR51j9d18d9TiTWOkQ== X-Google-Smtp-Source: AGHT+IHFsyWkhTZjY/X3yM1NCzR6YFj3tfba3cqV3Fzaa0HY9aOCS7UhQUkmVnrZeo30hR6EANqHIIllbdzJIevDeHw= X-Received: from pji12.prod.google.com ([2002:a17:90b:3fcc:b0:301:4260:4d23]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:5247:b0:2fa:1f1b:3db2 with SMTP id 98e67ed59e1d1-3057cc00681mr852399a91.25.1743636895371; Wed, 02 Apr 2025 16:34:55 -0700 (PDT) Date: Wed, 2 Apr 2025 16:33:57 -0700 In-Reply-To: <20250402233407.2452429-1-willmcvicker@google.com> Precedence: bulk X-Mailing-List: linux-samsung-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250402233407.2452429-1-willmcvicker@google.com> X-Mailer: git-send-email 2.49.0.472.ge94155a9ec-goog Message-ID: <20250402233407.2452429-7-willmcvicker@google.com> Subject: [PATCH v2 6/7] clocksource/drivers/exynos_mct: Add module support From: Will McVicker To: Catalin Marinas , Will Deacon , Peter Griffin , " =?utf-8?q?Andr=C3=A9_Draszik?= " , Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alim Akhtar , Daniel Lezcano , Thomas Gleixner , Saravana Kannan , Krzysztof Kozlowski Cc: Will McVicker , Donghoon Yu , Hosung Kim , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Youngmin Nam , linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org 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 [original commit from https://android.googlesource.com/kernel/gs/+/8a52a8288ec7d88ff78f0b37480dbb0e9c65bbfd] Signed-off-by: Will McVicker --- drivers/clocksource/Kconfig | 3 +- drivers/clocksource/exynos_mct.c | 49 +++++++++++++++++++++++++++----- 2 files changed, 44 insertions(+), 8 deletions(-) diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig index 487c85259967..e89373827c3a 100644 --- a/drivers/clocksource/Kconfig +++ b/drivers/clocksource/Kconfig @@ -443,7 +443,8 @@ config ATMEL_TCB_CLKSRC Support for Timer Counter Blocks on Atmel SoCs. 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 62febeb4e1de..8943274378be 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 @@ -241,7 +243,7 @@ static cycles_t exynos4_read_current_timer(void) } #endif -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 @@ -511,7 +513,7 @@ static int exynos4_mct_dying_cpu(unsigned int cpu) return 0; } -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; @@ -539,7 +541,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) @@ -652,7 +654,7 @@ static int __init exynos4_timer_interrupts(struct device_node *np, return err; } -static int __init mct_init_dt(struct device_node *np, unsigned int int_type) +static int mct_init_dt(struct device_node *np, unsigned int int_type) { bool frc_shared = of_property_read_bool(np, "samsung,frc-shared"); u32 local_idx[MCT_NR_LOCAL] = {0}; @@ -700,15 +702,48 @@ static int __init mct_init_dt(struct device_node *np, unsigned int int_type) return exynos4_clockevent_init(); } - -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); } -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); } + +#ifdef MODULE +static int exynos4_mct_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + int (*mct_init)(struct device_node *np); + + mct_init = 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[] = { + { .compatible = "samsung,exynos4210-mct", .data = &mct_init_spi, }, + { .compatible = "samsung,exynos4412-mct", .data = &mct_init_ppi, }, + {} +}; +MODULE_DEVICE_TABLE(of, exynos4_mct_match_table); + +static struct platform_driver exynos4_mct_driver = { + .probe = exynos4_mct_probe, + .driver = { + .name = "exynos-mct", + .of_match_table = exynos4_mct_match_table, + }, +}; +module_platform_driver(exynos4_mct_driver); +#else TIMER_OF_DECLARE(exynos4210, "samsung,exynos4210-mct", mct_init_spi); TIMER_OF_DECLARE(exynos4412, "samsung,exynos4412-mct", mct_init_ppi); +#endif + +MODULE_DESCRIPTION("Exynos Multi Core Timer Driver"); +MODULE_LICENSE("GPL"); From patchwork Wed Apr 2 23:33:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William McVicker X-Patchwork-Id: 14036599 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 E60291FAC33 for ; Wed, 2 Apr 2025 23:34:57 +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=1743636899; cv=none; b=QelUks9HqXfwBEak2uj6PZ2VpnLQITwpMI/3jwbb9PtQTJwjAlvjTLVz0bAPOwwKvXdZ+9xe2Lp5w1mdr0CJwqEV0aULDmLlCEg0i6xxw7sx9PEX5SxOC/4JULXaa0YroPQAIPnHdqqhHvxRMlqO4AcM6AxjrWS1GMs7GwJ/krg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743636899; c=relaxed/simple; bh=BHqjnEz8Bqub0+5tOgaodvHpe7VxxoEtAWRFbgVwkX4=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=vAdrBXkNc+Bo8PUYjK6xCqu2D+fNYYmxT49u6KMhgh9P2yApr2NBWdwzQ4AY/aj9BGzs3HNfP56Hi97K0G8dBRMBNQGZsuJiJRnYBj7/qzcWiyetaJjW9wB9rBPFXnp3gwVubd4pnWZAvauqVGCejRrG4p/1aT1SlwMCGslVwJo= 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=4UcdrfyL; 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="4UcdrfyL" Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-2ff605a7a43so463046a91.3 for ; Wed, 02 Apr 2025 16:34:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743636897; x=1744241697; 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=vqQfU5MFNX+M9dMbS6b209zYYBr6gV4W0L8ERj/h45U=; b=4UcdrfyLO6lyFuhkBTdxNC/z2Ht8B3bBMZbqD6KyAw4B1bq6oTv7wfO511EFtNDsbd hoVRsXO3arf56YP1+FJXcQyfjNEnZp/YBf09fhujfaSFtCZfCD3IwoAr1TP49x6Ij17X j+bdC/YYZ8zBGk6eJHdHt7AVYQFZoMRc8HrJxNl9QO9UDS0l4EeRE0IyAZqRFzhbXoba FdoTbDaGtHVoSvIBnHqRzFz1YT2T82vLwWYu/sKXQWHyM+eLZTkxFuGWIk0b1Jl8Nw9O JMQd+vkNDTUlIv75JujMs9+MDHLO9mwAdr/bkBisr/7jVOa8aiDdOcKwSNbr1E9L/kvy cjXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743636897; x=1744241697; 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=vqQfU5MFNX+M9dMbS6b209zYYBr6gV4W0L8ERj/h45U=; b=nAB7PycshQHLMzsIPUaXE5OYl236QMVAVpkOFGR2pm2gRP2ijlKSR9sZvEwCIi5akd oRTJYblWEXcM3gTL+f1yJebKd+bM82jQh9/3+wg/vRVTAeEAUo2sR3up5ijgeXB+IETD WbIM+gKL/MLvMSgKa23H3MnhDdYEc3Qb/nPZQPsO2VifptA3Uz2gjL0Z5Vy9ew/Efw+q /e5R16+ssC2tUvaMCkLDXcm9Axxkz0J3mpuNKqsNLplVa6nNh/0+8nwIqA+gV+qLWtcx +ec72eVsH95asX0kBOMfOp/OrXO+XyyPEh/EZ7e/AM9UKCexF4+SRN05fXoPctPAPTN0 USrQ== X-Forwarded-Encrypted: i=1; AJvYcCXPBg19s4lPYW/v37ZS60mZ5EqU5eYvFOd7hB+/pisk1ZaUcAJhci5semATU8xlQMEFW4jNiGX8DfrrP4bJ99JBzQ==@vger.kernel.org X-Gm-Message-State: AOJu0Yw8JJ4+xPqapqg38KjPcn9YzORi8AAucciftrNNNZp/jrQ5T+II 1qv0dM0ql8JBDMYWX3IrdkDHCh7z6bycYOdEYQVvd6KzooK+qGLkRzKklEiIvkJiRnmPGb/YZ9U ZZdLkVQ4L6Qn//w1B0RYsIEHnwg== X-Google-Smtp-Source: AGHT+IHNjNoLSXpuoWq8MvyOWd0aQH4vReKV9zSqeimLC//wD66A6paRAKR65MmP1wxkBUjus4xLZlsJIhNOroJPqoE= X-Received: from pjbov3.prod.google.com ([2002:a17:90b:2583:b0:2f7:d453:e587]) (user=willmcvicker job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:56cf:b0:2f9:c56b:6ec8 with SMTP id 98e67ed59e1d1-3056ee3608dmr6316456a91.10.1743636897333; Wed, 02 Apr 2025 16:34:57 -0700 (PDT) Date: Wed, 2 Apr 2025 16:33:58 -0700 In-Reply-To: <20250402233407.2452429-1-willmcvicker@google.com> Precedence: bulk X-Mailing-List: linux-samsung-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250402233407.2452429-1-willmcvicker@google.com> X-Mailer: git-send-email 2.49.0.472.ge94155a9ec-goog Message-ID: <20250402233407.2452429-8-willmcvicker@google.com> Subject: [PATCH v2 7/7] arm64: exynos: Drop select CLKSRC_EXYNOS_MCT From: Will McVicker To: Catalin Marinas , Will Deacon , Peter Griffin , " =?utf-8?q?Andr=C3=A9_Draszik?= " , Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alim Akhtar , Daniel Lezcano , Thomas Gleixner , Saravana Kannan Cc: Will McVicker , Donghoon Yu , Hosung Kim , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Youngmin Nam , Krzysztof Kozlowski , linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org 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 --- arch/arm64/Kconfig.platforms | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index 8b76821f190f..325279193e2c 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -109,7 +109,6 @@ config ARCH_BLAIZE 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