Pi Firmware: made SHOW_VSYNC independent of POLL_VSYNC

Change-Id: I020643ac24d7bc6345bf371a6e39cc9114d9d573
soft_delitch
David Banks 2018-07-23 15:37:10 +01:00
rodzic 0a767ebbf1
commit 89b278b163
2 zmienionych plików z 13 dodań i 5 usunięć

Wyświetl plik

@ -32,20 +32,24 @@
#define BIT_PROBE 0x02
#define BIT_CALIBRATE 0x04
#define BIT_CAL_COUNT 0x08
#define BIT_INITIALIZE 0x10
#define BIT_VSYNC_SEEN 0x10
#define BIT_ELK 0x20
#define BIT_SCANLINES 0x40
#define BIT_FIELD_TYPE 0x80
#define BIT_CLEAR 0x100
#define BIT_VSYNC 0x200
#define BIT_INITIALIZE 0x400
// Note, due to a hack, bits 16, 19 and 26 are unavailale
// as the are used for switch change detection
#define OFFSET_NBUFFERS 10
#define OFFSET_LAST_BUFFER 12
#define OFFSET_CURR_BUFFER 14
#define OFFSET_NBUFFERS 17
#define MASK_NBUFFERS (3 << OFFSET_NBUFFERS)
#define MASK_LAST_BUFFER (3 << OFFSET_LAST_BUFFER)
#define MASK_CURR_BUFFER (3 << OFFSET_CURR_BUFFER)
#define MASK_NBUFFERS (3 << OFFSET_NBUFFERS)
// R0 return value bits
#define RET_SW1 0x02

Wyświetl plik

@ -17,9 +17,9 @@
.macro SHOW_VSYNC
mov r7, #0
tst r3, #BIT_VSYNC
tst r3, #(BIT_VSYNC)
beq novsync\@
tst r3, #(BIT_MODE7 | BIT_PROBE)
tst r3, #(BIT_MODE7 | BIT_PROBE | BIT_VSYNC_SEEN)
bne novsync\@
ldr r0, =INTPEND2
ldr r0, [r0]
@ -34,6 +34,7 @@
orr r7, #0x00110000
orr r7, #0x00001100
orr r7, #0x00000011
orr r3, r3, #BIT_VSYNC_SEEN
novsync\@:
.endm
@ -388,6 +389,9 @@ skip_line_loop:
// Process active lines
ldr r5, =NUM_ACTIVE
// Clear the vsync-seen flag
bic r3, r3, #BIT_VSYNC_SEEN
process_line_loop:
SHOW_VSYNC