of/i2c: Fix request module by alias
authorDavid Daney <ddaney@caviumnetworks.com>
Tue, 16 Nov 2010 22:42:14 +0000 (14:42 -0800)
committerGrant Likely <grant.likely@secretlab.ca>
Fri, 24 Dec 2010 08:28:54 +0000 (01:28 -0700)
commit020862648445d7c1b12ea213c152f27def703f3b
tree4306b2eb5c46cd8f43d0be2cf9918a38b217450e
parent5e2f55c6aaf4865081c46bf53664c8b5da8dc49e
of/i2c: Fix request module by alias

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 <ddaney@caviumnetworks.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
drivers/of/of_i2c.c