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:
parent
c541e04632
commit
d52bea8a90
2 changed files with 31 additions and 15 deletions
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue