[PATCH v7 1/4] i2c-mpc: use __devinit[data] for initialization functions and data

Wolfgang Grandegger wg at grandegger.com
Wed Feb 17 07:49:46 EST 2010


Grant Likely wrote:
> On Wed, Feb 10, 2010 at 7:55 AM, Wolfgang Grandegger <wg at grandegger.com> wrote:
>> From: Wolfgang Grandegger <wg at denx.de>
>>
>> "__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 <wg at denx.de>
>> Tested-by: Wolfram Sang <w.sang at pengutronix.de>
> 
> Between patch 1 & 2 is not bisectable.  Functions still called
> *_setclock in this patch, but referenced as *_setup in the structure.
> Please respin.

Argh, sorry for the mess. I will fix it tomorrow.

> Also ...
> 
>> +static struct mpc_i2c_data mpc_i2c_data_52xx __devinitdata = {
>> +       .setup = mpc_i2c_setup_52xx,
>> +};
>> +
>> +static struct mpc_i2c_data mpc_i2c_data_8313 __devinitdata = {
>> +       .setup = mpc_i2c_setup_8xxx,
>> +};
>> +
>> +static struct mpc_i2c_data mpc_i2c_data_8543 __devinitdata = {
>> +       .setup = mpc_i2c_setup_8xxx,
>> +       .prescaler = 2,
>> +};
>> +
>> +static struct mpc_i2c_data mpc_i2c_data_8544 __devinitdata = {
>> +       .setup = mpc_i2c_setup_8xxx,
>> +       .prescaler = 3,
>> +};
>> +
>>  static const struct of_device_id mpc_i2c_of_match[] = {
>> -       {.compatible = "mpc5200-i2c",
>> -        .data = &(struct mpc_i2c_match_data) {
>> -                       .setclock = mpc_i2c_setclock_52xx,
>> -               },
>> -       },
>> -       {.compatible = "fsl,mpc5200b-i2c",
>> -        .data = &(struct mpc_i2c_match_data) {
>> -                       .setclock = mpc_i2c_setclock_52xx,
>> -               },
>> -       },
>> -       {.compatible = "fsl,mpc5200-i2c",
>> -        .data = &(struct mpc_i2c_match_data) {
>> -                       .setclock = mpc_i2c_setclock_52xx,
>> -               },
>> -       },
>> -       {.compatible = "fsl,mpc8313-i2c",
>> -        .data = &(struct mpc_i2c_match_data) {
>> -                       .setclock = mpc_i2c_setclock_8xxx,
>> -               },
>> -       },
>> -       {.compatible = "fsl,mpc8543-i2c",
>> -        .data = &(struct mpc_i2c_match_data) {
>> -                       .setclock = mpc_i2c_setclock_8xxx,
>> -                       .prescaler = 2,
>> -               },
>> -       },
>> -       {.compatible = "fsl,mpc8544-i2c",
>> -        .data = &(struct mpc_i2c_match_data) {
>> -                       .setclock = mpc_i2c_setclock_8xxx,
>> -                       .prescaler = 3,
>> -               },
>> +       {.compatible = "mpc5200-i2c", .data = &mpc_i2c_data_52xx, },
>> +       {.compatible = "fsl,mpc5200b-i2c", .data = &mpc_i2c_data_52xx, },
>> +       {.compatible = "fsl,mpc5200-i2c", .data = &mpc_i2c_data_52xx, },
>> +       {.compatible = "fsl,mpc8313-i2c", .data = &mpc_i2c_data_8313, },
>> +       {.compatible = "fsl,mpc8543-i2c", .data = &mpc_i2c_data_8543, },
>> +       {.compatible = "fsl,mpc8544-i2c", .data = &mpc_i2c_data_8544, },
> 
> ... what was wrong with the old format of declaring the .data
> structures inline with the match table?

It does not allow to use __devinitdata because the space reserved by the
compiler does belong to another section. In other words it was necessary
to get ride of section mismatches.

Wolfgang.


More information about the Linuxppc-dev mailing list