wl12xx_platform_data.c revision 61ee7007a5d61aa066076da578e8e8084e122d7d
161ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen#include <linux/module.h> 261ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen#include <linux/err.h> 361ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen#include <linux/wl12xx.h> 461ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen 561ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohenstatic const struct wl12xx_platform_data *platform_data; 661ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen 761ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohenint __init wl12xx_set_platform_data(const struct wl12xx_platform_data *data) 861ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen{ 961ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen if (platform_data) 1061ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen return -EBUSY; 1161ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen if (!data) 1261ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen return -EINVAL; 1361ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen 1461ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen platform_data = kmemdup(data, sizeof(*data), GFP_KERNEL); 1561ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen if (!platform_data) 1661ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen return -ENOMEM; 1761ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen 1861ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen return 0; 1961ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen} 2061ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen 2161ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohenconst struct wl12xx_platform_data *wl12xx_get_platform_data(void) 2261ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen{ 2361ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen if (!platform_data) 2461ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen return ERR_PTR(-ENODEV); 2561ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen 2661ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen return platform_data; 2761ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-Cohen} 2861ee7007a5d61aa066076da578e8e8084e122d7dOhad Ben-CohenEXPORT_SYMBOL(wl12xx_get_platform_data); 29