<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 2025-02-05 22:07, Kasiviswanathan,
      Harish wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:CY8PR12MB7099DC1DB228CD1A4A6D69EA8CF62@CY8PR12MB7099.namprd12.prod.outlook.com">
      
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style>@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}@font-face
        {font-family:Aptos;}@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        font-size:10.0pt;
        font-family:"Courier New";}span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Arial",sans-serif;
        color:windowtext;}.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}div.WordSection1
        {page:WordSection1;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <p style="font-family:Calibri;font-size:10pt;color:#008000;margin:5pt;font-style:normal;font-weight:normal;text-decoration:none;" align="Left">
        [Public]<br>
      </p>
      <br>
      <div>
        <div class="WordSection1">
          <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
          <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
          <div>
            <div style="border:none;border-top:solid #E1E1E1
              1.0pt;padding:3.0pt 0in 0in 0in">
              <p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">
                  Yang, Philip <a class="moz-txt-link-rfc2396E" href="mailto:Philip.Yang@amd.com"><Philip.Yang@amd.com></a>
                  <br>
                  <b>Sent:</b> Wednesday, February 5, 2025 6:09 PM<br>
                  <b>To:</b> Kasiviswanathan, Harish
                  <a class="moz-txt-link-rfc2396E" href="mailto:Harish.Kasiviswanathan@amd.com"><Harish.Kasiviswanathan@amd.com></a>;
                  <a class="moz-txt-link-abbreviated" href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a><br>
                  <b>Subject:</b> Re: [PATCH] drm/amdgpu: Set snoop bit
                  for SDMA for MI series<o:p></o:p></span></p>
            </div>
          </div>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p><o:p> </o:p></p>
          <div>
            <p class="MsoNormal">On 2025-02-04 18:02, Harish
              Kasiviswanathan wrote:<o:p></o:p></p>
          </div>
          <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
            <pre>SDMA writes has to probe invalidate RW lines. Set snoop bit in mmhub for<o:p></o:p></pre>
            <pre>this to happen.<o:p></o:p></pre>
            <pre><o:p> </o:p></pre>
            <pre>Signed-off-by: Harish Kasiviswanathan <a href="mailto:Harish.Kasiviswanathan@amd.com" moz-do-not-send="true"><Harish.Kasiviswanathan@amd.com></a><o:p></o:p></pre>
            <pre>---<o:p></o:p></pre>
            <pre> drivers/gpu/drm/amd/amdgpu/mmhub_v1_7.c       | 25 ++++++++++<o:p></o:p></pre>
            <pre> drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.c       | 27 +++++++++++<o:p></o:p></pre>
            <pre> drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c       | 30 ++++++++++++<o:p></o:p></pre>
            <pre> .../asic_reg/mmhub/mmhub_9_4_1_offset.h       | 32 +++++++++++++<o:p></o:p></pre>
            <pre> .../asic_reg/mmhub/mmhub_9_4_1_sh_mask.h      | 48 +++++++++++++++++++<o:p></o:p></pre>
            <pre> 5 files changed, 162 insertions(+)<o:p></o:p></pre>
            <pre><o:p> </o:p></pre>
            <pre>diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_7.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_7.c<o:p></o:p></pre>
            <pre>index 9689e2b5d4e5..55659a4cbd10 100644<o:p></o:p></pre>
            <pre>--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_7.c<o:p></o:p></pre>
            <pre>+++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_7.c<o:p></o:p></pre>
            <pre>@@ -172,6 +172,30 @@ static void mmhub_v1_7_init_tlb_regs(struct amdgpu_device *adev)<o:p></o:p></pre>
            <pre>  WREG32_SOC15(MMHUB, 0, regMC_VM_MX_L1_TLB_CNTL, tmp);<o:p></o:p></pre>
            <pre> }<o:p></o:p></pre>
            <pre> <o:p></o:p></pre>
            <pre>+/* Set snoop bit for SDMA so that SDMA writes probe-invalidates RW lines */<o:p></o:p></pre>
            <pre>+static void mmhub_v1_7_set_snoop(struct amdgpu_device *adev)<o:p></o:p></pre>
            <pre>+{<o:p></o:p></pre>
            <pre>+ uint32_t tmp;<o:p></o:p></pre>
            <pre>+ int j;<o:p></o:p></pre>
            <pre>+ uint32_t distance = regDAGB1_WRCLI_GPU_SNOOP_OVERRIDE -<o:p></o:p></pre>
            <pre>+                    regDAGB0_WRCLI_GPU_SNOOP_OVERRIDE;<o:p></o:p></pre>
            <pre>+<o:p></o:p></pre>
            <pre>+ for (j = 0; j < 5; j++) { /* DAGB instances */<o:p></o:p></pre>
            <pre>+        tmp = RREG32_SOC15_OFFSET(MMHUB, 0,<o:p></o:p></pre>
            <pre>+                regDAGB0_WRCLI_GPU_SNOOP_OVERRIDE, j*distance);<o:p></o:p></pre>
            <pre>+        tmp |= (1 << 15); /* SDMA client is BIT15 */<o:p></o:p></pre>
            <pre>+        WREG32_SOC15_OFFSET(MMHUB, 0,<o:p></o:p></pre>
            <pre>+                regDAGB0_WRCLI_GPU_SNOOP_OVERRIDE, j*distance, tmp);<o:p></o:p></pre>
            <pre>+<o:p></o:p></pre>
            <pre>+        tmp = RREG32_SOC15_OFFSET(MMHUB, 0,<o:p></o:p></pre>
            <pre>+                regDAGB0_WRCLI_GPU_SNOOP_OVERRIDE_VALUE, j*distance);<o:p></o:p></pre>
            <pre>+        tmp |= (1 << 15);<o:p></o:p></pre>
            <pre>+        WREG32_SOC15_OFFSET(MMHUB, 0,<o:p></o:p></pre>
            <pre>+                regDAGB0_WRCLI_GPU_SNOOP_OVERRIDE_VALUE, j*distance, tmp);<o:p></o:p></pre>
            <pre>+ }<o:p></o:p></pre>
            <pre>+<o:p></o:p></pre>
            <pre>+}<o:p></o:p></pre>
            <pre>+<o:p></o:p></pre>
            <pre> static void mmhub_v1_7_init_cache_regs(struct amdgpu_device *adev)<o:p></o:p></pre>
            <pre> {<o:p></o:p></pre>
            <pre>  uint32_t tmp;<o:p></o:p></pre>
            <pre>@@ -337,6 +361,7 @@ static int mmhub_v1_7_gart_enable(struct amdgpu_device *adev)<o:p></o:p></pre>
            <pre>  mmhub_v1_7_init_system_aperture_regs(adev);<o:p></o:p></pre>
            <pre>  mmhub_v1_7_init_tlb_regs(adev);<o:p></o:p></pre>
            <pre>  mmhub_v1_7_init_cache_regs(adev);<o:p></o:p></pre>
            <pre>+ mmhub_v1_7_set_snoop(adev);<o:p></o:p></pre>
            <pre> <o:p></o:p></pre>
            <pre>  mmhub_v1_7_enable_system_domain(adev);<o:p></o:p></pre>
            <pre>  mmhub_v1_7_disable_identity_aperture(adev);<o:p></o:p></pre>
            <pre>diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.c<o:p></o:p></pre>
            <pre>index e646e5cef0a2..92afffd27415 100644<o:p></o:p></pre>
            <pre>--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.c<o:p></o:p></pre>
            <pre>+++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.c<o:p></o:p></pre>
            <pre>@@ -213,6 +213,32 @@ static void mmhub_v1_8_init_tlb_regs(struct amdgpu_device *adev)<o:p></o:p></pre>
            <pre>  }<o:p></o:p></pre>
            <pre> }<o:p></o:p></pre>
            <pre> <o:p></o:p></pre>
            <pre>+/* Set snoop bit for SDMA so that SDMA writes probe-invalidates RW lines */<o:p></o:p></pre>
            <pre>+static void mmhub_v1_8_set_snoop(struct amdgpu_device *adev)<o:p></o:p></pre>
            <pre>+{<o:p></o:p></pre>
            <pre>+ uint32_t tmp, inst_mask;<o:p></o:p></pre>
            <pre>+ int i, j;<o:p></o:p></pre>
            <pre>+ uint32_t distance = regDAGB1_WRCLI_GPU_SNOOP_OVERRIDE -<o:p></o:p></pre>
            <pre>+                    regDAGB0_WRCLI_GPU_SNOOP_OVERRIDE;<o:p></o:p></pre>
            <pre>+<o:p></o:p></pre>
            <pre>+ inst_mask = adev->aid_mask;<o:p></o:p></pre>
            <pre>+ for_each_inst(i, inst_mask) {<o:p></o:p></pre>
            <pre>+        for (j = 0; j < 5; j++) { /* DAGB instances */<o:p></o:p></pre>
            <pre>+                tmp = RREG32_SOC15_OFFSET(MMHUB, i,<o:p></o:p></pre>
            <pre>+                  regDAGB0_WRCLI_GPU_SNOOP_OVERRIDE, j*distance);<o:p></o:p></pre>
            <pre>+                tmp |= (1 << 15); /* SDMA client is BIT15 */<o:p></o:p></pre>
            <pre>+                WREG32_SOC15_OFFSET(MMHUB, i,<o:p></o:p></pre>
            <pre>+                  regDAGB0_WRCLI_GPU_SNOOP_OVERRIDE, j*distance, tmp);<o:p></o:p></pre>
            <pre>+<o:p></o:p></pre>
            <pre>+                tmp = RREG32_SOC15_OFFSET(MMHUB, i,<o:p></o:p></pre>
            <pre>+                  regDAGB0_WRCLI_GPU_SNOOP_OVERRIDE_VALUE, j*distance);<o:p></o:p></pre>
            <pre>+                tmp |= (1 << 15);<o:p></o:p></pre>
            <pre>+                WREG32_SOC15_OFFSET(MMHUB, i,<o:p></o:p></pre>
            <pre>+                  regDAGB0_WRCLI_GPU_SNOOP_OVERRIDE_VALUE, j*distance, tmp);<o:p></o:p></pre>
            <pre>+        }<o:p></o:p></pre>
            <pre>+ }<o:p></o:p></pre>
            <pre>+}<o:p></o:p></pre>
            <pre>+<o:p></o:p></pre>
            <pre> static void mmhub_v1_8_init_cache_regs(struct amdgpu_device *adev)<o:p></o:p></pre>
            <pre> {<o:p></o:p></pre>
            <pre>  uint32_t tmp, inst_mask;<o:p></o:p></pre>
            <pre>@@ -418,6 +444,7 @@ static int mmhub_v1_8_gart_enable(struct amdgpu_device *adev)<o:p></o:p></pre>
            <pre>  mmhub_v1_8_init_system_aperture_regs(adev);<o:p></o:p></pre>
            <pre>  mmhub_v1_8_init_tlb_regs(adev);<o:p></o:p></pre>
            <pre>  mmhub_v1_8_init_cache_regs(adev);<o:p></o:p></pre>
            <pre>+ mmhub_v1_8_set_snoop(adev);<o:p></o:p></pre>
            <pre> <o:p></o:p></pre>
          </blockquote>
          <p class="MsoNormal">Why only change mmhub_v1_7/8, not other
            mmhub_v2/3/4 versions? Maybe the setting is not needed for
            old ASICS,  only set this in mmhub_v9_4.
            <br>
            [HK]: Currently, this change is critical for MI GFX9 series,
            so this patch is focused on that. For other ASICs a separate
            patch will be send later.</p>
        </div>
      </div>
    </blockquote>
    <p>yes, I think this works as we don't see issue on other ASICs.</p>
    <p>One more nitpick, maybe change the function name
      mmhub_v1_8_set_snoop to mmhub_v1_8_init_snoop_override_regs, to
      use the same function name pattern in this file.<br>
    </p>
    <p>Regards,</p>
    <p>Philip<br>
    </p>
    <blockquote type="cite" cite="mid:CY8PR12MB7099DC1DB228CD1A4A6D69EA8CF62@CY8PR12MB7099.namprd12.prod.outlook.com">
      <div>
        <div class="WordSection1">
          <p class="MsoNormal"><o:p></o:p></p>
          <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
            <pre><o:p> </o:p></pre>
            <pre>  mmhub_v1_8_enable_system_domain(adev);<o:p></o:p></pre>
            <pre>  mmhub_v1_8_disable_identity_aperture(adev);<o:p></o:p></pre>
            <pre>diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c b/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c<o:p></o:p></pre>
            <pre>index ff1b58e44689..557119cd1ecc 100644<o:p></o:p></pre>
            <pre>--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c<o:p></o:p></pre>
            <pre>+++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c<o:p></o:p></pre>
            <pre>@@ -198,6 +198,35 @@ static void mmhub_v9_4_init_tlb_regs(struct amdgpu_device *adev, int hubid)<o:p></o:p></pre>
            <pre>                     hubid * MMHUB_INSTANCE_REGISTER_OFFSET, tmp);<o:p></o:p></pre>
            <pre> }<o:p></o:p></pre>
            <pre> <o:p></o:p></pre>
            <pre>+/* Set snoop bit for SDMA so that SDMA writes probe-invalidates RW lines */<o:p></o:p></pre>
            <pre>+static void mmhub_v9_4_set_snoop(struct amdgpu_device *adev, int hubid)<o:p></o:p></pre>
            <pre>+{<o:p></o:p></pre>
            <pre>+ uint32_t tmp;<o:p></o:p></pre>
            <pre>+ int j;<o:p></o:p></pre>
          </blockquote>
          <p class="MsoNormal">loop index uses variable i<o:p></o:p></p>
          <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif">[HK]:
              Yes, will change.<o:p></o:p></span></p>
          <p class="MsoNormal"><br>
            <br>
            <o:p></o:p></p>
          <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
            <pre><o:p> </o:p></pre>
            <pre>+ uint32_t distance = mmDAGB1_WRCLI_GPU_SNOOP_OVERRIDE -<o:p></o:p></pre>
            <pre>+                    mmDAGB0_WRCLI_GPU_SNOOP_OVERRIDE;<o:p></o:p></pre>
            <pre>+<o:p></o:p></pre>
            <pre>+ for (j = 0; j < 4 - (2 * hubid); j++) {<o:p></o:p></pre>
            <pre>+        /* DAGB instances 0 to 4 are in hub0 and 5 to 7 are in hub1 */<o:p></o:p></pre>
          </blockquote>
          <p>maybe define variable offset = hubid *
            MMHUB_INSTANCE_REGISTER_OFFSET + j * distance<br>
            [HK]: Yes. I can change to offset = hubid *
            MMHUB_INSTANCE_REGISTER_OFFSET but (j * distance) would be
            inside the loop.<o:p></o:p></p>
          <p><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
          <p>then use offset variable to remove the duplicate
            calculation.<o:p></o:p></p>
          <p>Regards,<o:p></o:p></p>
          <p>Philip<o:p></o:p></p>
          <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
            <pre><o:p> </o:p></pre>
            <pre>+        tmp = RREG32_SOC15_OFFSET(MMHUB, 0,<o:p></o:p></pre>
            <pre>+                mmDAGB0_WRCLI_GPU_SNOOP_OVERRIDE,<o:p></o:p></pre>
            <pre>+                hubid * MMHUB_INSTANCE_REGISTER_OFFSET + j * distance);<o:p></o:p></pre>
            <pre>+        tmp |= (1 << 15); /* SDMA client is BIT15 */<o:p></o:p></pre>
            <pre>+        WREG32_SOC15_OFFSET(MMHUB, 0,<o:p></o:p></pre>
            <pre>+                mmDAGB0_WRCLI_GPU_SNOOP_OVERRIDE,<o:p></o:p></pre>
            <pre>+                hubid * MMHUB_INSTANCE_REGISTER_OFFSET + j * distance, tmp);<o:p></o:p></pre>
            <pre>+<o:p></o:p></pre>
            <pre>+        tmp = RREG32_SOC15_OFFSET(MMHUB, 0,<o:p></o:p></pre>
            <pre>+                mmDAGB0_WRCLI_GPU_SNOOP_OVERRIDE_VALUE,<o:p></o:p></pre>
            <pre>+                hubid * MMHUB_INSTANCE_REGISTER_OFFSET + j * distance);<o:p></o:p></pre>
            <pre>+        tmp |= (1 << 15);<o:p></o:p></pre>
            <pre>+        WREG32_SOC15_OFFSET(MMHUB, 0,<o:p></o:p></pre>
            <pre>+                mmDAGB0_WRCLI_GPU_SNOOP_OVERRIDE_VALUE,<o:p></o:p></pre>
            <pre>+                hubid * MMHUB_INSTANCE_REGISTER_OFFSET + j * distance, tmp);<o:p></o:p></pre>
            <pre>+ }<o:p></o:p></pre>
            <pre>+<o:p></o:p></pre>
            <pre>+}<o:p></o:p></pre>
            <pre>+<o:p></o:p></pre>
            <pre> static void mmhub_v9_4_init_cache_regs(struct amdgpu_device *adev, int hubid)<o:p></o:p></pre>
            <pre> {<o:p></o:p></pre>
            <pre>  uint32_t tmp;<o:p></o:p></pre>
            <pre>@@ -392,6 +421,7 @@ static int mmhub_v9_4_gart_enable(struct amdgpu_device *adev)<o:p></o:p></pre>
            <pre>         if (!amdgpu_sriov_vf(adev))<o:p></o:p></pre>
            <pre>                 mmhub_v9_4_init_cache_regs(adev, i);<o:p></o:p></pre>
            <pre> <o:p></o:p></pre>
            <pre>+        mmhub_v9_4_set_snoop(adev, i);<o:p></o:p></pre>
            <pre>         mmhub_v9_4_enable_system_domain(adev, i);<o:p></o:p></pre>
            <pre>         if (!amdgpu_sriov_vf(adev))<o:p></o:p></pre>
            <pre>           mmhub_v9_4_disable_identity_aperture(adev, i);<o:p></o:p></pre>
            <pre>diff --git a/drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_9_4_1_offset.h b/drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_9_4_1_offset.h<o:p></o:p></pre>
            <pre>index c488d4a50cf4..b2252deabc17 100644<o:p></o:p></pre>
            <pre>--- a/drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_9_4_1_offset.h<o:p></o:p></pre>
            <pre>+++ b/drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_9_4_1_offset.h<o:p></o:p></pre>
            <pre>@@ -203,6 +203,10 @@<o:p></o:p></pre>
            <pre> #define mmDAGB0_WR_DATA_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB0_WR_MISC_CREDIT                                                                         0x0058<o:p></o:p></pre>
            <pre> #define mmDAGB0_WR_MISC_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre>+#define mmDAGB0_WRCLI_GPU_SNOOP_OVERRIDE                                                               0x005b<o:p></o:p></pre>
            <pre>+#define mmDAGB0_WRCLI_GPU_SNOOP_OVERRIDE_BASE_IDX                                                      1<o:p></o:p></pre>
            <pre>+#define mmDAGB0_WRCLI_GPU_SNOOP_OVERRIDE_VALUE                                                         0x005c<o:p></o:p></pre>
            <pre>+#define mmDAGB0_WRCLI_GPU_SNOOP_OVERRIDE_VALUE_BASE_IDX                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB0_WRCLI_ASK_PENDING                                                                      0x005d<o:p></o:p></pre>
            <pre> #define mmDAGB0_WRCLI_ASK_PENDING_BASE_IDX                                                             1<o:p></o:p></pre>
            <pre> #define mmDAGB0_WRCLI_GO_PENDING                                                                       0x005e<o:p></o:p></pre>
            <pre>@@ -455,6 +459,10 @@<o:p></o:p></pre>
            <pre> #define mmDAGB1_WR_DATA_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB1_WR_MISC_CREDIT                                                                         0x00d8<o:p></o:p></pre>
            <pre> #define mmDAGB1_WR_MISC_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre>+#define mmDAGB1_WRCLI_GPU_SNOOP_OVERRIDE                                                               0x00db<o:p></o:p></pre>
            <pre>+#define mmDAGB1_WRCLI_GPU_SNOOP_OVERRIDE_BASE_IDX                                                      1<o:p></o:p></pre>
            <pre>+#define mmDAGB1_WRCLI_GPU_SNOOP_OVERRIDE_VALUE                                                         0x00dc<o:p></o:p></pre>
            <pre>+#define mmDAGB1_WRCLI_GPU_SNOOP_OVERRIDE_VALUE_BASE_IDX                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB1_WRCLI_ASK_PENDING                                                                      0x00dd<o:p></o:p></pre>
            <pre> #define mmDAGB1_WRCLI_ASK_PENDING_BASE_IDX                                                             1<o:p></o:p></pre>
            <pre> #define mmDAGB1_WRCLI_GO_PENDING                                                                       0x00de<o:p></o:p></pre>
            <pre>@@ -707,6 +715,10 @@<o:p></o:p></pre>
            <pre> #define mmDAGB2_WR_DATA_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB2_WR_MISC_CREDIT                                                                         0x0158<o:p></o:p></pre>
            <pre> #define mmDAGB2_WR_MISC_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre>+#define mmDAGB2_WRCLI_GPU_SNOOP_OVERRIDE                                                               0x015b<o:p></o:p></pre>
            <pre>+#define mmDAGB2_WRCLI_GPU_SNOOP_OVERRIDE_BASE_IDX                                                      1<o:p></o:p></pre>
            <pre>+#define mmDAGB2_WRCLI_GPU_SNOOP_OVERRIDE_VALUE                                                         0x015c<o:p></o:p></pre>
            <pre>+#define mmDAGB2_WRCLI_GPU_SNOOP_OVERRIDE_VALUE_BASE_IDX                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB2_WRCLI_ASK_PENDING                                                                      0x015d<o:p></o:p></pre>
            <pre> #define mmDAGB2_WRCLI_ASK_PENDING_BASE_IDX                                                             1<o:p></o:p></pre>
            <pre> #define mmDAGB2_WRCLI_GO_PENDING                                                                       0x015e<o:p></o:p></pre>
            <pre>@@ -959,6 +971,10 @@<o:p></o:p></pre>
            <pre> #define mmDAGB3_WR_DATA_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB3_WR_MISC_CREDIT                                                                         0x01d8<o:p></o:p></pre>
            <pre> #define mmDAGB3_WR_MISC_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre>+#define mmDAGB3_WRCLI_GPU_SNOOP_OVERRIDE                                                               0x01db<o:p></o:p></pre>
            <pre>+#define mmDAGB3_WRCLI_GPU_SNOOP_OVERRIDE_BASE_IDX                                                      1<o:p></o:p></pre>
            <pre>+#define mmDAGB3_WRCLI_GPU_SNOOP_OVERRIDE_VALUE                                                         0x01dc<o:p></o:p></pre>
            <pre>+#define mmDAGB3_WRCLI_GPU_SNOOP_OVERRIDE_VALUE_BASE_IDX                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB3_WRCLI_ASK_PENDING                                                                      0x01dd<o:p></o:p></pre>
            <pre> #define mmDAGB3_WRCLI_ASK_PENDING_BASE_IDX                                                             1<o:p></o:p></pre>
            <pre> #define mmDAGB3_WRCLI_GO_PENDING                                                                       0x01de<o:p></o:p></pre>
            <pre>@@ -1211,6 +1227,10 @@<o:p></o:p></pre>
            <pre> #define mmDAGB4_WR_DATA_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB4_WR_MISC_CREDIT                                                                         0x0258<o:p></o:p></pre>
            <pre> #define mmDAGB4_WR_MISC_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre>+#define mmDAGB4_WRCLI_GPU_SNOOP_OVERRIDE                                                               0x025b<o:p></o:p></pre>
            <pre>+#define mmDAGB4_WRCLI_GPU_SNOOP_OVERRIDE_BASE_IDX                                                      1<o:p></o:p></pre>
            <pre>+#define mmDAGB4_WRCLI_GPU_SNOOP_OVERRIDE_VALUE                                                         0x025c<o:p></o:p></pre>
            <pre>+#define mmDAGB4_WRCLI_GPU_SNOOP_OVERRIDE_VALUE_BASE_IDX                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB4_WRCLI_ASK_PENDING                                                                      0x025d<o:p></o:p></pre>
            <pre> #define mmDAGB4_WRCLI_ASK_PENDING_BASE_IDX                                                             1<o:p></o:p></pre>
            <pre> #define mmDAGB4_WRCLI_GO_PENDING                                                                       0x025e<o:p></o:p></pre>
            <pre>@@ -4793,6 +4813,10 @@<o:p></o:p></pre>
            <pre> #define mmDAGB5_WR_DATA_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB5_WR_MISC_CREDIT                                                                         0x3058<o:p></o:p></pre>
            <pre> #define mmDAGB5_WR_MISC_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre>+#define mmDAGB5_WRCLI_GPU_SNOOP_OVERRIDE                                                               0x305b<o:p></o:p></pre>
            <pre>+#define mmDAGB5_WRCLI_GPU_SNOOP_OVERRIDE_BASE_IDX                                                      1<o:p></o:p></pre>
            <pre>+#define mmDAGB5_WRCLI_GPU_SNOOP_OVERRIDE_VALUE                                                         0x305c<o:p></o:p></pre>
            <pre>+#define mmDAGB5_WRCLI_GPU_SNOOP_OVERRIDE_VALUE_BASE_IDX                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB5_WRCLI_ASK_PENDING                                                                      0x305d<o:p></o:p></pre>
            <pre> #define mmDAGB5_WRCLI_ASK_PENDING_BASE_IDX                                                             1<o:p></o:p></pre>
            <pre> #define mmDAGB5_WRCLI_GO_PENDING                                                                       0x305e<o:p></o:p></pre>
            <pre>@@ -5045,6 +5069,10 @@<o:p></o:p></pre>
            <pre> #define mmDAGB6_WR_DATA_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB6_WR_MISC_CREDIT                                                                         0x30d8<o:p></o:p></pre>
            <pre> #define mmDAGB6_WR_MISC_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre>+#define mmDAGB6_WRCLI_GPU_SNOOP_OVERRIDE                                                               0x30db<o:p></o:p></pre>
            <pre>+#define mmDAGB6_WRCLI_GPU_SNOOP_OVERRIDE_BASE_IDX                                                      1<o:p></o:p></pre>
            <pre>+#define mmDAGB6_WRCLI_GPU_SNOOP_OVERRIDE_VALUE                                                         0x30dc<o:p></o:p></pre>
            <pre>+#define mmDAGB6_WRCLI_GPU_SNOOP_OVERRIDE_VALUE_BASE_IDX                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB6_WRCLI_ASK_PENDING                                                                      0x30dd<o:p></o:p></pre>
            <pre> #define mmDAGB6_WRCLI_ASK_PENDING_BASE_IDX                                                             1<o:p></o:p></pre>
            <pre> #define mmDAGB6_WRCLI_GO_PENDING                                                                       0x30de<o:p></o:p></pre>
            <pre>@@ -5297,6 +5325,10 @@<o:p></o:p></pre>
            <pre> #define mmDAGB7_WR_DATA_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB7_WR_MISC_CREDIT                                                                         0x3158<o:p></o:p></pre>
            <pre> #define mmDAGB7_WR_MISC_CREDIT_BASE_IDX                                                                1<o:p></o:p></pre>
            <pre>+#define mmDAGB7_WRCLI_GPU_SNOOP_OVERRIDE                                                               0x315b<o:p></o:p></pre>
            <pre>+#define mmDAGB7_WRCLI_GPU_SNOOP_OVERRIDE_BASE_IDX                                                      1<o:p></o:p></pre>
            <pre>+#define mmDAGB7_WRCLI_GPU_SNOOP_OVERRIDE_VALUE                                                         0x315c<o:p></o:p></pre>
            <pre>+#define mmDAGB7_WRCLI_GPU_SNOOP_OVERRIDE_VALUE_BASE_IDX                                                1<o:p></o:p></pre>
            <pre> #define mmDAGB7_WRCLI_ASK_PENDING                                                                      0x315d<o:p></o:p></pre>
            <pre> #define mmDAGB7_WRCLI_ASK_PENDING_BASE_IDX                                                             1<o:p></o:p></pre>
            <pre> #define mmDAGB7_WRCLI_GO_PENDING                                                                       0x315e<o:p></o:p></pre>
            <pre>diff --git a/drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_9_4_1_sh_mask.h b/drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_9_4_1_sh_mask.h<o:p></o:p></pre>
            <pre>index 2969fbf282b7..5069d2fd467f 100644<o:p></o:p></pre>
            <pre>--- a/drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_9_4_1_sh_mask.h<o:p></o:p></pre>
            <pre>+++ b/drivers/gpu/drm/amd/include/asic_reg/mmhub/mmhub_9_4_1_sh_mask.h<o:p></o:p></pre>
            <pre>@@ -1532,6 +1532,12 @@<o:p></o:p></pre>
            <pre> //DAGB0_WRCLI_DBUS_GO_PENDING<o:p></o:p></pre>
            <pre> #define DAGB0_WRCLI_DBUS_GO_PENDING__BUSY__SHIFT                                                              0x0<o:p></o:p></pre>
            <pre> #define DAGB0_WRCLI_DBUS_GO_PENDING__BUSY_MASK                                                                0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB0_WRCLI_GPU_SNOOP_OVERRIDE<o:p></o:p></pre>
            <pre>+#define DAGB0_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE__SHIFT                                                         0x0<o:p></o:p></pre>
            <pre>+#define DAGB0_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE_MASK                                                           0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB0_WRCLI_GPU_SNOOP_OVERRIDE_VALUE<o:p></o:p></pre>
            <pre>+#define DAGB0_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE__SHIFT                                                   0x0<o:p></o:p></pre>
            <pre>+#define DAGB0_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE_MASK                                                     0xFFFFFFFFL<o:p></o:p></pre>
            <pre> //DAGB0_DAGB_DLY<o:p></o:p></pre>
            <pre> #define DAGB0_DAGB_DLY__DLY__SHIFT                                                                            0x0<o:p></o:p></pre>
            <pre> #define DAGB0_DAGB_DLY__CLI__SHIFT                                                                            0x8<o:p></o:p></pre>
            <pre>@@ -3207,6 +3213,12 @@<o:p></o:p></pre>
            <pre> //DAGB1_WRCLI_DBUS_GO_PENDING<o:p></o:p></pre>
            <pre> #define DAGB1_WRCLI_DBUS_GO_PENDING__BUSY__SHIFT                                                              0x0<o:p></o:p></pre>
            <pre> #define DAGB1_WRCLI_DBUS_GO_PENDING__BUSY_MASK                                                                0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB1_WRCLI_GPU_SNOOP_OVERRIDE<o:p></o:p></pre>
            <pre>+#define DAGB1_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE__SHIFT                                                         0x0<o:p></o:p></pre>
            <pre>+#define DAGB1_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE_MASK                                                           0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB1_WRCLI_GPU_SNOOP_OVERRIDE_VALUE<o:p></o:p></pre>
            <pre>+#define DAGB1_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE__SHIFT                                                   0x0<o:p></o:p></pre>
            <pre>+#define DAGB1_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE_MASK                                                     0xFFFFFFFFL<o:p></o:p></pre>
            <pre> //DAGB1_DAGB_DLY<o:p></o:p></pre>
            <pre> #define DAGB1_DAGB_DLY__DLY__SHIFT                                                                            0x0<o:p></o:p></pre>
            <pre> #define DAGB1_DAGB_DLY__CLI__SHIFT                                                                            0x8<o:p></o:p></pre>
            <pre>@@ -4882,6 +4894,12 @@<o:p></o:p></pre>
            <pre> //DAGB2_WRCLI_DBUS_GO_PENDING<o:p></o:p></pre>
            <pre> #define DAGB2_WRCLI_DBUS_GO_PENDING__BUSY__SHIFT                                                              0x0<o:p></o:p></pre>
            <pre> #define DAGB2_WRCLI_DBUS_GO_PENDING__BUSY_MASK                                                                0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB2_WRCLI_GPU_SNOOP_OVERRIDE<o:p></o:p></pre>
            <pre>+#define DAGB2_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE__SHIFT                                                         0x0<o:p></o:p></pre>
            <pre>+#define DAGB2_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE_MASK                                                           0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB2_WRCLI_GPU_SNOOP_OVERRIDE_VALUE<o:p></o:p></pre>
            <pre>+#define DAGB2_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE__SHIFT                                                   0x0<o:p></o:p></pre>
            <pre>+#define DAGB2_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE_MASK                                                     0xFFFFFFFFL<o:p></o:p></pre>
            <pre> //DAGB2_DAGB_DLY<o:p></o:p></pre>
            <pre> #define DAGB2_DAGB_DLY__DLY__SHIFT                                                                            0x0<o:p></o:p></pre>
            <pre> #define DAGB2_DAGB_DLY__CLI__SHIFT                                                                            0x8<o:p></o:p></pre>
            <pre>@@ -6557,6 +6575,12 @@<o:p></o:p></pre>
            <pre> //DAGB3_WRCLI_DBUS_GO_PENDING<o:p></o:p></pre>
            <pre> #define DAGB3_WRCLI_DBUS_GO_PENDING__BUSY__SHIFT                                                              0x0<o:p></o:p></pre>
            <pre> #define DAGB3_WRCLI_DBUS_GO_PENDING__BUSY_MASK                                                                0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB3_WRCLI_GPU_SNOOP_OVERRIDE<o:p></o:p></pre>
            <pre>+#define DAGB3_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE__SHIFT                                                         0x0<o:p></o:p></pre>
            <pre>+#define DAGB3_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE_MASK                                                           0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB3_WRCLI_GPU_SNOOP_OVERRIDE_VALUE<o:p></o:p></pre>
            <pre>+#define DAGB3_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE__SHIFT                                                   0x0<o:p></o:p></pre>
            <pre>+#define DAGB3_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE_MASK                                                     0xFFFFFFFFL<o:p></o:p></pre>
            <pre> //DAGB3_DAGB_DLY<o:p></o:p></pre>
            <pre> #define DAGB3_DAGB_DLY__DLY__SHIFT                                                                            0x0<o:p></o:p></pre>
            <pre> #define DAGB3_DAGB_DLY__CLI__SHIFT                                                                            0x8<o:p></o:p></pre>
            <pre>@@ -8232,6 +8256,12 @@<o:p></o:p></pre>
            <pre> //DAGB4_WRCLI_DBUS_GO_PENDING<o:p></o:p></pre>
            <pre> #define DAGB4_WRCLI_DBUS_GO_PENDING__BUSY__SHIFT                                                              0x0<o:p></o:p></pre>
            <pre> #define DAGB4_WRCLI_DBUS_GO_PENDING__BUSY_MASK                                                                0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB4_WRCLI_GPU_SNOOP_OVERRIDE<o:p></o:p></pre>
            <pre>+#define DAGB4_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE__SHIFT                                                         0x0<o:p></o:p></pre>
            <pre>+#define DAGB4_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE_MASK                                                           0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB4_WRCLI_GPU_SNOOP_OVERRIDE_VALUE<o:p></o:p></pre>
            <pre>+#define DAGB4_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE__SHIFT                                                   0x0<o:p></o:p></pre>
            <pre>+#define DAGB4_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE_MASK                                                     0xFFFFFFFFL<o:p></o:p></pre>
            <pre> //DAGB4_DAGB_DLY<o:p></o:p></pre>
            <pre> #define DAGB4_DAGB_DLY__DLY__SHIFT                                                                            0x0<o:p></o:p></pre>
            <pre> #define DAGB4_DAGB_DLY__CLI__SHIFT                                                                            0x8<o:p></o:p></pre>
            <pre>@@ -28737,6 +28767,12 @@<o:p></o:p></pre>
            <pre> //DAGB5_WRCLI_DBUS_GO_PENDING<o:p></o:p></pre>
            <pre> #define DAGB5_WRCLI_DBUS_GO_PENDING__BUSY__SHIFT                                                              0x0<o:p></o:p></pre>
            <pre> #define DAGB5_WRCLI_DBUS_GO_PENDING__BUSY_MASK                                                                0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB5_WRCLI_GPU_SNOOP_OVERRIDE<o:p></o:p></pre>
            <pre>+#define DAGB5_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE__SHIFT                                                         0x0<o:p></o:p></pre>
            <pre>+#define DAGB5_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE_MASK                                                           0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB5_WRCLI_GPU_SNOOP_OVERRIDE_VALUE<o:p></o:p></pre>
            <pre>+#define DAGB5_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE__SHIFT                                                   0x0<o:p></o:p></pre>
            <pre>+#define DAGB5_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE_MASK                                                     0xFFFFFFFFL<o:p></o:p></pre>
            <pre> //DAGB5_DAGB_DLY<o:p></o:p></pre>
            <pre> #define DAGB5_DAGB_DLY__DLY__SHIFT                                                                            0x0<o:p></o:p></pre>
            <pre> #define DAGB5_DAGB_DLY__CLI__SHIFT                                                                            0x8<o:p></o:p></pre>
            <pre>@@ -30412,6 +30448,12 @@<o:p></o:p></pre>
            <pre> //DAGB6_WRCLI_DBUS_GO_PENDING<o:p></o:p></pre>
            <pre> #define DAGB6_WRCLI_DBUS_GO_PENDING__BUSY__SHIFT                                                              0x0<o:p></o:p></pre>
            <pre> #define DAGB6_WRCLI_DBUS_GO_PENDING__BUSY_MASK                                                                0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB6_WRCLI_GPU_SNOOP_OVERRIDE<o:p></o:p></pre>
            <pre>+#define DAGB6_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE__SHIFT                                                         0x0<o:p></o:p></pre>
            <pre>+#define DAGB6_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE_MASK                                                           0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB6_WRCLI_GPU_SNOOP_OVERRIDE_VALUE<o:p></o:p></pre>
            <pre>+#define DAGB6_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE__SHIFT                                                   0x0<o:p></o:p></pre>
            <pre>+#define DAGB6_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE_MASK                                                     0xFFFFFFFFL<o:p></o:p></pre>
            <pre> //DAGB6_DAGB_DLY<o:p></o:p></pre>
            <pre> #define DAGB6_DAGB_DLY__DLY__SHIFT                                                                            0x0<o:p></o:p></pre>
            <pre> #define DAGB6_DAGB_DLY__CLI__SHIFT                                                                            0x8<o:p></o:p></pre>
            <pre>@@ -32087,6 +32129,12 @@<o:p></o:p></pre>
            <pre> //DAGB7_WRCLI_DBUS_GO_PENDING<o:p></o:p></pre>
            <pre> #define DAGB7_WRCLI_DBUS_GO_PENDING__BUSY__SHIFT                                                              0x0<o:p></o:p></pre>
            <pre> #define DAGB7_WRCLI_DBUS_GO_PENDING__BUSY_MASK                                                                0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB7_WRCLI_GPU_SNOOP_OVERRIDE<o:p></o:p></pre>
            <pre>+#define DAGB7_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE__SHIFT                                                         0x0<o:p></o:p></pre>
            <pre>+#define DAGB7_WRCLI_GPU_SNOOP_OVERRIDE__ENABLE_MASK                                                           0xFFFFFFFFL<o:p></o:p></pre>
            <pre>+//DAGB7_WRCLI_GPU_SNOOP_OVERRIDE_VALUE<o:p></o:p></pre>
            <pre>+#define DAGB7_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE__SHIFT                                                   0x0<o:p></o:p></pre>
            <pre>+#define DAGB7_WRCLI_GPU_SNOOP_OVERRIDE_VALUE__ENABLE_MASK                                                     0xFFFFFFFFL<o:p></o:p></pre>
            <pre> //DAGB7_DAGB_DLY<o:p></o:p></pre>
            <pre> #define DAGB7_DAGB_DLY__DLY__SHIFT                                                                            0x0<o:p></o:p></pre>
            <pre> #define DAGB7_DAGB_DLY__CLI__SHIFT                                                                            0x8<o:p></o:p></pre>
          </blockquote>
        </div>
      </div>
    </blockquote>
  </body>
</html>