net/wireless: ipw2200: introduce ipw_read_eeprom function
We separate reading of device's eeprom content from writing it back to the device's sram. Signed-off-by: Stanislav Yakovlev <stas.yakovlev@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
605b73af32
commit
fdbfff7340
|
@ -2701,6 +2701,20 @@ static void eeprom_parse_mac(struct ipw_priv *priv, u8 * mac)
|
||||||
memcpy(mac, &priv->eeprom[EEPROM_MAC_ADDRESS], 6);
|
memcpy(mac, &priv->eeprom[EEPROM_MAC_ADDRESS], 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ipw_read_eeprom(struct ipw_priv *priv)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
__le16 *eeprom = (__le16 *) priv->eeprom;
|
||||||
|
|
||||||
|
IPW_DEBUG_TRACE(">>\n");
|
||||||
|
|
||||||
|
/* read entire contents of eeprom into private buffer */
|
||||||
|
for (i = 0; i < 128; i++)
|
||||||
|
eeprom[i] = cpu_to_le16(eeprom_read_u16(priv, (u8) i));
|
||||||
|
|
||||||
|
IPW_DEBUG_TRACE("<<\n");
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Either the device driver (i.e. the host) or the firmware can
|
* Either the device driver (i.e. the host) or the firmware can
|
||||||
* load eeprom data into the designated region in SRAM. If neither
|
* load eeprom data into the designated region in SRAM. If neither
|
||||||
|
@ -2712,14 +2726,9 @@ static void eeprom_parse_mac(struct ipw_priv *priv, u8 * mac)
|
||||||
static void ipw_eeprom_init_sram(struct ipw_priv *priv)
|
static void ipw_eeprom_init_sram(struct ipw_priv *priv)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
__le16 *eeprom = (__le16 *) priv->eeprom;
|
|
||||||
|
|
||||||
IPW_DEBUG_TRACE(">>\n");
|
IPW_DEBUG_TRACE(">>\n");
|
||||||
|
|
||||||
/* read entire contents of eeprom into private buffer */
|
|
||||||
for (i = 0; i < 128; i++)
|
|
||||||
eeprom[i] = cpu_to_le16(eeprom_read_u16(priv, (u8) i));
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
If the data looks correct, then copy it to our private
|
If the data looks correct, then copy it to our private
|
||||||
copy. Otherwise let the firmware know to perform the operation
|
copy. Otherwise let the firmware know to perform the operation
|
||||||
|
@ -3643,8 +3652,10 @@ static int ipw_load(struct ipw_priv *priv)
|
||||||
/* ack fw init done interrupt */
|
/* ack fw init done interrupt */
|
||||||
ipw_write32(priv, IPW_INTA_RW, IPW_INTA_BIT_FW_INITIALIZATION_DONE);
|
ipw_write32(priv, IPW_INTA_RW, IPW_INTA_BIT_FW_INITIALIZATION_DONE);
|
||||||
|
|
||||||
/* read eeprom data and initialize the eeprom region of sram */
|
/* read eeprom data */
|
||||||
priv->eeprom_delay = 1;
|
priv->eeprom_delay = 1;
|
||||||
|
ipw_read_eeprom(priv);
|
||||||
|
/* initialize the eeprom region of sram */
|
||||||
ipw_eeprom_init_sram(priv);
|
ipw_eeprom_init_sram(priv);
|
||||||
|
|
||||||
/* enable interrupts */
|
/* enable interrupts */
|
||||||
|
|
Loading…
Reference in New Issue