[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