Loading drivers/staging/xgifb/XGI_accel.c +0 −90 Original line number Diff line number Diff line Loading @@ -97,102 +97,12 @@ static const unsigned char myrops[] = { }; /* 300 series */ #if 0 static void XGI300Sync(void) { XGI300Idle } #endif static void XGI310Sync(void) { XGI310Idle } #if 0 static void XGI300SetupForScreenToScreenCopy(int xdir, int ydir, int rop, unsigned int planemask, int trans_color) { XGI300SetupDSTColorDepth(xgi_video_info.DstColor); XGI300SetupSRCPitch(xgi_video_info.video_linelength) XGI300SetupDSTRect(xgi_video_info.video_linelength, 0xFFF) if(trans_color != -1) { XGI300SetupROP(0x0A) XGI300SetupSRCTrans(trans_color) XGI300SetupCMDFlag(TRANSPARENT_BITBLT) } else { XGI300SetupROP(XGIALUConv[rop]) } if(xdir > 0) { XGI300SetupCMDFlag(X_INC) } if(ydir > 0) { XGI300SetupCMDFlag(Y_INC) } } static void XGI300SubsequentScreenToScreenCopy(int src_x, int src_y, int dst_x, int dst_y, int width, int height) { long srcbase, dstbase; srcbase = dstbase = 0; if (src_y >= 2048) { srcbase = xgi_video_info.video_linelength * src_y; src_y = 0; } if (dst_y >= 2048) { dstbase = xgi_video_info.video_linelength * dst_y; dst_y = 0; } XGI300SetupSRCBase(srcbase); XGI300SetupDSTBase(dstbase); if(!(xgi_video_info.CommandReg & X_INC)) { src_x += width-1; dst_x += width-1; } if(!(xgi_video_info.CommandReg & Y_INC)) { src_y += height-1; dst_y += height-1; } XGI300SetupRect(width, height) XGI300SetupSRCXY(src_x, src_y) XGI300SetupDSTXY(dst_x, dst_y) XGI300DoCMD } static void XGI300SetupForSolidFill(int color, int rop, unsigned int planemask) { XGI300SetupPATFG(color) XGI300SetupDSTRect(xgi_video_info.video_linelength, 0xFFF) XGI300SetupDSTColorDepth(xgi_video_info.DstColor); XGI300SetupROP(XGIPatALUConv[rop]) XGI300SetupCMDFlag(PATFG) } static void XGI300SubsequentSolidFillRect(int x, int y, int w, int h) { long dstbase; dstbase = 0; if(y >= 2048) { dstbase = xgi_video_info.video_linelength * y; y = 0; } XGI300SetupDSTBase(dstbase) XGI300SetupDSTXY(x,y) XGI300SetupRect(w,h) XGI300SetupCMDFlag(X_INC | Y_INC | BITBLT) XGI300DoCMD } #endif /* 310/325 series ------------------------------------------------ */ static void Loading drivers/staging/xgifb/XGI_main.h +0 −4 Original line number Diff line number Diff line Loading @@ -805,10 +805,6 @@ extern void fbcon_XGI_fillrect(struct fb_info *info, const struct fb_fillrect *rect); extern void fbcon_XGI_copyarea(struct fb_info *info, const struct fb_copyarea *area); #if 0 extern void cfb_imageblit(struct fb_info *info, const struct fb_image *image); #endif extern int fbcon_XGI_sync(struct fb_info *info); static int XGIfb_ioctl(struct fb_info *info, unsigned int cmd, Loading drivers/staging/xgifb/XGI_main_26.c +0 −83 Original line number Diff line number Diff line Loading @@ -371,18 +371,6 @@ XGIfb_mode_rate_to_ddata(VB_DEVICE_INFO *XGI_Pr, PXGI_HW_DEVICE_INFO HwDeviceExt } } #if 0 /* That's bullshit, only the resolution needs to be shifted */ if((*vmode & FB_VMODE_MASK) == FB_VMODE_INTERLACED) { *upper_margin <<= 1; *lower_margin <<= 1; *vsync_len <<= 1; } else if((*vmode & FB_VMODE_MASK) == FB_VMODE_DOUBLE) { *upper_margin >>= 1; *lower_margin >>= 1; *vsync_len >>= 1; } #endif return 1; } Loading Loading @@ -1537,58 +1525,7 @@ static int XGIfb_pan_display( struct fb_var_screeninfo *var, } #endif #if 0 static int XGIfb_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma) { unsigned long start; unsigned long off; u32 len, mmio_off; DEBUGPRN("inside mmap"); if(vma->vm_pgoff > (~0UL >> PAGE_SHIFT)) return -EINVAL; off = vma->vm_pgoff << PAGE_SHIFT; start = (unsigned long) xgi_video_info.video_base; len = PAGE_ALIGN((start & ~PAGE_MASK) + xgi_video_info.video_size); start &= PAGE_MASK; #if 0 if (off >= len) { off -= len; #endif /* By Jake Page: Treat mmap request with offset beyond heapstart * as request for mapping the mmio area */ #if 1 mmio_off = PAGE_ALIGN((start & ~PAGE_MASK) + xgi_video_info.heapstart); if(off >= mmio_off) { off -= mmio_off; if(info->var.accel_flags) return -EINVAL; start = (unsigned long) xgi_video_info.mmio_base; len = PAGE_ALIGN((start & ~PAGE_MASK) + XGIfb_mmio_size); } start &= PAGE_MASK; #endif if((vma->vm_end - vma->vm_start + off) > len) return -EINVAL; off += start; vma->vm_pgoff = off >> PAGE_SHIFT; vma->vm_flags |= VM_IO; /* by Jake Page; is that really needed? */ #if defined(__i386__) || defined(__x86_64__) if (boot_cpu_data.x86 > 3) pgprot_val(vma->vm_page_prot) |= _PAGE_PCD; #endif if (io_remap_pfn_range(vma, vma->vm_start, off >> PAGE_SHIFT, vma->vm_end - vma->vm_start, vma->vm_page_prot)) return -EAGAIN; DEBUGPRN("end of mmap"); return 0; } #endif static int XGIfb_blank(int blank, struct fb_info *info) { u8 reg; Loading Loading @@ -2652,12 +2589,6 @@ static void XGIfb_post_setmode(void) { u8 reg; BOOLEAN doit = 1; #if 0 /* TW: Wrong: Is not in MMIO space, but in RAM */ /* Backup mode number to MMIO space */ if(xgi_video_info.mmio_vbase) { *(volatile u8 *)(((u8*)xgi_video_info.mmio_vbase) + 0x449) = (unsigned char)XGIfb_mode_no; } #endif /* outXGIIDXREG(XGISR,IND_XGI_PASSWORD,XGI_PASSWORD); outXGIIDXREG(XGICR,0x13,0x00); setXGIIDXREG(XGISR,0x0E,0xF0,0x01); Loading Loading @@ -3445,20 +3376,6 @@ int __devinit xgifb_probe(struct pci_dev *pdev, const struct pci_device_id *ent) } #if 0 #ifdef XGIFB_PAN if(XGIfb_ypan) { default_var.yres_virtual = xgi_video_info.heapstart / (default_var.xres * (default_var.bits_per_pixel >> 3)); if(default_var.yres_virtual <= default_var.yres) { default_var.yres_virtual = default_var.yres; } } #endif #endif xgi_video_info.accel = 0; if(XGIfb_accel) { xgi_video_info.accel = -1; Loading drivers/staging/xgifb/vb_init.c +0 −198 Original line number Diff line number Diff line Loading @@ -476,15 +476,6 @@ printk("19"); } /* SkipDramSizing */ else { #if 0 if ( HwDeviceExtension->jChipType == XG20 ) { XGINew_SetReg1( pVBInfo->P3c4 , 0x13 , pVBInfo->SR15[0][XGINew_RAMType] ) ; XGINew_SetReg1( pVBInfo->P3c4 , 0x14 , pVBInfo->SR15[1][XGINew_RAMType] ) ; XGINew_SetReg1( pVBInfo->P3c4 , 0x20 , 0x20 ) ; } else #endif { printk("20"); Loading Loading @@ -2700,195 +2691,6 @@ void ReadVBIOSTablData( UCHAR ChipType , PVB_DEVICE_INFO pVBInfo) volatile unsigned char *pVideoMemory = (unsigned char *)pVBInfo->ROMAddr; ULONG i ; UCHAR j , k ; #if 0 ULONG ii , jj ; i = pVideoMemory[ 0x1CF ] | ( pVideoMemory[ 0x1D0 ] << 8 ) ; /* UniROM */ if ( i != 0 ) UNIROM = 1 ; ii = 0x90 ; for( jj = 0x00 ; jj < 0x08 ; jj++ ) { pVBInfo->MCLKData[ jj ].SR28 = pVideoMemory[ ii ] ; pVBInfo->MCLKData[ jj ].SR29 = pVideoMemory[ ii + 1] ; pVBInfo->MCLKData[ jj ].SR2A = pVideoMemory[ ii + 2] ; pVBInfo->MCLKData[ jj ].CLOCK = pVideoMemory[ ii + 3 ] | ( pVideoMemory[ ii + 4 ] << 8 ) ; ii += 0x05 ; } ii = 0xB8 ; for( jj = 0x00 ; jj < 0x08 ; jj++ ) { pVBInfo->ECLKData[ jj ].SR2E = pVideoMemory[ ii ] ; pVBInfo->ECLKData[ jj ].SR2F=pVideoMemory[ ii + 1 ] ; pVBInfo->ECLKData[ jj ].SR30= pVideoMemory[ ii + 2 ] ; pVBInfo->ECLKData[ jj ].CLOCK= pVideoMemory[ ii + 3 ] | ( pVideoMemory[ ii + 4 ] << 8 ) ; ii += 0x05 ; } /* Volari customize data area start */ /* if ( ChipType == XG40 ) */ if ( ChipType >= XG40 ) { ii = 0xE0 ; for( jj = 0x00 ; jj < 0x03 ; jj++ ) { pVBInfo->SR15[ jj ][ 0 ] = pVideoMemory[ ii ] ; /* SR13, SR14, and SR18 */ pVBInfo->SR15[ jj ][ 1 ] = pVideoMemory[ ii + 1 ] ; pVBInfo->SR15[ jj ][ 2 ] = pVideoMemory[ ii + 2 ] ; pVBInfo->SR15[ jj ][ 3 ] = pVideoMemory[ ii + 3 ] ; pVBInfo->SR15[ jj ][ 4 ] = pVideoMemory[ ii + 4 ] ; pVBInfo->SR15[ jj ][ 5 ] = pVideoMemory[ ii + 5 ] ; pVBInfo->SR15[ jj ][ 6 ] = pVideoMemory[ ii + 6 ] ; pVBInfo->SR15[ jj ][ 7 ] = pVideoMemory[ ii + 7 ] ; ii += 0x08 ; } ii = 0x110 ; jj = 0x03 ; pVBInfo->SR15[ jj ][ 0 ] = pVideoMemory[ ii ] ; /* SR1B */ pVBInfo->SR15[ jj ][ 1 ] = pVideoMemory[ ii + 1 ] ; pVBInfo->SR15[ jj ][ 2 ] = pVideoMemory[ ii + 2 ] ; pVBInfo->SR15[ jj ][ 3 ] = pVideoMemory[ ii + 3 ] ; pVBInfo->SR15[ jj ][ 4 ] = pVideoMemory[ ii + 4 ] ; pVBInfo->SR15[ jj ][ 5 ] = pVideoMemory[ ii + 5 ] ; pVBInfo->SR15[ jj ][ 6 ] = pVideoMemory[ ii + 6 ] ; pVBInfo->SR15[ jj ][ 7 ] = pVideoMemory[ ii + 7 ] ; *pVBInfo->pSR07 = pVideoMemory[ 0x74 ] ; *pVBInfo->pSR1F = pVideoMemory[ 0x75 ] ; *pVBInfo->pSR21 = pVideoMemory[ 0x76 ] ; *pVBInfo->pSR22 = pVideoMemory[ 0x77 ] ; *pVBInfo->pSR23 = pVideoMemory[ 0x78 ] ; *pVBInfo->pSR24 = pVideoMemory[ 0x79 ] ; pVBInfo->SR25[ 0 ] = pVideoMemory[ 0x7A ] ; *pVBInfo->pSR31 = pVideoMemory[ 0x7B ] ; *pVBInfo->pSR32 = pVideoMemory[ 0x7C ] ; *pVBInfo->pSR33 = pVideoMemory[ 0x7D ] ; ii = 0xF8 ; for( jj = 0 ; jj < 3 ; jj++ ) { pVBInfo->CR40[ jj ][ 0 ] = pVideoMemory[ ii ] ; pVBInfo->CR40[ jj ][ 1 ] = pVideoMemory[ ii + 1 ] ; pVBInfo->CR40[ jj ][ 2 ] = pVideoMemory[ ii + 2 ] ; pVBInfo->CR40[ jj ][ 3 ] = pVideoMemory[ ii + 3 ] ; pVBInfo->CR40[ jj ][ 4 ] = pVideoMemory[ ii + 4 ] ; pVBInfo->CR40[ jj ][ 5 ] = pVideoMemory[ ii + 5 ] ; pVBInfo->CR40[ jj ][ 6 ] = pVideoMemory[ ii + 6 ] ; pVBInfo->CR40[ jj ][ 7 ] = pVideoMemory[ ii + 7 ] ; ii += 0x08 ; } ii = 0x118 ; for( j = 3 ; j < 24 ; j++ ) { pVBInfo->CR40[ j ][ 0 ] = pVideoMemory[ ii ] ; pVBInfo->CR40[ j ][ 1 ] = pVideoMemory[ ii + 1 ] ; pVBInfo->CR40[ j ][ 2 ] = pVideoMemory[ ii + 2 ] ; pVBInfo->CR40[ j ][ 3 ] = pVideoMemory[ ii + 3 ] ; pVBInfo->CR40[ j ][ 4 ] = pVideoMemory[ ii + 4 ] ; pVBInfo->CR40[ j ][ 5 ] = pVideoMemory[ ii + 5 ] ; pVBInfo->CR40[ j ][ 6 ] = pVideoMemory[ ii + 6 ] ; pVBInfo->CR40[ j ][ 7 ] = pVideoMemory[ ii + 7 ] ; ii += 0x08 ; } i = pVideoMemory[ 0x1C0 ] | ( pVideoMemory[ 0x1C1 ] << 8 ) ; for( j = 0 ; j < 8 ; j++ ) { for( k = 0 ; k < 4 ; k++ ) pVBInfo->CR6B[ j ][ k ] = pVideoMemory[ i + 4 * j + k ] ; } i = pVideoMemory[ 0x1C2 ] | ( pVideoMemory[ 0x1C3 ] << 8 ) ; for( j = 0 ; j < 8 ; j++ ) { for( k = 0 ; k < 4 ; k++ ) pVBInfo->CR6E[ j ][ k ] = pVideoMemory[ i + 4 * j + k ] ; } i = pVideoMemory[ 0x1C4 ] | ( pVideoMemory[ 0x1C5 ] << 8 ) ; for( j = 0 ; j < 8 ; j++ ) { for( k = 0 ; k < 32 ; k++ ) pVBInfo->CR6F[ j ][ k ] = pVideoMemory[ i + 32 * j + k ] ; } i = pVideoMemory[ 0x1C6 ] | ( pVideoMemory[ 0x1C7 ] << 8 ) ; for( j = 0 ; j < 8 ; j++ ) { for( k = 0 ; k < 2 ; k++ ) pVBInfo->CR89[ j ][ k ] = pVideoMemory[ i + 2 * j + k ] ; } i = pVideoMemory[ 0x1C8 ] | ( pVideoMemory[ 0x1C9 ] << 8 ) ; for( j = 0 ; j < 12 ; j++ ) pVBInfo->AGPReg[ j ] = pVideoMemory[ i + j ] ; i = pVideoMemory[ 0x1CF ] | ( pVideoMemory[ 0x1D0 ] << 8 ) ; for( j = 0 ; j < 4 ; j++ ) pVBInfo->SR16[ j ] = pVideoMemory[ i + j ] ; if ( ChipType == XG21 ) { if (pVideoMemory[ 0x67 ] & 0x80) { *pVBInfo->pDVOSetting = pVideoMemory[ 0x67 ]; } if ( (pVideoMemory[ 0x67 ] & 0xC0) == 0xC0 ) { *pVBInfo->pCR2E = pVideoMemory[ i + 4 ] ; *pVBInfo->pCR2F = pVideoMemory[ i + 5 ] ; *pVBInfo->pCR46 = pVideoMemory[ i + 6 ] ; *pVBInfo->pCR47 = pVideoMemory[ i + 7 ] ; } } if ( ChipType == XG27 ) { jj = i+j; for( i = 0 ; i <= 0xB ; i++,jj++ ) pVBInfo->pCRD0[i] = pVideoMemory[ jj ] ; for( i = 0x0 ; i <= 0x1 ; i++,jj++ ) pVBInfo->pCRDE[i] = pVideoMemory[ jj ] ; *pVBInfo->pSR40 = pVideoMemory[ jj ] ; jj++; *pVBInfo->pSR41 = pVideoMemory[ jj ] ; if (pVideoMemory[ 0x67 ] & 0x80) { *pVBInfo->pDVOSetting = pVideoMemory[ 0x67 ]; } if ( (pVideoMemory[ 0x67 ] & 0xC0) == 0xC0 ) { jj++; *pVBInfo->pCR2E = pVideoMemory[ jj ] ; *pVBInfo->pCR2F = pVideoMemory[ jj + 1 ] ; *pVBInfo->pCR46 = pVideoMemory[ jj + 2 ] ; *pVBInfo->pCR47 = pVideoMemory[ jj + 3 ] ; } } *pVBInfo->pCRCF = pVideoMemory[ 0x1CA ] ; *pVBInfo->pXGINew_DRAMTypeDefinition = pVideoMemory[ 0x1CB ] ; *pVBInfo->pXGINew_I2CDefinition = pVideoMemory[ 0x1D1 ] ; if ( ChipType >= XG20 ) { *pVBInfo->pXGINew_CR97 = pVideoMemory[ 0x1D2 ] ; if ( ChipType == XG27 ) { *pVBInfo->pSR36 = pVideoMemory[ 0x1D3 ] ; *pVBInfo->pCR8F = pVideoMemory[ 0x1D5 ] ; } } } #endif /* Volari customize data area end */ if ( ChipType == XG21 ) Loading drivers/staging/xgifb/vb_setmode.c +0 −47 Original line number Diff line number Diff line Loading @@ -2579,53 +2579,6 @@ void XGI_WriteDAC( USHORT dl , USHORT ah , USHORT al , USHORT dh,PVB_DEVICE_INFO XGINew_SetReg3( pVBInfo->P3c9 , ( USHORT )bl ) ; } #if 0 /* --------------------------------------------------------------------- */ /* Function : XGI_ClearBuffer */ /* Input : */ /* Output : */ /* Description : */ /* --------------------------------------------------------------------- */ void XGI_ClearBuffer( PXGI_HW_DEVICE_INFO HwDeviceExtension , USHORT ModeNo, PVB_DEVICE_INFO pVBInfo) { void *VideoMemoryAddress = (void *)HwDeviceExtension->pjVideoMemoryAddress; ULONG AdapterMemorySize = ( ULONG )HwDeviceExtension->ulVideoMemorySize ; unsigned short *pBuffer ; int i ; if ( pVBInfo->ModeType >= ModeEGA ) { if ( ModeNo > 0x13 ) { AdapterMemorySize = 0x40000 ; /* clear 256k */ /* GetDRAMSize( HwDeviceExtension ) ; */ memset(VideoMemoryAddress, 0, AdapterMemorySize); } else { /* pBuffer = VideoMemoryAddress ; for( i = 0 ; i < 0x4000 ; i++ ) pBuffer[ i ] = 0x0000 ; */ } } else { pBuffer = VideoMemoryAddress ; if ( pVBInfo->ModeType < ModeCGA ) { /* for ( i = 0 ; i < 0x4000 ; i++ ) pBuffer[ i ] = 0x0720 ; */ } else memset(VideoMemoryAddress , 0, 0x8000); } } #endif /* --------------------------------------------------------------------- */ /* Function : XGI_SetLCDAGroup */ /* Input : */ Loading Loading
drivers/staging/xgifb/XGI_accel.c +0 −90 Original line number Diff line number Diff line Loading @@ -97,102 +97,12 @@ static const unsigned char myrops[] = { }; /* 300 series */ #if 0 static void XGI300Sync(void) { XGI300Idle } #endif static void XGI310Sync(void) { XGI310Idle } #if 0 static void XGI300SetupForScreenToScreenCopy(int xdir, int ydir, int rop, unsigned int planemask, int trans_color) { XGI300SetupDSTColorDepth(xgi_video_info.DstColor); XGI300SetupSRCPitch(xgi_video_info.video_linelength) XGI300SetupDSTRect(xgi_video_info.video_linelength, 0xFFF) if(trans_color != -1) { XGI300SetupROP(0x0A) XGI300SetupSRCTrans(trans_color) XGI300SetupCMDFlag(TRANSPARENT_BITBLT) } else { XGI300SetupROP(XGIALUConv[rop]) } if(xdir > 0) { XGI300SetupCMDFlag(X_INC) } if(ydir > 0) { XGI300SetupCMDFlag(Y_INC) } } static void XGI300SubsequentScreenToScreenCopy(int src_x, int src_y, int dst_x, int dst_y, int width, int height) { long srcbase, dstbase; srcbase = dstbase = 0; if (src_y >= 2048) { srcbase = xgi_video_info.video_linelength * src_y; src_y = 0; } if (dst_y >= 2048) { dstbase = xgi_video_info.video_linelength * dst_y; dst_y = 0; } XGI300SetupSRCBase(srcbase); XGI300SetupDSTBase(dstbase); if(!(xgi_video_info.CommandReg & X_INC)) { src_x += width-1; dst_x += width-1; } if(!(xgi_video_info.CommandReg & Y_INC)) { src_y += height-1; dst_y += height-1; } XGI300SetupRect(width, height) XGI300SetupSRCXY(src_x, src_y) XGI300SetupDSTXY(dst_x, dst_y) XGI300DoCMD } static void XGI300SetupForSolidFill(int color, int rop, unsigned int planemask) { XGI300SetupPATFG(color) XGI300SetupDSTRect(xgi_video_info.video_linelength, 0xFFF) XGI300SetupDSTColorDepth(xgi_video_info.DstColor); XGI300SetupROP(XGIPatALUConv[rop]) XGI300SetupCMDFlag(PATFG) } static void XGI300SubsequentSolidFillRect(int x, int y, int w, int h) { long dstbase; dstbase = 0; if(y >= 2048) { dstbase = xgi_video_info.video_linelength * y; y = 0; } XGI300SetupDSTBase(dstbase) XGI300SetupDSTXY(x,y) XGI300SetupRect(w,h) XGI300SetupCMDFlag(X_INC | Y_INC | BITBLT) XGI300DoCMD } #endif /* 310/325 series ------------------------------------------------ */ static void Loading
drivers/staging/xgifb/XGI_main.h +0 −4 Original line number Diff line number Diff line Loading @@ -805,10 +805,6 @@ extern void fbcon_XGI_fillrect(struct fb_info *info, const struct fb_fillrect *rect); extern void fbcon_XGI_copyarea(struct fb_info *info, const struct fb_copyarea *area); #if 0 extern void cfb_imageblit(struct fb_info *info, const struct fb_image *image); #endif extern int fbcon_XGI_sync(struct fb_info *info); static int XGIfb_ioctl(struct fb_info *info, unsigned int cmd, Loading
drivers/staging/xgifb/XGI_main_26.c +0 −83 Original line number Diff line number Diff line Loading @@ -371,18 +371,6 @@ XGIfb_mode_rate_to_ddata(VB_DEVICE_INFO *XGI_Pr, PXGI_HW_DEVICE_INFO HwDeviceExt } } #if 0 /* That's bullshit, only the resolution needs to be shifted */ if((*vmode & FB_VMODE_MASK) == FB_VMODE_INTERLACED) { *upper_margin <<= 1; *lower_margin <<= 1; *vsync_len <<= 1; } else if((*vmode & FB_VMODE_MASK) == FB_VMODE_DOUBLE) { *upper_margin >>= 1; *lower_margin >>= 1; *vsync_len >>= 1; } #endif return 1; } Loading Loading @@ -1537,58 +1525,7 @@ static int XGIfb_pan_display( struct fb_var_screeninfo *var, } #endif #if 0 static int XGIfb_mmap(struct fb_info *info, struct file *file, struct vm_area_struct *vma) { unsigned long start; unsigned long off; u32 len, mmio_off; DEBUGPRN("inside mmap"); if(vma->vm_pgoff > (~0UL >> PAGE_SHIFT)) return -EINVAL; off = vma->vm_pgoff << PAGE_SHIFT; start = (unsigned long) xgi_video_info.video_base; len = PAGE_ALIGN((start & ~PAGE_MASK) + xgi_video_info.video_size); start &= PAGE_MASK; #if 0 if (off >= len) { off -= len; #endif /* By Jake Page: Treat mmap request with offset beyond heapstart * as request for mapping the mmio area */ #if 1 mmio_off = PAGE_ALIGN((start & ~PAGE_MASK) + xgi_video_info.heapstart); if(off >= mmio_off) { off -= mmio_off; if(info->var.accel_flags) return -EINVAL; start = (unsigned long) xgi_video_info.mmio_base; len = PAGE_ALIGN((start & ~PAGE_MASK) + XGIfb_mmio_size); } start &= PAGE_MASK; #endif if((vma->vm_end - vma->vm_start + off) > len) return -EINVAL; off += start; vma->vm_pgoff = off >> PAGE_SHIFT; vma->vm_flags |= VM_IO; /* by Jake Page; is that really needed? */ #if defined(__i386__) || defined(__x86_64__) if (boot_cpu_data.x86 > 3) pgprot_val(vma->vm_page_prot) |= _PAGE_PCD; #endif if (io_remap_pfn_range(vma, vma->vm_start, off >> PAGE_SHIFT, vma->vm_end - vma->vm_start, vma->vm_page_prot)) return -EAGAIN; DEBUGPRN("end of mmap"); return 0; } #endif static int XGIfb_blank(int blank, struct fb_info *info) { u8 reg; Loading Loading @@ -2652,12 +2589,6 @@ static void XGIfb_post_setmode(void) { u8 reg; BOOLEAN doit = 1; #if 0 /* TW: Wrong: Is not in MMIO space, but in RAM */ /* Backup mode number to MMIO space */ if(xgi_video_info.mmio_vbase) { *(volatile u8 *)(((u8*)xgi_video_info.mmio_vbase) + 0x449) = (unsigned char)XGIfb_mode_no; } #endif /* outXGIIDXREG(XGISR,IND_XGI_PASSWORD,XGI_PASSWORD); outXGIIDXREG(XGICR,0x13,0x00); setXGIIDXREG(XGISR,0x0E,0xF0,0x01); Loading Loading @@ -3445,20 +3376,6 @@ int __devinit xgifb_probe(struct pci_dev *pdev, const struct pci_device_id *ent) } #if 0 #ifdef XGIFB_PAN if(XGIfb_ypan) { default_var.yres_virtual = xgi_video_info.heapstart / (default_var.xres * (default_var.bits_per_pixel >> 3)); if(default_var.yres_virtual <= default_var.yres) { default_var.yres_virtual = default_var.yres; } } #endif #endif xgi_video_info.accel = 0; if(XGIfb_accel) { xgi_video_info.accel = -1; Loading
drivers/staging/xgifb/vb_init.c +0 −198 Original line number Diff line number Diff line Loading @@ -476,15 +476,6 @@ printk("19"); } /* SkipDramSizing */ else { #if 0 if ( HwDeviceExtension->jChipType == XG20 ) { XGINew_SetReg1( pVBInfo->P3c4 , 0x13 , pVBInfo->SR15[0][XGINew_RAMType] ) ; XGINew_SetReg1( pVBInfo->P3c4 , 0x14 , pVBInfo->SR15[1][XGINew_RAMType] ) ; XGINew_SetReg1( pVBInfo->P3c4 , 0x20 , 0x20 ) ; } else #endif { printk("20"); Loading Loading @@ -2700,195 +2691,6 @@ void ReadVBIOSTablData( UCHAR ChipType , PVB_DEVICE_INFO pVBInfo) volatile unsigned char *pVideoMemory = (unsigned char *)pVBInfo->ROMAddr; ULONG i ; UCHAR j , k ; #if 0 ULONG ii , jj ; i = pVideoMemory[ 0x1CF ] | ( pVideoMemory[ 0x1D0 ] << 8 ) ; /* UniROM */ if ( i != 0 ) UNIROM = 1 ; ii = 0x90 ; for( jj = 0x00 ; jj < 0x08 ; jj++ ) { pVBInfo->MCLKData[ jj ].SR28 = pVideoMemory[ ii ] ; pVBInfo->MCLKData[ jj ].SR29 = pVideoMemory[ ii + 1] ; pVBInfo->MCLKData[ jj ].SR2A = pVideoMemory[ ii + 2] ; pVBInfo->MCLKData[ jj ].CLOCK = pVideoMemory[ ii + 3 ] | ( pVideoMemory[ ii + 4 ] << 8 ) ; ii += 0x05 ; } ii = 0xB8 ; for( jj = 0x00 ; jj < 0x08 ; jj++ ) { pVBInfo->ECLKData[ jj ].SR2E = pVideoMemory[ ii ] ; pVBInfo->ECLKData[ jj ].SR2F=pVideoMemory[ ii + 1 ] ; pVBInfo->ECLKData[ jj ].SR30= pVideoMemory[ ii + 2 ] ; pVBInfo->ECLKData[ jj ].CLOCK= pVideoMemory[ ii + 3 ] | ( pVideoMemory[ ii + 4 ] << 8 ) ; ii += 0x05 ; } /* Volari customize data area start */ /* if ( ChipType == XG40 ) */ if ( ChipType >= XG40 ) { ii = 0xE0 ; for( jj = 0x00 ; jj < 0x03 ; jj++ ) { pVBInfo->SR15[ jj ][ 0 ] = pVideoMemory[ ii ] ; /* SR13, SR14, and SR18 */ pVBInfo->SR15[ jj ][ 1 ] = pVideoMemory[ ii + 1 ] ; pVBInfo->SR15[ jj ][ 2 ] = pVideoMemory[ ii + 2 ] ; pVBInfo->SR15[ jj ][ 3 ] = pVideoMemory[ ii + 3 ] ; pVBInfo->SR15[ jj ][ 4 ] = pVideoMemory[ ii + 4 ] ; pVBInfo->SR15[ jj ][ 5 ] = pVideoMemory[ ii + 5 ] ; pVBInfo->SR15[ jj ][ 6 ] = pVideoMemory[ ii + 6 ] ; pVBInfo->SR15[ jj ][ 7 ] = pVideoMemory[ ii + 7 ] ; ii += 0x08 ; } ii = 0x110 ; jj = 0x03 ; pVBInfo->SR15[ jj ][ 0 ] = pVideoMemory[ ii ] ; /* SR1B */ pVBInfo->SR15[ jj ][ 1 ] = pVideoMemory[ ii + 1 ] ; pVBInfo->SR15[ jj ][ 2 ] = pVideoMemory[ ii + 2 ] ; pVBInfo->SR15[ jj ][ 3 ] = pVideoMemory[ ii + 3 ] ; pVBInfo->SR15[ jj ][ 4 ] = pVideoMemory[ ii + 4 ] ; pVBInfo->SR15[ jj ][ 5 ] = pVideoMemory[ ii + 5 ] ; pVBInfo->SR15[ jj ][ 6 ] = pVideoMemory[ ii + 6 ] ; pVBInfo->SR15[ jj ][ 7 ] = pVideoMemory[ ii + 7 ] ; *pVBInfo->pSR07 = pVideoMemory[ 0x74 ] ; *pVBInfo->pSR1F = pVideoMemory[ 0x75 ] ; *pVBInfo->pSR21 = pVideoMemory[ 0x76 ] ; *pVBInfo->pSR22 = pVideoMemory[ 0x77 ] ; *pVBInfo->pSR23 = pVideoMemory[ 0x78 ] ; *pVBInfo->pSR24 = pVideoMemory[ 0x79 ] ; pVBInfo->SR25[ 0 ] = pVideoMemory[ 0x7A ] ; *pVBInfo->pSR31 = pVideoMemory[ 0x7B ] ; *pVBInfo->pSR32 = pVideoMemory[ 0x7C ] ; *pVBInfo->pSR33 = pVideoMemory[ 0x7D ] ; ii = 0xF8 ; for( jj = 0 ; jj < 3 ; jj++ ) { pVBInfo->CR40[ jj ][ 0 ] = pVideoMemory[ ii ] ; pVBInfo->CR40[ jj ][ 1 ] = pVideoMemory[ ii + 1 ] ; pVBInfo->CR40[ jj ][ 2 ] = pVideoMemory[ ii + 2 ] ; pVBInfo->CR40[ jj ][ 3 ] = pVideoMemory[ ii + 3 ] ; pVBInfo->CR40[ jj ][ 4 ] = pVideoMemory[ ii + 4 ] ; pVBInfo->CR40[ jj ][ 5 ] = pVideoMemory[ ii + 5 ] ; pVBInfo->CR40[ jj ][ 6 ] = pVideoMemory[ ii + 6 ] ; pVBInfo->CR40[ jj ][ 7 ] = pVideoMemory[ ii + 7 ] ; ii += 0x08 ; } ii = 0x118 ; for( j = 3 ; j < 24 ; j++ ) { pVBInfo->CR40[ j ][ 0 ] = pVideoMemory[ ii ] ; pVBInfo->CR40[ j ][ 1 ] = pVideoMemory[ ii + 1 ] ; pVBInfo->CR40[ j ][ 2 ] = pVideoMemory[ ii + 2 ] ; pVBInfo->CR40[ j ][ 3 ] = pVideoMemory[ ii + 3 ] ; pVBInfo->CR40[ j ][ 4 ] = pVideoMemory[ ii + 4 ] ; pVBInfo->CR40[ j ][ 5 ] = pVideoMemory[ ii + 5 ] ; pVBInfo->CR40[ j ][ 6 ] = pVideoMemory[ ii + 6 ] ; pVBInfo->CR40[ j ][ 7 ] = pVideoMemory[ ii + 7 ] ; ii += 0x08 ; } i = pVideoMemory[ 0x1C0 ] | ( pVideoMemory[ 0x1C1 ] << 8 ) ; for( j = 0 ; j < 8 ; j++ ) { for( k = 0 ; k < 4 ; k++ ) pVBInfo->CR6B[ j ][ k ] = pVideoMemory[ i + 4 * j + k ] ; } i = pVideoMemory[ 0x1C2 ] | ( pVideoMemory[ 0x1C3 ] << 8 ) ; for( j = 0 ; j < 8 ; j++ ) { for( k = 0 ; k < 4 ; k++ ) pVBInfo->CR6E[ j ][ k ] = pVideoMemory[ i + 4 * j + k ] ; } i = pVideoMemory[ 0x1C4 ] | ( pVideoMemory[ 0x1C5 ] << 8 ) ; for( j = 0 ; j < 8 ; j++ ) { for( k = 0 ; k < 32 ; k++ ) pVBInfo->CR6F[ j ][ k ] = pVideoMemory[ i + 32 * j + k ] ; } i = pVideoMemory[ 0x1C6 ] | ( pVideoMemory[ 0x1C7 ] << 8 ) ; for( j = 0 ; j < 8 ; j++ ) { for( k = 0 ; k < 2 ; k++ ) pVBInfo->CR89[ j ][ k ] = pVideoMemory[ i + 2 * j + k ] ; } i = pVideoMemory[ 0x1C8 ] | ( pVideoMemory[ 0x1C9 ] << 8 ) ; for( j = 0 ; j < 12 ; j++ ) pVBInfo->AGPReg[ j ] = pVideoMemory[ i + j ] ; i = pVideoMemory[ 0x1CF ] | ( pVideoMemory[ 0x1D0 ] << 8 ) ; for( j = 0 ; j < 4 ; j++ ) pVBInfo->SR16[ j ] = pVideoMemory[ i + j ] ; if ( ChipType == XG21 ) { if (pVideoMemory[ 0x67 ] & 0x80) { *pVBInfo->pDVOSetting = pVideoMemory[ 0x67 ]; } if ( (pVideoMemory[ 0x67 ] & 0xC0) == 0xC0 ) { *pVBInfo->pCR2E = pVideoMemory[ i + 4 ] ; *pVBInfo->pCR2F = pVideoMemory[ i + 5 ] ; *pVBInfo->pCR46 = pVideoMemory[ i + 6 ] ; *pVBInfo->pCR47 = pVideoMemory[ i + 7 ] ; } } if ( ChipType == XG27 ) { jj = i+j; for( i = 0 ; i <= 0xB ; i++,jj++ ) pVBInfo->pCRD0[i] = pVideoMemory[ jj ] ; for( i = 0x0 ; i <= 0x1 ; i++,jj++ ) pVBInfo->pCRDE[i] = pVideoMemory[ jj ] ; *pVBInfo->pSR40 = pVideoMemory[ jj ] ; jj++; *pVBInfo->pSR41 = pVideoMemory[ jj ] ; if (pVideoMemory[ 0x67 ] & 0x80) { *pVBInfo->pDVOSetting = pVideoMemory[ 0x67 ]; } if ( (pVideoMemory[ 0x67 ] & 0xC0) == 0xC0 ) { jj++; *pVBInfo->pCR2E = pVideoMemory[ jj ] ; *pVBInfo->pCR2F = pVideoMemory[ jj + 1 ] ; *pVBInfo->pCR46 = pVideoMemory[ jj + 2 ] ; *pVBInfo->pCR47 = pVideoMemory[ jj + 3 ] ; } } *pVBInfo->pCRCF = pVideoMemory[ 0x1CA ] ; *pVBInfo->pXGINew_DRAMTypeDefinition = pVideoMemory[ 0x1CB ] ; *pVBInfo->pXGINew_I2CDefinition = pVideoMemory[ 0x1D1 ] ; if ( ChipType >= XG20 ) { *pVBInfo->pXGINew_CR97 = pVideoMemory[ 0x1D2 ] ; if ( ChipType == XG27 ) { *pVBInfo->pSR36 = pVideoMemory[ 0x1D3 ] ; *pVBInfo->pCR8F = pVideoMemory[ 0x1D5 ] ; } } } #endif /* Volari customize data area end */ if ( ChipType == XG21 ) Loading
drivers/staging/xgifb/vb_setmode.c +0 −47 Original line number Diff line number Diff line Loading @@ -2579,53 +2579,6 @@ void XGI_WriteDAC( USHORT dl , USHORT ah , USHORT al , USHORT dh,PVB_DEVICE_INFO XGINew_SetReg3( pVBInfo->P3c9 , ( USHORT )bl ) ; } #if 0 /* --------------------------------------------------------------------- */ /* Function : XGI_ClearBuffer */ /* Input : */ /* Output : */ /* Description : */ /* --------------------------------------------------------------------- */ void XGI_ClearBuffer( PXGI_HW_DEVICE_INFO HwDeviceExtension , USHORT ModeNo, PVB_DEVICE_INFO pVBInfo) { void *VideoMemoryAddress = (void *)HwDeviceExtension->pjVideoMemoryAddress; ULONG AdapterMemorySize = ( ULONG )HwDeviceExtension->ulVideoMemorySize ; unsigned short *pBuffer ; int i ; if ( pVBInfo->ModeType >= ModeEGA ) { if ( ModeNo > 0x13 ) { AdapterMemorySize = 0x40000 ; /* clear 256k */ /* GetDRAMSize( HwDeviceExtension ) ; */ memset(VideoMemoryAddress, 0, AdapterMemorySize); } else { /* pBuffer = VideoMemoryAddress ; for( i = 0 ; i < 0x4000 ; i++ ) pBuffer[ i ] = 0x0000 ; */ } } else { pBuffer = VideoMemoryAddress ; if ( pVBInfo->ModeType < ModeCGA ) { /* for ( i = 0 ; i < 0x4000 ; i++ ) pBuffer[ i ] = 0x0720 ; */ } else memset(VideoMemoryAddress , 0, 0x8000); } } #endif /* --------------------------------------------------------------------- */ /* Function : XGI_SetLCDAGroup */ /* Input : */ Loading