mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-01-03 14:00:19 +01:00
back out changes
This commit is contained in:
parent
40a08a7e6d
commit
234bd22bcf
1 changed files with 14 additions and 12 deletions
|
|
@ -1220,28 +1220,30 @@ drm_buf_t *radeon_freelist_get( drm_device_t *dev )
|
|||
drm_radeon_private_t *dev_priv = dev->dev_private;
|
||||
drm_radeon_buf_priv_t *buf_priv;
|
||||
drm_buf_t *buf;
|
||||
int i;
|
||||
int i, t;
|
||||
int start;
|
||||
u32 done_age = RADEON_READ( RADEON_LAST_DISPATCH_REG );
|
||||
|
||||
if ( ++dev_priv->last_buf >= dma->buf_count )
|
||||
dev_priv->last_buf = 0;
|
||||
|
||||
start = dev_priv->last_buf;
|
||||
|
||||
for ( i = start ; i < dma->buf_count ; i++ ) {
|
||||
buf = dma->buflist[i];
|
||||
buf_priv = buf->dev_private;
|
||||
if ( buf->pid == 0 || (buf->pending &&
|
||||
buf_priv->age <= done_age) ) {
|
||||
buf->pending = 0;
|
||||
return buf;
|
||||
for ( t = 0 ; t < dev_priv->usec_timeout ; t++ ) {
|
||||
u32 done_age = RADEON_READ( RADEON_LAST_DISPATCH_REG );
|
||||
for ( i = start ; i < dma->buf_count ; i++ ) {
|
||||
buf = dma->buflist[i];
|
||||
buf_priv = buf->dev_private;
|
||||
if ( buf->pid == 0 || (buf->pending &&
|
||||
buf_priv->age <= done_age) ) {
|
||||
buf->pending = 0;
|
||||
return buf;
|
||||
}
|
||||
start = 0;
|
||||
}
|
||||
start = 0;
|
||||
udelay( 1 );
|
||||
}
|
||||
|
||||
/* It's not really an error for this to fail.
|
||||
*/
|
||||
DRM_ERROR( "returning NULL!\n" );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue