Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/radeon: disable vce init on cayman (v2)

Cayman does not have vce. There were a few places in the
shared cayman/TV code where we were trying to do vce stuff.

v2: remove -ENOENT check

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

+14 -11
+14 -11
drivers/gpu/drm/radeon/ni.c
··· 2162 2162 DRM_ERROR("radeon: failed initializing UVD (%d).\n", r); 2163 2163 } 2164 2164 2165 - ring = &rdev->ring[TN_RING_TYPE_VCE1_INDEX]; 2166 - if (ring->ring_size) 2167 - r = radeon_ring_init(rdev, ring, ring->ring_size, 0, 0x0); 2165 + if (rdev->family == CHIP_ARUBA) { 2166 + ring = &rdev->ring[TN_RING_TYPE_VCE1_INDEX]; 2167 + if (ring->ring_size) 2168 + r = radeon_ring_init(rdev, ring, ring->ring_size, 0, 0x0); 2168 2169 2169 - ring = &rdev->ring[TN_RING_TYPE_VCE2_INDEX]; 2170 - if (ring->ring_size) 2171 - r = radeon_ring_init(rdev, ring, ring->ring_size, 0, 0x0); 2170 + ring = &rdev->ring[TN_RING_TYPE_VCE2_INDEX]; 2171 + if (ring->ring_size) 2172 + r = radeon_ring_init(rdev, ring, ring->ring_size, 0, 0x0); 2172 2173 2173 - if (!r) 2174 - r = vce_v1_0_init(rdev); 2175 - else if (r != -ENOENT) 2176 - DRM_ERROR("radeon: failed initializing VCE (%d).\n", r); 2174 + if (!r) 2175 + r = vce_v1_0_init(rdev); 2176 + if (r) 2177 + DRM_ERROR("radeon: failed initializing VCE (%d).\n", r); 2178 + } 2177 2179 2178 2180 r = radeon_ib_pool_init(rdev); 2179 2181 if (r) { ··· 2398 2396 radeon_irq_kms_fini(rdev); 2399 2397 uvd_v1_0_fini(rdev); 2400 2398 radeon_uvd_fini(rdev); 2401 - radeon_vce_fini(rdev); 2399 + if (rdev->family == CHIP_ARUBA) 2400 + radeon_vce_fini(rdev); 2402 2401 cayman_pcie_gart_fini(rdev); 2403 2402 r600_vram_scratch_fini(rdev); 2404 2403 radeon_gem_fini(rdev);