From: James S. <jsi...@us...> - 2002-03-13 23:48:44
|
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"); |