[PATCH] drm/amdgpu: Enable chained IB MCBP support
Christian König
deathsimple at vodafone.de
Thu Apr 27 09:59:27 UTC 2017
Am 27.04.2017 um 09:18 schrieb Trigger Huang:
> Support for MCBP/Virtualization in combination with chained IBs is
> formal released on firmware feature version #46. So enable it
> according to firmware feature version, otherwise, world switch will
> hang.
>
> Signed-off-by: Trigger Huang <trigger.huang at amd.com>
Reviewed-by: Christian König <christian.koenig at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 17 +++++++++++------
> 1 file changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> index 2ff5f19..9a8c042 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
> @@ -941,12 +941,6 @@ static int gfx_v8_0_init_microcode(struct amdgpu_device *adev)
> cp_hdr = (const struct gfx_firmware_header_v1_0 *)adev->gfx.me_fw->data;
> adev->gfx.me_fw_version = le32_to_cpu(cp_hdr->header.ucode_version);
>
> - /* chain ib ucode isn't formal released, just disable it by far
> - * TODO: when ucod ready we should use ucode version to judge if
> - * chain-ib support or not.
> - */
> - adev->virt.chained_ib_support = false;
> -
> adev->gfx.me_feature_version = le32_to_cpu(cp_hdr->ucode_feature_version);
>
> snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ce.bin", chip_name);
> @@ -960,6 +954,17 @@ static int gfx_v8_0_init_microcode(struct amdgpu_device *adev)
> adev->gfx.ce_fw_version = le32_to_cpu(cp_hdr->header.ucode_version);
> adev->gfx.ce_feature_version = le32_to_cpu(cp_hdr->ucode_feature_version);
>
> + /*
> + * Support for MCBP/Virtualization in combination with chained IBs is
> + * formal released on feature version #46
> + */
> + if (adev->gfx.ce_feature_version >= 46 &&
> + adev->gfx.pfp_feature_version >= 46) {
> + adev->virt.chained_ib_support = true;
> + DRM_INFO("Chained IB support enabled!\n");
> + } else
> + adev->virt.chained_ib_support = false;
> +
> snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_rlc.bin", chip_name);
> err = request_firmware(&adev->gfx.rlc_fw, fw_name, adev->dev);
> if (err)
More information about the amd-gfx
mailing list