[alsa-devel] [PATCH] soundwire: cdns: Fix compilation error on arm64
On arm64 the cadence_master.c file doesn't compile.
readl and writel are undefined. This patch fixes that by including io.h.
Signed-off-by: Jan Kotas jank@cadence.com --- drivers/soundwire/cadence_master.c | 1 + 1 file changed, 1 insertion(+)
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> #include <linux/module.h> #include <linux/mod_devicetable.h> #include <linux/soundwire/sdw_registers.h>
On 4/4/2019 1:42 PM, 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.
Signed-off-by: Jan Kotas jank@cadence.com
Reviewed-by: Mukesh Ojha mojha@codeaurora.org
Cheers, -Mukesh
drivers/soundwire/cadence_master.c | 1 + 1 file changed, 1 insertion(+)
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> #include <linux/module.h> #include <linux/mod_devicetable.h> #include <linux/soundwire/sdw_registers.h>
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.
Signed-off-by: Jan Kotas jank@cadence.com
drivers/soundwire/cadence_master.c | 1 + 1 file changed, 1 insertion(+)
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?
#include <linux/module.h> #include <linux/mod_devicetable.h>
#include <linux/soundwire/sdw_registers.h>
2.15.0
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.
#include <linux/module.h> #include <linux/mod_devicetable.h>
#include <linux/soundwire/sdw_registers.h>
2.15.0
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
Hello,
Is there a reason for not accepting this patch? Do you want me to change anything in v2?
Regards, Jan
On 16 Apr 2019, at 10:43, Jan Kotas jank@cadence.com wrote:
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
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.
Applied, thanks
participants (4)
-
Jan Kotas
-
Mukesh Ojha
-
Pierre-Louis Bossart
-
Vinod Koul