Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp9933364ybi; Wed, 24 Jul 2019 12:35:06 -0700 (PDT) X-Google-Smtp-Source: APXvYqyjcLAaijWEe/WUoLN3hQEZrNsZwpyEwfYAccuyud7q1X8IqIOE81fxvpI8v/p0Ohv/iIj8 X-Received: by 2002:aa7:95bb:: with SMTP id a27mr13177651pfk.229.1563996906607; Wed, 24 Jul 2019 12:35:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563996906; cv=none; d=google.com; s=arc-20160816; b=Z5YXHiTB6ravhML9THEr1fNqHQiazXqlPzUKETh5DJhMkgoW/j1jNr5oXk0QBrCX1l WXgvf8viBgrcV7glaY4JSpu5GmSffye7ojDWxk2jWtiVpHtKf5/lgYLZHveDXHUbjBE7 lWchgRf4duhWT7tk7J/+bQXJY/rrrUdgf/XdXFtpBR4fXP4Z6Iim1gx3DQxo3u59V+fr hCM7yT/Ls5/Ga9albbKaJe5gV1MXURar90YWI9nVWjLjziZFUvNA4Se4nN+LKGUQgp+T B/ibmsFiGIBI4lQGSE7HRhzcz3hcJQ1TWU5WY2gvKiXyurTacBZNeR++zMgH8iYMAab+ LUnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=zSA7zDEnKWGwhdA+R0drn5cozjv66EnVif96lUDU/Qw=; b=UXeCdflibamrPYrVPaeJMP5dWCP+t9nF2OzmAcSxLsGHgcIS4/1bNMmr+BYBBxF7A4 Sm5pDHfp1p4vByCHyWkcJFHyNRrCGQZiTdOT/KN53IocaFts6Rev3hSm9xOovKzbLIga SEJ4yDcNUTrzphUwE+cP9wZKifNLaXIRehVtZx06hVwHYVxQV2+kuMfFDf9EOuSVDWfL F4udzBpe4kVTXOOWrBZpHPlCjpkb2BlTedVj0uFdIx9YZvlKkP2se9sqPcl/qzePatiG wgfoOjpQguzkM04tL0FssR4rerANpbrrDvnxXNvOIGipFSvyMjrNsyk8SzdfAeeBKYjI plIw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=K3uSFNr2; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a8si15253064ple.243.2019.07.24.12.34.52; Wed, 24 Jul 2019 12:35:06 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=K3uSFNr2; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388732AbfGXTcz (ORCPT + 99 others); Wed, 24 Jul 2019 15:32:55 -0400 Received: from mail.kernel.org ([198.145.29.99]:54406 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388725AbfGXTcx (ORCPT ); Wed, 24 Jul 2019 15:32:53 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id CF52B20659; Wed, 24 Jul 2019 19:32:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1563996772; bh=iwrlPVA64fx8hejUgWDykNeD1Dcj1UXtVBKgCQ3zyF4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=K3uSFNr2IX4LgRREsa0HwGi8dihMRowB62IveU/DOXmzAbM1OifCTqKBTBpXAPU/N t4YWZnLjfOdN3HRiyiWS50edw+NqG/mvy+H9A586ZavPHNtTqmU+P2a4O/TYAiVVaI FWcqfSUCUaNnyvqEl0vdOAX3VHlta+lBMPziSPYg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Marek Szyprowski , Krzysztof Kozlowski , Chanwoo Choi , Daniel Lezcano , Sasha Levin Subject: [PATCH 5.2 170/413] clocksource/drivers/exynos_mct: Increase priority over ARM arch timer Date: Wed, 24 Jul 2019 21:17:41 +0200 Message-Id: <20190724191747.137660228@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190724191735.096702571@linuxfoundation.org> References: <20190724191735.096702571@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit 6282edb72bed5324352522d732080d4c1b9dfed6 ] Exynos SoCs based on CA7/CA15 have 2 timer interfaces: custom Exynos MCT (Multi Core Timer) and standard ARM Architected Timers. There are use cases, where both timer interfaces are used simultanously. One of such examples is using Exynos MCT for the main system timer and ARM Architected Timers for the KVM and virtualized guests (KVM requires arch timers). Exynos Multi-Core Timer driver (exynos_mct) must be however started before ARM Architected Timers (arch_timer), because they both share some common hardware blocks (global system counter) and turning on MCT is needed to get ARM Architected Timer working properly. To ensure selecting Exynos MCT as the main system timer, increase MCT timer rating. To ensure proper starting order of both timers during suspend/resume cycle, increase MCT hotplug priority over ARM Archictected Timers. Signed-off-by: Marek Szyprowski Reviewed-by: Krzysztof Kozlowski Reviewed-by: Chanwoo Choi Signed-off-by: Daniel Lezcano Signed-off-by: Sasha Levin --- drivers/clocksource/exynos_mct.c | 4 ++-- include/linux/cpuhotplug.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c index e8eab16b154b..74cb299f5089 100644 --- a/drivers/clocksource/exynos_mct.c +++ b/drivers/clocksource/exynos_mct.c @@ -206,7 +206,7 @@ static void exynos4_frc_resume(struct clocksource *cs) static struct clocksource mct_frc = { .name = "mct-frc", - .rating = 400, + .rating = 450, /* use value higher than ARM arch timer */ .read = exynos4_frc_read, .mask = CLOCKSOURCE_MASK(32), .flags = CLOCK_SOURCE_IS_CONTINUOUS, @@ -461,7 +461,7 @@ static int exynos4_mct_starting_cpu(unsigned int cpu) evt->set_state_oneshot_stopped = set_state_shutdown; evt->tick_resume = set_state_shutdown; evt->features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT; - evt->rating = 450; + evt->rating = 500; /* use value higher than ARM arch timer */ exynos4_mct_write(TICK_BASE_CNT, mevt->base + MCT_L_TCNTB_OFFSET); diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h index 52ec0d9fa1f7..068793a619ca 100644 --- a/include/linux/cpuhotplug.h +++ b/include/linux/cpuhotplug.h @@ -116,10 +116,10 @@ enum cpuhp_state { CPUHP_AP_PERF_ARM_ACPI_STARTING, CPUHP_AP_PERF_ARM_STARTING, CPUHP_AP_ARM_L2X0_STARTING, + CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING, CPUHP_AP_ARM_ARCH_TIMER_STARTING, CPUHP_AP_ARM_GLOBAL_TIMER_STARTING, CPUHP_AP_JCORE_TIMER_STARTING, - CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING, CPUHP_AP_ARM_TWD_STARTING, CPUHP_AP_QCOM_TIMER_STARTING, CPUHP_AP_TEGRA_TIMER_STARTING, -- 2.20.1