mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2025-12-20 15:10:10 +01:00
Fix offset passed to AGP to be pages instead of bytes.
Fix some utterly bonged loop while we were staring at it.
This commit is contained in:
parent
3f641b56c7
commit
ddc80651d5
1 changed files with 6 additions and 10 deletions
|
|
@ -497,9 +497,8 @@ drm_agp_bind_pages(struct drm_device *dev,
|
|||
unsigned long num_pages,
|
||||
uint32_t gtt_offset)
|
||||
{
|
||||
struct page **cur_page, **last_page = pages + num_pages;
|
||||
DRM_AGP_MEM *mem;
|
||||
int ret;
|
||||
int ret, i;
|
||||
|
||||
DRM_DEBUG("drm_agp_populate_ttm\n");
|
||||
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11)
|
||||
|
|
@ -514,17 +513,14 @@ drm_agp_bind_pages(struct drm_device *dev,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
mem->page_count = 0;
|
||||
for (cur_page = pages; cur_page < last_page; ++cur_page) {
|
||||
struct page *page = *cur_page;
|
||||
|
||||
mem->memory[mem->page_count++] =
|
||||
phys_to_gart(page_to_phys(page));
|
||||
}
|
||||
for (i = 0; i < num_pages; i++)
|
||||
mem->memory[i] = phys_to_gart(page_to_phys(pages[i]));
|
||||
mem->page_count = num_pages;
|
||||
|
||||
mem->is_flushed = TRUE;
|
||||
ret = drm_agp_bind_memory(mem, gtt_offset);
|
||||
ret = drm_agp_bind_memory(mem, gtt_offset / PAGE_SIZE);
|
||||
if (ret != 0) {
|
||||
DRM_ERROR("Failed to bind AGP memory: %d\n", ret);
|
||||
agp_free_memory(mem);
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue