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

Pekka Enberg penberg at cs.helsinki.fi
Thu Mar 18 16:25:49 UTC 2010


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 at coyote.org>
> 
> Signed-off-by: Lars Lindley <lindley at coyote.org>
> ---
>  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 at cs.helsinki.fi>

			Pekka



More information about the devel mailing list