readq() is not available in 32bits. iosys-map already has the logic in place to use read u64 in all cases, so simply add a helper variable for using that. Fixes: 44e694958b95 ("drm/xe/display: Implement display support") Signed-off-by: Lucas De Marchi <lucas.demarchi@xxxxxxxxx> --- .../gpu/drm/xe/compat-i915-headers/gem/i915_gem_object.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_object.h b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_object.h index 5f19550cc845..6739dadaf1a9 100644 --- a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_object.h +++ b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_object.h @@ -7,6 +7,7 @@ #define _I915_GEM_OBJECT_H_ #include <linux/types.h> +#include <linux/iosys-map.h> #include "xe_bo.h" @@ -36,6 +37,7 @@ static inline int i915_gem_object_read_from_page(struct xe_bo *bo, { struct ttm_bo_kmap_obj map; void *virtual; + struct iosys_map vaddr; bool is_iomem; int ret; @@ -52,10 +54,11 @@ static inline int i915_gem_object_read_from_page(struct xe_bo *bo, ofs &= ~PAGE_MASK; virtual = ttm_kmap_obj_virtual(&map, &is_iomem); if (is_iomem) - *ptr = readq((void __iomem *)(virtual + ofs)); + iosys_map_set_vaddr_iomem(&vaddr, (void __iomem *)(virtual)); else - *ptr = *(u64 *)(virtual + ofs); + iosys_map_set_vaddr(&vaddr, virtual); + *ptr = iosys_map_rd(&vaddr, ofs, u64); ttm_bo_kunmap(&map); out_unlock: xe_bo_unlock(bo); -- 2.40.1