Hi all,
I'm stuck at something that at first looked like something not to difficult. The main idea is that we don't want to have all uarts initialized with default tty driver from TI. Therefore, we remove the entries for the uarts in the list in ../mach-omap2/omap_hwmod_33xx_data.c. Since the platform device/driver frame work is used here, it would be sufficient to register a omap_uart device to the platform and the binding would automatically load the omap_serial driver. So that's the theory.
To have this ability, I want to have function omap_device_build from ../plat-omap/omap_device.c being exported so that I can use it from my own kernel module. I belief that this should be possible by the macro EXPORT_SYMBOL. However, after a couple of hours trying to do so without success I went a step back and tried to export just a dummy function (that basically just prints something on the screen) which I added in ../plat-omap/omap_device.c. But even this didn't work. When I loaded my kernel module that would use this dummy function I just get the error that symbol could not be found
Unknown symbol dummy(err 0)
insmod: can't insert 'rs485_uart.ko': unknown symbol in module, or unknown parameter
However, if I grep /proc/kallsyms for my dummy function I find an entry. I'm now wondering why this does not work. I don't have any problem exporting a function from a kernel module and using it in another one. But some how it does not work the same way if I try to export the function omap_device_build.
What am I missing here. Any hint is highly appreciated.
Sam