[Intel-gfx] [PATCH v10 1/2] drm/i915/guc : Removing enable_guc_loading and enable_guc_submission module parameters
Michal Wajdeczko
michal.wajdeczko at intel.com
Wed Nov 29 14:11:06 UTC 2017
On Wed, 29 Nov 2017 14:40:05 +0100, Sagar Arun Kamble
<sagar.a.kamble at intel.com> wrote:
>
>
> On 11/29/2017 5:44 PM, Michal Wajdeczko wrote:
>> On Tue, 28 Nov 2017 11:41:57 +0100, Sagar Arun Kamble
>> <sagar.a.kamble at intel.com> wrote:
>>
>>>
>>>
>>> On 11/28/2017 1:24 AM, Sujaritha Sundaresan wrote:
>>>> We currently have two module parameters that control GuC:
>>>> "enable_guc_loading" and "enable_guc_submission". Whenever
>>>> we need submission=1, we also need loading=1.We also need
>>>> loading=1 when we want to want to verify the HuC, which
>>>> is every time we have a HuC (but all platforms with HuC
>>>> have a GuC and viceversa).
>>>>
>>
>> <SNIP>
>>
>>>> +
>>>> + /* Making sure that our auto is well defined */
>>>> + GEM_BUG_ON(auto_enable_guc < 0);
>>>> + GEM_BUG_ON((auto_enable_guc > 0) && !HAS_GUC_FW(dev_priv));
>>>> + GEM_BUG_ON((auto_enable_guc & 2) && !HAS_HUC_FW(dev_priv));
>>>> +
>>>> + if (i915_modparams.enable_guc < 0)
>>>> + i915_modparams.enable_guc = auto_enable_guc;
>>>> +
>>>> + if (i915_modparams.enable_guc > 0) {
>>>> + if (!HAS_GUC(dev_priv) || !HAS_GUC_FW(dev_priv)) {
>>>> + DRM_INFO("Ignoring option enable_guc=%d - %s\n",
>>>> + i915_modparams.enable_guc,
>>>> + !HAS_GUC(dev_priv) ? "no GuC hardware" :
>>>> + "no GuC firmware");
>>>> + i915_modparams.enable_guc = 0;
>>>> + }
>>>> }
>>>> - /* A negative value means "use platform default" */
>>>> - if (i915_modparams.enable_guc_loading < 0)
>>>> - i915_modparams.enable_guc_loading = HAS_GUC_UCODE(dev_priv);
>>>> -
>>>> - /* Verify firmware version */
>>>> - if (i915_modparams.enable_guc_loading) {
>>>> - if (HAS_HUC_UCODE(dev_priv))
>>>> - intel_huc_select_fw(&dev_priv->huc);
>>>> -
>>>> - if (intel_guc_fw_select(&dev_priv->guc))
>>>> - i915_modparams.enable_guc_loading = 0;
>>>> + if (i915_modparams.enable_guc & 2) {
>>>> + if (!HAS_HUC_FW(dev_priv)) {
>>>> + DRM_INFO("Ignoring option enable_guc=%d - %s\n",
>>>> + i915_modparams.enable_guc, "no HuC firmware");
>>>> + i915_modparams.enable_guc = 0;
>>> Clearing only HuC status from enable_guc would be proper I guess.
>>> Sorry I did not see this earlier.
>>
>> My understanding is that if user had specified non-zero positive value
>> of
>> 'enable_guc' then it means that he requests *all* GuC options to be
>> available
>> (something like our old '2=required' mode). If any of required option
>> is not
>> available then we should not try to cherry-pick/drop single option.
> I think we wanted to enable HuC for some platforms but not enable GuC
> submission. Anusha can you
> please confirm if such cherry-picking is needed through module parameter.
Cherry-picking through module parameter is fine.
And at the same time we should treat them as mandatory options.
I was referring to cherry-picking (or more precisely droping) during call
to sanitize_options(). So when user specify guc_enable as 3(submission+huc)
we should not convert it into 2(submission only).
>>
>> Note that if user don't care about specific option, then user should
>> use -1(auto)
>> mode and rely on driver decision what is available and in which
>> configuration.
>> And for 'auto' mode we try to make sure to do not select broken
>> configurations.
> In that case we can just have 3 values for enable_guc (if cherry-picking
> is not to be done)
> -1: auto (whatever is available)
> 0: all disabled
> 1: all enabled if available else all disabled
>>
>> Michal
More information about the Intel-gfx
mailing list