Hi, I'm debugging a driver for a (fpga-based soft core) microSD card Linux device, and the existing driver (in drivers/mmc/host/...) makes sense at first sight, but, either due to shortcomings in the softcore (Verilog by way of Migen) "hardware", or the actual Linux driver itself, suffers from intermittent data transfer errors. I find myself wishing I could get a top-down idea of how the Linux mmc layer is put together, so I could examine the driver in question with a critical eye, rather than my current approach, which is best described as "blind-man attempts to comprehend an elephant by touching various locations on its body, hoping the collected experiences will suddenly come into focus and begin to make sense". :D This latter approach gives me information that makes sense on first sight, when taken uncritically, but doesn't help me figure out the "unknown unknowns" :) The alternative, of course, would be to read the actual source code in "drivers/mmc/core/..." until I "know it by heart", and then look at my (and a few other existing) drivers in "drivers/mmc/host/..." to try and get an idea of what I'm missing. I'll go with the latter if necessary, but would prefer a gentler introduction to "drivers/mmc". Any (link, pointer to) a tutorial, assuming one exists, would be MUCH appreciated! Thanks, --Gabriel _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies