[PATCH 1/3] Move smsm_change_state to platform driver

Eugene Krasnikov k.eugene.e at gmail.com
Tue Aug 20 09:11:09 EDT 2013


smsm_change_state is a platform specific call.

Signed-off-by: Eugene Krasnikov <k.eugene.e at gmail.com>
---
 dxe.c              | 4 ++--
 wcn36xx.h          | 2 +-
 wcn36xx_msm/main.c | 7 ++++++-
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/dxe.c b/dxe.c
index 8aa4323..13724c6 100644
--- a/dxe.c
+++ b/dxe.c
@@ -141,7 +141,7 @@ int wcn36xx_dxe_alloc_ctl_blks(struct wcn36xx *wcn)
 		goto out_err;
 
 	/* Initialize SMSM state  Clear TX Enable RING EMPTY STATE */
-	ret = smsm_change_state(SMSM_APPS_STATE,
+	ret = wcn->ctrl_ops->smsm_change_state(
 		WCN36XX_SMSM_WLAN_TX_ENABLE,
 		WCN36XX_SMSM_WLAN_TX_RINGS_EMPTY);
 
@@ -657,7 +657,7 @@ int wcn36xx_dxe_tx_frame(struct wcn36xx *wcn,
 	 * notify chip about new frame through SMSM bus.
 	 */
 	if (wcn->pw_state == WCN36XX_BMPS) {
-		smsm_change_state(SMSM_APPS_STATE,
+		wcn->ctrl_ops->smsm_change_state(
 				  0,
 				  WCN36XX_SMSM_WLAN_TX_ENABLE);
 	} else {
diff --git a/wcn36xx.h b/wcn36xx.h
index da72f8a..475c823 100644
--- a/wcn36xx.h
+++ b/wcn36xx.h
@@ -21,7 +21,6 @@
 #include <linux/completion.h>
 #include <linux/printk.h>
 #include <linux/spinlock.h>
-#include <mach/msm_smd.h>
 #include <net/mac80211.h>
 
 #include "hal.h"
@@ -108,6 +107,7 @@ struct wcn36xx_platform_ctrl_ops {
 	void (*close)(void);
 	int (*tx)(char *buf, size_t len);
 	int (*get_hw_mac)(u8 *addr);
+	int (*smsm_change_state)(u32 clear_mask, u32 set_mask);
 };
 
 /**
diff --git a/wcn36xx_msm/main.c b/wcn36xx_msm/main.c
index a15919f..d71cc49 100644
--- a/wcn36xx_msm/main.c
+++ b/wcn36xx_msm/main.c
@@ -37,6 +37,11 @@ struct wcn36xx_msm {
 	smd_channel_t		*smd_ch;
 } wmsm;
 
+static int wcn36xx_msm_smsm_change_state(u32 clear_mask, u32 set_mask)
+{
+	 return smsm_change_state(SMSM_APPS_STATE, clear_mask, set_mask);
+}
+
 static int wcn36xx_msm_get_hw_mac(u8 *addr)
 {
 	const struct firmware *addr_file = NULL;
@@ -222,7 +227,7 @@ static int __init wcn36xx_msm_init(void)
 	wmsm.ctrl_ops.close = wcn36xx_msm_smd_close;
 	wmsm.ctrl_ops.tx = wcn36xx_msm_smd_send_and_wait;
 	wmsm.ctrl_ops.get_hw_mac = wcn36xx_msm_get_hw_mac;
-
+	wmsm.ctrl_ops.smsm_change_state = wcn36xx_msm_smsm_change_state;
 	wcnss_memory =
 		platform_get_resource_byname(wcnss_get_platform_device(),
 					      IORESOURCE_MEM,
-- 
1.8.2.2




More information about the wcn36xx mailing list