wl1271: Cleaned up wlan power on/off functions
Added method for wlan power control to io_ops struct and moved wl1271_power_on and wl1271_power_off functions to wl1271_io.h. Signed-off-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com> Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
b43316dbf9
Коммит
becd551cac
|
@ -344,6 +344,7 @@ struct wl1271_if_operations {
|
|||
bool fixed);
|
||||
void (*reset)(struct wl1271 *wl);
|
||||
void (*init)(struct wl1271 *wl);
|
||||
void (*power)(struct wl1271 *wl, bool enable);
|
||||
struct device* (*dev)(struct wl1271 *wl);
|
||||
void (*enable_irq)(struct wl1271 *wl);
|
||||
void (*disable_irq)(struct wl1271 *wl);
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "wl1271.h"
|
||||
#include "wl1271_acx.h"
|
||||
#include "wl1271_ps.h"
|
||||
#include "wl1271_io.h"
|
||||
|
||||
/* ms */
|
||||
#define WL1271_DEBUGFS_STATS_LIFETIME 1000
|
||||
|
@ -276,13 +277,10 @@ static ssize_t gpio_power_write(struct file *file,
|
|||
goto out;
|
||||
}
|
||||
|
||||
if (value) {
|
||||
wl->set_power(true);
|
||||
set_bit(WL1271_FLAG_GPIO_POWER, &wl->flags);
|
||||
} else {
|
||||
wl->set_power(false);
|
||||
clear_bit(WL1271_FLAG_GPIO_POWER, &wl->flags);
|
||||
}
|
||||
if (value)
|
||||
wl1271_power_on(wl);
|
||||
else
|
||||
wl1271_power_off(wl);
|
||||
|
||||
out:
|
||||
mutex_unlock(&wl->mutex);
|
||||
|
|
|
@ -138,6 +138,18 @@ static inline void wl1271_write32(struct wl1271 *wl, int addr, u32 val)
|
|||
wl1271_raw_write32(wl, wl1271_translate_addr(wl, addr), val);
|
||||
}
|
||||
|
||||
static inline void wl1271_power_off(struct wl1271 *wl)
|
||||
{
|
||||
wl->if_ops->power(wl, false);
|
||||
clear_bit(WL1271_FLAG_GPIO_POWER, &wl->flags);
|
||||
}
|
||||
|
||||
static inline void wl1271_power_on(struct wl1271 *wl)
|
||||
{
|
||||
wl->if_ops->power(wl, true);
|
||||
set_bit(WL1271_FLAG_GPIO_POWER, &wl->flags);
|
||||
}
|
||||
|
||||
|
||||
/* Top Register IO */
|
||||
void wl1271_top_reg_write(struct wl1271 *wl, int addr, u16 val);
|
||||
|
|
|
@ -359,18 +359,6 @@ static int wl1271_plt_init(struct wl1271 *wl)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void wl1271_power_off(struct wl1271 *wl)
|
||||
{
|
||||
wl->set_power(false);
|
||||
clear_bit(WL1271_FLAG_GPIO_POWER, &wl->flags);
|
||||
}
|
||||
|
||||
static void wl1271_power_on(struct wl1271 *wl)
|
||||
{
|
||||
wl->set_power(true);
|
||||
set_bit(WL1271_FLAG_GPIO_POWER, &wl->flags);
|
||||
}
|
||||
|
||||
static void wl1271_fw_status(struct wl1271 *wl,
|
||||
struct wl1271_fw_status *status)
|
||||
{
|
||||
|
|
|
@ -156,20 +156,21 @@ static void wl1271_sdio_raw_write(struct wl1271 *wl, int addr, void *buf,
|
|||
sdio_release_host(func);
|
||||
}
|
||||
|
||||
static void wl1271_sdio_set_power(struct wl1271 *wl, bool enable)
|
||||
{
|
||||
}
|
||||
|
||||
static struct wl1271_if_operations sdio_ops = {
|
||||
.read = wl1271_sdio_raw_read,
|
||||
.write = wl1271_sdio_raw_write,
|
||||
.reset = wl1271_sdio_reset,
|
||||
.init = wl1271_sdio_init,
|
||||
.power = wl1271_sdio_set_power,
|
||||
.dev = wl1271_sdio_wl_to_dev,
|
||||
.enable_irq = wl1271_sdio_enable_interrupts,
|
||||
.disable_irq = wl1271_sdio_disable_interrupts
|
||||
};
|
||||
|
||||
static void wl1271_sdio_set_power(bool enable)
|
||||
{
|
||||
}
|
||||
|
||||
static int __devinit wl1271_probe(struct sdio_func *func,
|
||||
const struct sdio_device_id *id)
|
||||
{
|
||||
|
@ -190,8 +191,6 @@ static int __devinit wl1271_probe(struct sdio_func *func,
|
|||
wl->if_priv = func;
|
||||
wl->if_ops = &sdio_ops;
|
||||
|
||||
wl->set_power = wl1271_sdio_set_power;
|
||||
|
||||
/* Grab access to FN0 for ELP reg. */
|
||||
func->card->quirks |= MMC_QUIRK_LENIENT_FN0;
|
||||
|
||||
|
|
|
@ -347,11 +347,18 @@ static struct platform_device wl1271_device = {
|
|||
},
|
||||
};
|
||||
|
||||
static void wl1271_spi_set_power(struct wl1271 *wl, bool enable)
|
||||
{
|
||||
if (wl->set_power)
|
||||
wl->set_power(enable);
|
||||
}
|
||||
|
||||
static struct wl1271_if_operations spi_ops = {
|
||||
.read = wl1271_spi_raw_read,
|
||||
.write = wl1271_spi_raw_write,
|
||||
.reset = wl1271_spi_reset,
|
||||
.init = wl1271_spi_init,
|
||||
.power = wl1271_spi_set_power,
|
||||
.dev = wl1271_spi_wl_to_dev,
|
||||
.enable_irq = wl1271_spi_enable_interrupts,
|
||||
.disable_irq = wl1271_spi_disable_interrupts
|
||||
|
|
Загрузка…
Ссылка в новой задаче