Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp820754imu; Tue, 11 Dec 2018 08:05:35 -0800 (PST) X-Google-Smtp-Source: AFSGD/XdZkizqbm8yzm/RAlkhOMNNBhefCy5a2jYDYKJ0zj4JZ1KGJdJ8HMFgiM4usr2lnpEt/ra X-Received: by 2002:a17:902:6b49:: with SMTP id g9mr16265513plt.98.1544544335231; Tue, 11 Dec 2018 08:05:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544544335; cv=none; d=google.com; s=arc-20160816; b=W4IPQciea7NLxPXN7W21kwbPwKQDMPho+gkDCjaXCTZ5SldaV61lKCgSsk6H6duJnd X5OTWNZXBAbGu+Y06iCquXJPlL/+0PG6dHF9Yzke8n7KvjytjckbNvBhSmrrmGcFxzI/ Sc6oguY1E1YYZz+jtsUydp34ioIQ5d5Jh7mJE7gba1pdf2VgReDEQwh0cqudADRzbV9v oMzC69keOSsL4pRfdYWN04EspQlgL2lDWJt99juUv1oYDmxhXFDViI/fl6nHMMzSM7GC oeY3D+OS/j6j6CoRv5b1ACO7C5SafLSab9AdHmk8qpfwnpw4UFrlOYiwr+DhWIvfrmQg sTfA== 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=SeYAeKOG2EtzZUfYmb2kgH6RAzws2Mih/cSWUee/xyY=; b=DSuyJdAPFMH/nEpWajksycCR8n+O+DI3L2gBmE+CxGVsDHxtNHKBSo6IRT5aCNETKY u4BRRQn0bNkSyomM/mPwo+Tc4Nxp30Euf2WEHmVjgkGbvBrhnm5KyRd8ysQRm7/Ysbmb YW+qCxScHukt+t4PegzSb086RI0B1sMf1XSEyNM/pZMx8k/zJjZyitNJm1k+jwTdt8To drYKHOTJ0n0EuA3etbBQZQ/gKwkfMDDY/eqTmB5m4JgE8Vknd/fUshPGoHA22SFekCgO DK+Wc0REyTlnQhdoTrAPovHc2q2ntAbmDQN9WfQC7vq7NhahctilQ1elulEsVBjFK04u uiGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=adJ1BImC; 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 x8si12527194pll.187.2018.12.11.08.05.17; Tue, 11 Dec 2018 08:05:35 -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=adJ1BImC; 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 S1730605AbeLKP4e (ORCPT + 99 others); Tue, 11 Dec 2018 10:56:34 -0500 Received: from mail.kernel.org ([198.145.29.99]:45292 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730577AbeLKP4b (ORCPT ); Tue, 11 Dec 2018 10:56:31 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.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 9139A205C9; Tue, 11 Dec 2018 15:56:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1544543791; bh=Y0f9E26U9k5rfXYldRoWbpsn8CGYMqPiKoD7VfivGqY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=adJ1BImCfN/29aFGd329B5nGm++QHBMxLiU0GMOH5kvSQPtWcnaoMb/h76jKHaIS4 bX4KqNSKXOuxJlaG/N4uwFKxy3YWykVtMV345057jTQibjq2FbdxJMlmraMhi+vJBE kC3pohULYBQjfphkeHf5ePEms/jqbJZLxcOKZ3Q8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Johan Hovold , Dave Gerlach , Viresh Kumar , "Rafael J. Wysocki" , Sasha Levin Subject: [PATCH 4.19 038/118] cpufreq: ti-cpufreq: Only register platform_device when supported Date: Tue, 11 Dec 2018 16:40:57 +0100 Message-Id: <20181211151645.775739449@linuxfoundation.org> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20181211151644.216668863@linuxfoundation.org> References: <20181211151644.216668863@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore 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 4.19-stable review patch. If anyone has any objections, please let me know. ------------------ [ 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 @@ fail_put_node: 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.19.1