Skip to content

Commit 49f86ec

Browse files
lwfingerKalle Valo
authored andcommitted
rtlwifi: Change long delays to sleeps
Routine rtl_addr_delay() uses delay statements in code that can sleep. To improve system responsiveness, the various delay statements are changed. In addition, routines rtl_rfreg_delay() and rtl_bb_delay() are rewritten to use the code in rtl_addr_delay() for most of their input values. Suggested-by: Byeoungwook Kim <[email protected]> Signed-off-by: Larry Finger <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
1 parent 2f10e50 commit 49f86ec

File tree

1 file changed

+12
-32
lines changed
  • drivers/net/wireless/realtek/rtlwifi

1 file changed

+12
-32
lines changed

drivers/net/wireless/realtek/rtlwifi/core.c

Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -54,59 +54,39 @@ EXPORT_SYMBOL(channel5g_80m);
5454
void rtl_addr_delay(u32 addr)
5555
{
5656
if (addr == 0xfe)
57-
mdelay(50);
57+
msleep(50);
5858
else if (addr == 0xfd)
59-
mdelay(5);
59+
msleep(5);
6060
else if (addr == 0xfc)
61-
mdelay(1);
61+
msleep(1);
6262
else if (addr == 0xfb)
63-
udelay(50);
63+
usleep_range(50, 100);
6464
else if (addr == 0xfa)
65-
udelay(5);
65+
usleep_range(5, 10);
6666
else if (addr == 0xf9)
67-
udelay(1);
67+
usleep_range(1, 2);
6868
}
6969
EXPORT_SYMBOL(rtl_addr_delay);
7070

7171
void rtl_rfreg_delay(struct ieee80211_hw *hw, enum radio_path rfpath, u32 addr,
7272
u32 mask, u32 data)
7373
{
74-
if (addr == 0xfe) {
75-
mdelay(50);
76-
} else if (addr == 0xfd) {
77-
mdelay(5);
78-
} else if (addr == 0xfc) {
79-
mdelay(1);
80-
} else if (addr == 0xfb) {
81-
udelay(50);
82-
} else if (addr == 0xfa) {
83-
udelay(5);
84-
} else if (addr == 0xf9) {
85-
udelay(1);
74+
if (addr >= 0xf9 && addr <= 0xfe) {
75+
rtl_addr_delay(addr);
8676
} else {
8777
rtl_set_rfreg(hw, rfpath, addr, mask, data);
88-
udelay(1);
78+
usleep_range(1, 2);
8979
}
9080
}
9181
EXPORT_SYMBOL(rtl_rfreg_delay);
9282

9383
void rtl_bb_delay(struct ieee80211_hw *hw, u32 addr, u32 data)
9484
{
95-
if (addr == 0xfe) {
96-
mdelay(50);
97-
} else if (addr == 0xfd) {
98-
mdelay(5);
99-
} else if (addr == 0xfc) {
100-
mdelay(1);
101-
} else if (addr == 0xfb) {
102-
udelay(50);
103-
} else if (addr == 0xfa) {
104-
udelay(5);
105-
} else if (addr == 0xf9) {
106-
udelay(1);
85+
if (addr >= 0xf9 && addr <= 0xfe) {
86+
rtl_addr_delay(addr);
10787
} else {
10888
rtl_set_bbreg(hw, addr, MASKDWORD, data);
109-
udelay(1);
89+
usleep_range(1, 2);
11090
}
11191
}
11292
EXPORT_SYMBOL(rtl_bb_delay);

0 commit comments

Comments
 (0)