Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/v3d: Convert v3d logging to device-based DRM helpers

Replace legacy DRM_DEBUG/INFO/WARN/ERROR logging with the corresponding
device-based drm_dbg(), drm_info(), drm_warn() and drm_err() helpers.
For some messages, adjust the log level to better reflect their severity.

This allows filtering via drm.debug, reduces log spam, and helps
differentiate v3d logs from vc4 logs.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Link: https://patch.msgid.link/20260112-v3d-drm-debug-v2-2-8ef6244c97bb@igalia.com
Signed-off-by: Maíra Canal <mcanal@igalia.com>

+62 -54
+4 -4
drivers/gpu/drm/v3d/v3d_bo.c
··· 213 213 int ret; 214 214 215 215 if (args->flags != 0) { 216 - DRM_INFO("unknown create_bo flags: %d\n", args->flags); 216 + drm_dbg(dev, "unknown create_bo flags: %d\n", args->flags); 217 217 return -EINVAL; 218 218 } 219 219 ··· 236 236 struct drm_gem_object *gem_obj; 237 237 238 238 if (args->flags != 0) { 239 - DRM_INFO("unknown mmap_bo flags: %d\n", args->flags); 239 + drm_dbg(dev, "unknown mmap_bo flags: %d\n", args->flags); 240 240 return -EINVAL; 241 241 } 242 242 243 243 gem_obj = drm_gem_object_lookup(file_priv, args->handle); 244 244 if (!gem_obj) { 245 - DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); 245 + drm_dbg(dev, "Failed to look up GEM BO %d\n", args->handle); 246 246 return -ENOENT; 247 247 } 248 248 ··· 261 261 262 262 gem_obj = drm_gem_object_lookup(file_priv, args->handle); 263 263 if (!gem_obj) { 264 - DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); 264 + drm_dbg(dev, "Failed to look up GEM BO %d\n", args->handle); 265 265 return -ENOENT; 266 266 } 267 267 bo = to_v3d_bo(gem_obj);
+3 -3
drivers/gpu/drm/v3d/v3d_drv.c
··· 120 120 mutex_unlock(&v3d->reset_lock); 121 121 return 0; 122 122 default: 123 - DRM_DEBUG("Unknown parameter %d\n", args->param); 123 + drm_dbg(dev, "Unknown parameter %d\n", args->param); 124 124 return -EINVAL; 125 125 } 126 126 } ··· 297 297 298 298 if (wait_for((V3D_GET_FIELD(V3D_SMS_READ(V3D_SMS_TEE_CS), 299 299 V3D_SMS_STATE) == V3D_SMS_IDLE), 100)) { 300 - DRM_ERROR("Failed to power up SMS\n"); 300 + drm_err(&v3d->drm, "Failed to power up SMS\n"); 301 301 } 302 302 303 303 v3d_reset_sms(v3d); ··· 313 313 314 314 if (wait_for((V3D_GET_FIELD(V3D_SMS_READ(V3D_SMS_TEE_CS), 315 315 V3D_SMS_STATE) == V3D_SMS_POWER_OFF_STATE), 100)) { 316 - DRM_ERROR("Failed to power off SMS\n"); 316 + drm_err(&v3d->drm, "Failed to power off SMS\n"); 317 317 } 318 318 } 319 319
+8 -8
drivers/gpu/drm/v3d/v3d_gem.c
··· 52 52 (V3D_GMP_STATUS_RD_COUNT_MASK | 53 53 V3D_GMP_STATUS_WR_COUNT_MASK | 54 54 V3D_GMP_STATUS_CFG_BUSY)) == 0, 100)) { 55 - DRM_ERROR("Failed to wait for safe GMP shutdown\n"); 55 + drm_err(&v3d->drm, "Failed to wait for safe GMP shutdown\n"); 56 56 } 57 57 } 58 58 ··· 67 67 if (wait_for((V3D_GCA_READ(V3D_GCA_SAFE_SHUTDOWN_ACK) & 68 68 V3D_GCA_SAFE_SHUTDOWN_ACK_ACKED) == 69 69 V3D_GCA_SAFE_SHUTDOWN_ACK_ACKED, 100)) { 70 - DRM_ERROR("Failed to wait for safe GCA shutdown\n"); 70 + drm_err(&v3d->drm, "Failed to wait for safe GCA shutdown\n"); 71 71 } 72 72 } 73 73 ··· 117 117 V3D_SMS_STATE) == V3D_SMS_ISOLATING_FOR_RESET) && 118 118 !(V3D_GET_FIELD(V3D_SMS_READ(V3D_SMS_REE_CS), 119 119 V3D_SMS_STATE) == V3D_SMS_RESETTING), 100)) { 120 - DRM_ERROR("Failed to wait for SMS reset\n"); 120 + drm_err(&v3d->drm, "Failed to wait for SMS reset\n"); 121 121 } 122 122 } 123 123 ··· 126 126 { 127 127 struct drm_device *dev = &v3d->drm; 128 128 129 - DRM_DEV_ERROR(dev->dev, "Resetting GPU for hang.\n"); 130 - DRM_DEV_ERROR(dev->dev, "V3D_ERR_STAT: 0x%08x\n", 131 - V3D_CORE_READ(0, V3D_ERR_STAT)); 129 + drm_err(dev, "Resetting GPU for hang.\n"); 130 + drm_err(dev, "V3D_ERR_STAT: 0x%08x\n", V3D_CORE_READ(0, V3D_ERR_STAT)); 131 + 132 132 trace_v3d_reset_begin(dev); 133 133 134 134 /* XXX: only needed for safe powerdown, not reset. */ ··· 216 216 V3D_CORE_WRITE(core, V3D_CTL_L2TCACTL, V3D_L2TCACTL_TMUWCF); 217 217 if (wait_for(!(V3D_CORE_READ(core, V3D_CTL_L2TCACTL) & 218 218 V3D_L2TCACTL_TMUWCF), 100)) { 219 - DRM_ERROR("Timeout waiting for TMU write combiner flush\n"); 219 + drm_err(dev, "Timeout waiting for TMU write combiner flush\n"); 220 220 } 221 221 222 222 mutex_lock(&v3d->cache_clean_lock); ··· 226 226 227 227 if (wait_for(!(V3D_CORE_READ(core, V3D_CTL_L2TCACTL) & 228 228 V3D_L2TCACTL_L2TFLS), 100)) { 229 - DRM_ERROR("Timeout waiting for L2T clean\n"); 229 + drm_err(dev, "Timeout waiting for L2T clean\n"); 230 230 } 231 231 232 232 mutex_unlock(&v3d->cache_clean_lock);
+4 -4
drivers/gpu/drm/v3d/v3d_irq.c
··· 50 50 unsigned long irqflags; 51 51 52 52 if (IS_ERR(bo)) { 53 - DRM_ERROR("Couldn't allocate binner overflow mem\n"); 53 + drm_err(dev, "Couldn't allocate binner overflow mem\n"); 54 54 return; 55 55 } 56 56 obj = &bo->base.base; ··· 140 140 * always-allowed mode. 141 141 */ 142 142 if (v3d->ver < V3D_GEN_71 && (intsts & V3D_INT_GMPV)) 143 - dev_err(v3d->drm.dev, "GMP violation\n"); 143 + drm_err(&v3d->drm, "GMP violation\n"); 144 144 145 145 /* V3D 4.2 wires the hub and core IRQs together, so if we & 146 146 * didn't see the common one then check hub for MMU IRQs. ··· 226 226 } 227 227 } 228 228 229 - dev_err(v3d->drm.dev, "MMU error from client %s (0x%x) at 0x%llx%s%s%s\n", 229 + drm_dbg(&v3d->drm, "MMU error from client %s (0x%x) at 0x%llx%s%s%s\n", 230 230 client, axi_id, (long long)vio_addr, 231 231 ((intsts & V3D_HUB_INT_MMU_WRV) ? 232 232 ", write violation" : ""), ··· 238 238 } 239 239 240 240 if (v3d->ver >= V3D_GEN_71 && (intsts & V3D_V7_HUB_INT_GMPV)) { 241 - dev_err(v3d->drm.dev, "GMP Violation\n"); 241 + drm_err(&v3d->drm, "GMP Violation\n"); 242 242 status = IRQ_HANDLED; 243 243 } 244 244
+4 -2
drivers/gpu/drm/v3d/v3d_mmu.c
··· 18 18 * each client. This is not yet implemented. 19 19 */ 20 20 21 + #include <drm/drm_print.h> 22 + 21 23 #include "v3d_drv.h" 22 24 #include "v3d_regs.h" 23 25 ··· 127 125 shmem_obj->base.size >> V3D_MMU_PAGE_SHIFT); 128 126 129 127 if (v3d_mmu_flush_all(v3d)) 130 - dev_err(v3d->drm.dev, "MMU flush timeout\n"); 128 + drm_err(&v3d->drm, "MMU flush timeout\n"); 131 129 } 132 130 133 131 void v3d_mmu_remove_ptes(struct v3d_bo *bo) ··· 140 138 v3d->pt[page] = 0; 141 139 142 140 if (v3d_mmu_flush_all(v3d)) 143 - dev_err(v3d->drm.dev, "MMU flush timeout\n"); 141 + drm_err(&v3d->drm, "MMU flush timeout\n"); 144 142 }
+3 -3
drivers/gpu/drm/v3d/v3d_sched.c
··· 585 585 perfmon = v3d_perfmon_find(v3d_priv, 586 586 performance_query->queries[i].kperfmon_ids[j]); 587 587 if (!perfmon) { 588 - DRM_DEBUG("Failed to find perfmon."); 588 + drm_dbg(&v3d->drm, "Failed to find perfmon."); 589 589 continue; 590 590 } 591 591 ··· 620 620 perfmon = v3d_perfmon_find(v3d_priv, 621 621 perf_query->kperfmon_ids[i]); 622 622 if (!perfmon) { 623 - DRM_DEBUG("Failed to find perfmon."); 623 + drm_dbg(&v3d->drm, "Failed to find perfmon."); 624 624 continue; 625 625 } 626 626 ··· 690 690 struct v3d_dev *v3d = job->base.v3d; 691 691 692 692 if (job->job_type >= ARRAY_SIZE(cpu_job_function)) { 693 - DRM_DEBUG_DRIVER("Unknown CPU job: %d\n", job->job_type); 693 + drm_dbg(&v3d->drm, "Unknown CPU job: %d\n", job->job_type); 694 694 return NULL; 695 695 } 696 696
+36 -30
drivers/gpu/drm/v3d/v3d_submit.c
··· 76 76 /* See comment on bo_index for why we have to check 77 77 * this. 78 78 */ 79 - DRM_DEBUG("Rendering requires BOs\n"); 79 + drm_warn(dev, "Rendering requires BOs\n"); 80 80 return -EINVAL; 81 81 } 82 82 ··· 138 138 } 139 139 140 140 static int 141 - v3d_job_allocate(void **container, size_t size) 141 + v3d_job_allocate(struct v3d_dev *v3d, void **container, size_t size) 142 142 { 143 143 *container = kcalloc(1, size, GFP_KERNEL); 144 144 if (!*container) { 145 - DRM_ERROR("Cannot allocate memory for V3D job.\n"); 145 + drm_err(&v3d->drm, "Cannot allocate memory for V3D job.\n"); 146 146 return -ENOMEM; 147 147 } 148 148 ··· 183 183 184 184 if (copy_from_user(&in, handle++, sizeof(in))) { 185 185 ret = -EFAULT; 186 - DRM_DEBUG("Failed to copy wait dep handle.\n"); 186 + drm_dbg(&v3d->drm, "Failed to copy wait dep handle.\n"); 187 187 goto fail_deps; 188 188 } 189 189 ret = drm_sched_job_add_syncobj_dependency(&job->base, file_priv, in.handle, 0); ··· 276 276 { 277 277 int ret; 278 278 279 - ret = v3d_job_allocate((void *)job, sizeof(**job)); 279 + ret = v3d_job_allocate(v3d, (void *)job, sizeof(**job)); 280 280 if (ret) 281 281 return ret; 282 282 ··· 287 287 return ret; 288 288 } 289 289 290 - ret = v3d_job_allocate((void *)clean_job, sizeof(**clean_job)); 290 + ret = v3d_job_allocate(v3d, (void *)clean_job, sizeof(**clean_job)); 291 291 if (ret) 292 292 return ret; 293 293 ··· 326 326 struct v3d_submit_ext *se, 327 327 u32 count, u64 handles) 328 328 { 329 + struct v3d_file_priv *v3d_priv = file_priv->driver_priv; 330 + struct v3d_dev *v3d = v3d_priv->v3d; 329 331 struct drm_v3d_sem __user *post_deps; 330 332 int i, ret; 331 333 ··· 348 346 349 347 if (copy_from_user(&out, post_deps++, sizeof(out))) { 350 348 ret = -EFAULT; 351 - DRM_DEBUG("Failed to copy post dep handles\n"); 349 + drm_dbg(&v3d->drm, "Failed to copy post dep handles\n"); 352 350 goto fail; 353 351 } 354 352 ··· 379 377 struct drm_v3d_extension __user *ext, 380 378 struct v3d_submit_ext *se) 381 379 { 380 + struct v3d_file_priv *v3d_priv = file_priv->driver_priv; 381 + struct v3d_dev *v3d = v3d_priv->v3d; 382 382 struct drm_v3d_multi_sync multisync; 383 383 int ret; 384 384 385 385 if (se->in_sync_count || se->out_sync_count) { 386 - DRM_DEBUG("Two multisync extensions were added to the same job."); 386 + drm_dbg(&v3d->drm, "Two multisync extensions were added to the same job."); 387 387 return -EINVAL; 388 388 } 389 389 ··· 446 442 return -EFAULT; 447 443 448 444 if (!v3d_has_csd(v3d)) { 449 - DRM_DEBUG("Attempting CSD submit on non-CSD hardware.\n"); 445 + drm_warn(&v3d->drm, "Attempting CSD submit on non-CSD hardware.\n"); 450 446 return -EINVAL; 451 447 } 452 448 ··· 808 804 struct v3d_submit_ext *se, 809 805 struct v3d_cpu_job *job) 810 806 { 807 + struct v3d_file_priv *v3d_priv = file_priv->driver_priv; 808 + struct v3d_dev *v3d = v3d_priv->v3d; 811 809 struct drm_v3d_extension __user *user_ext; 812 810 int ret; 813 811 ··· 818 812 struct drm_v3d_extension ext; 819 813 820 814 if (copy_from_user(&ext, user_ext, sizeof(ext))) { 821 - DRM_DEBUG("Failed to copy submit extension\n"); 815 + drm_dbg(&v3d->drm, "Failed to copy submit extension\n"); 822 816 return -EFAULT; 823 817 } 824 818 ··· 845 839 ret = v3d_get_cpu_copy_performance_query_params(file_priv, user_ext, job); 846 840 break; 847 841 default: 848 - DRM_DEBUG_DRIVER("Unknown extension id: %d\n", ext.id); 842 + drm_dbg(&v3d->drm, "Unknown V3D extension ID: %d\n", ext.id); 849 843 return -EINVAL; 850 844 } 851 845 ··· 893 887 if (args->flags && 894 888 args->flags & ~(DRM_V3D_SUBMIT_CL_FLUSH_CACHE | 895 889 DRM_V3D_SUBMIT_EXTENSION)) { 896 - DRM_INFO("invalid flags: %d\n", args->flags); 890 + drm_dbg(dev, "invalid flags: %d\n", args->flags); 897 891 return -EINVAL; 898 892 } 899 893 900 894 if (args->flags & DRM_V3D_SUBMIT_EXTENSION) { 901 895 ret = v3d_get_extensions(file_priv, args->extensions, &se, NULL); 902 896 if (ret) { 903 - DRM_DEBUG("Failed to get extensions.\n"); 897 + drm_dbg(dev, "Failed to get extensions.\n"); 904 898 return ret; 905 899 } 906 900 } 907 901 908 - ret = v3d_job_allocate((void *)&render, sizeof(*render)); 902 + ret = v3d_job_allocate(v3d, (void *)&render, sizeof(*render)); 909 903 if (ret) 910 904 return ret; 911 905 ··· 921 915 INIT_LIST_HEAD(&render->unref_list); 922 916 923 917 if (args->bcl_start != args->bcl_end) { 924 - ret = v3d_job_allocate((void *)&bin, sizeof(*bin)); 918 + ret = v3d_job_allocate(v3d, (void *)&bin, sizeof(*bin)); 925 919 if (ret) 926 920 goto fail; 927 921 ··· 941 935 } 942 936 943 937 if (args->flags & DRM_V3D_SUBMIT_CL_FLUSH_CACHE) { 944 - ret = v3d_job_allocate((void *)&clean_job, sizeof(*clean_job)); 938 + ret = v3d_job_allocate(v3d, (void *)&clean_job, sizeof(*clean_job)); 945 939 if (ret) 946 940 goto fail; 947 941 ··· 1059 1053 trace_v3d_submit_tfu_ioctl(&v3d->drm, args->iia); 1060 1054 1061 1055 if (args->flags && !(args->flags & DRM_V3D_SUBMIT_EXTENSION)) { 1062 - DRM_DEBUG("invalid flags: %d\n", args->flags); 1056 + drm_dbg(dev, "invalid flags: %d\n", args->flags); 1063 1057 return -EINVAL; 1064 1058 } 1065 1059 1066 1060 if (args->flags & DRM_V3D_SUBMIT_EXTENSION) { 1067 1061 ret = v3d_get_extensions(file_priv, args->extensions, &se, NULL); 1068 1062 if (ret) { 1069 - DRM_DEBUG("Failed to get extensions.\n"); 1063 + drm_dbg(dev, "Failed to get extensions.\n"); 1070 1064 return ret; 1071 1065 } 1072 1066 } 1073 1067 1074 - ret = v3d_job_allocate((void *)&job, sizeof(*job)); 1068 + ret = v3d_job_allocate(v3d, (void *)&job, sizeof(*job)); 1075 1069 if (ret) 1076 1070 return ret; 1077 1071 ··· 1101 1095 1102 1096 bo = drm_gem_object_lookup(file_priv, args->bo_handles[job->base.bo_count]); 1103 1097 if (!bo) { 1104 - DRM_DEBUG("Failed to look up GEM BO %d: %d\n", 1105 - job->base.bo_count, 1106 - args->bo_handles[job->base.bo_count]); 1098 + drm_dbg(dev, "Failed to look up GEM BO %d: %d\n", 1099 + job->base.bo_count, 1100 + args->bo_handles[job->base.bo_count]); 1107 1101 ret = -ENOENT; 1108 1102 goto fail; 1109 1103 } ··· 1163 1157 return -EINVAL; 1164 1158 1165 1159 if (!v3d_has_csd(v3d)) { 1166 - DRM_DEBUG("Attempting CSD submit on non-CSD hardware\n"); 1160 + drm_warn(dev, "Attempting CSD submit on non-CSD hardware\n"); 1167 1161 return -EINVAL; 1168 1162 } 1169 1163 1170 1164 if (args->flags && !(args->flags & DRM_V3D_SUBMIT_EXTENSION)) { 1171 - DRM_INFO("invalid flags: %d\n", args->flags); 1165 + drm_dbg(dev, "invalid flags: %d\n", args->flags); 1172 1166 return -EINVAL; 1173 1167 } 1174 1168 1175 1169 if (args->flags & DRM_V3D_SUBMIT_EXTENSION) { 1176 1170 ret = v3d_get_extensions(file_priv, args->extensions, &se, NULL); 1177 1171 if (ret) { 1178 - DRM_DEBUG("Failed to get extensions.\n"); 1172 + drm_dbg(dev, "Failed to get extensions.\n"); 1179 1173 return ret; 1180 1174 } 1181 1175 } ··· 1269 1263 int ret; 1270 1264 1271 1265 if (args->flags && !(args->flags & DRM_V3D_SUBMIT_EXTENSION)) { 1272 - DRM_INFO("Invalid flags: %d\n", args->flags); 1266 + drm_dbg(dev, "Invalid flags: %d\n", args->flags); 1273 1267 return -EINVAL; 1274 1268 } 1275 1269 1276 - ret = v3d_job_allocate((void *)&cpu_job, sizeof(*cpu_job)); 1270 + ret = v3d_job_allocate(v3d, (void *)&cpu_job, sizeof(*cpu_job)); 1277 1271 if (ret) 1278 1272 return ret; 1279 1273 1280 1274 if (args->flags & DRM_V3D_SUBMIT_EXTENSION) { 1281 1275 ret = v3d_get_extensions(file_priv, args->extensions, &se, cpu_job); 1282 1276 if (ret) { 1283 - DRM_DEBUG("Failed to get extensions.\n"); 1277 + drm_dbg(dev, "Failed to get extensions.\n"); 1284 1278 goto fail; 1285 1279 } 1286 1280 } 1287 1281 1288 1282 /* Every CPU job must have a CPU job user extension */ 1289 1283 if (!cpu_job->job_type) { 1290 - DRM_DEBUG("CPU job must have a CPU job user extension.\n"); 1284 + drm_dbg(dev, "CPU job must have a CPU job user extension.\n"); 1291 1285 ret = -EINVAL; 1292 1286 goto fail; 1293 1287 } 1294 1288 1295 1289 if (args->bo_handle_count != cpu_job_bo_handle_count[cpu_job->job_type]) { 1296 - DRM_DEBUG("This CPU job was not submitted with the proper number of BOs.\n"); 1290 + drm_dbg(dev, "This CPU job was not submitted with the proper number of BOs.\n"); 1297 1291 ret = -EINVAL; 1298 1292 goto fail; 1299 1293 }