* [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions
@ 2017-12-08 19:37 Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 01/11] drm/arc: Use drm_fb_cma_fbdev_init/fini() Noralf Trønnes
` (11 more replies)
0 siblings, 12 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-08 19:37 UTC (permalink / raw)
To: dri-devel
Cc: marex, david, alison.wang, puck.chen, narmstrong, abrodkin,
z.liuxinliang, kong.kongxinwei, laurent.pinchart, daniel.vetter,
zourongrong, liviu.dudau
These are the remaining patches not applied due to missing review and:
- arm/hdlcd and rcar-du have started to use
drm_fbdev_cma_set_suspend_unlocked() since last, so I have added patches
converting them to drm_mode_config_helper_suspend/resume().
- tinydrm has gained a new driver ili9225
Noralf.
Noralf Trønnes (11):
drm/arc: Use drm_fb_cma_fbdev_init/fini()
drm/arm/hdlcd: Use drm_mode_config_helper_suspend/resume()
drm/arm/hdlcd: Use drm_fb_cma_fbdev_init/fini()
drm/hisilicon/kirin: Use drm_fb_cma_fbdev_init/fini()
drm/meson: Use drm_fb_cma_fbdev_init/fini()
drm/mxsfb: Use drm_fb_cma_fbdev_init/fini()
drm/rcar-du: Use drm_mode_config_helper_suspend/resume()
drm/rcar-du: Use drm_fb_cma_fbdev_init/fini()
drm/fsl-dcu: Use drm_fb_cma_fbdev_init/fini()
drm/tinydrm: Use drm_fb_cma_fbdev_init_with_funcs/fini()
drm/cma-helper: Remove drm_fbdev_cma* functions
Documentation/gpu/todo.rst | 5 -
drivers/gpu/drm/arc/arcpgu.h | 4 -
drivers/gpu/drm/arc/arcpgu_drv.c | 36 ++----
drivers/gpu/drm/arm/hdlcd_drv.c | 62 ++--------
drivers/gpu/drm/arm/hdlcd_drv.h | 2 -
drivers/gpu/drm/drm_fb_cma_helper.c | 158 ------------------------
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 26 +---
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h | 1 -
drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 35 +-----
drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h | 4 -
drivers/gpu/drm/meson/meson_drv.c | 20 +--
drivers/gpu/drm/meson/meson_drv.h | 1 -
drivers/gpu/drm/mxsfb/mxsfb_drv.c | 21 +---
drivers/gpu/drm/mxsfb/mxsfb_drv.h | 1 -
drivers/gpu/drm/rcar-du/rcar_du_drv.c | 34 +----
drivers/gpu/drm/rcar-du/rcar_du_drv.h | 3 -
drivers/gpu/drm/rcar-du/rcar_du_kms.c | 20 +--
drivers/gpu/drm/tinydrm/core/tinydrm-core.c | 37 +-----
drivers/gpu/drm/tinydrm/ili9225.c | 3 +-
drivers/gpu/drm/tinydrm/mi0283qt.c | 3 +-
drivers/gpu/drm/tinydrm/st7586.c | 3 +-
include/drm/drm_fb_cma_helper.h | 28 +----
include/drm/tinydrm/tinydrm.h | 3 -
23 files changed, 61 insertions(+), 449 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] 17+ messages in thread
* [PATCH v3 01/11] drm/arc: Use drm_fb_cma_fbdev_init/fini()
2017-12-08 19:37 [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
@ 2017-12-08 19:37 ` Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 02/11] drm/arm/hdlcd: Use drm_mode_config_helper_suspend/resume() Noralf Trønnes
` (10 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-08 19:37 UTC (permalink / raw)
To: dri-devel
Cc: marex, david, alison.wang, puck.chen, narmstrong, abrodkin,
z.liuxinliang, kong.kongxinwei, laurent.pinchart, daniel.vetter,
zourongrong, liviu.dudau
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Remove unused function prototype arcpgu_fbdev_cma_init().
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
---
drivers/gpu/drm/arc/arcpgu.h | 4 ----
drivers/gpu/drm/arc/arcpgu_drv.c | 36 +++++++-----------------------------
2 files changed, 7 insertions(+), 33 deletions(-)
diff --git a/drivers/gpu/drm/arc/arcpgu.h b/drivers/gpu/drm/arc/arcpgu.h
index e8fcf3ab1d9a..90ef76b19f8a 100644
--- a/drivers/gpu/drm/arc/arcpgu.h
+++ b/drivers/gpu/drm/arc/arcpgu.h
@@ -20,7 +20,6 @@
struct arcpgu_drm_private {
void __iomem *regs;
struct clk *clk;
- struct drm_fbdev_cma *fbdev;
struct drm_framebuffer *fb;
struct drm_crtc crtc;
struct drm_plane *plane;
@@ -43,8 +42,5 @@ static inline u32 arc_pgu_read(struct arcpgu_drm_private *arcpgu,
int arc_pgu_setup_crtc(struct drm_device *dev);
int arcpgu_drm_hdmi_init(struct drm_device *drm, struct device_node *np);
int arcpgu_drm_sim_init(struct drm_device *drm, struct device_node *np);
-struct drm_fbdev_cma *arcpgu_fbdev_cma_init(struct drm_device *dev,
- unsigned int preferred_bpp, unsigned int num_crtc,
- unsigned int max_conn_count);
#endif
diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c
index f067de4e1e82..e25981adbed0 100644
--- a/drivers/gpu/drm/arc/arcpgu_drv.c
+++ b/drivers/gpu/drm/arc/arcpgu_drv.c
@@ -16,6 +16,7 @@
#include <linux/clk.h>
#include <drm/drm_crtc_helper.h>
+#include <drm/drm_fb_helper.h>
#include <drm/drm_fb_cma_helper.h>
#include <drm/drm_gem_cma_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
@@ -25,16 +26,9 @@
#include "arcpgu.h"
#include "arcpgu_regs.h"
-static void arcpgu_fb_output_poll_changed(struct drm_device *dev)
-{
- struct arcpgu_drm_private *arcpgu = dev->dev_private;
-
- drm_fbdev_cma_hotplug_event(arcpgu->fbdev);
-}
-
static const struct drm_mode_config_funcs arcpgu_drm_modecfg_funcs = {
.fb_create = drm_gem_fb_create,
- .output_poll_changed = arcpgu_fb_output_poll_changed,
+ .output_poll_changed = drm_fb_helper_output_poll_changed,
.atomic_check = drm_atomic_helper_check,
.atomic_commit = drm_atomic_helper_commit,
};
@@ -51,13 +45,6 @@ static void arcpgu_setup_mode_config(struct drm_device *drm)
DEFINE_DRM_GEM_CMA_FOPS(arcpgu_drm_ops);
-static void arcpgu_lastclose(struct drm_device *drm)
-{
- struct arcpgu_drm_private *arcpgu = drm->dev_private;
-
- drm_fbdev_cma_restore_mode(arcpgu->fbdev);
-}
-
static int arcpgu_load(struct drm_device *drm)
{
struct platform_device *pdev = to_platform_device(drm->dev);
@@ -113,13 +100,9 @@ static int arcpgu_load(struct drm_device *drm)
drm_mode_config_reset(drm);
drm_kms_helper_poll_init(drm);
- arcpgu->fbdev = drm_fbdev_cma_init(drm, 16,
- drm->mode_config.num_connector);
- if (IS_ERR(arcpgu->fbdev)) {
- ret = PTR_ERR(arcpgu->fbdev);
- arcpgu->fbdev = NULL;
- return -ENODEV;
- }
+ ret = drm_fb_cma_fbdev_init(drm, 16, 0);
+ if (ret)
+ return ret;
platform_set_drvdata(pdev, drm);
return 0;
@@ -127,12 +110,7 @@ static int arcpgu_load(struct drm_device *drm)
static int arcpgu_unload(struct drm_device *drm)
{
- struct arcpgu_drm_private *arcpgu = drm->dev_private;
-
- if (arcpgu->fbdev) {
- drm_fbdev_cma_fini(arcpgu->fbdev);
- arcpgu->fbdev = NULL;
- }
+ drm_fb_cma_fbdev_fini(drm);
drm_kms_helper_poll_fini(drm);
drm_mode_config_cleanup(drm);
@@ -167,7 +145,7 @@ static int arcpgu_debugfs_init(struct drm_minor *minor)
static struct drm_driver arcpgu_drm_driver = {
.driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME |
DRIVER_ATOMIC,
- .lastclose = arcpgu_lastclose,
+ .lastclose = drm_fb_helper_lastclose,
.name = "arcpgu",
.desc = "ARC PGU Controller",
.date = "20160219",
--
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] 17+ messages in thread
* [PATCH v3 02/11] drm/arm/hdlcd: Use drm_mode_config_helper_suspend/resume()
2017-12-08 19:37 [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 01/11] drm/arc: Use drm_fb_cma_fbdev_init/fini() Noralf Trønnes
@ 2017-12-08 19:37 ` Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 03/11] drm/arm/hdlcd: Use drm_fb_cma_fbdev_init/fini() Noralf Trønnes
` (9 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-08 19:37 UTC (permalink / raw)
To: dri-devel
Cc: marex, david, alison.wang, puck.chen, narmstrong, abrodkin,
z.liuxinliang, kong.kongxinwei, laurent.pinchart, daniel.vetter,
zourongrong, liviu.dudau
Replace driver's code with the generic helpers that do the same thing
including the NULL check.
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Brian Starkey <brian.starkey@arm.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
---
drivers/gpu/drm/arm/hdlcd_drv.c | 25 +++----------------------
drivers/gpu/drm/arm/hdlcd_drv.h | 1 -
2 files changed, 3 insertions(+), 23 deletions(-)
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index feaa8bc3d7b7..9800a9e388ef 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -27,6 +27,7 @@
#include <drm/drm_fb_cma_helper.h>
#include <drm/drm_gem_cma_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
+#include <drm/drm_modeset_helper.h>
#include <drm/drm_of.h>
#include "hdlcd_drv.h"
@@ -427,35 +428,15 @@ MODULE_DEVICE_TABLE(of, hdlcd_of_match);
static int __maybe_unused hdlcd_pm_suspend(struct device *dev)
{
struct drm_device *drm = dev_get_drvdata(dev);
- struct hdlcd_drm_private *hdlcd = drm ? drm->dev_private : NULL;
- if (!hdlcd)
- return 0;
-
- drm_kms_helper_poll_disable(drm);
- drm_fbdev_cma_set_suspend_unlocked(hdlcd->fbdev, 1);
-
- hdlcd->state = drm_atomic_helper_suspend(drm);
- if (IS_ERR(hdlcd->state)) {
- drm_fbdev_cma_set_suspend_unlocked(hdlcd->fbdev, 0);
- drm_kms_helper_poll_enable(drm);
- return PTR_ERR(hdlcd->state);
- }
-
- return 0;
+ return drm_mode_config_helper_suspend(drm);
}
static int __maybe_unused hdlcd_pm_resume(struct device *dev)
{
struct drm_device *drm = dev_get_drvdata(dev);
- struct hdlcd_drm_private *hdlcd = drm ? drm->dev_private : NULL;
- if (!hdlcd)
- return 0;
-
- drm_atomic_helper_resume(drm, hdlcd->state);
- drm_fbdev_cma_set_suspend_unlocked(hdlcd->fbdev, 0);
- drm_kms_helper_poll_enable(drm);
+ drm_mode_config_helper_resume(drm);
return 0;
}
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.h b/drivers/gpu/drm/arm/hdlcd_drv.h
index 56f34dfff640..58d75d7e1b20 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.h
+++ b/drivers/gpu/drm/arm/hdlcd_drv.h
@@ -12,7 +12,6 @@ struct hdlcd_drm_private {
struct drm_fbdev_cma *fbdev;
struct drm_crtc crtc;
struct drm_plane *plane;
- struct drm_atomic_state *state;
#ifdef CONFIG_DEBUG_FS
atomic_t buffer_underrun_count;
atomic_t bus_error_count;
--
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] 17+ messages in thread
* [PATCH v3 03/11] drm/arm/hdlcd: Use drm_fb_cma_fbdev_init/fini()
2017-12-08 19:37 [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 01/11] drm/arc: Use drm_fb_cma_fbdev_init/fini() Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 02/11] drm/arm/hdlcd: Use drm_mode_config_helper_suspend/resume() Noralf Trønnes
@ 2017-12-08 19:37 ` Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 04/11] drm/hisilicon/kirin: " Noralf Trønnes
` (8 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-08 19:37 UTC (permalink / raw)
To: dri-devel
Cc: marex, david, alison.wang, puck.chen, narmstrong, abrodkin,
z.liuxinliang, kong.kongxinwei, laurent.pinchart, daniel.vetter,
zourongrong, liviu.dudau
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
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>
---
drivers/gpu/drm/arm/hdlcd_drv.c | 37 ++++++-------------------------------
drivers/gpu/drm/arm/hdlcd_drv.h | 1 -
2 files changed, 6 insertions(+), 32 deletions(-)
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index 9800a9e388ef..fd5b8c44af14 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -101,16 +101,9 @@ static int hdlcd_load(struct drm_device *drm, unsigned long flags)
return ret;
}
-static void hdlcd_fb_output_poll_changed(struct drm_device *drm)
-{
- struct hdlcd_drm_private *hdlcd = drm->dev_private;
-
- drm_fbdev_cma_hotplug_event(hdlcd->fbdev);
-}
-
static const struct drm_mode_config_funcs hdlcd_mode_config_funcs = {
.fb_create = drm_gem_fb_create,
- .output_poll_changed = hdlcd_fb_output_poll_changed,
+ .output_poll_changed = drm_fb_helper_output_poll_changed,
.atomic_check = drm_atomic_helper_check,
.atomic_commit = drm_atomic_helper_commit,
};
@@ -125,13 +118,6 @@ static void hdlcd_setup_mode_config(struct drm_device *drm)
drm->mode_config.funcs = &hdlcd_mode_config_funcs;
}
-static void hdlcd_lastclose(struct drm_device *drm)
-{
- struct hdlcd_drm_private *hdlcd = drm->dev_private;
-
- drm_fbdev_cma_restore_mode(hdlcd->fbdev);
-}
-
static irqreturn_t hdlcd_irq(int irq, void *arg)
{
struct drm_device *drm = arg;
@@ -247,7 +233,7 @@ static struct drm_driver hdlcd_driver = {
.driver_features = DRIVER_HAVE_IRQ | DRIVER_GEM |
DRIVER_MODESET | DRIVER_PRIME |
DRIVER_ATOMIC,
- .lastclose = hdlcd_lastclose,
+ .lastclose = drm_fb_helper_lastclose,
.irq_handler = hdlcd_irq,
.irq_preinstall = hdlcd_irq_preinstall,
.irq_postinstall = hdlcd_irq_postinstall,
@@ -322,14 +308,9 @@ static int hdlcd_drm_bind(struct device *dev)
drm_mode_config_reset(drm);
drm_kms_helper_poll_init(drm);
- hdlcd->fbdev = drm_fbdev_cma_init(drm, 32,
- drm->mode_config.num_connector);
-
- if (IS_ERR(hdlcd->fbdev)) {
- ret = PTR_ERR(hdlcd->fbdev);
- hdlcd->fbdev = NULL;
+ ret = drm_fb_cma_fbdev_init(drm, 32, 0);
+ if (ret)
goto err_fbdev;
- }
ret = drm_dev_register(drm, 0);
if (ret)
@@ -338,10 +319,7 @@ static int hdlcd_drm_bind(struct device *dev)
return 0;
err_register:
- if (hdlcd->fbdev) {
- drm_fbdev_cma_fini(hdlcd->fbdev);
- hdlcd->fbdev = NULL;
- }
+ drm_fb_cma_fbdev_fini(drm);
err_fbdev:
drm_kms_helper_poll_fini(drm);
err_vblank:
@@ -367,10 +345,7 @@ static void hdlcd_drm_unbind(struct device *dev)
struct hdlcd_drm_private *hdlcd = drm->dev_private;
drm_dev_unregister(drm);
- if (hdlcd->fbdev) {
- drm_fbdev_cma_fini(hdlcd->fbdev);
- hdlcd->fbdev = NULL;
- }
+ drm_fb_cma_fbdev_fini(drm);
drm_kms_helper_poll_fini(drm);
component_unbind_all(dev, drm);
of_node_put(hdlcd->crtc.port);
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.h b/drivers/gpu/drm/arm/hdlcd_drv.h
index 58d75d7e1b20..fd438d177b64 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.h
+++ b/drivers/gpu/drm/arm/hdlcd_drv.h
@@ -9,7 +9,6 @@
struct hdlcd_drm_private {
void __iomem *mmio;
struct clk *clk;
- struct drm_fbdev_cma *fbdev;
struct drm_crtc crtc;
struct drm_plane *plane;
#ifdef CONFIG_DEBUG_FS
--
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] 17+ messages in thread
* [PATCH v3 04/11] drm/hisilicon/kirin: Use drm_fb_cma_fbdev_init/fini()
2017-12-08 19:37 [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
` (2 preceding siblings ...)
2017-12-08 19:37 ` [PATCH v3 03/11] drm/arm/hdlcd: Use drm_fb_cma_fbdev_init/fini() Noralf Trønnes
@ 2017-12-08 19:37 ` Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 05/11] drm/meson: " Noralf Trønnes
` (7 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-08 19:37 UTC (permalink / raw)
To: dri-devel
Cc: marex, david, alison.wang, puck.chen, narmstrong, abrodkin,
z.liuxinliang, kong.kongxinwei, laurent.pinchart, daniel.vetter,
zourongrong, liviu.dudau
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
Cc: Rongrong Zou <zourongrong@gmail.com>
Cc: Xinwei Kong <kong.kongxinwei@hisilicon.com>
Cc: Chen Feng <puck.chen@hisilicon.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
---
drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 35 ++++---------------------
drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h | 4 ---
2 files changed, 5 insertions(+), 34 deletions(-)
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
index ddb0403f1975..e3673efbf1c2 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
@@ -21,6 +21,7 @@
#include <drm/drmP.h>
#include <drm/drm_gem_cma_helper.h>
+#include <drm/drm_fb_helper.h>
#include <drm/drm_fb_cma_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
#include <drm/drm_atomic_helper.h>
@@ -33,32 +34,17 @@ static struct kirin_dc_ops *dc_ops;
static int kirin_drm_kms_cleanup(struct drm_device *dev)
{
- struct kirin_drm_private *priv = dev->dev_private;
-
- if (priv->fbdev) {
- drm_fbdev_cma_fini(priv->fbdev);
- priv->fbdev = NULL;
- }
-
+ drm_fb_cma_fbdev_fini(dev);
drm_kms_helper_poll_fini(dev);
dc_ops->cleanup(to_platform_device(dev->dev));
drm_mode_config_cleanup(dev);
- devm_kfree(dev->dev, priv);
- dev->dev_private = NULL;
return 0;
}
-static void kirin_fbdev_output_poll_changed(struct drm_device *dev)
-{
- struct kirin_drm_private *priv = dev->dev_private;
-
- drm_fbdev_cma_hotplug_event(priv->fbdev);
-}
-
static const struct drm_mode_config_funcs kirin_drm_mode_config_funcs = {
.fb_create = drm_gem_fb_create,
- .output_poll_changed = kirin_fbdev_output_poll_changed,
+ .output_poll_changed = drm_fb_helper_output_poll_changed,
.atomic_check = drm_atomic_helper_check,
.atomic_commit = drm_atomic_helper_commit,
};
@@ -76,14 +62,8 @@ static void kirin_drm_mode_config_init(struct drm_device *dev)
static int kirin_drm_kms_init(struct drm_device *dev)
{
- struct kirin_drm_private *priv;
int ret;
- priv = devm_kzalloc(dev->dev, sizeof(*priv), GFP_KERNEL);
- if (!priv)
- return -ENOMEM;
-
- dev->dev_private = priv;
dev_set_drvdata(dev->dev, dev);
/* dev->mode_config initialization */
@@ -117,12 +97,9 @@ static int kirin_drm_kms_init(struct drm_device *dev)
/* init kms poll for handling hpd */
drm_kms_helper_poll_init(dev);
- priv->fbdev = drm_fbdev_cma_init(dev, 32,
- dev->mode_config.num_connector);
-
- if (IS_ERR(priv->fbdev)) {
+ ret = drm_fb_cma_fbdev_init(dev, 32, 0);
+ if (ret) {
DRM_ERROR("failed to initialize fbdev.\n");
- ret = PTR_ERR(priv->fbdev);
goto err_cleanup_poll;
}
return 0;
@@ -135,8 +112,6 @@ static int kirin_drm_kms_init(struct drm_device *dev)
dc_ops->cleanup(to_platform_device(dev->dev));
err_mode_config_cleanup:
drm_mode_config_cleanup(dev);
- devm_kfree(dev->dev, priv);
- dev->dev_private = NULL;
return ret;
}
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h
index 56cb62df065c..ad027d1cc826 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h
@@ -19,10 +19,6 @@ struct kirin_dc_ops {
void (*cleanup)(struct platform_device *pdev);
};
-struct kirin_drm_private {
- struct drm_fbdev_cma *fbdev;
-};
-
extern const struct kirin_dc_ops ade_dc_ops;
#endif /* __KIRIN_DRM_DRV_H__ */
--
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] 17+ messages in thread
* [PATCH v3 05/11] drm/meson: Use drm_fb_cma_fbdev_init/fini()
2017-12-08 19:37 [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
` (3 preceding siblings ...)
2017-12-08 19:37 ` [PATCH v3 04/11] drm/hisilicon/kirin: " Noralf Trønnes
@ 2017-12-08 19:37 ` Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 06/11] drm/mxsfb: " Noralf Trønnes
` (6 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-08 19:37 UTC (permalink / raw)
To: dri-devel
Cc: marex, david, alison.wang, puck.chen, narmstrong, abrodkin,
z.liuxinliang, kong.kongxinwei, laurent.pinchart, daniel.vetter,
zourongrong, liviu.dudau
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Cc: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
---
drivers/gpu/drm/meson/meson_drv.c | 20 +++++---------------
drivers/gpu/drm/meson/meson_drv.h | 1 -
2 files changed, 5 insertions(+), 16 deletions(-)
diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
index f9ad0e960263..55f0f2c07101 100644
--- a/drivers/gpu/drm/meson/meson_drv.c
+++ b/drivers/gpu/drm/meson/meson_drv.c
@@ -35,6 +35,7 @@
#include <drm/drm_plane_helper.h>
#include <drm/drm_gem_cma_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
+#include <drm/drm_fb_helper.h>
#include <drm/drm_fb_cma_helper.h>
#include <drm/drm_rect.h>
#include <drm/drm_fb_helper.h>
@@ -68,15 +69,8 @@
* - Powering Up HDMI controller and PHY
*/
-static void meson_fb_output_poll_changed(struct drm_device *dev)
-{
- struct meson_drm *priv = dev->dev_private;
-
- drm_fbdev_cma_hotplug_event(priv->fbdev);
-}
-
static const struct drm_mode_config_funcs meson_mode_config_funcs = {
- .output_poll_changed = meson_fb_output_poll_changed,
+ .output_poll_changed = drm_fb_helper_output_poll_changed,
.atomic_check = drm_atomic_helper_check,
.atomic_commit = drm_atomic_helper_commit,
.fb_create = drm_gem_fb_create,
@@ -263,12 +257,9 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
drm_mode_config_reset(drm);
- priv->fbdev = drm_fbdev_cma_init(drm, 32,
- drm->mode_config.num_connector);
- if (IS_ERR(priv->fbdev)) {
- ret = PTR_ERR(priv->fbdev);
+ ret = drm_fb_cma_fbdev_init(drm, 32, 0);
+ if (ret)
goto free_drm;
- }
drm_kms_helper_poll_init(drm);
@@ -294,11 +285,10 @@ static int meson_drv_bind(struct device *dev)
static void meson_drv_unbind(struct device *dev)
{
struct drm_device *drm = dev_get_drvdata(dev);
- struct meson_drm *priv = drm->dev_private;
drm_dev_unregister(drm);
drm_kms_helper_poll_fini(drm);
- drm_fbdev_cma_fini(priv->fbdev);
+ drm_fb_cma_fbdev_fini(drm);
drm_mode_config_cleanup(drm);
drm_dev_unref(drm);
diff --git a/drivers/gpu/drm/meson/meson_drv.h b/drivers/gpu/drm/meson/meson_drv.h
index 5e8b392b9d1f..746bbdbbdec3 100644
--- a/drivers/gpu/drm/meson/meson_drv.h
+++ b/drivers/gpu/drm/meson/meson_drv.h
@@ -33,7 +33,6 @@ struct meson_drm {
struct drm_device *drm;
struct drm_crtc *crtc;
- struct drm_fbdev_cma *fbdev;
struct drm_plane *primary_plane;
/* Components Data */
--
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] 17+ messages in thread
* [PATCH v3 06/11] drm/mxsfb: Use drm_fb_cma_fbdev_init/fini()
2017-12-08 19:37 [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
` (4 preceding siblings ...)
2017-12-08 19:37 ` [PATCH v3 05/11] drm/meson: " Noralf Trønnes
@ 2017-12-08 19:37 ` Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 07/11] drm/rcar-du: Use drm_mode_config_helper_suspend/resume() Noralf Trønnes
` (5 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-08 19:37 UTC (permalink / raw)
To: dri-devel
Cc: marex, david, alison.wang, puck.chen, narmstrong, abrodkin,
z.liuxinliang, kong.kongxinwei, laurent.pinchart, daniel.vetter,
zourongrong, liviu.dudau
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Cc: Marek Vasut <marex@denx.de>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
---
drivers/gpu/drm/mxsfb/mxsfb_drv.c | 21 ++++-----------------
drivers/gpu/drm/mxsfb/mxsfb_drv.h | 1 -
2 files changed, 4 insertions(+), 18 deletions(-)
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index 1207ffe36250..d846dbfc22e9 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -223,11 +223,8 @@ static int mxsfb_load(struct drm_device *drm, unsigned long flags)
drm_kms_helper_poll_init(drm);
- mxsfb->fbdev = drm_fbdev_cma_init(drm, 32,
- drm->mode_config.num_connector);
- if (IS_ERR(mxsfb->fbdev)) {
- ret = PTR_ERR(mxsfb->fbdev);
- mxsfb->fbdev = NULL;
+ ret = drm_fb_cma_fbdev_init(drm, 32, 0);
+ if (ret) {
dev_err(drm->dev, "Failed to init FB CMA area\n");
goto err_cma;
}
@@ -250,10 +247,7 @@ static int mxsfb_load(struct drm_device *drm, unsigned long flags)
static void mxsfb_unload(struct drm_device *drm)
{
- struct mxsfb_drm_private *mxsfb = drm->dev_private;
-
- if (mxsfb->fbdev)
- drm_fbdev_cma_fini(mxsfb->fbdev);
+ drm_fb_cma_fbdev_fini(drm);
drm_kms_helper_poll_fini(drm);
drm_mode_config_cleanup(drm);
@@ -267,13 +261,6 @@ static void mxsfb_unload(struct drm_device *drm)
pm_runtime_disable(drm->dev);
}
-static void mxsfb_lastclose(struct drm_device *drm)
-{
- struct mxsfb_drm_private *mxsfb = drm->dev_private;
-
- drm_fbdev_cma_restore_mode(mxsfb->fbdev);
-}
-
static int mxsfb_enable_vblank(struct drm_device *drm, unsigned int crtc)
{
struct mxsfb_drm_private *mxsfb = drm->dev_private;
@@ -329,7 +316,7 @@ static struct drm_driver mxsfb_driver = {
.driver_features = DRIVER_GEM | DRIVER_MODESET |
DRIVER_PRIME | DRIVER_ATOMIC |
DRIVER_HAVE_IRQ,
- .lastclose = mxsfb_lastclose,
+ .lastclose = drm_fb_helper_lastclose,
.irq_handler = mxsfb_irq_handler,
.irq_preinstall = mxsfb_irq_preinstall,
.irq_uninstall = mxsfb_irq_preinstall,
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.h b/drivers/gpu/drm/mxsfb/mxsfb_drv.h
index 5d0883fc805b..bedd6801edca 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.h
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.h
@@ -37,7 +37,6 @@ struct mxsfb_drm_private {
struct drm_simple_display_pipe pipe;
struct drm_connector connector;
struct drm_panel *panel;
- struct drm_fbdev_cma *fbdev;
};
int mxsfb_setup_crtc(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] 17+ messages in thread
* [PATCH v3 07/11] drm/rcar-du: Use drm_mode_config_helper_suspend/resume()
2017-12-08 19:37 [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
` (5 preceding siblings ...)
2017-12-08 19:37 ` [PATCH v3 06/11] drm/mxsfb: " Noralf Trønnes
@ 2017-12-08 19:37 ` Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 08/11] drm/rcar-du: Use drm_fb_cma_fbdev_init/fini() Noralf Trønnes
` (4 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-08 19:37 UTC (permalink / raw)
To: dri-devel
Cc: marex, david, alison.wang, puck.chen, narmstrong, abrodkin,
z.liuxinliang, kong.kongxinwei, laurent.pinchart, daniel.vetter,
zourongrong, liviu.dudau
Replace driver's code with the generic helpers that do the same thing.
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
---
drivers/gpu/drm/rcar-du/rcar_du_drv.c | 21 +++------------------
drivers/gpu/drm/rcar-du/rcar_du_drv.h | 1 -
2 files changed, 3 insertions(+), 19 deletions(-)
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
index 6e02c762a557..db040a64de45 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
@@ -22,10 +22,10 @@
#include <linux/wait.h>
#include <drm/drmP.h>
-#include <drm/drm_atomic_helper.h>
#include <drm/drm_crtc_helper.h>
#include <drm/drm_fb_cma_helper.h>
#include <drm/drm_gem_cma_helper.h>
+#include <drm/drm_modeset_helper.h>
#include "rcar_du_drv.h"
#include "rcar_du_kms.h"
@@ -310,30 +310,15 @@ static struct drm_driver rcar_du_driver = {
static int rcar_du_pm_suspend(struct device *dev)
{
struct rcar_du_device *rcdu = dev_get_drvdata(dev);
- struct drm_atomic_state *state;
- drm_kms_helper_poll_disable(rcdu->ddev);
- drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, true);
-
- state = drm_atomic_helper_suspend(rcdu->ddev);
- if (IS_ERR(state)) {
- drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
- drm_kms_helper_poll_enable(rcdu->ddev);
- return PTR_ERR(state);
- }
-
- rcdu->suspend_state = state;
-
- return 0;
+ return drm_mode_config_helper_suspend(rcdu->ddev);
}
static int rcar_du_pm_resume(struct device *dev)
{
struct rcar_du_device *rcdu = dev_get_drvdata(dev);
- drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state);
- drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
- drm_kms_helper_poll_enable(rcdu->ddev);
+ drm_mode_config_helper_resume(rcdu->ddev);
return 0;
}
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.h b/drivers/gpu/drm/rcar-du/rcar_du_drv.h
index f400fde65a0c..f8cd79488ece 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_drv.h
+++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.h
@@ -81,7 +81,6 @@ struct rcar_du_device {
struct drm_device *ddev;
struct drm_fbdev_cma *fbdev;
- struct drm_atomic_state *suspend_state;
struct rcar_du_crtc crtcs[RCAR_DU_MAX_CRTCS];
unsigned int num_crtcs;
--
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] 17+ messages in thread
* [PATCH v3 08/11] drm/rcar-du: Use drm_fb_cma_fbdev_init/fini()
2017-12-08 19:37 [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
` (6 preceding siblings ...)
2017-12-08 19:37 ` [PATCH v3 07/11] drm/rcar-du: Use drm_mode_config_helper_suspend/resume() Noralf Trønnes
@ 2017-12-08 19:37 ` Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 09/11] drm/fsl-dcu: " Noralf Trønnes
` (3 subsequent siblings)
11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-08 19:37 UTC (permalink / raw)
To: dri-devel
Cc: marex, david, alison.wang, puck.chen, narmstrong, abrodkin,
z.liuxinliang, kong.kongxinwei, laurent.pinchart, daniel.vetter,
zourongrong, liviu.dudau
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
---
drivers/gpu/drm/rcar-du/rcar_du_drv.c | 13 +++----------
drivers/gpu/drm/rcar-du/rcar_du_drv.h | 2 --
drivers/gpu/drm/rcar-du/rcar_du_kms.c | 20 +++++---------------
3 files changed, 8 insertions(+), 27 deletions(-)
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
index db040a64de45..de0374cb21b4 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
@@ -23,6 +23,7 @@
#include <drm/drmP.h>
#include <drm/drm_crtc_helper.h>
+#include <drm/drm_fb_helper.h>
#include <drm/drm_fb_cma_helper.h>
#include <drm/drm_gem_cma_helper.h>
#include <drm/drm_modeset_helper.h>
@@ -269,19 +270,12 @@ MODULE_DEVICE_TABLE(of, rcar_du_of_table);
* DRM operations
*/
-static void rcar_du_lastclose(struct drm_device *dev)
-{
- struct rcar_du_device *rcdu = dev->dev_private;
-
- drm_fbdev_cma_restore_mode(rcdu->fbdev);
-}
-
DEFINE_DRM_GEM_CMA_FOPS(rcar_du_fops);
static struct drm_driver rcar_du_driver = {
.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME
| DRIVER_ATOMIC,
- .lastclose = rcar_du_lastclose,
+ .lastclose = drm_fb_helper_lastclose,
.gem_free_object_unlocked = drm_gem_cma_free_object,
.gem_vm_ops = &drm_gem_cma_vm_ops,
.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
@@ -339,8 +333,7 @@ static int rcar_du_remove(struct platform_device *pdev)
drm_dev_unregister(ddev);
- if (rcdu->fbdev)
- drm_fbdev_cma_fini(rcdu->fbdev);
+ drm_fb_cma_fbdev_fini(ddev);
drm_kms_helper_poll_fini(ddev);
drm_mode_config_cleanup(ddev);
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.h b/drivers/gpu/drm/rcar-du/rcar_du_drv.h
index f8cd79488ece..bb3516ad26b3 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_drv.h
+++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.h
@@ -24,7 +24,6 @@
struct clk;
struct device;
struct drm_device;
-struct drm_fbdev_cma;
struct rcar_du_device;
struct rcar_du_lvdsenc;
@@ -80,7 +79,6 @@ struct rcar_du_device {
void __iomem *mmio;
struct drm_device *ddev;
- struct drm_fbdev_cma *fbdev;
struct rcar_du_crtc crtcs[RCAR_DU_MAX_CRTCS];
unsigned int num_crtcs;
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_kms.c b/drivers/gpu/drm/rcar-du/rcar_du_kms.c
index 566d1a948c8f..344c4613fbc1 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_kms.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_kms.c
@@ -16,6 +16,7 @@
#include <drm/drm_atomic_helper.h>
#include <drm/drm_crtc.h>
#include <drm/drm_crtc_helper.h>
+#include <drm/drm_fb_helper.h>
#include <drm/drm_fb_cma_helper.h>
#include <drm/drm_gem_cma_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
@@ -217,13 +218,6 @@ rcar_du_fb_create(struct drm_device *dev, struct drm_file *file_priv,
return drm_gem_fb_create(dev, file_priv, mode_cmd);
}
-static void rcar_du_output_poll_changed(struct drm_device *dev)
-{
- struct rcar_du_device *rcdu = dev->dev_private;
-
- drm_fbdev_cma_hotplug_event(rcdu->fbdev);
-}
-
/* -----------------------------------------------------------------------------
* Atomic Check and Update
*/
@@ -278,7 +272,7 @@ static const struct drm_mode_config_helper_funcs rcar_du_mode_config_helper = {
static const struct drm_mode_config_funcs rcar_du_mode_config_funcs = {
.fb_create = rcar_du_fb_create,
- .output_poll_changed = rcar_du_output_poll_changed,
+ .output_poll_changed = drm_fb_helper_output_poll_changed,
.atomic_check = rcar_du_atomic_check,
.atomic_commit = drm_atomic_helper_commit,
};
@@ -519,7 +513,6 @@ int rcar_du_modeset_init(struct rcar_du_device *rcdu)
struct drm_device *dev = rcdu->ddev;
struct drm_encoder *encoder;
- struct drm_fbdev_cma *fbdev;
unsigned int num_encoders;
unsigned int num_groups;
unsigned int i;
@@ -629,12 +622,9 @@ int rcar_du_modeset_init(struct rcar_du_device *rcdu)
drm_kms_helper_poll_init(dev);
if (dev->mode_config.num_connector) {
- fbdev = drm_fbdev_cma_init(dev, 32,
- dev->mode_config.num_connector);
- if (IS_ERR(fbdev))
- return PTR_ERR(fbdev);
-
- rcdu->fbdev = fbdev;
+ ret = drm_fb_cma_fbdev_init(dev, 32, 0);
+ if (ret)
+ return ret;
} else {
dev_info(rcdu->dev,
"no connector found, disabling fbdev emulation\n");
--
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] 17+ messages in thread
* [PATCH v3 09/11] drm/fsl-dcu: Use drm_fb_cma_fbdev_init/fini()
2017-12-08 19:37 [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
` (7 preceding siblings ...)
2017-12-08 19:37 ` [PATCH v3 08/11] drm/rcar-du: Use drm_fb_cma_fbdev_init/fini() Noralf Trønnes
@ 2017-12-08 19:37 ` Noralf Trønnes
2018-09-26 20:26 ` Stefan Agner
2017-12-08 19:37 ` [PATCH v3 10/11] drm/tinydrm: Use drm_fb_cma_fbdev_init_with_funcs/fini() Noralf Trønnes
` (2 subsequent siblings)
11 siblings, 1 reply; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-08 19:37 UTC (permalink / raw)
To: dri-devel
Cc: marex, david, alison.wang, puck.chen, narmstrong, abrodkin,
z.liuxinliang, kong.kongxinwei, laurent.pinchart, daniel.vetter,
zourongrong, liviu.dudau
Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
the fact that drm_device holds a pointer to the drm_fb_helper structure.
This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Remove console.h inclusion which was forgotten when converting to the
suspend/resume helpers.
Cc: Stefan Agner <stefan@agner.ch>
Cc: Alison Wang <alison.wang@freescale.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
---
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 26 ++++++--------------------
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h | 1 -
2 files changed, 6 insertions(+), 21 deletions(-)
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
index 80232321a244..e487a2002783 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
@@ -11,7 +11,6 @@
#include <linux/clk.h>
#include <linux/clk-provider.h>
-#include <linux/console.h>
#include <linux/io.h>
#include <linux/mfd/syscon.h>
#include <linux/mm.h>
@@ -25,6 +24,7 @@
#include <drm/drmP.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_crtc_helper.h>
+#include <drm/drm_fb_helper.h>
#include <drm/drm_fb_cma_helper.h>
#include <drm/drm_gem_cma_helper.h>
#include <drm/drm_modeset_helper.h>
@@ -89,19 +89,15 @@ static int fsl_dcu_load(struct drm_device *dev, unsigned long flags)
"Invalid legacyfb_depth. Defaulting to 24bpp\n");
legacyfb_depth = 24;
}
- fsl_dev->fbdev = drm_fbdev_cma_init(dev, legacyfb_depth, 1);
- if (IS_ERR(fsl_dev->fbdev)) {
- ret = PTR_ERR(fsl_dev->fbdev);
- fsl_dev->fbdev = NULL;
+ ret = drm_fb_cma_fbdev_init(dev, legacyfb_depth, 1);
+ if (ret)
goto done;
- }
return 0;
done:
drm_kms_helper_poll_fini(dev);
- if (fsl_dev->fbdev)
- drm_fbdev_cma_fini(fsl_dev->fbdev);
+ drm_fb_cma_fbdev_fini(dev);
drm_mode_config_cleanup(dev);
drm_irq_uninstall(dev);
@@ -112,13 +108,10 @@ static int fsl_dcu_load(struct drm_device *dev, unsigned long flags)
static void fsl_dcu_unload(struct drm_device *dev)
{
- struct fsl_dcu_drm_device *fsl_dev = dev->dev_private;
-
drm_atomic_helper_shutdown(dev);
drm_kms_helper_poll_fini(dev);
- if (fsl_dev->fbdev)
- drm_fbdev_cma_fini(fsl_dev->fbdev);
+ drm_fb_cma_fbdev_fini(dev);
drm_mode_config_cleanup(dev);
drm_irq_uninstall(dev);
@@ -147,19 +140,12 @@ static irqreturn_t fsl_dcu_drm_irq(int irq, void *arg)
return IRQ_HANDLED;
}
-static void fsl_dcu_drm_lastclose(struct drm_device *dev)
-{
- struct fsl_dcu_drm_device *fsl_dev = dev->dev_private;
-
- drm_fbdev_cma_restore_mode(fsl_dev->fbdev);
-}
-
DEFINE_DRM_GEM_CMA_FOPS(fsl_dcu_drm_fops);
static struct drm_driver fsl_dcu_drm_driver = {
.driver_features = DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET
| DRIVER_PRIME | DRIVER_ATOMIC,
- .lastclose = fsl_dcu_drm_lastclose,
+ .lastclose = drm_fb_helper_lastclose,
.load = fsl_dcu_load,
.unload = fsl_dcu_unload,
.irq_handler = fsl_dcu_drm_irq,
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
index 93bfb98012d4..cb87bb74cb87 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
@@ -191,7 +191,6 @@ struct fsl_dcu_drm_device {
/*protects hardware register*/
spinlock_t irq_lock;
struct drm_device *drm;
- struct drm_fbdev_cma *fbdev;
struct drm_crtc crtc;
struct drm_encoder encoder;
struct fsl_dcu_drm_connector connector;
--
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] 17+ messages in thread
* [PATCH v3 10/11] drm/tinydrm: Use drm_fb_cma_fbdev_init_with_funcs/fini()
2017-12-08 19:37 [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
` (8 preceding siblings ...)
2017-12-08 19:37 ` [PATCH v3 09/11] drm/fsl-dcu: " Noralf Trønnes
@ 2017-12-08 19:37 ` Noralf Trønnes
2017-12-08 21:34 ` David Lechner
2017-12-08 19:37 ` [PATCH v3 11/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
2018-09-27 12:44 ` [PATCH v3 00/11] " Noralf Trønnes
11 siblings, 1 reply; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-08 19:37 UTC (permalink / raw)
To: dri-devel
Cc: marex, david, alison.wang, puck.chen, narmstrong, abrodkin,
z.liuxinliang, kong.kongxinwei, laurent.pinchart, daniel.vetter,
zourongrong, liviu.dudau
Use drm_fb_cma_fbdev_init_with_funcs() and drm_fb_cma_fbdev_fini() which
relies on the fact that drm_device holds a pointer to the drm_fb_helper
structure. This means that the driver doesn't have to keep track of that.
Also use the drm_fb_helper functions directly.
Remove todo entry.
Cc: David Lechner <david@lechnology.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: David Lechner <david@lechnology.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
Documentation/gpu/todo.rst | 5 ----
drivers/gpu/drm/tinydrm/core/tinydrm-core.c | 37 ++++-------------------------
drivers/gpu/drm/tinydrm/ili9225.c | 3 ++-
drivers/gpu/drm/tinydrm/mi0283qt.c | 3 ++-
drivers/gpu/drm/tinydrm/st7586.c | 3 ++-
include/drm/tinydrm/tinydrm.h | 3 ---
6 files changed, 11 insertions(+), 43 deletions(-)
diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst
index af614746d9c5..f421a54527d2 100644
--- a/Documentation/gpu/todo.rst
+++ b/Documentation/gpu/todo.rst
@@ -395,11 +395,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.
-- tinydrm_lastclose could be drm_fb_helper_lastclose. Only thing we need
- for that is to store the drm_fb_helper pointer somewhere in
- drm_device->mode_config. And then we could roll that out to all the
- drivers.
-
- tinydrm_gem_cma_prime_import_sg_table should probably go into the cma
helpers, as a _vmapped variant (since not every driver needs the vmap).
And tinydrm_gem_cma_free_object could the be merged into
diff --git a/drivers/gpu/drm/tinydrm/core/tinydrm-core.c b/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
index bd7b82824a34..4c6616278c48 100644
--- a/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
+++ b/drivers/gpu/drm/tinydrm/core/tinydrm-core.c
@@ -10,6 +10,7 @@
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_crtc_helper.h>
+#include <drm/drm_fb_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
#include <drm/tinydrm/tinydrm.h>
#include <linux/device.h>
@@ -35,23 +36,6 @@
* and registers the DRM device using devm_tinydrm_register().
*/
-/**
- * tinydrm_lastclose - DRM lastclose helper
- * @drm: DRM device
- *
- * This function ensures that fbdev is restored when drm_lastclose() is called
- * on the last drm_release(). Drivers can use this as their
- * &drm_driver->lastclose callback.
- */
-void tinydrm_lastclose(struct drm_device *drm)
-{
- struct tinydrm_device *tdev = drm->dev_private;
-
- DRM_DEBUG_KMS("\n");
- drm_fbdev_cma_restore_mode(tdev->fbdev_cma);
-}
-EXPORT_SYMBOL(tinydrm_lastclose);
-
/**
* tinydrm_gem_cma_prime_import_sg_table - Produce a CMA GEM object from
* another driver's scatter/gather table of pinned pages
@@ -214,35 +198,24 @@ EXPORT_SYMBOL(devm_tinydrm_init);
static int tinydrm_register(struct tinydrm_device *tdev)
{
struct drm_device *drm = tdev->drm;
- int bpp = drm->mode_config.preferred_depth;
- struct drm_fbdev_cma *fbdev;
int ret;
ret = drm_dev_register(tdev->drm, 0);
if (ret)
return ret;
- fbdev = drm_fbdev_cma_init_with_funcs(drm, bpp ? bpp : 32,
- drm->mode_config.num_connector,
- tdev->fb_funcs);
- if (IS_ERR(fbdev))
- DRM_ERROR("Failed to initialize fbdev: %ld\n", PTR_ERR(fbdev));
- else
- tdev->fbdev_cma = fbdev;
+ ret = drm_fb_cma_fbdev_init_with_funcs(drm, 0, 0, tdev->fb_funcs);
+ if (ret)
+ DRM_ERROR("Failed to initialize fbdev: %d\n", ret);
return 0;
}
static void tinydrm_unregister(struct tinydrm_device *tdev)
{
- struct drm_fbdev_cma *fbdev_cma = tdev->fbdev_cma;
-
drm_atomic_helper_shutdown(tdev->drm);
- /* don't restore fbdev in lastclose, keep pipeline disabled */
- tdev->fbdev_cma = NULL;
+ drm_fb_cma_fbdev_fini(tdev->drm);
drm_dev_unregister(tdev->drm);
- if (fbdev_cma)
- drm_fbdev_cma_fini(fbdev_cma);
}
static void devm_tinydrm_register_release(void *data)
diff --git a/drivers/gpu/drm/tinydrm/ili9225.c b/drivers/gpu/drm/tinydrm/ili9225.c
index 3b766a26aa61..e8f1b3af3852 100644
--- a/drivers/gpu/drm/tinydrm/ili9225.c
+++ b/drivers/gpu/drm/tinydrm/ili9225.c
@@ -20,6 +20,7 @@
#include <linux/spi/spi.h>
#include <video/mipi_display.h>
+#include <drm/drm_fb_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
#include <drm/tinydrm/mipi-dbi.h>
#include <drm/tinydrm/tinydrm-helpers.h>
@@ -381,7 +382,7 @@ static struct drm_driver ili9225_driver = {
DRIVER_ATOMIC,
.fops = &ili9225_fops,
TINYDRM_GEM_DRIVER_OPS,
- .lastclose = tinydrm_lastclose,
+ .lastclose = drm_fb_helper_lastclose,
.name = "ili9225",
.desc = "Ilitek ILI9225",
.date = "20171106",
diff --git a/drivers/gpu/drm/tinydrm/mi0283qt.c b/drivers/gpu/drm/tinydrm/mi0283qt.c
index 70ae4f76f455..674d407640be 100644
--- a/drivers/gpu/drm/tinydrm/mi0283qt.c
+++ b/drivers/gpu/drm/tinydrm/mi0283qt.c
@@ -9,6 +9,7 @@
* (at your option) any later version.
*/
+#include <drm/drm_fb_helper.h>
#include <drm/drm_modeset_helper.h>
#include <drm/tinydrm/ili9341.h>
#include <drm/tinydrm/mipi-dbi.h>
@@ -140,7 +141,7 @@ static struct drm_driver mi0283qt_driver = {
DRIVER_ATOMIC,
.fops = &mi0283qt_fops,
TINYDRM_GEM_DRIVER_OPS,
- .lastclose = tinydrm_lastclose,
+ .lastclose = drm_fb_helper_lastclose,
.debugfs_init = mipi_dbi_debugfs_init,
.name = "mi0283qt",
.desc = "Multi-Inno MI0283QT",
diff --git a/drivers/gpu/drm/tinydrm/st7586.c b/drivers/gpu/drm/tinydrm/st7586.c
index 0a2c60da5c0e..5aebfceb740e 100644
--- a/drivers/gpu/drm/tinydrm/st7586.c
+++ b/drivers/gpu/drm/tinydrm/st7586.c
@@ -17,6 +17,7 @@
#include <linux/spi/spi.h>
#include <video/mipi_display.h>
+#include <drm/drm_fb_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
#include <drm/tinydrm/mipi-dbi.h>
#include <drm/tinydrm/tinydrm-helpers.h>
@@ -320,7 +321,7 @@ static struct drm_driver st7586_driver = {
DRIVER_ATOMIC,
.fops = &st7586_fops,
TINYDRM_GEM_DRIVER_OPS,
- .lastclose = tinydrm_lastclose,
+ .lastclose = drm_fb_helper_lastclose,
.debugfs_init = mipi_dbi_debugfs_init,
.name = "st7586",
.desc = "Sitronix ST7586",
diff --git a/include/drm/tinydrm/tinydrm.h b/include/drm/tinydrm/tinydrm.h
index 03cd9d72308c..07a9a11fe19d 100644
--- a/include/drm/tinydrm/tinydrm.h
+++ b/include/drm/tinydrm/tinydrm.h
@@ -19,14 +19,12 @@
* @drm: DRM device
* @pipe: Display pipe structure
* @dirty_lock: Serializes framebuffer flushing
- * @fbdev_cma: CMA fbdev structure
* @fb_funcs: Framebuffer functions used when creating framebuffers
*/
struct tinydrm_device {
struct drm_device *drm;
struct drm_simple_display_pipe pipe;
struct mutex dirty_lock;
- struct drm_fbdev_cma *fbdev_cma;
const struct drm_framebuffer_funcs *fb_funcs;
};
@@ -80,7 +78,6 @@ pipe_to_tinydrm(struct drm_simple_display_pipe *pipe)
.type = DRM_MODE_TYPE_DRIVER, \
.clock = 1 /* pass validation */
-void tinydrm_lastclose(struct drm_device *drm);
void tinydrm_gem_cma_free_object(struct drm_gem_object *gem_obj);
struct drm_gem_object *
tinydrm_gem_cma_prime_import_sg_table(struct drm_device *drm,
--
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] 17+ messages in thread
* [PATCH v3 11/11] drm/cma-helper: Remove drm_fbdev_cma* functions
2017-12-08 19:37 [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
` (9 preceding siblings ...)
2017-12-08 19:37 ` [PATCH v3 10/11] drm/tinydrm: Use drm_fb_cma_fbdev_init_with_funcs/fini() Noralf Trønnes
@ 2017-12-08 19:37 ` Noralf Trønnes
2018-09-27 12:44 ` [PATCH v3 00/11] " Noralf Trønnes
11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-08 19:37 UTC (permalink / raw)
To: dri-devel
Cc: marex, david, alison.wang, puck.chen, narmstrong, abrodkin,
z.liuxinliang, kong.kongxinwei, laurent.pinchart, daniel.vetter,
zourongrong, liviu.dudau
Remove the unused struct drm_fbdev_cma functions.
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
drivers/gpu/drm/drm_fb_cma_helper.c | 158 ------------------------------------
include/drm/drm_fb_cma_helper.h | 28 +------
2 files changed, 3 insertions(+), 183 deletions(-)
diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
index 186d00adfb5f..7e2a01fa8a38 100644
--- a/drivers/gpu/drm/drm_fb_cma_helper.c
+++ b/drivers/gpu/drm/drm_fb_cma_helper.c
@@ -389,161 +389,3 @@ void drm_fb_cma_fbdev_fini(struct drm_device *dev)
kfree(to_fbdev_cma(fb_helper));
}
EXPORT_SYMBOL_GPL(drm_fb_cma_fbdev_fini);
-
-/**
- * drm_fbdev_cma_init_with_funcs() - Allocate and initializes a drm_fbdev_cma struct
- * @dev: DRM device
- * @preferred_bpp: Preferred bits per pixel for the device
- * @max_conn_count: Maximum number of connectors
- * @funcs: fb helper functions, in particular a custom dirty() callback
- *
- * Returns a newly allocated drm_fbdev_cma struct or a ERR_PTR.
- */
-struct drm_fbdev_cma *drm_fbdev_cma_init_with_funcs(struct drm_device *dev,
- unsigned int preferred_bpp, unsigned int max_conn_count,
- const struct drm_framebuffer_funcs *funcs)
-{
- struct drm_fbdev_cma *fbdev_cma;
- struct drm_fb_helper *helper;
- int ret;
-
- fbdev_cma = kzalloc(sizeof(*fbdev_cma), GFP_KERNEL);
- if (!fbdev_cma) {
- dev_err(dev->dev, "Failed to allocate drm fbdev.\n");
- return ERR_PTR(-ENOMEM);
- }
- fbdev_cma->fb_funcs = funcs;
-
- helper = &fbdev_cma->fb_helper;
-
- drm_fb_helper_prepare(dev, helper, &drm_fb_cma_helper_funcs);
-
- ret = drm_fb_helper_init(dev, helper, max_conn_count);
- if (ret < 0) {
- dev_err(dev->dev, "Failed to initialize drm fb helper.\n");
- goto err_free;
- }
-
- ret = drm_fb_helper_single_add_all_connectors(helper);
- if (ret < 0) {
- dev_err(dev->dev, "Failed to add connectors.\n");
- goto err_drm_fb_helper_fini;
-
- }
-
- ret = drm_fb_helper_initial_config(helper, preferred_bpp);
- if (ret < 0) {
- dev_err(dev->dev, "Failed to set initial hw configuration.\n");
- goto err_drm_fb_helper_fini;
- }
-
- return fbdev_cma;
-
-err_drm_fb_helper_fini:
- drm_fb_helper_fini(helper);
-err_free:
- kfree(fbdev_cma);
-
- return ERR_PTR(ret);
-}
-EXPORT_SYMBOL_GPL(drm_fbdev_cma_init_with_funcs);
-
-static const struct drm_framebuffer_funcs drm_fb_cma_funcs = {
- .destroy = drm_gem_fb_destroy,
- .create_handle = drm_gem_fb_create_handle,
-};
-
-/**
- * drm_fbdev_cma_init() - Allocate and initializes a drm_fbdev_cma struct
- * @dev: DRM device
- * @preferred_bpp: Preferred bits per pixel for the device
- * @max_conn_count: Maximum number of connectors
- *
- * Returns a newly allocated drm_fbdev_cma struct or a ERR_PTR.
- */
-struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device *dev,
- unsigned int preferred_bpp, unsigned int max_conn_count)
-{
- return drm_fbdev_cma_init_with_funcs(dev, preferred_bpp,
- max_conn_count,
- &drm_fb_cma_funcs);
-}
-EXPORT_SYMBOL_GPL(drm_fbdev_cma_init);
-
-/**
- * drm_fbdev_cma_fini() - Free drm_fbdev_cma struct
- * @fbdev_cma: The drm_fbdev_cma struct
- */
-void drm_fbdev_cma_fini(struct drm_fbdev_cma *fbdev_cma)
-{
- drm_fb_helper_unregister_fbi(&fbdev_cma->fb_helper);
- if (fbdev_cma->fb_helper.fbdev)
- drm_fbdev_cma_defio_fini(fbdev_cma->fb_helper.fbdev);
-
- if (fbdev_cma->fb_helper.fb)
- drm_framebuffer_remove(fbdev_cma->fb_helper.fb);
-
- drm_fb_helper_fini(&fbdev_cma->fb_helper);
- kfree(fbdev_cma);
-}
-EXPORT_SYMBOL_GPL(drm_fbdev_cma_fini);
-
-/**
- * drm_fbdev_cma_restore_mode() - Restores initial framebuffer mode
- * @fbdev_cma: The drm_fbdev_cma struct, may be NULL
- *
- * This function is usually called from the &drm_driver.lastclose callback.
- */
-void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma)
-{
- if (fbdev_cma)
- drm_fb_helper_restore_fbdev_mode_unlocked(&fbdev_cma->fb_helper);
-}
-EXPORT_SYMBOL_GPL(drm_fbdev_cma_restore_mode);
-
-/**
- * drm_fbdev_cma_hotplug_event() - Poll for hotpulug events
- * @fbdev_cma: The drm_fbdev_cma struct, may be NULL
- *
- * This function is usually called from the &drm_mode_config.output_poll_changed
- * callback.
- */
-void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma)
-{
- if (fbdev_cma)
- drm_fb_helper_hotplug_event(&fbdev_cma->fb_helper);
-}
-EXPORT_SYMBOL_GPL(drm_fbdev_cma_hotplug_event);
-
-/**
- * drm_fbdev_cma_set_suspend - wrapper around drm_fb_helper_set_suspend
- * @fbdev_cma: The drm_fbdev_cma struct, may be NULL
- * @state: desired state, zero to resume, non-zero to suspend
- *
- * Calls drm_fb_helper_set_suspend, which is a wrapper around
- * fb_set_suspend implemented by fbdev core.
- */
-void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state)
-{
- if (fbdev_cma)
- drm_fb_helper_set_suspend(&fbdev_cma->fb_helper, state);
-}
-EXPORT_SYMBOL(drm_fbdev_cma_set_suspend);
-
-/**
- * drm_fbdev_cma_set_suspend_unlocked - wrapper around
- * drm_fb_helper_set_suspend_unlocked
- * @fbdev_cma: The drm_fbdev_cma struct, may be NULL
- * @state: desired state, zero to resume, non-zero to suspend
- *
- * Calls drm_fb_helper_set_suspend, which is a wrapper around
- * fb_set_suspend implemented by fbdev core.
- */
-void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
- bool state)
-{
- if (fbdev_cma)
- drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper,
- state);
-}
-EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked);
diff --git a/include/drm/drm_fb_cma_helper.h b/include/drm/drm_fb_cma_helper.h
index d532f88a8d55..6dc846c91e48 100644
--- a/include/drm/drm_fb_cma_helper.h
+++ b/include/drm/drm_fb_cma_helper.h
@@ -2,18 +2,10 @@
#ifndef __DRM_FB_CMA_HELPER_H__
#define __DRM_FB_CMA_HELPER_H__
-struct drm_fbdev_cma;
-struct drm_gem_cma_object;
-
-struct drm_fb_helper_surface_size;
-struct drm_framebuffer_funcs;
-struct drm_fb_helper_funcs;
-struct drm_framebuffer;
-struct drm_fb_helper;
struct drm_device;
-struct drm_file;
-struct drm_mode_fb_cmd2;
-struct drm_plane;
+struct drm_framebuffer;
+struct drm_framebuffer_funcs;
+struct drm_gem_cma_object;
struct drm_plane_state;
int drm_fb_cma_fbdev_init_with_funcs(struct drm_device *dev,
@@ -23,19 +15,6 @@ int drm_fb_cma_fbdev_init(struct drm_device *dev, unsigned int preferred_bpp,
unsigned int max_conn_count);
void drm_fb_cma_fbdev_fini(struct drm_device *dev);
-struct drm_fbdev_cma *drm_fbdev_cma_init_with_funcs(struct drm_device *dev,
- unsigned int preferred_bpp, unsigned int max_conn_count,
- const struct drm_framebuffer_funcs *funcs);
-struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device *dev,
- unsigned int preferred_bpp, unsigned int max_conn_count);
-void drm_fbdev_cma_fini(struct drm_fbdev_cma *fbdev_cma);
-
-void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma);
-void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma);
-void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state);
-void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
- bool state);
-
struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer *fb,
unsigned int plane);
@@ -44,4 +23,3 @@ dma_addr_t drm_fb_cma_get_gem_addr(struct drm_framebuffer *fb,
unsigned int plane);
#endif
-
--
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] 17+ messages in thread
* Re: [PATCH v3 10/11] drm/tinydrm: Use drm_fb_cma_fbdev_init_with_funcs/fini()
2017-12-08 19:37 ` [PATCH v3 10/11] drm/tinydrm: Use drm_fb_cma_fbdev_init_with_funcs/fini() Noralf Trønnes
@ 2017-12-08 21:34 ` David Lechner
2017-12-10 14:41 ` Noralf Trønnes
0 siblings, 1 reply; 17+ messages in thread
From: David Lechner @ 2017-12-08 21:34 UTC (permalink / raw)
To: Noralf Trønnes, dri-devel
Cc: marex, alison.wang, puck.chen, narmstrong, liviu.dudau,
z.liuxinliang, kong.kongxinwei, abrodkin, laurent.pinchart,
daniel.vetter, zourongrong
On 12/08/2017 01:37 PM, Noralf Trønnes wrote:
> Use drm_fb_cma_fbdev_init_with_funcs() and drm_fb_cma_fbdev_fini() which
> relies on the fact that drm_device holds a pointer to the drm_fb_helper
> structure. This means that the driver doesn't have to keep track of that.
> Also use the drm_fb_helper functions directly.
> Remove todo entry.
>
> Cc: David Lechner <david@lechnology.com>
> Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
> Acked-by: David Lechner <david@lechnology.com>
> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
> Documentation/gpu/todo.rst | 5 ----
> drivers/gpu/drm/tinydrm/core/tinydrm-core.c | 37 ++++-------------------------
> drivers/gpu/drm/tinydrm/ili9225.c | 3 ++-
> drivers/gpu/drm/tinydrm/mi0283qt.c | 3 ++-
> drivers/gpu/drm/tinydrm/st7586.c | 3 ++-
> include/drm/tinydrm/tinydrm.h | 3 ---
> 6 files changed, 11 insertions(+), 43 deletions(-)
>
Tested-by: David Lechner <david@lechnolgy.com>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v3 10/11] drm/tinydrm: Use drm_fb_cma_fbdev_init_with_funcs/fini()
2017-12-08 21:34 ` David Lechner
@ 2017-12-10 14:41 ` Noralf Trønnes
0 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2017-12-10 14:41 UTC (permalink / raw)
To: David Lechner, dri-devel
Cc: marex, alison.wang, puck.chen, narmstrong, liviu.dudau,
z.liuxinliang, kong.kongxinwei, abrodkin, laurent.pinchart,
daniel.vetter, zourongrong
Den 08.12.2017 22.34, skrev David Lechner:
> On 12/08/2017 01:37 PM, Noralf Trønnes wrote:
>> Use drm_fb_cma_fbdev_init_with_funcs() and drm_fb_cma_fbdev_fini() which
>> relies on the fact that drm_device holds a pointer to the drm_fb_helper
>> structure. This means that the driver doesn't have to keep track of
>> that.
>> Also use the drm_fb_helper functions directly.
>> Remove todo entry.
>>
>> Cc: David Lechner <david@lechnology.com>
>> Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
>> Acked-by: David Lechner <david@lechnology.com>
>> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> ---
>> Documentation/gpu/todo.rst | 5 ----
>> drivers/gpu/drm/tinydrm/core/tinydrm-core.c | 37
>> ++++-------------------------
>> drivers/gpu/drm/tinydrm/ili9225.c | 3 ++-
>> drivers/gpu/drm/tinydrm/mi0283qt.c | 3 ++-
>> drivers/gpu/drm/tinydrm/st7586.c | 3 ++-
>> include/drm/tinydrm/tinydrm.h | 3 ---
>> 6 files changed, 11 insertions(+), 43 deletions(-)
>>
>
> Tested-by: David Lechner <david@lechnolgy.com>
>
Thanks, applied to drm-misc.
Noralf.
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v3 09/11] drm/fsl-dcu: Use drm_fb_cma_fbdev_init/fini()
2017-12-08 19:37 ` [PATCH v3 09/11] drm/fsl-dcu: " Noralf Trønnes
@ 2018-09-26 20:26 ` Stefan Agner
2018-09-27 12:23 ` Noralf Trønnes
0 siblings, 1 reply; 17+ messages in thread
From: Stefan Agner @ 2018-09-26 20:26 UTC (permalink / raw)
To: Noralf Trønnes
Cc: marex, david, alison.wang, puck.chen, narmstrong, abrodkin,
dri-devel, z.liuxinliang, kong.kongxinwei, laurent.pinchart,
daniel.vetter, zourongrong, liviu.dudau
On 08.12.2017 20:37, Noralf Trønnes wrote:
> Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
> the fact that drm_device holds a pointer to the drm_fb_helper structure.
> This means that the driver doesn't have to keep track of that.
> Also use the drm_fb_helper functions directly.
> Remove console.h inclusion which was forgotten when converting to the
> suspend/resume helpers.
Just realized this never made it upstream. I guess its still valid and
could be applied?
--
Stefan
>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Alison Wang <alison.wang@freescale.com>
> Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
> ---
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 26 ++++++--------------------
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h | 1 -
> 2 files changed, 6 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> index 80232321a244..e487a2002783 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> @@ -11,7 +11,6 @@
>
> #include <linux/clk.h>
> #include <linux/clk-provider.h>
> -#include <linux/console.h>
> #include <linux/io.h>
> #include <linux/mfd/syscon.h>
> #include <linux/mm.h>
> @@ -25,6 +24,7 @@
> #include <drm/drmP.h>
> #include <drm/drm_atomic_helper.h>
> #include <drm/drm_crtc_helper.h>
> +#include <drm/drm_fb_helper.h>
> #include <drm/drm_fb_cma_helper.h>
> #include <drm/drm_gem_cma_helper.h>
> #include <drm/drm_modeset_helper.h>
> @@ -89,19 +89,15 @@ static int fsl_dcu_load(struct drm_device *dev,
> unsigned long flags)
> "Invalid legacyfb_depth. Defaulting to 24bpp\n");
> legacyfb_depth = 24;
> }
> - fsl_dev->fbdev = drm_fbdev_cma_init(dev, legacyfb_depth, 1);
> - if (IS_ERR(fsl_dev->fbdev)) {
> - ret = PTR_ERR(fsl_dev->fbdev);
> - fsl_dev->fbdev = NULL;
> + ret = drm_fb_cma_fbdev_init(dev, legacyfb_depth, 1);
> + if (ret)
> goto done;
> - }
>
> return 0;
> done:
> drm_kms_helper_poll_fini(dev);
>
> - if (fsl_dev->fbdev)
> - drm_fbdev_cma_fini(fsl_dev->fbdev);
> + drm_fb_cma_fbdev_fini(dev);
>
> drm_mode_config_cleanup(dev);
> drm_irq_uninstall(dev);
> @@ -112,13 +108,10 @@ static int fsl_dcu_load(struct drm_device *dev,
> unsigned long flags)
>
> static void fsl_dcu_unload(struct drm_device *dev)
> {
> - struct fsl_dcu_drm_device *fsl_dev = dev->dev_private;
> -
> drm_atomic_helper_shutdown(dev);
> drm_kms_helper_poll_fini(dev);
>
> - if (fsl_dev->fbdev)
> - drm_fbdev_cma_fini(fsl_dev->fbdev);
> + drm_fb_cma_fbdev_fini(dev);
>
> drm_mode_config_cleanup(dev);
> drm_irq_uninstall(dev);
> @@ -147,19 +140,12 @@ static irqreturn_t fsl_dcu_drm_irq(int irq, void *arg)
> return IRQ_HANDLED;
> }
>
> -static void fsl_dcu_drm_lastclose(struct drm_device *dev)
> -{
> - struct fsl_dcu_drm_device *fsl_dev = dev->dev_private;
> -
> - drm_fbdev_cma_restore_mode(fsl_dev->fbdev);
> -}
> -
> DEFINE_DRM_GEM_CMA_FOPS(fsl_dcu_drm_fops);
>
> static struct drm_driver fsl_dcu_drm_driver = {
> .driver_features = DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET
> | DRIVER_PRIME | DRIVER_ATOMIC,
> - .lastclose = fsl_dcu_drm_lastclose,
> + .lastclose = drm_fb_helper_lastclose,
> .load = fsl_dcu_load,
> .unload = fsl_dcu_unload,
> .irq_handler = fsl_dcu_drm_irq,
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
> b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
> index 93bfb98012d4..cb87bb74cb87 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
> @@ -191,7 +191,6 @@ struct fsl_dcu_drm_device {
> /*protects hardware register*/
> spinlock_t irq_lock;
> struct drm_device *drm;
> - struct drm_fbdev_cma *fbdev;
> struct drm_crtc crtc;
> struct drm_encoder encoder;
> struct fsl_dcu_drm_connector connector;
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v3 09/11] drm/fsl-dcu: Use drm_fb_cma_fbdev_init/fini()
2018-09-26 20:26 ` Stefan Agner
@ 2018-09-27 12:23 ` Noralf Trønnes
0 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2018-09-27 12:23 UTC (permalink / raw)
To: Stefan Agner
Cc: marex, david, alison.wang, puck.chen, narmstrong, abrodkin,
dri-devel, z.liuxinliang, kong.kongxinwei, laurent.pinchart,
daniel.vetter, zourongrong, liviu.dudau
Den 26.09.2018 22.26, skrev Stefan Agner:
> On 08.12.2017 20:37, Noralf Trønnes wrote:
>> Use drm_fb_cma_fbdev_init() and drm_fb_cma_fbdev_fini() which relies on
>> the fact that drm_device holds a pointer to the drm_fb_helper structure.
>> This means that the driver doesn't have to keep track of that.
>> Also use the drm_fb_helper functions directly.
>> Remove console.h inclusion which was forgotten when converting to the
>> suspend/resume helpers.
> Just realized this never made it upstream. I guess its still valid and
> could be applied?
It has been superseeded by this patch:
[03/20] drm/fsl-dcu: Use drm_fbdev_generic_setup()
https://patchwork.freedesktop.org/patch/247865/
Noralf.
> --
> Stefan
>
>> Cc: Stefan Agner <stefan@agner.ch>
>> Cc: Alison Wang <alison.wang@freescale.com>
>> Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
>> ---
>> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 26 ++++++--------------------
>> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h | 1 -
>> 2 files changed, 6 insertions(+), 21 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
>> b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
>> index 80232321a244..e487a2002783 100644
>> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
>> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
>> @@ -11,7 +11,6 @@
>>
>> #include <linux/clk.h>
>> #include <linux/clk-provider.h>
>> -#include <linux/console.h>
>> #include <linux/io.h>
>> #include <linux/mfd/syscon.h>
>> #include <linux/mm.h>
>> @@ -25,6 +24,7 @@
>> #include <drm/drmP.h>
>> #include <drm/drm_atomic_helper.h>
>> #include <drm/drm_crtc_helper.h>
>> +#include <drm/drm_fb_helper.h>
>> #include <drm/drm_fb_cma_helper.h>
>> #include <drm/drm_gem_cma_helper.h>
>> #include <drm/drm_modeset_helper.h>
>> @@ -89,19 +89,15 @@ static int fsl_dcu_load(struct drm_device *dev,
>> unsigned long flags)
>> "Invalid legacyfb_depth. Defaulting to 24bpp\n");
>> legacyfb_depth = 24;
>> }
>> - fsl_dev->fbdev = drm_fbdev_cma_init(dev, legacyfb_depth, 1);
>> - if (IS_ERR(fsl_dev->fbdev)) {
>> - ret = PTR_ERR(fsl_dev->fbdev);
>> - fsl_dev->fbdev = NULL;
>> + ret = drm_fb_cma_fbdev_init(dev, legacyfb_depth, 1);
>> + if (ret)
>> goto done;
>> - }
>>
>> return 0;
>> done:
>> drm_kms_helper_poll_fini(dev);
>>
>> - if (fsl_dev->fbdev)
>> - drm_fbdev_cma_fini(fsl_dev->fbdev);
>> + drm_fb_cma_fbdev_fini(dev);
>>
>> drm_mode_config_cleanup(dev);
>> drm_irq_uninstall(dev);
>> @@ -112,13 +108,10 @@ static int fsl_dcu_load(struct drm_device *dev,
>> unsigned long flags)
>>
>> static void fsl_dcu_unload(struct drm_device *dev)
>> {
>> - struct fsl_dcu_drm_device *fsl_dev = dev->dev_private;
>> -
>> drm_atomic_helper_shutdown(dev);
>> drm_kms_helper_poll_fini(dev);
>>
>> - if (fsl_dev->fbdev)
>> - drm_fbdev_cma_fini(fsl_dev->fbdev);
>> + drm_fb_cma_fbdev_fini(dev);
>>
>> drm_mode_config_cleanup(dev);
>> drm_irq_uninstall(dev);
>> @@ -147,19 +140,12 @@ static irqreturn_t fsl_dcu_drm_irq(int irq, void *arg)
>> return IRQ_HANDLED;
>> }
>>
>> -static void fsl_dcu_drm_lastclose(struct drm_device *dev)
>> -{
>> - struct fsl_dcu_drm_device *fsl_dev = dev->dev_private;
>> -
>> - drm_fbdev_cma_restore_mode(fsl_dev->fbdev);
>> -}
>> -
>> DEFINE_DRM_GEM_CMA_FOPS(fsl_dcu_drm_fops);
>>
>> static struct drm_driver fsl_dcu_drm_driver = {
>> .driver_features = DRIVER_HAVE_IRQ | DRIVER_GEM | DRIVER_MODESET
>> | DRIVER_PRIME | DRIVER_ATOMIC,
>> - .lastclose = fsl_dcu_drm_lastclose,
>> + .lastclose = drm_fb_helper_lastclose,
>> .load = fsl_dcu_load,
>> .unload = fsl_dcu_unload,
>> .irq_handler = fsl_dcu_drm_irq,
>> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
>> b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
>> index 93bfb98012d4..cb87bb74cb87 100644
>> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
>> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
>> @@ -191,7 +191,6 @@ struct fsl_dcu_drm_device {
>> /*protects hardware register*/
>> spinlock_t irq_lock;
>> struct drm_device *drm;
>> - struct drm_fbdev_cma *fbdev;
>> struct drm_crtc crtc;
>> struct drm_encoder encoder;
>> struct fsl_dcu_drm_connector connector;
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions
2017-12-08 19:37 [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
` (10 preceding siblings ...)
2017-12-08 19:37 ` [PATCH v3 11/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
@ 2018-09-27 12:44 ` Noralf Trønnes
11 siblings, 0 replies; 17+ messages in thread
From: Noralf Trønnes @ 2018-09-27 12:44 UTC (permalink / raw)
To: dri-devel
Cc: marex, alexey.brodkin, david, alison.wang, puck.chen, narmstrong,
abrodkin, z.liuxinliang, kong.kongxinwei, laurent.pinchart,
daniel.vetter, zourongrong, liviu.dudau
Den 08.12.2017 20.37, skrev Noralf Trønnes:
> These are the remaining patches not applied due to missing review and:
> - arm/hdlcd and rcar-du have started to use
> drm_fbdev_cma_set_suspend_unlocked() since last, so I have added patches
> converting them to drm_mode_config_helper_suspend/resume().
> - tinydrm has gained a new driver ili9225
>
> Noralf.
Just a note that this series has been superseeded by the generic fbdev
work. During Christmas I got the idea that maybe it was possible to do
generic fbdev using dumb buffers. A prototype for this was done in one
day, but it took months before it was mergeable due to a drm_client API
that had to be made.
So this is the superseeding series based on the generic fbdev work:
drm/cma-helper drivers: Use drm_fbdev_generic_setup()
https://patchwork.freedesktop.org/series/49382/
Noralf.
>
> Noralf Trønnes (11):
> drm/arc: Use drm_fb_cma_fbdev_init/fini()
> drm/arm/hdlcd: Use drm_mode_config_helper_suspend/resume()
> drm/arm/hdlcd: Use drm_fb_cma_fbdev_init/fini()
> drm/hisilicon/kirin: Use drm_fb_cma_fbdev_init/fini()
> drm/meson: Use drm_fb_cma_fbdev_init/fini()
> drm/mxsfb: Use drm_fb_cma_fbdev_init/fini()
> drm/rcar-du: Use drm_mode_config_helper_suspend/resume()
> drm/rcar-du: Use drm_fb_cma_fbdev_init/fini()
> drm/fsl-dcu: Use drm_fb_cma_fbdev_init/fini()
> drm/tinydrm: Use drm_fb_cma_fbdev_init_with_funcs/fini()
> drm/cma-helper: Remove drm_fbdev_cma* functions
>
> Documentation/gpu/todo.rst | 5 -
> drivers/gpu/drm/arc/arcpgu.h | 4 -
> drivers/gpu/drm/arc/arcpgu_drv.c | 36 ++----
> drivers/gpu/drm/arm/hdlcd_drv.c | 62 ++--------
> drivers/gpu/drm/arm/hdlcd_drv.h | 2 -
> drivers/gpu/drm/drm_fb_cma_helper.c | 158 ------------------------
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 26 +---
> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h | 1 -
> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 35 +-----
> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.h | 4 -
> drivers/gpu/drm/meson/meson_drv.c | 20 +--
> drivers/gpu/drm/meson/meson_drv.h | 1 -
> drivers/gpu/drm/mxsfb/mxsfb_drv.c | 21 +---
> drivers/gpu/drm/mxsfb/mxsfb_drv.h | 1 -
> drivers/gpu/drm/rcar-du/rcar_du_drv.c | 34 +----
> drivers/gpu/drm/rcar-du/rcar_du_drv.h | 3 -
> drivers/gpu/drm/rcar-du/rcar_du_kms.c | 20 +--
> drivers/gpu/drm/tinydrm/core/tinydrm-core.c | 37 +-----
> drivers/gpu/drm/tinydrm/ili9225.c | 3 +-
> drivers/gpu/drm/tinydrm/mi0283qt.c | 3 +-
> drivers/gpu/drm/tinydrm/st7586.c | 3 +-
> include/drm/drm_fb_cma_helper.h | 28 +----
> include/drm/tinydrm/tinydrm.h | 3 -
> 23 files changed, 61 insertions(+), 449 deletions(-)
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2018-09-27 12:44 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-08 19:37 [PATCH v3 00/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 01/11] drm/arc: Use drm_fb_cma_fbdev_init/fini() Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 02/11] drm/arm/hdlcd: Use drm_mode_config_helper_suspend/resume() Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 03/11] drm/arm/hdlcd: Use drm_fb_cma_fbdev_init/fini() Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 04/11] drm/hisilicon/kirin: " Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 05/11] drm/meson: " Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 06/11] drm/mxsfb: " Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 07/11] drm/rcar-du: Use drm_mode_config_helper_suspend/resume() Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 08/11] drm/rcar-du: Use drm_fb_cma_fbdev_init/fini() Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 09/11] drm/fsl-dcu: " Noralf Trønnes
2018-09-26 20:26 ` Stefan Agner
2018-09-27 12:23 ` Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 10/11] drm/tinydrm: Use drm_fb_cma_fbdev_init_with_funcs/fini() Noralf Trønnes
2017-12-08 21:34 ` David Lechner
2017-12-10 14:41 ` Noralf Trønnes
2017-12-08 19:37 ` [PATCH v3 11/11] drm/cma-helper: Remove drm_fbdev_cma* functions Noralf Trønnes
2018-09-27 12:44 ` [PATCH v3 00/11] " 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.