mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-08 13:28:05 +00:00
A bit of cleanup work on radeon_freelist_get()
* Fix the main loop to search all buffers before sleeping. * Remove dead code MFC after: 3 days
This commit is contained in:
parent
615fb6e9bc
commit
29e3ffd4f5
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=198695
@ -1860,8 +1860,8 @@ struct drm_buf *radeon_freelist_get(struct drm_device * dev)
|
||||
for (t = 0; t < dev_priv->usec_timeout; t++) {
|
||||
u32 done_age = GET_SCRATCH(dev_priv, 1);
|
||||
DRM_DEBUG("done_age = %d\n", done_age);
|
||||
for (i = start; i < dma->buf_count; i++) {
|
||||
buf = dma->buflist[i];
|
||||
for (i = 0; i < dma->buf_count; i++) {
|
||||
buf = dma->buflist[start];
|
||||
buf_priv = buf->dev_private;
|
||||
if (buf->file_priv == NULL || (buf->pending &&
|
||||
buf_priv->age <=
|
||||
@ -1870,7 +1870,8 @@ struct drm_buf *radeon_freelist_get(struct drm_device * dev)
|
||||
buf->pending = 0;
|
||||
return buf;
|
||||
}
|
||||
start = 0;
|
||||
if (++start >= dma->buf_count)
|
||||
start = 0;
|
||||
}
|
||||
|
||||
if (t) {
|
||||
@ -1879,47 +1880,9 @@ struct drm_buf *radeon_freelist_get(struct drm_device * dev)
|
||||
}
|
||||
}
|
||||
|
||||
DRM_DEBUG("returning NULL!\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#if 0
|
||||
struct drm_buf *radeon_freelist_get(struct drm_device * dev)
|
||||
{
|
||||
struct drm_device_dma *dma = dev->dma;
|
||||
drm_radeon_private_t *dev_priv = dev->dev_private;
|
||||
drm_radeon_buf_priv_t *buf_priv;
|
||||
struct drm_buf *buf;
|
||||
int i, t;
|
||||
int start;
|
||||
u32 done_age;
|
||||
|
||||
done_age = radeon_read_ring_rptr(dev_priv, RADEON_SCRATCHOFF(1));
|
||||
if (++dev_priv->last_buf >= dma->buf_count)
|
||||
dev_priv->last_buf = 0;
|
||||
|
||||
start = dev_priv->last_buf;
|
||||
dev_priv->stats.freelist_loops++;
|
||||
|
||||
for (t = 0; t < 2; t++) {
|
||||
for (i = start; i < dma->buf_count; i++) {
|
||||
buf = dma->buflist[i];
|
||||
buf_priv = buf->dev_private;
|
||||
if (buf->file_priv == 0 || (buf->pending &&
|
||||
buf_priv->age <=
|
||||
done_age)) {
|
||||
dev_priv->stats.requested_bufs++;
|
||||
buf->pending = 0;
|
||||
return buf;
|
||||
}
|
||||
}
|
||||
start = 0;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
void radeon_freelist_reset(struct drm_device * dev)
|
||||
{
|
||||
struct drm_device_dma *dma = dev->dma;
|
||||
|
Loading…
Reference in New Issue
Block a user