Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

authored by

Piotr Piorkowski and committed by
Chris Wilson
3d6d62ea 5288c718

+14
+8
drivers/gpu/drm/i915/intel_guc.c
··· 263 263 u32 offset = intel_guc_ggtt_offset(guc, guc->log.vma) >> PAGE_SHIFT; 264 264 u32 flags; 265 265 266 + #if (((CRASH_BUFFER_SIZE) % SZ_1M) == 0) 267 + #define UNIT SZ_1M 268 + #define FLAG GUC_LOG_ALLOC_IN_MEGABYTE 269 + #else 266 270 #define UNIT SZ_4K 271 + #define FLAG 0 272 + #endif 267 273 268 274 BUILD_BUG_ON(!CRASH_BUFFER_SIZE); 269 275 BUILD_BUG_ON(!IS_ALIGNED(CRASH_BUFFER_SIZE, UNIT)); ··· 287 281 288 282 flags = GUC_LOG_VALID | 289 283 GUC_LOG_NOTIFY_ON_HALF_FULL | 284 + FLAG | 290 285 ((CRASH_BUFFER_SIZE / UNIT - 1) << GUC_LOG_CRASH_SHIFT) | 291 286 ((DPC_BUFFER_SIZE / UNIT - 1) << GUC_LOG_DPC_SHIFT) | 292 287 ((ISR_BUFFER_SIZE / UNIT - 1) << GUC_LOG_ISR_SHIFT) | 293 288 (offset << GUC_LOG_BUF_ADDR_SHIFT); 294 289 295 290 #undef UNIT 291 + #undef FLAG 296 292 297 293 return flags; 298 294 }
+6
drivers/gpu/drm/i915/intel_guc_log.h
··· 34 34 35 35 struct intel_guc; 36 36 37 + #ifdef CONFIG_DRM_I915_DEBUG_GUC 38 + #define CRASH_BUFFER_SIZE SZ_2M 39 + #define DPC_BUFFER_SIZE SZ_8M 40 + #define ISR_BUFFER_SIZE SZ_8M 41 + #else 37 42 #define CRASH_BUFFER_SIZE SZ_8K 38 43 #define DPC_BUFFER_SIZE SZ_32K 39 44 #define ISR_BUFFER_SIZE SZ_32K 45 + #endif 40 46 41 47 /* 42 48 * While we're using plain log level in i915, GuC controls are much more...