From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Peter Antoine <peter.antoine@intel.com>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 2/2] drm/i915/get_params: Add HuC status to getparams
Date: Tue, 16 Aug 2016 12:36:19 +0100 [thread overview]
Message-ID: <57B2FAB3.2000607@linux.intel.com> (raw)
In-Reply-To: <1471346310-17133-3-git-send-email-peter.antoine@intel.com>
On 16/08/16 12:18, Peter Antoine wrote:
> This patch will allow for getparams to return the status of the HuC.
> As the HuC has to be validated by the GuC this patch uses the validated
> status to show when the HuC is loaded and ready for use. You cannot use
> the loaded status as with the GuC as the HuC is verified after it is
> loaded and is not usable until it is verified.
>
> Signed-off-by: Peter Antoine <peter.antoine@intel.com>
> ---
> drivers/gpu/drm/i915/i915_drv.c | 4 ++++
> drivers/gpu/drm/i915/intel_huc.h | 2 +-
> drivers/gpu/drm/i915/intel_huc_loader.c | 21 +++++++++++++++++++++
> include/uapi/drm/i915_drm.h | 1 +
> 4 files changed, 27 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index c8fc3d0..909297e 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -49,6 +49,7 @@
> #include "i915_trace.h"
> #include "i915_vgpu.h"
> #include "intel_drv.h"
> +#include "intel_huc.h"
> #include "intel_guc.h"
>
> static struct drm_driver driver;
> @@ -355,6 +356,9 @@ static int i915_getparam(struct drm_device *dev, void *data,
> case I915_PARAM_MIN_EU_IN_POOL:
> value = INTEL_INFO(dev)->min_eu_in_pool;
> break;
> + case I915_PARAM_HAS_HUC:
> + value = intel_is_huc_valid(dev);
> + break;
> case I915_PARAM_HAS_GUC:
> value = intel_is_guc_valid(dev);
> break;
> diff --git a/drivers/gpu/drm/i915/intel_huc.h b/drivers/gpu/drm/i915/intel_huc.h
> index 946caa7..8c1847a 100644
> --- a/drivers/gpu/drm/i915/intel_huc.h
> +++ b/drivers/gpu/drm/i915/intel_huc.h
> @@ -40,5 +40,5 @@ extern void intel_huc_init(struct drm_device *dev);
> extern int intel_huc_load(struct drm_device *dev);
> extern void intel_huc_auth(struct drm_device *dev);
> extern void intel_huc_fini(struct drm_device *dev);
> -
> +extern int intel_is_huc_valid(struct drm_device *dev);
> #endif
> diff --git a/drivers/gpu/drm/i915/intel_huc_loader.c b/drivers/gpu/drm/i915/intel_huc_loader.c
> index 87a6948..ee42d5e 100644
> --- a/drivers/gpu/drm/i915/intel_huc_loader.c
> +++ b/drivers/gpu/drm/i915/intel_huc_loader.c
> @@ -273,3 +273,24 @@ void intel_huc_fini(struct drm_device *dev)
>
> huc_fw->fetch_status = UC_FIRMWARE_NONE;
> }
> +
> +/**
> + * intel_is_huc_valid() - Check to see if the HuC is fully loaded.
> + * @dev: drm dedvice to check.
> + *
> + * This function will return true if the guc has been loaded and
> + * has valid firmware. The simplest way of doing this is to check
> + * if the HuC has been validated, if so it must have been loaded.
> + */
> +int intel_is_huc_valid(struct drm_device *dev)
> +{
> + int result;
> + struct drm_i915_private *dev_priv = to_i915(dev);
> +
> + intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
> + result = ((I915_READ(HUC_STATUS2) & HUC_FW_VERIFIED) != 0);
> + intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
Is there a special reason why it is required to grab all forcewakes?
HUC_STATUS2 is 0xd3b0 which appears to be in the media forcewake range
already defined for gen9. So I915_READ will already grab that one.
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-08-16 11:36 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-16 11:18 [PATCH 0/2] HuC/GuC status to Get Params Peter Antoine
2016-08-16 11:18 ` [PATCH 1/2] drm/i915/get_params: Add GuC status to getparams Peter Antoine
2016-08-16 11:18 ` [PATCH 2/2] drm/i915/get_params: Add HuC " Peter Antoine
2016-08-16 11:36 ` Tvrtko Ursulin [this message]
2016-08-16 11:59 ` Peter Antoine
2016-08-16 11:58 ` ✗ Ro.CI.BAT: failure for HuC/GuC status to Get Params Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57B2FAB3.2000607@linux.intel.com \
--to=tvrtko.ursulin@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=peter.antoine@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.