mirror of https://gitee.com/openkylin/linux.git
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);
|
||||
}
|
||||
|
||||
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
|
||||
* 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)
|
||||
{
|
||||
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));
|
||||
|
||||
/*
|
||||
If the data looks correct, then copy it to our private
|
||||
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 */
|
||||
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;
|
||||
ipw_read_eeprom(priv);
|
||||
/* initialize the eeprom region of sram */
|
||||
ipw_eeprom_init_sram(priv);
|
||||
|
||||
/* enable interrupts */
|
||||
|
|
Loading…
Reference in New Issue