Skip to content

Commit

Permalink
crypto: ccp - Fix device IRQ counting by using platform_irq_count()
Browse files Browse the repository at this point in the history
The ccp driver loops through the platform device resources array to get
the IRQ count for the device. With commit a1a2b71 ("of/platform: Drop
static setup of IRQ resource from DT core"), the IRQ resources are no
longer stored in the platform device resource array. As a result, the IRQ
count is now always zero. This causes the driver to issue a second call to
platform_get_irq(), which fails if the IRQ count is really 1, causing the
loading of the driver to fail.

Replace looping through the resources array to count the number of IRQs
with a call to platform_irq_count().

Fixes: a1a2b71 ("of/platform: Drop static setup of IRQ resource from DT core")
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
  • Loading branch information
Tom Lendacky authored and Herbert Xu committed Jun 24, 2022
1 parent abfed87 commit 87d0440
Showing 1 changed file with 2 additions and 10 deletions.
12 changes: 2 additions & 10 deletions drivers/crypto/ccp/sp-platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,17 +85,9 @@ static int sp_get_irqs(struct sp_device *sp)
struct sp_platform *sp_platform = sp->dev_specific;
struct device *dev = sp->dev;
struct platform_device *pdev = to_platform_device(dev);
unsigned int i, count;
int ret;

for (i = 0, count = 0; i < pdev->num_resources; i++) {
struct resource *res = &pdev->resource[i];

if (resource_type(res) == IORESOURCE_IRQ)
count++;
}

sp_platform->irq_count = count;
sp_platform->irq_count = platform_irq_count(pdev);

ret = platform_get_irq(pdev, 0);
if (ret < 0) {
Expand All @@ -104,7 +96,7 @@ static int sp_get_irqs(struct sp_device *sp)
}

sp->psp_irq = ret;
if (count == 1) {
if (sp_platform->irq_count == 1) {
sp->ccp_irq = ret;
} else {
ret = platform_get_irq(pdev, 1);
Expand Down

0 comments on commit 87d0440

Please sign in to comment.