[PATCH 1/3] drm/tiny: ssd16xx: send data entry mode on SSD1677

From: LiangCheng Wang

Date: Thu Jul 30 2026 - 23:51:30 EST


skip_data_entry_mode assumes the SSD1677 scan direction is fixed in
hardware, so command 0x11 is never issued. But ssd16xx_fb_dirty()
programs a reversed RAM window - end before start, address counter at
(max, max) - for the 90 and 180 degree orientations, and that only works
if the data entry mode was switched to the matching decrement direction.
Without it the counter runs past the end of the window and the pixel data
never reaches the visible RAM, while fb_dirty(), display_update() and the
BUSY wait all report success.

Drop the flag so hw_init() programs the orientation-dependent mode as it
does for the other controllers.

Tested on a Mayqueen PIXPAPER 4.26m (SSD1677, 800x480): rotation 180 now
renders correctly, which also shows that 0x11 does take effect on this
controller.

Signed-off-by: LiangCheng Wang <zaq14760@xxxxxxxxx>
---
drivers/gpu/drm/tiny/ssd16xx.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/drivers/gpu/drm/tiny/ssd16xx.c b/drivers/gpu/drm/tiny/ssd16xx.c
index 50710fd66a70c011d1cf9d56a4bd53a93aee41b6..02a28c0e07085e35d5210b6e20c214b163ede88f 100644
--- a/drivers/gpu/drm/tiny/ssd16xx.c
+++ b/drivers/gpu/drm/tiny/ssd16xx.c
@@ -507,7 +507,6 @@ static const struct ssd16xx_controller_config ssd16xx_controller_configs[] = {
* SSD1677 datasheet but BIT(3) semantics are undocumented;
* included here pending hardware verification.
* skip_sw_reset: SSD1677 uses GPIO reset; 0x12 is not needed.
- * skip_data_entry_mode: scan direction fixed by the controller.
*/
.max_width = 960,
.max_height = 680,
@@ -526,7 +525,6 @@ static const struct ssd16xx_controller_config ssd16xx_controller_configs[] = {
},
.ctrl2_load_temp_lut = SSD1683_CTRL2_LOAD_TEMP_LUT,
.skip_sw_reset = true,
- .skip_data_entry_mode = true,
},
};


--
2.34.1