Re: SMC2662W V.4
Joerg Albert <[email protected]>
| Newsgroups | gmane.linux.drivers.at76c503a.user |
|---|---|
| Message-ID | <[email protected]> |
Hi Alex, On Thu, 1 Jul 2004, Alex Schultz wrote: > Yes, all I applied was the patch from your previous posting and the > boardtype fix. About the keyboard lockups, what you said would indicate > (if I understand correctly) that it's getting stuck in the middle of > portions of the firmware download waiting for the device. Do you have > any idea how this could be fixed/worked around or at least could you > please tell me why it might be waiting on the device? I guess it waits for the ack (on USB level) for the REMAP command which never comes, because the REMAP actually restarts the ARM7 in the adapter with the downloaded firmware, after it has remapped the RAM in the memory space. Strangely all the firmware of the other AT76C50* behave nicer. Attached a patch which decreases the timeout time of the REMAP command from 1 to 0.1 s for the 505A. Please try if it makes the kbd lock time shorter. /Jörg
505a_remap_kbd_lock.patch
(text/plain, 2.3 KB)
? .tmp_versions
? 4kstacks_crash.log
? 505a_remap_kbd_lock.patch
? Makefile.new
? at76c503-i3861-fw
? at76c503-i3863-fw
? at76c503-rfmd-0.90.2-140-fw
? at76c503-rfmd-acc-fw
? at76c503-rfmd-fw
? at76c503.o.dump.new
? at76c505-rfmd-fw
? at76c505-rfmd2958-fw
? at76c505a-rfmd-fw
? atmel_at76c503-i3861.bin
? atmel_at76c503-i3863.bin
? atmel_at76c503-rfmd-0.90.2-140.bin
? atmel_at76c503-rfmd-acc.bin
? atmel_at76c503-rfmd.bin
? atmel_at76c505-rfmd.bin
? atmel_at76c505-rfmd2958.bin
? atmel_at76c505a-rfmd2958.bin
? atuwi_rfmd2958-smc_fw.h
? config.sh
? delete_old
? detach.c
? fw-pkg-rfmd-0.90.2-200.h
? fw-rfmd-0.90.2-200.h
? fw_download_in_probe.patch
? gen_fw
? int.bin
? int.h
? jeremy.crash.diff
? monitor.mode
? opmode.patch
? rxtx.diff
? snap_fixed
? t.c
? t.o.dump
? testing
? usb_reset.patch
? wusb11_28.config.descr.lis
? wusb11v26_fw_0.101.x_joining_wrt54g
Index: at76c503.c
===================================================================
RCS file: /cvsroot/at76c503a/at76c503a/at76c503.c,v
retrieving revision 1.61
diff -u -r1.61 at76c503.c
--- at76c503.c 29 Jun 2004 21:26:24 -0000 1.61
+++ at76c503.c 4 Jul 2004 20:15:34 -0000
@@ -865,13 +865,13 @@
#endif //#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 0)
-int at76c503_remap(struct usb_device *udev)
+int at76c503_remap(struct usb_device *udev, u32 board_type)
{
int ret;
ret = usb_control_msg(udev, usb_sndctrlpipe(udev,0),
0x0a, INTERFACE_VENDOR_REQUEST_OUT,
0, 0,
- NULL, 0, HZ);
+ NULL, 0, board_type != BOARDTYPE_505A_RFMD_2958 ? HZ : HZ/10);
if (ret < 0)
return ret;
@@ -2579,7 +2579,7 @@
dbg(DBG_DEVSTART, "sending REMAP");
- if ((ret=at76c503_remap(dev->udev)) < 0) {
+ if ((ret=at76c503_remap(dev->udev, dev->board_type)) < 0) {
err("sending REMAP failed with %d",ret);
goto end_internal_fw;
}
@@ -6761,6 +6761,7 @@
return ret;
}
+#if 0
/**
* at76c503_usbdfu_post
*
@@ -6774,7 +6775,7 @@
int result;
dbg(DBG_DEVSTART, "Sending remap command...");
- result = at76c503_remap(udev);
+ result = at76c503_remap(udev, dev->board_type);
if (result < 0) {
err("Remap command failed (%d)", result);
return result;
@@ -6782,8 +6783,7 @@
return 0;
}
-/* == PROC == */
-
+#endif /* #if 0 */
/**
* at76c503_init