On 22.03.2014 22:55, Byungho An wrote:
Tomasz Figa <tomasz.figa@xxxxxxxxx> :
[snip]
+ if (priv->irq <= 0) {
+ dev_err(dev, "sxgbe common irq parsing failed\n");
+ sxgbe_drv_remove(ndev);
+ return -EINVAL;
+ }
+
+ /* Get the TX/RX IRQ numbers */
+ for (i = 0, chan = 0; i < SXGBE_TX_QUEUES; i++) {
+ priv->txq[i]->irq_no = irq_of_parse_and_map(node, chan++);
Hmm, this call looks suspicious. The "chan" variable starts here as 0 and so
the
first call to irq_of_parse_and_map() will end up with parsing the first
(zeroth)
entry of "interrupts" property, which would be the same as returned by
platform_get_irq(..., 0) above. Maybe this was the point where the "loop"
variable should be used?
OK. it will be chan instead of loop.
thanks I missed.
Anyway, why you couldn't simply use platform_get_irq() here as well?
I'll change platform_get_irq to irq_of_parse_and_map because latter can
support PCI and nonPCI
Hmm, since this function is for probing only platform devices, I don't
see how this code could be used for PCI. For platform devices
platform_get_irq() is preferred.
Best regards,
Tomasz
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html