5e74b3aa6ffd80128e3df605bf27d8a6a3c04997 |
|
11-Jul-2014 |
Eliad Peller <eliad@wizery.com> |
wlcore/wl18xx/wl12xx: convert bitmaps to unsigned longs The *_bit operations expect unsigned longs. Instead of casting the pointers, simply define various bitmaps as unsigned long (instead of u32). Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
bc566f9203c2813a2e083677eb99c62b1cb14d03 |
|
10-Feb-2014 |
Arik Nemtsov <arik@wizery.com> |
wlcore: wl18xx: allow CCK rates for AP mode 12xx chips allow only OFDM rates in AP mode for BT-Coex purposes. This is no longer required in 18xx chips, starting with FW 8.6.0.0.8. Update the min allowed FW version in 18xx to support this functionality. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
abf0b24912640c4fa94b0a2f22ee9d51c8521b16 |
|
10-Feb-2014 |
Eliad Peller <eliad@wizery.com> |
wlcore/wl12xx/wl18xx: configure iface_combinations per-hw Each hw supports a different iface combinations. Define the supported combinations in each driver, and save it in wl->iface_combinations. Since each driver defines its own combinations now, it can also define its max supported channels, so we no longer need to save and set it explicitly in wlcore. Update wl18xx interface combinations to allow multiple APs. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
32f0fd5b700064f821105be041d0075decc4ec64 |
|
10-Feb-2014 |
Eliad Peller <eliad@wizery.com> |
wlcore/wl12xx/wl18xx: configure max_stations per-hw Each hw supports a different max stations (connected to the same ap). add a new wl->max_ap_stations and use it instead of the current common AP_MAX_STATIONS. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
da08fdfaf09f161c923c9d2b7db2fba8cc9c457c |
|
10-Feb-2014 |
Eliad Peller <eliad@wizery.com> |
wlcore/wl12xx/wl18xx: configure num_links per-hw Upcoming fw versions will have different max links support (according to the hw). Get ready for it by configuring wl->num_links per-hw, instead of using the const WL12XX_MAX_LINKS. However, continue using WLCORE_MAX_LINKS in order to simplify structs declarations (we use it in multiple bitmaps, and converting them to dynamic arrays is just cumbersome). Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
75fb4df7f804229372e073977615a149a4a28dc0 |
|
10-Feb-2014 |
Eliad Peller <eliad@wizery.com> |
wlcore/wl12xx/wl18xx: simplify fw_status handling Instead of splitting the fw_status into 2 and using some complex calculations, read the fw status and let each low-level driver (wl12xx/wl18xx) convert it into a common struct. This is required for the upcoming fw api changes, which break the current logic anyway. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
c83cb8031bdd7923c7c5ea87accede4a5fc3282a |
|
08-Sep-2013 |
Igal Chernobelsky <igalc@ti.com> |
wlcore/wl18xx/wl12xx: FW log params per chip arch FW memory block size and FW log end marker parameters are added to wl structure and are initialized per chip architecture. convert_hwaddr hw operation is added to convert chip dependent FW internal address. Copy from FW log is also simplified to copy the entire memory block as FW logger utility is repsponsible for parsing of FW log content. Signed-off-by: Igal Chernobelsky <igalc@ti.com> Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
|
9d8146d4e1ddb967ac6acff8c820c1ae38dfa2fc |
|
08-Sep-2013 |
Ido Reis <idor@ti.com> |
wl12xx/wl18xx: update default fw logger's settings update the fw logger mode to continuous, and output to dbgpins (uart). Signed-off-by: Ido Reis <idor@ti.com> Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
|
71e996bef90b23919f627a38367b9e8b44b77d37 |
|
08-Sep-2013 |
Eliad Peller <eliad@wizery.com> |
wlcore: add ap_event_mask Add new ap_event_mask field, to indicate events that should be unmasked only when there's an ap interface. This is done in order to avoid spurious wakeups when we don't care about the incoming event anyway. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
|
c4978e251f3a5cd0576bc411942f08c9a11f62d8 |
|
10-Sep-2013 |
Jingoo Han <jg1.han@samsung.com> |
wireless: wl12xx: use dev_get_platdata() Use the wrapper function for retrieving the platform data instead of accessing dev->platform_data directly. This is a cosmetic change to make the code simpler and enhance the readability. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
d21553f8900f735d2caedd1c6db75dbd67e5ab9e |
|
12-Mar-2013 |
Igal Chernobelsky <igalc@ti.com> |
wlcore: set max num of Rx BA sessions per chip Maximum number of supported RX BA sessions depends on chip type. wl18xx supports 5 RX BA sessions while wl12xx supports 3. Signed-off-by: Igal Chernobelsky <igalc@ti.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
afb43e6d88e587441c960a5d214d2c698d076c9c |
|
25-Jan-2013 |
Luciano Coelho <coelho@ti.com> |
wlcore: remove if_ops from platform_data We can't pass pointers from the platform data to the modules, because with DT it cannot be done. Those pointers are not set by the board files anyway. It's the bus modules that set them, so they can be safely removed from the platform data without changing any board files. Create a new structure that the bus modules pass to wlcore. This structure contains the if_ops pointers and a pointer to the actual platform data. Signed-off-by: Luciano Coelho <coelho@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
|
2e07d02828759a506b5205b2cff40daa58df5bf7 |
|
28-Nov-2012 |
Ido Yariv <ido@wizery.com> |
wlcore: Always pass DMA-able buffers to mmc functions Some of the mmc drivers initiate DMA transfers with buffers passed from higher layers. This means that the driver shouldn't ever pass non DMA-able buffers, such as ones that are unaligned, allocated on the stack or static. Fix a couple of calls to the mmc layer in which buffers which weren't necessarily DMA-able were passed. [Use sizeof(*wl->buffer_32) instead of sizeof(u32) -- Luca] Signed-off-by: Ido Yariv <ido@wizery.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
f1626fd8983a5bc68ce2879865cce297eb96c0b4 |
|
28-Nov-2012 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl18xx: change priority calculations for links Update the 18xx FW status private part to include Tx related link priorities. Introduce new HW ops to determine link priority per chip family. For 18xx the changes are: - Suspended links are at most low priority and Tx for them is stopped beyond the suspend threshold. - Active links now get their thresholds directly from FW - There's a new "stop" threshold for active links, at which point a link stops receiving new packets. Update the min 18xx FW version required to make sure suspended links bitmap is advertised by the FW. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
5d3a160365306c4161b7064d482c26a85829f170 |
|
08-Dec-2012 |
Eyal Shapira <eyal@wizery.com> |
wlcore: increase scan dwell times if no activity There's a limit on scan dwell times of max 30ms in order to avoid degrading voip traffic which could be going on while scanning. However these dwell times increase the chance of missing out on nearby APs leading to partial scan results. Allow configuration of longer dwell times in case there no active interface (i.e. no STA associated or AP up). [Arik - count started vifs using an in-driver function] [Fixed some new checkpatch warnings regarding comments in the networking subsystem. -- Luca] Signed-off-by: Eyal Shapira <eyal@wizery.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
530abe195df6918d43c9381fd9a70b7e16d55036 |
|
28-Nov-2012 |
Eliad Peller <eliad@wizery.com> |
wlcore: add ACX_PEER_CAP command ACX_PEER_CAP command is just ACX_PEER_HT_CAP, but allows configuring the peer's support rates as well. this is needed because we start the station role when the remote rates are not known yet. the two commands should be unified in future fw versions, but for now add a new set_peer_cap per-hw op, that will use ACX_PEER_CAP for 18xx, and ACX_PEER_HT_CAP for 12xx. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
b74324d1048271240f65b2d91816d15e72dd80dd |
|
03-Dec-2012 |
Bill Pemberton <wfp5p@virginia.edu> |
wlcore/wl18xx/wl12xx: remove __dev* attributes CONFIG_HOTPLUG is going away as an option. As result the __dev* markings will be going away. Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst, and __devexit. Signed-off-by: Bill Pemberton <wfp5p@virginia.edu> Cc: Luciano Coelho <coelho@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
0e81047996fdde7fc9e8a1c01d532df1f53586fa |
|
27-Nov-2012 |
Arik Nemtsov <arik@wizery.com> |
wlcore: improved Tx scheduling algorithm Prioritize EDCA by choosing the AC before anything else. Use the fast/slow link bitmap in FW to improve the scheduling algorithm for the multi-link scenario. Set packet thresholds to determine if a given link is high or low priority according to its speed. A slow link will be given high priority if the amount of packets queued for it in the FW is lower than the slow-threshold. Similarly, a fast link will be given high priority if the number of its packets queued in FW is smaller than the high-threshold. The improved algorithm: 1. Choose optimal AC according to FW utilization 2. Traversing the VIFs in a round-robin fashion, try to choose a high priority link. Links are traversed in a round-robin fashion inside a VIF. 3. If no high priority links are found, choose the first non-empty (low priority) link found in the round robin. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
3ea186d137f79da5e6af283e5803715da1eb6259 |
|
29-Nov-2012 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: make sure session id is always zero for AP The 12xx FW doesn't support non-zero session ids for AP-mode. Introduce an appropriate quirk to make sure the session id is always zero when needed. Signed-off-by: Arik Nemtsov <arik@wizery.com> 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>
|
c3552c06256cf7ac787ab8db0d3c8317be48bba1 |
|
27-Nov-2012 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx: remove deprecated FW version check We don't distinguish between STA and AP firmwares anymore, so the firmware version checking and quirks setting in wl12xx isn't needed anymore. Remove implementation of .identify_fw in wl12xx and deprecated definitions. Don't remove the op entirely from wlcore, because it may be needed for more fine-grained checking later. Signed-off-by: Luciano Coelho <coelho@ti.com>
|
986f3aa1666b4ef1e9e30672c73e19742b8abfd9 |
|
27-Nov-2012 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx: move wl12xx chip ID defines to the lower driver Move wl12xx-specific chip ID macros to the wl12xx driver and rename them to 127X and 128X for clarity since both the "1" (2.4GHz) and the "3" (2.4GHz and 5GHz) variants use the same chip ID. Signed-off-by: Luciano Coelho <coelho@ti.com>
|
7230341f254c9bce39e9576362f18b94854bc779 |
|
26-Nov-2012 |
Yair Shapira <yair.shapira@ti.com> |
wlcore/wl18xx/wl12xx: add recovery settings to conf add support for recovery settings including bug_on_recovery and no_recovery options. These options can now be set using wl18xx-conf.bin file and wlconf tool. Signed-off-by: Yair Shapira <yair.shapira@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
de40750f4b10aa236ae44a9a3f10f50998e1c345 |
|
26-Nov-2012 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl18xx/wl12xx: separate channel count between chips 18xx chips are capable of staying on 2 channels at the same time. Introduce a chip-family specific parameter to set the number of channels in the interface-combinations published by the driver. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
7c482c1040ae54e89a8fd4d6415577070d5a915d |
|
26-Nov-2012 |
Eliad Peller <eliad@wizery.com> |
wlcore: configure dwell times according to scan type Allow configuring different dwell times to the different scan types (regular and scheduled). Add new configuration entry (dwell_time_dfs) to conf_scan_settings, in order to allow setting different values for normal scan and scheduled scan. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> 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>
|
fcab189027cdd68df7f97474d1419aaa4a82130c |
|
22-Nov-2012 |
Eliad Peller <eliad@wizery.com> |
wlcore: update channel_switch/stop_channel_switch commands Some fields were added to the channel_switch and stop_channel_switch commands. Unfortunately, the new 18xx channel_switch struct is not backward compatible with the 12xx channel switch struct. Add a new channel_switch op to wlcore, and update the driver accordingly. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
0a1c720c63be74bbfe416fa085d0783348e4d69b |
|
22-Nov-2012 |
Eliad Peller <eliad@wizery.com> |
wl18xx: increase MAX_CHANNELS_5GHZ Some regdomains have more than 23 valid 5ghz channels, so 18xx's MAX_CHANNELS_5GHZ was increased to 32. Since now we have different max 5ghz channels values for wl12xx and wl18xx, add a new wl->max_channels_5ghz field, and use it for scan channels configuration. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
78e28062fea51c62280cd17fe6143ed583f83ba0 |
|
22-Nov-2012 |
Eliad Peller <eliad@wizery.com> |
wlcore: split 18xx and 12xx scan mechanism The scan APIs of 12xx and 18xx are totally different. Use some common functions as much as possible (e.g. for setting scan channels), but split scan.c into chip-specific scan.c files, each implementing its own scan mechanism. (in other words - move most of the current wlcore's scan.c into wl12xx, and implement a similar mechanism in 18xx, according to the new api) New wlcore ops are introduced in order to call the chip-specific scan functions. The template indices used for each scan (regular/scheduled) are also different between the chips, so set the correct indices used for each scan type after identifying the chip. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
18eab430700dc877bae38cf04f0b0574b4724f0a |
|
20-Nov-2012 |
Eliad Peller <eliad@wizery.com> |
wlcore: workaround start_sta problem in wl12xx fw for some reason, the wl12xx fw is not able to rx/tx on the first start_sta cmd. Workaround it by issuing a dummy start_sta + stop_sta before starting the sta for the final time. Signed-off-by: Eliad Peller <eliad@wizery.com> Reviewed-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
3992eb2bf2b1f6d244cf527c922c0cbd810e69c5 |
|
01-Sep-2012 |
Ido Yariv <ido@wizery.com> |
wlcore: Refactor probe Move most of the device-specific probe functionality into setup(), a new op. By doing this, wlcore_probe will be the first to request a firmware from userspace, making it easier to load the NVS file asynchronously. Signed-off-by: Ido Yariv <ido@wizery.com> Signed-off-by: Luciano Coelho <luca@coelho.fi>
|
a8311c8a9a7c41de9cc2d5e1573ff7005b4959ab |
|
15-Aug-2012 |
Ido Yariv <ido@wizery.com> |
wlcore: Fix unbalanced interrupts enablement The interrupt line is enabled by wl12xx_enable_interrupts and wl18xx_enable_interrupts, but it will not be disabled in all failure paths. Fix this. Signed-off-by: Ido Yariv <ido@wizery.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <luca@coelho.fi>
|
f4afbed9447c86e5d3cec5933ae74b902617987c |
|
02-Aug-2012 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl18xx/wl12xx: allow up to 3 mac addresses Allow 3 native mac addresses on 18xx. On 12xx allow 2 native mac addresses and set the LAA bit to create a third mac address. This enabled operation with a separate group interface. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <luca@coelho.fi>
|
26a309c7586140afd40628a7031993afbaae0f07 |
|
29-Jul-2012 |
Igal Chernobelsky <igalc@ti.com> |
wlcore/wl18xx/wl12xx: aggregation buffer size set Aggregation buffer size is set separately per 18xx/12xx chip family. For 18xx aggragation buffer is set to 13 pages to utilize all the available tx/rx descriptors for aggregation. [Arik - remove redundant parts from the patch] Signed-off-by: Igal Chernobelsky <igalc@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <luca@coelho.fi>
|
f1c434df6727ebb3068b67b06eae945a80f07ad3 |
|
31-Jul-2012 |
Igal Chernobelsky <igalc@ti.com> |
wl18xx/wl12xx: defines for Tx/Rx descriptors num Use defines for number of Tx/Rx descriptors. Signed-off-by: Igal Chernobelsky <igalc@ti.com> Signed-off-by: Luciano Coelho <luca@coelho.fi>
|
27b7ce7c7f364b7b075c8a6a07260c5cdd41b3bf |
|
26-Aug-2012 |
Wei Yongjun <yongjun_wei@trendmicro.com.cn> |
wl12xx: remove duplicated include from main.c Remove duplicated include. Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: Luciano Coelho <luca@coelho.fi>
|
ae35c30c144b90266c75c5a1838753ff0c9130d0 |
|
26-Sep-2012 |
Luciano Coelho <luca@coelho.fi> |
wl12xx: use module_platform_driver Use a module_platform_driver declaration instead of replicating the init and exit functions in the driver. Based on the patch for wl18xx by Devendra Naga. Signed-off-by: Luciano Coelho <luca@coelho.fi>
|
ff324317e6133ed4a88380eb675a93c76a9e0d5e |
|
11-Jul-2012 |
Yair Shapira <yair.shapira@ti.com> |
wlcore/wl12xx: calibrator fem detect implementation this completes the calibrator based fem detect logic in driver: driver starts (by calibrator) in plt_mode PLT_FEM_DETECT wlcore inits and starts plt on wl12xx wl12xx fetches fem number from firmware and stores it in wl->fem_manuf wl12xx immediatly returns (doesn't start radio, etc...) wlcore returns the fem_manuf to calibrator using WL1271_TM_ATTR_DATA plt_mode is stopped Signed-off-by: Yair Shapira <yair.shapira@ti.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
0fc1d2e9fe0820cc0c3247c5766c21b8de65a886 |
|
03-Jul-2012 |
Arik Nemtsov <arik@wizery.com> |
wl12xx/wl18xx: use a dynamic PS timeout of 1.5sec It seems some parties have bad user experience when smaller values are used. This should have little implications for power consumption, since traffic is bursty in nature. Signed-off-by: Arik Nemtsov <arik@wizery.com>
|
66ef60ad035cd5e05b050401ced921f7e0ce14c5 |
|
27-Jun-2012 |
Luciano Coelho <coelho@ti.com> |
wl12xx/wlcore: increase FW filename version We have some API changes and new features in the new firmwares that are not compatible with older drivers. Increase the version of the FW filenames for wl12xx to 5. Additionally, remove the duplicate definitions from wlcore_i.h and remove the MODULE_FIRMWARE macro calls from the SDIO and SPI modules, since they're irrelevant there. Signed-off-by: Luciano Coelho <coelho@ti.com>
|
3df74f46d88e39a032eb2cc3f2a571b66082acba |
|
27-Jun-2012 |
Yoni Divinsky <yoni.divinsky@ti.com> |
wlcore: add probe request templates for sched and one-shot scans The driver configures the firmware template for probe requests during the scan process. If the same template is used for one-shot and sched scans they will override each other when running scans simultaneously. This fix works only on firmwares later than X.3.9.2.112 for single role and X.3.9.2.23 for multi-role. [Some cleaning-up and renaming of the quirk to something smaller -- Luca.] Signed-off-by: Yoni Divinsky <yoni.divinsky@ti.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>
|
f1a26e638e646d971f77c5a5186ee254b3f4e818 |
|
19-Jun-2012 |
Ido Yariv <ido@wizery.com> |
wlcore: Force checking of io functions' return values All io functions' return values should be propagated and handled. Add a __must_check annotation to verify that the return values are checked and to avoid future mistakes. Signed-off-by: Ido Yariv <ido@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>
|
fa2adfcdbd88124e8b7cc46c6363b1343dabc09d |
|
13-Jun-2012 |
Arik Nemtsov <arik@wizery.com> |
wl18xx: sane defaults for HT capabilities Introduce a default set of HT capabilities that are set according to the number of antennas on the board. Move the HT setting code down to allow the number of antennas to be set (and optionally overridden) before it. Remove the "mimo" HT option, since the default mode now enables MIMO is possible. Use this opportunity to add a helper function for setting HT capabilities and reduce the volume of the code a bit. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
66340e5b259bd7ca67cf0ca079dd3997fa198d4b |
|
10-Jun-2012 |
Arik Nemtsov <arik@wizery.com> |
wlcore: allow setting sleep_auth before interface init Hold a value for sta_sleep_auth that is amenable to change by debugfs. When detecting a legal value in this variable on interface init, use it as an override value for sleep_auth. This makes debugging more intuitive using the debugfs value. Increment the conf version since we added an element to the conf structure. Note: An AP going up will always set sleep_auth to PSM_CAM. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
648f6ed9f7f0e4d56d65266734e748a02f8e2df7 |
|
07-Jun-2012 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl18xx/wl12xx: use u8 instead of bool for host_fast_wakeup_support The conf structure is going to be exported to a file, so we should use only well defined types. bool is not well defined and may vary from platform to platform, so change the host_fast_wakeup_support type to u8 instead. Signed-off-by: Luciano Coelho <coelho@ti.com>
|
e16de2c4fc674f5558fd87f57c6a8e5156b22c21 |
|
01-Jun-2012 |
Grant Erickson <marathon96@gmail.com> |
wl12xx: Add support for an external 26 MHz crystal source Add support for an external 26 MHz crystal source. [Changed wl->ref_clock to priv->ref_clock -- Luca.] Signed-off-by: Grant Erickson <marathon96@gmail.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
9fccc82e19db0d63741cd6c3d2a8829fc8854406 |
|
13-May-2012 |
Ido Reis <idor@ti.com> |
wl18xx: pad only last frame in aggregration buffer for PG2 In PG2 only the last frame in the aggregate buffer should be aligned to the sdio block size. This frame's header msb should be set to 0, while in all the previous frames in the aggregation buffer, this bit should be set to 1. [Add a HW op for setting the frame ctrl bit only for 18xx. Other minor cleanups - Arik] [Make the pre_pkt_send operation optional -- Luca] Signed-off-by: Ido Reis <idor@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
f5755fe96cb010031a50458e6d1391377d94c275 |
|
23-Apr-2012 |
Ido Reis <idor@ti.com> |
wl18xx: PG2.0 HW Watch dog interrupt support In PG2, the HW watchdog interrupt occupies bit0 of the event vector, and the SW watchdog is relocated to bit9. We perform the relocation globally, as there's only one watchdog bit on previous platforms (bit0). [Only mask in the new bit9 for platforms supporting it. This avoids spurious events on other platforms - Arik] Signed-off-by: Orit Brayer <orit@ti.com> Signed-off-by: Ido Reis <idor@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
186b5a7c938b13b9f6ee2532a13596556c224df0 |
|
15-May-2012 |
Eliad Peller <eliad@wizery.com> |
wl12xx/wl18xx: add erp protection IE to the beacon filter We have to reconfigure the fw when erp protection should be enabled/disabled. Pass beacons containing changes in the ERP protection IE, so we could analyze them. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
a1c597f2b22cdc228de3c58784b00e80b9b53e03 |
|
18-May-2012 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx/wl18xx: implement op_set_key per HW arch The 12xx set_key just calls the common wlcore_set_key function, in order to program the keys into the FW. The 18xx variant changes the spare block count when a GEM or TKIP key is set. Also modify the get_spare_blocks HW op for 18xx to return the correct numbers of spare blocks, according to what is currently set in FW. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
32bb2c03f990d015c0fec67e9134ea8625aaf784 |
|
18-May-2012 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx/wl18xx: handle spare blocks spacial cases per arch Add a HW op for getting spare blocks. 12xx cards require 2 spare blocks for GEM encrypted SKBs, regardless of VIFs or keys programmed into the FW. 18xx cards require 2 spare blocks when there are any connected TKIP or GEM VIFs. For now always return 2 spare blocks, as this works with all networks. The special case TKIP/GEM functionality is added at a later patch. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
2c0133a437905591cdaa39cf65a3f7188d20a094 |
|
18-May-2012 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx/wl18xx: introduce quirk to remove TKIP header space 18xx chips do not require extra space in the TKIP header. Introduce a new HW quirk to allow us to make this feature arch-specific. 12xx chip will now have this quirk. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
836d3f2058ca42eda96dcf187cd72a0ea2a5bf6c |
|
10-May-2012 |
Victor Goldenshtein <victorg@ti.com> |
wl12xx: fix fm_coex parameters configuration Wrong fm_coex parameters were set during wl12xx init phase, fix it. Signed-off-by: Ziv Riesel <zivriesel@ti.com> Signed-off-by: Victor Goldenshtein <victorg@ti.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
4a6c789b731a095da745d513f9ea0b5531acc9c7 |
|
08-May-2012 |
Yoni Divinsky <yoni.divinsky@ti.com> |
wl12xx: set the irq polarity before loading the fw The polarity should be set before the firmware is loaded since the firmware touches the same register. Access of the firmware and driver to the same register will cause a collision since there is no exclusion scheme. Signed-off-by: Yoni Divinsky <yoni.divinsky@ti.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
bfb92ca1332ce0073cfba5d8a7caee214ed3a787 |
|
15-May-2012 |
Eliad Peller <eliad@wizery.com> |
wlcore: set wl->ht_cap per-band Save the ht_cap IE per-band, so we can configure different params to BG and A bands (we currently don't support MIMO on A band) [Small fix for rx_highest - Arik] Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
7b052214e59450b5ed6c708903a7dd9f15f6c12d |
|
15-May-2012 |
Igal Chernobelsky <igalc@ti.com> |
wlcore: modify bss loss parameters Modify default parameters to reduce firmware BSS lose probability in congested environment. [Applied to 18xx configuration as well - Arik] Signed-off-by: Igal Chernobelsky <igalc@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
6e066921b3970232d5faadcdf33a92f43ec84334 |
|
15-May-2012 |
Arik Nemtsov <arik@wizery.com> |
wlcore: fix dynamic_ps_timeout time regression In patch d7b63b9fc7ee73e75a4c7fdb899 we have raised the dynamic PS timeout to 200ms to improve user experience. Re-apply the change, since it was reverted in the wlcore split. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
b5d6d9b28ca1fac178e05f185ee38e9c0770e268 |
|
04-Jun-2012 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx/wl18xx: don't use TX align quirk for wl127x Commit 4afc37 (wlcore: reorder identify_chip and get_hw_info) broke support for wl127x chips. When we moved the identify_chip operation to an earlier stage (ie. to the probe function), we broke wl127x support because during HW init we would set the WLCORE_QUIRK_TX_BLOCKSIZE_ALIGN. To avoid this, set this quirk in the identify_chip operations and only force it to be unset if the bus module doesn't support it. We were doing the opposite and setting the flag if the bus module supports it. Signed-off-by: Luciano Coelho <coelho@ti.com>
|
ad62d81a9e5262555de0501329bd635f5886124f |
|
09-May-2012 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx/wl18xx: move lower driver debugfs to a subdir Instead of adding more files from the lower drivers into the same directory in debugfs as wlcore, we now add a subdirectory for the lower driver. This makes things a bit easier, because we can quickly see where the debugfs entry is implemented and what is specific to the lower driver. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
|
10b1e8a27a45559df7d02c864081e929369d83bf |
|
09-May-2012 |
Luciano Coelho <coelho@ti.com> |
wl12xx: implement fw status debugfs entries Implement the operations that are necessary to fetch the wl12xx-specific FW statistics. Re-add some of the code removed from wlcore. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
|
0afd04e5e5d8db505fbb0f98c6306242c0006503 |
|
09-May-2012 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx/18xx: split fw_status struct into two The number of RX packet descriptors may vary from chip to chip and in different firmware versions. Unfortunately, the array that contains the actual descriptors is in the middle of the fw_status structure. To manage this, we split the struct into two so we can calculate the offset of what comes after the array and access the last elements more easily. [Changed the STATUS_LEN macro to be placement agnostic - Arik] Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
|
c331b344d5def33194427b24cb2190ff345f7f55 |
|
09-May-2012 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx: add plt_init op and move the code to wl12xx PLT mode needs to be initialized differently for each chip. This patch adds an operation to init PLT and moves the existing PLT initialization into the wl12xx driver. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
|
4b4887e9710158dca6efd3646ba87f1da03ebe8b |
|
09-May-2012 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx: move rx_mem_pool_addr element to wl12xx Only wl127x chips use the rx_mem_pool_addr values, which need to be given to the firmware as part of the RX path. Move this from core to the wl12xx driver. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
|
a5d751bb9298360f5547d30734aed4a54a8af3e4 |
|
09-May-2012 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx: move ref_clock and tcxo_clock elements to wl12xx Only wl12xx needs to get the ref_clock anc tcxo_clock values from the platform data. Move these elements from the wl1271 structure to wl12xx's private data. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
|
ebc7e57ddd01ffa4c996dde7095746259693755d |
|
09-May-2012 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl18xx: enable MIMO/wide-chan rates in AP-mode rate config Add a HW op to add extra enabled rates for AP-mode data-rates. Since the rates might depend on channel properties, reconfigure AP-mode rates when these change. Implement the HW op for the 18xx family, where MIMO or wide-chan rates can be added. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
169da04f523bafee46993b1efbddb913641aad56 |
|
09-May-2012 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl18xx: add hw op for Rx HW checksum Some chip families can checksum certain classes of Rx packets in FW. Implement the Rx-checksum feature as a HW-op. For the 18xx chip-family, set Rx-checsum according to indication from FW. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
2fc28de5989e1c40fee4e92e2a8f3bdd47b1b34a |
|
09-May-2012 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl18xx: add hw op for setting Tx HW checksum Some chip families are capable of checksumming certain classes of Tx packets in HW. Indicate this fact in the netdev features and perform the HW checksum by protocol type for the 18xx family. Fix the location of the skb network header when we move it so we can rely on it when setting the checksum. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
6bac40a63aae9d0942496c9f350dbb7a6c88e3fa |
|
11-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: adapt FW status for multiple families Add room for a private data struct at the end of the common FW status. Add a convenience "counters" struct inside the FW status. The wl12xx family does not currently use the FW status private data. Signed-off-by: Arik Nemtsov <arik@wizery.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>
|
4a589a6f38cbde9500f8b5c350b0a03ca2b3fef0 |
|
13-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: set HT capabilities per chip-family Set HT capabilities in the low-level HW driver. These are then used by wlcore when registering with mac80211. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
fa7930afa525e7f481f9d6984a301f69c2255ee4 |
|
13-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: add hw op to get rate-mask for AP-link in STA mode In some chip-families, there are operating modes where we must mask-out certain Tx rates, and/or tweak the rate-mask with special HW-specific bits. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
5453dc105a1f0b3204d61eda9af75faba6ae4df4 |
|
05-Dec-2011 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx: use a single memory config and reset if using wl127x Instead of having two memory configuration sets, one for wl127x and one for wl128x, we can use only one which should be correctly set by the lower driver. The wl12xx driver now uses the wl128x memory config by default but changes it when if it identifies the wl127x chips. Signed-off-by: Luciano Coelho <coelho@ti.com>
|
166b213626067c3128e196a558a0cb318344b411 |
|
05-Dec-2011 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx: move extended radio configuration parameters to wl12xx The extended radio configuration parameters are only used by the wl127x chipsets, which are handled by the wl12xx driver. Move the rf configuration settings from wlcore to wl12xx. Signed-off-by: Luciano Coelho <coelho@ti.com>
|
e87288f089d3ba1c10d2323c286f8145450fd250 |
|
05-Dec-2011 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx: move runtime configuration struct to the lower driver The configuration parameters vary with different chip families. Some of the parameters used only by some chip families, others should have different value depending on the family. Thus move the configuration values from wlcore to wl12xx. Signed-off-by: Luciano Coelho <coelho@ti.com>
|
5d10b1957d4dd7b5f854a224fb30cc564405d4d9 |
|
12-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: expand functionality of cmd_trigger HW op Change the cmd_trigger op to include the write of the command buffer. Also, instead of letting the lower driver access the cmd_box_addr element directly, we now pass the address in the trigger_cmd operation, so it doesn't have to be exported. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
8a9affc08d676a9fe627361ab6767cdec0740af3 |
|
12-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: add hw op for vif init Add an op for family-specific vif initialization. Currently unused, but will be needed when wl18xx support is implemented. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
9d68d1eea7fb4d05b5bd037da6a66329d640b2f1 |
|
01-Dec-2011 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx: add hw_init operation Move all the wl12xx-specific hw initialization procedures into a new hw_init op. Move some commands and ACX functions to wl12xx. Signed-off-by: Luciano Coelho <coelho@ti.com>
|
f83985bb5f8f0f25d44ab7b108a709a52aa1c5e0 |
|
12-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: turn no-Tx-align quirk into Tx-align Inverting the quirk flag to indicate Tx-alignment. This aligns it with the similar Rx-side quirk. The call to wl1271_set_block_size() decides whether SDIO block size alignment can be used or not. In case we're using SPI, we can't use the block size alignment, so the function returns false. So we set the quirk when wl1271_set_block_size() returns true and let the wl12xx lower driver unset the bit for wl127x (since it doesn't support this quirk). Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
53d67a50cd17aca120dff20eb2a93e1665361688 |
|
12-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: split Tx completion to immediate/delayed One chip family employs immediate Tx completion, where knowledge of completed packets is given as part of the FW status. Another is only notified of Tx completion via the FW status, and has to read the completion status of the packets from a different location. Implement the wl12xx tx completion as a delayed Tx completion. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
4158149c24e6f933809bc6fe03dbc3fb218b935b |
|
11-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: add hw op for getting rx packet data length There is a difference in the way chip families report the length of data in a single Rx packet. Abstract this into a HW op. Refactor the Rx data handling function to allocate the correct size for the data, and avoid trimming the skb. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
b14684a00439b7b154e63be9446fba19281b8bbc |
|
11-Dec-2011 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx: add prepare_read hw op for Rx data The only difference in the read_data operations is that some chips need to prepare the data to be read before reading. So instead of having a mandatory read_data operation, we now have an option prepare_data operation that only needs to be implemented for chips that require it. In the wl12xx lower driver, we only set the prepare_data operation for wl127x chips. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
cd70f6a48b3fbb841a127361ee4ac0752f9d29a2 |
|
11-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: add hw op for getting rx buffer data alignment An aligned data buffer is such where the Ethernet portion of the packet starts on a 4-byte boundary. Some chip families support padding the Rx data buffer to achieve such alignment, others rely on the host to perform it. Implement the HW op for getting alignment state in wl12xx. Add support for HW-padded alignment in the Rx flow. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
43a8bc5a53c78b69b99824c9f38c333cea024c8a |
|
07-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: add global elements to convert hw-rates to standard rates Rates reported by HW can be different between chip families. Make the rate-to-idx translation tables private per family and use them in a common translation function. Add a global element to help determine which rates are HW HT-rates. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
6f266e912c0733e77f63e9ad245db3c966b75942 |
|
12-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: add hw op for setting frame length in tx_hw_desc Each chip family indicates the length of a frame to the HW differently. This includes different padding, alignment and other fields in the HW Tx descriptor. Put all wl12xx specific code in a hw op. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
4a3b97eea216135cd37e6d3a4a6c551c201a6615 |
|
12-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: add hw op for setting blocks in hw_tx_desc Each chip family has a slightly different Tx descriptor. Set the descriptor values according to family. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
b3b4b4b812018a06221b6d7b88a5540fccae2940 |
|
12-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: add hw op for calculating hw block count per packet Each chip family has a different block size and calculates the total number of HW blocks differently, with respect to alignment. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
3edab305dfd48415074a36f1cdd605dcae8463de |
|
07-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: change GEM Tx-spare blocks per-vif The number of spare Tx blocks must be changed when the GEM cipher is engaged. Track set_key() operations to see if this is the case and change the Tx HW spare block count accordingly. Set the number of spare blocks for each operating mode from the low level driver. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
72b0624fa5b766133fd0be9099724324b1f0d70e |
|
07-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: set the number of Tx descriptors per chip family Each chip family can have a different amount of Tx descriptors. These are set on init. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
|
96e0c6837bb2db2f00d00f5295d0e9467e24a99f |
|
07-Dec-2011 |
Arik Nemtsov <arik@wizery.com> |
wlcore/wl12xx: create per-chip-family private storage This storage is allocated in wlcore_alloc_hw and freed in free_hw. The size of the storage is determined by the low-level driver. Signed-off-by: Arik Nemtsov <arik@wizery.com> 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>
|
f16ff75872b04fa6c779367ae24146c8a1729f2e |
|
11-Apr-2012 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx: add command trigger and event ack operations Different chips may use different bits in the interrupt trigger register. Add operations to handle these differences. Signed-off-by: Luciano Coelho <coelho@ti.com>
|
30d9b4a58bc168620eed0fc6d90b2f05cd02a462 |
|
11-Apr-2012 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx: move MAC address reading operation to lower driver Different chip families have the factory MAC address written in different places. Add a new hardware operation to read the MAC address, if available. 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>
|
4ded91ced98c3d35c0d36e9ac5e69589f7aad04a |
|
11-Apr-2012 |
Luciano Coelho <coelho@ti.com> |
wlcore/wl12xx: move get_pg_ver to the lower driver The PG version depends on the actual hardware. This commit moves the code used to read the PG version to the lower driver, by adding the get_pg_ver hardware operation. 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>
|
c31be25a7144ebc9b7a22128909bac7654d4c46b |
|
21-Nov-2011 |
Luciano Coelho <coelho@ti.com> |
wl12xx/wlcore: move wl1271 struct to wlcore and add ops In order to add chip-specific operations and prepare for future elements that need to be set by the lower driver, move the wl1271 structure to the wlcore.h file and add an empty placeholder for the operations structure. Signed-off-by: Luciano Coelho <coelho@ti.com>
|
ffeb501c6cba803eefc46b570feccffe61a6d883 |
|
21-Nov-2011 |
Luciano Coelho <coelho@ti.com> |
wl12xx/wlcore: initial split of probe We need to set some parameters (eg. partition and register tables) during probe of the lower driver, so split the probe function, leaving most of it in wlcore, but moving the hw struct allocation to the lower driver. Signed-off-by: Luciano Coelho <coelho@ti.com>
|
b2ba99ff327f43684993c47a0f34bfa48f2ac210 |
|
20-Nov-2011 |
Luciano Coelho <coelho@ti.com> |
wl12xx/wlcore: spin out the wl12xx probe from wlcore to a new wl12xx Create a new small wl12xx module that only contains the probe functions and depends entirely on wlcore otherwise. 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>
|
90921014608d91a03766d0025fa32662dc7c5062 |
|
20-Nov-2011 |
Luciano Coelho <coelho@ti.com> |
wireless/wl12xx/wl1251: move TI WLAN modules to a common ti subdirectory Move wl12xx and wl1251 modules into a new drivers/net/wireless/ti directory. Add a TI WLAN Kconfig option and Makefile to support this change. Signed-off-by: Luciano Coelho <coelho@ti.com> Cc: John W. Linville <linville@tuxdriver.com>
|