Re: SMC2662W V.4
Joerg Albert <[email protected]>
| Newsgroups | gmane.linux.drivers.at76c503a.user |
|---|---|
| Message-ID | <[email protected]> |
Hi Alex,
you asked for a clean mod for the SMC2662W v4: I'd prefer
to create a new BOARD_TYPE define (at76c503.c get the board type).
As creating the firmware image is a bit tricky, too; I've tried to
implement and checked the change into cvs (as all other users with different devices
shouldn't be affected). Please get the latest cvs and have a look.
I just created new files needed:
at76c505a-rfmd2958.c - driver variant for 505A,
fw-pkg-505a-rfmd2958-1.102.0-113.h - wrapped firmware
and added a new board type in at76c503.h:
#define BOARDTYPE_505A_RFMD_2958 7
I didn't change anyting inside at76c503.c (cannot test it) - you may do so
and wrap the changes into:
if (dev->board_type == BOARDTYPE_505A_RFMD_2958) {}
I attach a patch for at76c503.c derived from atuwi.c.
On Mon, 14 Jun 2004, Alex Schultz wrote:
> But I looked in the BSD driver and it seems do nothing treating the
> normal rfmd2958 (which appears to be supported by this driver) and the
> SMC variant differently other the the quirks mentioned in the first
> message. I could very easily be wrong, but could'nt the WPA just be
> ignored (which seems to be the case in the BSD driver, as I find no
> mention of WPA in it).
I'm not sure where Daan got the firmware for the SMC from, all others but
this file have the Atmel copyright inside ... Let's try it without WPA.
/Jörg
smc_v4.patch
(text/plain, 1 KB)
Index: at76c503.c
===================================================================
RCS file: /cvsroot/at76c503a/at76c503a/at76c503.c,v
retrieving revision 1.60
diff -u -r1.60 at76c503.c
--- at76c503.c 15 Jun 2004 18:20:37 -0000 1.60
+++ at76c503.c 15 Jun 2004 20:26:23 -0000
@@ -2558,6 +2558,12 @@
err("Downloading external firmware failed: %d", ret);
goto end_external_fw;
}
+ if (dev->board_type == BOARDTYPE_505A_RFMD_2958) {
+ info("200 ms delay for board type 7");
+ /* jal: can I do this in kevent ??? */
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule_timeout(HZ/5+1);
+ }
}
NEW_STATE(dev,INIT);
init_new_device(dev);
@@ -2581,8 +2587,11 @@
if ((ret=at76c503_remap(dev->udev)) < 0) {
err("sending REMAP failed with %d",ret);
- goto end_internal_fw;
+ if (dev->board_type == BOARDTYPE_505A_RFMD_2958)
+ info("ignoring this error for board type 7");
+ else
+ goto end_internal_fw;
}
dbg(DBG_DEVSTART, "sleeping for 2 seconds");