diff options
author | Adam McDaniel <adam@array.org> | 2009-02-23 08:01:07 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-04-03 14:53:31 -0700 |
commit | ed291e8051ee418de7ccd3507c1e783323fd1c35 (patch) | |
tree | c8df539e5170a8c877181db9b86312a94e33041f /drivers/staging/rt2860/2860_main_dev.c | |
parent | f4b44e763d1bd1dd00213c1e5820a594b55122dc (diff) | |
download | kernel_samsung_smdk4412-ed291e8051ee418de7ccd3507c1e783323fd1c35.zip kernel_samsung_smdk4412-ed291e8051ee418de7ccd3507c1e783323fd1c35.tar.gz kernel_samsung_smdk4412-ed291e8051ee418de7ccd3507c1e783323fd1c35.tar.bz2 |
Staging: rt2860: Ported v1.7.1.1 changes into v1.8.0.0, becoming v1.8.1.1
Staging: rt2860: Ported v1.7.1.1 changes into v1.8.0.0, becoming v1.8.1.1
When RaLink released rt2860 v1.7.0.0, it lacked proper support for both WEP
and WPA/WPA2 encryption. Either was possible, but the module had to be
compiled to support only one or the other, never both.
Since the EeePC was the most common device with this hardware (and these
users were complaining to RaLink that WPA/WPA2 encryption didn't work)
RaLink released a fix as an "eeepc-specific" version of this driver, v1.7.1.1
Unfortunately, when v1.8.0.0 was released, this WPA/WPA2 fix was never
included.
What complicates things further is that RaLink has no interest in
continuing work on this Linux driver for their hardware.
This commit ports the changes introduced in v1.7.1.1 into the v1.8.0.0
release, upgrading the kernel's module to v1.8.1.1
Signed-off-by: Adam McDaniel <adam@array.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/rt2860/2860_main_dev.c')
-rw-r--r-- | drivers/staging/rt2860/2860_main_dev.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/staging/rt2860/2860_main_dev.c b/drivers/staging/rt2860/2860_main_dev.c index e2f9480..ff7f833 100644 --- a/drivers/staging/rt2860/2860_main_dev.c +++ b/drivers/staging/rt2860/2860_main_dev.c @@ -746,6 +746,7 @@ rt2860_interrupt(int irq, void *dev_instance) PRTMP_ADAPTER pAd = net_dev->ml_priv; INT_SOURCE_CSR_STRUC IntSource; POS_COOKIE pObj; + BOOLEAN bOldValue; pObj = (POS_COOKIE) pAd->OS_Cookie; @@ -778,10 +779,13 @@ rt2860_interrupt(int irq, void *dev_instance) // RT2661 => when ASIC is sleeping, MAC register cannot be read and written. // RT2860 => when ASIC is sleeping, MAC register can be read and written. + bOldValue = pAd->bPCIclkOff; + pAd->bPCIclkOff = FALSE; { RTMP_IO_READ32(pAd, INT_SOURCE_CSR, &IntSource.word); RTMP_IO_WRITE32(pAd, INT_SOURCE_CSR, IntSource.word); // write 1 to clear } + pAd->bPCIclkOff = bOldValue; // Do nothing if Reset in progress if (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_RESET_IN_PROGRESS) || @@ -796,8 +800,6 @@ rt2860_interrupt(int irq, void *dev_instance) // The priority can be adjust by altering processing if statement // - pAd->bPCIclkOff = FALSE; - // If required spinlock, each interrupt service routine has to acquire // and release itself. // @@ -806,6 +808,7 @@ rt2860_interrupt(int irq, void *dev_instance) if (IntSource.word == 0xffffffff) { RTMP_SET_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST | fRTMP_ADAPTER_HALT_IN_PROGRESS); + printk("snowpin - IntSource.word == 0xffffffff\n"); return IRQ_HANDLED; } |