Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/84056?usp=email )
Change subject: drivers/intel/gma: Fix mismatching types for fb_add_framebuffer_info ......................................................................
drivers/intel/gma: Fix mismatching types for fb_add_framebuffer_info
GCC LTO found this.
Change-Id: I2d5a9a86dbb91a5505891a30c6e9072b1b4dfc92 Signed-off-by: Arthur Heymans arthur@aheymans.xyz Reviewed-on: https://review.coreboot.org/c/coreboot/+/84056 Reviewed-by: Nico Huber nico.h@gmx.de Tested-by: build bot (Jenkins) no-reply@coreboot.org --- M src/drivers/intel/gma/gma-gfx_init.ads M src/drivers/intel/gma/hires_fb/gma-gfx_init.adb M src/include/framebuffer_info.h M src/lib/edid_fill_fb.c 4 files changed, 15 insertions(+), 5 deletions(-)
Approvals: build bot (Jenkins): Verified Nico Huber: Looks good to me, approved
diff --git a/src/drivers/intel/gma/gma-gfx_init.ads b/src/drivers/intel/gma/gma-gfx_init.ads index 88f64d9..ec1e0ce 100644 --- a/src/drivers/intel/gma/gma-gfx_init.ads +++ b/src/drivers/intel/gma/gma-gfx_init.ads @@ -16,14 +16,14 @@
----------------------------------------------------------------------------
- function c_fb_add_framebuffer_info + function C_Fb_Add_Framebuffer_Info_Simple (fb_addr: Interfaces.C.size_t; x_resolution : word32; y_resolution : word32; bytes_per_line : word32; bits_per_pixel : word8) - return Interfaces.C.size_t; + return Interfaces.C.int;
- pragma import (C, c_fb_add_framebuffer_info, "fb_add_framebuffer_info"); + pragma import (C, C_Fb_Add_Framebuffer_Info_Simple, "fb_add_framebuffer_info_simple");
end GMA.GFX_Init; diff --git a/src/drivers/intel/gma/hires_fb/gma-gfx_init.adb b/src/drivers/intel/gma/hires_fb/gma-gfx_init.adb index ae0b0b7..49d0ca4 100644 --- a/src/drivers/intel/gma/hires_fb/gma-gfx_init.adb +++ b/src/drivers/intel/gma/hires_fb/gma-gfx_init.adb @@ -27,6 +27,7 @@ use type word64; use type word32; use type Interfaces.C.size_t; + use type Interfaces.C.int;
ports : Port_List;
@@ -39,7 +40,7 @@ min_h : pos32 := Config.LINEAR_FRAMEBUFFER_MAX_WIDTH; min_v : pos32 := Config.LINEAR_FRAMEBUFFER_MAX_HEIGHT;
- fbinfo : Interfaces.C.size_t; + fbinfo : Interfaces.C.int;
begin lightup_ok := 0; @@ -82,7 +83,7 @@
HW.GFX.GMA.Map_Linear_FB (linear_fb_addr, fb); if linear_fb_addr /= 0 then - fbinfo := c_fb_add_framebuffer_info + fbinfo := C_Fb_Add_Framebuffer_Info_Simple (fb_addr => Interfaces.C.size_t (linear_fb_addr), x_resolution => word32 (fb.Width), y_resolution => word32 (fb.Height), diff --git a/src/include/framebuffer_info.h b/src/include/framebuffer_info.h index 83445ec..451d893 100644 --- a/src/include/framebuffer_info.h +++ b/src/include/framebuffer_info.h @@ -14,6 +14,8 @@ struct fb_info *fb_add_framebuffer_info(uintptr_t fb_addr, uint32_t x_resolution, uint32_t y_resolution, uint32_t bytes_per_line, uint8_t bits_per_pixel); +int fb_add_framebuffer_info_simple(uintptr_t fb_addr, uint32_t x_res, uint32_t y_res, + uint32_t bytes_per_line, uint8_t bits_per_pixel);
void fb_set_orientation(struct fb_info *info, enum lb_fb_orientation orientation); diff --git a/src/lib/edid_fill_fb.c b/src/lib/edid_fill_fb.c index e4fb08c..c72b701 100644 --- a/src/lib/edid_fill_fb.c +++ b/src/lib/edid_fill_fb.c @@ -148,6 +148,13 @@ return info; }
+/* Wrapper for Ada to have a simpler function signature */ +int fb_add_framebuffer_info_simple(uintptr_t fb_addr, uint32_t x_res, uint32_t y_res, + uint32_t bytes_per_line, uint8_t bits_per_pixel) +{ + return fb_add_framebuffer_info(fb_addr, x_res, y_res, bytes_per_line, bits_per_pixel) != NULL; +} + void fb_set_orientation(struct fb_info *info, enum lb_fb_orientation orientation) { if (!info)