diff options
Diffstat (limited to 'drivers/net/wireless/libertas/if_sdio.c')
| -rw-r--r-- | drivers/net/wireless/libertas/if_sdio.c | 18 | 
1 files changed, 7 insertions, 11 deletions
diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libertas/if_sdio.c index 45578335e42..33ceda296c9 100644 --- a/drivers/net/wireless/libertas/if_sdio.c +++ b/drivers/net/wireless/libertas/if_sdio.c @@ -498,7 +498,7 @@ static int if_sdio_prog_helper(struct if_sdio_card *card,  		 */  		mdelay(2); -		chunk_size = min(size, (size_t)60); +		chunk_size = min_t(size_t, size, 60);  		*((__le32*)chunk_buffer) = cpu_to_le32(chunk_size);  		memcpy(chunk_buffer + 4, firmware, chunk_size); @@ -639,7 +639,7 @@ static int if_sdio_prog_real(struct if_sdio_card *card,  			req_size = size;  		while (req_size) { -			chunk_size = min(req_size, (size_t)512); +			chunk_size = min_t(size_t, req_size, 512);  			memcpy(chunk_buffer, firmware, chunk_size);  /* @@ -708,20 +708,16 @@ static void if_sdio_do_prog_firmware(struct lbs_private *priv, int ret,  	ret = if_sdio_prog_helper(card, helper);  	if (ret) -		goto out; +		return;  	lbs_deb_sdio("Helper firmware loaded\n");  	ret = if_sdio_prog_real(card, mainfw);  	if (ret) -		goto out; +		return;  	lbs_deb_sdio("Firmware loaded\n");  	if_sdio_finish_power_on(card); - -out: -	release_firmware(helper); -	release_firmware(mainfw);  }  static int if_sdio_prog_firmware(struct if_sdio_card *card) @@ -853,7 +849,7 @@ static void if_sdio_finish_power_on(struct if_sdio_card *card)  			card->started = true;  			/* Tell PM core that we don't need the card to be  			 * powered now */ -			pm_runtime_put_noidle(&func->dev); +			pm_runtime_put(&func->dev);  		}  	} @@ -911,8 +907,8 @@ static int if_sdio_power_on(struct if_sdio_card *card)  	sdio_release_host(func);  	ret = if_sdio_prog_firmware(card);  	if (ret) { -		sdio_disable_func(func); -		return ret; +		sdio_claim_host(func); +		goto disable;  	}  	return 0;  | 
