drm/i915/guc: Add support for define guc_log_size in megabytes.
At this moment we can define GuC logs sizes only using pages. But GuC also allows use for this values expressed in megabytes. Lets add support for define guc_log_size in megabytes when we debug of GuC. v2: - change buffers size to more friendly (Michał Wajdeczko) - merge statements in guc_ctl_log_params_flags() (Michał Wajdeczko) v3: - fix ifdef (rename DRM_I915_DEBUG_GUC to CONFIG_DRM_I915_DEBUG_GUC) (Michał Wajdeczko) - use SZ_* macros to define buffers sizes (Michał Wajdeczko) Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: Michał Winiarski <michal.winiarski@intel.com> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20180605151330.9954-2-piotr.piorkowski@intel.com
This commit is contained in:
parent
5288c7182d
commit
3d6d62eae7
|
@ -263,7 +263,13 @@ static u32 guc_ctl_log_params_flags(struct intel_guc *guc)
|
||||||
u32 offset = intel_guc_ggtt_offset(guc, guc->log.vma) >> PAGE_SHIFT;
|
u32 offset = intel_guc_ggtt_offset(guc, guc->log.vma) >> PAGE_SHIFT;
|
||||||
u32 flags;
|
u32 flags;
|
||||||
|
|
||||||
|
#if (((CRASH_BUFFER_SIZE) % SZ_1M) == 0)
|
||||||
|
#define UNIT SZ_1M
|
||||||
|
#define FLAG GUC_LOG_ALLOC_IN_MEGABYTE
|
||||||
|
#else
|
||||||
#define UNIT SZ_4K
|
#define UNIT SZ_4K
|
||||||
|
#define FLAG 0
|
||||||
|
#endif
|
||||||
|
|
||||||
BUILD_BUG_ON(!CRASH_BUFFER_SIZE);
|
BUILD_BUG_ON(!CRASH_BUFFER_SIZE);
|
||||||
BUILD_BUG_ON(!IS_ALIGNED(CRASH_BUFFER_SIZE, UNIT));
|
BUILD_BUG_ON(!IS_ALIGNED(CRASH_BUFFER_SIZE, UNIT));
|
||||||
|
@ -281,12 +287,14 @@ static u32 guc_ctl_log_params_flags(struct intel_guc *guc)
|
||||||
|
|
||||||
flags = GUC_LOG_VALID |
|
flags = GUC_LOG_VALID |
|
||||||
GUC_LOG_NOTIFY_ON_HALF_FULL |
|
GUC_LOG_NOTIFY_ON_HALF_FULL |
|
||||||
|
FLAG |
|
||||||
((CRASH_BUFFER_SIZE / UNIT - 1) << GUC_LOG_CRASH_SHIFT) |
|
((CRASH_BUFFER_SIZE / UNIT - 1) << GUC_LOG_CRASH_SHIFT) |
|
||||||
((DPC_BUFFER_SIZE / UNIT - 1) << GUC_LOG_DPC_SHIFT) |
|
((DPC_BUFFER_SIZE / UNIT - 1) << GUC_LOG_DPC_SHIFT) |
|
||||||
((ISR_BUFFER_SIZE / UNIT - 1) << GUC_LOG_ISR_SHIFT) |
|
((ISR_BUFFER_SIZE / UNIT - 1) << GUC_LOG_ISR_SHIFT) |
|
||||||
(offset << GUC_LOG_BUF_ADDR_SHIFT);
|
(offset << GUC_LOG_BUF_ADDR_SHIFT);
|
||||||
|
|
||||||
#undef UNIT
|
#undef UNIT
|
||||||
|
#undef FLAG
|
||||||
|
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,9 +34,15 @@
|
||||||
|
|
||||||
struct intel_guc;
|
struct intel_guc;
|
||||||
|
|
||||||
|
#ifdef CONFIG_DRM_I915_DEBUG_GUC
|
||||||
|
#define CRASH_BUFFER_SIZE SZ_2M
|
||||||
|
#define DPC_BUFFER_SIZE SZ_8M
|
||||||
|
#define ISR_BUFFER_SIZE SZ_8M
|
||||||
|
#else
|
||||||
#define CRASH_BUFFER_SIZE SZ_8K
|
#define CRASH_BUFFER_SIZE SZ_8K
|
||||||
#define DPC_BUFFER_SIZE SZ_32K
|
#define DPC_BUFFER_SIZE SZ_32K
|
||||||
#define ISR_BUFFER_SIZE SZ_32K
|
#define ISR_BUFFER_SIZE SZ_32K
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* While we're using plain log level in i915, GuC controls are much more...
|
* While we're using plain log level in i915, GuC controls are much more...
|
||||||
|
|
Loading…
Reference in New Issue