Loading drivers/gpu/drm/tegra/drm.c +44 −0 Original line number Diff line number Diff line Loading @@ -143,6 +143,45 @@ static void tegra_drm_preclose(struct drm_device *drm, struct drm_file *file) tegra_dc_cancel_page_flip(crtc, file); } #ifdef CONFIG_DEBUG_FS static int tegra_debugfs_framebuffers(struct seq_file *s, void *data) { struct drm_info_node *node = (struct drm_info_node *)s->private; struct drm_device *drm = node->minor->dev; struct drm_framebuffer *fb; mutex_lock(&drm->mode_config.fb_lock); list_for_each_entry(fb, &drm->mode_config.fb_list, head) { seq_printf(s, "%3d: user size: %d x %d, depth %d, %d bpp, refcount %d\n", fb->base.id, fb->width, fb->height, fb->depth, fb->bits_per_pixel, atomic_read(&fb->refcount.refcount)); } mutex_unlock(&drm->mode_config.fb_lock); return 0; } static struct drm_info_list tegra_debugfs_list[] = { { "framebuffers", tegra_debugfs_framebuffers, 0 }, }; static int tegra_debugfs_init(struct drm_minor *minor) { return drm_debugfs_create_files(tegra_debugfs_list, ARRAY_SIZE(tegra_debugfs_list), minor->debugfs_root, minor); } static void tegra_debugfs_cleanup(struct drm_minor *minor) { drm_debugfs_remove_files(tegra_debugfs_list, ARRAY_SIZE(tegra_debugfs_list), minor); } #endif struct drm_driver tegra_drm_driver = { .driver_features = DRIVER_BUS_PLATFORM | DRIVER_MODESET | DRIVER_GEM, .load = tegra_drm_load, Loading @@ -155,6 +194,11 @@ struct drm_driver tegra_drm_driver = { .enable_vblank = tegra_drm_enable_vblank, .disable_vblank = tegra_drm_disable_vblank, #if defined(CONFIG_DEBUG_FS) .debugfs_init = tegra_debugfs_init, .debugfs_cleanup = tegra_debugfs_cleanup, #endif .gem_free_object = drm_gem_cma_free_object, .gem_vm_ops = &drm_gem_cma_vm_ops, .dumb_create = drm_gem_cma_dumb_create, Loading Loading
drivers/gpu/drm/tegra/drm.c +44 −0 Original line number Diff line number Diff line Loading @@ -143,6 +143,45 @@ static void tegra_drm_preclose(struct drm_device *drm, struct drm_file *file) tegra_dc_cancel_page_flip(crtc, file); } #ifdef CONFIG_DEBUG_FS static int tegra_debugfs_framebuffers(struct seq_file *s, void *data) { struct drm_info_node *node = (struct drm_info_node *)s->private; struct drm_device *drm = node->minor->dev; struct drm_framebuffer *fb; mutex_lock(&drm->mode_config.fb_lock); list_for_each_entry(fb, &drm->mode_config.fb_list, head) { seq_printf(s, "%3d: user size: %d x %d, depth %d, %d bpp, refcount %d\n", fb->base.id, fb->width, fb->height, fb->depth, fb->bits_per_pixel, atomic_read(&fb->refcount.refcount)); } mutex_unlock(&drm->mode_config.fb_lock); return 0; } static struct drm_info_list tegra_debugfs_list[] = { { "framebuffers", tegra_debugfs_framebuffers, 0 }, }; static int tegra_debugfs_init(struct drm_minor *minor) { return drm_debugfs_create_files(tegra_debugfs_list, ARRAY_SIZE(tegra_debugfs_list), minor->debugfs_root, minor); } static void tegra_debugfs_cleanup(struct drm_minor *minor) { drm_debugfs_remove_files(tegra_debugfs_list, ARRAY_SIZE(tegra_debugfs_list), minor); } #endif struct drm_driver tegra_drm_driver = { .driver_features = DRIVER_BUS_PLATFORM | DRIVER_MODESET | DRIVER_GEM, .load = tegra_drm_load, Loading @@ -155,6 +194,11 @@ struct drm_driver tegra_drm_driver = { .enable_vblank = tegra_drm_enable_vblank, .disable_vblank = tegra_drm_disable_vblank, #if defined(CONFIG_DEBUG_FS) .debugfs_init = tegra_debugfs_init, .debugfs_cleanup = tegra_debugfs_cleanup, #endif .gem_free_object = drm_gem_cma_free_object, .gem_vm_ops = &drm_gem_cma_vm_ops, .dumb_create = drm_gem_cma_dumb_create, Loading