Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2079402imu; Wed, 28 Nov 2018 22:00:58 -0800 (PST) X-Google-Smtp-Source: AFSGD/Ubi8KcYHv5GCzZA/Ff0orWmh54MpM0CKE6PZmAL7RLoVLmNwSjbBYRzk4TzIJmGUbfu2Ya X-Received: by 2002:a62:6f88:: with SMTP id k130mr181726pfc.234.1543471258343; Wed, 28 Nov 2018 22:00:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543471258; cv=none; d=google.com; s=arc-20160816; b=MZAauqsRtzoxi547bJnYnzkBMI4KjgGrTWXuv5GEAf08VFEyMYP35EYjokD72i0jGf ErIia41kyAaPC15qRVSCqbU9L20Ss6wQIGZ0RwwOnl1mvkKo3Bhctv8c77HG91vPhW8v 9IYxnPIKZVCHhpVK2EYg+iy2T0HTM+If/GnhjKLCp8KBBsUzTnYlmBYEUDk3qdwbuzGk rYOUYAR+Ca5wYhRU/DtaNxKFs3Fia5xKfvclXMQih8hlBnXzjssVQ6SlvpANrfuTKxqo QcVQTYk5CRyzxXln/q0fh8ruJwavsAc09vqv05UMux036CPAA6mgXQdndIBPhx6eAsd+ SGJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=rxsq0m4s7KVKnRdl7ZGoyqFZvlM3hs8FmXomPIbhyWs=; b=xs053SIUF9XTZZJpyYwouinUXO9V0x1wKd92s56htznjuc3KMoZGyB2kCAv9KyVZJr YHmN198LPS8SSujRd/CfzT6HMLaPgJLWrVk7WVyAYGLLLOkZWKwtMsDCJ8m4FsPzZbS1 LmJmchQJNzQ0bkdwg4waUaRTE7t28dAnTilzhAsOoF3X17r06K3gYm/y8uBEzJ6Le+SK rW6TfrMZ5+6MmG4rt7U50QcZyCeHQeYJ+lfocJZwHRNVuHZDsYYTiXWVjeH4Zeo+czKc zd5EnNnCA6zK7Fv5HemIWZ9npQ0XWuleSmnNKY+Mru2IJKYyWffCPnqM1D+o41Z5LsgH yNcA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="HqDBC/vF"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p15si1040532plq.24.2018.11.28.22.00.42; Wed, 28 Nov 2018 22:00:58 -0800 (PST) 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="HqDBC/vF"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728767AbeK2RDX (ORCPT + 99 others); Thu, 29 Nov 2018 12:03:23 -0500 Received: from mail.kernel.org ([198.145.29.99]:37506 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727402AbeK2RDW (ORCPT ); Thu, 29 Nov 2018 12:03:22 -0500 Received: from sasha-vm.mshome.net (unknown [37.142.5.207]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 68E2521019; Thu, 29 Nov 2018 05:59:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1543471151; bh=aSaGYq1G4Tl8TqkeP+QYuZZFUq9x3KzDPurQgBr/HfI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HqDBC/vFPf0bqOJXeSQwfhwTMcazdnwz5G8pK/HQH6FWfT253/FIGtxu97Dy3fcvY r/jhTtFfjan1AipVOQsORER4SHqlKhSKvVcyvtkkePsX2BBnkUCBgnlW3/EhPF3dRt 6EXn7y9qUcda5ZZL7ihwOiLbZuGPF8pA6KvNbXQk= From: Sasha Levin To: stable@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Dave Gerlach , "Rafael J . Wysocki" , Sasha Levin , linux-pm@vger.kernel.org Subject: [PATCH AUTOSEL 4.19 38/68] cpufreq: ti-cpufreq: Only register platform_device when supported Date: Thu, 29 Nov 2018 00:55:29 -0500 Message-Id: <20181129055559.159228-38-sashal@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181129055559.159228-1-sashal@kernel.org> References: <20181129055559.159228-1-sashal@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Gerlach [ Upstream commit d98ccfc3948ab63152494bb6b9c17e15295c0310 ] Currently the ti-cpufreq driver blindly registers a 'ti-cpufreq' to force the driver to probe on any platforms where the driver is built in. However, this should only happen on platforms that actually can make use of the driver. There is already functionality in place to match the SoC compatible so let's factor this out into a separate call and make sure we find a match before creating the ti-cpufreq platform device. Reviewed-by: Johan Hovold Signed-off-by: Dave Gerlach Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki Signed-off-by: Sasha Levin --- drivers/cpufreq/ti-cpufreq.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/drivers/cpufreq/ti-cpufreq.c b/drivers/cpufreq/ti-cpufreq.c index 3f0e2a14895a..22b53bf26817 100644 --- a/drivers/cpufreq/ti-cpufreq.c +++ b/drivers/cpufreq/ti-cpufreq.c @@ -201,19 +201,28 @@ static const struct of_device_id ti_cpufreq_of_match[] = { {}, }; +static const struct of_device_id *ti_cpufreq_match_node(void) +{ + struct device_node *np; + const struct of_device_id *match; + + np = of_find_node_by_path("/"); + match = of_match_node(ti_cpufreq_of_match, np); + of_node_put(np); + + return match; +} + static int ti_cpufreq_probe(struct platform_device *pdev) { u32 version[VERSION_COUNT]; - struct device_node *np; const struct of_device_id *match; struct opp_table *ti_opp_table; struct ti_cpufreq_data *opp_data; const char * const reg_names[] = {"vdd", "vbb"}; int ret; - np = of_find_node_by_path("/"); - match = of_match_node(ti_cpufreq_of_match, np); - of_node_put(np); + match = dev_get_platdata(&pdev->dev); if (!match) return -ENODEV; @@ -290,7 +299,14 @@ static int ti_cpufreq_probe(struct platform_device *pdev) static int ti_cpufreq_init(void) { - platform_device_register_simple("ti-cpufreq", -1, NULL, 0); + const struct of_device_id *match; + + /* Check to ensure we are on a compatible platform */ + match = ti_cpufreq_match_node(); + if (match) + platform_device_register_data(NULL, "ti-cpufreq", -1, match, + sizeof(*match)); + return 0; } module_init(ti_cpufreq_init); -- 2.17.1