[kernel] r15187 - dists/trunk/linux-2.6/debian/patches/features/all

Ben Hutchings benh at alioth.debian.org
Thu Feb 18 13:50:02 UTC 2010


Author: benh
Date: Thu Feb 18 13:49:59 2010
New Revision: 15187

Log:
Update rt28x0sta firmware loader patch for 2.6.33-rc8

Deleted:
   dists/trunk/linux-2.6/debian/patches/features/all/rt3090sta-use-request_firmware.patch
Modified:
   dists/trunk/linux-2.6/debian/patches/features/all/rt28x0sta-use-request_firmware.patch

Modified: dists/trunk/linux-2.6/debian/patches/features/all/rt28x0sta-use-request_firmware.patch
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/features/all/rt28x0sta-use-request_firmware.patch	Thu Feb 18 13:49:31 2010	(r15186)
+++ dists/trunk/linux-2.6/debian/patches/features/all/rt28x0sta-use-request_firmware.patch	Thu Feb 18 13:49:59 2010	(r15187)
@@ -1,7 +1,5 @@
-From 96fa9ac6fbf64117221dcfcdcc03f64d77ae6901 Mon Sep 17 00:00:00 2001
 From: Ben Hutchings <ben at decadent.org.uk>
-Date: Sun, 28 Jun 2009 15:51:07 +0100
-Subject: [PATCH] rt{2860,2870}sta: Use request_firmware() to load firmware
+Subject: [PATCH] Staging: rt{2860,2870}sta: Use request_firmware() to load firmware
 
 When originally introduced into staging, these drivers had custom
 firmware-loading code which checked a version number and CRC at the
@@ -12,92 +10,88 @@
 repository.
 
 Based on work by Darren Salt <linux at youmustbejoking.demon.co.uk>.
----
- drivers/staging/rt2860/Kconfig            |    3 +-
- drivers/staging/rt2860/common/rtmp_init.c |  144 +++++++++++++++++-----------
- drivers/staging/rt2860/rt_linux.c         |    3 +
- drivers/staging/rt2860/rtmp.h             |    1 +
- drivers/staging/rt2870/Kconfig            |    3 +-
- 5 files changed, 95 insertions(+), 59 deletions(-)
 
-diff --git a/drivers/staging/rt2860/Kconfig b/drivers/staging/rt2860/Kconfig
-index 6dff527..b98aba7 100644
 --- a/drivers/staging/rt2860/Kconfig
 +++ b/drivers/staging/rt2860/Kconfig
-@@ -1,6 +1,7 @@
- config RT2860
- 	tristate "Ralink 2860 wireless support"
--	depends on BROKEN
+@@ -3,6 +3,8 @@ config RT2860
  	depends on PCI && X86 && WLAN
+ 	select WIRELESS_EXT
+ 	select WEXT_PRIV
 +	select CRC_CCITT
 +	select FW_LOADER
  	---help---
- 	  This is an experimental driver for the Ralink 2860 wireless chip.
-diff --git a/drivers/staging/rt2860/common/rtmp_init.c b/drivers/staging/rt2860/common/rtmp_init.c
-index 20c2ce2..a575f4f 100644
---- a/drivers/staging/rt2860/common/rtmp_init.c
-+++ b/drivers/staging/rt2860/common/rtmp_init.c
-@@ -38,14 +38,8 @@
-     Jan Lee  2006-09-15    RT2860. Change for 802.11n , EEPROM, Led, BA, HT.
- */
- #include "../rt_config.h"
--#ifdef RT2860
+ 	  This is an experimental driver for the Ralink 2860 and 3090
+ 	  wireless chips.
+--- a/drivers/staging/rt2860/common/rtmp_mcu.c
++++ b/drivers/staging/rt2860/common/rtmp_mcu.c
+@@ -37,35 +37,38 @@
+ 
+ #include	"../rt_config.h"
+ 
+-#if defined(RT2860) || defined(RT3090)
 -#include "firmware.h"
--#include <linux/bitrev.h>
+-#include "../../rt3090/firmware.h"
 -#endif
 -#ifdef RT2870
--/* New firmware handles both RT2870 and RT3070. */
 -#include "../../rt3070/firmware.h"
+-#include "firmware_3070.h"
 -#endif
-+#include <linux/firmware.h>
+-
+-#include <linux/bitrev.h>
 +#include <linux/crc-ccitt.h>
++#include <linux/firmware.h>
  
