mirror of
https://github.com/Fishwaldo/build.git
synced 2025-03-24 07:41:53 +00:00
75 lines
2.7 KiB
Diff
75 lines
2.7 KiB
Diff
From cbe0dba01d39c008cff6460bfcb1366801b4a41c Mon Sep 17 00:00:00 2001
|
|
From: Xinliang Liu <xinliang.liu@linaro.org>
|
|
Date: Wed, 15 Feb 2017 17:19:08 +0100
|
|
Subject: [PATCH 04/93] drm/fb-helper: Add multi buffer support for cma fbdev
|
|
|
|
This patch add a config to support to create multi buffer for cma fbdev.
|
|
Such as double buffer and triple buffer.
|
|
|
|
Cma fbdev is convient to add a legency fbdev. And still many Android
|
|
devices use fbdev now and at least double buffer is needed for these
|
|
Android devices, so that a buffer flip can be operated. It will need
|
|
some time for Android device vendors to abondon legency fbdev. So multi
|
|
buffer for fbdev is needed.
|
|
|
|
Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org>
|
|
[s.christ@phytec.de: Picking patch from
|
|
https://lkml.org/lkml/2015/9/14/188]
|
|
Signed-off-by: Stefan Christ <s.christ@phytec.de>
|
|
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
|
---
|
|
drivers/gpu/drm/Kconfig | 9 +++++++++
|
|
drivers/gpu/drm/drm_fb_helper.c | 10 ++++++++++
|
|
2 files changed, 19 insertions(+)
|
|
|
|
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
|
|
index ebfe840..700c8b8 100644
|
|
--- a/drivers/gpu/drm/Kconfig
|
|
+++ b/drivers/gpu/drm/Kconfig
|
|
@@ -84,6 +84,15 @@ config DRM_FBDEV_EMULATION
|
|
|
|
If in doubt, say "Y".
|
|
|
|
+config DRM_FBDEV_OVERALLOC
|
|
+ int "Overallocation of the fbdev buffer"
|
|
+ depends on DRM_FBDEV_EMULATION
|
|
+ default 100
|
|
+ help
|
|
+ Defines the fbdev buffer overallocation in percent. Default
|
|
+ is 100. Typical values for double buffering will be 200,
|
|
+ triple buffering 300.
|
|
+
|
|
config DRM_LOAD_EDID_FIRMWARE
|
|
bool "Allow to specify an EDID data set instead of probing for it"
|
|
depends on DRM_KMS_HELPER
|
|
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
|
|
index e934b54..c6de87a 100644
|
|
--- a/drivers/gpu/drm/drm_fb_helper.c
|
|
+++ b/drivers/gpu/drm/drm_fb_helper.c
|
|
@@ -48,6 +48,12 @@
|
|
MODULE_PARM_DESC(fbdev_emulation,
|
|
"Enable legacy fbdev emulation [default=true]");
|
|
|
|
+static int drm_fbdev_overalloc = CONFIG_DRM_FBDEV_OVERALLOC;
|
|
+module_param(drm_fbdev_overalloc, int, 0444);
|
|
+MODULE_PARM_DESC(drm_fbdev_overalloc,
|
|
+ "Overallocation of the fbdev buffer (%) [default="
|
|
+ __MODULE_STRING(CONFIG_DRM_FBDEV_OVERALLOC) "]");
|
|
+
|
|
static LIST_HEAD(kernel_fb_helper_list);
|
|
static DEFINE_MUTEX(kernel_fb_helper_lock);
|
|
|
|
@@ -1573,6 +1579,10 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
|
|
sizes.fb_height = sizes.surface_height = 768;
|
|
}
|
|
|
|
+ /* Handle our overallocation */
|
|
+ sizes.surface_height *= drm_fbdev_overalloc;
|
|
+ sizes.surface_height /= 100;
|
|
+
|
|
/* push down into drivers */
|
|
ret = (*fb_helper->funcs->fb_probe)(fb_helper, &sizes);
|
|
if (ret < 0)
|
|
--
|
|
1.9.1
|
|
|