Subject: Re: [PATCH 2/2] Using LP firmware for taking advantage of the low-power capabilities.

From: Larry Finger <[email-masked]>
Date: Wed, 19 Sep 2012 10:08:33 -0500

On 09/19/2012 06:18 AM, Jarl Friis wrote:
> This is using the LP specific firmware to better take advantage of the
> Low-Power capabilities.
>
> Signed-off-by: Jarl Friis <[email-masked]>
> ---
>   drivers/net/wireless/b43/main.c |   16 ++++++++++++++--
>   1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
> index 202a0eb..9ee6030 100644
> --- a/drivers/net/wireless/b43/main.c
> +++ b/drivers/net/wireless/b43/main.c
> @@ -8,6 +8,7 @@
>     Copyright (c) 2005 Danny van Dyk <[email-masked]>
>     Copyright (c) 2005 Andreas Jaggi <[email-masked]>
>     Copyright (c) 2010-2011 Rafał Miłecki <[email-masked]>
> +  Copyright (c) 2012 Jarl Friis <[email-masked]>
>
>     SDIO support
>     Copyright (c) 2009 Albert Herranz <[email-masked]>
> @@ -72,6 +73,7 @@ MODULE_FIRMWARE("b43/ucode11.fw");
>   MODULE_FIRMWARE("b43/ucode13.fw");
>   MODULE_FIRMWARE("b43/ucode14.fw");
>   MODULE_FIRMWARE("b43/ucode15.fw");
> +MODULE_FIRMWARE("b43/ucode16_lp.fw");
>   MODULE_FIRMWARE("b43/ucode16_mimo.fw");
>   MODULE_FIRMWARE("b43/ucode5.fw");
>   MODULE_FIRMWARE("b43/ucode9.fw");
> @@ -2208,6 +2210,12 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
>   			else
>   				goto err_no_ucode;
>   			break;
> +		case B43_PHYTYPE_LP:
> +			if (rev >= 16)
> +				filename = "ucode16_lp";
> +			else
> +				goto err_no_ucode;
> +			break;
>   		case B43_PHYTYPE_HT:
>   			if (rev == 29)
>   				filename = "ucode29_mimo";
> @@ -2277,8 +2285,10 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
>   			filename = "lp0initvals13";
>   		else if (rev == 14)
>   			filename = "lp0initvals14";
> -		else if (rev >= 15)
> +		else if (rev == 15)
>   			filename = "lp0initvals15";
> +		else if (rev >= 16)
> +			filename = "lp0initvals16";
>   		else
>   			goto err_no_initvals;
>   		break;
> @@ -2336,8 +2346,10 @@ static int b43_try_request_fw(struct b43_request_fw_context *ctx)
>   			filename = "lp0bsinitvals13";
>   		else if (rev == 14)
>   			filename = "lp0bsinitvals14";
> -		else if (rev >= 15)
> +		else if (rev == 15)
>   			filename = "lp0bsinitvals15";
> +		else if (rev >= 16)
> +			filename = "lp0bsinitvals16";
>   		else
>   			goto err_no_initvals;
>   		break;

I have some questions about this patch. Where did you get the information needed 
to make these changes? Did it come from reverse engineering some Broadcom code, 
or did you look at their actual code? There is a great deal of difference 
relative to our "clean-room" status. Anyone that has seen non-GPL Broadcom 
material cannot contribute code to b43.

Have you tested this code on devices with rev>=16?

Now for some comments: This patch also needs the "b43:" added to the subject. In 
addition, you appear to have at least one white-space error in the 
MODULE_FIRMWARE line. Is the addition of your copyright to the driver warranted 
by this change? For example, I have made much larger contributions to b43 over 
the years before I started doing reverse-engineering on this driver, but I never 
added my copyright. Your "Signed-off-by" implies copyright for the patch.

Larry