| 793 | } |
| 794 | |
| 795 | static void panel_write_pixel_continue_bug(panel_mem_ptr_t *memPtr, uint32_t bgr666) { |
| 796 | panel.spiMemFlags = 0; |
| 797 | panel_update_write_pixel_method(memPtr); |
| 798 | uint16_t xAddr = memPtr->xAddr; |
| 799 | if (likely(xAddr != panel.windowEnd.xAddr)) { |
| 800 | panel.write_pixel(memPtr, bgr666); |
| 801 | return; |
| 802 | } |
| 803 | /* Write Continue bug */ |
| 804 | /* If the first write wraps on X, write goes to the new Y address */ |
| 805 | /* If it also wraps on Y and fills the window, the write is discarded */ |
| 806 | if (!likely(panel_next_y_addr(memPtr))) { |
| 807 | return; |
| 808 | } |
| 809 | panel_update_write_pixel_method(memPtr); |
| 810 | memPtr->xAddr = panel.windowStart.xAddr; |
| 811 | uint16_t row; |
| 812 | uint8_t col; |
| 813 | if (panel_row_col_addr_swap()) { |
| 814 | row = xAddr; |
| 815 | col = memPtr->yAddr; |
| 816 | } else { |
| 817 | col = xAddr; |
| 818 | row = memPtr->yAddr; |
| 819 | } |
| 820 | if (likely(row < PANEL_NUM_ROWS && col < PANEL_NUM_COLS)) { |
| 821 | panel_write_pixel(&panel.frame[row][col], bgr666); |
| 822 | } |
| 823 | } |
| 824 | |
| 825 | static inline void panel_write_pixel_18bpp(uint32_t bgr666) { |
| 826 | panel_spi_catchup(); |
nothing calls this directly
no test coverage detected