History log of /drivers/net/wireless/ti/wlcore/boot.c
Revision Date Author Comments
9646b1346760a0af1035f0c59ba727fca1f5824d 12-Dec-2012 Luciano Coelho <coelho@ti.com> wlcore: use single-role version when verifying the PLT firmware

The PLT firmware used by wl12xx for calibration always has the same
version number as the single-role firmware.

Currntly the driver rejects the PLT firmware since anything that is
not single-role uses the multi-role version. Fix this by using the
single-role version for everything except multi-role.

Signed-off-by: Luciano Coelho <coelho@ti.com>
8675f9abdf5b67a3f621fa99e1f0e0c8d8ae2531 27-Nov-2012 Luciano Coelho <coelho@ti.com> wlcore/wl12xx/wl18xx: verify multi-role and single-role fw versions

Previously we were only checking the single-role firmware version.
Now add code to check for the firmware versions separately for each
firmware type.

Signed-off-by: Luciano Coelho <coelho@ti.com>
af4e94c56581b446b2010854a983ef722ad9ed1f 27-Nov-2012 Luciano Coelho <coelho@ti.com> wlcore: change way of checking the firmware version

The firmwares version string contain 5 integers. We used to consider
all the digits (except for the first one, which indicates the chip) as
linearly increasing version numbers. This is not correct, because
some of the integers indicate type of firmware (eg. single-role
vs. multi-role) or the internal project it was created for.

Besides, this varies a bit from chip to chip, so we need to make the
firmware version checks more flexible (eg. allow the lower driver to
ignore some of the integers). Additionally, we need to change the
code so that we only check for a linearly increasing number on the
fields where this actually makes sense.

Signed-off-by: Luciano Coelho <coelho@ti.com>
c50a282515dc7092f7318708a0f3ae7ca7342b9f 22-Nov-2012 Eliad Peller <eliad@wizery.com> wlcore: update events enum/struct to new fw api

The event mailbox in wl18xx has a different
(non-compatible) structure.

Create common functions in wlcore to handle the
events, and call them from the chip-specific
event mailbox parsers.

This way, each driver (wl12xx/wl18xx) extracts
the event mailbox by itself according to its
own structure, and then calls the common
wlcore functions to handle it.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
f7ace5f044295a06a26cd1b4c176b011b0297ac4 30-Jun-2012 Dan Carpenter <dan.carpenter@oracle.com> wlcore: fix a couple small memory leaks

We should free "chunk" here before returning the error code.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
4a1ccce852882c174d2392d2d8db1d65f48d4a10 25-Jun-2012 Arik Nemtsov <arik@wizery.com> wlcore/wl12xx/wl18xx: check min FW version

Refuse to boot if the FW version is too old. The minimum version is set
per chip, with the option of setting it per PG in the future.

When boot fails because of an old FW, display a helpful message.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
b0f0ad39e3d2716fe9ca6e50ce4cda87eb409ee0 19-Jun-2012 Ido Yariv <ido@wizery.com> wlcore: Propagate errors from wl1271_raw_write32

Propagate errors from wl1271_raw_write32 and request for recovery when
appropriate.
Also rename prefixes of wlcore functions which their prototypes had to
be changed.

Signed-off-by: Ido Yariv <ido@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
6134323f42b0dbae8e8206414d26cb167b9bedfc 18-Jun-2012 Ido Yariv <ido@wizery.com> wlcore: Propagate errors from wl1271_raw_read32

Propagate errors from wl1271_raw_read32. Since the read functions had no
way of returning errors in-band, change their prototypes.
Also rename prefixes of wlcore functions which their prototypes had to
be changed.

Signed-off-by: Ido Yariv <ido@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
eb96f841b9563ba34969be25615548635728faf5 18-Jun-2012 Ido Yariv <ido@wizery.com> wlcore: Propagate errors from wl1271_write

Propagate errors from wl1271_write and request for recovery when
appropriate.
Also rename prefixes of wlcore functions which their prototypes had to
be changed.

Signed-off-by: Ido Yariv <ido@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
045b9b5f4172b2b21af0b9bf5e6dda51146d51a4 17-Jun-2012 Ido Yariv <ido@wizery.com> wlcore: Propagate errors from wl1271_read

Propagate errors from wl1271_read and request for recovery when
appropriate.
Also rename prefixes of wlcore functions which their prototypes had to
be changed.

Signed-off-by: Ido Yariv <ido@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
3e3947fffc2ebe8c52891b3fca195172875dc951 29-May-2012 Arik Nemtsov <arik@wizery.com> wlcore/wl12xx/wl18xx: make NVS file optional for wl18xx

Don't spew errors when we can't find the NVS file in wlcore. Instead
fail the wl12xx boot HW op if the NVS isn't found.

Take this opportunity to remove some dead code from register_hw()
which looks for the NVS again needlessly.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
7140df6e51ecca70e8963f18e9836e62090221c2 09-May-2012 Luciano Coelho <coelho@ti.com> wlcore: create private static_data area and add operation to parse it

