Page MenuHomeFreeBSD

D59137.1794213849.diff
No OneTemporary

Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None

D59137.1794213849.diff

diff --git a/sys/dev/rtwn/if_rtwn.c b/sys/dev/rtwn/if_rtwn.c
--- a/sys/dev/rtwn/if_rtwn.c
+++ b/sys/dev/rtwn/if_rtwn.c
@@ -1511,7 +1511,6 @@
if (res != 0) \
return (EIO); \
} while(0)
- uint16_t reg;
uint8_t tx_boundary;
int error;
@@ -1553,9 +1552,7 @@
/* Set queue to USB pipe mapping. */
/* Note: PCIe devices are using some magic number here. */
- reg = rtwn_get_qmap(sc);
- RTWN_CHK(rtwn_setbits_2(sc, R92C_TRXDMA_CTRL,
- R92C_TRXDMA_CTRL_QMAP_M, reg));
+ RTWN_CHK(rtwn_set_qmap(sc));
/* Configure Tx/Rx DMA (PCIe). */
rtwn_set_desc_addr(sc);
diff --git a/sys/dev/rtwn/if_rtwnvar.h b/sys/dev/rtwn/if_rtwnvar.h
--- a/sys/dev/rtwn/if_rtwnvar.h
+++ b/sys/dev/rtwn/if_rtwnvar.h
@@ -279,7 +279,7 @@
void (*sc_abort_xfers)(struct rtwn_softc *);
int (*sc_fw_write_block)(struct rtwn_softc *,
const uint8_t *, uint16_t, int);
- uint16_t (*sc_get_qmap)(struct rtwn_softc *);
+ int (*sc_set_qmap)(struct rtwn_softc *);
void (*sc_set_desc_addr)(struct rtwn_softc *);
void (*sc_drop_incorrect_tx)(struct rtwn_softc *);
void (*sc_beacon_update_begin)(struct rtwn_softc *,
@@ -464,8 +464,8 @@
(((_sc)->sc_abort_xfers)((_sc)))
#define rtwn_fw_write_block(_sc, _buf, _reg, _len) \
(((_sc)->sc_fw_write_block)((_sc), (_buf), (_reg), (_len)))
-#define rtwn_get_qmap(_sc) \
- (((_sc)->sc_get_qmap)((_sc)))
+#define rtwn_set_qmap(_sc) \
+ (((_sc)->sc_set_qmap)((_sc)))
#define rtwn_set_desc_addr(_sc) \
(((_sc)->sc_set_desc_addr)((_sc)))
#define rtwn_drop_incorrect_tx(_sc) \
diff --git a/sys/dev/rtwn/pci/rtwn_pci_attach.c b/sys/dev/rtwn/pci/rtwn_pci_attach.c
--- a/sys/dev/rtwn/pci/rtwn_pci_attach.c
+++ b/sys/dev/rtwn/pci/rtwn_pci_attach.c
@@ -80,7 +80,7 @@
struct ieee80211vap *);
static int rtwn_pci_fw_write_block(struct rtwn_softc *,
const uint8_t *, uint16_t, int);
-static uint16_t rtwn_pci_get_qmap(struct rtwn_softc *);
+static int rtwn_pci_set_qmap(struct rtwn_softc *);
static void rtwn_pci_set_desc_addr(struct rtwn_softc *);
static void rtwn_pci_beacon_update_begin(struct rtwn_softc *,
struct ieee80211vap *);
@@ -499,14 +499,15 @@
return (0);
}
-static uint16_t
-rtwn_pci_get_qmap(struct rtwn_softc *sc)
+static int
+rtwn_pci_set_qmap(struct rtwn_softc *sc)
{
struct rtwn_pci_softc *pc = RTWN_PCI_SOFTC(sc);
KASSERT(pc->pc_qmap != 0, ("%s: qmap is not set!\n", __func__));
- return (pc->pc_qmap);
+ return (rtwn_setbits_2(sc, R92C_TRXDMA_CTRL,
+ R92C_TRXDMA_CTRL_QMAP_M, pc->pc_qmap));
}
static void
@@ -584,7 +585,7 @@
sc->sc_reset_lists = rtwn_pci_reset_lists;
sc->sc_abort_xfers = rtwn_nop_softc;
sc->sc_fw_write_block = rtwn_pci_fw_write_block;
- sc->sc_get_qmap = rtwn_pci_get_qmap;
+ sc->sc_set_qmap = rtwn_pci_set_qmap;
sc->sc_set_desc_addr = rtwn_pci_set_desc_addr;
sc->sc_drop_incorrect_tx = rtwn_nop_softc;
sc->sc_beacon_update_begin = rtwn_pci_beacon_update_begin;
diff --git a/sys/dev/rtwn/rtl8192c/pci/r92ce_reg.h b/sys/dev/rtwn/rtl8192c/pci/r92ce_reg.h
--- a/sys/dev/rtwn/rtl8192c/pci/r92ce_reg.h
+++ b/sys/dev/rtwn/rtl8192c/pci/r92ce_reg.h
@@ -60,6 +60,9 @@
#define R92C_LEDCFG2_EN 0x60
#define R92C_LEDCFG2_DIS 0x68
+/* Bits for R92C_TRXDMA_CTRL. */
+#define R92C_TRXDMA_CTRL_QMAP_M 0xfff0
+
/* Bits for R92C_HIMR. */
#define R92C_IMR_ROK 0x00000001 /* receive DMA OK */
#define R92C_IMR_VODOK 0x00000002 /* AC_VO DMA OK */
diff --git a/sys/dev/rtwn/rtl8192c/r92c_reg.h b/sys/dev/rtwn/rtl8192c/r92c_reg.h
--- a/sys/dev/rtwn/rtl8192c/r92c_reg.h
+++ b/sys/dev/rtwn/rtl8192c/r92c_reg.h
@@ -453,7 +453,6 @@
#define R92C_TRXDMA_CTRL_QUEUE_LOW 1
#define R92C_TRXDMA_CTRL_QUEUE_NORMAL 2
#define R92C_TRXDMA_CTRL_QUEUE_HIGH 3
-#define R92C_TRXDMA_CTRL_QMAP_M 0xfff0
/* Shortcuts. */
#define R92C_TRXDMA_CTRL_QMAP_3EP 0xf5b0
#define R92C_TRXDMA_CTRL_QMAP_HQ_LQ 0xf5f0
diff --git a/sys/dev/rtwn/rtl8192c/usb/r92cu_reg.h b/sys/dev/rtwn/rtl8192c/usb/r92cu_reg.h
--- a/sys/dev/rtwn/rtl8192c/usb/r92cu_reg.h
+++ b/sys/dev/rtwn/rtl8192c/usb/r92cu_reg.h
@@ -28,6 +28,9 @@
/* System Configuration. */
#define R92C_USB_SIE_INTF 0x0e0
+/* Bits for R92C_TRXDMA_CTRL. */
+#define R92C_TRXDMA_CTRL_QMAP_M 0xfff8
+
/*
* USB registers.
*/
diff --git a/sys/dev/rtwn/usb/rtwn_usb_attach.c b/sys/dev/rtwn/usb/rtwn_usb_attach.c
--- a/sys/dev/rtwn/usb/rtwn_usb_attach.c
+++ b/sys/dev/rtwn/usb/rtwn_usb_attach.c
@@ -348,7 +348,7 @@
sc->sc_reset_lists = rtwn_usb_reset_lists;
sc->sc_abort_xfers = rtwn_usb_abort_xfers;
sc->sc_fw_write_block = rtwn_usb_fw_write_block;
- sc->sc_get_qmap = rtwn_usb_get_qmap;
+ sc->sc_set_qmap = rtwn_usb_set_qmap;
sc->sc_set_desc_addr = rtwn_nop_softc;
sc->sc_drop_incorrect_tx = rtwn_usb_drop_incorrect_tx;
sc->sc_beacon_update_begin = rtwn_nop_softc_vap;
diff --git a/sys/dev/rtwn/usb/rtwn_usb_ep.h b/sys/dev/rtwn/usb/rtwn_usb_ep.h
--- a/sys/dev/rtwn/usb/rtwn_usb_ep.h
+++ b/sys/dev/rtwn/usb/rtwn_usb_ep.h
@@ -19,6 +19,6 @@
int rtwn_usb_setup_endpoints(struct rtwn_usb_softc *,
const uint8_t iface_index);
-uint16_t rtwn_usb_get_qmap(struct rtwn_softc *);
+int rtwn_usb_set_qmap(struct rtwn_softc *);
#endif /* IF_RTWN_EP_H */
diff --git a/sys/dev/rtwn/usb/rtwn_usb_ep.c b/sys/dev/rtwn/usb/rtwn_usb_ep.c
--- a/sys/dev/rtwn/usb/rtwn_usb_ep.c
+++ b/sys/dev/rtwn/usb/rtwn_usb_ep.c
@@ -251,17 +251,23 @@
return (0);
}
-uint16_t
-rtwn_usb_get_qmap(struct rtwn_softc *sc)
+int
+rtwn_usb_set_qmap(struct rtwn_softc *sc)
{
struct rtwn_usb_softc *uc = RTWN_USB_SOFTC(sc);
+ uint16_t val;
switch (uc->ntx) {
case 1:
- return (R92C_TRXDMA_CTRL_QMAP_HQ);
+ val = R92C_TRXDMA_CTRL_QMAP_HQ;
+ break;
case 2:
- return (R92C_TRXDMA_CTRL_QMAP_HQ_NQ);
+ val = R92C_TRXDMA_CTRL_QMAP_HQ_NQ;
+ break;
default:
- return (R92C_TRXDMA_CTRL_QMAP_3EP);
+ val = R92C_TRXDMA_CTRL_QMAP_3EP;
}
+
+ return (rtwn_setbits_2(sc, R92C_TRXDMA_CTRL,
+ R92C_TRXDMA_CTRL_QMAP_M, val));
}

File Metadata

Mime Type
text/plain
Expires
Mon, Nov 9, 8:44 AM (6 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
41610204
Default Alt Text
D59137.1794213849.diff (5 KB)

Event Timeline