Merge branch 'for-linville' of git://git.kernel.org/pub/scm/linux/kernel/git/luca...
authorJohn W. Linville <linville@tuxdriver.com>
Fri, 8 Feb 2013 19:41:45 +0000 (14:41 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 8 Feb 2013 19:41:45 +0000 (14:41 -0500)
18 files changed:
arch/arm/mach-omap2/board-omap3evm.c
drivers/net/wireless/ti/Kconfig
drivers/net/wireless/ti/Makefile
drivers/net/wireless/ti/wilink_platform_data.c [new file with mode: 0644]
drivers/net/wireless/ti/wl12xx/main.c
drivers/net/wireless/ti/wl18xx/conf.h
drivers/net/wireless/ti/wl18xx/main.c
drivers/net/wireless/ti/wlcore/Kconfig
drivers/net/wireless/ti/wlcore/Makefile
drivers/net/wireless/ti/wlcore/boot.c
drivers/net/wireless/ti/wlcore/cmd.c
drivers/net/wireless/ti/wlcore/main.c
drivers/net/wireless/ti/wlcore/sdio.c
drivers/net/wireless/ti/wlcore/spi.c
drivers/net/wireless/ti/wlcore/wl12xx_platform_data.c [deleted file]
drivers/net/wireless/ti/wlcore/wlcore.h
drivers/net/wireless/ti/wlcore/wlcore_i.h
include/linux/wl12xx.h

index 3985f35aee06a6cffbc05d2930b56c456231ee97..a4ca63ba7faa9cd0ce22e6b316c9400260b58613 100644 (file)
@@ -309,7 +309,7 @@ static struct omap2_hsmmc_info mmc[] = {
                .gpio_wp        = 63,
                .deferred       = true,
        },
-#ifdef CONFIG_WL12XX_PLATFORM_DATA
+#ifdef CONFIG_WILINK_PLATFORM_DATA
        {
                .name           = "wl1271",
                .mmc            = 2,
@@ -450,7 +450,7 @@ static struct regulator_init_data omap3evm_vio = {
        .consumer_supplies      = omap3evm_vio_supply,
 };
 
-#ifdef CONFIG_WL12XX_PLATFORM_DATA
+#ifdef CONFIG_WILINK_PLATFORM_DATA
 
 #define OMAP3EVM_WLAN_PMENA_GPIO       (150)
 #define OMAP3EVM_WLAN_IRQ_GPIO         (149)
@@ -563,7 +563,7 @@ static struct omap_board_mux omap35x_board_mux[] __initdata = {
                                OMAP_PIN_OFF_NONE),
        OMAP3_MUX(GPMC_WAIT2, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP |
                                OMAP_PIN_OFF_NONE),
-#ifdef CONFIG_WL12XX_PLATFORM_DATA
+#ifdef CONFIG_WILINK_PLATFORM_DATA
        /* WLAN IRQ - GPIO 149 */
        OMAP3_MUX(UART1_RTS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT),
 
@@ -601,7 +601,7 @@ static struct omap_board_mux omap36x_board_mux[] __initdata = {
        OMAP3_MUX(SYS_BOOT4, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE),
        OMAP3_MUX(SYS_BOOT5, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE),
        OMAP3_MUX(SYS_BOOT6, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE),
-#ifdef CONFIG_WL12XX_PLATFORM_DATA
+#ifdef CONFIG_WILINK_PLATFORM_DATA
        /* WLAN IRQ - GPIO 149 */
        OMAP3_MUX(UART1_RTS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT),
 
@@ -637,7 +637,7 @@ static struct gpio omap3_evm_ehci_gpios[] __initdata = {
 
 static void __init omap3_evm_wl12xx_init(void)
 {
-#ifdef CONFIG_WL12XX_PLATFORM_DATA
+#ifdef CONFIG_WILINK_PLATFORM_DATA
        int ret;
 
        /* WL12xx WLAN Init */
index be800119d0a355d5404122341def2dba8b21c647..cbe1e7fef61b226aa7af9614808bf747ec8d1ebe 100644 (file)
@@ -12,4 +12,13 @@ source "drivers/net/wireless/ti/wl18xx/Kconfig"
 
 # keep last for automatic dependencies
 source "drivers/net/wireless/ti/wlcore/Kconfig"
+
+config WILINK_PLATFORM_DATA
+       bool "TI WiLink platform data"
+       depends on WLCORE_SDIO || WL1251_SDIO
+       default y
+       ---help---
+       Small platform data bit needed to pass data to the sdio modules.
+
+
 endif # WL_TI
index 4d6823983c04e38e71a467deb15a098214e52daa..af14231aeedeffc6e7d8c87dcfbe8c84cfee7de2 100644 (file)
@@ -1,5 +1,7 @@
 obj-$(CONFIG_WLCORE)                   += wlcore/
 obj-$(CONFIG_WL12XX)                   += wl12xx/
-obj-$(CONFIG_WL12XX_PLATFORM_DATA)     += wlcore/
 obj-$(CONFIG_WL1251)                   += wl1251/
 obj-$(CONFIG_WL18XX)                   += wl18xx/
+
+# small builtin driver bit
+obj-$(CONFIG_WILINK_PLATFORM_DATA)     += wilink_platform_data.o
diff --git a/drivers/net/wireless/ti/wilink_platform_data.c b/drivers/net/wireless/ti/wilink_platform_data.c
new file mode 100644 (file)
index 0000000..998e958
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * This file is part of wl12xx
+ *
+ * Copyright (C) 2010-2011 Texas Instruments, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/err.h>
+#include <linux/wl12xx.h>
+
+static struct wl12xx_platform_data *platform_data;
+
+int __init wl12xx_set_platform_data(const struct wl12xx_platform_data *data)
+{
+       if (platform_data)
+               return -EBUSY;
+       if (!data)
+               return -EINVAL;
+
+       platform_data = kmemdup(data, sizeof(*data), GFP_KERNEL);
+       if (!platform_data)
+               return -ENOMEM;
+
+       return 0;
+}
+
+struct wl12xx_platform_data *wl12xx_get_platform_data(void)
+{
+       if (!platform_data)
+               return ERR_PTR(-ENODEV);
+
+       return platform_data;
+}
+EXPORT_SYMBOL(wl12xx_get_platform_data);
index 3254bfc81a2a7953f214d2dfd523fdd8ae6ebe8a..09694e39bb147dff54622c16983595029a79e4a0 100644 (file)
@@ -1703,7 +1703,8 @@ static struct ieee80211_sta_ht_cap wl12xx_ht_cap = {
 static int wl12xx_setup(struct wl1271 *wl)
 {
        struct wl12xx_priv *priv = wl->priv;
-       struct wl12xx_platform_data *pdata = wl->pdev->dev.platform_data;
+       struct wlcore_platdev_data *pdev_data = wl->pdev->dev.platform_data;
+       struct wl12xx_platform_data *pdata = pdev_data->pdata;
 
        wl->rtable = wl12xx_rtable;
        wl->num_tx_desc = WL12XX_NUM_TX_DESCRIPTORS;
index b5f114857191591fabc9bbd06cab4b2f46f8be8c..e34302e3b51d90077006870f29e70a83360b5167 100644 (file)
@@ -23,7 +23,7 @@
 #define __WL18XX_CONF_H__
 
 #define WL18XX_CONF_MAGIC      0x10e100ca
-#define WL18XX_CONF_VERSION    (WLCORE_CONF_VERSION | 0x0005)
+#define WL18XX_CONF_VERSION    (WLCORE_CONF_VERSION | 0x0006)
 #define WL18XX_CONF_MASK       0x0000ffff
 #define WL18XX_CONF_SIZE       (WLCORE_CONF_SIZE + \
                                 sizeof(struct wl18xx_priv_conf))
@@ -70,8 +70,9 @@ struct wl18xx_mac_and_phy_params {
        u8 pwr_limit_reference_11_abg;
        u8 per_chan_pwr_limit_arr_11p[NUM_OF_CHANNELS_11_P];
        u8 pwr_limit_reference_11p;
-       u8 spare1[9];
-       u8 spare2[9];
+       u8 spare1;
+       u8 per_chan_bo_mode_11_abg[13];
+       u8 per_chan_bo_mode_11_p[4];
        u8 primary_clock_setting_time;
        u8 clock_valid_on_wake_up;
        u8 secondary_clock_setting_time;
index 0be1cfc17a86f3878d30da87159237eacdaba33b..a10b7a7a215af576aaf4353b4161a7ffab1acb01 100644 (file)
@@ -547,6 +547,11 @@ static struct wl18xx_priv_conf wl18xx_default_priv_conf = {
                        0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
                        0xff, 0xff, 0xff, 0xff, 0xff, 0xff },
                .pwr_limit_reference_11p        = 0x64,
+               .per_chan_bo_mode_11_abg        = { 0x00, 0x00, 0x00, 0x00,
+                                                   0x00, 0x00, 0x00, 0x00,
+                                                   0x00, 0x00, 0x00, 0x00,
+                                                   0x00 },
+               .per_chan_bo_mode_11_p          = { 0x00, 0x00, 0x00, 0x00 },
                .per_chan_pwr_limit_arr_11p     = { 0xff, 0xff, 0xff, 0xff,
                                                    0xff, 0xff, 0xff },
                .psat                           = 0,
index d7b907e67170348e70302e6a1cfe70642a8c6f7e..2b832825c3d41130e3ed1c4802dc5c1244275634 100644 (file)
@@ -33,8 +33,3 @@ config WLCORE_SDIO
 
          If you choose to build a module, it'll be called wlcore_sdio.
          Say N if unsure.
-
-config WL12XX_PLATFORM_DATA
-       bool
-       depends on WLCORE_SDIO != n || WL1251_SDIO != n
-       default y
index d9fba9e32130ad378a5b5d37b9cf99efdfac4cb2..b21398f6c3ecd14bdf0558f7fc49becaf482eeca 100644 (file)
@@ -9,7 +9,4 @@ obj-$(CONFIG_WLCORE)                    += wlcore.o
 obj-$(CONFIG_WLCORE_SPI)               += wlcore_spi.o
 obj-$(CONFIG_WLCORE_SDIO)              += wlcore_sdio.o
 
-# small builtin driver bit
-obj-$(CONFIG_WL12XX_PLATFORM_DATA)     += wl12xx_platform_data.o
-
 ccflags-y += -D__CHECK_ENDIAN__
index b58ae5fc14879f2c073305b8f36ccc180400ba94..77752b03f1892184f0275172f41ef15721c4cd1c 100644 (file)
@@ -84,8 +84,8 @@ out:
 static int wlcore_validate_fw_ver(struct wl1271 *wl)
 {
        unsigned int *fw_ver = wl->chip.fw_ver;
-       unsigned int *min_ver = (wl->fw_type == WL12XX_FW_TYPE_NORMAL) ?
-               wl->min_sr_fw_ver : wl->min_mr_fw_ver;
+       unsigned int *min_ver = (wl->fw_type == WL12XX_FW_TYPE_MULTI) ?
+               wl->min_mr_fw_ver : wl->min_sr_fw_ver;
        char min_fw_str[32] = "";
        int i;
 
index 1201aca9c89a4cfde99474c38435521a28663d4e..6331f9e1cb3975c9d8f87de0fe1f02d94a607784 100644 (file)
@@ -510,10 +510,12 @@ int wl12xx_cmd_role_start_sta(struct wl1271 *wl, struct wl12xx_vif *wlvif)
        cmd->sta.hlid = wlvif->sta.hlid;
        cmd->sta.session = wl->session_ids[wlvif->sta.hlid];
        /*
-        * We don't have the correct remote rates in this stage. the rates
-        * will be reconfigured later, after authorization.
+        * We don't have the correct remote rates in this stage.  The
+        * rates will be reconfigured later, after association, if the
+        * firmware supports ACX_PEER_CAP.  Otherwise, there's nothing
+        * we can do, so use all supported_rates here.
         */
-       cmd->sta.remote_rates = cpu_to_le32(wlvif->rate_set);
+       cmd->sta.remote_rates = cpu_to_le32(supported_rates);
 
        wl1271_debug(DEBUG_CMD, "role start: roleid=%d, hlid=%d, session=%d "
                     "basic_rate_set: 0x%x, remote_rates: 0x%x",
index e1dfdf94d0f7218a533d3762a08fb676f328ca5d..28a37576d568b7f273de571f7f3174d9badbd9fb 100644 (file)
@@ -2162,7 +2162,7 @@ static int wl12xx_init_vif_data(struct wl1271 *wl, struct ieee80211_vif *vif)
        return 0;
 }
 
-static bool wl12xx_init_fw(struct wl1271 *wl)
+static int wl12xx_init_fw(struct wl1271 *wl)
 {
        int retries = WL1271_BOOT_RETRIES;
        bool booted = false;
@@ -2228,7 +2228,7 @@ power_off:
 
        wl->state = WLCORE_STATE_ON;
 out:
-       return booted;
+       return ret;
 }
 
 static bool wl12xx_dev_role_started(struct wl12xx_vif *wlvif)
@@ -2371,7 +2371,6 @@ static int wl1271_op_add_interface(struct ieee80211_hw *hw,
        struct vif_counter_data vif_count;
        int ret = 0;
        u8 role_type;
-       bool booted = false;
 
        vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER |
                             IEEE80211_VIF_SUPPORTS_CQM_RSSI;
@@ -2432,11 +2431,9 @@ static int wl1271_op_add_interface(struct ieee80211_hw *hw,
                 */
                memcpy(wl->addresses[0].addr, vif->addr, ETH_ALEN);
 
-               booted = wl12xx_init_fw(wl);
-               if (!booted) {
-                       ret = -EINVAL;
+               ret = wl12xx_init_fw(wl);
+               if (ret < 0)
                        goto out;
-               }
        }
 
        ret = wl12xx_cmd_role_enable(wl, vif->addr,
@@ -5966,7 +5963,8 @@ static void wlcore_nvs_cb(const struct firmware *fw, void *context)
 {
        struct wl1271 *wl = context;
        struct platform_device *pdev = wl->pdev;
-       struct wl12xx_platform_data *pdata = pdev->dev.platform_data;
+       struct wlcore_platdev_data *pdev_data = pdev->dev.platform_data;
+       struct wl12xx_platform_data *pdata = pdev_data->pdata;
        unsigned long irqflags;
        int ret;
 
@@ -5995,8 +5993,7 @@ static void wlcore_nvs_cb(const struct firmware *fw, void *context)
 
        wl->irq = platform_get_irq(pdev, 0);
        wl->platform_quirks = pdata->platform_quirks;
-       wl->set_power = pdata->set_power;
-       wl->if_ops = pdata->ops;
+       wl->if_ops = pdev_data->if_ops;
 
        if (wl->platform_quirks & WL12XX_PLATFORM_QUIRK_EDGE_IRQ)
                irqflags = IRQF_TRIGGER_RISING;
index d4f184e2efedf576168a09012650747977a812c5..198028df6f4b98bb4514f667daec3ba3fe520065 100644 (file)
@@ -217,7 +217,7 @@ static struct wl1271_if_operations sdio_ops = {
 static int wl1271_probe(struct sdio_func *func,
                                  const struct sdio_device_id *id)
 {
-       struct wl12xx_platform_data *wlan_data;
+       struct wlcore_platdev_data *pdev_data;
        struct wl12xx_sdio_glue *glue;
        struct resource res[1];
        mmc_pm_flag_t mmcflags;
@@ -228,10 +228,18 @@ static int wl1271_probe(struct sdio_func *func,
        if (func->num != 0x02)
                return -ENODEV;
 
+       pdev_data = kzalloc(sizeof(*pdev_data), GFP_KERNEL);
+       if (!pdev_data) {
+               dev_err(&func->dev, "can't allocate platdev_data\n");
+               goto out;
+       }
+
+       pdev_data->if_ops = &sdio_ops;
+
        glue = kzalloc(sizeof(*glue), GFP_KERNEL);
        if (!glue) {
                dev_err(&func->dev, "can't allocate glue\n");
-               goto out;
+               goto out_free_pdev_data;
        }
 
        glue->dev = &func->dev;
@@ -242,9 +250,9 @@ static int wl1271_probe(struct sdio_func *func,
        /* Use block mode for transferring over one block size of data */
        func->card->quirks |= MMC_QUIRK_BLKSZ_FOR_BYTE_MODE;
 
-       wlan_data = wl12xx_get_platform_data();
-       if (IS_ERR(wlan_data)) {
-               ret = PTR_ERR(wlan_data);
+       pdev_data->pdata = wl12xx_get_platform_data();
+       if (IS_ERR(pdev_data->pdata)) {
+               ret = PTR_ERR(pdev_data->pdata);
                dev_err(glue->dev, "missing wlan platform data: %d\n", ret);
                goto out_free_glue;
        }
@@ -254,9 +262,7 @@ static int wl1271_probe(struct sdio_func *func,
        dev_dbg(glue->dev, "sdio PM caps = 0x%x\n", mmcflags);
 
        if (mmcflags & MMC_PM_KEEP_POWER)
-               wlan_data->pwr_in_suspend = true;
-
-       wlan_data->ops = &sdio_ops;
+               pdev_data->pdata->pwr_in_suspend = true;
 
        sdio_set_drvdata(func, glue);
 
@@ -274,7 +280,7 @@ static int wl1271_probe(struct sdio_func *func,
        else
                chip_family = "wl12xx";
 
-       glue->core = platform_device_alloc(chip_family, -1);
+       glue->core = platform_device_alloc(chip_family, PLATFORM_DEVID_AUTO);
        if (!glue->core) {
                dev_err(glue->dev, "can't allocate platform_device");
                ret = -ENOMEM;
@@ -285,7 +291,7 @@ static int wl1271_probe(struct sdio_func *func,
 
        memset(res, 0x00, sizeof(res));
 
-       res[0].start = wlan_data->irq;
+       res[0].start = pdev_data->pdata->irq;
        res[0].flags = IORESOURCE_IRQ;
        res[0].name = "irq";
 
@@ -295,8 +301,8 @@ static int wl1271_probe(struct sdio_func *func,
                goto out_dev_put;
        }
 
-       ret = platform_device_add_data(glue->core, wlan_data,
-                                      sizeof(*wlan_data));
+       ret = platform_device_add_data(glue->core, pdev_data,
+                                      sizeof(*pdev_data));
        if (ret) {
                dev_err(glue->dev, "can't add platform data\n");
                goto out_dev_put;
@@ -315,6 +321,9 @@ out_dev_put:
 out_free_glue:
        kfree(glue);
 
+out_free_pdev_data:
+       kfree(pdev_data);
+
 out:
        return ret;
 }
index 2d700b7ae14cab8e8cecbc729463ec8efb997d47..5ad2e100e59b1b650be4b1502da43e5b5995575d 100644 (file)
@@ -327,22 +327,29 @@ static struct wl1271_if_operations spi_ops = {
 static int wl1271_probe(struct spi_device *spi)
 {
        struct wl12xx_spi_glue *glue;
-       struct wl12xx_platform_data *pdata;
+       struct wlcore_platdev_data *pdev_data;
        struct resource res[1];
        int ret = -ENOMEM;
 
-       pdata = spi->dev.platform_data;
-       if (!pdata) {
+       pdev_data = kzalloc(sizeof(*pdev_data), GFP_KERNEL);
+       if (!pdev_data) {
+               dev_err(&spi->dev, "can't allocate platdev_data\n");
+               goto out;
+       }
+
+       pdev_data->pdata = spi->dev.platform_data;
+       if (!pdev_data->pdata) {
                dev_err(&spi->dev, "no platform data\n");
-               return -ENODEV;
+               ret = -ENODEV;
+               goto out_free_pdev_data;
        }
 
-       pdata->ops = &spi_ops;
+       pdev_data->if_ops = &spi_ops;
 
        glue = kzalloc(sizeof(*glue), GFP_KERNEL);
        if (!glue) {
                dev_err(&spi->dev, "can't allocate glue\n");
-               goto out;
+               goto out_free_pdev_data;
        }
 
        glue->dev = &spi->dev;
@@ -359,7 +366,7 @@ static int wl1271_probe(struct spi_device *spi)
                goto out_free_glue;
        }
 
-       glue->core = platform_device_alloc("wl12xx", -1);
+       glue->core = platform_device_alloc("wl12xx", PLATFORM_DEVID_AUTO);
        if (!glue->core) {
                dev_err(glue->dev, "can't allocate platform_device\n");
                ret = -ENOMEM;
@@ -380,7 +387,8 @@ static int wl1271_probe(struct spi_device *spi)
                goto out_dev_put;
        }
 
-       ret = platform_device_add_data(glue->core, pdata, sizeof(*pdata));
+       ret = platform_device_add_data(glue->core, pdev_data,
+                                      sizeof(*pdev_data));
        if (ret) {
                dev_err(glue->dev, "can't add platform data\n");
                goto out_dev_put;
@@ -399,6 +407,10 @@ out_dev_put:
 
 out_free_glue:
        kfree(glue);
+
+out_free_pdev_data:
+       kfree(pdev_data);
+
 out:
        return ret;
 }
diff --git a/drivers/net/wireless/ti/wlcore/wl12xx_platform_data.c b/drivers/net/wireless/ti/wlcore/wl12xx_platform_data.c
deleted file mode 100644 (file)
index 998e958..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * This file is part of wl12xx
- *
- * Copyright (C) 2010-2011 Texas Instruments, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- *
- */
-
-#include <linux/module.h>
-#include <linux/err.h>
-#include <linux/wl12xx.h>
-
-static struct wl12xx_platform_data *platform_data;
-
-int __init wl12xx_set_platform_data(const struct wl12xx_platform_data *data)
-{
-       if (platform_data)
-               return -EBUSY;
-       if (!data)
-               return -EINVAL;
-
-       platform_data = kmemdup(data, sizeof(*data), GFP_KERNEL);
-       if (!platform_data)
-               return -ENOMEM;
-
-       return 0;
-}
-
-struct wl12xx_platform_data *wl12xx_get_platform_data(void)
-{
-       if (!platform_data)
-               return ERR_PTR(-ENODEV);
-
-       return platform_data;
-}
-EXPORT_SYMBOL(wl12xx_get_platform_data);
index ebd8c6fad7cdda4b474bd0e49abb62dc05cf9666..af9fecaefc30801cd96a35942ca2a4a48b900f49 100644 (file)
@@ -183,7 +183,6 @@ struct wl1271 {
 
        struct wl1271_if_operations *if_ops;
 
-       void (*set_power)(bool enable);
        int irq;
 
        spinlock_t wl_lock;
index 20316ac328a28b3af0c231dd882b97decf725709..c845b0ef7f4b4fda208fbd91ba2fe4ba5383939d 100644 (file)
@@ -206,6 +206,11 @@ struct wl1271_if_operations {
        void (*set_block_size) (struct device *child, unsigned int blksz);
 };
 
+struct wlcore_platdev_data {
+       struct wl12xx_platform_data *pdata;
+       struct wl1271_if_operations *if_ops;
+};
+
 #define MAX_NUM_KEYS 14
 #define MAX_KEY_SIZE 32
 
index 0d6373195d32c115a1d0f86b2a8ebe43e9ba7f46..a54fe82e704bc09c5acd6a5f1664a6dfbc982b64 100644 (file)
@@ -24,6 +24,8 @@
 #ifndef _LINUX_WL12XX_H
 #define _LINUX_WL12XX_H
 
+#include <linux/err.h>
+
 /* Reference clock values */
 enum {
        WL12XX_REFCLOCK_19      = 0, /* 19.2 MHz */
@@ -55,17 +57,17 @@ struct wl12xx_platform_data {
        int board_tcxo_clock;
        unsigned long platform_quirks;
        bool pwr_in_suspend;
-
-       struct wl1271_if_operations *ops;
 };
 
 /* Platform does not support level trigger interrupts */
 #define WL12XX_PLATFORM_QUIRK_EDGE_IRQ BIT(0)
 
-#ifdef CONFIG_WL12XX_PLATFORM_DATA
+#ifdef CONFIG_WILINK_PLATFORM_DATA
 
 int wl12xx_set_platform_data(const struct wl12xx_platform_data *data);
 
+struct wl12xx_platform_data *wl12xx_get_platform_data(void);
+
 #else
 
 static inline
@@ -74,8 +76,12 @@ int wl12xx_set_platform_data(const struct wl12xx_platform_data *data)
        return -ENOSYS;
 }
 
-#endif
+static inline
+struct wl12xx_platform_data *wl12xx_get_platform_data(void)
+{
+       return ERR_PTR(-ENODATA);
+}
 
-struct wl12xx_platform_data *wl12xx_get_platform_data(void);
+#endif
 
 #endif