mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 02:15:45 +01:00 
			
		
		
		
	mmc: Clean up generic mmc driver multi-block write functions
The current mmc write implementation is type ulong, but returns int values. Some of the printf's are terminated with /n/r, one has none. This patch fixes these issues and also removes some unnecessary local variables. Signed-off-by: Steve Sakoman <steve.sakoman@linaro.org> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
This commit is contained in:
		
				
					committed by
					
						 Sandeep Paulraj
						Sandeep Paulraj
					
				
			
			
				
	
			
			
			
						parent
						
							31bfcf1c57
						
					
				
				
					commit
					def412b661
				
			| @@ -82,12 +82,9 @@ mmc_write_blocks(struct mmc *mmc, ulong start, lbaint_t blkcnt, const void*src) | |||||||
| { | { | ||||||
| 	struct mmc_cmd cmd; | 	struct mmc_cmd cmd; | ||||||
| 	struct mmc_data data; | 	struct mmc_data data; | ||||||
| 	int blklen, err; |  | ||||||
|  |  | ||||||
| 	blklen = mmc->write_bl_len; |  | ||||||
|  |  | ||||||
| 	if ((start + blkcnt) > mmc->block_dev.lba) { | 	if ((start + blkcnt) > mmc->block_dev.lba) { | ||||||
| 		printf("MMC: block number 0x%lx exceeds max(0x%lx)", | 		printf("MMC: block number 0x%lx exceeds max(0x%lx)\n", | ||||||
| 			start + blkcnt, mmc->block_dev.lba); | 			start + blkcnt, mmc->block_dev.lba); | ||||||
| 		return 0; | 		return 0; | ||||||
| 	} | 	} | ||||||
| @@ -100,21 +97,19 @@ mmc_write_blocks(struct mmc *mmc, ulong start, lbaint_t blkcnt, const void*src) | |||||||
| 	if (mmc->high_capacity) | 	if (mmc->high_capacity) | ||||||
| 		cmd.cmdarg = start; | 		cmd.cmdarg = start; | ||||||
| 	else | 	else | ||||||
| 		cmd.cmdarg = start * blklen; | 		cmd.cmdarg = start * mmc->write_bl_len; | ||||||
|  |  | ||||||
| 	cmd.resp_type = MMC_RSP_R1; | 	cmd.resp_type = MMC_RSP_R1; | ||||||
| 	cmd.flags = 0; | 	cmd.flags = 0; | ||||||
|  |  | ||||||
| 	data.src = src; | 	data.src = src; | ||||||
| 	data.blocks = blkcnt; | 	data.blocks = blkcnt; | ||||||
| 	data.blocksize = blklen; | 	data.blocksize = mmc->write_bl_len; | ||||||
| 	data.flags = MMC_DATA_WRITE; | 	data.flags = MMC_DATA_WRITE; | ||||||
|  |  | ||||||
| 	err = mmc_send_cmd(mmc, &cmd, &data); | 	if (mmc_send_cmd(mmc, &cmd, &data)) { | ||||||
|  | 		printf("mmc write failed\n"); | ||||||
| 	if (err) { | 		return 0; | ||||||
| 		printf("mmc write failed\n\r"); |  | ||||||
| 		return err; |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if (blkcnt > 1) { | 	if (blkcnt > 1) { | ||||||
| @@ -122,10 +117,9 @@ mmc_write_blocks(struct mmc *mmc, ulong start, lbaint_t blkcnt, const void*src) | |||||||
| 		cmd.cmdarg = 0; | 		cmd.cmdarg = 0; | ||||||
| 		cmd.resp_type = MMC_RSP_R1b; | 		cmd.resp_type = MMC_RSP_R1b; | ||||||
| 		cmd.flags = 0; | 		cmd.flags = 0; | ||||||
| 		err = mmc_send_cmd(mmc, &cmd, NULL); | 		if (mmc_send_cmd(mmc, &cmd, NULL)) { | ||||||
| 		if (err) { | 			printf("mmc fail to send stop cmd\n"); | ||||||
| 			printf("mmc fail to send stop cmd\n\r"); | 			return 0; | ||||||
| 			return err; |  | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -135,18 +129,14 @@ mmc_write_blocks(struct mmc *mmc, ulong start, lbaint_t blkcnt, const void*src) | |||||||
| static ulong | static ulong | ||||||
| mmc_bwrite(int dev_num, ulong start, lbaint_t blkcnt, const void*src) | mmc_bwrite(int dev_num, ulong start, lbaint_t blkcnt, const void*src) | ||||||
| { | { | ||||||
| 	int err; |  | ||||||
| 	struct mmc *mmc = find_mmc_device(dev_num); |  | ||||||
| 	lbaint_t cur, blocks_todo = blkcnt; | 	lbaint_t cur, blocks_todo = blkcnt; | ||||||
|  |  | ||||||
|  | 	struct mmc *mmc = find_mmc_device(dev_num); | ||||||
| 	if (!mmc) | 	if (!mmc) | ||||||
| 		return -1; | 		return 0; | ||||||
|  |  | ||||||
| 	err = mmc_set_blocklen(mmc, mmc->write_bl_len); | 	if (mmc_set_blocklen(mmc, mmc->write_bl_len)) | ||||||
| 	if (err) { | 		return 0; | ||||||
| 		printf("set write bl len failed\n\r"); |  | ||||||
| 		return err; |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	do { | 	do { | ||||||
| 		/* | 		/* | ||||||
| @@ -155,7 +145,7 @@ mmc_bwrite(int dev_num, ulong start, lbaint_t blkcnt, const void*src) | |||||||
| 		 */ | 		 */ | ||||||
| 		cur = (blocks_todo > 65535) ? 65535 : blocks_todo; | 		cur = (blocks_todo > 65535) ? 65535 : blocks_todo; | ||||||
| 		if(mmc_write_blocks(mmc, start, cur, src) != cur) | 		if(mmc_write_blocks(mmc, start, cur, src) != cur) | ||||||
| 			return -1; | 			return 0; | ||||||
| 		blocks_todo -= cur; | 		blocks_todo -= cur; | ||||||
| 		start += cur; | 		start += cur; | ||||||
| 		src += cur * mmc->write_bl_len; | 		src += cur * mmc->write_bl_len; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user