[PATCH] wlcore: Fix regression in wlcore_set_partition()

Subsystems: the rest, ti wilink wireless drivers

STALE3836d

3 messages, 3 authors, 2016-02-15 · open the first message on its own page

[PATCH] wlcore: Fix regression in wlcore_set_partition()

From: Emil Goode <hidden>
Date: 2016-02-10 01:21:49

The below commit introduced a regression causing the wlcore
to time out and go into recovery.

commit 3719c17e1816695f415dd3b4ddcb679f7dc617c8
("wlcore/wl18xx: fw logger over sdio")

Reverting the changes regarding write of the last partition size
brings the module back to it's functional state.

Reported-by: Ross Green <redacted>
Signed-off-by: Emil Goode <redacted>
---
 drivers/net/wireless/ti/wlcore/io.c | 8 ++++----
 drivers/net/wireless/ti/wlcore/io.h | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/net/wireless/ti/wlcore/io.c b/drivers/net/wireless/ti/wlcore/io.c
index 9ac118e..564ca75 100644
--- a/drivers/net/wireless/ti/wlcore/io.c
+++ b/drivers/net/wireless/ti/wlcore/io.c
@@ -175,14 +175,14 @@ int wlcore_set_partition(struct wl1271 *wl,
 	if (ret < 0)
 		goto out;
 
+	/* We don't need the size of the last partition, as it is
+	 * automatically calculated based on the total memory size and
+	 * the sizes of the previous partitions.
+	 */
 	ret = wlcore_raw_write32(wl, HW_PART3_START_ADDR, p->mem3.start);
 	if (ret < 0)
 		goto out;
 
-	ret = wlcore_raw_write32(wl, HW_PART3_SIZE_ADDR, p->mem3.size);
-	if (ret < 0)
-		goto out;
-
 out:
 	return ret;
 }
diff --git a/drivers/net/wireless/ti/wlcore/io.h b/drivers/net/wireless/ti/wlcore/io.h
index 6c257b5..10cf374 100644
--- a/drivers/net/wireless/ti/wlcore/io.h
+++ b/drivers/net/wireless/ti/wlcore/io.h
@@ -36,8 +36,8 @@
 #define HW_PART1_START_ADDR             (HW_PARTITION_REGISTERS_ADDR + 12)
 #define HW_PART2_SIZE_ADDR              (HW_PARTITION_REGISTERS_ADDR + 16)
 #define HW_PART2_START_ADDR             (HW_PARTITION_REGISTERS_ADDR + 20)
-#define HW_PART3_SIZE_ADDR              (HW_PARTITION_REGISTERS_ADDR + 24)
-#define HW_PART3_START_ADDR             (HW_PARTITION_REGISTERS_ADDR + 28)
+#define HW_PART3_START_ADDR             (HW_PARTITION_REGISTERS_ADDR + 24)
+
 #define HW_ACCESS_REGISTER_SIZE         4
 
 #define HW_ACCESS_PRAM_MAX_RANGE	0x3c000
-- 
2.1.4

Re: wlcore: Fix regression in wlcore_set_partition()

From: Kalle Valo <hidden>
Date: 2016-02-12 09:45:31

The commit 3719c17e1816 ("wlcore/wl18xx: fw logger over sdio") introduced a
regression causing the wlcore to time out and go into recovery. Reverting the
changes regarding write of the last partition size brings the module back to
it's functional state.

Fixes: 3719c17e1816 ("wlcore/wl18xx: fw logger over sdio")
Reported-by: Ross Green <redacted>
Signed-off-by: Emil Goode <redacted>
[kvalo@codeaurora.org: improved commit log]
Thanks, applied to wireless-drivers.git.

Kalle Valo

Re: wlcore: Fix regression in wlcore_set_partition()

From: Ross Green <hidden>
Date: 2016-02-15 04:01:54

On Fri, Feb 12, 2016 at 8:45 PM, Kalle Valo [off-list ref] wrote:
quoted
The commit 3719c17e1816 ("wlcore/wl18xx: fw logger over sdio") introduced a
regression causing the wlcore to time out and go into recovery. Reverting the
changes regarding write of the last partition size brings the module back to
it's functional state.

Fixes: 3719c17e1816 ("wlcore/wl18xx: fw logger over sdio")
Reported-by: Ross Green <redacted>
Signed-off-by: Emil Goode <redacted>
[kvalo@codeaurora.org: improved commit log]
Thanks, applied to wireless-drivers.git.

Kalle Valo
I just tested linux-4.5-rc4 it appears the above fix missed the release for rc4!
So the behaviour of firmware reset being called after the access of
the last partition timesout.

Again tested patch with the new release - 4.5-rc4 and found everything
to work as expected again.

So Hopefully for rc5 - Please!

please find attached a copy of the dmesg output for 4.5-rc4

Regards,

Ross Green
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help