|
@@ -31,52 +31,8 @@
|
|
|
#include "videomodes.h"
|
|
|
#include <video_fb.h>
|
|
|
#include <fsl_diu_fb.h>
|
|
|
-
|
|
|
-struct fb_var_screeninfo {
|
|
|
- unsigned int xres; /* visible resolution */
|
|
|
- unsigned int yres;
|
|
|
-
|
|
|
- unsigned int bits_per_pixel; /* guess what */
|
|
|
-
|
|
|
- /* Timing: All values in pixclocks, except pixclock (of course) */
|
|
|
- unsigned int pixclock; /* pixel clock in ps (pico seconds) */
|
|
|
- unsigned int left_margin; /* time from sync to picture */
|
|
|
- unsigned int right_margin; /* time from picture to sync */
|
|
|
- unsigned int upper_margin; /* time from sync to picture */
|
|
|
- unsigned int lower_margin;
|
|
|
- unsigned int hsync_len; /* length of horizontal sync */
|
|
|
- unsigned int vsync_len; /* length of vertical sync */
|
|
|
- unsigned int sync; /* see FB_SYNC_* */
|
|
|
- unsigned int vmode; /* see FB_VMODE_* */
|
|
|
- unsigned int rotate; /* angle we rotate counter clockwise */
|
|
|
-};
|
|
|
-
|
|
|
-struct fb_info {
|
|
|
- struct fb_var_screeninfo var; /* Current var */
|
|
|
- unsigned int smem_len; /* Length of frame buffer mem */
|
|
|
- unsigned int type; /* see FB_TYPE_* */
|
|
|
- unsigned int line_length; /* length of a line in bytes */
|
|
|
-
|
|
|
- void *screen_base;
|
|
|
- unsigned long screen_size;
|
|
|
-};
|
|
|
-
|
|
|
-struct fb_videomode {
|
|
|
- const char *name; /* optional */
|
|
|
- unsigned int refresh; /* optional */
|
|
|
- unsigned int xres;
|
|
|
- unsigned int yres;
|
|
|
- unsigned int pixclock;
|
|
|
- unsigned int left_margin;
|
|
|
- unsigned int right_margin;
|
|
|
- unsigned int upper_margin;
|
|
|
- unsigned int lower_margin;
|
|
|
- unsigned int hsync_len;
|
|
|
- unsigned int vsync_len;
|
|
|
- unsigned int sync;
|
|
|
- unsigned int vmode;
|
|
|
- unsigned int flag;
|
|
|
-};
|
|
|
+#include <linux/list.h>
|
|
|
+#include <linux/fb.h>
|
|
|
|
|
|
/* This setting is used for the ifm pdm360ng with PRIMEVIEW PM070WL3 */
|
|
|
static struct fb_videomode fsl_diu_mode_800_480 = {
|
|
@@ -248,7 +204,7 @@ static int allocate_buf(struct diu_addr *buf, u32 size, u32 bytes_align)
|
|
|
* point to the framebuffer memory. Memory is aligned as needed.
|
|
|
*/
|
|
|
static struct diu_ad *allocate_fb(unsigned int xres, unsigned int yres,
|
|
|
- unsigned int depth, void **fb)
|
|
|
+ unsigned int depth, char **fb)
|
|
|
{
|
|
|
unsigned long size = xres * yres * depth;
|
|
|
struct diu_addr addr;
|
|
@@ -327,10 +283,10 @@ int fsl_diu_init(u16 xres, u16 yres, u32 pixel_format, int gamma_fix)
|
|
|
info.var.vsync_len = fsl_diu_mode_db->vsync_len;
|
|
|
info.var.sync = fsl_diu_mode_db->sync;
|
|
|
info.var.vmode = fsl_diu_mode_db->vmode;
|
|
|
- info.line_length = info.var.xres * info.var.bits_per_pixel / 8;
|
|
|
+ info.fix.line_length = info.var.xres * info.var.bits_per_pixel / 8;
|
|
|
|
|
|
/* Memory allocation for framebuffer */
|
|
|
- info.smem_len =
|
|
|
+ info.screen_size =
|
|
|
info.var.xres * info.var.yres * (info.var.bits_per_pixel / 8);
|
|
|
ad = allocate_fb(info.var.xres, info.var.yres,
|
|
|
info.var.bits_per_pixel / 8, &info.screen_base);
|