mirror of
https://github.com/torvalds/linux.git
synced 2026-04-19 23:34:00 -04:00
As for display, the intent is to share the display code with the i915 driver so that there is maximum reuse there. We do this by recompiling i915/display code twice. Now that i915 has been adapted to support the Xe build, we can add the xe/display support. This initial work is a collaboration of many people and unfortunately this squashed patch won't fully honor the proper credits. But let's try to add a few from the squashed patches: Co-developed-by: Matthew Brost <matthew.brost@intel.com> Co-developed-by: Jani Nikula <jani.nikula@intel.com> Co-developed-by: Lucas De Marchi <lucas.demarchi@intel.com> Co-developed-by: Matt Roper <matthew.d.roper@intel.com> Co-developed-by: Mauro Carvalho Chehab <mchehab@kernel.org> Co-developed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Co-developed-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
66 lines
1.2 KiB
C
66 lines
1.2 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2022 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _I915_GEM_OBJECT_H_
|
|
#define _I915_GEM_OBJECT_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
#include "xe_bo.h"
|
|
|
|
#define i915_gem_object_is_shmem(obj) ((obj)->flags & XE_BO_CREATE_SYSTEM_BIT)
|
|
|
|
static inline dma_addr_t i915_gem_object_get_dma_address(const struct xe_bo *bo, pgoff_t n)
|
|
{
|
|
/* Should never be called */
|
|
WARN_ON(1);
|
|
return n;
|
|
}
|
|
|
|
static inline bool i915_gem_object_is_tiled(const struct xe_bo *bo)
|
|
{
|
|
/* legacy tiling is unused */
|
|
return false;
|
|
}
|
|
|
|
static inline bool i915_gem_object_is_userptr(const struct xe_bo *bo)
|
|
{
|
|
/* legacy tiling is unused */
|
|
return false;
|
|
}
|
|
|
|
static inline int i915_gem_object_read_from_page(struct xe_bo *bo,
|
|
u32 ofs, u64 *ptr, u32 size)
|
|
{
|
|
struct ttm_bo_kmap_obj map;
|
|
void *virtual;
|
|
bool is_iomem;
|
|
int ret;
|
|
|
|
XE_WARN_ON(size != 8);
|
|
|
|
ret = xe_bo_lock(bo, true);
|
|
if (ret)
|
|
return ret;
|
|
|
|
ret = ttm_bo_kmap(&bo->ttm, ofs >> PAGE_SHIFT, 1, &map);
|
|
if (ret)
|
|
goto out_unlock;
|
|
|
|
ofs &= ~PAGE_MASK;
|
|
virtual = ttm_kmap_obj_virtual(&map, &is_iomem);
|
|
if (is_iomem)
|
|
*ptr = readq((void __iomem *)(virtual + ofs));
|
|
else
|
|
*ptr = *(u64 *)(virtual + ofs);
|
|
|
|
ttm_bo_kunmap(&map);
|
|
out_unlock:
|
|
xe_bo_unlock(bo);
|
|
return ret;
|
|
}
|
|
|
|
#endif
|