drm/nouveau/fifo: remove all the "special" engine hooks
All the places this stuff is actually needed tends to be chipset-specific anyway, so we're able to just inline the register bashing instead. The parts of the common code that still directly touch PFIFO temporarily have conditionals, these will be removed in subsequent commits that will refactor the fifo modules into engine modules like graph/mpeg etc. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
@@ -51,7 +51,6 @@ nv10_mem_update_tile_region(struct drm_device *dev,
|
||||
uint32_t size, uint32_t pitch, uint32_t flags)
|
||||
{
|
||||
struct drm_nouveau_private *dev_priv = dev->dev_private;
|
||||
struct nouveau_fifo_engine *pfifo = &dev_priv->engine.fifo;
|
||||
struct nouveau_fb_engine *pfb = &dev_priv->engine.fb;
|
||||
int i = tile - dev_priv->tile.reg, j;
|
||||
unsigned long save;
|
||||
@@ -65,8 +64,8 @@ nv10_mem_update_tile_region(struct drm_device *dev,
|
||||
pfb->init_tile_region(dev, i, addr, size, pitch, flags);
|
||||
|
||||
spin_lock_irqsave(&dev_priv->context_switch_lock, save);
|
||||
pfifo->reassign(dev, false);
|
||||
pfifo->cache_pull(dev, false);
|
||||
nv_wr32(dev, NV03_PFIFO_CACHES, 0);
|
||||
nv04_fifo_cache_pull(dev, false);
|
||||
|
||||
nouveau_wait_for_idle(dev);
|
||||
|
||||
@@ -76,8 +75,8 @@ nv10_mem_update_tile_region(struct drm_device *dev,
|
||||
dev_priv->eng[j]->set_tile_region(dev, i);
|
||||
}
|
||||
|
||||
pfifo->cache_pull(dev, true);
|
||||
pfifo->reassign(dev, true);
|
||||
nv04_fifo_cache_pull(dev, true);
|
||||
nv_wr32(dev, NV03_PFIFO_CACHES, 1);
|
||||
spin_unlock_irqrestore(&dev_priv->context_switch_lock, save);
|
||||
}
|
||||
|
||||
|
Fai riferimento in un nuovo problema
Block a user