aboutsummaryrefslogtreecommitdiff
path: root/src/soc/samsung/exynos5420/include
diff options
context:
space:
mode:
authorJacob Garber <jgarber1@ualberta.ca>2019-07-22 18:31:30 -0600
committerPatrick Georgi <pgeorgi@google.com>2019-08-02 10:00:09 +0000
commit9904905b488cdc1e14cdae34c6040f2e9496c06f (patch)
treeda60a3eac4291f077a29a121c0b0a253dc6d9faf /src/soc/samsung/exynos5420/include
parentb2e75d2d1d410dd432f74e4cd46c3ee7fb9d512a (diff)
soc/samsung/exynos5420: Refactor fimd vidtcon access
Accessing the higher vidtcon variables using pointer arithmetic from the lower address FIMD_CTRL struct is undefined behaviour, since pointers manipulations are not allowed outside the objects they point to. The standard-blessed way is to perform the arithmetic using integer addresses first, and then convert that to a pointer. The end result is the same, but avoids the risk of unsafe optimizations from an over-zealous compiler. Signed-off-by: Jacob Garber <jgarber1@ualberta.ca> Found-by: Coverity CID 1402096, 1402124, 1402131, 1402169 Change-Id: I13ed23836e8e9076ae0bfd88c05c4f2badac9c49 Reviewed-on: https://review.coreboot.org/c/coreboot/+/34633 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'src/soc/samsung/exynos5420/include')
-rw-r--r--src/soc/samsung/exynos5420/include/soc/dp.h5
-rw-r--r--src/soc/samsung/exynos5420/include/soc/fimd.h3
2 files changed, 2 insertions, 6 deletions
diff --git a/src/soc/samsung/exynos5420/include/soc/dp.h b/src/soc/samsung/exynos5420/include/soc/dp.h
index 28db73a019..6b33a76294 100644
--- a/src/soc/samsung/exynos5420/include/soc/dp.h
+++ b/src/soc/samsung/exynos5420/include/soc/dp.h
@@ -884,11 +884,6 @@ struct exynos_fb {
/* LCD IF register offset */
#define EXYNOS5_LCD_IF_BASE_OFFSET 0x20000
-static inline u32 exynos_fimd_get_base_offset(void)
-{
- return EXYNOS5_LCD_IF_BASE_OFFSET/4;
-}
-
/*
* Register offsets
*/
diff --git a/src/soc/samsung/exynos5420/include/soc/fimd.h b/src/soc/samsung/exynos5420/include/soc/fimd.h
index d9d86cbfae..3e9d6a44f5 100644
--- a/src/soc/samsung/exynos5420/include/soc/fimd.h
+++ b/src/soc/samsung/exynos5420/include/soc/fimd.h
@@ -136,7 +136,8 @@ check_member(exynos5_disp_ctrl, trigcon, 0x1a4);
#define OSD_RIGHTBOTX_F_OFFSET 11
#define OSD_RIGHTBOTY_F_OFFSET 0
-#define FIMD_CTRL ((struct exynos_fb *)0x14400000)
+#define FIMD_CTRL_ADDR 0x14400000
+#define FIMD_CTRL ((struct exynos_fb *)FIMD_CTRL_ADDR)
/* from u-boot fb.h. It needs to be merged with these dp structs maybe. */
enum {