staging: goldfish: Fix pointer cast for 32 bits
As the first argument of gf_write64() was of type unsigned long, and as some calls to gf_write64() were casting the first argument from void * to u64 the compiler and/or sparse were printing warnings for casts of wrong sizes when compiling for i386. This patch changes the type of the first argument of gf_write64() to const void *, and update calls to the function. This change fixed the warnings and allowed to remove casts from 3 calls to gf_write64(). In addition gf_write64() was renamed to gf_write_ptr() as the name was misleading because it only writes 32 bits on 32 bit systems. gf_write_dma_addr() was added to handle dma_addr_t values which is used at drivers/staging/goldfish/goldfish_audio.c. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
e97bc8b220
commit
07d783fd83
5 changed files with 28 additions and 17 deletions
|
|
@ -3,13 +3,24 @@
|
|||
|
||||
/* Helpers for Goldfish virtual platform */
|
||||
|
||||
static inline void gf_write64(unsigned long data,
|
||||
void __iomem *portl, void __iomem *porth)
|
||||
static inline void gf_write_ptr(const void *ptr, void __iomem *portl,
|
||||
void __iomem *porth)
|
||||
{
|
||||
writel((u32)data, portl);
|
||||
writel((u32)(unsigned long)ptr, portl);
|
||||
#ifdef CONFIG_64BIT
|
||||
writel(data>>32, porth);
|
||||
writel((unsigned long)ptr >> 32, porth);
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void gf_write_dma_addr(const dma_addr_t addr,
|
||||
void __iomem *portl,
|
||||
void __iomem *porth)
|
||||
{
|
||||
writel((u32)addr, portl);
|
||||
#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
|
||||
writel(addr >> 32, porth);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#endif /* __LINUX_GOLDFISH_H */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue