From patchwork Thu Jan 31 02:27:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Lo X-Patchwork-Id: 10789545 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 693A51390 for ; Thu, 31 Jan 2019 02:28:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5B60330852 for ; Thu, 31 Jan 2019 02:28:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4B6353088B; Thu, 31 Jan 2019 02:28:01 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C61F030852 for ; Thu, 31 Jan 2019 02:27:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726193AbfAaC17 (ORCPT ); Wed, 30 Jan 2019 21:27:59 -0500 Received: from hqemgate15.nvidia.com ([216.228.121.64]:8917 "EHLO hqemgate15.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725535AbfAaC17 (ORCPT ); Wed, 30 Jan 2019 21:27:59 -0500 Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqemgate15.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Wed, 30 Jan 2019 18:27:30 -0800 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Wed, 30 Jan 2019 18:27:58 -0800 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Wed, 30 Jan 2019 18:27:58 -0800 Received: from HQMAIL105.nvidia.com (172.20.187.12) by HQMAIL103.nvidia.com (172.20.187.11) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 31 Jan 2019 02:27:58 +0000 Received: from hqnvemgw02.nvidia.com (172.16.227.111) by HQMAIL105.nvidia.com (172.20.187.12) with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Thu, 31 Jan 2019 02:27:58 +0000 Received: from josephl-linux.nvidia.com (Not Verified[10.19.108.132]) by hqnvemgw02.nvidia.com with Trustwave SEG (v7,5,8,10121) id ; Wed, 30 Jan 2019 18:27:58 -0800 From: Joseph Lo To: "Rafael J . Wysocki" , Daniel Lezcano CC: , , , Joseph Lo Subject: [PATCH] cpuidle: dt: bail out if the idle-state DT node is not compatible Date: Thu, 31 Jan 2019 10:27:49 +0800 Message-ID: <20190131022749.19046-1-josephl@nvidia.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-NVConfidentiality: public DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1548901650; bh=K/Sn/R96/V9UvB/oooNtf+xhwMY4u/ll78TrSAWn144=; h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: MIME-Version:X-NVConfidentiality:Content-Transfer-Encoding: Content-Type; b=O8lh3s3Kwn2uoeVfl2/HJLf7w3gH5/vpq4ZQN0xlxuvd5EznFp0O6akC+cHtwkUSE UYugE0aXFvugYeKdUdppD299Vr8uRmUGpanMKL9F1/u1JnDI/GW1q/dZvNWfefEHQR S/6utw5p/3fY2zreMZh5xiJcGVdNWR35D6LyNWibypZyd7dyv6v1323wbdSgRWp3KO rTZQZyRFtnWcDAH+7Y8J+7Ac2XSawEW2TMb83EL1mEs/0Iw3RmDxm0v59nyRdUuWQc XXL+mRhI4uIFUYzMKzxuvOF5y4KdhfJNiEsQ7se916fM3c6RUZ08mPmujNyLv8yxQr X2rShz40dqYwA== Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Currently, the DT of the idle states will be parsed first whether it's compatible or not. This could cause a warning message that comes from if the CPU doesn't support identical idle states. E.g. Tegra186 can run with 2 Cortex-A57 and 2 Denver cores with different idle states on different types of these cores. We fix it to check the compatible string before the parsing procedures. So it can make sure it only goes through the idle states that the CPU supported. Signed-off-by: Joseph Lo --- drivers/cpuidle/dt_idle_states.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/cpuidle/dt_idle_states.c b/drivers/cpuidle/dt_idle_states.c index 53342b7f1010..4a528908abb3 100644 --- a/drivers/cpuidle/dt_idle_states.c +++ b/drivers/cpuidle/dt_idle_states.c @@ -180,6 +180,11 @@ int dt_init_idle_driver(struct cpuidle_driver *drv, if (!state_node) break; + if (!of_device_is_compatible(state_node, matches->compatible)) { + err = -EINVAL; + break; + } + if (!of_device_is_available(state_node)) { of_node_put(state_node); continue;