9 #include <linux/module.h>
10 #include <linux/kernel.h>
11 #include <linux/errno.h>
12 #include <linux/string.h>
28 static int p9100_setcolreg(
unsigned,
unsigned,
unsigned,
unsigned,
30 static int p9100_blank(
int,
struct fb_info *);
33 static int p9100_ioctl(
struct fb_info *,
unsigned int,
unsigned long);
39 static struct fb_ops p9100_ops = {
41 .fb_setcolreg = p9100_setcolreg,
42 .fb_blank = p9100_blank,
46 .fb_mmap = p9100_mmap,
47 .fb_ioctl = p9100_ioctl,
54 #define P9100_SYSCTL_OFF 0x0UL
55 #define P9100_VIDEOCTL_OFF 0x100UL
56 #define P9100_VRAMCTL_OFF 0x180UL
57 #define P9100_RAMDAC_OFF 0x200UL
58 #define P9100_VIDEOCOPROC_OFF 0x400UL
61 #define P9100_CMD_OFF 0x0UL
64 #define P9100_FB_OFF 0x0UL
67 #define SYS_CONFIG_PIXELSIZE_SHIFT 26
69 #define SCREENPAINT_TIMECTL1_ENABLE_VIDEO 0x20
134 #define P9100_FLAG_BLANKED 0x00000001
148 static int p9100_setcolreg(
unsigned regno,
170 spin_unlock_irqrestore(&par->
lock,
flags);
209 spin_unlock_irqrestore(&par->
lock,
flags);
224 info->
fix.smem_start, info->
fix.smem_len,
228 static int p9100_ioctl(
struct fb_info *info,
unsigned int cmd,
247 info->
fix.line_length = linebytes;
273 info->
var.red.length = 8;
274 info->
var.green.length = 8;
275 info->
var.blue.length = 8;
286 info->
fbops = &p9100_ops;
288 info->
fix.smem_len,
"p9100 ram");
295 goto out_unmap_screen;
297 p9100_init_fix(info, linebytes, dp);
301 goto out_dealloc_cmap;
359 .of_match_table = p9100_match,
361 .probe = p9100_probe,
365 static int __init p9100_init(
void)
373 static void __exit p9100_exit(
void)