p54spi: Kconfig option for config blob
This patch adds an Kconfig option, which allows the user to select, whenever he/she wants to include a 4k blob for generic calibration and interface values into the driver, or cut the module size by about 15 to 20%. Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
b4c5261206
commit
d7065c3055
@@ -49,6 +49,23 @@ config P54_SPI
|
|||||||
|
|
||||||
If you choose to build a module, it'll be called p54spi.
|
If you choose to build a module, it'll be called p54spi.
|
||||||
|
|
||||||
|
config P54_SPI_DEFAULT_EEPROM
|
||||||
|
bool "Include fallback EEPROM blob"
|
||||||
|
depends on P54_SPI
|
||||||
|
default n
|
||||||
|
---help---
|
||||||
|
Unlike the PCI or USB devices, the SPI variants don't have
|
||||||
|
a dedicated EEPROM chip to store all device specific values
|
||||||
|
for calibration, country and interface settings.
|
||||||
|
|
||||||
|
The driver will try to load the image "3826.eeprom", if the
|
||||||
|
file is put at the right place. (usually /lib/firmware.)
|
||||||
|
|
||||||
|
Only if this request fails, this option will provide a
|
||||||
|
backup set of generic values to get the device working.
|
||||||
|
|
||||||
|
Enabling this option adds about 4k to p54spi.
|
||||||
|
|
||||||
config P54_LEDS
|
config P54_LEDS
|
||||||
bool
|
bool
|
||||||
depends on P54_COMMON && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = P54_COMMON)
|
depends on P54_COMMON && MAC80211_LEDS && (LEDS_CLASS = y || LEDS_CLASS = P54_COMMON)
|
||||||
|
@@ -32,11 +32,14 @@
|
|||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
|
|
||||||
#include "p54spi.h"
|
#include "p54spi.h"
|
||||||
#include "p54spi_eeprom.h"
|
|
||||||
#include "p54.h"
|
#include "p54.h"
|
||||||
|
|
||||||
#include "lmac.h"
|
#include "lmac.h"
|
||||||
|
|
||||||
|
#ifdef CONFIG_P54_SPI_DEFAULT_EEPROM
|
||||||
|
#include "p54spi_eeprom.h"
|
||||||
|
#endif /* CONFIG_P54_SPI_DEFAULT_EEPROM */
|
||||||
|
|
||||||
MODULE_FIRMWARE("3826.arm");
|
MODULE_FIRMWARE("3826.arm");
|
||||||
MODULE_ALIAS("stlc45xx");
|
MODULE_ALIAS("stlc45xx");
|
||||||
|
|
||||||
@@ -195,9 +198,11 @@ static int p54spi_request_eeprom(struct ieee80211_hw *dev)
|
|||||||
|
|
||||||
ret = request_firmware(&eeprom, "3826.eeprom", &priv->spi->dev);
|
ret = request_firmware(&eeprom, "3826.eeprom", &priv->spi->dev);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
#ifdef CONFIG_P54_SPI_DEFAULT_EEPROM
|
||||||
dev_info(&priv->spi->dev, "loading default eeprom...\n");
|
dev_info(&priv->spi->dev, "loading default eeprom...\n");
|
||||||
ret = p54_parse_eeprom(dev, (void *) p54spi_eeprom,
|
ret = p54_parse_eeprom(dev, (void *) p54spi_eeprom,
|
||||||
sizeof(p54spi_eeprom));
|
sizeof(p54spi_eeprom));
|
||||||
|
#endif /* CONFIG_P54_SPI_DEFAULT_EEPROM */
|
||||||
} else {
|
} else {
|
||||||
dev_info(&priv->spi->dev, "loading user eeprom...\n");
|
dev_info(&priv->spi->dev, "loading user eeprom...\n");
|
||||||
ret = p54_parse_eeprom(dev, (void *) eeprom->data,
|
ret = p54_parse_eeprom(dev, (void *) eeprom->data,
|
||||||
|
Reference in New Issue
Block a user