Switch eMMC cards to HS200 when both the card and the host support it,
falling back to high speed on failure. Bus settings changes now wait for
the SIM to complete, which runs from its own taskqueue. Also fix a race
where a new request could be lost when the SIM task cleared the current
request after completing it, and fail bios queued for a partition whose
switch failed.
Details
- Reviewers
mmel imp - Group Reviewers
cam arm64 - Commits
- rG5728d1bb2ba0: mmccam: Add HS200 support for eMMC
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Would it be too much if I asked to do the factoring out of sdda_set_host_ios() upfront?
| sys/cam/mmc/mmc_da.c | ||
|---|---|---|
| 1048 | so this is a blocking call. Is that OK? | |
| sys/cam/mmc/mmc_da.c | ||
|---|---|---|
| 1048 | Yes, this is intended. Changing the host settings can sleep (clock change, | |
The code looks good, and make things safer. Not sure I understand the comment I flagged, but that's likely nothing.
| sys/cam/mmc/mmc_sim.c | ||
|---|---|---|
| 88 | This says release thee sim, but it looks like it's just finishing the transaction with xpt_done(). I'm not sure I understand the comment I guess... release it how? Maybe there's a better word? | |
| sys/cam/mmc/mmc_sim.c | ||
|---|---|---|
| 88 | Release the sim is the = NULL just after, mmc_cam_sim_default_action return CAM_BUSY if it's set and that was a race I wanted to avoid. | |