<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Yes, agree! It's better to use that existing function. Will change it accordingly.</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">Thanks,</p>
<p style="margin-top:0;margin-bottom:0">Boyuan</p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Liu, Leo<br>
<b>Sent:</b> July 19, 2018 2:13:50 PM<br>
<b>To:</b> Zhang, Boyuan; amd-gfx@lists.freedesktop.org<br>
<b>Subject:</b> Re: [PATCH 3/5] drm/amdgpu: enable system interrupt for jrbc</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText"><br>
<br>
On 07/18/2018 04:39 PM, boyuan.zhang@amd.com wrote:<br>
> From: Boyuan Zhang <boyuan.zhang@amd.com><br>
><br>
> Enable system interrupt for jrbc during engine starting time.<br>
><br>
> Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com><br>
> ---<br>
>   drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | 8 +++++++-<br>
>   1 file changed, 7 insertions(+), 1 deletion(-)<br>
><br>
> diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c<br>
> index 4fccb21..22c1588 100644<br>
> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c<br>
> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c<br>
> @@ -595,6 +595,7 @@ static int vcn_v1_0_start(struct amdgpu_device *adev)<br>
>        struct amdgpu_ring *ring = &adev->vcn.ring_dec;<br>
>        uint32_t rb_bufsz, tmp;<br>
>        uint32_t lmi_swap_cntl;<br>
> +     uint32_t reg_temp;<br>
>        int i, j, r;<br>
>   <br>
>        /* disable byte swapping */<br>
> @@ -700,6 +701,11 @@ static int vcn_v1_0_start(struct amdgpu_device *adev)<br>
>                (UVD_MASTINT_EN__VCPU_EN_MASK|UVD_MASTINT_EN__SYS_EN_MASK),<br>
>                ~(UVD_MASTINT_EN__VCPU_EN_MASK|UVD_MASTINT_EN__SYS_EN_MASK));<br>
>   <br>
> +     /* enable system interrupt for JRBC*/<br>
> +     reg_temp = RREG32(SOC15_REG_OFFSET(UVD, 0, mmUVD_SYS_INT_EN));<br>
> +     reg_temp |= UVD_SYS_INT_EN__UVD_JRBC_EN_MASK;<br>
> +     WREG32(SOC15_REG_OFFSET(UVD, 0, mmUVD_SYS_INT_EN), reg_temp);<br>
<br>
Here you could use below instead.<br>
WREG32_P(SOC15_REG_OFFSET(UVD, 0, mmUVD_SYS_INT_EN), UVD_SYS_INT_EN__UVD_JRBC_EN_MASK,<br>
        ~UVD_SYS_INT_EN__UVD_JRBC_EN_MASK);<br>
<br>
Ether way, the whole series are<br>
Acked-by: Leo Liu <leo.liu@amd.com><br>
<br>
<br>
<br>
> +<br>
>        /* clear the bit 4 of VCN_STATUS */<br>
>        WREG32_P(SOC15_REG_OFFSET(UVD, 0, mmUVD_STATUS), 0,<br>
>                        ~(2 << UVD_STATUS__VCPU_REPORT__SHIFT));<br>
> @@ -1754,7 +1760,7 @@ static const struct amdgpu_irq_src_funcs vcn_v1_0_irq_funcs = {<br>
>   <br>
>   static void vcn_v1_0_set_irq_funcs(struct amdgpu_device *adev)<br>
>   {<br>
> -     adev->vcn.irq.num_types = adev->vcn.num_enc_rings + 1;<br>
> +     adev->vcn.irq.num_types = adev->vcn.num_enc_rings + 2;<br>
>        adev->vcn.irq.funcs = &vcn_v1_0_irq_funcs;<br>
>   }<br>
>   <br>
<br>
</div>
</span></font></div>
</body>
</html>