Who is calling the probe routine of a module ?

Sep 05, 2006 0 Replies

I am trying to work with a watchdog module on an embedded linux 2.6.11.



The insmod programme calls the watchdog_init function, and the rmmod calls the watchdog_exit function. That works fine.



The problem is that this module as no open/clore/read/write routine. The watchdog is started in watchdog_probe function which is called by nobody. No right now, the watchdog can't work at all.


So my questions are :


- how to call the probe routine from the Linux command line ?



- where are stored the resources variables returned by platform_get_resource?


Here is a simplify version of the driver :


static struct device_driver watchdog_driver = { .name = "name", .bus = &platform_bus_type, .probe = watchdog_probe, .remove = watchdog_remove, };


static int __init watchdog_init(void) { /* ... */ return driver_register(&watchdog_driver); }



static void __exit watchdog_exit(void) { /* ... */ driver_unregister(&watchdog_driver); }



static int watchdog_probe(struct device *device) { struct platform_device *pdev = to_platform_device(device); struct resource * r;



r = platform_get_resource(pdev, IORESOURCE_MEM, 0); base = ioremap(r->start, r->end-r->start+1); /* ... */ }



static void watchdog_remove(void) { /* ... */ iounmap(base); }


module_init(watchdog_init) module_exit(watchdog_exit)



Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required