head 1.1; branch 1.1.1; access; symbols libdrm-1_0_4:1.1.1.1 AGPGART_2_0:1.1.1.1 TUNGSTEN:1.1.1; locks; strict; comment @ * @; 1.1 date 2003.01.11.02.27.45; author jhartmann; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2003.01.11.02.27.45; author jhartmann; state Exp; branches; next ; desc @@ 1.1 log @Initial revision @ text @#ifdef CONFIG_AGP_VIA static int via_fetch_size(void) { int i; u8 temp; aper_size_info_8 *values; values = A_SIZE_8(agp_bridge->aperture_sizes); pci_read_config_byte(agp_bridge->dev, VIA_APSIZE, &temp); for (i = 0; i < agp_bridge->num_aperture_sizes; i++) { if (temp == values[i].size_value) { agp_bridge->previous_size = agp_bridge->current_size = (void *) (values + i); agp_bridge->aperture_size_idx = i; return values[i].size; } } return 0; } static int via_configure(void) { u32 temp; aper_size_info_8 *current_size; current_size = A_SIZE_8(agp_bridge->current_size); /* aperture size */ pci_write_config_byte(agp_bridge->dev, VIA_APSIZE, current_size->size_value); /* address to map too */ pci_read_config_dword(agp_bridge->dev, VIA_APBASE, &temp); agp_bridge->gart_bus_addr = (temp & PCI_BASE_ADDRESS_MEM_MASK); /* GART control register */ pci_write_config_dword(agp_bridge->dev, VIA_GARTCTRL, 0x0000000f); /* attbase - aperture GATT base */ pci_write_config_dword(agp_bridge->dev, VIA_ATTBASE, (agp_bridge->gatt_bus_addr & 0xfffff000) | 3); return 0; } static void via_cleanup(void) { aper_size_info_8 *previous_size; previous_size = A_SIZE_8(agp_bridge->previous_size); pci_write_config_byte(agp_bridge->dev, VIA_APSIZE, previous_size->size_value); /* Do not disable by writing 0 to VIA_ATTBASE, it screws things up * during reinitialization. */ } static void via_tlbflush(agp_memory * mem) { pci_write_config_dword(agp_bridge->dev, VIA_GARTCTRL, 0x0000008f); pci_write_config_dword(agp_bridge->dev, VIA_GARTCTRL, 0x0000000f); } static aper_size_info_8 via_generic_sizes[7] = { {256, 65536, 6, 0}, {128, 32768, 5, 128}, {64, 16384, 4, 192}, {32, 8192, 3, 224}, {16, 4096, 2, 240}, {8, 2048, 1, 248}, {4, 1024, 0, 252} }; static int __init via_generic_setup (struct pci_dev *pdev) { agp_bridge->aperture_sizes = (void *) via_generic_sizes; agp_bridge->size_type = U8_APER_SIZE; agp_bridge->num_aperture_sizes = 7; agp_bridge->dev_private_data = NULL; agp_bridge->needs_scratch_page = FALSE; agp_bridge->configure = via_configure; agp_bridge->fetch_size = via_fetch_size; agp_bridge->cleanup = via_cleanup; agp_bridge->tlb_flush = via_tlbflush; agp_bridge->mask_memory = agp_generic_mask_memory; agp_bridge->agp_enable = agp_generic_agp_enable; agp_bridge->cache_flush = global_cache_flush; agp_bridge->create_gatt_table = agp_generic_create_gatt_table; agp_bridge->free_gatt_table = agp_generic_free_gatt_table; agp_bridge->insert_memory = agp_generic_insert_memory; agp_bridge->remove_memory = agp_generic_remove_memory; agp_bridge->alloc_by_type = agp_generic_alloc_by_type; agp_bridge->free_by_type = agp_generic_free_by_type; agp_bridge->agp_alloc_page = agp_generic_alloc_page; agp_bridge->agp_free_page = agp_generic_free_page; agp_bridge->get_reserved_map = agp_generic_get_reserved_map; agp_bridge->suspend = agp_generic_suspend; agp_bridge->resume = agp_generic_resume; agp_bridge->get_vm_config = agp_generic_get_vm_config; return 0; (void) pdev; /* unused */ } #endif /* CONFIG_AGP_VIA */ @ 1.1.1.1 log @Import of Agpgart 2.0 module @ text @@