110 lines
3.1 KiB
Diff
110 lines
3.1 KiB
Diff
|
Move the wl1251 part of the wl12xx platform data structure into a new
|
||
|
structure specifically for wl1251. Change the platform data built-in
|
||
|
block and board files accordingly.
|
||
|
|
||
|
Cc: Tony Lindgren <tony@atomide.com>
|
||
|
Signed-off-by: Luciano Coelho <coelho@ti.com>
|
||
|
Acked-by: Tony Lindgren <tony@atomide.com>
|
||
|
Reviewed-by: Felipe Balbi <balbi@ti.com>
|
||
|
|
||
|
--- a/drivers/net/wireless/ti/wilink_platform_data.c
|
||
|
+++ b/drivers/net/wireless/ti/wilink_platform_data.c
|
||
|
@@ -23,17 +23,17 @@
|
||
|
#include <linux/err.h>
|
||
|
#include <linux/wl12xx.h>
|
||
|
|
||
|
-static struct wl12xx_platform_data *platform_data;
|
||
|
+static struct wl12xx_platform_data *wl12xx_platform_data;
|
||
|
|
||
|
int __init wl12xx_set_platform_data(const struct wl12xx_platform_data *data)
|
||
|
{
|
||
|
- if (platform_data)
|
||
|
+ if (wl12xx_platform_data)
|
||
|
return -EBUSY;
|
||
|
if (!data)
|
||
|
return -EINVAL;
|
||
|
|
||
|
- platform_data = kmemdup(data, sizeof(*data), GFP_KERNEL);
|
||
|
- if (!platform_data)
|
||
|
+ wl12xx_platform_data = kmemdup(data, sizeof(*data), GFP_KERNEL);
|
||
|
+ if (!wl12xx_platform_data)
|
||
|
return -ENOMEM;
|
||
|
|
||
|
return 0;
|
||
|
@@ -41,9 +41,34 @@ int __init wl12xx_set_platform_data(cons
|
||
|
|
||
|
struct wl12xx_platform_data *wl12xx_get_platform_data(void)
|
||
|
{
|
||
|
- if (!platform_data)
|
||
|
+ if (!wl12xx_platform_data)
|
||
|
return ERR_PTR(-ENODEV);
|
||
|
|
||
|
- return platform_data;
|
||
|
+ return wl12xx_platform_data;
|
||
|
}
|
||
|
EXPORT_SYMBOL(wl12xx_get_platform_data);
|
||
|
+
|
||
|
+static struct wl1251_platform_data *wl1251_platform_data;
|
||
|
+
|
||
|
+int __init wl1251_set_platform_data(const struct wl1251_platform_data *data)
|
||
|
+{
|
||
|
+ if (wl1251_platform_data)
|
||
|
+ return -EBUSY;
|
||
|
+ if (!data)
|
||
|
+ return -EINVAL;
|
||
|
+
|
||
|
+ wl1251_platform_data = kmemdup(data, sizeof(*data), GFP_KERNEL);
|
||
|
+ if (!wl1251_platform_data)
|
||
|
+ return -ENOMEM;
|
||
|
+
|
||
|
+ return 0;
|
||
|
+}
|
||
|
+
|
||
|
+struct wl1251_platform_data *wl1251_get_platform_data(void)
|
||
|
+{
|
||
|
+ if (!wl1251_platform_data)
|
||
|
+ return ERR_PTR(-ENODEV);
|
||
|
+
|
||
|
+ return wl1251_platform_data;
|
||
|
+}
|
||
|
+EXPORT_SYMBOL(wl1251_get_platform_data);
|
||
|
--- a/drivers/net/wireless/ti/wl1251/sdio.c
|
||
|
+++ b/drivers/net/wireless/ti/wl1251/sdio.c
|
||
|
@@ -227,7 +227,7 @@ static int wl1251_sdio_probe(struct sdio
|
||
|
struct wl1251 *wl;
|
||
|
struct ieee80211_hw *hw;
|
||
|
struct wl1251_sdio *wl_sdio;
|
||
|
- const struct wl12xx_platform_data *wl12xx_board_data;
|
||
|
+ const struct wl1251_platform_data *wl1251_board_data;
|
||
|
|
||
|
hw = wl1251_alloc_hw();
|
||
|
if (IS_ERR(hw))
|
||
|
@@ -254,11 +254,11 @@ static int wl1251_sdio_probe(struct sdio
|
||
|
wl->if_priv = wl_sdio;
|
||
|
wl->if_ops = &wl1251_sdio_ops;
|
||
|
|
||
|
- wl12xx_board_data = wl12xx_get_platform_data();
|
||
|
- if (!IS_ERR(wl12xx_board_data)) {
|
||
|
- wl->set_power = wl12xx_board_data->set_power;
|
||
|
- wl->irq = wl12xx_board_data->irq;
|
||
|
- wl->use_eeprom = wl12xx_board_data->use_eeprom;
|
||
|
+ wl1251_board_data = wl1251_get_platform_data();
|
||
|
+ if (!IS_ERR(wl1251_board_data)) {
|
||
|
+ wl->set_power = wl1251_board_data->set_power;
|
||
|
+ wl->irq = wl1251_board_data->irq;
|
||
|
+ wl->use_eeprom = wl1251_board_data->use_eeprom;
|
||
|
}
|
||
|
|
||
|
if (wl->irq) {
|
||
|
--- a/drivers/net/wireless/ti/wl1251/spi.c
|
||
|
+++ b/drivers/net/wireless/ti/wl1251/spi.c
|
||
|
@@ -241,7 +241,7 @@ static const struct wl1251_if_operations
|
||
|
|
||
|
static int wl1251_spi_probe(struct spi_device *spi)
|
||
|
{
|
||
|
- struct wl12xx_platform_data *pdata;
|
||
|
+ struct wl1251_platform_data *pdata;
|
||
|
struct ieee80211_hw *hw;
|
||
|
struct wl1251 *wl;
|
||
|
int ret;
|