[Nouveau] [PATCH] drm/nouveau/bios: use size provided by _ROM method
Lekensteyn
lekensteyn at gmail.com
Sun Oct 21 05:53:03 PDT 2012
On Sunday 21 October 2012 14:20:05 Marcin Slusarz wrote:
> BTW, _ROM method from https://lkml.org/lkml/2012/10/21/11 multiplies length
> by 8, so maybe we can read 32kB in one batch?
>
> Marcin
That holds for that specific model, but it is not standard (in ACPI). Ben
Skeggs has a laptop (Lenovo?) W530 that allows you to read the whole VBIOS in
one call (that means chunk size > 4KiB), but there is another machine where
this does not work (https://bugs.freedesktop.org/show_bug.cgi?id=55948). That
machine allows you to read lengths of 4 KiB only (the buffer size is hard-coded
to 4096, the upper bound of the returned size).
I'd say, stick to 4 KiB for the first read, then try to read the remaining
VBIOS in one shot and finally fallback to reading in chunks of min(4096, bios-
>size - i). That should give a count of least 512 bytes. On my machine the
length is 0x7d which translates to exactly 64 KB (not KiB).
After your patch in https://lkml.org/lkml/2012/10/20/150, "drm/nouveau/bios:
attempt to fetch entire acpi rom image in one shot" could be improved to only
read the unknown VBIOS:
/* disobey the acpi spec - much faster on at least w530 ... */
- ret = nouveau_acpi_get_bios_chunk(bios->data, 0, bios->size);
+ ret = nouveau_acpi_get_bios_chunk(bios->data, 4096, bios->size - 4096);
Peter
More information about the Nouveau
mailing list