Re: [PATCH 1/5] input/cma3000_d0x: Support devices without pdata
From: Jonathan Cameron <hidden>
Date: 2011-10-18 12:51:53
Also in:
lkml
On 10/18/11 13:07, Ricardo Ribalda Delgado wrote:
Hello Jonathan Thanks for your fast reply :)quoted
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!
quoted
quoted
+ 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....quoted
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; }quoted
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.quoted
- /* if no IRQ return error */ if (irq == 0) { error = -EINVAL;Ready on the new version of the patch. Thanks again