drivers/gpu/drm/qxl/qxl_debugfs.c

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/qxl/qxl_debugfs.c

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/qxl/qxl_debugfs.c
Extension
.c
Size
3845 bytes
Lines
128
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

dma_resv_for_each_fence_unlocked(&cursor, fence) {
			if (dma_resv_iter_is_restarted(&cursor))
				rel = 0;
			++rel;
		}

		seq_printf(m, "size %ld, pc %d, num releases %d\n",
			   (unsigned long)bo->tbo.base.size,
			   bo->tbo.pin_count, rel);
	}
	return 0;
}

static struct drm_info_list qxl_debugfs_list[] = {
	{ "irq_received", qxl_debugfs_irq_received, 0, NULL },
	{ "qxl_buffers", qxl_debugfs_buffers_info, 0, NULL },
};
#define QXL_DEBUGFS_ENTRIES ARRAY_SIZE(qxl_debugfs_list)
#endif

void
qxl_debugfs_init(struct drm_minor *minor)
{
#if defined(CONFIG_DEBUG_FS)
	struct qxl_device *dev = to_qxl(minor->dev);

	drm_debugfs_create_files(qxl_debugfs_list, QXL_DEBUGFS_ENTRIES,
				 minor->debugfs_root, minor);

	qxl_ttm_debugfs_init(dev);
#endif
}

void qxl_debugfs_add_files(struct qxl_device *qdev,
			   struct drm_info_list *files,
			   unsigned int nfiles)
{
	unsigned int i;

	for (i = 0; i < qdev->debugfs_count; i++) {
		if (qdev->debugfs[i].files == files) {
			/* Already registered */
			return;
		}
	}

	i = qdev->debugfs_count + 1;
	if (i > QXL_DEBUGFS_MAX_COMPONENTS) {
		DRM_ERROR("Reached maximum number of debugfs components.\n");
		DRM_ERROR("Report so we increase QXL_DEBUGFS_MAX_COMPONENTS.\n");
		return;
	}
	qdev->debugfs[qdev->debugfs_count].files = files;
	qdev->debugfs[qdev->debugfs_count].num_files = nfiles;
	qdev->debugfs_count = i;
#if defined(CONFIG_DEBUG_FS)
	drm_debugfs_create_files(files, nfiles,
				 qdev->ddev.primary->debugfs_root,
				 qdev->ddev.primary);
#endif
}

Annotation

Implementation Notes