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; + } if (i == 0) pT01->T01_transmit_rate = ctmp2; -- 1.7.0.2 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel