svn commit: r335367 - head/sys/cam/mmc
Ilya Bakulin
kibab at FreeBSD.org
Tue Jun 19 11:28:51 UTC 2018
Author: kibab
Date: Tue Jun 19 11:28:50 2018
New Revision: 335367
URL: https://svnweb.freebsd.org/changeset/base/335367
Log:
Don't try to turn power down MMC bus if it is already down
Regulator framework doens't like turning off already turned off
regulators, so we get panic on AllWinner boards.
Approved by: imp (mentor)
Differential Revision: https://reviews.freebsd.org/D15890
Modified:
head/sys/cam/mmc/mmc_xpt.c
Modified: head/sys/cam/mmc/mmc_xpt.c
==============================================================================
--- head/sys/cam/mmc/mmc_xpt.c Tue Jun 19 11:25:40 2018 (r335366)
+++ head/sys/cam/mmc/mmc_xpt.c Tue Jun 19 11:28:50 2018 (r335367)
@@ -574,14 +574,16 @@ mmcprobe_start(struct cam_periph *periph, union ccb *s
/* FALLTHROUGH */
case PROBE_IDENTIFY:
xpt_path_inq(&start_ccb->cpi, periph->path);
-
CAM_DEBUG(start_ccb->ccb_h.path, CAM_DEBUG_PROBE, ("Start with PROBE_RESET\n"));
- init_standard_ccb(start_ccb, XPT_SET_TRAN_SETTINGS);
- cts->ios.power_mode = power_off;
- cts->ios_valid = MMC_PM;
+ init_standard_ccb(start_ccb, XPT_GET_TRAN_SETTINGS);
xpt_action(start_ccb);
- mtx_sleep(periph, p_mtx, 0, "mmcios", 100);
-
+ if (cts->ios.power_mode != power_off) {
+ init_standard_ccb(start_ccb, XPT_SET_TRAN_SETTINGS);
+ cts->ios.power_mode = power_off;
+ cts->ios_valid = MMC_PM;
+ xpt_action(start_ccb);
+ mtx_sleep(periph, p_mtx, 0, "mmcios", 100);
+ }
/* mmc_power_up */
/* Get the host OCR */
init_standard_ccb(start_ccb, XPT_GET_TRAN_SETTINGS);
More information about the svn-src-head
mailing list