git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.3
[linux-2.6.git]
/
drivers
/
video
/
kyro
/
fbdev.c
diff --git
a/drivers/video/kyro/fbdev.c
b/drivers/video/kyro/fbdev.c
index
aad0ab3
..
2352a91
100644
(file)
--- a/
drivers/video/kyro/fbdev.c
+++ b/
drivers/video/kyro/fbdev.c
@@
-84,7
+84,7
@@
typedef struct {
} device_info_t;
/* global graphics card info structure (one per card) */
} device_info_t;
/* global graphics card info structure (one per card) */
-static device_info_t deviceInfo
= { 0 }
;
+static device_info_t deviceInfo;
static char *mode_option __initdata = NULL;
static int nopan __initdata = 0;
static char *mode_option __initdata = NULL;
static int nopan __initdata = 0;
@@
-97,7
+97,6
@@
static int nomtrr __initdata = 0;
static int kyrofb_probe(struct pci_dev *pdev, const struct pci_device_id *ent);
static void kyrofb_remove(struct pci_dev *pdev);
static int kyrofb_probe(struct pci_dev *pdev, const struct pci_device_id *ent);
static void kyrofb_remove(struct pci_dev *pdev);
-#ifndef MODULE
static struct fb_videomode kyro_modedb[] __initdata = {
{
/* 640x350 @ 85Hz */
static struct fb_videomode kyro_modedb[] __initdata = {
{
/* 640x350 @ 85Hz */
@@
-306,7
+305,6
@@
enum {
VMODE_1920_1440_60,
VMODE_1920_1440_75,
};
VMODE_1920_1440_60,
VMODE_1920_1440_75,
};
-#endif
/* Accessors */
int kyro_dev_video_mode_set(struct fb_info *info)
/* Accessors */
int kyro_dev_video_mode_set(struct fb_info *info)
@@
-592,11
+590,11
@@
static int kyrofb_ioctl(struct inode *inode, struct file *file,
{
overlay_create ol_create;
overlay_viewport_set ol_viewport_set;
{
overlay_create ol_create;
overlay_viewport_set ol_viewport_set;
+ void __user *argp = (void __user *)arg;
switch (cmd) {
case KYRO_IOCTL_OVERLAY_CREATE:
switch (cmd) {
case KYRO_IOCTL_OVERLAY_CREATE:
- copy_from_user((void *) &ol_create, (void *) arg,
- sizeof(overlay_create));
+ copy_from_user(&ol_create, argp, sizeof(overlay_create));
if (kyro_dev_overlay_create(ol_create.ulWidth,
ol_create.ulHeight, 0) < 0) {
if (kyro_dev_overlay_create(ol_create.ulWidth,
ol_create.ulHeight, 0) < 0) {
@@
-606,7
+604,7
@@
static int kyrofb_ioctl(struct inode *inode, struct file *file,
}
break;
case KYRO_IOCTL_OVERLAY_VIEWPORT_SET:
}
break;
case KYRO_IOCTL_OVERLAY_VIEWPORT_SET:
- copy_from_user(
(void *) &ol_viewport_set, (void *) arg
,
+ copy_from_user(
&ol_viewport_set, argp
,
sizeof(overlay_viewport_set));
if (kyro_dev_overlay_viewport_set(ol_viewport_set.xOrgin,
sizeof(overlay_viewport_set));
if (kyro_dev_overlay_viewport_set(ol_viewport_set.xOrgin,
@@
-627,13
+625,13
@@
static int kyrofb_ioctl(struct inode *inode, struct file *file,
}
break;
case KYRO_IOCTL_UVSTRIDE:
}
break;
case KYRO_IOCTL_UVSTRIDE:
- copy_to_user(
(void *)arg, (void *)
&deviceInfo.ulOverlayUVStride, sizeof(unsigned long));
+ copy_to_user(
argp,
&deviceInfo.ulOverlayUVStride, sizeof(unsigned long));
break;
case KYRO_IOCTL_STRIDE:
break;
case KYRO_IOCTL_STRIDE:
- copy_to_user(
(void *)arg, (void *)
&deviceInfo.ulOverlayStride, sizeof(unsigned long));
+ copy_to_user(
argp,
&deviceInfo.ulOverlayStride, sizeof(unsigned long));
break;
case KYRO_IOCTL_OVERLAY_OFFSET:
break;
case KYRO_IOCTL_OVERLAY_OFFSET:
- copy_to_user(
(void *)arg, (void *)
&deviceInfo.ulOverlayOffset, sizeof(unsigned long));
+ copy_to_user(
argp,
&deviceInfo.ulOverlayOffset, sizeof(unsigned long));
break;
}
break;
}
@@
-714,7
+712,7
@@
static int __devinit kyrofb_probe(struct pci_dev *pdev,
info->fix = kyro_fix;
info->par = currentpar;
info->pseudo_palette = (void *)(currentpar + 1);
info->fix = kyro_fix;
info->par = currentpar;
info->pseudo_palette = (void *)(currentpar + 1);
- info->flags = FBINFO_
FLAG_
DEFAULT;
+ info->flags = FBINFO_DEFAULT;
SetCoreClockPLL(deviceInfo.pSTGReg, pdev);
SetCoreClockPLL(deviceInfo.pSTGReg, pdev);
@@
-722,10
+720,8
@@
static int __devinit kyrofb_probe(struct pci_dev *pdev,
deviceInfo.ulOverlayOffset = 0;
/* This should give a reasonable default video mode */
deviceInfo.ulOverlayOffset = 0;
/* This should give a reasonable default video mode */
-#ifndef MODULE
if (!fb_find_mode(&info->var, info, mode_option, kyro_modedb,
NUM_TOTAL_MODES, &kyro_modedb[VMODE_1024_768_75], 32))
if (!fb_find_mode(&info->var, info, mode_option, kyro_modedb,
NUM_TOTAL_MODES, &kyro_modedb[VMODE_1024_768_75], 32))
-#endif
info->var = kyro_var;
fb_alloc_cmap(&info->cmap, 256, 0);
info->var = kyro_var;
fb_alloc_cmap(&info->cmap, 256, 0);
@@
-737,7
+733,7
@@
static int __devinit kyrofb_probe(struct pci_dev *pdev,
info->var.bits_per_pixel);
size *= info->var.yres_virtual;
info->var.bits_per_pixel);
size *= info->var.yres_virtual;
-
memset_io((unsigned long)
info->screen_base, 0, size);
+
fb_memset(
info->screen_base, 0, size);
if (register_framebuffer(info) < 0)
goto out_unmap;
if (register_framebuffer(info) < 0)
goto out_unmap;
@@
-791,6
+787,13
@@
static void __devexit kyrofb_remove(struct pci_dev *pdev)
int __init kyrofb_init(void)
{
int __init kyrofb_init(void)
{
+#ifndef MODULE
+ char *option = NULL;
+
+ if (fb_get_options("kyrofb", &option))
+ return -ENODEV;
+ kyrofb_setup(option);
+#endif
return pci_module_init(&kyrofb_pci_driver);
}
return pci_module_init(&kyrofb_pci_driver);
}
@@
-799,8
+802,9
@@
static void __exit kyrofb_exit(void)
pci_unregister_driver(&kyrofb_pci_driver);
}
pci_unregister_driver(&kyrofb_pci_driver);
}
-#ifdef MODULE
module_init(kyrofb_init);
module_init(kyrofb_init);
+
+#ifdef MODULE
module_exit(kyrofb_exit);
#endif
module_exit(kyrofb_exit);
#endif