Initial. Don't... just don't ask.
This commit is contained in:
commit
00bae13bba
586 changed files with 129057 additions and 0 deletions
66
kernel/svgalib_helper/i810.c
Normal file
66
kernel/svgalib_helper/i810.c
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
/* vram size in pages */
|
||||
|
||||
#ifdef __386__
|
||||
|
||||
#include <linux/version.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/system.h> /* cli(), *_flags */
|
||||
#include <asm/segment.h> /* memcpy and such */
|
||||
#include <asm/io.h>
|
||||
#include <asm/pgtable.h>
|
||||
|
||||
#define I810_SIZE 1024
|
||||
|
||||
unsigned long i810_alloc_page()
|
||||
{
|
||||
unsigned long address;
|
||||
|
||||
address = __get_free_page(GFP_KERNEL);
|
||||
if(address == 0UL)
|
||||
return 0;
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,0)
|
||||
atomic_inc(&virt_to_page(address)->count);
|
||||
set_bit(PG_locked, &virt_to_page(address)->flags);
|
||||
#endif
|
||||
return address;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void i810_free_page(unsigned long page)
|
||||
{
|
||||
if(page == 0UL)
|
||||
return;
|
||||
|
||||
atomic_dec(&virt_to_page(page)->count);
|
||||
clear_bit(PG_locked, &virt_to_page(page)->flags);
|
||||
wake_up(&virt_to_page(page)->wait);
|
||||
free_page(page);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
static unsigned long i810_pages[I810_SIZE];
|
||||
unsigned long i810_gttes[I810_SIZE];
|
||||
static unsigned long i810_gttpage=0;
|
||||
|
||||
unsigned int i810_make_gtt() {
|
||||
int i;
|
||||
|
||||
if(i810_gttpage) return virt_to_bus((void *)i810_gttpage);
|
||||
|
||||
i810_gttpage=i810_alloc_page();
|
||||
|
||||
for(i=0;i<I810_SIZE;i++) {
|
||||
unsigned int gtte;
|
||||
i810_pages[i]=i810_alloc_page();
|
||||
gtte=virt_to_bus((void *)i810_pages[i]);
|
||||
gtte &= 0x3ffff000;
|
||||
gtte |= 1; /* valid, system memory, not cached */
|
||||
i810_gttes[i]=gtte;
|
||||
}
|
||||
|
||||
return virt_to_bus((void *)i810_gttpage);
|
||||
}
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue