Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F101306764
D3758.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D3758.diff
View Options
Index: head/sys/dev/wpi/if_wpi.c
===================================================================
--- head/sys/dev/wpi/if_wpi.c
+++ head/sys/dev/wpi/if_wpi.c
@@ -2116,6 +2116,7 @@
{
struct wpi_tx_ring *ring = &sc->txq[WPI_CMD_QUEUE_NUM];
struct wpi_tx_data *data;
+ struct wpi_tx_cmd *cmd;
DPRINTF(sc, WPI_DEBUG_CMD, "cmd notification qid %x idx %d flags %x "
"type %s len %d\n", desc->qid, desc->idx,
@@ -2128,6 +2129,7 @@
KASSERT(ring->queued == 0, ("ring->queued must be 0"));
data = &ring->data[desc->idx];
+ cmd = &ring->cmd[desc->idx];
/* If the command was mapped in an mbuf, free it. */
if (data->m != NULL) {
@@ -2138,11 +2140,16 @@
data->m = NULL;
}
- wakeup(&ring->cmd[desc->idx]);
+ wakeup(cmd);
if (desc->type == WPI_CMD_SET_POWER_MODE) {
+ struct wpi_pmgt_cmd *pcmd = (struct wpi_pmgt_cmd *)cmd->data;
+
+ bus_dmamap_sync(ring->data_dmat, ring->cmd_dma.map,
+ BUS_DMASYNC_POSTREAD);
+
WPI_TXQ_LOCK(sc);
- if (sc->sc_flags & WPI_PS_PATH) {
+ if (le16toh(pcmd->flags) & WPI_PS_ALLOW_SLEEP) {
sc->sc_update_rx_ring = wpi_update_rx_ring_ps;
sc->sc_update_tx_ring = wpi_update_tx_ring_ps;
} else {
@@ -3714,13 +3721,8 @@
pmgt = &wpi_pmgt[1][level];
memset(&cmd, 0, sizeof cmd);
- WPI_TXQ_LOCK(sc);
- if (level != 0) { /* not CAM */
+ if (level != 0) /* not CAM */
cmd.flags |= htole16(WPI_PS_ALLOW_SLEEP);
- sc->sc_flags |= WPI_PS_PATH;
- } else
- sc->sc_flags &= ~WPI_PS_PATH;
- WPI_TXQ_UNLOCK(sc);
/* Retrieve PCIe Active State Power Management (ASPM). */
reg = pci_read_config(sc->sc_dev, sc->sc_cap_off + 0x10, 1);
if (!(reg & 0x1)) /* L0s Entry disabled. */
Index: head/sys/dev/wpi/if_wpivar.h
===================================================================
--- head/sys/dev/wpi/if_wpivar.h
+++ head/sys/dev/wpi/if_wpivar.h
@@ -165,8 +165,6 @@
device_t sc_dev;
int sc_debug;
- int sc_flags;
-#define WPI_PS_PATH (1 << 0)
int sc_running;
struct mtx sc_mtx;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Oct 28, 1:27 PM (21 h, 59 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14368432
Default Alt Text
D3758.diff (1 KB)
Attached To
Mode
D3758: wpi(4): drop unnecessary locking in wpi_set_pslevel()
Attached
Detach File
Event Timeline
Log In to Comment