Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/arcpgu: Opt in debugfs

This change adopts debugfs usage for outputting useful data.
As of today we print:
* Mode and real HW clock values
* Standard FB info

Code is heavily borrowed from ARM's HDLCD thus adding Liviu in Cc.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Reviewed-by: Liviu Dudau <Liviu.Dudau@arm.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: David Airlie <airlied@linux.ie>
Cc: Jose Abreu <joabreu@synopsys.com>

authored by

Alexey Brodkin and committed by
Alexey Brodkin
13eee770 dd24df65

+29
+29
drivers/gpu/drm/arc/arcpgu_drv.c
··· 160 160 return 0; 161 161 } 162 162 163 + #ifdef CONFIG_DEBUG_FS 164 + static int arcpgu_show_pxlclock(struct seq_file *m, void *arg) 165 + { 166 + struct drm_info_node *node = (struct drm_info_node *)m->private; 167 + struct drm_device *drm = node->minor->dev; 168 + struct arcpgu_drm_private *arcpgu = drm->dev_private; 169 + unsigned long clkrate = clk_get_rate(arcpgu->clk); 170 + unsigned long mode_clock = arcpgu->crtc.mode.crtc_clock * 1000; 171 + 172 + seq_printf(m, "hw : %lu\n", clkrate); 173 + seq_printf(m, "mode: %lu\n", mode_clock); 174 + return 0; 175 + } 176 + 177 + static struct drm_info_list arcpgu_debugfs_list[] = { 178 + { "clocks", arcpgu_show_pxlclock, 0 }, 179 + { "fb", drm_fb_cma_debugfs_show, 0 }, 180 + }; 181 + 182 + static int arcpgu_debugfs_init(struct drm_minor *minor) 183 + { 184 + return drm_debugfs_create_files(arcpgu_debugfs_list, 185 + ARRAY_SIZE(arcpgu_debugfs_list), minor->debugfs_root, minor); 186 + } 187 + #endif 188 + 163 189 static struct drm_driver arcpgu_drm_driver = { 164 190 .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME | 165 191 DRIVER_ATOMIC, ··· 211 185 .gem_prime_vmap = drm_gem_cma_prime_vmap, 212 186 .gem_prime_vunmap = drm_gem_cma_prime_vunmap, 213 187 .gem_prime_mmap = drm_gem_cma_prime_mmap, 188 + #ifdef CONFIG_DEBUG_FS 189 + .debugfs_init = arcpgu_debugfs_init, 190 + #endif 214 191 }; 215 192 216 193 static int arcpgu_probe(struct platform_device *pdev)