Merge tag 'v5.3-rc3' into drm-next-5.4
authorAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Aug 2019 18:07:28 +0000 (13:07 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Aug 2019 18:07:28 +0000 (13:07 -0500)
Linux 5.3-rc3

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1  2 
MAINTAINERS
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
drivers/gpu/drm/ttm/ttm_bo.c
include/drm/ttm/ttm_bo_driver.h

diff --cc MAINTAINERS
Simple merge
@@@ -1581,27 -1441,17 +1581,36 @@@ static void gfx_v10_0_init_compute_vmid
        }
        nv_grbm_select(adev, 0, 0, 0, 0);
        mutex_unlock(&adev->srbm_mutex);
+       /* Initialize all compute VMIDs to have no GDS, GWS, or OA
+          acccess. These should be enabled by FW for target VMIDs. */
+       for (i = FIRST_COMPUTE_VMID; i < LAST_COMPUTE_VMID; i++) {
+               WREG32_SOC15_OFFSET(GC, 0, mmGDS_VMID0_BASE, 2 * i, 0);
+               WREG32_SOC15_OFFSET(GC, 0, mmGDS_VMID0_SIZE, 2 * i, 0);
+               WREG32_SOC15_OFFSET(GC, 0, mmGDS_GWS_VMID0, i, 0);
+               WREG32_SOC15_OFFSET(GC, 0, mmGDS_OA_VMID0, i, 0);
+       }
  }
  
 +static void gfx_v10_0_init_gds_vmid(struct amdgpu_device *adev)
 +{
 +      int vmid;
 +
 +      /*
 +       * Initialize all compute and user-gfx VMIDs to have no GDS, GWS, or OA
 +       * access. Compute VMIDs should be enabled by FW for target VMIDs,
 +       * the driver can enable them for graphics. VMID0 should maintain
 +       * access so that HWS firmware can save/restore entries.
 +       */
 +      for (vmid = 1; vmid < 16; vmid++) {
 +              WREG32_SOC15_OFFSET(GC, 0, mmGDS_VMID0_BASE, 2 * vmid, 0);
 +              WREG32_SOC15_OFFSET(GC, 0, mmGDS_VMID0_SIZE, 2 * vmid, 0);
 +              WREG32_SOC15_OFFSET(GC, 0, mmGDS_GWS_VMID0, vmid, 0);
 +              WREG32_SOC15_OFFSET(GC, 0, mmGDS_OA_VMID0, vmid, 0);
 +      }
 +}
 +
 +
  static void gfx_v10_0_tcp_harvest(struct amdgpu_device *adev)
  {
        int i, j, k;
@@@ -1879,26 -1879,17 +1879,35 @@@ static void gfx_v7_0_init_compute_vmid(
        }
        cik_srbm_select(adev, 0, 0, 0, 0);
        mutex_unlock(&adev->srbm_mutex);
+       /* Initialize all compute VMIDs to have no GDS, GWS, or OA
+          acccess. These should be enabled by FW for target VMIDs. */
+       for (i = FIRST_COMPUTE_VMID; i < LAST_COMPUTE_VMID; i++) {
+               WREG32(amdgpu_gds_reg_offset[i].mem_base, 0);
+               WREG32(amdgpu_gds_reg_offset[i].mem_size, 0);
+               WREG32(amdgpu_gds_reg_offset[i].gws, 0);
+               WREG32(amdgpu_gds_reg_offset[i].oa, 0);
+       }
  }
  
 +static void gfx_v7_0_init_gds_vmid(struct amdgpu_device *adev)
 +{
 +      int vmid;
 +
 +      /*
 +       * Initialize all compute and user-gfx VMIDs to have no GDS, GWS, or OA
 +       * access. Compute VMIDs should be enabled by FW for target VMIDs,
 +       * the driver can enable them for graphics. VMID0 should maintain
 +       * access so that HWS firmware can save/restore entries.
 +       */
 +      for (vmid = 1; vmid < 16; vmid++) {
 +              WREG32(amdgpu_gds_reg_offset[vmid].mem_base, 0);
 +              WREG32(amdgpu_gds_reg_offset[vmid].mem_size, 0);
 +              WREG32(amdgpu_gds_reg_offset[vmid].gws, 0);
 +              WREG32(amdgpu_gds_reg_offset[vmid].oa, 0);
 +      }
 +}
 +
  static void gfx_v7_0_config_init(struct amdgpu_device *adev)
  {
        adev->gfx.config.double_offchip_lds_buf = 1;
@@@ -3739,26 -3706,17 +3739,35 @@@ static void gfx_v8_0_init_compute_vmid(
        }
        vi_srbm_select(adev, 0, 0, 0, 0);
        mutex_unlock(&adev->srbm_mutex);
+       /* Initialize all compute VMIDs to have no GDS, GWS, or OA
+          acccess. These should be enabled by FW for target VMIDs. */
+       for (i = FIRST_COMPUTE_VMID; i < LAST_COMPUTE_VMID; i++) {
+               WREG32(amdgpu_gds_reg_offset[i].mem_base, 0);
+               WREG32(amdgpu_gds_reg_offset[i].mem_size, 0);
+               WREG32(amdgpu_gds_reg_offset[i].gws, 0);
+               WREG32(amdgpu_gds_reg_offset[i].oa, 0);
+       }
  }
  
 +static void gfx_v8_0_init_gds_vmid(struct amdgpu_device *adev)
 +{
 +      int vmid;
 +
 +      /*
 +       * Initialize all compute and user-gfx VMIDs to have no GDS, GWS, or OA
 +       * access. Compute VMIDs should be enabled by FW for target VMIDs,
 +       * the driver can enable them for graphics. VMID0 should maintain
 +       * access so that HWS firmware can save/restore entries.
 +       */
 +      for (vmid = 1; vmid < 16; vmid++) {
 +              WREG32(amdgpu_gds_reg_offset[vmid].mem_base, 0);
 +              WREG32(amdgpu_gds_reg_offset[vmid].mem_size, 0);
 +              WREG32(amdgpu_gds_reg_offset[vmid].gws, 0);
 +              WREG32(amdgpu_gds_reg_offset[vmid].oa, 0);
 +      }
 +}
 +
  static void gfx_v8_0_config_init(struct amdgpu_device *adev)
  {
        switch (adev->asic_type) {
@@@ -2405,26 -1918,17 +2405,35 @@@ static void gfx_v9_0_init_compute_vmid(
        }
        soc15_grbm_select(adev, 0, 0, 0, 0);
        mutex_unlock(&adev->srbm_mutex);
+       /* Initialize all compute VMIDs to have no GDS, GWS, or OA
+          acccess. These should be enabled by FW for target VMIDs. */
+       for (i = FIRST_COMPUTE_VMID; i < LAST_COMPUTE_VMID; i++) {
+               WREG32_SOC15_OFFSET(GC, 0, mmGDS_VMID0_BASE, 2 * i, 0);
+               WREG32_SOC15_OFFSET(GC, 0, mmGDS_VMID0_SIZE, 2 * i, 0);
+               WREG32_SOC15_OFFSET(GC, 0, mmGDS_GWS_VMID0, i, 0);
+               WREG32_SOC15_OFFSET(GC, 0, mmGDS_OA_VMID0, i, 0);
+       }
  }
  
 +static void gfx_v9_0_init_gds_vmid(struct amdgpu_device *adev)
 +{
 +      int vmid;
 +
 +      /*
 +       * Initialize all compute and user-gfx VMIDs to have no GDS, GWS, or OA
 +       * access. Compute VMIDs should be enabled by FW for target VMIDs,
 +       * the driver can enable them for graphics. VMID0 should maintain
 +       * access so that HWS firmware can save/restore entries.
 +       */
 +      for (vmid = 1; vmid < 16; vmid++) {
 +              WREG32_SOC15_OFFSET(GC, 0, mmGDS_VMID0_BASE, 2 * vmid, 0);
 +              WREG32_SOC15_OFFSET(GC, 0, mmGDS_VMID0_SIZE, 2 * vmid, 0);
 +              WREG32_SOC15_OFFSET(GC, 0, mmGDS_GWS_VMID0, vmid, 0);
 +              WREG32_SOC15_OFFSET(GC, 0, mmGDS_OA_VMID0, vmid, 0);
 +      }
 +}
 +
  static void gfx_v9_0_constants_init(struct amdgpu_device *adev)
  {
        u32 tmp;
Simple merge
Simple merge
Simple merge