[Intel-gfx] [PATCH v4 2/3] drm/i915/guc: Introduce buffer based cmd transport

Daniele Ceraolo Spurio daniele.ceraolospurio at intel.com
Thu May 25 17:48:19 UTC 2017



On 25/05/17 04:36, Michal Wajdeczko wrote:
> Buffer based command transport can replace MMIO based mechanism.
> It may be used to perform host-2-guc and guc-to-host communication.
>
> Portions of this patch are based on work by:
>  Michel Thierry <michel.thierry at intel.com>
>  Robert Beckett <robert.beckett at intel.com>
>  Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
>
> v2: use gem_object_pin_map (Chris)
>     don't use DEBUG_RATELIMITED (Chris)
>     don't track action stats (Chris)
>     simplify next fence (Chris)
>     use READ_ONCE (Chris)
>     move blob allocation to new function (Chris)
>
> v3: use static owner id (Daniele)
> v4: but keep channel initialization generic (Daniele)
>     and introduce owner_sub_id (Daniele)
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> Cc: Oscar Mateo <oscar.mateo at intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> ---

Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>

minor possible bikeshed below.

> +
> +/** Holds all command transport channels.
> + *
> + * @host_channel: main channel used by the host
> + */
> +struct intel_guc_ct {
> +	struct intel_guc_ct_channel host_channel;
> +	/* other channels are tbd */
> +};
> +

We could also use an array if we modify the enum:

	enum {
		CTB_OWNER_HOST = 0,
		/* other channels are tbd */
		CTB_MAX_CHANNELS
	};

and use:

	struct intel_guc_ct_channel ct_channels[CTB_MAX_CHANNELS];

we can then address the host specific one with:

	&guc.ct_channels[CTB_OWNER_HOST];

Thanks,
Daniele


More information about the Intel-gfx mailing list