The wl18xx firmware has more information in the static_data than
wl12xx. To be able to parse that in an abstracted way, this patch
adds a priv area to the static data struct and an operation that
allows the lower driver to parse it if necessary.

Signed-off-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
5f561f686b90f51d97a1a6985175860200e55a2d 26-Apr-2012 Bartosz.Markowski@tieto.com <Bartosz.Markowski@tieto.com> wlcore/wl12xx: implement better beacon loss handling

Make use of REGAINED_BSS_EVENT and instead of reporting connection
loss immediately on each BEACON_LOSE event, try if not regained
in reasonable period of time.

Signed-off-by: bartosz.markowski <bartosz.markowski@tieto.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
fd492ed7898570c744b2fe0d5856f11a043c66a7 03-May-2012 Luciano Coelho <coelho@ti.com> wlcore: use GFP_KERNEL together with GFP_DMA

GFP_DMA should not be used by itself, it still needs GFP_KERNEL or
such. Fix two occurrences of allocations with GFP_DMA only.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
80cd661097f3cb1dcfe45cac983c55d03cdcf64d 06-Dec-2011 Luciano Coelho <coelho@ti.com> wlcore/wl12xx: move identify firmware function to a lower driver op

Different chip families have different firmware versions, so we need
to identify the firmware to enable quirks, reject the used version
etc. in the lower drivers. This commit turns the fw_ver_quirks
function into an identify_fw operation.

Signed-off-by: Luciano Coelho <coelho@ti.com>
441101f67818cf5aaba7081fb05c8604a55c0949 30-Nov-2011 Luciano Coelho <coelho@ti.com> wlcore: add quirk to disable ELP

ELP is a very complicated process in the firmware. Due to its
complexity, in some early firmware revisions, the ELP feature is
disabled. To support this cases, this patch adds a quirk that
disables ELP mode.

When ELP is not supported, do not attempt to enter ELP when requested by
the driver.

Signed-off-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
4263c5f27c0403ad750c4f2509e5396e630b6e6e 30-Nov-2011 Luciano Coelho <coelho@ti.com> wlcore: remove some unnecessary event mailbox address reads

We were reading the even mailbox address three times, which was
completely unnecessary and complicated things regarding partition
selection. Remove the unnecessry reads and set the address for
mailbox 1 and 2 after the first read.

Signed-off-by: Luciano Coelho <coelho@ti.com>
d203e59c4b56d56916a804ebeb04b0e6d92adf4c 29-Nov-2011 Luciano Coelho <coelho@ti.com> wlcore/wl12xx: add quirk for legacy NVS support

Instead of checking the chip ID directly in the wlcore code to decide
whether to use the new or the old NVS format, we now use a quirk that
should be set by the low level driver to say that it needs to use the
old format.

Signed-off-by: Luciano Coelho <coelho@ti.com>
dd5512eb6b8317069e80d70a624b6d350afebc9e 11-Apr-2012 Luciano Coelho <coelho@ti.com> wlcore/wl12xx: move top initialization to wl12xx

The top registers initialization is very specific to the actual
hardware used, even the way in which we read from and write to the top
registers varies from chip to chip. This patch moves all top
registers initialization to wl12xx. Also add a boot op for the wlcore
module to call at the right time and a few callbacks with the common
called to be called from the lower drivers boot operations.

Signed-off-by: Luciano Coelho <coelho@ti.com>
6f7dd16cb125468a5393861c22fbecfb52dd9653 29-Nov-2011 Luciano Coelho <coelho@ti.com> wlcore/wl12xx: add chip-specific identify chip operation

Move the code that identifies the chip ID and selects the appropriate
firmware to an operation implemented by the lower driver. Also move
the quirks definitions into wlcore.h and rename to WLCORE_QUIRK_*.

Signed-off-by: Luciano Coelho <coelho@ti.com>
00782136b4d6e2316e0a2a55f3b1fba160e9576e 29-Nov-2011 Luciano Coelho <coelho@ti.com> wlcore/wl12xx: implement chip-specific register tables

Add register tables support in wlcore, add some new IO functions to
read and write to chip-specific register and data addresses. Move
some common register values from wl12xx to wlcore and add the
registers table to wl12xx.

Signed-off-by: Luciano Coelho <coelho@ti.com>
25a43d78eb63281294793fdaab6108bef81d7648 21-Nov-2011 Luciano Coelho <coelho@ti.com> wlcore/wl12xx: implement chip-specific partition tables

Add partition tables to wlcore, move and reorganize partition setting
functions. Move wl12xx partition table to use the wlcore partition
table instead.

Signed-off-by: Luciano Coelho <coelho@ti.com>
7b3115f265de1b669b757f3802b67c9a7f146223 02-Dec-2011 Luciano Coelho <coelho@ti.com> wl12xx/wlcore: rename wl12xx to wlcore

Rename the wl12xx driver directory to wlcore as an initial step
towards the split of the driver into wlcore and wl12xx. We just
rename the directory first to keep git blame happy.

Signed-off-by: Luciano Coelho <coelho@ti.com>