Re: [PATCH] drm/i915/uc: Add explicit DISABLED state for firmware

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Michal Wajdeczko (2019-08-16 00:48:32)
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
> index d056e1f4bd6d..ce828ae3ea03 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c
> @@ -206,8 +206,10 @@ void intel_uc_fw_init_early(struct intel_uc_fw *uc_fw,
>                 __uc_fw_user_override(uc_fw);
>         }
>  
> -       intel_uc_fw_change_status(uc_fw, uc_fw->path && *uc_fw->path ?
> +       intel_uc_fw_change_status(uc_fw, uc_fw->path ?
> +                                 uc_fw->path ?

uc_fw->path ? *uc_fw->path ?

>                                   INTEL_UC_FIRMWARE_SELECTED :
> +                                 INTEL_UC_FIRMWARE_DISABLED :
>                                   INTEL_UC_FIRMWARE_NOT_SUPPORTED);
>  }

> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h
> index ce8e83128a95..40927d17efe2 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h
> @@ -19,8 +19,9 @@ struct intel_gt;
>  #define INTEL_UC_FIRMWARE_URL "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915";
>  
>  enum intel_uc_fw_status {
> -       INTEL_UC_FIRMWARE_NOT_SUPPORTED = -1, /* no uc HW or disabled */
> +       INTEL_UC_FIRMWARE_NOT_SUPPORTED = -1, /* no uc HW */
>         INTEL_UC_FIRMWARE_UNINITIALIZED = 0, /* used to catch checks done too early */
> +       INTEL_UC_FIRMWARE_DISABLED, /* disabled */
>         INTEL_UC_FIRMWARE_SELECTED, /* selected the blob we want to load */
>         INTEL_UC_FIRMWARE_MISSING, /* blob not found on the system */
>         INTEL_UC_FIRMWARE_ERROR, /* invalid format or version */
> @@ -84,6 +85,8 @@ const char *intel_uc_fw_status_repr(enum intel_uc_fw_status status)
>                 return "N/A";
>         case INTEL_UC_FIRMWARE_UNINITIALIZED:
>                 return "UNINITIALIZED";
> +       case INTEL_UC_FIRMWARE_DISABLED:
> +               return "DISABLED";
>         case INTEL_UC_FIRMWARE_SELECTED:
>                 return "SELECTED";
>         case INTEL_UC_FIRMWARE_MISSING:
> @@ -106,7 +109,9 @@ static inline int intel_uc_fw_status_to_error(enum intel_uc_fw_status status)
>  {
>         switch (status) {
>         case INTEL_UC_FIRMWARE_NOT_SUPPORTED:
> +               return -ENODEV;
>         case INTEL_UC_FIRMWARE_UNINITIALIZED:

return -EACCES; ?

> +       case INTEL_UC_FIRMWARE_DISABLED:
>                 return -EPERM;

>         case INTEL_UC_FIRMWARE_MISSING:
>                 return -ENOENT;
> @@ -142,6 +147,16 @@ __intel_uc_fw_status(struct intel_uc_fw *uc_fw)
>         return uc_fw->status;
>  }
>  
> +static inline bool intel_uc_fw_is_supported(struct intel_uc_fw *uc_fw)
> +{
> +       return __intel_uc_fw_status(uc_fw) != INTEL_UC_FIRMWARE_NOT_SUPPORTED;
> +}
> +
> +static inline bool intel_uc_fw_is_enabled(struct intel_uc_fw *uc_fw)
> +{
> +       return __intel_uc_fw_status(uc_fw) > INTEL_UC_FIRMWARE_DISABLED;
> +}

Ok.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux