Re: [PATCH 1/5] input/cma3000_d0x: Support devices without pdata

From: Jonathan Cameron
Date: Tue Oct 18 2011 - 08:51:55 EST


On 10/18/11 13:07, Ricardo Ribalda Delgado wrote:
> Hello Jonathan
>
> Thanks for your fast reply :)
>
>> I'm not that familiar with DT yet, but surely there is a means to supplying
>> the equivalent data? I'd prefer to see that provided here as well.
>
> If you check the file drivers/of/of_spi.c you can see that only reg,
> spi-cpha, spi-cpol, spi-cs-high, spi-max-freq and irq is imported
> straight from the DT, that is why I created the default configuration.
Sure, for spi, those are all that makes sense, but you ought to be able
to use of_get_property to get to whatever else you need?
See for example drivers/hwmon/ads1015.c which is an i2c device doing similar
stuff.
>
> I can give it a second thought, but I think it wont hurt to have a
> per-default configuration.
Indeed, nothing wrong with having a default, but the fact that dt
doesn't supply it isn't a good reason to state!
>
>>> +
>>> struct cma3000_accl_data {
>>> const struct cma3000_bus_ops *bus_ops;
>>> const struct cma3000_platform_data *pdata;
>>> @@ -283,19 +295,24 @@ EXPORT_SYMBOL(cma3000_resume);
>>> struct cma3000_accl_data *cma3000_init(struct device *dev, int irq,
>>> const struct cma3000_bus_ops *bops)
>>> {
>>> - const struct cma3000_platform_data *pdata = dev->platform_data;
>>> + const struct cma3000_platform_data *pdata;
>> Leave this line alone....
>>> struct cma3000_accl_data *data;
>>> struct input_dev *input_dev;
>>> int rev;
>>> int error;
>>>
>>> + if (!dev->platform_data) {
>>> + dev_info(dev, "platform data not found, using default\n");
>>> + pdata = &cma3000_default_pdata;
>>> + } else
>>> + pdata = dev->platform_data;
>>> +
>> and this becomes
>>
>> if (pdata == NULL) {
>> dev_info(dev, "platform data not found, using default\n");
>> pdata = &cma3000_default_pdata;
>> }
>>
>>> if (!pdata) {
>>> dev_err(dev, "platform data not found\n");
>>> error = -EINVAL;
>>> goto err_out;
>>> }
>> This can't happen now so get rid of the test.
>>>
>>> -
>>> /* if no IRQ return error */
>>> if (irq == 0) {
>>> error = -EINVAL;
>>
>>
>
> Ready on the new version of the patch.
>
>
> Thanks again
>
>
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/