Re: SMC2662W V.4
Alex Schultz <[email protected]>
| Newsgroups | gmane.linux.drivers.at76c503a.user |
|---|---|
| Message-ID | <[email protected]> |
Hi,
My friend tried to get it to work with the patch (using hz/60 instead of
hz/10), and it worked except for the keyboard lockup, but now the
keyboard lockup time is sliced to a 60th of what it was before (which is
still an upbearable 7 min or so, which would mean it probably took
around 7 hours before (we did'nt have a chance to time it before)). My
friend soon got frusturated enough to return the thing to future shop
and exchange it for a linksys WUSB11 ver 2.8. The WUSB11 worked
perfectly with this driver. (but we're having troubles getting it to
work with windows, lol!)
I think we were close to getting the SMC2662W ver.4 to work, the only
problem was the keyboard lockup, which we narrowed down where the
keyboard lockup is (this remap line: NULL, 0, board_type !=
BOARDTYPE_505A_RFMD_2958 ? HZ : HZ/60);)
Another reason he returned the SMC2662W was because of a bunch of
cutouts, but that happened under windoze too, so that was definitly
hardware.
Alex S.
Joerg Albert wrote:
>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
>
>------------------------------------------------------------------------
>
>? .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
>
>