diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-07-04 14:49:44 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-07-08 16:04:46 -0400 |
commit | 34b9674c786c73e5472e8b98a729bcdde9197859 (patch) | |
tree | 68c54f67fa1ead5f05a7e93555de86b4d7637115 /drivers/gpu | |
parent | 5d536e2858ead64ea945552ec6a491f968c55888 (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.c | 94 |
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 | ||
2378 | struct 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 | |||
2378 | int i915_debugfs_init(struct drm_minor *minor) | 2392 | int 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 | ||
2439 | void i915_debugfs_cleanup(struct drm_minor *minor) | 2413 | void 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 */ |