forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.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"
....@@ -61,8 +39,8 @@
6139 do {
6240 cpustatus = rtl_read_byte(rtlpriv, TCR);
6341 if (cpustatus & IMEM_RDY) {
64
- RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
65
- "IMEM Ready after CPU has refilled\n");
42
+ rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD,
43
+ "IMEM Ready after CPU has refilled\n");
6644 break;
6745 }
6846
....@@ -158,7 +136,6 @@
158136 struct rtl_priv *rtlpriv = rtl_priv(hw);
159137 struct sk_buff *skb;
160138 struct rtl_tcb_desc *tcb_desc;
161
- unsigned char *seg_ptr;
162139 u16 frag_threshold = MAX_FIRMWARE_CODE_SIZE;
163140 u16 frag_length, frag_offset = 0;
164141 u16 extra_descoffset = 0;
....@@ -188,9 +165,8 @@
188165 if (!skb)
189166 return false;
190167 skb_reserve(skb, extra_descoffset);
191
- seg_ptr = skb_put_data(skb,
192
- code_virtual_address + frag_offset,
193
- (u32)(frag_length - extra_descoffset));
168
+ skb_put_data(skb, code_virtual_address + frag_offset,
169
+ (u32)(frag_length - extra_descoffset));
194170
195171 tcb_desc = (struct rtl_tcb_desc *)(skb->cb);
196172 tcb_desc->queue_index = TXCMD_QUEUE;
....@@ -219,8 +195,8 @@
219195 short pollingcnt = 1000;
220196 bool rtstatus = true;
221197
222
- RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
223
- "LoadStaus(%d)\n", loadfw_status);
198
+ rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD,
199
+ "LoadStaus(%d)\n", loadfw_status);
224200
225201 firmware->fwstatus = (enum fw_status)loadfw_status;
226202
....@@ -280,9 +256,9 @@
280256 goto status_check_fail;
281257 }
282258
283
- RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
284
- "DMEM code download success, cpustatus(%#x)\n",
285
- cpustatus);
259
+ rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD,
260
+ "DMEM code download success, cpustatus(%#x)\n",
261
+ cpustatus);
286262
287263 /* Prevent Delay too much and being scheduled out */
288264 /* Polling Load Firmware ready */
....@@ -294,9 +270,9 @@
294270 udelay(40);
295271 } while (pollingcnt--);
296272
297
- RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
298
- "Polling Load Firmware ready, cpustatus(%x)\n",
299
- cpustatus);
273
+ rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD,
274
+ "Polling Load Firmware ready, cpustatus(%x)\n",
275
+ cpustatus);
300276
301277 if (((cpustatus & LOAD_FW_READY) != LOAD_FW_READY) ||
302278 (pollingcnt <= 0)) {
....@@ -314,8 +290,8 @@
314290 rtl_write_dword(rtlpriv, RCR, (tmpu4b | RCR_APPFCS |
315291 RCR_APP_ICV | RCR_APP_MIC));
316292
317
- RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
318
- "Current RCR settings(%#x)\n", tmpu4b);
293
+ rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD,
294
+ "Current RCR settings(%#x)\n", tmpu4b);
319295
320296 /* Set to normal mode. */
321297 rtl_write_byte(rtlpriv, LBKMD_SEL, LBK_NORMAL);
....@@ -328,9 +304,9 @@
328304 }
329305
330306 status_check_fail:
331
- RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
332
- "loadfw_status(%d), rtstatus(%x)\n",
333
- loadfw_status, rtstatus);
307
+ rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD,
308
+ "loadfw_status(%d), rtstatus(%x)\n",
309
+ loadfw_status, rtstatus);
334310 return rtstatus;
335311 }
336312
....@@ -361,11 +337,11 @@
361337 firmware->firmwareversion = byte(pfwheader->version, 0);
362338 firmware->pfwheader->fwpriv.hci_sel = 1;/* pcie */
363339
364
- RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
365
- "signature:%x, version:%x, size:%x, imemsize:%x, sram size:%x\n",
366
- pfwheader->signature,
367
- pfwheader->version, pfwheader->dmem_size,
368
- pfwheader->img_imem_size, pfwheader->img_sram_size);
340
+ rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD,
341
+ "signature:%x, version:%x, size:%x, imemsize:%x, sram size:%x\n",
342
+ pfwheader->signature,
343
+ pfwheader->version, pfwheader->dmem_size,
344
+ pfwheader->img_imem_size, pfwheader->img_sram_size);
369345
370346 /* 2. Retrieve IMEM image. */
371347 if ((pfwheader->img_imem_size == 0) || (pfwheader->img_imem_size >
....@@ -466,17 +442,20 @@
466442 memset((ph2c_buffer + totallen + tx_desclen), 0, len);
467443
468444 /* CMD len */
469
- SET_BITS_TO_LE_4BYTE((ph2c_buffer + totallen + tx_desclen),
470
- 0, 16, pcmd_len[i]);
445
+ le32p_replace_bits((__le32 *)(ph2c_buffer + totallen +
446
+ tx_desclen), pcmd_len[i],
447
+ GENMASK(15, 0));
471448
472449 /* CMD ID */
473
- SET_BITS_TO_LE_4BYTE((ph2c_buffer + totallen + tx_desclen),
474
- 16, 8, pelement_id[i]);
450
+ le32p_replace_bits((__le32 *)(ph2c_buffer + totallen +
451
+ tx_desclen), pelement_id[i],
452
+ GENMASK(23, 16));
475453
476454 /* CMD Sequence */
477455 *cmd_start_seq = *cmd_start_seq % 0x80;
478
- SET_BITS_TO_LE_4BYTE((ph2c_buffer + totallen + tx_desclen),
479
- 24, 7, *cmd_start_seq);
456
+ le32p_replace_bits((__le32 *)(ph2c_buffer + totallen +
457
+ tx_desclen), *cmd_start_seq,
458
+ GENMASK(30, 24));
480459 ++*cmd_start_seq;
481460
482461 /* Copy memory */
....@@ -486,8 +465,9 @@
486465 /* CMD continue */
487466 /* set the continue in prevoius cmd. */
488467 if (i < cmd_num - 1)
489
- SET_BITS_TO_LE_4BYTE((ph2c_buffer + pre_continueoffset),
490
- 31, 1, 1);
468
+ le32p_replace_bits((__le32 *)(ph2c_buffer +
469
+ pre_continueoffset),
470
+ 1, BIT(31));
491471
492472 pre_continueoffset = totallen;
493473
....@@ -569,22 +549,22 @@
569549 return true;
570550 }
571551
572
-void rtl92s_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 Mode)
552
+void rtl92s_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 mode)
573553 {
574554 struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
575555 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
576556 struct h2c_set_pwrmode_parm pwrmode;
577557 u16 max_wakeup_period = 0;
578558
579
- pwrmode.mode = Mode;
559
+ pwrmode.mode = mode;
580560 pwrmode.flag_low_traffic_en = 0;
581561 pwrmode.flag_lpnav_en = 0;
582562 pwrmode.flag_rf_low_snr_en = 0;
583563 pwrmode.flag_dps_en = 0;
584564 pwrmode.bcn_rx_en = 0;
585565 pwrmode.bcn_to = 0;
586
- SET_BITS_TO_LE_2BYTE((u8 *)(&pwrmode) + 8, 0, 16,
587
- mac->vif->bss_conf.beacon_int);
566
+ le16p_replace_bits((__le16 *)(((u8 *)(&pwrmode) + 8)),
567
+ mac->vif->bss_conf.beacon_int, GENMASK(15, 0));
588568 pwrmode.app_itv = 0;
589569 pwrmode.awake_bcn_itvl = ppsc->reg_max_lps_awakeintvl;
590570 pwrmode.smart_ps = 1;
....@@ -626,9 +606,10 @@
626606 joinbss_rpt.bssid[3] = mac->bssid[3];
627607 joinbss_rpt.bssid[4] = mac->bssid[4];
628608 joinbss_rpt.bssid[5] = mac->bssid[5];
629
- SET_BITS_TO_LE_2BYTE((u8 *)(&joinbss_rpt) + 8, 0, 16,
630
- mac->vif->bss_conf.beacon_int);
631
- SET_BITS_TO_LE_2BYTE((u8 *)(&joinbss_rpt) + 10, 0, 16, mac->assoc_id);
609
+ le16p_replace_bits((__le16 *)(((u8 *)(&joinbss_rpt) + 8)),
610
+ mac->vif->bss_conf.beacon_int, GENMASK(15, 0));
611
+ le16p_replace_bits((__le16 *)(((u8 *)(&joinbss_rpt) + 10)),
612
+ mac->assoc_id, GENMASK(15, 0));
632613
633614 _rtl92s_firmware_set_h2c_cmd(hw, FW_H2C_JOINBSSRPT, (u8 *)&joinbss_rpt);
634615 }