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

staging: rts5139: remove disabled XD_SPEEDUP code

Signed-off-by: default avatarOleksij Rempel <bug-track@fisher-privat.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a7f62516
...@@ -57,7 +57,6 @@ ...@@ -57,7 +57,6 @@
#define SUPPORT_OCP #define SUPPORT_OCP
#define MS_SPEEDUP #define MS_SPEEDUP
/* #define XD_SPEEDUP */
#define SD_XD_IO_FOLLOW_PWR #define SD_XD_IO_FOLLOW_PWR
......
...@@ -1182,91 +1182,6 @@ static int xd_copy_page(struct rts51x_chip *chip, ...@@ -1182,91 +1182,6 @@ static int xd_copy_page(struct rts51x_chip *chip,
return STATUS_SUCCESS; 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) static int xd_reset_cmd(struct rts51x_chip *chip)
{ {
int retval; int retval;
...@@ -1686,15 +1601,9 @@ static int xd_read_multiple_pages(struct rts51x_chip *chip, u32 phy_blk, ...@@ -1686,15 +1601,9 @@ static int xd_read_multiple_pages(struct rts51x_chip *chip, u32 phy_blk,
XD_CLR_BAD_OLDBLK(xd_card); XD_CLR_BAD_OLDBLK(xd_card);
TRACE_RET(chip, STATUS_FAIL); 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 = retval =
xd_copy_page(chip, phy_blk, new_blk, 0, xd_copy_page(chip, phy_blk, new_blk, 0,
xd_card->page_off + 1); xd_card->page_off + 1);
#endif
if (retval != STATUS_SUCCESS) { if (retval != STATUS_SUCCESS) {
if (!XD_CHK_BAD_NEWBLK(xd_card)) { if (!XD_CHK_BAD_NEWBLK(xd_card)) {
retval = xd_erase_block(chip, new_blk); retval = xd_erase_block(chip, new_blk);
...@@ -1741,13 +1650,8 @@ static int xd_finish_write(struct rts51x_chip *chip, ...@@ -1741,13 +1650,8 @@ static int xd_finish_write(struct rts51x_chip *chip,
TRACE_RET(chip, STATUS_FAIL); TRACE_RET(chip, STATUS_FAIL);
} }
} else { } 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, retval = xd_copy_page(chip, old_blk, new_blk,
page_off, xd_card->page_off + 1); page_off, xd_card->page_off + 1);
#endif
if (retval != STATUS_SUCCESS) { if (retval != STATUS_SUCCESS) {
if (!XD_CHK_BAD_NEWBLK(xd_card)) { if (!XD_CHK_BAD_NEWBLK(xd_card)) {
retval = xd_erase_block(chip, new_blk); retval = xd_erase_block(chip, new_blk);
...@@ -1789,11 +1693,7 @@ static int xd_prepare_write(struct rts51x_chip *chip, ...@@ -1789,11 +1693,7 @@ static int xd_prepare_write(struct rts51x_chip *chip,
old_blk, new_blk, log_blk, (int)page_off); old_blk, new_blk, log_blk, (int)page_off);
if (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); retval = xd_copy_page(chip, old_blk, new_blk, 0, page_off);
#endif
if (retval != STATUS_SUCCESS) if (retval != STATUS_SUCCESS)
TRACE_RET(chip, retval); TRACE_RET(chip, retval);
} }
...@@ -1999,18 +1899,11 @@ int xd_rw(struct scsi_cmnd *srb, struct rts51x_chip *chip, u32 start_sector, ...@@ -1999,18 +1899,11 @@ int xd_rw(struct scsi_cmnd *srb, struct rts51x_chip *chip, u32 start_sector,
(start_page > delay_write->pageoff)) { (start_page > delay_write->pageoff)) {
delay_write->delay_write_flag = 0; delay_write->delay_write_flag = 0;
if (delay_write->old_phyblock != BLK_NOT_FOUND) { 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, retval = xd_copy_page(chip,
delay_write->old_phyblock, delay_write->old_phyblock,
delay_write->new_phyblock, delay_write->new_phyblock,
delay_write->pageoff, delay_write->pageoff,
start_page); start_page);
#endif
if (retval != STATUS_SUCCESS) { if (retval != STATUS_SUCCESS) {
set_sense_type(chip, lun, set_sense_type(chip, lun,
SENSE_TYPE_MEDIA_WRITE_ERR); SENSE_TYPE_MEDIA_WRITE_ERR);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment