Commit 1d03deff authored by Marek Szyprowski's avatar Marek Szyprowski Committed by Mauro Carvalho Chehab

[media] media: s5p-mfc: fix sparse warnings

Commits a0f10c13 and
6c9fe765 ("media: s5p-mfc: fix broken
pointer cast on 64bit arch") fixed issue with lossy cast on 64-bit
architectures. However it also removed __iomem attribute from that cast.
This leads to sparse warnings. This patch fixes those warnings by adding
__iomem cast in case of v6+ code version and replacing readl/writel by
simple u32 load/store operations in case of v5 code (which is called on
system memory allocated by dma_alloc_coherent() instead of io registers).
Reported-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent e9763995
...@@ -263,7 +263,7 @@ static void s5p_mfc_release_dev_context_buffer_v5(struct s5p_mfc_dev *dev) ...@@ -263,7 +263,7 @@ static void s5p_mfc_release_dev_context_buffer_v5(struct s5p_mfc_dev *dev)
static void s5p_mfc_write_info_v5(struct s5p_mfc_ctx *ctx, unsigned int data, static void s5p_mfc_write_info_v5(struct s5p_mfc_ctx *ctx, unsigned int data,
unsigned int ofs) unsigned int ofs)
{ {
writel(data, (void *)(ctx->shm.virt + ofs)); *(u32 *)(ctx->shm.virt + ofs) = data;
wmb(); wmb();
} }
...@@ -271,7 +271,7 @@ static unsigned int s5p_mfc_read_info_v5(struct s5p_mfc_ctx *ctx, ...@@ -271,7 +271,7 @@ static unsigned int s5p_mfc_read_info_v5(struct s5p_mfc_ctx *ctx,
unsigned long ofs) unsigned long ofs)
{ {
rmb(); rmb();
return readl((void *)(ctx->shm.virt + ofs)); return *(u32 *)(ctx->shm.virt + ofs);
} }
static void s5p_mfc_dec_calc_dpb_size_v5(struct s5p_mfc_ctx *ctx) static void s5p_mfc_dec_calc_dpb_size_v5(struct s5p_mfc_ctx *ctx)
......
...@@ -1852,7 +1852,7 @@ static void s5p_mfc_write_info_v6(struct s5p_mfc_ctx *ctx, unsigned int data, ...@@ -1852,7 +1852,7 @@ static void s5p_mfc_write_info_v6(struct s5p_mfc_ctx *ctx, unsigned int data,
unsigned int ofs) unsigned int ofs)
{ {
s5p_mfc_clock_on(); s5p_mfc_clock_on();
writel(data, (void *)((unsigned long)ofs)); writel(data, (void __iomem *)((unsigned long)ofs));
s5p_mfc_clock_off(); s5p_mfc_clock_off();
} }
...@@ -1862,7 +1862,7 @@ s5p_mfc_read_info_v6(struct s5p_mfc_ctx *ctx, unsigned long ofs) ...@@ -1862,7 +1862,7 @@ s5p_mfc_read_info_v6(struct s5p_mfc_ctx *ctx, unsigned long ofs)
int ret; int ret;
s5p_mfc_clock_on(); s5p_mfc_clock_on();
ret = readl((void *)ofs); ret = readl((void __iomem *)ofs);
s5p_mfc_clock_off(); s5p_mfc_clock_off();
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment