Hi Grant, On 1/4/2012 7:12 PM, Grant Likely wrote:
On Fri, Dec 09, 2011 at 03:02:34PM +0100, Benoit Cousson wrote:
[...]
@@ -1183,22 +1187,53 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id) int status; unsigned i; struct twl4030_platform_data *pdata = client->dev.platform_data; + struct device_node *node = client->dev.of_node; u8 temp; int ret = 0; + if (node&& !pdata) { + /* + * XXX: Temporary fake pdata until the information + * is correctly retrieved by every TWL modules from DT. + */ + pdata = kzalloc(sizeof(struct twl4030_platform_data), + GFP_KERNEL);devm_kzalloc() so that it gets cleaned up on remove.
Yep, it was already updated like that in the v4.
+ if (!pdata) { + status = -ENOMEM; + goto exit; + } + + /* + * XXX: For the moment the IRQs for TWL seems to be encoded in + * the global OMAP space. That should be cleaned to allow + * dynamically adding a new IRQ controller. + */ + if ((id->driver_data)& TWL6030_CLASS) { + pdata->irq_base = TWL6030_IRQ_BASE; + pdata->irq_end = pdata->irq_base + TWL6030_BASE_NR_IRQS; + } else { + pdata->irq_base = TWL4030_IRQ_BASE; + pdata->irq_end = pdata->irq_base + TWL4030_BASE_NR_IRQS; + } + irq_domain_add_simple(node, pdata->irq_base);Yes, you'll want a follow-up patch to convert to dynamically allocated irqs... but I've got to merge the final irq_domain work first. :-)
Yes. I already have a version based on Rob's series, but did not push it since Rob was not confident with the merge of that feature for 3.3.
Acked-by: Grant Likely<[email protected]>
Thanks, Benoit -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
