Re: [PATCH] drm/amdgpu: Enable chained IB MCBP support

2017-04-27 Thread Christian König

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 


Reviewed-by: Christian König 


---
  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(>gfx.rlc_fw, fw_name, adev->dev);
if (err)



___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


RE: [PATCH] drm/amdgpu: Enable chained IB MCBP support

2017-04-27 Thread Yu, Xiangliang
Reviewed-by: Xiangliang Yu 


Thanks!
Xiangliang Yu

> -Original Message-
> From: Trigger Huang [mailto:trigger.hu...@amd.com]
> Sent: Thursday, April 27, 2017 3:18 PM
> To: amd-gfx@lists.freedesktop.org
> Cc: Liu, Monk ; Yu, Xiangliang
> ; Huang, Trigger 
> Subject: [PATCH] drm/amdgpu: Enable chained IB MCBP support
> 
> 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 
> ---
>  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(>gfx.rlc_fw, fw_name, adev->dev);
>   if (err)
> --
> 2.7.4

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


RE: [PATCH] drm/amdgpu: Enable chained IB MCBP support

2017-04-27 Thread Liu, Monk
Reviewed-by: Monk Liu 

-Original Message-
From: Trigger Huang [mailto:trigger.hu...@amd.com] 
Sent: Thursday, April 27, 2017 3:18 PM
To: amd-gfx@lists.freedesktop.org
Cc: Liu, Monk ; Yu, Xiangliang ; 
Huang, Trigger 
Subject: [PATCH] drm/amdgpu: Enable chained IB MCBP support

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 
---
 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(>gfx.rlc_fw, fw_name, adev->dev);
if (err)
--
2.7.4

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx