@@ -258,15 +258,13 @@ static int ath12k_dp_purge_mon_ring(struct ath12k_base *ab)
258
258
/* Returns number of Rx buffers replenished */
259
259
int ath12k_dp_rx_bufs_replenish (struct ath12k_base * ab ,
260
260
struct dp_rxdma_ring * rx_ring ,
261
- int req_entries ,
262
- bool hw_cc )
261
+ int req_entries )
263
262
{
264
263
struct ath12k_buffer_addr * desc ;
265
264
struct hal_srng * srng ;
266
265
struct sk_buff * skb ;
267
266
int num_free ;
268
267
int num_remain ;
269
- int buf_id ;
270
268
u32 cookie ;
271
269
dma_addr_t paddr ;
272
270
struct ath12k_dp * dp = & ab -> dp ;
@@ -307,40 +305,29 @@ int ath12k_dp_rx_bufs_replenish(struct ath12k_base *ab,
307
305
if (dma_mapping_error (ab -> dev , paddr ))
308
306
goto fail_free_skb ;
309
307
310
- if (hw_cc ) {
311
- spin_lock_bh (& dp -> rx_desc_lock );
312
-
313
- /* Get desc from free list and store in used list
314
- * for cleanup purposes
315
- *
316
- * TODO: pass the removed descs rather than
317
- * add/read to optimize
318
- */
319
- rx_desc = list_first_entry_or_null (& dp -> rx_desc_free_list ,
320
- struct ath12k_rx_desc_info ,
321
- list );
322
- if (!rx_desc ) {
323
- spin_unlock_bh (& dp -> rx_desc_lock );
324
- goto fail_dma_unmap ;
325
- }
326
-
327
- rx_desc -> skb = skb ;
328
- cookie = rx_desc -> cookie ;
329
- list_del (& rx_desc -> list );
330
- list_add_tail (& rx_desc -> list , & dp -> rx_desc_used_list );
308
+ spin_lock_bh (& dp -> rx_desc_lock );
331
309
310
+ /* Get desc from free list and store in used list
311
+ * for cleanup purposes
312
+ *
313
+ * TODO: pass the removed descs rather than
314
+ * add/read to optimize
315
+ */
316
+ rx_desc = list_first_entry_or_null (& dp -> rx_desc_free_list ,
317
+ struct ath12k_rx_desc_info ,
318
+ list );
319
+ if (!rx_desc ) {
332
320
spin_unlock_bh (& dp -> rx_desc_lock );
333
- } else {
334
- spin_lock_bh (& rx_ring -> idr_lock );
335
- buf_id = idr_alloc (& rx_ring -> bufs_idr , skb , 0 ,
336
- rx_ring -> bufs_max * 3 , GFP_ATOMIC );
337
- spin_unlock_bh (& rx_ring -> idr_lock );
338
- if (buf_id < 0 )
339
- goto fail_dma_unmap ;
340
- cookie = u32_encode_bits (buf_id ,
341
- DP_RXDMA_BUF_COOKIE_BUF_ID );
321
+ goto fail_dma_unmap ;
342
322
}
343
323
324
+ rx_desc -> skb = skb ;
325
+ cookie = rx_desc -> cookie ;
326
+ list_del (& rx_desc -> list );
327
+ list_add_tail (& rx_desc -> list , & dp -> rx_desc_used_list );
328
+
329
+ spin_unlock_bh (& dp -> rx_desc_lock );
330
+
344
331
desc = ath12k_hal_srng_src_get_next_entry (ab , srng );
345
332
if (!desc )
346
333
goto fail_buf_unassign ;
@@ -359,17 +346,11 @@ int ath12k_dp_rx_bufs_replenish(struct ath12k_base *ab,
359
346
return req_entries - num_remain ;
360
347
361
348
fail_buf_unassign :
362
- if (hw_cc ) {
363
- spin_lock_bh (& dp -> rx_desc_lock );
364
- list_del (& rx_desc -> list );
365
- list_add_tail (& rx_desc -> list , & dp -> rx_desc_free_list );
366
- rx_desc -> skb = NULL ;
367
- spin_unlock_bh (& dp -> rx_desc_lock );
368
- } else {
369
- spin_lock_bh (& rx_ring -> idr_lock );
370
- idr_remove (& rx_ring -> bufs_idr , buf_id );
371
- spin_unlock_bh (& rx_ring -> idr_lock );
372
- }
349
+ spin_lock_bh (& dp -> rx_desc_lock );
350
+ list_del (& rx_desc -> list );
351
+ list_add_tail (& rx_desc -> list , & dp -> rx_desc_free_list );
352
+ rx_desc -> skb = NULL ;
353
+ spin_unlock_bh (& dp -> rx_desc_lock );
373
354
fail_dma_unmap :
374
355
dma_unmap_single (ab -> dev , paddr , skb -> len + skb_tailroom (skb ),
375
356
DMA_FROM_DEVICE );
@@ -435,8 +416,7 @@ static int ath12k_dp_rxdma_ring_buf_setup(struct ath12k_base *ab,
435
416
if ((ringtype == HAL_RXDMA_MONITOR_BUF ) || (ringtype == HAL_TX_MONITOR_BUF ))
436
417
ath12k_dp_mon_buf_replenish (ab , rx_ring , num_entries );
437
418
else
438
- ath12k_dp_rx_bufs_replenish (ab , rx_ring , num_entries ,
439
- ringtype == HAL_RXDMA_BUF );
419
+ ath12k_dp_rx_bufs_replenish (ab , rx_ring , num_entries );
440
420
return 0 ;
441
421
}
442
422
@@ -2708,7 +2688,7 @@ int ath12k_dp_rx_process(struct ath12k_base *ab, int ring_id,
2708
2688
if (!total_msdu_reaped )
2709
2689
goto exit ;
2710
2690
2711
- ath12k_dp_rx_bufs_replenish (ab , rx_ring , num_buffs_reaped , true );
2691
+ ath12k_dp_rx_bufs_replenish (ab , rx_ring , num_buffs_reaped );
2712
2692
2713
2693
ath12k_dp_rx_process_received_packets (ab , napi , & msdu_list ,
2714
2694
ring_id );
@@ -3486,7 +3466,7 @@ int ath12k_dp_rx_process_err(struct ath12k_base *ab, struct napi_struct *napi,
3486
3466
3487
3467
rx_ring = & dp -> rx_refill_buf_ring ;
3488
3468
3489
- ath12k_dp_rx_bufs_replenish (ab , rx_ring , tot_n_bufs_reaped , true );
3469
+ ath12k_dp_rx_bufs_replenish (ab , rx_ring , tot_n_bufs_reaped );
3490
3470
3491
3471
return tot_n_bufs_reaped ;
3492
3472
}
@@ -3799,7 +3779,7 @@ int ath12k_dp_rx_process_wbm_err(struct ath12k_base *ab,
3799
3779
if (!num_buffs_reaped )
3800
3780
goto done ;
3801
3781
3802
- ath12k_dp_rx_bufs_replenish (ab , rx_ring , num_buffs_reaped , true );
3782
+ ath12k_dp_rx_bufs_replenish (ab , rx_ring , num_buffs_reaped );
3803
3783
3804
3784
rcu_read_lock ();
3805
3785
for (i = 0 ; i < ab -> num_radios ; i ++ ) {
0 commit comments