diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/hw.h')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/hw.h | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h index 3cb878c28ccf..4f786cb3020a 100644 --- a/drivers/net/wireless/ath/ath9k/hw.h +++ b/drivers/net/wireless/ath/ath9k/hw.h | |||
@@ -266,6 +266,7 @@ enum ath9k_int { | |||
266 | ATH9K_INT_TX = 0x00000040, | 266 | ATH9K_INT_TX = 0x00000040, |
267 | ATH9K_INT_TXDESC = 0x00000080, | 267 | ATH9K_INT_TXDESC = 0x00000080, |
268 | ATH9K_INT_TIM_TIMER = 0x00000100, | 268 | ATH9K_INT_TIM_TIMER = 0x00000100, |
269 | ATH9K_INT_MCI = 0x00000200, | ||
269 | ATH9K_INT_BB_WATCHDOG = 0x00000400, | 270 | ATH9K_INT_BB_WATCHDOG = 0x00000400, |
270 | ATH9K_INT_TXURN = 0x00000800, | 271 | ATH9K_INT_TXURN = 0x00000800, |
271 | ATH9K_INT_MIB = 0x00001000, | 272 | ATH9K_INT_MIB = 0x00001000, |
@@ -417,6 +418,25 @@ enum ath9k_rx_qtype { | |||
417 | ATH9K_RX_QUEUE_MAX, | 418 | ATH9K_RX_QUEUE_MAX, |
418 | }; | 419 | }; |
419 | 420 | ||
421 | enum mci_message_header { /* length of payload */ | ||
422 | MCI_LNA_CTRL = 0x10, /* len = 0 */ | ||
423 | MCI_CONT_NACK = 0x20, /* len = 0 */ | ||
424 | MCI_CONT_INFO = 0x30, /* len = 4 */ | ||
425 | MCI_CONT_RST = 0x40, /* len = 0 */ | ||
426 | MCI_SCHD_INFO = 0x50, /* len = 16 */ | ||
427 | MCI_CPU_INT = 0x60, /* len = 4 */ | ||
428 | MCI_SYS_WAKING = 0x70, /* len = 0 */ | ||
429 | MCI_GPM = 0x80, /* len = 16 */ | ||
430 | MCI_LNA_INFO = 0x90, /* len = 1 */ | ||
431 | MCI_LNA_STATE = 0x94, | ||
432 | MCI_LNA_TAKE = 0x98, | ||
433 | MCI_LNA_TRANS = 0x9c, | ||
434 | MCI_SYS_SLEEPING = 0xa0, /* len = 0 */ | ||
435 | MCI_REQ_WAKE = 0xc0, /* len = 0 */ | ||
436 | MCI_DEBUG_16 = 0xfe, /* len = 2 */ | ||
437 | MCI_REMOTE_RESET = 0xff /* len = 16 */ | ||
438 | }; | ||
439 | |||
420 | enum ath_mci_gpm_coex_profile_type { | 440 | enum ath_mci_gpm_coex_profile_type { |
421 | MCI_GPM_COEX_PROFILE_UNKNOWN, | 441 | MCI_GPM_COEX_PROFILE_UNKNOWN, |
422 | MCI_GPM_COEX_PROFILE_RFCOMM, | 442 | MCI_GPM_COEX_PROFILE_RFCOMM, |
@@ -427,6 +447,132 @@ enum ath_mci_gpm_coex_profile_type { | |||
427 | MCI_GPM_COEX_PROFILE_MAX | 447 | MCI_GPM_COEX_PROFILE_MAX |
428 | }; | 448 | }; |
429 | 449 | ||
450 | /* MCI GPM/Coex opcode/type definitions */ | ||
451 | enum { | ||
452 | MCI_GPM_COEX_W_GPM_PAYLOAD = 1, | ||
453 | MCI_GPM_COEX_B_GPM_TYPE = 4, | ||
454 | MCI_GPM_COEX_B_GPM_OPCODE = 5, | ||
455 | /* MCI_GPM_WLAN_CAL_REQ, MCI_GPM_WLAN_CAL_DONE */ | ||
456 | MCI_GPM_WLAN_CAL_W_SEQUENCE = 2, | ||
457 | |||
458 | /* MCI_GPM_COEX_VERSION_QUERY */ | ||
459 | /* MCI_GPM_COEX_VERSION_RESPONSE */ | ||
460 | MCI_GPM_COEX_B_MAJOR_VERSION = 6, | ||
461 | MCI_GPM_COEX_B_MINOR_VERSION = 7, | ||
462 | /* MCI_GPM_COEX_STATUS_QUERY */ | ||
463 | MCI_GPM_COEX_B_BT_BITMAP = 6, | ||
464 | MCI_GPM_COEX_B_WLAN_BITMAP = 7, | ||
465 | /* MCI_GPM_COEX_HALT_BT_GPM */ | ||
466 | MCI_GPM_COEX_B_HALT_STATE = 6, | ||
467 | /* MCI_GPM_COEX_WLAN_CHANNELS */ | ||
468 | MCI_GPM_COEX_B_CHANNEL_MAP = 6, | ||
469 | /* MCI_GPM_COEX_BT_PROFILE_INFO */ | ||
470 | MCI_GPM_COEX_B_PROFILE_TYPE = 6, | ||
471 | MCI_GPM_COEX_B_PROFILE_LINKID = 7, | ||
472 | MCI_GPM_COEX_B_PROFILE_STATE = 8, | ||
473 | MCI_GPM_COEX_B_PROFILE_ROLE = 9, | ||
474 | MCI_GPM_COEX_B_PROFILE_RATE = 10, | ||
475 | MCI_GPM_COEX_B_PROFILE_VOTYPE = 11, | ||
476 | MCI_GPM_COEX_H_PROFILE_T = 12, | ||
477 | MCI_GPM_COEX_B_PROFILE_W = 14, | ||
478 | MCI_GPM_COEX_B_PROFILE_A = 15, | ||
479 | /* MCI_GPM_COEX_BT_STATUS_UPDATE */ | ||
480 | MCI_GPM_COEX_B_STATUS_TYPE = 6, | ||
481 | MCI_GPM_COEX_B_STATUS_LINKID = 7, | ||
482 | MCI_GPM_COEX_B_STATUS_STATE = 8, | ||
483 | /* MCI_GPM_COEX_BT_UPDATE_FLAGS */ | ||
484 | MCI_GPM_COEX_W_BT_FLAGS = 6, | ||
485 | MCI_GPM_COEX_B_BT_FLAGS_OP = 10 | ||
486 | }; | ||
487 | |||
488 | enum mci_gpm_subtype { | ||
489 | MCI_GPM_BT_CAL_REQ = 0, | ||
490 | MCI_GPM_BT_CAL_GRANT = 1, | ||
491 | MCI_GPM_BT_CAL_DONE = 2, | ||
492 | MCI_GPM_WLAN_CAL_REQ = 3, | ||
493 | MCI_GPM_WLAN_CAL_GRANT = 4, | ||
494 | MCI_GPM_WLAN_CAL_DONE = 5, | ||
495 | MCI_GPM_COEX_AGENT = 0x0c, | ||
496 | MCI_GPM_RSVD_PATTERN = 0xfe, | ||
497 | MCI_GPM_RSVD_PATTERN32 = 0xfefefefe, | ||
498 | MCI_GPM_BT_DEBUG = 0xff | ||
499 | }; | ||
500 | |||
501 | enum mci_bt_state { | ||
502 | MCI_BT_SLEEP, | ||
503 | MCI_BT_AWAKE, | ||
504 | MCI_BT_CAL_START, | ||
505 | MCI_BT_CAL | ||
506 | }; | ||
507 | |||
508 | /* Type of state query */ | ||
509 | enum mci_state_type { | ||
510 | MCI_STATE_ENABLE, | ||
511 | MCI_STATE_INIT_GPM_OFFSET, | ||
512 | MCI_STATE_NEXT_GPM_OFFSET, | ||
513 | MCI_STATE_LAST_GPM_OFFSET, | ||
514 | MCI_STATE_BT, | ||
515 | MCI_STATE_SET_BT_SLEEP, | ||
516 | MCI_STATE_SET_BT_AWAKE, | ||
517 | MCI_STATE_SET_BT_CAL_START, | ||
518 | MCI_STATE_SET_BT_CAL, | ||
519 | MCI_STATE_LAST_SCHD_MSG_OFFSET, | ||
520 | MCI_STATE_REMOTE_SLEEP, | ||
521 | MCI_STATE_CONT_RSSI_POWER, | ||
522 | MCI_STATE_CONT_PRIORITY, | ||
523 | MCI_STATE_CONT_TXRX, | ||
524 | MCI_STATE_RESET_REQ_WAKE, | ||
525 | MCI_STATE_SEND_WLAN_COEX_VERSION, | ||
526 | MCI_STATE_SET_BT_COEX_VERSION, | ||
527 | MCI_STATE_SEND_WLAN_CHANNELS, | ||
528 | MCI_STATE_SEND_VERSION_QUERY, | ||
529 | MCI_STATE_SEND_STATUS_QUERY, | ||
530 | MCI_STATE_NEED_FLUSH_BT_INFO, | ||
531 | MCI_STATE_SET_CONCUR_TX_PRI, | ||
532 | MCI_STATE_RECOVER_RX, | ||
533 | MCI_STATE_NEED_FTP_STOMP, | ||
534 | MCI_STATE_NEED_TUNING, | ||
535 | MCI_STATE_DEBUG, | ||
536 | MCI_STATE_MAX | ||
537 | }; | ||
538 | |||
539 | enum mci_gpm_coex_opcode { | ||
540 | MCI_GPM_COEX_VERSION_QUERY, | ||
541 | MCI_GPM_COEX_VERSION_RESPONSE, | ||
542 | MCI_GPM_COEX_STATUS_QUERY, | ||
543 | MCI_GPM_COEX_HALT_BT_GPM, | ||
544 | MCI_GPM_COEX_WLAN_CHANNELS, | ||
545 | MCI_GPM_COEX_BT_PROFILE_INFO, | ||
546 | MCI_GPM_COEX_BT_STATUS_UPDATE, | ||
547 | MCI_GPM_COEX_BT_UPDATE_FLAGS | ||
548 | }; | ||
549 | |||
550 | #define MCI_GPM_NOMORE 0 | ||
551 | #define MCI_GPM_MORE 1 | ||
552 | #define MCI_GPM_INVALID 0xffffffff | ||
553 | |||
554 | #define MCI_GPM_RECYCLE(_p_gpm) do { \ | ||
555 | *(((u32 *)_p_gpm) + MCI_GPM_COEX_W_GPM_PAYLOAD) = \ | ||
556 | MCI_GPM_RSVD_PATTERN32; \ | ||
557 | } while (0) | ||
558 | |||
559 | #define MCI_GPM_TYPE(_p_gpm) \ | ||
560 | (*(((u8 *)(_p_gpm)) + MCI_GPM_COEX_B_GPM_TYPE) & 0xff) | ||
561 | |||
562 | #define MCI_GPM_OPCODE(_p_gpm) \ | ||
563 | (*(((u8 *)(_p_gpm)) + MCI_GPM_COEX_B_GPM_OPCODE) & 0xff) | ||
564 | |||
565 | #define MCI_GPM_SET_CAL_TYPE(_p_gpm, _cal_type) do { \ | ||
566 | *(((u8 *)(_p_gpm)) + MCI_GPM_COEX_B_GPM_TYPE) = (_cal_type) & 0xff;\ | ||
567 | } while (0) | ||
568 | |||
569 | #define MCI_GPM_SET_TYPE_OPCODE(_p_gpm, _type, _opcode) do { \ | ||
570 | *(((u8 *)(_p_gpm)) + MCI_GPM_COEX_B_GPM_TYPE) = (_type) & 0xff; \ | ||
571 | *(((u8 *)(_p_gpm)) + MCI_GPM_COEX_B_GPM_OPCODE) = (_opcode) & 0xff;\ | ||
572 | } while (0) | ||
573 | |||
574 | #define MCI_GPM_IS_CAL_TYPE(_type) ((_type) <= MCI_GPM_WLAN_CAL_DONE) | ||
575 | |||
430 | struct ath9k_beacon_state { | 576 | struct ath9k_beacon_state { |
431 | u32 bs_nexttbtt; | 577 | u32 bs_nexttbtt; |
432 | u32 bs_nextdtim; | 578 | u32 bs_nextdtim; |