forked from Minki/linux
ced7866db3
Since segment_pages is no longer a compile time constant, it looks the DIV_ROUND_UP(node->size, segment_pages) breaks the 32b build. Simplest is just to use the ULL variant, but really we should need not need more than u32 for the page alignment (also we are limited by that due to the sg->length type), so also make it all u32. Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Fixes:aff1e0b09b
("drm/i915/ttm: fix sg_table construction") Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Nirmoy Das <nirmoy.das@linux.intel.com> Reviewed-by: Nirmoy Das <nirmoy.das@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220712174050.592550-1-matthew.auld@intel.com (cherry picked from commit9306b2b2df
) Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
45 lines
1.1 KiB
C
45 lines
1.1 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2021 Intel Corporation
|
|
*/
|
|
#ifndef _INTEL_REGION_TTM_H_
|
|
#define _INTEL_REGION_TTM_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
#include "i915_selftest.h"
|
|
|
|
struct drm_i915_private;
|
|
struct intel_memory_region;
|
|
struct ttm_resource;
|
|
struct ttm_device_funcs;
|
|
|
|
int intel_region_ttm_device_init(struct drm_i915_private *dev_priv);
|
|
|
|
void intel_region_ttm_device_fini(struct drm_i915_private *dev_priv);
|
|
|
|
int intel_region_ttm_init(struct intel_memory_region *mem);
|
|
|
|
int intel_region_ttm_fini(struct intel_memory_region *mem);
|
|
|
|
struct i915_refct_sgt *
|
|
intel_region_ttm_resource_to_rsgt(struct intel_memory_region *mem,
|
|
struct ttm_resource *res,
|
|
u32 page_alignment);
|
|
|
|
void intel_region_ttm_resource_free(struct intel_memory_region *mem,
|
|
struct ttm_resource *res);
|
|
|
|
int intel_region_to_ttm_type(const struct intel_memory_region *mem);
|
|
|
|
struct ttm_device_funcs *i915_ttm_driver(void);
|
|
|
|
#ifdef CONFIG_DRM_I915_SELFTEST
|
|
struct ttm_resource *
|
|
intel_region_ttm_resource_alloc(struct intel_memory_region *mem,
|
|
resource_size_t offset,
|
|
resource_size_t size,
|
|
unsigned int flags);
|
|
#endif
|
|
#endif /* _INTEL_REGION_TTM_H_ */
|