Comment 101 for bug 53923

Revision history for this message
Mackenzie Morgan (maco.m) wrote : Re: tifm: Texas Instruments Card reader not working

linux/mmc/protocol.h does not appear to be the only thing that is needed. The struct mmc_host structure is missing the max_sectors member in the linux/mmc/host.h file and the version of the module that comes with feisty 2.6.20-14 is 0.7. The newest version is the one to which Andrew is referring and that is version 0.8. It appears that the linux/mmc/host.h file may need to be updated but that may affect other mmc-related modules in the kernel.

The linux/mmc/host.h file from the kernel also #includes linux/mmc/mmc.h which causes additional compilation problems. Replacing that with linux/mmc/core.h got the module to compile and then it works. Maybe the solution going forward is to update the 2.6.20 sources to use 2.6.20.6 instead of 2.6.20.4 and include version 0.8 of the tifm driver?

^^^^^^^^^^^
To that: where do we get those files? It looks like the kernel is one big text file packaged up instead a whole bunch of .c and .h files. 2.6.20.6 & 2.6.20.7 don't have protocol.h mentioned anywhere. Also looks like the kernel part is just a patch (it's called patch-2.6.20.7) with a bunch of diffs (I'm clicking on the .bz2's with the names of the kernels in http://www.kernel.org/pub/linux/kernel/v2.6/ is that where I should be getting the sources? ). 2.6.20 has protocol.h and those structs mentioned. Should I copy the text regarding them and save them as the above-named files? I'm compiling in ~/src/tifm, so would I put those files in ~/src/tifm/linux/mmc/? The tifm 0.8 tarball I downloaded doesn't have a linux/mmc folder at all. I downloaded it from the link that was provided above.

I attached the part of the 2.6.20 that I think is relevant. Can you tell me if I have the right stuff and what to do with it to compile the modules properly?