diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 17:12:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-28 17:12:15 -0400 |
commit | d2a2fc18d98d8ee2dec1542efc7f47beec256144 (patch) | |
tree | dba9097631b9736845920bc4029cc865071b8c65 /drivers/i2c | |
parent | 7bf97e1d5a94b6a71815771bb9452fc2c022c966 (diff) | |
parent | 41101a33026c215a09e5d3549aedfcdae9105515 (diff) |
Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging
Pull i2c updates from Jean Delvare.
Fix up trivial conflict in drivers/i2c/busses/i2c-gpio.c due to include
file cleanup clashing with DT support addition (which did the same
cleanup)
* 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
i2c-algo-bit: Don't resched on clock stretching
i2c: Update the FSF address
i2c: Convert drivers/i2c/muxes/* to use module_i2c_driver()
i2c-i801: Use usleep_range to wait for command completion
i2c-i801: Add device IDs for Intel Lynx Point
i2c-isch: Decrease delay in command completion check loop
i2c-gpio: Use linux/gpio.h rather than asm/gpio.h
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/algos/i2c-algo-bit.c | 5 | ||||
-rw-r--r-- | drivers/i2c/algos/i2c-algo-pca.c | 3 | ||||
-rw-r--r-- | drivers/i2c/algos/i2c-algo-pcf.c | 3 | ||||
-rw-r--r-- | drivers/i2c/algos/i2c-algo-pcf.h | 3 | ||||
-rw-r--r-- | drivers/i2c/busses/Kconfig | 1 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-i801.c | 27 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-isch.c | 10 | ||||
-rw-r--r-- | drivers/i2c/i2c-boardinfo.c | 3 | ||||
-rw-r--r-- | drivers/i2c/i2c-core.c | 3 | ||||
-rw-r--r-- | drivers/i2c/i2c-core.h | 3 | ||||
-rw-r--r-- | drivers/i2c/i2c-dev.c | 3 | ||||
-rw-r--r-- | drivers/i2c/i2c-smbus.c | 3 | ||||
-rw-r--r-- | drivers/i2c/muxes/pca9541.c | 13 | ||||
-rw-r--r-- | drivers/i2c/muxes/pca954x.c | 13 |
14 files changed, 42 insertions, 51 deletions
diff --git a/drivers/i2c/algos/i2c-algo-bit.c b/drivers/i2c/algos/i2c-algo-bit.c index acba1c686c65..7f0b83219744 100644 --- a/drivers/i2c/algos/i2c-algo-bit.c +++ b/drivers/i2c/algos/i2c-algo-bit.c | |||
@@ -15,7 +15,8 @@ | |||
15 | 15 | ||
16 | You should have received a copy of the GNU General Public License | 16 | You should have received a copy of the GNU General Public License |
17 | along with this program; if not, write to the Free Software | 17 | along with this program; if not, write to the Free Software |
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 18 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
19 | MA 02110-1301 USA. | ||
19 | * ------------------------------------------------------------------------- */ | 20 | * ------------------------------------------------------------------------- */ |
20 | 21 | ||
21 | /* With some changes from Frodo Looijaard <frodol@dds.nl>, Kyösti Mälkki | 22 | /* With some changes from Frodo Looijaard <frodol@dds.nl>, Kyösti Mälkki |
@@ -111,7 +112,7 @@ static int sclhi(struct i2c_algo_bit_data *adap) | |||
111 | break; | 112 | break; |
112 | return -ETIMEDOUT; | 113 | return -ETIMEDOUT; |
113 | } | 114 | } |
114 | cond_resched(); | 115 | cpu_relax(); |
115 | } | 116 | } |
116 | #ifdef DEBUG | 117 | #ifdef DEBUG |
117 | if (jiffies != start && i2c_debug >= 3) | 118 | if (jiffies != start && i2c_debug >= 3) |
diff --git a/drivers/i2c/algos/i2c-algo-pca.c b/drivers/i2c/algos/i2c-algo-pca.c index beb9ffe2564b..73133b1063f0 100644 --- a/drivers/i2c/algos/i2c-algo-pca.c +++ b/drivers/i2c/algos/i2c-algo-pca.c | |||
@@ -15,7 +15,8 @@ | |||
15 | * | 15 | * |
16 | * You should have received a copy of the GNU General Public License | 16 | * You should have received a copy of the GNU General Public License |
17 | * along with this program; if not, write to the Free Software | 17 | * along with this program; if not, write to the Free Software |
18 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
19 | * MA 02110-1301 USA. | ||
19 | */ | 20 | */ |
20 | 21 | ||
21 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
diff --git a/drivers/i2c/algos/i2c-algo-pcf.c b/drivers/i2c/algos/i2c-algo-pcf.c index 5eebf562ff31..5c2379522aa9 100644 --- a/drivers/i2c/algos/i2c-algo-pcf.c +++ b/drivers/i2c/algos/i2c-algo-pcf.c | |||
@@ -16,7 +16,8 @@ | |||
16 | * | 16 | * |
17 | * You should have received a copy of the GNU General Public License | 17 | * You should have received a copy of the GNU General Public License |
18 | * along with this program; if not, write to the Free Software | 18 | * along with this program; if not, write to the Free Software |
19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
20 | * MA 02110-1301 USA. | ||
20 | * | 21 | * |
21 | * With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and | 22 | * With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and |
22 | * Frodo Looijaard <frodol@dds.nl>, and also from Martin Bailey | 23 | * Frodo Looijaard <frodol@dds.nl>, and also from Martin Bailey |
diff --git a/drivers/i2c/algos/i2c-algo-pcf.h b/drivers/i2c/algos/i2c-algo-pcf.h index 5263a9eeb8d7..1ec703ee788d 100644 --- a/drivers/i2c/algos/i2c-algo-pcf.h +++ b/drivers/i2c/algos/i2c-algo-pcf.h | |||
@@ -16,7 +16,8 @@ | |||
16 | 16 | ||
17 | You should have received a copy of the GNU General Public License | 17 | You should have received a copy of the GNU General Public License |
18 | along with this program; if not, write to the Free Software | 18 | along with this program; if not, write to the Free Software |
19 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ | 19 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
20 | MA 02110-1301 USA. */ | ||
20 | /* -------------------------------------------------------------------- */ | 21 | /* -------------------------------------------------------------------- */ |
21 | 22 | ||
22 | /* With some changes from Frodo Looijaard <frodol@dds.nl> */ | 23 | /* With some changes from Frodo Looijaard <frodol@dds.nl> */ |
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig index 71c1b0a7535c..d2c5095deeac 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig | |||
@@ -103,6 +103,7 @@ config I2C_I801 | |||
103 | Patsburg (PCH) | 103 | Patsburg (PCH) |
104 | DH89xxCC (PCH) | 104 | DH89xxCC (PCH) |
105 | Panther Point (PCH) | 105 | Panther Point (PCH) |
106 | Lynx Point (PCH) | ||
106 | 107 | ||
107 | This driver can also be built as a module. If so, the module | 108 | This driver can also be built as a module. If so, the module |
108 | will be called i2c-i801. | 109 | will be called i2c-i801. |
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c index 5d2e2816831f..ae2945a5e007 100644 --- a/drivers/i2c/busses/i2c-i801.c +++ b/drivers/i2c/busses/i2c-i801.c | |||
@@ -2,7 +2,7 @@ | |||
2 | Copyright (c) 1998 - 2002 Frodo Looijaard <frodol@dds.nl>, | 2 | Copyright (c) 1998 - 2002 Frodo Looijaard <frodol@dds.nl>, |
3 | Philip Edelbrock <phil@netroedge.com>, and Mark D. Studebaker | 3 | Philip Edelbrock <phil@netroedge.com>, and Mark D. Studebaker |
4 | <mdsxyz123@yahoo.com> | 4 | <mdsxyz123@yahoo.com> |
5 | Copyright (C) 2007, 2008 Jean Delvare <khali@linux-fr.org> | 5 | Copyright (C) 2007 - 2012 Jean Delvare <khali@linux-fr.org> |
6 | Copyright (C) 2010 Intel Corporation, | 6 | Copyright (C) 2010 Intel Corporation, |
7 | David Woodhouse <dwmw2@infradead.org> | 7 | David Woodhouse <dwmw2@infradead.org> |
8 | 8 | ||
@@ -51,6 +51,7 @@ | |||
51 | Patsburg (PCH) IDF 0x1d72 32 hard yes yes yes | 51 | Patsburg (PCH) IDF 0x1d72 32 hard yes yes yes |
52 | DH89xxCC (PCH) 0x2330 32 hard yes yes yes | 52 | DH89xxCC (PCH) 0x2330 32 hard yes yes yes |
53 | Panther Point (PCH) 0x1e22 32 hard yes yes yes | 53 | Panther Point (PCH) 0x1e22 32 hard yes yes yes |
54 | Lynx Point (PCH) 0x8c22 32 hard yes yes yes | ||
54 | 55 | ||
55 | Features supported by this driver: | 56 | Features supported by this driver: |
56 | Software PEC no | 57 | Software PEC no |
@@ -105,7 +106,7 @@ | |||
105 | #define SMBHSTCNT_KILL 2 | 106 | #define SMBHSTCNT_KILL 2 |
106 | 107 | ||
107 | /* Other settings */ | 108 | /* Other settings */ |
108 | #define MAX_TIMEOUT 100 | 109 | #define MAX_RETRIES 400 |
109 | #define ENABLE_INT9 0 /* set to 0x01 to enable - untested */ | 110 | #define ENABLE_INT9 0 /* set to 0x01 to enable - untested */ |
110 | 111 | ||
111 | /* I801 command constants */ | 112 | /* I801 command constants */ |
@@ -145,6 +146,7 @@ | |||
145 | #define PCI_DEVICE_ID_INTEL_PANTHERPOINT_SMBUS 0x1e22 | 146 | #define PCI_DEVICE_ID_INTEL_PANTHERPOINT_SMBUS 0x1e22 |
146 | #define PCI_DEVICE_ID_INTEL_DH89XXCC_SMBUS 0x2330 | 147 | #define PCI_DEVICE_ID_INTEL_DH89XXCC_SMBUS 0x2330 |
147 | #define PCI_DEVICE_ID_INTEL_5_3400_SERIES_SMBUS 0x3b30 | 148 | #define PCI_DEVICE_ID_INTEL_5_3400_SERIES_SMBUS 0x3b30 |
149 | #define PCI_DEVICE_ID_INTEL_LYNXPOINT_SMBUS 0x8c22 | ||
148 | 150 | ||
149 | struct i801_priv { | 151 | struct i801_priv { |
150 | struct i2c_adapter adapter; | 152 | struct i2c_adapter adapter; |
@@ -215,7 +217,7 @@ static int i801_check_post(struct i801_priv *priv, int status, int timeout) | |||
215 | dev_dbg(&priv->pci_dev->dev, "Terminating the current operation\n"); | 217 | dev_dbg(&priv->pci_dev->dev, "Terminating the current operation\n"); |
216 | outb_p(inb_p(SMBHSTCNT(priv)) | SMBHSTCNT_KILL, | 218 | outb_p(inb_p(SMBHSTCNT(priv)) | SMBHSTCNT_KILL, |
217 | SMBHSTCNT(priv)); | 219 | SMBHSTCNT(priv)); |
218 | msleep(1); | 220 | usleep_range(1000, 2000); |
219 | outb_p(inb_p(SMBHSTCNT(priv)) & (~SMBHSTCNT_KILL), | 221 | outb_p(inb_p(SMBHSTCNT(priv)) & (~SMBHSTCNT_KILL), |
220 | SMBHSTCNT(priv)); | 222 | SMBHSTCNT(priv)); |
221 | 223 | ||
@@ -272,11 +274,11 @@ static int i801_transaction(struct i801_priv *priv, int xact) | |||
272 | 274 | ||
273 | /* We will always wait for a fraction of a second! */ | 275 | /* We will always wait for a fraction of a second! */ |
274 | do { | 276 | do { |
275 | msleep(1); | 277 | usleep_range(250, 500); |
276 | status = inb_p(SMBHSTSTS(priv)); | 278 | status = inb_p(SMBHSTSTS(priv)); |
277 | } while ((status & SMBHSTSTS_HOST_BUSY) && (timeout++ < MAX_TIMEOUT)); | 279 | } while ((status & SMBHSTSTS_HOST_BUSY) && (timeout++ < MAX_RETRIES)); |
278 | 280 | ||
279 | result = i801_check_post(priv, status, timeout > MAX_TIMEOUT); | 281 | result = i801_check_post(priv, status, timeout > MAX_RETRIES); |
280 | if (result < 0) | 282 | if (result < 0) |
281 | return result; | 283 | return result; |
282 | 284 | ||
@@ -291,12 +293,12 @@ static void i801_wait_hwpec(struct i801_priv *priv) | |||
291 | int status; | 293 | int status; |
292 | 294 | ||
293 | do { | 295 | do { |
294 | msleep(1); | 296 | usleep_range(250, 500); |
295 | status = inb_p(SMBHSTSTS(priv)); | 297 | status = inb_p(SMBHSTSTS(priv)); |
296 | } while ((!(status & SMBHSTSTS_INTR)) | 298 | } while ((!(status & SMBHSTSTS_INTR)) |
297 | && (timeout++ < MAX_TIMEOUT)); | 299 | && (timeout++ < MAX_RETRIES)); |
298 | 300 | ||
299 | if (timeout > MAX_TIMEOUT) | 301 | if (timeout > MAX_RETRIES) |
300 | dev_dbg(&priv->pci_dev->dev, "PEC Timeout!\n"); | 302 | dev_dbg(&priv->pci_dev->dev, "PEC Timeout!\n"); |
301 | 303 | ||
302 | outb_p(status, SMBHSTSTS(priv)); | 304 | outb_p(status, SMBHSTSTS(priv)); |
@@ -380,12 +382,12 @@ static int i801_block_transaction_byte_by_byte(struct i801_priv *priv, | |||
380 | /* We will always wait for a fraction of a second! */ | 382 | /* We will always wait for a fraction of a second! */ |
381 | timeout = 0; | 383 | timeout = 0; |
382 | do { | 384 | do { |
383 | msleep(1); | 385 | usleep_range(250, 500); |
384 | status = inb_p(SMBHSTSTS(priv)); | 386 | status = inb_p(SMBHSTSTS(priv)); |
385 | } while ((!(status & SMBHSTSTS_BYTE_DONE)) | 387 | } while ((!(status & SMBHSTSTS_BYTE_DONE)) |
386 | && (timeout++ < MAX_TIMEOUT)); | 388 | && (timeout++ < MAX_RETRIES)); |
387 | 389 | ||
388 | result = i801_check_post(priv, status, timeout > MAX_TIMEOUT); | 390 | result = i801_check_post(priv, status, timeout > MAX_RETRIES); |
389 | if (result < 0) | 391 | if (result < 0) |
390 | return result; | 392 | return result; |
391 | 393 | ||
@@ -633,6 +635,7 @@ static DEFINE_PCI_DEVICE_TABLE(i801_ids) = { | |||
633 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF2) }, | 635 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF2) }, |
634 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_DH89XXCC_SMBUS) }, | 636 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_DH89XXCC_SMBUS) }, |
635 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PANTHERPOINT_SMBUS) }, | 637 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PANTHERPOINT_SMBUS) }, |
638 | { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LYNXPOINT_SMBUS) }, | ||
636 | { 0, } | 639 | { 0, } |
637 | }; | 640 | }; |
638 | 641 | ||
diff --git a/drivers/i2c/busses/i2c-isch.c b/drivers/i2c/busses/i2c-isch.c index 6561d275b8cf..f90a6057508d 100644 --- a/drivers/i2c/busses/i2c-isch.c +++ b/drivers/i2c/busses/i2c-isch.c | |||
@@ -47,7 +47,7 @@ | |||
47 | #define SMBBLKDAT (0x20 + sch_smba) | 47 | #define SMBBLKDAT (0x20 + sch_smba) |
48 | 48 | ||
49 | /* Other settings */ | 49 | /* Other settings */ |
50 | #define MAX_TIMEOUT 500 | 50 | #define MAX_RETRIES 5000 |
51 | 51 | ||
52 | /* I2C constants */ | 52 | /* I2C constants */ |
53 | #define SCH_QUICK 0x00 | 53 | #define SCH_QUICK 0x00 |
@@ -68,7 +68,7 @@ static int sch_transaction(void) | |||
68 | { | 68 | { |
69 | int temp; | 69 | int temp; |
70 | int result = 0; | 70 | int result = 0; |
71 | int timeout = 0; | 71 | int retries = 0; |
72 | 72 | ||
73 | dev_dbg(&sch_adapter.dev, "Transaction (pre): CNT=%02x, CMD=%02x, " | 73 | dev_dbg(&sch_adapter.dev, "Transaction (pre): CNT=%02x, CMD=%02x, " |
74 | "ADD=%02x, DAT0=%02x, DAT1=%02x\n", inb(SMBHSTCNT), | 74 | "ADD=%02x, DAT0=%02x, DAT1=%02x\n", inb(SMBHSTCNT), |
@@ -100,12 +100,12 @@ static int sch_transaction(void) | |||
100 | outb(inb(SMBHSTCNT) | 0x10, SMBHSTCNT); | 100 | outb(inb(SMBHSTCNT) | 0x10, SMBHSTCNT); |
101 | 101 | ||
102 | do { | 102 | do { |
103 | msleep(1); | 103 | usleep_range(100, 200); |
104 | temp = inb(SMBHSTSTS) & 0x0f; | 104 | temp = inb(SMBHSTSTS) & 0x0f; |
105 | } while ((temp & 0x08) && (timeout++ < MAX_TIMEOUT)); | 105 | } while ((temp & 0x08) && (retries++ < MAX_RETRIES)); |
106 | 106 | ||
107 | /* If the SMBus is still busy, we give up */ | 107 | /* If the SMBus is still busy, we give up */ |
108 | if (timeout > MAX_TIMEOUT) { | 108 | if (retries > MAX_RETRIES) { |
109 | dev_err(&sch_adapter.dev, "SMBus Timeout!\n"); | 109 | dev_err(&sch_adapter.dev, "SMBus Timeout!\n"); |
110 | result = -ETIMEDOUT; | 110 | result = -ETIMEDOUT; |
111 | } | 111 | } |
diff --git a/drivers/i2c/i2c-boardinfo.c b/drivers/i2c/i2c-boardinfo.c index 10274ffb66d7..f24cc64e2e8c 100644 --- a/drivers/i2c/i2c-boardinfo.c +++ b/drivers/i2c/i2c-boardinfo.c | |||
@@ -13,7 +13,8 @@ | |||
13 | * | 13 | * |
14 | * You should have received a copy of the GNU General Public License | 14 | * You should have received a copy of the GNU General Public License |
15 | * along with this program; if not, write to the Free Software | 15 | * along with this program; if not, write to the Free Software |
16 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
17 | * MA 02110-1301 USA. | ||
17 | */ | 18 | */ |
18 | 19 | ||
19 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index e9c18939eda7..feb7dc359186 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c | |||
@@ -14,7 +14,8 @@ | |||
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ | 17 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
18 | MA 02110-1301 USA. */ | ||
18 | /* ------------------------------------------------------------------------- */ | 19 | /* ------------------------------------------------------------------------- */ |
19 | 20 | ||
20 | /* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi>. | 21 | /* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi>. |
diff --git a/drivers/i2c/i2c-core.h b/drivers/i2c/i2c-core.h index 9f9c57ff6708..18a8fd21d2c2 100644 --- a/drivers/i2c/i2c-core.h +++ b/drivers/i2c/i2c-core.h | |||
@@ -13,7 +13,8 @@ | |||
13 | * | 13 | * |
14 | * You should have received a copy of the GNU General Public License | 14 | * You should have received a copy of the GNU General Public License |
15 | * along with this program; if not, write to the Free Software | 15 | * along with this program; if not, write to the Free Software |
16 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
17 | * MA 02110-1301 USA. | ||
17 | */ | 18 | */ |
18 | 19 | ||
19 | #include <linux/rwsem.h> | 20 | #include <linux/rwsem.h> |
diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c index 10e7f1e76586..45048323b75e 100644 --- a/drivers/i2c/i2c-dev.c +++ b/drivers/i2c/i2c-dev.c | |||
@@ -17,7 +17,8 @@ | |||
17 | 17 | ||
18 | You should have received a copy of the GNU General Public License | 18 | You should have received a copy of the GNU General Public License |
19 | along with this program; if not, write to the Free Software | 19 | along with this program; if not, write to the Free Software |
20 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 20 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
21 | MA 02110-1301 USA. | ||
21 | */ | 22 | */ |
22 | 23 | ||
23 | /* Note that this is a complete rewrite of Simon Vogl's i2c-dev module. | 24 | /* Note that this is a complete rewrite of Simon Vogl's i2c-dev module. |
diff --git a/drivers/i2c/i2c-smbus.c b/drivers/i2c/i2c-smbus.c index f61ccc1e5ea3..9836d08f7a77 100644 --- a/drivers/i2c/i2c-smbus.c +++ b/drivers/i2c/i2c-smbus.c | |||
@@ -16,7 +16,8 @@ | |||
16 | * | 16 | * |
17 | * You should have received a copy of the GNU General Public License | 17 | * You should have received a copy of the GNU General Public License |
18 | * along with this program; if not, write to the Free Software | 18 | * along with this program; if not, write to the Free Software |
19 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
20 | * MA 02110-1301 USA. | ||
20 | */ | 21 | */ |
21 | 22 | ||
22 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
diff --git a/drivers/i2c/muxes/pca9541.c b/drivers/i2c/muxes/pca9541.c index ed699c5aa79d..e0df9b6c66b3 100644 --- a/drivers/i2c/muxes/pca9541.c +++ b/drivers/i2c/muxes/pca9541.c | |||
@@ -393,18 +393,7 @@ static struct i2c_driver pca9541_driver = { | |||
393 | .id_table = pca9541_id, | 393 | .id_table = pca9541_id, |
394 | }; | 394 | }; |
395 | 395 | ||
396 | static int __init pca9541_init(void) | 396 | module_i2c_driver(pca9541_driver); |
397 | { | ||
398 | return i2c_add_driver(&pca9541_driver); | ||
399 | } | ||
400 | |||
401 | static void __exit pca9541_exit(void) | ||
402 | { | ||
403 | i2c_del_driver(&pca9541_driver); | ||
404 | } | ||
405 | |||
406 | module_init(pca9541_init); | ||
407 | module_exit(pca9541_exit); | ||
408 | 397 | ||
409 | MODULE_AUTHOR("Guenter Roeck <guenter.roeck@ericsson.com>"); | 398 | MODULE_AUTHOR("Guenter Roeck <guenter.roeck@ericsson.com>"); |
410 | MODULE_DESCRIPTION("PCA9541 I2C master selector driver"); | 399 | MODULE_DESCRIPTION("PCA9541 I2C master selector driver"); |
diff --git a/drivers/i2c/muxes/pca954x.c b/drivers/i2c/muxes/pca954x.c index 6f8953664636..0e37ef27aa12 100644 --- a/drivers/i2c/muxes/pca954x.c +++ b/drivers/i2c/muxes/pca954x.c | |||
@@ -284,18 +284,7 @@ static struct i2c_driver pca954x_driver = { | |||
284 | .id_table = pca954x_id, | 284 | .id_table = pca954x_id, |
285 | }; | 285 | }; |
286 | 286 | ||
287 | static int __init pca954x_init(void) | 287 | module_i2c_driver(pca954x_driver); |
288 | { | ||
289 | return i2c_add_driver(&pca954x_driver); | ||
290 | } | ||
291 | |||
292 | static void __exit pca954x_exit(void) | ||
293 | { | ||
294 | i2c_del_driver(&pca954x_driver); | ||
295 | } | ||
296 | |||
297 | module_init(pca954x_init); | ||
298 | module_exit(pca954x_exit); | ||
299 | 288 | ||
300 | MODULE_AUTHOR("Rodolfo Giometti <giometti@linux.it>"); | 289 | MODULE_AUTHOR("Rodolfo Giometti <giometti@linux.it>"); |
301 | MODULE_DESCRIPTION("PCA954x I2C mux/switch driver"); | 290 | MODULE_DESCRIPTION("PCA954x I2C mux/switch driver"); |