.. | .. |
---|
1113 | 1113 | continue; |
---|
1114 | 1114 | |
---|
1115 | 1115 | ret = drm_crtc_vblank_get(crtc); |
---|
1116 | | - WARN_ONCE(ret != -EINVAL, "driver forgot to call drm_crtc_vblank_off()\n"); |
---|
| 1116 | + /* |
---|
| 1117 | + * Self-refresh is not a true "disable"; ensure vblank remains |
---|
| 1118 | + * enabled. |
---|
| 1119 | + */ |
---|
| 1120 | + if (new_crtc_state->self_refresh_active) |
---|
| 1121 | + WARN_ONCE(ret != 0, |
---|
| 1122 | + "driver disabled vblank in self-refresh\n"); |
---|
| 1123 | + else |
---|
| 1124 | + WARN_ONCE(ret != -EINVAL, |
---|
| 1125 | + "driver forgot to call drm_crtc_vblank_off()\n"); |
---|
1117 | 1126 | if (ret == 0) |
---|
1118 | 1127 | drm_crtc_vblank_put(crtc); |
---|
1119 | 1128 | } |
---|