X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=include%2Fshared%2Ffwcmd.h;h=6bd374a39dcd91975497d7c2a536111f20cb3806;hb=63ea5c984f577172a145950580c96b5135bf1629;hp=fb5ab3f62639902646cdbe6c770d6529179929ab;hpb=b8f7132bb9cc3eb1b0fdeab865493b08e096b47a;p=carl9170fw.git diff --git a/include/shared/fwcmd.h b/include/shared/fwcmd.h index fb5ab3f..6bd374a 100644 --- a/include/shared/fwcmd.h +++ b/include/shared/fwcmd.h @@ -1,7 +1,7 @@ /* - * Atheros AR9170 driver + * Shared Atheros AR9170 Header * - * firmware command interface definitions + * Firmware command interface definitions * * Copyright 2008, Johannes Berg * Copyright 2009, 2010, Christian Lamparter @@ -51,9 +51,9 @@ enum carl9170_cmd_oids { CARL9170_CMD_ECHO = 0x02, CARL9170_CMD_SWRST = 0x03, CARL9170_CMD_REBOOT = 0x04, - CARL9170_CMD_FLUSH_CAB = 0x05, + CARL9170_CMD_BCN_CTRL = 0x05, CARL9170_CMD_READ_TSF = 0x06, - CARL9170_CMD_USB_WD = 0x07, + CARL9170_CMD_RX_FILTER = 0x07, /* CAM */ CARL9170_CMD_EKEY = 0x10, @@ -72,7 +72,9 @@ enum carl9170_cmd_oids { CARL9170_CMD_ASYNC_FLAG), CARL9170_CMD_REBOOT_ASYNC = (CARL9170_CMD_REBOOT | CARL9170_CMD_ASYNC_FLAG), - CARL9170_CMD_FLUSH_CAB_ASYNC = (CARL9170_CMD_FLUSH_CAB | + CARL9170_CMD_BCN_CTRL_ASYNC = (CARL9170_CMD_BCN_CTRL | + CARL9170_CMD_ASYNC_FLAG), + CARL9170_CMD_PSM_ASYNC = (CARL9170_CMD_PSM | CARL9170_CMD_ASYNC_FLAG), /* responses and traps */ @@ -86,7 +88,7 @@ enum carl9170_cmd_oids { CARL9170_RSP_HEXDUMP = 0xcc, CARL9170_RSP_RADAR = 0xcd, CARL9170_RSP_GPIO = 0xce, - CARL9170_RSP_USB_WD = 0xcf + CARL9170_RSP_BOOT = 0xcf, }; struct carl9170_set_key_cmd { @@ -95,13 +97,13 @@ struct carl9170_set_key_cmd { __le16 type; u8 macAddr[6]; u32 key[4]; -} __packed; +} __packed __aligned(4); #define CARL9170_SET_KEY_CMD_SIZE 28 struct carl9170_disable_key_cmd { __le16 user; __le16 padding; -} __packed; +} __packed __aligned(4); #define CARL9170_DISABLE_KEY_CMD_SIZE 4 struct carl9170_u32_list { @@ -141,14 +143,6 @@ struct carl9170_rf_init_result { } __packed; #define CARL9170_RF_INIT_RESULT_SIZE 4 -#define CARL9170_USB_WATCHDOG_INACTIVE 0 -#define CARL9170_USB_WATCHDOG_ON_DUTY 1 - -struct carl9170_watchdog_cmd { - __le32 state; -} __packed; -#define CARL9170_WATCHDOG_CMD_SIZE 4 - #define CARL9170_PSM_SLEEP 0x1000 #define CARL9170_PSM_SOFTWARE 0 #define CARL9170_PSM_WAKE 0 /* internally used. */ @@ -160,10 +154,30 @@ struct carl9170_psm { } __packed; #define CARL9170_PSM_SIZE 4 -struct carl9170_cab_flush_cmd { - __le32 vif_id; /* currently unused */ +struct carl9170_rx_filter_cmd { + __le32 rx_filter; +} __packed; +#define CARL9170_RX_FILTER_CMD_SIZE 4 + +#define CARL9170_RX_FILTER_BAD 0x01 +#define CARL9170_RX_FILTER_OTHER_RA 0x02 +#define CARL9170_RX_FILTER_DECRY_FAIL 0x04 +#define CARL9170_RX_FILTER_CTL_OTHER 0x08 +#define CARL9170_RX_FILTER_CTL_PSPOLL 0x10 +#define CARL9170_RX_FILTER_CTL_BACKR 0x20 +#define CARL9170_RX_FILTER_MGMT 0x40 +#define CARL9170_RX_FILTER_DATA 0x80 + +struct carl9170_bcn_ctrl_cmd { + __le32 vif_id; + __le32 mode; + __le32 bcn_addr; + __le32 bcn_len; } __packed; -#define CARL9170_CAB_FLUSH_CMD_SIZE 4 +#define CARL9170_BCN_CTRL_CMD_SIZE 16 + +#define CARL9170_BCN_CTRL_DRAIN 0 +#define CARL9170_BCN_CTRL_CAB_TRIGGER 1 struct carl9170_cmd_head { union { @@ -184,15 +198,15 @@ struct carl9170_cmd { struct carl9170_set_key_cmd setkey; struct carl9170_disable_key_cmd disablekey; struct carl9170_u32_list echo; - struct carl9170_watchdog_cmd watchdog; struct carl9170_reg_list rreg; struct carl9170_write_reg wreg; struct carl9170_rf_init rf_init; struct carl9170_psm psm; - struct carl9170_cab_flush_cmd cab_flush; + struct carl9170_bcn_ctrl_cmd bcn_ctrl; + struct carl9170_rx_filter_cmd rx_filter; u8 data[CARL9170_MAX_CMD_PAYLOAD_LEN]; } __packed; -} __packed; +} __packed __aligned(4); #define CARL9170_TX_STATUS_QUEUE 3 #define CARL9170_TX_STATUS_QUEUE_S 0 @@ -258,7 +272,6 @@ struct carl9170_rsp { struct carl9170_rf_init_result rf_init_res; struct carl9170_u32_list rreg_res; struct carl9170_u32_list echo; - struct carl9170_watchdog_cmd watchdog; struct carl9170_tx_status tx_status[0]; struct _carl9170_tx_status _tx_status[0]; struct carl9170_gpio gpio; @@ -266,6 +279,6 @@ struct carl9170_rsp { struct carl9170_psm psm; u8 data[CARL9170_MAX_CMD_PAYLOAD_LEN]; } __packed; -} __packed; +} __packed __aligned(4); #endif /* __CARL9170_SHARED_FWCMD_H */