]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/gpu/drm/radeon/r420.c
drm/radeon: make cp variable an array
[mv-sheeva.git] / drivers / gpu / drm / radeon / r420.c
index 417fab81812f32b40397de90c7dd2df306322227..62e860436999cfbc9ca957d85b1bcfa5f0ce0060 100644 (file)
@@ -199,6 +199,8 @@ static void r420_clock_resume(struct radeon_device *rdev)
 
 static void r420_cp_errata_init(struct radeon_device *rdev)
 {
+       struct radeon_cp *cp = &rdev->cp[RADEON_RING_TYPE_GFX_INDEX];
+
        /* RV410 and R420 can lock up if CP DMA to host memory happens
         * while the 2D engine is busy.
         *
@@ -206,22 +208,24 @@ static void r420_cp_errata_init(struct radeon_device *rdev)
         * of the CP init, apparently.
         */
        radeon_scratch_get(rdev, &rdev->config.r300.resync_scratch);
-       radeon_ring_lock(rdev, 8);
-       radeon_ring_write(rdev, PACKET0(R300_CP_RESYNC_ADDR, 1));
-       radeon_ring_write(rdev, rdev->config.r300.resync_scratch);
-       radeon_ring_write(rdev, 0xDEADBEEF);
-       radeon_ring_unlock_commit(rdev);
+       radeon_ring_lock(rdev, cp, 8);
+       radeon_ring_write(cp, PACKET0(R300_CP_RESYNC_ADDR, 1));
+       radeon_ring_write(cp, rdev->config.r300.resync_scratch);
+       radeon_ring_write(cp, 0xDEADBEEF);
+       radeon_ring_unlock_commit(rdev, cp);
 }
 
 static void r420_cp_errata_fini(struct radeon_device *rdev)
 {
+       struct radeon_cp *cp = &rdev->cp[RADEON_RING_TYPE_GFX_INDEX];
+
        /* Catch the RESYNC we dispatched all the way back,
         * at the very beginning of the CP init.
         */
-       radeon_ring_lock(rdev, 8);
-       radeon_ring_write(rdev, PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0));
-       radeon_ring_write(rdev, R300_RB3D_DC_FINISH);
-       radeon_ring_unlock_commit(rdev);
+       radeon_ring_lock(rdev, cp, 8);
+       radeon_ring_write(cp, PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0));
+       radeon_ring_write(cp, R300_RB3D_DC_FINISH);
+       radeon_ring_unlock_commit(rdev, cp);
        radeon_scratch_free(rdev, rdev->config.r300.resync_scratch);
 }
 
@@ -387,7 +391,7 @@ int r420_init(struct radeon_device *rdev)
        r300_mc_init(rdev);
        r420_debugfs(rdev);
        /* Fence driver */
-       r = radeon_fence_driver_init(rdev);
+       r = radeon_fence_driver_init(rdev, 1);
        if (r) {
                return r;
        }