linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ohad Ben-Cohen <ohad@wizery.com>
To: linux-wireless@vger.kernel.org, linux-mmc@vger.kernel.org,
	linux-omap@vger.kernel.org
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>,
	linux-arm-kernel@lists.infradead.org,
	Chikkature Rajashekar Madhusudhan <madhu.cr@ti.com>,
	Luciano Coelho <luciano.coelho@nokia.com>,
	akpm@linux-foundation.org, San Mehat <san@google.com>,
	Roger Quadros <roger.quadros@nokia.com>,
	Tony Lindgren <tony@atomide.com>,
	Nicolas Pitre <nico@fluxnic.net>, Ido Yariv <ido@wizery.com>,
	Kalle Valo <kalle.valo@iki.fi>,
	Russell King <linux@arm.linux.org.uk>,
	Ohad Ben-Cohen <ohad@wizery.com>
Subject: [PATCH v5 3/7] wireless: wl12xx: add platform data passing support
Date: Thu,  2 Sep 2010 00:26:46 +0300	[thread overview]
Message-ID: <1283376410-9999-4-git-send-email-ohad@wizery.com> (raw)
In-Reply-To: <1283376410-9999-1-git-send-email-ohad@wizery.com>

Add a simple mechanism to pass platform data to the
SDIO instances of wl12xx.

This way there is no confusion over who owns the 'embedded data',
typechecking is preserved, and no possibility for the wrong driver to
pick up the data.

Originally proposed by Russell King.

Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
---
 drivers/net/wireless/Makefile                      |    2 +
 drivers/net/wireless/wl12xx/Kconfig                |    5 ++-
 drivers/net/wireless/wl12xx/wl12xx_platform_data.c |   31 ++++++++++++++++++++
 include/linux/wl12xx.h                             |    3 ++
 4 files changed, 40 insertions(+), 1 deletions(-)
 create mode 100644 drivers/net/wireless/wl12xx/wl12xx_platform_data.c

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..e00973b
--- /dev/null
+++ b/drivers/net/wireless/wl12xx/wl12xx_platform_data.c
@@ -0,0 +1,31 @@
+#include <linux/module.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;
+}
+
+int wl12xx_get_platform_data(struct wl12xx_platform_data *data)
+{
+	if (!platform_data)
+		return -ENODEV;
+	if (!data)
+		return -EINVAL;
+
+	memcpy(data, platform_data, sizeof(*data));
+
+	return 0;
+}
+EXPORT_SYMBOL(wl12xx_get_platform_data);
diff --git a/include/linux/wl12xx.h b/include/linux/wl12xx.h
index 137ac89..3e33ae1 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);
+int wl12xx_get_platform_data(struct wl12xx_platform_data *data);
+
 #endif
-- 
1.7.0.4


  parent reply	other threads:[~2010-09-01 21:26 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-01 21:26 [PATCH v5 0/7] native wl1271 support on ZOOM Ohad Ben-Cohen
2010-09-01 21:26 ` [PATCH v5 1/7] wireless: wl1271: make wl12xx.h common to both spi and sdio Ohad Ben-Cohen
2010-09-01 21:26 ` [PATCH v5 2/7] wireless: wl1271: support return value for the set power func Ohad Ben-Cohen
2010-09-01 21:26 ` Ohad Ben-Cohen [this message]
     [not found]   ` <1283376410-9999-4-git-send-email-ohad-Ix1uc/W3ht7QT0dZR+AlfA@public.gmane.org>
2010-09-04 12:23     ` [PATCH v5 3/7] wireless: wl12xx: add platform data passing support Michał Mirosław
2010-09-06 11:55       ` Ohad Ben-Cohen
     [not found]       ` <AANLkTi=goLEUqM1XQ__PrGu4=Erw2utaNP4qFmSgRta2-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-09-06 12:07         ` Russell King - ARM Linux
2010-09-06 13:46           ` Ohad Ben-Cohen
2010-09-06 19:42           ` Michał Mirosław
2010-09-15  8:00             ` Ohad Ben-Cohen
     [not found]               ` <AANLkTinM8vY7CygEN6DBR35WLkU-QOBwuiaRrpfwF6Mz-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-09-15  8:27                 ` Vitaly Wool
2010-09-15 16:39                   ` Tony Lindgren
2010-09-15  8:25             ` Russell King - ARM Linux
2010-09-15 16:10               ` Michał Mirosław
2010-09-01 21:26 ` [PATCH v5 4/7] wireless: wl1271: take irq info from private board data Ohad Ben-Cohen
     [not found] ` <1283376410-9999-1-git-send-email-ohad-Ix1uc/W3ht7QT0dZR+AlfA@public.gmane.org>
2010-09-01 21:26   ` [PATCH v5 5/7] wireless: wl1271: make ref_clock configurable by board Ohad Ben-Cohen
2010-09-01 21:26   ` [PATCH v5 6/7] omap: zoom: add fixed regulator device for wlan Ohad Ben-Cohen
2010-09-01 21:26 ` [PATCH v5 7/7] omap: zoom: add mmc3/wl1271 device support Ohad Ben-Cohen
2010-09-15  9:21 ` [PATCH v5 0/7] native wl1271 support on ZOOM Ohad Ben-Cohen
     [not found]   ` <AANLkTikedoL3HjohQfq2qa0TU5yMJR5p1GqyQJtQGrdb-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-09-15 11:08     ` Vitaly Wool
2010-09-15 13:21       ` John W. Linville
2010-09-15 16:34         ` Tony Lindgren
2010-09-15 16:46           ` Ohad Ben-Cohen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1283376410-9999-4-git-send-email-ohad@wizery.com \
    --to=ohad@wizery.com \
    --cc=akpm@linux-foundation.org \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=ido@wizery.com \
    --cc=kalle.valo@iki.fi \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=luciano.coelho@nokia.com \
    --cc=madhu.cr@ti.com \
    --cc=nico@fluxnic.net \
    --cc=roger.quadros@nokia.com \
    --cc=san@google.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).