drivers: fwnode: fix fwnode_irq_get[_byname]()
The fwnode_irq_get() and the fwnode_irq_get_byname() return 0 upon
device-tree IRQ mapping failure. This is contradicting the
fwnode_irq_get_byname() function documentation and can potentially be a
source of errors like:
int probe(...) {
...
irq = fwnode_irq_get_byname();
if (irq <= 0)
return irq;
...
}
Here we do correctly check the return value from fwnode_irq_get_byname()
but the driver probe will now return success. (There was already one
such user in-tree).
Change the fwnode_irq_get_byname() to work as documented and make also the
fwnode_irq_get() follow same common convention returning a negative errno
upon failure.
Fixes: ca0acb511c
("device property: Add fwnode_irq_get_byname")
Suggested-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Suggested-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Message-ID: <3e64fe592dc99e27ef9a0b247fc49fa26b6b8a58.1685340157.git.mazziesaccount@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
259b8366fd
commit
39d422555e
|
@ -987,12 +987,18 @@ EXPORT_SYMBOL(fwnode_iomap);
|
|||
* @fwnode: Pointer to the firmware node
|
||||
* @index: Zero-based index of the IRQ
|
||||
*
|
||||
* Return: Linux IRQ number on success. Other values are determined
|
||||
* according to acpi_irq_get() or of_irq_get() operation.
|
||||
* Return: Linux IRQ number on success. Negative errno on failure.
|
||||
*/
|
||||
int fwnode_irq_get(const struct fwnode_handle *fwnode, unsigned int index)
|
||||
{
|
||||
return fwnode_call_int_op(fwnode, irq_get, index);
|
||||
int ret;
|
||||
|
||||
ret = fwnode_call_int_op(fwnode, irq_get, index);
|
||||
/* We treat mapping errors as invalid case */
|
||||
if (ret == 0)
|
||||
return -EINVAL;
|
||||
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(fwnode_irq_get);
|
||||
|
||||
|
|
Loading…
Reference in New Issue