drm/tinydrm: Remove tinydrm_device
authorNoralf Trønnes <noralf@tronnes.org>
Mon, 25 Feb 2019 14:42:31 +0000 (15:42 +0100)
committerNoralf Trønnes <noralf@tronnes.org>
Mon, 4 Mar 2019 14:31:27 +0000 (15:31 +0100)
No more users left so it can go alongside its helpers.
Update the tinydrm docs description and remove todo entry.

Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20190225144232.20761-7-noralf@tronnes.org
Documentation/gpu/tinydrm.rst
Documentation/gpu/todo.rst
drivers/gpu/drm/tinydrm/core/Makefile
drivers/gpu/drm/tinydrm/core/tinydrm-core.c [deleted file]
drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c
include/drm/tinydrm/tinydrm.h [deleted file]

index a913644bfc198d0764e0cbabbcfedf6ac0e6e117..33a41544f659fba73a0f88547d876cf6809c64af 100644 (file)
@@ -1,34 +1,22 @@
-==========================
-drm/tinydrm Driver library
-==========================
+============================
+drm/tinydrm Tiny DRM drivers
+============================
 
-.. kernel-doc:: drivers/gpu/drm/tinydrm/core/tinydrm-core.c
-   :doc: overview
-
-Core functionality
-==================
+tinydrm is a collection of DRM drivers that are so small they can fit in a
+single source file.
 
-.. kernel-doc:: drivers/gpu/drm/tinydrm/core/tinydrm-core.c
-   :doc: core
+Helpers
+=======
 
-.. kernel-doc:: include/drm/tinydrm/tinydrm.h
+.. kernel-doc:: include/drm/tinydrm/tinydrm-helpers.h
    :internal:
 
-.. kernel-doc:: drivers/gpu/drm/tinydrm/core/tinydrm-core.c
+.. kernel-doc:: drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c
    :export:
 
 .. kernel-doc:: drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
    :export:
 
-Additional helpers
-==================
-
-.. kernel-doc:: include/drm/tinydrm/tinydrm-helpers.h
-   :internal:
-
-.. kernel-doc:: drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c
-   :export:
-
 MIPI DBI Compatible Controllers
 ===============================
 
index 4afbc186f119cf94ee700a06b9eb58f8df9559f3..1528ad2d598b787576e9958e15b5e2893f6525c0 100644 (file)
@@ -469,10 +469,6 @@ those drivers as simple as possible, so lots of room for refactoring:
   one of the ideas for having a shared dsi/dbi helper, abstracting away the
   transport details more.
 
-- Quick aside: The unregister devm stuff is kinda getting the lifetimes of
-  a drm_device wrong. Doesn't matter, since everyone else gets it wrong
-  too :-)
-
 Contact: Noralf Trønnes, Daniel Vetter
 
 AMD DC Display Driver
index fb221e6f8885d81626b97d65e21c0c6ed3993836..6f8f764560e00b34ae9f8db24c86be23d4b1d3ea 100644 (file)
@@ -1,3 +1,3 @@
-tinydrm-y := tinydrm-core.o tinydrm-pipe.o tinydrm-helpers.o
+tinydrm-y := tinydrm-pipe.o tinydrm-helpers.o
 
 obj-$(CONFIG_DRM_TINYDRM) += tinydrm.o
diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-core.c b/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
deleted file mode 100644 (file)
index 2366a33..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (C) 2016 Noralf Trønnes
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-#include <drm/drm_atomic.h>
-#include <drm/drm_atomic_helper.h>
-#include <drm/drm_drv.h>
-#include <drm/drm_fb_helper.h>
-#include <drm/drm_gem_framebuffer_helper.h>
-#include <drm/drm_probe_helper.h>
-#include <drm/drm_print.h>
-#include <drm/tinydrm/tinydrm.h>
-#include <linux/device.h>
-#include <linux/dma-buf.h>
-#include <linux/module.h>
-
-/**
- * DOC: overview
- *
- * This library provides driver helpers for very simple display hardware.
- *
- * It is based on &drm_simple_display_pipe coupled with a &drm_connector which
- * has only one fixed &drm_display_mode. The framebuffers are backed by the
- * cma helper and have support for framebuffer flushing (dirty).
- * fbdev support is also included.
- *
- */
-
-/**
- * DOC: core
- *
- * The driver allocates &tinydrm_device, initializes it using
- * devm_tinydrm_init(), sets up the pipeline using tinydrm_display_pipe_init()
- * and registers the DRM device using devm_tinydrm_register().
- */
-
-static const struct drm_mode_config_funcs tinydrm_mode_config_funcs = {
-       .fb_create = drm_gem_fb_create_with_dirty,
-       .atomic_check = drm_atomic_helper_check,
-       .atomic_commit = drm_atomic_helper_commit,
-};
-
-static int tinydrm_init(struct device *parent, struct tinydrm_device *tdev,
-                       struct drm_driver *driver)
-{
-       struct drm_device *drm;
-
-       /*
-        * We don't embed drm_device, because that prevent us from using
-        * devm_kzalloc() to allocate tinydrm_device in the driver since
-        * drm_dev_put() frees the structure. The devm_ functions provide
-        * for easy error handling.
-        */
-       drm = drm_dev_alloc(driver, parent);
-       if (IS_ERR(drm))
-               return PTR_ERR(drm);
-
-       tdev->drm = drm;
-       drm->dev_private = tdev;
-       drm_mode_config_init(drm);
-       drm->mode_config.funcs = &tinydrm_mode_config_funcs;
-       drm->mode_config.allow_fb_modifiers = true;
-
-       return 0;
-}
-
-static void tinydrm_fini(struct tinydrm_device *tdev)
-{
-       drm_mode_config_cleanup(tdev->drm);
-       tdev->drm->dev_private = NULL;
-       drm_dev_put(tdev->drm);
-}
-
-static void devm_tinydrm_release(void *data)
-{
-       tinydrm_fini(data);
-}
-
-/**
- * devm_tinydrm_init - Initialize tinydrm device
- * @parent: Parent device object
- * @tdev: tinydrm device
- * @driver: DRM driver
- *
- * This function initializes @tdev, the underlying DRM device and it's
- * mode_config. Resources will be automatically freed on driver detach (devres)
- * using drm_mode_config_cleanup() and drm_dev_put().
- *
- * Returns:
- * Zero on success, negative error code on failure.
- */
-int devm_tinydrm_init(struct device *parent, struct tinydrm_device *tdev,
-                     struct drm_driver *driver)
-{
-       int ret;
-
-       ret = tinydrm_init(parent, tdev, driver);
-       if (ret)
-               return ret;
-
-       ret = devm_add_action(parent, devm_tinydrm_release, tdev);
-       if (ret)
-               tinydrm_fini(tdev);
-
-       return ret;
-}
-EXPORT_SYMBOL(devm_tinydrm_init);
-
-static int tinydrm_register(struct tinydrm_device *tdev)
-{
-       struct drm_device *drm = tdev->drm;
-       int ret;
-
-       ret = drm_dev_register(tdev->drm, 0);
-       if (ret)
-               return ret;
-
-       ret = drm_fbdev_generic_setup(drm, 0);
-       if (ret)
-               DRM_ERROR("Failed to initialize fbdev: %d\n", ret);
-
-       return 0;
-}
-
-static void tinydrm_unregister(struct tinydrm_device *tdev)
-{
-       drm_atomic_helper_shutdown(tdev->drm);
-       drm_dev_unregister(tdev->drm);
-}
-
-static void devm_tinydrm_register_release(void *data)
-{
-       tinydrm_unregister(data);
-}
-
-/**
- * devm_tinydrm_register - Register tinydrm device
- * @tdev: tinydrm device
- *
- * This function registers the underlying DRM device and fbdev.
- * These resources will be automatically unregistered on driver detach (devres)
- * and the display pipeline will be disabled.
- *
- * Returns:
- * Zero on success, negative error code on failure.
- */
-int devm_tinydrm_register(struct tinydrm_device *tdev)
-{
-       struct device *dev = tdev->drm->dev;
-       int ret;
-
-       ret = tinydrm_register(tdev);
-       if (ret)
-               return ret;
-
-       ret = devm_add_action(dev, devm_tinydrm_register_release, tdev);
-       if (ret)
-               tinydrm_unregister(tdev);
-
-       return ret;
-}
-EXPORT_SYMBOL(devm_tinydrm_register);
-
-MODULE_LICENSE("GPL");
index 2737b6fdadc85d5e60ef939fd5fd82d88ef5d526..d7b38dfb6438af85c546cd858994e0fa16aacd24 100644 (file)
@@ -365,3 +365,5 @@ int tinydrm_spi_transfer(struct spi_device *spi, u32 speed_hz,
 EXPORT_SYMBOL(tinydrm_spi_transfer);
 
 #endif /* CONFIG_SPI */
+
+MODULE_LICENSE("GPL");
diff --git a/include/drm/tinydrm/tinydrm.h b/include/drm/tinydrm/tinydrm.h
deleted file mode 100644 (file)
index ee9b177..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2016 Noralf Trønnes
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- */
-
-#ifndef __LINUX_TINYDRM_H
-#define __LINUX_TINYDRM_H
-
-#include <drm/drm_simple_kms_helper.h>
-
-struct drm_driver;
-
-/**
- * struct tinydrm_device - tinydrm device
- */
-struct tinydrm_device {
-       /**
-        * @drm: DRM device
-        */
-       struct drm_device *drm;
-
-       /**
-        * @pipe: Display pipe structure
-        */
-       struct drm_simple_display_pipe pipe;
-};
-
-static inline struct tinydrm_device *
-pipe_to_tinydrm(struct drm_simple_display_pipe *pipe)
-{
-       return container_of(pipe, struct tinydrm_device, pipe);
-}
-
-int devm_tinydrm_init(struct device *parent, struct tinydrm_device *tdev,
-                     struct drm_driver *driver);
-int devm_tinydrm_register(struct tinydrm_device *tdev);
-
-#endif /* __LINUX_TINYDRM_H */