This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Setting up WL18xx module on i.MX6 Solo/Dual Lite

Other Parts Discussed in Thread: WL1835, WL1835MOD

I want to set up the WiFi and Bluetooth(WL1835) on our custom board, where also it is connected to SD2 interface(WiFi) and UART2(BT). Now my question is I have drivers in the kernel 3.14.28 for wlcore, wl18xx and bluetooth ,will this driver code will work or I need to modify something?

If I need to modify then what part of the driver I need to modify?

Do I need to make changes in Device tree ?

Can I access the WiFi at u-Boot level, if yes then How?

What changes I need to do ,so that it will work for my board?

  • Hi,

    The drivers inside the kernel 3.14.28 are not the updated ones. You need to use teh build script to build the wl18xx kos and then use them.
    Please refer to: processors.wiki.ti.com/.../WL18xx_First_Time_Getting_Started_Guide_(IMX6SL) OR processors.wiki.ti.com/.../WL18xx_First_Time_Getting_Started_Guide_(IMX6)

    Regards,
    Gigi Joseph.
  • Thanks For Reply.

    Do we have wl18xx drivers at U-boot Level?

  • Can I get the example Device tree file in which it has added the support for wl18xx?
  • Hi,

    Please check the link I provided ("Patching the kernel for WiLink8 build")

    Regards,
    Gigi Joseph.
  • Gigi Sir, I have modified one of the boards .dtsi file as follows to support WL1835MOD on our custom board:

    wilink_wl_en: regulator@4 {
    compatible = "regulator-fixed";
    reg = <4>;
    regulator-name = "wilink_wl_en";
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    gpio = <&gpio5 2 0>; /* WIFI ENABLE GPIO */
    startup-delay-us = <70000>;
    enable-active-high;
    };

    wlan {
    compatible = "ti,wilink6";
    interrupt-parent = <&gpio4>;
    interrupts = <07 0x04>;
    clocks = <&refclock>;
    clock-names = "refclock";
    /* WiFi module enable GPIO; Required for proper fucntioning of WIFI down and up*/
    pwr-enable = <&gpio5 2 0>;

    refclock: refclock {
    compatible = "ti,wilink-clock";
    #clock-cells = <0>;
    clock-frequency = <38400000>;
    };

    wlan_bt_rfkill {
    compatible = "net,rfkill-gpio";
    name = "wlan_bt_rfkill";
    type = <2>; /* bluetooth */
    gpios = <&gpio3 16 0>; /* BT enable */
    };

    pinctrl_uart2: uart2grp {
    fsl,pins = <
    MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
    MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
    MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x1b0b1
    MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x1b0b1
    >;
    };


    pinctrl_usdhc2: usdhc2grp {
    fsl,pins = <
    MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
    MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
    MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
    MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
    MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
    MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
    >;
    };

    &uart2 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_uart2>;
    fsl,uart-has-rtscts;
    status = "okay";
    };

    &usdhc2 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_usdhc2>;
    bus-width = <4>;
    non-removable;
    vmmc-supply = <&vgen4_reg>;
    vqmmc-supply = <&wilink_wl_en>;
    ocr-limit = <0x80>; /* 1.65v - 1.95v */
    /*power-off-card;*/
    keep-power-in-suspend;
    status = "okay";
    };
    will it work?
    In our board WiFi is connected to SD2 interface and Bluetooth is connected (EIM_D26, EIM_D27, EIM_D28, EIM_D29)
    BT_EN: EIM_D16
    WLAN_EN: EIM_A25
    WLAN_INT: GPIO_19
    Do I need to modify driver files?
    Thanks for your previous reply.
  • Hi,

    As suggested, please refer to: processors.wiki.ti.com/.../WL18xx_Platform_Integration_Guide

    Regards,
    Gigi Joseph.
  • Yes, by looking into that I have done the modifications but the problem is I am not getting the similar string which we are mentioning in (.Compatible) field of device tree in Drivers . So my question is how it eill invoke the driver function?

  • Hi,

    Looking at your dt, I don't think you are following the wiki page that I shared.
    I don't see "wlan_bt_rfkill" or "ti,wilink6" in the wiki.

    Regards,
    Gigi Joseph.
  • No Sir, I have modified it like this :

    wlan_en_reg: fixedregulator@2 {
    compatible = "regulator-fixed";
    regulator-name = "wlan-en-regulator";
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    /* WLAN_EN GPIO for this board - Bank5, pin2 */
    gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>;
    enable-active-high;
    };

    pinctrl_uart2: uart2grp {
    fsl,pins = <
    MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
    MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
    MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x1b0b1
    MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x1b0b1
    >;
    };


    pinctrl_usdhc2: usdhc2grp {
    fsl,pins = <
    MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
    MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
    MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
    MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
    MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
    MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
    >;
    };

    &uart2 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_uart2>;
    fsl,uart-has-rtscts;
    status = "okay";
    };


    &usdhc2 {
    status = "okay";
    vmmc-supply = <&wlan_en_reg>;
    bus-width = <4>;
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_usdhc2>;
    ti,non-removable;
    ti,needs-special-hs-handling;
    cap-power-off-card;
    keep-power-in-suspend;

    #address-cells = <1>;
    #size-cells = <0>;
    wlcore: wlcore@0 {
    compatible = "ti,wl1835";
    reg = <2>;
    interrupt-parent = <&gpio4>;
    interrupts = <17 IRQ_TYPE_EDGE_RISING>;
    };
    };
    is it fine?
    Bluetooth related node is not there?
    Please suggest the modifications.

    Regards,
    shrikant
  • Hi,

    Yes, the BT related dts changes are missing.

    You need to do "./build_wl18xx.sh patch_kernel"
    Are you doing that?

    Regards,
    Gigi Joseph.
  • Thanks again,
    Yes Sir, I have done the "./build_wl18xx.sh patch_kernel" but its not reflecting any changes in driver and .dts file
  • Hi,

    Then you'd need to manually apply the patches.

    Regards,
    Gigi Joseph.
  • Hi Gigi Sir,

    I applied the patches manually ,Now my device tree Looks Like this

    wlan_en_reg: fixedregulator@2 {
            compatible = "regulator-fixed";
            regulator-name = "wlan-en-regulator";
            regulator-min-microvolt = <1800000>;
            regulator-max-microvolt = <1800000>;
            /* WLAN_EN GPIO for this board - Bank5, pin2 */
            gpio = <&gpio5 2 0>;
            enable-active-high;
        };

        kim {
                compatible = "kim";
                nshutdown_gpio = <80>;  // GPIO3_16 The wl8 driver expects gpio to be an integer, so gpio3_16 is (3-1)*32+16=80
                dev_name = "/dev/ttymxc1";
                flow_cntrl = <1>;
                baud_rate = <3000000>;
        };

        btwilink {
                compatible = "btwilink";
        };

    pinctrl_uart2: uart2grp {
                fsl,pins = <
                    MX6QDL_PAD_EIM_D26__UART2_TX_DATA    0x13059
                    MX6QDL_PAD_EIM_D27__UART2_RX_DATA    0x13059
                    MX6QDL_PAD_EIM_D28__UART2_CTS_B            0x13059
                    MX6QDL_PAD_EIM_D29__UART2_RTS_B        0x13059
                >;
            };

    pinctrl_usdhc2: usdhc2grp {
                fsl,pins = <
                    MX6QDL_PAD_SD2_CMD__SD2_CMD        0x17069
                    MX6QDL_PAD_SD2_CLK__SD2_CLK        0x17069
                    MX6QDL_PAD_SD2_DAT0__SD2_DATA0        0x17069
                    MX6QDL_PAD_SD2_DAT1__SD2_DATA1        0x17069
                    MX6QDL_PAD_SD2_DAT2__SD2_DATA2        0x17069
                    MX6QDL_PAD_SD2_DAT3__SD2_DATA3        0x17069
                    MX6QDL_PAD_EIM_A25__GPIO5_IO02        0x13059
                    MX6QDL_PAD_GPIO_19__GPIO4_IO05        0x13059
                >;
            };

    &uart2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2>;
        fsl,uart-has-rtscts;
        status = "okay";
    };


     &usdhc2 {
        pinctrl-names = "default";
         pinctrl-0 = <&pinctrl_usdhc2>;
         keep-power-in-suspend;
         enable-sdio-wakeup;
        vmmc-supply = <&wlan_en_reg>;
        non-removable;    // non-removable is not a variable, the fact it is listed is all that is used by driver
        cap-power-off-card;
         status = "okay";
        #address-cells = <1>;
        #size-cells = <0>;
        wlcore: wlcore@0 {
            compatible = "ti,wl1835";
            reg = <2>;
            interrupt-parent = <&gpio4>;
            interrupts = <8 IRQ_TYPE_EDGE_RISING>;
        };
     };

    Also all the below files are modified

    st_kim.c, st_ll.c, ti_wilink_st.h, tty_hci.c ,Kconfig, Makefile,imx_v7_defconfig and btwilink.c.

    The Firmware for WiFi is wl18xx-fw-4.bin also available.

    Now, y questions are

    1) Do I require Firmware for Bluetooth also?

    2) Do I require the Bluetooth Stack to make it functional if yes then where I will get that and how to to integrate that into kernel?

    3)What else I required to make the WiFI and Bluetooth Functional on i-MX6 solo?

  • Hi,

    1) Yes, available from: www.ti.com/.../wl18xx-bt-sp
    2) Yes. If you're running Android, it's already part of the sdk. For linux, please see processors.wiki.ti.com/.../WiLink8_Linux_Getting_Started_Guide

    Regards,
    Gigi Joseph.
  • Thanks for Reply,
    Sir, I am looking in processors.wiki.ti.com/.../WiLink8_Linux_Getting_Started_Guide document but there they have mentioned that "The following guide contains detailed information on how to compile Bluetopia Platform Manager, the Bluetooth Protocol Stack, to AM335x EVM or BeagleBone platforms". So, my question is do I need to follow the same steps for i-MX6?

    Regards,
    Shrikant
  • If Linux, then Yes.

    Regards,
    Gigi Joseph.
  • Hello,

    I tried to build the bluetooth stack by following the instructions given in documents. According to that I modified the below files

    1)setup-bt

    2)toolchain-defs.mak

    I attached the snapshots these files in Attachment.

    But after modifying these files when I do make command  its giving following Error:

    shree@Needa:~/AM335xBluetopiaLinuxProduction-4.0.3.0.1.0/build$ make
    LN BTPMSRVR_S.o libBTPM_S.a libBTPM_HAL_S.a libSS1BTAUD.a libSS1BTGAV.a libSS1BTAVC.a libSS1BTAVR.a libSS1SBC.a libSS1BTFTP.a libSS1BTHDP.a libSS1BTHDS.a libSS1BTHIDH.a libSS1BTHID.a libSS1BTPAN.a libBTPS_VNET.a libSS1BTPBA.a libSS1BTHFR.a libSS1BTMAP.a libSS1BTOPP.a libSS1BTCTS.a libSS1BTNDCS.a libSS1BTRTUS.a libSS1BTDIS.a libSS1BTGAT.a libSS1BTGAPS.a libSS1BTHIDS.a libSS1BTNDC.a libSS1BTRTU.a libSS1BTIAS.a libSS1BTHRS.a libSS1BTSCP.a libSS1BTLLS.a libSS1BTBAS.a libSS1BTTPS.a libBTPS.a libBTPS_PLA.a libBTPS_OSA.a -o SS1BTPM
    /opt/poky/1.8.2/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.9.2/ld: cannot find -lasound
    collect2: error: ld returned 1 exit status
    make: *** [../BluetopiaPM/bin/SS1BTPM] Error 1

    Please Suggest the Solution.

    Regards,

    Shrikant

  • Hi,

    That means the linker cannot find the libasound library.
    I guess something's wrong with the setup-bt or you can add the path to the build script.

    Regards,
    Gigi Joseph.
  • hi,

       This my setup-bt file content:

       ########################################################################

    # The following section must be updated per local configuration

    ########################################################################

    # Path to local toolchain installation

    export TOOLCHAIN_PATH=/opt/poky/1.8.2/sysroots/

    # Path to SDK compiled kernel

    export KERNEL_PATH=~/Desktop/kernel-source/

    ########################################################################

    # The following defintions should not be updated

    ########################################################################

    # Path to root directory of Bluetopia Core

    export BLUETOPIA_CORE_PATH=../BluetopiaPM/Bluetopia

    # Path to root directory of BluetopiaPM Core

    export BLUETOPIA_PM_CORE_PATH=../BluetopiaPM/

    # PROJ_DIR Must (!!!) kept empty

    export PROJ_DIR=

    # output (distribution root)

    export OUT_DIR=..

    The content of toolchain-defs.mak

    ###########################################################################################################

    # AM335x sdk8 Defintions - this section should be updated based on SDK installation path

    ###########################################################################################################

    KERNELDIR=$(KERNEL_PATH)/

    TOOLCHAIN_PATH_NATIVE=$(TOOLCHAIN_PATH)/x86_64-pokysdk-linux/

    TOOLCHAIN_PATH_TARGET=$(TOOLCHAIN_PATH)/cortexa9hf-vfp-neon-poky-linux-gnueabi/

    TOOLCHAIN_PREFIX=arm-poky-linux-gnueabi

    ARCH=arm

    ###########################################################################################################

    # Following section should be filled for non TI SDKs only

    ###########################################################################################################

    # Follwoing are defs for AM335x

    CFLAGS+=-march=armv7-a -marm -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=$(TOOLCHAIN_PATH_TARGET) -I$(TOOLCHAIN_PATH_TARGET)/usr/include

    LDFLAGS+=-lpthread -lm -lrt --sysroot=$(TOOLCHAIN_PATH_TARGET)

    ###########################################################################################################

    # Following section should not be updated

    ###########################################################################################################

    CC=$(TOOLCHAIN_PREFIX)-gcc

    AS=$(TOOLCHAIN_PREFIX)-as

    LD=$(TOOLCHAIN_PREFIX)-ld

    GDB=$(TOOLCHAIN_PREFIX)-gdb

    STRIP=$(TOOLCHAIN_PREFIX)-strip

    RANLIB=$(TOOLCHAIN_PREFIX)-ranlib

    OBJCOPY=$(TOOLCHAIN_PREFIX)-objcopy

    OBJDUMP=$(TOOLCHAIN_PREFIX)-objdump

    AR=$(TOOLCHAIN_PREFIX)-ar

    NM=$(TOOLCHAIN_PREFIX)-nm

    # The following should apply for gstreamer plugin

    CONFIGURE_FLAGS=--target=arm-poky-linux-gnueabi --host=arm-poky-linux-gnueabi --build=i686-linux --with-libtool-sysroot=$(TOOLCHAIN_PATH_TARGET)

    PKG_CONFIG_SYSROOT_DIR=$(TOOLCHAIN_PATH_TARGET)

    PKG_CONFIG_PATH=$(TOOLCHAIN_PATH_TARGET)/usr/lib/pkgconfig

    PKG_CONFIG_ALLOW_SYSTEM_LIBS=1

    GLOBCFLAG=S$(CFLAGS)

    GLOBLDFLAGS=$(LDFLAGS)

    CROSS_COMPILE=$(TOOLCHAIN_PREFIX)-

    PATH:=$(TOOLCHAIN_PATH_NATIVE)/usr/bin:$(PATH)

    regards,

    Shrikant

  • You should try giving the libasound.so path to LIBDIR (plat-rules.mak).

    Regards,
    Gigi Joseph.
  • Hi Gigi Sir,

                     I tried to bring up the WiFi with the files mentioned in the previous thread but when I am trying to load the modules is giving below errors:

    ess/ti/wlcore# insmod wlcore.ko3.14.28-1.0.0_ga+g91cf351/extra/drivers/net/wirele
    wlcore: disagrees about version of symbol ieee80211_connection_loss
    wlcore: Unknown symbol ieee80211_connection_loss (err -22)
    wlcore: Unknown symbol ieee80211_iterate_interfaces (err 0)
    wlcore: disagrees about version of symbol ieee80211_sched_scan_stopped
    wlcore: Unknown symbol ieee80211_sched_scan_stopped (err -22)
    wlcore: disagrees about version of symbol ieee80211_chswitch_done
    wlcore: Unknown symbol ieee80211_chswitch_done (err -22)
    wlcore: disagrees about version of symbol skb_put
    wlcore: Unknown symbol skb_put (err -22)
    wlcore: disagrees about version of symbol consume_skb
    wlcore: Unknown symbol consume_skb (err -22)
    wlcore: disagrees about version of symbol skb_dequeue
    wlcore: Unknown symbol skb_dequeue (err -22)
    wlcore: disagrees about version of symbol ieee80211_free_hw
    wlcore: Unknown symbol ieee80211_free_hw (err -22)
    wlcore: disagrees about version of symbol ieee80211_probereq_get
    wlcore: Unknown symbol ieee80211_probereq_get (err -22)
    wlcore: disagrees about version of symbol ieee80211_ap_probereq_get
    wlcore: Unknown symbol ieee80211_ap_probereq_get (err -22)
    wlcore: disagrees about version of symbol ieee80211_nullfunc_get
    wlcore: Unknown symbol ieee80211_nullfunc_get (err -22)
    wlcore: disagrees about version of symbol ieee80211_pspoll_get
    wlcore: Unknown symbol ieee80211_pspoll_get (err -22)
    wlcore: disagrees about version of symbol ieee80211_register_hw
    wlcore: Unknown symbol ieee80211_register_hw (err -22)
    wlcore: disagrees about version of symbol ieee80211_restart_hw
    wlcore: Unknown symbol ieee80211_restart_hw (err -22)
    wlcore: disagrees about version of symbol ieee80211_get_hdrlen_from_skb
    wlcore: Unknown symbol ieee80211_get_hdrlen_from_skb (err -22)
    wlcore: disagrees about version of symbol ieee80211_stop_rx_ba_session
    wlcore: Unknown symbol ieee80211_stop_rx_ba_session (err -22)
    wlcore: disagrees about version of symbol ieee80211_wake_queue
    wlcore: Unknown symbol ieee80211_wake_queue (err -22)
    wlcore: disagrees about version of symbol device_create_bin_file
    wlcore: Unknown symbol device_create_bin_file (err -22)
    wlcore: disagrees about version of symbol ieee80211_find_sta
    wlcore: Unknown symbol ieee80211_find_sta (err -22)
    wlcore: disagrees about version of symbol kfree_skb
    wlcore: Unknown symbol kfree_skb (err -22)
    wlcore: disagrees about version of symbol __cfg80211_alloc_reply_skb
    wlcore: Unknown symbol __cfg80211_alloc_reply_skb (err -22)
    wlcore: disagrees about version of symbol skb_queue_tail
    wlcore: Unknown symbol skb_queue_tail (err -22)
    wlcore: disagrees about version of symbol device_create_file
    wlcore: Unknown symbol device_create_file (err -22)
    wlcore: disagrees about version of symbol wiphy_to_ieee80211_hw
    wlcore: Unknown symbol wiphy_to_ieee80211_hw (err -22)
    wlcore: disagrees about version of symbol ieee80211_queue_delayed_work
    wlcore: Unknown symbol ieee80211_queue_delayed_work (err -22)
    wlcore: disagrees about version of symbol ieee80211_proberesp_get
    wlcore: Unknown symbol ieee80211_proberesp_get (err -22)
    wlcore: disagrees about version of symbol skb_pull
    wlcore: Unknown symbol skb_pull (err -22)
    wlcore: disagrees about version of symbol ieee80211_remain_on_channel_expired
    wlcore: Unknown symbol ieee80211_remain_on_channel_expired (err -22)
    wlcore: disagrees about version of symbol skb_push
    wlcore: Unknown symbol skb_push (err -22)
    wlcore: disagrees about version of symbol nla_put
    wlcore: Unknown symbol nla_put (err -22)
    wlcore: disagrees about version of symbol ieee80211_wake_queues
    wlcore: Unknown symbol ieee80211_wake_queues (err -22)
    wlcore: disagrees about version of symbol ieee80211_report_low_ack
    wlcore: Unknown symbol ieee80211_report_low_ack (err -22)
    wlcore: disagrees about version of symbol ieee80211_free_txskb
    wlcore: Unknown symbol ieee80211_free_txskb (err -22)
    wlcore: Unknown symbol ieee80211_alloc_hw_nm (err 0)
    wlcore: disagrees about version of symbol cfg80211_vendor_cmd_reply
    wlcore: Unknown symbol cfg80211_vendor_cmd_reply (err -22)
    wlcore: disagrees about version of symbol ieee80211_tx_status
    wlcore: Unknown symbol ieee80211_tx_status (err -22)
    wlcore: disagrees about version of symbol ieee80211_stop_queue
    wlcore: Unknown symbol ieee80211_stop_queue (err -22)
    wlcore: disagrees about version of symbol __netdev_alloc_skb
    wlcore: Unknown symbol __netdev_alloc_skb (err -22)
    wlcore: disagrees about version of symbol ieee80211_ready_on_channel
    wlcore: Unknown symbol ieee80211_ready_on_channel (err -22)
    wlcore: disagrees about version of symbol ieee80211_stop_queues
    wlcore: Unknown symbol ieee80211_stop_queues (err -22)
    wlcore: disagrees about version of symbol skb_trim
    wlcore: Unknown symbol skb_trim (err -22)
    wlcore: Unknown symbol ieee80211_cqm_beacon_loss_notify (err 0)
    wlcore: disagrees about version of symbol ieee80211_sched_scan_results
    wlcore: Unknown symbol ieee80211_sched_scan_results (err -22)
    wlcore: disagrees about version of symbol ieee80211_scan_completed
    wlcore: Unknown symbol ieee80211_scan_completed (err -22)
    wlcore: disagrees about version of symbol ieee80211_iterate_active_interfaces_atomic
    wlcore: Unknown symbol ieee80211_iterate_active_interfaces_atomic (err -22)
    wlcore: disagrees about version of symbol ieee80211_unregister_hw
    wlcore: Unknown symbol ieee80211_unregister_hw (err -22)
    wlcore: disagrees about version of symbol ieee80211_beacon_get_tim
    wlcore: Unknown symbol ieee80211_beacon_get_tim (err -22)
    wlcore: disagrees about version of symbol ieee80211_cqm_rssi_notify
    wlcore: Unknown symbol ieee80211_cqm_rssi_notify (err -22)
    wlcore: disagrees about version of symbol ieee80211_queue_work
    wlcore: Unknown symbol ieee80211_queue_work (err -22)
    wlcore: disagrees about version of symbol ieee80211_sta_ps_transition
    wlcore: Unknown symbol ieee80211_sta_ps_transition (err -22)
    wlcore: disagrees about version of symbol device_remove_bin_file
    wlcore: Unknown symbol device_remove_bin_file (err -22)
    wlcore: disagrees about version of symbol device_remove_file
    wlcore: Unknown symbol device_remove_file (err -22)
    wlcore: disagrees about version of symbol ieee80211_csa_finish
    wlcore: Unknown symbol ieee80211_csa_finish (err -22)
    wlcore: disagrees about version of symbol skb_queue_head
    wlcore: Unknown symbol skb_queue_head (err -22)
    wlcore: Unknown symbol ieee80211_rx_napi (err 0)
    insmod: ERROR: could not insert module wlcore.ko: Unknown symbol in module

    From this point I am not moving Forward . Please help me for solving this issue.