diff --git a/drivers/display/display_ili9xxx.c b/drivers/display/display_ili9xxx.c index 6f1ff01d6b10..e07e26c274b8 100644 --- a/drivers/display/display_ili9xxx.c +++ b/drivers/display/display_ili9xxx.c @@ -48,7 +48,9 @@ static void ili9xxx_hw_reset(const struct device *dev) { const struct ili9xxx_config *config = dev->config; - mipi_dbi_reset(config->mipi_dev, ILI9XXX_RESET_PULSE_TIME); + if (mipi_dbi_reset(config->mipi_dev, ILI9XXX_RESET_PULSE_TIME) < 0) { + return; + }; k_sleep(K_MSEC(ILI9XXX_RESET_WAIT_TIME)); } @@ -111,12 +113,11 @@ static int ili9xxx_write(const struct device *dev, const uint16_t x, } else { write_h = desc->height; mipi_desc.height = desc->height; - mipi_desc.buf_size = desc->buf_size; + mipi_desc.buf_size = desc->width * data->bytes_per_pixel * write_h; nbr_of_writes = 1U; } mipi_desc.width = desc->width; - mipi_desc.height = desc->height; /* Per MIPI API, pitch must always match width */ mipi_desc.pitch = desc->width; diff --git a/include/zephyr/drivers/mipi_dbi.h b/include/zephyr/drivers/mipi_dbi.h index 4cd69845bffa..5dca3d6f6599 100644 --- a/include/zephyr/drivers/mipi_dbi.h +++ b/include/zephyr/drivers/mipi_dbi.h @@ -208,7 +208,8 @@ static inline int mipi_dbi_command_read(const struct device *dev, * @param config MIPI DBI configuration * @param framebuf: framebuffer to write to display * @param desc: descriptor of framebuffer to write. Note that the pitch must - * be equal to width. + * be equal to width. "buf_size" field determines how many bytes will be + * written. * @param pixfmt: pixel format of framebuffer data * @retval 0 buffer write succeeded. * @retval -EIO I/O error