Re: wl1251 & mac address & calibration data

From: Pali RohÃr
Date: Tue Dec 20 2016 - 12:06:43 EST


On Tuesday 20 December 2016 17:56:58 Tony Lindgren wrote:
> * Kalle Valo <kvalo@xxxxxxxxxxxxxx> [161220 03:47]:
> > Arend Van Spriel <arend.vanspriel@xxxxxxxxxxxx> writes:
> > > On 18-12-2016 13:09, Pali RohÃr wrote:
> > >> 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).
>
> Makes sense to me. Note that with the recent changes to wlcore, we
> can now easily provide board specific calibration firmware simply by
> adding a new compatible value. So for n900, we could have something
> like compatible = "ti,wl1251-n900" and have it point to n900
> specific calibration file wl1251-nvs-n900.bin. Of course this won't
> help with the mac address, or any of the device specific data..
>
> That is assuming the calibration values are the same for each similar
> device and don't have to be generated for each device. And naturally
> wl1251 needs simlar changes done to make use of devices specific
> calibration files.
>
> Regards,
>
> Tony

As wrote in another thread "wl1251 NVS calibration data format"
calibration data for wl1251 (wl1251-nvs.bin) contains also MAC address,
which kernel sends to wl1251 chip. Kernel just do not use it.

So... my idea now is:

1) extend request_firmware function family with ability to use userspace
helper first and fallback to VFS

2) teach wl1251.ko to parse MAC address from wl1251-nvs.bin and use it
(in case it is not empty or 00:00:20:07:03:09 which is in that example
linux-firmware package)

3) write Nokia n900 specific userspace helper for providing data when
kernel requests wl1251-nvs.bin. So userspace helper reads MAC address
and calibration data from CAL, place MAC address into calibration data
and send put it into kernel.

Are you OK with this idea?

--
Pali RohÃr
pali.rohar@xxxxxxxxx

Attachment: signature.asc
Description: This is a digitally signed message part.