Deleted Added
sdiff udiff text old ( 298818 ) new ( 300754 )
full compact
1/* $OpenBSD: if_rsu.c,v 1.17 2013/04/15 09:23:01 mglocker Exp $ */
2
3/*-
4 * Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
5 *
6 * Permission to use, copy, modify, and distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */
18#include <sys/cdefs.h>
19__FBSDID("$FreeBSD: head/sys/dev/usb/wlan/if_rsu.c 298818 2016-04-29 22:14:11Z avos $");
20
21/*
22 * Driver for Realtek RTL8188SU/RTL8191SU/RTL8192SU.
23 *
24 * TODO:
25 * o h/w crypto
26 * o hostap / ibss / mesh
27 * o sensible RSSI levels

--- 137 unchanged lines hidden (view full) ---

165 struct usb_device_request *, void *);
166static struct ieee80211vap *
167 rsu_vap_create(struct ieee80211com *, const char name[],
168 int, enum ieee80211_opmode, int, const uint8_t bssid[],
169 const uint8_t mac[]);
170static void rsu_vap_delete(struct ieee80211vap *);
171static void rsu_scan_start(struct ieee80211com *);
172static void rsu_scan_end(struct ieee80211com *);
173static void rsu_set_channel(struct ieee80211com *);
174static void rsu_update_mcast(struct ieee80211com *);
175static int rsu_alloc_rx_list(struct rsu_softc *);
176static void rsu_free_rx_list(struct rsu_softc *);
177static int rsu_alloc_tx_list(struct rsu_softc *);
178static void rsu_free_tx_list(struct rsu_softc *);
179static void rsu_free_list(struct rsu_softc *, struct rsu_data [], int);
180static struct rsu_data *_rsu_getbuf(struct rsu_softc *);

--- 66 unchanged lines hidden (view full) ---

247
248DRIVER_MODULE(rsu, uhub, rsu_driver, rsu_devclass, NULL, 0);
249MODULE_DEPEND(rsu, wlan, 1, 1, 1);
250MODULE_DEPEND(rsu, usb, 1, 1, 1);
251MODULE_DEPEND(rsu, firmware, 1, 1, 1);
252MODULE_VERSION(rsu, 1);
253USB_PNP_HOST_INFO(rsu_devs);
254
255static uint8_t rsu_wme_ac_xfer_map[4] = {
256 [WME_AC_BE] = RSU_BULK_TX_BE_BK,
257 [WME_AC_BK] = RSU_BULK_TX_BE_BK,
258 [WME_AC_VI] = RSU_BULK_TX_VI_VO,
259 [WME_AC_VO] = RSU_BULK_TX_VI_VO,
260};
261
262/* XXX hard-coded */

--- 136 unchanged lines hidden (view full) ---

399
400static int
401rsu_attach(device_t self)
402{
403 struct usb_attach_arg *uaa = device_get_ivars(self);
404 struct rsu_softc *sc = device_get_softc(self);
405 struct ieee80211com *ic = &sc->sc_ic;
406 int error;
407 uint8_t bands[IEEE80211_MODE_BYTES];
408 uint8_t iface_index;
409 struct usb_interface *iface;
410 const char *rft;
411
412 device_set_usb_desc(self);
413 sc->sc_udev = uaa->device;
414 sc->sc_dev = self;
415 if (rsu_enable_11n)

--- 113 unchanged lines hidden (view full) ---

529 IEEE80211_HTCAP_SMPS_OFF;
530 ic->ic_htcaps |= IEEE80211_HTCAP_CHWIDTH40;
531
532 /* set number of spatial streams */
533 ic->ic_txstream = sc->sc_ntxstream;
534 ic->ic_rxstream = sc->sc_nrxstream;
535 }
536
537 /* Set supported .11b and .11g rates. */
538 memset(bands, 0, sizeof(bands));
539 setbit(bands, IEEE80211_MODE_11B);
540 setbit(bands, IEEE80211_MODE_11G);
541 if (sc->sc_ht)
542 setbit(bands, IEEE80211_MODE_11NG);
543 ieee80211_init_channels(ic, NULL, bands);
544
545 ieee80211_ifattach(ic);
546 ic->ic_raw_xmit = rsu_raw_xmit;
547 ic->ic_scan_start = rsu_scan_start;
548 ic->ic_scan_end = rsu_scan_end;
549 ic->ic_set_channel = rsu_set_channel;
550 ic->ic_vap_create = rsu_vap_create;
551 ic->ic_vap_delete = rsu_vap_delete;
552 ic->ic_update_mcast = rsu_update_mcast;
553 ic->ic_parent = rsu_parent;
554 ic->ic_transmit = rsu_transmit;
555 ic->ic_send_mgmt = rsu_send_mgmt;
556 ic->ic_update_chw = rsu_update_chw;

--- 137 unchanged lines hidden (view full) ---

694
695static void
696rsu_scan_end(struct ieee80211com *ic)
697{
698 /* Nothing to do here. */
699}
700
701static void
702rsu_set_channel(struct ieee80211com *ic __unused)
703{
704 /* We are unable to switch channels, yet. */
705}
706
707static void
708rsu_update_mcast(struct ieee80211com *ic)
709{

--- 2237 unchanged lines hidden ---