只编译进内核是没有用的 不会调用 probe函数
需做如下修改:
linux/drivers/mmc/core/bus.c
#ifdef CONFIG_MMC_TEST
static struct mmc_driver *mmc_test_drv;
#endif
static int mmc_bus_probe(struct device *dev)
{
struct mmc_driver *drv = to_mmc_driver(dev->driver);
struct mmc_card *card = mmc_dev_to_card(dev);
#ifdef CONFIG_MMC_TEST
mmc_test_drv->probe(card);
// printk("debug mmc_bus_probe\n");
#endif
return drv->probe(card);
}
/**
* mmc_register_driver - register a media driver
* @drv: MMC media driver
*/
int mmc_register_driver(struct mmc_driver *drv)
{
drv->drv.bus = &mmc_bus_type;
#ifdef CONFIG_MMC_TEST
printk("debug defined config_mmc_test in mmc_register_driver.\n");
if( !strcmp(drv->drv.name, "mmc_test") ){
mmc_test_drv = drv;
}
#endif
return driver_register(&drv->drv);
}
EXPORT_SYMBOL(mmc_register_driver);