Update of /cvsroot/linuxconsole/ruby/linux/drivers/video/aty
In directory usw-pr-cvs1:/tmp/cvs-serv27749/drivers/video/aty
Modified Files:
atyfb_base.c
Log Message:
Synced to 2.5.3
Index: atyfb_base.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/aty/atyfb_base.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- atyfb_base.c 23 Nov 2001 01:28:18 -0000 1.10
+++ atyfb_base.c 13 Mar 2002 23:48:38 -0000 1.11
@@ -91,6 +91,9 @@
#ifdef CONFIG_NVRAM
#include <linux/nvram.h>
#endif
+#ifdef CONFIG_FB_COMPAT_XPMAC
+#include <asm/vc_ioctl.h>
+#endif
#ifdef CONFIG_PMAC_BACKLIGHT
#include <asm/backlight.h>
#endif
@@ -340,7 +343,7 @@
{ 0x4751, 0x4751, 0x00, 0x00, m64n_gtc_ppl, 230, 100, M64F_GT | M64F_INTEGRATED | M64F_RESET_3D | M64F_GTB_DSP | M64F_SDRAM_MAGIC_PLL | M64F_EXTRA_BRIGHT },
/* 3D RAGE XL */
- { 0x4752, 0x4752, 0x00, 0x00, m64n_xl, 230, 120, M64F_GT | M64F_INTEGRATED | M64F_RESET_3D | M64F_GTB_DSP | M64F_SDRAM_MAGIC_PLL | M64F_EXTRA_BRIGHT | M64F_XL_DLL },
+ { 0x4752, 0x4752, 0x00, 0x00, m64n_xl, 230, 100, M64F_GT | M64F_INTEGRATED | M64F_RESET_3D | M64F_GTB_DSP | M64F_SDRAM_MAGIC_PLL | M64F_EXTRA_BRIGHT | M64F_XL_DLL },
/* Mach64 LT PRO */
{ 0x4c42, 0x4c42, 0x00, 0x00, m64n_ltp_a, 230, 100, M64F_GT | M64F_INTEGRATED | M64F_RESET_3D | M64F_GTB_DSP },
@@ -796,6 +799,26 @@
if (par->accel_flags & FB_ACCELF_TEXT)
aty_init_engine(par, info);
+#ifdef CONFIG_FB_COMPAT_XPMAC
+ if (!console_fb_info || console_fb_info == &info->fb_info) {
+ struct fb_var_screeninfo var;
+ int vmode, cmode;
+ display_info.height = ((par->crtc.v_tot_disp>>16) & 0x7ff)+1;
+ display_info.width = (((par->crtc.h_tot_disp>>16) & 0xff)+1)*8;
+ display_info.depth = par->crtc.bpp;
+ display_info.pitch = par->crtc.vxres*par->crtc.bpp/8;
+ atyfb_encode_var(&var, par, info);
+ if (mac_var_to_vmode(&var, &vmode, &cmode))
+ display_info.mode = 0;
+ else
+ display_info.mode = vmode;
+ strcpy(display_info.name, atyfb_name);
+ display_info.fb_address = info->frame_buffer_phys;
+ display_info.cmap_adr_address = info->ati_regbase_phys+0xc0;
+ display_info.cmap_data_address = info->ati_regbase_phys+0xc1;
+ display_info.disp_reg_address = info->ati_regbase_phys;
+ }
+#endif /* CONFIG_FB_COMPAT_XPMAC */
}
static int atyfb_decode_var(const struct fb_var_screeninfo *var,
@@ -1371,7 +1394,7 @@
pgprot_val(vma->vm_page_prot) &= ~(fb->mmap_map[i].prot_mask);
pgprot_val(vma->vm_page_prot) |= fb->mmap_map[i].prot_flag;
- if (remap_page_range(vma->vm_start + page, map_offset,
+ if (remap_page_range(vma, vma->vm_start + page, map_offset,
map_size, vma->vm_page_prot))
return -EAGAIN;
@@ -1963,7 +1986,7 @@
disp = &info->disp;
strcpy(info->fb_info.modename, atyfb_name);
- info->fb_info.node = -1;
+ info->fb_info.node = NODEV;
info->fb_info.fbops = &atyfb_ops;
info->fb_info.disp = disp;
strcpy(info->fb_info.fontname, fontname);
@@ -2426,6 +2449,10 @@
first_display = info;
#endif
+#ifdef CONFIG_FB_COMPAT_XPMAC
+ if (!console_fb_info)
+ console_fb_info = &info->fb_info;
+#endif /* CONFIG_FB_COMPAT_XPMAC */
}
}
@@ -2864,3 +2891,4 @@
}
#endif
+MODULE_LICENSE("GPL");
|