Commit f5520a1a authored by Maíra Canal's avatar Maíra Canal
Browse files

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: default avatarIago Toral Quiroga <itoral@igalia.com>
Link: https://patch.msgid.link/20260112-v3d-drm-debug-v2-2-8ef6244c97bb@igalia.com


Signed-off-by: default avatarMaíra Canal <mcanal@igalia.com>
parent eaba54b8
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -213,7 +213,7 @@ int v3d_create_bo_ioctl(struct drm_device *dev, void *data,
	int ret;

	if (args->flags != 0) {
		DRM_INFO("unknown create_bo flags: %d\n", args->flags);
		drm_dbg(dev, "unknown create_bo flags: %d\n", args->flags);
		return -EINVAL;
	}

@@ -236,13 +236,13 @@ int v3d_mmap_bo_ioctl(struct drm_device *dev, void *data,
	struct drm_gem_object *gem_obj;

	if (args->flags != 0) {
		DRM_INFO("unknown mmap_bo flags: %d\n", args->flags);
		drm_dbg(dev, "unknown mmap_bo flags: %d\n", args->flags);
		return -EINVAL;
	}

	gem_obj = drm_gem_object_lookup(file_priv, args->handle);
	if (!gem_obj) {
		DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle);
		drm_dbg(dev, "Failed to look up GEM BO %d\n", args->handle);
		return -ENOENT;
	}

@@ -261,7 +261,7 @@ int v3d_get_bo_offset_ioctl(struct drm_device *dev, void *data,

	gem_obj = drm_gem_object_lookup(file_priv, args->handle);
	if (!gem_obj) {
		DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle);
		drm_dbg(dev, "Failed to look up GEM BO %d\n", args->handle);
		return -ENOENT;
	}
	bo = to_v3d_bo(gem_obj);
+3 −3
Original line number Diff line number Diff line
@@ -120,7 +120,7 @@ static int v3d_get_param_ioctl(struct drm_device *dev, void *data,
		mutex_unlock(&v3d->reset_lock);
		return 0;
	default:
		DRM_DEBUG("Unknown parameter %d\n", args->param);
		drm_dbg(dev, "Unknown parameter %d\n", args->param);
		return -EINVAL;
	}
}
@@ -297,7 +297,7 @@ v3d_idle_sms(struct v3d_dev *v3d)

	if (wait_for((V3D_GET_FIELD(V3D_SMS_READ(V3D_SMS_TEE_CS),
				    V3D_SMS_STATE) == V3D_SMS_IDLE), 100)) {
		DRM_ERROR("Failed to power up SMS\n");
		drm_err(&v3d->drm, "Failed to power up SMS\n");
	}

	v3d_reset_sms(v3d);
@@ -313,7 +313,7 @@ v3d_power_off_sms(struct v3d_dev *v3d)

	if (wait_for((V3D_GET_FIELD(V3D_SMS_READ(V3D_SMS_TEE_CS),
				    V3D_SMS_STATE) == V3D_SMS_POWER_OFF_STATE), 100)) {
		DRM_ERROR("Failed to power off SMS\n");
		drm_err(&v3d->drm, "Failed to power off SMS\n");
	}
}

+8 −8
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ v3d_idle_axi(struct v3d_dev *v3d, int core)
		      (V3D_GMP_STATUS_RD_COUNT_MASK |
		       V3D_GMP_STATUS_WR_COUNT_MASK |
		       V3D_GMP_STATUS_CFG_BUSY)) == 0, 100)) {
		DRM_ERROR("Failed to wait for safe GMP shutdown\n");
		drm_err(&v3d->drm, "Failed to wait for safe GMP shutdown\n");
	}
}

@@ -67,7 +67,7 @@ v3d_idle_gca(struct v3d_dev *v3d)
	if (wait_for((V3D_GCA_READ(V3D_GCA_SAFE_SHUTDOWN_ACK) &
		      V3D_GCA_SAFE_SHUTDOWN_ACK_ACKED) ==
		     V3D_GCA_SAFE_SHUTDOWN_ACK_ACKED, 100)) {
		DRM_ERROR("Failed to wait for safe GCA shutdown\n");
		drm_err(&v3d->drm, "Failed to wait for safe GCA shutdown\n");
	}
}

@@ -117,7 +117,7 @@ v3d_reset_sms(struct v3d_dev *v3d)
				     V3D_SMS_STATE) == V3D_SMS_ISOLATING_FOR_RESET) &&
		     !(V3D_GET_FIELD(V3D_SMS_READ(V3D_SMS_REE_CS),
				     V3D_SMS_STATE) == V3D_SMS_RESETTING), 100)) {
		DRM_ERROR("Failed to wait for SMS reset\n");
		drm_err(&v3d->drm, "Failed to wait for SMS reset\n");
	}
}

