From: Luciano Coelho Date: Fri, 18 Jan 2013 07:40:07 +0000 (+0200) Subject: Merge branch 'wl12xx-next' into for-linville X-Git-Tag: v3.9-rc2~24^2~15^2^2~60^2~50^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5b37649bbcfc14c1ecfb76c5b018dd686924b946;p=platform%2Fkernel%2Flinux-exynos.git Merge branch 'wl12xx-next' into for-linville Conflicts: drivers/net/wireless/ti/wl12xx/main.c drivers/net/wireless/ti/wlcore/wlcore.h --- 5b37649bbcfc14c1ecfb76c5b018dd686924b946 diff --cc drivers/net/wireless/ti/wl12xx/main.c index e5f5f8f,5b023a5..3254bfc --- a/drivers/net/wireless/ti/wl12xx/main.c +++ b/drivers/net/wireless/ti/wl12xx/main.c @@@ -1725,7 -1798,22 +1798,22 @@@ out return ret; } -static int __devexit wl12xx_remove(struct platform_device *pdev) ++static int wl12xx_remove(struct platform_device *pdev) + { + struct wl1271 *wl = platform_get_drvdata(pdev); + struct wl12xx_priv *priv; + + if (!wl) + goto out; + priv = wl->priv; + + kfree(priv->rx_mem_addr); + + out: + return wlcore_remove(pdev); + } + -static const struct platform_device_id wl12xx_id_table[] __devinitconst = { +static const struct platform_device_id wl12xx_id_table[] = { { "wl12xx", 0 }, { } /* Terminating Entry */ }; @@@ -1733,7 -1821,7 +1821,7 @@@ MODULE_DEVICE_TABLE(platform, wl12xx_id static struct platform_driver wl12xx_driver = { .probe = wl12xx_probe, - .remove = wlcore_remove, - .remove = __devexit_p(wl12xx_remove), ++ .remove = wl12xx_remove, .id_table = wl12xx_id_table, .driver = { .name = "wl12xx_driver", diff --cc drivers/net/wireless/ti/wlcore/cmd.c index 27f83f7,14734b7..1201aca --- a/drivers/net/wireless/ti/wlcore/cmd.c +++ b/drivers/net/wireless/ti/wlcore/cmd.c @@@ -1034,11 -1089,11 +1089,11 @@@ int wl12xx_cmd_build_probe_req(struct w struct sk_buff *skb; int ret; u32 rate; - u16 template_id_2_4 = CMD_TEMPL_CFG_PROBE_REQ_2_4; - u16 template_id_5 = CMD_TEMPL_CFG_PROBE_REQ_5; + u16 template_id_2_4 = wl->scan_templ_id_2_4; + u16 template_id_5 = wl->scan_templ_id_5; skb = ieee80211_probereq_get(wl->hw, vif, ssid, ssid_len, - ie, ie_len); + ie_len); if (!skb) { ret = -ENOMEM; goto out; diff --cc drivers/net/wireless/ti/wlcore/wlcore.h index c388493,118208a..ebd8c6f --- a/drivers/net/wireless/ti/wlcore/wlcore.h +++ b/drivers/net/wireless/ti/wlcore/wlcore.h @@@ -408,15 -457,22 +457,22 @@@ struct wl1271 /* the number of allocated MAC addresses in this chip */ int num_mac_addr; - /* the minimum FW version required for the driver to work */ - unsigned int min_fw_ver[NUM_FW_VER]; + /* minimum FW version required for the driver to work in single-role */ + unsigned int min_sr_fw_ver[NUM_FW_VER]; + + /* minimum FW version required for the driver to work in multi-role */ + unsigned int min_mr_fw_ver[NUM_FW_VER]; struct completion nvs_loading_complete; + + /* number of concurrent channels the HW supports */ + u32 num_channels; }; -int __devinit wlcore_probe(struct wl1271 *wl, struct platform_device *pdev); -int __devexit wlcore_remove(struct platform_device *pdev); +int wlcore_probe(struct wl1271 *wl, struct platform_device *pdev); +int wlcore_remove(struct platform_device *pdev); - struct ieee80211_hw *wlcore_alloc_hw(size_t priv_size, u32 aggr_buf_size); + struct ieee80211_hw *wlcore_alloc_hw(size_t priv_size, u32 aggr_buf_size, + u32 mbox_size); int wlcore_free_hw(struct wl1271 *wl); int wlcore_set_key(struct wl1271 *wl, enum set_key_cmd cmd, struct ieee80211_vif *vif,