|
@@ -48,6 +48,12 @@ module_param_named(fbdev_emulation, drm_fbdev_emulation, bool, 0600);
|
|
MODULE_PARM_DESC(fbdev_emulation,
|
|
MODULE_PARM_DESC(fbdev_emulation,
|
|
"Enable legacy fbdev emulation [default=true]");
|
|
"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 LIST_HEAD(kernel_fb_helper_list);
|
|
static DEFINE_MUTEX(kernel_fb_helper_lock);
|
|
static DEFINE_MUTEX(kernel_fb_helper_lock);
|
|
|
|
|
|
@@ -1578,6 +1584,10 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
|
|
sizes.fb_height = sizes.surface_height = 768;
|
|
sizes.fb_height = sizes.surface_height = 768;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /* Handle our overallocation */
|
|
|
|
+ sizes.surface_height *= drm_fbdev_overalloc;
|
|
|
|
+ sizes.surface_height /= 100;
|
|
|
|
+
|
|
/* push down into drivers */
|
|
/* push down into drivers */
|
|
ret = (*fb_helper->funcs->fb_probe)(fb_helper, &sizes);
|
|
ret = (*fb_helper->funcs->fb_probe)(fb_helper, &sizes);
|
|
if (ret < 0)
|
|
if (ret < 0)
|