mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From cc124d5cc8d81985c3511892d7a6d546552ff754 Mon Sep 17 00:00:00 2001
 | 
						|
From: Wright Feng <wright.feng@cypress.com>
 | 
						|
Date: Tue, 16 Jan 2018 17:26:50 +0800
 | 
						|
Subject: [PATCH] brcmfmac: fix CLM load error for legacy chips when user
 | 
						|
 helper is enabled
 | 
						|
 | 
						|
For legacy chips without CLM blob files, kernel with user helper function
 | 
						|
returns -EAGAIN when we request_firmware(), and then driver got failed
 | 
						|
when bringing up legacy chips. We expect the CLM blob file for legacy chip
 | 
						|
is not existence in firmware path, but the -ENOENT error is transferred to
 | 
						|
-EAGAIN in firmware_class.c with user helper.
 | 
						|
Because of that, we continue with CLM data currently present in firmware
 | 
						|
if getting error from doing request_firmware().
 | 
						|
 | 
						|
Cc: stable@vger.kernel.org # v4.15.y
 | 
						|
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
 | 
						|
Signed-off-by: Wright Feng <wright.feng@cypress.com>
 | 
						|
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
 | 
						|
---
 | 
						|
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c | 9 +++------
 | 
						|
 1 file changed, 3 insertions(+), 6 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
 | 
						|
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
 | 
						|
@@ -182,12 +182,9 @@ static int brcmf_c_process_clm_blob(stru
 | 
						|
 
 | 
						|
 	err = request_firmware(&clm, clm_name, dev);
 | 
						|
 	if (err) {
 | 
						|
-		if (err == -ENOENT) {
 | 
						|
-			brcmf_dbg(INFO, "continue with CLM data currently present in firmware\n");
 | 
						|
-			return 0;
 | 
						|
-		}
 | 
						|
-		brcmf_err("request CLM blob file failed (%d)\n", err);
 | 
						|
-		return err;
 | 
						|
+		brcmf_info("no clm_blob available(err=%d), device may have limited channels available\n",
 | 
						|
+			   err);
 | 
						|
+		return 0;
 | 
						|
 	}
 | 
						|
 
 | 
						|
 	chunk_buf = kzalloc(sizeof(*chunk_buf) + MAX_CHUNK_LEN - 1, GFP_KERNEL);
 |