USB: isp1362: fix build failure on ARM systems via irq_flags cleanup
There was some left over #ifdef ARM logic that is outdated but no one really noticed. So instead of relying on this tricky logic, properly load and utilize the platform irq_flags resources. Reported-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Lothar Wassmann <LW@KARO-electronics.de> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Родитель
96b85179b4
Коммит
0a2fea2e0d
|
@ -2697,6 +2697,8 @@ static int __init isp1362_probe(struct platform_device *pdev)
|
|||
void __iomem *data_reg;
|
||||
int irq;
|
||||
int retval = 0;
|
||||
struct resource *irq_res;
|
||||
unsigned int irq_flags = 0;
|
||||
|
||||
/* basic sanity checks first. board-specific init logic should
|
||||
* have initialized this the three resources and probably board
|
||||
|
@ -2710,11 +2712,12 @@ static int __init isp1362_probe(struct platform_device *pdev)
|
|||
|
||||
data = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
addr = platform_get_resource(pdev, IORESOURCE_MEM, 1);
|
||||
irq = platform_get_irq(pdev, 0);
|
||||
if (!addr || !data || irq < 0) {
|
||||
irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
|
||||
if (!addr || !data || !irq_res) {
|
||||
retval = -ENODEV;
|
||||
goto err1;
|
||||
}
|
||||
irq = irq_res->start;
|
||||
|
||||
#ifdef CONFIG_USB_HCD_DMA
|
||||
if (pdev->dev.dma_mask) {
|
||||
|
@ -2781,12 +2784,16 @@ static int __init isp1362_probe(struct platform_device *pdev)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARM
|
||||
if (isp1362_hcd->board)
|
||||
set_irq_type(irq, isp1362_hcd->board->int_act_high ? IRQT_RISING : IRQT_FALLING);
|
||||
#endif
|
||||
if (irq_res->flags & IORESOURCE_IRQ_HIGHEDGE)
|
||||
irq_flags |= IRQF_TRIGGER_RISING;
|
||||
if (irq_res->flags & IORESOURCE_IRQ_LOWEDGE)
|
||||
irq_flags |= IRQF_TRIGGER_FALLING;
|
||||
if (irq_res->flags & IORESOURCE_IRQ_HIGHLEVEL)
|
||||
irq_flags |= IRQF_TRIGGER_HIGH;
|
||||
if (irq_res->flags & IORESOURCE_IRQ_LOWLEVEL)
|
||||
irq_flags |= IRQF_TRIGGER_LOW;
|
||||
|
||||
retval = usb_add_hcd(hcd, irq, IRQF_TRIGGER_LOW | IRQF_DISABLED | IRQF_SHARED);
|
||||
retval = usb_add_hcd(hcd, irq, irq_flags | IRQF_DISABLED | IRQF_SHARED);
|
||||
if (retval != 0)
|
||||
goto err6;
|
||||
pr_info("%s, irq %d\n", hcd->product_desc, irq);
|
||||
|
|
Загрузка…
Ссылка в новой задаче