diff options
Diffstat (limited to 'drivers/video/fbdev/aty/atyfb_base.c')
-rw-r--r-- | drivers/video/fbdev/aty/atyfb_base.c | 47 |
1 files changed, 14 insertions, 33 deletions
diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c index 72bcfbe42e49..175d2598f28e 100644 --- a/drivers/video/fbdev/aty/atyfb_base.c +++ b/drivers/video/fbdev/aty/atyfb_base.c @@ -48,7 +48,7 @@ ******************************************************************************/ - +#include <linux/compat.h> #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/kernel.h> @@ -235,6 +235,13 @@ static int atyfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info); static int atyfb_blank(int blank, struct fb_info *info); static int atyfb_ioctl(struct fb_info *info, u_int cmd, u_long arg); +#ifdef CONFIG_COMPAT +static int atyfb_compat_ioctl(struct fb_info *info, u_int cmd, u_long arg) +{ + return atyfb_ioctl(info, cmd, (u_long)compat_ptr(arg)); +} +#endif + #ifdef __sparc__ static int atyfb_mmap(struct fb_info *info, struct vm_area_struct *vma); #endif @@ -290,6 +297,9 @@ static struct fb_ops atyfb_ops = { .fb_pan_display = atyfb_pan_display, .fb_blank = atyfb_blank, .fb_ioctl = atyfb_ioctl, +#ifdef CONFIG_COMPAT + .fb_compat_ioctl = atyfb_compat_ioctl, +#endif .fb_fillrect = atyfb_fillrect, .fb_copyarea = atyfb_copyarea, .fb_imageblit = atyfb_imageblit, @@ -1188,19 +1198,6 @@ static int aty_crtc_to_var(const struct crtc *crtc, (c_sync ? FB_SYNC_COMP_HIGH_ACT : 0); switch (pix_width) { -#if 0 - case CRTC_PIX_WIDTH_4BPP: - bpp = 4; - var->red.offset = 0; - var->red.length = 8; - var->green.offset = 0; - var->green.length = 8; - var->blue.offset = 0; - var->blue.length = 8; - var->transp.offset = 0; - var->transp.length = 0; - break; -#endif case CRTC_PIX_WIDTH_8BPP: bpp = 8; var->red.offset = 0; @@ -1329,10 +1326,10 @@ static int atyfb_set_par(struct fb_info *info) par->accel_flags = var->accel_flags; /* hack */ if (var->accel_flags) { - info->fbops->fb_sync = atyfb_sync; + atyfb_ops.fb_sync = atyfb_sync; info->flags &= ~FBINFO_HWACCEL_DISABLED; } else { - info->fbops->fb_sync = NULL; + atyfb_ops.fb_sync = NULL; info->flags |= FBINFO_HWACCEL_DISABLED; } @@ -1466,11 +1463,6 @@ static int atyfb_set_par(struct fb_info *info) var->bits_per_pixel, par->crtc.vxres * var->bits_per_pixel / 8); #endif /* CONFIG_BOOTX_TEXT */ -#if 0 - /* switch to accelerator mode */ - if (!(par->crtc.gen_cntl & CRTC_EXT_DISP_EN)) - aty_st_le32(CRTC_GEN_CNTL, par->crtc.gen_cntl | CRTC_EXT_DISP_EN, par); -#endif #ifdef DEBUG { /* dump non shadow CRTC, pll, LCD registers */ @@ -2396,17 +2388,6 @@ static int aty_init(struct fb_info *info) par->pll_ops = &aty_pll_ibm514; break; #endif -#if 0 /* dead code */ - case CLK_STG1703: - par->pll_ops = &aty_pll_stg1703; - break; - case CLK_CH8398: - par->pll_ops = &aty_pll_ch8398; - break; - case CLK_ATT20C408: - par->pll_ops = &aty_pll_att20c408; - break; -#endif default: PRINTKI("aty_init: CLK type not implemented yet!"); par->pll_ops = &aty_pll_unsupported; @@ -2731,7 +2712,7 @@ static int aty_init(struct fb_info *info) #ifdef CONFIG_FB_ATY_CT if (!noaccel && M64_HAS(INTEGRATED)) - aty_init_cursor(info); + aty_init_cursor(info, &atyfb_ops); #endif /* CONFIG_FB_ATY_CT */ info->var = var; |