Re: [PATCH] staging: winbond: mds.c: converted long if-else to switch

From: Pekka Enberg
Date: Thu Mar 18 2010 - 13:13:15 EST


Lars Lindley wrote:
I converted the long if-else in function Mds_HeaderCopy() to a switch
instead. It compiles fine but i don't have the hardware to test.
Please check that I didn't do anything bad to it..
The patch applies on top of this patch:
Message-Id: <1268670973-6223-1-git-send-email-lindley@xxxxxxxxxx>

Signed-off-by: Lars Lindley <lindley@xxxxxxxxxx>
---
drivers/staging/winbond/mds.c | 38 +++++++++++++++++++++++---------------
1 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/drivers/staging/winbond/mds.c b/drivers/staging/winbond/mds.c
index ef08b51..6082fa8 100644
--- a/drivers/staging/winbond/mds.c
+++ b/drivers/staging/winbond/mds.c
@@ -400,30 +400,38 @@ static void Mds_HeaderCopy(struct wbsoft_priv *adapter,
* back rate
*/
- if (ctmp1 == 108)
+ switch (ctmp1) {
+ case 108:
ctmp2 = 7;
- else if (ctmp1 == 96)
+ break;
+ case 96:
ctmp2 = 6; /* Rate convert for USB */
- else if (ctmp1 == 72)
+ break;
+ case 72:
ctmp2 = 5;
- else if (ctmp1 == 48)
+ break;
+ case 48:
ctmp2 = 4;
- else if (ctmp1 == 36)
+ break;
+ case 36:
+ case 22:
ctmp2 = 3;
- else if (ctmp1 == 24)
+ break;
+ case 24:
+ case 11:
ctmp2 = 2;
- else if (ctmp1 == 18)
+ break;
+ case 18:
+ case 4:
ctmp2 = 1;
- else if (ctmp1 == 12)
+ break;
+ case 12:
ctmp2 = 0;
- else if (ctmp1 == 22)
- ctmp2 = 3;
- else if (ctmp1 == 11)
- ctmp2 = 2;
- else if (ctmp1 == 4)
- ctmp2 = 1;
- else
+ break;
+ default:
ctmp2 = 0; /* if (ctmp1 == 2) or default */
+ break;
+ }

Reordering the checks makes the patch harder to review but yeah, looks good to me.

Acked-by: Pekka Enberg <penberg@xxxxxxxxxxxxxx>

Pekka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/