]> Git Repo - linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/soc15_common.h
drm/nouveau/kms: Don't change EDID when it hasn't actually changed
[linux.git] / drivers / gpu / drm / amd / amdgpu / soc15_common.h
index c893c645a4b2d5a22159e17c4e302690c3008e6c..a5c00ab8b021a1c2bcad99d2108e9b8cfc23df07 100644 (file)
@@ -35,6 +35,9 @@
 #define RREG32_SOC15(ip, inst, reg) \
        RREG32(adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg)
 
+#define RREG32_SOC15_NO_KIQ(ip, inst, reg) \
+       RREG32_NO_KIQ(adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg)
+
 #define RREG32_SOC15_OFFSET(ip, inst, reg, offset) \
        RREG32((adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg) + offset)
 
 #define WREG32_SOC15_OFFSET(ip, inst, reg, offset, value) \
        WREG32((adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg) + offset, value)
 
-#define SOC15_WAIT_ON_RREG(ip, inst, reg, expected_value, mask, ret) \
+#define SOC15_WAIT_ON_RREG(ip, inst, reg, expected_value, mask) \
+({     int ret = 0;                                            \
        do {                                                    \
-               uint32_t old_ = 0;      \
+               uint32_t old_ = 0;                              \
                uint32_t tmp_ = RREG32(adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg); \
                uint32_t loop = adev->usec_timeout;             \
                ret = 0;                                        \
                while ((tmp_ & (mask)) != (expected_value)) {   \
                        if (old_ != tmp_) {                     \
                                loop = adev->usec_timeout;      \
-                               old_ = tmp_;                            \
-                       } else                                          \
-                               udelay(1);                              \
+                               old_ = tmp_;                    \
+                       } else                                  \
+                               udelay(1);                      \
                        tmp_ = RREG32(adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg); \
                        loop--;                                 \
                        if (!loop) {                            \
@@ -68,7 +72,9 @@
                                break;                          \
                        }                                       \
                }                                               \
-       } while (0)
+       } while (0);                                            \
+       ret;                                                    \
+})
 
 #define WREG32_RLC(reg, value) \
        do {                                                    \
This page took 0.0341 seconds and 4 git commands to generate.