[Nouveau] [PATCH] volt: Fix for some cards having 0 maximum voltage

Karol Herbst kherbst at redhat.com
Thu Aug 15 08:50:55 UTC 2019


although I'd like to have a deeper understanding of this table, I
think it's fine as it is right now and this actually does fix
something without causing any issues (as far as we know of)

Reviewed-by: Karol Herbst <kherbst at redhat.com>

On Fri, Aug 2, 2019 at 11:21 AM Mark Menzynski <mmenzyns at redhat.com> wrote:
>
> Some, mostly Fermi, vbioses appear to have zero max voltage. That causes Nouveau to not parse voltage entries, thus users not being able to set higher clocks.
>
> When changing this value Nvidia driver still appeared to ignore it, and I wasn't able to find out why, thus the code is ignoring the value if it is zero.
>
> CC: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Signed-off-by: Mark Menzynski <mmenzyns at redhat.com>
> ---
>  drm/nouveau/nvkm/subdev/bios/volt.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drm/nouveau/nvkm/subdev/bios/volt.c b/drm/nouveau/nvkm/subdev/bios/volt.c
> index 7143ea46..33a9fb5a 100644
> --- a/drm/nouveau/nvkm/subdev/bios/volt.c
> +++ b/drm/nouveau/nvkm/subdev/bios/volt.c
> @@ -96,6 +96,8 @@ nvbios_volt_parse(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len,
>                 info->min     = min(info->base,
>                                     info->base + info->step * info->vidmask);
>                 info->max     = nvbios_rd32(bios, volt + 0x0e);
> +               if (!info->max)
> +                       info->max = max(info->base, info->base + info->step * info->vidmask);
>                 break;
>         case 0x50:
>                 info->min     = nvbios_rd32(bios, volt + 0x0a);
> --
> 2.21.0
>
> _______________________________________________
> Nouveau mailing list
> Nouveau at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/nouveau


More information about the Nouveau mailing list