1
0
Fork 0
forked from len0rd/rockbox

Fix FS #8840 for irivers by slowing down the driver some more. Signal quality is obviously varying a lot among the iriver remotes. Speed is now around halfway between pre-r16832 and r17006 when boosted.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17657 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jens Arnold 2008-05-29 21:41:47 +00:00
parent c541e04632
commit d52bea8a90
2 changed files with 31 additions and 15 deletions

View file

@ -81,31 +81,47 @@
eor.l %d6, %d0 /* invert data bit */
move.l %d0, (%a1) /* output data bit7 */
nop
nop
1:
.macro bit_out
move.l %d2, (%a0) /* Bit7: set CLK = 1 */
nop
lsl.l #1, %d4 /* Invert data line for bit6 ? */
bcc.s 1f /* no: skip */
eor.l %d6, %d0 /* Invert data bit */
move.l %d2, (%a0) /* Bit7: set CLK = 1 */
move.l %d1, (%a0) /* set CLK = 0 */
move.l %d0, (%a1) /* Output data bit6 */
bra.s 2f /* slower than trapf.l - required here */
1: /* else */
move.l %d2, (%a0) /* Bit7: set CLK = 1 */
.word 0x51fa /* trapf.w - shadow next insn */
1:
move.l %d1, (%a0) /* set CLK = 0 */
2:
.endm
bit_out
bit_out
bit_out
bit_out
bit_out
bit_out
bit_out
nop /* Let data line settle */
bit_out
nop
nop
bit_out
nop
nop
bit_out
nop
nop
bit_out
nop
nop
bit_out
nop
nop
bit_out
nop
nop
bit_out
nop
nop
move.l %d2, (%a0) /* Bit0: Set CLK = 1 */
nop
nop
move.l %d1, (%a0) /* Set CLK = 0 */
move.w %d3, %sr /* Restore interrupt level */

View file

@ -299,7 +299,7 @@ void lcd_remote_update(void)
#ifdef HAVE_REMOTE_LCD_TICKING
/* Adjust byte delay for emi reduction. */
remote_byte_delay = emireduce ? cpu_frequency / 192800 - 100: 0;
remote_byte_delay = emireduce ? cpu_frequency / 206200 - 85: 0;
#endif
/* Copy display bitmap to hardware */
@ -333,7 +333,7 @@ void lcd_remote_update_rect(int x, int y, int width, int height)
#ifdef HAVE_REMOTE_LCD_TICKING
/* Adjust byte delay for emi reduction */
remote_byte_delay = emireduce ? cpu_frequency / 192800 - 100: 0;
remote_byte_delay = emireduce ? cpu_frequency / 206200 - 85: 0;
#endif
/* Copy specified rectange bitmap to hardware */