On 07/22/10 21:56, Pavan Savoy wrote: > Randy, > > On Fri, Jul 23, 2010 at 1:23 AM, Randy Dunlap <randy.dunlap@xxxxxxxxxx> wrote: >> On Thu, 22 Jul 2010 05:32:04 -0500 pavan_savoy@xxxxxx wrote: >> >>> From: Pavan Savoy <pavan_savoy@xxxxxx> >>> >>> The following patches cleanup bit of a mess and also adds functionality to protocol drivers. >>> with the 3rd patch now providing context to even the protocol drivers, the single device limit >>> or support for multiple devices would be easier to implement. >>> >>> These patches depend on the previously submitted >>> 0001-drivers-staging-ti-st-make-use-of-linux-err-codes.patch >>> commit d39d49b393d94f4137cee4f64526a4695352f183 >>> >>> Pavan Savoy (3): >>> drivers:staging:ti-st: smarten, reduce logs >>> drivers:staging:ti-st: cleanup code comments >>> drivers:staging:ti-st: give proto drivers context >>> >>> drivers/staging/ti-st/bt_drv.c | 23 +++++--- >>> drivers/staging/ti-st/st.h | 52 +++++++++-------- >>> drivers/staging/ti-st/st_core.c | 118 +++++++++++++++++++-------------------- >>> drivers/staging/ti-st/st_core.h | 74 +++++++++++++++++-------- >>> drivers/staging/ti-st/st_kim.c | 73 ++++++++++++++---------- >>> drivers/staging/ti-st/st_kim.h | 77 ++++++++++++++++--------- >>> drivers/staging/ti-st/st_ll.c | 4 +- >>> drivers/staging/ti-st/st_ll.h | 9 +++- >>> 8 files changed, 255 insertions(+), 175 deletions(-) >> >> Hi, >> >> I have reported this error a few times. Where is the patch for it?? >> >> ERROR: "st_get_plat_device" [drivers/staging/ti-st/st_drv.ko] undefined! > > > Yes, on one of the earlier patch sets, I had mentioned that the ST > driver being a platform device, needs definition in any of the > arch/XX/mach-XX/board-XX.c or devices.c or somewhere... > > and hence it is in that board-XX.c file that the symbol > st_get_plat_device needs to be exported, the reason for that being, > > ST driver being both a TTY ldisc driver and platform driver, in TTY > contexts it would need to refer to platform driver's data. So it does > a st_get_plat_device which returns the platform device structure, and > then does a dev_getdrvdata from it. > > here's a snippet of code ... > /* > * ST related functions related functions > */ > #include <linux/platform_device.h> > > long gpios[] = { 55, -1, -1 }; > static struct platform_device ti_st_device = { > .name = "kim", > .id = -1, > .dev.platform_data = &gpios, > }; > > struct platform_device *st_get_plat_device(void) > { > return &ti_st_device; > } > EXPORT_SYMBOL(st_get_plat_device); > > static __init int add_ti_st_device(void) > { > platform_device_register(&ti_st_device); > dev_info(&ti_st_device.dev,"registered platform TI ST device\n"); > > return 0; > } > device_initcall(add_ti_st_device); > > > We have that in our local trees in arch/arm/mach-omap2/board-sdp4430.c Thanks for the explanation. Is the driver platform-specific? E.g., should it not even be built on x86? -- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel