lkml.org 
[lkml]   [2022]   [Aug]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 214/389] remoteproc: qcom: wcnss: Fix handling of IRQs
    Date
    From: Sireesh Kodali <sireeshkodali1@gmail.com>

    [ Upstream commit bed0adac1ded4cb486ba19a3a7e730fbd9a1c9c6 ]

    The wcnss_get_irq function is expected to return a value > 0 in the
    event that an IRQ is succssfully obtained, but it instead returns 0.
    This causes the stop and ready IRQs to never actually be used despite
    being defined in the device-tree. This patch fixes that.

    Fixes: aed361adca9f ("remoteproc: qcom: Introduce WCNSS peripheral image loader")
    Signed-off-by: Sireesh Kodali <sireeshkodali1@gmail.com>
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Link: https://lore.kernel.org/r/20220526141740.15834-2-sireeshkodali1@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/remoteproc/qcom_wcnss.c | 10 ++++++++--
    1 file changed, 8 insertions(+), 2 deletions(-)

    diff --git a/drivers/remoteproc/qcom_wcnss.c b/drivers/remoteproc/qcom_wcnss.c
    index c72f1b3b6085..18431ac09822 100644
    --- a/drivers/remoteproc/qcom_wcnss.c
    +++ b/drivers/remoteproc/qcom_wcnss.c
    @@ -407,6 +407,7 @@ static int wcnss_request_irq(struct qcom_wcnss *wcnss,
    irq_handler_t thread_fn)
    {
    int ret;
    + int irq_number;

    ret = platform_get_irq_byname(pdev, name);
    if (ret < 0 && optional) {
    @@ -417,14 +418,19 @@ static int wcnss_request_irq(struct qcom_wcnss *wcnss,
    return ret;
    }

    + irq_number = ret;
    +
    ret = devm_request_threaded_irq(&pdev->dev, ret,
    NULL, thread_fn,
    IRQF_TRIGGER_RISING | IRQF_ONESHOT,
    "wcnss", wcnss);
    - if (ret)
    + if (ret) {
    dev_err(&pdev->dev, "request %s IRQ failed\n", name);
    + return ret;
    + }

    - return ret;
    + /* Return the IRQ number if the IRQ was successfully acquired */
    + return irq_number;
    }

    static int wcnss_alloc_memory_region(struct qcom_wcnss *wcnss)
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-23 13:38    [W:2.464 / U:0.832 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site