Implemented Voodoo vertical retrace status bit.
This commit is contained in:
parent
2e6a5c3f90
commit
1e4c58fee8
1 changed files with 7 additions and 0 deletions
|
|
@ -211,6 +211,7 @@ typedef struct voodoo_t
|
||||||
|
|
||||||
int v_total, v_disp;
|
int v_total, v_disp;
|
||||||
int h_disp;
|
int h_disp;
|
||||||
|
int v_retrace;
|
||||||
|
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
|
@ -3562,6 +3563,8 @@ static uint32_t voodoo_readl(uint32_t addr, void *p)
|
||||||
temp |= (voodoo->swap_count << 28);
|
temp |= (voodoo->swap_count << 28);
|
||||||
if (voodoo->cmd_written - voodoo->cmd_read)
|
if (voodoo->cmd_written - voodoo->cmd_read)
|
||||||
temp |= 0x380; /*Busy*/
|
temp |= 0x380; /*Busy*/
|
||||||
|
if (!voodoo->v_retrace)
|
||||||
|
temp |= 0x40;
|
||||||
if (!voodoo->voodoo_busy)
|
if (!voodoo->voodoo_busy)
|
||||||
wake_fifo_thread(voodoo);
|
wake_fifo_thread(voodoo);
|
||||||
break;
|
break;
|
||||||
|
|
@ -4106,6 +4109,7 @@ void voodoo_callback(void *p)
|
||||||
thread_set_event(voodoo->wake_fifo_thread);
|
thread_set_event(voodoo->wake_fifo_thread);
|
||||||
voodoo->frame_count++;
|
voodoo->frame_count++;
|
||||||
}
|
}
|
||||||
|
voodoo->v_retrace = 1;
|
||||||
}
|
}
|
||||||
voodoo->line++;
|
voodoo->line++;
|
||||||
|
|
||||||
|
|
@ -4126,7 +4130,10 @@ void voodoo_callback(void *p)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (voodoo->line >= voodoo->v_total)
|
if (voodoo->line >= voodoo->v_total)
|
||||||
|
{
|
||||||
voodoo->line = 0;
|
voodoo->line = 0;
|
||||||
|
voodoo->v_retrace = 0;
|
||||||
|
}
|
||||||
if (voodoo->line_time)
|
if (voodoo->line_time)
|
||||||
voodoo->timer_count += voodoo->line_time;
|
voodoo->timer_count += voodoo->line_time;
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue