1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright �� 2014 Broadcom 4 */ 5 6#include <drm/drm_drv.h> 7 8#include <linux/seq_file.h> 9#include <linux/circ_buf.h> 10#include <linux/ctype.h> 11#include <linux/debugfs.h> 12#include <linux/platform_device.h> 13 14#include "vc4_drv.h" 15#include "vc4_regs.h" 16 17/* 18 * Called at drm_dev_register() time on each of the minors registered 19 * by the DRM device, to attach the debugfs files. 20 */ 21void 22vc4_debugfs_init(struct drm_minor *minor) 23{ 24 struct vc4_dev *vc4 = to_vc4_dev(minor->dev); 25 struct drm_device *drm = &vc4->base; 26 27 drm_WARN_ON(drm, vc4_hvs_debugfs_init(minor)); 28 29 if (vc4->v3d) { 30 drm_WARN_ON(drm, vc4_bo_debugfs_init(minor)); 31 drm_WARN_ON(drm, vc4_v3d_debugfs_init(minor)); 32 } 33} 34 35static int vc4_debugfs_regset32(struct seq_file *m, void *unused) 36{ 37 struct drm_debugfs_entry *entry = m->private; 38 struct drm_device *drm = entry->dev; 39 struct debugfs_regset32 *regset = entry->file.data; 40 struct drm_printer p = drm_seq_file_printer(m); 41 int idx; 42 43 if (!drm_dev_enter(drm, &idx)) 44 return -ENODEV; 45 46 drm_print_regset32(&p, regset); 47 48 drm_dev_exit(idx); 49 50 return 0; 51} 52 53void vc4_debugfs_add_regset32(struct drm_device *drm, 54 const char *name, 55 struct debugfs_regset32 *regset) 56{ 57 drm_debugfs_add_file(drm, name, vc4_debugfs_regset32, regset); 58} 59