summaryrefslogtreecommitdiff
path: root/drivers/staging/cw1200/wsm.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/cw1200/wsm.h')
-rw-r--r--drivers/staging/cw1200/wsm.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/drivers/staging/cw1200/wsm.h b/drivers/staging/cw1200/wsm.h
index 542eededffc..30db888e535 100644
--- a/drivers/staging/cw1200/wsm.h
+++ b/drivers/staging/cw1200/wsm.h
@@ -135,6 +135,9 @@ struct cw1200_common;
/* 802.11 PS mode */
#define WSM_PSM_PS BIT(0)
+/* Fast Power Save bit */
+#define WSM_PSM_FAST_PS_FLAG BIT(7)
+
/* Dynamic aka Fast power save */
#define WSM_PSM_FAST_PS (BIT(0) | BIT(7))
@@ -1044,6 +1047,9 @@ struct wsm_edca_queue_params {
/* the access class. Overrides the global */
/* dot11MaxReceiveLifetime value */
/* [in] */ u32 maxReceiveLifetime;
+
+ /* UAPSD trigger support for the access class. */
+ /* [in] */ bool uapsdEnable;
};
struct wsm_edca_params {
@@ -1051,18 +1057,22 @@ struct wsm_edca_params {
struct wsm_edca_queue_params params[4];
};
-#define WSM_EDCA_SET(edca, queue, aifs, cw_min, cw_max, txop) \
+#define WSM_EDCA_SET(edca, queue, aifs, cw_min, cw_max, txop, uapsd) \
do { \
struct wsm_edca_queue_params *p = &(edca)->params[queue]; \
p->cwMin = (cw_min); \
p->cwMax = (cw_max); \
p->aifns = (aifs); \
p->txOpLimit = (txop); \
+ p->uapsdEnable = (uapsd); \
} while (0)
int wsm_set_edca_params(struct cw1200_common *priv,
const struct wsm_edca_params *arg);
+int wsm_set_uapsd_param(struct cw1200_common *priv,
+ const struct wsm_edca_params *arg);
+
/* 3.38 */
/* Set-System info. Skipped for now. Irrelevent. */
@@ -1548,6 +1558,22 @@ static inline int wsm_use_multi_tx_conf(struct cw1200_common *priv,
&arg, sizeof(arg));
}
+
+/* 4.26 SetUpasdInformation */
+struct wsm_uapsd_info {
+ __le16 uapsdFlags;
+ __le16 minAutoTriggerInterval;
+ __le16 maxAutoTriggerInterval;
+ __le16 autoTriggerStep;
+};
+
+static inline int wsm_set_uapsd_info(struct cw1200_common *priv,
+ struct wsm_uapsd_info *arg)
+{
+ return wsm_write_mib(priv, WSM_MIB_ID_SET_UAPSD_INFORMATION,
+ arg, sizeof(*arg));
+}
+
/* ******************************************************************** */
/* WSM TX port control */