Re: [PATCHv2 1/2] android/handsfree: Fix not sending proper call hold status

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Mariusz,

On Friday 20 of February 2015 15:22:51 Mariusz Skamra wrote:
> This patch fixes not sending callheld=1 +CIEV to HF in Lollipop after
> active/held calls swapping.
> 
> On KitKat phone_state_change calls during active/held swapping looks as follows:
> state=4  active=1  held=0   <= we have another connection
> state=6  active=1  held=1   <= swapped connections
> 
> On Lollipop there is additional bogus state:
> state=4  active=1  held=0
> state=4  active=0  held=1   <= hold current call
> state=6  active=1  held=1
> so the "if (num_held > dev->num_held)" condition is no longer applicable.
> 
> Fixed TC: TC_AG_ECS_BV_03_I, TC_AG_TWC_BV_03_I, TC_AG_TWC_BV_04_I
> ---
>  android/handsfree.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/android/handsfree.c b/android/handsfree.c
> index b7aa1dd..89dceb9 100644
> --- a/android/handsfree.c
> +++ b/android/handsfree.c
> @@ -2304,6 +2304,9 @@ static void phone_state_incoming(struct hf_device *dev, int num_active,
>  	if (dev->setup_state == HAL_HANDSFREE_CALL_STATE_INCOMING) {
>  		if (dev->num_active != num_active ||
>  						dev->num_held != num_held) {
> +			if (dev->num_active == num_held &&
> +						dev->num_held == num_active)
> +				return;
>  			/*
>  			 * calls changed while waiting call ie. due to
>  			 * termination of active call
> @@ -2380,7 +2383,7 @@ static void phone_state_idle(struct hf_device *dev, int num_active,
>  				connect_audio(dev);
>  		}
>  
> -		if (num_held > dev->num_held)
> +		if (num_held >= dev->num_held && num_held != 0)
>  			update_indicator(dev, IND_CALLHELD, 1);
>  
>  		update_indicator(dev, IND_CALLSETUP, 0);
> 

Patch applied, thanks.
(I've modified commit message a bit since it is not about call swapping
but accepting waiting call and placing active call on hold)

-- 
Best regards, 
Szymon Janc
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux