dmam_alloc_coherent does not return a __iomem pointer.
here is its prototype:

void * dmam_alloc_coherent(struct device *dev, size_t size,
                           dma_addr_t *dma_handle, gfp_t gfp)

This fixes these sparse warnings:

drivers/staging/goldfish/goldfish_audio.c:134:43: warning: incorrect
type in argument 2 (different address spaces)
drivers/staging/goldfish/goldfish_audio.c:134:43:    expected void const
*from
drivers/staging/goldfish/goldfish_audio.c:134:43:    got char [noderef]
<asn:2>*read_buffer
drivers/staging/goldfish/goldfish_audio.c:167:36: warning: incorrect
type in argument 1 (different address spaces)
drivers/staging/goldfish/goldfish_audio.c:167:36:    expected void *to
drivers/staging/goldfish/goldfish_audio.c:167:36:    got char [noderef]
<asn:2>*[assigned] kbuf
drivers/staging/goldfish/goldfish_audio.c:296:27: warning: incorrect
type in assignment (different address spaces)
drivers/staging/goldfish/goldfish_audio.c:296:27:    expected char
[noderef] <asn:2>*buffer_virt
drivers/staging/goldfish/goldfish_audio.c:296:27:    got void *

Signed-off-by: Ricardo Ribalda Delgado <ricardo.riba...@gmail.com>
---
 drivers/staging/goldfish/goldfish_audio.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/goldfish/goldfish_audio.c 
b/drivers/staging/goldfish/goldfish_audio.c
index f200359..0dee1d6 100644
--- a/drivers/staging/goldfish/goldfish_audio.c
+++ b/drivers/staging/goldfish/goldfish_audio.c
@@ -40,12 +40,12 @@ struct goldfish_audio {
        spinlock_t lock;
        wait_queue_head_t wait;
 
-       char __iomem *buffer_virt;      /* combined buffer virtual address */
+       char *buffer_virt;              /* combined buffer virtual address */
        unsigned long buffer_phys;      /* combined buffer physical address */
 
-       char __iomem *write_buffer1;    /* write buffer 1 virtual address */
-       char __iomem *write_buffer2;    /* write buffer 2 virtual address */
-       char __iomem *read_buffer;      /* read buffer virtual address */
+       char *write_buffer1;            /* write buffer 1 virtual address */
+       char *write_buffer2;            /* write buffer 2 virtual address */
+       char *read_buffer;              /* read buffer virtual address */
        int buffer_status;
        int read_supported;         /* true if we have audio input support */
 };
@@ -147,7 +147,7 @@ static ssize_t goldfish_audio_write(struct file *fp, const 
char __user *buf,
        struct goldfish_audio *data = fp->private_data;
        unsigned long irq_flags;
        ssize_t result = 0;
-       char __iomem *kbuf;
+       char *kbuf;
 
        while (count > 0) {
                ssize_t copy = count;
-- 
2.1.4

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to