diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-29 22:56:20 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-29 22:56:20 -0500 |
commit | f7a6ad9fa24e4511a143e2b7b8a0d55864fe2edf (patch) | |
tree | c8bdb1a08729439fc8846c024ded296b9ef3b988 /drivers/i2c | |
parent | 9076e0cae70c5d6ddb9a0284a20885b2b8814416 (diff) | |
parent | 6ff4b105163223741f5a82804f9695221017ae42 (diff) |
Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull more i2c updates from Wolfram Sang:
"Mostly bugfixes, small but wanted cleanups, and Paul's init.h removal
applied"
* 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
i2c: rcar: fix NACK error code
i2c: update i2c_algorithm documentation
i2c: rcar: use devm_clk_get to ensure clock is properly ref-counted
i2c: rcar: do not print error if device nacks transfer
i2c: rely on driver core when sanitizing devices
i2c: delete non-required instances of include <linux/init.h>
i2c: acorn: is tristate and should use module.h
i2c: piix4: Standardize log messages
i2c: piix4: Use different message for AMD Auxiliary SMBus Controller
i2c: piix4: Add support for AMD ML and CZ SMBus changes
Diffstat (limited to 'drivers/i2c')
46 files changed, 48 insertions, 75 deletions
diff --git a/drivers/i2c/algos/i2c-algo-bit.c b/drivers/i2c/algos/i2c-algo-bit.c index b7a6acfcb300..65ef9664d5da 100644 --- a/drivers/i2c/algos/i2c-algo-bit.c +++ b/drivers/i2c/algos/i2c-algo-bit.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <linux/kernel.h> | 25 | #include <linux/kernel.h> |
26 | #include <linux/module.h> | 26 | #include <linux/module.h> |
27 | #include <linux/delay.h> | 27 | #include <linux/delay.h> |
28 | #include <linux/init.h> | ||
29 | #include <linux/errno.h> | 28 | #include <linux/errno.h> |
30 | #include <linux/sched.h> | 29 | #include <linux/sched.h> |
31 | #include <linux/i2c.h> | 30 | #include <linux/i2c.h> |
diff --git a/drivers/i2c/algos/i2c-algo-pca.c b/drivers/i2c/algos/i2c-algo-pca.c index f892a424009b..8b10f88b13d9 100644 --- a/drivers/i2c/algos/i2c-algo-pca.c +++ b/drivers/i2c/algos/i2c-algo-pca.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/moduleparam.h> | 24 | #include <linux/moduleparam.h> |
25 | #include <linux/delay.h> | 25 | #include <linux/delay.h> |
26 | #include <linux/jiffies.h> | 26 | #include <linux/jiffies.h> |
27 | #include <linux/init.h> | ||
28 | #include <linux/errno.h> | 27 | #include <linux/errno.h> |
29 | #include <linux/i2c.h> | 28 | #include <linux/i2c.h> |
30 | #include <linux/i2c-algo-pca.h> | 29 | #include <linux/i2c-algo-pca.h> |
diff --git a/drivers/i2c/algos/i2c-algo-pcf.c b/drivers/i2c/algos/i2c-algo-pcf.c index 5c2379522aa9..34370090b753 100644 --- a/drivers/i2c/algos/i2c-algo-pcf.c +++ b/drivers/i2c/algos/i2c-algo-pcf.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <linux/kernel.h> | 30 | #include <linux/kernel.h> |
31 | #include <linux/module.h> | 31 | #include <linux/module.h> |
32 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
33 | #include <linux/init.h> | ||
34 | #include <linux/errno.h> | 33 | #include <linux/errno.h> |
35 | #include <linux/i2c.h> | 34 | #include <linux/i2c.h> |
36 | #include <linux/i2c-algo-pcf.h> | 35 | #include <linux/i2c-algo-pcf.h> |
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig index 6bcdea5856af..f5ed03164d86 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig | |||
@@ -152,6 +152,7 @@ config I2C_PIIX4 | |||
152 | ATI SB700/SP5100 | 152 | ATI SB700/SP5100 |
153 | ATI SB800 | 153 | ATI SB800 |
154 | AMD Hudson-2 | 154 | AMD Hudson-2 |
155 | AMD ML | ||
155 | AMD CZ | 156 | AMD CZ |
156 | Serverworks OSB4 | 157 | Serverworks OSB4 |
157 | Serverworks CSB5 | 158 | Serverworks CSB5 |
diff --git a/drivers/i2c/busses/i2c-acorn.c b/drivers/i2c/busses/i2c-acorn.c index ed9f48d566db..9d7be5af2bf2 100644 --- a/drivers/i2c/busses/i2c-acorn.c +++ b/drivers/i2c/busses/i2c-acorn.c | |||
@@ -12,7 +12,7 @@ | |||
12 | * On Acorn machines, the following i2c devices are on the bus: | 12 | * On Acorn machines, the following i2c devices are on the bus: |
13 | * - PCF8583 real time clock & static RAM | 13 | * - PCF8583 real time clock & static RAM |
14 | */ | 14 | */ |
15 | #include <linux/init.h> | 15 | #include <linux/module.h> |
16 | #include <linux/i2c.h> | 16 | #include <linux/i2c.h> |
17 | #include <linux/i2c-algo-bit.h> | 17 | #include <linux/i2c-algo-bit.h> |
18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
diff --git a/drivers/i2c/busses/i2c-ali1535.c b/drivers/i2c/busses/i2c-ali1535.c index 3f491815e2c4..7d60d3a1f621 100644 --- a/drivers/i2c/busses/i2c-ali1535.c +++ b/drivers/i2c/busses/i2c-ali1535.c | |||
@@ -58,7 +58,6 @@ | |||
58 | #include <linux/delay.h> | 58 | #include <linux/delay.h> |
59 | #include <linux/ioport.h> | 59 | #include <linux/ioport.h> |
60 | #include <linux/i2c.h> | 60 | #include <linux/i2c.h> |
61 | #include <linux/init.h> | ||
62 | #include <linux/acpi.h> | 61 | #include <linux/acpi.h> |
63 | #include <linux/io.h> | 62 | #include <linux/io.h> |
64 | 63 | ||
diff --git a/drivers/i2c/busses/i2c-ali1563.c b/drivers/i2c/busses/i2c-ali1563.c index 84ccd9496a5e..4611e4754a67 100644 --- a/drivers/i2c/busses/i2c-ali1563.c +++ b/drivers/i2c/busses/i2c-ali1563.c | |||
@@ -20,7 +20,6 @@ | |||
20 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
21 | #include <linux/i2c.h> | 21 | #include <linux/i2c.h> |
22 | #include <linux/pci.h> | 22 | #include <linux/pci.h> |
23 | #include <linux/init.h> | ||
24 | #include <linux/acpi.h> | 23 | #include <linux/acpi.h> |
25 | 24 | ||
26 | #define ALI1563_MAX_TIMEOUT 500 | 25 | #define ALI1563_MAX_TIMEOUT 500 |
diff --git a/drivers/i2c/busses/i2c-ali15x3.c b/drivers/i2c/busses/i2c-ali15x3.c index 26bcc6127cee..4823206a4870 100644 --- a/drivers/i2c/busses/i2c-ali15x3.c +++ b/drivers/i2c/busses/i2c-ali15x3.c | |||
@@ -65,7 +65,6 @@ | |||
65 | #include <linux/ioport.h> | 65 | #include <linux/ioport.h> |
66 | #include <linux/delay.h> | 66 | #include <linux/delay.h> |
67 | #include <linux/i2c.h> | 67 | #include <linux/i2c.h> |
68 | #include <linux/init.h> | ||
69 | #include <linux/acpi.h> | 68 | #include <linux/acpi.h> |
70 | #include <linux/io.h> | 69 | #include <linux/io.h> |
71 | 70 | ||
diff --git a/drivers/i2c/busses/i2c-amd756.c b/drivers/i2c/busses/i2c-amd756.c index e13e2aa2d05d..819d3c1062a7 100644 --- a/drivers/i2c/busses/i2c-amd756.c +++ b/drivers/i2c/busses/i2c-amd756.c | |||
@@ -41,7 +41,6 @@ | |||
41 | #include <linux/stddef.h> | 41 | #include <linux/stddef.h> |
42 | #include <linux/ioport.h> | 42 | #include <linux/ioport.h> |
43 | #include <linux/i2c.h> | 43 | #include <linux/i2c.h> |
44 | #include <linux/init.h> | ||
45 | #include <linux/acpi.h> | 44 | #include <linux/acpi.h> |
46 | #include <linux/io.h> | 45 | #include <linux/io.h> |
47 | 46 | ||
diff --git a/drivers/i2c/busses/i2c-amd8111.c b/drivers/i2c/busses/i2c-amd8111.c index a44e6e77c5a1..f3d4d79855b5 100644 --- a/drivers/i2c/busses/i2c-amd8111.c +++ b/drivers/i2c/busses/i2c-amd8111.c | |||
@@ -13,7 +13,6 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/stddef.h> | 14 | #include <linux/stddef.h> |
15 | #include <linux/ioport.h> | 15 | #include <linux/ioport.h> |
16 | #include <linux/init.h> | ||
17 | #include <linux/i2c.h> | 16 | #include <linux/i2c.h> |
18 | #include <linux/delay.h> | 17 | #include <linux/delay.h> |
19 | #include <linux/acpi.h> | 18 | #include <linux/acpi.h> |
diff --git a/drivers/i2c/busses/i2c-au1550.c b/drivers/i2c/busses/i2c-au1550.c index b5b89239d622..8762458ca7da 100644 --- a/drivers/i2c/busses/i2c-au1550.c +++ b/drivers/i2c/busses/i2c-au1550.c | |||
@@ -31,7 +31,6 @@ | |||
31 | #include <linux/kernel.h> | 31 | #include <linux/kernel.h> |
32 | #include <linux/module.h> | 32 | #include <linux/module.h> |
33 | #include <linux/platform_device.h> | 33 | #include <linux/platform_device.h> |
34 | #include <linux/init.h> | ||
35 | #include <linux/errno.h> | 34 | #include <linux/errno.h> |
36 | #include <linux/i2c.h> | 35 | #include <linux/i2c.h> |
37 | #include <linux/slab.h> | 36 | #include <linux/slab.h> |
diff --git a/drivers/i2c/busses/i2c-cbus-gpio.c b/drivers/i2c/busses/i2c-cbus-gpio.c index ce7ffba2b020..bdf040fd8675 100644 --- a/drivers/i2c/busses/i2c-cbus-gpio.c +++ b/drivers/i2c/busses/i2c-cbus-gpio.c | |||
@@ -19,7 +19,6 @@ | |||
19 | #include <linux/io.h> | 19 | #include <linux/io.h> |
20 | #include <linux/i2c.h> | 20 | #include <linux/i2c.h> |
21 | #include <linux/gpio.h> | 21 | #include <linux/gpio.h> |
22 | #include <linux/init.h> | ||
23 | #include <linux/slab.h> | 22 | #include <linux/slab.h> |
24 | #include <linux/delay.h> | 23 | #include <linux/delay.h> |
25 | #include <linux/errno.h> | 24 | #include <linux/errno.h> |
diff --git a/drivers/i2c/busses/i2c-cpm.c b/drivers/i2c/busses/i2c-cpm.c index 3e5ea2c87a6e..be7f0a20d634 100644 --- a/drivers/i2c/busses/i2c-cpm.c +++ b/drivers/i2c/busses/i2c-cpm.c | |||
@@ -33,7 +33,6 @@ | |||
33 | #include <linux/module.h> | 33 | #include <linux/module.h> |
34 | #include <linux/delay.h> | 34 | #include <linux/delay.h> |
35 | #include <linux/slab.h> | 35 | #include <linux/slab.h> |
36 | #include <linux/init.h> | ||
37 | #include <linux/interrupt.h> | 36 | #include <linux/interrupt.h> |
38 | #include <linux/errno.h> | 37 | #include <linux/errno.h> |
39 | #include <linux/stddef.h> | 38 | #include <linux/stddef.h> |
diff --git a/drivers/i2c/busses/i2c-eg20t.c b/drivers/i2c/busses/i2c-eg20t.c index ff15ae90aaf5..e08e458bab02 100644 --- a/drivers/i2c/busses/i2c-eg20t.c +++ b/drivers/i2c/busses/i2c-eg20t.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/module.h> | 18 | #include <linux/module.h> |
19 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
20 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
21 | #include <linux/init.h> | ||
22 | #include <linux/errno.h> | 21 | #include <linux/errno.h> |
23 | #include <linux/i2c.h> | 22 | #include <linux/i2c.h> |
24 | #include <linux/fs.h> | 23 | #include <linux/fs.h> |
diff --git a/drivers/i2c/busses/i2c-exynos5.c b/drivers/i2c/busses/i2c-exynos5.c index 044f85b01d06..9fd711c03dd2 100644 --- a/drivers/i2c/busses/i2c-exynos5.c +++ b/drivers/i2c/busses/i2c-exynos5.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/module.h> | 12 | #include <linux/module.h> |
13 | 13 | ||
14 | #include <linux/i2c.h> | 14 | #include <linux/i2c.h> |
15 | #include <linux/init.h> | ||
16 | #include <linux/time.h> | 15 | #include <linux/time.h> |
17 | #include <linux/interrupt.h> | 16 | #include <linux/interrupt.h> |
18 | #include <linux/delay.h> | 17 | #include <linux/delay.h> |
diff --git a/drivers/i2c/busses/i2c-highlander.c b/drivers/i2c/busses/i2c-highlander.c index 436b0f254916..512fcfabc18e 100644 --- a/drivers/i2c/busses/i2c-highlander.c +++ b/drivers/i2c/busses/i2c-highlander.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * of this archive for more details. | 12 | * of this archive for more details. |
13 | */ | 13 | */ |
14 | #include <linux/module.h> | 14 | #include <linux/module.h> |
15 | #include <linux/init.h> | ||
16 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
17 | #include <linux/i2c.h> | 16 | #include <linux/i2c.h> |
18 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
diff --git a/drivers/i2c/busses/i2c-hydra.c b/drivers/i2c/busses/i2c-hydra.c index 79c3d9069a48..e248257fe517 100644 --- a/drivers/i2c/busses/i2c-hydra.c +++ b/drivers/i2c/busses/i2c-hydra.c | |||
@@ -27,7 +27,6 @@ | |||
27 | #include <linux/types.h> | 27 | #include <linux/types.h> |
28 | #include <linux/i2c.h> | 28 | #include <linux/i2c.h> |
29 | #include <linux/i2c-algo-bit.h> | 29 | #include <linux/i2c-algo-bit.h> |
30 | #include <linux/init.h> | ||
31 | #include <linux/io.h> | 30 | #include <linux/io.h> |
32 | #include <asm/hydra.h> | 31 | #include <asm/hydra.h> |
33 | 32 | ||
diff --git a/drivers/i2c/busses/i2c-ibm_iic.c b/drivers/i2c/busses/i2c-ibm_iic.c index f7444100f397..274312c96b12 100644 --- a/drivers/i2c/busses/i2c-ibm_iic.c +++ b/drivers/i2c/busses/i2c-ibm_iic.c | |||
@@ -36,7 +36,6 @@ | |||
36 | #include <linux/ioport.h> | 36 | #include <linux/ioport.h> |
37 | #include <linux/delay.h> | 37 | #include <linux/delay.h> |
38 | #include <linux/slab.h> | 38 | #include <linux/slab.h> |
39 | #include <linux/init.h> | ||
40 | #include <linux/interrupt.h> | 39 | #include <linux/interrupt.h> |
41 | #include <asm/irq.h> | 40 | #include <asm/irq.h> |
42 | #include <linux/io.h> | 41 | #include <linux/io.h> |
diff --git a/drivers/i2c/busses/i2c-iop3xx.c b/drivers/i2c/busses/i2c-iop3xx.c index dd24aa0424a9..3d16c2f60a5e 100644 --- a/drivers/i2c/busses/i2c-iop3xx.c +++ b/drivers/i2c/busses/i2c-iop3xx.c | |||
@@ -34,7 +34,6 @@ | |||
34 | #include <linux/module.h> | 34 | #include <linux/module.h> |
35 | #include <linux/delay.h> | 35 | #include <linux/delay.h> |
36 | #include <linux/slab.h> | 36 | #include <linux/slab.h> |
37 | #include <linux/init.h> | ||
38 | #include <linux/errno.h> | 37 | #include <linux/errno.h> |
39 | #include <linux/platform_device.h> | 38 | #include <linux/platform_device.h> |
40 | #include <linux/i2c.h> | 39 | #include <linux/i2c.h> |
diff --git a/drivers/i2c/busses/i2c-isch.c b/drivers/i2c/busses/i2c-isch.c index af213045ab7e..cf99dbf21fd1 100644 --- a/drivers/i2c/busses/i2c-isch.c +++ b/drivers/i2c/busses/i2c-isch.c | |||
@@ -33,7 +33,6 @@ | |||
33 | #include <linux/stddef.h> | 33 | #include <linux/stddef.h> |
34 | #include <linux/ioport.h> | 34 | #include <linux/ioport.h> |
35 | #include <linux/i2c.h> | 35 | #include <linux/i2c.h> |
36 | #include <linux/init.h> | ||
37 | #include <linux/io.h> | 36 | #include <linux/io.h> |
38 | #include <linux/acpi.h> | 37 | #include <linux/acpi.h> |
39 | 38 | ||
diff --git a/drivers/i2c/busses/i2c-ismt.c b/drivers/i2c/busses/i2c-ismt.c index bb132ea7d2b4..8ce4f517fc56 100644 --- a/drivers/i2c/busses/i2c-ismt.c +++ b/drivers/i2c/busses/i2c-ismt.c | |||
@@ -62,7 +62,6 @@ | |||
62 | */ | 62 | */ |
63 | 63 | ||
64 | #include <linux/module.h> | 64 | #include <linux/module.h> |
65 | #include <linux/init.h> | ||
66 | #include <linux/pci.h> | 65 | #include <linux/pci.h> |
67 | #include <linux/kernel.h> | 66 | #include <linux/kernel.h> |
68 | #include <linux/stddef.h> | 67 | #include <linux/stddef.h> |
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c index b6a741caf4f6..f5391633b53a 100644 --- a/drivers/i2c/busses/i2c-mpc.c +++ b/drivers/i2c/busses/i2c-mpc.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
19 | #include <linux/init.h> | ||
20 | #include <linux/of_address.h> | 19 | #include <linux/of_address.h> |
21 | #include <linux/of_irq.h> | 20 | #include <linux/of_irq.h> |
22 | #include <linux/of_platform.h> | 21 | #include <linux/of_platform.h> |
diff --git a/drivers/i2c/busses/i2c-nforce2.c b/drivers/i2c/busses/i2c-nforce2.c index ac88f4000cc2..0038c451095c 100644 --- a/drivers/i2c/busses/i2c-nforce2.c +++ b/drivers/i2c/busses/i2c-nforce2.c | |||
@@ -51,7 +51,6 @@ | |||
51 | #include <linux/kernel.h> | 51 | #include <linux/kernel.h> |
52 | #include <linux/stddef.h> | 52 | #include <linux/stddef.h> |
53 | #include <linux/ioport.h> | 53 | #include <linux/ioport.h> |
54 | #include <linux/init.h> | ||
55 | #include <linux/i2c.h> | 54 | #include <linux/i2c.h> |
56 | #include <linux/delay.h> | 55 | #include <linux/delay.h> |
57 | #include <linux/dmi.h> | 56 | #include <linux/dmi.h> |
diff --git a/drivers/i2c/busses/i2c-ocores.c b/drivers/i2c/busses/i2c-ocores.c index c61f37a10a07..80e06fa45720 100644 --- a/drivers/i2c/busses/i2c-ocores.c +++ b/drivers/i2c/busses/i2c-ocores.c | |||
@@ -15,7 +15,6 @@ | |||
15 | #include <linux/err.h> | 15 | #include <linux/err.h> |
16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <linux/init.h> | ||
19 | #include <linux/errno.h> | 18 | #include <linux/errno.h> |
20 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
21 | #include <linux/i2c.h> | 20 | #include <linux/i2c.h> |
diff --git a/drivers/i2c/busses/i2c-octeon.c b/drivers/i2c/busses/i2c-octeon.c index b929ba271b47..81042b08a947 100644 --- a/drivers/i2c/busses/i2c-octeon.c +++ b/drivers/i2c/busses/i2c-octeon.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/delay.h> | 18 | #include <linux/delay.h> |
19 | #include <linux/sched.h> | 19 | #include <linux/sched.h> |
20 | #include <linux/slab.h> | 20 | #include <linux/slab.h> |
21 | #include <linux/init.h> | ||
22 | #include <linux/i2c.h> | 21 | #include <linux/i2c.h> |
23 | #include <linux/io.h> | 22 | #include <linux/io.h> |
24 | #include <linux/of.h> | 23 | #include <linux/of.h> |
diff --git a/drivers/i2c/busses/i2c-pca-platform.c b/drivers/i2c/busses/i2c-pca-platform.c index 39e2755e3f25..845f12598e79 100644 --- a/drivers/i2c/busses/i2c-pca-platform.c +++ b/drivers/i2c/busses/i2c-pca-platform.c | |||
@@ -12,7 +12,6 @@ | |||
12 | */ | 12 | */ |
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/module.h> | 14 | #include <linux/module.h> |
15 | #include <linux/init.h> | ||
16 | #include <linux/slab.h> | 15 | #include <linux/slab.h> |
17 | #include <linux/delay.h> | 16 | #include <linux/delay.h> |
18 | #include <linux/jiffies.h> | 17 | #include <linux/jiffies.h> |
diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c index a028617b8f13..39dd8ec60dfd 100644 --- a/drivers/i2c/busses/i2c-piix4.c +++ b/drivers/i2c/busses/i2c-piix4.c | |||
@@ -22,7 +22,7 @@ | |||
22 | Intel PIIX4, 440MX | 22 | Intel PIIX4, 440MX |
23 | Serverworks OSB4, CSB5, CSB6, HT-1000, HT-1100 | 23 | Serverworks OSB4, CSB5, CSB6, HT-1000, HT-1100 |
24 | ATI IXP200, IXP300, IXP400, SB600, SB700/SP5100, SB800 | 24 | ATI IXP200, IXP300, IXP400, SB600, SB700/SP5100, SB800 |
25 | AMD Hudson-2, CZ | 25 | AMD Hudson-2, ML, CZ |
26 | SMSC Victory66 | 26 | SMSC Victory66 |
27 | 27 | ||
28 | Note: we assume there can only be one device, with one or more | 28 | Note: we assume there can only be one device, with one or more |
@@ -38,7 +38,6 @@ | |||
38 | #include <linux/ioport.h> | 38 | #include <linux/ioport.h> |
39 | #include <linux/i2c.h> | 39 | #include <linux/i2c.h> |
40 | #include <linux/slab.h> | 40 | #include <linux/slab.h> |
41 | #include <linux/init.h> | ||
42 | #include <linux/dmi.h> | 41 | #include <linux/dmi.h> |
43 | #include <linux/acpi.h> | 42 | #include <linux/acpi.h> |
44 | #include <linux/io.h> | 43 | #include <linux/io.h> |
@@ -208,16 +207,16 @@ static int piix4_setup(struct pci_dev *PIIX4_dev, | |||
208 | "WARNING: SMBus interface has been FORCEFULLY ENABLED!\n"); | 207 | "WARNING: SMBus interface has been FORCEFULLY ENABLED!\n"); |
209 | } else { | 208 | } else { |
210 | dev_err(&PIIX4_dev->dev, | 209 | dev_err(&PIIX4_dev->dev, |
211 | "Host SMBus controller not enabled!\n"); | 210 | "SMBus Host Controller not enabled!\n"); |
212 | release_region(piix4_smba, SMBIOSIZE); | 211 | release_region(piix4_smba, SMBIOSIZE); |
213 | return -ENODEV; | 212 | return -ENODEV; |
214 | } | 213 | } |
215 | } | 214 | } |
216 | 215 | ||
217 | if (((temp & 0x0E) == 8) || ((temp & 0x0E) == 2)) | 216 | if (((temp & 0x0E) == 8) || ((temp & 0x0E) == 2)) |
218 | dev_dbg(&PIIX4_dev->dev, "Using Interrupt 9 for SMBus.\n"); | 217 | dev_dbg(&PIIX4_dev->dev, "Using IRQ for SMBus\n"); |
219 | else if ((temp & 0x0E) == 0) | 218 | else if ((temp & 0x0E) == 0) |
220 | dev_dbg(&PIIX4_dev->dev, "Using Interrupt SMI# for SMBus.\n"); | 219 | dev_dbg(&PIIX4_dev->dev, "Using SMI# for SMBus\n"); |
221 | else | 220 | else |
222 | dev_err(&PIIX4_dev->dev, "Illegal Interrupt configuration " | 221 | dev_err(&PIIX4_dev->dev, "Illegal Interrupt configuration " |
223 | "(or code out of date)!\n"); | 222 | "(or code out of date)!\n"); |
@@ -235,7 +234,8 @@ static int piix4_setup_sb800(struct pci_dev *PIIX4_dev, | |||
235 | { | 234 | { |
236 | unsigned short piix4_smba; | 235 | unsigned short piix4_smba; |
237 | unsigned short smba_idx = 0xcd6; | 236 | unsigned short smba_idx = 0xcd6; |
238 | u8 smba_en_lo, smba_en_hi, i2ccfg, i2ccfg_offset = 0x10, smb_en; | 237 | u8 smba_en_lo, smba_en_hi, smb_en, smb_en_status; |
238 | u8 i2ccfg, i2ccfg_offset = 0x10; | ||
239 | 239 | ||
240 | /* SB800 and later SMBus does not support forcing address */ | 240 | /* SB800 and later SMBus does not support forcing address */ |
241 | if (force || force_addr) { | 241 | if (force || force_addr) { |
@@ -245,7 +245,15 @@ static int piix4_setup_sb800(struct pci_dev *PIIX4_dev, | |||
245 | } | 245 | } |
246 | 246 | ||
247 | /* Determine the address of the SMBus areas */ | 247 | /* Determine the address of the SMBus areas */ |
248 | smb_en = (aux) ? 0x28 : 0x2c; | 248 | if ((PIIX4_dev->vendor == PCI_VENDOR_ID_AMD && |
249 | PIIX4_dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS && | ||
250 | PIIX4_dev->revision >= 0x41) || | ||
251 | (PIIX4_dev->vendor == PCI_VENDOR_ID_AMD && | ||
252 | PIIX4_dev->device == 0x790b && | ||
253 | PIIX4_dev->revision >= 0x49)) | ||
254 | smb_en = 0x00; | ||
255 | else | ||
256 | smb_en = (aux) ? 0x28 : 0x2c; | ||
249 | 257 | ||
250 | if (!request_region(smba_idx, 2, "smba_idx")) { | 258 | if (!request_region(smba_idx, 2, "smba_idx")) { |
251 | dev_err(&PIIX4_dev->dev, "SMBus base address index region " | 259 | dev_err(&PIIX4_dev->dev, "SMBus base address index region " |
@@ -258,13 +266,22 @@ static int piix4_setup_sb800(struct pci_dev *PIIX4_dev, | |||
258 | smba_en_hi = inb_p(smba_idx + 1); | 266 | smba_en_hi = inb_p(smba_idx + 1); |
259 | release_region(smba_idx, 2); | 267 | release_region(smba_idx, 2); |
260 | 268 | ||
261 | if ((smba_en_lo & 1) == 0) { | 269 | if (!smb_en) { |
270 | smb_en_status = smba_en_lo & 0x10; | ||
271 | piix4_smba = smba_en_hi << 8; | ||
272 | if (aux) | ||
273 | piix4_smba |= 0x20; | ||
274 | } else { | ||
275 | smb_en_status = smba_en_lo & 0x01; | ||
276 | piix4_smba = ((smba_en_hi << 8) | smba_en_lo) & 0xffe0; | ||
277 | } | ||
278 | |||
279 | if (!smb_en_status) { | ||
262 | dev_err(&PIIX4_dev->dev, | 280 | dev_err(&PIIX4_dev->dev, |
263 | "Host SMBus controller not enabled!\n"); | 281 | "SMBus Host Controller not enabled!\n"); |
264 | return -ENODEV; | 282 | return -ENODEV; |
265 | } | 283 | } |
266 | 284 | ||
267 | piix4_smba = ((smba_en_hi << 8) | smba_en_lo) & 0xffe0; | ||
268 | if (acpi_check_region(piix4_smba, SMBIOSIZE, piix4_driver.name)) | 285 | if (acpi_check_region(piix4_smba, SMBIOSIZE, piix4_driver.name)) |
269 | return -ENODEV; | 286 | return -ENODEV; |
270 | 287 | ||
@@ -277,7 +294,8 @@ static int piix4_setup_sb800(struct pci_dev *PIIX4_dev, | |||
277 | /* Aux SMBus does not support IRQ information */ | 294 | /* Aux SMBus does not support IRQ information */ |
278 | if (aux) { | 295 | if (aux) { |
279 | dev_info(&PIIX4_dev->dev, | 296 | dev_info(&PIIX4_dev->dev, |
280 | "SMBus Host Controller at 0x%x\n", piix4_smba); | 297 | "Auxiliary SMBus Host Controller at 0x%x\n", |
298 | piix4_smba); | ||
281 | return piix4_smba; | 299 | return piix4_smba; |
282 | } | 300 | } |
283 | 301 | ||
@@ -292,9 +310,9 @@ static int piix4_setup_sb800(struct pci_dev *PIIX4_dev, | |||
292 | release_region(piix4_smba + i2ccfg_offset, 1); | 310 | release_region(piix4_smba + i2ccfg_offset, 1); |
293 | 311 | ||
294 | if (i2ccfg & 1) | 312 | if (i2ccfg & 1) |
295 | dev_dbg(&PIIX4_dev->dev, "Using IRQ for SMBus.\n"); | 313 | dev_dbg(&PIIX4_dev->dev, "Using IRQ for SMBus\n"); |
296 | else | 314 | else |
297 | dev_dbg(&PIIX4_dev->dev, "Using SMI# for SMBus.\n"); | 315 | dev_dbg(&PIIX4_dev->dev, "Using SMI# for SMBus\n"); |
298 | 316 | ||
299 | dev_info(&PIIX4_dev->dev, | 317 | dev_info(&PIIX4_dev->dev, |
300 | "SMBus Host Controller at 0x%x, revision %d\n", | 318 | "SMBus Host Controller at 0x%x, revision %d\n", |
diff --git a/drivers/i2c/busses/i2c-pmcmsp.c b/drivers/i2c/busses/i2c-pmcmsp.c index f6389e2c9d02..8564768fee32 100644 --- a/drivers/i2c/busses/i2c-pmcmsp.c +++ b/drivers/i2c/busses/i2c-pmcmsp.c | |||
@@ -26,7 +26,6 @@ | |||
26 | 26 | ||
27 | #include <linux/kernel.h> | 27 | #include <linux/kernel.h> |
28 | #include <linux/module.h> | 28 | #include <linux/module.h> |
29 | #include <linux/init.h> | ||
30 | #include <linux/platform_device.h> | 29 | #include <linux/platform_device.h> |
31 | #include <linux/i2c.h> | 30 | #include <linux/i2c.h> |
32 | #include <linux/interrupt.h> | 31 | #include <linux/interrupt.h> |
diff --git a/drivers/i2c/busses/i2c-powermac.c b/drivers/i2c/busses/i2c-powermac.c index 8c87f4a9793b..01e967763c2a 100644 --- a/drivers/i2c/busses/i2c-powermac.c +++ b/drivers/i2c/busses/i2c-powermac.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
25 | #include <linux/types.h> | 25 | #include <linux/types.h> |
26 | #include <linux/i2c.h> | 26 | #include <linux/i2c.h> |
27 | #include <linux/init.h> | ||
28 | #include <linux/device.h> | 27 | #include <linux/device.h> |
29 | #include <linux/platform_device.h> | 28 | #include <linux/platform_device.h> |
30 | #include <linux/of_irq.h> | 29 | #include <linux/of_irq.h> |
diff --git a/drivers/i2c/busses/i2c-puv3.c b/drivers/i2c/busses/i2c-puv3.c index ac80199885be..c83fc3ccdd2b 100644 --- a/drivers/i2c/busses/i2c-puv3.c +++ b/drivers/i2c/busses/i2c-puv3.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <linux/types.h> | 17 | #include <linux/types.h> |
18 | #include <linux/delay.h> | 18 | #include <linux/delay.h> |
19 | #include <linux/i2c.h> | 19 | #include <linux/i2c.h> |
20 | #include <linux/init.h> | ||
21 | #include <linux/clk.h> | 20 | #include <linux/clk.h> |
22 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
23 | #include <linux/io.h> | 22 | #include <linux/io.h> |
diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c index 2c2fd7c2b116..0282d4d42805 100644 --- a/drivers/i2c/busses/i2c-rcar.c +++ b/drivers/i2c/busses/i2c-rcar.c | |||
@@ -26,7 +26,6 @@ | |||
26 | #include <linux/clk.h> | 26 | #include <linux/clk.h> |
27 | #include <linux/delay.h> | 27 | #include <linux/delay.h> |
28 | #include <linux/err.h> | 28 | #include <linux/err.h> |
29 | #include <linux/init.h> | ||
30 | #include <linux/interrupt.h> | 29 | #include <linux/interrupt.h> |
31 | #include <linux/io.h> | 30 | #include <linux/io.h> |
32 | #include <linux/i2c.h> | 31 | #include <linux/i2c.h> |
@@ -111,6 +110,7 @@ struct rcar_i2c_priv { | |||
111 | void __iomem *io; | 110 | void __iomem *io; |
112 | struct i2c_adapter adap; | 111 | struct i2c_adapter adap; |
113 | struct i2c_msg *msg; | 112 | struct i2c_msg *msg; |
113 | struct clk *clk; | ||
114 | 114 | ||
115 | spinlock_t lock; | 115 | spinlock_t lock; |
116 | wait_queue_head_t wait; | 116 | wait_queue_head_t wait; |
@@ -227,18 +227,12 @@ static int rcar_i2c_clock_calculate(struct rcar_i2c_priv *priv, | |||
227 | u32 bus_speed, | 227 | u32 bus_speed, |
228 | struct device *dev) | 228 | struct device *dev) |
229 | { | 229 | { |
230 | struct clk *clkp = clk_get(dev, NULL); | ||
231 | u32 scgd, cdf; | 230 | u32 scgd, cdf; |
232 | u32 round, ick; | 231 | u32 round, ick; |
233 | u32 scl; | 232 | u32 scl; |
234 | u32 cdf_width; | 233 | u32 cdf_width; |
235 | unsigned long rate; | 234 | unsigned long rate; |
236 | 235 | ||
237 | if (IS_ERR(clkp)) { | ||
238 | dev_err(dev, "couldn't get clock\n"); | ||
239 | return PTR_ERR(clkp); | ||
240 | } | ||
241 | |||
242 | switch (priv->devtype) { | 236 | switch (priv->devtype) { |
243 | case I2C_RCAR_GEN1: | 237 | case I2C_RCAR_GEN1: |
244 | cdf_width = 2; | 238 | cdf_width = 2; |
@@ -266,7 +260,7 @@ static int rcar_i2c_clock_calculate(struct rcar_i2c_priv *priv, | |||
266 | * clkp : peripheral_clk | 260 | * clkp : peripheral_clk |
267 | * F[] : integer up-valuation | 261 | * F[] : integer up-valuation |
268 | */ | 262 | */ |
269 | rate = clk_get_rate(clkp); | 263 | rate = clk_get_rate(priv->clk); |
270 | cdf = rate / 20000000; | 264 | cdf = rate / 20000000; |
271 | if (cdf >= 1 << cdf_width) { | 265 | if (cdf >= 1 << cdf_width) { |
272 | dev_err(dev, "Input clock %lu too high\n", rate); | 266 | dev_err(dev, "Input clock %lu too high\n", rate); |
@@ -308,7 +302,7 @@ static int rcar_i2c_clock_calculate(struct rcar_i2c_priv *priv, | |||
308 | 302 | ||
309 | scgd_find: | 303 | scgd_find: |
310 | dev_dbg(dev, "clk %d/%d(%lu), round %u, CDF:0x%x, SCGD: 0x%x\n", | 304 | dev_dbg(dev, "clk %d/%d(%lu), round %u, CDF:0x%x, SCGD: 0x%x\n", |
311 | scl, bus_speed, clk_get_rate(clkp), round, cdf, scgd); | 305 | scl, bus_speed, clk_get_rate(priv->clk), round, cdf, scgd); |
312 | 306 | ||
313 | /* | 307 | /* |
314 | * keep icccr value | 308 | * keep icccr value |
@@ -604,7 +598,7 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap, | |||
604 | * error handling | 598 | * error handling |
605 | */ | 599 | */ |
606 | if (rcar_i2c_flags_has(priv, ID_NACK)) { | 600 | if (rcar_i2c_flags_has(priv, ID_NACK)) { |
607 | ret = -EREMOTEIO; | 601 | ret = -ENXIO; |
608 | break; | 602 | break; |
609 | } | 603 | } |
610 | 604 | ||
@@ -623,7 +617,7 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap, | |||
623 | 617 | ||
624 | pm_runtime_put(dev); | 618 | pm_runtime_put(dev); |
625 | 619 | ||
626 | if (ret < 0) | 620 | if (ret < 0 && ret != -ENXIO) |
627 | dev_err(dev, "error %d : %x\n", ret, priv->flags); | 621 | dev_err(dev, "error %d : %x\n", ret, priv->flags); |
628 | 622 | ||
629 | return ret; | 623 | return ret; |
@@ -664,6 +658,12 @@ static int rcar_i2c_probe(struct platform_device *pdev) | |||
664 | return -ENOMEM; | 658 | return -ENOMEM; |
665 | } | 659 | } |
666 | 660 | ||
661 | priv->clk = devm_clk_get(dev, NULL); | ||
662 | if (IS_ERR(priv->clk)) { | ||
663 | dev_err(dev, "cannot get clock\n"); | ||
664 | return PTR_ERR(priv->clk); | ||
665 | } | ||
666 | |||
667 | bus_speed = 100000; /* default 100 kHz */ | 667 | bus_speed = 100000; /* default 100 kHz */ |
668 | ret = of_property_read_u32(dev->of_node, "clock-frequency", &bus_speed); | 668 | ret = of_property_read_u32(dev->of_node, "clock-frequency", &bus_speed); |
669 | if (ret < 0 && pdata && pdata->bus_speed) | 669 | if (ret < 0 && pdata && pdata->bus_speed) |
diff --git a/drivers/i2c/busses/i2c-scmi.c b/drivers/i2c/busses/i2c-scmi.c index 599235514138..dfc98df7b1b6 100644 --- a/drivers/i2c/busses/i2c-scmi.c +++ b/drivers/i2c/busses/i2c-scmi.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/slab.h> | 12 | #include <linux/slab.h> |
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/stddef.h> | 14 | #include <linux/stddef.h> |
15 | #include <linux/init.h> | ||
16 | #include <linux/i2c.h> | 15 | #include <linux/i2c.h> |
17 | #include <linux/acpi.h> | 16 | #include <linux/acpi.h> |
18 | 17 | ||
diff --git a/drivers/i2c/busses/i2c-sh7760.c b/drivers/i2c/busses/i2c-sh7760.c index 5e8f136e233f..d76f3d9737ec 100644 --- a/drivers/i2c/busses/i2c-sh7760.c +++ b/drivers/i2c/busses/i2c-sh7760.c | |||
@@ -11,7 +11,6 @@ | |||
11 | #include <linux/delay.h> | 11 | #include <linux/delay.h> |
12 | #include <linux/err.h> | 12 | #include <linux/err.h> |
13 | #include <linux/i2c.h> | 13 | #include <linux/i2c.h> |
14 | #include <linux/init.h> | ||
15 | #include <linux/interrupt.h> | 14 | #include <linux/interrupt.h> |
16 | #include <linux/ioport.h> | 15 | #include <linux/ioport.h> |
17 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
diff --git a/drivers/i2c/busses/i2c-simtec.c b/drivers/i2c/busses/i2c-simtec.c index 4fc87e7c94c9..294c80f21d65 100644 --- a/drivers/i2c/busses/i2c-simtec.c +++ b/drivers/i2c/busses/i2c-simtec.c | |||
@@ -20,7 +20,6 @@ | |||
20 | 20 | ||
21 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
22 | #include <linux/module.h> | 22 | #include <linux/module.h> |
23 | #include <linux/init.h> | ||
24 | #include <linux/delay.h> | 23 | #include <linux/delay.h> |
25 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
26 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
diff --git a/drivers/i2c/busses/i2c-sis630.c b/drivers/i2c/busses/i2c-sis630.c index 36a9556d7cfa..19b8505d0cdd 100644 --- a/drivers/i2c/busses/i2c-sis630.c +++ b/drivers/i2c/busses/i2c-sis630.c | |||
@@ -45,7 +45,6 @@ | |||
45 | #include <linux/delay.h> | 45 | #include <linux/delay.h> |
46 | #include <linux/pci.h> | 46 | #include <linux/pci.h> |
47 | #include <linux/ioport.h> | 47 | #include <linux/ioport.h> |
48 | #include <linux/init.h> | ||
49 | #include <linux/i2c.h> | 48 | #include <linux/i2c.h> |
50 | #include <linux/acpi.h> | 49 | #include <linux/acpi.h> |
51 | #include <linux/io.h> | 50 | #include <linux/io.h> |
diff --git a/drivers/i2c/busses/i2c-sis96x.c b/drivers/i2c/busses/i2c-sis96x.c index b9faf9b6002b..f8aa0c29f02b 100644 --- a/drivers/i2c/busses/i2c-sis96x.c +++ b/drivers/i2c/busses/i2c-sis96x.c | |||
@@ -36,7 +36,6 @@ | |||
36 | #include <linux/stddef.h> | 36 | #include <linux/stddef.h> |
37 | #include <linux/ioport.h> | 37 | #include <linux/ioport.h> |
38 | #include <linux/i2c.h> | 38 | #include <linux/i2c.h> |
39 | #include <linux/init.h> | ||
40 | #include <linux/acpi.h> | 39 | #include <linux/acpi.h> |
41 | #include <linux/io.h> | 40 | #include <linux/io.h> |
42 | 41 | ||
diff --git a/drivers/i2c/busses/i2c-via.c b/drivers/i2c/busses/i2c-via.c index be662511c58b..49d7f14b9d27 100644 --- a/drivers/i2c/busses/i2c-via.c +++ b/drivers/i2c/busses/i2c-via.c | |||
@@ -22,7 +22,6 @@ | |||
22 | #include <linux/module.h> | 22 | #include <linux/module.h> |
23 | #include <linux/pci.h> | 23 | #include <linux/pci.h> |
24 | #include <linux/ioport.h> | 24 | #include <linux/ioport.h> |
25 | #include <linux/init.h> | ||
26 | #include <linux/i2c.h> | 25 | #include <linux/i2c.h> |
27 | #include <linux/i2c-algo-bit.h> | 26 | #include <linux/i2c-algo-bit.h> |
28 | #include <linux/io.h> | 27 | #include <linux/io.h> |
diff --git a/drivers/i2c/busses/i2c-xiic.c b/drivers/i2c/busses/i2c-xiic.c index 6f9918f37b91..28107502517f 100644 --- a/drivers/i2c/busses/i2c-xiic.c +++ b/drivers/i2c/busses/i2c-xiic.c | |||
@@ -30,7 +30,6 @@ | |||
30 | */ | 30 | */ |
31 | #include <linux/kernel.h> | 31 | #include <linux/kernel.h> |
32 | #include <linux/module.h> | 32 | #include <linux/module.h> |
33 | #include <linux/init.h> | ||
34 | #include <linux/errno.h> | 33 | #include <linux/errno.h> |
35 | #include <linux/err.h> | 34 | #include <linux/err.h> |
36 | #include <linux/delay.h> | 35 | #include <linux/delay.h> |
diff --git a/drivers/i2c/busses/i2c-xlr.c b/drivers/i2c/busses/i2c-xlr.c index 7945b05d3ea0..17f7352eca6b 100644 --- a/drivers/i2c/busses/i2c-xlr.c +++ b/drivers/i2c/busses/i2c-xlr.c | |||
@@ -11,7 +11,6 @@ | |||
11 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
12 | #include <linux/module.h> | 12 | #include <linux/module.h> |
13 | #include <linux/slab.h> | 13 | #include <linux/slab.h> |
14 | #include <linux/init.h> | ||
15 | #include <linux/ioport.h> | 14 | #include <linux/ioport.h> |
16 | #include <linux/delay.h> | 15 | #include <linux/delay.h> |
17 | #include <linux/errno.h> | 16 | #include <linux/errno.h> |
diff --git a/drivers/i2c/busses/scx200_i2c.c b/drivers/i2c/busses/scx200_i2c.c index ae1258b95d60..8eadf0f47ad7 100644 --- a/drivers/i2c/busses/scx200_i2c.c +++ b/drivers/i2c/busses/scx200_i2c.c | |||
@@ -26,7 +26,6 @@ | |||
26 | #include <linux/module.h> | 26 | #include <linux/module.h> |
27 | #include <linux/errno.h> | 27 | #include <linux/errno.h> |
28 | #include <linux/kernel.h> | 28 | #include <linux/kernel.h> |
29 | #include <linux/init.h> | ||
30 | #include <linux/i2c.h> | 29 | #include <linux/i2c.h> |
31 | #include <linux/i2c-algo-bit.h> | 30 | #include <linux/i2c-algo-bit.h> |
32 | #include <linux/io.h> | 31 | #include <linux/io.h> |
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 82f7a5354dfe..5fb80b8962a2 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c | |||
@@ -261,10 +261,9 @@ static int i2c_device_probe(struct device *dev) | |||
261 | 261 | ||
262 | acpi_dev_pm_attach(&client->dev, true); | 262 | acpi_dev_pm_attach(&client->dev, true); |
263 | status = driver->probe(client, i2c_match_id(driver->id_table, client)); | 263 | status = driver->probe(client, i2c_match_id(driver->id_table, client)); |
264 | if (status) { | 264 | if (status) |
265 | i2c_set_clientdata(client, NULL); | ||
266 | acpi_dev_pm_detach(&client->dev, true); | 265 | acpi_dev_pm_detach(&client->dev, true); |
267 | } | 266 | |
268 | return status; | 267 | return status; |
269 | } | 268 | } |
270 | 269 | ||
@@ -272,7 +271,7 @@ static int i2c_device_remove(struct device *dev) | |||
272 | { | 271 | { |
273 | struct i2c_client *client = i2c_verify_client(dev); | 272 | struct i2c_client *client = i2c_verify_client(dev); |
274 | struct i2c_driver *driver; | 273 | struct i2c_driver *driver; |
275 | int status; | 274 | int status = 0; |
276 | 275 | ||
277 | if (!client || !dev->driver) | 276 | if (!client || !dev->driver) |
278 | return 0; | 277 | return 0; |
@@ -281,12 +280,8 @@ static int i2c_device_remove(struct device *dev) | |||
281 | if (driver->remove) { | 280 | if (driver->remove) { |
282 | dev_dbg(dev, "remove\n"); | 281 | dev_dbg(dev, "remove\n"); |
283 | status = driver->remove(client); | 282 | status = driver->remove(client); |
284 | } else { | ||
285 | dev->driver = NULL; | ||
286 | status = 0; | ||
287 | } | 283 | } |
288 | if (status == 0) | 284 | |
289 | i2c_set_clientdata(client, NULL); | ||
290 | acpi_dev_pm_detach(&client->dev, true); | 285 | acpi_dev_pm_detach(&client->dev, true); |
291 | return status; | 286 | return status; |
292 | } | 287 | } |
diff --git a/drivers/i2c/muxes/i2c-arb-gpio-challenge.c b/drivers/i2c/muxes/i2c-arb-gpio-challenge.c index c58e093b6032..69afffa8f427 100644 --- a/drivers/i2c/muxes/i2c-arb-gpio-challenge.c +++ b/drivers/i2c/muxes/i2c-arb-gpio-challenge.c | |||
@@ -19,7 +19,6 @@ | |||
19 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
20 | #include <linux/i2c.h> | 20 | #include <linux/i2c.h> |
21 | #include <linux/i2c-mux.h> | 21 | #include <linux/i2c-mux.h> |
22 | #include <linux/init.h> | ||
23 | #include <linux/module.h> | 22 | #include <linux/module.h> |
24 | #include <linux/of_gpio.h> | 23 | #include <linux/of_gpio.h> |
25 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
diff --git a/drivers/i2c/muxes/i2c-mux-gpio.c b/drivers/i2c/muxes/i2c-mux-gpio.c index 8a8c56f4b026..d8989c823f50 100644 --- a/drivers/i2c/muxes/i2c-mux-gpio.c +++ b/drivers/i2c/muxes/i2c-mux-gpio.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/i2c-mux.h> | 12 | #include <linux/i2c-mux.h> |
13 | #include <linux/i2c-mux-gpio.h> | 13 | #include <linux/i2c-mux-gpio.h> |
14 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
15 | #include <linux/init.h> | ||
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/slab.h> | 16 | #include <linux/slab.h> |
18 | #include <linux/gpio.h> | 17 | #include <linux/gpio.h> |
diff --git a/drivers/i2c/muxes/i2c-mux-pca9541.c b/drivers/i2c/muxes/i2c-mux-pca9541.c index c4f08ad31183..cb772775da43 100644 --- a/drivers/i2c/muxes/i2c-mux-pca9541.c +++ b/drivers/i2c/muxes/i2c-mux-pca9541.c | |||
@@ -17,7 +17,6 @@ | |||
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/module.h> | 19 | #include <linux/module.h> |
20 | #include <linux/init.h> | ||
21 | #include <linux/jiffies.h> | 20 | #include <linux/jiffies.h> |
22 | #include <linux/delay.h> | 21 | #include <linux/delay.h> |
23 | #include <linux/slab.h> | 22 | #include <linux/slab.h> |
diff --git a/drivers/i2c/muxes/i2c-mux-pca954x.c b/drivers/i2c/muxes/i2c-mux-pca954x.c index 8720b6a11237..550bd36aa5d6 100644 --- a/drivers/i2c/muxes/i2c-mux-pca954x.c +++ b/drivers/i2c/muxes/i2c-mux-pca954x.c | |||
@@ -40,7 +40,6 @@ | |||
40 | #include <linux/i2c.h> | 40 | #include <linux/i2c.h> |
41 | #include <linux/i2c-mux.h> | 41 | #include <linux/i2c-mux.h> |
42 | #include <linux/i2c/pca954x.h> | 42 | #include <linux/i2c/pca954x.h> |
43 | #include <linux/init.h> | ||
44 | #include <linux/module.h> | 43 | #include <linux/module.h> |
45 | #include <linux/of_gpio.h> | 44 | #include <linux/of_gpio.h> |
46 | #include <linux/slab.h> | 45 | #include <linux/slab.h> |
diff --git a/drivers/i2c/muxes/i2c-mux-pinctrl.c b/drivers/i2c/muxes/i2c-mux-pinctrl.c index d7978dc4ad0b..4ff0ef3e07a6 100644 --- a/drivers/i2c/muxes/i2c-mux-pinctrl.c +++ b/drivers/i2c/muxes/i2c-mux-pinctrl.c | |||
@@ -18,7 +18,6 @@ | |||
18 | 18 | ||
19 | #include <linux/i2c.h> | 19 | #include <linux/i2c.h> |
20 | #include <linux/i2c-mux.h> | 20 | #include <linux/i2c-mux.h> |
21 | #include <linux/init.h> | ||
22 | #include <linux/module.h> | 21 | #include <linux/module.h> |
23 | #include <linux/pinctrl/consumer.h> | 22 | #include <linux/pinctrl/consumer.h> |
24 | #include <linux/i2c-mux-pinctrl.h> | 23 | #include <linux/i2c-mux-pinctrl.h> |