Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[IA64] agp/hp-agp: Allow binding user memory to the AGP GART

dmesg reports:
[   29.365973] [TTM] AGP Bind memory failed.
[   29.366015] radeon 0000:80:00.0: object_init failed for (4096, 0x00000002)
[   29.366052] radeon 0000:80:00.0: (-22) create WB bo failed
[   29.366087] radeon 0000:80:00.0: Disabling GPU acceleration
[   29.366124] [drm] radeon: cp finalized
[   29.366168] [drm] radeon: cp finalized
[   29.366210] [TTM] Finalizing pool allocator.
[   29.366924] [TTM] Zone  kernel: Used memory at exit: 0 kiB.
[   29.366961] [TTM] Zone   dma32: Used memory at exit: 0 kiB.
[   29.366996] [drm] radeon: ttm finalized
[   29.367030] [drm] Forcing AGP to PCI mode

This patch allows binding user memory to the AGP GART on zx1-based
systems. dmesg thus no more complains about AGP bind memory failure,
disabled GPU acceleration or AGP mode forced to PCI.

Original work from Francisco Jerez in agp/amd-k7
(https://lkml.org/lkml/2010/10/15/469).

Tested-by: Émeric Maschino <emeric.maschino@gmail.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>

authored by

Émeric Maschino and committed by
Tony Luck
fc000154 d5d4e028

+4 -2
+4 -2
drivers/char/agp/hp-agp.c
··· 336 336 off_t j, io_pg_start; 337 337 int io_pg_count; 338 338 339 - if (type != 0 || mem->type != 0) { 339 + if (type != mem->type || 340 + agp_bridge->driver->agp_type_to_mask_type(agp_bridge, type)) { 340 341 return -EINVAL; 341 342 } 342 343 ··· 381 380 struct _hp_private *hp = &hp_private; 382 381 int i, io_pg_start, io_pg_count; 383 382 384 - if (type != 0 || mem->type != 0) { 383 + if (type != mem->type || 384 + agp_bridge->driver->agp_type_to_mask_type(agp_bridge, type)) { 385 385 return -EINVAL; 386 386 } 387 387