summaryrefslogtreecommitdiffstats
path: root/drivers
AgeCommit message (Collapse)AuthorFilesLines
2014-06-30atmodem: add vendor QuectelPhilip Paeps1-1/+2
2014-06-30hfpmodem: Fix crash with more than two callsSergio Checa Blanco1-1/+1
A periodic CLCC polling is started when there is an ongoing multiparty call and a new call appears in the system. A simple way to reproduce the crashing scenario is: 1. Place a call. 2. Place a second call. 3. Create a multiparty call with both calls. 4. Place a third call (incoming or outgoing does not matter). 5. Disconnect HFP from the modem. Within the function ciev_callheld_notify, the AT+CLCC command is also invoked, thus a new cyclic CLCC polling is started, and it overwrites the timer resource identifier stored in voicecall_data.clcc_source. This means that there are several timers doing the CLCC polling, but only one of those is under control, i.e. it can be removed through its source identifier, hence a timer source leak. This has a fatal consequence when the HFP modem is disconnected. The function hfp_voicecall_remove stops the timer that is under control before freeing the voicecall_data struct. However there are other timers that are still active and will execute its handler poll_clcc afterwards. Inside poll_clcc the driver_data is accessed, which is already NULL. A solution for this is to avoid starting a CLCC polling if there is already one active, i.e. clcc_source is not 0. By doing this the uncontrolled timers will not cycle forever.
2014-06-21atmodem: set the PPP authentication method to usePhilip Paeps1-0/+14
2014-06-21hfpmodem: Split AT+VTS command into multiple +VTSSergio Checa Blanco1-3/+8
According to the standard "3GPP 27.007 v6.8.0" Appendix C.2.11, when sending multiple DTMF characters, these must go in individual +VTS commands for each tone. This adopts the AT modem approach. Before: AT+VTS=1234\r After: AT+VTS=1;+VTS=2;+VTS=3;+VTS=4\r
2014-05-30hfp: Fix case where RING never arrivesDenis Kenzior1-1/+28
2014-04-10handsfree: Rename driver functionDenis Kenzior1-3/+3
To be more consistent with others in the same file
2014-04-10handsfree: Simplify logicDenis Kenzior1-18/+12
2014-04-10hfp: Add CNUM query to handsfree interface for subscriber numberAndrew Earl1-0/+88
2014-03-19hfp: Use enum from hfp.hDenis Kenzior3-23/+16
2014-03-19hfp: Fixup variable namesDenis Kenzior1-3/+3
2014-03-19hfp: Add CHLD features to drver dataKrzysztof Wilk1-0/+3
2013-12-21git: Fixup messed up permissionsDenis Kenzior3-0/+0
2013-12-18siri: Add atom driverKrzysztof Wilk3-0/+219
2013-12-05hfp: Add Voice Recognition flag to BRSFAndrew Earl1-0/+1
2013-11-26netreg: Turn off CIEV indications other than rssiDenis Kenzior1-0/+11
2013-09-12hfpmodem: Call ofono_voicecall_mpty_hint as neededDenis Kenzior1-2/+7
2013-09-12atmodem: Update parse_clcc utility functionDenis Kenzior3-4/+11
2013-08-25hfp: Set UDUB affected set to WAITING onlyDenis Kenzior1-2/+1
INCOMING calls are not affected by UDUB, only by +CHUP.
2013-08-25hfp: Fix up disconnect reason handling for +CHUPDenis Kenzior1-1/+6
The affected call types for +CHUP were set to only ACTIVE calls. Instead the affected set should include INCOMING, DIALING, ALERTING and ACTIVE calls. Thanks to Ionut Dediu for the diagnosing and reporting this issue.
2013-07-22atmodem: Fix whitespace violationDenis Kenzior1-1/+1
2013-07-22SIMCOM: add a quirk to fix crsm requestAnthony Viallard1-0/+1
2013-07-22SIMCOM: add a quirk for signal strength reportingAnthony Viallard1-1/+8
We must tell we want the signal strength reporting using AT+AUTOCSQ command (ref. "SIM5215_SIM5216_ATC_V1.18.pdf - §10.7").
2013-07-22SIMCOM: add a quirk for AT+CNMI command buildingAnthony Viallard1-0/+1
Use mode=1 otherwise it fails (ref. "SIM5215_SIM5216_ATC_V1.18.pdf - §6.9")
2013-07-18atmodem: Add gprs-context quirk for SIM900Jesper Larsen1-1/+5
The SIM900 module from SIMCOM does have a AT+CGDATA command. However, it is not possible to make a ppp connection when CGDATA has been used to bring up the gprs context. This patch adds a quirk that uses the alternative ATD*99***<cid># command instead.
2013-07-18atmodem: Add vendor entry for SIM900 moduleJesper Larsen1-0/+1
2013-06-26hfpmodem: Fix ECNR HF featureFrederic Danis1-1/+2
2013-04-23hfpmodem: Add EchoCancelingNoiseReductionClaudio Takahasi1-0/+17
This patch adds echo canceling and noise reduction implementation to hfpmodem. It adds the implementation to send the command "AT+NREC=0" to the AG.
2013-04-18hfp: Move HFP versions definitions to hfp.hPaulo Borges1-6/+0
hfp.h should store all HFP related definitions.
2013-04-09hfpmodem: Send AT+BAC with the supported codecsVinicius Costa Gomes1-1/+11
Before, the AT+BAC command was being sent with fixed information, now we send the command (that inform the AG of the codecs supported by the HF) with the codecs supported by the registered Handsfree Audio Agent.
2013-04-09drivers: Include hfp.hDenis Kenzior2-0/+2
2013-04-01sim: Add SIMCOM SIM card ready quirkAnthony Viallard1-0/+7
SIM is busy right after pin is entered. Use the quirk which add a CPIN? pooling check until having "CPIN: READY" answer.
2013-02-21hfpmodem: Fix segfault in CIEV GAtChat callbackClaudio Takahasi1-3/+3
This patch fixes segmentation fault when the network registration watch is called without being initialized. CIEV GAtChat callback can be called before ofono_netreg_register(). ==15101== Invalid read of size 8 ==15101== at 0x492B56: ofono_netreg_register (network.c:2073) ==15101== by 0x47245E: hfp_netreg_probe (network-registration.c:311) ==15101== by 0x492A8D: ofono_netreg_create (network.c:1881) ==15101== by 0x4849D5: hfp_pre_sim (hfp_hf_bluez5.c:288) ==15101== by 0x48C486: ofono_modem_set_powered (modem.c:1194) ==15101== by 0x484E9D: slc_established (hfp_hf_bluez5.c:85) ==15101== by 0x4702AD: chld_cb (slc.c:147) ==15101== by 0x440457: at_chat_finish_command (gatchat.c:461) ==15101== by 0x44109F: new_bytes (gatchat.c:532) ==15101== by 0x4433B7: received_data (gatio.c:122) ==15101== by 0x3CBAA47824: g_main_context_dispatch (gmain.c:2539) ==15101== by 0x3CBAA47B57: g_main_context_iterate.isra.23 (gmain.c:3146) ==15101== Address 0x18 is not stack'd, malloc'd or (recently) free'd
2013-01-21netreg: Fix broken CMER behavior on MBMDenis Kenzior1-1/+14
2013-01-21hfpmodem: Add comment for previous commitDenis Kenzior1-0/+5
2013-01-21hfpmodem: Fix release-and-swap without +CIEVMikel Astiz1-1/+45
Some phones do not send the corresponding call state update (+CIEV) after a successful release-and-swap operation (AT+CHLD=1). This has been observed with a Nokia 500, while testing ReleaseAndSwap() while an active and a held call exist: ofonod[20414]: > AT+CLCC\r ofonod[20414]: < \r\n+CLCC: 1,0,1,0,0,"<number1>",145\r\n ofonod[20414]: < \r\n+CLCC: 2,0,0,0,0,"<number2>",145\r\n ofonod[20414]: < \r\nOK\r\n ofonod[20414]: > AT+CHLD=1\r ofonod[20414]: < \r\nOK\r\n After this, no +CIEV is received, but the call has been hung up. The proposed approach to solve this consists of using AT+CLCC, unless a call release has been received within a specific time period. The result fixes the problem as can be seen below: ofonod[20847]: < \r\n+CLCC: 1,0,1,0,0,"<number1>",145\r\n ofonod[20847]: < \r\n+CLCC: 2,0,0,0,0,"<number2>",145\r\n ofonod[20847]: < \r\nOK\r\n ofonod[20847]: > AT+CHLD=1\r ofonod[20847]: < \r\nOK\r\n ofonod[20847]: > AT+CLCC\r ofonod[20847]: < \r\n+CLCC: 1,0,0,0,0,"<number1>",145\r\n ofonod[20847]: < \r\nOK\r\n ofonod[20847]: < \r\n+CIEV: 5,2\r\n ofonod[20847]: < \r\n+CIEV: 5,0\r\n
2013-01-21hfpmodem: Avoid transitional voicecall statesMikel Astiz1-2/+12
While processing the result of AT+CLCC, process the differences in a way that disconnections are reported first, then call state changes and finally new calls. The goal is to avoid unnecessary transitional states such as two active calls existing at the same time.
2013-01-21hfpmodem: Refactor voicecall notify with foreachMikel Astiz1-3/+9
Define a helper function in order to use foreach statements when ofono_voicecall_notify() needs to be called.
2013-01-17hfpmodem: Add support for sending the supported codecsVinicius Costa Gomes1-0/+29
Right now, only the mandatory CVSD codec is supported. The mSBC mandatory codec is "temporarily" not supported. The spec alows this, HFP 1.6 Spec Section 4.34.1 page 92: "If wide band speech is supported then the mandatory codec (mSBC) shall be included unless it is temporarily unavailable."
2013-01-17hfpmodem: Add version defines for HFP 1.6Vinicius Costa Gomes1-1/+2
2013-01-15sim: Fix whitespace violationDenis Kenzior1-1/+2
2012-12-17sim: return from cpin when sim ready for telitChristopher Vogl1-1/+1
Especially for Telit HE910 it is not enough to wait for entering a PIN code. If we do not wait for #QSS: 3, subsequent commands, like +CMER will report SIM BUSY and the network registration atom will be removed as a consequence.
2012-12-17atutil: Remove unused macroDaniel Wagner1-5/+0
With commit 6ee21a3fc18460cc12dbddb3b7ec70e941fa4bbc the usage DECLARE_FAILURE was removed.
2012-12-17hfp: use ofono_handsfree_battchg_notifyDenis Kenzior1-0/+31
2012-12-04atmodem: remove pending idle callbacks at removalMingli Wu6-0/+6
If device probe and removal happen in short succession, it's possible that the idle handler registered in the probe function doesn't run before the device is removed. In this case, the idle handler needs to be unregistered so that it does not run and try to access the data that's destroyed during the removal.
2012-12-04atmodem: Re-work the CBS driverDenis Kenzior1-26/+6
We might have mis-interpreted how 27.007 intends for CBS to work. After studying the implementation notes of the IMC 6260 modem, the spec intent made a little bit more sense.
2012-12-04qmi: Include persistent device configuration serviceMarcel Holtmann2-0/+3
2012-12-01qmi: Print service number if name is not knownMarcel Holtmann1-2/+6
2012-11-28ifx: Fix the case of modem-originated callDenis Kenzior1-12/+13
During STK Set Up Call, we have modem-originated calls that do not go through the core 'Dial' method. Make sure the calls are still detected in this case.
2012-11-28atmodem: For IFX XSIMSTATE 7 should never occurDenis Kenzior1-1/+0
in the case of a PIN entry, XSIMSTATE of 7 (Ready to Attach) should never occur
2012-11-27qmimodem: Fix reporting of PIN or PUK statesMarcel Holtmann1-2/+2