From 39a49431c7335f739734c05f0457ceb8949f6bb5 Mon Sep 17 00:00:00 2001 From: Pieter De Gendt Date: Wed, 27 Nov 2024 21:52:04 +0100 Subject: [PATCH] drivers: display: Place API into iterable section Add wrapper DEVICE_API macro to all display_driver_api instances. Signed-off-by: Pieter De Gendt --- drivers/display/display_dummy.c | 2 +- drivers/display/display_gc9x01x.c | 2 +- drivers/display/display_hx8394.c | 2 +- drivers/display/display_ili9xxx.c | 2 +- drivers/display/display_intel_multibootfb.c | 2 +- drivers/display/display_ist3931.c | 2 +- drivers/display/display_led_strip_matrix.c | 2 +- drivers/display/display_max7219.c | 2 +- drivers/display/display_mcux_dcnano_lcdif.c | 2 +- drivers/display/display_mcux_elcdif.c | 2 +- drivers/display/display_nrf_led_matrix.c | 2 +- drivers/display/display_nt35510.c | 2 +- drivers/display/display_otm8009a.c | 2 +- drivers/display/display_renesas_lcdc.c | 2 +- drivers/display/display_rm67162.c | 2 +- drivers/display/display_rm68200.c | 2 +- drivers/display/display_sdl.c | 2 +- drivers/display/display_st7735r.c | 2 +- drivers/display/display_st7789v.c | 2 +- drivers/display/display_st7796s.c | 2 +- drivers/display/display_stm32_ltdc.c | 2 +- drivers/display/ls0xx.c | 2 +- drivers/display/ssd1306.c | 2 +- drivers/display/ssd1322.c | 2 +- drivers/display/ssd1327.c | 2 +- drivers/display/ssd16xx.c | 2 +- drivers/display/uc81xx.c | 2 +- subsys/fb/cfb.c | 4 ++++ 28 files changed, 31 insertions(+), 27 deletions(-) diff --git a/drivers/display/display_dummy.c b/drivers/display/display_dummy.c index 1a11ee2bf36..2ba8c8c6c92 100644 --- a/drivers/display/display_dummy.c +++ b/drivers/display/display_dummy.c @@ -106,7 +106,7 @@ static int dummy_display_set_pixel_format(const struct device *dev, return 0; } -static const struct display_driver_api dummy_display_api = { +static DEVICE_API(display, dummy_display_api) = { .blanking_on = dummy_display_blanking_on, .blanking_off = dummy_display_blanking_off, .write = dummy_display_write, diff --git a/drivers/display/display_gc9x01x.c b/drivers/display/display_gc9x01x.c index 7a3ca1ea12e..35cedc9c219 100644 --- a/drivers/display/display_gc9x01x.c +++ b/drivers/display/display_gc9x01x.c @@ -609,7 +609,7 @@ static int gc9x01x_pm_action(const struct device *dev, enum pm_device_action act #endif /* CONFIG_PM_DEVICE */ /* Device driver API*/ -static const struct display_driver_api gc9x01x_api = { +static DEVICE_API(display, gc9x01x_api) = { .blanking_on = gc9x01x_display_blanking_on, .blanking_off = gc9x01x_display_blanking_off, .write = gc9x01x_write, diff --git a/drivers/display/display_hx8394.c b/drivers/display/display_hx8394.c index e6e67161d32..20eb93b7f25 100644 --- a/drivers/display/display_hx8394.c +++ b/drivers/display/display_hx8394.c @@ -524,7 +524,7 @@ static void hx8394_get_capabilities(const struct device *dev, capabilities->current_orientation = DISPLAY_ORIENTATION_NORMAL; } -static const struct display_driver_api hx8394_api = { +static DEVICE_API(display, hx8394_api) = { .blanking_on = hx8394_blanking_on, .blanking_off = hx8394_blanking_off, .write = hx8394_write, diff --git a/drivers/display/display_ili9xxx.c b/drivers/display/display_ili9xxx.c index b5bbc973327..e28ba65d184 100644 --- a/drivers/display/display_ili9xxx.c +++ b/drivers/display/display_ili9xxx.c @@ -476,7 +476,7 @@ static int ili9xxx_init(const struct device *dev) return 0; } -static const struct display_driver_api ili9xxx_api = { +static DEVICE_API(display, ili9xxx_api) = { .blanking_on = ili9xxx_display_blanking_on, .blanking_off = ili9xxx_display_blanking_off, .write = ili9xxx_write, diff --git a/drivers/display/display_intel_multibootfb.c b/drivers/display/display_intel_multibootfb.c index e2b93b60940..f9182e1f0f4 100644 --- a/drivers/display/display_intel_multibootfb.c +++ b/drivers/display/display_intel_multibootfb.c @@ -105,7 +105,7 @@ static int framebuf_read(const struct device *dev, const uint16_t x, return 0; } -const struct display_driver_api framebuf_display_api = { +DEVICE_API(display, framebuf_display_api) = { .write = framebuf_write, .read = framebuf_read, .get_capabilities = framebuf_get_capabilities, diff --git a/drivers/display/display_ist3931.c b/drivers/display/display_ist3931.c index 6170207653a..a28af715d69 100644 --- a/drivers/display/display_ist3931.c +++ b/drivers/display/display_ist3931.c @@ -256,7 +256,7 @@ static inline int ist3931_blanking_off(const struct device *dev) return ist3931_driver_sleep_on_off(dev, true); } -static const struct display_driver_api ist3931_api = { +static DEVICE_API(display, ist3931_api) = { .write = ist3931_write, .get_capabilities = ist3931_get_capabilities, .blanking_on = ist3931_blanking_on, diff --git a/drivers/display/display_led_strip_matrix.c b/drivers/display/display_led_strip_matrix.c index 0f562eeb66c..d4e5be57c4a 100644 --- a/drivers/display/display_led_strip_matrix.c +++ b/drivers/display/display_led_strip_matrix.c @@ -203,7 +203,7 @@ static void led_strip_matrix_get_capabilities(const struct device *dev, caps->screen_info = 0; } -static const struct display_driver_api led_strip_matrix_api = { +static DEVICE_API(display, led_strip_matrix_api) = { .write = led_strip_matrix_write, .read = led_strip_matrix_read, .get_capabilities = led_strip_matrix_get_capabilities, diff --git a/drivers/display/display_max7219.c b/drivers/display/display_max7219.c index f3ccc52c9d4..2f3553c1eb8 100644 --- a/drivers/display/display_max7219.c +++ b/drivers/display/display_max7219.c @@ -254,7 +254,7 @@ static void max7219_get_capabilities(const struct device *dev, struct display_ca caps->current_orientation = DISPLAY_ORIENTATION_NORMAL; } -static const struct display_driver_api max7219_api = { +static DEVICE_API(display, max7219_api) = { .write = max7219_write, .set_brightness = max7219_set_brightness, .get_capabilities = max7219_get_capabilities, diff --git a/drivers/display/display_mcux_dcnano_lcdif.c b/drivers/display/display_mcux_dcnano_lcdif.c index 27a357fa64c..b9e90438303 100644 --- a/drivers/display/display_mcux_dcnano_lcdif.c +++ b/drivers/display/display_mcux_dcnano_lcdif.c @@ -247,7 +247,7 @@ static int mcux_dcnano_lcdif_init(const struct device *dev) return 0; } -static const struct display_driver_api mcux_dcnano_lcdif_api = { +static DEVICE_API(display, mcux_dcnano_lcdif_api) = { .blanking_on = mcux_dcnano_lcdif_display_blanking_on, .blanking_off = mcux_dcnano_lcdif_display_blanking_off, .set_pixel_format = mcux_dcnano_lcdif_set_pixel_format, diff --git a/drivers/display/display_mcux_elcdif.c b/drivers/display/display_mcux_elcdif.c index b38a1f65b2f..9a600421f8e 100644 --- a/drivers/display/display_mcux_elcdif.c +++ b/drivers/display/display_mcux_elcdif.c @@ -354,7 +354,7 @@ static int mcux_elcdif_init(const struct device *dev) return 0; } -static const struct display_driver_api mcux_elcdif_api = { +static DEVICE_API(display, mcux_elcdif_api) = { .blanking_on = mcux_elcdif_display_blanking_on, .blanking_off = mcux_elcdif_display_blanking_off, .write = mcux_elcdif_write, diff --git a/drivers/display/display_nrf_led_matrix.c b/drivers/display/display_nrf_led_matrix.c index d88bc760e76..64068ea488f 100644 --- a/drivers/display/display_nrf_led_matrix.c +++ b/drivers/display/display_nrf_led_matrix.c @@ -276,7 +276,7 @@ static int api_write(const struct device *dev, return 0; } -const struct display_driver_api driver_api = { +DEVICE_API(display, driver_api) = { .blanking_on = api_blanking_on, .blanking_off = api_blanking_off, .write = api_write, diff --git a/drivers/display/display_nt35510.c b/drivers/display/display_nt35510.c index 6d0bb85fecb..0fa53ac4fae 100644 --- a/drivers/display/display_nt35510.c +++ b/drivers/display/display_nt35510.c @@ -410,7 +410,7 @@ static int nt35510_init(const struct device *dev) return 0; } -static const struct display_driver_api nt35510_api = { +static DEVICE_API(display, nt35510_api) = { .blanking_on = nt35510_blanking_on, .blanking_off = nt35510_blanking_off, .set_brightness = nt35510_set_brightness, diff --git a/drivers/display/display_otm8009a.c b/drivers/display/display_otm8009a.c index 5f00ac3a13c..c12f8645fa5 100644 --- a/drivers/display/display_otm8009a.c +++ b/drivers/display/display_otm8009a.c @@ -605,7 +605,7 @@ static void otm8009a_get_capabilities(const struct device *dev, capabilities->current_orientation = data->orientation; } -static const struct display_driver_api otm8009a_api = { +static DEVICE_API(display, otm8009a_api) = { .blanking_on = otm8009a_blanking_on, .blanking_off = otm8009a_blanking_off, .write = otm8009a_write, diff --git a/drivers/display/display_renesas_lcdc.c b/drivers/display/display_renesas_lcdc.c index b51ba33585a..f2d3b7ca2c9 100644 --- a/drivers/display/display_renesas_lcdc.c +++ b/drivers/display/display_renesas_lcdc.c @@ -614,7 +614,7 @@ static int display_smartbond_pm_action(const struct device *dev, enum pm_device_ } #endif -static const struct display_driver_api display_smartbond_driver_api = { +static DEVICE_API(display, display_smartbond_driver_api) = { .write = display_smartbond_write, .read = display_smartbond_read, .get_framebuffer = display_smartbond_get_framebuffer, diff --git a/drivers/display/display_rm67162.c b/drivers/display/display_rm67162.c index e63a4461810..a5bd43af7e6 100644 --- a/drivers/display/display_rm67162.c +++ b/drivers/display/display_rm67162.c @@ -576,7 +576,7 @@ static int rm67162_pm_action(const struct device *dev, #endif /* CONFIG_PM_DEVICE */ -static const struct display_driver_api rm67162_api = { +static DEVICE_API(display, rm67162_api) = { .blanking_on = rm67162_blanking_on, .blanking_off = rm67162_blanking_off, .get_capabilities = rm67162_get_capabilities, diff --git a/drivers/display/display_rm68200.c b/drivers/display/display_rm68200.c index 7048790bdf3..e0e3463911c 100644 --- a/drivers/display/display_rm68200.c +++ b/drivers/display/display_rm68200.c @@ -159,7 +159,7 @@ static void rm68200_get_capabilities(const struct device *dev, capabilities->current_orientation = DISPLAY_ORIENTATION_NORMAL; } -static const struct display_driver_api rm68200_api = { +static DEVICE_API(display, rm68200_api) = { .blanking_on = rm68200_blanking_on, .blanking_off = rm68200_blanking_off, .write = rm68200_write, diff --git a/drivers/display/display_sdl.c b/drivers/display/display_sdl.c index 125c5624ef0..d3ac14aa7b7 100644 --- a/drivers/display/display_sdl.c +++ b/drivers/display/display_sdl.c @@ -501,7 +501,7 @@ static void sdl_display_cleanup(struct sdl_display_data *disp_data) &disp_data->background_texture); } -static const struct display_driver_api sdl_display_api = { +static DEVICE_API(display, sdl_display_api) = { .blanking_on = sdl_display_blanking_on, .blanking_off = sdl_display_blanking_off, .write = sdl_display_write, diff --git a/drivers/display/display_st7735r.c b/drivers/display/display_st7735r.c index a12ddf3ecfb..6d785f9056d 100644 --- a/drivers/display/display_st7735r.c +++ b/drivers/display/display_st7735r.c @@ -479,7 +479,7 @@ static int st7735r_pm_action(const struct device *dev, } #endif /* CONFIG_PM_DEVICE */ -static const struct display_driver_api st7735r_api = { +static DEVICE_API(display, st7735r_api) = { .blanking_on = st7735r_blanking_on, .blanking_off = st7735r_blanking_off, .write = st7735r_write, diff --git a/drivers/display/display_st7789v.c b/drivers/display/display_st7789v.c index 95fc6b5bda0..cc329e0c134 100644 --- a/drivers/display/display_st7789v.c +++ b/drivers/display/display_st7789v.c @@ -360,7 +360,7 @@ static int st7789v_pm_action(const struct device *dev, } #endif /* CONFIG_PM_DEVICE */ -static const struct display_driver_api st7789v_api = { +static DEVICE_API(display, st7789v_api) = { .blanking_on = st7789v_blanking_on, .blanking_off = st7789v_blanking_off, .write = st7789v_write, diff --git a/drivers/display/display_st7796s.c b/drivers/display/display_st7796s.c index f7c31cde347..32411d7a54d 100644 --- a/drivers/display/display_st7796s.c +++ b/drivers/display/display_st7796s.c @@ -347,7 +347,7 @@ static int st7796s_init(const struct device *dev) return 0; } -static const struct display_driver_api st7796s_api = { +static DEVICE_API(display, st7796s_api) = { .blanking_on = st7796s_blanking_on, .blanking_off = st7796s_blanking_off, .write = st7796s_write, diff --git a/drivers/display/display_stm32_ltdc.c b/drivers/display/display_stm32_ltdc.c index c7e1797fdea..e9e61da7496 100644 --- a/drivers/display/display_stm32_ltdc.c +++ b/drivers/display/display_stm32_ltdc.c @@ -466,7 +466,7 @@ static int stm32_ltdc_pm_action(const struct device *dev, } #endif /* CONFIG_PM_DEVICE */ -static const struct display_driver_api stm32_ltdc_display_api = { +static DEVICE_API(display, stm32_ltdc_display_api) = { .write = stm32_ltdc_write, .read = stm32_ltdc_read, .get_framebuffer = stm32_ltdc_get_framebuffer, diff --git a/drivers/display/ls0xx.c b/drivers/display/ls0xx.c index 0616148e932..de6d7af5a09 100644 --- a/drivers/display/ls0xx.c +++ b/drivers/display/ls0xx.c @@ -278,7 +278,7 @@ static const struct ls0xx_config ls0xx_config = { #endif }; -static const struct display_driver_api ls0xx_driver_api = { +static DEVICE_API(display, ls0xx_driver_api) = { .blanking_on = ls0xx_blanking_on, .blanking_off = ls0xx_blanking_off, .write = ls0xx_write, diff --git a/drivers/display/ssd1306.c b/drivers/display/ssd1306.c index 4f3d6b81349..67acc839c6d 100644 --- a/drivers/display/ssd1306.c +++ b/drivers/display/ssd1306.c @@ -478,7 +478,7 @@ static int ssd1306_init(const struct device *dev) return 0; } -static const struct display_driver_api ssd1306_driver_api = { +static DEVICE_API(display, ssd1306_driver_api) = { .blanking_on = ssd1306_suspend, .blanking_off = ssd1306_resume, .write = ssd1306_write, diff --git a/drivers/display/ssd1322.c b/drivers/display/ssd1322.c index 9dee7d3d4c5..2fadbd9c793 100644 --- a/drivers/display/ssd1322.c +++ b/drivers/display/ssd1322.c @@ -349,7 +349,7 @@ static int ssd1322_init(const struct device *dev) return 0; } -static struct display_driver_api ssd1322_driver_api = { +static DEVICE_API(display, ssd1322_driver_api) = { .blanking_on = ssd1322_blanking_on, .blanking_off = ssd1322_blanking_off, .write = ssd1322_write, diff --git a/drivers/display/ssd1327.c b/drivers/display/ssd1327.c index 65c9054c66e..9066c8c0d2a 100644 --- a/drivers/display/ssd1327.c +++ b/drivers/display/ssd1327.c @@ -317,7 +317,7 @@ static int ssd1327_init(const struct device *dev) return 0; } -static struct display_driver_api ssd1327_driver_api = { +static DEVICE_API(display, ssd1327_driver_api) = { .blanking_on = ssd1327_suspend, .blanking_off = ssd1327_resume, .write = ssd1327_write, diff --git a/drivers/display/ssd16xx.c b/drivers/display/ssd16xx.c index 7dfaa121177..3671ac45ec7 100644 --- a/drivers/display/ssd16xx.c +++ b/drivers/display/ssd16xx.c @@ -937,7 +937,7 @@ static int ssd16xx_init(const struct device *dev) return ssd16xx_controller_init(dev); } -static const struct display_driver_api ssd16xx_driver_api = { +static DEVICE_API(display, ssd16xx_driver_api) = { .blanking_on = ssd16xx_blanking_on, .blanking_off = ssd16xx_blanking_off, .write = ssd16xx_write, diff --git a/drivers/display/uc81xx.c b/drivers/display/uc81xx.c index cac7d1d20c6..a051575c165 100644 --- a/drivers/display/uc81xx.c +++ b/drivers/display/uc81xx.c @@ -710,7 +710,7 @@ static const struct uc81xx_quirks uc8179_quirks = { }; #endif -static const struct display_driver_api uc81xx_driver_api = { +static DEVICE_API(display, uc81xx_driver_api) = { .blanking_on = uc81xx_blanking_on, .blanking_off = uc81xx_blanking_off, .write = uc81xx_write, diff --git a/subsys/fb/cfb.c b/subsys/fb/cfb.c index 185ed1542d4..d1e0cd6cf95 100644 --- a/subsys/fb/cfb.c +++ b/subsys/fb/cfb.c @@ -464,6 +464,8 @@ int cfb_framebuffer_finalize(const struct device *dev) const struct char_framebuffer *fb = &char_fb; int err; + __ASSERT_NO_MSG(DEVICE_API_IS(display, dev)); + if (!fb->buf) { return -ENODEV; } @@ -564,6 +566,8 @@ int cfb_framebuffer_init(const struct device *dev) struct char_framebuffer *fb = &char_fb; struct display_capabilities cfg; + __ASSERT_NO_MSG(DEVICE_API_IS(display, dev)); + api->get_capabilities(dev, &cfg); STRUCT_SECTION_COUNT(cfb_font, &fb->numof_fonts);