Commit 236f651bf79ab7d521bdacf4753ddd0764334980
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
Merge branch 'drm-fixes-3.9' of git://people.freedesktop.org/~agd5f/linux into drm-next
Alex writes: "Mostly just small bug fixes. Big change is new pci ids for Richland APUs." * 'drm-fixes-3.9' of git://people.freedesktop.org/~agd5f/linux: drm/radeon: add Richland pci ids drm/radeon: add support for Richland APUs drm/radeon/benchmark: allow same domains for dma copy drm/radeon/benchmark: make sure bo blit copy exists before using it drm/radeon: fix backend map setup on 1 RB trinity boards drm/radeon: fix S/R on VM systems (cayman/TN/SI)
Showing 4 changed files Side-by-side Diff
drivers/gpu/drm/radeon/ni.c
... | ... | @@ -468,13 +468,19 @@ |
468 | 468 | (rdev->pdev->device == 0x9907) || |
469 | 469 | (rdev->pdev->device == 0x9908) || |
470 | 470 | (rdev->pdev->device == 0x9909) || |
471 | + (rdev->pdev->device == 0x990B) || | |
472 | + (rdev->pdev->device == 0x990C) || | |
473 | + (rdev->pdev->device == 0x990F) || | |
471 | 474 | (rdev->pdev->device == 0x9910) || |
472 | - (rdev->pdev->device == 0x9917)) { | |
475 | + (rdev->pdev->device == 0x9917) || | |
476 | + (rdev->pdev->device == 0x9999)) { | |
473 | 477 | rdev->config.cayman.max_simds_per_se = 6; |
474 | 478 | rdev->config.cayman.max_backends_per_se = 2; |
475 | 479 | } else if ((rdev->pdev->device == 0x9903) || |
476 | 480 | (rdev->pdev->device == 0x9904) || |
477 | 481 | (rdev->pdev->device == 0x990A) || |
482 | + (rdev->pdev->device == 0x990D) || | |
483 | + (rdev->pdev->device == 0x990E) || | |
478 | 484 | (rdev->pdev->device == 0x9913) || |
479 | 485 | (rdev->pdev->device == 0x9918)) { |
480 | 486 | rdev->config.cayman.max_simds_per_se = 4; |
... | ... | @@ -483,6 +489,9 @@ |
483 | 489 | (rdev->pdev->device == 0x9990) || |
484 | 490 | (rdev->pdev->device == 0x9991) || |
485 | 491 | (rdev->pdev->device == 0x9994) || |
492 | + (rdev->pdev->device == 0x9995) || | |
493 | + (rdev->pdev->device == 0x9996) || | |
494 | + (rdev->pdev->device == 0x999A) || | |
486 | 495 | (rdev->pdev->device == 0x99A0)) { |
487 | 496 | rdev->config.cayman.max_simds_per_se = 3; |
488 | 497 | rdev->config.cayman.max_backends_per_se = 1; |
... | ... | @@ -616,11 +625,22 @@ |
616 | 625 | WREG32(DMA_TILING_CONFIG + DMA0_REGISTER_OFFSET, gb_addr_config); |
617 | 626 | WREG32(DMA_TILING_CONFIG + DMA1_REGISTER_OFFSET, gb_addr_config); |
618 | 627 | |
619 | - tmp = gb_addr_config & NUM_PIPES_MASK; | |
620 | - tmp = r6xx_remap_render_backend(rdev, tmp, | |
621 | - rdev->config.cayman.max_backends_per_se * | |
622 | - rdev->config.cayman.max_shader_engines, | |
623 | - CAYMAN_MAX_BACKENDS, disabled_rb_mask); | |
628 | + if ((rdev->config.cayman.max_backends_per_se == 1) && | |
629 | + (rdev->flags & RADEON_IS_IGP)) { | |
630 | + if ((disabled_rb_mask & 3) == 1) { | |
631 | + /* RB0 disabled, RB1 enabled */ | |
632 | + tmp = 0x11111111; | |
633 | + } else { | |
634 | + /* RB1 disabled, RB0 enabled */ | |
635 | + tmp = 0x00000000; | |
636 | + } | |
637 | + } else { | |
638 | + tmp = gb_addr_config & NUM_PIPES_MASK; | |
639 | + tmp = r6xx_remap_render_backend(rdev, tmp, | |
640 | + rdev->config.cayman.max_backends_per_se * | |
641 | + rdev->config.cayman.max_shader_engines, | |
642 | + CAYMAN_MAX_BACKENDS, disabled_rb_mask); | |
643 | + } | |
624 | 644 | WREG32(GB_BACKEND_MAP, tmp); |
625 | 645 | |
626 | 646 | cgts_tcc_disable = 0xffff0000; |
... | ... | @@ -1771,6 +1791,7 @@ |
1771 | 1791 | int cayman_suspend(struct radeon_device *rdev) |
1772 | 1792 | { |
1773 | 1793 | r600_audio_fini(rdev); |
1794 | + radeon_vm_manager_fini(rdev); | |
1774 | 1795 | cayman_cp_enable(rdev, false); |
1775 | 1796 | cayman_dma_stop(rdev); |
1776 | 1797 | evergreen_irq_suspend(rdev); |
drivers/gpu/drm/radeon/radeon_benchmark.c
... | ... | @@ -122,10 +122,7 @@ |
122 | 122 | goto out_cleanup; |
123 | 123 | } |
124 | 124 | |
125 | - /* r100 doesn't have dma engine so skip the test */ | |
126 | - /* also, VRAM-to-VRAM test doesn't make much sense for DMA */ | |
127 | - /* skip it as well if domains are the same */ | |
128 | - if ((rdev->asic->copy.dma) && (sdomain != ddomain)) { | |
125 | + if (rdev->asic->copy.dma) { | |
129 | 126 | time = radeon_benchmark_do_move(rdev, size, saddr, daddr, |
130 | 127 | RADEON_BENCHMARK_COPY_DMA, n); |
131 | 128 | if (time < 0) |
... | ... | @@ -135,13 +132,15 @@ |
135 | 132 | sdomain, ddomain, "dma"); |
136 | 133 | } |
137 | 134 | |
138 | - time = radeon_benchmark_do_move(rdev, size, saddr, daddr, | |
139 | - RADEON_BENCHMARK_COPY_BLIT, n); | |
140 | - if (time < 0) | |
141 | - goto out_cleanup; | |
142 | - if (time > 0) | |
143 | - radeon_benchmark_log_results(n, size, time, | |
144 | - sdomain, ddomain, "blit"); | |
135 | + if (rdev->asic->copy.blit) { | |
136 | + time = radeon_benchmark_do_move(rdev, size, saddr, daddr, | |
137 | + RADEON_BENCHMARK_COPY_BLIT, n); | |
138 | + if (time < 0) | |
139 | + goto out_cleanup; | |
140 | + if (time > 0) | |
141 | + radeon_benchmark_log_results(n, size, time, | |
142 | + sdomain, ddomain, "blit"); | |
143 | + } | |
145 | 144 | |
146 | 145 | out_cleanup: |
147 | 146 | if (sobj) { |
drivers/gpu/drm/radeon/si.c
include/drm/drm_pciids.h
... | ... | @@ -581,7 +581,11 @@ |
581 | 581 | {0x1002, 0x9908, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
582 | 582 | {0x1002, 0x9909, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
583 | 583 | {0x1002, 0x990A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
584 | - {0x1002, 0x990F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | |
584 | + {0x1002, 0x990B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | |
585 | + {0x1002, 0x990C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | |
586 | + {0x1002, 0x990D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | |
587 | + {0x1002, 0x990E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | |
588 | + {0x1002, 0x990F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | |
585 | 589 | {0x1002, 0x9910, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
586 | 590 | {0x1002, 0x9913, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
587 | 591 | {0x1002, 0x9917, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
... | ... | @@ -592,6 +596,13 @@ |
592 | 596 | {0x1002, 0x9992, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
593 | 597 | {0x1002, 0x9993, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
594 | 598 | {0x1002, 0x9994, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
599 | + {0x1002, 0x9995, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | |
600 | + {0x1002, 0x9996, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | |
601 | + {0x1002, 0x9997, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | |
602 | + {0x1002, 0x9998, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | |
603 | + {0x1002, 0x9999, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | |
604 | + {0x1002, 0x999A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | |
605 | + {0x1002, 0x999B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ | |
595 | 606 | {0x1002, 0x99A0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
596 | 607 | {0x1002, 0x99A2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |
597 | 608 | {0x1002, 0x99A4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ |