[Intel-gfx] [PATCH v4 04/13] drm/i915/guc: Implement response handling in send_mmio()
Michel Thierry
michel.thierry at intel.com
Fri Mar 23 21:55:09 UTC 2018
On 3/23/2018 7:47 AM, Michal Wajdeczko wrote:
> We're using data encoded in the status MMIO as return value from send
> function, but GuC may also write more data in remaining MMIO regs.
> Let's copy content of these registers to the buffer provided by caller.
>
> v2: new line (Michel)
> v3: updated commit message
>
> 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>
> Reviewed-by: Michel Thierry <michel.thierry at intel.com> #2
> ---
> drivers/gpu/drm/i915/intel_guc.c | 15 ++++++++++++---
> 1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_guc.c b/drivers/gpu/drm/i915/intel_guc.c
> index a533ff8..9ce01e5 100644
> --- a/drivers/gpu/drm/i915/intel_guc.c
> +++ b/drivers/gpu/drm/i915/intel_guc.c
> @@ -368,11 +368,20 @@ int intel_guc_send_mmio(struct intel_guc *guc, const u32 *action, u32 len,
> " ret=%d status=0x%08X response=0x%08X\n",
> action[0], ret, status,
> I915_READ(SOFT_SCRATCH(15)));
> - } else {
> - /* Use data from the GuC response as our return value */
> - ret = INTEL_GUC_MSG_TO_DATA(status);
> + goto out;
> }
>
I'm not a big fan of goto's, so I would have added the response handling
in the else part.
But it's still correct, so my old r-b still stands.
-Michel
> + if (response_buf) {
> + int count = min(response_buf_size, guc->send_regs.count - 1);
> +
> + for (i = 0; i < count; i++)
> + response_buf[i] = I915_READ(guc_send_reg(guc, i + 1));
> + }
> +
> + /* Use data from the GuC response as our return value */
> + ret = INTEL_GUC_MSG_TO_DATA(status);
> +
> +out:
> intel_uncore_forcewake_put(dev_priv, guc->send_regs.fw_domains);
> mutex_unlock(&guc->send_mutex);
>
> --
> 1.9.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
More information about the Intel-gfx
mailing list