aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2013-07-04 14:49:44 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-07-08 16:04:46 -0400
commit34b9674c786c73e5472e8b98a729bcdde9197859 (patch)
tree68c54f67fa1ead5f05a7e93555de86b4d7637115 /drivers/gpu
parent5d536e2858ead64ea945552ec6a491f968c55888 (diff)
drm/i915: convert debugfs creation/destruction to table
At least for the common cases where we only need special file operations. The forcewake file is still rather more special. v2: Fix up the debugfs unregister code. v3: Actually squash in the right fixup. Acked-by: Ben Widawsky <ben@bwidawsk.net> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/i915_debugfs.c94
1 files changed, 30 insertions, 64 deletions
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 396387ed207a..d4138124d993 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2375,61 +2375,35 @@ static struct drm_info_list i915_debugfs_list[] = {
2375}; 2375};
2376#define I915_DEBUGFS_ENTRIES ARRAY_SIZE(i915_debugfs_list) 2376#define I915_DEBUGFS_ENTRIES ARRAY_SIZE(i915_debugfs_list)
2377 2377
2378struct i915_debugfs_files {
2379 const char *name;
2380 const struct file_operations *fops;
2381} i915_debugfs_files[] = {
2382 {"i915_wedged", &i915_wedged_fops},
2383 {"i915_max_freq", &i915_max_freq_fops},
2384 {"i915_min_freq", &i915_min_freq_fops},
2385 {"i915_cache_sharing", &i915_cache_sharing_fops},
2386 {"i915_ring_stop", &i915_ring_stop_fops},
2387 {"i915_gem_drop_caches", &i915_drop_caches_fops},
2388 {"i915_error_state", &i915_error_state_fops},
2389 {"i915_next_seqno", &i915_next_seqno_fops},
2390};
2391
2378int i915_debugfs_init(struct drm_minor *minor) 2392int i915_debugfs_init(struct drm_minor *minor)
2379{ 2393{
2380 int ret; 2394 int ret, i;
2381
2382 ret = i915_debugfs_create(minor->debugfs_root, minor,
2383 "i915_wedged",
2384 &i915_wedged_fops);
2385 if (ret)
2386 return ret;
2387 2395
2388 ret = i915_forcewake_create(minor->debugfs_root, minor); 2396 ret = i915_forcewake_create(minor->debugfs_root, minor);
2389 if (ret) 2397 if (ret)
2390 return ret; 2398 return ret;
2391 2399
2392 ret = i915_debugfs_create(minor->debugfs_root, minor, 2400 for (i = 0; i < ARRAY_SIZE(i915_debugfs_files); i++) {
2393 "i915_max_freq", 2401 ret = i915_debugfs_create(minor->debugfs_root, minor,
2394 &i915_max_freq_fops); 2402 i915_debugfs_files[i].name,
2395 if (ret) 2403 i915_debugfs_files[i].fops);
2396 return ret; 2404 if (ret)
2397 2405 return ret;
2398 ret = i915_debugfs_create(minor->debugfs_root, minor, 2406 }
2399 "i915_min_freq",
2400 &i915_min_freq_fops);
2401 if (ret)
2402 return ret;
2403
2404 ret = i915_debugfs_create(minor->debugfs_root, minor,
2405 "i915_cache_sharing",
2406 &i915_cache_sharing_fops);
2407 if (ret)
2408 return ret;
2409
2410 ret = i915_debugfs_create(minor->debugfs_root, minor,
2411 "i915_ring_stop",
2412 &i915_ring_stop_fops);
2413 if (ret)
2414 return ret;
2415
2416 ret = i915_debugfs_create(minor->debugfs_root, minor,
2417 "i915_gem_drop_caches",
2418 &i915_drop_caches_fops);
2419 if (ret)
2420 return ret;
2421
2422 ret = i915_debugfs_create(minor->debugfs_root, minor,
2423 "i915_error_state",
2424 &i915_error_state_fops);
2425 if (ret)
2426 return ret;
2427
2428 ret = i915_debugfs_create(minor->debugfs_root, minor,
2429 "i915_next_seqno",
2430 &i915_next_seqno_fops);
2431 if (ret)
2432 return ret;
2433 2407
2434 return drm_debugfs_create_files(i915_debugfs_list, 2408 return drm_debugfs_create_files(i915_debugfs_list,
2435 I915_DEBUGFS_ENTRIES, 2409 I915_DEBUGFS_ENTRIES,
@@ -2438,26 +2412,18 @@ int i915_debugfs_init(struct drm_minor *minor)
2438 2412
2439void i915_debugfs_cleanup(struct drm_minor *minor) 2413void i915_debugfs_cleanup(struct drm_minor *minor)
2440{ 2414{
2415 int i;
2416
2441 drm_debugfs_remove_files(i915_debugfs_list, 2417 drm_debugfs_remove_files(i915_debugfs_list,
2442 I915_DEBUGFS_ENTRIES, minor); 2418 I915_DEBUGFS_ENTRIES, minor);
2443 drm_debugfs_remove_files((struct drm_info_list *) &i915_forcewake_fops, 2419 drm_debugfs_remove_files((struct drm_info_list *) &i915_forcewake_fops,
2444 1, minor); 2420 1, minor);
2445 drm_debugfs_remove_files((struct drm_info_list *) &i915_wedged_fops, 2421 for (i = 0; i < ARRAY_SIZE(i915_debugfs_files); i++) {
2446 1, minor); 2422 struct drm_info_list *info_list =
2447 drm_debugfs_remove_files((struct drm_info_list *) &i915_max_freq_fops, 2423 (struct drm_info_list *) i915_debugfs_files[i].fops;
2448 1, minor); 2424
2449 drm_debugfs_remove_files((struct drm_info_list *) &i915_min_freq_fops, 2425 drm_debugfs_remove_files(info_list, 1, minor);
2450 1, minor); 2426 }
2451 drm_debugfs_remove_files((struct drm_info_list *) &i915_cache_sharing_fops,
2452 1, minor);
2453 drm_debugfs_remove_files((struct drm_info_list *) &i915_drop_caches_fops,
2454 1, minor);
2455 drm_debugfs_remove_files((struct drm_info_list *) &i915_ring_stop_fops,
2456 1, minor);
2457 drm_debugfs_remove_files((struct drm_info_list *) &i915_error_state_fops,
2458 1, minor);
2459 drm_debugfs_remove_files((struct drm_info_list *) &i915_next_seqno_fops,
2460 1, minor);
2461} 2427}
2462 2428
2463#endif /* CONFIG_DEBUG_FS */ 2429#endif /* CONFIG_DEBUG_FS */