michallenc opened a new pull request, #15873:
URL: https://github.com/apache/nuttx/pull/15873

   ## Summary
   If `st7789_wrram` is called with `count = 1`, then the entire buffer should 
be sent. However, in 3 wire mode, the driver has to send the buffer row by row 
because of additional data flag. The number of rows (count) can't be 
`ST7789_YRES` in this case, but only the number of rows in the buffer (this is 
write size / row size , where row size is `ST7789_XRES * ST7789_BYTESPP`). This 
also applies only if we want to write size larger than row size, because 
`st7789_putrun` allows to write just a part of a row.
   
   This fixes the incorrect behavior of the display in 3 wire mode if the 
display is split into more buffer writes (as in LCD driver for example, FB 
driver did not face this issue).
   
   ## Impact
   
   Fixes the behavior of the display with LCD driver if the buffer is less than 
the entire display size (usually the case in LVGL library). This was initially 
my fault when introducing the support for 3 wire communication, I had done 
tests only with FB driver back then and there was no issue with FB driver.
   
   ## Testing
   
   Tested with 3 scenarios:
   - multiple buffers, each 60 rows large (against LVGL), LCD driver
   - single buffer for the entire display, LCD driver
   - FB driver
   
   Tested on 320 x 240 large display connected as 3 wire on SPI bus with DMA.
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to