All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file
@ 2017-11-07 19:13 Noralf Trønnes
  2017-11-07 19:13 ` [PATCH v5 01/12] drm/vma-manager: drm_vma_node_start() constify argument Noralf Trønnes
                   ` (12 more replies)
  0 siblings, 13 replies; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-07 19:13 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, abrodkin, tomi.valkeinen, hoegsberg, jsarha,
	liviu.dudau, laurent.pinchart

This patchset adds a debugfs file that prints info about the
framebuffers.

Changes since version 4:
- Add framebuffer debugfs file: Fix printk formats and add info about
  indent argument in gem_print_info callback docs (Laurent)
- Turn to_drm_gem_cma_obj() into a macro (Laurent)
- drm_gem_cma_print_info(): Make the cma_obj variable a const since it
  is derived from the obj variable which is a const.

Changes since version 3:
- Applied patch: drm/gem: Remove trailing whitespace
- Turn drm_printf_indent() into a macro (Ville)
- drm_printf_indent() add overflow marker (Jani)
- Converted arc, hdlcd, tilcdc and removed drm_fb_cma_debugfs_show()

Noralf Trønnes (12):
  drm/vma-manager: drm_vma_node_start() constify argument
  drm/framebuffer: drm_framebuffer_read_refcount() constify argument
  drm/print: Add drm_printf_indent()
  drm/framebuffer: Add framebuffer debugfs file
  drm/atomic: Use drm_framebuffer_print_info()
  drm/cma-helper: Turn to_drm_gem_cma_obj() into a macro
  drm/cma-helper: Add drm_gem_cma_print_info()
  drm/arc: Use drm_gem_cma_print_info()
  drm/arm/hdlcd: Use drm_gem_cma_print_info()
  drm/tilcdc: Use drm_gem_cma_print_info()
  drm/tinydrm: Use drm_gem_cma_print_info()
  drm/cma-helper: Remove drm_fb_cma_debugfs_show()

 drivers/gpu/drm/arc/arcpgu_drv.c     |  2 +-
 drivers/gpu/drm/arm/hdlcd_drv.c      |  2 +-
 drivers/gpu/drm/drm_atomic.c         | 18 ++---------
 drivers/gpu/drm/drm_debugfs.c        |  6 ++++
 drivers/gpu/drm/drm_fb_cma_helper.c  | 37 ----------------------
 drivers/gpu/drm/drm_framebuffer.c    | 59 ++++++++++++++++++++++++++++++++++++
 drivers/gpu/drm/drm_gem.c            | 17 +++++++++++
 drivers/gpu/drm/drm_gem_cma_helper.c | 31 ++++++++-----------
 drivers/gpu/drm/drm_internal.h       |  7 +++++
 drivers/gpu/drm/tilcdc/tilcdc_drv.c  |  2 +-
 drivers/gpu/drm/tinydrm/mipi-dbi.c   |  8 +----
 include/drm/drm_drv.h                | 15 +++++++++
 include/drm/drm_fb_cma_helper.h      |  6 ----
 include/drm/drm_framebuffer.h        |  2 +-
 include/drm/drm_gem_cma_helper.h     | 12 +++-----
 include/drm/drm_print.h              |  8 +++++
 include/drm/drm_vma_manager.h        |  2 +-
 include/drm/tinydrm/tinydrm.h        |  1 +
 18 files changed, 138 insertions(+), 97 deletions(-)

