Thread (1 message) 1 message, 1 author, 2010-02-09

Re: [PATCH v4 1/3] i2c-mpc: use __devinit[data] for initialization functions and data

From: Grant Likely <hidden>
Date: 2010-02-09 17:41:39
Also in: linux-devicetree, linux-i2c

On Thu, Jan 28, 2010 at 6:25 AM, Wolfgang Grandegger [off-list ref] wr=
ote:
From: Wolfgang Grandegger <redacted>

"__devinit[data]" has not yet been used for all initialization functions
and data. To avoid truncating lines, the struct "mpc_i2c_match_data" has
been renamed to "mpc_i2c_data", which is even the better name.

Signed-off-by: Wolfgang Grandegger <redacted>
Several comments below.
---
=A0drivers/i2c/busses/i2c-mpc.c | =A0103 +++++++++++++++++++-------------=
---------
quoted hunk
=A01 files changed, 48 insertions(+), 55 deletions(-)
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index f627001..275ebe6 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -66,7 +66,7 @@ struct mpc_i2c_divider {
=A0 =A0 =A0 =A0u16 fdr; =A0 =A0 =A0 =A0/* including dfsrr */
=A0};

-struct mpc_i2c_match_data {
+struct mpc_i2c_data {
=A0 =A0 =A0 =A0void (*setclock)(struct device_node *node,
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 struct mpc_i2c *i2c,
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 u32 clock, u32 prescaler)=
;
quoted hunk
@@ -165,7 +165,7 @@ static int i2c_wait(struct mpc_i2c *i2c, unsigned tim=
eout, int writing)
=A0}

=A0#ifdef CONFIG_PPC_MPC52xx
-static const struct mpc_i2c_divider mpc_i2c_dividers_52xx[] =3D {
+static const struct __devinitdata mpc_i2c_divider mpc_i2c_dividers_52xx[=
] =3D {

__devinitdata goes at the end, immediately before the '=3D'.  Ditto
throughout the file.
quoted hunk
=A0 =A0 =A0 =A0{20, 0x20}, {22, 0x21}, {24, 0x22}, {26, 0x23},
=A0 =A0 =A0 =A0{28, 0x24}, {30, 0x01}, {32, 0x25}, {34, 0x02},
=A0 =A0 =A0 =A0{36, 0x26}, {40, 0x27}, {44, 0x04}, {48, 0x28},
@@ -582,44 +584,35 @@ static int __devexit fsl_i2c_remove(struct of_devic=
e *op)
=A0 =A0 =A0 =A0return 0;
=A0};

+static struct mpc_i2c_data __devinitdata mpc_i2c_data_52xx =3D {
+ =A0 =A0 =A0 .setclock =3D mpc_i2c_setclock_52xx,
+};
+
+static struct mpc_i2c_data __devinitdata mpc_i2c_data_8313 =3D {
+ =A0 =A0 =A0 .setclock =3D mpc_i2c_setclock_8xxx,
+};
+
+static struct mpc_i2c_data __devinitdata mpc_i2c_data_8543 =3D {
+ =A0 =A0 =A0 .setclock =3D mpc_i2c_setclock_8xxx,
+ =A0 =A0 =A0 .prescaler =3D 2,
+};
+
+static struct mpc_i2c_data __devinitdata mpc_i2c_data_8544 =3D {
+ =A0 =A0 =A0 .setclock =3D mpc_i2c_setclock_8xxx,
+ =A0 =A0 =A0 .prescaler =3D 3,
+};
+
=A0static const struct of_device_id mpc_i2c_of_match[] =3D {
You can make this __devinitdata too.
- =A0 =A0 =A0 {.compatible =3D "mpc5200-i2c",
- =A0 =A0 =A0 =A0.data =3D &(struct mpc_i2c_match_data) {
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 .setclock =3D mpc_i2c_setcl=
ock_52xx,
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 },
- =A0 =A0 =A0 },
- =A0 =A0 =A0 {.compatible =3D "fsl,mpc5200b-i2c",
- =A0 =A0 =A0 =A0.data =3D &(struct mpc_i2c_match_data) {
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 .setclock =3D mpc_i2c_setcl=
ock_52xx,
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 },
- =A0 =A0 =A0 },
- =A0 =A0 =A0 {.compatible =3D "fsl,mpc5200-i2c",
- =A0 =A0 =A0 =A0.data =3D &(struct mpc_i2c_match_data) {
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 .setclock =3D mpc_i2c_setcl=
ock_52xx,
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 },
- =A0 =A0 =A0 },
- =A0 =A0 =A0 {.compatible =3D "fsl,mpc8313-i2c",
- =A0 =A0 =A0 =A0.data =3D &(struct mpc_i2c_match_data) {
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 .setclock =3D mpc_i2c_setcl=
ock_8xxx,
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 },
- =A0 =A0 =A0 },
- =A0 =A0 =A0 {.compatible =3D "fsl,mpc8543-i2c",
- =A0 =A0 =A0 =A0.data =3D &(struct mpc_i2c_match_data) {
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 .setclock =3D mpc_i2c_setcl=
ock_8xxx,
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 .prescaler =3D 2,
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 },
- =A0 =A0 =A0 },
- =A0 =A0 =A0 {.compatible =3D "fsl,mpc8544-i2c",
- =A0 =A0 =A0 =A0.data =3D &(struct mpc_i2c_match_data) {
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 .setclock =3D mpc_i2c_setcl=
ock_8xxx,
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 .prescaler =3D 3,
- =A0 =A0 =A0 =A0 =A0 =A0 =A0 },
+ =A0 =A0 =A0 {.compatible =3D "mpc5200-i2c", .data =3D &mpc_i2c_data_52x=
x, },
+ =A0 =A0 =A0 {.compatible =3D "fsl,mpc5200b-i2c", .data =3D &mpc_i2c_dat=
a_52xx, },
+ =A0 =A0 =A0 {.compatible =3D "fsl,mpc5200-i2c", .data =3D &mpc_i2c_data=
_52xx, },
+ =A0 =A0 =A0 {.compatible =3D "fsl,mpc8313-i2c", .data =3D &mpc_i2c_data=
_8313, },
+ =A0 =A0 =A0 {.compatible =3D "fsl,mpc8543-i2c", .data =3D &mpc_i2c_data=
_8543, },
+ =A0 =A0 =A0 {.compatible =3D "fsl,mpc8544-i2c", .data =3D &mpc_i2c_data=
_8544, },
quoted hunk
=A0 =A0 =A0 =A0/* Backward compatibility */
- =A0 =A0 =A0 },
=A0 =A0 =A0 =A0{.compatible =3D "fsl-i2c", },
=A0 =A0 =A0 =A0{},
=A0};
-
=A0MODULE_DEVICE_TABLE(of, mpc_i2c_of_match);

@@ -634,7 +627,7 @@ static struct of_platform_driver mpc_i2c_driver =3D {
=A0 =A0 =A0 =A0},
=A0};

-static int __init fsl_i2c_init(void)
+static int __devinit fsl_i2c_init(void)
No, __init was correct.  This is called as a module_init() not as a .probe =
hook.
quoted hunk
=A0{
=A0 =A0 =A0 =A0int rv;
@@ -645,7 +638,7 @@ static int __init fsl_i2c_init(void)
=A0 =A0 =A0 =A0return rv;
=A0}

-static void __exit fsl_i2c_exit(void)
+static void __devexit fsl_i2c_exit(void)
Same here for __exit.
=A0{
=A0 =A0 =A0 =A0of_unregister_platform_driver(&mpc_i2c_driver);
=A0}
--
1.6.2.5

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


--=20
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help