亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2572 | 回復(fù): 2
打印 上一主題 下一主題

powerpc下I2C的問題? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-07-26 20:15 |只看該作者 |倒序瀏覽
所有的powerpc 的I2C適配器驅(qū)動都在/driver/i2c/busses/I2c-mpc.c文件中。
適配器的驅(qū)動是of_platform_driver,
/* Structure for a device driver */
static struct of_platform_driver mpc_i2c_driver = {
        .match_table        = mpc_i2c_of_match,
        .probe                = fsl_i2c_probe,
        .remove                = __devexit_p(fsl_i2c_remove),
        .driver                = {
                .owner        = THIS_MODULE,
                .name        = DRV_NAME,//mpc-i2c
        },
};
在這里我們看一下of_platform_bus_type,
struct bus_type of_platform_bus_type = {
       .uevent        = of_device_uevent,
};
可以看到,這里沒有match方法。
module_init(fsl_i2c_init) -> fsl_i2c_init -> of_register_platform_driver(&mpc_i2c_driver)
在這里會調(diào)用of_platform總線的match函數(shù)of_platform_bus_match去做設(shè)備和驅(qū)動的匹配,
of_platform_bus_match函數(shù)在比較了驅(qū)動的match-table和設(shè)備node中的相關(guān)字段后( compatible = "fsl-i2c" ),若匹配,進入fsl_i2c_probe。但是我們看到在這里of_platform總線的結(jié)構(gòu)體里沒有match方法。是不是在注冊適配器的時候是不要match設(shè)備的名子的?

論壇徽章:
0
2 [報告]
發(fā)表于 2013-01-18 14:03 |只看該作者
想問struct bus_type of_platform_bus_type = {
       .uevent        = of_device_uevent,
};
這里的uevent什么時候調(diào)用?

論壇徽章:
0
3 [報告]
發(fā)表于 2013-01-18 19:06 |只看該作者
這是platform_bus 下的uevent函數(shù),是在產(chǎn)生事件時才會調(diào)用。如在調(diào)用device_add函數(shù)時,在調(diào)用kobject_uevent(&dev->kobj, KOBJ_ADD)時會產(chǎn)生一個事件,這個函數(shù)中會調(diào)用相應(yīng)的kset_uevent_ops的uevent函數(shù),這里即為dev_uevent(),看一下這個函數(shù)的代碼片段:
static int dev_uevent(struct kset *kset, struct kobject *kobj, struct kobj_uevent_env *env)
{
..............................

       /* have the bus specific function add its stuff */

       if (dev->bus && dev->bus->uevent) {

              retval = dev->bus->uevent(dev, env);

              if (retval)

                     pr_debug("device: '%s': %s: bus uevent() returned %d\n",

                             dev_name(dev), __func__, retval);

       }
.........................
}

從這里看到如果bus->uevent()函數(shù)存在則會調(diào)用它。也就是調(diào)用of_device_uevent.
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP