On 03.05.2012 19:44, j.glisse at gmail.com wrote: > From: Jerome Glisse<jglisse at redhat.com> > > We need to sync with the GFX ring as ttm might have schedule bo move > on it and new command scheduled for other ring need to wait for bo > data to be in place. > > Signed-off-by: Jerome Glisse<jglisse at redhat.com> Reviewed-by: Christian K?nig <christian.koenig at amd.com>
> --- > drivers/gpu/drm/radeon/radeon_cs.c | 12 ++++++------ > include/drm/radeon_drm.h | 1 - > 2 files changed, 6 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/radeon_cs.c > b/drivers/gpu/drm/radeon/radeon_cs.c > index 82f2e7b0..e5f8e17 100644 > --- a/drivers/gpu/drm/radeon/radeon_cs.c > +++ b/drivers/gpu/drm/radeon/radeon_cs.c > @@ -122,15 +122,15 @@ static int radeon_cs_sync_rings(struct radeon_cs_parser > *p) > int i, r; > > for (i = 0; i< p->nrelocs; i++) { > + struct radeon_fence *fence; > + > if (!p->relocs[i].robj || !p->relocs[i].robj->tbo.sync_obj) > continue; > > - if (!(p->relocs[i].flags& RADEON_RELOC_DONT_SYNC)) { > - struct radeon_fence *fence = > p->relocs[i].robj->tbo.sync_obj; > - if (fence->ring != p->ring&& > !radeon_fence_signaled(fence)) { > - sync_to_ring[fence->ring] = true; > - need_sync = true; > - } > + fence = p->relocs[i].robj->tbo.sync_obj; > + if (fence->ring != p->ring&& !radeon_fence_signaled(fence)) { > + sync_to_ring[fence->ring] = true; > + need_sync = true; > } > } > > diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h > index 7c491b4..5805686 100644 > --- a/include/drm/radeon_drm.h > +++ b/include/drm/radeon_drm.h > @@ -926,7 +926,6 @@ struct drm_radeon_cs_chunk { > }; > > /* drm_radeon_cs_reloc.flags */ > -#define RADEON_RELOC_DONT_SYNC 0x01 > > struct drm_radeon_cs_reloc { > uint32_t handle;