On Thu 2014-11-27 07:58:40, Greg Kroah-Hartman wrote: > On Thu, Nov 27, 2014 at 04:22:58PM +0100, Pali Rohár wrote: > > On Thursday 27 November 2014 16:16:55 Greg Kroah-Hartman wrote: > > > On Thu, Nov 27, 2014 at 03:43:23PM +0100, Pali Rohár wrote: > > > > On Thursday 27 November 2014 15:21:44 Ming Lei wrote: > > > > > On Thu, Nov 27, 2014 at 10:06 PM, Pali Rohár > > > > > > > > <pali.rohar@xxxxxxxxx> wrote: > > > > > > Hello, > > > > > > > > > > > > wifi driver wl1251 needs NVS calibration data for > > > > > > working. These data are loaded by driver via > > > > > > request_firmware from userspace file: > > > > > > ti-connectivity/wl1251-nvs.bin. In linux-fimrware git > > > > > > tree there is generic wl1251-nvs.bin file which is used > > > > > > by default. > > > > > > > > > > > > Driver wl1251 is used on Nokia N900 cellphone for its > > > > > > wifi chip. This cellphone has one special MTD partition > > > > > > (called CAL) where are stored some configuration data > > > > > > in special binary (key-value) format. And there is also > > > > > > stored correct calibration data for specific device > > > > > > (each device has different data). It is preferred to > > > > > > use those data instead generic one (provided by > > > > > > linux-firmware git tree). > > > > > > > > > > > > Now my question is: How to correctly load calibration > > > > > > data from special Nokia N900 CAL partition into wl1251 > > > > > > kernel driver? > > > > > > > > > > It is better to let user space script handle the request. > > > > > > > > Yes, this makes sense. Implementing CAL parser in kernel > > > > wl1251 driver would be hard... > > > > > > > > > > By default kernel reads ti-connectivity/wl1251-nvs.bin > > > > > > file from VFS if exists without any userspace support. > > > > > > If it fails then it fallback to loading via udev. > > > > > > > > > > You can remove or rename this file so that loading from > > > > > user space can be triggered. > > > > > > > > It is no so easy... In case when CAL does not contains NVS > > > > data then we want to use this generic NVS file. And telling > > > > everybody to rename this is file is not good solution... > > > > > > But that's up to your system configuration, not the kernel. > > > Make a userspace package for the firmware that creates it in > > > the format you need it to be in, for the hardware you have, > > > and then there would not be any need for a kernel change, > > > right? > > > > > > greg k-h > > > > Not so simple as you think. Some parts of NVS data are configured > > based on location and cellular station. Data are not static. > > Then you need a dynamic program that you control, in userspace, to dump > the needed data into the kernel. Don't try to do it with "static" > firmware files. Use the binary sysfs file interface for this if you > want. Actually, this seems to be similar situation to fpga programming. There, it is static firmware for 90% users, but some special use cases want it more dynamic. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html