aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/libertas/cmd.c
AgeCommit message (Collapse)AuthorFilesLines
2008-01-28libertas: convert DATA_RATE to a direct commandDan Williams1-20/+73
Signed-off-by: Dan Williams <[email protected]> Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: convert CMD_MESH_ACCESS to a direct commandDavid Woodhouse1-17/+11
Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: fix debug output in lbs_cmd_copyback() function.David Woodhouse1-3/+3
Bad dcbw. Always test on big-endian, or at least use sparse. Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: rename and re-type bufvirtualaddr to cmdbufDan Williams1-76/+57
Make it a struct cmd_header, since that's what it is, and clean up the places that it's used. Signed-off-by: Dan Williams <[email protected]> Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: convert GET_HW_SPEC to a direct commandDan Williams1-9/+67
Signed-off-by: Dan Williams <[email protected]> Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: add simple copyback command callbackDan Williams1-1/+28
A simple callback which copies the response back into the command buffer that was used to send the command to the card. Will allow for direct command processing outside the mega-switches in cmd.c and cmdresp.c. Signed-off-by: Dan Williams <[email protected]> Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: clean up direct command handlingDan Williams1-10/+12
Move direct command handling through __lbs_cmd() over to using the header as the first member of the command structure, and only define the __lbs_cmd() callback in one place rather than 3. Convert boot2 version command to new usage. Signed-off-by: Dan Williams <[email protected]> Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: clean up is_command_allowed_in_ps()Dan Williams1-15/+9
Total overkill to have an array when there's only one command in it. Signed-off-by: Dan Williams <[email protected]> Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: make lbs_cmd() usage nicerDan Williams1-4/+4
Define a macro that relieves the caller from having to use sizeof on the command structure when calling lbs_cmd(), and move the prototype of __lbs_cmd() to a new cmd.h file. Signed-off-by: Dan Williams <[email protected]> Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: add opaque extra argument to cmd callback functionDavid Woodhouse1-1/+5
This will be useful for letting callbacks do stuff like copying the response into a buffer provided by the caller of lbs_cmd() Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: kill struct lbs_adapterDavid Woodhouse1-149/+129
There seems to be no reason for a separate structure; move it all into struct lbs_private. Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: switch lbs_cmd() to take a callback function pointerDavid Woodhouse1-26/+4
All existing code which sends commands is set up to have some function called with the results, not to get data back. It's more versatile this way, and providing it with a callback function which involves memcpy() is hardly difficult. Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: kill adapter->nr_cmd_pendingDavid Woodhouse1-4/+2
Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: endianness fixesHolger Schurig1-14/+14
Recently I found that that sparse by default doesn't endianness checks. So I changed my compilation habit to be make modules C=1 SUBDIRS=drivers/net/wireless/libertas CHECKFLAGS="-D__CHECK_ENDIAN__" so that I get the little-endian checks from sparse as well. That showed up a good bunch of problems. Signed-off-by: Holger Schurig <[email protected]> Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: Switch to using a callback function pointer for commandsDavid Woodhouse1-6/+25
Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: Remove SET_BOOT2_VER support from the Big Switch Statement.David Woodhouse1-15/+0
And the death of libertas_prepare_and_send_command() starts... Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: don't cast a pointer to pointer ofLi Zefan1-11/+11
Don't cast struct foo * to struct list_head *, it's safe only when the list member is the first member of struct foo. Also don't cast struct list_head * to struct foo *. Signed-off-by: Li Zefan <[email protected]> Signed-off-by: Holger Schurig <[email protected]> Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: Byteswap cmdptr->size in lbs_cmd()David Woodhouse1-1/+1
Bad Holger. Always test on big-endian machines, if it's little-endian you need to be swapping to/from. Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: Zero 'pdata_size' field in cmd_ctrl_node reliably.David Woodhouse1-0/+2
Otherwise, lbs_process_rx_command() will take the new path for lbs_cmd() responses, when it shouldn't. Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: handy function to call firmware commandsHolger Schurig1-0/+96
Using an arbitrary firmware command was actually very painful. One had to change big switch() statements in cmd.c, cmdresp.c, add structs to the big union in "struct cmd_ds_command" and add the define for the CMD_802_11_xxx to the proper place. With this function, this is now much easier. For now, it implements a blocking (a.k.a. CMD_OPTION_WAITFORRSP) way where one deals directly with command requests and response buffers. You can do everything in one place: Signed-off-by: Holger Schurig <[email protected]> Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: make more functions staticHolger Schurig1-2/+7
These functions were used in the old debugfs code for events, but as this code is now gone, there's no need to export those functions. Signed-off-by: Holger Schurig <[email protected]> Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: remove cmd_ctrl_node->statusHolger Schurig1-1/+0
There was no code that ever did set this variable. Signed-off-by: Holger Schurig <[email protected]> Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: Remove cmd_oid from struct cmd_ctrl_nodeDavid Woodhouse1-6/+3
This is only needed for SNMP and key operations; it doesn't need to be preserved outside that context. Signed-off-by: David Woodhouse <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: rework event subscriptionHolger Schurig1-0/+50
This patch moves re-works the implementation of event subscription via debugfs. For this: * it tells cmd.c and cmdresp.c about CMD_802_11_SUBSCRIBE_EVENT * removes lots of low-level cmd stuff from debugfs.c * create unified functions to read/write snr, rssi, bcnmiss and failcount * introduces #define's for subscription event bitmask values * add a function to search for a specific element in an IE (a.k.a. TLV) * add a function to find out the size of the TLV. This is needed because lbs_prepare_and_send_command() has an argument for a data buffer, but not for it's lengths and TLVs can be, by definition, vary in size. * fix a bug where it was not possible to disable an event Signed-off-by: Holger Schurig <[email protected]> Acked-by: Dan Williams <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: remove arbitrary typedefsHolger Schurig1-70/+74
New typedefs are usually frowned upon. This patch changes libertas_adapter -> struct libertas_adapter libertas_priv -> struct libertas_priv While passing, make everything checkpatch.pl-clean that gets touches. Signed-off-by: Holger Schurig <[email protected]> Acked-by: Dan Williams <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: configurable beacon intervalBrajesh Dave1-0/+25
Requires firmware version 5.110.19.p0 or newer, available here: http://dev.laptop.org/pub/firmware/libertas/ Signed-off-by: Ashish Shukla <[email protected]> Signed-off-by: Javier Cardona <[email protected]> Signed-off-by: Dan Williams <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: separate mesh connectivity from that of the main interfaceBrajesh Dave1-1/+2
The transmit and receive traffic as soon as the mesh interface is brought up. Test case 1: Bring up only the mesh interface and ping. No need for any iwconfig commands on the main interface. $ ifconfig msh0 192.168.5.3 $ iwconfig msh0 channel X $ ping 192.168.5.2 If ping succeeds, PASS Test case 2: Associate with the main interface, and turn off AP. Mesh interface should not lose connectivity. $ iwconfig eth0 mode managed essid "my_ssid" $ ifconfig msh0 192.168.5.3 $ ping 192.168.5.2 <turn off access point> If ping continues uninterrupted, PASS This feature requires firmware version 5.110.19.p0 or newer, available here: http://dev.laptop.org/pub/firmware/libertas/ Signed-off-by: Ashish Shukla <[email protected]> Signed-off-by: Javier Cardona <[email protected]> Signed-off-by: Dan Williams <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2008-01-28libertas: move to uniform lbs_/LBS_ namespaceHolger Schurig1-137/+137
This patch unifies the namespace of variables, functions defines and structures. It does: - rename libertas_XXX to lbs_XXX - rename LIBERTAS_XXX to lbs_XXX - rename wlan_XXX to lbs_XXX - rename WLAN_XXX to LBS_XXX (but only those that were defined in libertas-local *.h files, e.g. not defines from net/ieee80211.h) While passing, I fixed some checkpatch.pl errors too. Signed-off-by: Holger Schurig <[email protected]> Acked-by: Dan Williams <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-11-10libertas: properly account for queue commandsMarcelo Tosatti1-3/+7
Properly account for queue commands, this fixes a problem reported by Holger Schurig when using the debugfs interface. Signed-off-by: Marcelo Tosatti <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: fix u8 constantHolger Schurig1-2/+2
Don't write constants that are (per documentation and struct) u8 as 0x0001, use 0x01 instead. Also remove an useless cast. Signed-off-by: Holger Schurig <[email protected]> Acked-By: Dan Williams <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: properly end commands on hardware failurePierre Ossman1-0/+2
Make sure that errors reported by the hardware layer is properly handled. Otherwise commands tend to get stuck in limbo. Signed-off-by: Pierre Ossman <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: pass boot2 version to firmwareLuis Carlos Cobo1-0/+15
Boot2 version used to be hardcoded in the uploaded firmware, this patch preserves the boot2 version before uploading firmware and sends it to the firmware again on resume. Signed-off-by: Luis Carlos Cobo <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] drivers/net/wireless/libertas/cmd.c: fix adapter->driver_lock ↵Eugene Teo1-9/+1
dereference adapter is NULL if cmdnode is not. Signed-off-by: Eugene Teo <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: fix assignment of WEP key typeDan Williams1-4/+2
keytype is a u8 Signed-off-by: Dan Williams <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: monitor mode support for OLPC firmwareLuis Carlos Cobo1-0/+25
Driver support for the monitor mode support that will be available in the next OLPC 'bleeding edge' Marvell firmware release (most likely, 5.110.16.p2). To activate monitor mode, echo mode > /sys/class/net/{ethX,mshX}/device/libertas_rtap where mode is the hex mask that specifies which frames to sniff (in short, 0x1 for data, 0x2 for all management but beacons, 0x4 for beacons). Any non zero mode will activate the monitor mode, inhibiting transmission in ethX and mshX interfaces and routing all the incoming traffic to a new rtapX interface that will output the packets in 802.11+radiotap headers format. Signed-off-by: Luis Carlos Cobo <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: remove adapter->multipledtimHolger Schurig1-1/+1
multipledtim was initialized with MRVDRV_DEFAULT_MULTIPLE_DTIM and then kept at that value, so we could use that define directly. Signed-off-by: Holger Schurig <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: remove adapter->locallistenintervalHolger Schurig1-5/+1
locallisteninterval was initialized with 0, but there is no code that changes it, rendering it rather useless. Signed-off-by: Holger Schurig <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: remove adapter->nullpktintervalHolger Schurig1-2/+1
No code ever initialized this variable, so it was 0 because of kzalloc(). But no other code changes it, making it rather useless. Signed-off-by: Holger Schurig <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: remove adapter->{data,bcn}_avg_factorHolger Schurig1-1/+1
Those two variables were initialized with some default values, but there is no code that would ever change them. So we could use as well the defaults directly. Signed-off-by: Holger Schurig <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: remove adapter->txrateHolger Schurig1-7/+0
The value of txrate was only set by a CMD_802_11_TX_RATE_QUERY command, but there was no code in the driver that ever issued this command. Signed-off-by: Holger Schurig <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: remove adapter->{rx,tx}antennaHolger Schurig1-25/+0
There was nowhere any code that used the values of those variables. This patch also removes two static functions that are now unused. Signed-off-by: Holger Schurig <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: use LBS_DEB_HOST for host-to-card communicationsHolger Schurig1-123/+136
... and LBS_DEB_CMD for command execution. Also tidies misc comments to give a consistent output. Signed-off-by: Holger Schurig <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: make the hex dumper nicerHolger Schurig1-6/+6
Currently, when you define LBS_DEB_HEX, you get every hex dump in the whole driver, e.g. for LBS_DEB_CMD, LBS_DEB_RX, LBS_DEB_TX etc. This patch makes sure that you only get the hexdump that you're interested in. Renamed lbs_dbg_hex() into lbs_deb_hex(), like the other lbs_deb_XXX() macros. Made lbs_deb_hex() issue a line feed (and a new prompt) after 16 bytes. As lbs_deb_hex() now prints the ":" after the prompt by itself, removed the misc colons in the various *.c files. lbs_deb_XXX() now print the debug category as well. As lbs_deb_XXX() --- and especially lbs_deb_11d() --- now print the category, I removed various "11D:" prefixes in 11d.c as well. Signed-off-by: Holger Schurig <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: make more functions static & remove unused functionsHolger Schurig1-1/+1
Some functions where declared in header files, but used only once. They are now static functions. After doing this, I found out that some functions weren't used at all. I removed this dead code. Signed-off-by: Holger Schurig <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: simplify and clean up data rate handlingDan Williams1-5/+2
Remove unused/duplicated fields and consolidate static data rate arrays, for example the libertas_supported_rates[] and datarates[] arrays in the bss_descriptor structure, and the libertas_supported_rates field in the wlan_adapter structure. Introduce libertas_fw_index_to_data_rate and libertas_data_rate_to_fw_index functions and use them everywhere firmware requires a rate index rather than a rate array. The firmware requires the 4 basic rates to have the MSB set, but most other stuff doesn't, like WEXT and mesh ioctls. Therefore, only set the MSB on basic rates when pushing rate arrays to firmware instead of doing a ton of (rate & 0x7f) everywhere. Signed-off-by: Dan Williams <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: fix more mixed-case abuseDan Williams1-3/+3
Mistakently introduced by a previous patch to upper-case all command constants. Signed-off-by: Dan Williams <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: remove thread.h and make kthread usage clearerDan Williams1-2/+2
Remove the thread.h abstractions and opencode kthread stuff to make it clearer. Signed-off-by: Dan Williams <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: re-uppercase command defines and other constantsDan Williams1-161/+161
For readability. Signed-off-by: Dan Williams <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-10-10[PATCH] libertas: rename WLAN_802_11_KEY to enc_key and clean up usageDan Williams1-4/+3
It doesn't touch hardware and therefore doesn't need endian notations either. Signed-off-by: Dan Williams <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2007-07-10[PATCH] libertas: fix disabling WPADan Williams1-1/+1
Found by Guillaume LECERF <[email protected]> Signed-off-by: Dan Williams <[email protected]> Signed-off-by: John W. Linville <[email protected]>