diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-03-16 20:54:38 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-03-30 23:02:06 -0400 |
commit | f47299c55a837af1727bc601e1fc0fa33adaeda5 (patch) | |
tree | 3cb63394f5fc9d2adb24922f048e17d688c3c371 /drivers/gpu/drm/radeon/radeon_asic.c | |
parent | 9e7b414edbf5e037c1462bbd8676465ed2ae0ac3 (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.c | 41 |
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 | ||
546 | static 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 | |||
546 | static struct radeon_asic rv770_asic = { | 583 | static 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: |