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.

请教一个关于AM335x搭配rtl8188eu网卡稳定性的问题

Other Parts Discussed in Thread: TPS65217, AM3517

大家好:

最近在做AM335x的时候,移植好了rtl8188eu的驱动,并且也通过wpa_supplicant工具将网络连接上了,但是很奇怪的是,过了一段时间过后,就会出现网卡失去连接的问题,并且在重启之前再也无法连接网络,故此,请教一下各位这种问题如何解决?多谢各位

接下来是我的调试纪录

在运行一段时间后,提示报错

有了这个错误过后,我首先重启了wpa_supplicant服务,但是这个时候就再也无法获取IP了

然后我猜测可能是网卡驱动崩了,所以我又重新插入网卡驱动试一下,当然,事先会把原来的驱动rmmod的

同样获取不到IP,并且网卡检测到没有连接,一直在节能模式进进出出

最后,我觉得可能硬件上不行了吧,就将网卡的电源断开再重新连上(这个是由于我们硬件上设计的时候就有IO控制电源),结果还是不行

所以这里我觉得我已经试过了各种调试了,却也无法定位问题,请教一下各位这里如何来分析这个稳定性到底是如何引起的呢?

下面是我的系统信息:

1、内核版本:v3.2.0

2、wpa_supplicant版本,v2.6

3、rtl8188eu驱动版本:v4.3,下载地址:https://github.com/quickreflex/rtl8188eus.git

4、系统启动log,将在第一条评论给出

5、rtl8188eu的Makefile,在第二条评论给出

