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/56bffa9cd6e18bde8608755960...
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 <lkp(a)intel.com>
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@lists.01.org