diff options
Diffstat (limited to 'drivers/net/wireless/libertas/if_cs.c')
| -rw-r--r-- | drivers/net/wireless/libertas/if_cs.c | 92 | 
1 files changed, 55 insertions, 37 deletions
diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c index 8712cb213f2..63ed5798365 100644 --- a/drivers/net/wireless/libertas/if_cs.c +++ b/drivers/net/wireless/libertas/if_cs.c @@ -21,6 +21,8 @@  */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +  #include <linux/module.h>  #include <linux/slab.h>  #include <linux/delay.h> @@ -312,7 +314,8 @@ static int if_cs_poll_while_fw_download(struct if_cs_card *card, uint addr, u8 r  #define CF8385_MANFID		0x02df  #define CF8385_CARDID		0x8103 -/* FIXME: just use the 'driver_info' field of 'struct pcmcia_device_id' when +/* + * FIXME: just use the 'driver_info' field of 'struct pcmcia_device_id' when   * that gets fixed.  Currently there's no way to access it from the probe hook.   */  static inline u32 get_model(u16 manf_id, u16 card_id) @@ -361,7 +364,7 @@ static int if_cs_send_cmd(struct lbs_private *priv, u8 *buf, u16 nb)  		if (status & IF_CS_BIT_COMMAND)  			break;  		if (++loops > 100) { -			lbs_pr_err("card not ready for commands\n"); +			netdev_err(priv->dev, "card not ready for commands\n");  			goto done;  		}  		mdelay(1); @@ -431,14 +434,16 @@ static int if_cs_receive_cmdres(struct lbs_private *priv, u8 *data, u32 *len)  	/* is hardware ready? */  	status = if_cs_read16(priv->card, IF_CS_CARD_STATUS);  	if ((status & IF_CS_BIT_RESP) == 0) { -		lbs_pr_err("no cmd response in card\n"); +		netdev_err(priv->dev, "no cmd response in card\n");  		*len = 0;  		goto out;  	}  	*len = if_cs_read16(priv->card, IF_CS_RESP_LEN);  	if ((*len == 0) || (*len > LBS_CMD_BUFFER_SIZE)) { -		lbs_pr_err("card cmd buffer has invalid # of bytes (%d)\n", *len); +		netdev_err(priv->dev, +			   "card cmd buffer has invalid # of bytes (%d)\n", +			   *len);  		goto out;  	} @@ -472,7 +477,9 @@ static struct sk_buff *if_cs_receive_data(struct lbs_private *priv)  	len = if_cs_read16(priv->card, IF_CS_READ_LEN);  	if (len == 0 || len > MRVDRV_ETH_RX_PACKET_BUFFER_SIZE) { -		lbs_pr_err("card data buffer has invalid # of bytes (%d)\n", len); +		netdev_err(priv->dev, +			   "card data buffer has invalid # of bytes (%d)\n", +			   len);  		priv->dev->stats.rx_dropped++;  		goto dat_err;  	} @@ -621,8 +628,10 @@ static int if_cs_prog_helper(struct if_cs_card *card, const struct firmware *fw)  		if (remain < count)  			count = remain; -		/* "write the number of bytes to be sent to the I/O Command -		 * write length register" */ +		/* +		 * "write the number of bytes to be sent to the I/O Command +		 * write length register" +		 */  		if_cs_write16(card, IF_CS_CMD_LEN, count);  		/* "write this to I/O Command port register as 16 bit writes */ @@ -631,21 +640,27 @@ static int if_cs_prog_helper(struct if_cs_card *card, const struct firmware *fw)  				&fw->data[sent],  				count >> 1); -		/* "Assert the download over interrupt command in the Host -		 * status register" */ +		/* +		 * "Assert the download over interrupt command in the Host +		 * status register" +		 */  		if_cs_write8(card, IF_CS_HOST_STATUS, IF_CS_BIT_COMMAND); -		/* "Assert the download over interrupt command in the Card -		 * interrupt case register" */ +		/* +		 * "Assert the download over interrupt command in the Card +		 * interrupt case register" +		 */  		if_cs_write16(card, IF_CS_HOST_INT_CAUSE, IF_CS_BIT_COMMAND); -		/* "The host polls the Card Status register ... for 50 ms before -		   declaring a failure */ +		/* +		 * "The host polls the Card Status register ... for 50 ms before +		 * declaring a failure" +		 */  		ret = if_cs_poll_while_fw_download(card, IF_CS_CARD_STATUS,  			IF_CS_BIT_COMMAND);  		if (ret < 0) { -			lbs_pr_err("can't download helper at 0x%x, ret %d\n", -				sent, ret); +			pr_err("can't download helper at 0x%x, ret %d\n", +			       sent, ret);  			goto done;  		} @@ -675,7 +690,7 @@ static int if_cs_prog_real(struct if_cs_card *card, const struct firmware *fw)  	ret = if_cs_poll_while_fw_download(card, IF_CS_SQ_READ_LOW,  		IF_CS_SQ_HELPER_OK);  	if (ret < 0) { -		lbs_pr_err("helper firmware doesn't answer\n"); +		pr_err("helper firmware doesn't answer\n");  		goto done;  	} @@ -683,13 +698,13 @@ static int if_cs_prog_real(struct if_cs_card *card, const struct firmware *fw)  		len = if_cs_read16(card, IF_CS_SQ_READ_LOW);  		if (len & 1) {  			retry++; -			lbs_pr_info("odd, need to retry this firmware block\n"); +			pr_info("odd, need to retry this firmware block\n");  		} else {  			retry = 0;  		}  		if (retry > 20) { -			lbs_pr_err("could not download firmware\n"); +			pr_err("could not download firmware\n");  			ret = -ENODEV;  			goto done;  		} @@ -709,14 +724,14 @@ static int if_cs_prog_real(struct if_cs_card *card, const struct firmware *fw)  		ret = if_cs_poll_while_fw_download(card, IF_CS_CARD_STATUS,  			IF_CS_BIT_COMMAND);  		if (ret < 0) { -			lbs_pr_err("can't download firmware at 0x%x\n", sent); +			pr_err("can't download firmware at 0x%x\n", sent);  			goto done;  		}  	}  	ret = if_cs_poll_while_fw_download(card, IF_CS_SCRATCH, 0x5a);  	if (ret < 0) -		lbs_pr_err("firmware download failed\n"); +		pr_err("firmware download failed\n");  done:  	lbs_deb_leave_args(LBS_DEB_CS, "ret %d", ret); @@ -750,7 +765,8 @@ static int if_cs_host_to_card(struct lbs_private *priv,  		ret = if_cs_send_cmd(priv, buf, nb);  		break;  	default: -		lbs_pr_err("%s: unsupported type %d\n", __func__, type); +		netdev_err(priv->dev, "%s: unsupported type %d\n", +			   __func__, type);  	}  	lbs_deb_leave_args(LBS_DEB_CS, "ret %d", ret); @@ -779,7 +795,7 @@ static int if_cs_ioprobe(struct pcmcia_device *p_dev, void *priv_data)  	p_dev->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO;  	if (p_dev->resource[1]->end) { -		lbs_pr_err("wrong CIS (check number of IO windows)\n"); +		pr_err("wrong CIS (check number of IO windows)\n");  		return -ENODEV;  	} @@ -800,7 +816,7 @@ static int if_cs_probe(struct pcmcia_device *p_dev)  	card = kzalloc(sizeof(struct if_cs_card), GFP_KERNEL);  	if (!card) { -		lbs_pr_err("error in kzalloc\n"); +		pr_err("error in kzalloc\n");  		goto out;  	}  	card->p_dev = p_dev; @@ -809,7 +825,7 @@ static int if_cs_probe(struct pcmcia_device *p_dev)  	p_dev->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;  	if (pcmcia_loop_config(p_dev, if_cs_ioprobe, NULL)) { -		lbs_pr_err("error in pcmcia_loop_config\n"); +		pr_err("error in pcmcia_loop_config\n");  		goto out1;  	} @@ -825,14 +841,14 @@ static int if_cs_probe(struct pcmcia_device *p_dev)  	card->iobase = ioport_map(p_dev->resource[0]->start,  				resource_size(p_dev->resource[0]));  	if (!card->iobase) { -		lbs_pr_err("error in ioport_map\n"); +		pr_err("error in ioport_map\n");  		ret = -EIO;  		goto out1;  	}  	ret = pcmcia_enable_device(p_dev);  	if (ret) { -		lbs_pr_err("error in pcmcia_enable_device\n"); +		pr_err("error in pcmcia_enable_device\n");  		goto out2;  	} @@ -841,14 +857,14 @@ static int if_cs_probe(struct pcmcia_device *p_dev)  	/*  	 * Most of the libertas cards can do unaligned register access, but some -	 * weird ones can not. That's especially true for the CF8305 card. +	 * weird ones cannot. That's especially true for the CF8305 card.  	 */  	card->align_regs = 0;  	card->model = get_model(p_dev->manf_id, p_dev->card_id);  	if (card->model == MODEL_UNKNOWN) { -		lbs_pr_err("unsupported manf_id 0x%04x / card_id 0x%04x\n", -			   p_dev->manf_id, p_dev->card_id); +		pr_err("unsupported manf_id 0x%04x / card_id 0x%04x\n", +		       p_dev->manf_id, p_dev->card_id);  		goto out2;  	} @@ -857,20 +873,20 @@ static int if_cs_probe(struct pcmcia_device *p_dev)  	if (card->model == MODEL_8305) {  		card->align_regs = 1;  		if (prod_id < IF_CS_CF8305_B1_REV) { -			lbs_pr_err("8305 rev B0 and older are not supported\n"); +			pr_err("8305 rev B0 and older are not supported\n");  			ret = -ENODEV;  			goto out2;  		}  	}  	if ((card->model == MODEL_8381) && prod_id < IF_CS_CF8381_B3_REV) { -		lbs_pr_err("8381 rev B2 and older are not supported\n"); +		pr_err("8381 rev B2 and older are not supported\n");  		ret = -ENODEV;  		goto out2;  	}  	if ((card->model == MODEL_8385) && prod_id < IF_CS_CF8385_B1_REV) { -		lbs_pr_err("8385 rev B0 and older are not supported\n"); +		pr_err("8385 rev B0 and older are not supported\n");  		ret = -ENODEV;  		goto out2;  	} @@ -878,7 +894,7 @@ static int if_cs_probe(struct pcmcia_device *p_dev)  	ret = lbs_get_firmware(&p_dev->dev, NULL, NULL, card->model,  				&fw_table[0], &helper, &mainfw);  	if (ret) { -		lbs_pr_err("failed to find firmware (%d)\n", ret); +		pr_err("failed to find firmware (%d)\n", ret);  		goto out2;  	} @@ -909,18 +925,20 @@ static int if_cs_probe(struct pcmcia_device *p_dev)  	ret = request_irq(p_dev->irq, if_cs_interrupt,  		IRQF_SHARED, DRV_NAME, card);  	if (ret) { -		lbs_pr_err("error in request_irq\n"); +		pr_err("error in request_irq\n");  		goto out3;  	} -	/* Clear any interrupt cause that happened while sending -	 * firmware/initializing card */ +	/* +	 * Clear any interrupt cause that happened while sending +	 * firmware/initializing card +	 */  	if_cs_write16(card, IF_CS_CARD_INT_CAUSE, IF_CS_BIT_MASK);  	if_cs_enable_ints(card);  	/* And finally bring the card up */  	if (lbs_start_card(priv) != 0) { -		lbs_pr_err("could not activate card\n"); +		pr_err("could not activate card\n");  		goto out3;  	}  |