Lines Matching +full:gfx +full:- +full:mem

14 #include "intel-agp.h"
15 #include <drm/intel/intel-gtt.h>
23 pci_read_config_word(agp_bridge->dev, INTEL_APSIZE, &temp); in intel_fetch_size()
24 values = A_SIZE_16(agp_bridge->driver->aperture_sizes); in intel_fetch_size()
26 for (i = 0; i < agp_bridge->driver->num_aperture_sizes; i++) { in intel_fetch_size()
28 agp_bridge->previous_size = agp_bridge->current_size = (void *) (values + i); in intel_fetch_size()
29 agp_bridge->aperture_size_idx = i; in intel_fetch_size()
42 values = A_SIZE_8(agp_bridge->driver->aperture_sizes); in __intel_8xx_fetch_size()
44 for (i = 0; i < agp_bridge->driver->num_aperture_sizes; i++) { in __intel_8xx_fetch_size()
46 agp_bridge->previous_size = in __intel_8xx_fetch_size()
47 agp_bridge->current_size = (void *) (values + i); in __intel_8xx_fetch_size()
48 agp_bridge->aperture_size_idx = i; in __intel_8xx_fetch_size()
59 pci_read_config_byte(agp_bridge->dev, INTEL_APSIZE, &temp); in intel_8xx_fetch_size()
68 * one non-reserved bit, so mask the others out ... */ in intel_815_fetch_size()
69 pci_read_config_byte(agp_bridge->dev, INTEL_APSIZE, &temp); in intel_815_fetch_size()
75 static void intel_tlbflush(struct agp_memory *mem) in intel_tlbflush() argument
77 pci_write_config_dword(agp_bridge->dev, INTEL_AGPCTRL, 0x2200); in intel_tlbflush()
78 pci_write_config_dword(agp_bridge->dev, INTEL_AGPCTRL, 0x2280); in intel_tlbflush()
82 static void intel_8xx_tlbflush(struct agp_memory *mem) in intel_8xx_tlbflush() argument
85 pci_read_config_dword(agp_bridge->dev, INTEL_AGPCTRL, &temp); in intel_8xx_tlbflush()
86 pci_write_config_dword(agp_bridge->dev, INTEL_AGPCTRL, temp & ~(1 << 7)); in intel_8xx_tlbflush()
87 pci_read_config_dword(agp_bridge->dev, INTEL_AGPCTRL, &temp); in intel_8xx_tlbflush()
88 pci_write_config_dword(agp_bridge->dev, INTEL_AGPCTRL, temp | (1 << 7)); in intel_8xx_tlbflush()
97 previous_size = A_SIZE_16(agp_bridge->previous_size); in intel_cleanup()
98 pci_read_config_word(agp_bridge->dev, INTEL_NBXCFG, &temp); in intel_cleanup()
99 pci_write_config_word(agp_bridge->dev, INTEL_NBXCFG, temp & ~(1 << 9)); in intel_cleanup()
100 pci_write_config_word(agp_bridge->dev, INTEL_APSIZE, previous_size->size_value); in intel_cleanup()
109 previous_size = A_SIZE_8(agp_bridge->previous_size); in intel_8xx_cleanup()
110 pci_read_config_word(agp_bridge->dev, INTEL_NBXCFG, &temp); in intel_8xx_cleanup()
111 pci_write_config_word(agp_bridge->dev, INTEL_NBXCFG, temp & ~(1 << 9)); in intel_8xx_cleanup()
112 pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, previous_size->size_value); in intel_8xx_cleanup()
121 current_size = A_SIZE_16(agp_bridge->current_size); in intel_configure()
124 pci_write_config_word(agp_bridge->dev, INTEL_APSIZE, current_size->size_value); in intel_configure()
127 agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev, in intel_configure()
130 /* attbase - aperture base */ in intel_configure()
131 pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr); in intel_configure()
134 pci_write_config_dword(agp_bridge->dev, INTEL_AGPCTRL, 0x2280); in intel_configure()
137 pci_read_config_word(agp_bridge->dev, INTEL_NBXCFG, &temp2); in intel_configure()
138 pci_write_config_word(agp_bridge->dev, INTEL_NBXCFG, in intel_configure()
141 pci_write_config_byte(agp_bridge->dev, INTEL_ERRSTS + 1, 7); in intel_configure()
151 /* attbase - aperture base */ in intel_815_configure()
152 /* the Intel 815 chipset spec. says that bits 29-31 in the in intel_815_configure()
153 * ATTBASE register are reserved -> try not to write them */ in intel_815_configure()
154 if (agp_bridge->gatt_bus_addr & INTEL_815_ATTBASE_MASK) { in intel_815_configure()
155 dev_emerg(&agp_bridge->dev->dev, "gatt bus addr too high"); in intel_815_configure()
156 return -EINVAL; in intel_815_configure()
159 current_size = A_SIZE_8(agp_bridge->current_size); in intel_815_configure()
162 pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, in intel_815_configure()
163 current_size->size_value); in intel_815_configure()
166 agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev, in intel_815_configure()
169 pci_read_config_dword(agp_bridge->dev, INTEL_ATTBASE, &addr); in intel_815_configure()
171 addr |= agp_bridge->gatt_bus_addr; in intel_815_configure()
172 pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, addr); in intel_815_configure()
175 pci_write_config_dword(agp_bridge->dev, INTEL_AGPCTRL, 0x0000); in intel_815_configure()
178 pci_read_config_byte(agp_bridge->dev, INTEL_815_APCONT, &temp2); in intel_815_configure()
179 pci_write_config_byte(agp_bridge->dev, INTEL_815_APCONT, temp2 | (1 << 1)); in intel_815_configure()
186 static void intel_820_tlbflush(struct agp_memory *mem) in intel_820_tlbflush() argument
196 previous_size = A_SIZE_8(agp_bridge->previous_size); in intel_820_cleanup()
197 pci_read_config_byte(agp_bridge->dev, INTEL_I820_RDCR, &temp); in intel_820_cleanup()
198 pci_write_config_byte(agp_bridge->dev, INTEL_I820_RDCR, in intel_820_cleanup()
200 pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, in intel_820_cleanup()
201 previous_size->size_value); in intel_820_cleanup()
210 current_size = A_SIZE_8(agp_bridge->current_size); in intel_820_configure()
213 pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, current_size->size_value); in intel_820_configure()
216 agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev, in intel_820_configure()
219 /* attbase - aperture base */ in intel_820_configure()
220 pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr); in intel_820_configure()
223 pci_write_config_dword(agp_bridge->dev, INTEL_AGPCTRL, 0x0000); in intel_820_configure()
228 pci_read_config_byte(agp_bridge->dev, INTEL_I820_RDCR, &temp2); in intel_820_configure()
229 pci_write_config_byte(agp_bridge->dev, INTEL_I820_RDCR, temp2 | (1 << 1)); in intel_820_configure()
230 /* clear any possible AGP-related error conditions */ in intel_820_configure()
231 pci_write_config_word(agp_bridge->dev, INTEL_I820_ERRSTS, 0x001c); in intel_820_configure()
240 current_size = A_SIZE_8(agp_bridge->current_size); in intel_840_configure()
243 pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, current_size->size_value); in intel_840_configure()
246 agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev, in intel_840_configure()
249 /* attbase - aperture base */ in intel_840_configure()
250 pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr); in intel_840_configure()
253 pci_write_config_dword(agp_bridge->dev, INTEL_AGPCTRL, 0x0000); in intel_840_configure()
256 pci_read_config_word(agp_bridge->dev, INTEL_I840_MCHCFG, &temp2); in intel_840_configure()
257 pci_write_config_word(agp_bridge->dev, INTEL_I840_MCHCFG, temp2 | (1 << 9)); in intel_840_configure()
259 pci_write_config_word(agp_bridge->dev, INTEL_I840_ERRSTS, 0xc000); in intel_840_configure()
268 current_size = A_SIZE_8(agp_bridge->current_size); in intel_845_configure()
271 pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, current_size->size_value); in intel_845_configure()
273 if (agp_bridge->apbase_config != 0) { in intel_845_configure()
274 pci_write_config_dword(agp_bridge->dev, AGP_APBASE, in intel_845_configure()
275 agp_bridge->apbase_config); in intel_845_configure()
278 agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev, in intel_845_configure()
280 agp_bridge->apbase_config = agp_bridge->gart_bus_addr; in intel_845_configure()
283 /* attbase - aperture base */ in intel_845_configure()
284 pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr); in intel_845_configure()
287 pci_write_config_dword(agp_bridge->dev, INTEL_AGPCTRL, 0x0000); in intel_845_configure()
290 pci_read_config_byte(agp_bridge->dev, INTEL_I845_AGPM, &temp2); in intel_845_configure()
291 pci_write_config_byte(agp_bridge->dev, INTEL_I845_AGPM, temp2 | (1 << 1)); in intel_845_configure()
293 pci_write_config_word(agp_bridge->dev, INTEL_I845_ERRSTS, 0x001c); in intel_845_configure()
302 current_size = A_SIZE_8(agp_bridge->current_size); in intel_850_configure()
305 pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, current_size->size_value); in intel_850_configure()
308 agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev, in intel_850_configure()
311 /* attbase - aperture base */ in intel_850_configure()
312 pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr); in intel_850_configure()
315 pci_write_config_dword(agp_bridge->dev, INTEL_AGPCTRL, 0x0000); in intel_850_configure()
318 pci_read_config_word(agp_bridge->dev, INTEL_I850_MCHCFG, &temp2); in intel_850_configure()
319 pci_write_config_word(agp_bridge->dev, INTEL_I850_MCHCFG, temp2 | (1 << 9)); in intel_850_configure()
320 /* clear any possible AGP-related error conditions */ in intel_850_configure()
321 pci_write_config_word(agp_bridge->dev, INTEL_I850_ERRSTS, 0x001c); in intel_850_configure()
330 current_size = A_SIZE_8(agp_bridge->current_size); in intel_860_configure()
333 pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, current_size->size_value); in intel_860_configure()
336 agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev, in intel_860_configure()
339 /* attbase - aperture base */ in intel_860_configure()
340 pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr); in intel_860_configure()
343 pci_write_config_dword(agp_bridge->dev, INTEL_AGPCTRL, 0x0000); in intel_860_configure()
346 pci_read_config_word(agp_bridge->dev, INTEL_I860_MCHCFG, &temp2); in intel_860_configure()
347 pci_write_config_word(agp_bridge->dev, INTEL_I860_MCHCFG, temp2 | (1 << 9)); in intel_860_configure()
348 /* clear any possible AGP-related error conditions */ in intel_860_configure()
349 pci_write_config_word(agp_bridge->dev, INTEL_I860_ERRSTS, 0xf700); in intel_860_configure()
358 current_size = A_SIZE_8(agp_bridge->current_size); in intel_830mp_configure()
361 pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, current_size->size_value); in intel_830mp_configure()
364 agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev, in intel_830mp_configure()
367 /* attbase - aperture base */ in intel_830mp_configure()
368 pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr); in intel_830mp_configure()
371 pci_write_config_dword(agp_bridge->dev, INTEL_AGPCTRL, 0x0000); in intel_830mp_configure()
374 pci_read_config_word(agp_bridge->dev, INTEL_NBXCFG, &temp2); in intel_830mp_configure()
375 pci_write_config_word(agp_bridge->dev, INTEL_NBXCFG, temp2 | (1 << 9)); in intel_830mp_configure()
376 /* clear any possible AGP-related error conditions */ in intel_830mp_configure()
377 pci_write_config_word(agp_bridge->dev, INTEL_I830_ERRSTS, 0x1c); in intel_830mp_configure()
386 current_size = A_SIZE_8(agp_bridge->current_size); in intel_7505_configure()
389 pci_write_config_byte(agp_bridge->dev, INTEL_APSIZE, current_size->size_value); in intel_7505_configure()
392 agp_bridge->gart_bus_addr = pci_bus_address(agp_bridge->dev, in intel_7505_configure()
395 /* attbase - aperture base */ in intel_7505_configure()
396 pci_write_config_dword(agp_bridge->dev, INTEL_ATTBASE, agp_bridge->gatt_bus_addr); in intel_7505_configure()
399 pci_write_config_dword(agp_bridge->dev, INTEL_AGPCTRL, 0x0000); in intel_7505_configure()
402 pci_read_config_word(agp_bridge->dev, INTEL_I7505_MCHCFG, &temp2); in intel_7505_configure()
403 pci_write_config_word(agp_bridge->dev, INTEL_I7505_MCHCFG, temp2 | (1 << 9)); in intel_7505_configure()
694 * driver and gmch_driver must be non-null, and find_gmch will determine
736 return -ENOMEM; in agp_intel_probe()
738 bridge->capndx = cap_ptr; in agp_intel_probe()
744 /* In case that multiple models of gfx chip may in agp_intel_probe()
747 if (pdev->device == intel_agp_chipsets[i].chip_id) { in agp_intel_probe()
748 bridge->driver = intel_agp_chipsets[i].driver; in agp_intel_probe()
753 if (!bridge->driver) { in agp_intel_probe()
755 dev_warn(&pdev->dev, "unsupported Intel chipset [%04x/%04x]\n", in agp_intel_probe()
756 pdev->vendor, pdev->device); in agp_intel_probe()
758 return -ENODEV; in agp_intel_probe()
761 bridge->dev = pdev; in agp_intel_probe()
762 bridge->dev_private_data = NULL; in agp_intel_probe()
764 dev_info(&pdev->dev, "Intel %s Chipset\n", intel_agp_chipsets[i].name); in agp_intel_probe()
769 * 20030610 - hamish@zot.org in agp_intel_probe()
776 r = &pdev->resource[0]; in agp_intel_probe()
777 if (!r->start && r->end) { in agp_intel_probe()
779 dev_err(&pdev->dev, "can't assign resource 0\n"); in agp_intel_probe()
781 return -ENODEV; in agp_intel_probe()
788 * 20030610 - hamish@zot.org in agp_intel_probe()
791 dev_err(&pdev->dev, "can't enable PCI device\n"); in agp_intel_probe()
793 return -ENODEV; in agp_intel_probe()
799 bridge->capndx+PCI_AGP_STATUS, in agp_intel_probe()
800 &bridge->mode); in agp_intel_probe()
825 bridge->driver->configure(); in agp_intel_resume()
900 .name = "agpgart-intel",
910 return -EINVAL; in agp_intel_init()