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

Commit b6fbd29c authored by wwang's avatar wwang Committed by Greg Kroah-Hartman
Browse files

staging:rts_pstor:Fix SDIO issue



Fix a bug that SDIO and SD normal card would appear simultaneously if a SDIO card inserted.

Signed-off-by: default avatarwwang <wei_wang@realsil.com.cn>
Acked-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 963ff774
Loading
Loading
Loading
Loading
+15 −16
Original line number Diff line number Diff line
@@ -3134,41 +3134,40 @@ int reset_sd_card(struct rtsx_chip *chip)

	if (chip->sd_ctl & RESET_MMC_FIRST) {
		retval = reset_mmc(chip);
		if ((retval != STATUS_SUCCESS) && !sd_check_err_code(chip, SD_NO_CARD)) {
			retval = reset_sd(chip);
		if (retval != STATUS_SUCCESS) {
				if (CHECK_PID(chip, 0x5209)) {
					retval = sd_change_bank_voltage(chip, SD_IO_3V3);
			if (sd_check_err_code(chip, SD_NO_CARD))
				TRACE_RET(chip, STATUS_FAIL);

			retval = reset_sd(chip);
			if (retval != STATUS_SUCCESS) {
				if (CHECK_PID(chip, 0x5209))
					sd_change_bank_voltage(chip, SD_IO_3V3);

				TRACE_RET(chip, STATUS_FAIL);
			}
		}
			}
		}
	} else {
		retval = reset_sd(chip);
		if (retval != STATUS_SUCCESS) {
			if (sd_check_err_code(chip, SD_NO_CARD)) {
			if (sd_check_err_code(chip, SD_NO_CARD))
				TRACE_RET(chip, STATUS_FAIL);
			}

			if (CHECK_PID(chip, 0x5209)) {
				retval = sd_change_bank_voltage(chip, SD_IO_3V3);
				if (retval != STATUS_SUCCESS) {
				if (retval != STATUS_SUCCESS)
					TRACE_RET(chip, STATUS_FAIL);
			}
			}

			if (!chip->sd_io) {
			if (chip->sd_io) {
				TRACE_RET(chip, STATUS_FAIL);
			} else {
				retval = reset_mmc(chip);
				if (retval != STATUS_SUCCESS)
					TRACE_RET(chip, STATUS_FAIL);
			}
		}
	}

	if (retval != STATUS_SUCCESS) {
		TRACE_RET(chip, STATUS_FAIL);
	}

	retval = sd_set_clock_divider(chip, SD_CLK_DIVIDE_0);
	if (retval != STATUS_SUCCESS) {
		TRACE_RET(chip, STATUS_FAIL);