谢谢各位来帮我分析一下!!!

  • [ 0.000000] Linux version 3.2.0 (root@Joker-for-Driver) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) ) #160 Thu Jul 12 11:19:56 CST 2018
    [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [ 0.000000] Machine: com335x
    [ 0.000000] Memory policy: ECC disabled, Data cache writeback
    [ 0.000000] On node 0 totalpages: 65536
    [ 0.000000] free_area_init_node: node 0, pgdat c06262e0, node_mem_map c065f000
    [ 0.000000] Normal zone: 512 pages used for memmap
    [ 0.000000] Normal zone: 0 pages reserved
    [ 0.000000] Normal zone: 65024 pages, LIFO batch:15
    [ 0.000000] AM335X ES2.1 (neon )
    [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    [ 0.000000] pcpu-alloc: [0] 0
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
    [ 0.000000] Kernel command line: console=ttyO0,115200n8 noinitrd root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait lcdtype=AUO_AT070TN94 consoleblank=0
    [ 0.000000] ***********com335x_setup_lcd_type *********742****AUO_AT070TN94*******
    [ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
    [ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    [ 0.000000] Memory: 256MB = 256MB total
    [ 0.000000] Memory: 253332k/253332k available, 8812k reserved, 0K highmem
    [ 0.000000] Virtual kernel memory layout:
    [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
    [ 0.000000] vmalloc : 0xd0800000 - 0xff000000 ( 744 MB)
    [ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
    [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
    [ 0.000000] .text : 0xc0008000 - 0xc0578000 (5568 kB)
    [ 0.000000] .init : 0xc0578000 - 0xc05d7000 ( 380 kB)
    [ 0.000000] .data : 0xc05d8000 - 0xc062f5e0 ( 350 kB)
    [ 0.000000] .bss : 0xc062f604 - 0xc065e9a4 ( 189 kB)
    [ 0.000000] NR_IRQS:396
    [ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [ 0.000000] Total of 128 interrupts on 1 active controller
    [ 0.000000] OMAP clockevent source: GPTIMER2 at 24000000 Hz
    [ 0.000000] OMAP clocksource: GPTIMER1 at 32768 Hz
    [ 0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms
    [ 0.000000] Console: colour dummy device 80x30
    [ 0.000122] Calibrating delay loop... 718.02 BogoMIPS (lpj=3590144)
    [ 0.058563] pid_max: default: 32768 minimum: 301
    [ 0.058685] Security Framework initialized
    [ 0.058776] Mount-cache hash table entries: 512
    [ 0.059143] CPU: Testing write buffer coherency: ok
    [ 0.059906] devtmpfs: initialized
    [ 0.079803] omap_hwmod: gfx: failed to hardreset
    [ 0.096069] omap_hwmod: pruss: failed to hardreset
    [ 0.097167] print_constraints: dummy:
    [ 0.097534] NET: Registered protocol family 16
    [ 0.099792] OMAP GPIO hardware version 0.1
    [ 0.102386] omap_mux_init: Add partition: #1: core, flags: 0
    [ 0.104980] omap_hsmmc.1: alias fck already exists
    [ 0.105224] omap_hsmmc.0: alias fck already exists
    [ 0.106292] omap_i2c.1: alias fck already exists
    [ 0.106506] _omap_mux_get_by_name: Could not find signal xdma_event_intr1.gpio0_19
    [ 0.106567] omap_i2c.2: alias fck already exists
    [ 0.106781] com335x: mcasp1 init
    [ 0.106872] davinci-mcasp.1: alias fck already exists
    [ 0.107086] _omap_mux_get_by_name: Could not find signal gpmc_ad8.lcd_data23
    [ 0.107116] _omap_mux_get_by_name: Could not find signal gpmc_ad9.lcd_data22
    [ 0.107147] _omap_mux_get_by_name: Could not find signal gpmc_ad10.lcd_data21
    [ 0.107147] _omap_mux_get_by_name: Could not find signal gpmc_ad11.lcd_data20
    [ 0.107177] _omap_mux_get_by_name: Could not find signal gpmc_ad12.lcd_data19
    [ 0.107208] _omap_mux_get_by_name: Could not find signal gpmc_ad13.lcd_data18
    [ 0.107208] _omap_mux_get_by_name: Could not find signal gpmc_ad14.lcd_data17
    [ 0.107238] _omap_mux_get_by_name: Could not find signal gpmc_ad15.lcd_data16
    [ 0.107360] da8xx_lcdc.0: alias fck already exists
    [ 0.108245] omap2_mcspi.1: alias fck already exists
    [ 0.108489] omap2_mcspi.2: alias fck already exists
    [ 0.108795] edma.0: alias fck already exists
    [ 0.108825] edma.0: alias fck already exists
    [ 0.108856] edma.0: alias fck already exists
    [ 0.128692] bio: create slab <bio-0> at 0
    [ 0.130798] SCSI subsystem initialized
    [ 0.132751] usbcore: registered new interface driver usbfs
    [ 0.133056] usbcore: registered new interface driver hub
    [ 0.133239] usbcore: registered new device driver usb
    [ 0.133544] registerd cppi-dma Intr @ IRQ 17
    [ 0.133575] Cppi41 Init Done Qmgr-base(d087a000) dma-base(d0878000)
    [ 0.133575] Cppi41 Init Done
    [ 0.133605] musb-ti81xx musb-ti81xx: musb0, board_mode=0x13, plat_mode=0x3
    [ 0.133911] musb-ti81xx musb-ti81xx: musb1, board_mode=0x13, plat_mode=0x1
    [ 0.135040] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 400 kHz
    [ 0.135620] pca953x 1-0074: failed reading register
    [ 0.135620] pca953x: probe of 1-0074 failed with error -121
    [ 0.135955] tps65217 1-0024: Failed to read revision register: -121
    [ 0.136016] tps65217: probe of 1-0024 failed with error -121
    [ 0.148620] omap_i2c omap_i2c.2: bus 2 rev2.4.0 at 100 kHz
    [ 0.150207] Advanced Linux Sound Architecture Driver Version 1.0.24.
    [ 0.151397] Switching to clocksource gp timer
    [ 0.169555] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
    [ 0.169738] musb-hdrc musb-hdrc.0: dma type: dma-cppi41
    [ 0.170074] MUSB0 controller's USBSS revision = 4ea20800
    [ 0.170104] TxFifo Empty intr disabled
    [ 0.170104] musb0: Enabled SW babble control
    [ 0.170410] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    [ 0.170440] musb-hdrc: MHDRC RTL version 2.0
    [ 0.170440] musb-hdrc: setup fifo_mode 4
    [ 0.170471] musb-hdrc: 28/31 max ep, 16384/16384 memory
    [ 0.170501] musb-hdrc.0: bulk split disabled
    [ 0.170501] musb-hdrc.0: bulk combine disabled
    [ 0.171081] musb-hdrc musb-hdrc.0: USB OTG mode controller at d083c000 using DMA, IRQ 18
    [ 0.171234] musb-hdrc musb-hdrc.1: dma type: dma-cppi41
    [ 0.171630] MUSB1 controller's USBSS revision = 4ea20800
    [ 0.171630] TxFifo Empty intr disabled
    [ 0.171661] musb1: Enabled SW babble control
    [ 0.171936] musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    [ 0.171966] musb-hdrc: MHDRC RTL version 2.0
    [ 0.171966] musb-hdrc: setup fifo_mode 4
    [ 0.171997] musb-hdrc: 28/31 max ep, 16384/16384 memory
    [ 0.171997] musb-hdrc.1: bulk split disabled
    [ 0.172027] musb-hdrc.1: bulk combine disabled
    [ 0.172088] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
    [ 0.172180] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
    [ 0.172302] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    [ 0.172332] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [ 0.172332] usb usb1: Product: MUSB HDRC host driver
    [ 0.172363] usb usb1: Manufacturer: Linux 3.2.0 musb-hcd
    [ 0.172363] usb usb1: SerialNumber: musb-hdrc.1
    [ 0.173339] hub 1-0:1.0: USB hub found
    [ 0.173370] hub 1-0:1.0: 1 port detected
    [ 0.173919] musb-hdrc musb-hdrc.1: USB Host mode controller at d083e800 using DMA, IRQ 19
    [ 0.174346] NET: Registered protocol family 2
    [ 0.174560] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.174835] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
    [ 0.174987] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
    [ 0.175079] TCP: Hash tables configured (established 8192 bind 8192)
    [ 0.175109] TCP reno registered
    [ 0.175109] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.175140] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.175323] NET: Registered protocol family 1
    [ 0.175598] RPC: Registered named UNIX socket transport module.
    [ 0.175628] RPC: Registered udp transport module.
    [ 0.175628] RPC: Registered tcp transport module.
    [ 0.175628] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [ 0.175842] NetWinder Floating Point Emulator V0.97 (double precision)
    [ 0.175872] Error: Driver 'omap-gpmc' is already registered, aborting...
    [ 0.186889] VFS: Disk quotas dquot_6.5.2
    [ 0.186950] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [ 0.187744] msgmni has been set to 494
    [ 0.188507] io scheduler noop registered
    [ 0.188507] io scheduler deadline registered
    [ 0.188568] io scheduler cfq registered (default)
    [ 0.190063] fb_probe-1553
    [ 0.190063] fb_probe-1559: lcdc_info is 16
    [ 0.190093] da8xx_lcdc da8xx_lcdc.0: GLCD: Found ili9486-320x480@60 panel
    [ 0.190093] COM*****drivers/video/da8xx-fb.c******lcd_init *********924*******ili9486-320x480@60****
    [ 0.190124] lcd_init-927: this is frame buffer's init
    [ 0.191131] lcdc configuration:
    [ 0.191131] panel->width=320 panel->height=480 bpp=16
    [ 0.196594] Console: switching to colour frame buffer device 40x30
    [ 0.204223] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
    [ 0.206176] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
    [ 0.973205] console [ttyO0] enabled
    [ 0.977539] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
    [ 0.985443] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
    [ 0.993286] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
    [ 1.001098] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
    [ 1.019042] brd: module loaded
    [ 1.027618] loop: module loaded
    [ 1.030975] i2c i2c-1: Failed to register i2c client dummy at 0x51 (-16)
    [ 1.038024] at24 1-0050: address 0x51 unavailable
    [ 1.042968] at24: probe of 1-0050 failed with error -98
    [ 1.051025] mtdoops: mtd device (mtddev=name/number) must be supplied
    [ 1.058044] omap2-nand driver initializing
    [ 1.062561] OneNAND driver initializing
    [ 1.112121] davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
    [ 1.118621] davinci_mdio davinci_mdio.0: no live phy, scanning all
    [ 1.125457] davinci_mdio: probe of davinci_mdio.0 failed with error -5
    [ 1.132537] PPP generic driver version 2.4.2
    [ 1.137451] PPP BSD Compression module registered
    [ 1.142425] PPP Deflate Compression module registered
    [ 1.147918] usbcore: registered new interface driver zd1201
    [ 1.153991] usbcore: registered new interface driver cdc_ether
    [ 1.160217] usbcore: registered new interface driver cdc_eem
    [ 1.166290] usbcore: registered new interface driver dm9601
    [ 1.172180] cdc_ncm: 04-Aug-2011
    [ 1.175750] usbcore: registered new interface driver cdc_ncm
    [ 1.181884] usbcore: registered new interface driver cdc_acm
    [ 1.187805] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
    [ 1.196166] Initializing USB Mass Storage driver...
    [ 1.201385] usb 1-1: new high-speed USB device number 2 using musb-hdrc
    [ 1.208618] usbcore: registered new interface driver usb-storage
    [ 1.214904] USB Mass Storage support registered.
    [ 1.220184] usbcore: registered new interface driver usbserial
    [ 1.226470] USB Serial support registered for generic
    [ 1.352478] usb 1-1: New USB device found, idVendor=0bda, idProduct=8179
    [ 1.359497] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 1.367004] usb 1-1: Product: 802.11n NIC
    [ 1.371215] usb 1-1: Manufacturer: Realtek
    [ 1.375518] usb 1-1: SerialNumber: 00E04C0001
    [ 1.382110] usbcore: registered new interface driver usbserial_generic
    [ 1.388977] usbserial: USB Serial Driver core
    [ 1.393707] USB Serial support registered for GSM modem (1-port)
    [ 1.400299] usbcore: registered new interface driver option
    [ 1.406127] option: v0.7.2:USB Driver for GSM modems
    [ 1.411926] mousedev: PS/2 mouse device common for all mice
    [ 1.418518] input: ti-tsc as /devices/platform/omap/ti_tscadc/tsc/input/input0
    [ 1.427459] input: ft5x06_ts as /devices/virtual/input/input1
    [ 1.492767] omap_rtc am33xx-rtc: rtc core: registered am33xx-rtc as rtc0
    [ 1.499786] am33xx-rtc: already running
    [ 1.504089] rtc-pcf8563 1-0051: chip found, driver version 0.4.3
    [ 1.511291] rtc-pcf8563 1-0051: rtc core: registered rtc-pcf8563 as rtc1
    [ 1.518463] i2c /dev entries driver
    [ 1.562438] _regulator_get: deviceless supply vdd_mpu not found, using dummy regulator
    [ 1.571136] cpuidle: using governor ladder
    [ 1.575958] cpuidle: using governor menu
    [ 1.585784] usbcore: registered new interface driver usbhid
    [ 1.591613] usbhid: USB HID core driver
    [ 1.596557] tiadc tiadc: attached adc driver
    [ 1.603393] _regulator_get: 1-001b supply IOVDD not found, using dummy regulator
    [ 1.611175] _regulator_get: 1-001b supply DVDD not found, using dummy regulator
    [ 1.618896] _regulator_get: 1-001b supply AVDD not found, using dummy regulator
    [ 1.626586] _regulator_get: 1-001b supply DRVDD not found, using dummy regulator
    [ 1.637084] asoc: tlv320aic3x-hifi <-> davinci-mcasp.1 mapping ok
    [ 1.651336] ALSA device list:
    [ 1.654510] #0: COM335X EVM
    [ 1.657623] oprofile: hardware counters not available
    [ 1.662872] oprofile: using timer interrupt.
    [ 1.667358] nf_conntrack version 0.5.0 (3958 buckets, 15832 max)
    [ 1.674163] ip_tables: (C) 2000-2006 Netfilter Core Team
    [ 1.679809] TCP cubic registered
    [ 1.683227] NET: Registered protocol family 17
    [ 1.687866] can: controller area network core (rev 20090105 abi 8)
    [ 1.694427] NET: Registered protocol family 29
    [ 1.699066] can: raw protocol (rev 20090105)
    [ 1.703521] can: broadcast manager protocol (rev 20090105 t)
    [ 1.709472] Registering the dns_resolver key type
    [ 1.714477] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [ 1.722503] ThumbEE CPU extension supported.
    [ 1.727020] mux: Failed to setup hwmod io irq -22
    [ 1.732604] Power Management for AM33XX family
    [ 1.737243] pm: Err (-22) setting core voltage setting
    [ 1.742828] Trying to load am335x-pm-firmware.bin (60 secs timeout)
    [ 1.749511] Copied the M3 firmware to UMEM
    [ 1.753845] Cortex M3 Firmware Version = 0x184
    [ 1.763610] clock: disabling unused clocks to save power
    [ 1.771209] Detected MACID=74:e1:82:6c:d3:c2
    [ 1.777832] input: gpio-keys as /devices/platform/gpio-keys/input/input2
    [ 1.785583] omap_rtc am33xx-rtc: setting system clock to 2000-01-01 00:06:07 UTC (946685167)
    [ 1.794860] Waiting for root device /dev/mmcblk0p2...
    [ 1.857360] mmc0: new high speed MMC card at address 0001
    [ 1.863647] mmcblk0: mmc0:0001 004G60 3.68 GiB
    [ 1.868499] mmcblk0boot0: mmc0:0001 004G60 partition 1 2.00 MiB
    [ 1.874816] mmcblk0boot1: mmc0:0001 004G60 partition 2 2.00 MiB
    [ 1.882690] mmcblk0: p1 p2
    [ 1.888519] mmcblk0boot1: unknown partition table
    [ 1.895568] mmcblk0boot0: unknown partition table
    [ 1.945251] kjournald starting. Commit interval 5 seconds
    [ 1.951843] EXT3-fs (mmcblk0p2): using internal journal
    [ 1.957305] EXT3-fs (mmcblk0p2): recovery complete
    [ 1.963684] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
    [ 1.970916] VFS: Mounted root (ext3 filesystem) on device 179:2.
    [ 1.978668] devtmpfs: mounted
    [ 1.982482] Freeing init memory: 380K
    [ 12.924957] Disabling lock debugging due to kernel taint
    [ 13.021514] RTL871X: module init start
    [ 13.025482] RTL871X: rtl8188eu v4.3.0.8_13968.20150417
    [ 13.033325] bFWReady == _FALSE call reset 8051...
    [ 13.059844] RTL871X: rtw_ndev_init(wlan0)
    [ 13.065307] usbcore: registered new interface driver rtl8188eu
    [ 13.071380] RTL871X: module init ret=0
    [ 13.752990] ==> rtl8188e_iol_efuse_patch
    [ 14.005432] RTL871X: set bssid:00:00:00:00:00:00
    [ 14.010772] RTL871X: set ssid [g苅sQJ?秃F|耇?桤峷Z.c3熒殼?縺咸E?媇 fw_state=0x00000008
    [ 15.325683] RTL871X: indicate disassoc
    [ 15.335357] RTL871X: set ssid [60_EMB] fw_state=0x00000008
    [ 15.341247] RTL871X: set bssid:78:11:dc:32:60:01
    [ 15.500701] RTL871X: start auth
    [ 15.538238] RTL871X: auth success, start assoc
    [ 15.575805] RTL871X: assoc success
    [ 15.585327] RsvdPageNum: 8
    [ 15.800384] RTL871X: recv eapol packet
    [ 15.807525] RTL871X: send eapol packet
    [ 15.830261] RTL871X: recv eapol packet
    [ 15.834991] RTL871X: send eapol packet
    [ 15.839172] RTL871X: set pairwise key camid:4, addr:78:11:dc:32:60:01, kid:0, type:AES
    [ 15.849731] RTL871X: set group key camid:5, addr:78:11:dc:32:60:01, kid:1, type:TKIP
    [ 635.402709] RTL871X: linked_status_chk(wlan0) disconnect or roaming
    [ 638.025238] RTL871X: indicate disassoc
    [ 800.396026] RTL871X: set bssid:00:00:00:00:00:00
    [ 800.401275] RTL871X: set ssid [g苅sQJ?秃F|耇?桤峷Z.c3熒殼?縺綸 fw_state=0x00000008
    [ 801.715484] RTL871X: indicate disassoc
    [ 945.242004] RTL871X: module exit start
    [ 945.246002] usbcore: deregistering interface driver rtl8188eu
    [ 945.253692] RTL871X: indicate disassoc
    [ 945.257781] RTL871X: rtw_cmd_thread: DriverStopped(1) SurpriseRemoved(0) break at line 478
    [ 945.266876] RTL871X: rtw_ndev_uninit(wlan0)
    [ 945.272003] RTL871X: rtw_dev_unload: driver not in IPS
    [ 945.392761] usb 1-1: reset high-speed USB device number 2 using musb-hdrc
    [ 945.533264] RTL871X: module exit success
    [ 992.440643] RTL871X: module init start
    [ 992.444641] RTL871X: rtl8188eu v4.3.0.8_13968.20150417
    [ 992.452606] bFWReady == _FALSE call reset 8051...
    [ 992.479125] RTL871X: rtw_ndev_init(wlan0)
    [ 992.484588] usbcore: registered new interface driver rtl8188eu
    [ 992.490692] RTL871X: module init ret=0
    [ 1002.373016] ==> rtl8188e_iol_efuse_patch
    [ 1002.603363] RTL871X: set bssid:00:00:00:00:00:00
    [ 1002.608642] RTL871X: set ssid [g苅sQJ?秃F|耇?桤峷Z.c3熒殼?縺咸E?媇 fw_state=0x00000008
    [ 1003.925384] RTL871X: indicate disassoc
    [ 1008.602844] RTL871X: nolinked power save enter
    [ 1008.903015] ==> rtl8188e_iol_efuse_patch
    [ 1009.154174] RTL871X: nolinked power save leave
    [ 1021.152801] RTL871X: nolinked power save enter
    [ 1021.452972] ==> rtl8188e_iol_efuse_patch
    [ 1021.682495] RTL871X: nolinked power save leave
    [ 1033.682769] RTL871X: nolinked power save enter
    [ 1033.982971] ==> rtl8188e_iol_efuse_patch
    [ 1034.212615] RTL871X: nolinked power save leave
    [ 1046.212768] RTL871X: nolinked power save enter
    [ 1046.512969] ==> rtl8188e_iol_efuse_patch
    [ 1046.742034] RTL871X: nolinked power save leave
    [ 1058.742797] RTL871X: nolinked power save enter
    [ 1059.042999] ==> rtl8188e_iol_efuse_patch
    [ 1059.272033] RTL871X: nolinked power save leave
    [ 1071.272766] RTL871X: nolinked power save enter
    [ 1071.572998] ==> rtl8188e_iol_efuse_patch
    [ 1071.802734] RTL871X: nolinked power save leave
    [ 1083.802764] RTL871X: nolinked power save enter
    [ 1084.102996] ==> rtl8188e_iol_efuse_patch
    [ 1084.332397] RTL871X: nolinked power save leave
    [ 1096.332763] RTL871X: nolinked power save enter
    [ 1096.632965] ==> rtl8188e_iol_efuse_patch
    [ 1096.884826] RTL871X: nolinked power save leave
    [ 1108.882812] RTL871X: nolinked power save enter
    [ 1109.183013] ==> rtl8188e_iol_efuse_patch
    [ 1109.412628] RTL871X: nolinked power save leave
    [ 1121.412780] RTL871X: nolinked power save enter
    [ 1121.712982] ==> rtl8188e_iol_efuse_patch
    [ 1121.941406] RTL871X: nolinked power save leave
    [ 1133.942810] RTL871X: nolinked power save enter
    [ 1134.243011] ==> rtl8188e_iol_efuse_patch
    [ 1134.471893] RTL871X: nolinked power save leave
    [ 1146.472808] RTL871X: nolinked power save enter
    [ 1146.773010] ==> rtl8188e_iol_efuse_patch
    [ 1147.002197] RTL871X: nolinked power save leave
    [ 1159.002960] RTL871X: nolinked power save enter
    [ 1159.303009] ==> rtl8188e_iol_efuse_patch
    [ 1159.533172] RTL871X: nolinked power save leave
    [ 1171.532806] RTL871X: nolinked power save enter
    [ 1171.832977] ==> rtl8188e_iol_efuse_patch
    [ 1172.062835] RTL871X: nolinked power save leave
    [ 1184.062805] RTL871X: nolinked power save enter
    [ 1184.362976] ==> rtl8188e_iol_efuse_patch
    [ 1184.614715] RTL871X: nolinked power save leave
    [ 1196.612854] RTL871X: nolinked power save enter
    [ 1196.912994] ==> rtl8188e_iol_efuse_patch
    [ 1197.141326] RTL871X: nolinked power save leave
    [ 1207.959594] usb 1-1: USB disconnect, device number 2
    [ 1207.966949] RTL871X: indicate disassoc
    [ 1207.971405] RTL871X: rtw_cmd_thread: DriverStopped(0) SurpriseRemoved(1) break at line 478
    [ 1207.981018] RTL871X: rtw_ndev_uninit(wlan0)
    [ 1207.986480] RTL871X: rtw_dev_unload: driver not in IPS
    [ 1214.952728] usb 1-1: new high-speed USB device number 3 using musb-hdrc
    [ 1215.093078] usb 1-1: New USB device found, idVendor=0bda, idProduct=8179
    [ 1215.100097] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 1215.107543] usb 1-1: Product: 802.11n NIC
    [ 1215.111724] usb 1-1: Manufacturer: Realtek
    [ 1215.116027] usb 1-1: SerialNumber: 00E04C0001
    [ 1215.124267] bFWReady == _FALSE call reset 8051...
    [ 1215.150848] RTL871X: rtw_ndev_init(wlan0)
    [ 1215.442993] ==> rtl8188e_iol_efuse_patch
    [ 1215.695007] RTL871X: set bssid:00:00:00:00:00:00
    [ 1215.700012] RTL871X: set ssid [f2 ?X%]X閊垣餐茮碩倀A!=車ゅ縺咸E?媇 fw_state=0x00000008
    [ 1217.015441] RTL871X: indicate disassoc
    [ 1221.692840] RTL871X: nolinked power save enter
    [ 1221.992950] ==> rtl8188e_iol_efuse_patch
    [ 1222.221130] RTL871X: nolinked power save leave
    [ 1234.222778] RTL871X: nolinked power save enter
    [ 1234.523010] ==> rtl8188e_iol_efuse_patch
    [ 1234.752014] RTL871X: nolinked power save leave
    [ 1246.752777] RTL871X: nolinked power save enter
    [ 1247.053039] ==> rtl8188e_iol_efuse_patch
    [ 1247.282562] RTL871X: nolinked power save leave
    [ 1259.282806] RTL871X: nolinked power save enter
    [ 1259.582977] ==> rtl8188e_iol_efuse_patch
    [ 1259.812988] RTL871X: nolinked power save leave
    [ 1271.812774] RTL871X: nolinked power save enter
    [ 1272.112976] ==> rtl8188e_iol_efuse_patch
    [ 1272.341949] RTL871X: nolinked power save leave
    [ 1284.342803] RTL871X: nolinked power save enter
    [ 1284.642944] ==> rtl8188e_iol_efuse_patch
    [ 1284.871948] RTL871X: nolinked power save leave
    [ 1296.872772] RTL871X: nolinked power save enter
    [ 1297.173004] ==> rtl8188e_iol_efuse_patch
    [ 1297.402709] RTL871X: nolinked power save leave
    [ 1309.402832] RTL871X: nolinked power save enter

  • ifeq ($(strip $(KSRC)),)
    $(info "******************************************")
    $(info "NO SKRC,we will use default KSRC")
    $(info "******************************************")
    endif

    CONFIG_IOCTL_CFG80211=n
    ifeq ($(strip $(CONFIG_IOCTL_CFG80211)),y)
    EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211=1
    EXTRA_CFLAGS += -DRTW_USE_CFG80211_STA_EVENT=1
    endif

    EXTRA_CFLAGS += $(USER_EXTRA_CFLAGS)

    ifeq ($(cc-name),clang)
    EXTRA_CFLAGS += -O3
    else
    EXTRA_CFLAGS += -O2
    endif

    #EXTRA_CFLAGS += -Wall
    #EXTRA_CFLAGS += -Wextra
    #EXTRA_CFLAGS += -Werror
    #EXTRA_CFLAGS += -pedantic
    #EXTRA_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes

    EXTRA_CFLAGS += -Wno-unused-variable
    EXTRA_CFLAGS += -Wno-unused-value
    EXTRA_CFLAGS += -Wno-unused-label
    EXTRA_CFLAGS += -Wno-unused-parameter
    EXTRA_CFLAGS += -Wno-unused-function
    EXTRA_CFLAGS += -Wno-unused
    EXTRA_CFLAGS += -Wno-type-limits
    EXTRA_CFLAGS += -Wno-uninitialized

    EXTRA_CFLAGS += -I$(src)/include
    #EXTRA_CFLAGS += -Wl,-s

    EXTRA_LDFLAGS += --strip-debug

    CONFIG_AUTOCFG_CP = n

    ########################## WIFI IC ############################
    CONFIG_MULTIDRV = n
    CONFIG_RTL8192C = n
    CONFIG_RTL8192D = n
    CONFIG_RTL8723A = n
    CONFIG_RTL8188E = y
    CONFIG_RTL8812A = n
    CONFIG_RTL8821A = n
    CONFIG_RTL8192E = n
    CONFIG_RTL8723B = n
    ######################### Interface ###########################
    CONFIG_USB_HCI = y
    CONFIG_PCI_HCI = n
    CONFIG_SDIO_HCI = n
    CONFIG_GSPI_HCI = n
    ########################## Features ###########################
    CONFIG_NET_NS = y
    CONFIG_MP_INCLUDED = y
    CONFIG_POWER_SAVING = n
    CONFIG_USB_AUTOSUSPEND = n
    CONFIG_HW_PWRP_DETECTION = n
    CONFIG_WIFI_TEST = n
    CONFIG_BT_COEXIST = n
    CONFIG_RTL8192CU_REDEFINE_1X1 = n
    CONFIG_WAPI_SUPPORT = n
    CONFIG_EFUSE_CONFIG_FILE = n
    CONFIG_EXT_CLK = n
    CONFIG_TRAFFIC_PROTECT = y
    CONFIG_LOAD_PHY_PARA_FROM_FILE = y
    CONFIG_CALIBRATE_TX_POWER_BY_REGULATORY = n
    CONFIG_CALIBRATE_TX_POWER_TO_MAX = n
    CONFIG_RTW_ADAPTIVITY_EN = auto
    CONFIG_RTW_ADAPTIVITY_MODE = normal
    CONFIG_SKIP_SIGNAL_SCALE_MAPPING = n
    ######################## Wake On Lan ##########################
    CONFIG_WOWLAN = n
    CONFIG_GPIO_WAKEUP = n
    CONFIG_PNO_SUPPORT = n
    CONFIG_PNO_SET_DEBUG = n
    CONFIG_AP_WOWLAN = n
    ######### Notify SDIO Host Keep Power During Syspend ##########
    CONFIG_RTW_SDIO_PM_KEEP_POWER = y
    ###################### Platform Related #######################
    CONFIG_PLATFORM_I386_PC = n
    CONFIG_PLATFORM_ARM_AM335X = y
    CONFIG_PLATFORM_ANDROID_X86 = n
    CONFIG_PLATFORM_JB_X86 = n
    CONFIG_PLATFORM_ARM_S3C2K4 = n
    CONFIG_PLATFORM_ARM_PXA2XX = n
    CONFIG_PLATFORM_ARM_S3C6K4 = n
    CONFIG_PLATFORM_MIPS_RMI = n
    CONFIG_PLATFORM_RTD2880B = n
    CONFIG_PLATFORM_MIPS_AR9132 = n
    CONFIG_PLATFORM_RTK_DMP = n
    CONFIG_PLATFORM_MIPS_PLM = n
    CONFIG_PLATFORM_MSTAR389 = n
    CONFIG_PLATFORM_MT53XX = n
    CONFIG_PLATFORM_ARM_MX51_241H = n
    CONFIG_PLATFORM_FS_MX61 = n
    CONFIG_PLATFORM_ACTIONS_ATJ227X = n
    CONFIG_PLATFORM_TEGRA3_CARDHU = n
    CONFIG_PLATFORM_TEGRA4_DALMORE = n
    CONFIG_PLATFORM_ARM_TCC8900 = n
    CONFIG_PLATFORM_ARM_TCC8920 = n
    CONFIG_PLATFORM_ARM_TCC8920_JB42 = n
    CONFIG_PLATFORM_ARM_RK2818 = n
    CONFIG_PLATFORM_ARM_RK3066 = n
    CONFIG_PLATFORM_ARM_RK3188 = n
    CONFIG_PLATFORM_ARM_URBETTER = n
    CONFIG_PLATFORM_ARM_TI_PANDA = n
    CONFIG_PLATFORM_MIPS_JZ4760 = n
    CONFIG_PLATFORM_DMP_PHILIPS = n
    CONFIG_PLATFORM_TI_DM365 = n
    CONFIG_PLATFORM_MSTAR_TITANIA12 = n
    CONFIG_PLATFORM_MSTAR = n
    CONFIG_PLATFORM_SZEBOOK = n
    CONFIG_PLATFORM_ARM_SUNxI = n
    CONFIG_PLATFORM_ARM_SUN6I = n
    CONFIG_PLATFORM_ARM_SUN7I = n
    CONFIG_PLATFORM_ARM_SUN8I = n
    CONFIG_PLATFORM_ACTIONS_ATM702X = n
    CONFIG_PLATFORM_ACTIONS_ATM705X = n
    CONFIG_PLATFORM_ACTIONS_ATV5201 = n
    CONFIG_PLATFORM_ARM_RTD299X = n
    CONFIG_PLATFORM_ARM_SPREADTRUM_6820 = n
    CONFIG_PLATFORM_ARM_SPREADTRUM_8810 = n
    ###############################################################

    CONFIG_DRVEXT_MODULE = n

    export TopDIR ?= $(shell pwd)

    ########### COMMON #################################
    ifeq ($(CONFIG_GSPI_HCI), y)
    HCI_NAME = gspi
    endif

    ifeq ($(CONFIG_SDIO_HCI), y)
    HCI_NAME = sdio
    endif

    ifeq ($(CONFIG_USB_HCI), y)
    HCI_NAME = usb
    endif

    ifeq ($(CONFIG_PCI_HCI), y)
    HCI_NAME = pci
    endif


    _OS_INTFS_FILES := os_dep/osdep_service.o \
    os_dep/linux/os_intfs.o \
    os_dep/linux/$(HCI_NAME)_intf.o \
    os_dep/linux/$(HCI_NAME)_ops_linux.o \
    os_dep/linux/ioctl_linux.o \
    os_dep/linux/xmit_linux.o \
    os_dep/linux/mlme_linux.o \
    os_dep/linux/recv_linux.o \
    os_dep/linux/ioctl_cfg80211.o \
    os_dep/linux/wifi_regd.o \
    os_dep/linux/rtw_android.o \
    os_dep/linux/rtw_proc.o

    ifeq ($(CONFIG_SDIO_HCI), y)
    _OS_INTFS_FILES += os_dep/linux/custom_gpio_linux.o
    _OS_INTFS_FILES += os_dep/linux/$(HCI_NAME)_ops_linux.o
    endif

    ifeq ($(CONFIG_GSPI_HCI), y)
    _OS_INTFS_FILES += os_dep/linux/custom_gpio_linux.o
    _OS_INTFS_FILES += os_dep/linux/$(HCI_NAME)_ops_linux.o
    endif


    _HAL_INTFS_FILES := hal/hal_intf.o \
    hal/hal_com.o \
    hal/hal_com_phycfg.o \
    hal/hal_phy.o \
    hal/hal_btcoex.o \
    hal/hal_hci/hal_$(HCI_NAME).o \
    hal/led/hal_$(HCI_NAME)_led.o

    _OUTSRC_FILES := hal/OUTSRC/odm_debug.o \
    hal/OUTSRC/odm_AntDiv.o\
    hal/OUTSRC/odm_interface.o\
    hal/OUTSRC/odm_HWConfig.o\
    hal/OUTSRC/odm.o\
    hal/OUTSRC/HalPhyRf.o\
    hal/OUTSRC/PhyDM_Adaptivity.o

    EXTRA_CFLAGS += -I$(src)/platform
    _PLATFORM_FILES := platform/platform_ops.o

    ifeq ($(CONFIG_BT_COEXIST), y)
    EXTRA_CFLAGS += -I$(src)/hal/OUTSRC-BTCoexist
    _OUTSRC_FILES += hal/OUTSRC-BTCoexist/HalBtc8188c2Ant.o \
    hal/OUTSRC-BTCoexist/HalBtc8192d2Ant.o \
    hal/OUTSRC-BTCoexist/HalBtc8192e1Ant.o \
    hal/OUTSRC-BTCoexist/HalBtc8192e2Ant.o \
    hal/OUTSRC-BTCoexist/HalBtc8723a1Ant.o \
    hal/OUTSRC-BTCoexist/HalBtc8723a2Ant.o \
    hal/OUTSRC-BTCoexist/HalBtc8723b1Ant.o \
    hal/OUTSRC-BTCoexist/HalBtc8723b2Ant.o \
    hal/OUTSRC-BTCoexist/HalBtc8812a1Ant.o \
    hal/OUTSRC-BTCoexist/HalBtc8812a2Ant.o \
    hal/OUTSRC-BTCoexist/HalBtc8821a1Ant.o \
    hal/OUTSRC-BTCoexist/HalBtc8821a2Ant.o
    endif

    ########### HAL_RTL8192C #################################

    ifeq ($(CONFIG_RTL8192C), y)
    RTL871X = rtl8192c
    ifeq ($(CONFIG_USB_HCI), y)
    MODULE_NAME = 8192cu
    endif
    ifeq ($(CONFIG_PCI_HCI), y)
    MODULE_NAME = 8192ce
    endif
    EXTRA_CFLAGS += -DCONFIG_RTL8192C

    _HAL_INTFS_FILES += \
    hal/$(RTL871X)/$(RTL871X)_sreset.o \
    hal/$(RTL871X)/$(RTL871X)_xmit.o

    _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
    hal/$(RTL871X)/$(RTL871X)_phycfg.o \
    hal/$(RTL871X)/$(RTL871X)_rf6052.o \
    hal/$(RTL871X)/$(RTL871X)_dm.o \
    hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
    hal/$(RTL871X)/$(RTL871X)_cmd.o \
    hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o

    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o


    ifeq ($(CONFIG_MP_INCLUDED), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_mp.o
    endif

    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/odm_RTL8192C.o\
    hal/OUTSRC/$(RTL871X)/HalDMOutSrc8192C_CE.o

    ifeq ($(CONFIG_USB_HCI), y)
    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/Hal8192CUFWImg_CE.o \
    hal/OUTSRC/$(RTL871X)/Hal8192CUPHYImg_CE.o \
    hal/OUTSRC/$(RTL871X)/Hal8192CUMACImg_CE.o
    endif

    ifeq ($(CONFIG_PCI_HCI), y)
    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/Hal8192CEFWImg_CE.o \
    hal/OUTSRC/$(RTL871X)/Hal8192CEPHYImg_CE.o \
    hal/OUTSRC/$(RTL871X)/Hal8192CEMACImg_CE.o
    endif

    endif

    ########### HAL_RTL8192D #################################
    ifeq ($(CONFIG_RTL8192D), y)
    RTL871X = rtl8192d
    ifeq ($(CONFIG_USB_HCI), y)
    MODULE_NAME = 8192du
    endif
    ifeq ($(CONFIG_PCI_HCI), y)
    MODULE_NAME = 8192de
    endif
    EXTRA_CFLAGS += -DCONFIG_RTL8192D

    _HAL_INTFS_FILES += \
    hal/$(RTL871X)/$(RTL871X)_xmit.o

    _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
    hal/$(RTL871X)/$(RTL871X)_phycfg.o \
    hal/$(RTL871X)/$(RTL871X)_rf6052.o \
    hal/$(RTL871X)/$(RTL871X)_dm.o \
    hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
    hal/$(RTL871X)/$(RTL871X)_cmd.o \
    hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o

    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o

    ifeq ($(CONFIG_MP_INCLUDED), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_mp.o
    endif

    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/odm_RTL8192D.o\
    hal/OUTSRC/$(RTL871X)/HalDMOutSrc8192D_CE.o


    ifeq ($(CONFIG_USB_HCI), y)
    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/Hal8192DUFWImg_CE.o \
    hal/OUTSRC/$(RTL871X)/Hal8192DUPHYImg_CE.o \
    hal/OUTSRC/$(RTL871X)/Hal8192DUMACImg_CE.o
    endif

    ifeq ($(CONFIG_PCI_HCI), y)
    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/Hal8192DEFWImg_CE.o \
    hal/OUTSRC/$(RTL871X)/Hal8192DEPHYImg_CE.o \
    hal/OUTSRC/$(RTL871X)/Hal8192DEMACImg_CE.o
    endif

    endif

    ########### HAL_RTL8723A #################################
    ifeq ($(CONFIG_RTL8723A), y)

    RTL871X = rtl8723a
    ifeq ($(CONFIG_GSPI_HCI), y)
    MODULE_NAME = 8723as
    endif
    ifeq ($(CONFIG_SDIO_HCI), y)
    MODULE_NAME = 8723as
    endif
    ifeq ($(CONFIG_USB_HCI), y)
    MODULE_NAME = 8723au
    endif
    ifeq ($(CONFIG_PCI_HCI), y)
    MODULE_NAME = 8723ae
    endif
    EXTRA_CFLAGS += -DCONFIG_RTL8723A

    _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
    hal/$(RTL871X)/Hal8723PwrSeq.o\
    hal/$(RTL871X)/$(RTL871X)_xmit.o \
    hal/$(RTL871X)/$(RTL871X)_sreset.o

    _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
    hal/$(RTL871X)/$(RTL871X)_phycfg.o \
    hal/$(RTL871X)/$(RTL871X)_rf6052.o \
    hal/$(RTL871X)/$(RTL871X)_dm.o \
    hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
    hal/$(RTL871X)/$(RTL871X)_cmd.o \
    hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o

    ifeq ($(CONFIG_SDIO_HCI), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
    else
    ifeq ($(CONFIG_GSPI_HCI), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
    else
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
    endif
    endif

    ifeq ($(CONFIG_MP_INCLUDED), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_mp.o
    endif

    ifeq ($(CONFIG_GSPI_HCI), y)
    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/Hal8723SHWImg_CE.o
    endif

    ifeq ($(CONFIG_SDIO_HCI), y)
    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/Hal8723SHWImg_CE.o
    endif

    ifeq ($(CONFIG_USB_HCI), y)
    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/Hal8723UHWImg_CE.o
    endif

    ifeq ($(CONFIG_PCI_HCI), y)
    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/Hal8723EHWImg_CE.o
    endif

    #hal/OUTSRC/$(RTL871X)/HalHWImg8723A_FW.o
    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/HalHWImg8723A_BB.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8723A_MAC.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8723A_RF.o\
    hal/OUTSRC/$(RTL871X)/odm_RegConfig8723A.o

    _OUTSRC_FILES += hal/OUTSRC/rtl8192c/HalDMOutSrc8192C_CE.o


    endif


    ########### HAL_RTL8188E #################################
    ifeq ($(CONFIG_RTL8188E), y)

    RTL871X = rtl8188e
    ifeq ($(CONFIG_SDIO_HCI), y)
    MODULE_NAME = 8189es
    endif

    ifeq ($(CONFIG_USB_HCI), y)
    MODULE_NAME = 8188eu
    endif

    ifeq ($(CONFIG_PCI_HCI), y)
    MODULE_NAME = 8188ee
    endif
    EXTRA_CFLAGS += -DCONFIG_RTL8188E

    _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
    hal/$(RTL871X)/Hal8188EPwrSeq.o\
    hal/$(RTL871X)/$(RTL871X)_xmit.o\
    hal/$(RTL871X)/$(RTL871X)_sreset.o

    _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
    hal/$(RTL871X)/$(RTL871X)_phycfg.o \
    hal/$(RTL871X)/$(RTL871X)_rf6052.o \
    hal/$(RTL871X)/$(RTL871X)_dm.o \
    hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
    hal/$(RTL871X)/$(RTL871X)_cmd.o \
    hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o

    ifeq ($(CONFIG_SDIO_HCI), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
    else
    ifeq ($(CONFIG_GSPI_HCI), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
    else
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
    endif
    endif

    ifeq ($(CONFIG_MP_INCLUDED), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_mp.o
    endif

    #hal/OUTSRC/$(RTL871X)/Hal8188EFWImg_CE.o
    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/HalHWImg8188E_MAC.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8188E_BB.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8188E_RF.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8188E_FW.o\
    hal/OUTSRC/$(RTL871X)/HalPhyRf_8188e.o\
    hal/OUTSRC/$(RTL871X)/odm_RegConfig8188E.o\
    hal/OUTSRC/$(RTL871X)/Hal8188ERateAdaptive.o\
    hal/OUTSRC/$(RTL871X)/odm_RTL8188E.o

    endif

    ########### HAL_RTL8192E #################################
    ifeq ($(CONFIG_RTL8192E), y)

    RTL871X = rtl8192e
    ifeq ($(CONFIG_SDIO_HCI), y)
    MODULE_NAME = 8192es
    endif

    ifeq ($(CONFIG_USB_HCI), y)
    MODULE_NAME = 8192eu
    endif

    ifeq ($(CONFIG_PCI_HCI), y)
    MODULE_NAME = 8192ee
    endif
    EXTRA_CFLAGS += -DCONFIG_RTL8192E
    _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
    hal/$(RTL871X)/Hal8192EPwrSeq.o\
    hal/$(RTL871X)/$(RTL871X)_xmit.o\
    hal/$(RTL871X)/$(RTL871X)_sreset.o

    _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
    hal/$(RTL871X)/$(RTL871X)_phycfg.o \
    hal/$(RTL871X)/$(RTL871X)_rf6052.o \
    hal/$(RTL871X)/$(RTL871X)_dm.o \
    hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
    hal/$(RTL871X)/$(RTL871X)_cmd.o \
    hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o

    ifeq ($(CONFIG_SDIO_HCI), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
    else
    ifeq ($(CONFIG_GSPI_HCI), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
    else
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
    endif
    endif

    ifeq ($(CONFIG_MP_INCLUDED), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_mp.o
    endif

    #hal/OUTSRC/$(RTL871X)/HalHWImg8188E_FW.o
    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/HalHWImg8192E_MAC.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8192E_BB.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8192E_RF.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8192E_FW.o\
    hal/OUTSRC/$(RTL871X)/HalPhyRf_8192e.o\
    hal/OUTSRC/$(RTL871X)/odm_RegConfig8192E.o\
    hal/OUTSRC/$(RTL871X)/odm_RTL8192E.o

    endif

    ########### HAL_RTL8812A_RTL8821A #################################

    ifneq ($(CONFIG_RTL8812A)_$(CONFIG_RTL8821A), n_n)

    RTL871X = rtl8812a
    ifeq ($(CONFIG_USB_HCI), y)
    MODULE_NAME = 8812au
    endif
    ifeq ($(CONFIG_PCI_HCI), y)
    MODULE_NAME = 8812ae
    endif
    ifeq ($(CONFIG_SDIO_HCI), y)
    MODULE_NAME = 8812as
    endif

    _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
    hal/$(RTL871X)/Hal8812PwrSeq.o \
    hal/$(RTL871X)/Hal8821APwrSeq.o\
    hal/$(RTL871X)/$(RTL871X)_xmit.o\
    hal/$(RTL871X)/$(RTL871X)_sreset.o

    _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
    hal/$(RTL871X)/$(RTL871X)_phycfg.o \
    hal/$(RTL871X)/$(RTL871X)_rf6052.o \
    hal/$(RTL871X)/$(RTL871X)_dm.o \
    hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
    hal/$(RTL871X)/$(RTL871X)_cmd.o \
    hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o

    ifeq ($(CONFIG_SDIO_HCI), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
    else
    ifeq ($(CONFIG_GSPI_HCI), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
    else
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
    endif
    endif

    ifeq ($(CONFIG_MP_INCLUDED), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_mp.o
    endif

    ifeq ($(CONFIG_RTL8812A), y)
    EXTRA_CFLAGS += -DCONFIG_RTL8812A
    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/HalHWImg8812A_FW.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8812A_MAC.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8812A_BB.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8812A_RF.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8812A_TestChip_FW.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8812A_TestChip_MAC.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8812A_TestChip_BB.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8812A_TestChip_RF.o\
    hal/OUTSRC/$(RTL871X)/HalPhyRf_8812A.o\
    hal/OUTSRC/$(RTL871X)/odm_RegConfig8812A.o\
    hal/OUTSRC/$(RTL871X)/odm_RTL8812A.o
    endif

    ifeq ($(CONFIG_RTL8821A), y)

    ifeq ($(CONFIG_RTL8812A), n)

    RTL871X = rtl8821a
    ifeq ($(CONFIG_USB_HCI), y)
    MODULE_NAME := 8821au
    endif
    ifeq ($(CONFIG_PCI_HCI), y)
    MODULE_NAME := 8821ae
    endif
    ifeq ($(CONFIG_SDIO_HCI), y)
    MODULE_NAME := 8821as
    endif

    endif

    EXTRA_CFLAGS += -DCONFIG_RTL8821A
    _OUTSRC_FILES += hal/OUTSRC/rtl8821a/HalHWImg8821A_FW.o\
    hal/OUTSRC/rtl8821a/HalHWImg8821A_MAC.o\
    hal/OUTSRC/rtl8821a/HalHWImg8821A_BB.o\
    hal/OUTSRC/rtl8821a/HalHWImg8821A_RF.o\
    hal/OUTSRC/rtl8821a/HalHWImg8821A_TestChip_MAC.o\
    hal/OUTSRC/rtl8821a/HalHWImg8821A_TestChip_BB.o\
    hal/OUTSRC/rtl8821a/HalHWImg8821A_TestChip_RF.o\
    hal/OUTSRC/rtl8812a/HalPhyRf_8812A.o\
    hal/OUTSRC/rtl8821a/HalPhyRf_8821A.o\
    hal/OUTSRC/rtl8821a/odm_RegConfig8821A.o\
    hal/OUTSRC/rtl8821a/odm_RTL8821A.o
    endif


    endif

    ########### HAL_RTL8723B #################################
    ifeq ($(CONFIG_RTL8723B), y)

    RTL871X = rtl8723b
    ifeq ($(CONFIG_USB_HCI), y)
    MODULE_NAME = 8723bu
    endif
    ifeq ($(CONFIG_PCI_HCI), y)
    MODULE_NAME = 8723be
    endif
    ifeq ($(CONFIG_SDIO_HCI), y)
    MODULE_NAME = 8723bs
    endif

    EXTRA_CFLAGS += -DCONFIG_RTL8723B

    _HAL_INTFS_FILES += hal/HalPwrSeqCmd.o \
    hal/$(RTL871X)/Hal8723BPwrSeq.o\
    hal/$(RTL871X)/$(RTL871X)_sreset.o

    _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_hal_init.o \
    hal/$(RTL871X)/$(RTL871X)_phycfg.o \
    hal/$(RTL871X)/$(RTL871X)_rf6052.o \
    hal/$(RTL871X)/$(RTL871X)_dm.o \
    hal/$(RTL871X)/$(RTL871X)_rxdesc.o \
    hal/$(RTL871X)/$(RTL871X)_cmd.o \

    _HAL_INTFS_FILES += \
    hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_halinit.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_led.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_xmit.o \
    hal/$(RTL871X)/$(HCI_NAME)/rtl$(MODULE_NAME)_recv.o

    ifeq ($(CONFIG_PCI_HCI), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops_linux.o
    else
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(HCI_NAME)/$(HCI_NAME)_ops.o
    endif

    ifeq ($(CONFIG_MP_INCLUDED), y)
    _HAL_INTFS_FILES += hal/$(RTL871X)/$(RTL871X)_mp.o
    endif

    _OUTSRC_FILES += hal/OUTSRC/$(RTL871X)/HalHWImg8723B_BB.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8723B_MAC.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8723B_RF.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8723B_FW.o\
    hal/OUTSRC/$(RTL871X)/HalHWImg8723B_MP.o\
    hal/OUTSRC/$(RTL871X)/odm_RegConfig8723B.o\
    hal/OUTSRC/$(RTL871X)/HalPhyRf_8723B.o\
    hal/OUTSRC/$(RTL871X)/odm_RTL8723B.o

    endif

    ########### AUTO_CFG #################################

    ifeq ($(CONFIG_AUTOCFG_CP), y)

    ifeq ($(CONFIG_MULTIDRV), y)
    $(shell cp $(TopDIR)/autoconf_multidrv_$(HCI_NAME)_linux.h $(TopDIR)/include/autoconf.h)
    else
    ifeq ($(CONFIG_RTL8188E)$(CONFIG_SDIO_HCI),yy)
    $(shell cp $(TopDIR)/autoconf_rtl8189e_$(HCI_NAME)_linux.h $(TopDIR)/include/autoconf.h)
    else
    $(shell cp $(TopDIR)/autoconf_$(RTL871X)_$(HCI_NAME)_linux.h $(TopDIR)/include/autoconf.h)
    endif
    endif

    endif

    ########### END OF PATH #################################


    ifeq ($(CONFIG_USB_HCI), y)
    ifeq ($(CONFIG_USB_AUTOSUSPEND), y)
    EXTRA_CFLAGS += -DCONFIG_USB_AUTOSUSPEND
    endif
    endif

    ifeq ($(CONFIG_MP_INCLUDED), y)
    #MODULE_NAME := $(MODULE_NAME)_mp
    EXTRA_CFLAGS += -DCONFIG_MP_INCLUDED
    endif

    ifeq ($(CONFIG_POWER_SAVING), y)
    EXTRA_CFLAGS += -DCONFIG_POWER_SAVING
    endif

    ifeq ($(CONFIG_HW_PWRP_DETECTION), y)
    EXTRA_CFLAGS += -DCONFIG_HW_PWRP_DETECTION
    endif

    ifeq ($(CONFIG_WIFI_TEST), y)
    EXTRA_CFLAGS += -DCONFIG_WIFI_TEST
    endif

    ifeq ($(CONFIG_BT_COEXIST), y)
    EXTRA_CFLAGS += -DCONFIG_BT_COEXIST
    endif

    ifeq ($(CONFIG_RTL8192CU_REDEFINE_1X1), y)
    EXTRA_CFLAGS += -DRTL8192C_RECONFIG_TO_1T1R
    endif

    ifeq ($(CONFIG_WAPI_SUPPORT), y)
    EXTRA_CFLAGS += -DCONFIG_WAPI_SUPPORT
    endif


    ifeq ($(CONFIG_EFUSE_CONFIG_FILE), y)
    EXTRA_CFLAGS += -DCONFIG_EFUSE_CONFIG_FILE
    endif

    ifeq ($(CONFIG_EXT_CLK), y)
    EXTRA_CFLAGS += -DCONFIG_EXT_CLK
    endif

    ifeq ($(CONFIG_TRAFFIC_PROTECT), y)
    EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT
    endif

    ifeq ($(CONFIG_LOAD_PHY_PARA_FROM_FILE), y)
    EXTRA_CFLAGS += -DCONFIG_LOAD_PHY_PARA_FROM_FILE
    endif

    ifeq ($(CONFIG_CALIBRATE_TX_POWER_BY_REGULATORY), y)
    EXTRA_CFLAGS += -DCONFIG_CALIBRATE_TX_POWER_BY_REGULATORY
    endif

    ifeq ($(CONFIG_CALIBRATE_TX_POWER_TO_MAX), y)
    EXTRA_CFLAGS += -DCONFIG_CALIBRATE_TX_POWER_TO_MAX
    endif

    ifeq ($(CONFIG_RTW_ADAPTIVITY_EN), disable)
    EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_EN=0
    else ifeq ($(CONFIG_RTW_ADAPTIVITY_EN), enable)
    EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_EN=1
    endif

    ifeq ($(CONFIG_RTW_ADAPTIVITY_MODE), normal)
    EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_MODE=0
    else ifeq ($(CONFIG_RTW_ADAPTIVITY_MODE), carrier_sense)
    EXTRA_CFLAGS += -DCONFIG_RTW_ADAPTIVITY_MODE=1
    endif

    ifeq ($(CONFIG_SKIP_SIGNAL_SCALE_MAPPING), y)
    EXTRA_CFLAGS += -DCONFIG_SKIP_SIGNAL_SCALE_MAPPING
    endif

    ifeq ($(CONFIG_WOWLAN), y)
    EXTRA_CFLAGS += -DCONFIG_WOWLAN
    ifeq ($(CONFIG_SDIO_HCI), y)
    EXTRA_CFLAGS += -DCONFIG_RTW_SDIO_PM_KEEP_POWER
    endif
    endif

    ifeq ($(CONFIG_AP_WOWLAN), y)
    EXTRA_CFLAGS += -DCONFIG_AP_WOWLAN
    ifeq ($(CONFIG_SDIO_HCI), y)
    EXTRA_CFLAGS += -DCONFIG_RTW_SDIO_PM_KEEP_POWER
    endif
    endif

    ifeq ($(CONFIG_PNO_SUPPORT), y)
    EXTRA_CFLAGS += -DCONFIG_PNO_SUPPORT
    ifeq ($(CONFIG_PNO_SET_DEBUG), y)
    EXTRA_CFLAGS += -DCONFIG_PNO_SET_DEBUG
    endif
    endif

    ifeq ($(CONFIG_GPIO_WAKEUP), y)
    EXTRA_CFLAGS += -DCONFIG_GPIO_WAKEUP
    endif

    ifeq ($(CONFIG_RTW_SDIO_PM_KEEP_POWER), y)
    ifeq ($(CONFIG_SDIO_HCI), y)
    EXTRA_CFLAGS += -DCONFIG_RTW_SDIO_PM_KEEP_POWER
    endif
    endif

    ifeq ($(CONFIG_PLATFORM_I386_PC), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
    ARCH ?= $(SUBARCH)
    CROSS_COMPILE ?=
    KVER := $(shell uname -r)
    KSRC ?= /lib/modules/$(KVER)/build
    MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
    INSTALL_PREFIX :=
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_AM335X), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    ARCH := arm
    CROSS_COMPILE := arm-linux-gnueabihf-
    KVER := 3.2.0
    KSRC := /home/kernel/evbkernel
    endif

    ifeq ($(CONFIG_PLATFORM_ACTIONS_ATM702X), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_ACTIONS_ATM702X
    #ARCH := arm
    ARCH := $(R_ARCH)
    #CROSS_COMPILE := arm-none-linux-gnueabi-
    CROSS_COMPILE := $(R_CROSS_COMPILE)
    KVER:= 3.4.0
    #KSRC := ../../../../build/out/kernel
    KSRC := $(KERNEL_BUILD_PATH)
    MODULE_NAME :=wlan
    endif

    ifeq ($(CONFIG_PLATFORM_ACTIONS_ATM705X), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    # default setting for Android 4.1, 4.2, 4.3, 4.4
    EXTRA_CFLAGS += -DCONFIG_PLATFORM_ACTIONS_ATM705X
    EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
    EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
    EXTRA_CFLAGS += -DCONFIG_P2P_IPS

    # Enable this for Android 5.0
    EXTRA_CFLAGS += -DCONFIG_RADIO_WORK

    ifeq ($(CONFIG_SDIO_HCI), y)
    EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
    _PLATFORM_FILES += platform/platform_arm_act_sdio.o
    endif

    ARCH := arm
    CROSS_COMPILE := /opt/arm-2011.09/bin/arm-none-linux-gnueabi-
    KSRC := /home/android_sdk/Action-semi/705a_android_L/android/kernel
    endif

    ifeq ($(CONFIG_PLATFORM_TI_AM3517), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_SHUTTLE
    CROSS_COMPILE := arm-eabi-
    KSRC := $(shell pwd)/../../../Android/kernel
    ARCH := arm
    endif

    ifeq ($(CONFIG_PLATFORM_MSTAR_TITANIA12), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_MSTAR -DCONFIG_PLATFORM_MSTAR_TITANIA12
    ARCH:=mips
    CROSS_COMPILE:= /usr/src/Mstar_kernel/mips-4.3/bin/mips-linux-gnu-
    KVER:= 2.6.28.9
    KSRC:= /usr/src/Mstar_kernel/2.6.28.9/
    endif

    ifeq ($(CONFIG_PLATFORM_MSTAR), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_MSTAR #-DCONFIG_PLATFORM_MSTAR_SCAN_BEFORE_CONNECT
    ARCH:=arm
    CROSS_COMPILE:= /usr/src/bin/arm-none-linux-gnueabi-
    KVER:= 3.1.10
    KSRC:= /usr/src/Mstar_kernel/3.1.10/
    endif

    ifeq ($(CONFIG_PLATFORM_ANDROID_X86), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
    ARCH := $(SUBARCH)
    CROSS_COMPILE := /media/DATA-2/android-x86/ics-x86_20120130/prebuilt/linux-x86/toolchain/i686-unknown-linux-gnu-4.2.1/bin/i686-unknown-linux-gnu-
    KSRC := /media/DATA-2/android-x86/ics-x86_20120130/out/target/product/generic_x86/obj/kernel
    MODULE_NAME :=wlan
    endif

    ifeq ($(CONFIG_PLATFORM_JB_X86), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
    EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
    EXTRA_CFLAGS += -DCONFIG_P2P_IPS
    SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
    ARCH := $(SUBARCH)
    CROSS_COMPILE := /home/android_sdk/android-x86_JB/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7/bin/i686-linux-android-
    KSRC := /home/android_sdk/android-x86_JB/out/target/product/x86/obj/kernel/
    MODULE_NAME :=wlan
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_PXA2XX), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    ARCH := arm
    CROSS_COMPILE := arm-none-linux-gnueabi-
    KVER := 2.6.34.1
    KSRC ?= /usr/src/linux-2.6.34.1
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_S3C2K4), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    ARCH := arm
    CROSS_COMPILE := arm-linux-
    KVER := 2.6.24.7_$(ARCH)
    KSRC := /usr/src/kernels/linux-$(KVER)
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_S3C6K4), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    ARCH := arm
    CROSS_COMPILE := arm-none-linux-gnueabi-
    KVER := 2.6.34.1
    KSRC ?= /usr/src/linux-2.6.34.1
    endif

    ifeq ($(CONFIG_PLATFORM_RTD2880B), y)
    EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN -DCONFIG_PLATFORM_RTD2880B
    ARCH:=
    CROSS_COMPILE:=
    KVER:=
    KSRC:=
    endif

    ifeq ($(CONFIG_PLATFORM_MIPS_RMI), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    ARCH:=mips
    CROSS_COMPILE:=mipsisa32r2-uclibc-
    KVER:=
    KSRC:= /root/work/kernel_realtek
    endif

    ifeq ($(CONFIG_PLATFORM_MIPS_PLM), y)
    EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN
    ARCH:=mips
    CROSS_COMPILE:=mipsisa32r2-uclibc-
    KVER:=
    KSRC:= /root/work/kernel_realtek
    endif

    ifeq ($(CONFIG_PLATFORM_MSTAR389), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_MSTAR389
    ARCH:=mips
    CROSS_COMPILE:= mips-linux-gnu-
    KVER:= 2.6.28.10
    KSRC:= /home/mstar/mstar_linux/2.6.28.9/
    endif

    ifeq ($(CONFIG_PLATFORM_MIPS_AR9132), y)
    EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN
    ARCH := mips
    CROSS_COMPILE := mips-openwrt-linux-
    KSRC := /home/alex/test_openwrt/tmp/linux-2.6.30.9
    endif

    ifeq ($(CONFIG_PLATFORM_DMP_PHILIPS), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DRTK_DMP_PLATFORM
    ARCH := mips
    #CROSS_COMPILE:=/usr/local/msdk-4.3.6-mips-EL-2.6.12.6-0.9.30.3/bin/mipsel-linux-
    CROSS_COMPILE:=/usr/local/toolchain_mipsel/bin/mipsel-linux-
    KSRC ?=/usr/local/Jupiter/linux-2.6.12
    endif

    ifeq ($(CONFIG_PLATFORM_RTK_DMP), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DRTK_DMP_PLATFORM -DCONFIG_WIRELESS_EXT
    EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
    ifeq ($(CONFIG_USB_HCI), y)
    _PLATFORM_FILES += platform/platform_RTK_DMP_usb.o
    endif
    ARCH:=mips
    CROSS_COMPILE:=mipsel-linux-
    KVER:=
    KSRC ?= /usr/src/DMP_Kernel/jupiter/linux-2.6.12
    endif

    ifeq ($(CONFIG_PLATFORM_MT53XX), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_MT53XX
    ARCH:= arm
    CROSS_COMPILE:= arm11_mtk_le-
    KVER:= 2.6.27
    KSRC?= /proj/mtk00802/BD_Compare/BDP/Dev/BDP_V301/BDP_Linux/linux-2.6.27
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_MX51_241H), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_WISTRON_PLATFORM
    ARCH := arm
    CROSS_COMPILE := /opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-
    KVER := 2.6.31
    KSRC ?= /lib/modules/2.6.31-770-g0e46b52/source
    endif

    ifeq ($(CONFIG_PLATFORM_FS_MX61), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    ARCH := arm
    CROSS_COMPILE := /home/share/CusEnv/FreeScale/arm-eabi-4.4.3/bin/arm-eabi-
    KSRC ?= /home/share/CusEnv/FreeScale/FS_kernel_env
    endif

    ifeq ($(CONFIG_PLATFORM_ACTIONS_ATJ227X), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ACTIONS_ATJ227X
    ARCH := mips
    CROSS_COMPILE := /home/cnsd4/project/actions/tools-2.6.27/bin/mipsel-linux-gnu-
    KVER := 2.6.27
    KSRC := /home/cnsd4/project/actions/linux-2.6.27.28
    endif

    ifeq ($(CONFIG_PLATFORM_TI_DM365), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_TI_DM365
    ARCH := arm
    CROSS_COMPILE := /home/cnsd4/Appro/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-
    KVER := 2.6.18
    KSRC := /home/cnsd4/Appro/mv_pro_5.0/montavista/pro/devkit/lsp/ti-davinci/linux-dm365
    endif

    ifeq ($(CONFIG_PLATFORM_TEGRA3_CARDHU), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    # default setting for Android 4.1, 4.2
    EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC
    EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
    EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
    EXTRA_CFLAGS += -DCONFIG_P2P_IPS
    ARCH := arm
    CROSS_COMPILE := /home/android_sdk/nvidia/tegra-16r3-partner-android-4.1_20120723/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
    KSRC := /home/android_sdk/nvidia/tegra-16r3-partner-android-4.1_20120723/out/target/product/cardhu/obj/KERNEL
    MODULE_NAME := wlan
    endif

    ifeq ($(CONFIG_PLATFORM_TEGRA4_DALMORE), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    # default setting for Android 4.1, 4.2
    EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC
    EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
    EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
    EXTRA_CFLAGS += -DCONFIG_P2P_IPS
    ARCH := arm
    CROSS_COMPILE := /home/android_sdk/nvidia/tegra-17r9-partner-android-4.2-dalmore_20130131/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
    KSRC := /home/android_sdk/nvidia/tegra-17r9-partner-android-4.2-dalmore_20130131/out/target/product/dalmore/obj/KERNEL
    MODULE_NAME := wlan
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_TCC8900), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    ARCH := arm
    CROSS_COMPILE := /home/android_sdk/Telechips/SDK_2304_20110613/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
    KSRC := /home/android_sdk/Telechips/SDK_2304_20110613/kernel
    MODULE_NAME := wlan
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_TCC8920), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    ARCH := arm
    CROSS_COMPILE := /home/android_sdk/Telechips/v12.06_r1-tcc-android-4.0.4/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
    KSRC := /home/android_sdk/Telechips/v12.06_r1-tcc-android-4.0.4/kernel
    MODULE_NAME := wlan
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_TCC8920_JB42), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    # default setting for Android 4.1, 4.2
    EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
    EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
    EXTRA_CFLAGS += -DCONFIG_P2P_IPS
    ARCH := arm
    CROSS_COMPILE := /home/android_sdk/Telechips/v13.03_r1-tcc-android-4.2.2_ds_patched/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
    KSRC := /home/android_sdk/Telechips/v13.03_r1-tcc-android-4.2.2_ds_patched/kernel
    MODULE_NAME := wlan
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_RK2818), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_ROCKCHIPS -DCONFIG_MINIMAL_MEMORY_USAGE
    ARCH := arm
    CROSS_COMPILE := /usr/src/release_fae_version/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
    KSRC := /usr/src/release_fae_version/kernel25_A7_281x
    MODULE_NAME := wlan
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_RK3188), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_ROCKCHIPS -DCONFIG_MINIMAL_MEMORY_USAGE
    EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC
    EXTRA_CFLAGS += -DRTW_SUPPORT_PLATFORM_SHUTDOWN
    EXTRA_CFLAGS += -DRTW_USE_CFG80211_STA_EVENT
    ARCH := arm
    CROSS_COMPILE := /home/android_sdk/Rockchip/Rk3188/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
    KSRC := /home/android_sdk/Rockchip/Rk3188/kernel
    MODULE_NAME := wlan
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_RK3066), y)
    EXTRA_CFLAGS += -DRTW_ENABLE_WIFI_CONTROL_FUNC
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
    EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211
    EXTRA_CFLAGS += -DCONFIG_P2P_IPS
    ifeq ($(CONFIG_SDIO_HCI), y)
    EXTRA_CFLAGS += -DRTW_SUPPORT_PLATFORM_SHUTDOWN
    endif
    EXTRA_CFLAGS += -fno-pic
    ARCH := arm
    CROSS_COMPILE := /home/android_sdk/Rockchip/rk3066_20130607/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-
    #CROSS_COMPILE := /home/android_sdk/Rockchip/Rk3066sdk/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-
    KSRC := /home/android_sdk/Rockchip/Rk3066sdk/kernel
    MODULE_NAME :=wlan
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_URBETTER), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN #-DCONFIG_MINIMAL_MEMORY_USAGE
    ARCH := arm
    CROSS_COMPILE := /media/DATA-1/urbetter/arm-2009q3/bin/arm-none-linux-gnueabi-
    KSRC := /media/DATA-1/urbetter/ics-urbetter/kernel
    MODULE_NAME := wlan
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_TI_PANDA), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN #-DCONFIG_MINIMAL_MEMORY_USAGE
    ARCH := arm
    #CROSS_COMPILE := /media/DATA-1/aosp/ics-aosp_20111227/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
    #KSRC := /media/DATA-1/aosp/android-omap-panda-3.0_20120104
    CROSS_COMPILE := /media/DATA-1/android-4.0/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
    KSRC := /media/DATA-1/android-4.0/panda_kernel/omap
    MODULE_NAME := wlan
    endif

    ifeq ($(CONFIG_PLATFORM_MIPS_JZ4760), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_MINIMAL_MEMORY_USAGE
    ARCH ?= mips
    CROSS_COMPILE ?= /mnt/sdb5/Ingenic/Umido/mips-4.3/bin/mips-linux-gnu-
    KSRC ?= /mnt/sdb5/Ingenic/Umido/kernel
    endif

    ifeq ($(CONFIG_PLATFORM_SZEBOOK), y)
    EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN
    ARCH:=arm
    CROSS_COMPILE:=/opt/crosstool2/bin/armeb-unknown-linux-gnueabi-
    KVER:= 2.6.31.6
    KSRC:= ../code/linux-2.6.31.6-2020/
    endif

    #Add setting for MN10300
    ifeq ($(CONFIG_PLATFORM_MN10300), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_MN10300
    ARCH := mn10300
    CROSS_COMPILE := mn10300-linux-
    KVER := 2.6.32.2
    KSRC := /home/winuser/work/Plat_sLD2T_V3010/usr/src/linux-2.6.32.2
    INSTALL_PREFIX :=
    endif


    ifeq ($(CONFIG_PLATFORM_ARM_SUNxI), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUNxI
    # default setting for Android 4.1, 4.2
    EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
    EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
    EXTRA_CFLAGS += -DDCONFIG_P2P_IPS

    EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
    ifeq ($(CONFIG_USB_HCI), y)
    EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
    _PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o
    endif
    ifeq ($(CONFIG_SDIO_HCI), y)
    # default setting for A10-EVB mmc0
    #EXTRA_CFLAGS += -DCONFIG_WITS_EVB_V13
    _PLATFORM_FILES += platform/platform_ARM_SUNxI_sdio.o
    endif

    ARCH := arm
    #CROSS_COMPILE := arm-none-linux-gnueabi-
    CROSS_COMPILE=/home/android_sdk/Allwinner/a10/android-jb42/lichee-jb42/buildroot/output/external-toolchain/bin/arm-none-linux-gnueabi-
    KVER := 3.0.8
    #KSRC:= ../lichee/linux-3.0/
    KSRC=/home/android_sdk/Allwinner/a10/android-jb42/lichee-jb42/linux-3.0
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_SUN6I), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN6I
    EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT
    # default setting for Android 4.1, 4.2, 4.3, 4.4
    EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
    EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
    EXTRA_CFLAGS += -DCONFIG_P2P_IPS -DCONFIG_QOS_OPTIMIZATION

    EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
    ifeq ($(CONFIG_USB_HCI), y)
    EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
    _PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o
    endif
    ifeq ($(CONFIG_SDIO_HCI), y)
    # default setting for A31-EVB mmc0
    EXTRA_CFLAGS += -DCONFIG_A31_EVB
    _PLATFORM_FILES += platform/platform_ARM_SUNnI_sdio.o
    endif

    ARCH := arm
    #Android-JB42
    #CROSS_COMPILE := /home/android_sdk/Allwinner/a31/android-jb42/lichee/buildroot/output/external-toolchain/bin/arm-linux-gnueabi-
    #KSRC :=/home/android_sdk/Allwinner/a31/android-jb42/lichee/linux-3.3
    #ifeq ($(CONFIG_USB_HCI), y)
    #MODULE_NAME := 8188eu_sw
    #endif
    # ==== Cross compile setting for kitkat-a3x_v4.5 =====
    CROSS_COMPILE := /home/android_sdk/Allwinner/a31/kitkat-a3x_v4.5/lichee/buildroot/output/external-toolchain/bin/arm-linux-gnueabi-
    KSRC :=/home/android_sdk/Allwinner/a31/kitkat-a3x_v4.5/lichee/linux-3.3
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_SUN7I), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN7I
    EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT
    # default setting for Android 4.1, 4.2, 4.3, 4.4
    EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
    EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
    EXTRA_CFLAGS += -DCONFIG_P2P_IPS -DCONFIG_QOS_OPTIMIZATION

    EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
    ifeq ($(CONFIG_USB_HCI), y)
    EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
    _PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o
    endif
    ifeq ($(CONFIG_SDIO_HCI), y)
    _PLATFORM_FILES += platform/platform_ARM_SUNnI_sdio.o
    endif

    ARCH := arm
    # ===Cross compile setting for Android 4.2 SDK ===
    #CROSS_COMPILE := /home/android_sdk/Allwinner/a20_evb/lichee/out/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi-
    #KSRC := /home/android_sdk/Allwinner/a20_evb/lichee/linux-3.3
    # ==== Cross compile setting for Android 4.3 SDK =====
    #CROSS_COMPILE := /home/android_sdk/Allwinner/a20/android-jb43/lichee/out/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi-
    #KSRC := /home/android_sdk/Allwinner/a20/android-jb43/lichee/linux-3.4
    # ==== Cross compile setting for kitkat-a20_v4.4 =====
    CROSS_COMPILE := /home/android_sdk/Allwinner/a20/kitkat-a20_v4.4/lichee/out/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi-
    KSRC := /home/android_sdk/Allwinner/a20/kitkat-a20_v4.4/lichee/linux-3.4
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_SUN8I), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN8I
    EXTRA_CFLAGS += -DCONFIG_TRAFFIC_PROTECT
    # default setting for Android 4.1, 4.2
    EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
    EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
    EXTRA_CFLAGS += -DCONFIG_P2P_IPS

    EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
    ifeq ($(CONFIG_USB_HCI), y)
    EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
    _PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o
    endif
    ifeq ($(CONFIG_SDIO_HCI), y)
    _PLATFORM_FILES += platform/platform_ARM_SUNnI_sdio.o
    endif

    ARCH := arm
    CROSS_COMPILE := /home/android_sdk/Allwinner/a23/android-jb42/lichee/out/android/common/buildroot/external-toolchain/bin/arm-linux-gnueabi-
    KVER := 3.4.39
    KSRC :=/home/android_sdk/Allwinner/a23/android-jb42/lichee/linux-3.4
    endif

    ifeq ($(CONFIG_PLATFORM_ACTIONS_ATV5201), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ACTIONS_ATV5201
    ARCH := mips
    CROSS_COMPILE := mipsel-linux-gnu-
    KVER := $(KERNEL_VER)
    KSRC:= $(CFGDIR)/../../kernel/linux-$(KERNEL_VER)
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_RTD299X), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DUSB_XMITBUF_ALIGN_SZ=1024 -DUSB_PACKET_OFFSET_SZ=0
    #ARCH, CROSS_COMPILE, KSRC,and MODDESTDIR are provided by external makefile
    INSTALL_PREFIX :=
    endif

    # Platfrom setting
    ifeq ($(CONFIG_PLATFORM_ARM_SPREADTRUM_6820), y)
    ifeq ($(CONFIG_ANDROID_2X), y)
    EXTRA_CFLAGS += -DANDROID_2X
    endif
    EXTRA_CFLAGS += -DCONFIG_PLATFORM_SPRD
    EXTRA_CFLAGS += -DPLATFORM_SPREADTRUM_6820
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    ifeq ($(RTL871X), rtl8188e)
    EXTRA_CFLAGS += -DSOFTAP_PS_DURATION=50
    endif
    ifeq ($(CONFIG_SDIO_HCI), y)
    EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
    _PLATFORM_FILES += platform/platform_sprd_sdio.o
    endif
    endif

    ifeq ($(CONFIG_PLATFORM_ARM_SPREADTRUM_8810), y)
    ifeq ($(CONFIG_ANDROID_2X), y)
    EXTRA_CFLAGS += -DANDROID_2X
    endif
    EXTRA_CFLAGS += -DCONFIG_PLATFORM_SPRD
    EXTRA_CFLAGS += -DPLATFORM_SPREADTRUM_8810
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    ifeq ($(RTL871X), rtl8188e)
    EXTRA_CFLAGS += -DSOFTAP_PS_DURATION=50
    endif
    ifeq ($(CONFIG_SDIO_HCI), y)
    EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
    _PLATFORM_FILES += platform/platform_sprd_sdio.o
    endif
    endif

    ifeq ($(CONFIG_MULTIDRV), y)

    ifeq ($(CONFIG_SDIO_HCI), y)
    MODULE_NAME := rtw_sdio
    endif

    ifeq ($(CONFIG_USB_HCI), y)
    MODULE_NAME := rtw_usb
    endif

    ifeq ($(CONFIG_PCI_HCI), y)
    MODULE_NAME := rtw_pci
    endif


    endif

    ifneq ($(USER_MODULE_NAME),)
    MODULE_NAME := $(USER_MODULE_NAME)
    endif

    ifneq ($(KERNELRELEASE),)

    rtk_core := core/rtw_cmd.o \
    core/rtw_security.o \
    core/rtw_debug.o \
    core/rtw_io.o \
    core/rtw_ioctl_query.o \
    core/rtw_ioctl_set.o \
    core/rtw_ieee80211.o \
    core/rtw_mlme.o \
    core/rtw_mlme_ext.o \
    core/rtw_wlan_util.o \
    core/rtw_vht.o \
    core/rtw_pwrctrl.o \
    core/rtw_rf.o \
    core/rtw_recv.o \
    core/rtw_sta_mgt.o \
    core/rtw_ap.o \
    core/rtw_xmit.o \
    core/rtw_p2p.o \
    core/rtw_tdls.o \
    core/rtw_br_ext.o \
    core/rtw_iol.o \
    core/rtw_sreset.o \
    core/rtw_btcoex.o \
    core/rtw_beamforming.o \
    core/rtw_odm.o \
    core/efuse/rtw_efuse.o

    $(MODULE_NAME)-y += $(rtk_core)

    $(MODULE_NAME)-$(CONFIG_WAPI_SUPPORT) += core/rtw_wapi.o \
    core/rtw_wapi_sms4.o

    $(MODULE_NAME)-y += $(_OS_INTFS_FILES)
    $(MODULE_NAME)-y += $(_HAL_INTFS_FILES)
    $(MODULE_NAME)-y += $(_OUTSRC_FILES)
    $(MODULE_NAME)-y += $(_PLATFORM_FILES)

    $(MODULE_NAME)-$(CONFIG_MP_INCLUDED) += core/rtw_mp.o \
    core/rtw_mp_ioctl.o

    ifeq ($(CONFIG_RTL8723A), y)
    $(MODULE_NAME)-$(CONFIG_MP_INCLUDED)+= core/rtw_bt_mp.o
    endif
    ifeq ($(CONFIG_RTL8723B), y)
    $(MODULE_NAME)-$(CONFIG_MP_INCLUDED)+= core/rtw_bt_mp.o
    endif
    ifeq ($(CONFIG_RTL8821A), y)
    $(MODULE_NAME)-$(CONFIG_MP_INCLUDED)+= core/rtw_bt_mp.o
    endif

    obj-$(CONFIG_RTL8188EU) := $(MODULE_NAME).o

    else

    export CONFIG_RTL8188EU = m

    all: modules

    modules:
    $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KSRC) M=$(shell pwd) modules

    strip:
    $(CROSS_COMPILE)strip $(MODULE_NAME).ko --strip-unneeded

    install:
    @if [ ! -d $(MODDESTDIR) ]; then mkdir $(MODDESTDIR); fi;
    install -p -m 644 $(MODULE_NAME).ko $(MODDESTDIR)
    @echo "blacklist r8188eu" > /etc/modprobe.d/50-8188eu.conf
    @echo "options 8188eu rtw_power_mgnt=0 rtw_enusbss=0 rtw_ips_mode=1" > /etc/modprobe.d/8188eu.conf
    /sbin/depmod -a ${KVER}

    uninstall:
    rm -f $(MODDESTDIR)/$(MODULE_NAME).ko
    /sbin/depmod -a ${KVER}
    @rm /etc/modprobe.d/50-8188eu.conf
    @rm /etc/modprobe.d/8188eu.conf

    config_r:
    @echo "make config"
    /bin/bash script/Configure script/config.in


    .PHONY: modules clean

    clean:
    cd hal/OUTSRC/ ; rm -fr */*.mod.c */*.mod */*.o */.*.cmd */*.ko
    cd hal/OUTSRC/ ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
    cd hal/led ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
    cd hal ; rm -fr */*/*.mod.c */*/*.mod */*/*.o */*/.*.cmd */*/*.ko
    cd hal ; rm -fr */*.mod.c */*.mod */*.o */.*.cmd */*.ko
    cd hal ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
    cd core/efuse ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
    cd core ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
    cd os_dep/linux ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
    cd os_dep ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
    cd platform ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
    rm -fr Module.symvers ; rm -fr Module.markers ; rm -fr modules.order
    rm -fr *.mod.c *.mod *.o .*.cmd *.ko *~
    rm -fr .tmp_versions .cache.mk
    endif