Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 174b8d9f authored by Oleksij Rempel's avatar Oleksij Rempel Committed by Greg Kroah-Hartman
Browse files

staging: rts5139: remove disabled XD_SPEEDUP code

parent a7f62516
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -57,7 +57,6 @@
#define SUPPORT_OCP

#define MS_SPEEDUP
/* #define XD_SPEEDUP */

#define SD_XD_IO_FOLLOW_PWR

+0 −107
Original line number Diff line number Diff line
@@ -1182,91 +1182,6 @@ static int xd_copy_page(struct rts51x_chip *chip,
	return STATUS_SUCCESS;
}

#ifdef XD_SPEEDUP
static int xd_auto_copy_page(struct rts51x_chip *chip,
			     u32 old_blk, u32 new_blk,
			     u8 start_page, u8 end_page)
{
	struct xd_info *xd_card = &(chip->xd_card);
	u32 old_page, new_page;
	int retval;
	u8 page_count;

	RTS51X_DEBUGP("Auto copy page from block 0x%x to block 0x%x\n",
		       old_blk, new_blk);

	if (start_page > end_page)
		TRACE_RET(chip, STATUS_FAIL);

	page_count = end_page - start_page;

	if ((old_blk == BLK_NOT_FOUND) || (new_blk == BLK_NOT_FOUND))
		TRACE_RET(chip, STATUS_FAIL);

	old_page = (old_blk << xd_card->block_shift) + start_page;
	new_page = (new_blk << xd_card->block_shift) + start_page;

	XD_CLR_BAD_NEWBLK(xd_card);

	rts51x_init_cmd(chip);

	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_CP_WAITTIME, 0x03, WAIT_FF);
	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_CP_PAGELEN, 0xFF, page_count);

	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_CP_READADDR0, 0xFF, 0);
	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_CP_READADDR1, 0xFF,
		       (u8) old_page);
	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_CP_READADDR2, 0xFF,
		       (u8) (old_page >> 8));
	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_CP_READADDR3, 0xFF,
		       (u8) (old_page >> 16));
	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_CP_READADDR4, 0xFF, 0);

	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_CP_WRITEADDR0, 0xFF, 0);
	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_CP_WRITEADDR1, 0xFF,
		       (u8) new_page);
	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_CP_WRITEADDR2, 0xFF,
		       (u8) (new_page >> 8));
	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_CP_WRITEADDR3, 0xFF,
		       (u8) (new_page >> 16));
	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_CP_WRITEADDR4, 0xFF, 0);

	rts51x_add_cmd(chip, WRITE_REG_CMD, CARD_DATA_SOURCE, 0x01,
		       PINGPONG_BUFFER);

	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_CFG,
		       XD_BA_TRANSFORM | XD_ADDR_MASK, 0 | xd_card->addr_cycle);

	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_CHK_DATA_STATUS,
		       XD_AUTO_CHK_DATA_STATUS, 0);
	rts51x_add_cmd(chip, WRITE_REG_CMD, XD_TRANSFER, 0xFF,
		       XD_TRANSFER_START | XD_COPY_PAGES);
	rts51x_add_cmd(chip, CHECK_REG_CMD, XD_TRANSFER, XD_TRANSFER_END,
		       XD_TRANSFER_END);

	retval = rts51x_send_cmd(chip, MODE_CR, 100);
	if (retval != STATUS_SUCCESS) {
		rts51x_clear_xd_error(chip);
		TRACE_GOTO(chip, Copy_Fail);
	}

	retval = rts51x_get_rsp(chip, 1, 800);
	if (retval != STATUS_SUCCESS) {
		rts51x_clear_xd_error(chip);
		TRACE_GOTO(chip, Copy_Fail);
	}

	return STATUS_SUCCESS;

Copy_Fail:
	retval = xd_copy_page(chip, old_blk, new_blk, start_page, end_page);
	if (retval != STATUS_SUCCESS)
		TRACE_RET(chip, retval);

	return STATUS_SUCCESS;
}
#endif

static int xd_reset_cmd(struct rts51x_chip *chip)
{
	int retval;
@@ -1686,15 +1601,9 @@ static int xd_read_multiple_pages(struct rts51x_chip *chip, u32 phy_blk,
			XD_CLR_BAD_OLDBLK(xd_card);
			TRACE_RET(chip, STATUS_FAIL);
		}
#ifdef XD_SPEEDUP
		retval =
		    xd_auto_copy_page(chip, phy_blk, new_blk, 0,
				      xd_card->page_off + 1);
#else
		retval =
		    xd_copy_page(chip, phy_blk, new_blk, 0,
				 xd_card->page_off + 1);
#endif
		if (retval != STATUS_SUCCESS) {
			if (!XD_CHK_BAD_NEWBLK(xd_card)) {
				retval = xd_erase_block(chip, new_blk);
@@ -1741,13 +1650,8 @@ static int xd_finish_write(struct rts51x_chip *chip,
			TRACE_RET(chip, STATUS_FAIL);
		}
	} else {
#ifdef XD_SPEEDUP
		retval = xd_auto_copy_page(chip, old_blk, new_blk,
					   page_off, xd_card->page_off + 1);
#else
		retval = xd_copy_page(chip, old_blk, new_blk,
				      page_off, xd_card->page_off + 1);
#endif
		if (retval != STATUS_SUCCESS) {
			if (!XD_CHK_BAD_NEWBLK(xd_card)) {
				retval = xd_erase_block(chip, new_blk);
@@ -1789,11 +1693,7 @@ static int xd_prepare_write(struct rts51x_chip *chip,
				old_blk, new_blk, log_blk, (int)page_off);

	if (page_off) {
#ifdef XD_SPEEDUP
		retval = xd_auto_copy_page(chip, old_blk, new_blk, 0, page_off);
#else
		retval = xd_copy_page(chip, old_blk, new_blk, 0, page_off);
#endif
		if (retval != STATUS_SUCCESS)
			TRACE_RET(chip, retval);
	}
@@ -1999,18 +1899,11 @@ int xd_rw(struct scsi_cmnd *srb, struct rts51x_chip *chip, u32 start_sector,
		    (start_page > delay_write->pageoff)) {
			delay_write->delay_write_flag = 0;
			if (delay_write->old_phyblock != BLK_NOT_FOUND) {
#ifdef XD_SPEEDUP
				retval = xd_auto_copy_page(chip,
					delay_write->old_phyblock,
					delay_write->new_phyblock,
					delay_write->pageoff, start_page);
#else
				retval = xd_copy_page(chip,
						      delay_write->old_phyblock,
						      delay_write->new_phyblock,
						      delay_write->pageoff,
						      start_page);
#endif
				if (retval != STATUS_SUCCESS) {
					set_sense_type(chip, lun,
						SENSE_TYPE_MEDIA_WRITE_ERR);