diff options
Diffstat (limited to 'drivers/net/wireless/ipw2x00/ipw2200.c')
| -rw-r--r-- | drivers/net/wireless/ipw2x00/ipw2200.c | 27 | 
1 files changed, 18 insertions, 9 deletions
diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c index 0036737fe8e..0df45914739 100644 --- a/drivers/net/wireless/ipw2x00/ipw2200.c +++ b/drivers/net/wireless/ipw2x00/ipw2200.c @@ -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 */ @@ -7069,9 +7080,7 @@ static int ipw_qos_activate(struct ipw_priv *priv,  	}  	IPW_DEBUG_QOS("QoS sending IPW_CMD_QOS_PARAMETERS\n"); -	err = ipw_send_qos_params_command(priv, -					  (struct libipw_qos_parameters *) -					  &(qos_parameters[0])); +	err = ipw_send_qos_params_command(priv, &qos_parameters[0]);  	if (err)  		IPW_DEBUG_QOS("QoS IPW_CMD_QOS_PARAMETERS failed\n");  |