From patchwork Wed Sep 1 21:26:46 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: 177802 Return-path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on void.printf.net X-Spam-Level: X-Spam-Status: No, score=-1.0 required=2.9 tests=RCVD_IN_DNSWL_LOW autolearn=disabled version=3.2.5 Envelope-to: chris@printf.net Delivery-date: Wed, 01 Sep 2010 22:27:57 +0100 Received: from lists.laptop.org ([18.85.2.145] helo=mail.laptop.org) by void.printf.net with esmtp (Exim 4.69) (envelope-from ) id 1Oquqb-00016Y-AL for chris@printf.net; Wed, 01 Sep 2010 22:27:57 +0100 Received: by mail.laptop.org (Postfix) id 8FCB22466F; Wed, 1 Sep 2010 17:27:37 -0400 (EDT) Delivered-To: cjb@laptop.org Received: from spam.laptop.org (spam.laptop.org [18.85.46.23]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.laptop.org (Postfix) with ESMTPS id 810402466D for ; Wed, 1 Sep 2010 17:27:37 -0400 (EDT) X-ASG-Debug-ID: 1283376474-0b747dec0001-zHW3sV Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by spam.laptop.org with ESMTP id auOHjHkZJo06QWiD for ; Wed, 01 Sep 2010 17:27:54 -0400 (EDT) X-Barracuda-Envelope-From: linux-mmc-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756032Ab0IAV1x (ORCPT ); Wed, 1 Sep 2010 17:27:53 -0400 Received: from mail-bw0-f46.google.com ([209.85.214.46]:34781 "EHLO mail-bw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755982Ab0IAV1x (ORCPT ); Wed, 1 Sep 2010 17:27:53 -0400 Received: by mail-bw0-f46.google.com with SMTP id 11so43402bwz.19 for ; Wed, 01 Sep 2010 14:27:51 -0700 (PDT) Received: by 10.204.131.200 with SMTP id y8mr6019533bks.107.1283376470319; Wed, 01 Sep 2010 14:27:50 -0700 (PDT) Received: from localhost.localdomain (46-116-15-195.bb.netvision.net.il [46.116.15.195]) by mx.google.com with ESMTPS id f18sm7637804bkf.15.2010.09.01.14.27.29 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 01 Sep 2010 14:27:37 -0700 (PDT) From: Ohad Ben-Cohen To: , , Cc: Mark Brown , , Chikkature Rajashekar Madhusudhan , Luciano Coelho , , San Mehat , Roger Quadros , Tony Lindgren , Nicolas Pitre , Ido Yariv , Kalle Valo , Russell King , Ohad Ben-Cohen X-ASG-Orig-Subj: [PATCH v5 3/7] wireless: wl12xx: add platform data passing support Subject: [PATCH v5 3/7] wireless: wl12xx: add platform data passing support Date: Thu, 2 Sep 2010 00:26:46 +0300 Message-Id: <1283376410-9999-4-git-send-email-ohad@wizery.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1283376410-9999-1-git-send-email-ohad@wizery.com> References: <1283376410-9999-1-git-send-email-ohad@wizery.com> Sender: linux-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org X-Barracuda-Connect: vger.kernel.org[209.132.180.67] X-Barracuda-Start-Time: 1283376474 X-Barracuda-URL: http://18.85.46.23:8000/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at laptop.org X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using global scores of TAG_LEVEL=3.5 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=5.5 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.39644 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 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 +#include + +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