(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");
}
}
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");
}
}
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");
}
}
{
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. */
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);
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);
/* See comment on bo_index for why we have to check
* this.
*/
- DRM_DEBUG("Rendering requires BOs\n");
+ drm_warn(dev, "Rendering requires BOs\n");
return -EINVAL;
}
}
static int
-v3d_job_allocate(void **container, size_t size)
+v3d_job_allocate(struct v3d_dev *v3d, void **container, size_t size)
{
*container = kcalloc(1, size, GFP_KERNEL);
if (!*container) {
- DRM_ERROR("Cannot allocate memory for V3D job.\n");
+ drm_err(&v3d->drm, "Cannot allocate memory for V3D job.\n");
return -ENOMEM;
}
if (copy_from_user(&in, handle++, sizeof(in))) {
ret = -EFAULT;
- DRM_DEBUG("Failed to copy wait dep handle.\n");
+ drm_dbg(&v3d->drm, "Failed to copy wait dep handle.\n");
goto fail_deps;
}
ret = drm_sched_job_add_syncobj_dependency(&job->base, file_priv, in.handle, 0);
{
int ret;
- ret = v3d_job_allocate((void *)job, sizeof(**job));
+ ret = v3d_job_allocate(v3d, (void *)job, sizeof(**job));
if (ret)
return ret;
return ret;
}
- ret = v3d_job_allocate((void *)clean_job, sizeof(**clean_job));
+ ret = v3d_job_allocate(v3d, (void *)clean_job, sizeof(**clean_job));
if (ret)
return ret;
struct v3d_submit_ext *se,
u32 count, u64 handles)
{
+ struct v3d_file_priv *v3d_priv = file_priv->driver_priv;
+ struct v3d_dev *v3d = v3d_priv->v3d;
struct drm_v3d_sem __user *post_deps;
int i, ret;
if (copy_from_user(&out, post_deps++, sizeof(out))) {
ret = -EFAULT;
- DRM_DEBUG("Failed to copy post dep handles\n");
+ drm_dbg(&v3d->drm, "Failed to copy post dep handles\n");
goto fail;
}
struct drm_v3d_extension __user *ext,
struct v3d_submit_ext *se)
{
+ struct v3d_file_priv *v3d_priv = file_priv->driver_priv;
+ struct v3d_dev *v3d = v3d_priv->v3d;
struct drm_v3d_multi_sync multisync;
int ret;
if (se->in_sync_count || se->out_sync_count) {
- DRM_DEBUG("Two multisync extensions were added to the same job.");
+ drm_dbg(&v3d->drm, "Two multisync extensions were added to the same job.");
return -EINVAL;
}
return -EFAULT;
if (!v3d_has_csd(v3d)) {
- DRM_DEBUG("Attempting CSD submit on non-CSD hardware.\n");
+ drm_warn(&v3d->drm, "Attempting CSD submit on non-CSD hardware.\n");
return -EINVAL;
}
struct v3d_submit_ext *se,
struct v3d_cpu_job *job)
{
+ struct v3d_file_priv *v3d_priv = file_priv->driver_priv;
+ struct v3d_dev *v3d = v3d_priv->v3d;
struct drm_v3d_extension __user *user_ext;
int ret;
struct drm_v3d_extension ext;
if (copy_from_user(&ext, user_ext, sizeof(ext))) {
- DRM_DEBUG("Failed to copy submit extension\n");
+ drm_dbg(&v3d->drm, "Failed to copy submit extension\n");
return -EFAULT;
}
ret = v3d_get_cpu_copy_performance_query_params(file_priv, user_ext, job);
break;
default:
- DRM_DEBUG_DRIVER("Unknown extension id: %d\n", ext.id);
+ drm_dbg(&v3d->drm, "Unknown V3D extension ID: %d\n", ext.id);
return -EINVAL;
}
if (args->flags &&
args->flags & ~(DRM_V3D_SUBMIT_CL_FLUSH_CACHE |
DRM_V3D_SUBMIT_EXTENSION)) {
- DRM_INFO("invalid flags: %d\n", args->flags);
+ drm_dbg(dev, "invalid flags: %d\n", args->flags);
return -EINVAL;
}
if (args->flags & DRM_V3D_SUBMIT_EXTENSION) {
ret = v3d_get_extensions(file_priv, args->extensions, &se, NULL);
if (ret) {
- DRM_DEBUG("Failed to get extensions.\n");
+ drm_dbg(dev, "Failed to get extensions.\n");
return ret;
}
}
- ret = v3d_job_allocate((void *)&render, sizeof(*render));
+ ret = v3d_job_allocate(v3d, (void *)&render, sizeof(*render));
if (ret)
return ret;
INIT_LIST_HEAD(&render->unref_list);
if (args->bcl_start != args->bcl_end) {
- ret = v3d_job_allocate((void *)&bin, sizeof(*bin));
+ ret = v3d_job_allocate(v3d, (void *)&bin, sizeof(*bin));
if (ret)
goto fail;
}
if (args->flags & DRM_V3D_SUBMIT_CL_FLUSH_CACHE) {
- ret = v3d_job_allocate((void *)&clean_job, sizeof(*clean_job));
+ ret = v3d_job_allocate(v3d, (void *)&clean_job, sizeof(*clean_job));
if (ret)
goto fail;
trace_v3d_submit_tfu_ioctl(&v3d->drm, args->iia);
if (args->flags && !(args->flags & DRM_V3D_SUBMIT_EXTENSION)) {
- DRM_DEBUG("invalid flags: %d\n", args->flags);
+ drm_dbg(dev, "invalid flags: %d\n", args->flags);
return -EINVAL;
}
if (args->flags & DRM_V3D_SUBMIT_EXTENSION) {
ret = v3d_get_extensions(file_priv, args->extensions, &se, NULL);
if (ret) {
- DRM_DEBUG("Failed to get extensions.\n");
+ drm_dbg(dev, "Failed to get extensions.\n");
return ret;
}
}
- ret = v3d_job_allocate((void *)&job, sizeof(*job));
+ ret = v3d_job_allocate(v3d, (void *)&job, sizeof(*job));
if (ret)
return ret;
bo = drm_gem_object_lookup(file_priv, args->bo_handles[job->base.bo_count]);
if (!bo) {
- DRM_DEBUG("Failed to look up GEM BO %d: %d\n",
- job->base.bo_count,
- args->bo_handles[job->base.bo_count]);
+ drm_dbg(dev, "Failed to look up GEM BO %d: %d\n",
+ job->base.bo_count,
+ args->bo_handles[job->base.bo_count]);
ret = -ENOENT;
goto fail;
}
return -EINVAL;
if (!v3d_has_csd(v3d)) {
- DRM_DEBUG("Attempting CSD submit on non-CSD hardware\n");
+ drm_warn(dev, "Attempting CSD submit on non-CSD hardware\n");
return -EINVAL;
}
if (args->flags && !(args->flags & DRM_V3D_SUBMIT_EXTENSION)) {
- DRM_INFO("invalid flags: %d\n", args->flags);
+ drm_dbg(dev, "invalid flags: %d\n", args->flags);
return -EINVAL;
}
if (args->flags & DRM_V3D_SUBMIT_EXTENSION) {
ret = v3d_get_extensions(file_priv, args->extensions, &se, NULL);
if (ret) {
- DRM_DEBUG("Failed to get extensions.\n");
+ drm_dbg(dev, "Failed to get extensions.\n");
return ret;
}
}
int ret;
if (args->flags && !(args->flags & DRM_V3D_SUBMIT_EXTENSION)) {
- DRM_INFO("Invalid flags: %d\n", args->flags);
+ drm_dbg(dev, "Invalid flags: %d\n", args->flags);
return -EINVAL;
}
- ret = v3d_job_allocate((void *)&cpu_job, sizeof(*cpu_job));
+ ret = v3d_job_allocate(v3d, (void *)&cpu_job, sizeof(*cpu_job));
if (ret)
return ret;
if (args->flags & DRM_V3D_SUBMIT_EXTENSION) {
ret = v3d_get_extensions(file_priv, args->extensions, &se, cpu_job);
if (ret) {
- DRM_DEBUG("Failed to get extensions.\n");
+ drm_dbg(dev, "Failed to get extensions.\n");
goto fail;
}
}
/* Every CPU job must have a CPU job user extension */
if (!cpu_job->job_type) {
- DRM_DEBUG("CPU job must have a CPU job user extension.\n");
+ drm_dbg(dev, "CPU job must have a CPU job user extension.\n");
ret = -EINVAL;
goto fail;
}
if (args->bo_handle_count != cpu_job_bo_handle_count[cpu_job->job_type]) {
- DRM_DEBUG("This CPU job was not submitted with the proper number of BOs.\n");
+ drm_dbg(dev, "This CPU job was not submitted with the proper number of BOs.\n");
ret = -EINVAL;
goto fail;
}