Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp840531pxb; Tue, 3 Nov 2020 14:05:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJyahU/rBT2abvb15ahS0RmkjAl6hSZBEbqLkSYlT/AW80j0d9yPAg9S7r6YiuRHUyCZXYXE X-Received: by 2002:a17:906:3b8f:: with SMTP id u15mr21513608ejf.348.1604441122294; Tue, 03 Nov 2020 14:05:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604441122; cv=none; d=google.com; s=arc-20160816; b=1BjZCQCKxVA7T1SCJ1hN+CWmlj3p2VVL3rk/uktE5/P4iqYjRKuPMhRt6NdAZIBoYM HHuYvdLrAqdc3puupHJ9uhTI8cnRETOI2c1QHXS28WXSQnT/4DQlIr103bKtBX799FmZ /YkC3XT5CwKTI7Ts7HkVgpAXv64QUysUA6SUa55BMVMAX190BDcm5sCiGHCauiAkaiYY 4RuhZOo+dGPevp8JG6wrtDQguZCAfbzeexTwTy2P+e0sNWcV/noCOXnG0vxVCdlGU8i2 FoivynR71KfPaQDbOeRk6QJgb6w35d5FMD/1JZy7bK8mOLW2v5H8puwlJbcTQF5SJb62 cRTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=lNY4Qi7S4pGL8AutIb+8IfI82gdorDJU+41dpZF43Ug=; b=N/Q29LuRl/OwQvjbo2DFqTgGWoo+8qhzFYWHL2EGnI6ZS9gr2W5UoYg8TEEzHWZKw2 c8udVvO+CtlBzXXaU+dSHCad2P+VP7mAIBkblnylUqmfq0gFB60+9SWywzhre+0xv4Ea N25OEFP4+rd2p+LGkP059Cid5txImQN0yTmKGyE2Ups1fEWH1LdFvRxZuLxeS9HRY7jJ 9Ih76osRiX7OdBBNBOjmoW0VEyJcdFEb1ClpMQksz54ZbbGm3PzarO9c0eptvsfwJ9aG LAdEjYR834QdUoJChjfOH8iTmk+gapd7T04rof9cMMRmaayCnoZLmbmPD8JDXz7ThRzY he+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=E1hhzAOQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g14si2305502edp.246.2020.11.03.14.04.58; Tue, 03 Nov 2020 14:05:22 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=E1hhzAOQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730110AbgKCUoi (ORCPT + 99 others); Tue, 3 Nov 2020 15:44:38 -0500 Received: from mail.kernel.org ([198.145.29.99]:59976 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730332AbgKCUof (ORCPT ); Tue, 3 Nov 2020 15:44:35 -0500 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (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 86D85223C6; Tue, 3 Nov 2020 20:44:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604436274; bh=JsmQ9OVNjhucQFocIRIjIuGwMkMozGNDogSy5i9vlw4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=E1hhzAOQo31aWHCM34g9UkPlG4b2DACMULJhHH+TvaTyAYEX6o8f3pDARsNL2f77F wMg6gm3mZr3mEyp7MhZA6YINmNG8wAmw5ETRcSBEsrUHVT+K7ucFglYImbY4o9gYzL 8DFOtpGz7liNVB9vODnpXY1INgRhE/DG7ZlZQIz0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Cristian Marussi , Sudeep Holla , Sasha Levin Subject: [PATCH 5.9 177/391] firmware: arm_scmi: Move scmi bus init and exit calls into the driver Date: Tue, 3 Nov 2020 21:33:48 +0100 Message-Id: <20201103203358.816605180@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201103203348.153465465@linuxfoundation.org> References: <20201103203348.153465465@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sudeep Holla [ Upstream commit 5a2f0a0bdf201e2183904b6217f9c74774c961a8 ] In preparation to enable building scmi as a single module, let us move the scmi bus {de-,}initialisation call into the driver. The main reason for this is to keep it simple instead of maintaining it as separate modules and dealing with all possible initcall races and deferred probe handling. We can move it as separate modules if needed in future. Link: https://lore.kernel.org/r/20200907195046.56615-3-sudeep.holla@arm.com Tested-by: Cristian Marussi Signed-off-by: Sudeep Holla Signed-off-by: Sasha Levin --- drivers/firmware/arm_scmi/bus.c | 6 ++---- drivers/firmware/arm_scmi/common.h | 3 +++ drivers/firmware/arm_scmi/driver.c | 16 +++++++++++++++- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/drivers/firmware/arm_scmi/bus.c b/drivers/firmware/arm_scmi/bus.c index db55c43a2cbda..1377ec76a45db 100644 --- a/drivers/firmware/arm_scmi/bus.c +++ b/drivers/firmware/arm_scmi/bus.c @@ -230,7 +230,7 @@ static void scmi_devices_unregister(void) bus_for_each_dev(&scmi_bus_type, NULL, NULL, __scmi_devices_unregister); } -static int __init scmi_bus_init(void) +int __init scmi_bus_init(void) { int retval; @@ -240,12 +240,10 @@ static int __init scmi_bus_init(void) return retval; } -subsys_initcall(scmi_bus_init); -static void __exit scmi_bus_exit(void) +void __exit scmi_bus_exit(void) { scmi_devices_unregister(); bus_unregister(&scmi_bus_type); ida_destroy(&scmi_bus_id); } -module_exit(scmi_bus_exit); diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h index 6db59a7ac8531..124080955c4a0 100644 --- a/drivers/firmware/arm_scmi/common.h +++ b/drivers/firmware/arm_scmi/common.h @@ -158,6 +158,9 @@ void scmi_setup_protocol_implemented(const struct scmi_handle *handle, int scmi_base_protocol_init(struct scmi_handle *h); +int __init scmi_bus_init(void); +void __exit scmi_bus_exit(void); + /* SCMI Transport */ /** * struct scmi_chan_info - Structure representing a SCMI channel information diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c index 28a3e4902ea4e..5c2f4fab40994 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -936,7 +936,21 @@ static struct platform_driver scmi_driver = { .remove = scmi_remove, }; -module_platform_driver(scmi_driver); +static int __init scmi_driver_init(void) +{ + scmi_bus_init(); + + return platform_driver_register(&scmi_driver); +} +module_init(scmi_driver_init); + +static void __exit scmi_driver_exit(void) +{ + scmi_bus_exit(); + + platform_driver_unregister(&scmi_driver); +} +module_exit(scmi_driver_exit); MODULE_ALIAS("platform: arm-scmi"); MODULE_AUTHOR("Sudeep Holla "); -- 2.27.0