[Intel-gfx] [PATCH 1/9] drm/i915/cmdparser: Make initialisation failure non-fatal
Matthew Auld
matthew.william.auld at gmail.com
Mon Aug 15 11:56:44 UTC 2016
On 12 August 2016 at 16:07, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> If the developer adds a register in the wrong order, we BUG during boot.
> That makes development and testing very difficult. Let's be a bit more
> friendly and disable the command parser with a big warning if the tables
> are invalid.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
> drivers/gpu/drm/i915/i915_cmd_parser.c | 30 ++++++++++++++++++------------
> drivers/gpu/drm/i915/i915_drv.h | 2 +-
> drivers/gpu/drm/i915/intel_engine_cs.c | 6 ++++--
> 3 files changed, 23 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_cmd_parser.c b/drivers/gpu/drm/i915/i915_cmd_parser.c
> index a1f4683f5c35..1882dc28c750 100644
> --- a/drivers/gpu/drm/i915/i915_cmd_parser.c
> +++ b/drivers/gpu/drm/i915/i915_cmd_parser.c
> @@ -746,17 +746,15 @@ static void fini_hash_table(struct intel_engine_cs *engine)
> * Optionally initializes fields related to batch buffer command parsing in the
> * struct intel_engine_cs based on whether the platform requires software
> * command parsing.
> - *
> - * Return: non-zero if initialization fails
> */
> -int intel_engine_init_cmd_parser(struct intel_engine_cs *engine)
> +void intel_engine_init_cmd_parser(struct intel_engine_cs *engine)
> {
> const struct drm_i915_cmd_table *cmd_tables;
> int cmd_table_count;
> int ret;
>
> if (!IS_GEN7(engine->i915))
> - return 0;
> + return;
>
> switch (engine->id) {
> case RCS:
> @@ -811,24 +809,32 @@ int intel_engine_init_cmd_parser(struct intel_engine_cs *engine)
> break;
> default:
> MISSING_CASE(engine->id);
> - BUG();
> + return;
> }
>
> - BUG_ON(!validate_cmds_sorted(engine, cmd_tables, cmd_table_count));
> - BUG_ON(!validate_regs_sorted(engine));
> + if (!hash_empty(engine->cmd_hash)) {
> + DRM_DEBUG_DRIVER("%s: no commands?\n", engine->name);
> + return;
> + }
"no commands?", !hash_empty should mean we already have commands, not
that we don't, right?
With that explained or fixed:
Reviewed-by: Matthew Auld <matthew.auld at intel.com>
More information about the Intel-gfx
mailing list