[Intel-gfx] [PATCH v3 2/2] drm/i915/guc: always reset GuC before loading firmware

Dave Gordon david.s.gordon at intel.com
Thu Mar 31 11:31:41 UTC 2016


On 29/03/16 12:48, Daniel Vetter wrote:
> On Thu, Mar 24, 2016 at 06:40:15PM +0000, Dave Gordon wrote:
>> After a suspend-resume cycle, the resumed kernel has no idea what the
>> booted kernel may have done to the GuC before replacing itself with the
>> resumed image. In particular, it may have already loaded the GuC with
>> firmware, which will then cause this kernel's attempt to (re)load the
>> firmware to fail (GuC program memory is write-once!). The symptoms
>> (GuC firmware reload fails after hibernation) are further described
>> in the Bugzilla reference below.
>>
>> So let's *always* reset the GuC just before (re)loading the firmware;
>> then the hardware should then be in a well-known state, and we may even
>> avoid some of the issues arising from unpredictable timing.
>>
>> Also added some more fields & values to the definition of the GUC_STATUS
>> register, which is the key diagnostic indicator if the GuC load fails.
>>
>> Signed-off-by: Dave Gordon <david.s.gordon at intel.com>
>> Reviewed-by: Arun Siluvery <arun.siluvery at linux.intel.com>
>> Cc: Alex Dai <yu.dai at intel.com>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94390
>
> I guess both of these should be labelled Cc: stable at vger.kernel.org when
> merging.
> -Daniel

Probably not necessary, as the patch to enable GuC loading (and 
fallback) by default hasn't yet been merged, so this code isn't reached 
unless the (unsafe) kernel parameter is overridden.

.Dave.



More information about the Intel-gfx mailing list