On 14 Apr 2019, at 11:44, Vinod Koul vkoul@kernel.org wrote:
On 04-04-19, 09:12, Jan Kotas wrote:
On arm64 the cadence_master.c file doesn't compile.
readl and writel are undefined. This patch fixes that by including io.h.
And I cant verify that without hacking kconfig to force compile the lib.
I’m working on a new driver which uses the SOUNDWIRE_CADENCE: Here’s a diff of the Kconfig, it’s a very early stage.
diff --git a/drivers/soundwire/Kconfig b/drivers/soundwire/Kconfig index 19c8efb9a..90d569e03 100644 --- a/drivers/soundwire/Kconfig +++ b/drivers/soundwire/Kconfig @@ -34,4 +34,10 @@ config SOUNDWIRE_INTEL enable this config option to get the SoundWire support for that device.
+config SOUNDWIRE_CADENCE_PLATFORM + tristate "SoundWire Cadence Platform driver" + select SOUNDWIRE_CADENCE + select SOUNDWIRE_BUS + help + SoundWire Cadence Platform drivers. endif
I haven’t modified any of the existing lines. SOUNDWIRE_CADENCE doesn’t depend on anything, except SOUNDWIRE, so it should work, when selected.
On 15 Apr 2019, at 14:41, Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com wrote:
diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence_master.c index cb6a331f4..0b5bcc209 100644 --- a/drivers/soundwire/cadence_master.c +++ b/drivers/soundwire/cadence_master.c @@ -9,6 +9,7 @@ #include <linux/delay.h> #include <linux/device.h> #include <linux/interrupt.h> +#include <linux/io.h>
Why not add asm/io.h which is the header that actually defines readl/writel?
The vast majority of kernel code uses linux/io.h. We use linux/io.h for SOF as well.
I use linux/io.h in my other drivers too.
#include <linux/module.h> #include <linux/mod_devicetable.h>
#include <linux/soundwire/sdw_registers.h>
2.15.0