aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/caif
Commit message (Collapse)AuthorAgeFilesLines
* caif: HSI: Redesing of CAIF HSI glue layer API.Dmitry Tarnyagin2011-11-041-0/+1
| | | | | | | | | | | | | | cfhsi_rx_cancel API entry is created to explicitly cancel pending RX requests (previously was done in cfhsi_down). It is required to correctly handle driver removal when modem is dead. cfhsi_up / cfhsi_down are not more called on every wakeup, but only once at init / deinit. Change-Id: I8170652d3d4c1ffa399e89c77aaecb0f9274da15 Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> Signed-off-by: Erwan Bracq <erwan.bracq@stericsson.com>
* CAIF: HSI: Another method of flushing FIFO.Dmitry Tarnyagin2011-11-041-0/+2
| | | | | | | | | | SW reset was used previously for FIFO flushing in glue layer. It caused problems when CA_DATA, CA_FLAG physical lines were not at the 0 level. SW reset is replaced in this commit by reading of the FIFO at the common layer. Change-Id: Iddc275948e344f1aac161066eb560537bb1f8d4f Signed-off-by: Erwan Bracq <erwan.bracq@stericsson.com> Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>
* CAIF: HSI: Fixing a kernel panic at driver removal.Dmitry Tarnyagin2011-11-041-0/+1
| | | | | | | | | | | | | | add_timer was called when timer was already started. Same issue on TX errors. Usage of add_timer is completly replaced by mod_timer(). A flag for shutdown is introduced. No timers nor work items are scheduled when driver is shutting down. Wakelock is always released on exit now. Change-Id: Iad689d9fe322d40cfea09789c4cccc5134ee06f9 Signed-off-by: Erwan Bracq <erwan.bracq@stericsson.com> Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>
* caif: HSI physical bearer supportErwan Bracq2011-11-041-0/+146
| | | | | | | | CAIF over HSI link support. The HSI power management support is also included. Change-Id: I50012b4f9668682154bd997fb9aabf864816eb47 Signed-off-by: Erwan Bracq <erwan.bracq@stericsson.com>
* caif: USB extended headroomErwan Bracq2011-11-041-0/+11
| | | | | | | USB support needs extended space for CAIF header. Change-Id: I36c2e8019f4329a5dc95da04b2ea50090b82ce60 Signed-off-by: Erwan Bracq <erwan.bracq@stericsson.com>
* caif: SPI module unload fixErwan Bracq2011-11-041-2/+3
| | | | | | | | The caif SPI physical bearer module crash on unload due to bad uninitialization. Change-Id: I9c393014dcce35b1e53f003099c783c2334385cb Signed-off-by: Erwan Bracq <erwan.bracq@stericsson.com>
* caif: Update documentation of CAIF transmit and receive functions.sjur.brandeland@stericsson.com2011-05-221-15/+21
| | | | | | | | | | Trivial patch updating documentation in header files only. Error handling of CAIF transmit errors was changed by commit: caif: Don't resend if dev_queue_xmit fails. This patch updates the documentation accordingly. Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: remove unesesarry exportssjur.brandeland@stericsson.com2011-05-151-1/+0
| | | | | Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: Handle dev_queue_xmit errors.sjur.brandeland@stericsson.com2011-05-151-1/+2
| | | | | | | | | Do proper handling of dev_queue_xmit errors in order to avoid double free of skb and leaks in error conditions. In cfctrl pending requests are removed when CAIF Link layer goes down. Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: prepare support for namespacessjur.brandeland@stericsson.com2011-05-152-81/+14
| | | | | | | | | Use struct net to reference CAIF configuration object instead of static variables. Refactor functions caif_connect_client, caif_disconnect_client and squach files cfcnfg.c and caif_config_utils. Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: Protected in-flight packets using dev or sock refcont.sjur.brandeland@stericsson.com2011-05-151-0/+29
| | | | | | | | | | CAIF Socket Layer and ip-interface registers reference counters in CAIF service layer. The functions sock_hold, sock_put and dev_hold, dev_put are used by CAIF Stack to protect from freeing memory while packets are in-flight. Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: Move refcount from service layer to sock and dev.sjur.brandeland@stericsson.com2011-05-151-13/+16
| | | | | | | | Instead of having reference counts in caif service layers, we hook into existing refcount handling in socket layer and netdevice. Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: Add ref-count to framing layersjur.brandeland@stericsson.com2011-05-151-1/+4
| | | | | | | | | Introduce Per-cpu reference for lower part of CAIF Stack. Before freeing payload is disabled, synchronize_rcu() is called, and then ref-count verified to be zero. Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: Use RCU instead of spin-lock in caif_dev.csjur.brandeland@stericsson.com2011-05-151-0/+10
| | | | | | | | | | | | | | | RCU read_lock and refcount is used to protect in-flight packets. Use RCU and counters to manage freeing lower part of the CAIF stack if CAIF-link layer is removed. Old solution based on delaying removal of device is removed. When CAIF link layer goes down the use of CAIF link layer is disabled (by calling caif_set_phy_state()), but removal and freeing of the lower part of the CAIF stack is done when Link layer is unregistered. Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: Use rcu_read_lock in CAIF mux layer.sjur.brandeland@stericsson.com2011-05-151-0/+2
| | | | | | | | | Replace spin_lock with rcu_read_lock when accessing lists to layers and cache. While packets are in flight rcu_read_lock should not be held, instead ref-counters are used in combination with RCU. Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: code cleanupStephen Hemminger2011-04-115-112/+7
| | | | | | | | | | | | | | | | Cleanup of new CAIF code. * make local functions static * remove code that is never used * expand get_caif_conf() since wrapper is no longer needed * make args to comparison functions const * rename connect_req_to_link_param to keep exported names consistent Compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Fix common misspellingsLucas De Marchi2011-03-311-1/+1
| | | | | | Fixes generated by 'codespell' and manually reviewed. Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
* include/net/caif/cfctrl.h: Remove unnecessary semicolonsJoe Perches2010-11-151-1/+1
| | | | | | Signed-off-by: Joe Perches <joe@perches.com> Acked-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: SPI-driver bugfix - incorrect padding.Sjur Brændeland2010-11-031-0/+2
| | | | | Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: Bugfix for socket priority, bindtodev and dbg channel.André Carvalho de Matos2010-11-032-6/+6
| | | | | | | | | | | | | | | | | | | Changes: o Bugfix: SO_PRIORITY for SOL_SOCKET could not be handled in caif's setsockopt, using the struct sock attribute priority instead. o Bugfix: SO_BINDTODEVICE for SOL_SOCKET could not be handled in caif's setsockopt, using the struct sock attribute ifindex instead. o Wrong assert statement for RFM layer segmentation. o CAIF Debug channels was not working over SPI, caif_payload_info containing padding info must be initialized. o Check on pointer before dereferencing when unregister dev in caif_dev.c Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif-u5500: Adding shared memory includeAmarnath Revanna2010-10-271-0/+26
| | | | | Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif-driver: Add CAIF-SPI Protocol driver.Sjur Braendeland2010-06-291-0/+153
| | | | | | | | | | | | | | This patch introduces the CAIF SPI Protocol Driver for CAIF Link Layer. This driver implements a platform driver to accommodate for a platform specific SPI device. A general platform driver is not possible as there are no SPI Slave side Kernel API defined. A sample CAIF SPI Platform device can be found in .../Documentation/networking/caif/spi_porting.txt Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: Use link layer MTU instead of fixed MTUSjur Braendeland2010-06-203-12/+18
| | | | | | | | | Previously CAIF supported maximum transfer size of ~4050. The transfer size is now calculated dynamically based on the link layers mtu size. Signed-off-by: Sjur Braendeland@stericsson.com Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: Bugfix - RFM must support segmentation.Sjur Braendeland2010-06-201-2/+7
| | | | | | | | CAIF Remote File Manager may send or receive more than 4050 bytes. Due to this The CAIF RFM service have to support segmentation. Signed-off-by: Sjur Braendeland@stericsson.com Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: Bugfix not all services uses flow-ctrl.Sjur Braendeland2010-06-201-2/+4
| | | | | | | | | Flow control is not used by all CAIF services. The usage of flow control is now part of the gerneal initialization function for CAIF Services. Signed-off-by: Sjur Braendeland@stericsson.com Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: Bugfix - use standard Linux listsSjur Braendeland2010-05-231-2/+2
| | | | | | | | Discovered bug when running high number of parallel connect requests. Replace buggy home brewed list with linux/list.h. Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: Disconnect without waiting for responseSjur Braendeland2010-04-281-3/+4
| | | | | | | | | | | | | | | | | | | Changes: o Function cfcnfg_disconn_adapt_layer is changed to do asynchronous disconnect, not waiting for any response from the modem. Due to this the function cfcnfg_linkdestroy_rsp does nothing anymore. o Because disconnect may take down a connection before a connect response is received the function cfcnfg_linkup_rsp is checking if the client is still waiting for the response, if not a disconnect request is sent to the modem. o cfctrl is no longer keeping track of pending disconnect requests. o Added function cfctrl_cancel_req, which is used for deleting a pending connect request if disconnect is done before connect response is received. o Removed unused function cfctrl_insert_req2 o Added better handling of connect reject from modem. Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: Add reference counting to service layerSjur Braendeland2010-04-283-0/+40
| | | | | | | | | | Changes: o Added functions cfsrvl_get and cfsrvl_put. o Added support release_client to use by socket and net device. o Increase reference counting for in-flight packets from cfmuxl Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* caif: Rename functions in cfcnfg and caif_devSjur Braendeland2010-04-282-7/+9
| | | | | | | | | | | | Changes: o Renamed cfcnfg_del_adapt_layer to cfcnfg_disconn_adapt_layer o Fixed typo cfcfg to cfcnfg o Renamed linkid to channel_id o Updated documentation in caif_dev.h o Minor formatting changes Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net-caif: add CAIF Link layer device header filesSjur Braendeland2010-03-302-0/+145
| | | | | | | | Header files for CAIF Link layer net-device, and link-layer registration. Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net-caif: add CAIF core protocol stack header filesSjur Braendeland2010-03-308-0/+912
Add include files for the CAIF Core protocol stack. caif_layer.h - Defines the structure of the CAIF protocol layers cfcnfg.h - CAIF Configuration Module for services and link layers cfctrl.h - CAIF Control Protocol Layer cffrml.h - CAIF Framing Layer cfmuxl.h - CAIF Muxing Layer cfpkt.h - CAIF Packet layer (skb helper functions) cfserl.h - CAIF Serial Layer cfsrvl.h - CAIF Service Layer Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>