Subversion Repositories Kolibri OS

Rev

Rev 1125 | Rev 1129 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1125 Rev 1128
Line 237... Line 237...
237
 
237
 
238
	rdev->mc.aper_base = drm_get_resource_start(rdev->ddev, 0);
238
	rdev->mc.aper_base = drm_get_resource_start(rdev->ddev, 0);
239
	rdev->mc.aper_size = drm_get_resource_len(rdev->ddev, 0);
239
	rdev->mc.aper_size = drm_get_resource_len(rdev->ddev, 0);
Line 240... Line -...
240
}
-
 
241
 
-
 
242
/*
-
 
243
 * Global GPU functions
-
 
244
 */
-
 
245
void rs600_disable_vga(struct radeon_device *rdev)
-
 
246
{
-
 
247
    unsigned tmp;
-
 
248
    dbgprintf("%s\n",__FUNCTION__);
-
 
249
 
-
 
250
    WREG32(0x330, 0);
-
 
251
    WREG32(0x338, 0);
-
 
252
    tmp = RREG32(0x300);
-
 
253
    tmp &= ~(3 << 16);
-
 
254
    WREG32(0x300, tmp);
-
 
255
    WREG32(0x308, (1 << 8));
-
 
256
    WREG32(0x310, rdev->mc.vram_location);
-
 
257
    WREG32(0x594, 0);
-
 
258
}
-
 
259
 
-
 
260
 
-
 
261
void r420_pipes_init(struct radeon_device *rdev)
-
 
262
{
-
 
263
    unsigned tmp;
-
 
264
    unsigned gb_pipe_select;
-
 
265
    unsigned num_pipes;
-
 
266
 
-
 
267
    dbgprintf("%s\n",__FUNCTION__);
-
 
268
 
-
 
269
    /* GA_ENHANCE workaround TCL deadlock issue */
-
 
270
    WREG32(0x4274, (1 << 0) | (1 << 1) | (1 << 2) | (1 << 3));
-
 
271
    /* get max number of pipes */
-
 
272
    gb_pipe_select = RREG32(0x402C);
-
 
273
    num_pipes = ((gb_pipe_select >> 12) & 3) + 1;
-
 
274
    rdev->num_gb_pipes = num_pipes;
-
 
275
    tmp = 0;
-
 
276
    switch (num_pipes) {
-
 
277
    default:
-
 
278
        /* force to 1 pipe */
-
 
279
        num_pipes = 1;
-
 
280
    case 1:
-
 
281
        tmp = (0 << 1);
-
 
282
        break;
-
 
283
    case 2:
-
 
284
        tmp = (3 << 1);
-
 
285
        break;
-
 
286
    case 3:
-
 
287
        tmp = (6 << 1);
-
 
288
        break;
-
 
289
    case 4:
-
 
290
        tmp = (7 << 1);
-
 
291
        break;
-
 
292
    }
-
 
293
    WREG32(0x42C8, (1 << num_pipes) - 1);
-
 
294
    /* Sub pixel 1/12 so we can have 4K rendering according to doc */
-
 
295
    tmp |= (1 << 4) | (1 << 0);
-
 
296
    WREG32(0x4018, tmp);
-
 
297
    if (r100_gui_wait_for_idle(rdev)) {
-
 
298
        printk(KERN_WARNING "Failed to wait GUI idle while "
-
 
299
               "programming pipes. Bad things might happen.\n");
-
 
300
    }
-
 
301
 
-
 
302
    tmp = RREG32(0x170C);
-
 
303
    WREG32(0x170C, tmp | (1 << 31));
-
 
304
 
-
 
305
    WREG32(R300_RB2D_DSTCACHE_MODE,
-
 
306
           RREG32(R300_RB2D_DSTCACHE_MODE) |
-
 
307
           R300_DC_AUTOFLUSH_ENABLE |
-
 
308
           R300_DC_DC_DISABLE_IGNORE_PE);
-
 
309
 
-
 
310
    if (r100_gui_wait_for_idle(rdev)) {
-
 
311
        printk(KERN_WARNING "Failed to wait GUI idle while "
-
 
312
               "programming pipes. Bad things might happen.\n");
-
 
313
    }
-
 
314
    DRM_INFO("radeon: %d pipes initialized.\n", rdev->num_gb_pipes);
-
 
Line 315... Line 240...
315
}
240
}
316
 
241
 
Line 317... Line 242...
317
 
242
 
Line 432... Line 357...
432
    return 0;
357
    return 0;
433
#endif
358
#endif
434
}
359
}
Line 435... Line -...
435
 
-
 
436
 
-
 
437
void rs600_mc_disable_clients(struct radeon_device *rdev)
-
 
438
{
-
 
439
    unsigned tmp;
-
 
440
    dbgprintf("%s\n",__FUNCTION__);
-
 
441
 
-
 
442
    if (r100_gui_wait_for_idle(rdev)) {
-
 
443
        printk(KERN_WARNING "Failed to wait GUI idle while "
-
 
444
               "programming pipes. Bad things might happen.\n");
-
 
445
    }
-
 
446
 
-
 
447
    tmp = RREG32(AVIVO_D1VGA_CONTROL);
-
 
448
    WREG32(AVIVO_D1VGA_CONTROL, tmp & ~AVIVO_DVGA_CONTROL_MODE_ENABLE);
-
 
449
    tmp = RREG32(AVIVO_D2VGA_CONTROL);
-
 
450
    WREG32(AVIVO_D2VGA_CONTROL, tmp & ~AVIVO_DVGA_CONTROL_MODE_ENABLE);
-
 
451
 
-
 
452
    tmp = RREG32(AVIVO_D1CRTC_CONTROL);
-
 
453
    WREG32(AVIVO_D1CRTC_CONTROL, tmp & ~AVIVO_CRTC_EN);
-
 
454
    tmp = RREG32(AVIVO_D2CRTC_CONTROL);
-
 
455
    WREG32(AVIVO_D2CRTC_CONTROL, tmp & ~AVIVO_CRTC_EN);
-
 
456
 
-
 
457
    /* make sure all previous write got through */
-
 
458
    tmp = RREG32(AVIVO_D2CRTC_CONTROL);
-
 
459
 
-
 
460
    mdelay(1);
-
 
461
 
-
 
462
    dbgprintf("done\n");
-
 
463
 
-
 
464
}
-
 
Line 465... Line 360...
465
 
360