Thread (3 messages) 3 messages, 2 authors, 2011-10-18

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

  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help