Thread (22 messages) 22 messages, 5 authors, 2014-09-22

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_GPIO
Do 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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help