From 3e16478810db352c8ba01e8e77d3bc2c2c239338 Mon Sep 17 00:00:00 2001 From: Wei Li Date: Fri, 21 Apr 2017 09:35:07 +0800 Subject: [PATCH 1/2] cnss: add an option to allow driver using asynchronous probe Add option CONFIG_CNSS_ASYNC to allow CNSS platform driver probe asynchronously for boot time optimization in auto platform Change-Id: Id1fcb8991a47ae56098a9bbd6ff570e22d6450d6 Signed-off-by: Wei Li --- drivers/net/wireless/cnss/Kconfig | 9 +++++++++ drivers/net/wireless/cnss/cnss_pci.c | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/cnss/Kconfig b/drivers/net/wireless/cnss/Kconfig index 4558dc30fec1..8e69a2b469b9 100644 --- a/drivers/net/wireless/cnss/Kconfig +++ b/drivers/net/wireless/cnss/Kconfig @@ -9,6 +9,15 @@ config CNSS This driver also adds support to integrate WLAN module to subsystem restart framework. +config CNSS_ASYNC + bool "Enable/disable cnss pci platform driver asynchronous probe" + depends on CNSS + ---help--- + If enabled, CNSS PCI platform driver would do asynchronous probe. + Using asynchronous probe will allow CNSS PCI platform driver to + probe in parallel with other device drivers and will help to + reduce kernel boot time. + config CNSS_MAC_BUG bool "Enable/disable 0-4K memory initialization for QCA6174" depends on CNSS diff --git a/drivers/net/wireless/cnss/cnss_pci.c b/drivers/net/wireless/cnss/cnss_pci.c index f53ed2693879..48d358c4722a 100644 --- a/drivers/net/wireless/cnss/cnss_pci.c +++ b/drivers/net/wireless/cnss/cnss_pci.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. +/* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -3067,6 +3067,9 @@ static struct platform_driver cnss_driver = { .name = "cnss", .owner = THIS_MODULE, .of_match_table = cnss_dt_match, +#ifdef CONFIG_CNSS_ASYNC + .probe_type = PROBE_PREFER_ASYNCHRONOUS, +#endif }, }; From 6b444311da7cd4ae748f186b03572cf347fa31bc Mon Sep 17 00:00:00 2001 From: Wei Li Date: Fri, 21 Apr 2017 09:37:40 +0800 Subject: [PATCH 2/2] defconfig: msm: Enable CNSS_ASYNC for auto platform This option allow CNSS platform driver to use asynchronous probe for auto platform. Change-Id: I54c997be995e3fb660779a18fd848dcbc325c49a Signed-off-by: Wei Li --- arch/arm64/configs/msm-auto-perf_defconfig | 1 + arch/arm64/configs/msm-auto_defconfig | 1 + 2 files changed, 2 insertions(+) diff --git a/arch/arm64/configs/msm-auto-perf_defconfig b/arch/arm64/configs/msm-auto-perf_defconfig index aa384f105165..8a77150e08ce 100644 --- a/arch/arm64/configs/msm-auto-perf_defconfig +++ b/arch/arm64/configs/msm-auto-perf_defconfig @@ -273,6 +273,7 @@ CONFIG_CNSS_CRYPTO=y CONFIG_ATH_CARDS=y CONFIG_WIL6210=m CONFIG_CNSS=y +CONFIG_CNSS_ASYNC=y CONFIG_CLD_LL_CORE=y CONFIG_BUS_AUTO_SUSPEND=y CONFIG_INPUT_EVDEV=y diff --git a/arch/arm64/configs/msm-auto_defconfig b/arch/arm64/configs/msm-auto_defconfig index df5060eadd9c..1d0ef6c57c70 100644 --- a/arch/arm64/configs/msm-auto_defconfig +++ b/arch/arm64/configs/msm-auto_defconfig @@ -274,6 +274,7 @@ CONFIG_CNSS_CRYPTO=y CONFIG_ATH_CARDS=y CONFIG_WIL6210=m CONFIG_CNSS=y +CONFIG_CNSS_ASYNC=y CONFIG_CLD_LL_CORE=y CONFIG_BUS_AUTO_SUSPEND=y CONFIG_INPUT_EVDEV=y