Re: [alsa-devel] [PATCH] soundwire: cdns: Fix compilation error on arm64

From: Jan Kotas
Date: Tue Apr 16 2019 - 04:44:07 EST


> On 14 Apr 2019, at 11:44, Vinod Koul <vkoul@xxxxxxxxxx> 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@xxxxxxxxxxxxxxx> 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