drivers/gpu/drm/radeon/radeon_ib.c

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/radeon/radeon_ib.c

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/radeon/radeon_ib.c
Extension
.c
Size
8676 bytes
Lines
318
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

if (r) {
			radeon_fence_driver_force_completion(rdev, i);
			ring->ready = false;
			rdev->needs_reset = false;

			if (i == RADEON_RING_TYPE_GFX_INDEX) {
				/* oh, oh, that's really bad */
				DRM_ERROR("radeon: failed testing IB on GFX ring (%d).\n", r);
				rdev->accel_working = false;
				return r;

			} else {
				/* still not good, but we can live with it */
				DRM_ERROR("radeon: failed testing IB on ring %d (%d).\n", i, r);
			}
		}
	}
	return 0;
}

/*
 * Debugfs info
 */
#if defined(CONFIG_DEBUG_FS)

static int radeon_debugfs_sa_info_show(struct seq_file *m, void *unused)
{
	struct radeon_device *rdev = m->private;

	radeon_sa_bo_dump_debug_info(&rdev->ring_tmp_bo, m);

	return 0;

}

DEFINE_SHOW_ATTRIBUTE(radeon_debugfs_sa_info);

#endif

static void radeon_debugfs_sa_init(struct radeon_device *rdev)
{
#if defined(CONFIG_DEBUG_FS)
	struct dentry *root = rdev_to_drm(rdev)->primary->debugfs_root;

	debugfs_create_file("radeon_sa_info", 0444, root, rdev,
			    &radeon_debugfs_sa_info_fops);
#endif
}

Annotation

Implementation Notes