From: Roman Kiryanov <[email protected]>
goldfish.h refers to external symbols such as
dma_addr_t and writel. This causes compilation errors
if this file is included before other header files.
The mentioned symbols are defined in types.h (dma_addr_t)
and io.h (writel).
Signed-off-by: Roman Kiryanov <[email protected]>
---
include/linux/goldfish.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/linux/goldfish.h b/include/linux/goldfish.h
index 2835c150c3ff..159b4191f15d 100644
--- a/include/linux/goldfish.h
+++ b/include/linux/goldfish.h
@@ -2,6 +2,9 @@
#ifndef __LINUX_GOLDFISH_H
#define __LINUX_GOLDFISH_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,
--
2.18.0.233.g985f88cf7e-goog
From: Roman Kiryanov <[email protected]>
There are dedicated macros (lower_32_bits and upper_32_bits)
available to extract the lower and upper 32 bits. They provide
better readability and could prevent some compilation warnings.
Signed-off-by: Roman Kiryanov <[email protected]>
---
include/linux/goldfish.h | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/include/linux/goldfish.h b/include/linux/goldfish.h
index 159b4191f15d..265a099cd3b8 100644
--- a/include/linux/goldfish.h
+++ b/include/linux/goldfish.h
@@ -2,6 +2,7 @@
#ifndef __LINUX_GOLDFISH_H
#define __LINUX_GOLDFISH_H
+#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/io.h>
@@ -10,9 +11,11 @@
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
}
@@ -20,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
}
--
2.18.0.233.g985f88cf7e-goog
Hi Greg,
could you please confirm you received my patch?
Regards,
Roman.
On Mon, Jul 23, 2018 at 3:47 PM <[email protected]> wrote:
>
> From: Roman Kiryanov <[email protected]>
>
> goldfish.h refers to external symbols such as
> dma_addr_t and writel. This causes compilation errors
> if this file is included before other header files.
>
> The mentioned symbols are defined in types.h (dma_addr_t)
> and io.h (writel).
>
> Signed-off-by: Roman Kiryanov <[email protected]>
> ---
> include/linux/goldfish.h | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/include/linux/goldfish.h b/include/linux/goldfish.h
> index 2835c150c3ff..159b4191f15d 100644
> --- a/include/linux/goldfish.h
> +++ b/include/linux/goldfish.h
> @@ -2,6 +2,9 @@
> #ifndef __LINUX_GOLDFISH_H
> #define __LINUX_GOLDFISH_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,
> --
> 2.18.0.233.g985f88cf7e-goog
>