[lkml]   [2010]   [Nov]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH] of: Request module by alias in of_i2c.c
    If we are registering an i2c device that has a device tree node like
    this real-world example:

    rtc@68 {
    compatible = "dallas,ds1337";
    reg = <0x68>;

    of_i2c_register_devices() will try to load a module called ds1337.ko.
    There is no such module, so it will fail. If we look in modules.alias
    we will find entries like these:

    alias i2c:ds1339 rtc_ds1307
    alias i2c:ds1338 rtc_ds1307
    alias i2c:ds1337 rtc_ds1307
    alias i2c:ds1307 rtc_ds1307
    alias i2c:ds1374 rtc_ds1374

    The module we want is really called rtc_ds1307.ko. If we request a
    module called "i2c:ds1337", the userspace module loader will do the
    right thing (unless it is busybox) and load rtc_ds1307.ko. So we add
    the I2C_MODULE_PREFIX to the request_module() string.

    Signed-off-by: David Daney <>
    drivers/of/of_i2c.c | 2 +-
    1 files changed, 1 insertions(+), 1 deletions(-)

    diff --git a/drivers/of/of_i2c.c b/drivers/of/of_i2c.c
    index c85d3c7..f37fbeb 100644
    --- a/drivers/of/of_i2c.c
    +++ b/drivers/of/of_i2c.c
    @@ -61,7 +61,7 @@ void of_i2c_register_devices(struct i2c_adapter *adap)
    info.of_node = of_node_get(node);
    info.archdata = &dev_ad;

    - request_module("%s", info.type);
    + request_module("%s%s", I2C_MODULE_PREFIX, info.type);

    result = i2c_new_device(adap, &info);
    if (result == NULL) {

     \ /
      Last update: 2010-11-16 23:45    [W:0.020 / U:4.876 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site