Re: [Intel-gfx] [PATCH] drm/i915/huc: Normalize HuC status returned by I915_PARAM_HAS_HUC

2018-10-17 Thread Chris Wilson
Quoting Michal Wajdeczko (2018-10-16 12:34:14)
> In response for I915_PARAM_HAS_HUC we are returning value that
> indicates if HuC firmware was loaded and verified. However, our
> previously used positive value was based on specific register bit
> which is about to change on future platform. Let's normalize our
> return values to 0 and 1 before clients will start to use Gen9 value.
> 
> Signed-off-by: Michal Wajdeczko 
> Cc: Michal Winiarski 
> Cc: Joonas Lahtinen 
> Cc: Haihao Xiang 
> ---
>  drivers/gpu/drm/i915/intel_huc.c | 9 +
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_huc.c 
> b/drivers/gpu/drm/i915/intel_huc.c
> index 37ef540d..46498aa 100644
> --- a/drivers/gpu/drm/i915/intel_huc.c
> +++ b/drivers/gpu/drm/i915/intel_huc.c
> @@ -108,8 +108,9 @@ int intel_huc_auth(struct intel_huc *huc)
>   * This function reads status register to verify if HuC
>   * firmware was successfully loaded.
>   *
> - * Returns positive value if HuC firmware is loaded and verified
> - * and -ENODEV if HuC is not present.
> + * Returns: 1 if HuC firmware is loaded and verified,
> + * 0 if HuC firmware is not loaded and -ENODEV if HuC
> + * is not present on this platform.
>   */
>  int intel_huc_check_status(struct intel_huc *huc)
>  {
> @@ -120,8 +121,8 @@ int intel_huc_check_status(struct intel_huc *huc)
> return -ENODEV;
>  
> intel_runtime_pm_get(dev_priv);
> -   status = I915_READ(HUC_STATUS2) & HUC_FW_VERIFIED;
> +   status = I915_READ(HUC_STATUS2);
> intel_runtime_pm_put(dev_priv);
>  
> -   return status;
> +   return status & HUC_FW_VERIFIED ? 1 : 0;

Wouldn't it have been simpler to just change
u32 status
to
bool status

Then I wouldn't even have to look at a ternary for a boolean.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915/huc: Normalize HuC status returned by I915_PARAM_HAS_HUC

2018-10-16 Thread Michał Winiarski
On Tue, Oct 16, 2018 at 11:34:14AM +, Michal Wajdeczko wrote:
> In response for I915_PARAM_HAS_HUC we are returning value that
> indicates if HuC firmware was loaded and verified. However, our
> previously used positive value was based on specific register bit
> which is about to change on future platform. Let's normalize our
> return values to 0 and 1 before clients will start to use Gen9 value.
> 
> Signed-off-by: Michal Wajdeczko 
> Cc: Michal Winiarski 
> Cc: Joonas Lahtinen 
> Cc: Haihao Xiang 

It's "tweaking" the ABI, but hopefully we can avoid breaking anything.

intel-vaapi-driver is doing !!(getparam) and media-driver is being optimistic
(i.e. assuming that HuC is present without any checks).

I don't know of any other components using this, and as you've mentioned in the
commit message - HuC is still under unsafe param, so:

Reviewed-by: Michał Winiarski 

-Michał

> ---
>  drivers/gpu/drm/i915/intel_huc.c | 9 +
>  1 file changed, 5 insertions(+), 4 deletions(-)
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915/huc: Normalize HuC status returned by I915_PARAM_HAS_HUC

2018-10-16 Thread Michal Wajdeczko
In response for I915_PARAM_HAS_HUC we are returning value that
indicates if HuC firmware was loaded and verified. However, our
previously used positive value was based on specific register bit
which is about to change on future platform. Let's normalize our
return values to 0 and 1 before clients will start to use Gen9 value.

Signed-off-by: Michal Wajdeczko 
Cc: Michal Winiarski 
Cc: Joonas Lahtinen 
Cc: Haihao Xiang 
---
 drivers/gpu/drm/i915/intel_huc.c | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_huc.c b/drivers/gpu/drm/i915/intel_huc.c
index 37ef540d..46498aa 100644
--- a/drivers/gpu/drm/i915/intel_huc.c
+++ b/drivers/gpu/drm/i915/intel_huc.c
@@ -108,8 +108,9 @@ int intel_huc_auth(struct intel_huc *huc)
  * This function reads status register to verify if HuC
  * firmware was successfully loaded.
  *
- * Returns positive value if HuC firmware is loaded and verified
- * and -ENODEV if HuC is not present.
+ * Returns: 1 if HuC firmware is loaded and verified,
+ * 0 if HuC firmware is not loaded and -ENODEV if HuC
+ * is not present on this platform.
  */
 int intel_huc_check_status(struct intel_huc *huc)
 {
@@ -120,8 +121,8 @@ int intel_huc_check_status(struct intel_huc *huc)
return -ENODEV;
 
intel_runtime_pm_get(dev_priv);
-   status = I915_READ(HUC_STATUS2) & HUC_FW_VERIFIED;
+   status = I915_READ(HUC_STATUS2);
intel_runtime_pm_put(dev_priv);
 
-   return status;
+   return status & HUC_FW_VERIFIED ? 1 : 0;
 }
-- 
1.9.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx