• M
    can: m_can: m_can_open(): remove IRQF_TRIGGER_FALLING from request_threaded_irq()'s flags · 865f5b67
    Marc Kleine-Budde 提交于
    The threaded IRQ handler is used for the tcan4x5x driver only. The IRQ pin of
    the tcan4x5x controller is active low, so better not use IRQF_TRIGGER_FALLING
    when requesting the IRQ. As this can result in missing interrupts.
    
    Further, if the device tree specified the interrupt as "IRQ_TYPE_LEVEL_LOW",
    unloading and reloading of the driver results in the following error during
    ifup:
    
    | irq: type mismatch, failed to map hwirq-31 for gpio@20a8000!
    | tcan4x5x spi1.1: m_can device registered (irq=0, version=32)
    | tcan4x5x spi1.1 can2: TCAN4X5X successfully initialized.
    | tcan4x5x spi1.1 can2: failed to request interrupt
    
    This patch fixes the problem by removing the IRQF_TRIGGER_FALLING from the
    request_threaded_irq().
    
    Fixes: f524f829 ("can: m_can: Create a m_can platform framework")
    Cc: Dan Murphy <dmurphy@ti.com>
    Cc: Sriram Dash <sriram.dash@samsung.com>
    Cc: Pankaj Sharma <pankj.sharma@samsung.com>
    Link: https://lore.kernel.org/r/20201127093548.509253-1-mkl@pengutronix.deSigned-off-by: NMarc Kleine-Budde <mkl@pengutronix.de>
    865f5b67
m_can.c 47.7 KB