r1689
stsp at dslinux.in-berlin.de
stsp at dslinux.in-berlin.de
Sat Feb 10 11:50:01 CET 2007
Author: stsp
Date: 2007-02-10 11:49:56 +0100 (Sat, 10 Feb 2007)
New Revision: 1689
Log:
Fix wifi on recent DSlites.
Patch submitted by David Kuder:
Nintendo played with the wifi hardware in the latest
revisions of the dslite. sgstair figured out what was
needed to fix it and did in January.
I've included the necessary patch with this message.
Modified: trunk/linux-2.6.x/arch/arm/mach-nds/arm7/wifi.c
===================================================================
--- trunk/linux-2.6.x/arch/arm/mach-nds/arm7/wifi.c 2007-01-28 22:09:54 UTC (rev 1688)
+++ trunk/linux-2.6.x/arch/arm/mach-nds/arm7/wifi.c 2007-02-10 10:49:56 UTC (rev 1689)
@@ -256,22 +256,42 @@
static void Wifi_SetChannel(int channel)
{
- int i;
+ int i,n;
if (channel < 1 || channel > 13)
return;
channel -= 1;
- wifi_data.curChannel = channel + 1;
+ wifi_data.curChannel = channel + 1;
+
if (!(wifi_data.state & WIFI_STATE_UP))
return;
- Wifi_RFWrite(ReadFlashBytes(0xf2 + channel * 6, 3));
- Wifi_RFWrite(ReadFlashBytes(0xf5 + channel * 6, 3));
- for (i = 0; i < 20000; i++)
- i++;
- Wifi_BBWrite(0x1E, ReadFlashByte(0x146 + channel));
+ switch(ReadFlashByte(0x40)) {
+ case 2:
+ case 5:
+ Wifi_RFWrite(ReadFlashBytes(0xf2 + channel * 6, 3));
+ Wifi_RFWrite(ReadFlashBytes(0xf5 + channel * 6, 3));
+ for (i = 0; i < 20000; i++)
+ i++;
+ Wifi_BBWrite(0x1E, ReadFlashByte(0x146 + channel));
+ break;
+ case 3:
+ n=ReadFlashByte(0x42);
+ n+=0xCF;
+ for(i=0;i<=ReadFlashByte(0x43);i++) {
+ Wifi_BBWrite(ReadFlashByte(n),ReadFlashByte(n+channel+1));
+ n+=15;
+ }
+ for(i=0;i<ReadFlashByte(0x43);i++) {
+ Wifi_RFWrite( (ReadFlashByte(n)<<8) | ReadFlashByte(n+channel+1) | 0x050000 );
+ n+=15;
+ }
+ break;
+ default:
+ break;
+ }
}
void Wifi_RequestChannel(int channel)
@@ -439,7 +459,7 @@
static void Wifi_Shutdown(void)
{
int a;
- if (ReadFlashByte(0x40) != 3) {
+ if (ReadFlashByte(0x40) == 2) {
Wifi_RFWrite(0xC008);
}
a = Wifi_BBRead(0x1E);
More information about the dslinux-commit
mailing list