at76c505a and berliOS driver
Меринов Алексей <[email protected]>
| Newsgroups | gmane.linux.drivers.at76c503a.user |
|---|---|
| Message-ID | <[email protected]> |
Hello.
Configuration:
FC2 with 2.6.7-1.494.2.2 kernel
atmel at76c505a
USB ids 03eb:7614
berliOS driver v0.12beta14
Aug 10 00:41:00 leshik kernel: usb 5-1: new full speed USB device using
address 2
Aug 10 00:41:00 leshik kernel: /usr/src/at76c503a/usbdfu.c: USB Device
Firmware Upgrade (DFU) handler v0.12beta14 loading
Aug 10 00:41:00 leshik kernel: /usr/src/at76c503a/at76c503.c: Generic
Atmel at76c503/at76c505 routines v0.12beta14
Aug 10 00:41:00 leshik kernel: /usr/src/at76c503a/at76c503-fw_skel.c:
Atmel at76c505a (RFMD2958) Wireless LAN Driver v0.12beta14 loading
Aug 10 00:41:00 leshik kernel: /usr/src/at76c503a/at76c503.c: $Id:
at76c503.c,v 1.61 2004/06/29 21:26:24 jal2 Exp $ compiled Aug 10 2004
00:18:24
Aug 10 00:41:00 leshik kernel: /usr/src/at76c503a/at76c503.c: firmware
version 1.103.0 #164 (fcs_len 4)
Aug 10 00:41:00 leshik kernel: /usr/src/at76c503a/at76c503.c: device's
MAC 00:06:f4:06:e0:01, regulatory domain ETSI (Europe - (Spain+France)
(id 48)
Aug 10 00:41:00 leshik kernel: /usr/src/at76c503a/at76c503.c: registered
wlan0
Aug 10 00:41:00 leshik kernel: usbcore: registered new driver
at76c505a-rfmd2958
Problem 1 (already posted trouble):
There is wrong case string in at76c502.c (line 972)
case BOARDTYPE_505_RFMD_2958:
but in the header file the corresponding constant is
#define BOARDTYPE_505A_RFMD_2958 7
with 'A' after 505
therefore, the first time i have inserted USB card the driver reported:
Bad board type set (7). Unable to get hardware config.
Solving 1:
Just change BOARDTYPE_505_RFMD_2958: to case
BOARDTYPE_505A_RFMD_2958: in at76c502.c
Problem 2:
When trying to "ifup wlan0" -
Aug 10 00:43:38 leshik kernel: usb 5-1: control timeout on ep0in
Aug 10 00:43:38 leshik kernel: /usr/src/at76c503a/at76c503.c: wlan0:
get_cmd_status failed: -110
Aug 10 00:43:38 leshik kernel: /usr/src/at76c503a/at76c503.c: wlan0
start_scan completed with -110
Aug 10 00:44:26 leshik kernel: usb 5-1: control timeout on ep0out
Aug 10 00:44:26 leshik kernel: /usr/src/at76c503a/at76c503.c: wlan0:
set_card_command(CMD_RADIO) failed: -110
Aug 10 00:45:44 leshik kernel: usb 5-1: control timeout on ep0out
Aug 10 00:45:44 leshik kernel: /usr/src/at76c503a/at76c503.c: wlan0:
set_card_command failed: -110
Solving 2:
i added same timeout in get_cmd_status in at76c502.c
static inline
int get_cmd_status(struct usb_device *udev,
u8 cmd, u8 *cmd_status)
{
return usb_control_msg(udev, usb_rcvctrlpipe(udev,0),
0x22, INTERFACE_VENDOR_REQUEST_IN,
cmd, 0,
cmd_status, 40, HZ * USB_CTRL_GET_TIMEOUT); <--- line
1041
}
and in set_card_command
static
int set_card_command(struct usb_device *udev, int cmd,
unsigned char *buf, int buf_size)
{
int ret;
struct at76c503_command *cmd_buf =
(struct at76c503_command *)kmalloc(
sizeof(struct at76c503_command) + buf_size,
GFP_KERNEL);
if(cmd_buf){
cmd_buf->cmd = cmd;
cmd_buf->reserved = 0;
cmd_buf->size = cpu_to_le16(buf_size);
if(buf_size > 0)
memcpy(&(cmd_buf[1]), buf, buf_size);
ret = usb_control_msg(udev, usb_sndctrlpipe(udev,0),
0x0e, DEVICE_VENDOR_REQUEST_OUT,
0, 0,
cmd_buf,
sizeof(struct at76c503_command) + buf_size,
HZ *
USB_CTRL_GET_TIMEOUT); <-- line 1106
kfree(cmd_buf);
return ret;
}
return -ENOMEM;
}
then make && make install
and everything works fine now :)
Thanks all, hope it'll be usefull.