Re: [PATCH RFC v3] media: i2c: mt9p031: add OF support

Prabhakar Lad
2013-05-06T14:59:46Z

Hi Arnd,

On Fri, May 3, 2013 at 8:04 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Friday 03 May 2013, Prabhakar Lad wrote:
>>
[snip]
>> +}
>
> Ok, good.
>
>> @@ -955,7 +998,17 @@ static int mt9p031_probe(struct i2c_client *client,
>> mt9p031->pdata = pdata;
>> mt9p031->output_control = MT9P031_OUTPUT_CONTROL_DEF;
>> mt9p031->mode2 = MT9P031_READ_MODE_2_ROW_BLC;
>> - mt9p031->model = did->driver_data;
>> +
>> + if (!client->dev.of_node) {
>> + mt9p031->model = (enum mt9p031_model)did->driver_data;
>> + } else {
>> + const struct of_device_id *of_id;
>> +
>> + of_id = of_match_device(of_match_ptr(mt9p031_of_match),
>> + &client->dev);
>> + if (of_id)
>> + mt9p031->model = (enum mt9p031_model)of_id->data;
>> + }
>> mt9p031->reset = -1;
>
> Is this actually required? I thought the i2c core just compared the
> part of the "compatible" value after the first comma to the string, so
> "mt9p031->model = (enum mt9p031_model)did->driver_data" should work
> in both cases.
>
I am OK with "mt9p031->model = (enum mt9p031_model)did->driver_data"
but I see still few drivers doing this, I am not sure for what reason.
If everyone is
OK with it I can drop the above change.

Laurent, Sascha what do you suggest ?

Regards,
--Prabhakar Lad