summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/libertas
Commit message (Collapse)AuthorAgeFilesLines
* libertas: Remove unused exportsRoland Dreier2008-02-283-20/+0
| | | | | | | | | | | | | | | | | The libertas driver exports a number of symbols with no in-tree users; remove these unused exports. lbs_reset_device() is completely unused, with no callers at all, so remove the function completely. A couple of these unused exported symbols are static, which causes the following build error on ia64 with gcc 4.2.3: drivers/net/wireless/libertas/main.c:1375: error: __ksymtab_lbs_remove_mesh causes a section type conflict drivers/net/wireless/libertas/main.c:1354: error: __ksymtab_lbs_add_mesh causes a section type conflict Signed-off-by: Roland Dreier <rolandd@cisco.com> Acked-by: Holger Schurig <hs4233@mail.mn-solutions.de> Acked-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* Spelling fixes: lenght->lengthPaulius Zaleckas2008-02-031-1/+1
| | | | | Signed-off-by: Paulius Zaleckas <pauliusz@yahoo.com> Signed-off-by: Adrian Bunk <bunk@kernel.org>
* libertas: fix interrupt while removing driverHolger Schurig2008-01-311-3/+3
| | | | | | | | | Previously I've got an interrupt while removing the driver. Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de> Acked-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* libertas: fix memory alignment problems on the blackfinIhar Hrachyshka2008-01-312-3/+5
| | | | | | | | | | | Fixing unaligned memory access on the blackfin architecture (maybe on the ARM also). Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@promwad.com> Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de> Acked-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* libertas: pepper main with debug statementHolger Schurig2008-01-281-62/+82
| | | | | | | | | | | libertas: re-pepper debug statementThe recent fluff of updates didn't put proper lbs_deb_enter/leave calls into the source code. Add them where appropriate. Also contains some whitespace changes. Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: don't blindly try meshHolger Schurig2008-01-281-23/+27
| | | | | | | | | | The CF card only has a very old firmware (5.0.16p0). This firmware doesn't know anything about mesh config. However, current code blindly calls mesh_config when the card is inserted. So check the firmware version before issuing this command. Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: always show firmware releaseHolger Schurig2008-01-284-20/+25
| | | | | | | | | Always shows the firmware release. Also converts the firmware release into something that is easily comparable. Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: move cardspecific data to driverHolger Schurig2008-01-283-3/+4
| | | | | | | boot2_version is purely USB specific, so move it to struct if_usb_card. Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas cs/sdio: fix 'NOHZ: local_softirq_pending 08' messageHolger Schurig2008-01-281-1/+4
| | | | | | | | | netif_rx should be called only from interrupt context. if_cs and if_sdio receive packets from other contexts, and thus should call netif_rx_ni. Signed-off-by: Marc Pignat <marc.pignat@hevs.ch> Acked-by: Holger Schurig <hs4233@mail.mn-solutions.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: remove check for driver_lock in lbs_interrupt()David Woodhouse2008-01-281-5/+0
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: convert SUBSCRIBE_EVENT to a direct commandDavid Woodhouse2008-01-284-226/+135
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: change inference about buffer size in lbs_cmd()David Woodhouse2008-01-281-6/+8
| | | | | | | | | | | | sizeof(*cmd) is going to give the total size of the data structure that we allocated, more often than not. But the size of the command to be _sent_ could be a lot smaller, as it is in the KEY_MATERIAL and SUBSCRIBE_EVENT commands for example. So swap them round; let the caller set the _command_ size explicitly in the header, and infer the maximum response size from the data structure. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: convert ENABLE_RSN to a direct commandDavid Woodhouse2008-01-285-54/+23
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: convert SET_WEP to a direct commandDavid Woodhouse2008-01-285-59/+34
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: convert SLEEP_PARAMS to a direct commandDavid Woodhouse2008-01-286-98/+74
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: convert INACTIVITY_TIMEOUT to a direct commandDavid Woodhouse2008-01-284-26/+21
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: convert RADIO_CONTROL to a direct commandDavid Woodhouse2008-01-283-52/+29
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: submit RSSI command on tx timeout, to check whether module is deadDavid Woodhouse2008-01-281-0/+7
| | | | | | | | | | | We don't necessarily want to reset the device on a TX timeout. But more often than not, the real cause is that the firmware has crapped itself, not just that the network is busy. So submit any harmless command, and if _that_ times out, then the error handling code will reset the module, as appropriate. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: make lbs_submit_command always 'succeed' and set command timerDavid Woodhouse2008-01-281-22/+20
| | | | | | | | | Even if it fails, we want to wait a while and try again, with an ultimate timeout if it the condition persists. So again, just use the standard command timeout behaviour. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: discard DEFER responses to commands; let the timeout triggerDavid Woodhouse2008-01-281-0/+10
| | | | | | | | | When the firmware returns 0x0004, it wants us to try again later. We can achieve that simply by throwing out the response and letting the command timeout code kick in. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: use priv->upld_buf for command responsesDavid Woodhouse2008-01-284-30/+4
| | | | | | | | If we don't scribble over the command we sent, then we can retry it when the firmware responds with 0x0004 (which means -EAGAIN). Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: reduce explicit references to priv->cur_cmd->cmdbufDavid Woodhouse2008-01-281-4/+4
| | | | | | | | | | | We have a local variable 'resp' which we use for this. So use it, instead of typing the whole thing. In preparation for actually using priv->upld_buf for the responses instead... Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: Check for PS mode support on USB devicesDavid Woodhouse2008-01-281-6/+22
| | | | | | | | Move the various firmware setup bits into a separate function, which used to do just boot2 version. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: allow for PS mode to be disabled when firmware doesn't support itDavid Woodhouse2008-01-283-0/+13
| | | | | | | | | | Otherwise, we go into an endless busy loop trying to enable PS mode when the command queue is empty, dealing with the error response, and then trying to enable PS mode again because the command queue is empty.... it doesn't really save much power. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: handle HOST_AWAKE event by sending WAKEUP_CONFIRM commandDavid Woodhouse2008-01-283-1/+31
| | | | | | | | lbs_send_confirmwake() is a bit ugly but matches the way we confirm sleep. We'll deal with that whole thing later. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: don't clear priv->dnld_sent after sending sleep confirmDavid Woodhouse2008-01-281-1/+0
| | | | | | | | | | | | DNLD_RES_RECEIVED is a bit of a misnomer -- we never wait for the result to be received; it's purely representing the state of the TX path, and in this case the TX path is definitely busy. Of course, that means that we don't actually care about DATA_SENT vs. CMD_SENT either, but that's a can of worms for another day... Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: fix buffer handling of PS_MODE commands and responsesDavid Woodhouse2008-01-282-3/+3
| | | | | | | | | | | | | | Commit 5b8845345e7385d2eb37fac22ba9ab6905988be5 (or, in case the git workflow is broken and patches get recommitted, the commit entitled 'libertas: rename and re-type bufvirtualaddr to cmdbuf' by dcbw), introduced a number of bugs where we once had a pointer to a command _payload_, but now we use the pointer to the command header instead. The fix isn't wonderfully pretty for now, but it'll get better when we finish converting all commands so the structures include the header. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: add SLEEP_PERIOD and FW_WAKE_METHOD command definitionsDavid Woodhouse2008-01-282-0/+16
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: fix return from lbs_update_channel()David Woodhouse2008-01-281-6/+10
| | | | | | | | | If we return the channel number in a 'ret' variable where anything non-zero is later interpreted as an error, that isn't nice. It breaks WPA, for a start. OLPC trac #5485 Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: kill 'addtail' argument to lbs_queue_cmd() and make it staticDavid Woodhouse2008-01-282-13/+5
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: handle command timeout in main thread instead of directly in timerDavid Woodhouse2008-01-283-22/+38
| | | | | | | | And handle the case where it times out more than once, too, instead of locking up for ever. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: ensure response buffer size is always set for lbs_cmd_with_responseDavid Woodhouse2008-01-283-1/+8
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: add __lbs_cmd_async() for asynchronous command submissionDavid Woodhouse2008-01-282-30/+36
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: store command result in cmdnode instead of priv->cur_cmd_retcodeDavid Woodhouse2008-01-283-6/+8
| | | | | | | ... at least for users of __lbs_cmd(). Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: kill pdata_buf member of struct cmd_ctrl_nodeDavid Woodhouse2008-01-283-17/+14
| | | | | | | We can use the callback_arg for it; that's the way we're heading anyway... Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: let __lbs_cmd() free its own cmdnodeDavid Woodhouse2008-01-281-1/+3
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: kill cleanup_cmdnode()David Woodhouse2008-01-281-22/+17
| | | | | | | | | | | Move the wakeup into lbs_complete_command(), and leave the other bits in __lbs_cleanup_and_insert_cmd() which was the only caller now anyway. There are two remaining direct callers of lbs_cleanup_and_insert_cmd(), and they are both fine without the wakeup. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: don't re-initialise cmdnode when taking it off the free queueDavid Woodhouse2008-01-281-3/+0
| | | | | | | We initialise it when we add it to the queue. No need to do it again. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: introduce and use lbs_complete_command() for command completionDavid Woodhouse2008-01-283-17/+23
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: remove some pointless checks for cmdnode buffer being presentDavid Woodhouse2008-01-281-12/+4
| | | | | | | | | We allocate them all at the same time, at startup. If they go missing, we have more serious things to worry about, and the resulting oops will be a perfectly acceptable result. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: don't use __lbs_cmd() with empty callback in if_usb.cDavid Woodhouse2008-01-281-1/+1
| | | | | | | | | | We're about to change semantics, leaving callers of lbs_prepare_and_send_command() with the old broken priv->cur_cmd_retcode crap. The existence of the callback command will be the trigger for the new semantics when handling the response. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: rename and clean up DownloadcommandToStationDavid Woodhouse2008-01-281-27/+9
| | | | | | | | Call it lbs_submit_command(), remove a bunch of things which can be (or, in the case of zeroing ->cmdwaitqwoken, already are) done elsewhere. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: kill unused wait_option field in struct cmd_ctrl_nodeDavid Woodhouse2008-01-282-10/+4
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: kill whitespace at end of linesDavid Woodhouse2008-01-287-16/+16
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: clean up if_usb driverDavid Woodhouse2008-01-282-298/+225
| | | | | | | It was just getting on my tits, really. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: stop attempting to reset devices on unloadDavid Woodhouse2008-01-281-5/+0
| | | | | | | | | It wasn't working anyway -- by the time we get into if_usb_disconnect() the USB core has already stopped us talking to the thing; even if it's just on unload and the device still exists. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: don't exit worker thread until kthread_stop() is calledDavid Woodhouse2008-01-281-4/+9
| | | | | | | | | The kthread code can't cope with a thread exiting of its own accord and then someone calling kthread_stop() for it. When the thread detects that it needs to die, make it wait for kthread_stop() to be called. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: use spin_is_locked() instead of spin_trylock() in lbs_interrupt()David Woodhouse2008-01-281-2/+1
| | | | | | | | We get scary warnings on UP if we use spin_trylock() and find, as we hoped, that the lock in question is already locked. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: pass channel argument directly to lbs_mesh_config()David Woodhouse2008-01-285-16/+16
| | | | | | | | There is weirdness here; the firmware seems to refuse to change channels at will. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* libertas: cope with both old and new mesh TLV valuesDavid Woodhouse2008-01-283-6/+34
| | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>