1. 16 May, 2012 31 commits
  2. 15 May, 2012 9 commits
    • Bartosz.Markowski@tieto.com's avatar
      wlcore/wl12xx: implement better beacon loss handling · 5f561f68
      Bartosz.Markowski@tieto.com authored
      Make use of REGAINED_BSS_EVENT and instead of reporting connection
      loss immediately on each BEACON_LOSE event, try if not regained
      in reasonable period of time.
      Signed-off-by: default avatarbartosz.markowski <bartosz.markowski@tieto.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      5f561f68
    • Jesper Juhl's avatar
      wlcore: fix size of two memset's in wl1271_cmd_build_arp_rsp() · 161f17b5
      Jesper Juhl authored
      We currently do this:
      
      int wl1271_cmd_build_arp_rsp(struct wl1271 *wl, struct wl12xx_vif *wlvif)
      ...
            struct wl12xx_arp_rsp_template *tmpl;
            struct ieee80211_hdr_3addr *hdr;
      ...
            tmpl = (struct wl12xx_arp_rsp_template *)skb_put(skb, sizeof(*tmpl));
            memset(tmpl, 0, sizeof(tmpl));
      ...
            hdr = (struct ieee80211_hdr_3addr *)skb_push(skb, sizeof(*hdr));
            memset(hdr, 0, sizeof(hdr));
      ...
      
      I believe we want to set the entire structures to 0 with those
      memset() calls, not just zero the initial part of them (size of the
      pointer bytes).
      Signed-off-by: default avatarJesper Juhl <jj@chaosbits.net>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      161f17b5
    • Randy Dunlap's avatar
      wireless: TI wlxxx depends on MAC80211 · bd28a58f
      Randy Dunlap authored
      wl12xx build fails with many undefined symbol errors when MAC80211
      and CFG80211 are not enabled, so make WLCORE and WL12XX depend
      on MAC80211 (which already depends on CFG80211).
      
      Here are a few of the many build errors:
      
      drivers/built-in.o: In function `wl1271_register_hw':
      main.c:(.text+0x4197cd): undefined reference to `ieee80211_register_hw'
      drivers/built-in.o: In function `wl1271_rx_streaming_timer':
      main.c:(.text+0x419818): undefined reference to `ieee80211_queue_work'
      drivers/built-in.o: In function `wl1271_flush_deferred_work':
      main.c:(.text+0x419910): undefined reference to `ieee80211_rx'
      main.c:(.text+0x419938): undefined reference to `ieee80211_tx_status'
      drivers/built-in.o: In function `wl12xx_op_channel_switch':
      main.c:(.text+0x419afc): undefined reference to `ieee80211_chswitch_done'
      drivers/built-in.o: In function `wl1271_ssid_set':
      drivers/built-in.o: In function `wl1271_event_process':
      event.c:(.text+0x41fec4): undefined reference to `ieee80211_sched_scan_stopped'
      event.c:(.text+0x41ff88): undefined reference to `ieee80211_cqm_rssi_notify'
      event.c:(.text+0x42000d): undefined reference to `ieee80211_stop_rx_ba_session'
      event.c:(.text+0x420048): undefined reference to `ieee80211_stop_rx_ba_session'
      event.c:(.text+0x4200b8): undefined reference to `ieee80211_chswitch_done'
      event.c:(.text+0x4201ae): undefined reference to `ieee80211_find_sta'
      event.c:(.text+0x4201ba): undefined reference to `ieee80211_report_low_ack'
      event.c:(.text+0x42021b): undefined reference to `ieee80211_connection_loss'
      drivers/built-in.o: In function `wl1271_tx_complete_packet':
      tx.c:(.text+0x4206a6): undefined reference to `ieee80211_get_hdrlen_from_skb'
      drivers/built-in.o: In function `wl1271_tx_fill_hdr':
      tx.c:(.text+0x4208ca): undefined reference to `ieee80211_hdrlen'
      drivers/built-in.o: In function `wl1271_handle_tx_low_watermark':
      (.text+0x420e25): undefined reference to `ieee80211_wake_queue'
      drivers/built-in.o: In function `wl12xx_rearm_rx_streaming':
      (.text+0x420ed9): undefined reference to `ieee80211_queue_work'
      drivers/built-in.o: In function `wl1271_tx_work_locked':
      (.text+0x421008): undefined reference to `ieee80211_free_txskb'
      drivers/built-in.o: In function `wl1271_rx_status.clone.2':
      rx.c:(.text+0x421593): undefined reference to `ieee80211_channel_to_frequency'
      drivers/built-in.o: In function `wl1271_ps_filter_frames':
      ps.c:(.text+0x421a41): undefined reference to `ieee80211_tx_status'
      Signed-off-by: default avatarRandy Dunlap <rdunlap@xenotime.net>
      Cc:	Luciano Coelho <coelho@ti.com>
      Cc:	linux-wireless@vger.kernel.org
      Cc:	"John W. Linville" <linville@tuxdriver.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      bd28a58f
    • Dan Carpenter's avatar
      wlcore: fixup an allocation · 0230dfea
      Dan Carpenter authored
      GFP_DMA isn't supposed to be used by itself.  This allocation is allowed
      to sleep so it should be ORing it with GFP_KERNEL.
      Also we should check for allocations errors.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      0230dfea
    • Dan Carpenter's avatar
      wlcore: release lock on error in wl1271_op_suspend() · cd840f6a
      Dan Carpenter authored
      We should release this lock before returning.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      cd840f6a
    • Eyal Shapira's avatar
      wl12xx: support wowlan wakeup patterns · b95d7cef
      Eyal Shapira authored
      Use FW RX data filters to support cfg80211 wowlan wakeup patterns.
      This enables to wake up the host from suspend following detection
      of certain configurable patterns within an incoming packet.
      Up to 5 patterns are supported. Once the host is resumed
      any configured RX data filter is cleared.
      A single pattern can match several bytes sequences with different
      offsets within a packet.
      Signed-off-by: default avatarEyal Shapira <eyal@wizery.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      b95d7cef
    • Eyal Shapira's avatar
      wlcore: add RX filters driver state mgmt functions · dbe0a8cd
      Eyal Shapira authored
      More prep work to support wowlan wakeup patterns.
      Added some wrappers that also keep the current filters state
      updated in the driver.
      Signed-off-by: default avatarEyal Shapira <eyal@wizery.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      dbe0a8cd
    • Eyal Shapira's avatar
      wl12xx: add RX filters ACX commands · c21eebb5
      Eyal Shapira authored
      More prep work for wowlan patterns.
      Added ACXs to set global RX filter behavior and
      enable or disable a specific filter.
      Signed-off-by: default avatarEyal Shapira <eyal@wizery.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      c21eebb5
    • Eyal Shapira's avatar
      wlcore: add RX filters util functions · a6eab0c8
      Eyal Shapira authored
      This is prep work for the support of wowlan patterns
      using the FW data rx filters mechanism.
      Added an rx filter struct and some util functions
      required to manipulate it.
      Signed-off-by: default avatarEyal Shapira <eyal@wizery.com>
      Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
      a6eab0c8