mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-19 18:24:14 +08:00
drm/i915: Introduce HAS_64BIT_RELOC
Move has_64bit_reloc into dev_priv->info. This will make it visible in the feature listing debug output. v2: - Keep the struct member to keep GCC fragile but happy (Chris) v3: - More detailed commit message (Chris) - Include forgotten CHV and BXT (Chris) Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Link: http://patchwork.freedesktop.org/patch/msgid/1478162386-5018-1-git-send-email-joonas.lahtinen@linux.intel.com
This commit is contained in:
parent
c8247c0671
commit
dfc5148fb3
@ -670,6 +670,7 @@ struct intel_csr {
|
||||
func(is_kabylake); \
|
||||
func(is_preliminary); \
|
||||
/* Keep has_* in alphabetical order */ \
|
||||
func(has_64bit_reloc); \
|
||||
func(has_csr); \
|
||||
func(has_ddi); \
|
||||
func(has_dp_mst); \
|
||||
@ -2917,6 +2918,8 @@ struct drm_i915_cmd_table {
|
||||
#define HAS_CSR(dev) (INTEL_INFO(dev)->has_csr)
|
||||
|
||||
#define HAS_RUNTIME_PM(dev_priv) ((dev_priv)->info.has_runtime_pm)
|
||||
#define HAS_64BIT_RELOC(dev_priv) ((dev_priv)->info.has_64bit_reloc)
|
||||
|
||||
/*
|
||||
* For now, anything with a GuC requires uCode loading, and then supports
|
||||
* command submission once loaded. But these are logically independent
|
||||
|
@ -331,7 +331,8 @@ static void reloc_cache_init(struct reloc_cache *cache,
|
||||
cache->page = -1;
|
||||
cache->vaddr = 0;
|
||||
cache->i915 = i915;
|
||||
cache->use_64bit_reloc = INTEL_GEN(cache->i915) >= 8;
|
||||
/* Must be a variable in the struct to allow GCC to unroll. */
|
||||
cache->use_64bit_reloc = HAS_64BIT_RELOC(i915);
|
||||
cache->node.allocated = false;
|
||||
}
|
||||
|
||||
|
@ -74,7 +74,6 @@ static int render_state_setup(struct intel_render_state *so,
|
||||
struct drm_i915_private *i915)
|
||||
{
|
||||
const struct intel_renderstate_rodata *rodata = so->rodata;
|
||||
const bool has_64bit_reloc = INTEL_GEN(i915) >= 8;
|
||||
struct drm_i915_gem_object *obj = so->vma->obj;
|
||||
unsigned int i = 0, reloc_index = 0;
|
||||
unsigned int needs_clflush;
|
||||
@ -93,7 +92,7 @@ static int render_state_setup(struct intel_render_state *so,
|
||||
if (i * 4 == rodata->reloc[reloc_index]) {
|
||||
u64 r = s + so->vma->node.start;
|
||||
s = lower_32_bits(r);
|
||||
if (has_64bit_reloc) {
|
||||
if (HAS_64BIT_RELOC(i915)) {
|
||||
if (i + 1 >= rodata->batch_items ||
|
||||
rodata->batch[i + 1] != 0)
|
||||
goto err;
|
||||
|
@ -288,7 +288,8 @@ static const struct intel_device_info intel_haswell_info = {
|
||||
#define BDW_FEATURES \
|
||||
HSW_FEATURES, \
|
||||
BDW_COLORS, \
|
||||
.has_logical_ring_contexts = 1
|
||||
.has_logical_ring_contexts = 1, \
|
||||
.has_64bit_reloc = 1
|
||||
|
||||
static const struct intel_device_info intel_broadwell_info = {
|
||||
BDW_FEATURES,
|
||||
@ -308,6 +309,7 @@ static const struct intel_device_info intel_cherryview_info = {
|
||||
.has_hotplug = 1,
|
||||
.ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING,
|
||||
.is_cherryview = 1,
|
||||
.has_64bit_reloc = 1,
|
||||
.has_psr = 1,
|
||||
.has_runtime_pm = 1,
|
||||
.has_resource_streamer = 1,
|
||||
@ -347,6 +349,7 @@ static const struct intel_device_info intel_broxton_info = {
|
||||
.has_hotplug = 1,
|
||||
.ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING,
|
||||
.num_pipes = 3,
|
||||
.has_64bit_reloc = 1,
|
||||
.has_ddi = 1,
|
||||
.has_fpga_dbg = 1,
|
||||
.has_fbc = 1,
|
||||
|
Loading…
Reference in New Issue
Block a user