Lines Matching refs:zd
126 struct zd1201 *zd = urb->context; in zd1201_usbfree() local
136 dev_warn(&zd->usb->dev, "%s: urb failed: %d\n", in zd1201_usbfree()
137 zd->dev->name, urb->status); in zd1201_usbfree()
154 static int zd1201_docmd(struct zd1201 *zd, int cmd, int parm0, in zd1201_docmd() argument
176 usb_fill_bulk_urb(urb, zd->usb, usb_sndbulkpipe(zd->usb, zd->endp_out2), in zd1201_docmd()
177 command, 16, zd1201_usbfree, zd); in zd1201_docmd()
190 struct zd1201 *zd = urb->context; in zd1201_usbtx() local
191 netif_wake_queue(zd->dev); in zd1201_usbtx()
197 struct zd1201 *zd = urb->context; in zd1201_usbrx() local
203 if (!zd) in zd1201_usbrx()
214 dev_warn(&zd->usb->dev, "%s: rx urb failed: %d\n", in zd1201_usbrx()
215 zd->dev->name, urb->status); in zd1201_usbrx()
225 memcpy(zd->rxdata, data, urb->actual_length); in zd1201_usbrx()
226 zd->rxlen = urb->actual_length; in zd1201_usbrx()
227 zd->rxdatas = 1; in zd1201_usbrx()
228 wake_up(&zd->rxdataq); in zd1201_usbrx()
242 netif_carrier_on(zd->dev); in zd1201_usbrx()
245 netif_carrier_off(zd->dev); in zd1201_usbrx()
248 netif_carrier_off(zd->dev); in zd1201_usbrx()
251 netif_carrier_on(zd->dev); in zd1201_usbrx()
254 netif_carrier_off(zd->dev); in zd1201_usbrx()
278 wireless_send_event(zd->dev, event, &wrqu, NULL); in zd1201_usbrx()
291 wireless_send_event(zd->dev, IWEVEXPIRED, &wrqu, NULL); in zd1201_usbrx()
295 zd->rxlen = 0; in zd1201_usbrx()
299 if (copylen+zd->rxlen > sizeof(zd->rxdata)) in zd1201_usbrx()
301 memcpy(zd->rxdata+zd->rxlen, data+i+4, copylen); in zd1201_usbrx()
302 zd->rxlen += copylen; in zd1201_usbrx()
306 zd->rxdatas = 1; in zd1201_usbrx()
307 wake_up(&zd->rxdataq); in zd1201_usbrx()
322 if (zd->monitor) { in zd1201_usbrx()
335 skb->protocol = eth_type_trans(skb, zd->dev); in zd1201_usbrx()
336 zd->dev->stats.rx_packets++; in zd1201_usbrx()
337 zd->dev->stats.rx_bytes += skb->len; in zd1201_usbrx()
364 hlist_add_head(&frag->fnode, &zd->fraglist); in zd1201_usbrx()
367 hlist_for_each_entry(frag, &zd->fraglist, fnode) in zd1201_usbrx()
391 skb->protocol = eth_type_trans(skb, zd->dev); in zd1201_usbrx()
392 zd->dev->stats.rx_packets++; in zd1201_usbrx()
393 zd->dev->stats.rx_bytes += skb->len; in zd1201_usbrx()
400 urb->dev = zd->usb; in zd1201_usbrx()
406 zd->rxlen = 0; in zd1201_usbrx()
407 zd->rxdatas = 1; in zd1201_usbrx()
408 wake_up(&zd->rxdataq); in zd1201_usbrx()
413 static int zd1201_getconfig(struct zd1201 *zd, int rid, void *riddata, in zd1201_getconfig() argument
423 zd->rxdatas = 0; in zd1201_getconfig()
424 err = zd1201_docmd(zd, ZD1201_CMDCODE_ACCESS, rid, 0, 0); in zd1201_getconfig()
428 wait_event_interruptible(zd->rxdataq, zd->rxdatas); in zd1201_getconfig()
429 if (!zd->rxlen) in zd1201_getconfig()
432 code = le16_to_cpu(*(__le16*)(&zd->rxdata[4])); in zd1201_getconfig()
433 rid_fid = le16_to_cpu(*(__le16*)(&zd->rxdata[6])); in zd1201_getconfig()
434 length = le16_to_cpu(*(__le16*)(&zd->rxdata[8])); in zd1201_getconfig()
435 if (length > zd->rxlen) in zd1201_getconfig()
436 length = zd->rxlen-6; in zd1201_getconfig()
444 …dev_dbg(&zd->usb->dev, "riddatalen mismatches, expected=%u, (packet=%u) length=%u, rid=0x%04X, rid… in zd1201_getconfig()
445 riddatalen, zd->rxlen, length, rid, rid_fid); in zd1201_getconfig()
449 zd->rxdatas = 0; in zd1201_getconfig()
451 err = zd1201_docmd(zd, ZD1201_CMDCODE_SETRXRID, rid, 0, length); in zd1201_getconfig()
456 wait_event_interruptible(zd->rxdataq, zd->rxdatas); in zd1201_getconfig()
457 if (!zd->rxlen) in zd1201_getconfig()
460 if (zd->rxdata[zd->rxlen - 1] != ZD1201_PACKET_RESOURCE) { in zd1201_getconfig()
461 dev_dbg(&zd->usb->dev, "Packet type mismatch: 0x%x not 0x3\n", in zd1201_getconfig()
462 zd->rxdata[zd->rxlen-1]); in zd1201_getconfig()
467 pdata = zd->rxdata; in zd1201_getconfig()
468 length = zd->rxlen; in zd1201_getconfig()
476 dev_dbg(&zd->usb->dev, "Rx Resource packet type error: %02X\n", in zd1201_getconfig()
513 static int zd1201_setconfig(struct zd1201 *zd, int rid, void *buf, int len, int wait) in zd1201_setconfig() argument
524 zd->rxdatas = 0; in zd1201_setconfig()
525 zd->rxlen = 0; in zd1201_setconfig()
554 usb_fill_bulk_urb(urb, zd->usb, usb_sndbulkpipe(zd->usb, in zd1201_setconfig()
555 zd->endp_out2), request, 16, zd1201_usbfree, zd); in zd1201_setconfig()
575 usb_fill_bulk_urb(urb, zd->usb, usb_sndbulkpipe(zd->usb, zd->endp_out2), in zd1201_setconfig()
576 request, 16, zd1201_usbfree, zd); in zd1201_setconfig()
582 wait_event_interruptible(zd->rxdataq, zd->rxdatas); in zd1201_setconfig()
583 if (!zd->rxlen || le16_to_cpu(*(__le16*)&zd->rxdata[6]) != rid) { in zd1201_setconfig()
584 dev_dbg(&zd->usb->dev, "wrong or no RID received\n"); in zd1201_setconfig()
595 static inline int zd1201_getconfig16(struct zd1201 *zd, int rid, short *val) in zd1201_getconfig16() argument
600 err = zd1201_getconfig(zd, rid, &zdval, sizeof(__le16)); in zd1201_getconfig16()
607 static inline int zd1201_setconfig16(struct zd1201 *zd, int rid, short val) in zd1201_setconfig16() argument
610 return (zd1201_setconfig(zd, rid, &zdval, sizeof(__le16), 1)); in zd1201_setconfig16()
613 static int zd1201_drvr_start(struct zd1201 *zd) in zd1201_drvr_start() argument
624 usb_fill_bulk_urb(zd->rx_urb, zd->usb, in zd1201_drvr_start()
625 usb_rcvbulkpipe(zd->usb, zd->endp_in), buffer, ZD1201_RXSIZE, in zd1201_drvr_start()
626 zd1201_usbrx, zd); in zd1201_drvr_start()
628 err = usb_submit_urb(zd->rx_urb, GFP_KERNEL); in zd1201_drvr_start()
632 err = zd1201_docmd(zd, ZD1201_CMDCODE_INIT, 0, 0, 0); in zd1201_drvr_start()
636 err = zd1201_getconfig(zd, ZD1201_RID_CNFMAXTXBUFFERNUMBER, &zdmax, in zd1201_drvr_start()
643 err = zd1201_docmd(zd, ZD1201_CMDCODE_ALLOC, 1514, 0, 0); in zd1201_drvr_start()
651 usb_kill_urb(zd->rx_urb); in zd1201_drvr_start()
663 static int zd1201_enable(struct zd1201 *zd) in zd1201_enable() argument
667 if (zd->mac_enabled) in zd1201_enable()
670 err = zd1201_docmd(zd, ZD1201_CMDCODE_ENABLE, 0, 0, 0); in zd1201_enable()
672 zd->mac_enabled = 1; in zd1201_enable()
674 if (zd->monitor) in zd1201_enable()
675 err = zd1201_setconfig16(zd, ZD1201_RID_PROMISCUOUSMODE, 1); in zd1201_enable()
680 static int zd1201_disable(struct zd1201 *zd) in zd1201_disable() argument
684 if (!zd->mac_enabled) in zd1201_disable()
686 if (zd->monitor) { in zd1201_disable()
687 err = zd1201_setconfig16(zd, ZD1201_RID_PROMISCUOUSMODE, 0); in zd1201_disable()
692 err = zd1201_docmd(zd, ZD1201_CMDCODE_DISABLE, 0, 0, 0); in zd1201_disable()
694 zd->mac_enabled = 0; in zd1201_disable()
698 static int zd1201_mac_reset(struct zd1201 *zd) in zd1201_mac_reset() argument
700 if (!zd->mac_enabled) in zd1201_mac_reset()
702 zd1201_disable(zd); in zd1201_mac_reset()
703 return zd1201_enable(zd); in zd1201_mac_reset()
706 static int zd1201_join(struct zd1201 *zd, char *essid, int essidlen) in zd1201_join() argument
711 err = zd1201_disable(zd); in zd1201_join()
717 err = zd1201_setconfig16(zd, ZD1201_RID_CNFAUTHENTICATION, val); in zd1201_join()
723 if (!zd->ap) { /* Normal station */ in zd1201_join()
724 err = zd1201_setconfig(zd, ZD1201_RID_CNFDESIREDSSID, buf, in zd1201_join()
729 err = zd1201_setconfig(zd, ZD1201_RID_CNFOWNSSID, buf, in zd1201_join()
735 err = zd1201_setconfig(zd, ZD1201_RID_CNFOWNMACADDR, in zd1201_join()
736 zd->dev->dev_addr, zd->dev->addr_len, 1); in zd1201_join()
740 err = zd1201_enable(zd); in zd1201_join()
750 struct zd1201 *zd = netdev_priv(dev); in zd1201_net_open() local
753 if (!zd->mac_enabled) in zd1201_net_open()
754 zd1201_join(zd, zd->essid, zd->essidlen); in zd1201_net_open()
789 struct zd1201 *zd = netdev_priv(dev); in zd1201_hard_start_xmit() local
790 unsigned char *txbuf = zd->txdata; in zd1201_hard_start_xmit()
792 struct urb *urb = zd->tx_urb; in zd1201_hard_start_xmit()
794 if (!zd->mac_enabled || zd->monitor) { in zd1201_hard_start_xmit()
820 usb_fill_bulk_urb(urb, zd->usb, usb_sndbulkpipe(zd->usb, zd->endp_out), in zd1201_hard_start_xmit()
821 txbuf, txbuflen, zd1201_usbtx, zd); in zd1201_hard_start_xmit()
823 err = usb_submit_urb(zd->tx_urb, GFP_ATOMIC); in zd1201_hard_start_xmit()
838 struct zd1201 *zd = netdev_priv(dev); in zd1201_tx_timeout() local
840 if (!zd) in zd1201_tx_timeout()
842 dev_warn(&zd->usb->dev, "%s: TX timeout, shooting down urb\n", in zd1201_tx_timeout()
844 usb_unlink_urb(zd->tx_urb); in zd1201_tx_timeout()
853 struct zd1201 *zd = netdev_priv(dev); in zd1201_set_mac_address() local
856 if (!zd) in zd1201_set_mac_address()
859 err = zd1201_setconfig(zd, ZD1201_RID_CNFOWNMACADDR, in zd1201_set_mac_address()
865 return zd1201_mac_reset(zd); in zd1201_set_mac_address()
870 struct zd1201 *zd = netdev_priv(dev); in zd1201_get_wireless_stats() local
872 return &zd->iwstats; in zd1201_get_wireless_stats()
877 struct zd1201 *zd = netdev_priv(dev); in zd1201_set_multicast() local
888 zd1201_setconfig(zd, ZD1201_RID_CNFGROUPADDRESS, reqbuf, in zd1201_set_multicast()
895 struct zd1201 *zd = netdev_priv(dev); in zd1201_config_commit() local
897 return zd1201_mac_reset(zd); in zd1201_config_commit()
910 struct zd1201 *zd = netdev_priv(dev); in zd1201_set_freq() local
919 err = zd1201_setconfig16(zd, ZD1201_RID_CNFOWNCHANNEL, channel); in zd1201_set_freq()
923 zd1201_mac_reset(zd); in zd1201_set_freq()
931 struct zd1201 *zd = netdev_priv(dev); in zd1201_get_freq() local
935 err = zd1201_getconfig16(zd, ZD1201_RID_CNFOWNCHANNEL, &channel); in zd1201_get_freq()
947 struct zd1201 *zd = netdev_priv(dev); in zd1201_set_mode() local
952 if (zd->ap) { in zd1201_set_mode()
958 err = zd1201_setconfig16(zd, ZD1201_RID_PROMISCUOUSMODE, 0); in zd1201_set_mode()
961 zd->dev->type = ARPHRD_ETHER; in zd1201_set_mode()
965 zd->dev->type = ARPHRD_IEEE80211; in zd1201_set_mode()
970 zd1201_join(zd, "\0-*#\0", 5); in zd1201_set_mode()
985 err = zd1201_setconfig16(zd, ZD1201_RID_CNFPORTTYPE, porttype); in zd1201_set_mode()
988 if (zd->monitor && !monitor) { in zd1201_set_mode()
989 zd1201_disable(zd); in zd1201_set_mode()
990 *(__le16 *)buffer = cpu_to_le16(zd->essidlen); in zd1201_set_mode()
991 memcpy(buffer+2, zd->essid, zd->essidlen); in zd1201_set_mode()
992 err = zd1201_setconfig(zd, ZD1201_RID_CNFDESIREDSSID, in zd1201_set_mode()
997 zd->monitor = monitor; in zd1201_set_mode()
1001 zd1201_mac_reset(zd); in zd1201_set_mode()
1009 struct zd1201 *zd = netdev_priv(dev); in zd1201_get_mode() local
1013 err = zd1201_getconfig16(zd, ZD1201_RID_CNFPORTTYPE, &porttype); in zd1201_get_mode()
1033 dev_dbg(&zd->usb->dev, "Unknown porttype: %d\n", in zd1201_get_mode()
1037 if (zd->monitor) in zd1201_get_mode()
1085 struct zd1201 *zd = netdev_priv(dev); in zd1201_get_wap() local
1088 if (!zd1201_getconfig(zd, ZD1201_RID_COMMSQUALITY, buffer, 6)) { in zd1201_get_wap()
1095 zd->iwstats.qual.level = le16_to_cpu(((__le16 *)buffer)[1]); in zd1201_get_wap()
1097 zd->iwstats.qual.updated = 2; in zd1201_get_wap()
1100 return zd1201_getconfig(zd, ZD1201_RID_CURRENTBSSID, ap_addr->sa_data, 6); in zd1201_get_wap()
1113 struct zd1201 *zd = netdev_priv(dev); in zd1201_get_scan() local
1120 if (zd->ap) in zd1201_get_scan()
1124 enabled_save = zd->mac_enabled; in zd1201_get_scan()
1125 zd1201_enable(zd); in zd1201_get_scan()
1127 zd->rxdatas = 0; in zd1201_get_scan()
1128 err = zd1201_docmd(zd, ZD1201_CMDCODE_INQUIRE, in zd1201_get_scan()
1133 wait_event_interruptible(zd->rxdataq, zd->rxdatas); in zd1201_get_scan()
1134 if (!zd->rxlen) in zd1201_get_scan()
1137 if (le16_to_cpu(*(__le16*)&zd->rxdata[2]) != ZD1201_INQ_SCANRESULTS) in zd1201_get_scan()
1140 for(i=8; i<zd->rxlen; i+=62) { in zd1201_get_scan()
1143 memcpy(iwe.u.ap_addr.sa_data, zd->rxdata+i+6, 6); in zd1201_get_scan()
1148 iwe.u.data.length = zd->rxdata[i+16]; in zd1201_get_scan()
1151 &iwe, zd->rxdata+i+18); in zd1201_get_scan()
1154 if (zd->rxdata[i+14]&0x01) in zd1201_get_scan()
1162 iwe.u.freq.m = zd->rxdata[i+0]; in zd1201_get_scan()
1170 for (j=0; j<10; j++) if (zd->rxdata[i+50+j]) { in zd1201_get_scan()
1171 iwe.u.bitrate.value = (zd->rxdata[i+50+j]&0x7f)*500000; in zd1201_get_scan()
1178 if (zd->rxdata[i+14]&0x10) in zd1201_get_scan()
1185 iwe.u.qual.qual = zd->rxdata[i+4]; in zd1201_get_scan()
1186 iwe.u.qual.noise= zd->rxdata[i+2]/10-100; in zd1201_get_scan()
1187 iwe.u.qual.level = (256+zd->rxdata[i+4]*100)/255-100; in zd1201_get_scan()
1194 zd1201_disable(zd); in zd1201_get_scan()
1205 struct zd1201 *zd = netdev_priv(dev); in zd1201_set_essid() local
1211 zd->essidlen = data->length; in zd1201_set_essid()
1212 memset(zd->essid, 0, IW_ESSID_MAX_SIZE+1); in zd1201_set_essid()
1213 memcpy(zd->essid, essid, data->length); in zd1201_set_essid()
1214 return zd1201_join(zd, zd->essid, zd->essidlen); in zd1201_set_essid()
1220 struct zd1201 *zd = netdev_priv(dev); in zd1201_get_essid() local
1222 memcpy(essid, zd->essid, zd->essidlen); in zd1201_get_essid()
1224 data->length = zd->essidlen; in zd1201_get_essid()
1241 struct zd1201 *zd = netdev_priv(dev); in zd1201_set_rate() local
1264 err = zd1201_setconfig16(zd, ZD1201_RID_TXRATECNTL, rate); in zd1201_set_rate()
1268 return zd1201_mac_reset(zd); in zd1201_set_rate()
1274 struct zd1201 *zd = netdev_priv(dev); in zd1201_get_rate() local
1278 err = zd1201_getconfig16(zd, ZD1201_RID_CURRENTTXRATE, &rate); in zd1201_get_rate()
1307 struct zd1201 *zd = netdev_priv(dev); in zd1201_set_rts() local
1318 err = zd1201_setconfig16(zd, ZD1201_RID_CNFRTSTHRESHOLD, val); in zd1201_set_rts()
1321 return zd1201_mac_reset(zd); in zd1201_set_rts()
1327 struct zd1201 *zd = netdev_priv(dev); in zd1201_get_rts() local
1331 err = zd1201_getconfig16(zd, ZD1201_RID_CNFRTSTHRESHOLD, &rtst); in zd1201_get_rts()
1344 struct zd1201 *zd = netdev_priv(dev); in zd1201_set_frag() local
1356 err = zd1201_setconfig16(zd, ZD1201_RID_CNFFRAGTHRESHOLD, val); in zd1201_set_frag()
1359 return zd1201_mac_reset(zd); in zd1201_set_frag()
1365 struct zd1201 *zd = netdev_priv(dev); in zd1201_get_frag() local
1369 err = zd1201_getconfig16(zd, ZD1201_RID_CNFFRAGTHRESHOLD, &fragt); in zd1201_get_frag()
1394 struct zd1201 *zd = netdev_priv(dev); in zd1201_set_encode() local
1403 err = zd1201_getconfig16(zd,ZD1201_RID_CNFDEFAULTKEYID,&i); in zd1201_set_encode()
1407 err = zd1201_setconfig16(zd, ZD1201_RID_CNFDEFAULTKEYID, i); in zd1201_set_encode()
1416 err = zd1201_setconfig(zd, rid, key, erq->length, 1); in zd1201_set_encode()
1419 zd->encode_keylen[i] = erq->length; in zd1201_set_encode()
1420 memcpy(zd->encode_keys[i], key, erq->length); in zd1201_set_encode()
1425 zd->encode_enabled = 1; in zd1201_set_encode()
1427 zd->encode_enabled = 0; in zd1201_set_encode()
1430 zd->encode_restricted = 1; in zd1201_set_encode()
1432 zd->encode_restricted = 0; in zd1201_set_encode()
1433 err = zd1201_setconfig16(zd, ZD1201_RID_CNFWEBFLAGS, i); in zd1201_set_encode()
1437 if (zd->encode_enabled) in zd1201_set_encode()
1441 err = zd1201_setconfig16(zd, ZD1201_RID_CNFAUTHENTICATION, i); in zd1201_set_encode()
1445 return zd1201_mac_reset(zd); in zd1201_set_encode()
1451 struct zd1201 *zd = netdev_priv(dev); in zd1201_get_encode() local
1455 if (zd->encode_enabled) in zd1201_get_encode()
1459 if (zd->encode_restricted) in zd1201_get_encode()
1466 err = zd1201_getconfig16(zd, ZD1201_RID_CNFDEFAULTKEYID, &i); in zd1201_get_encode()
1475 erq->length = zd->encode_keylen[i]; in zd1201_get_encode()
1476 memcpy(key, zd->encode_keys[i], erq->length); in zd1201_get_encode()
1484 struct zd1201 *zd = netdev_priv(dev); in zd1201_set_power() local
1492 err = zd1201_setconfig16(zd, in zd1201_set_power()
1499 err = zd1201_getconfig16(zd, in zd1201_set_power()
1508 err = zd1201_setconfig16(zd, ZD1201_RID_CNFPMEPS, in zd1201_set_power()
1517 return zd1201_setconfig16(zd, ZD1201_RID_CNFPMENABLED, enabled); in zd1201_set_power()
1523 struct zd1201 *zd = netdev_priv(dev); in zd1201_get_power() local
1527 err = zd1201_getconfig16(zd, ZD1201_RID_CNFPMENABLED, &enabled); in zd1201_get_power()
1530 err = zd1201_getconfig16(zd, ZD1201_RID_CNFPMEPS, &level); in zd1201_get_power()
1533 err = zd1201_getconfig16(zd, ZD1201_RID_CNFMAXSLEEPDURATION, &duration); in zd1201_get_power()
1610 struct zd1201 *zd = netdev_priv(dev); in zd1201_set_hostauth() local
1612 if (!zd->ap) in zd1201_set_hostauth()
1615 return zd1201_setconfig16(zd, ZD1201_RID_CNFHOSTAUTH, rrq->value); in zd1201_set_hostauth()
1621 struct zd1201 *zd = netdev_priv(dev); in zd1201_get_hostauth() local
1625 if (!zd->ap) in zd1201_get_hostauth()
1628 err = zd1201_getconfig16(zd, ZD1201_RID_CNFHOSTAUTH, &hostauth); in zd1201_get_hostauth()
1640 struct zd1201 *zd = netdev_priv(dev); in zd1201_auth_sta() local
1643 if (!zd->ap) in zd1201_auth_sta()
1650 return zd1201_setconfig(zd, ZD1201_RID_AUTHENTICATESTA, buffer, 10, 1); in zd1201_auth_sta()
1656 struct zd1201 *zd = netdev_priv(dev); in zd1201_set_maxassoc() local
1659 if (!zd->ap) in zd1201_set_maxassoc()
1662 err = zd1201_setconfig16(zd, ZD1201_RID_CNFMAXASSOCSTATIONS, rrq->value); in zd1201_set_maxassoc()
1671 struct zd1201 *zd = netdev_priv(dev); in zd1201_get_maxassoc() local
1675 if (!zd->ap) in zd1201_get_maxassoc()
1678 err = zd1201_getconfig16(zd, ZD1201_RID_CNFMAXASSOCSTATIONS, &maxassoc); in zd1201_get_maxassoc()
1732 struct zd1201 *zd; in zd1201_probe() local
1741 dev = alloc_etherdev(sizeof(*zd)); in zd1201_probe()
1744 zd = netdev_priv(dev); in zd1201_probe()
1745 zd->dev = dev; in zd1201_probe()
1747 zd->ap = ap; in zd1201_probe()
1748 zd->usb = usb; in zd1201_probe()
1749 zd->removed = 0; in zd1201_probe()
1750 init_waitqueue_head(&zd->rxdataq); in zd1201_probe()
1751 INIT_HLIST_HEAD(&zd->fraglist); in zd1201_probe()
1753 err = zd1201_fw_upload(usb, zd->ap); in zd1201_probe()
1759 zd->endp_in = 1; in zd1201_probe()
1760 zd->endp_out = 1; in zd1201_probe()
1761 zd->endp_out2 = 2; in zd1201_probe()
1762 zd->rx_urb = usb_alloc_urb(0, GFP_KERNEL); in zd1201_probe()
1763 zd->tx_urb = usb_alloc_urb(0, GFP_KERNEL); in zd1201_probe()
1764 if (!zd->rx_urb || !zd->tx_urb) { in zd1201_probe()
1770 err = zd1201_drvr_start(zd); in zd1201_probe()
1774 err = zd1201_setconfig16(zd, ZD1201_RID_CNFMAXDATALEN, 2312); in zd1201_probe()
1778 err = zd1201_setconfig16(zd, ZD1201_RID_TXRATECNTL, in zd1201_probe()
1788 err = zd1201_getconfig(zd, ZD1201_RID_CNFOWNMACADDR, in zd1201_probe()
1795 err = zd1201_setconfig(zd, ZD1201_RID_CNFDESIREDSSID, buf, in zd1201_probe()
1800 if (zd->ap) in zd1201_probe()
1804 err = zd1201_setconfig16(zd, ZD1201_RID_CNFPORTTYPE, porttype); in zd1201_probe()
1816 usb_set_intfdata(interface, zd); in zd1201_probe()
1817 zd1201_enable(zd); /* zd1201 likes to startup enabled, */ in zd1201_probe()
1818 zd1201_disable(zd); /* interfering with all the wifis in range */ in zd1201_probe()
1823 zd1201_docmd(zd, ZD1201_CMDCODE_INIT, 0, 0, 0); in zd1201_probe()
1825 usb_free_urb(zd->tx_urb); in zd1201_probe()
1826 usb_free_urb(zd->rx_urb); in zd1201_probe()
1833 struct zd1201 *zd = usb_get_intfdata(interface); in zd1201_disconnect() local
1837 if (!zd) in zd1201_disconnect()
1841 hlist_for_each_entry_safe(frag, node2, &zd->fraglist, fnode) { in zd1201_disconnect()
1847 if (zd->tx_urb) { in zd1201_disconnect()
1848 usb_kill_urb(zd->tx_urb); in zd1201_disconnect()
1849 usb_free_urb(zd->tx_urb); in zd1201_disconnect()
1851 if (zd->rx_urb) { in zd1201_disconnect()
1852 usb_kill_urb(zd->rx_urb); in zd1201_disconnect()
1853 usb_free_urb(zd->rx_urb); in zd1201_disconnect()
1856 if (zd->dev) { in zd1201_disconnect()
1857 unregister_netdev(zd->dev); in zd1201_disconnect()
1858 free_netdev(zd->dev); in zd1201_disconnect()
1867 struct zd1201 *zd = usb_get_intfdata(interface); in zd1201_suspend() local
1869 netif_device_detach(zd->dev); in zd1201_suspend()
1871 zd->was_enabled = zd->mac_enabled; in zd1201_suspend()
1873 if (zd->was_enabled) in zd1201_suspend()
1874 return zd1201_disable(zd); in zd1201_suspend()
1881 struct zd1201 *zd = usb_get_intfdata(interface); in zd1201_resume() local
1883 if (!zd || !zd->dev) in zd1201_resume()
1886 netif_device_attach(zd->dev); in zd1201_resume()
1888 if (zd->was_enabled) in zd1201_resume()
1889 return zd1201_enable(zd); in zd1201_resume()