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

Commit cdeebadd authored by Madhusudhan Chikkature's avatar Madhusudhan Chikkature Committed by Linus Torvalds
Browse files

omap hsmmc: fix a bug in card remove scenario



The reset of data lines when the card is removed from the cage results in
a failure.The failure is seen if the card is removed from the cage when TC
is pending after a CMD with data received CC.The reset logic leaves the
controller in a state where niether a TC is received nor DTO.

The rest code can be safely removed here since it is taken care in the IRQ
handler.

Signed-off-by: default avatarMadhusudhan Chikkature <madhu.cr@ti.com>
Cc: Adrian Hunter <adrian.hunter@nokia.com>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 2a481800
Loading
Loading
Loading
Loading
+2 −7
Original line number Original line Diff line number Diff line
@@ -1179,16 +1179,11 @@ static void omap_hsmmc_detect(struct work_struct *work)
		carddetect = -ENOSYS;
		carddetect = -ENOSYS;
	}
	}


	if (carddetect) {
	if (carddetect)
		mmc_detect_change(host->mmc, (HZ * 200) / 1000);
		mmc_detect_change(host->mmc, (HZ * 200) / 1000);
	} else {
	else
		mmc_host_enable(host->mmc);
		omap_hsmmc_reset_controller_fsm(host, SRD);
		mmc_host_lazy_disable(host->mmc);

		mmc_detect_change(host->mmc, (HZ * 50) / 1000);
		mmc_detect_change(host->mmc, (HZ * 50) / 1000);
}
}
}


/*
/*
 * ISR for handling card insertion and removal
 * ISR for handling card insertion and removal