drm/xe/bo: Rework bo vmapping behaviour slightly.
Allow caching of bo vmaps, unmapping them at move- or bo destroy time. This essentially means that an xe_bo_vmap() not necessarily needs to be follwed by an xe_bo_vunmap() unless we explicitly want to unmap the cached map.
Also use an older TTM api to perform maps that allow single-page system bos to be mapped using kmap rather than vmap which has much better performance charateristics.
Signed-off-by: Thomas Hellström thomas.hellstrom@linux.intel.com