• Hans de Goede's avatar
    Bluetooth: hci_bcm: Fix setting of irq trigger type · 227630cc
    Hans de Goede authored
    This commit fixes 2 issues with host-wake irq trigger type handling
    in hci_bcm:
    
    1) bcm_setup_sleep sets sleep_params.host_wake_active based on
    bcm_device.irq_polarity, but bcm_request_irq was always requesting
    IRQF_TRIGGER_RISING as trigger type independent of irq_polarity.
    
    This was a problem when the irq is described as a GpioInt rather then
    an Interrupt in the DSDT as for GpioInt-s the value passed to request_irq
    is honored. This commit fixes this by requesting the correct trigger
    type depending on bcm_device.irq_polarity.
    
    2) bcm_device.irq_polarity was used to directly store an ACPI polarity
    value (ACPI_ACTIVE_*). This is undesirable because hci_bcm is also
    used with device-tree and checking for something like ACPI_ACTIVE_LOW
    in a non ACPI specific function like bcm_request_irq feels wrong.
    
    This commit fixes this by renaming irq_polarity to irq_active_low
    and changing its type to a bool.
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
    227630cc
hci_bcm.c 23.9 KB