staging: rtsx: remove rtsx_trace() and related code
The driver has rather excessive amount of tracing code, which would be better done using ftrace. This is obviously not a main feature of the driver, and it should work just as well without it. Removing it saves over 1300 lines of code and likely makes the driver a bit faster by avoiding lots of calls into the timekeeping code. I came across this while cleaning up the last users of the deprecated getnstimeofday64() function, of which there is one in the now-removed get_current_time() function of the rtsx driver that was only used for tracing. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
5c6a5eb3aa
commit
c238d7b1e5
|
@ -3,4 +3,4 @@ obj-$(CONFIG_RTS5208) := rts5208.o
|
|||
ccflags-y := -Idrivers/scsi
|
||||
|
||||
rts5208-y := rtsx.o rtsx_chip.o rtsx_transport.o rtsx_scsi.o \
|
||||
rtsx_card.o general.o sd.o xd.o ms.o spi.o trace.o
|
||||
rtsx_card.o general.o sd.o xd.o ms.o spi.o
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -139,28 +139,6 @@ static inline struct rtsx_dev *host_to_rtsx(struct Scsi_Host *host)
|
|||
return (struct rtsx_dev *)host->hostdata;
|
||||
}
|
||||
|
||||
static inline void get_current_time(u8 *timeval_buf, int buf_len)
|
||||
{
|
||||
struct timespec64 ts64;
|
||||
u32 tv_usec;
|
||||
|
||||
if (!timeval_buf || (buf_len < 8))
|
||||
return;
|
||||
|
||||
getnstimeofday64(&ts64);
|
||||
|
||||
tv_usec = ts64.tv_nsec / NSEC_PER_USEC;
|
||||
|
||||
timeval_buf[0] = (u8)(ts64.tv_sec >> 24);
|
||||
timeval_buf[1] = (u8)(ts64.tv_sec >> 16);
|
||||
timeval_buf[2] = (u8)(ts64.tv_sec >> 8);
|
||||
timeval_buf[3] = (u8)(ts64.tv_sec);
|
||||
timeval_buf[4] = (u8)(tv_usec >> 24);
|
||||
timeval_buf[5] = (u8)(tv_usec >> 16);
|
||||
timeval_buf[6] = (u8)(tv_usec >> 8);
|
||||
timeval_buf[7] = (u8)(tv_usec);
|
||||
}
|
||||
|
||||
/*
|
||||
* The scsi_lock() and scsi_unlock() macros protect the sm_state and the
|
||||
* single queue element srb for write access
|
||||
|
@ -174,9 +152,6 @@ static inline void get_current_time(u8 *timeval_buf, int buf_len)
|
|||
/* struct scsi_cmnd transfer buffer access utilities */
|
||||
enum xfer_buf_dir {TO_XFER_BUF, FROM_XFER_BUF};
|
||||
|
||||
#define _MSG_TRACE
|
||||
|
||||
#include "trace.h"
|
||||
#include "rtsx_chip.h"
|
||||
#include "rtsx_transport.h"
|
||||
#include "rtsx_scsi.h"
|
||||
|
|
|
@ -648,7 +648,6 @@ int switch_ssc_clock(struct rtsx_chip *chip, int clk)
|
|||
clk, chip->cur_clk);
|
||||
|
||||
if ((clk <= 2) || (n > max_n)) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -690,14 +689,12 @@ int switch_ssc_clock(struct rtsx_chip *chip, int clk)
|
|||
|
||||
retval = rtsx_send_cmd(chip, 0, WAIT_TIME);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
udelay(10);
|
||||
retval = rtsx_write_register(chip, CLK_CTL, CLK_LOW_FREQ, 0);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -789,38 +786,32 @@ int switch_normal_clock(struct rtsx_chip *chip, int clk)
|
|||
default:
|
||||
dev_dbg(rtsx_dev(chip), "Try to switch to an illegal clock (%d)\n",
|
||||
clk);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = rtsx_write_register(chip, CLK_CTL, 0xFF, CLK_LOW_FREQ);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
if (sd_vpclk_phase_reset) {
|
||||
retval = rtsx_write_register(chip, SD_VPCLK0_CTL,
|
||||
PHASE_NOT_RESET, 0);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, SD_VPCLK1_CTL,
|
||||
PHASE_NOT_RESET, 0);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
retval = rtsx_write_register(chip, CLK_DIV, 0xFF,
|
||||
(div << 4) | mcu_cnt);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, CLK_SEL, 0xFF, sel);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -829,20 +820,17 @@ int switch_normal_clock(struct rtsx_chip *chip, int clk)
|
|||
retval = rtsx_write_register(chip, SD_VPCLK0_CTL,
|
||||
PHASE_NOT_RESET, PHASE_NOT_RESET);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, SD_VPCLK1_CTL,
|
||||
PHASE_NOT_RESET, PHASE_NOT_RESET);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
udelay(200);
|
||||
}
|
||||
retval = rtsx_write_register(chip, CLK_CTL, 0xFF, 0);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -891,7 +879,6 @@ int enable_card_clock(struct rtsx_chip *chip, u8 card)
|
|||
|
||||
retval = rtsx_write_register(chip, CARD_CLK_EN, clk_en, clk_en);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -912,7 +899,6 @@ int disable_card_clock(struct rtsx_chip *chip, u8 card)
|
|||
|
||||
retval = rtsx_write_register(chip, CARD_CLK_EN, clk_en, 0);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -939,7 +925,6 @@ int card_power_on(struct rtsx_chip *chip, u8 card)
|
|||
|
||||
retval = rtsx_send_cmd(chip, 0, 100);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -950,7 +935,6 @@ int card_power_on(struct rtsx_chip *chip, u8 card)
|
|||
|
||||
retval = rtsx_send_cmd(chip, 0, 100);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -972,7 +956,6 @@ int card_power_off(struct rtsx_chip *chip, u8 card)
|
|||
|
||||
retval = rtsx_write_register(chip, CARD_PWR_CTL, mask, val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -987,7 +970,6 @@ int card_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
int i;
|
||||
|
||||
if (!chip->rw_card[lun]) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -998,12 +980,10 @@ int card_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
if (retval != STATUS_SUCCESS) {
|
||||
if (rtsx_check_chip_exist(chip) != STATUS_SUCCESS) {
|
||||
rtsx_release_chip(chip);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
if (detect_card_cd(chip, chip->cur_card) !=
|
||||
STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1036,7 +1016,6 @@ int card_share_mode(struct rtsx_chip *chip, int card)
|
|||
} else if (card == XD_CARD) {
|
||||
value = CARD_SHARE_48_XD;
|
||||
} else {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1049,18 +1028,15 @@ int card_share_mode(struct rtsx_chip *chip, int card)
|
|||
} else if (card == XD_CARD) {
|
||||
value = CARD_SHARE_BAROSSA_XD;
|
||||
} else {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
} else {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = rtsx_write_register(chip, CARD_SHARE_MODE, mask, value);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -1083,20 +1059,17 @@ int select_card(struct rtsx_chip *chip, int card)
|
|||
} else if (card == SPI_CARD) {
|
||||
mod = SPI_MOD_SEL;
|
||||
} else {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = rtsx_write_register(chip, CARD_SELECT, 0x07, mod);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
chip->cur_card = card;
|
||||
|
||||
retval = card_share_mode(chip, card);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -1143,13 +1116,11 @@ int detect_card_cd(struct rtsx_chip *chip, int card)
|
|||
card_cd = XD_EXIST;
|
||||
} else {
|
||||
dev_dbg(rtsx_dev(chip), "Wrong card type: 0x%x\n", card);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
status = rtsx_readl(chip, RTSX_BIPR);
|
||||
if (!(status & card_cd)) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
|
|
@ -1063,7 +1063,6 @@ static inline int card_power_off_all(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_write_register(chip, CARD_PWR_CTL, 0x0F, 0x0F);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
|
|
@ -117,7 +117,6 @@ static int rtsx_pre_handle_sdio_old(struct rtsx_chip *chip)
|
|||
MS_INS_PU | SD_WP_PU |
|
||||
SD_CD_PU | SD_CMD_PU);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
} else {
|
||||
|
@ -125,28 +124,24 @@ static int rtsx_pre_handle_sdio_old(struct rtsx_chip *chip)
|
|||
0xFF,
|
||||
FPGA_SD_PULL_CTL_EN);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
retval = rtsx_write_register(chip, CARD_SHARE_MODE, 0xFF,
|
||||
CARD_SHARE_48_SD);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
/* Enable SDIO internal clock */
|
||||
retval = rtsx_write_register(chip, 0xFF2C, 0x01, 0x01);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
retval = rtsx_write_register(chip, SDIO_CTRL, 0xFF,
|
||||
SDIO_BUS_CTRL | SDIO_CD_CTRL);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -170,7 +165,6 @@ static int rtsx_pre_handle_sdio_new(struct rtsx_chip *chip)
|
|||
if (CHECK_PID(chip, 0x5288)) {
|
||||
retval = rtsx_read_register(chip, 0xFE5A, &tmp);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
if (tmp & 0x08)
|
||||
|
@ -178,7 +172,6 @@ static int rtsx_pre_handle_sdio_new(struct rtsx_chip *chip)
|
|||
} else if (CHECK_PID(chip, 0x5208)) {
|
||||
retval = rtsx_read_register(chip, 0xFE70, &tmp);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
if (tmp & 0x80)
|
||||
|
@ -200,7 +193,6 @@ static int rtsx_pre_handle_sdio_new(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_read_register(chip, TLPTISTAT, &tmp);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
cd_toggle_mask = 0x08;
|
||||
|
@ -211,14 +203,12 @@ static int rtsx_pre_handle_sdio_new(struct rtsx_chip *chip)
|
|||
retval = rtsx_write_register(chip, 0xFE5A,
|
||||
0x08, 0x00);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
} else if (CHECK_PID(chip, 0x5208)) {
|
||||
retval = rtsx_write_register(chip, 0xFE70,
|
||||
0x80, 0x00);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
@ -226,7 +216,6 @@ static int rtsx_pre_handle_sdio_new(struct rtsx_chip *chip)
|
|||
retval = rtsx_write_register(chip, TLPTISTAT, 0xFF,
|
||||
tmp);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -237,7 +226,6 @@ static int rtsx_pre_handle_sdio_new(struct rtsx_chip *chip)
|
|||
if (chip->asic_code) {
|
||||
retval = sd_pull_ctl_enable(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
} else {
|
||||
|
@ -246,13 +234,11 @@ static int rtsx_pre_handle_sdio_new(struct rtsx_chip *chip)
|
|||
FPGA_SD_PULL_CTL_BIT | 0x20,
|
||||
0);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
retval = card_share_mode(chip, SD_CARD);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -261,14 +247,12 @@ static int rtsx_pre_handle_sdio_new(struct rtsx_chip *chip)
|
|||
retval = rtsx_write_register(chip, 0xFE5A,
|
||||
0x08, 0x08);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
} else if (CHECK_PID(chip, 0x5208)) {
|
||||
retval = rtsx_write_register(chip, 0xFE70,
|
||||
0x80, 0x80);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
@ -279,7 +263,6 @@ static int rtsx_pre_handle_sdio_new(struct rtsx_chip *chip)
|
|||
} else {
|
||||
retval = rtsx_write_register(chip, TLPTISTAT, 0x08, 0x08);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -301,7 +284,6 @@ static int rtsx_reset_aspm(struct rtsx_chip *chip)
|
|||
ret = rtsx_write_cfg_dw(chip, 2, 0xC0, 0xFF,
|
||||
chip->aspm_l0s_l1_en);
|
||||
if (ret != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -311,13 +293,11 @@ static int rtsx_reset_aspm(struct rtsx_chip *chip)
|
|||
if (CHECK_PID(chip, 0x5208)) {
|
||||
ret = rtsx_write_register(chip, ASPM_FORCE_CTL, 0xFF, 0x3F);
|
||||
if (ret) {
|
||||
rtsx_trace(chip);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
ret = rtsx_write_config_byte(chip, LCTLR, chip->aspm_l0s_l1_en);
|
||||
if (ret != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -327,7 +307,6 @@ static int rtsx_reset_aspm(struct rtsx_chip *chip)
|
|||
ret = rtsx_write_cfg_dw(chip, CHECK_PID(chip, 0x5288) ? 2 : 1,
|
||||
0xC0, 0xFF, chip->aspm_l0s_l1_en);
|
||||
if (ret != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -349,7 +328,6 @@ static int rtsx_enable_pcie_intr(struct rtsx_chip *chip)
|
|||
if (chip->phy_debug_mode) {
|
||||
ret = rtsx_write_register(chip, CDRESUMECTL, 0x77, 0);
|
||||
if (ret) {
|
||||
rtsx_trace(chip);
|
||||
return ret;
|
||||
}
|
||||
rtsx_disable_bus_int(chip);
|
||||
|
@ -362,7 +340,6 @@ static int rtsx_enable_pcie_intr(struct rtsx_chip *chip)
|
|||
|
||||
ret = rtsx_read_phy_register(chip, 0x00, ®);
|
||||
if (ret != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -370,20 +347,17 @@ static int rtsx_enable_pcie_intr(struct rtsx_chip *chip)
|
|||
reg |= 0x80;
|
||||
ret = rtsx_write_phy_register(chip, 0x00, reg);
|
||||
if (ret != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
ret = rtsx_read_phy_register(chip, 0x1C, ®);
|
||||
if (ret != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
reg &= 0xFFF7;
|
||||
ret = rtsx_write_phy_register(chip, 0x1C, reg);
|
||||
if (ret != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -404,14 +378,12 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_write_register(chip, HOST_SLEEP_STATE, 0x03, 0x00);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
/* Disable card clock */
|
||||
retval = rtsx_write_register(chip, CARD_CLK_EN, 0x1E, 0);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -420,14 +392,12 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) {
|
||||
retval = rtsx_write_register(chip, FPDCTL, OC_POWER_DOWN, 0);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
} else {
|
||||
retval = rtsx_write_register(chip, FPDCTL, OC_POWER_DOWN,
|
||||
MS_OC_POWER_DOWN);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
@ -435,19 +405,16 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
retval = rtsx_write_register(chip, OCPPARA1, OCP_TIME_MASK,
|
||||
OCP_TIME_800);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, OCPPARA2, OCP_THD_MASK,
|
||||
OCP_THD_244_946);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, OCPCTL, 0xFF,
|
||||
CARD_OC_INT_EN | CARD_DETECT_EN);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
#else
|
||||
|
@ -455,7 +422,6 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
retval = rtsx_write_register(chip, FPDCTL, OC_POWER_DOWN,
|
||||
OC_POWER_DOWN);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
#endif
|
||||
|
@ -463,7 +429,6 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
if (!CHECK_PID(chip, 0x5288)) {
|
||||
retval = rtsx_write_register(chip, CARD_GPIO_DIR, 0xFF, 0x03);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
@ -471,14 +436,12 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
/* Turn off LED */
|
||||
retval = rtsx_write_register(chip, CARD_GPIO, 0xFF, 0x03);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
/* Reset delink mode */
|
||||
retval = rtsx_write_register(chip, CHANGE_LINK_STATE, 0x0A, 0);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -486,7 +449,6 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
retval = rtsx_write_register(chip, CARD_DRIVE_SEL, 0xFF,
|
||||
chip->card_drive_sel);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -494,7 +456,6 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
retval = rtsx_write_register(chip, CARD_AUTO_BLINK, 0xFF,
|
||||
LED_BLINK_SPEED | BLINK_EN | LED_GPIO0);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
#endif
|
||||
|
@ -504,12 +465,10 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
retval = rtsx_write_register(chip, SSC_CTL1, 0xFF,
|
||||
SSC_8X_EN | SSC_SEL_4M);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, SSC_CTL2, 0xFF, 0x12);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
@ -524,7 +483,6 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
*/
|
||||
retval = rtsx_write_register(chip, CHANGE_LINK_STATE, 0x16, 0x10);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -532,28 +490,24 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
if (chip->aspm_l0s_l1_en) {
|
||||
retval = rtsx_reset_aspm(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
} else {
|
||||
if (chip->asic_code && CHECK_PID(chip, 0x5208)) {
|
||||
retval = rtsx_write_phy_register(chip, 0x07, 0x0129);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
retval = rtsx_write_config_byte(chip, LCTLR,
|
||||
chip->aspm_l0s_l1_en);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
||||
retval = rtsx_write_config_byte(chip, 0x81, 1);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -563,7 +517,6 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
0xC0, 0xFF00, 0x0100);
|
||||
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -571,13 +524,11 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
if (CHECK_PID(chip, 0x5288) && !CHK_SDIO_EXIST(chip)) {
|
||||
retval = rtsx_write_cfg_dw(chip, 2, 0xC0, 0xFFFF, 0x0103);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = rtsx_write_cfg_dw(chip, 2, 0x84, 0xFF, 0x03);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -585,19 +536,16 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
retval = rtsx_write_register(chip, IRQSTAT0, LINK_RDY_INT,
|
||||
LINK_RDY_INT);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
retval = rtsx_write_register(chip, PERST_GLITCH_WIDTH, 0xFF, 0x80);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
retval = rtsx_enable_pcie_intr(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -622,7 +570,6 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
retval = rtsx_pre_handle_sdio_old(chip);
|
||||
#endif /* HW_AUTO_SWITCH_SD_BUS */
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -631,7 +578,6 @@ int rtsx_reset_chip(struct rtsx_chip *chip)
|
|||
retval = rtsx_write_register(chip, SDIO_CTRL,
|
||||
SDIO_BUS_CTRL | SDIO_CD_CTRL, 0);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
@ -645,7 +591,6 @@ nextcard:
|
|||
retval = rtsx_write_register(chip, SSC_CTL1, SSC_RSTB,
|
||||
SSC_RSTB);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
@ -655,7 +600,6 @@ nextcard:
|
|||
|
||||
retval = rtsx_write_register(chip, RCCTL, 0x01, 0x00);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -664,7 +608,6 @@ nextcard:
|
|||
retval = rtsx_write_register(chip, MAIN_PWR_OFF_CTL, 0x03,
|
||||
0x03);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
@ -672,26 +615,22 @@ nextcard:
|
|||
if (chip->remote_wakeup_en && !chip->auto_delink_en) {
|
||||
retval = rtsx_write_register(chip, WAKE_SEL_CTL, 0x07, 0x07);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
if (chip->aux_pwr_exist) {
|
||||
retval = rtsx_write_register(chip, PME_FORCE_CTL,
|
||||
0xFF, 0x33);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
retval = rtsx_write_register(chip, WAKE_SEL_CTL, 0x07, 0x04);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, PME_FORCE_CTL, 0xFF, 0x30);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
@ -699,7 +638,6 @@ nextcard:
|
|||
if (CHECK_PID(chip, 0x5208) && (chip->ic_version >= IC_VER_D)) {
|
||||
retval = rtsx_write_register(chip, PETXCFG, 0x1C, 0x14);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
@ -707,7 +645,6 @@ nextcard:
|
|||
if (chip->asic_code && CHECK_PID(chip, 0x5208)) {
|
||||
retval = rtsx_clr_phy_reg_bit(chip, 0x1C, 2);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -717,14 +654,12 @@ nextcard:
|
|||
MS_PARTIAL_POWER_ON |
|
||||
SD_PARTIAL_POWER_ON);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
udelay(chip->pmos_pwr_on_interval);
|
||||
retval = rtsx_write_register(chip, CARD_PWR_CTL, 0xFF,
|
||||
MS_POWER_ON | SD_POWER_ON);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -781,12 +716,10 @@ static int rts5208_init(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_write_register(chip, CLK_SEL, 0x03, 0x03);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_read_register(chip, CLK_SEL, &val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
chip->asic_code = val == 0 ? 1 : 0;
|
||||
|
@ -794,7 +727,6 @@ static int rts5208_init(struct rtsx_chip *chip)
|
|||
if (chip->asic_code) {
|
||||
retval = rtsx_read_phy_register(chip, 0x1C, ®);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -806,7 +738,6 @@ static int rts5208_init(struct rtsx_chip *chip)
|
|||
} else {
|
||||
retval = rtsx_read_register(chip, 0xFE80, &val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
chip->ic_version = val;
|
||||
|
@ -815,7 +746,6 @@ static int rts5208_init(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_read_register(chip, PDINFO, &val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
dev_dbg(rtsx_dev(chip), "PDINFO: 0x%x\n", val);
|
||||
|
@ -823,7 +753,6 @@ static int rts5208_init(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_read_register(chip, 0xFE50, &val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
chip->hw_bypass_sd = val & 0x01 ? 1 : 0;
|
||||
|
@ -837,7 +766,6 @@ static int rts5208_init(struct rtsx_chip *chip)
|
|||
if (chip->use_hw_setting) {
|
||||
retval = rtsx_read_register(chip, CHANGE_LINK_STATE, &val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
chip->auto_delink_en = val & 0x80 ? 1 : 0;
|
||||
|
@ -854,12 +782,10 @@ static int rts5288_init(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_write_register(chip, CLK_SEL, 0x03, 0x03);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_read_register(chip, CLK_SEL, &val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
chip->asic_code = val == 0 ? 1 : 0;
|
||||
|
@ -869,7 +795,6 @@ static int rts5288_init(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_read_register(chip, PDINFO, &val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
dev_dbg(rtsx_dev(chip), "PDINFO: 0x%x\n", val);
|
||||
|
@ -877,7 +802,6 @@ static int rts5288_init(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_read_register(chip, CARD_SHARE_MODE, &val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
dev_dbg(rtsx_dev(chip), "CARD_SHARE_MODE: 0x%x\n", val);
|
||||
|
@ -885,14 +809,12 @@ static int rts5288_init(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_read_register(chip, 0xFE5A, &val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
chip->hw_bypass_sd = val & 0x10 ? 1 : 0;
|
||||
|
||||
retval = rtsx_read_cfg_dw(chip, 0, 0x718, &lval);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -906,7 +828,6 @@ static int rts5288_init(struct rtsx_chip *chip)
|
|||
if (chip->use_hw_setting) {
|
||||
retval = rtsx_read_register(chip, CHANGE_LINK_STATE, &val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
chip->auto_delink_en = val & 0x80 ? 1 : 0;
|
||||
|
@ -933,10 +854,6 @@ int rtsx_init_chip(struct rtsx_chip *chip)
|
|||
|
||||
chip->ic_version = 0;
|
||||
|
||||
#ifdef _MSG_TRACE
|
||||
chip->msg_idx = 0;
|
||||
#endif
|
||||
|
||||
memset(xd_card, 0, sizeof(struct xd_info));
|
||||
memset(sd_card, 0, sizeof(struct sd_info));
|
||||
memset(ms_card, 0, sizeof(struct ms_info));
|
||||
|
@ -989,13 +906,11 @@ int rtsx_init_chip(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_write_register(chip, FPDCTL, SSC_POWER_DOWN, 0);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
wait_timeout(200);
|
||||
retval = rtsx_write_register(chip, CLK_DIV, 0x07, 0x07);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
dev_dbg(rtsx_dev(chip), "chip->use_hw_setting = %d\n",
|
||||
|
@ -1004,14 +919,12 @@ int rtsx_init_chip(struct rtsx_chip *chip)
|
|||
if (CHECK_PID(chip, 0x5208)) {
|
||||
retval = rts5208_init(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
} else if (CHECK_PID(chip, 0x5288)) {
|
||||
retval = rts5288_init(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -1061,7 +974,6 @@ int rtsx_init_chip(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_reset_chip(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1492,7 +1404,6 @@ int rtsx_write_register(struct rtsx_chip *chip, u16 addr, u8 mask, u8 data)
|
|||
val = rtsx_readl(chip, RTSX_HAIMR);
|
||||
if ((val & BIT(31)) == 0) {
|
||||
if (data != (u8)val) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1500,7 +1411,6 @@ int rtsx_write_register(struct rtsx_chip *chip, u16 addr, u8 mask, u8 data)
|
|||
}
|
||||
}
|
||||
|
||||
rtsx_trace(chip);
|
||||
return STATUS_TIMEDOUT;
|
||||
}
|
||||
|
||||
|
@ -1523,7 +1433,6 @@ int rtsx_read_register(struct rtsx_chip *chip, u16 addr, u8 *data)
|
|||
}
|
||||
|
||||
if (i >= MAX_RW_REG_CNT) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_TIMEDOUT;
|
||||
}
|
||||
|
||||
|
@ -1546,7 +1455,6 @@ int rtsx_write_cfg_dw(struct rtsx_chip *chip, u8 func_no, u16 addr, u32 mask,
|
|||
0xFF,
|
||||
(u8)(val & mask & 0xFF));
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
mode |= (1 << i);
|
||||
|
@ -1558,13 +1466,11 @@ int rtsx_write_cfg_dw(struct rtsx_chip *chip, u8 func_no, u16 addr, u32 mask,
|
|||
if (mode) {
|
||||
retval = rtsx_write_register(chip, CFGADDR0, 0xFF, (u8)addr);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, CFGADDR1, 0xFF,
|
||||
(u8)(addr >> 8));
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -1572,14 +1478,12 @@ int rtsx_write_cfg_dw(struct rtsx_chip *chip, u8 func_no, u16 addr, u32 mask,
|
|||
0x80 | mode |
|
||||
((func_no & 0x03) << 4));
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
for (i = 0; i < MAX_RW_REG_CNT; i++) {
|
||||
retval = rtsx_read_register(chip, CFGRWCTL, &tmp);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
if ((tmp & 0x80) == 0)
|
||||
|
@ -1599,25 +1503,21 @@ int rtsx_read_cfg_dw(struct rtsx_chip *chip, u8 func_no, u16 addr, u32 *val)
|
|||
|
||||
retval = rtsx_write_register(chip, CFGADDR0, 0xFF, (u8)addr);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, CFGADDR1, 0xFF, (u8)(addr >> 8));
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, CFGRWCTL, 0xFF,
|
||||
0x80 | ((func_no & 0x03) << 4));
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
for (i = 0; i < MAX_RW_REG_CNT; i++) {
|
||||
retval = rtsx_read_register(chip, CFGRWCTL, &tmp);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
if ((tmp & 0x80) == 0)
|
||||
|
@ -1627,7 +1527,6 @@ int rtsx_read_cfg_dw(struct rtsx_chip *chip, u8 func_no, u16 addr, u32 *val)
|
|||
for (i = 0; i < 4; i++) {
|
||||
retval = rtsx_read_register(chip, CFGDATA0 + i, &tmp);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
data |= (u32)tmp << (i * 8);
|
||||
|
@ -1649,7 +1548,6 @@ int rtsx_write_cfg_seq(struct rtsx_chip *chip, u8 func, u16 addr, u8 *buf,
|
|||
int retval;
|
||||
|
||||
if (!buf) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_NOMEM;
|
||||
}
|
||||
|
||||
|
@ -1662,14 +1560,12 @@ int rtsx_write_cfg_seq(struct rtsx_chip *chip, u8 func, u16 addr, u8 *buf,
|
|||
|
||||
data = vzalloc(array_size(dw_len, 4));
|
||||
if (!data) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_NOMEM;
|
||||
}
|
||||
|
||||
mask = vzalloc(array_size(dw_len, 4));
|
||||
if (!mask) {
|
||||
vfree(data);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_NOMEM;
|
||||
}
|
||||
|
||||
|
@ -1694,7 +1590,6 @@ int rtsx_write_cfg_seq(struct rtsx_chip *chip, u8 func, u16 addr, u8 *buf,
|
|||
if (retval != STATUS_SUCCESS) {
|
||||
vfree(data);
|
||||
vfree(mask);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -1723,7 +1618,6 @@ int rtsx_read_cfg_seq(struct rtsx_chip *chip, u8 func, u16 addr, u8 *buf,
|
|||
|
||||
data = vmalloc(array_size(dw_len, 4));
|
||||
if (!data) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_NOMEM;
|
||||
}
|
||||
|
||||
|
@ -1732,7 +1626,6 @@ int rtsx_read_cfg_seq(struct rtsx_chip *chip, u8 func, u16 addr, u8 *buf,
|
|||
data + i);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
vfree(data);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -1763,29 +1656,24 @@ int rtsx_write_phy_register(struct rtsx_chip *chip, u8 addr, u16 val)
|
|||
|
||||
retval = rtsx_write_register(chip, PHYDATA0, 0xFF, (u8)val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, PHYDATA1, 0xFF, (u8)(val >> 8));
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, PHYADDR, 0xFF, addr);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, PHYRWCTL, 0xFF, 0x81);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
for (i = 0; i < 100000; i++) {
|
||||
retval = rtsx_read_register(chip, PHYRWCTL, &tmp);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
if (!(tmp & 0x80)) {
|
||||
|
@ -1795,7 +1683,6 @@ int rtsx_write_phy_register(struct rtsx_chip *chip, u8 addr, u16 val)
|
|||
}
|
||||
|
||||
if (!finished) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1812,19 +1699,16 @@ int rtsx_read_phy_register(struct rtsx_chip *chip, u8 addr, u16 *val)
|
|||
|
||||
retval = rtsx_write_register(chip, PHYADDR, 0xFF, addr);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, PHYRWCTL, 0xFF, 0x80);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
for (i = 0; i < 100000; i++) {
|
||||
retval = rtsx_read_register(chip, PHYRWCTL, &tmp);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
if (!(tmp & 0x80)) {
|
||||
|
@ -1834,19 +1718,16 @@ int rtsx_read_phy_register(struct rtsx_chip *chip, u8 addr, u16 *val)
|
|||
}
|
||||
|
||||
if (!finished) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = rtsx_read_register(chip, PHYDATA0, &tmp);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
data = tmp;
|
||||
retval = rtsx_read_register(chip, PHYDATA1, &tmp);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
data |= (u16)tmp << 8;
|
||||
|
@ -1865,14 +1746,12 @@ int rtsx_read_efuse(struct rtsx_chip *chip, u8 addr, u8 *val)
|
|||
|
||||
retval = rtsx_write_register(chip, EFUSE_CTRL, 0xFF, 0x80 | addr);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
for (i = 0; i < 100; i++) {
|
||||
retval = rtsx_read_register(chip, EFUSE_CTRL, &data);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
if (!(data & 0x80))
|
||||
|
@ -1881,13 +1760,11 @@ int rtsx_read_efuse(struct rtsx_chip *chip, u8 addr, u8 *val)
|
|||
}
|
||||
|
||||
if (data & 0x80) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_TIMEDOUT;
|
||||
}
|
||||
|
||||
retval = rtsx_read_register(chip, EFUSE_DATA, &data);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
if (val)
|
||||
|
@ -1911,20 +1788,17 @@ int rtsx_write_efuse(struct rtsx_chip *chip, u8 addr, u8 val)
|
|||
|
||||
retval = rtsx_write_register(chip, EFUSE_DATA, 0xFF, tmp);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, EFUSE_CTRL, 0xFF,
|
||||
0xA0 | addr);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
for (j = 0; j < 100; j++) {
|
||||
retval = rtsx_read_register(chip, EFUSE_CTRL, &data);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
if (!(data & 0x80))
|
||||
|
@ -1933,7 +1807,6 @@ int rtsx_write_efuse(struct rtsx_chip *chip, u8 addr, u8 val)
|
|||
}
|
||||
|
||||
if (data & 0x80) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_TIMEDOUT;
|
||||
}
|
||||
|
||||
|
@ -1950,7 +1823,6 @@ int rtsx_clr_phy_reg_bit(struct rtsx_chip *chip, u8 reg, u8 bit)
|
|||
|
||||
retval = rtsx_read_phy_register(chip, reg, &value);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1958,7 +1830,6 @@ int rtsx_clr_phy_reg_bit(struct rtsx_chip *chip, u8 reg, u8 bit)
|
|||
value &= ~(1 << bit);
|
||||
retval = rtsx_write_phy_register(chip, reg, value);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -1973,7 +1844,6 @@ int rtsx_set_phy_reg_bit(struct rtsx_chip *chip, u8 reg, u8 bit)
|
|||
|
||||
retval = rtsx_read_phy_register(chip, reg, &value);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1981,7 +1851,6 @@ int rtsx_set_phy_reg_bit(struct rtsx_chip *chip, u8 reg, u8 bit)
|
|||
value |= (1 << bit);
|
||||
retval = rtsx_write_phy_register(chip, reg, value);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -2285,7 +2154,6 @@ int rtsx_read_ppbuf(struct rtsx_chip *chip, u8 *buf, int buf_len)
|
|||
u8 *ptr;
|
||||
|
||||
if (!buf) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
|
@ -2299,7 +2167,6 @@ int rtsx_read_ppbuf(struct rtsx_chip *chip, u8 *buf, int buf_len)
|
|||
|
||||
retval = rtsx_send_cmd(chip, 0, 250);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -2315,7 +2182,6 @@ int rtsx_read_ppbuf(struct rtsx_chip *chip, u8 *buf, int buf_len)
|
|||
|
||||
retval = rtsx_send_cmd(chip, 0, 250);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -2333,7 +2199,6 @@ int rtsx_write_ppbuf(struct rtsx_chip *chip, u8 *buf, int buf_len)
|
|||
u8 *ptr;
|
||||
|
||||
if (!buf) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
|
@ -2350,7 +2215,6 @@ int rtsx_write_ppbuf(struct rtsx_chip *chip, u8 *buf, int buf_len)
|
|||
|
||||
retval = rtsx_send_cmd(chip, 0, 250);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -2366,7 +2230,6 @@ int rtsx_write_ppbuf(struct rtsx_chip *chip, u8 *buf, int buf_len)
|
|||
|
||||
retval = rtsx_send_cmd(chip, 0, 250);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -2377,7 +2240,6 @@ int rtsx_write_ppbuf(struct rtsx_chip *chip, u8 *buf, int buf_len)
|
|||
int rtsx_check_chip_exist(struct rtsx_chip *chip)
|
||||
{
|
||||
if (rtsx_readl(chip, 0) == 0xFFFFFFFF) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -2403,7 +2265,6 @@ int rtsx_force_power_on(struct rtsx_chip *chip, u8 ctl)
|
|||
if (mask) {
|
||||
retval = rtsx_write_register(chip, FPDCTL, mask, 0);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -2434,7 +2295,6 @@ int rtsx_force_power_down(struct rtsx_chip *chip, u8 ctl)
|
|||
val = mask;
|
||||
retval = rtsx_write_register(chip, FPDCTL, mask, val);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -644,19 +644,6 @@ struct spi_info {
|
|||
int spi_clock;
|
||||
};
|
||||
|
||||
#ifdef _MSG_TRACE
|
||||
struct trace_msg_t {
|
||||
u16 line;
|
||||
#define MSG_FUNC_LEN 64
|
||||
char func[MSG_FUNC_LEN];
|
||||
#define MSG_FILE_LEN 32
|
||||
char file[MSG_FILE_LEN];
|
||||
#define TIME_VAL_LEN 16
|
||||
u8 timeval_buf[TIME_VAL_LEN];
|
||||
u8 valid;
|
||||
};
|
||||
#endif
|
||||
|
||||
/************/
|
||||
/* LUN mode */
|
||||
/************/
|
||||
|
@ -798,11 +785,6 @@ struct rtsx_chip {
|
|||
|
||||
struct spi_info spi;
|
||||
|
||||
#ifdef _MSG_TRACE
|
||||
struct trace_msg_t trace_msg[TRACE_ITEM_CNT];
|
||||
int msg_idx;
|
||||
#endif
|
||||
|
||||
int auto_delink_cnt;
|
||||
int auto_delink_allowed;
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -275,7 +275,6 @@ int rtsx_send_cmd(struct rtsx_chip *chip, u8 card, int timeout)
|
|||
dev_dbg(rtsx_dev(chip), "chip->int_reg = 0x%x\n",
|
||||
chip->int_reg);
|
||||
err = -ETIMEDOUT;
|
||||
rtsx_trace(chip);
|
||||
goto finish_send_cmd;
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -42,13 +42,11 @@ static int spi_init(struct rtsx_chip *chip)
|
|||
CS_POLARITY_LOW | DTO_MSB_FIRST
|
||||
| SPI_MASTER | SPI_MODE0 | SPI_AUTO);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, SPI_TCTL, EDO_TIMING_MASK,
|
||||
SAMPLE_DELAY_HALF);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -63,38 +61,32 @@ static int spi_set_init_para(struct rtsx_chip *chip)
|
|||
retval = rtsx_write_register(chip, SPI_CLK_DIVIDER1, 0xFF,
|
||||
(u8)(spi->clk_div >> 8));
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, SPI_CLK_DIVIDER0, 0xFF,
|
||||
(u8)(spi->clk_div));
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
retval = switch_clock(chip, spi->spi_clock);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = select_card(chip, SPI_CARD);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = rtsx_write_register(chip, CARD_CLK_EN, SPI_CLK_EN,
|
||||
SPI_CLK_EN);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, CARD_OE, SPI_OUTPUT_EN,
|
||||
SPI_OUTPUT_EN);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -102,7 +94,6 @@ static int spi_set_init_para(struct rtsx_chip *chip)
|
|||
|
||||
retval = spi_init(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -125,7 +116,6 @@ static int sf_polling_status(struct rtsx_chip *chip, int msec)
|
|||
if (retval < 0) {
|
||||
rtsx_clear_spi_error(chip);
|
||||
spi_set_err_code(chip, SPI_BUSY_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -154,7 +144,6 @@ static int sf_enable_write(struct rtsx_chip *chip, u8 ins)
|
|||
if (retval < 0) {
|
||||
rtsx_clear_spi_error(chip);
|
||||
spi_set_err_code(chip, SPI_HW_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -183,7 +172,6 @@ static int sf_disable_write(struct rtsx_chip *chip, u8 ins)
|
|||
if (retval < 0) {
|
||||
rtsx_clear_spi_error(chip);
|
||||
spi_set_err_code(chip, SPI_HW_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -242,7 +230,6 @@ static int sf_erase(struct rtsx_chip *chip, u8 ins, u8 addr_mode, u32 addr)
|
|||
if (retval < 0) {
|
||||
rtsx_clear_spi_error(chip);
|
||||
spi_set_err_code(chip, SPI_HW_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -261,37 +248,31 @@ static int spi_init_eeprom(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_write_register(chip, SPI_CLK_DIVIDER1, 0xFF, 0x00);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, SPI_CLK_DIVIDER0, 0xFF, 0x27);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
retval = switch_clock(chip, clk);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = select_card(chip, SPI_CARD);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = rtsx_write_register(chip, CARD_CLK_EN, SPI_CLK_EN,
|
||||
SPI_CLK_EN);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, CARD_OE, SPI_OUTPUT_EN,
|
||||
SPI_OUTPUT_EN);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -300,13 +281,11 @@ static int spi_init_eeprom(struct rtsx_chip *chip)
|
|||
retval = rtsx_write_register(chip, SPI_CONTROL, 0xFF,
|
||||
CS_POLARITY_HIGH | SPI_EEPROM_AUTO);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, SPI_TCTL, EDO_TIMING_MASK,
|
||||
SAMPLE_DELAY_HALF);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -328,7 +307,6 @@ static int spi_eeprom_program_enable(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_send_cmd(chip, 0, 100);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -341,13 +319,11 @@ int spi_erase_eeprom_chip(struct rtsx_chip *chip)
|
|||
|
||||
retval = spi_init_eeprom(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = spi_eeprom_program_enable(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -364,13 +340,11 @@ int spi_erase_eeprom_chip(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_send_cmd(chip, 0, 100);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = rtsx_write_register(chip, CARD_GPIO_DIR, 0x01, 0x01);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -383,13 +357,11 @@ int spi_erase_eeprom_byte(struct rtsx_chip *chip, u16 addr)
|
|||
|
||||
retval = spi_init_eeprom(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = spi_eeprom_program_enable(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -408,13 +380,11 @@ int spi_erase_eeprom_byte(struct rtsx_chip *chip, u16 addr)
|
|||
|
||||
retval = rtsx_send_cmd(chip, 0, 100);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = rtsx_write_register(chip, CARD_GPIO_DIR, 0x01, 0x01);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -428,7 +398,6 @@ int spi_read_eeprom(struct rtsx_chip *chip, u16 addr, u8 *val)
|
|||
|
||||
retval = spi_init_eeprom(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -448,14 +417,12 @@ int spi_read_eeprom(struct rtsx_chip *chip, u16 addr, u8 *val)
|
|||
|
||||
retval = rtsx_send_cmd(chip, 0, 100);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
wait_timeout(5);
|
||||
retval = rtsx_read_register(chip, SPI_DATA, &data);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -464,7 +431,6 @@ int spi_read_eeprom(struct rtsx_chip *chip, u16 addr, u8 *val)
|
|||
|
||||
retval = rtsx_write_register(chip, CARD_GPIO_DIR, 0x01, 0x01);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -477,13 +443,11 @@ int spi_write_eeprom(struct rtsx_chip *chip, u16 addr, u8 val)
|
|||
|
||||
retval = spi_init_eeprom(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = spi_eeprom_program_enable(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -503,13 +467,11 @@ int spi_write_eeprom(struct rtsx_chip *chip, u16 addr, u8 val)
|
|||
|
||||
retval = rtsx_send_cmd(chip, 0, 100);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = rtsx_write_register(chip, CARD_GPIO_DIR, 0x01, 0x01);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -562,14 +524,12 @@ int spi_read_flash_id(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
len = ((u16)(srb->cmnd[7]) << 8) | srb->cmnd[8];
|
||||
if (len > 512) {
|
||||
spi_set_err_code(chip, SPI_INVALID_COMMAND);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = spi_set_init_para(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
spi_set_err_code(chip, SPI_HW_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -612,14 +572,12 @@ int spi_read_flash_id(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
if (retval < 0) {
|
||||
rtsx_clear_spi_error(chip);
|
||||
spi_set_err_code(chip, SPI_HW_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
if (len) {
|
||||
buf = kmalloc(len, GFP_KERNEL);
|
||||
if (!buf) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
|
@ -627,7 +585,6 @@ int spi_read_flash_id(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
if (retval != STATUS_SUCCESS) {
|
||||
spi_set_err_code(chip, SPI_READ_ERR);
|
||||
kfree(buf);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -660,13 +617,11 @@ int spi_read_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
retval = spi_set_init_para(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
spi_set_err_code(chip, SPI_HW_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
buf = kmalloc(SF_PAGE_LEN, GFP_KERNEL);
|
||||
if (!buf) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
|
@ -720,7 +675,6 @@ int spi_read_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
kfree(buf);
|
||||
rtsx_clear_spi_error(chip);
|
||||
spi_set_err_code(chip, SPI_HW_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -757,14 +711,12 @@ int spi_write_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
retval = spi_set_init_para(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
spi_set_err_code(chip, SPI_HW_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
if (program_mode == BYTE_PROGRAM) {
|
||||
buf = kmalloc(4, GFP_KERNEL);
|
||||
if (!buf) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
|
@ -772,7 +724,6 @@ int spi_write_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
retval = sf_enable_write(chip, SPI_WREN);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
kfree(buf);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -792,14 +743,12 @@ int spi_write_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
kfree(buf);
|
||||
rtsx_clear_spi_error(chip);
|
||||
spi_set_err_code(chip, SPI_HW_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = sf_polling_status(chip, 100);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
kfree(buf);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -814,13 +763,11 @@ int spi_write_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
|
||||
retval = sf_enable_write(chip, SPI_WREN);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
buf = kmalloc(4, GFP_KERNEL);
|
||||
if (!buf) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
|
@ -846,14 +793,12 @@ int spi_write_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
kfree(buf);
|
||||
rtsx_clear_spi_error(chip);
|
||||
spi_set_err_code(chip, SPI_HW_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = sf_polling_status(chip, 100);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
kfree(buf);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -864,19 +809,16 @@ int spi_write_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
|
||||
retval = sf_disable_write(chip, SPI_WRDI);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = sf_polling_status(chip, 100);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
} else if (program_mode == PAGE_PROGRAM) {
|
||||
buf = kmalloc(SF_PAGE_LEN, GFP_KERNEL);
|
||||
if (!buf) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_NOMEM;
|
||||
}
|
||||
|
||||
|
@ -889,7 +831,6 @@ int spi_write_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
retval = sf_enable_write(chip, SPI_WREN);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
kfree(buf);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -909,14 +850,12 @@ int spi_write_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
kfree(buf);
|
||||
rtsx_clear_spi_error(chip);
|
||||
spi_set_err_code(chip, SPI_HW_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = sf_polling_status(chip, 100);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
kfree(buf);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -927,7 +866,6 @@ int spi_write_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
kfree(buf);
|
||||
} else {
|
||||
spi_set_err_code(chip, SPI_INVALID_COMMAND);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -950,37 +888,31 @@ int spi_erase_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
retval = spi_set_init_para(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
spi_set_err_code(chip, SPI_HW_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
if (erase_mode == PAGE_ERASE) {
|
||||
retval = sf_enable_write(chip, SPI_WREN);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = sf_erase(chip, ins, 1, addr);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
} else if (erase_mode == CHIP_ERASE) {
|
||||
retval = sf_enable_write(chip, SPI_WREN);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = sf_erase(chip, ins, 0, 0);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
} else {
|
||||
spi_set_err_code(chip, SPI_INVALID_COMMAND);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -999,13 +931,11 @@ int spi_write_flash_status(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
retval = spi_set_init_para(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
spi_set_err_code(chip, SPI_HW_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = sf_enable_write(chip, ewsr);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1029,7 +959,6 @@ int spi_write_flash_status(struct scsi_cmnd *srb, struct rtsx_chip *chip)
|
|||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_clear_spi_error(chip);
|
||||
spi_set_err_code(chip, SPI_HW_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/string.h>
|
||||
|
||||
#include "rtsx.h"
|
||||
|
||||
#ifdef _MSG_TRACE
|
||||
|
||||
void _rtsx_trace(struct rtsx_chip *chip, const char *file, const char *func,
|
||||
int line)
|
||||
{
|
||||
struct trace_msg_t *msg = &chip->trace_msg[chip->msg_idx];
|
||||
|
||||
file = kbasename(file);
|
||||
dev_dbg(rtsx_dev(chip), "[%s][%s]:[%d]\n", file, func, line);
|
||||
|
||||
strncpy(msg->file, file, MSG_FILE_LEN - 1);
|
||||
strncpy(msg->func, func, MSG_FUNC_LEN - 1);
|
||||
msg->line = (u16)line;
|
||||
get_current_time(msg->timeval_buf, TIME_VAL_LEN);
|
||||
msg->valid = 1;
|
||||
|
||||
chip->msg_idx++;
|
||||
if (chip->msg_idx >= TRACE_ITEM_CNT)
|
||||
chip->msg_idx = 0;
|
||||
}
|
||||
#endif
|
|
@ -1,40 +0,0 @@
|
|||
/* Driver for Realtek PCI-Express card reader
|
||||
* Header file
|
||||
*
|
||||
* Copyright(c) 2009-2013 Realtek Semiconductor Corp. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2, or (at your option) any
|
||||
* later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Author:
|
||||
* Wei WANG (wei_wang@realsil.com.cn)
|
||||
* Micky Ching (micky_ching@realsil.com.cn)
|
||||
*/
|
||||
|
||||
#ifndef __REALTEK_RTSX_TRACE_H
|
||||
#define __REALTEK_RTSX_TRACE_H
|
||||
|
||||
struct rtsx_chip;
|
||||
|
||||
#ifdef _MSG_TRACE
|
||||
void _rtsx_trace(struct rtsx_chip *chip, const char *file, const char *func,
|
||||
int line);
|
||||
#define rtsx_trace(chip) \
|
||||
_rtsx_trace(chip, __FILE__, __func__, __LINE__)
|
||||
#else
|
||||
static inline void rtsx_trace(struct rtsx_chip *chip)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __REALTEK_RTSX_TRACE_H */
|
|
@ -61,7 +61,6 @@ static int xd_set_init_para(struct rtsx_chip *chip)
|
|||
|
||||
retval = switch_clock(chip, xd_card->xd_clock);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -75,13 +74,11 @@ static int xd_switch_clock(struct rtsx_chip *chip)
|
|||
|
||||
retval = select_card(chip, XD_CARD);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = switch_clock(chip, xd_card->xd_clock);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -106,7 +103,6 @@ static int xd_read_id(struct rtsx_chip *chip, u8 id_cmd, u8 *id_buf, u8 buf_len)
|
|||
|
||||
retval = rtsx_send_cmd(chip, XD_CARD, 20);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -178,7 +174,6 @@ static int xd_read_redundant(struct rtsx_chip *chip, u32 page_addr,
|
|||
|
||||
retval = rtsx_send_cmd(chip, XD_CARD, 500);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -199,7 +194,6 @@ static int xd_read_data_from_ppb(struct rtsx_chip *chip, int offset,
|
|||
int retval, i;
|
||||
|
||||
if (!buf || (buf_len < 0)) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -212,7 +206,6 @@ static int xd_read_data_from_ppb(struct rtsx_chip *chip, int offset,
|
|||
retval = rtsx_send_cmd(chip, 0, 250);
|
||||
if (retval < 0) {
|
||||
rtsx_clear_xd_error(chip);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -228,7 +221,6 @@ static int xd_read_cis(struct rtsx_chip *chip, u32 page_addr, u8 *buf,
|
|||
u8 reg;
|
||||
|
||||
if (!buf || (buf_len < 10)) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -250,30 +242,25 @@ static int xd_read_cis(struct rtsx_chip *chip, u32 page_addr, u8 *buf,
|
|||
retval = rtsx_send_cmd(chip, XD_CARD, 250);
|
||||
if (retval == -ETIMEDOUT) {
|
||||
rtsx_clear_xd_error(chip);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = rtsx_read_register(chip, XD_PAGE_STATUS, ®);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
if (reg != XD_GPG) {
|
||||
rtsx_clear_xd_error(chip);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = rtsx_read_register(chip, XD_CTL, ®);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
if (!(reg & XD_ECC1_ERROR) || !(reg & XD_ECC1_UNCORRECTABLE)) {
|
||||
retval = xd_read_data_from_ppb(chip, 0, buf, buf_len);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
if (reg & XD_ECC1_ERROR) {
|
||||
|
@ -282,13 +269,11 @@ static int xd_read_cis(struct rtsx_chip *chip, u32 page_addr, u8 *buf,
|
|||
retval = rtsx_read_register(chip, XD_ECC_BIT1,
|
||||
&ecc_bit);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_read_register(chip, XD_ECC_BYTE1,
|
||||
&ecc_byte);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -307,7 +292,6 @@ static int xd_read_cis(struct rtsx_chip *chip, u32 page_addr, u8 *buf,
|
|||
|
||||
retval = xd_read_data_from_ppb(chip, 256, buf, buf_len);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
if (reg & XD_ECC2_ERROR) {
|
||||
|
@ -316,13 +300,11 @@ static int xd_read_cis(struct rtsx_chip *chip, u32 page_addr, u8 *buf,
|
|||
retval = rtsx_read_register(chip, XD_ECC_BIT2,
|
||||
&ecc_bit);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_read_register(chip, XD_ECC_BYTE2,
|
||||
&ecc_byte);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -338,7 +320,6 @@ static int xd_read_cis(struct rtsx_chip *chip, u32 page_addr, u8 *buf,
|
|||
}
|
||||
} else {
|
||||
rtsx_clear_xd_error(chip);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -424,7 +405,6 @@ static int xd_pull_ctl_disable(struct rtsx_chip *chip)
|
|||
XD_D1_PD |
|
||||
XD_D0_PD);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, CARD_PULL_CTL2, 0xFF,
|
||||
|
@ -433,7 +413,6 @@ static int xd_pull_ctl_disable(struct rtsx_chip *chip)
|
|||
XD_D5_PD |
|
||||
XD_D4_PD);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, CARD_PULL_CTL3, 0xFF,
|
||||
|
@ -442,7 +421,6 @@ static int xd_pull_ctl_disable(struct rtsx_chip *chip)
|
|||
XD_CLE_PD |
|
||||
XD_CD_PU);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, CARD_PULL_CTL4, 0xFF,
|
||||
|
@ -451,7 +429,6 @@ static int xd_pull_ctl_disable(struct rtsx_chip *chip)
|
|||
XD_RE_PD |
|
||||
XD_ALE_PD);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, CARD_PULL_CTL5, 0xFF,
|
||||
|
@ -460,13 +437,11 @@ static int xd_pull_ctl_disable(struct rtsx_chip *chip)
|
|||
SD_CD_PU |
|
||||
SD_CMD_PD);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, CARD_PULL_CTL6, 0xFF,
|
||||
MS_D5_PD | MS_D4_PD);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
} else if (CHECK_PID(chip, 0x5288)) {
|
||||
|
@ -474,25 +449,21 @@ static int xd_pull_ctl_disable(struct rtsx_chip *chip)
|
|||
retval = rtsx_write_register(chip, CARD_PULL_CTL1,
|
||||
0xFF, 0x55);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, CARD_PULL_CTL2,
|
||||
0xFF, 0x55);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, CARD_PULL_CTL3,
|
||||
0xFF, 0x4B);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
retval = rtsx_write_register(chip, CARD_PULL_CTL4,
|
||||
0xFF, 0x69);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
@ -509,7 +480,6 @@ static int reset_xd(struct rtsx_chip *chip)
|
|||
|
||||
retval = select_card(chip, XD_CARD);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -536,14 +506,12 @@ static int reset_xd(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_send_cmd(chip, XD_CARD, 100);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
if (!chip->ft2_fast_mode) {
|
||||
retval = card_power_off(chip, XD_CARD);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -562,13 +530,11 @@ static int reset_xd(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_send_cmd(chip, XD_CARD, 100);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = card_power_on(chip, XD_CARD);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -577,7 +543,6 @@ static int reset_xd(struct rtsx_chip *chip)
|
|||
if (chip->ocp_stat & (SD_OC_NOW | SD_OC_EVER)) {
|
||||
dev_dbg(rtsx_dev(chip), "Over current, OCPSTAT is 0x%x\n",
|
||||
chip->ocp_stat);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
#endif
|
||||
|
@ -601,7 +566,6 @@ static int reset_xd(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_send_cmd(chip, XD_CARD, 100);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -610,7 +574,6 @@ static int reset_xd(struct rtsx_chip *chip)
|
|||
|
||||
retval = xd_set_init_para(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -636,7 +599,6 @@ static int reset_xd(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_send_cmd(chip, XD_CARD, 100);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -651,7 +613,6 @@ static int reset_xd(struct rtsx_chip *chip)
|
|||
|
||||
retval = xd_read_id(chip, READ_ID, id_buf, 4);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -734,7 +695,6 @@ static int reset_xd(struct rtsx_chip *chip)
|
|||
for (j = 0; j < 10; j++) {
|
||||
retval = xd_read_id(chip, READ_ID, id_buf, 4);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -752,19 +712,16 @@ static int reset_xd(struct rtsx_chip *chip)
|
|||
xd_card->addr_cycle = 0;
|
||||
xd_card->capacity = 0;
|
||||
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = xd_read_id(chip, READ_xD_ID, id_buf, 4);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
dev_dbg(rtsx_dev(chip), "READ_xD_ID: 0x%x 0x%x 0x%x 0x%x\n",
|
||||
id_buf[0], id_buf[1], id_buf[2], id_buf[3]);
|
||||
if (id_buf[2] != XD_ID_CODE) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -773,7 +730,6 @@ static int reset_xd(struct rtsx_chip *chip)
|
|||
u32 page_addr;
|
||||
|
||||
if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -814,7 +770,6 @@ static int reset_xd(struct rtsx_chip *chip)
|
|||
|
||||
retval = xd_read_cis(chip, page_addr, buf, 10);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -833,7 +788,6 @@ static int reset_xd(struct rtsx_chip *chip)
|
|||
|
||||
dev_dbg(rtsx_dev(chip), "CIS block: 0x%x\n", xd_card->cis_block);
|
||||
if (xd_card->cis_block == 0xFFFF) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -889,7 +843,6 @@ static int xd_init_l2p_tbl(struct rtsx_chip *chip)
|
|||
xd_card->zone_cnt);
|
||||
|
||||
if (xd_card->zone_cnt < 1) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -898,7 +851,6 @@ static int xd_init_l2p_tbl(struct rtsx_chip *chip)
|
|||
|
||||
xd_card->zone = vmalloc(size);
|
||||
if (!xd_card->zone) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
|
||||
|
@ -1078,19 +1030,16 @@ int reset_xd_card(struct rtsx_chip *chip)
|
|||
|
||||
retval = enable_card_clock(chip, XD_CARD);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = reset_xd(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = xd_init_l2p_tbl(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1107,7 +1056,6 @@ static int xd_mark_bad_block(struct rtsx_chip *chip, u32 phy_blk)
|
|||
dev_dbg(rtsx_dev(chip), "mark block 0x%x as bad block\n", phy_blk);
|
||||
|
||||
if (phy_blk == BLK_NOT_FOUND) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1144,7 +1092,6 @@ static int xd_mark_bad_block(struct rtsx_chip *chip, u32 phy_blk)
|
|||
xd_set_err_code(chip, XD_PRG_ERROR);
|
||||
else
|
||||
xd_set_err_code(chip, XD_TO_ERROR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1162,11 +1109,9 @@ static int xd_init_page(struct rtsx_chip *chip, u32 phy_blk,
|
|||
dev_dbg(rtsx_dev(chip), "Init block 0x%x\n", phy_blk);
|
||||
|
||||
if (start_page > end_page) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
if (phy_blk == BLK_NOT_FOUND) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1203,7 +1148,6 @@ static int xd_init_page(struct rtsx_chip *chip, u32 phy_blk,
|
|||
} else {
|
||||
xd_set_err_code(chip, XD_TO_ERROR);
|
||||
}
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1222,12 +1166,10 @@ static int xd_copy_page(struct rtsx_chip *chip, u32 old_blk, u32 new_blk,
|
|||
old_blk, new_blk);
|
||||
|
||||
if (start_page > end_page) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
if ((old_blk == BLK_NOT_FOUND) || (new_blk == BLK_NOT_FOUND)) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1239,7 +1181,6 @@ static int xd_copy_page(struct rtsx_chip *chip, u32 old_blk, u32 new_blk,
|
|||
retval = rtsx_write_register(chip, CARD_DATA_SOURCE, 0x01,
|
||||
PINGPONG_BUFFER);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -1247,7 +1188,6 @@ static int xd_copy_page(struct rtsx_chip *chip, u32 old_blk, u32 new_blk,
|
|||
if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) {
|
||||
rtsx_clear_xd_error(chip);
|
||||
xd_set_err_code(chip, XD_NO_CARD);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1274,7 +1214,6 @@ static int xd_copy_page(struct rtsx_chip *chip, u32 old_blk, u32 new_blk,
|
|||
if (detect_card_cd(chip,
|
||||
XD_CARD) != STATUS_SUCCESS) {
|
||||
xd_set_err_code(chip, XD_NO_CARD);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1296,7 +1235,6 @@ static int xd_copy_page(struct rtsx_chip *chip, u32 old_blk, u32 new_blk,
|
|||
}
|
||||
} else {
|
||||
xd_set_err_code(chip, XD_TO_ERROR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -1325,7 +1263,6 @@ static int xd_copy_page(struct rtsx_chip *chip, u32 old_blk, u32 new_blk,
|
|||
} else {
|
||||
xd_set_err_code(chip, XD_TO_ERROR);
|
||||
}
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1352,7 +1289,6 @@ static int xd_reset_cmd(struct rtsx_chip *chip)
|
|||
|
||||
retval = rtsx_send_cmd(chip, XD_CARD, 100);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1360,7 +1296,6 @@ static int xd_reset_cmd(struct rtsx_chip *chip)
|
|||
if (((ptr[0] & READY_FLAG) == READY_STATE) && (ptr[1] & XD_RDY))
|
||||
return STATUS_SUCCESS;
|
||||
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1372,7 +1307,6 @@ static int xd_erase_block(struct rtsx_chip *chip, u32 phy_blk)
|
|||
int i, retval;
|
||||
|
||||
if (phy_blk == BLK_NOT_FOUND) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1396,13 +1330,11 @@ static int xd_erase_block(struct rtsx_chip *chip, u32 phy_blk)
|
|||
if (reg & PROGRAM_ERROR) {
|
||||
xd_mark_bad_block(chip, phy_blk);
|
||||
xd_set_err_code(chip, XD_PRG_ERROR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
xd_set_err_code(chip, XD_ERASE_FAIL);
|
||||
retval = xd_reset_cmd(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
continue;
|
||||
|
@ -1412,7 +1344,6 @@ static int xd_erase_block(struct rtsx_chip *chip, u32 phy_blk)
|
|||
if (*ptr & PROGRAM_ERROR) {
|
||||
xd_mark_bad_block(chip, phy_blk);
|
||||
xd_set_err_code(chip, XD_PRG_ERROR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1421,7 +1352,6 @@ static int xd_erase_block(struct rtsx_chip *chip, u32 phy_blk)
|
|||
|
||||
xd_mark_bad_block(chip, phy_blk);
|
||||
xd_set_err_code(chip, XD_ERASE_FAIL);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1454,7 +1384,6 @@ static int xd_build_l2p_tbl(struct rtsx_chip *chip, int zone_no)
|
|||
if (!zone->l2p_table) {
|
||||
zone->l2p_table = vmalloc(2000);
|
||||
if (!zone->l2p_table) {
|
||||
rtsx_trace(chip);
|
||||
goto build_fail;
|
||||
}
|
||||
}
|
||||
|
@ -1463,7 +1392,6 @@ static int xd_build_l2p_tbl(struct rtsx_chip *chip, int zone_no)
|
|||
if (!zone->free_table) {
|
||||
zone->free_table = vmalloc(XD_FREE_TABLE_CNT * 2);
|
||||
if (!zone->free_table) {
|
||||
rtsx_trace(chip);
|
||||
goto build_fail;
|
||||
}
|
||||
}
|
||||
|
@ -1629,7 +1557,6 @@ static int xd_send_cmd(struct rtsx_chip *chip, u8 cmd)
|
|||
|
||||
retval = rtsx_send_cmd(chip, XD_CARD, 200);
|
||||
if (retval < 0) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1702,7 +1629,6 @@ static int xd_read_multiple_pages(struct rtsx_chip *chip, u32 phy_blk,
|
|||
xd_set_err_code(chip, XD_TO_ERROR);
|
||||
goto status_fail;
|
||||
} else {
|
||||
rtsx_trace(chip);
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
@ -1712,7 +1638,6 @@ static int xd_read_multiple_pages(struct rtsx_chip *chip, u32 phy_blk,
|
|||
fail:
|
||||
retval = rtsx_read_register(chip, XD_PAGE_STATUS, ®_val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -1721,7 +1646,6 @@ fail:
|
|||
|
||||
retval = rtsx_read_register(chip, XD_CTL, ®_val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -1764,7 +1688,6 @@ fail:
|
|||
}
|
||||
|
||||
status_fail:
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1781,7 +1704,6 @@ static int xd_finish_write(struct rtsx_chip *chip,
|
|||
dev_dbg(rtsx_dev(chip), "log_blk = 0x%x\n", log_blk);
|
||||
|
||||
if (page_off > xd_card->page_off) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1795,7 +1717,6 @@ static int xd_finish_write(struct rtsx_chip *chip,
|
|||
retval = xd_erase_block(chip, new_blk);
|
||||
if (retval == STATUS_SUCCESS)
|
||||
xd_set_unused_block(chip, new_blk);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
} else {
|
||||
|
@ -1808,7 +1729,6 @@ static int xd_finish_write(struct rtsx_chip *chip,
|
|||
xd_set_unused_block(chip, new_blk);
|
||||
}
|
||||
XD_CLR_BAD_NEWBLK(xd_card);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1842,7 +1762,6 @@ static int xd_prepare_write(struct rtsx_chip *chip,
|
|||
if (page_off) {
|
||||
retval = xd_copy_page(chip, old_blk, new_blk, 0, page_off);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -1912,7 +1831,6 @@ static int xd_write_multiple_pages(struct rtsx_chip *chip, u32 old_blk,
|
|||
xd_set_err_code(chip, XD_TO_ERROR);
|
||||
goto status_fail;
|
||||
} else {
|
||||
rtsx_trace(chip);
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
@ -1942,7 +1860,6 @@ static int xd_write_multiple_pages(struct rtsx_chip *chip, u32 old_blk,
|
|||
fail:
|
||||
retval = rtsx_read_register(chip, XD_DAT, ®_val);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
if (reg_val & PROGRAM_ERROR) {
|
||||
|
@ -1951,7 +1868,6 @@ fail:
|
|||
}
|
||||
|
||||
status_fail:
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1966,7 +1882,6 @@ int xd_delay_write(struct rtsx_chip *chip)
|
|||
dev_dbg(rtsx_dev(chip), "%s\n", __func__);
|
||||
retval = xd_switch_clock(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -1977,7 +1892,6 @@ int xd_delay_write(struct rtsx_chip *chip)
|
|||
delay_write->logblock,
|
||||
delay_write->pageoff);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -2012,14 +1926,12 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
|
||||
retval = xd_switch_clock(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) {
|
||||
chip->card_fail |= XD_CARD;
|
||||
set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -2033,7 +1945,6 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
if (retval != STATUS_SUCCESS) {
|
||||
chip->card_fail |= XD_CARD;
|
||||
set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -2053,7 +1964,6 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
if (retval != STATUS_SUCCESS) {
|
||||
set_sense_type(chip, lun,
|
||||
SENSE_TYPE_MEDIA_WRITE_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -2070,7 +1980,6 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
if (retval != STATUS_SUCCESS) {
|
||||
set_sense_type(chip, lun,
|
||||
SENSE_TYPE_MEDIA_WRITE_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
#endif
|
||||
|
@ -2080,7 +1989,6 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
(new_blk == BLK_NOT_FOUND)) {
|
||||
set_sense_type(chip, lun,
|
||||
SENSE_TYPE_MEDIA_WRITE_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -2091,12 +1999,10 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
STATUS_SUCCESS) {
|
||||
set_sense_type(chip, lun,
|
||||
SENSE_TYPE_MEDIA_NOT_PRESENT);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
set_sense_type(chip, lun,
|
||||
SENSE_TYPE_MEDIA_WRITE_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
#ifdef XD_DELAY_WRITE
|
||||
|
@ -2109,12 +2015,10 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) {
|
||||
set_sense_type(chip, lun,
|
||||
SENSE_TYPE_MEDIA_NOT_PRESENT);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
set_sense_type(chip, lun,
|
||||
SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
#endif
|
||||
|
@ -2123,7 +2027,6 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
if (old_blk == BLK_NOT_FOUND) {
|
||||
set_sense_type(chip, lun,
|
||||
SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -2134,7 +2037,6 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) {
|
||||
chip->card_fail |= XD_CARD;
|
||||
set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -2151,7 +2053,6 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
if (retval != STATUS_SUCCESS) {
|
||||
set_sense_type(chip, lun,
|
||||
SENSE_TYPE_MEDIA_UNRECOVER_READ_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
} else {
|
||||
|
@ -2162,7 +2063,6 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
if (retval != STATUS_SUCCESS) {
|
||||
set_sense_type(chip, lun,
|
||||
SENSE_TYPE_MEDIA_WRITE_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -2184,7 +2084,6 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
chip->card_fail |= XD_CARD;
|
||||
set_sense_type(chip, lun,
|
||||
SENSE_TYPE_MEDIA_NOT_PRESENT);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -2198,7 +2097,6 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
set_sense_type(chip, lun,
|
||||
SENSE_TYPE_MEDIA_WRITE_ERR);
|
||||
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -2207,7 +2105,6 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
if (new_blk == BLK_NOT_FOUND) {
|
||||
set_sense_type(chip, lun,
|
||||
SENSE_TYPE_MEDIA_WRITE_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -2227,7 +2124,6 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) {
|
||||
chip->card_fail |= XD_CARD;
|
||||
set_sense_type(chip, lun, SENSE_TYPE_MEDIA_NOT_PRESENT);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -2237,11 +2133,9 @@ int xd_rw(struct scsi_cmnd *srb, struct rtsx_chip *chip,
|
|||
if (detect_card_cd(chip, XD_CARD) != STATUS_SUCCESS) {
|
||||
set_sense_type(chip, lun,
|
||||
SENSE_TYPE_MEDIA_NOT_PRESENT);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
set_sense_type(chip, lun, SENSE_TYPE_MEDIA_WRITE_ERR);
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
#endif
|
||||
|
@ -2288,20 +2182,17 @@ int xd_power_off_card3v3(struct rtsx_chip *chip)
|
|||
|
||||
retval = disable_card_clock(chip, XD_CARD);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
retval = rtsx_write_register(chip, CARD_OE, XD_OUTPUT_EN, 0);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
|
||||
if (!chip->ft2_fast_mode) {
|
||||
retval = card_power_off(chip, XD_CARD);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
@ -2311,13 +2202,11 @@ int xd_power_off_card3v3(struct rtsx_chip *chip)
|
|||
if (chip->asic_code) {
|
||||
retval = xd_pull_ctl_disable(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
} else {
|
||||
retval = rtsx_write_register(chip, FPGA_PULL_CTL, 0xFF, 0xDF);
|
||||
if (retval) {
|
||||
rtsx_trace(chip);
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
@ -2340,7 +2229,6 @@ int release_xd_card(struct rtsx_chip *chip)
|
|||
|
||||
retval = xd_power_off_card3v3(chip);
|
||||
if (retval != STATUS_SUCCESS) {
|
||||
rtsx_trace(chip);
|
||||
return STATUS_FAIL;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue