Thread (4 messages) 4 messages, 4 authors, 2017-01-12

Re: wl1251 & mac address & calibration data

From: Kalle Valo <hidden>
Date: 2016-12-20 11:47:43
Also in: linux-wireless, lkml

Possibly related (same subject, not in this thread)

Arend Van Spriel [off-list ref] writes:
On 18-12-2016 13:09, Pali Rohár wrote:
quoted
File wl1251-nvs.bin is provided by linux-firmware package and contains 
default data which should be overriden by model specific calibrated 
data.
Ah. Someone thought it was a good idea to provide the "one ring to rule
them all". Nice.
Yes, that was a bad idea. wl1251-nvs.bin in linux-firmware.git should be
renamed to wl1251-nvs.bin.example, or something like that, as it should
be only installed to a real system only if there's no real calibration
data available (only for developers to use, not real users).
quoted
But overwriting that one file is not possible as it next update of 
linux-firmware package will overwrite it back. It break any normal usage 
of package management.

Also it is ridiculously broken by design if some "boot" files needs to 
be overwritten to initialize hardware properly. To not break booting you 
need to overwrite that file before first boot. But without booting 
device you cannot read calibration data. So some hack with autoreboot 
after boot is needed.
Providing the calibration data via Device Tree is the proper way to
solve this. Yes yes, I know N900 doesn't support it but that's a
deficiency in N900, not Linux.
quoted
And how to detect that we have real overwritten calibration data and
not default one from linux-firmware? Any heuristic or checks will be
broken here. And no, nothing like you need to reboot your device now
(and similar concept) from windows world is not accepted.
Well. After reading and creating calibration data you could just rebind
the driver to the device to have it probed again.
Or load wl1251 as a module and make sure calibration data is installed
before the module is loaded. LEDE does that with ath10k:

https://git.lede-project.org/?p=source.git;a=blob;f=target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata;h=97875bd79a579a0010da3f60324b6ec966fe9c6a;hb=HEAD
But yeah, the default one from linux-firmware should never have been
there in the first place.
Agreed.

-- 
Kalle Valo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help