mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 14:12:06 +00:00
driver-core: platform: Add platform_irq_count()
A recent patch added calls to of_irq_count() in the qcom pinctrl drivers and that caused module build failures because of_irq_count() is not an exported symbol. We shouldn't export of_irq_count() to modules because it's an internal OF API that shouldn't be used by drivers. Platform drivers should use platform device APIs instead. Therefore, add a platform_irq_count() API that mirrors the of_irq_count() API so that platform drivers can stay DT agnostic. Cc: Andy Gross <andy.gross@linaro.org> Acked-by: Rob Herring <robh@kernel.org> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
c9f294ff65
commit
4b83555d50
@ -116,6 +116,26 @@ int platform_get_irq(struct platform_device *dev, unsigned int num)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(platform_get_irq);
|
||||
|
||||
/**
|
||||
* platform_irq_count - Count the number of IRQs a platform device uses
|
||||
* @dev: platform device
|
||||
*
|
||||
* Return: Number of IRQs a platform device uses or EPROBE_DEFER
|
||||
*/
|
||||
int platform_irq_count(struct platform_device *dev)
|
||||
{
|
||||
int ret, nr = 0;
|
||||
|
||||
while ((ret = platform_get_irq(dev, nr)) >= 0)
|
||||
nr++;
|
||||
|
||||
if (ret == -EPROBE_DEFER)
|
||||
return ret;
|
||||
|
||||
return nr;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(platform_irq_count);
|
||||
|
||||
/**
|
||||
* platform_get_resource_byname - get a resource for a device by name
|
||||
* @dev: platform device
|
||||
|
@ -51,6 +51,7 @@ extern void arch_setup_pdev_archdata(struct platform_device *);
|
||||
extern struct resource *platform_get_resource(struct platform_device *,
|
||||
unsigned int, unsigned int);
|
||||
extern int platform_get_irq(struct platform_device *, unsigned int);
|
||||
extern int platform_irq_count(struct platform_device *);
|
||||
extern struct resource *platform_get_resource_byname(struct platform_device *,
|
||||
unsigned int,
|
||||
const char *);
|
||||
|
Loading…
Reference in New Issue
Block a user