aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/emgd/emgd/drm/emgd_fbcon.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/emgd/emgd/drm/emgd_fbcon.c')
-rw-r--r--drivers/gpu/drm/emgd/emgd/drm/emgd_fbcon.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/gpu/drm/emgd/emgd/drm/emgd_fbcon.c b/drivers/gpu/drm/emgd/emgd/drm/emgd_fbcon.c
index 5132d334215e..9a075e3fa120 100644
--- a/drivers/gpu/drm/emgd/emgd/drm/emgd_fbcon.c
+++ b/drivers/gpu/drm/emgd/emgd/drm/emgd_fbcon.c
@@ -36,6 +36,7 @@
#include <drmP.h>
#include <drm_crtc_helper.h>
#include <linux/vga_switcheroo.h>
+#include <linux/export.h>
#include "user_config.h"
@@ -57,7 +58,7 @@ extern emgd_drm_config_t config_drm;
*/
extern int emgd_framebuffer_init(struct drm_device *dev,
emgd_framebuffer_t *emgd_fb,
- struct drm_mode_fb_cmd *mode_cmd,
+ struct drm_mode_fb_cmd2 *mode_cmd,
unsigned long handle);
@@ -124,7 +125,7 @@ static void fill_fix(emgd_fbdev_t *emgd_fbdev, struct fb_info *info)
info->fix.ywrapstep = 0;
info->fix.accel = FB_ACCEL_NONE;
info->fix.type_aux = 0;
- info->fix.line_length = fb->pitch;
+ info->fix.line_length = fb->pitches[0];
}
@@ -246,7 +247,7 @@ static int alloc_initial_fb(emgd_fbdev_t *emgd_fbdev)
igd_context_t *context;
int ret;
unsigned long size;
- struct drm_mode_fb_cmd mode_cmd;
+ struct drm_mode_fb_cmd2 mode_cmd;
EMGD_TRACE_ENTER;
@@ -291,12 +292,14 @@ static int alloc_initial_fb(emgd_fbdev_t *emgd_fbdev)
/* Initialize emgd_framebuffer_t */
- mode_cmd.handle = EMGD_INITIAL_FRAMEBUFFER;
- mode_cmd.pitch = priv->initfb_info.screen_pitch;
+ mode_cmd.handles[0] = EMGD_INITIAL_FRAMEBUFFER;
+ mode_cmd.pitches[0] = priv->initfb_info.screen_pitch;
mode_cmd.width = priv->initfb_info.width;
mode_cmd.height = priv->initfb_info.height;
- mode_cmd.bpp = IGD_PF_BPP(priv->initfb_info.pixel_format);
- mode_cmd.depth = mode_cmd.bpp; /* Ok for 32bpp, may not work for 16bpp */
+ mode_cmd.pixel_format = drm_mode_legacy_fb_format(
+ IGD_PF_BPP(priv->initfb_info.pixel_format),
+ IGD_PF_BPP(priv->initfb_info.pixel_format) /* Ok for 32bpp, may not work for 16bpp */
+ );
ret = emgd_framebuffer_init(dev, emgd_fbdev->emgd_fb, &mode_cmd,
EMGD_INITIAL_FRAMEBUFFER);