* [PATCH] rtlwifi: Fix reusable codes in core.c
@ 2016-02-02 15:48 Byeoungwook Kim
2016-02-02 22:15 ` Julian Calaby
0 siblings, 1 reply; 3+ messages in thread
From: Byeoungwook Kim @ 2016-02-02 15:48 UTC (permalink / raw)
To: kvalo; +Cc: Larry.Finger, chaoming_li, linux-wireless, netdev, linux-kernel
rtl_*_delay() functions were reused same codes about addr variable.
So i have converted to rtl_addr_delay() from code about addr variable.
Conditional codes in rtl_addr_delay() were improved in readability and
performance by using switch codes.
Signed-off-by: Byeoungwook Kim <quddnr145@gmail.com>
---
drivers/net/wireless/realtek/rtlwifi/core.c | 48 +++++++++++------------------
1 file changed, 18 insertions(+), 30 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtlwifi/core.c b/drivers/net/wireless/realtek/rtlwifi/core.c
index 4ae421e..c1193d1 100644
--- a/drivers/net/wireless/realtek/rtlwifi/core.c
+++ b/drivers/net/wireless/realtek/rtlwifi/core.c
@@ -37,36 +37,34 @@
void rtl_addr_delay(u32 addr)
{
- if (addr == 0xfe)
+ switch (addr) {
+ case 0xfe:
mdelay(50);
- else if (addr == 0xfd)
+ break;
+ case 0xfd:
mdelay(5);
- else if (addr == 0xfc)
+ break;
+ case 0xfc:
mdelay(1);
- else if (addr == 0xfb)
+ break;
+ case 0xfb:
udelay(50);
- else if (addr == 0xfa)
+ break;
+ case 0xfa:
udelay(5);
- else if (addr == 0xf9)
+ break;
+ case 0xf9:
udelay(1);
+ break;
+ };
}
EXPORT_SYMBOL(rtl_addr_delay);
void rtl_rfreg_delay(struct ieee80211_hw *hw, enum radio_path rfpath, u32 addr,
u32 mask, u32 data)
{
- if (addr == 0xfe) {
- mdelay(50);
- } else if (addr == 0xfd) {
- mdelay(5);
- } else if (addr == 0xfc) {
- mdelay(1);
- } else if (addr == 0xfb) {
- udelay(50);
- } else if (addr == 0xfa) {
- udelay(5);
- } else if (addr == 0xf9) {
- udelay(1);
+ if (addr >= 0xf9 && addr <= 0xfe) {
+ rtl_addr_delay(addr);
} else {
rtl_set_rfreg(hw, rfpath, addr, mask, data);
udelay(1);
@@ -76,18 +74,8 @@ EXPORT_SYMBOL(rtl_rfreg_delay);
void rtl_bb_delay(struct ieee80211_hw *hw, u32 addr, u32 data)
{
- if (addr == 0xfe) {
- mdelay(50);
- } else if (addr == 0xfd) {
- mdelay(5);
- } else if (addr == 0xfc) {
- mdelay(1);
- } else if (addr == 0xfb) {
- udelay(50);
- } else if (addr == 0xfa) {
- udelay(5);
- } else if (addr == 0xf9) {
- udelay(1);
+ if (addr >= 0xf9 && addr <= 0xfe) {
+ rtl_addr_delay(addr);
} else {
rtl_set_bbreg(hw, addr, MASKDWORD, data);
udelay(1);
--
2.5.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] rtlwifi: Fix reusable codes in core.c
2016-02-02 15:48 [PATCH] rtlwifi: Fix reusable codes in core.c Byeoungwook Kim
@ 2016-02-02 22:15 ` Julian Calaby
[not found] ` <CAOxTRzoGkNUy2FRUQLg_01D5p6Bjxfs+w8iEJJrkM2pTdkdC5Q@mail.gmail.com>
0 siblings, 1 reply; 3+ messages in thread
From: Julian Calaby @ 2016-02-02 22:15 UTC (permalink / raw)
To: Byeoungwook Kim
Cc: Kalle Valo, Larry Finger, Chaoming Li, linux-wireless, netdev,
linux-kernel@vger.kernel.org
Hi Byeoungwook,
On Wed, Feb 3, 2016 at 2:48 AM, Byeoungwook Kim <quddnr145@gmail.com> wrote:
> rtl_*_delay() functions were reused same codes about addr variable.
> So i have converted to rtl_addr_delay() from code about addr variable.
>
> Conditional codes in rtl_addr_delay() were improved in readability and
> performance by using switch codes.
>
> Signed-off-by: Byeoungwook Kim <quddnr145@gmail.com>
> ---
> drivers/net/wireless/realtek/rtlwifi/core.c | 48 +++++++++++------------------
> 1 file changed, 18 insertions(+), 30 deletions(-)
>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/core.c b/drivers/net/wireless/realtek/rtlwifi/core.c
> index 4ae421e..c1193d1 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/core.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/core.c
> @@ -37,36 +37,34 @@
>
> void rtl_addr_delay(u32 addr)
> {
> - if (addr == 0xfe)
> + switch (addr) {
> + case 0xfe:
> mdelay(50);
> - else if (addr == 0xfd)
> + break;
> + case 0xfd:
> mdelay(5);
> - else if (addr == 0xfc)
> + break;
> + case 0xfc:
> mdelay(1);
> - else if (addr == 0xfb)
> + break;
> + case 0xfb:
> udelay(50);
> - else if (addr == 0xfa)
> + break;
> + case 0xfa:
> udelay(5);
> - else if (addr == 0xf9)
> + break;
> + case 0xf9:
> udelay(1);
> + break;
> + };
As you're introducing a case statement here, you could consolidate the
addresses that have the same delays, i.e.
case 0xfe:
case 0xfb:
mdelay(50);
break;
also, you should arguably be doing this cleanup in a separate patch, i.e.
1. Convert open coded instances to use this function (i.e. the changes
below this comment)
2. Improve the function
> }
> EXPORT_SYMBOL(rtl_addr_delay);
>
> void rtl_rfreg_delay(struct ieee80211_hw *hw, enum radio_path rfpath, u32 addr,
> u32 mask, u32 data)
> {
> - if (addr == 0xfe) {
> - mdelay(50);
> - } else if (addr == 0xfd) {
> - mdelay(5);
> - } else if (addr == 0xfc) {
> - mdelay(1);
> - } else if (addr == 0xfb) {
> - udelay(50);
> - } else if (addr == 0xfa) {
> - udelay(5);
> - } else if (addr == 0xf9) {
> - udelay(1);
> + if (addr >= 0xf9 && addr <= 0xfe) {
> + rtl_addr_delay(addr);
> } else {
> rtl_set_rfreg(hw, rfpath, addr, mask, data);
> udelay(1);
> @@ -76,18 +74,8 @@ EXPORT_SYMBOL(rtl_rfreg_delay);
>
> void rtl_bb_delay(struct ieee80211_hw *hw, u32 addr, u32 data)
> {
> - if (addr == 0xfe) {
> - mdelay(50);
> - } else if (addr == 0xfd) {
> - mdelay(5);
> - } else if (addr == 0xfc) {
> - mdelay(1);
> - } else if (addr == 0xfb) {
> - udelay(50);
> - } else if (addr == 0xfa) {
> - udelay(5);
> - } else if (addr == 0xf9) {
> - udelay(1);
> + if (addr >= 0xf9 && addr <= 0xfe) {
> + rtl_addr_delay(addr);
> } else {
> rtl_set_bbreg(hw, addr, MASKDWORD, data);
> udelay(1);
Thanks,
--
Julian Calaby
Email: julian.calaby@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] rtlwifi: Fix reusable codes in core.c
[not found] ` <CAOxTRzoGkNUy2FRUQLg_01D5p6Bjxfs+w8iEJJrkM2pTdkdC5Q@mail.gmail.com>
@ 2016-02-03 0:54 ` Julian Calaby
0 siblings, 0 replies; 3+ messages in thread
From: Julian Calaby @ 2016-02-03 0:54 UTC (permalink / raw)
To: ByeoungWook Kim
Cc: Kalle Valo, Larry Finger, Chaoming Li, linux-wireless, netdev,
linux-kernel@vger.kernel.org
Hi ByeoungWook,
On Wed, Feb 3, 2016 at 11:52 AM, ByeoungWook Kim <quddnr145@gmail.com> wrote:
> Hi Julian,
>
> 0xfe and 0xfb was not same codes.
> 0xfe is udelay(50). and 0xfb is mdelay(50).
> It same code like udelay((n) * 1000).
I'm clearly blind! Sorry about that!
> but i agree with your answers of some parts. I think that i should divide
> into separate patch.
> Thanks for your assists!
Not a problem!
Thanks,
--
Julian Calaby
Email: julian.calaby@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-02-03 0:54 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-02 15:48 [PATCH] rtlwifi: Fix reusable codes in core.c Byeoungwook Kim
2016-02-02 22:15 ` Julian Calaby
[not found] ` <CAOxTRzoGkNUy2FRUQLg_01D5p6Bjxfs+w8iEJJrkM2pTdkdC5Q@mail.gmail.com>
2016-02-03 0:54 ` Julian Calaby
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).