]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
net: wireless: bcmdhd: add EDP support (revised framework)
authorTimo Alho <talho@nvidia.com>
Fri, 18 Oct 2013 10:03:09 +0000 (13:03 +0300)
committerJuha Tukkinen <jtukkinen@nvidia.com>
Mon, 28 Oct 2013 14:48:05 +0000 (07:48 -0700)
Change-Id: I8de3d878dcb3c1a2e694715cba46d5e937c24223
Signed-off-by: Timo Alho <talho@nvidia.com>
Reviewed-on: http://git-master/r/301695
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>
drivers/net/wireless/bcmdhd/wl_android.c
include/linux/wlan_plat.h

index 3b17b75ee2abe6a05088e57eafb76a07f57c184a..b16cf39a75431d6a14b498e2ee18fff94b3a5526 100644 (file)
@@ -1300,9 +1300,13 @@ int wifi_set_power(int on, unsigned long msec)
                }
                mutex_unlock(&edp_reg_mutex);
 #endif
+
+               if (on)
+                       sysedp_set_state(wifi_control_data->sysedpc, 1);
                if (wifi_control_data->set_power)
                        wifi_control_data->set_power(on);
-
+               if (!on)
+                       sysedp_set_state(wifi_control_data->sysedpc, 0);
                if (msec)
                        msleep(msec);
                return 0;
@@ -1395,6 +1399,8 @@ static int wifi_probe(struct platform_device *pdev)
        mutex_init(&edp_reg_mutex);
        wifi_register_edp_client(&(wifi_ctrl->client_info));
 #endif
+       wifi_control_data->sysedpc = sysedp_create_consumer("wifi", "wifi");
+
        wifi_set_power(1, 0);   /* Power On */
        wifi_set_carddetect(1); /* CardDetect (0->1) */
 
@@ -1443,6 +1449,9 @@ static int wifi_remove(struct platform_device *pdev)
 #if defined(WIFIEDP)
        wifi_unregister_edp_client(&(wifi_ctrl->client_info));
 #endif
+       sysedp_free_consumer(wifi_ctrl->sysedpc);
+       wifi_ctrl->sysedpc = 0;
+
        up(&wifi_control_sem);
        return 0;
 }
index bc9c035d7e13fc402166291d7f1193d49f7eae2c..632e37a1a3124b37d081a176adb9bd3852dda92a 100644 (file)
@@ -17,6 +17,7 @@
 #define _LINUX_WLAN_PLAT_H_
 
 #include <linux/edp.h>
+#include <linux/sysedp.h>
 
 #if defined(CONFIG_BCMDHD_EDP_SUPPORT)
 typedef enum e_edp_state {
@@ -35,6 +36,7 @@ struct wifi_platform_data {
 #if defined(CONFIG_BCMDHD_EDP_SUPPORT)
        struct edp_client client_info;
 #endif
+       struct sysedp_consumer *sysedpc;
 };
 
 #endif