aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_asic.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2010-03-16 20:54:38 -0400
committerDave Airlie <airlied@redhat.com>2010-03-30 23:02:06 -0400
commitf47299c55a837af1727bc601e1fc0fa33adaeda5 (patch)
tree3cb63394f5fc9d2adb24922f048e17d688c3c371 /drivers/gpu/drm/radeon/radeon_asic.c
parent9e7b414edbf5e037c1462bbd8676465ed2ae0ac3 (diff)
drm/radeon/kms: display watermark fixes
- rs780/880 were using the wrong bandwidth functions - convert r1xx-r4xx to use the same pm sclk/mclk structs as r5xx+ - move bandwidth setup to a common function Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_asic.c')
-rw-r--r--drivers/gpu/drm/radeon/radeon_asic.c41
1 files changed, 40 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_asic.c b/drivers/gpu/drm/radeon/radeon_asic.c
index dd23dcfbde1..a4b4bc9fa32 100644
--- a/drivers/gpu/drm/radeon/radeon_asic.c
+++ b/drivers/gpu/drm/radeon/radeon_asic.c
@@ -543,6 +543,43 @@ static struct radeon_asic r600_asic = {
543 .ioctl_wait_idle = r600_ioctl_wait_idle, 543 .ioctl_wait_idle = r600_ioctl_wait_idle,
544}; 544};
545 545
546static struct radeon_asic rs780_asic = {
547 .init = &r600_init,
548 .fini = &r600_fini,
549 .suspend = &r600_suspend,
550 .resume = &r600_resume,
551 .cp_commit = &r600_cp_commit,
552 .vga_set_state = &r600_vga_set_state,
553 .gpu_reset = &r600_gpu_reset,
554 .gart_tlb_flush = &r600_pcie_gart_tlb_flush,
555 .gart_set_page = &rs600_gart_set_page,
556 .ring_test = &r600_ring_test,
557 .ring_ib_execute = &r600_ring_ib_execute,
558 .irq_set = &r600_irq_set,
559 .irq_process = &r600_irq_process,
560 .get_vblank_counter = &rs600_get_vblank_counter,
561 .fence_ring_emit = &r600_fence_ring_emit,
562 .cs_parse = &r600_cs_parse,
563 .copy_blit = &r600_copy_blit,
564 .copy_dma = &r600_copy_blit,
565 .copy = &r600_copy_blit,
566 .get_engine_clock = &radeon_atom_get_engine_clock,
567 .set_engine_clock = &radeon_atom_set_engine_clock,
568 .get_memory_clock = NULL,
569 .set_memory_clock = NULL,
570 .get_pcie_lanes = NULL,
571 .set_pcie_lanes = NULL,
572 .set_clock_gating = NULL,
573 .set_surface_reg = r600_set_surface_reg,
574 .clear_surface_reg = r600_clear_surface_reg,
575 .bandwidth_update = &rs690_bandwidth_update,
576 .hpd_init = &r600_hpd_init,
577 .hpd_fini = &r600_hpd_fini,
578 .hpd_sense = &r600_hpd_sense,
579 .hpd_set_polarity = &r600_hpd_set_polarity,
580 .ioctl_wait_idle = r600_ioctl_wait_idle,
581};
582
546static struct radeon_asic rv770_asic = { 583static struct radeon_asic rv770_asic = {
547 .init = &rv770_init, 584 .init = &rv770_init,
548 .fini = &rv770_fini, 585 .fini = &rv770_fini,
@@ -673,9 +710,11 @@ int radeon_asic_init(struct radeon_device *rdev)
673 case CHIP_RV620: 710 case CHIP_RV620:
674 case CHIP_RV635: 711 case CHIP_RV635:
675 case CHIP_RV670: 712 case CHIP_RV670:
713 rdev->asic = &r600_asic;
714 break;
676 case CHIP_RS780: 715 case CHIP_RS780:
677 case CHIP_RS880: 716 case CHIP_RS880:
678 rdev->asic = &r600_asic; 717 rdev->asic = &rs780_asic;
679 break; 718 break;
680 case CHIP_RV770: 719 case CHIP_RV770:
681 case CHIP_RV730: 720 case CHIP_RV730: