1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| /usr/src/tmp: diff -r linux-source-5.10/drivers/ ../linux-source-5.10.149/drivers/ | grep -v "Seulement"
diff -r linux-source-5.10/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c ../linux-source-5.10.149/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
2182,2183c2182,2191
< /* need to do gmc hw init early so we can allocate gpu mem */
< if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC) {
---
> if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON) {
> /* need to do common hw init early so everything is set up for gmc */
> r = adev->ip_blocks[i].version->funcs->hw_init((void *)adev);
> if (r) {
> DRM_ERROR("hw_init %d failed %d\n", i, r);
> goto init_failed;
> }
> adev->ip_blocks[i].status.hw = true;
> } else if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC) {
> /* need to do gmc hw init early so we can allocate gpu mem */
2765d2772
< AMD_IP_BLOCK_TYPE_GMC,
2766a2774
> AMD_IP_BLOCK_TYPE_GMC,
diff -r linux-source-5.10/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c ../linux-source-5.10.149/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
1477a1478,1482
> ring = &adev->sdma.instance[i].ring;
> adev->nbio.funcs->sdma_doorbell_range(adev, i,
> ring->use_doorbell, ring->doorbell_index,
> adev->doorbell_index.sdma_doorbell_range);
>
diff -r linux-source-5.10/drivers/gpu/drm/amd/amdgpu/soc15.c ../linux-source-5.10.149/drivers/gpu/drm/amd/amdgpu/soc15.c
1335,1353d1334
< static void soc15_doorbell_range_init(struct amdgpu_device *adev)
< {
< int i;
< struct amdgpu_ring *ring;
<
< /* sdma/ih doorbell range are programed by hypervisor */
< if (!amdgpu_sriov_vf(adev)) {
< for (i = 0; i < adev->sdma.num_instances; i++) {
< ring = &adev->sdma.instance[i].ring;
< adev->nbio.funcs->sdma_doorbell_range(adev, i,
< ring->use_doorbell, ring->doorbell_index,
< adev->doorbell_index.sdma_doorbell_range);
< }
<
< adev->nbio.funcs->ih_doorbell_range(adev, adev->irq.ih.use_doorbell,
< adev->irq.ih.doorbell_index);
< }
< }
<
1373,1378d1353
< /* HW doorbell routing policy: doorbell writing not
< * in SDMA/IH/MM/ACV range will be routed to CP. So
< * we need to init SDMA/IH/MM/ACV doorbell range prior
< * to CP ip block init and ring test.
< */
< soc15_doorbell_range_init(adev); |
Partager