diff mbox

[RFC,3/3] drm: simpledrm: Add panic handling

Message ID 1470764742-20323-4-git-send-email-noralf@tronnes.org (mailing list archive)
State New, archived
Headers show

Commit Message

Noralf Trønnes Aug. 9, 2016, 5:45 p.m. UTC
This enables panic message output support in simpledrm.
simpledrm has a fixed buffer that is set up to be scanned out
and the virtual address is already available.

Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
---
 drivers/gpu/drm/simpledrm/simpledrm_drv.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
diff mbox

Patch

diff --git a/drivers/gpu/drm/simpledrm/simpledrm_drv.c b/drivers/gpu/drm/simpledrm/simpledrm_drv.c
index a329e4c..ceff617 100644
--- a/drivers/gpu/drm/simpledrm/simpledrm_drv.c
+++ b/drivers/gpu/drm/simpledrm/simpledrm_drv.c
@@ -23,6 +23,29 @@ 
 #include <drm/drmP.h>
 #include "simpledrm.h"
 
+static struct drm_framebuffer sdrm_panic_fb;
+
+struct drm_framebuffer *sdrm_panic(struct drm_device *dev, void **vmem)
+{
+	struct sdrm_device *sdrm = dev->dev_private;
+	struct drm_framebuffer *fb = &sdrm_panic_fb;
+
+	if (!sdrm)
+		return NULL;
+
+	fb->dev = dev;
+	fb->width = sdrm->fb_width;
+	fb->height = sdrm->fb_height;
+	fb->pixel_format = sdrm->fb_format;
+	drm_fb_get_bpp_depth(fb->pixel_format, &fb->depth,
+			     &fb->bits_per_pixel);
+	fb->pitches[0] = sdrm->fb_stride;
+
+	*vmem = sdrm->fb_map;
+
+	return fb;
+}
+
 static const struct file_operations sdrm_drm_fops = {
 	.owner = THIS_MODULE,
 	.open = drm_open,
@@ -42,6 +65,7 @@  static struct drm_driver sdrm_drm_driver = {
 			   DRIVER_ATOMIC,
 	.fops = &sdrm_drm_fops,
 	.lastclose = sdrm_lastclose,
+	.panic = sdrm_panic,
 
 	.gem_free_object = sdrm_gem_free_object,
 	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,