forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.c
....@@ -1,27 +1,5 @@
1
-/******************************************************************************
2
- *
3
- * Copyright(c) 2009-2012 Realtek Corporation.
4
- *
5
- * This program is free software; you can redistribute it and/or modify it
6
- * under the terms of version 2 of the GNU General Public License as
7
- * published by the Free Software Foundation.
8
- *
9
- * This program is distributed in the hope that it will be useful, but WITHOUT
10
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
- * more details.
13
- *
14
- * The full GNU General Public License is included in this distribution in the
15
- * file called LICENSE.
16
- *
17
- * Contact Information:
18
- * wlanfae <wlanfae@realtek.com>
19
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20
- * Hsinchu 300, Taiwan.
21
- *
22
- * Larry Finger <Larry.Finger@lwfinger.net>
23
- *
24
- *****************************************************************************/
1
+// SPDX-License-Identifier: GPL-2.0
2
+/* Copyright(c) 2009-2012 Realtek Corporation.*/
253
264 #include "../wifi.h"
275 #include "../pci.h"
....@@ -43,65 +21,6 @@
4321 return QSLT_MGNT;
4422
4523 return skb->priority;
46
-}
47
-
48
-static u8 _rtl92c_query_rxpwrpercentage(s8 antpower)
49
-{
50
- if ((antpower <= -100) || (antpower >= 20))
51
- return 0;
52
- else if (antpower >= 0)
53
- return 100;
54
- else
55
- return 100 + antpower;
56
-}
57
-
58
-static u8 _rtl92c_evm_db_to_percentage(s8 value)
59
-{
60
- s8 ret_val;
61
- ret_val = value;
62
-
63
- if (ret_val >= 0)
64
- ret_val = 0;
65
-
66
- if (ret_val <= -33)
67
- ret_val = -33;
68
-
69
- ret_val = 0 - ret_val;
70
- ret_val *= 3;
71
-
72
- if (ret_val == 99)
73
- ret_val = 100;
74
-
75
- return ret_val;
76
-}
77
-
78
-static long _rtl92ce_signal_scale_mapping(struct ieee80211_hw *hw,
79
- long currsig)
80
-{
81
- long retsig;
82
-
83
- if (currsig >= 61 && currsig <= 100)
84
- retsig = 90 + ((currsig - 60) / 4);
85
- else if (currsig >= 41 && currsig <= 60)
86
- retsig = 78 + ((currsig - 40) / 2);
87
- else if (currsig >= 31 && currsig <= 40)
88
- retsig = 66 + (currsig - 30);
89
- else if (currsig >= 21 && currsig <= 30)
90
- retsig = 54 + (currsig - 20);
91
- else if (currsig >= 5 && currsig <= 20)
92
- retsig = 42 + (((currsig - 5) * 2) / 3);
93
- else if (currsig == 4)
94
- retsig = 36;
95
- else if (currsig == 3)
96
- retsig = 27;
97
- else if (currsig == 2)
98
- retsig = 18;
99
- else if (currsig == 1)
100
- retsig = 9;
101
- else
102
- retsig = currsig;
103
-
104
- return retsig;
10524 }
10625
10726 static void _rtl92ce_query_rxphystatus(struct ieee80211_hw *hw,
....@@ -131,6 +50,7 @@
13150
13251 if (is_cck_rate) {
13352 u8 report, cck_highpwr;
53
+
13454 cck_buf = (struct phy_sts_cck_8192s_t *)p_drvinfo;
13555
13656 if (ppsc->rfpwr_state == ERFON)
....@@ -142,6 +62,7 @@
14262
14363 if (!cck_highpwr) {
14464 u8 cck_agc_rpt = cck_buf->cck_agc_rpt;
65
+
14566 report = cck_buf->cck_agc_rpt & 0xc0;
14667 report = report >> 6;
14768 switch (report) {
....@@ -160,6 +81,7 @@
16081 }
16182 } else {
16283 u8 cck_agc_rpt = cck_buf->cck_agc_rpt;
84
+
16385 report = p_drvinfo->cfosho[0] & 0x60;
16486 report = report >> 5;
16587 switch (report) {
....@@ -204,6 +126,7 @@
204126 /* (3) Get Signal Quality (EVM) */
205127 if (packet_match_bssid) {
206128 u8 sq;
129
+
207130 if (pstats->rx_pwdb_all > 40)
208131 sq = 100;
209132 else {
....@@ -232,7 +155,7 @@
232155 rx_pwr[i] =
233156 ((p_drvinfo->gain_trsw[i] & 0x3f) * 2) - 110;
234157 /* Translate DBM to percentage. */
235
- rssi = _rtl92c_query_rxpwrpercentage(rx_pwr[i]);
158
+ rssi = rtl_query_rxpwrpercentage(rx_pwr[i]);
236159 total_rssi += rssi;
237160 /* Get Rx snr value in DB */
238161 rtlpriv->stats.rx_snr_db[i] =
....@@ -247,7 +170,7 @@
247170 * hardware (for rate adaptive)
248171 */
249172 rx_pwr_all = ((p_drvinfo->pwdb_all >> 1) & 0x7f) - 110;
250
- pwdb_all = _rtl92c_query_rxpwrpercentage(rx_pwr_all);
173
+ pwdb_all = rtl_query_rxpwrpercentage(rx_pwr_all);
251174 pstats->rx_pwdb_all = pwdb_all;
252175 pstats->rxpower = rx_pwr_all;
253176 pstats->recvsignalpower = rx_pwr_all;
....@@ -260,7 +183,7 @@
260183 max_spatial_stream = 1;
261184
262185 for (i = 0; i < max_spatial_stream; i++) {
263
- evm = _rtl92c_evm_db_to_percentage(p_drvinfo->rxevm[i]);
186
+ evm = rtl_evm_db_to_percentage(p_drvinfo->rxevm[i]);
264187
265188 if (packet_match_bssid) {
266189 /* Fill value in RFD, Get the first
....@@ -268,8 +191,8 @@
268191 */
269192 if (i == 0)
270193 pstats->signalquality =
271
- (u8) (evm & 0xff);
272
- pstats->rx_mimo_sig_qual[i] = (u8) (evm & 0xff);
194
+ (u8)(evm & 0xff);
195
+ pstats->rx_mimo_sig_qual[i] = (u8)(evm & 0xff);
273196 }
274197 }
275198 }
....@@ -279,11 +202,10 @@
279202 */
280203 if (is_cck_rate)
281204 pstats->signalstrength =
282
- (u8) (_rtl92ce_signal_scale_mapping(hw, pwdb_all));
205
+ (u8)(rtl_signal_scale_mapping(hw, pwdb_all));
283206 else if (rf_rx_num != 0)
284207 pstats->signalstrength =
285
- (u8) (_rtl92ce_signal_scale_mapping
286
- (hw, total_rssi /= rf_rx_num));
208
+ (u8)(rtl_signal_scale_mapping(hw, total_rssi /= rf_rx_num));
287209 }
288210
289211 static void _rtl92ce_translate_rx_signal_stuff(struct ieee80211_hw *hw,
....@@ -334,28 +256,30 @@
334256 bool rtl92ce_rx_query_desc(struct ieee80211_hw *hw,
335257 struct rtl_stats *stats,
336258 struct ieee80211_rx_status *rx_status,
337
- u8 *p_desc, struct sk_buff *skb)
259
+ u8 *p_desc8, struct sk_buff *skb)
338260 {
339261 struct rx_fwinfo_92c *p_drvinfo;
340
- struct rx_desc_92c *pdesc = (struct rx_desc_92c *)p_desc;
262
+ struct rx_desc_92c *pdesc = (struct rx_desc_92c *)p_desc8;
341263 struct ieee80211_hdr *hdr;
342
- u32 phystatus = GET_RX_DESC_PHYST(pdesc);
343
- stats->length = (u16) GET_RX_DESC_PKT_LEN(pdesc);
344
- stats->rx_drvinfo_size = (u8) GET_RX_DESC_DRV_INFO_SIZE(pdesc) *
264
+ __le32 *p_desc = (__le32 *)p_desc8;
265
+ u32 phystatus = get_rx_desc_physt(p_desc);
266
+
267
+ stats->length = (u16)get_rx_desc_pkt_len(p_desc);
268
+ stats->rx_drvinfo_size = (u8)get_rx_desc_drv_info_size(p_desc) *
345269 RX_DRV_INFO_SIZE_UNIT;
346
- stats->rx_bufshift = (u8) (GET_RX_DESC_SHIFT(pdesc) & 0x03);
347
- stats->icv = (u16) GET_RX_DESC_ICV(pdesc);
348
- stats->crc = (u16) GET_RX_DESC_CRC32(pdesc);
270
+ stats->rx_bufshift = (u8)(get_rx_desc_shift(p_desc) & 0x03);
271
+ stats->icv = (u16)get_rx_desc_icv(p_desc);
272
+ stats->crc = (u16)get_rx_desc_crc32(p_desc);
349273 stats->hwerror = (stats->crc | stats->icv);
350
- stats->decrypted = !GET_RX_DESC_SWDEC(pdesc);
351
- stats->rate = (u8) GET_RX_DESC_RXMCS(pdesc);
352
- stats->shortpreamble = (u16) GET_RX_DESC_SPLCP(pdesc);
353
- stats->isampdu = (bool) (GET_RX_DESC_PAGGR(pdesc) == 1);
354
- stats->isfirst_ampdu = (bool) ((GET_RX_DESC_PAGGR(pdesc) == 1)
355
- && (GET_RX_DESC_FAGGR(pdesc) == 1));
356
- stats->timestamp_low = GET_RX_DESC_TSFL(pdesc);
357
- stats->rx_is40Mhzpacket = (bool) GET_RX_DESC_BW(pdesc);
358
- stats->is_ht = (bool)GET_RX_DESC_RXHT(pdesc);
274
+ stats->decrypted = !get_rx_desc_swdec(p_desc);
275
+ stats->rate = (u8)get_rx_desc_rxmcs(p_desc);
276
+ stats->shortpreamble = (u16)get_rx_desc_splcp(p_desc);
277
+ stats->isampdu = (bool)(get_rx_desc_paggr(p_desc) == 1);
278
+ stats->isfirst_ampdu = (bool)((get_rx_desc_paggr(p_desc) == 1) &&
279
+ (get_rx_desc_faggr(p_desc) == 1));
280
+ stats->timestamp_low = get_rx_desc_tsfl(p_desc);
281
+ stats->rx_is40mhzpacket = (bool)get_rx_desc_bw(p_desc);
282
+ stats->is_ht = (bool)get_rx_desc_rxht(p_desc);
359283
360284 stats->is_cck = RX_HAL_IS_CCK_RATE(pdesc->rxmcs);
361285
....@@ -368,7 +292,7 @@
368292 if (stats->crc)
369293 rx_status->flag |= RX_FLAG_FAILED_FCS_CRC;
370294
371
- if (stats->rx_is40Mhzpacket)
295
+ if (stats->rx_is40mhzpacket)
372296 rx_status->bw = RATE_INFO_BW_40;
373297
374298 if (stats->is_ht)
....@@ -416,7 +340,7 @@
416340 }
417341
418342 void rtl92ce_tx_fill_desc(struct ieee80211_hw *hw,
419
- struct ieee80211_hdr *hdr, u8 *pdesc_tx,
343
+ struct ieee80211_hdr *hdr, u8 *pdesc8,
420344 u8 *pbd_desc_tx, struct ieee80211_tx_info *info,
421345 struct ieee80211_sta *sta,
422346 struct sk_buff *skb,
....@@ -427,7 +351,7 @@
427351 struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
428352 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
429353 bool defaultadapter = true;
430
- u8 *pdesc = pdesc_tx;
354
+ __le32 *pdesc = (__le32 *)pdesc8;
431355 u16 seq_number;
432356 __le16 fc = hdr->frame_control;
433357 u8 fw_qsel = _rtl92ce_map_hwqueue_to_fwqueue(skb, hw_queue);
....@@ -437,15 +361,14 @@
437361 bool lastseg = ((hdr->frame_control &
438362 cpu_to_le16(IEEE80211_FCTL_MOREFRAGS)) == 0);
439363
440
- dma_addr_t mapping = pci_map_single(rtlpci->pdev,
441
- skb->data, skb->len,
442
- PCI_DMA_TODEVICE);
364
+ dma_addr_t mapping = dma_map_single(&rtlpci->pdev->dev, skb->data,
365
+ skb->len, DMA_TO_DEVICE);
443366
444367 u8 bw_40 = 0;
445368
446
- if (pci_dma_mapping_error(rtlpci->pdev, mapping)) {
447
- RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE,
448
- "DMA mapping error\n");
369
+ if (dma_mapping_error(&rtlpci->pdev->dev, mapping)) {
370
+ rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE,
371
+ "DMA mapping error\n");
449372 return;
450373 }
451374 rcu_read_lock();
....@@ -463,63 +386,64 @@
463386
464387 rtl_get_tcb_desc(hw, info, sta, skb, tcb_desc);
465388
466
- CLEAR_PCI_TX_DESC_CONTENT(pdesc, sizeof(struct tx_desc_92c));
389
+ clear_pci_tx_desc_content(pdesc, sizeof(struct tx_desc_92c));
467390
468391 if (ieee80211_is_nullfunc(fc) || ieee80211_is_ctl(fc)) {
469392 firstseg = true;
470393 lastseg = true;
471394 }
472395 if (firstseg) {
473
- SET_TX_DESC_OFFSET(pdesc, USB_HWDESC_HEADER_LEN);
396
+ set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
474397
475
- SET_TX_DESC_TX_RATE(pdesc, tcb_desc->hw_rate);
398
+ set_tx_desc_tx_rate(pdesc, tcb_desc->hw_rate);
476399
477400 if (tcb_desc->use_shortgi || tcb_desc->use_shortpreamble)
478
- SET_TX_DESC_DATA_SHORTGI(pdesc, 1);
401
+ set_tx_desc_data_shortgi(pdesc, 1);
479402
480403 if (info->flags & IEEE80211_TX_CTL_AMPDU) {
481
- SET_TX_DESC_AGG_BREAK(pdesc, 1);
482
- SET_TX_DESC_MAX_AGG_NUM(pdesc, 0x14);
404
+ set_tx_desc_agg_break(pdesc, 1);
405
+ set_tx_desc_max_agg_num(pdesc, 0x14);
483406 }
484
- SET_TX_DESC_SEQ(pdesc, seq_number);
407
+ set_tx_desc_seq(pdesc, seq_number);
485408
486
- SET_TX_DESC_RTS_ENABLE(pdesc, ((tcb_desc->rts_enable &&
409
+ set_tx_desc_rts_enable(pdesc, ((tcb_desc->rts_enable &&
487410 !tcb_desc->
488411 cts_enable) ? 1 : 0));
489
- SET_TX_DESC_HW_RTS_ENABLE(pdesc,
412
+ set_tx_desc_hw_rts_enable(pdesc,
490413 ((tcb_desc->rts_enable
491414 || tcb_desc->cts_enable) ? 1 : 0));
492
- SET_TX_DESC_CTS2SELF(pdesc, ((tcb_desc->cts_enable) ? 1 : 0));
493
- SET_TX_DESC_RTS_STBC(pdesc, ((tcb_desc->rts_stbc) ? 1 : 0));
415
+ set_tx_desc_cts2self(pdesc, ((tcb_desc->cts_enable) ? 1 : 0));
416
+ set_tx_desc_rts_stbc(pdesc, ((tcb_desc->rts_stbc) ? 1 : 0));
494417
495
- SET_TX_DESC_RTS_RATE(pdesc, tcb_desc->rts_rate);
496
- SET_TX_DESC_RTS_BW(pdesc, 0);
497
- SET_TX_DESC_RTS_SC(pdesc, tcb_desc->rts_sc);
498
- SET_TX_DESC_RTS_SHORT(pdesc,
418
+ set_tx_desc_rts_rate(pdesc, tcb_desc->rts_rate);
419
+ set_tx_desc_rts_bw(pdesc, 0);
420
+ set_tx_desc_rts_sc(pdesc, tcb_desc->rts_sc);
421
+ set_tx_desc_rts_short(pdesc,
499422 ((tcb_desc->rts_rate <= DESC_RATE54M) ?
500423 (tcb_desc->rts_use_shortpreamble ? 1 : 0)
501424 : (tcb_desc->rts_use_shortgi ? 1 : 0)));
502425
503426 if (bw_40) {
504427 if (tcb_desc->packet_bw) {
505
- SET_TX_DESC_DATA_BW(pdesc, 1);
506
- SET_TX_DESC_TX_SUB_CARRIER(pdesc, 3);
428
+ set_tx_desc_data_bw(pdesc, 1);
429
+ set_tx_desc_tx_sub_carrier(pdesc, 3);
507430 } else {
508
- SET_TX_DESC_DATA_BW(pdesc, 0);
509
- SET_TX_DESC_TX_SUB_CARRIER(pdesc,
431
+ set_tx_desc_data_bw(pdesc, 0);
432
+ set_tx_desc_tx_sub_carrier(pdesc,
510433 mac->cur_40_prime_sc);
511434 }
512435 } else {
513
- SET_TX_DESC_DATA_BW(pdesc, 0);
514
- SET_TX_DESC_TX_SUB_CARRIER(pdesc, 0);
436
+ set_tx_desc_data_bw(pdesc, 0);
437
+ set_tx_desc_tx_sub_carrier(pdesc, 0);
515438 }
516439
517
- SET_TX_DESC_LINIP(pdesc, 0);
518
- SET_TX_DESC_PKT_SIZE(pdesc, (u16) skb->len);
440
+ set_tx_desc_linip(pdesc, 0);
441
+ set_tx_desc_pkt_size(pdesc, (u16)skb->len);
519442
520443 if (sta) {
521444 u8 ampdu_density = sta->ht_cap.ampdu_density;
522
- SET_TX_DESC_AMPDU_DENSITY(pdesc, ampdu_density);
445
+
446
+ set_tx_desc_ampdu_density(pdesc, ampdu_density);
523447 }
524448
525449 if (info->control.hw_key) {
....@@ -530,144 +454,146 @@
530454 case WLAN_CIPHER_SUITE_WEP40:
531455 case WLAN_CIPHER_SUITE_WEP104:
532456 case WLAN_CIPHER_SUITE_TKIP:
533
- SET_TX_DESC_SEC_TYPE(pdesc, 0x1);
457
+ set_tx_desc_sec_type(pdesc, 0x1);
534458 break;
535459 case WLAN_CIPHER_SUITE_CCMP:
536
- SET_TX_DESC_SEC_TYPE(pdesc, 0x3);
460
+ set_tx_desc_sec_type(pdesc, 0x3);
537461 break;
538462 default:
539
- SET_TX_DESC_SEC_TYPE(pdesc, 0x0);
463
+ set_tx_desc_sec_type(pdesc, 0x0);
540464 break;
541465
542466 }
543467 }
544468
545
- SET_TX_DESC_PKT_ID(pdesc, 0);
546
- SET_TX_DESC_QUEUE_SEL(pdesc, fw_qsel);
469
+ set_tx_desc_pkt_id(pdesc, 0);
470
+ set_tx_desc_queue_sel(pdesc, fw_qsel);
547471
548
- SET_TX_DESC_DATA_RATE_FB_LIMIT(pdesc, 0x1F);
549
- SET_TX_DESC_RTS_RATE_FB_LIMIT(pdesc, 0xF);
550
- SET_TX_DESC_DISABLE_FB(pdesc, 0);
551
- SET_TX_DESC_USE_RATE(pdesc, tcb_desc->use_driver_rate ? 1 : 0);
472
+ set_tx_desc_data_rate_fb_limit(pdesc, 0x1F);
473
+ set_tx_desc_rts_rate_fb_limit(pdesc, 0xF);
474
+ set_tx_desc_disable_fb(pdesc, 0);
475
+ set_tx_desc_use_rate(pdesc, tcb_desc->use_driver_rate ? 1 : 0);
552476
553477 if (ieee80211_is_data_qos(fc)) {
554478 if (mac->rdg_en) {
555
- RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE,
556
- "Enable RDG function\n");
557
- SET_TX_DESC_RDG_ENABLE(pdesc, 1);
558
- SET_TX_DESC_HTC(pdesc, 1);
479
+ rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE,
480
+ "Enable RDG function\n");
481
+ set_tx_desc_rdg_enable(pdesc, 1);
482
+ set_tx_desc_htc(pdesc, 1);
559483 }
560484 }
561485 }
562486 rcu_read_unlock();
563487
564
- SET_TX_DESC_FIRST_SEG(pdesc, (firstseg ? 1 : 0));
565
- SET_TX_DESC_LAST_SEG(pdesc, (lastseg ? 1 : 0));
488
+ set_tx_desc_first_seg(pdesc, (firstseg ? 1 : 0));
489
+ set_tx_desc_last_seg(pdesc, (lastseg ? 1 : 0));
566490
567
- SET_TX_DESC_TX_BUFFER_SIZE(pdesc, (u16) skb->len);
491
+ set_tx_desc_tx_buffer_size(pdesc, (u16)skb->len);
568492
569
- SET_TX_DESC_TX_BUFFER_ADDRESS(pdesc, mapping);
493
+ set_tx_desc_tx_buffer_address(pdesc, mapping);
570494
571495 if (rtlpriv->dm.useramask) {
572
- SET_TX_DESC_RATE_ID(pdesc, tcb_desc->ratr_index);
573
- SET_TX_DESC_MACID(pdesc, tcb_desc->mac_id);
496
+ set_tx_desc_rate_id(pdesc, tcb_desc->ratr_index);
497
+ set_tx_desc_macid(pdesc, tcb_desc->mac_id);
574498 } else {
575
- SET_TX_DESC_RATE_ID(pdesc, 0xC + tcb_desc->ratr_index);
576
- SET_TX_DESC_MACID(pdesc, tcb_desc->ratr_index);
499
+ set_tx_desc_rate_id(pdesc, 0xC + tcb_desc->ratr_index);
500
+ set_tx_desc_macid(pdesc, tcb_desc->ratr_index);
577501 }
578502
579503 if ((!ieee80211_is_data_qos(fc)) && ppsc->fwctrl_lps) {
580
- SET_TX_DESC_HWSEQ_EN(pdesc, 1);
581
- SET_TX_DESC_PKT_ID(pdesc, 8);
504
+ set_tx_desc_hwseq_en(pdesc, 1);
505
+ set_tx_desc_pkt_id(pdesc, 8);
582506
583507 if (!defaultadapter)
584
- SET_TX_DESC_QOS(pdesc, 1);
508
+ set_tx_desc_qos(pdesc, 1);
585509 }
586510
587
- SET_TX_DESC_MORE_FRAG(pdesc, (lastseg ? 0 : 1));
511
+ set_tx_desc_more_frag(pdesc, (lastseg ? 0 : 1));
588512
589513 if (is_multicast_ether_addr(ieee80211_get_DA(hdr)) ||
590514 is_broadcast_ether_addr(ieee80211_get_DA(hdr))) {
591
- SET_TX_DESC_BMC(pdesc, 1);
515
+ set_tx_desc_bmc(pdesc, 1);
592516 }
593517
594
- RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
518
+ rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
595519 }
596520
597521 void rtl92ce_tx_fill_cmddesc(struct ieee80211_hw *hw,
598
- u8 *pdesc, bool firstseg,
522
+ u8 *pdesc8, bool firstseg,
599523 bool lastseg, struct sk_buff *skb)
600524 {
601525 struct rtl_priv *rtlpriv = rtl_priv(hw);
602526 struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
603527 u8 fw_queue = QSLT_BEACON;
528
+ __le32 *pdesc = (__le32 *)pdesc8;
604529
605
- dma_addr_t mapping = pci_map_single(rtlpci->pdev,
606
- skb->data, skb->len,
607
- PCI_DMA_TODEVICE);
530
+ dma_addr_t mapping = dma_map_single(&rtlpci->pdev->dev, skb->data,
531
+ skb->len, DMA_TO_DEVICE);
608532
609533 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)(skb->data);
610534 __le16 fc = hdr->frame_control;
611535
612
- if (pci_dma_mapping_error(rtlpci->pdev, mapping)) {
613
- RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE,
614
- "DMA mapping error\n");
536
+ if (dma_mapping_error(&rtlpci->pdev->dev, mapping)) {
537
+ rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE,
538
+ "DMA mapping error\n");
615539 return;
616540 }
617
- CLEAR_PCI_TX_DESC_CONTENT(pdesc, TX_DESC_SIZE);
541
+ clear_pci_tx_desc_content(pdesc, TX_DESC_SIZE);
618542
619543 if (firstseg)
620
- SET_TX_DESC_OFFSET(pdesc, USB_HWDESC_HEADER_LEN);
544
+ set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
621545
622
- SET_TX_DESC_TX_RATE(pdesc, DESC_RATE1M);
546
+ set_tx_desc_tx_rate(pdesc, DESC_RATE1M);
623547
624
- SET_TX_DESC_SEQ(pdesc, 0);
548
+ set_tx_desc_seq(pdesc, 0);
625549
626
- SET_TX_DESC_LINIP(pdesc, 0);
550
+ set_tx_desc_linip(pdesc, 0);
627551
628
- SET_TX_DESC_QUEUE_SEL(pdesc, fw_queue);
552
+ set_tx_desc_queue_sel(pdesc, fw_queue);
629553
630
- SET_TX_DESC_FIRST_SEG(pdesc, 1);
631
- SET_TX_DESC_LAST_SEG(pdesc, 1);
554
+ set_tx_desc_first_seg(pdesc, 1);
555
+ set_tx_desc_last_seg(pdesc, 1);
632556
633
- SET_TX_DESC_TX_BUFFER_SIZE(pdesc, (u16) (skb->len));
557
+ set_tx_desc_tx_buffer_size(pdesc, (u16)(skb->len));
634558
635
- SET_TX_DESC_TX_BUFFER_ADDRESS(pdesc, mapping);
559
+ set_tx_desc_tx_buffer_address(pdesc, mapping);
636560
637
- SET_TX_DESC_RATE_ID(pdesc, 7);
638
- SET_TX_DESC_MACID(pdesc, 0);
561
+ set_tx_desc_rate_id(pdesc, 7);
562
+ set_tx_desc_macid(pdesc, 0);
639563
640
- SET_TX_DESC_OWN(pdesc, 1);
564
+ set_tx_desc_own(pdesc, 1);
641565
642
- SET_TX_DESC_PKT_SIZE(pdesc, (u16) (skb->len));
566
+ set_tx_desc_pkt_size(pdesc, (u16)(skb->len));
643567
644
- SET_TX_DESC_FIRST_SEG(pdesc, 1);
645
- SET_TX_DESC_LAST_SEG(pdesc, 1);
568
+ set_tx_desc_first_seg(pdesc, 1);
569
+ set_tx_desc_last_seg(pdesc, 1);
646570
647
- SET_TX_DESC_OFFSET(pdesc, 0x20);
571
+ set_tx_desc_offset(pdesc, 0x20);
648572
649
- SET_TX_DESC_USE_RATE(pdesc, 1);
573
+ set_tx_desc_use_rate(pdesc, 1);
650574
651575 if (!ieee80211_is_data_qos(fc)) {
652
- SET_TX_DESC_HWSEQ_EN(pdesc, 1);
653
- SET_TX_DESC_PKT_ID(pdesc, 8);
576
+ set_tx_desc_hwseq_en(pdesc, 1);
577
+ set_tx_desc_pkt_id(pdesc, 8);
654578 }
655579
656580 RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD,
657581 "H2C Tx Cmd Content", pdesc, TX_DESC_SIZE);
658582 }
659583
660
-void rtl92ce_set_desc(struct ieee80211_hw *hw, u8 *pdesc, bool istx,
584
+void rtl92ce_set_desc(struct ieee80211_hw *hw, u8 *pdesc8, bool istx,
661585 u8 desc_name, u8 *val)
662586 {
587
+ __le32 *pdesc = (__le32 *)pdesc8;
588
+
663589 if (istx) {
664590 switch (desc_name) {
665591 case HW_DESC_OWN:
666592 wmb();
667
- SET_TX_DESC_OWN(pdesc, 1);
593
+ set_tx_desc_own(pdesc, 1);
668594 break;
669595 case HW_DESC_TX_NEXTDESC_ADDR:
670
- SET_TX_DESC_NEXT_DESC_ADDRESS(pdesc, *(u32 *) val);
596
+ set_tx_desc_next_desc_address(pdesc, *(u32 *)val);
671597 break;
672598 default:
673599 WARN_ONCE(true, "rtl8192ce: ERR txdesc :%d not processed\n",
....@@ -678,16 +604,16 @@
678604 switch (desc_name) {
679605 case HW_DESC_RXOWN:
680606 wmb();
681
- SET_RX_DESC_OWN(pdesc, 1);
607
+ set_rx_desc_own(pdesc, 1);
682608 break;
683609 case HW_DESC_RXBUFF_ADDR:
684
- SET_RX_DESC_BUFF_ADDR(pdesc, *(u32 *) val);
610
+ set_rx_desc_buff_addr(pdesc, *(u32 *)val);
685611 break;
686612 case HW_DESC_RXPKT_LEN:
687
- SET_RX_DESC_PKT_LEN(pdesc, *(u32 *) val);
613
+ set_rx_desc_pkt_len(pdesc, *(u32 *)val);
688614 break;
689615 case HW_DESC_RXERO:
690
- SET_RX_DESC_EOR(pdesc, 1);
616
+ set_rx_desc_eor(pdesc, 1);
691617 break;
692618 default:
693619 WARN_ONCE(true, "rtl8192ce: ERR rxdesc :%d not processed\n",
....@@ -697,18 +623,19 @@
697623 }
698624 }
699625
700
-u64 rtl92ce_get_desc(struct ieee80211_hw *hw, u8 *p_desc,
626
+u64 rtl92ce_get_desc(struct ieee80211_hw *hw, u8 *p_desc8,
701627 bool istx, u8 desc_name)
702628 {
703629 u32 ret = 0;
630
+ __le32 *p_desc = (__le32 *)p_desc8;
704631
705632 if (istx) {
706633 switch (desc_name) {
707634 case HW_DESC_OWN:
708
- ret = GET_TX_DESC_OWN(p_desc);
635
+ ret = get_tx_desc_own(p_desc);
709636 break;
710637 case HW_DESC_TXBUFF_ADDR:
711
- ret = GET_TX_DESC_TX_BUFFER_ADDRESS(p_desc);
638
+ ret = get_tx_desc_tx_buffer_address(p_desc);
712639 break;
713640 default:
714641 WARN_ONCE(true, "rtl8192ce: ERR txdesc :%d not processed\n",
....@@ -718,13 +645,13 @@
718645 } else {
719646 switch (desc_name) {
720647 case HW_DESC_OWN:
721
- ret = GET_RX_DESC_OWN(p_desc);
648
+ ret = get_rx_desc_own(p_desc);
722649 break;
723650 case HW_DESC_RXPKT_LEN:
724
- ret = GET_RX_DESC_PKT_LEN(p_desc);
651
+ ret = get_rx_desc_pkt_len(p_desc);
725652 break;
726653 case HW_DESC_RXBUFF_ADDR:
727
- ret = GET_RX_DESC_BUFF_ADDR(p_desc);
654
+ ret = get_rx_desc_buff_addr(p_desc);
728655 break;
729656 default:
730657 WARN_ONCE(true, "rtl8192ce: ERR rxdesc :%d not processed\n",
....@@ -755,6 +682,7 @@
755682 void rtl92ce_tx_polling(struct ieee80211_hw *hw, u8 hw_queue)
756683 {
757684 struct rtl_priv *rtlpriv = rtl_priv(hw);
685
+
758686 if (hw_queue == BEACON_QUEUE) {
759687 rtl_write_word(rtlpriv, REG_PCIE_CTRL_REG, BIT(4));
760688 } else {