From patchwork Tue Jul 27 19:46:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 12403531 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8B5EAC4338F for ; Tue, 27 Jul 2021 19:46:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6AC1560F6E for ; Tue, 27 Jul 2021 19:46:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232140AbhG0Tqh (ORCPT ); Tue, 27 Jul 2021 15:46:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37330 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230387AbhG0Tqf (ORCPT ); Tue, 27 Jul 2021 15:46:35 -0400 Received: from mail-io1-xd2e.google.com (mail-io1-xd2e.google.com [IPv6:2607:f8b0:4864:20::d2e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D8EC2C061764 for ; Tue, 27 Jul 2021 12:46:33 -0700 (PDT) Received: by mail-io1-xd2e.google.com with SMTP id m13so107865iol.7 for ; Tue, 27 Jul 2021 12:46:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2G5lQvEnI5L7BAUDwmuhfg8oZzrhcwdOUc0mzF2aRsc=; b=Mp7tC8vOl5C2a2JYxESAytRd5Qb1AzB9ZFF+kS2kCRs+HYCJr3feYT/2YfjZzGi5GB TKbfT4o3YNzt8k8I0cqukBSAo5X6gF5yANonz3all/ow1ejcGzsHmXMlctma9kf6Zmr/ rczoiOvhnM/oD6JW4G91cSSwgtNjrQqkNtB2A4u3rtZhKmbUFIgfJx7cxYhW15pkU3He zROXvWjDpAQ37+29PBD7uziK4shBu11cgPlljL5sgOKUys2OqQdpTiGZUL/0Cq0+tNtr jP3JxQiVdep4aTZ8aqYEU+iJnENvLFatpK/Np4fQpj+ZVEViT0BqapbKiGv0xg34svVw 74pQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2G5lQvEnI5L7BAUDwmuhfg8oZzrhcwdOUc0mzF2aRsc=; b=hF4+XhAw39X7c8TRFluKHXqkubj+0mw2zkMOM+B5FwuQ3wTvO0bUkT2Yp3yy+g61Yl yOir2OX47hDaPM2B2OtPszeyQyNY9IBFKlLLSi2S66N5QE56ijXb/F27ujAG8NOKcVVw Am3JjBuM2bTFGJUpLUVs6JxGlOxO4HKR+al6WjxZjT6p/pIbUadAVbY6qMDsy18TeA2K qpqKMVIH9eVqIOmzjXZvDhzMB5slzDBFpnDRKwTkQ/UGDO+J7+zBkRxYLT5Wp7UJ8Cla d7xK62zxlV21O5FSq6mQkr8ZaqPRGufsH5knkZJ/CUAoRtpK5pGWhL0QQp3h8iJSt+SP 6niQ== X-Gm-Message-State: AOAM531Oihf1w1gO55j2hmxuvjN3oQBDtCNoKYQx0oATmuoLQEyPSl8v esScTb6tcQo58/YV2ZseofykjA== X-Google-Smtp-Source: ABdhPJxW7trJGBuq9D/FTOdvwU9uganS4E7JRZEnslTh0xbN1qbZJ1p+phGPrZjZ5dHKPTTi7bcf6Q== X-Received: by 2002:a6b:ec0d:: with SMTP id c13mr20756506ioh.108.1627415193209; Tue, 27 Jul 2021 12:46:33 -0700 (PDT) Received: from presto.localdomain (c-73-185-129-58.hsd1.mn.comcast.net. [73.185.129.58]) by smtp.gmail.com with ESMTPSA id c1sm2443014ils.21.2021.07.27.12.46.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Jul 2021 12:46:32 -0700 (PDT) From: Alex Elder To: davem@davemloft.net, kuba@kernel.org Cc: bjorn.andersson@linaro.org, evgreen@chromium.org, cpratapa@codeaurora.org, subashab@codeaurora.org, elder@kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 1/4] net: ipa: make IPA interrupt handler threaded only Date: Tue, 27 Jul 2021 14:46:26 -0500 Message-Id: <20210727194629.841131-2-elder@linaro.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210727194629.841131-1-elder@linaro.org> References: <20210727194629.841131-1-elder@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org When the IPA interrupt handler runs, the IPA core clock must already be operational, and the interconnect providing access by the AP to IPA config space must be enabled too. Currently we ensure this by taking a top-level "stay awake" IPA clock reference, but that will soon go away. In preparation for that, move all handling for the IPA IRQ into the thread function. Signed-off-by: Alex Elder --- drivers/net/ipa/ipa_interrupt.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/drivers/net/ipa/ipa_interrupt.c b/drivers/net/ipa/ipa_interrupt.c index 9fd158dd90473..7dee4ebaf5a95 100644 --- a/drivers/net/ipa/ipa_interrupt.c +++ b/drivers/net/ipa/ipa_interrupt.c @@ -100,32 +100,22 @@ static void ipa_interrupt_process_all(struct ipa_interrupt *interrupt) } } -/* Threaded part of the IPA IRQ handler */ +/* IPA IRQ handler is threaded */ static irqreturn_t ipa_isr_thread(int irq, void *dev_id) -{ - struct ipa_interrupt *interrupt = dev_id; - - ipa_clock_get(interrupt->ipa); - - ipa_interrupt_process_all(interrupt); - - ipa_clock_put(interrupt->ipa); - - return IRQ_HANDLED; -} - -/* Hard part (i.e., "real" IRQ handler) of the IRQ handler */ -static irqreturn_t ipa_isr(int irq, void *dev_id) { struct ipa_interrupt *interrupt = dev_id; struct ipa *ipa = interrupt->ipa; u32 offset; u32 mask; + ipa_clock_get(ipa); + offset = ipa_reg_irq_stts_offset(ipa->version); mask = ioread32(ipa->reg_virt + offset); - if (mask & interrupt->enabled) - return IRQ_WAKE_THREAD; + if (mask & interrupt->enabled) { + ipa_interrupt_process_all(interrupt); + goto out_clock_put; + } /* Nothing in the mask was supposed to cause an interrupt */ offset = ipa_reg_irq_clr_offset(ipa->version); @@ -134,6 +124,9 @@ static irqreturn_t ipa_isr(int irq, void *dev_id) dev_err(&ipa->pdev->dev, "%s: unexpected interrupt, mask 0x%08x\n", __func__, mask); +out_clock_put: + ipa_clock_put(ipa); + return IRQ_HANDLED; } @@ -260,7 +253,7 @@ struct ipa_interrupt *ipa_interrupt_config(struct ipa *ipa) offset = ipa_reg_irq_en_offset(ipa->version); iowrite32(0, ipa->reg_virt + offset); - ret = request_threaded_irq(irq, ipa_isr, ipa_isr_thread, IRQF_ONESHOT, + ret = request_threaded_irq(irq, NULL, ipa_isr_thread, IRQF_ONESHOT, "ipa", interrupt); if (ret) { dev_err(dev, "error %d requesting \"ipa\" IRQ\n", ret); From patchwork Tue Jul 27 19:46:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 12403539 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 70D2DC432BE for ; Tue, 27 Jul 2021 19:46:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 53CE760F6E for ; Tue, 27 Jul 2021 19:46:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232359AbhG0Tqp (ORCPT ); Tue, 27 Jul 2021 15:46:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37344 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232123AbhG0Tqh (ORCPT ); Tue, 27 Jul 2021 15:46:37 -0400 Received: from mail-io1-xd36.google.com (mail-io1-xd36.google.com [IPv6:2607:f8b0:4864:20::d36]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9E0DEC0613CF for ; Tue, 27 Jul 2021 12:46:34 -0700 (PDT) Received: by mail-io1-xd36.google.com with SMTP id r6so101054ioj.8 for ; Tue, 27 Jul 2021 12:46:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JpKATF26Oehqbj9lTGQY7PBo/hOLLmivLGfbP+CflK4=; b=QmVNUSY3LsuSyY6FD99L5WcKmSWbBwUxw6irXRHPTSYqTUUxh8K2ntp8JTi4EQV8vO fVxRMGX9WI5xhMjAcXW1QuPEJJFyHgjAGD8rTI4MgG2mbj/ZFW59IPZ1gtA0t6b62JrA 9jQZO2ByxKZR+hmLY+I3cTDUWxExHVKIhw8kpN2xD8z5QGko0GwwPANN3yVZvb44U7/T zzJHl2U9mPlYcsoAgzVjgyREm2f0IsYPdQfVXCsmeBmwt9qNuif5la5Stxog9cl9/TEL DH3i8/XMy7j2KB1Yhb7+zXK0CihxPNubhAf5Z1c5XbKF/bBLFCAlSMwT74jJwafW2RWY 8YOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JpKATF26Oehqbj9lTGQY7PBo/hOLLmivLGfbP+CflK4=; b=A4ElBudWytij3Swr/X9cL7/Z5v9jWFkuf6lSgXv3p/SQ736JA70GAvnk4aqetI54ar Yd4SDTlXUekLg7F2REusfRamfyhYaUfYh1Teryaqd+wndmutj02SXKfgpc/nfuLn9EDq IFOUBVcrMJe9SKLnEfU0zl3+BJxkdjJi3RDXPveIDepXZAOd+FayKuJOCEbEvKVf1e2/ M+Gz0jTCtoJ0krjdX8qvcole5aUUL4FAXK/wEHeascK8SVidZMSqNXTIGd704tvziPcv zEkQjz8uru/3Z0VM9L07vfVPChVzoF6OY8znMif6khscNla4mF3LmTzt0JQeGrO+lv/A 4eww== X-Gm-Message-State: AOAM533peX3egyijtklaw3Fb/31mNfDVFhBldQ64HM7dd748hFGsmhBL 0p2B74HvCYWt3wqc2DEY5hHHayI0lk7auA== X-Google-Smtp-Source: ABdhPJxwAxCI+R4uinIwfBMoUieAzOdLhtyzjmXynDCd6tMUVseKsR7S/wjGTOrxvRhDRqw/uJTaWA== X-Received: by 2002:a02:90cb:: with SMTP id c11mr23365375jag.53.1627415194152; Tue, 27 Jul 2021 12:46:34 -0700 (PDT) Received: from presto.localdomain (c-73-185-129-58.hsd1.mn.comcast.net. [73.185.129.58]) by smtp.gmail.com with ESMTPSA id c1sm2443014ils.21.2021.07.27.12.46.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Jul 2021 12:46:33 -0700 (PDT) From: Alex Elder To: davem@davemloft.net, kuba@kernel.org Cc: bjorn.andersson@linaro.org, evgreen@chromium.org, cpratapa@codeaurora.org, subashab@codeaurora.org, elder@kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 2/4] net: ipa: clear disabled IPA interrupt conditions Date: Tue, 27 Jul 2021 14:46:27 -0500 Message-Id: <20210727194629.841131-3-elder@linaro.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210727194629.841131-1-elder@linaro.org> References: <20210727194629.841131-1-elder@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org We ignore any IPA interrupt that has no handler. If any interrupt conditions without a handler exist when an IPA interrupt occurs, clear those conditions. Add a debug message to report which ones are being cleared. Signed-off-by: Alex Elder --- drivers/net/ipa/ipa_interrupt.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/drivers/net/ipa/ipa_interrupt.c b/drivers/net/ipa/ipa_interrupt.c index 7dee4ebaf5a95..c12d0c33557cd 100644 --- a/drivers/net/ipa/ipa_interrupt.c +++ b/drivers/net/ipa/ipa_interrupt.c @@ -79,6 +79,7 @@ static void ipa_interrupt_process_all(struct ipa_interrupt *interrupt) { struct ipa *ipa = interrupt->ipa; u32 enabled = interrupt->enabled; + u32 pending; u32 offset; u32 mask; @@ -87,8 +88,8 @@ static void ipa_interrupt_process_all(struct ipa_interrupt *interrupt) * only the enabled ones. */ offset = ipa_reg_irq_stts_offset(ipa->version); - mask = ioread32(ipa->reg_virt + offset); - while ((mask &= enabled)) { + pending = ioread32(ipa->reg_virt + offset); + while ((mask = pending & enabled)) { do { u32 irq_id = __ffs(mask); @@ -96,7 +97,17 @@ static void ipa_interrupt_process_all(struct ipa_interrupt *interrupt) ipa_interrupt_process(interrupt, irq_id); } while (mask); - mask = ioread32(ipa->reg_virt + offset); + pending = ioread32(ipa->reg_virt + offset); + } + + /* If any disabled interrupts are pending, clear them */ + if (pending) { + struct device *dev = &ipa->pdev->dev; + + dev_dbg(dev, "clearing disabled IPA interrupts 0x%08x\n", + pending); + offset = ipa_reg_irq_clr_offset(ipa->version); + iowrite32(pending, ipa->reg_virt + offset); } } From patchwork Tue Jul 27 19:46:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 12403537 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 56980C4338F for ; Tue, 27 Jul 2021 19:46:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3F04860C51 for ; Tue, 27 Jul 2021 19:46:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232296AbhG0Tqn (ORCPT ); Tue, 27 Jul 2021 15:46:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37338 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232110AbhG0Tqg (ORCPT ); Tue, 27 Jul 2021 15:46:36 -0400 Received: from mail-il1-x131.google.com (mail-il1-x131.google.com [IPv6:2607:f8b0:4864:20::131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9DFC4C0613C1 for ; Tue, 27 Jul 2021 12:46:35 -0700 (PDT) Received: by mail-il1-x131.google.com with SMTP id r5so374282ilc.13 for ; Tue, 27 Jul 2021 12:46:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NLz2frAd3QKDDMnRP6OXGsrEzL53XboKZfJ8zI0IXQU=; b=rBzZlHEkQej+rUd/GCmCW8HOR6qggFZa6keLtFb0bUxK3OfBXp0NsBaKM1xag4NxH4 Eki/Ji18uJTBG7/wuuHOyRBlZXvKgM0nIHNlI6+SbwnJiE0YxWtVFrNav3V02RNwuAMm aZmVKhaMMRYxRySSNW7bAc6A1ICLphUted4QmL/L1IN/M92cYBGsi1UH/xeQup+s+L/y V/DcAMvyoPECxofUraxiOZRvTqwPVK8u+4OX2pLgUh7Hd1nDQE7G50F41CS6SCSrzIhs 11VKHfZKb+BfO7N9koDQaVZuHpv2LK4FAQ9o/hI4WZj9kTU/4f4axqn2JbUfpOc+l3Ni OVgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NLz2frAd3QKDDMnRP6OXGsrEzL53XboKZfJ8zI0IXQU=; b=W4mFM6GS/hqKh+W+5hLs4CQ7rF0lY+Cyj7UyhMPaoXvlqBmZEf24dg5fBMvpwVLp8Q /zLWgYfX0ue9SIG4hupeK6z4g3sAs2qXU72ZQb5e9mPJkaYAyn8rlq7SHhvvuliQD6TE XBAA0ALk0Rr1ijuVYU+ZPQ1a76CalLJzkC2099jiI3Hl9m5JJI3fjIz1GXoiczZ82YL9 DBDzgdaIyM3eVmvlsNQi1rLkZ9pLwIkx6AngQgyW+ZEEVRLINKjj2t5qHHxivyJpZkQI 97bPTeg1hSccKxQNUFNtwtfMPbOANUu+zEHVtojbKzeXaObbdqEZhOZxCQMswtyKcQdV TEsw== X-Gm-Message-State: AOAM532V5q6B8O8GplXZCpFBjfnidbRTl5HGvJoG5Cw827wRX/RJHgVJ r9KZ0j3T2ZF6hPnUUldJ/CyiZQ== X-Google-Smtp-Source: ABdhPJyywaS6QHNTVPqQ5RTaV+g+kFPjZebNeJqzKRVYO2KZsEq2UcXPTdIIkG8U8BLtFH9Or40Ehw== X-Received: by 2002:a05:6e02:1a05:: with SMTP id s5mr1029683ild.232.1627415194959; Tue, 27 Jul 2021 12:46:34 -0700 (PDT) Received: from presto.localdomain (c-73-185-129-58.hsd1.mn.comcast.net. [73.185.129.58]) by smtp.gmail.com with ESMTPSA id c1sm2443014ils.21.2021.07.27.12.46.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Jul 2021 12:46:34 -0700 (PDT) From: Alex Elder To: davem@davemloft.net, kuba@kernel.org Cc: bjorn.andersson@linaro.org, evgreen@chromium.org, cpratapa@codeaurora.org, subashab@codeaurora.org, elder@kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 3/4] net: ipa: get rid of some unneeded IPA interrupt code Date: Tue, 27 Jul 2021 14:46:28 -0500 Message-Id: <20210727194629.841131-4-elder@linaro.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210727194629.841131-1-elder@linaro.org> References: <20210727194629.841131-1-elder@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org The pending IPA interrupts are checked by ipa_isr_thread(), and interrupts are processed only if an enabled interrupt has a condition pending. But ipa_interrupt_process_all() now makes the same check, so the one in ipa_isr_thread() can just be skipped. Also in ipa_isr_thread(), any interrupt conditions pending which are not enabled are cleared. Here too, ipa_interrupt_process_all() now clears such excess interrupt conditions, so ipa_isr_thread() doesn't have to. Signed-off-by: Alex Elder --- drivers/net/ipa/ipa_interrupt.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/drivers/net/ipa/ipa_interrupt.c b/drivers/net/ipa/ipa_interrupt.c index c12d0c33557cd..d149e496ffa72 100644 --- a/drivers/net/ipa/ipa_interrupt.c +++ b/drivers/net/ipa/ipa_interrupt.c @@ -116,26 +116,11 @@ static irqreturn_t ipa_isr_thread(int irq, void *dev_id) { struct ipa_interrupt *interrupt = dev_id; struct ipa *ipa = interrupt->ipa; - u32 offset; - u32 mask; ipa_clock_get(ipa); - offset = ipa_reg_irq_stts_offset(ipa->version); - mask = ioread32(ipa->reg_virt + offset); - if (mask & interrupt->enabled) { - ipa_interrupt_process_all(interrupt); - goto out_clock_put; - } + ipa_interrupt_process_all(interrupt); - /* Nothing in the mask was supposed to cause an interrupt */ - offset = ipa_reg_irq_clr_offset(ipa->version); - iowrite32(mask, ipa->reg_virt + offset); - - dev_err(&ipa->pdev->dev, "%s: unexpected interrupt, mask 0x%08x\n", - __func__, mask); - -out_clock_put: ipa_clock_put(ipa); return IRQ_HANDLED; From patchwork Tue Jul 27 19:46:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 12403535 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 15596C4320E for ; Tue, 27 Jul 2021 19:46:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id ED1C860F94 for ; Tue, 27 Jul 2021 19:46:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232200AbhG0Tqj (ORCPT ); Tue, 27 Jul 2021 15:46:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37340 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232078AbhG0Tqg (ORCPT ); Tue, 27 Jul 2021 15:46:36 -0400 Received: from mail-io1-xd34.google.com (mail-io1-xd34.google.com [IPv6:2607:f8b0:4864:20::d34]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5FC87C061764 for ; Tue, 27 Jul 2021 12:46:36 -0700 (PDT) Received: by mail-io1-xd34.google.com with SMTP id y9so140597iox.2 for ; Tue, 27 Jul 2021 12:46:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=eH4S8FNsAoKRYvFR0Ki+05n7mxmZZlMccibOdhfBxlg=; b=MgJnPNwGGGC8USKl7KNWBI56pzqNdFS7mvjfVzTn1v7II1LQF8+IxuJOUhUgNNAiNN 7osh0jaO1pZXNA42jKDLWA8P9ywA4SFxlRncmLYOnjrUtxjUoJzA44vcnrqNJaJtNlpI Ym1ehl4GYYUG6sR1YjCAf8oKL8nmEbOw4IntTbvO7qGkKgmh+bv291pxio8tjuuCF5qX 47BkgFa/booLy4dfisVIolTlOOuJXGVZXAIxijz63awCZwabMQI1XRW7RCF3gHTOC38J 4wYue0xhxaSeWRaI2kVB/bBqG0iTOr1kDBKOerzdplFVkExUV+0nnd12GjRUfOGzSN+4 VSOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=eH4S8FNsAoKRYvFR0Ki+05n7mxmZZlMccibOdhfBxlg=; b=csjRJ44GP/Zd9RzSuZ/UQUkh9HqQh8OcbO+ZmOzljzjY+WyAn0Nl0JJHh+BaWczvba Y6arD8Dj4L8zCNxMdEJJ0+k8pgbgLcF0482VrgWN21YQFkazljtwKc1p6ET910peFkZH 8WWTHDgHTRXDrbCyIwQaN/f5OpwKS31NwMzF3bmakZei0wjFKRcFEcI+ZuHNdlpgeRgf +r2jjQmkkqo6a9s9NM7f4FqybVWiDSewDN+mzMkKdvLKzgnAvxZDSk6sdbhzcLaLc7LT HpH2UlbmjyITY75ahE1hBDwzc8Xj3u5V3Yejmp2Yiz4kWD/Ylsqhxvk8EVNwnyXO0ryJ /XbQ== X-Gm-Message-State: AOAM530ryCCCpYkN5zxxJ6eCxgRTP+8mAiUV2HBSoJ/PlAhL7pvsZEJu MOwkxdwsVvUkrxSPvJ2RSQtHeg== X-Google-Smtp-Source: ABdhPJxj7rruGR0xMsW5vaqPUWfzQAl/sXuesY+/95E+0HFosKPKp4Gbdvgw+zgvnwagRsRBZFA+WA== X-Received: by 2002:a05:6638:538:: with SMTP id j24mr22703457jar.59.1627415195809; Tue, 27 Jul 2021 12:46:35 -0700 (PDT) Received: from presto.localdomain (c-73-185-129-58.hsd1.mn.comcast.net. [73.185.129.58]) by smtp.gmail.com with ESMTPSA id c1sm2443014ils.21.2021.07.27.12.46.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Jul 2021 12:46:35 -0700 (PDT) From: Alex Elder To: davem@davemloft.net, kuba@kernel.org Cc: bjorn.andersson@linaro.org, evgreen@chromium.org, cpratapa@codeaurora.org, subashab@codeaurora.org, elder@kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 4/4] net: ipa: kill ipa_interrupt_process_all() Date: Tue, 27 Jul 2021 14:46:29 -0500 Message-Id: <20210727194629.841131-5-elder@linaro.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210727194629.841131-1-elder@linaro.org> References: <20210727194629.841131-1-elder@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org Now that ipa_isr_thread() is a simple wrapper that gets a clock reference around ipa_interrupt_process_all(), get rid of the called function and just open-code it in ipa_isr_thread(). Signed-off-by: Alex Elder --- drivers/net/ipa/ipa_interrupt.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/drivers/net/ipa/ipa_interrupt.c b/drivers/net/ipa/ipa_interrupt.c index d149e496ffa72..aa37f03f4557f 100644 --- a/drivers/net/ipa/ipa_interrupt.c +++ b/drivers/net/ipa/ipa_interrupt.c @@ -74,15 +74,18 @@ static void ipa_interrupt_process(struct ipa_interrupt *interrupt, u32 irq_id) iowrite32(mask, ipa->reg_virt + offset); } -/* Process all IPA interrupt types that have been signaled */ -static void ipa_interrupt_process_all(struct ipa_interrupt *interrupt) +/* IPA IRQ handler is threaded */ +static irqreturn_t ipa_isr_thread(int irq, void *dev_id) { + struct ipa_interrupt *interrupt = dev_id; struct ipa *ipa = interrupt->ipa; u32 enabled = interrupt->enabled; u32 pending; u32 offset; u32 mask; + ipa_clock_get(ipa); + /* The status register indicates which conditions are present, * including conditions whose interrupt is not enabled. Handle * only the enabled ones. @@ -109,17 +112,6 @@ static void ipa_interrupt_process_all(struct ipa_interrupt *interrupt) offset = ipa_reg_irq_clr_offset(ipa->version); iowrite32(pending, ipa->reg_virt + offset); } -} - -/* IPA IRQ handler is threaded */ -static irqreturn_t ipa_isr_thread(int irq, void *dev_id) -{ - struct ipa_interrupt *interrupt = dev_id; - struct ipa *ipa = interrupt->ipa; - - ipa_clock_get(ipa); - - ipa_interrupt_process_all(interrupt); ipa_clock_put(ipa);