Bluetooth: hci_bcm: Make bcm_request_irq fail if no IRQ resource
In case of no IRQ resource associated to the bcm_device, requesting IRQ should return an error in order to not enable low power mgmt. Signed-off-by: Loic Poulain <loic.poulain@gmail.com> Reported-by: Ian Molton <ian@mnementh.co.uk> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
committed by
Marcel Holtmann
parent
04d8980b4a
commit
98dc77d571
@ -176,7 +176,7 @@ static irqreturn_t bcm_host_wake(int irq, void *data)
|
||||
static int bcm_request_irq(struct bcm_data *bcm)
|
||||
{
|
||||
struct bcm_device *bdev = bcm->dev;
|
||||
int err = 0;
|
||||
int err;
|
||||
|
||||
/* If this is not a platform device, do not enable PM functionalities */
|
||||
mutex_lock(&bcm_device_lock);
|
||||
@ -185,10 +185,13 @@ static int bcm_request_irq(struct bcm_data *bcm)
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
if (bdev->irq > 0) {
|
||||
err = devm_request_irq(&bdev->pdev->dev, bdev->irq,
|
||||
bcm_host_wake, IRQF_TRIGGER_RISING,
|
||||
"host_wake", bdev);
|
||||
if (bdev->irq <= 0) {
|
||||
err = -EOPNOTSUPP;
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
err = devm_request_irq(&bdev->pdev->dev, bdev->irq, bcm_host_wake,
|
||||
IRQF_TRIGGER_RISING, "host_wake", bdev);
|
||||
if (err)
|
||||
goto unlock;
|
||||
|
||||
@ -199,7 +202,6 @@ static int bcm_request_irq(struct bcm_data *bcm)
|
||||
pm_runtime_use_autosuspend(&bdev->pdev->dev);
|
||||
pm_runtime_set_active(&bdev->pdev->dev);
|
||||
pm_runtime_enable(&bdev->pdev->dev);
|
||||
}
|
||||
|
||||
unlock:
|
||||
mutex_unlock(&bcm_device_lock);
|
||||
|
Reference in New Issue
Block a user