int amdgpu_mcbp = 0;
 int amdgpu_discovery = -1;
 int amdgpu_mes = 0;
-int amdgpu_noretry;
+int amdgpu_noretry = -1;
 int amdgpu_force_asic_type = -1;
 int amdgpu_tmz = 0;
 int amdgpu_reset_method = -1; /* auto */
        "Enable Micro Engine Scheduler (0 = disabled (default), 1 = enabled)");
 module_param_named(mes, amdgpu_mes, int, 0444);
 
+/**
+ * DOC: noretry (int)
+ * Disable retry faults in the GPU memory controller.
+ * (0 = retry enabled, 1 = retry disabled, -1 auto (default))
+ */
 MODULE_PARM_DESC(noretry,
-       "Disable retry faults (0 = retry enabled (default), 1 = retry disabled)");
+       "Disable retry faults (0 = retry enabled, 1 = retry disabled, -1 auto (default))");
 module_param_named(noretry, amdgpu_noretry, int, 0644);
 
 /**
 
 {
        struct amdgpu_gmc *gmc = &adev->gmc;
 
-       gmc->noretry = amdgpu_noretry;
+       switch (adev->asic_type) {
+       case CHIP_RAVEN:
+               /* Raven currently has issues with noretry
+                * regardless of what we decide for other
+                * asics, we should leave raven with
+                * noretry = 0 until we root cause the
+                * issues.
+                */
+               if (amdgpu_noretry == -1)
+                       gmc->noretry = 0;
+               else
+                       gmc->noretry = amdgpu_noretry;
+               break;
+       default:
+               /* default this to 0 for now, but we may want
+                * to change this in the future for certain
+                * GPUs as it can increase performance in
+                * certain cases.
+                */
+               if (amdgpu_noretry == -1)
+                       gmc->noretry = 0;
+               else
+                       gmc->noretry = amdgpu_noretry;
+               break;
+       }
 }
 
 void amdgpu_gmc_set_vm_fault_masks(struct amdgpu_device *adev, int hub_type,