- UCHAR    BIT8[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
- ULONG    BIT32[] = {0x00000001, 0x00000002, 0x00000004, 0x00000008,
-@@ -174,23 +168,25 @@ RTMP_REG_PAIR	STAMACRegTable[] =	{
- #define	NUM_STA_MAC_REG_PARMS	(sizeof(STAMACRegTable) / sizeof(RTMP_REG_PAIR))
- 
- #ifdef RT2870
--//
--// RT2870 Firmware Spec only used 1 oct for version expression
--//
+ #ifdef RTMP_MAC_USB
+-/* */
+-/* RT2870 Firmware Spec only used 1 oct for version expression */
+-/* */
 -#define FIRMWARE_MINOR_VERSION	7
+-#endif /* RTMP_MAC_USB // */
  
--#endif // RT2870 //
+-/* New 8k byte firmware size for RT3071/RT3072 */
+-#define FIRMWAREIMAGE_MAX_LENGTH	0x2000
+-#define FIRMWAREIMAGE_LENGTH			(sizeof (FirmwareImage) / sizeof(u8))
+-#define FIRMWARE_MAJOR_VERSION		0
 +#define FIRMWAREIMAGE_LENGTH		0x1000
  
--// New 8k byte firmware size for RT3071/RT3072
--#define FIRMWAREIMAGE_MAX_LENGTH	0x2000
--#define FIRMWAREIMAGE_LENGTH		(sizeof (FirmwareImage) / sizeof(UCHAR))
--#define FIRMWARE_MAJOR_VERSION	0
-+#define FIRMWARE_2870_MIN_VERSION       12
-+#define FIRMWARE_2870_FILENAME          "rt2870.bin"	/* for RT2870/RT3070 */
+-#define FIRMWAREIMAGEV1_LENGTH		0x1000
+-#define FIRMWAREIMAGEV2_LENGTH		0x1000
++#define FIRMWARE_2870_MIN_VERSION	12
++#define FIRMWARE_2870_FILENAME		"rt2870.bin"
 +MODULE_FIRMWARE(FIRMWARE_2870_FILENAME);
  
--#define FIRMWAREIMAGEV1_LENGTH	0x1000
--#define FIRMWAREIMAGEV2_LENGTH	0x1000
-+#define FIRMWARE_3071_MIN_VERSION       2
-+#define FIRMWARE_3071_FILENAME          "rt3071.bin"    /* for RT3071/RT3072 */
+-#ifdef RTMP_MAC_PCI
+-#define FIRMWARE_MINOR_VERSION		2
+-#endif /* RTMP_MAC_PCI // */
++#define FIRMWARE_3070_MIN_VERSION	17
++#define FIRMWARE_3070_FILENAME		"rt3070.bin"
++MODULE_FIRMWARE(FIRMWARE_3070_FILENAME);
++
++#define FIRMWARE_3071_MIN_VERSION	17
++#define FIRMWARE_3071_FILENAME		"rt3071.bin"	/* for RT3071/RT3072 */
 +MODULE_FIRMWARE(FIRMWARE_3071_FILENAME);
 +
-+#else /* RT2860 */
++#else /* RTMP_MAC_PCI */
 +
 +#define FIRMWAREIMAGE_LENGTH		0x2000
 +
-+#define FIRMWARE_2860_MIN_VERSION       11
-+#define FIRMWARE_2860_FILENAME          "rt2860.bin"
++#define FIRMWARE_2860_MIN_VERSION	11
++#define FIRMWARE_2860_FILENAME		"rt2860.bin"
 +MODULE_FIRMWARE(FIRMWARE_2860_FILENAME);
++
++#define FIRMWARE_3090_MIN_VERSION	19
++#define FIRMWARE_3090_FILENAME		"rt3090.bin"	/* for RT3090/RT3390 */
++MODULE_FIRMWARE(FIRMWARE_3090_FILENAME);
++
++#endif
  
--#ifdef RT2860
--#define FIRMWARE_MINOR_VERSION	2
- #endif
- 
- 
-@@ -2955,6 +2951,70 @@ VOID NICEraseFirmware(
- 
- }/* End of NICEraseFirmware */
+ /*
+ 	========================================================================
+@@ -90,6 +93,78 @@ int RtmpAsicEraseFirmware(struct rt_rtmp_adapter *pAd)
+ 	return 0;
+ }
  
-+static const struct firmware *rtmp_get_firmware(PRTMP_ADAPTER adapter)
++static const struct firmware *rtmp_get_firmware(struct rt_rtmp_adapter *adapter)
 +{
 +	const char *name;
 +	const struct firmware *fw = NULL;
@@ -108,19 +102,27 @@
 +	if (adapter->firmware)
 +		return adapter->firmware;
 +
-+#ifdef RT2870
++#ifdef RTMP_MAC_USB
 +	if (IS_RT3071(adapter)) {
 +		name = FIRMWARE_3071_FILENAME;
 +		min_version = FIRMWARE_3071_MIN_VERSION;
++	} else if (IS_RT3070(adapter)) {
++		name = FIRMWARE_3070_FILENAME;
++		min_version = FIRMWARE_3070_MIN_VERSION;
 +	} else {
 +		name = FIRMWARE_2870_FILENAME;
 +		min_version = FIRMWARE_2870_MIN_VERSION;
 +	}
-+	dev = &((POS_COOKIE)adapter->OS_Cookie)->pUsb_Dev->dev;
-+#else /* RT2860 */
-+	name = FIRMWARE_2860_FILENAME;
-+	min_version = FIRMWARE_2860_MIN_VERSION;
-+	dev = &((POS_COOKIE)adapter->OS_Cookie)->pci_dev->dev;
++	dev = &((struct os_cookie *)adapter->OS_Cookie)->pUsb_Dev->dev;
++#else /* RTMP_MAC_PCI */
++	if (IS_RT3090(adapter) || IS_RT3390(adapter)) {
++		name = FIRMWARE_3090_FILENAME;
++		min_version = FIRMWARE_3090_MIN_VERSION;
++	} else {
++		name = FIRMWARE_2860_FILENAME;
++		min_version = FIRMWARE_2860_MIN_VERSION;
++	}
++	dev = &((struct os_cookie *)adapter->OS_Cookie)->pci_dev->dev;
 +#endif
 +
 +	err = request_firmware(&fw, name, dev);
@@ -164,61 +166,59 @@
  /*
  	========================================================================
  
-@@ -2975,46 +3035,16 @@ VOID NICEraseFirmware(
- NDIS_STATUS NICLoadFirmware(
- 	IN PRTMP_ADAPTER pAd)
+@@ -109,46 +184,16 @@ int RtmpAsicEraseFirmware(struct rt_rtmp_adapter *pAd)
+ */
+ int RtmpAsicLoadFirmware(struct rt_rtmp_adapter *pAd)
  {
-+	const struct firmware	*fw;
- 	NDIS_STATUS		Status = NDIS_STATUS_SUCCESS;
--	PUCHAR			pFirmwareImage;
--	ULONG			FileLength, Index;
--	//ULONG			firm;
-+	ULONG			Index;
- 	UINT32			MacReg = 0;
--#ifdef RT2870
--	UINT32			Version = (pAd->MACVersion >> 16);
--#endif // RT2870 //
+-
++	const struct firmware *fw;
+ 	int Status = NDIS_STATUS_SUCCESS;
+-	u8 *pFirmwareImage = NULL;
+-	unsigned long FileLength, Index;
++	unsigned long Index;
+ 	u32 MacReg = 0;
+-#ifdef RTMP_MAC_USB
+-	u32 Version = (pAd->MACVersion >> 16);
+-#endif
  
--	pFirmwareImage = FirmwareImage;
--	FileLength = sizeof(FirmwareImage);
--#ifdef RT2870
--	// New 8k byte firmware size for RT3071/RT3072
--	//printk("Usb Chip\n");
--	if (FIRMWAREIMAGE_LENGTH == FIRMWAREIMAGE_MAX_LENGTH)
--	//The firmware image consists of two parts. One is the origianl and the other is the new.
--	//Use Second Part
+-	/* New 8k byte firmware size for RT3071/RT3072 */
 -	{
--		if ((Version != 0x2860) && (Version != 0x2872) && (Version != 0x3070))
--		{	// Use Firmware V2.
--			//printk("KH:Use New Version,part2\n");
--			pFirmwareImage = (PUCHAR)&FirmwareImage[FIRMWAREIMAGEV1_LENGTH];
--			FileLength = FIRMWAREIMAGEV2_LENGTH;
+-#ifdef RTMP_MAC_PCI
+-		if (IS_RT3090(pAd) || IS_RT3390(pAd)) {
+-			pFirmwareImage = FirmwareImage_3090;
+-			FileLength = FIRMWAREIMAGE_MAX_LENGTH;
+-		} else {
+-			pFirmwareImage = FirmwareImage_2860;
+-			FileLength = FIRMWAREIMAGE_MAX_LENGTH;
 -		}
--		else
--		{
--			//printk("KH:Use New Version,part1\n");
--			pFirmwareImage = FirmwareImage;
+-#endif /* RTMP_MAC_PCI // */
+-#ifdef RTMP_MAC_USB
+-		/* the firmware image consists of two parts */
+-		if ((Version != 0x2860) && (Version != 0x2872) && (Version != 0x3070)) {	/* use the second part */
+-			/*printk("KH:Use New Version,part2\n"); */
+-			pFirmwareImage =
+-			    (u8 *)&
+-			    FirmwareImage_3070[FIRMWAREIMAGEV1_LENGTH];
+-			FileLength = FIRMWAREIMAGEV2_LENGTH;
+-		} else {
+-			/*printk("KH:Use New Version,part1\n"); */
+-			if (Version == 0x3070)
+-				pFirmwareImage = FirmwareImage_3070;
+-			else
+-				pFirmwareImage = FirmwareImage_2870;
 -			FileLength = FIRMWAREIMAGEV1_LENGTH;
 -		}
+-#endif /* RTMP_MAC_USB // */
 -	}
--	else
--	{
--		DBGPRINT(RT_DEBUG_ERROR, ("KH: bin file should be 8KB.\n"));
--		Status = NDIS_STATUS_FAILURE;
--	}
--
--#endif // RT2870 //
 +	fw = rtmp_get_firmware(pAd);
 +	if (!fw)
 +		return NDIS_STATUS_FAILURE;
  
--	RT28XX_WRITE_FIRMWARE(pAd, pFirmwareImage, FileLength);
-+	RT28XX_WRITE_FIRMWARE(pAd, fw->data, FIRMWAREIMAGE_LENGTH);
+-	RTMP_WRITE_FIRMWARE(pAd, pFirmwareImage, FileLength);
++	RTMP_WRITE_FIRMWARE(pAd, fw->data, FIRMWAREIMAGE_LENGTH);
  
  	/* check if MCU is ready */
  	Index = 0;
-diff --git a/drivers/staging/rt2860/rt_linux.c b/drivers/staging/rt2860/rt_linux.c
-index ed27b85..4f730ff 100644
 --- a/drivers/staging/rt2860/rt_linux.c
 +++ b/drivers/staging/rt2860/rt_linux.c
 @@ -25,6 +25,7 @@
@@ -229,40 +229,32 @@
  #include <linux/sched.h>
  #include "rt_config.h"
  
-@@ -299,6 +300,8 @@ VOID	RTMPFreeAdapter(
+@@ -260,6 +261,8 @@ void RTMPFreeAdapter(struct rt_rtmp_adapter *pAd)
  
  	NdisFreeSpinLock(&pAd->irq_lock);
  
 +	release_firmware(pAd->firmware);
 +
- 	vfree(pAd); // pci_free_consistent(os_cookie->pci_dev,sizeof(RTMP_ADAPTER),pAd,os_cookie->pAd_pa);
- 	kfree(os_cookie);
- }
-diff --git a/drivers/staging/rt2860/rtmp.h b/drivers/staging/rt2860/rtmp.h
-index d283256..2a56821 100644
+ 	vfree(pAd);		/* pci_free_consistent(os_cookie->pci_dev,sizeof(struct rt_rtmp_adapter),pAd,os_cookie->pAd_pa); */
+ 	if (os_cookie)
+ 		kfree(os_cookie);
 --- a/drivers/staging/rt2860/rtmp.h
 +++ b/drivers/staging/rt2860/rtmp.h
-@@ -2522,6 +2522,7 @@ typedef struct _RTMP_ADAPTER
- 	PVOID					OS_Cookie;	// save specific structure relative to OS
- 	PNET_DEV				net_dev;
- 	ULONG					VirtualIfCnt;
-+	const struct firmware			*firmware;
- 
- #ifdef RT2860
-     USHORT		            LnkCtrlBitMask;
-diff --git a/drivers/staging/rt2870/Kconfig b/drivers/staging/rt2870/Kconfig
-index 05ee373..a0c9eb3 100644
+@@ -1719,6 +1719,7 @@ struct rt_rtmp_adapter {
+ 	void *OS_Cookie;	/* save specific structure relative to OS */
+ 	struct net_device *net_dev;
+ 	unsigned long VirtualIfCnt;
++	const struct firmware *firmware;
+ 
+ 	struct rt_rtmp_chip_op chipOps;
+ 	u16 ThisTbttNumToNextWakeUp;
 --- a/drivers/staging/rt2870/Kconfig
 +++ b/drivers/staging/rt2870/Kconfig
-@@ -1,6 +1,7 @@
- config RT2870
- 	tristate "Ralink 2870/3070 wireless support"
--	depends on BROKEN
+@@ -3,5 +3,7 @@ config RT2870
  	depends on USB && X86 && WLAN
+ 	select WIRELESS_EXT
+ 	select WEXT_PRIV
 +	select CRC_CCITT
 +	select FW_LOADER
  	---help---
  	  This is an experimental driver for the Ralink xx70 wireless chips.
--- 
-1.6.6
-



More information about the Kernel-svn-changes mailing list