Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp653914ioo; Thu, 26 May 2022 11:24:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwPZd6aIVVVKZBsEdbYLn2HulHUtG2MnmlfVsCt9B4X0QV4JBDlfn7i/RTE3EqGHuvYANkD X-Received: by 2002:a17:906:9b8f:b0:6ff:f3c:814d with SMTP id dd15-20020a1709069b8f00b006ff0f3c814dmr9656310ejc.381.1653589464783; Thu, 26 May 2022 11:24:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653589464; cv=none; d=google.com; s=arc-20160816; b=Uy5eN7ZJlgY9rGW/1jw1MQRRlV0bmsBEZ8ruHK0PvGqu3IP57R2IGH1l/lkGNoGQhU LkqaqrwAiEHryeaBts9klO5nJrDTz2lyFFVHwYuIXq37nz7MQxEAcPG7qmPK3srQmyGW ndgdxG98zZOV6BBVSJyl+GhivdGN/zF2QO1i5+3Zbk+K3NDZFDIhhFyFccSa0y2RC4F8 6OALH868LB6aA5Byi1LcjTG50Jr+Xxz9dG2jwRNpap6vBoRGdE8wRPiSFZI03l7hsSCj kbQvvsUHCU9eLU0h9mUkX/PaO4ZsJu5dVLRhzV4LxqDBFO+cFOBu3FyHMM6SrX7Zr+kB 0y/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version; bh=WZEhsrnmH5bWQhJRb1s8S6ZF7bqzQ8zLRH/dG9jf2XA=; b=jBgkfhtWvGy7WoV20Do28FImmJxzoIX4mJax1OzTxVCKIh5K6GmwCdbCyplpOC+5ok h6JFlujP86qxUx9KopXmzACi6QGDVafAeNIDYwASWmF/L1AaqftjivGc4lcGs9kciSjC pC3+bbDoVkqq/3WbjSi2T27MSZF2gu6skqxYFytSoNvGDSxnz+YQaDwSgBh8iy/DqDMC Cc1Xeb/EUqWW9OmLUCz/tGwOvmA3vTs2SmFm9lKN1PVbZnJsSc0zLFWRkIIi4tvWbVy2 fg/xafyej9NnYl0WWdcGhq8AphwXptt1diK0vz7mOGcbonqwE7kz9B/hNEsGZAxXbdbX cdvA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dz10-20020a0564021d4a00b0042afd96860esi2237384edb.348.2022.05.26.11.23.57; Thu, 26 May 2022 11:24:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237854AbiEYLq7 (ORCPT + 99 others); Wed, 25 May 2022 07:46:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58564 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231176AbiEYLq5 (ORCPT ); Wed, 25 May 2022 07:46:57 -0400 Received: from mail-qk1-f172.google.com (mail-qk1-f172.google.com [209.85.222.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 084F4A205D; Wed, 25 May 2022 04:46:56 -0700 (PDT) Received: by mail-qk1-f172.google.com with SMTP id 14so10934912qkl.6; Wed, 25 May 2022 04:46:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=WZEhsrnmH5bWQhJRb1s8S6ZF7bqzQ8zLRH/dG9jf2XA=; b=K9Fo8fHT99W64Tq5wMXujUQrygiKt2jwC2LYB/Fp8IdjGUmuXlW4vD0vPrM2NdebCv SvNe0lUZ2wyva4VCvgamnhIuFEq/WgrzwshnvZR5urJlBmIxCqhcxcgVZYaC/9bT+3e8 9J6WAyvSKoUfihvE8lnUOigIrVxmeO+ak/WhnII3SfsDxwwz6bUBA9ggP0p0ThixruQ+ H2I2So/tpWAtHDlSiQayORN+eNfBsa2yBGEPAVHZcIoXDjJ/55l7R+MxcdsEjiUNH0t7 l5ULZqqgTfyslsTwPKAD2HGPih11uY+LeZ9avjcNBnXUtPm0/aG3ybTk8QWTzDr1t2UM 4UBQ== X-Gm-Message-State: AOAM530XH4yyzR3p8zp1jTebJ4XOmFADJ2TBIfFUECR3+z+cTkatuGJm ojlk3q70syppEdCXWLPb4QsCy+EcXfbVUQ== X-Received: by 2002:a05:620a:400e:b0:6a5:7289:c449 with SMTP id h14-20020a05620a400e00b006a57289c449mr5607610qko.561.1653479214997; Wed, 25 May 2022 04:46:54 -0700 (PDT) Received: from mail-yw1-f174.google.com (mail-yw1-f174.google.com. [209.85.128.174]) by smtp.gmail.com with ESMTPSA id p6-20020a05620a22e600b0069fc13ce250sm1041292qki.129.2022.05.25.04.46.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 May 2022 04:46:54 -0700 (PDT) Received: by mail-yw1-f174.google.com with SMTP id 00721157ae682-300312ba5e2so45534747b3.0; Wed, 25 May 2022 04:46:53 -0700 (PDT) X-Received: by 2002:a81:234b:0:b0:2f8:4082:bbd3 with SMTP id j72-20020a81234b000000b002f84082bbd3mr32969304ywj.47.1653479213622; Wed, 25 May 2022 04:46:53 -0700 (PDT) MIME-Version: 1.0 References: <20220524172214.5104-1-prabhakar.mahadev-lad.rj@bp.renesas.com> <20220524172214.5104-3-prabhakar.mahadev-lad.rj@bp.renesas.com> In-Reply-To: From: Geert Uytterhoeven Date: Wed, 25 May 2022 13:46:41 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH RFC 2/2] irqchip/sifive-plic: Add support for Renesas RZ/Five SoC To: "Lad, Prabhakar" Cc: Lad Prabhakar , Thomas Gleixner , Marc Zyngier , Rob Herring , Krzysztof Kozlowski , Palmer Dabbelt , Paul Walmsley , Sagar Kadam , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , linux-riscv , Geert Uytterhoeven , Linux Kernel Mailing List , Linux-Renesas , Phil Edworthy , Biju Das Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Prabhakar, On Wed, May 25, 2022 at 11:43 AM Lad, Prabhakar wrote: > On Wed, May 25, 2022 at 10:35 AM Geert Uytterhoeven > wrote: > > On Wed, May 25, 2022 at 11:01 AM Lad, Prabhakar > > wrote: > > > On Wed, May 25, 2022 at 9:01 AM Geert Uytterhoeven wrote: > > > > On Tue, May 24, 2022 at 7:22 PM Lad Prabhakar > > > > wrote: > > > > > The Renesas RZ/Five SoC has a RISC-V AX45MP AndesCore with NCEPLIC100. The > > > > > NCEPLIC100 supports both edge-triggered and level-triggered interrupts. In > > > > > case of edge-triggered interrupts NCEPLIC100 ignores the next interrupt > > > > > edge until the previous completion message has been received and > > > > > NCEPLIC100 doesn't support pending interrupt counter, hence losing the > > > > > interrupts if not acknowledged in time. > > > > > > > > > > So the workaround for edge-triggered interrupts to be handled correctly > > > > > and without losing is that it needs to be acknowledged first and then > > > > > handler must be run so that we don't miss on the next edge-triggered > > > > > interrupt. > > > > > > > > > > This patch adds a new compatible string for Renesas RZ/Five SoC and adds > > > > > support to change interrupt flow based on the interrupt type. It also > > > > > implements irq_ack and irq_set_type callbacks. > > > > > > > > > > Signed-off-by: Lad Prabhakar > > > > > > > > Thanks for your patch! > > > > > > > > > --- a/drivers/irqchip/irq-sifive-plic.c > > > > > +++ b/drivers/irqchip/irq-sifive-plic.c > > > > > > > @@ -163,10 +166,31 @@ static int plic_set_affinity(struct irq_data *d, > > > > > } > > > > > #endif > > > > > > > > > > +static void plic_irq_ack(struct irq_data *d) > > > > > +{ > > > > > + struct plic_handler *handler = this_cpu_ptr(&plic_handlers); > > > > > + > > > > > > > > No check for RZ/Five or irq type? > > > That is because we set the handle_fasteoi_ack_irq() only in case of > > > RZ/Five and it is already checked in set_type() callback. > > > > > > > .irq_ack() seems to be called for level interrupts, too > > > > (from handle_level_irq() through mask_ack_irq()). > > > > > > > Right but we are using handle_fasteoi_irq() for level interrupt which > > > doesn't call mask_ack_irq(). And I have confirmed by adding a print in > > > ack callback and just enabling the serial (which has level > > > interrupts). > > > > But handle_fasteoi_irq() is configured only on RZ/Five below? > > Which handler is used on non-RZ/Five? > > > For non RZ/Five, handle_fasteoi_irq() [0] is used for both edge/level > interrupts. > > [0] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/irqchip/irq-sifive-plic.c?h=next-20220525#n195 Thanks, that was the missing piece! Due to the new "select IRQ_FASTEOI_HIERARCHY_HANDLERS", I thought your new call to handle_fasteoi_irq() had to be the first one in this file... But that config symbol protects handle_fasteoi_ack_irq(), not handle_fasteoi_irq(). Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds