tree: https://github.com/Freescale/linux-fslc 5.4-2.3.x-imx head: a8a2b9ee4bec0b29d031324160b7f11af42a563a commit: 56bffa9cd6e18bde860875596038622757f58a98 [15209/16543] MLK-24995 net: wireless: nxp: mxm_wifiex: upgrade to mxm5x16207 release config: i386-allyesconfig (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce (this is a W=1 build): # https://github.com/Freescale/linux-fslc/commit/56bffa9cd6e18bde860875596038622757f58a98 git remote add freescale-fslc https://github.com/Freescale/linux-fslc git fetch --no-tags freescale-fslc 5.4-2.3.x-imx git checkout 56bffa9cd6e18bde860875596038622757f58a98 # save the attached .config to linux build tree make W=1 ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlan/mlan_sta_event.c: In function 'wlan_ops_sta_process_event': >> drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlan/mlan_sta_event.c:984:33: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 984 | *(t_u64 *)pevent->event_buf = (t_u64)pmadapter->ssu_buf->pbuf + | ^ In file included from drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlan/mlan_sta_event.c:40: At top level: drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlan/mlan_pcie.h:529:37: warning: 'mlan_card_info_pcie8997' defined but not used [-Wunused-const-variable=] 529 | static const struct _mlan_card_info mlan_card_info_pcie8997 = { | ^~~~~~~~~~~~~~~~~~~~~~~ drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlan/mlan_pcie.h:499:41: warning: 'mlan_reg_pcie8997' defined but not used [-Wunused-const-variable=] 499 | static const struct _mlan_pcie_card_reg mlan_reg_pcie8997 = { | ^~~~~~~~~~~~~~~~~ -- >> drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlan/mlan_join.c:558:7: warning: no previous prototype for 'wlan_get_rsn_cap' [-Wmissing-prototypes] 558 | t_u16 wlan_get_rsn_cap(t_u8 *data) | ^~~~~~~~~~~~~~~~ >> drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlan/mlan_join.c:592:6: warning: no previous prototype for 'wlan_use_mfp' [-Wmissing-prototypes] 592 | t_u8 wlan_use_mfp(mlan_private *pmpriv, BSSDescriptor_t *pbss_desc) | ^~~~~~~~~~~~ drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlan/mlan_join.c:627:5: warning: no previous prototype for 'wlan_update_rsn_ie' [-Wmissing-prototypes] 627 | int wlan_update_rsn_ie(mlan_private *pmpriv, | ^~~~~~~~~~~~~~~~~~ drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlan/mlan_join.c:819:6: warning: no previous prototype for 'wlan_find_ie' [-Wmissing-prototypes] 819 | t_u8 wlan_find_ie(t_u8 *ie, t_u8 ie_len, t_u8 ie_type) | ^~~~~~~~~~~~ drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlan/mlan_join.c: In function 'wlan_cmd_802_11_associate': drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlan/mlan_join.c:882:7: warning: variable 'ft_akm' set but not used [-Wunused-but-set-variable] 882 | t_u8 ft_akm = 0; | ^~~~~~ Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for GPIO_MXC Depends on GPIOLIB && HAS_IOMEM && ARCH_MXC Selected by - GPIO_MXC_PAD_WAKEUP && GPIOLIB && HAS_IOMEM && IMX_SCU vim +984 drivers/net/wireless/nxp/mxm_wifiex/wlan_src/mlan/mlan_sta_event.c 353 354 /** 355 * @brief This function handles events generated by firmware 356 * 357 * @param priv A pointer to mlan_private structure 358 * 359 * @return MLAN_STATUS_SUCCESS or MLAN_STATUS_FAILURE 360 */ 361 mlan_status wlan_ops_sta_process_event(t_void *priv) 362 { 363 pmlan_private pmpriv = (pmlan_private)priv; 364 pmlan_adapter pmadapter = pmpriv->adapter; 365 mlan_status ret = MLAN_STATUS_SUCCESS; 366 t_u32 eventcause = pmadapter->event_cause; 367 t_u8 *event_buf = MNULL; 368 t_u8 *evt_buf = MNULL; 369 pmlan_buffer pmbuf = pmadapter->pmlan_buffer_event; 370 t_u16 reason_code; 371 pmlan_callbacks pcb = &pmadapter->callbacks; 372 mlan_event *pevent = MNULL; 373 chan_band_info *pchan_band_info = MNULL; 374 t_u8 radar_chan; 375 t_u16 enable = 0; 376 377 ENTER(); 378 379 if (!pmbuf) { 380 LEAVE(); 381 return MLAN_STATUS_FAILURE; 382 } 383 384 /* Event length check */ 385 if ((pmbuf->data_len - sizeof(eventcause)) > MAX_EVENT_SIZE) { 386 pmbuf->status_code = MLAN_ERROR_PKT_SIZE_INVALID; 387 LEAVE(); 388 return MLAN_STATUS_FAILURE; 389 } 390 391 /* Allocate memory for event buffer */ 392 ret = pcb->moal_malloc(pmadapter->pmoal_handle, 393 MAX_EVENT_SIZE + sizeof(mlan_event), 394 MLAN_MEM_DEF, &event_buf); 395 if ((ret != MLAN_STATUS_SUCCESS) || !event_buf) { 396 PRINTM(MERROR, "Could not allocate buffer for event buf\n"); 397 if (pmbuf) 398 pmbuf->status_code = MLAN_ERROR_NO_MEM; 399 goto done; 400 } 401 pevent = (pmlan_event)event_buf; 402 memset(pmadapter, event_buf, 0, MAX_EVENT_SIZE); 403 404 if (eventcause != EVENT_PS_SLEEP && eventcause != EVENT_PS_AWAKE && 405 pmbuf->data_len > sizeof(eventcause)) 406 DBG_HEXDUMP(MEVT_D, "EVENT", pmbuf->pbuf + pmbuf->data_offset, 407 pmbuf->data_len); 408 409 switch (eventcause) { 410 case EVENT_DUMMY_HOST_WAKEUP_SIGNAL: 411 PRINTM(MERROR, 412 "Invalid EVENT: DUMMY_HOST_WAKEUP_SIGNAL, ignoring it\n"); 413 break; 414 case EVENT_LINK_SENSED: 415 PRINTM(MEVENT, "EVENT: LINK_SENSED\n"); 416 pmpriv->adhoc_is_link_sensed = MTRUE; 417 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_ADHOC_LINK_SENSED, 418 MNULL); 419 break; 420 421 case EVENT_DEAUTHENTICATED: 422 if (pmpriv->wps.session_enable) { 423 PRINTM(MMSG, 424 "wlan: Receive deauth event in wps session\n"); 425 break; 426 } 427 reason_code = wlan_le16_to_cpu(*(t_u16 *)(pmbuf->pbuf + 428 pmbuf->data_offset + 429 sizeof(eventcause))); 430 PRINTM(MMSG, "wlan: EVENT: Deauthenticated (reason 0x%x)\n", 431 reason_code); 432 wlan_print_disconnect_reason(reason_code); 433 pmpriv->disconnect_reason_code = reason_code; 434 pmadapter->dbg.num_event_deauth++; 435 wlan_handle_disconnect_event(pmpriv); 436 437 break; 438 439 case EVENT_DISASSOCIATED: 440 if (pmpriv->wps.session_enable) { 441 PRINTM(MMSG, 442 "wlan: Receive disassociate event in wps session\n"); 443 break; 444 } 445 reason_code = wlan_le16_to_cpu(*(t_u16 *)(pmbuf->pbuf + 446 pmbuf->data_offset + 447 sizeof(eventcause))); 448 PRINTM(MMSG, "wlan: EVENT: Disassociated (reason 0x%x)\n", 449 reason_code); 450 wlan_print_disconnect_reason(reason_code); 451 pmpriv->disconnect_reason_code = reason_code; 452 pmadapter->dbg.num_event_disassoc++; 453 wlan_handle_disconnect_event(pmpriv); 454 break; 455 456 case EVENT_LINK_LOST: 457 reason_code = wlan_le16_to_cpu(*(t_u16 *)(pmbuf->pbuf + 458 pmbuf->data_offset + 459 sizeof(eventcause))); 460 PRINTM(MMSG, "wlan: EVENT: Link lost (reason 0x%x)\n", 461 reason_code); 462 pmpriv->disconnect_reason_code = reason_code; 463 pmadapter->dbg.num_event_link_lost++; 464 wlan_handle_disconnect_event(pmpriv); 465 break; 466 467 case EVENT_PS_SLEEP: 468 PRINTM(MINFO, "EVENT: SLEEP\n"); 469 PRINTM_NETINTF(MEVENT, pmpriv); 470 PRINTM(MEVENT, "_"); 471 472 /* Handle unexpected PS SLEEP event */ 473 if (pmadapter->ps_state == PS_STATE_SLEEP_CFM) 474 break; 475 pmadapter->ps_state = PS_STATE_PRE_SLEEP; 476 477 wlan_check_ps_cond(pmadapter); 478 break; 479 480 case EVENT_PS_AWAKE: 481 PRINTM(MINFO, "EVENT: AWAKE\n"); 482 PRINTM_NETINTF(MEVENT, pmpriv); 483 PRINTM(MEVENT, "|"); 484 if (!pmadapter->pps_uapsd_mode && pmpriv->media_connected && 485 (pmpriv->port_open || !pmpriv->port_ctrl_mode) && 486 pmadapter->sleep_period.period) { 487 pmadapter->pps_uapsd_mode = MTRUE; 488 PRINTM(MEVENT, "PPS/UAPSD mode activated\n"); 489 } 490 /* Handle unexpected PS AWAKE event */ 491 if (pmadapter->ps_state == PS_STATE_SLEEP_CFM) 492 break; 493 pmadapter->tx_lock_flag = MFALSE; 494 if (pmadapter->pps_uapsd_mode && pmadapter->gen_null_pkt) { 495 if (MTRUE == 496 wlan_check_last_packet_indication(pmpriv)) { 497 if (!pmadapter->data_sent) { 498 if (wlan_send_null_packet( 499 pmpriv, 500 MRVDRV_TxPD_POWER_MGMT_NULL_PACKET | 501 MRVDRV_TxPD_POWER_MGMT_LAST_PACKET) == 502 MLAN_STATUS_SUCCESS) { 503 LEAVE(); 504 return MLAN_STATUS_SUCCESS; 505 } 506 } 507 } 508 } 509 pmadapter->ps_state = PS_STATE_AWAKE; 510 pmadapter->pm_wakeup_card_req = MFALSE; 511 pmadapter->pm_wakeup_fw_try = MFALSE; 512 break; 513 514 case EVENT_HS_ACT_REQ: 515 PRINTM(MEVENT, "EVENT: HS_ACT_REQ\n"); 516 ret = wlan_prepare_cmd(priv, HostCmd_CMD_802_11_HS_CFG_ENH, 0, 517 0, MNULL, MNULL); 518 break; 519 case EVENT_MIC_ERR_UNICAST: 520 PRINTM(MEVENT, "EVENT: UNICAST MIC ERROR\n"); 521 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_MIC_ERR_UNI, MNULL); 522 break; 523 524 case EVENT_MIC_ERR_MULTICAST: 525 PRINTM(MEVENT, "EVENT: MULTICAST MIC ERROR\n"); 526 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_MIC_ERR_MUL, MNULL); 527 break; 528 case EVENT_MIB_CHANGED: 529 case EVENT_INIT_DONE: 530 break; 531 532 case EVENT_ADHOC_BCN_LOST: 533 PRINTM(MEVENT, "EVENT: ADHOC_BCN_LOST\n"); 534 pmpriv->adhoc_is_link_sensed = MFALSE; 535 wlan_clean_txrx(pmpriv); 536 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_ADHOC_LINK_LOST, 537 MNULL); 538 break; 539 540 case EVENT_FW_DEBUG_INFO: 541 pevent->bss_index = pmpriv->bss_index; 542 pevent->event_id = MLAN_EVENT_ID_FW_DEBUG_INFO; 543 pevent->event_len = pmbuf->data_len - sizeof(eventcause); 544 memcpy_ext(pmadapter, (t_u8 *)pevent->event_buf, 545 pmbuf->pbuf + pmbuf->data_offset + 546 sizeof(eventcause), 547 pevent->event_len, pevent->event_len); 548 PRINTM(MEVENT, "EVENT: FW Debug Info %s\n", 549 (t_u8 *)pevent->event_buf); 550 wlan_recv_event(pmpriv, pevent->event_id, pevent); 551 break; 552 553 case EVENT_BG_SCAN_REPORT: 554 PRINTM(MEVENT, "EVENT: BGS_REPORT\n"); 555 pmadapter->bgscan_reported = MTRUE; 556 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_BG_SCAN, MNULL); 557 break; 558 case EVENT_BG_SCAN_STOPPED: 559 PRINTM(MEVENT, "EVENT: BGS_STOPPED\n"); 560 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_BG_SCAN_STOPPED, 561 MNULL); 562 break; 563 564 case EVENT_PORT_RELEASE: 565 PRINTM(MEVENT, "EVENT: PORT RELEASE\n"); 566 /* Open the port for e-supp mode */ 567 if (pmpriv->port_ctrl_mode == MTRUE) { 568 PRINTM(MINFO, "PORT_REL: port_status = OPEN\n"); 569 pmpriv->port_open = MTRUE; 570 } 571 pmadapter->scan_block = MFALSE; 572 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_PORT_RELEASE, MNULL); 573 break; 574 575 case EVENT_STOP_TX: 576 PRINTM(MEVENT, "EVENT: Stop Tx (%#x)\n", eventcause); 577 wlan_11h_tx_disable(pmpriv); /* this fn will send event up to 578 MOAL */ 579 break; 580 case EVENT_START_TX: 581 PRINTM(MEVENT, "EVENT: Start Tx (%#x)\n", eventcause); 582 wlan_11h_tx_enable(pmpriv); /* this fn will send event up to 583 MOAL */ 584 break; 585 case EVENT_CHANNEL_SWITCH: 586 PRINTM(MEVENT, "EVENT: Channel Switch (%#x)\n", eventcause); 587 if (pmadapter->ecsa_enable) { 588 MrvlIEtypes_channel_band_t *pchan_info = 589 (MrvlIEtypes_channel_band_t 590 *)(pmadapter->event_body); 591 t_u8 channel = pchan_info->channel; 592 chan_freq_power_t *cfp = MNULL; 593 DBG_HEXDUMP(MCMD_D, "chan band config", 594 (t_u8 *)pchan_info, 595 sizeof(MrvlIEtypes_channel_band_t)); 596 PRINTM(MEVENT, "Switch to channel %d success!\n", 597 channel); 598 #define MAX_CHANNEL_BAND_B 14 599 if (channel <= MAX_CHANNEL_BAND_B) 600 cfp = wlan_find_cfp_by_band_and_channel( 601 pmadapter, BAND_B, channel); 602 else 603 cfp = wlan_find_cfp_by_band_and_channel( 604 pmadapter, BAND_A, channel); 605 pmpriv->curr_bss_params.bss_descriptor.channel = 606 channel; 607 if (cfp) 608 pmpriv->curr_bss_params.bss_descriptor.freq = 609 cfp->freq; 610 else 611 pmpriv->curr_bss_params.bss_descriptor.freq = 0; 612 if (pmpriv->adapter->state_rdh.stage == 613 RDH_SET_CUSTOM_IE) { 614 pmadapter->state_rdh.stage = 615 RDH_RESTART_TRAFFIC; 616 wlan_11h_radar_detected_handling(pmadapter, 617 pmpriv); 618 } 619 pmadapter->state_rdh.tx_block = MFALSE; 620 /* Setup event buffer */ 621 pevent->bss_index = pmpriv->bss_index; 622 pevent->event_id = 623 MLAN_EVENT_ID_FW_CHAN_SWITCH_COMPLETE; 624 pevent->event_len = sizeof(chan_band_info); 625 pchan_band_info = (chan_band_info *)pevent->event_buf; 626 /* Copy event data */ 627 memcpy_ext(pmadapter, (t_u8 *)&pchan_band_info->bandcfg, 628 (t_u8 *)&pchan_info->bandcfg, 629 sizeof(pchan_info->bandcfg), 630 sizeof(pchan_band_info->bandcfg)); 631 pchan_band_info->channel = pchan_info->channel; 632 if (pchan_band_info->bandcfg.chanWidth == CHAN_BW_80MHZ) 633 pchan_band_info->center_chan = 634 wlan_get_center_freq_idx( 635 priv, BAND_AAC, 636 pchan_info->channel, 637 CHANNEL_BW_80MHZ); 638 wlan_recv_event(pmpriv, 639 MLAN_EVENT_ID_FW_CHAN_SWITCH_COMPLETE, 640 pevent); 641 } 642 break; 643 case EVENT_CHANNEL_SWITCH_ANN: 644 PRINTM_NETINTF(MEVENT, pmpriv); 645 PRINTM(MEVENT, "EVENT: Channel Switch Announcement\n"); 646 /* Here, pass up event first, as handling will send deauth */ 647 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_CHANNEL_SWITCH_ANN, 648 MNULL); 649 wlan_11h_handle_event_chanswann(pmpriv); 650 break; 651 case EVENT_RADAR_DETECTED: 652 PRINTM_NETINTF(MEVENT, pmpriv); 653 PRINTM(MEVENT, "EVENT: Radar Detected\n"); 654 655 /* Send as passthru first, this event can cause other events */ 656 pevent->bss_index = pmpriv->bss_index; 657 pevent->event_id = MLAN_EVENT_ID_DRV_PASSTHRU; 658 pevent->event_len = pmbuf->data_len; 659 memcpy_ext(pmadapter, (t_u8 *)pevent->event_buf, 660 pmbuf->pbuf + pmbuf->data_offset, pevent->event_len, 661 pevent->event_len); 662 wlan_recv_event(pmpriv, pevent->event_id, pevent); 663 664 if (pmadapter->state_rdh.stage == RDH_OFF) { 665 pmadapter->state_rdh.stage = RDH_CHK_INTFS; 666 wlan_11h_radar_detected_handling(pmadapter, pmpriv); 667 } else { 668 PRINTM(MEVENT, "Ignore Event Radar Detected - handling" 669 " already in progress.\n"); 670 } 671 672 break; 673 674 case EVENT_CHANNEL_REPORT_RDY: 675 PRINTM_NETINTF(MEVENT, pmpriv); 676 PRINTM(MEVENT, "EVENT: Channel Report Ready\n"); 677 pevent->bss_index = pmpriv->bss_index; 678 pevent->event_id = MLAN_EVENT_ID_FW_CHANNEL_REPORT_RDY; 679 pevent->event_len = pmbuf->data_len - sizeof(eventcause); 680 /* Copy event data */ 681 memcpy_ext(pmadapter, (t_u8 *)pevent->event_buf, 682 pmbuf->pbuf + pmbuf->data_offset + 683 sizeof(eventcause), 684 pevent->event_len, pevent->event_len); 685 /* Handle / pass event data */ 686 ret = wlan_11h_handle_event_chanrpt_ready(pmpriv, pevent, 687 &radar_chan); 688 /* Also send this event as passthru */ 689 pevent->event_id = MLAN_EVENT_ID_DRV_PASSTHRU; 690 pevent->event_len = pmbuf->data_len; 691 memcpy_ext(pmadapter, (t_u8 *)pevent->event_buf, 692 pmbuf->pbuf + pmbuf->data_offset, pevent->event_len, 693 pevent->event_len); 694 wlan_recv_event(pmpriv, pevent->event_id, pevent); 695 /* Send up this Event to unblock MOAL waitqueue */ 696 wlan_recv_event(pmpriv, MLAN_EVENT_ID_DRV_MEAS_REPORT, MNULL); 697 break; 698 case EVENT_EXT_SCAN_REPORT: 699 PRINTM(MEVENT, "EVENT: EXT_SCAN Report (%d)\n", 700 pmbuf->data_len); 701 if (pmadapter->pscan_ioctl_req && pmadapter->ext_scan) 702 ret = wlan_handle_event_ext_scan_report(priv, pmbuf); 703 break; 704 case EVENT_EXT_SCAN_STATUS_REPORT: 705 PRINTM(MEVENT, "EVENT: EXT_SCAN status report (%d)\n", 706 pmbuf->data_len); 707 pmadapter->ext_scan_timeout = MFALSE; 708 ret = wlan_handle_event_ext_scan_status(priv, pmbuf); 709 break; 710 case EVENT_MEAS_REPORT_RDY: 711 PRINTM(MEVENT, "EVENT: Measurement Report Ready (%#x)\n", 712 eventcause); 713 ret = wlan_prepare_cmd(priv, HostCmd_CMD_MEASUREMENT_REPORT, 714 HostCmd_ACT_GEN_SET, 0, 0, MNULL); 715 break; 716 case EVENT_WMM_STATUS_CHANGE: 717 if (pmbuf && 718 pmbuf->data_len > 719 sizeof(eventcause) + sizeof(MrvlIEtypesHeader_t)) { 720 PRINTM(MEVENT, "EVENT: WMM status changed: %d\n", 721 pmbuf->data_len); 722 723 evt_buf = (pmbuf->pbuf + pmbuf->data_offset + 724 sizeof(eventcause)); 725 726 wlan_ret_wmm_get_status(pmpriv, evt_buf, 727 pmbuf->data_len - 728 sizeof(eventcause)); 729 } else { 730 PRINTM(MEVENT, "EVENT: WMM status changed\n"); 731 ret = wlan_cmd_wmm_status_change(pmpriv); 732 } 733 break; 734 735 case EVENT_RSSI_LOW: 736 PRINTM(MEVENT, "EVENT: Beacon RSSI_LOW\n"); 737 pevent->bss_index = pmpriv->bss_index; 738 pevent->event_id = MLAN_EVENT_ID_FW_BCN_RSSI_LOW; 739 pevent->event_len = sizeof(t_u16); 740 /** Fw send bcnRssi low value in event reason field*/ 741 memcpy_ext(pmadapter, (t_u8 *)pevent->event_buf, 742 (t_u8 *)&pmadapter->event_body, pevent->event_len, 743 pevent->event_len); 744 wlan_recv_event(pmpriv, pevent->event_id, pevent); 745 break; 746 case EVENT_SNR_LOW: 747 PRINTM(MEVENT, "EVENT: Beacon SNR_LOW\n"); 748 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_BCN_SNR_LOW, MNULL); 749 break; 750 case EVENT_MAX_FAIL: 751 PRINTM(MEVENT, "EVENT: MAX_FAIL\n"); 752 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_MAX_FAIL, MNULL); 753 break; 754 case EVENT_RSSI_HIGH: 755 PRINTM(MEVENT, "EVENT: Beacon RSSI_HIGH\n"); 756 pevent->bss_index = pmpriv->bss_index; 757 pevent->event_id = MLAN_EVENT_ID_FW_BCN_RSSI_HIGH; 758 pevent->event_len = sizeof(t_u16); 759 /** Fw send bcnRssi high value in event reason field*/ 760 memcpy_ext(pmadapter, (t_u8 *)pevent->event_buf, 761 (t_u8 *)&pmadapter->event_body, pevent->event_len, 762 pevent->event_len); 763 wlan_recv_event(pmpriv, pevent->event_id, pevent); 764 break; 765 case EVENT_SNR_HIGH: 766 PRINTM(MEVENT, "EVENT: Beacon SNR_HIGH\n"); 767 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_BCN_SNR_HIGH, MNULL); 768 break; 769 case EVENT_DATA_RSSI_LOW: 770 PRINTM(MEVENT, "EVENT: Data RSSI_LOW\n"); 771 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_DATA_RSSI_LOW, MNULL); 772 break; 773 case EVENT_DATA_SNR_LOW: 774 PRINTM(MEVENT, "EVENT: Data SNR_LOW\n"); 775 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_DATA_SNR_LOW, MNULL); 776 break; 777 case EVENT_DATA_RSSI_HIGH: 778 PRINTM(MEVENT, "EVENT: Data RSSI_HIGH\n"); 779 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_DATA_RSSI_HIGH, MNULL); 780 break; 781 case EVENT_DATA_SNR_HIGH: 782 PRINTM(MEVENT, "EVENT: Data SNR_HIGH\n"); 783 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_DATA_SNR_HIGH, MNULL); 784 break; 785 case EVENT_LINK_QUALITY: 786 PRINTM(MEVENT, "EVENT: Link Quality\n"); 787 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_LINK_QUALITY, MNULL); 788 break; 789 case EVENT_PRE_BEACON_LOST: 790 PRINTM(MEVENT, "EVENT: Pre-Beacon Lost\n"); 791 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_PRE_BCN_LOST, MNULL); 792 break; 793 case EVENT_IBSS_COALESCED: 794 PRINTM(MEVENT, "EVENT: IBSS_COALESCED\n"); 795 ret = wlan_prepare_cmd( 796 pmpriv, HostCmd_CMD_802_11_IBSS_COALESCING_STATUS, 797 HostCmd_ACT_GEN_GET, 0, MNULL, MNULL); 798 break; 799 case EVENT_ADDBA: 800 PRINTM(MEVENT, "EVENT: ADDBA Request\n"); 801 if (pmpriv->media_connected == MTRUE) 802 ret = wlan_prepare_cmd(pmpriv, 803 HostCmd_CMD_11N_ADDBA_RSP, 804 HostCmd_ACT_GEN_SET, 0, MNULL, 805 pmadapter->event_body); 806 else 807 PRINTM(MERROR, 808 "Ignore ADDBA Request event in disconnected state\n"); 809 break; 810 case EVENT_DELBA: 811 PRINTM(MEVENT, "EVENT: DELBA Request\n"); 812 if (pmpriv->media_connected == MTRUE) 813 wlan_11n_delete_bastream(pmpriv, pmadapter->event_body); 814 else 815 PRINTM(MERROR, 816 "Ignore DELBA Request event in disconnected state\n"); 817 break; 818 case EVENT_BA_STREAM_TIMEOUT: 819 PRINTM(MEVENT, "EVENT: BA Stream timeout\n"); 820 if (pmpriv->media_connected == MTRUE) 821 wlan_11n_ba_stream_timeout( 822 pmpriv, (HostCmd_DS_11N_BATIMEOUT *) 823 pmadapter->event_body); 824 else 825 PRINTM(MERROR, 826 "Ignore BA Stream timeout event in disconnected state\n"); 827 break; 828 case EVENT_RXBA_SYNC: 829 PRINTM(MEVENT, "EVENT: RXBA_SYNC\n"); 830 wlan_11n_rxba_sync_event(pmpriv, pmadapter->event_body, 831 pmbuf->data_len - sizeof(eventcause)); 832 break; 833 case EVENT_AMSDU_AGGR_CTRL: 834 PRINTM(MEVENT, "EVENT: AMSDU_AGGR_CTRL %d\n", 835 *(t_u16 *)pmadapter->event_body); 836 pmadapter->tx_buf_size = 837 MIN(pmadapter->curr_tx_buf_size, 838 wlan_le16_to_cpu(*(t_u16 *)pmadapter->event_body)); 839 if (pmbuf->data_len == sizeof(eventcause) + sizeof(t_u32)) { 840 enable = wlan_le16_to_cpu( 841 *(t_u16 *)(pmadapter->event_body + 842 sizeof(t_u16))); 843 if (enable) 844 pmpriv->amsdu_disable = MFALSE; 845 else 846 pmpriv->amsdu_disable = MTRUE; 847 PRINTM(MEVENT, "amsdu_disable=%d\n", 848 pmpriv->amsdu_disable); 849 } 850 PRINTM(MEVENT, "tx_buf_size %d\n", pmadapter->tx_buf_size); 851 break; 852 853 case EVENT_WEP_ICV_ERR: 854 PRINTM(MEVENT, "EVENT: WEP ICV error\n"); 855 pevent->bss_index = pmpriv->bss_index; 856 pevent->event_id = MLAN_EVENT_ID_FW_WEP_ICV_ERR; 857 pevent->event_len = sizeof(Event_WEP_ICV_ERR); 858 memcpy_ext(pmadapter, (t_u8 *)pevent->event_buf, 859 pmadapter->event_body, pevent->event_len, 860 pevent->event_len); 861 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_WEP_ICV_ERR, pevent); 862 break; 863 864 case EVENT_BW_CHANGE: 865 PRINTM(MEVENT, "EVENT: BW Change\n"); 866 pevent->bss_index = pmpriv->bss_index; 867 pevent->event_id = MLAN_EVENT_ID_FW_BW_CHANGED; 868 pevent->event_len = sizeof(t_u8); 869 /* Copy event body from the event buffer */ 870 memcpy_ext(pmadapter, (t_u8 *)pevent->event_buf, 871 pmadapter->event_body, pevent->event_len, 872 pevent->event_len); 873 #ifdef UAP_SUPPORT 874 if (pmadapter->dfs_repeater) 875 wlan_dfs_rep_bw_change(pmadapter); 876 #endif 877 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_BW_CHANGED, pevent); 878 break; 879 880 #ifdef WIFI_DIRECT_SUPPORT 881 case EVENT_WIFIDIRECT_GENERIC_EVENT: 882 PRINTM(MEVENT, "EVENT: WIFIDIRECT event %d\n", eventcause); 883 pevent->bss_index = pmpriv->bss_index; 884 pevent->event_id = MLAN_EVENT_ID_DRV_PASSTHRU; 885 pevent->event_len = pmbuf->data_len; 886 memcpy_ext(pmadapter, (t_u8 *)pevent->event_buf, 887 pmbuf->pbuf + pmbuf->data_offset, pevent->event_len, 888 pevent->event_len); 889 wlan_recv_event(pmpriv, pevent->event_id, pevent); 890 break; 891 case EVENT_WIFIDIRECT_SERVICE_DISCOVERY: 892 PRINTM(MEVENT, "EVENT: WIFIDIRECT service discovery event %d\n", 893 eventcause); 894 pevent->bss_index = pmpriv->bss_index; 895 pevent->event_id = MLAN_EVENT_ID_DRV_PASSTHRU; 896 pevent->event_len = pmbuf->data_len; 897 memcpy_ext(pmadapter, (t_u8 *)pevent->event_buf, 898 pmbuf->pbuf + pmbuf->data_offset, pevent->event_len, 899 pevent->event_len); 900 wlan_recv_event(pmpriv, pevent->event_id, pevent); 901 break; 902 #endif /* WIFI_DIRECT_SUPPORT */ 903 case EVENT_REMAIN_ON_CHANNEL_EXPIRED: 904 PRINTM_NETINTF(MEVENT, pmpriv); 905 PRINTM(MEVENT, "EVENT: REMAIN_ON_CHANNEL_EXPIRED reason=%d\n", 906 *(t_u16 *)pmadapter->event_body); 907 wlan_recv_event(pmpriv, MLAN_EVENT_ID_DRV_FLUSH_RX_WORK, MNULL); 908 wlan_recv_event(pmpriv, MLAN_EVENT_ID_FW_REMAIN_ON_CHAN_EXPIRED, 909 MNULL); 910 break; 911 912 case EVENT_TX_DATA_PAUSE: 913 PRINTM(MEVENT, "EVENT: TX_DATA_PAUSE\n"); 914 wlan_process_sta_tx_pause_event(priv, pmbuf); 915 break; 916 917 case EVENT_IBSS_STATION_CONNECT: 918 break; 919 case EVENT_IBSS_STATION_DISCONNECT: 920 break; 921 case EVENT_SAD_REPORT: { 922 #ifdef DEBUG_LEVEL1 923 t_u8 *pevt_dat = 924 pmbuf->pbuf + pmbuf->data_offset + sizeof(t_u32); 925 #endif 926 PRINTM(MEVENT, 927 "EVENT: Antenna Diversity %d (%d, %d, %d, %d)\n", 928 eventcause, pevt_dat[0] + 1, pevt_dat[1] + 1, 929 pevt_dat[2], pevt_dat[3]); 930 } break; 931 932 case EVENT_FW_DUMP_INFO: 933 PRINTM(MEVENT, "EVENT: Dump FW info\n"); 934 pevent->bss_index = pmpriv->bss_index; 935 pevent->event_id = MLAN_EVENT_ID_FW_DUMP_INFO; 936 pevent->event_len = pmbuf->data_len; 937 memcpy_ext(pmadapter, (t_u8 *)pevent->event_buf, 938 pmbuf->pbuf + pmbuf->data_offset, pevent->event_len, 939 pevent->event_len); 940 wlan_recv_event(pmpriv, pevent->event_id, pevent); 941 break; 942 case EVENT_TX_STATUS_REPORT: 943 PRINTM(MINFO, "EVENT: TX_STATUS\n"); 944 pevent->bss_index = pmpriv->bss_index; 945 pevent->event_id = MLAN_EVENT_ID_FW_TX_STATUS; 946 pevent->event_len = pmbuf->data_len; 947 memcpy_ext(pmadapter, (t_u8 *)pevent->event_buf, 948 pmbuf->pbuf + pmbuf->data_offset, pevent->event_len, 949 pevent->event_len); 950 951 wlan_recv_event(pmpriv, pevent->event_id, pevent); 952 break; 953 case EVENT_BT_COEX_WLAN_PARA_CHANGE: 954 PRINTM(MEVENT, "EVENT: BT coex wlan param update\n"); 955 wlan_bt_coex_wlan_param_update_event(pmpriv, pmbuf); 956 break; 957 958 #if defined(PCIE) 959 case EVENT_SSU_DUMP_DMA: 960 PRINTM(MEVENT, "EVENT: EVENT_SSU_DUMP_DMA\n"); 961 if (!pmadapter->ssu_buf || !pmadapter->ssu_buf->pbuf) 962 break; 963 964 /* If ADMA is supported, SSU header could not be received with 965 * SSU data. Instead, SSU header is received through this event. 966 * So, copy the header into the buffer before passing the buffer 967 * to upper layer for file writting 968 */ 969 memcpy_ext(pmadapter, 970 (t_u8 *)pmadapter->ssu_buf->pbuf + 971 pmadapter->ssu_buf->data_offset, 972 pmbuf->pbuf + pmbuf->data_offset + 973 sizeof(eventcause), 974 (pmbuf->data_len - sizeof(eventcause)), 975 (pmbuf->data_len - sizeof(eventcause))); 976 977 DBG_HEXDUMP(MEVT_D, "SSU data", 978 (t_u8 *)pmadapter->ssu_buf->pbuf + 979 pmadapter->ssu_buf->data_offset, 980 512); 981 pevent->bss_index = pmpriv->bss_index; 982 pevent->event_id = MLAN_EVENT_ID_SSU_DUMP_FILE; 983 pevent->event_len = MLAN_SSU_BUF_SIZE; > 984 *(t_u64 *)pevent->event_buf = (t_u64)pmadapter->ssu_buf->pbuf + --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org