--
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH v5 01/12] drm/vma-manager: drm_vma_node_start() constify argument
  2017-11-07 19:13 [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
@ 2017-11-07 19:13 ` Noralf Trønnes
  2017-11-07 19:13 ` [PATCH v5 02/12] drm/framebuffer: drm_framebuffer_read_refcount() " Noralf Trønnes
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-07 19:13 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, abrodkin, tomi.valkeinen, hoegsberg, jsarha,
	liviu.dudau, laurent.pinchart

Constify argument so functions calling into this take a const argument.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 include/drm/drm_vma_manager.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/drm/drm_vma_manager.h b/include/drm/drm_vma_manager.h
index d84d52f6d2b1..8758df94e9a0 100644
--- a/include/drm/drm_vma_manager.h
+++ b/include/drm/drm_vma_manager.h
@@ -152,7 +152,7 @@ static inline void drm_vma_node_reset(struct drm_vma_offset_node *node)
  * Start address of @node for page-based addressing. 0 if the node does not
  * have an offset allocated.
  */
-static inline unsigned long drm_vma_node_start(struct drm_vma_offset_node *node)
+static inline unsigned long drm_vma_node_start(const struct drm_vma_offset_node *node)
 {
 	return node->vm_node.start;
 }
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH v5 02/12] drm/framebuffer: drm_framebuffer_read_refcount() constify argument
  2017-11-07 19:13 [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
  2017-11-07 19:13 ` [PATCH v5 01/12] drm/vma-manager: drm_vma_node_start() constify argument Noralf Trønnes
@ 2017-11-07 19:13 ` Noralf Trønnes
  2017-11-07 19:13 ` [PATCH v5 03/12] drm/print: Add drm_printf_indent() Noralf Trønnes
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-07 19:13 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, abrodkin, tomi.valkeinen, hoegsberg, jsarha,
	liviu.dudau, laurent.pinchart

Constify argument so functions calling into this take a const argument.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 include/drm/drm_framebuffer.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/drm/drm_framebuffer.h b/include/drm/drm_framebuffer.h
index b6996ddb19d6..6cce22e1a0f2 100644
--- a/include/drm/drm_framebuffer.h
+++ b/include/drm/drm_framebuffer.h
@@ -263,7 +263,7 @@ static inline void drm_framebuffer_unreference(struct drm_framebuffer *fb)
  *
  * This functions returns the framebuffer's reference count.
  */
-static inline uint32_t drm_framebuffer_read_refcount(struct drm_framebuffer *fb)
+static inline uint32_t drm_framebuffer_read_refcount(const struct drm_framebuffer *fb)
 {
 	return kref_read(&fb->base.refcount);
 }
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH v5 03/12] drm/print: Add drm_printf_indent()
  2017-11-07 19:13 [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
  2017-11-07 19:13 ` [PATCH v5 01/12] drm/vma-manager: drm_vma_node_start() constify argument Noralf Trønnes
  2017-11-07 19:13 ` [PATCH v5 02/12] drm/framebuffer: drm_framebuffer_read_refcount() " Noralf Trønnes
@ 2017-11-07 19:13 ` Noralf Trønnes
  2017-11-07 19:13 ` [PATCH v5 04/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-07 19:13 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, abrodkin, tomi.valkeinen, hoegsberg, jsarha,
	liviu.dudau, laurent.pinchart

Add drm_printf_indent() that adds tab indentation according to argument.
Indentation overflow is marked with an X.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 include/drm/drm_print.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
index 7b9c86a6ca3e..7dbfdebec973 100644
--- a/include/drm/drm_print.h
+++ b/include/drm/drm_print.h
@@ -80,6 +80,14 @@ void __drm_printfn_debug(struct drm_printer *p, struct va_format *vaf);
 __printf(2, 3)
 void drm_printf(struct drm_printer *p, const char *f, ...);
 
+/**
+ * drm_printf_indent - Print to a &drm_printer stream with indentation
+ * @printer: DRM printer
+ * @indent: Tab indentation level (max 5)
+ * @fmt: Format string
+ */
+#define drm_printf_indent(printer, indent, fmt, ...) \
+	drm_printf((printer), "%.*s" fmt, (indent), "\t\t\t\t\tX", ##__VA_ARGS__)
 
 /**
  * drm_seq_file_printer - construct a &drm_printer that outputs to &seq_file
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH v5 04/12] drm/framebuffer: Add framebuffer debugfs file
  2017-11-07 19:13 [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
                   ` (2 preceding siblings ...)
  2017-11-07 19:13 ` [PATCH v5 03/12] drm/print: Add drm_printf_indent() Noralf Trønnes
@ 2017-11-07 19:13 ` Noralf Trønnes
  2017-11-11 18:55   ` Chris Wilson
  2017-11-07 19:13 ` [PATCH v5 05/12] drm/atomic: Use drm_framebuffer_print_info() Noralf Trønnes
                   ` (8 subsequent siblings)
  12 siblings, 1 reply; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-07 19:13 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, abrodkin, tomi.valkeinen, hoegsberg, jsarha,
	liviu.dudau, laurent.pinchart

Add debugfs file that dumps info about the framebuffers and its planes.
Also dump info about any connected gem object(s).

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/gpu/drm/drm_debugfs.c     |  6 ++++
 drivers/gpu/drm/drm_framebuffer.c | 59 +++++++++++++++++++++++++++++++++++++++
 drivers/gpu/drm/drm_gem.c         | 17 +++++++++++
 drivers/gpu/drm/drm_internal.h    |  7 +++++
 include/drm/drm_drv.h             | 15 ++++++++++
 5 files changed, 104 insertions(+)

diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
index c1807d5754b2..550f29de6c1f 100644
--- a/drivers/gpu/drm/drm_debugfs.c
+++ b/drivers/gpu/drm/drm_debugfs.c
@@ -158,6 +158,12 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id,
 		}
 	}
 
+	ret = drm_framebuffer_debugfs_init(minor);
+	if (ret) {
+		DRM_ERROR("Failed to create framebuffer debugfs file\n");
+		return ret;
+	}
+
 	if (dev->driver->debugfs_init) {
 		ret = dev->driver->debugfs_init(minor);
 		if (ret) {
diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c
index 40e6565105ac..c421dc01b334 100644
--- a/drivers/gpu/drm/drm_framebuffer.c
+++ b/drivers/gpu/drm/drm_framebuffer.c
@@ -25,7 +25,9 @@
 #include <drm/drm_auth.h>
 #include <drm/drm_framebuffer.h>
 #include <drm/drm_atomic.h>
+#include <drm/drm_print.h>
 
+#include "drm_internal.h"
 #include "drm_crtc_internal.h"
 
 /**
@@ -956,3 +958,60 @@ int drm_framebuffer_plane_height(int height,
 	return fb_plane_height(height, fb->format, plane);
 }
 EXPORT_SYMBOL(drm_framebuffer_plane_height);
+
+void drm_framebuffer_print_info(struct drm_printer *p, unsigned int indent,
+				const struct drm_framebuffer *fb)
+{
+	struct drm_format_name_buf format_name;
+	unsigned int i;
+
+	drm_printf_indent(p, indent, "refcount=%u\n",
+			  drm_framebuffer_read_refcount(fb));
+	drm_printf_indent(p, indent, "format=%s\n",
+			  drm_get_format_name(fb->format->format, &format_name));
+	drm_printf_indent(p, indent, "modifier=0x%llx\n", fb->modifier);
+	drm_printf_indent(p, indent, "size=%ux%u\n", fb->width, fb->height);
+	drm_printf_indent(p, indent, "layers:\n");
+
+	for (i = 0; i < fb->format->num_planes; i++) {
+		drm_printf_indent(p, indent + 1, "size[%u]=%dx%d\n", i,
+				  drm_framebuffer_plane_width(fb->width, fb, i),
+				  drm_framebuffer_plane_height(fb->height, fb, i));
+		drm_printf_indent(p, indent + 1, "pitch[%u]=%u\n", i, fb->pitches[i]);
+		drm_printf_indent(p, indent + 1, "offset[%u]=%u\n", i, fb->offsets[i]);
+		drm_printf_indent(p, indent + 1, "obj[%u]:%s\n", i,
+				  fb->obj[i] ? "" : "(null)");
+		if (fb->obj[i])
+			drm_gem_print_info(p, indent + 2, fb->obj[i]);
+	}
+}
+
+#ifdef CONFIG_DEBUG_FS
+static int drm_framebuffer_info(struct seq_file *m, void *data)
+{
+	struct drm_info_node *node = m->private;
+	struct drm_device *dev = node->minor->dev;
+	struct drm_printer p = drm_seq_file_printer(m);
+	struct drm_framebuffer *fb;
+
+	mutex_lock(&dev->mode_config.fb_lock);
+	drm_for_each_fb(fb, dev) {
+		drm_printf(&p, "framebuffer[%u]:\n", fb->base.id);
+		drm_framebuffer_print_info(&p, 1, fb);
+	}
+	mutex_unlock(&dev->mode_config.fb_lock);
+
+	return 0;
+}
+
+static const struct drm_info_list drm_framebuffer_debugfs_list[] = {
+	{ "framebuffer", drm_framebuffer_info, 0 },
+};
+
+int drm_framebuffer_debugfs_init(struct drm_minor *minor)
+{
+	return drm_debugfs_create_files(drm_framebuffer_debugfs_list,
+				ARRAY_SIZE(drm_framebuffer_debugfs_list),
+				minor->debugfs_root, minor);
+}
+#endif
diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
index 4c84b23d37cc..01f8d9481211 100644
--- a/drivers/gpu/drm/drm_gem.c
+++ b/drivers/gpu/drm/drm_gem.c
@@ -40,6 +40,7 @@
 #include <drm/drmP.h>
 #include <drm/drm_vma_manager.h>
 #include <drm/drm_gem.h>
+#include <drm/drm_print.h>
 #include "drm_internal.h"
 
 /** @file drm_gem.c
@@ -1040,3 +1041,19 @@ int drm_gem_mmap(struct file *filp, struct vm_area_struct *vma)
 	return ret;
 }
 EXPORT_SYMBOL(drm_gem_mmap);
+
+void drm_gem_print_info(struct drm_printer *p, unsigned int indent,
+			const struct drm_gem_object *obj)
+{
+	drm_printf_indent(p, indent, "name=%d\n", obj->name);
+	drm_printf_indent(p, indent, "refcount=%u\n",
+			  kref_read(&obj->refcount));
+	drm_printf_indent(p, indent, "start=%08lx\n",
+			  drm_vma_node_start(&obj->vma_node));
+	drm_printf_indent(p, indent, "size=%zu\n", obj->size);
+	drm_printf_indent(p, indent, "imported=%s\n",
+			  obj->import_attach ? "yes" : "no");
+
+	if (obj->dev->driver->gem_print_info)
+		obj->dev->driver->gem_print_info(p, indent, obj);
+}
diff --git a/drivers/gpu/drm/drm_internal.h b/drivers/gpu/drm/drm_internal.h
index fbc3f308fa19..430ce3fe4f3b 100644
--- a/drivers/gpu/drm/drm_internal.h
+++ b/drivers/gpu/drm/drm_internal.h
@@ -106,6 +106,8 @@ int drm_gem_open_ioctl(struct drm_device *dev, void *data,
 		       struct drm_file *file_priv);
 void drm_gem_open(struct drm_device *dev, struct drm_file *file_private);
 void drm_gem_release(struct drm_device *dev, struct drm_file *file_private);
+void drm_gem_print_info(struct drm_printer *p, unsigned int indent,
+			const struct drm_gem_object *obj);
 
 /* drm_debugfs.c drm_debugfs_crc.c */
 #if defined(CONFIG_DEBUG_FS)
@@ -173,3 +175,8 @@ int drm_syncobj_reset_ioctl(struct drm_device *dev, void *data,
 			    struct drm_file *file_private);
 int drm_syncobj_signal_ioctl(struct drm_device *dev, void *data,
 			     struct drm_file *file_private);
+
+/* drm_framebuffer.c */
+void drm_framebuffer_print_info(struct drm_printer *p, unsigned int indent,
+				const struct drm_framebuffer *fb);
+int drm_framebuffer_debugfs_init(struct drm_minor *minor);
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index 0e90ef24214b..1536e5bddeaf 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -39,6 +39,7 @@ struct drm_minor;
 struct dma_buf_attachment;
 struct drm_display_mode;
 struct drm_mode_create_dumb;
+struct drm_printer;
 
 /* driver capabilities and requirements mask */
 #define DRIVER_USE_AGP			0x1
@@ -428,6 +429,20 @@ struct drm_driver {
 	 */
 	void (*gem_close_object) (struct drm_gem_object *, struct drm_file *);
 
+	/**
+	 * @gem_print_info:
+	 *
+	 * If driver subclasses struct &drm_gem_object, it can implement this
+	 * optional hook for printing additional driver specific info.
+	 *
+	 * drm_printf_indent() should be used in the callback passing it the
+	 * indent argument.
+	 *
+	 * This callback is called from drm_gem_print_info().
+	 */
+	void (*gem_print_info)(struct drm_printer *p, unsigned int indent,
+			       const struct drm_gem_object *obj);
+
 	/**
 	 * @gem_create_object: constructor for gem objects
 	 *
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH v5 05/12] drm/atomic: Use drm_framebuffer_print_info()
  2017-11-07 19:13 [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
                   ` (3 preceding siblings ...)
  2017-11-07 19:13 ` [PATCH v5 04/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
@ 2017-11-07 19:13 ` Noralf Trønnes
  2017-11-07 19:13 ` [PATCH v5 06/12] drm/cma-helper: Turn to_drm_gem_cma_obj() into a macro Noralf Trønnes
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-07 19:13 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, abrodkin, tomi.valkeinen, hoegsberg, jsarha,
	liviu.dudau, laurent.pinchart

Use drm_framebuffer_print_info() to print framebuffer info in
drm_atomic_plane_print_state(). This will give optional GEM info as well.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/gpu/drm/drm_atomic.c | 18 +++---------------
 1 file changed, 3 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index fd96c3dad2fb..bf8ca515c958 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -33,6 +33,7 @@
 #include <linux/sync_file.h>
 
 #include "drm_crtc_internal.h"
+#include "drm_internal.h"
 
 void __drm_crtc_commit_free(struct kref *kref)
 {
@@ -935,21 +936,8 @@ static void drm_atomic_plane_print_state(struct drm_printer *p,
 	drm_printf(p, "plane[%u]: %s\n", plane->base.id, plane->name);
 	drm_printf(p, "\tcrtc=%s\n", state->crtc ? state->crtc->name : "(null)");
 	drm_printf(p, "\tfb=%u\n", state->fb ? state->fb->base.id : 0);
-	if (state->fb) {
-		struct drm_framebuffer *fb = state->fb;
-		int i, n = fb->format->num_planes;
-		struct drm_format_name_buf format_name;
-
-		drm_printf(p, "\t\tformat=%s\n",
-		              drm_get_format_name(fb->format->format, &format_name));
-		drm_printf(p, "\t\t\tmodifier=0x%llx\n", fb->modifier);
-		drm_printf(p, "\t\tsize=%dx%d\n", fb->width, fb->height);
-		drm_printf(p, "\t\tlayers:\n");
-		for (i = 0; i < n; i++) {
-			drm_printf(p, "\t\t\tpitch[%d]=%u\n", i, fb->pitches[i]);
-			drm_printf(p, "\t\t\toffset[%d]=%u\n", i, fb->offsets[i]);
-		}
-	}
+	if (state->fb)
+		drm_framebuffer_print_info(p, 2, state->fb);
 	drm_printf(p, "\tcrtc-pos=" DRM_RECT_FMT "\n", DRM_RECT_ARG(&dest));
 	drm_printf(p, "\tsrc-pos=" DRM_RECT_FP_FMT "\n", DRM_RECT_FP_ARG(&src));
 	drm_printf(p, "\trotation=%x\n", state->rotation);
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH v5 06/12] drm/cma-helper: Turn to_drm_gem_cma_obj() into a macro
  2017-11-07 19:13 [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
                   ` (4 preceding siblings ...)
  2017-11-07 19:13 ` [PATCH v5 05/12] drm/atomic: Use drm_framebuffer_print_info() Noralf Trønnes
@ 2017-11-07 19:13 ` Noralf Trønnes
  2017-11-08  6:21   ` Laurent Pinchart
  2017-11-07 19:13 ` [PATCH v5 07/12] drm/cma-helper: Add drm_gem_cma_print_info() Noralf Trønnes
                   ` (6 subsequent siblings)
  12 siblings, 1 reply; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-07 19:13 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, abrodkin, tomi.valkeinen, hoegsberg, jsarha,
	liviu.dudau, laurent.pinchart

This allows the argument to be a const.

The other option was to keep it an inline function and make the argument
a const:

static inline struct drm_gem_cma_object *
to_drm_gem_cma_obj(const struct drm_gem_object *gem_obj)
{
	return container_of(gem_obj, struct drm_gem_cma_object, base);
}

This will happily return a non-const pointer to the drm_gem_cma_object
based on a const pointer to the contained drm_gem_object, thus creating
const-safety problems.

There was an attempt to fix the problem in the container_of() macro
itself (see https://lkml.org/lkml/2017/5/19/381) but the patch seems to
have fallen through the cracks. It would require turning this inline
function into a macro.

By making this a macro now, we will benefit from a possible future
enhancement of container_of(). We don't loose type checking by doing
this, container_of() takes care of that.

Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
---
 include/drm/drm_gem_cma_helper.h | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/include/drm/drm_gem_cma_helper.h b/include/drm/drm_gem_cma_helper.h
index 58a739bf15f1..7a3dcf0cf289 100644
--- a/include/drm/drm_gem_cma_helper.h
+++ b/include/drm/drm_gem_cma_helper.h
@@ -20,11 +20,8 @@ struct drm_gem_cma_object {
 	void *vaddr;
 };
 
-static inline struct drm_gem_cma_object *
-to_drm_gem_cma_obj(struct drm_gem_object *gem_obj)
-{
-	return container_of(gem_obj, struct drm_gem_cma_object, base);
-}
+#define to_drm_gem_cma_obj(gem_obj) \
+	container_of(gem_obj, struct drm_gem_cma_object, base)
 
 #ifndef CONFIG_MMU
 #define DRM_GEM_CMA_UNMAPPED_AREA_FOPS \
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH v5 07/12] drm/cma-helper: Add drm_gem_cma_print_info()
  2017-11-07 19:13 [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
                   ` (5 preceding siblings ...)
  2017-11-07 19:13 ` [PATCH v5 06/12] drm/cma-helper: Turn to_drm_gem_cma_obj() into a macro Noralf Trønnes
@ 2017-11-07 19:13 ` Noralf Trønnes
  2017-11-07 19:13 ` [PATCH v5 08/12] drm/arc: Use drm_gem_cma_print_info() Noralf Trønnes
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-07 19:13 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, abrodkin, tomi.valkeinen, hoegsberg, jsarha,
	liviu.dudau, laurent.pinchart

Add drm_gem_cma_print_info() for debugfs printing
struct drm_gem_cma_object specific info.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
---
 drivers/gpu/drm/drm_gem_cma_helper.c | 19 +++++++++++++++++++
 include/drm/drm_gem_cma_helper.h     |  3 +++
 2 files changed, 22 insertions(+)

diff --git a/drivers/gpu/drm/drm_gem_cma_helper.c b/drivers/gpu/drm/drm_gem_cma_helper.c
index 020e7668dfab..29f7b0fd3ad4 100644
--- a/drivers/gpu/drm/drm_gem_cma_helper.c
+++ b/drivers/gpu/drm/drm_gem_cma_helper.c
@@ -423,6 +423,25 @@ void drm_gem_cma_describe(struct drm_gem_cma_object *cma_obj,
 EXPORT_SYMBOL_GPL(drm_gem_cma_describe);
 #endif
 
+/**
+ * drm_gem_cma_print_info() - Print &drm_gem_cma_object info for debugfs
+ * @p: DRM printer
+ * @indent: Tab indentation level
+ * @gem: GEM object
+ *
+ * This function can be used as the &drm_driver->gem_print_info callback.
+ * It prints paddr and vaddr for use in e.g. debugfs output.
+ */
+void drm_gem_cma_print_info(struct drm_printer *p, unsigned int indent,
+			    const struct drm_gem_object *obj)
+{
+	const struct drm_gem_cma_object *cma_obj = to_drm_gem_cma_obj(obj);
+
+	drm_printf_indent(p, indent, "paddr=%pad\n", &cma_obj->paddr);
+	drm_printf_indent(p, indent, "vaddr=%p\n", cma_obj->vaddr);
+}
+EXPORT_SYMBOL(drm_gem_cma_print_info);
+
 /**
  * drm_gem_cma_prime_get_sg_table - provide a scatter/gather table of pinned
  *     pages for a CMA GEM object
diff --git a/include/drm/drm_gem_cma_helper.h b/include/drm/drm_gem_cma_helper.h
index 7a3dcf0cf289..40435f3480e5 100644
--- a/include/drm/drm_gem_cma_helper.h
+++ b/include/drm/drm_gem_cma_helper.h
@@ -91,6 +91,9 @@ unsigned long drm_gem_cma_get_unmapped_area(struct file *filp,
 void drm_gem_cma_describe(struct drm_gem_cma_object *obj, struct seq_file *m);
 #endif
 
+void drm_gem_cma_print_info(struct drm_printer *p, unsigned int indent,
+			    const struct drm_gem_object *obj);
+
 struct sg_table *drm_gem_cma_prime_get_sg_table(struct drm_gem_object *obj);
 struct drm_gem_object *
 drm_gem_cma_prime_import_sg_table(struct drm_device *dev,
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH v5 08/12] drm/arc: Use drm_gem_cma_print_info()
  2017-11-07 19:13 [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
                   ` (6 preceding siblings ...)
  2017-11-07 19:13 ` [PATCH v5 07/12] drm/cma-helper: Add drm_gem_cma_print_info() Noralf Trønnes
@ 2017-11-07 19:13 ` Noralf Trønnes
  2017-11-07 19:31   ` Alexey Brodkin
  2017-11-07 19:13 ` [PATCH v5 09/12] drm/arm/hdlcd: " Noralf Trønnes
                   ` (4 subsequent siblings)
  12 siblings, 1 reply; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-07 19:13 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, abrodkin, tomi.valkeinen, hoegsberg, jsarha,
	liviu.dudau, laurent.pinchart

There is a new core debugfs file that prints fb/gem info:
<debugfs>/dri/<n>/framebuffer

Use drm_gem_cma_print_info() to provide info to that output instead
of using drm_fb_cma_debugfs_show().

Cc: Alexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/gpu/drm/arc/arcpgu_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c
index 074fd4ea7ece..f067de4e1e82 100644
--- a/drivers/gpu/drm/arc/arcpgu_drv.c
+++ b/drivers/gpu/drm/arc/arcpgu_drv.c
@@ -155,7 +155,6 @@ static int arcpgu_show_pxlclock(struct seq_file *m, void *arg)
 
 static struct drm_info_list arcpgu_debugfs_list[] = {
 	{ "clocks", arcpgu_show_pxlclock, 0 },
-	{ "fb", drm_fb_cma_debugfs_show, 0 },
 };
 
 static int arcpgu_debugfs_init(struct drm_minor *minor)
@@ -180,6 +179,7 @@ static struct drm_driver arcpgu_drm_driver = {
 	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
 	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
+	.gem_print_info = drm_gem_cma_print_info,
 	.gem_vm_ops = &drm_gem_cma_vm_ops,
 	.gem_prime_export = drm_gem_prime_export,
 	.gem_prime_import = drm_gem_prime_import,
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH v5 09/12] drm/arm/hdlcd: Use drm_gem_cma_print_info()
  2017-11-07 19:13 [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
                   ` (7 preceding siblings ...)
  2017-11-07 19:13 ` [PATCH v5 08/12] drm/arc: Use drm_gem_cma_print_info() Noralf Trønnes
@ 2017-11-07 19:13 ` Noralf Trønnes
  2017-11-07 19:13 ` [PATCH v5 10/12] drm/tilcdc: " Noralf Trønnes
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-07 19:13 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, abrodkin, tomi.valkeinen, hoegsberg, jsarha,
	liviu.dudau, laurent.pinchart

There is a new core debugfs file that prints fb/gem info:
<debugfs>/dri/<n>/framebuffer

Use drm_gem_cma_print_info() to provide info to that output instead
of using drm_fb_cma_debugfs_show().

Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Brian Starkey <brian.starkey@arm.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Liviu Dudau <liviu.dudau@arm.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/gpu/drm/arm/hdlcd_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index 764d0c83710c..59b21bdc0c30 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -230,7 +230,6 @@ static int hdlcd_show_pxlclock(struct seq_file *m, void *arg)
 static struct drm_info_list hdlcd_debugfs_list[] = {
 	{ "interrupt_count", hdlcd_show_underrun_count, 0 },
 	{ "clocks", hdlcd_show_pxlclock, 0 },
-	{ "fb", drm_fb_cma_debugfs_show, 0 },
 };
 
 static int hdlcd_debugfs_init(struct drm_minor *minor)
@@ -252,6 +251,7 @@ static struct drm_driver hdlcd_driver = {
 	.irq_postinstall = hdlcd_irq_postinstall,
 	.irq_uninstall = hdlcd_irq_uninstall,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
+	.gem_print_info = drm_gem_cma_print_info,
 	.gem_vm_ops = &drm_gem_cma_vm_ops,
 	.dumb_create = drm_gem_cma_dumb_create,
 	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH v5 10/12] drm/tilcdc: Use drm_gem_cma_print_info()
  2017-11-07 19:13 [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
                   ` (8 preceding siblings ...)
  2017-11-07 19:13 ` [PATCH v5 09/12] drm/arm/hdlcd: " Noralf Trønnes
@ 2017-11-07 19:13 ` Noralf Trønnes
  2017-11-07 19:13 ` [PATCH v5 11/12] drm/tinydrm: " Noralf Trønnes
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-07 19:13 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, abrodkin, tomi.valkeinen, hoegsberg, jsarha,
	liviu.dudau, laurent.pinchart

There is a new core debugfs file that prints fb/gem info:
<debugfs>/dri/<n>/framebuffer

Use drm_gem_cma_print_info() to provide info to that output instead
of using drm_fb_cma_debugfs_show().

Cc: Jyri Sarha <jsarha@ti.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/gpu/drm/tilcdc/tilcdc_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index 72ce063aa0d8..bc4feb3a84b9 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -507,7 +507,6 @@ static int tilcdc_mm_show(struct seq_file *m, void *arg)
 static struct drm_info_list tilcdc_debugfs_list[] = {
 		{ "regs", tilcdc_regs_show, 0 },
 		{ "mm",   tilcdc_mm_show,   0 },
-		{ "fb",   drm_fb_cma_debugfs_show, 0 },
 };
 
 static int tilcdc_debugfs_init(struct drm_minor *minor)
@@ -541,6 +540,7 @@ static struct drm_driver tilcdc_driver = {
 	.lastclose          = tilcdc_lastclose,
 	.irq_handler        = tilcdc_irq,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
+	.gem_print_info     = drm_gem_cma_print_info,
 	.gem_vm_ops         = &drm_gem_cma_vm_ops,
 	.dumb_create        = drm_gem_cma_dumb_create,
 
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH v5 11/12] drm/tinydrm: Use drm_gem_cma_print_info()
  2017-11-07 19:13 [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
                   ` (9 preceding siblings ...)
  2017-11-07 19:13 ` [PATCH v5 10/12] drm/tilcdc: " Noralf Trønnes
@ 2017-11-07 19:13 ` Noralf Trønnes
  2017-11-07 19:13 ` [PATCH v5 12/12] drm/cma-helper: Remove drm_fb_cma_debugfs_show() Noralf Trønnes
  2017-11-11 10:37 ` [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
  12 siblings, 0 replies; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-07 19:13 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, abrodkin, tomi.valkeinen, hoegsberg, jsarha,
	liviu.dudau, laurent.pinchart

There is a new core debugfs file that prints fb/gem info:
<debugfs>/dri/<n>/framebuffer

Use drm_gem_cma_print_info() to provide info to that output instead
of using drm_fb_cma_debugfs_show().

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/gpu/drm/tinydrm/mipi-dbi.c | 8 +-------
 include/drm/tinydrm/tinydrm.h      | 1 +
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/tinydrm/mipi-dbi.c b/drivers/gpu/drm/tinydrm/mipi-dbi.c
index d43e992ab432..347f9b226f26 100644
--- a/drivers/gpu/drm/tinydrm/mipi-dbi.c
+++ b/drivers/gpu/drm/tinydrm/mipi-dbi.c
@@ -961,10 +961,6 @@ static const struct file_operations mipi_dbi_debugfs_command_fops = {
 	.write = mipi_dbi_debugfs_command_write,
 };
 
-static const struct drm_info_list mipi_dbi_debugfs_list[] = {
-	{ "fb",   drm_fb_cma_debugfs_show, 0 },
-};
-
 /**
  * mipi_dbi_debugfs_init - Create debugfs entries
  * @minor: DRM minor
@@ -987,9 +983,7 @@ int mipi_dbi_debugfs_init(struct drm_minor *minor)
 	debugfs_create_file("command", mode, minor->debugfs_root, mipi,
 			    &mipi_dbi_debugfs_command_fops);
 
-	return drm_debugfs_create_files(mipi_dbi_debugfs_list,
-					ARRAY_SIZE(mipi_dbi_debugfs_list),
-					minor->debugfs_root, minor);
+	return 0;
 }
 EXPORT_SYMBOL(mipi_dbi_debugfs_init);
 
diff --git a/include/drm/tinydrm/tinydrm.h b/include/drm/tinydrm/tinydrm.h
index 4774fe3d4273..423828922e5a 100644
--- a/include/drm/tinydrm/tinydrm.h
+++ b/include/drm/tinydrm/tinydrm.h
@@ -46,6 +46,7 @@ pipe_to_tinydrm(struct drm_simple_display_pipe *pipe)
  */
 #define TINYDRM_GEM_DRIVER_OPS \
 	.gem_free_object	= tinydrm_gem_cma_free_object, \
+	.gem_print_info		= drm_gem_cma_print_info, \
 	.gem_vm_ops		= &drm_gem_cma_vm_ops, \
 	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd, \
 	.prime_fd_to_handle	= drm_gem_prime_fd_to_handle, \
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* [PATCH v5 12/12] drm/cma-helper: Remove drm_fb_cma_debugfs_show()
  2017-11-07 19:13 [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
                   ` (10 preceding siblings ...)
  2017-11-07 19:13 ` [PATCH v5 11/12] drm/tinydrm: " Noralf Trønnes
@ 2017-11-07 19:13 ` Noralf Trønnes
  2017-11-11 10:37 ` [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
  12 siblings, 0 replies; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-07 19:13 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, abrodkin, tomi.valkeinen, hoegsberg, jsarha,
	liviu.dudau, laurent.pinchart

drm_fb_cma_debugfs_show() and drm_gem_cma_describe() are superseded
by drm_framebuffer_debugfs_init() and drm_gem_cma_print_info().

Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 drivers/gpu/drm/drm_fb_cma_helper.c  | 37 ------------------------------------
 drivers/gpu/drm/drm_gem_cma_helper.c | 26 -------------------------
 include/drm/drm_fb_cma_helper.h      |  6 ------
 include/drm/drm_gem_cma_helper.h     |  4 ----
 4 files changed, 73 deletions(-)

diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
index 0e3c14174d08..35b56dfba929 100644
--- a/drivers/gpu/drm/drm_fb_cma_helper.c
+++ b/drivers/gpu/drm/drm_fb_cma_helper.c
@@ -130,43 +130,6 @@ dma_addr_t drm_fb_cma_get_gem_addr(struct drm_framebuffer *fb,
 }
 EXPORT_SYMBOL_GPL(drm_fb_cma_get_gem_addr);
 
-#ifdef CONFIG_DEBUG_FS
-static void drm_fb_cma_describe(struct drm_framebuffer *fb, struct seq_file *m)
-{
-	int i;
-
-	seq_printf(m, "fb: %dx%d@%4.4s\n", fb->width, fb->height,
-			(char *)&fb->format->format);
-
-	for (i = 0; i < fb->format->num_planes; i++) {
-		seq_printf(m, "   %d: offset=%d pitch=%d, obj: ",
-				i, fb->offsets[i], fb->pitches[i]);
-		drm_gem_cma_describe(drm_fb_cma_get_gem_obj(fb, i), m);
-	}
-}
-
-/**
- * drm_fb_cma_debugfs_show() - Helper to list CMA framebuffer objects
- *			       in debugfs.
- * @m: output file
- * @arg: private data for the callback
- */
-int drm_fb_cma_debugfs_show(struct seq_file *m, void *arg)
-{
-	struct drm_info_node *node = (struct drm_info_node *) m->private;
-	struct drm_device *dev = node->minor->dev;
-	struct drm_framebuffer *fb;
-
-	mutex_lock(&dev->mode_config.fb_lock);
-	drm_for_each_fb(fb, dev)
-		drm_fb_cma_describe(fb, m);
-	mutex_unlock(&dev->mode_config.fb_lock);
-
-	return 0;
-}
-EXPORT_SYMBOL_GPL(drm_fb_cma_debugfs_show);
-#endif
-
 static int drm_fb_cma_mmap(struct fb_info *info, struct vm_area_struct *vma)
 {
 	return dma_mmap_writecombine(info->device, vma, info->screen_base,
diff --git a/drivers/gpu/drm/drm_gem_cma_helper.c b/drivers/gpu/drm/drm_gem_cma_helper.c
index 29f7b0fd3ad4..88ad88719605 100644
--- a/drivers/gpu/drm/drm_gem_cma_helper.c
+++ b/drivers/gpu/drm/drm_gem_cma_helper.c
@@ -397,32 +397,6 @@ unsigned long drm_gem_cma_get_unmapped_area(struct file *filp,
 EXPORT_SYMBOL_GPL(drm_gem_cma_get_unmapped_area);
 #endif
 
-#ifdef CONFIG_DEBUG_FS
-/**
- * drm_gem_cma_describe - describe a CMA GEM object for debugfs
- * @cma_obj: CMA GEM object
- * @m: debugfs file handle
- *
- * This function can be used to dump a human-readable representation of the
- * CMA GEM object into a synthetic file.
- */
-void drm_gem_cma_describe(struct drm_gem_cma_object *cma_obj,
-			  struct seq_file *m)
-{
-	struct drm_gem_object *obj = &cma_obj->base;
-	uint64_t off;
-
-	off = drm_vma_node_start(&obj->vma_node);
-
-	seq_printf(m, "%2d (%2d) %08llx %pad %p %zu",
-			obj->name, kref_read(&obj->refcount),
-			off, &cma_obj->paddr, cma_obj->vaddr, obj->size);
-
-	seq_printf(m, "\n");
-}
-EXPORT_SYMBOL_GPL(drm_gem_cma_describe);
-#endif
-
 /**
  * drm_gem_cma_print_info() - Print &drm_gem_cma_object info for debugfs
  * @p: DRM printer
diff --git a/include/drm/drm_fb_cma_helper.h b/include/drm/drm_fb_cma_helper.h
index 023f052a5873..a613ff022e6c 100644
--- a/include/drm/drm_fb_cma_helper.h
+++ b/include/drm/drm_fb_cma_helper.h
@@ -35,11 +35,5 @@ dma_addr_t drm_fb_cma_get_gem_addr(struct drm_framebuffer *fb,
 				   struct drm_plane_state *state,
 				   unsigned int plane);
 
-#ifdef CONFIG_DEBUG_FS
-struct seq_file;
-
-int drm_fb_cma_debugfs_show(struct seq_file *m, void *arg);
-#endif
-
 #endif
 
diff --git a/include/drm/drm_gem_cma_helper.h b/include/drm/drm_gem_cma_helper.h
index 40435f3480e5..76ded75f02cc 100644
--- a/include/drm/drm_gem_cma_helper.h
+++ b/include/drm/drm_gem_cma_helper.h
@@ -87,10 +87,6 @@ unsigned long drm_gem_cma_get_unmapped_area(struct file *filp,
 					    unsigned long flags);
 #endif
 
-#ifdef CONFIG_DEBUG_FS
-void drm_gem_cma_describe(struct drm_gem_cma_object *obj, struct seq_file *m);
-#endif
-
 void drm_gem_cma_print_info(struct drm_printer *p, unsigned int indent,
 			    const struct drm_gem_object *obj);
 
-- 
2.14.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 25+ messages in thread

* Re: [PATCH v5 08/12] drm/arc: Use drm_gem_cma_print_info()
  2017-11-07 19:13 ` [PATCH v5 08/12] drm/arc: Use drm_gem_cma_print_info() Noralf Trønnes
@ 2017-11-07 19:31   ` Alexey Brodkin
  2017-11-09 15:52     ` Noralf Trønnes
  0 siblings, 1 reply; 25+ messages in thread
From: Alexey Brodkin @ 2017-11-07 19:31 UTC (permalink / raw)
  To: noralf
  Cc: daniel.vetter, liviu.dudau, jsarha, tomi.valkeinen, hoegsberg,
	dri-devel, laurent.pinchart

Hi Noralf,

On Tue, 2017-11-07 at 20:13 +0100, Noralf Trønnes wrote:
> There is a new core debugfs file that prints fb/gem info:
> <debugfs>/dri/<n>/framebuffer
> 
> Use drm_gem_cma_print_info() to provide info to that output instead
> of using drm_fb_cma_debugfs_show().
> 
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

I think I acked the previous version but anyways,

Acked-by: Alexey Brodkin <abrodkin@synopsys.com>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH v5 06/12] drm/cma-helper: Turn to_drm_gem_cma_obj() into a macro
  2017-11-07 19:13 ` [PATCH v5 06/12] drm/cma-helper: Turn to_drm_gem_cma_obj() into a macro Noralf Trønnes
@ 2017-11-08  6:21   ` Laurent Pinchart
  0 siblings, 0 replies; 25+ messages in thread
From: Laurent Pinchart @ 2017-11-08  6:21 UTC (permalink / raw)
  To: Noralf Trønnes
  Cc: daniel.vetter, tomi.valkeinen, hoegsberg, abrodkin, dri-devel,
	liviu.dudau, jsarha

Hi Noralf,

Thank you for the patch.

On Tuesday, 7 November 2017 21:13:42 EET Noralf Trønnes wrote:
> This allows the argument to be a const.
> 
> The other option was to keep it an inline function and make the argument
> a const:
> 
> static inline struct drm_gem_cma_object *
> to_drm_gem_cma_obj(const struct drm_gem_object *gem_obj)
> {
> 	return container_of(gem_obj, struct drm_gem_cma_object, base);
> }
> 
> This will happily return a non-const pointer to the drm_gem_cma_object
> based on a const pointer to the contained drm_gem_object, thus creating
> const-safety problems.
> 
> There was an attempt to fix the problem in the container_of() macro
> itself (see https://lkml.org/lkml/2017/5/19/381) but the patch seems to
> have fallen through the cracks. It would require turning this inline
> function into a macro.
> 
> By making this a macro now, we will benefit from a possible future
> enhancement of container_of(). We don't loose type checking by doing
> this, container_of() takes care of that.
> 
> Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Noralf Trønnes <noralf@tronnes.org>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  include/drm/drm_gem_cma_helper.h | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/include/drm/drm_gem_cma_helper.h
> b/include/drm/drm_gem_cma_helper.h index 58a739bf15f1..7a3dcf0cf289 100644
> --- a/include/drm/drm_gem_cma_helper.h
> +++ b/include/drm/drm_gem_cma_helper.h
> @@ -20,11 +20,8 @@ struct drm_gem_cma_object {
>  	void *vaddr;
>  };
> 
> -static inline struct drm_gem_cma_object *
> -to_drm_gem_cma_obj(struct drm_gem_object *gem_obj)
> -{
> -	return container_of(gem_obj, struct drm_gem_cma_object, base);
> -}
> +#define to_drm_gem_cma_obj(gem_obj) \
> +	container_of(gem_obj, struct drm_gem_cma_object, base)
> 
>  #ifndef CONFIG_MMU
>  #define DRM_GEM_CMA_UNMAPPED_AREA_FOPS \


-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH v5 08/12] drm/arc: Use drm_gem_cma_print_info()
  2017-11-07 19:31   ` Alexey Brodkin
@ 2017-11-09 15:52     ` Noralf Trønnes
  2017-11-09 16:44       ` Noralf Trønnes
  0 siblings, 1 reply; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-09 15:52 UTC (permalink / raw)
  To: Alexey Brodkin
  Cc: daniel.vetter, liviu.dudau, jsarha, tomi.valkeinen, hoegsberg,
	dri-devel, laurent.pinchart


Den 07.11.2017 20.31, skrev Alexey Brodkin:
> Hi Noralf,
>
> On Tue, 2017-11-07 at 20:13 +0100, Noralf Trønnes wrote:
>> There is a new core debugfs file that prints fb/gem info:
>> <debugfs>/dri/<n>/framebuffer
>>
>> Use drm_gem_cma_print_info() to provide info to that output instead
>> of using drm_fb_cma_debugfs_show().
>>
>> Cc: Alexey Brodkin <abrodkin@synopsys.com>
>> Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> I think I acked the previous version but anyways,
>
> Acked-by: Alexey Brodkin <abrodkin@synopsys.com>
>

Indeed you did, but somehow patchwork didn't catch it:
https://patchwork.freedesktop.org/patch/185349/

But the ml did:
https://lists.freedesktop.org/archives/dri-devel/2017-October/156438.html

I use patchwork to respin series because I get all ack/rb applied 
automatically.
Thanks for re-acking :-)

Noralf.

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH v5 08/12] drm/arc: Use drm_gem_cma_print_info()
  2017-11-09 15:52     ` Noralf Trønnes
@ 2017-11-09 16:44       ` Noralf Trønnes
  0 siblings, 0 replies; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-09 16:44 UTC (permalink / raw)
  To: dri-devel



Den 09.11.2017 16.52, skrev Noralf Trønnes:
>
> Den 07.11.2017 20.31, skrev Alexey Brodkin:
>> Hi Noralf,
>>
>> On Tue, 2017-11-07 at 20:13 +0100, Noralf Trønnes wrote:
>>> There is a new core debugfs file that prints fb/gem info:
>>> <debugfs>/dri/<n>/framebuffer
>>>
>>> Use drm_gem_cma_print_info() to provide info to that output instead
>>> of using drm_fb_cma_debugfs_show().
>>>
>>> Cc: Alexey Brodkin <abrodkin@synopsys.com>
>>> Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>> I think I acked the previous version but anyways,
>>
>> Acked-by: Alexey Brodkin <abrodkin@synopsys.com>
>>
>
> Indeed you did, but somehow patchwork didn't catch it:
> https://patchwork.freedesktop.org/patch/185349/
>
> But the ml did:
> https://lists.freedesktop.org/archives/dri-devel/2017-October/156438.html
>
> I use patchwork to respin series because I get all ack/rb applied 
> automatically.
> Thanks for re-acking :-)
>

Strange, patchwork didn't get your ack this time either:
https://patchwork.freedesktop.org/patch/186972/

I put your ack here so I don't miss it when I apply the patches:
Acked-by: Alexey Brodkin <abrodkin@synopsys.com>

Noralf.

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file
  2017-11-07 19:13 [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
                   ` (11 preceding siblings ...)
  2017-11-07 19:13 ` [PATCH v5 12/12] drm/cma-helper: Remove drm_fb_cma_debugfs_show() Noralf Trønnes
@ 2017-11-11 10:37 ` Noralf Trønnes
  12 siblings, 0 replies; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-11 10:37 UTC (permalink / raw)
  To: dri-devel
  Cc: daniel.vetter, abrodkin, tomi.valkeinen, hoegsberg, jsarha,
	liviu.dudau, laurent.pinchart


Den 07.11.2017 20.13, skrev Noralf Trønnes:
> This patchset adds a debugfs file that prints info about the
> framebuffers.
>
> Changes since version 4:
> - Add framebuffer debugfs file: Fix printk formats and add info about
>    indent argument in gem_print_info callback docs (Laurent)
> - Turn to_drm_gem_cma_obj() into a macro (Laurent)
> - drm_gem_cma_print_info(): Make the cma_obj variable a const since it
>    is derived from the obj variable which is a const.
>
> Changes since version 3:
> - Applied patch: drm/gem: Remove trailing whitespace
> - Turn drm_printf_indent() into a macro (Ville)
> - drm_printf_indent() add overflow marker (Jani)
> - Converted arc, hdlcd, tilcdc and removed drm_fb_cma_debugfs_show()
>
> Noralf Trønnes (12):
>    drm/vma-manager: drm_vma_node_start() constify argument
>    drm/framebuffer: drm_framebuffer_read_refcount() constify argument
>    drm/print: Add drm_printf_indent()
>    drm/framebuffer: Add framebuffer debugfs file
>    drm/atomic: Use drm_framebuffer_print_info()
>    drm/cma-helper: Turn to_drm_gem_cma_obj() into a macro
>    drm/cma-helper: Add drm_gem_cma_print_info()
>    drm/arc: Use drm_gem_cma_print_info()
>    drm/arm/hdlcd: Use drm_gem_cma_print_info()
>    drm/tilcdc: Use drm_gem_cma_print_info()
>    drm/tinydrm: Use drm_gem_cma_print_info()
>    drm/cma-helper: Remove drm_fb_cma_debugfs_show()

Series applied to drm-misc-next.
Thanks for reviewing!

Noralf.

>   drivers/gpu/drm/arc/arcpgu_drv.c     |  2 +-
>   drivers/gpu/drm/arm/hdlcd_drv.c      |  2 +-
>   drivers/gpu/drm/drm_atomic.c         | 18 ++---------
>   drivers/gpu/drm/drm_debugfs.c        |  6 ++++
>   drivers/gpu/drm/drm_fb_cma_helper.c  | 37 ----------------------
>   drivers/gpu/drm/drm_framebuffer.c    | 59 ++++++++++++++++++++++++++++++++++++
>   drivers/gpu/drm/drm_gem.c            | 17 +++++++++++
>   drivers/gpu/drm/drm_gem_cma_helper.c | 31 ++++++++-----------
>   drivers/gpu/drm/drm_internal.h       |  7 +++++
>   drivers/gpu/drm/tilcdc/tilcdc_drv.c  |  2 +-
>   drivers/gpu/drm/tinydrm/mipi-dbi.c   |  8 +----
>   include/drm/drm_drv.h                | 15 +++++++++
>   include/drm/drm_fb_cma_helper.h      |  6 ----
>   include/drm/drm_framebuffer.h        |  2 +-
>   include/drm/drm_gem_cma_helper.h     | 12 +++-----
>   include/drm/drm_print.h              |  8 +++++
>   include/drm/drm_vma_manager.h        |  2 +-
>   include/drm/tinydrm/tinydrm.h        |  1 +
>   18 files changed, 138 insertions(+), 97 deletions(-)
>
> --
> 2.14.2
>

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH v5 04/12] drm/framebuffer: Add framebuffer debugfs file
  2017-11-07 19:13 ` [PATCH v5 04/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
@ 2017-11-11 18:55   ` Chris Wilson
  2017-11-13 19:54     ` Noralf Trønnes
  0 siblings, 1 reply; 25+ messages in thread
From: Chris Wilson @ 2017-11-11 18:55 UTC (permalink / raw)
  To: Noralf Trønnes, dri-devel
  Cc: daniel.vetter, abrodkin, hoegsberg, jsarha, tomi.valkeinen,
	laurent.pinchart, liviu.dudau

Quoting Noralf Trønnes (2017-11-07 19:13:40)
> Add debugfs file that dumps info about the framebuffers and its planes.
> Also dump info about any connected gem object(s).

This isn't too hot for non-modesetting drm drivers.

And isn't this growing a midlayer? Calling to the drivers instead of the
drivers controlling and calling helpers for the common stuff.
-Chris
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH v5 04/12] drm/framebuffer: Add framebuffer debugfs file
  2017-11-11 18:55   ` Chris Wilson
@ 2017-11-13 19:54     ` Noralf Trønnes
  2017-11-13 21:33       ` Chris Wilson
  0 siblings, 1 reply; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-13 19:54 UTC (permalink / raw)
  To: Chris Wilson, dri-devel
  Cc: daniel.vetter, abrodkin, hoegsberg, jsarha, tomi.valkeinen,
	laurent.pinchart, liviu.dudau


Den 11.11.2017 19.55, skrev Chris Wilson:
> Quoting Noralf Trønnes (2017-11-07 19:13:40)
>> Add debugfs file that dumps info about the framebuffers and its planes.
>> Also dump info about any connected gem object(s).
> This isn't too hot for non-modesetting drm drivers.
>
> And isn't this growing a midlayer? Calling to the drivers instead of the
> drivers controlling and calling helpers for the common stuff.

I really can't say, but Daniel asked me to do it like this:
https://lists.freedesktop.org/archives/dri-devel/2017-October/155245.html

Noralf.

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH v5 04/12] drm/framebuffer: Add framebuffer debugfs file
  2017-11-13 19:54     ` Noralf Trønnes
@ 2017-11-13 21:33       ` Chris Wilson
  2017-11-13 22:12         ` Noralf Trønnes
  0 siblings, 1 reply; 25+ messages in thread
From: Chris Wilson @ 2017-11-13 21:33 UTC (permalink / raw)
  To: Noralf Trønnes, dri-devel
  Cc: daniel.vetter, abrodkin, hoegsberg, jsarha, tomi.valkeinen,
	laurent.pinchart, liviu.dudau

Quoting Noralf Trønnes (2017-11-13 19:54:43)
> 
> Den 11.11.2017 19.55, skrev Chris Wilson:
> > Quoting Noralf Trønnes (2017-11-07 19:13:40)
> >> Add debugfs file that dumps info about the framebuffers and its planes.
> >> Also dump info about any connected gem object(s).
> > This isn't too hot for non-modesetting drm drivers.

Just to be clear; this is currently on fire in i915's CI. As
framebuffer-info is installed for vgem and vgem hasn't initialised any
of the data structs being inspected...
-Chris
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH v5 04/12] drm/framebuffer: Add framebuffer debugfs file
  2017-11-13 21:33       ` Chris Wilson
@ 2017-11-13 22:12         ` Noralf Trønnes
  2017-11-13 22:17           ` Chris Wilson
  0 siblings, 1 reply; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-13 22:12 UTC (permalink / raw)
  To: Chris Wilson, dri-devel
  Cc: daniel.vetter, abrodkin, hoegsberg, jsarha, tomi.valkeinen,
	laurent.pinchart, liviu.dudau


Den 13.11.2017 22.33, skrev Chris Wilson:
> Quoting Noralf Trønnes (2017-11-13 19:54:43)
>> Den 11.11.2017 19.55, skrev Chris Wilson:
>>> Quoting Noralf Trønnes (2017-11-07 19:13:40)
>>>> Add debugfs file that dumps info about the framebuffers and its planes.
>>>> Also dump info about any connected gem object(s).
>>> This isn't too hot for non-modesetting drm drivers.
> Just to be clear; this is currently on fire in i915's CI. As
> framebuffer-info is installed for vgem and vgem hasn't initialised any
> of the data structs being inspected...

Ok, so I have broken vgem :-(

drm_framebuffer_info() takes dev->mode_config.fb_lock which hasn't been
initialized because vgem doesn't call drm_mode_config_init().
drm_mode_config_init() in addition to initializing various thing also
calls drm_mode_create_standard_properties().

Can we call drm_mode_config_init() in vgem or is this a no-go because of
the properties? Do you see a solution to this?

Sorry about the fallout.

Noralf.

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH v5 04/12] drm/framebuffer: Add framebuffer debugfs file
  2017-11-13 22:12         ` Noralf Trønnes
@ 2017-11-13 22:17           ` Chris Wilson
  2017-11-13 22:31             ` Noralf Trønnes
  0 siblings, 1 reply; 25+ messages in thread
From: Chris Wilson @ 2017-11-13 22:17 UTC (permalink / raw)
  To: Noralf Trønnes, dri-devel
  Cc: daniel.vetter, abrodkin, hoegsberg, jsarha, tomi.valkeinen,
	laurent.pinchart, liviu.dudau

Quoting Noralf Trønnes (2017-11-13 22:12:06)
> 
> Den 13.11.2017 22.33, skrev Chris Wilson:
> > Quoting Noralf Trønnes (2017-11-13 19:54:43)
> >> Den 11.11.2017 19.55, skrev Chris Wilson:
> >>> Quoting Noralf Trønnes (2017-11-07 19:13:40)
> >>>> Add debugfs file that dumps info about the framebuffers and its planes.
> >>>> Also dump info about any connected gem object(s).
> >>> This isn't too hot for non-modesetting drm drivers.
> > Just to be clear; this is currently on fire in i915's CI. As
> > framebuffer-info is installed for vgem and vgem hasn't initialised any
> > of the data structs being inspected...
> 
> Ok, so I have broken vgem :-(
> 
> drm_framebuffer_info() takes dev->mode_config.fb_lock which hasn't been
> initialized because vgem doesn't call drm_mode_config_init().
> drm_mode_config_init() in addition to initializing various thing also
> calls drm_mode_create_standard_properties().
> 
> Can we call drm_mode_config_init() in vgem or is this a no-go because of
> the properties? Do you see a solution to this?

My quick fix idea was a drm_core_check_feature(dev, DRIVER_MODESET)
around the drm_framebuffer_debugfs_init().
-Chris
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH v5 04/12] drm/framebuffer: Add framebuffer debugfs file
  2017-11-13 22:17           ` Chris Wilson
@ 2017-11-13 22:31             ` Noralf Trønnes
  2017-11-20  7:38               ` Daniel Vetter
  0 siblings, 1 reply; 25+ messages in thread
From: Noralf Trønnes @ 2017-11-13 22:31 UTC (permalink / raw)
  To: Chris Wilson, dri-devel
  Cc: daniel.vetter, abrodkin, hoegsberg, jsarha, tomi.valkeinen,
	laurent.pinchart, liviu.dudau


Den 13.11.2017 23.17, skrev Chris Wilson:
> Quoting Noralf Trønnes (2017-11-13 22:12:06)
>> Den 13.11.2017 22.33, skrev Chris Wilson:
>>> Quoting Noralf Trønnes (2017-11-13 19:54:43)
>>>> Den 11.11.2017 19.55, skrev Chris Wilson:
>>>>> Quoting Noralf Trønnes (2017-11-07 19:13:40)
>>>>>> Add debugfs file that dumps info about the framebuffers and its planes.
>>>>>> Also dump info about any connected gem object(s).
>>>>> This isn't too hot for non-modesetting drm drivers.
>>> Just to be clear; this is currently on fire in i915's CI. As
>>> framebuffer-info is installed for vgem and vgem hasn't initialised any
>>> of the data structs being inspected...
>> Ok, so I have broken vgem :-(
>>
>> drm_framebuffer_info() takes dev->mode_config.fb_lock which hasn't been
>> initialized because vgem doesn't call drm_mode_config_init().
>> drm_mode_config_init() in addition to initializing various thing also
>> calls drm_mode_create_standard_properties().
>>
>> Can we call drm_mode_config_init() in vgem or is this a no-go because of
>> the properties? Do you see a solution to this?
> My quick fix idea was a drm_core_check_feature(dev, DRIVER_MODESET)
> around the drm_framebuffer_debugfs_init().

Ah, yes, thank you!
That sounds like a good idea. I will create a patch.

Noralf.

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH v5 04/12] drm/framebuffer: Add framebuffer debugfs file
  2017-11-13 22:31             ` Noralf Trønnes
@ 2017-11-20  7:38               ` Daniel Vetter
  0 siblings, 0 replies; 25+ messages in thread
From: Daniel Vetter @ 2017-11-20  7:38 UTC (permalink / raw)
  To: Noralf Trønnes
  Cc: daniel.vetter, abrodkin, hoegsberg, dri-devel, tomi.valkeinen,
	jsarha, liviu.dudau, laurent.pinchart

On Mon, Nov 13, 2017 at 11:31:28PM +0100, Noralf Trønnes wrote:
> 
> Den 13.11.2017 23.17, skrev Chris Wilson:
> > Quoting Noralf Trønnes (2017-11-13 22:12:06)
> > > Den 13.11.2017 22.33, skrev Chris Wilson:
> > > > Quoting Noralf Trønnes (2017-11-13 19:54:43)
> > > > > Den 11.11.2017 19.55, skrev Chris Wilson:
> > > > > > Quoting Noralf Trønnes (2017-11-07 19:13:40)
> > > > > > > Add debugfs file that dumps info about the framebuffers and its planes.
> > > > > > > Also dump info about any connected gem object(s).
> > > > > > This isn't too hot for non-modesetting drm drivers.
> > > > Just to be clear; this is currently on fire in i915's CI. As
> > > > framebuffer-info is installed for vgem and vgem hasn't initialised any
> > > > of the data structs being inspected...
> > > Ok, so I have broken vgem :-(
> > > 
> > > drm_framebuffer_info() takes dev->mode_config.fb_lock which hasn't been
> > > initialized because vgem doesn't call drm_mode_config_init().
> > > drm_mode_config_init() in addition to initializing various thing also
> > > calls drm_mode_create_standard_properties().
> > > 
> > > Can we call drm_mode_config_init() in vgem or is this a no-go because of
> > > the properties? Do you see a solution to this?
> > My quick fix idea was a drm_core_check_feature(dev, DRIVER_MODESET)
> > around the drm_framebuffer_debugfs_init().
> 
> Ah, yes, thank you!
> That sounds like a good idea. I will create a patch.

Yeah we need that check, same way we have it in all the ioctls. Sorry for
not spotting this, and yes we need our CI checking dri-devel patches, but
just not there yet :-/
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2017-11-20  7:38 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-07 19:13 [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
2017-11-07 19:13 ` [PATCH v5 01/12] drm/vma-manager: drm_vma_node_start() constify argument Noralf Trønnes
2017-11-07 19:13 ` [PATCH v5 02/12] drm/framebuffer: drm_framebuffer_read_refcount() " Noralf Trønnes
2017-11-07 19:13 ` [PATCH v5 03/12] drm/print: Add drm_printf_indent() Noralf Trønnes
2017-11-07 19:13 ` [PATCH v5 04/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes
2017-11-11 18:55   ` Chris Wilson
2017-11-13 19:54     ` Noralf Trønnes
2017-11-13 21:33       ` Chris Wilson
2017-11-13 22:12         ` Noralf Trønnes
2017-11-13 22:17           ` Chris Wilson
2017-11-13 22:31             ` Noralf Trønnes
2017-11-20  7:38               ` Daniel Vetter
2017-11-07 19:13 ` [PATCH v5 05/12] drm/atomic: Use drm_framebuffer_print_info() Noralf Trønnes
2017-11-07 19:13 ` [PATCH v5 06/12] drm/cma-helper: Turn to_drm_gem_cma_obj() into a macro Noralf Trønnes
2017-11-08  6:21   ` Laurent Pinchart
2017-11-07 19:13 ` [PATCH v5 07/12] drm/cma-helper: Add drm_gem_cma_print_info() Noralf Trønnes
2017-11-07 19:13 ` [PATCH v5 08/12] drm/arc: Use drm_gem_cma_print_info() Noralf Trønnes
2017-11-07 19:31   ` Alexey Brodkin
2017-11-09 15:52     ` Noralf Trønnes
2017-11-09 16:44       ` Noralf Trønnes
2017-11-07 19:13 ` [PATCH v5 09/12] drm/arm/hdlcd: " Noralf Trønnes
2017-11-07 19:13 ` [PATCH v5 10/12] drm/tilcdc: " Noralf Trønnes
2017-11-07 19:13 ` [PATCH v5 11/12] drm/tinydrm: " Noralf Trønnes
2017-11-07 19:13 ` [PATCH v5 12/12] drm/cma-helper: Remove drm_fb_cma_debugfs_show() Noralf Trønnes
2017-11-11 10:37 ` [PATCH v5 00/12] drm/framebuffer: Add framebuffer debugfs file Noralf Trønnes

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.