| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
| |
code.
o Use NULL in preference to 0 for a few pointers.
o default to bus timing normal, like we default to bus_width_1.
|
| |
|
|
|
|
| |
Make requests logging controllable by hw.mmc.debug sysctl.
|
|
|
|
|
|
| |
cards people have today support high speed mode, so the timing field
would be initialized to bus_timing_hs, but there are some slow
cards...
|
| |
|
|
|
|
|
| |
Also, report a few other things under boot verbose.
Small style nit to make new code look like old code in this file.
|
|
|
|
| |
bus frequency.
|
|
|
|
|
|
|
|
|
|
|
| |
Now it is possible to suspend/resume with inserted and active card.
To reinitialize card on resume and to detect card change while suspended,
implement bus rescan routines. It can also be used by controllers without
card presence detection signals or with multiple cards per slot support.
While there, cleanup msleep() usage. We have no any rights to exit without
"request done" signal from driver as it could lead to modify after free.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
sdhci supports up to 65535 blocks transfers, at91_mci - one block.
Enable multiblock operations disabled before to follow at91_mci driver
limitations.
Reviewed by: imp@
|
|
|
|
| |
constraints required by the card.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Erase operation gives card's logic information about unused areas to help it
implement wear-leveling with lower overhead comparing to usual writing.
Erase is much faster then write and does not depends on data bus speed.
Also as result of hitting in-card write logic optimizations I have measured
up to 50% performance boost on writing undersized blocks into preerased areas.
At the same time there are strict limitations on size and allignment of erase
operations. We can erase only blocks aligned to the erase sector size and
with size multiple of it. Different cards has different erase sector size
which usually varies from 64KB to 4MB. SD cards actually allow to erase
smaller blocks, but it is much more expensive as it is implemented via
read-erase-write sequence and so not sutable for the BIO_DELETE purposes.
Reviewed by: imp@
|
|
|
|
|
|
|
| |
There are lot of cards with uneven sizes and too strong rounding
will lead to very significant rounding errors.
Reviewed by: imp@
|
| |
|
|
|
|
|
|
| |
Move nested tertiary operator expressions into their own function.
Remove extra blank line.
cache sd->disk in 'd' to make the code easier to read.
|
| |
|
|
|
|
|
| |
log message in a way a bit more common for disk devices. Also it will allow
mmcsd driver to use MMC/SD specific commands when needed.
|
| |
|
|
|
|
|
|
|
| |
have in common right now is a memset. This saves a parameter to
these routines, as well as a level of indentation.
o Make mmc_get_bits a little clearer... It really only works on 128-bit
registers right now.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
- add MMC support.
- add SDHC support.
- add 4 and 8 bit bus width support.
- add High Speed bus timing support.
|
|
|
|
| |
Make mmc_get_media_size now return an off_t and remove now useless cast.
|
|
|
|
|
| |
may need to ask the host controller for the right number to use
here...
|
|
|
|
|
|
|
|
|
| |
disabled by default because there's problems with it on AT91RM9200,
currently the only host controller in the tree. I've not had time to
track those problems to ground. I'm committing because this is
important for other host controllers that are in the pipeline.
Submitted by: mav@
|
| |
|
|
|
|
|
|
|
| |
do it for us. There may be commands we have to wait for that need to
set data.
Submitted by: mav@
|
|
|
|
|
|
|
|
|
| |
them):
#define<tab>
zero memory when we allocate it
Put device name in error message.
Submitted by: mav@
|
|
|
|
| |
Submitted by: mav@
|
|
|
|
| |
like them and they don't add enough to be worth standing out.
|
|
|
|
|
|
|
| |
the device in question, rather than the bus doing the requesting. Fix
it so that it is the bus.
Submitted by: mav@
|
| |
|
|
|
|
| |
Submitted by: mav@
|
|
|
|
| |
Submitted by: mav@
|
|
|
|
|
|
|
| |
device attach time. We may need to read this more often in the
future, but for now simplicity of implementation wins.
Submitted by: mav@
|
|
|
|
|
|
|
| |
for other things. Mask out the voltage only bits when returning the
Vdd mask for voltage computation.
Submitted by: mav@
|
|
|
|
|
|
| |
technology. Make mmc conform to that.
Submitted by: mav@
|
|
|
|
| |
Submitted by: mav@
|
|
|
|
|
|
|
|
|
|
|
| |
to kproc_xxx as they actually make whole processes.
Thos makes way for us to add REAL kthread_create() and friends
that actually make theads. it turns out that most of these
calls actually end up being moved back to the thread version
when it's added. but we need to make this cosmetic change first.
I'd LOVE to do this rename in 7.0 so that we can eventually MFC the
new kthread_xxx() calls.
|
|
|
|
|
|
|
|
|
|
|
|
| |
application specific SEND_OP_COND (CMD55 + ACMD41), go ahead and allow
100 tries. This gives a timeout of a second rather than the ~100ms
the old style produces.
I've had one old 16MB SD card which needs the extra time. I've now
had reports from the field that other cards need this too.
Originally done at BSDcan 2007 while waiting to give my embedding
madness minitalk.
|
|
|
|
|
|
|
|
|
| |
SD Simplified specification, as well as other SD and SDIO
implemenations I've examined, suggest this disclaimer may be required.
It is unclear to me exactly what the license would be for, or why it
might be required. Err on the side of caution and include this
disclaimer so anybody deploying this code can judge for themselves. I
have no further unformation about the details.
|
|
|
|
|
| |
Submitted by: Andrea Bittau
(Andrea may have updated patches, but I've tested these)
|
| |
|
|
should be easily adapted to SD 2.0 (aka SDHC), SDIO, MMC and MMCplus
cards. At the present time, there's only one bridge driver for the
ARM9 based Atmel AT91RM9200.
|