Re: [PATCH 1/3 v2] GPIO: gpio-dwapb: Enable platform driver binding to MFD driver
From: Shevchenko, Andriy <hidden>
Date: 2014-09-05 12:04:16
Also in:
linux-gpio, lkml
On Fri, 2014-09-05 at 10:20 +0000, Chen, Alvin wrote:
quoted
quoted
- port->bgc.gc.ngpio = ngpio; - port->bgc.gc.of_node = port_np; +#ifdef CONFIG_OF_GPIODo we really need this #ifdef ? of_node will be NULL anyway, or I missed something?Yes, otherwise, can't compile it. Please refer 'struct gpio_chip', 'gc.of_node' is in OF_GPIO micro also.
Ah, okay. Thus, it depends to Linus opinion, since I, for example, would like to see this field present in the structure independently of OF_GPIO.
quoted
quoted
+ if (pp->irq)irq == 0 is a valid hwirq (hardware irq) number. Yes, there is unlikely we have it somewhere, but still it's possible. And yes, IRQ framework doesn't work with virq == 0 (*virtual* irq), but accepts hwirq == 0. I recommend to use int type for irq line number, and recognize negative value (usually -1) as no irq needed / found.Understand. But if you refer the original code, you can see: irq = irq_of_parse_and_map(node, 0); If (!irq) { ...... return; } From above code, if irq=0, it indicates irq is not supported for OF devices. If we use '-1' to indicate irq is not supported. To make OF work, then our code should be:
Yes, like I said above. You introduce hw irq in the pdata, which could be 0.
irq = irq_of_parse_and_map(node, 0);
If (!irq) {
pp->irq = -1;
return;
} else {
pp->irq = irq;
}
Then the code looks strange.
How do you think?If I understood correctly you messed up with hwirq vs. virq. Otherwise you have mention that you are using virq everywhere (I guess you may rename the field in the structure), but in this case the field in the platform_data looks a bit strange. Linus, what do you think? P.S. Please, remove my Reviewed-by tag since code is changed enough. -- Andy Shevchenko [off-list ref] Intel Finland Oy --------------------------------------------------------------------- Intel Finland Oy Registered Address: PL 281, 00181 Helsinki Business Identity Code: 0357606 - 4 Domiciled in Helsinki This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.