Merge tag 'linux-watchdog-4.19-rc1' of git://www.linux-watchdog.org/linux-watchdog
[linux-2.6-block.git] / include / linux / goldfish.h
index 2835c150c3ff0a89dc8f1a9628f2b3f3f0b0ed42..265a099cd3b83dce18e24a36e37d6038e25fc7d0 100644 (file)
@@ -2,14 +2,20 @@
 #ifndef __LINUX_GOLDFISH_H
 #define __LINUX_GOLDFISH_H
 
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/io.h>
+
 /* Helpers for Goldfish virtual platform */
 
 static inline void gf_write_ptr(const void *ptr, void __iomem *portl,
                                void __iomem *porth)
 {
-       writel((u32)(unsigned long)ptr, portl);
+       const unsigned long addr = (unsigned long)ptr;
+
+       writel(lower_32_bits(addr), portl);
 #ifdef CONFIG_64BIT
-       writel((unsigned long)ptr >> 32, porth);
+       writel(upper_32_bits(addr), porth);
 #endif
 }
 
@@ -17,9 +23,9 @@ static inline void gf_write_dma_addr(const dma_addr_t addr,
                                     void __iomem *portl,
                                     void __iomem *porth)
 {
-       writel((u32)addr, portl);
+       writel(lower_32_bits(addr), portl);
 #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
-       writel(addr >> 32, porth);
+       writel(upper_32_bits(addr), porth);
 #endif
 }