@@ -126,9 +126,9 @@ v3d_reset(struct v3d_dev *v3d)
{
	struct drm_device *dev = &v3d->drm;

	DRM_DEV_ERROR(dev->dev, "Resetting GPU for hang.\n");
	DRM_DEV_ERROR(dev->dev, "V3D_ERR_STAT: 0x%08x\n",
		      V3D_CORE_READ(0, V3D_ERR_STAT));
	drm_err(dev, "Resetting GPU for hang.\n");
	drm_err(dev, "V3D_ERR_STAT: 0x%08x\n", V3D_CORE_READ(0, V3D_ERR_STAT));

	trace_v3d_reset_begin(dev);

	/* XXX: only needed for safe powerdown, not reset. */
@@ -216,7 +216,7 @@ v3d_clean_caches(struct v3d_dev *v3d)
	V3D_CORE_WRITE(core, V3D_CTL_L2TCACTL, V3D_L2TCACTL_TMUWCF);
	if (wait_for(!(V3D_CORE_READ(core, V3D_CTL_L2TCACTL) &
		       V3D_L2TCACTL_TMUWCF), 100)) {
		DRM_ERROR("Timeout waiting for TMU write combiner flush\n");
		drm_err(dev, "Timeout waiting for TMU write combiner flush\n");
	}

	mutex_lock(&v3d->cache_clean_lock);
@@ -226,7 +226,7 @@ v3d_clean_caches(struct v3d_dev *v3d)

	if (wait_for(!(V3D_CORE_READ(core, V3D_CTL_L2TCACTL) &
		       V3D_L2TCACTL_L2TFLS), 100)) {
		DRM_ERROR("Timeout waiting for L2T clean\n");
		drm_err(dev, "Timeout waiting for L2T clean\n");
	}

	mutex_unlock(&v3d->cache_clean_lock);
+4 −4
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ v3d_overflow_mem_work(struct work_struct *work)
	unsigned long irqflags;

	if (IS_ERR(bo)) {
		DRM_ERROR("Couldn't allocate binner overflow mem\n");
		drm_err(dev, "Couldn't allocate binner overflow mem\n");
		return;
	}
	obj = &bo->base.base;
@@ -140,7 +140,7 @@ v3d_irq(int irq, void *arg)
	 * always-allowed mode.
	 */
	if (v3d->ver < V3D_GEN_71 && (intsts & V3D_INT_GMPV))
		dev_err(v3d->drm.dev, "GMP violation\n");
		drm_err(&v3d->drm, "GMP violation\n");

	/* V3D 4.2 wires the hub and core IRQs together, so if we &
	 * didn't see the common one then check hub for MMU IRQs.
@@ -226,7 +226,7 @@ v3d_hub_irq(int irq, void *arg)
			}
		}

		dev_err(v3d->drm.dev, "MMU error from client %s (0x%x) at 0x%llx%s%s%s\n",
		drm_dbg(&v3d->drm, "MMU error from client %s (0x%x) at 0x%llx%s%s%s\n",
			client, axi_id, (long long)vio_addr,
			((intsts & V3D_HUB_INT_MMU_WRV) ?
			 ", write violation" : ""),
@@ -238,7 +238,7 @@ v3d_hub_irq(int irq, void *arg)
	}

	if (v3d->ver >= V3D_GEN_71 && (intsts & V3D_V7_HUB_INT_GMPV)) {
		dev_err(v3d->drm.dev, "GMP Violation\n");
		drm_err(&v3d->drm, "GMP Violation\n");
		status = IRQ_HANDLED;
	}

+4 −2
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@
 * each client. This is not yet implemented.
 */

#include <drm/drm_print.h>

#include "v3d_drv.h"
#include "v3d_regs.h"

@@ -125,7 +127,7 @@ void v3d_mmu_insert_ptes(struct v3d_bo *bo)
		     shmem_obj->base.size >> V3D_MMU_PAGE_SHIFT);

	if (v3d_mmu_flush_all(v3d))
		dev_err(v3d->drm.dev, "MMU flush timeout\n");
		drm_err(&v3d->drm, "MMU flush timeout\n");
}

void v3d_mmu_remove_ptes(struct v3d_bo *bo)
@@ -138,5 +140,5 @@ void v3d_mmu_remove_ptes(struct v3d_bo *bo)
		v3d->pt[page] = 0;

	if (v3d_mmu_flush_all(v3d))
		dev_err(v3d->drm.dev, "MMU flush timeout\n");
		drm_err(&v3d->drm, "MMU flush timeout\n");
}
Loading