]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/gem: Add a helper to read data from a GEM object page
authorImre Deak <imre.deak@intel.com>
Wed, 20 Jan 2021 21:38:34 +0000 (23:38 +0200)
committerImre Deak <imre.deak@intel.com>
Fri, 22 Jan 2021 13:59:35 +0000 (15:59 +0200)
commit5fbc2c2bfa5c9daf885e51038e66645916e83966
tree7d3a54ed995049e0c4d378a61e6e3f962b03ba0d
parent87199e4c2490ab4ba0483a5ae5690c19b5c3d45b
drm/i915/gem: Add a helper to read data from a GEM object page

Add a simple helper to read data with the CPU from the page of a GEM
object. Do the read either via a kmap if the object has struct pages
or an iomap otherwise. This is needed by the next patch, reading a u64
value from the object (w/o requiring the obj to be mapped to the GPU).

Suggested by Chris.

v2 (Chris):
- Sanitize the type and order of func params.
- Avoid consts requiring too many casts.
- Use BUG_ON instead of WARN_ON, simplify the conditions.
- Fix __iomem sparse errors.
- Leave locking/syncing/pinning up to the caller, require only that the
  caller has pinned the object pages.
- Check for iomem backing store before reading via an iomap.
v3:
- Fix offset passed to io_mapping_map_wc() missing a mem.region.start
  delta. (Chris, Matthew)

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.william.auld@gmail.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20210120213834.1435710-1-imre.deak@intel.com
drivers/gpu/drm/i915/gem/i915_gem_object.c
drivers/gpu/drm/i915/gem/i915_gem_object.h