This is the bug/patch tracker for Rockbox. Click here for more information.
Quick links: Bugs · Patches · Rockbox frontpage
FS#7654 - LCD garbled top two lines.
Attached to Project:
Rockbox
Opened by Jonathan Backer (jrbil) - Saturday, 25 August 2007, 08:20 GMT+2
Last edited by Michael Sevakis (MikeS) - Wednesday, 05 September 2007, 10:32 GMT+2
Opened by Jonathan Backer (jrbil) - Saturday, 25 August 2007, 08:20 GMT+2
Last edited by Michael Sevakis (MikeS) - Wednesday, 05 September 2007, 10:32 GMT+2
|
DetailsOriginal code had the DMA controller writing two extra lines. When data was transferred to the GRAM on the LCD controller it wrapped around with the extra two lines of data (from outside of the allocated framebuffer). Hence the top two lines were garbled.
However, just changing the 0xde (222) to 0xdc (220) didn't entirely fix the problem. The top two lines were now blank instead of randomly changing. By offseting at least two lines lower lcd_write_reg(R_RAM_ADDR_SET, (y << 2)+175) where y >= 2 the problem goes away. But then everything is offset by y lines. So I worked around by filling in the GRAM from the bottom up. lcd_write_reg(R_ENTRY_MODE, 0x6000); lcd_write_reg(R_RAM_ADDR_SET, (219 << 2)+175) The image was now flipped. So I flipped it back by changing R_DRV_OUTPUT_CONTROL_NORMAL. It's a workaround, but without knowing exactly that all the LCD_REG_? do (no docs), it the best that I can do. To use this patch, you must build a bootloader and install it as well (sansapatch -a new_bootloader). It also clears up the garbled lines when you load the original firmware. To my knowledge, it should work on older e200s, but it has not been tested. |
This task depends upon
Closed by Michael Sevakis (MikeS)
Wednesday, 05 September 2007, 10:32 GMT+2
Reason for closing: Fixed
Additional comments about closing: Committed fix better and compatible with older models.
Wednesday, 05 September 2007, 10:32 GMT+2
Reason for closing: Fixed
Additional comments about closing: Committed fix better and compatible with older models.
One problem with removing that interval is there'd be no blanking for synchronized display updates if we ever do that.
The patch does not change the BP or FP. It just draws from the bottom up, perhaps sidestepping synchronization issues (writing to the GRAM as the display is refreshed? I'm not sure why it works). All the offset does is tell it to draw from the bottom right instead of the top right.
FS#7692.Some one posted that it does not seem to be a patch file. but I followed the directions to make one.
Let me know if i need to remake the patch file.
I did "svn diff firmware/target/arm/sandisk/sansa-e200/lcd-e200.c" is this wrong?
Thanks Jesse