From patchwork Wed Sep 15 23:31:12 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ohad Ben Cohen X-Patchwork-Id: 183952 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id o8FNUbX0021910 for ; Wed, 15 Sep 2010 23:30:37 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754569Ab0IOXaf (ORCPT ); Wed, 15 Sep 2010 19:30:35 -0400 Received: from mail-bw0-f46.google.com ([209.85.214.46]:58384 "EHLO mail-bw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754452Ab0IOXae (ORCPT ); Wed, 15 Sep 2010 19:30:34 -0400 Received: by bwz11 with SMTP id 11so1064943bwz.19 for ; Wed, 15 Sep 2010 16:30:33 -0700 (PDT) Received: by 10.204.68.144 with SMTP id v16mr1891450bki.58.1284593432907; Wed, 15 Sep 2010 16:30:32 -0700 (PDT) Received: from localhost.localdomain (46-116-86-31.bb.netvision.net.il [46.116.86.31]) by mx.google.com with ESMTPS id g12sm1853498bkb.14.2010.09.15.16.30.29 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 15 Sep 2010 16:30:32 -0700 (PDT) From: Ohad Ben-Cohen To: , Cc: "John W. Linville" , Mark Brown , , Chikkature Rajashekar Madhusudhan , Luciano Coelho , San Mehat , Roger Quadros , Tony Lindgren , Nicolas Pitre , Ido Yariv , Kalle Valo , Russell King , Vitaly Wool , Ohad Ben-Cohen Subject: [PATCH v6 3/7] wl12xx: add platform data passing support Date: Thu, 16 Sep 2010 01:31:12 +0200 Message-Id: <1284593472-29964-1-git-send-email-ohad@wizery.com> X-Mailer: git-send-email 1.7.0.4 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter1.kernel.org [140.211.167.41]); Wed, 15 Sep 2010 23:30:37 +0000 (UTC) diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 5d4ce4d..85af697 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -50,5 +50,7 @@ obj-$(CONFIG_ATH_COMMON) += ath/ obj-$(CONFIG_MAC80211_HWSIM) += mac80211_hwsim.o obj-$(CONFIG_WL12XX) += wl12xx/ +# small builtin driver bit +obj-$(CONFIG_WL12XX_PLATFORM_DATA) += wl12xx/wl12xx_platform_data.o obj-$(CONFIG_IWM) += iwmc3200wifi/ diff --git a/drivers/net/wireless/wl12xx/Kconfig b/drivers/net/wireless/wl12xx/Kconfig index 2f98058..4a8bb25 100644 --- a/drivers/net/wireless/wl12xx/Kconfig +++ b/drivers/net/wireless/wl12xx/Kconfig @@ -74,4 +74,7 @@ config WL1271_SDIO If you choose to build a module, it'll be called wl1271_sdio. Say N if unsure. - +config WL12XX_PLATFORM_DATA + bool + depends on WL1271_SDIO != n + default y diff --git a/drivers/net/wireless/wl12xx/wl12xx_platform_data.c b/drivers/net/wireless/wl12xx/wl12xx_platform_data.c new file mode 100644 index 0000000..973b110 --- /dev/null +++ b/drivers/net/wireless/wl12xx/wl12xx_platform_data.c @@ -0,0 +1,28 @@ +#include +#include +#include + +static const 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; +} + +const 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); diff --git a/include/linux/wl12xx.h b/include/linux/wl12xx.h index 015687a..bd70563 100644 --- a/include/linux/wl12xx.h +++ b/include/linux/wl12xx.h @@ -31,4 +31,7 @@ struct wl12xx_platform_data { bool use_eeprom; }; +int wl12xx_set_platform_data(const struct wl12xx_platform_data *data); +const struct wl12xx_platform_data *wl12xx_get_platform_data(void); + #endif