[Nouveau] [PATCH] secboot/acr352: reset PMU after secboot
Karol Herbst
karolherbst at gmail.com
Wed Jul 5 06:57:44 UTC 2017
On Wed, Jul 5, 2017 at 3:23 AM, Ben Skeggs <skeggsb at gmail.com> wrote:
> On 07/05/2017 03:35 AM, Karol Herbst wrote:
>> This is needed for using Nouveaus PMU image after performing secboot. This will
>> be helpfull for Maxwell2 reclocking on boards without externally controlled
>> fans like on most laptops or fanless boards.
> I get the idea in principal, but have some concerns:
>
> - Does this screw up re-running secboot during channel recovery (ie.
> page fault on gr)?
> - What about the running of the unload blob?
>
> It makes me angry that we even have to think about doing stuff like this! :P
>
> Ben.
>
Yeah I know, but this was the best I came up with. In earlier attempts
I only came up with worse solutions.
I think it's technically fine, because nvkm_pmu_init calls
nvkm_pmu_reset and pmu->func->init. In prior versions I've also added
a fini call, but this made nouveau unhappy whenever I reclocked the
GPU and reloaded nouveau afterwards. I could do some more testing
though.
Good thing is that this is only a problem on GM20X GPUs and we only
need a proper solution for those.
>>
>> Signed-off-by: Karol Herbst <karolherbst at gmail.com>
>> ---
>> drm/nouveau/nvkm/subdev/secboot/acr_r352.c | 13 +++++++++++++
>> 1 file changed, 13 insertions(+)
>>
>> diff --git a/drm/nouveau/nvkm/subdev/secboot/acr_r352.c b/drm/nouveau/nvkm/subdev/secboot/acr_r352.c
>> index a7213542..00095ef8 100644
>> --- a/drm/nouveau/nvkm/subdev/secboot/acr_r352.c
>> +++ b/drm/nouveau/nvkm/subdev/secboot/acr_r352.c
>> @@ -924,6 +924,19 @@ acr_r352_bootstrap(struct acr_r352 *acr, struct nvkm_secboot *sb)
>> }
>> }
>>
>> + /* reset the PMU if needed */
>> + if (acr->base.boot_falcon == NVKM_SECBOOT_FALCON_PMU &&
>> + !nvkm_secboot_is_managed(sb, NVKM_SECBOOT_FALCON_PMU)) {
>> + struct nvkm_pmu *pmu = subdev->device->pmu;
>> + if (pmu) {
>> + ret = nvkm_subdev_init(&pmu->subdev);
>> + if (ret < 0) {
>> + nvkm_error(subdev, "Failed to reset PMU\n");
>> + return ret;
>> + }
>> + }
>> + }
>> +
>> return 0;
>> }
>>
>>
>
>
> _______________________________________________
> Nouveau mailing list
> Nouveau at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/nouveau
>
More information about the Nouveau
mailing list