Linux wireless drivers development
 help / color / mirror / Atom feed
From: Luciano Coelho <coelho@ti.com>
To: Shahar Levi <shahar_levi@ti.com>
Cc: linux-wireless@vger.kernel.org
Subject: Re: [PATCH 05/15] wl12xx: 1281/1283 support - Loading FW & NVS
Date: Thu, 10 Mar 2011 23:13:48 +0200	[thread overview]
Message-ID: <1299791628.1816.125.camel@cumari> (raw)
In-Reply-To: <1299421940-26292-6-git-send-email-shahar_levi@ti.com>

> diff --git a/drivers/net/wireless/wl12xx/boot.c b/drivers/net/wireless/wl12xx/boot.c
> index 69fe870..7984631 100644
> --- a/drivers/net/wireless/wl12xx/boot.c
> +++ b/drivers/net/wireless/wl12xx/boot.c
> @@ -240,36 +240,62 @@ static int wl1271_boot_upload_nvs(struct wl1271 *wl)
>  	u32 dest_addr, val;
>  	u8 *nvs_ptr, *nvs_aligned;
>  
> -	if (wl->nvs == NULL)
> -		return -ENODEV;
> +	if (wl->chip.id == CHIP_ID_1283_PG20) {
> +		struct wl128x_nvs_file *nvs = (struct wl128x_nvs_file *)wl->nvs;
> +
> +		if (nvs == NULL)
> +			return -ENODEV;
> +
> +		if (wl->nvs_len == sizeof(struct wl128x_nvs_file)) {
> +			if (nvs->general_params.dual_mode_select)
> +				wl->enable_11a = true;
> +		} else {
> +			wl1271_error("nvs size is not as expected: %zu != %zu",
> +				     wl->nvs_len,
> +				     sizeof(struct wl128x_nvs_file));
> +			kfree(nvs);
> +			nvs = NULL;

This is wrong.  You're just setting the local nvs variable to NULL.
It's wl->nvs that should be set to NULL instead.


> +			wl->nvs_len = 0;
> +			return -EILSEQ;
> +		}
>  
> -	/*
> -	 * FIXME: the LEGACY NVS image support (NVS's missing the 5GHz band
> -	 * configurations) can be removed when those NVS files stop floating
> -	 * around.
> -	 */
> -	if (wl->nvs_len == sizeof(struct wl1271_nvs_file) ||
> -	    wl->nvs_len == WL1271_INI_LEGACY_NVS_FILE_SIZE) {
> -		/* for now 11a is unsupported in AP mode */
> -		if (wl->bss_type != BSS_TYPE_AP_BSS &&
> -		    wl->nvs->general_params.dual_mode_select)
> -			wl->enable_11a = true;
> -	}
> +		/* only the first part of the NVS needs to be uploaded */
> +		nvs_len = sizeof(nvs->nvs);
> +		nvs_ptr = (u8 *)nvs->nvs;
>  
> -	if (wl->nvs_len != sizeof(struct wl1271_nvs_file) &&
> -	    (wl->nvs_len != WL1271_INI_LEGACY_NVS_FILE_SIZE ||
> -	     wl->enable_11a)) {
> -		wl1271_error("nvs size is not as expected: %zu != %zu",
> -			     wl->nvs_len, sizeof(struct wl1271_nvs_file));
> -		kfree(wl->nvs);
> -		wl->nvs = NULL;

Same thing here.  I have fixed these.

This was causing very bad behaviour when the NVS was with the wrong
size, because we were not setting wl->nvs to NULL, but were setting
wl->nvs_len to 0.


-- 
Cheers,
Luca.


  reply	other threads:[~2011-03-10 21:13 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-06 14:32 [PATCH 00/15] wl12xx: 1281/1283 support Shahar Levi
2011-03-06 14:32 ` [PATCH 01/15] wl12xx: 1281/1283 support - move IRQ polarity Shahar Levi
2011-03-06 14:32 ` [PATCH 02/15] wl12xx: 1281/1283 support - Add Definitions Shahar Levi
2011-03-06 14:32 ` [PATCH 03/15] wl12xx: 1281/1283 support - Add acx commands Shahar Levi
2011-03-07 12:53   ` [PATCH] wl12xx: fixes for " Luciano Coelho
2011-03-07 12:55     ` Luciano Coelho
2011-03-08  7:57     ` [PATCH v2] " Luciano Coelho
2011-03-08 16:56       ` Levi, Shahar
2011-03-06 14:32 ` [PATCH 04/15] wl12xx: 1281/1283 support - New radio struc & func Shahar Levi
2011-03-06 14:32 ` [PATCH 05/15] wl12xx: 1281/1283 support - Loading FW & NVS Shahar Levi
2011-03-10 21:13   ` Luciano Coelho [this message]
2011-03-06 14:32 ` [PATCH 06/15] wl12xx: 1281/1283 support - New boot sequence Shahar Levi
2011-03-08 13:11   ` Luciano Coelho
2011-03-08 18:08     ` Levi, Shahar
2011-03-09  8:12       ` Luciano Coelho
2011-03-08 13:37   ` [PATCH] wl12xx: fixes for " Luciano Coelho
2011-03-08 18:15     ` Levi, Shahar
2011-03-09  8:16       ` Luciano Coelho
2011-03-06 14:32 ` [PATCH 07/15] wl12xx: 1281/1283 support - Set mem conf & dynamic mem Shahar Levi
2011-03-06 14:32 ` [PATCH 08/15] wl12xx: 1281/1283 support - Improve Tx & Rx path Shahar Levi
2011-03-09  8:41   ` Luciano Coelho
2011-03-06 14:32 ` [PATCH 09/15] wl12xx: 1281/1283 support - Add dummy packet support Shahar Levi
2011-03-06 14:32 ` [PATCH 10/15] wl12xx: 1281/1283 support - Set WiFi & BT cox Shahar Levi
2011-03-09 14:37   ` Luciano Coelho
2011-03-09 17:39     ` Levi, Shahar
2011-03-09 18:15       ` Luciano Coelho
2011-03-06 14:32 ` [PATCH 11/15] wl12xx: 1281/1283 support - Add chip interrupt pacing Shahar Levi
2011-03-06 14:32 ` [PATCH 12/15] wl12xx: 1281/1283 support - Use 1 spare blocks for 128x STA, and 2 for the rest Shahar Levi
2011-03-06 14:32 ` [PATCH 13/15] wl12xx: 1281/1283 support - Use different FW file for AP mode wl127x/wl128x chips Shahar Levi
2011-03-06 14:32 ` [PATCH 14/15] wl12xx: 1281/1283 support - disable TX aggregation for AP mode in wl128x Shahar Levi
     [not found]   ` <AANLkTik8TYGmg3hekoN546ToRDxi5HJeoq75R29WfSxt@mail.gmail.com>
2011-03-06 15:38     ` Arik Nemtsov
2011-03-06 14:32 ` [PATCH 15/15] wl12xx: 1281/1283 support - enable chip support Shahar Levi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1299791628.1816.125.camel@cumari \
    --to=coelho@ti.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=shahar_levi@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox