All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 3/4] Fix: Avoid release dialing call when call is 0
@ 2009-11-16 14:12 Zhenhua Zhang
  2009-11-16 14:18 ` Zhenhua Zhang
  2009-11-16 17:49 ` Denis Kenzior
  0 siblings, 2 replies; 3+ messages in thread
From: Zhenhua Zhang @ 2009-11-16 14:12 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1618 bytes --]

If +CIEV call goes to 0, we may have another dialing call. We
should not release this dialing call when call=0.
---
 drivers/hfpmodem/voicecall.c |   23 +++++++++++++++++++++--
 1 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/drivers/hfpmodem/voicecall.c b/drivers/hfpmodem/voicecall.c
index d9c3c2a..53d4fd1 100644
--- a/drivers/hfpmodem/voicecall.c
+++ b/drivers/hfpmodem/voicecall.c
@@ -590,10 +590,11 @@ static void ciev_call_notify(struct
ofono_voicecall *vc,
 	{
 		GSList *waiting;
 		GSList *incoming;
+		GSList *dialing;
 
 		/* If call goes to 0, then we have no held or active calls
 		 * in the system.  The waiting calls are promoted to incoming
-		 * calls
+		 * calls and dialing call is kept.
 		 */
 		waiting = g_slist_find_custom(vd->calls,
 					GINT_TO_POINTER(CALL_STATUS_WAITING),
@@ -612,8 +613,26 @@ static void ciev_call_notify(struct ofono_voicecall
*vc,
 		if (incoming)
 			vd->calls = g_slist_remove_link(vd->calls, incoming);
 
+		/* The dialing call should be kept dialing */
+		dialing = g_slist_find_custom(vd->calls,
+					GINT_TO_POINTER(CALL_STATUS_DIALING),
+					at_util_call_compare_by_status);
+
+		if (!dialing)
+			dialing = g_slist_find_custom(vd->calls,
+						GINT_TO_POINTER(
+							CALL_STATUS_ALERTING),
+						at_util_call_compare_by_status);
+
+		if (dialing)
+			vd->calls = g_slist_remove_link(vd->calls, dialing);
+
 		release_all_calls(vc);
-		vd->calls = incoming;
+
+		if (incoming)
+			vd->calls = incoming;
+		else if (dialing)
+			vd->calls = dialing;
 
 		break;
 	}
-- 
1.6.2.5




^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-11-16 17:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-16 14:12 [PATCH 3/4] Fix: Avoid release dialing call when call is 0 Zhenhua Zhang
2009-11-16 14:18 ` Zhenhua Zhang
2009-11-16 17:49 ` Denis Kenzior

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.