Re: [alsa-devel] [PATCH v4 08/15] soundwire: add initial definitions for sdw_master_device

From: Pierre-Louis Bossart
Date: Mon Dec 16 2019 - 12:08:06 EST



diff --git a/drivers/soundwire/Makefile b/drivers/soundwire/Makefile
index 76a5c52b12b4..5bad8422887e 100644
--- a/drivers/soundwire/Makefile
+++ b/drivers/soundwire/Makefile
@@ -7,9 +7,11 @@ ccflags-y += -DDEBUG
#Bus Objs
soundwire-bus-objs := bus_type.o bus.o master.o slave.o mipi_disco.o
stream.o
obj-$(CONFIG_SOUNDWIRE) += soundwire-bus.o
+ccflags-$(CONFIG_SOUNDWIRE) += -DDEFAULT_SYMBOL_NAMESPACE=SDW_CORE

soundwire-generic-allocation-objs := generic_bandwidth_allocation.o
obj-$(CONFIG_SOUNDWIRE_GENERIC_ALLOCATION) +=
soundwire-generic-allocation.o
+ccflags-$(CONFIG_SOUNDWIRE_GENERIC_ALLOCATION) +=
-DDEFAULT_SYMBOL_NAMESPACE=SDW_CORE

Don't use ccflags, just use the correct MODULE_EXPORT_NS() tag instead.

The documentation [1] states

"
Defining namespaces for all symbols of a subsystem can be very verbose and
may become hard to maintain. Therefore a default define
(DEFAULT_SYMBOL_NAMESPACE) is been provided, that, if set, will become the
default for all EXPORT_SYMBOL() and EXPORT_SYMBOL_GPL() macro expansions
that do not specify a namespace.
"

If the ccflags option is not supported or no longer desired, it'd be worth
updating the documentation for dummies like me. I took the wording as a hint
to avoid using MODULE_EXPORT_NS.

It's supported, and works just fine. It's just that you really don't
have a ton of exports, right? What's wrong with manually marking them?

I don't see a MODULE_EXPORT_NS so we'd have to change every single EXPORT_SYMBOL to EXPORT_SYMBOL_NS.

If we are talking about adding the namespaces just about the top-level functions used by Intel, yes we have less than 10 and since they were renamed it's no big deal.

But if we want to use this namespace for lower-level components of the SoundWire code, we have 17 exports in cadence_master.c and more than 27 for the core parts. With the Makefile changes shared last week you'd have 3 changes, I find it more manageable but it's true that the information would be split with the IMPORT_NS in the code and the namespace definition in the Makefile.


And "SDW_CORE" is odd, "SOUNDWIRE" instead?

'sdw' is the prefix used everywhere for SoundWire symbols.

Ok, I guess that ship has sailed :(

we can still use SOUNDWIRE for the namespaces, that'd be fine. you're right to call us on acronyms, it's a bad habit.