Since commit cab673583d96 ("soc: Unconditionally include qcom Makefile"),
we unconditionally include the soc/qcom/Makefile.
This opens up the possibility to compile test the code even when
building for other architectures.
This patch series prepares and enables all but two Kconfigs to be
compile tested even when building for other architectures.
Niklas Cassel (5):
rpmsg: smd: Add missing include of sizes.h
soc: qcom: smem: Add missing include of sizes.h
soc: qcom: smp2p: Add select IRQ_DOMAIN
soc: qcom: smsm: Add select IRQ_DOMAIN
soc: qcom: Remove depends on ARCH_QCOM
drivers/rpmsg/qcom_smd.c | 1 +
drivers/soc/qcom/Kconfig | 12 ++++--------
drivers/soc/qcom/smem.c | 1 +
3 files changed, 6 insertions(+), 8 deletions(-)
--
2.17.1
Add missing include of sizes.h.
drivers/rpmsg/qcom_smd.c: In function ‘qcom_smd_channel_open’:
drivers/rpmsg/qcom_smd.c:809:36: error: ‘SZ_4K’ undeclared (first use in this function)
bb_size = min(channel->fifo_size, SZ_4K);
^~~~~
Signed-off-by: Niklas Cassel <[email protected]>
---
drivers/rpmsg/qcom_smd.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/rpmsg/qcom_smd.c b/drivers/rpmsg/qcom_smd.c
index 6437bbeebc91..8695cb041c31 100644
--- a/drivers/rpmsg/qcom_smd.c
+++ b/drivers/rpmsg/qcom_smd.c
@@ -14,6 +14,7 @@
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/sched.h>
+#include <linux/sizes.h>
#include <linux/slab.h>
#include <linux/soc/qcom/smem.h>
#include <linux/wait.h>
--
2.17.1
Since we are using irq_domain_add_linear(), add a select on IRQ_DOMAIN.
This is needed in order to be able to remove the depends on ARCH_QCOM.
drivers/soc/qcom/smp2p.c: In function ‘qcom_smp2p_inbound_entry’:
drivers/soc/qcom/smp2p.c:317:18: error: implicit declaration of function
‘irq_domain_add_linear’
entry->domain = irq_domain_add_linear(node, 32, &smp2p_irq_ops, entry);
^~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Niklas Cassel <[email protected]>
---
drivers/soc/qcom/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig
index 9dc02f390ba3..2f59d0a835fd 100644
--- a/drivers/soc/qcom/Kconfig
+++ b/drivers/soc/qcom/Kconfig
@@ -106,6 +106,7 @@ config QCOM_SMP2P
depends on MAILBOX
depends on QCOM_SMEM
select QCOM_SMEM_STATE
+ select IRQ_DOMAIN
help
Say yes here to support the Qualcomm Shared Memory Point to Point
protocol.
--
2.17.1
Since we are using irq_domain_add_linear(), add a select on IRQ_DOMAIN.
This is needed in order to be able to remove the depends on ARCH_QCOM.
drivers/soc/qcom/smsm.c: In function ‘smsm_inbound_entry’:
drivers/soc/qcom/smsm.c:411:18: error: implicit declaration of function
‘irq_domain_add_linear’
entry->domain = irq_domain_add_linear(node, 32, &smsm_irq_ops, entry);
^~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Niklas Cassel <[email protected]>
---
drivers/soc/qcom/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig
index 2f59d0a835fd..1d4a9f3ada8c 100644
--- a/drivers/soc/qcom/Kconfig
+++ b/drivers/soc/qcom/Kconfig
@@ -115,6 +115,7 @@ config QCOM_SMSM
tristate "Qualcomm Shared Memory State Machine"
depends on QCOM_SMEM
select QCOM_SMEM_STATE
+ select IRQ_DOMAIN
help
Say yes here to support the Qualcomm Shared Memory State Machine.
The state machine is represented by bits in shared memory.
--
2.17.1
Add missing include of sizes.h
drivers/soc/qcom/smem.c: In function ‘qcom_smem_get_ptable’:
drivers/soc/qcom/smem.c:666:64: error: ‘SZ_4K’ undeclared (first use in this function)
ptable = smem->regions[0].virt_base + smem->regions[0].size - SZ_4K;
^~~~~
Signed-off-by: Niklas Cassel <[email protected]>
---
drivers/soc/qcom/smem.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/soc/qcom/smem.c b/drivers/soc/qcom/smem.c
index 70b2ee80d6bd..0fcf60e8269c 100644
--- a/drivers/soc/qcom/smem.c
+++ b/drivers/soc/qcom/smem.c
@@ -18,6 +18,7 @@
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/platform_device.h>
+#include <linux/sizes.h>
#include <linux/slab.h>
#include <linux/soc/qcom/smem.h>
--
2.17.1
Since commit cab673583d96 ("soc: Unconditionally include qcom Makefile"),
we unconditionally include the soc/qcom/Makefile.
This opens up the possibility to compile test the code even when
building for other architectures.
Remove the depends on ARCH_QCOM for all Kconfigs, except for
two Kconfigs that depend on QCOM_SCM, since that triggers lots of build
errors in qcom_scm. However, that shouldn't stop us from removing
it from those where it is possible.
Signed-off-by: Niklas Cassel <[email protected]>
---
drivers/soc/qcom/Kconfig | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig
index 1d4a9f3ada8c..8c83025c466e 100644
--- a/drivers/soc/qcom/Kconfig
+++ b/drivers/soc/qcom/Kconfig
@@ -5,7 +5,7 @@ menu "Qualcomm SoC drivers"
config QCOM_COMMAND_DB
bool "Qualcomm Command DB"
- depends on (ARCH_QCOM && OF) || COMPILE_TEST
+ depends on OF || COMPILE_TEST
help
Command DB queries shared memory by key string for shared system
resources. Platform drivers that require to set state of a shared
@@ -14,7 +14,6 @@ config QCOM_COMMAND_DB
config QCOM_GENI_SE
tristate "QCOM GENI Serial Engine Driver"
- depends on ARCH_QCOM || COMPILE_TEST
help
This driver is used to manage Generic Interface (GENI) firmware based
Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This
@@ -32,7 +31,6 @@ config QCOM_GLINK_SSR
config QCOM_GSBI
tristate "QCOM General Serial Bus Interface"
- depends on ARCH_QCOM
select MFD_SYSCON
help
Say y here to enable GSBI support. The GSBI provides control
@@ -55,7 +53,7 @@ config QCOM_PM
config QCOM_QMI_HELPERS
tristate
- depends on ARCH_QCOM && NET
+ depends on NET
help
Helper library for handling QMI encoded messages. QMI encoded
messages are used in communication between the majority of QRTR
@@ -76,7 +74,6 @@ config QCOM_RMTFS_MEM
config QCOM_SMEM
tristate "Qualcomm Shared Memory Manager (SMEM)"
- depends on ARCH_QCOM
depends on HWSPINLOCK
help
Say y here to enable support for the Qualcomm Shared Memory Manager.
@@ -85,7 +82,6 @@ config QCOM_SMEM
config QCOM_SMD_RPM
tristate "Qualcomm Resource Power Manager (RPM) over SMD"
- depends on ARCH_QCOM
depends on RPMSG && OF
help
If you say yes to this option, support will be included for the
@@ -122,7 +118,6 @@ config QCOM_SMSM
config QCOM_WCNSS_CTRL
tristate "Qualcomm WCNSS control driver"
- depends on ARCH_QCOM
depends on RPMSG
help
Client driver for the WCNSS_CTRL SMD channel, used to download nv
@@ -130,7 +125,6 @@ config QCOM_WCNSS_CTRL
config QCOM_APR
tristate "Qualcomm APR Bus (Asynchronous Packet Router)"
- depends on ARCH_QCOM
depends on RPMSG
help
Enable APR IPC protocol support between
--
2.17.1
On Wed, Jun 13, 2018 at 02:53:56PM +0200, Niklas Cassel wrote:
> Add missing include of sizes.h.
>
> drivers/rpmsg/qcom_smd.c: In function ‘qcom_smd_channel_open’:
> drivers/rpmsg/qcom_smd.c:809:36: error: ‘SZ_4K’ undeclared (first use in this function)
> bb_size = min(channel->fifo_size, SZ_4K);
> ^~~~~
>
> Signed-off-by: Niklas Cassel <[email protected]>
> ---
Argh, my git send-email scripts were too stupid to add Andy
and linux-arm-msm to this patch.
Some of the drivers in drivers/soc/qcom depended on this file.
Not sure if this patch should go via Andy's tree or Bjorn's.
Regards,
Niklas
On Wed, Jun 13, 2018 at 02:54:00PM +0200, Niklas Cassel wrote:
> Since commit cab673583d96 ("soc: Unconditionally include qcom Makefile"),
> we unconditionally include the soc/qcom/Makefile.
>
> This opens up the possibility to compile test the code even when
> building for other architectures.
>
> Remove the depends on ARCH_QCOM for all Kconfigs, except for
> two Kconfigs that depend on QCOM_SCM, since that triggers lots of build
> errors in qcom_scm. However, that shouldn't stop us from removing
> it from those where it is possible.
>
> Signed-off-by: Niklas Cassel <[email protected]>
> ---
> drivers/soc/qcom/Kconfig | 10 ++--------
> 1 file changed, 2 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig
> index 1d4a9f3ada8c..8c83025c466e 100644
> --- a/drivers/soc/qcom/Kconfig
> +++ b/drivers/soc/qcom/Kconfig
> @@ -5,7 +5,7 @@ menu "Qualcomm SoC drivers"
>
> config QCOM_COMMAND_DB
> bool "Qualcomm Command DB"
> - depends on (ARCH_QCOM && OF) || COMPILE_TEST
> + depends on OF || COMPILE_TEST
> help
> Command DB queries shared memory by key string for shared system
> resources. Platform drivers that require to set state of a shared
> @@ -14,7 +14,6 @@ config QCOM_COMMAND_DB
>
> config QCOM_GENI_SE
> tristate "QCOM GENI Serial Engine Driver"
> - depends on ARCH_QCOM || COMPILE_TEST
> help
> This driver is used to manage Generic Interface (GENI) firmware based
> Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This
> @@ -32,7 +31,6 @@ config QCOM_GLINK_SSR
>
> config QCOM_GSBI
> tristate "QCOM General Serial Bus Interface"
> - depends on ARCH_QCOM
> select MFD_SYSCON
> help
> Say y here to enable GSBI support. The GSBI provides control
> @@ -55,7 +53,7 @@ config QCOM_PM
>
> config QCOM_QMI_HELPERS
> tristate
> - depends on ARCH_QCOM && NET
> + depends on NET
> help
> Helper library for handling QMI encoded messages. QMI encoded
> messages are used in communication between the majority of QRTR
> @@ -76,7 +74,6 @@ config QCOM_RMTFS_MEM
>
> config QCOM_SMEM
> tristate "Qualcomm Shared Memory Manager (SMEM)"
> - depends on ARCH_QCOM
> depends on HWSPINLOCK
> help
> Say y here to enable support for the Qualcomm Shared Memory Manager.
> @@ -85,7 +82,6 @@ config QCOM_SMEM
>
> config QCOM_SMD_RPM
> tristate "Qualcomm Resource Power Manager (RPM) over SMD"
> - depends on ARCH_QCOM
> depends on RPMSG && OF
> help
> If you say yes to this option, support will be included for the
> @@ -122,7 +118,6 @@ config QCOM_SMSM
>
> config QCOM_WCNSS_CTRL
> tristate "Qualcomm WCNSS control driver"
> - depends on ARCH_QCOM
> depends on RPMSG
> help
> Client driver for the WCNSS_CTRL SMD channel, used to download nv
> @@ -130,7 +125,6 @@ config QCOM_WCNSS_CTRL
>
> config QCOM_APR
> tristate "Qualcomm APR Bus (Asynchronous Packet Router)"
> - depends on ARCH_QCOM
> depends on RPMSG
> help
> Enable APR IPC protocol support between
Hello Andy
It seems like QCOM_APR is from Mark Brown's tree,
so just a heads up that you might get a conflict when applying.
Kind regards,
Niklas
Hi Niklas,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on next-20180613]
[cannot apply to v4.17]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Niklas-Cassel/soc-qcom-remove-depends-on-ARCH_QCOM/20180613-205858
config: sparc64-allyesconfig (attached as .config)
compiler: sparc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=sparc64
All errors (new ones prefixed by >>):
`.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o
`.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o
`.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o
`.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o
sound/soc/qcom/qdsp6/q6afe.o: In function `q6afe_remove':
>> q6afe.c:(.text+0xe3c): undefined reference to `of_platform_device_destroy'
sound/soc/qcom/qdsp6/q6afe.o: In function `q6afe_probe':
>> q6afe.c:(.text+0xf00): undefined reference to `of_platform_device_create'
sound/soc/qcom/qdsp6/q6adm.o: In function `q6adm_remove':
>> q6adm.c:(.text+0xa9c): undefined reference to `of_platform_device_destroy'
sound/soc/qcom/qdsp6/q6adm.o: In function `q6adm_probe':
>> q6adm.c:(.text+0xb78): undefined reference to `of_platform_device_create'
sound/soc/qcom/qdsp6/q6asm.o: In function `q6asm_remove':
>> q6asm.c:(.text+0x173c): undefined reference to `of_platform_device_destroy'
sound/soc/qcom/qdsp6/q6asm.o: In function `q6asm_probe':
>> q6asm.c:(.text+0x17f4): undefined reference to `of_platform_device_create'
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Hi Niklas,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on next-20180613]
[cannot apply to v4.17]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Niklas-Cassel/soc-qcom-remove-depends-on-ARCH_QCOM/20180613-205858
reproduce:
# apt-get install sparse
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__
sparse warnings: (new ones prefixed by >>)
>> /kbuild/src/sparse/drivers/rpmsg/qcom_glink_smem.c:91:15: sparse: expression using sizeof(void)
>> /kbuild/src/sparse/drivers/rpmsg/qcom_glink_smem.c:91:15: sparse: expression using sizeof(void)
>> /kbuild/src/sparse/drivers/rpmsg/qcom_glink_smem.c:93:50: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] <asn:2>*from @@ got sn:2>*from @@
/kbuild/src/sparse/drivers/rpmsg/qcom_glink_smem.c:93:50: expected void const [noderef] <asn:2>*from
/kbuild/src/sparse/drivers/rpmsg/qcom_glink_smem.c:93:50: got void *
/kbuild/src/sparse/drivers/rpmsg/qcom_glink_smem.c:98:49: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] <asn:2>*from @@ got sn:2>*from @@
/kbuild/src/sparse/drivers/rpmsg/qcom_glink_smem.c:98:49: expected void const [noderef] <asn:2>*from
/kbuild/src/sparse/drivers/rpmsg/qcom_glink_smem.c:98:49: got void *fifo
/kbuild/src/sparse/drivers/rpmsg/qcom_glink_smem.c:147:15: sparse: expression using sizeof(void)
/kbuild/src/sparse/drivers/rpmsg/qcom_glink_smem.c:147:15: sparse: expression using sizeof(void)
--
>> drivers/clk/qcom/clk-smd-rpm.c:250:23: sparse: expression using sizeof(void)
>> drivers/clk/qcom/clk-smd-rpm.c:250:23: sparse: expression using sizeof(void)
drivers/clk/qcom/clk-smd-rpm.c:259:22: sparse: expression using sizeof(void)
drivers/clk/qcom/clk-smd-rpm.c:259:22: sparse: expression using sizeof(void)
drivers/clk/qcom/clk-smd-rpm.c:333:23: sparse: expression using sizeof(void)
drivers/clk/qcom/clk-smd-rpm.c:333:23: sparse: expression using sizeof(void)
drivers/clk/qcom/clk-smd-rpm.c:338:22: sparse: expression using sizeof(void)
drivers/clk/qcom/clk-smd-rpm.c:338:22: sparse: expression using sizeof(void)
--
/kbuild/src/sparse/drivers/soc/qcom/smd-rpm.c:182:31: sparse: expression using sizeof(void)
>> /kbuild/src/sparse/drivers/soc/qcom/smd-rpm.c:183:47: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const volatile [noderef] <asn:2>*addr @@ got le [noderef] <asn:2>*addr @@
/kbuild/src/sparse/drivers/soc/qcom/smd-rpm.c:183:47: expected void const volatile [noderef] <asn:2>*addr
/kbuild/src/sparse/drivers/soc/qcom/smd-rpm.c:183:47: got unsigned char const *<noident>
--
/kbuild/src/sparse/drivers/soc/qcom/smem.c:418:16: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_header *header @@ got voistruct smem_header *header @@
/kbuild/src/sparse/drivers/soc/qcom/smem.c:418:16: expected struct smem_header *header
/kbuild/src/sparse/drivers/soc/qcom/smem.c:418:16: got void [noderef] <asn:2>*virt_base
/kbuild/src/sparse/drivers/soc/qcom/smem.c:503:16: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_header *header @@ got voistruct smem_header *header @@
/kbuild/src/sparse/drivers/soc/qcom/smem.c:503:16: expected struct smem_header *header
/kbuild/src/sparse/drivers/soc/qcom/smem.c:503:16: got void [noderef] <asn:2>*virt_base
/kbuild/src/sparse/drivers/soc/qcom/smem.c:516:48: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] <avoid * @@
/kbuild/src/sparse/drivers/soc/qcom/smem.c:516:48: expected void *
/kbuild/src/sparse/drivers/soc/qcom/smem.c:516:48: got void [noderef] <asn:2>*
/kbuild/src/sparse/drivers/soc/qcom/smem.c:651:24: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_header *header @@ got voistruct smem_header *header @@
/kbuild/src/sparse/drivers/soc/qcom/smem.c:651:24: expected struct smem_header *header
/kbuild/src/sparse/drivers/soc/qcom/smem.c:651:24: got void [noderef] <asn:2>*virt_base
>> /kbuild/src/sparse/drivers/soc/qcom/smem.c:673:23: sparse: incompatible types in comparison expression (different address spaces)
/kbuild/src/sparse/drivers/soc/qcom/smem.c:675:23: sparse: incompatible types in comparison expression (different address spaces)
>> /kbuild/src/sparse/drivers/soc/qcom/smem.c:676:40: sparse: subtraction of different types can't work (different address spaces)
/kbuild/src/sparse/drivers/soc/qcom/smem.c:691:16: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_header *header @@ got voistruct smem_header *header @@
/kbuild/src/sparse/drivers/soc/qcom/smem.c:691:16: expected struct smem_header *header
/kbuild/src/sparse/drivers/soc/qcom/smem.c:691:16: got void [noderef] <asn:2>*virt_base
/kbuild/src/sparse/drivers/soc/qcom/smem.c:702:16: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_ptable *ptable @@ got voistruct smem_ptable *ptable @@
/kbuild/src/sparse/drivers/soc/qcom/smem.c:702:16: expected struct smem_ptable *ptable
/kbuild/src/sparse/drivers/soc/qcom/smem.c:702:16: got void [noderef] <asn:2>*
/kbuild/src/sparse/drivers/soc/qcom/smem.c:724:57: sparse: restricted __le32 degrades to integer
/kbuild/src/sparse/drivers/soc/qcom/smem.c:765:16: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_partition_header *header @@ got smem_partition_header *header @@
/kbuild/src/sparse/drivers/soc/qcom/smem.c:765:16: expected struct smem_partition_header *header
/kbuild/src/sparse/drivers/soc/qcom/smem.c:765:16: got void [noderef] <asn:2>*
/kbuild/src/sparse/drivers/soc/qcom/smem.c:844:24: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_partition_header *header @@ got smem_partition_header *header @@
/kbuild/src/sparse/drivers/soc/qcom/smem.c:844:24: expected struct smem_partition_header *header
/kbuild/src/sparse/drivers/soc/qcom/smem.c:844:24: got void [noderef] <asn:2>*
/kbuild/src/sparse/drivers/soc/qcom/smem.c:943:16: sparse: incorrect type in assignment (different address spaces) @@ expected struct smem_header *header @@ got voistruct smem_header *header @@
/kbuild/src/sparse/drivers/soc/qcom/smem.c:943:16: expected struct smem_header *header
/kbuild/src/sparse/drivers/soc/qcom/smem.c:943:16: got void [noderef] <asn:2>*virt_base
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
On Wed, Jun 13, 2018 at 6:24 PM, Niklas Cassel <[email protected]> wrote:
> Since commit cab673583d96 ("soc: Unconditionally include qcom Makefile"),
> we unconditionally include the soc/qcom/Makefile.
>
> This opens up the possibility to compile test the code even when
> building for other architectures.
Why do we want to do this when all of it is qcom specific?
Besides wouldn't this increase the binary size for other platforms
>
> Remove the depends on ARCH_QCOM for all Kconfigs, except for
> two Kconfigs that depend on QCOM_SCM, since that triggers lots of build
> errors in qcom_scm. However, that shouldn't stop us from removing
> it from those where it is possible.
>
> Signed-off-by: Niklas Cassel <[email protected]>
> ---
> drivers/soc/qcom/Kconfig | 10 ++--------
> 1 file changed, 2 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig
> index 1d4a9f3ada8c..8c83025c466e 100644
> --- a/drivers/soc/qcom/Kconfig
> +++ b/drivers/soc/qcom/Kconfig
> @@ -5,7 +5,7 @@ menu "Qualcomm SoC drivers"
>
> config QCOM_COMMAND_DB
> bool "Qualcomm Command DB"
> - depends on (ARCH_QCOM && OF) || COMPILE_TEST
> + depends on OF || COMPILE_TEST
> help
> Command DB queries shared memory by key string for shared system
> resources. Platform drivers that require to set state of a shared
> @@ -14,7 +14,6 @@ config QCOM_COMMAND_DB
>
> config QCOM_GENI_SE
> tristate "QCOM GENI Serial Engine Driver"
> - depends on ARCH_QCOM || COMPILE_TEST
> help
> This driver is used to manage Generic Interface (GENI) firmware based
> Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This
> @@ -32,7 +31,6 @@ config QCOM_GLINK_SSR
>
> config QCOM_GSBI
> tristate "QCOM General Serial Bus Interface"
> - depends on ARCH_QCOM
> select MFD_SYSCON
> help
> Say y here to enable GSBI support. The GSBI provides control
> @@ -55,7 +53,7 @@ config QCOM_PM
>
> config QCOM_QMI_HELPERS
> tristate
> - depends on ARCH_QCOM && NET
> + depends on NET
> help
> Helper library for handling QMI encoded messages. QMI encoded
> messages are used in communication between the majority of QRTR
> @@ -76,7 +74,6 @@ config QCOM_RMTFS_MEM
>
> config QCOM_SMEM
> tristate "Qualcomm Shared Memory Manager (SMEM)"
> - depends on ARCH_QCOM
> depends on HWSPINLOCK
> help
> Say y here to enable support for the Qualcomm Shared Memory Manager.
> @@ -85,7 +82,6 @@ config QCOM_SMEM
>
> config QCOM_SMD_RPM
> tristate "Qualcomm Resource Power Manager (RPM) over SMD"
> - depends on ARCH_QCOM
> depends on RPMSG && OF
> help
> If you say yes to this option, support will be included for the
> @@ -122,7 +118,6 @@ config QCOM_SMSM
>
> config QCOM_WCNSS_CTRL
> tristate "Qualcomm WCNSS control driver"
> - depends on ARCH_QCOM
> depends on RPMSG
> help
> Client driver for the WCNSS_CTRL SMD channel, used to download nv
> @@ -130,7 +125,6 @@ config QCOM_WCNSS_CTRL
>
> config QCOM_APR
> tristate "Qualcomm APR Bus (Asynchronous Packet Router)"
> - depends on ARCH_QCOM
> depends on RPMSG
> help
> Enable APR IPC protocol support between
> --
> 2.17.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
On Thu, Jun 14, 2018 at 12:05 PM, Vivek Gautam
<[email protected]> wrote:
> On Wed, Jun 13, 2018 at 6:24 PM, Niklas Cassel <[email protected]> wrote:
>> Since commit cab673583d96 ("soc: Unconditionally include qcom Makefile"),
>> we unconditionally include the soc/qcom/Makefile.
>>
>> This opens up the possibility to compile test the code even when
>> building for other architectures.
>
> Why do we want to do this when all of it is qcom specific?
> Besides, wouldn't this increase the binary size for other platforms.
Sorry, my bad. Send the message without completing.
Besides above points, the COMPILE_TEST flag should allow you
to compile test all of these drivers. If COMPILE_TEST is missing
in some of the configs, we should try adding that.
Or, is there anything that I am missing here for the intention of this patch?
Thanks & Regards
Vivek
>
>>
>> Remove the depends on ARCH_QCOM for all Kconfigs, except for
>> two Kconfigs that depend on QCOM_SCM, since that triggers lots of build
>> errors in qcom_scm. However, that shouldn't stop us from removing
>> it from those where it is possible.
>>
>> Signed-off-by: Niklas Cassel <[email protected]>
>> ---
>> drivers/soc/qcom/Kconfig | 10 ++--------
>> 1 file changed, 2 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig
>> index 1d4a9f3ada8c..8c83025c466e 100644
>> --- a/drivers/soc/qcom/Kconfig
>> +++ b/drivers/soc/qcom/Kconfig
>> @@ -5,7 +5,7 @@ menu "Qualcomm SoC drivers"
>>
>> config QCOM_COMMAND_DB
>> bool "Qualcomm Command DB"
>> - depends on (ARCH_QCOM && OF) || COMPILE_TEST
>> + depends on OF || COMPILE_TEST
>> help
>> Command DB queries shared memory by key string for shared system
>> resources. Platform drivers that require to set state of a shared
>> @@ -14,7 +14,6 @@ config QCOM_COMMAND_DB
>>
>> config QCOM_GENI_SE
>> tristate "QCOM GENI Serial Engine Driver"
>> - depends on ARCH_QCOM || COMPILE_TEST
>> help
>> This driver is used to manage Generic Interface (GENI) firmware based
>> Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This
>> @@ -32,7 +31,6 @@ config QCOM_GLINK_SSR
>>
>> config QCOM_GSBI
>> tristate "QCOM General Serial Bus Interface"
>> - depends on ARCH_QCOM
>> select MFD_SYSCON
>> help
>> Say y here to enable GSBI support. The GSBI provides control
>> @@ -55,7 +53,7 @@ config QCOM_PM
>>
>> config QCOM_QMI_HELPERS
>> tristate
>> - depends on ARCH_QCOM && NET
>> + depends on NET
>> help
>> Helper library for handling QMI encoded messages. QMI encoded
>> messages are used in communication between the majority of QRTR
>> @@ -76,7 +74,6 @@ config QCOM_RMTFS_MEM
>>
>> config QCOM_SMEM
>> tristate "Qualcomm Shared Memory Manager (SMEM)"
>> - depends on ARCH_QCOM
>> depends on HWSPINLOCK
>> help
>> Say y here to enable support for the Qualcomm Shared Memory Manager.
>> @@ -85,7 +82,6 @@ config QCOM_SMEM
>>
>> config QCOM_SMD_RPM
>> tristate "Qualcomm Resource Power Manager (RPM) over SMD"
>> - depends on ARCH_QCOM
>> depends on RPMSG && OF
>> help
>> If you say yes to this option, support will be included for the
>> @@ -122,7 +118,6 @@ config QCOM_SMSM
>>
>> config QCOM_WCNSS_CTRL
>> tristate "Qualcomm WCNSS control driver"
>> - depends on ARCH_QCOM
>> depends on RPMSG
>> help
>> Client driver for the WCNSS_CTRL SMD channel, used to download nv
>> @@ -130,7 +125,6 @@ config QCOM_WCNSS_CTRL
>>
>> config QCOM_APR
>> tristate "Qualcomm APR Bus (Asynchronous Packet Router)"
>> - depends on ARCH_QCOM
>> depends on RPMSG
>> help
>> Enable APR IPC protocol support between
>> --
>> 2.17.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
>
> --
> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
> of Code Aurora Forum, hosted by The Linux Foundation
--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation
On Thu, Jun 14, 2018 at 12:08:10PM +0530, Vivek Gautam wrote:
> On Thu, Jun 14, 2018 at 12:05 PM, Vivek Gautam
> <[email protected]> wrote:
> > On Wed, Jun 13, 2018 at 6:24 PM, Niklas Cassel <[email protected]> wrote:
> >> Since commit cab673583d96 ("soc: Unconditionally include qcom Makefile"),
> >> we unconditionally include the soc/qcom/Makefile.
> >>
> >> This opens up the possibility to compile test the code even when
> >> building for other architectures.
> >
> > Why do we want to do this when all of it is qcom specific?
> > Besides, wouldn't this increase the binary size for other platforms.
To be able to compile test drivers that select some of these Kconfigs,
even when building for other architectures.
The binary size shouldn't increase if they don't enable these Kconfigs.
>
> Sorry, my bad. Send the message without completing.
>
> Besides above points, the COMPILE_TEST flag should allow you
> to compile test all of these drivers. If COMPILE_TEST is missing
> in some of the configs, we should try adding that.
> Or, is there anything that I am missing here for the intention of this patch?
That is another alternative.
So either make sure that all these Kconfigs
have "depends on ARCH_QCOM || COMPILE_TEST",
or
remove ARCH_QCOM from these Kconfigs.
A third, and perhaps best alternative is to do like
drivers/soc/mediatek/Kconfig
menu "MediaTek SoC drivers"
depends on ARCH_MEDIATEK || COMPILE_TEST
Make sure that our root menu entry depends on ARCH_QCOM || COMPILE_TEST,
that way we could remove ARCH_QCOM for all Kconfigs.
Thoughts?
Regards,
Niklas
Hi NIklas,
On 6/14/2018 2:01 PM, Niklas Cassel wrote:
> On Thu, Jun 14, 2018 at 12:08:10PM +0530, Vivek Gautam wrote:
>> On Thu, Jun 14, 2018 at 12:05 PM, Vivek Gautam
>> <[email protected]> wrote:
>>> On Wed, Jun 13, 2018 at 6:24 PM, Niklas Cassel <[email protected]> wrote:
>>>> Since commit cab673583d96 ("soc: Unconditionally include qcom Makefile"),
>>>> we unconditionally include the soc/qcom/Makefile.
>>>>
>>>> This opens up the possibility to compile test the code even when
>>>> building for other architectures.
>>> Why do we want to do this when all of it is qcom specific?
>>> Besides, wouldn't this increase the binary size for other platforms.
> To be able to compile test drivers that select some of these Kconfigs,
> even when building for other architectures.
Are these other drivers which select these Kconfigs not QCOM dependent?
We should make them so if that's not the case, and also add COMPILE_TEST
for them too.
>
> The binary size shouldn't increase if they don't enable these Kconfigs.
>
>> Sorry, my bad. Send the message without completing.
>>
>> Besides above points, the COMPILE_TEST flag should allow you
>> to compile test all of these drivers. If COMPILE_TEST is missing
>> in some of the configs, we should try adding that.
>> Or, is there anything that I am missing here for the intention of this patch?
> That is another alternative.
> So either make sure that all these Kconfigs
> have "depends on ARCH_QCOM || COMPILE_TEST",
> or
> remove ARCH_QCOM from these Kconfigs.
>
> A third, and perhaps best alternative is to do like
> drivers/soc/mediatek/Kconfig
>
> menu "MediaTek SoC drivers"
> depends on ARCH_MEDIATEK || COMPILE_TEST
>
> Make sure that our root menu entry depends on ARCH_QCOM || COMPILE_TEST,
> that way we could remove ARCH_QCOM for all Kconfigs.
>
> Thoughts?
To me the first and third approach look same. So I will leave it to Andy
to decide
which is cleaner.
For 2nd option, I would still say that there shouldn't be a need for
these drivers
to be compiled outside of the ARCH_QCOM, besides for compile test purpose.
Thanks & Regards
Vivek
>
>
> Regards,
> Niklas
> --
> To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html