From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-pd0-x22b.google.com ([2607:f8b0:400e:c02::22b]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1YpnlF-0000rj-9K for wireless-regdb@lists.infradead.org; Wed, 06 May 2015 01:04:30 +0000 Received: by pdbqd1 with SMTP id qd1so214278222pdb.2 for ; Tue, 05 May 2015 18:04:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=8D5P/XMOEK5sT108UUuFtP4SZpclTUNOQTzWyCDNCMY=; b=Qd7D20WmXlaFb9poH/FjCO6dD/ZWdq5FEveOMF+uY5Z3Q3SGgAROBO/7f4TL4KDauD VMM2qhY+J1axxDzsFXW7Ha2h0MsscLChmeqTiCjv1NN6I49bxXJ+98d8E8Y1i1cm+8gl XiHp/nrxAMmT7TRXC+G74mkuWBeQeUjgHIBL2Jk41jGit0tEVviJEqtbGflW7tWpIz6Z EGteOpjJ09VMt6sK7tldAAmBqTIOcBQXPUltfFDsR5xGqZfexcaAq/vjABaP7Z+1Dlgq OutB2hGyxFYRubqiv60uLqZEDdgI/qbbGDT8AWh0un5/wLnVUVBM0GPuIzYmNYHJdJLj CnoA== From: "Luis R. Rodriguez" Date: Tue, 5 May 2015 17:44:26 -0700 Message-Id: <1430873070-7290-9-git-send-email-mcgrof@do-not-panic.com> In-Reply-To: <1430873070-7290-1-git-send-email-mcgrof@do-not-panic.com> References: <1430873070-7290-1-git-send-email-mcgrof@do-not-panic.com> Subject: [wireless-regdb] [RFC v1 08/12] p54spi: use sysdata_file_request() for EEPROM optional system data List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Sender: "wireless-regdb" Errors-To: wireless-regdb-bounces+johannes=sipsolutions.net@lists.infradead.org Content-Transfer-Encoding: 8bit To: rusty@rustcorp.com.au, dhowells@redhat.com, ming.lei@canonical.com, seth.forshee@canonical.com, kyle@kernel.org Cc: mjg59@srcf.ucam.org, wireless-regdb@lists.infradead.org, keescook@chromium.org, tiwai@suse.de, gregkh@linuxfoundation.org, "Luis R. Rodriguez" , linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, jlee@suse.com, casey@schaufler-ca.com, akpm@linux-foundation.org List-ID: From: "Luis R. Rodriguez" This converts the driver over from request_firmware_direct() to the sysdata_file_request(). Signed-off-by: Luis R. Rodriguez --- drivers/net/wireless/p54/p54spi.c | 49 +++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/drivers/net/wireless/p54/p54spi.c b/drivers/net/wireless/p54/p54spi.c index 63de5ee..0950ed6 100644 --- a/drivers/net/wireless/p54/p54spi.c +++ b/drivers/net/wireless/p54/p54spi.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -184,33 +185,41 @@ static int p54spi_request_firmware(struct ieee80211_hw *dev) return 0; } -static int p54spi_request_eeprom(struct ieee80211_hw *dev) +static int p54spi_load_new_eeprom(void *context, + const struct sysdata_file *sysdata) { - struct p54s_priv *priv = dev->priv; - const struct firmware *eeprom; + struct ieee80211_hw *dev = context; int ret; - /* allow users to customize their eeprom. - */ + ret = p54_parse_eeprom(dev, (void *) sysdata->data, + sysdata->size); + release_sysdata_file(sysdata); - ret = request_firmware_direct(&eeprom, "3826.eeprom", &priv->spi->dev); - if (ret < 0) { -#ifdef CONFIG_P54_SPI_DEFAULT_EEPROM - dev_info(&priv->spi->dev, "loading default eeprom...\n"); - ret = p54_parse_eeprom(dev, (void *) p54spi_eeprom, - sizeof(p54spi_eeprom)); -#else - dev_err(&priv->spi->dev, "Failed to request user eeprom\n"); -#endif /* CONFIG_P54_SPI_DEFAULT_EEPROM */ - } else { - dev_info(&priv->spi->dev, "loading user eeprom...\n"); - ret = p54_parse_eeprom(dev, (void *) eeprom->data, - (int)eeprom->size); - release_firmware(eeprom); - } return ret; } +static int p54spi_load_default_eeprom(void *context) +{ + struct ieee80211_hw *dev = context; + + return p54_parse_eeprom(dev, (void *) p54spi_eeprom, + sizeof(p54spi_eeprom)); +} + +static int p54spi_request_eeprom(struct ieee80211_hw *dev) +{ + struct p54s_priv *priv = dev->priv; + const struct sysdata_file_desc p54_spi_eeprom_sysdata = { + SYSDATA_DEFAULT_SYNC(p54spi_load_new_eeprom, dev), + .optional = !IS_ENABLED(CONFIG_P54_SPI_DEFAULT_EEPROM), + SYSDATA_SYNC_OPT_CB(p54spi_load_default_eeprom, dev), + }; + + return sysdata_file_request("3826.eeprom", + &p54_spi_eeprom_sysdata, + &priv->spi->dev); +} + static int p54spi_upload_firmware(struct ieee80211_hw *dev) { struct p54s_priv *priv = dev->priv; -- 2.3.2.209.gd67f9d5.dirty _______________________________________________ wireless-regdb mailing list wireless-regdb@lists.infradead.org http://lists.infradead.org/mailman/listinfo/wireless-regdb