@@ -378,9 +378,7 @@ static int hfp_ag_send_data(struct bt_hfp_ag *ag, bt_hfp_ag_tx_cb_t cb, void *us
378
378
379
379
LOG_DBG ("AG %p sending data cb %p user_data %p" , ag , cb , user_data );
380
380
381
- hfp_ag_lock (ag );
382
381
state = ag -> state ;
383
- hfp_ag_unlock (ag );
384
382
if ((state == BT_HFP_DISCONNECTED ) || (state == BT_HFP_DISCONNECTING )) {
385
383
LOG_ERR ("AG %p is not connected" , ag );
386
384
err = - ENOTCONN ;
@@ -1382,16 +1380,12 @@ static void bt_hfp_ag_call_ringing_cb(struct bt_hfp_ag_call *call, bool in_bond)
1382
1380
static void hfp_ag_sco_connected (struct bt_sco_chan * chan )
1383
1381
{
1384
1382
struct bt_hfp_ag * ag = CONTAINER_OF (chan , struct bt_hfp_ag , sco_chan );
1385
- bt_hfp_call_state_t call_state ;
1386
1383
struct bt_hfp_ag_call * call ;
1387
1384
1388
1385
call = get_call_clear_flag (ag , BT_HFP_AG_CALL_OPEN_SCO );
1389
1386
1390
1387
if (call ) {
1391
- hfp_ag_lock (ag );
1392
- call_state = call -> call_state ;
1393
- hfp_ag_unlock (ag );
1394
- if ((call_state == BT_HFP_CALL_INCOMING ) ||
1388
+ if ((call -> call_state == BT_HFP_CALL_INCOMING ) ||
1395
1389
atomic_test_and_clear_bit (call -> flags , BT_HFP_AG_CALL_ALERTING )) {
1396
1390
bt_hfp_ag_set_call_state (call , BT_HFP_CALL_ALERTING );
1397
1391
bt_hfp_ag_call_ringing_cb (call , true);
@@ -1419,9 +1413,7 @@ static void hfp_ag_sco_disconnected(struct bt_sco_chan *chan, uint8_t reason)
1419
1413
return ;
1420
1414
}
1421
1415
1422
- hfp_ag_lock (ag );
1423
1416
call_state = call -> call_state ;
1424
- hfp_ag_unlock (ag );
1425
1417
if ((call_state == BT_HFP_CALL_INCOMING ) || (call_state == BT_HFP_CALL_OUTGOING )) {
1426
1418
bt_hfp_ag_call_reject (ag , call );
1427
1419
}
@@ -1457,7 +1449,6 @@ static struct bt_conn *bt_hfp_ag_create_sco(struct bt_hfp_ag *ag)
1457
1449
static int hfp_ag_open_sco (struct bt_hfp_ag * ag , struct bt_hfp_ag_call * call )
1458
1450
{
1459
1451
bool create_sco ;
1460
- bt_hfp_call_state_t call_state ;
1461
1452
1462
1453
if (atomic_test_bit (ag -> flags , BT_HFP_AG_CREATING_SCO )) {
1463
1454
LOG_WRN ("SCO connection is creating!" );
@@ -1490,11 +1481,7 @@ static int hfp_ag_open_sco(struct bt_hfp_ag *ag, struct bt_hfp_ag_call *call)
1490
1481
LOG_DBG ("SCO connection created (%p)" , sco_conn );
1491
1482
} else {
1492
1483
if (call ) {
1493
- hfp_ag_lock (ag );
1494
- call_state = call -> call_state ;
1495
- hfp_ag_unlock (ag );
1496
-
1497
- if ((call_state == BT_HFP_CALL_INCOMING ) ||
1484
+ if ((call -> call_state == BT_HFP_CALL_INCOMING ) ||
1498
1485
atomic_test_and_clear_bit (call -> flags , BT_HFP_AG_CALL_ALERTING )) {
1499
1486
bt_hfp_ag_set_call_state (call , BT_HFP_CALL_ALERTING );
1500
1487
bt_hfp_ag_call_ringing_cb (call , true);
@@ -1733,10 +1720,7 @@ static int chld_release_all(struct bt_hfp_ag *ag)
1733
1720
continue ;
1734
1721
}
1735
1722
1736
- hfp_ag_lock (ag );
1737
1723
call_state = call -> call_state ;
1738
- hfp_ag_unlock (ag );
1739
-
1740
1724
if ((call_state != BT_HFP_CALL_ACTIVE ) ||
1741
1725
((call_state == BT_HFP_CALL_ACTIVE ) &&
1742
1726
atomic_test_bit (call -> flags , BT_HFP_AG_CALL_INCOMING_HELD ))) {
@@ -1759,9 +1743,7 @@ static void bt_hfp_ag_accept_other_cb(struct bt_hfp_ag *ag, void *user_data)
1759
1743
return ;
1760
1744
}
1761
1745
1762
- hfp_ag_lock (ag );
1763
1746
call_state = call -> call_state ;
1764
- hfp_ag_unlock (ag );
1765
1747
1766
1748
bt_hfp_ag_set_call_state (call , BT_HFP_CALL_ACTIVE );
1767
1749
@@ -1818,10 +1800,7 @@ static struct bt_hfp_ag_call *get_none_accept_calls(struct bt_hfp_ag *ag)
1818
1800
continue ;
1819
1801
}
1820
1802
1821
- hfp_ag_lock (ag );
1822
1803
call_state = call -> call_state ;
1823
- hfp_ag_unlock (ag );
1824
-
1825
1804
if ((call_state == BT_HFP_CALL_OUTGOING ) || (call_state == BT_HFP_CALL_INCOMING ) ||
1826
1805
(call_state == BT_HFP_CALL_ALERTING )) {
1827
1806
return call ;
@@ -1843,10 +1822,7 @@ static struct bt_hfp_ag_call *get_none_active_calls(struct bt_hfp_ag *ag)
1843
1822
continue ;
1844
1823
}
1845
1824
1846
- hfp_ag_lock (ag );
1847
1825
call_state = call -> call_state ;
1848
- hfp_ag_unlock (ag );
1849
-
1850
1826
if (call_state != BT_HFP_CALL_ACTIVE ) {
1851
1827
return call ;
1852
1828
} else if ((call_state == BT_HFP_CALL_ACTIVE ) &&
@@ -1861,7 +1837,6 @@ static struct bt_hfp_ag_call *get_none_active_calls(struct bt_hfp_ag *ag)
1861
1837
static int chld_deactivate_calls_and_accept_other_call (struct bt_hfp_ag * ag , bool release )
1862
1838
{
1863
1839
struct bt_hfp_ag_call * call ;
1864
- bt_hfp_call_state_t call_state ;
1865
1840
struct bt_hfp_ag_call * none_active_call ;
1866
1841
1867
1842
none_active_call = get_none_accept_calls (ag );
@@ -1882,11 +1857,7 @@ static int chld_deactivate_calls_and_accept_other_call(struct bt_hfp_ag *ag, boo
1882
1857
continue ;
1883
1858
}
1884
1859
1885
- hfp_ag_lock (ag );
1886
- call_state = call -> call_state ;
1887
- hfp_ag_unlock (ag );
1888
-
1889
- if ((call_state == BT_HFP_CALL_ACTIVE ) &&
1860
+ if ((call -> call_state == BT_HFP_CALL_ACTIVE ) &&
1890
1861
!atomic_test_bit (call -> flags , BT_HFP_AG_CALL_INCOMING_HELD )) {
1891
1862
if (release ) {
1892
1863
ag_terminate_call (call );
@@ -1906,7 +1877,6 @@ static int chld_deactivate_calls_and_accept_other_call(struct bt_hfp_ag *ag, boo
1906
1877
static int chld_activate_held_call (struct bt_hfp_ag * ag )
1907
1878
{
1908
1879
struct bt_hfp_ag_call * call ;
1909
- bt_hfp_call_state_t call_state ;
1910
1880
1911
1881
for (size_t index = 0 ; index < ARRAY_SIZE (ag -> calls ); index ++ ) {
1912
1882
call = & ag -> calls [index ];
@@ -1915,11 +1885,7 @@ static int chld_activate_held_call(struct bt_hfp_ag *ag)
1915
1885
continue ;
1916
1886
}
1917
1887
1918
- hfp_ag_lock (ag );
1919
- call_state = call -> call_state ;
1920
- hfp_ag_unlock (ag );
1921
-
1922
- if (call_state == BT_HFP_CALL_HOLD ) {
1888
+ if (call -> call_state == BT_HFP_CALL_HOLD ) {
1923
1889
bt_hfp_ag_set_call_state (call , BT_HFP_CALL_ACTIVE );
1924
1890
1925
1891
if (bt_ag && bt_ag -> retrieve ) {
@@ -1936,7 +1902,6 @@ static int chld_activate_held_call(struct bt_hfp_ag *ag)
1936
1902
static int chld_drop_conversation (struct bt_hfp_ag * ag )
1937
1903
{
1938
1904
struct bt_hfp_ag_call * call ;
1939
- bt_hfp_call_state_t call_state ;
1940
1905
1941
1906
for (size_t index = 0 ; index < ARRAY_SIZE (ag -> calls ); index ++ ) {
1942
1907
call = & ag -> calls [index ];
@@ -1945,11 +1910,7 @@ static int chld_drop_conversation(struct bt_hfp_ag *ag)
1945
1910
continue ;
1946
1911
}
1947
1912
1948
- hfp_ag_lock (ag );
1949
- call_state = call -> call_state ;
1950
- hfp_ag_unlock (ag );
1951
-
1952
- if (call_state != BT_HFP_CALL_ACTIVE ) {
1913
+ if (call -> call_state != BT_HFP_CALL_ACTIVE ) {
1953
1914
return - ENOTSUP ;
1954
1915
}
1955
1916
}
@@ -1996,10 +1957,7 @@ static int chld_release_call(struct bt_hfp_ag *ag, uint8_t call_index)
1996
1957
continue ;
1997
1958
}
1998
1959
1999
- hfp_ag_lock (ag );
2000
1960
call_state = call -> call_state ;
2001
- hfp_ag_unlock (ag );
2002
-
2003
1961
if ((call_state == BT_HFP_CALL_HOLD ) ||
2004
1962
((call_state == BT_HFP_CALL_ACTIVE ) &&
2005
1963
!atomic_test_bit (call -> flags , BT_HFP_AG_CALL_INCOMING_HELD ))) {
@@ -2017,7 +1975,6 @@ static int chld_release_call(struct bt_hfp_ag *ag, uint8_t call_index)
2017
1975
static int chld_held_other_calls (struct bt_hfp_ag * ag , uint8_t call_index )
2018
1976
{
2019
1977
struct bt_hfp_ag_call * call ;
2020
- bt_hfp_call_state_t call_state ;
2021
1978
2022
1979
for (size_t index = 0 ; index < ARRAY_SIZE (ag -> calls ); index ++ ) {
2023
1980
call = & ag -> calls [index ];
@@ -2030,11 +1987,7 @@ static int chld_held_other_calls(struct bt_hfp_ag *ag, uint8_t call_index)
2030
1987
continue ;
2031
1988
}
2032
1989
2033
- hfp_ag_lock (ag );
2034
- call_state = call -> call_state ;
2035
- hfp_ag_unlock (ag );
2036
-
2037
- if ((call_state == BT_HFP_CALL_ACTIVE ) &&
1990
+ if ((call -> call_state == BT_HFP_CALL_ACTIVE ) &&
2038
1991
!atomic_test_bit (call -> flags , BT_HFP_AG_CALL_INCOMING_HELD )) {
2039
1992
bt_hfp_ag_set_call_state (call , BT_HFP_CALL_HOLD );
2040
1993
@@ -2045,11 +1998,7 @@ static int chld_held_other_calls(struct bt_hfp_ag *ag, uint8_t call_index)
2045
1998
}
2046
1999
2047
2000
call = & ag -> calls [call_index ];
2048
- hfp_ag_lock (ag );
2049
- call_state = call -> call_state ;
2050
- hfp_ag_unlock (ag );
2051
-
2052
- if (call_state == BT_HFP_CALL_HOLD ) {
2001
+ if (call -> call_state == BT_HFP_CALL_HOLD ) {
2053
2002
bt_hfp_ag_set_call_state (call , BT_HFP_CALL_ACTIVE );
2054
2003
if (bt_ag && bt_ag -> retrieve ) {
2055
2004
bt_ag -> retrieve (call );
@@ -2333,10 +2282,7 @@ static int bt_hfp_ag_chup_handler(struct bt_hfp_ag *ag, struct net_buf *buf)
2333
2282
return 0 ;
2334
2283
}
2335
2284
2336
- hfp_ag_lock (ag );
2337
2285
call_state = call -> call_state ;
2338
- hfp_ag_unlock (ag );
2339
-
2340
2286
if (call_state == BT_HFP_CALL_ALERTING ) {
2341
2287
if (!atomic_test_bit (call -> flags , BT_HFP_AG_CALL_INCOMING )) {
2342
2288
next_step = bt_hfp_ag_call_terminate ;
@@ -2346,6 +2292,7 @@ static int bt_hfp_ag_chup_handler(struct bt_hfp_ag *ag, struct net_buf *buf)
2346
2292
} else if (call_state == BT_HFP_CALL_ACTIVE ) {
2347
2293
next_step = bt_hfp_ag_unit_call_terminate ;
2348
2294
}
2295
+
2349
2296
if (next_step ) {
2350
2297
err = hfp_ag_next_step (ag , next_step , call );
2351
2298
return err ;
@@ -2361,11 +2308,7 @@ static int bt_hfp_ag_chup_handler(struct bt_hfp_ag *ag, struct net_buf *buf)
2361
2308
continue ;
2362
2309
}
2363
2310
2364
- hfp_ag_lock (ag );
2365
- call_state = call -> call_state ;
2366
- hfp_ag_unlock (ag );
2367
-
2368
- if (call_state == BT_HFP_CALL_ACTIVE ) {
2311
+ if (call -> call_state == BT_HFP_CALL_ACTIVE ) {
2369
2312
err = hfp_ag_next_step (ag , bt_hfp_ag_unit_call_terminate , call );
2370
2313
}
2371
2314
}
@@ -2730,17 +2673,12 @@ static int bt_hfp_ag_bcs_handler(struct bt_hfp_ag *ag, struct net_buf *buf)
2730
2673
}
2731
2674
err = hfp_ag_next_step (ag , bt_hfp_ag_unit_codec_conn_setup , call );
2732
2675
} else {
2733
- bt_hfp_call_state_t call_state ;
2734
-
2735
2676
if (codec_conn && bt_ag && bt_ag -> codec_negotiate ) {
2736
2677
bt_ag -> codec_negotiate (ag , err );
2737
2678
}
2738
2679
2739
2680
if (call ) {
2740
- hfp_ag_lock (ag );
2741
- call_state = call -> call_state ;
2742
- hfp_ag_unlock (ag );
2743
- if (call_state != BT_HFP_CALL_TERMINATE ) {
2681
+ if (call -> call_state != BT_HFP_CALL_TERMINATE ) {
2744
2682
(void )hfp_ag_next_step (ag , bt_hfp_ag_unit_call_terminate , call );
2745
2683
}
2746
2684
}
@@ -2790,7 +2728,6 @@ static void bt_hfp_ag_unit_call_outgoing(struct bt_hfp_ag *ag, void *user_data)
2790
2728
static void bt_hfp_ag_call_held_cb (struct bt_hfp_ag * ag , void * user_data )
2791
2729
{
2792
2730
struct bt_hfp_ag_call * call = (struct bt_hfp_ag_call * )user_data ;
2793
- bt_hfp_call_state_t call_state ;
2794
2731
2795
2732
for (size_t index = 0 ; index < ARRAY_SIZE (ag -> calls ); index ++ ) {
2796
2733
call = & ag -> calls [index ];
@@ -2799,11 +2736,7 @@ static void bt_hfp_ag_call_held_cb(struct bt_hfp_ag *ag, void *user_data)
2799
2736
continue ;
2800
2737
}
2801
2738
2802
- hfp_ag_lock (ag );
2803
- call_state = call -> call_state ;
2804
- hfp_ag_unlock (ag );
2805
-
2806
- if ((call_state == BT_HFP_CALL_ACTIVE ) &&
2739
+ if ((call -> call_state == BT_HFP_CALL_ACTIVE ) &&
2807
2740
!atomic_test_bit (call -> flags , BT_HFP_AG_CALL_INCOMING_HELD )) {
2808
2741
bt_hfp_ag_set_call_state (call , BT_HFP_CALL_HOLD );
2809
2742
if (bt_ag && bt_ag -> held ) {
@@ -3148,15 +3081,11 @@ static int bt_hfp_ag_btrh_handler(struct bt_hfp_ag *ag, struct net_buf *buf)
3148
3081
{
3149
3082
int err ;
3150
3083
uint32_t action ;
3151
- bt_hfp_call_state_t call_state ;
3152
3084
struct bt_hfp_ag_call * call ;
3153
3085
3154
3086
if (is_char (buf , '?' )) {
3155
3087
call = get_call_with_flag (ag , BT_HFP_AG_CALL_INCOMING_HELD );
3156
- hfp_ag_lock (ag );
3157
- call_state = call -> call_state ;
3158
- hfp_ag_unlock (ag );
3159
- if (call && (call_state == BT_HFP_CALL_ACTIVE )) {
3088
+ if (call && (call -> call_state == BT_HFP_CALL_ACTIVE )) {
3160
3089
err = hfp_ag_send_data (ag , NULL , NULL , "\r\n+BTRH:%d\r\n" ,
3161
3090
BT_HFP_BTRH_ON_HOLD );
3162
3091
if (err ) {
@@ -3641,9 +3570,7 @@ static void bt_hfp_ag_thread(void *p1, void *p2, void *p3)
3641
3570
bt_ag_tx_free (tx );
3642
3571
3643
3572
if (err < 0 ) {
3644
- hfp_ag_lock (ag );
3645
3573
state = ag -> state ;
3646
- hfp_ag_unlock (ag );
3647
3574
if ((state != BT_HFP_DISCONNECTED ) && (state != BT_HFP_DISCONNECTING )) {
3648
3575
bt_hfp_ag_set_state (ag , BT_HFP_DISCONNECTING );
3649
3576
bt_rfcomm_dlc_disconnect (& ag -> rfcomm_dlc );
@@ -3815,15 +3742,11 @@ static void bt_ag_deferred_work(struct k_work *work)
3815
3742
static void bt_ag_ringing_work_cb (struct bt_hfp_ag * ag , void * user_data )
3816
3743
{
3817
3744
int err ;
3818
- bt_hfp_call_state_t call_state ;
3819
3745
struct bt_hfp_ag_call * call = (struct bt_hfp_ag_call * )user_data ;
3820
3746
3821
3747
LOG_DBG ("" );
3822
3748
3823
- hfp_ag_lock (ag );
3824
- call_state = call -> call_state ;
3825
- hfp_ag_unlock (ag );
3826
- if (call_state == BT_HFP_CALL_ALERTING ) {
3749
+ if (call -> call_state == BT_HFP_CALL_ALERTING ) {
3827
3750
3828
3751
if (!atomic_test_bit (call -> flags , BT_HFP_AG_CALL_INCOMING )) {
3829
3752
return ;
0 commit comments