Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp233302iob; Mon, 2 May 2022 18:00:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzK3SqtxDN9dPOtHXIgAN6V+47M42QILUlARmL9KKfdwcYPfidvVoJcbAcNL+lz/Iqx/RKU X-Received: by 2002:a63:5552:0:b0:3c2:363b:abe1 with SMTP id f18-20020a635552000000b003c2363babe1mr4775951pgm.304.1651539658544; Mon, 02 May 2022 18:00:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651539658; cv=none; d=google.com; s=arc-20160816; b=EVyAL8S0IGHph8xe93gVZ3aJebw2GLomLS2K7sPnpwLkaSVb9SZW5HuwlWFY/PDJhs RuXxL118rLY2Sz7VBt0+CGhQkDJdksl50AHkBIgPwm3R6xMCdUK8mxWFzUlyvhDYGett diltqLxYxCeFgwXN+ZXRu9IpBRxP48ntlBs+rDQv4IdxHgNRnv9F6Dkah4D/CyKIBIMf h70izdYonPhD8LiwV3K3ZcYoNK9crEB+QSLWP1KrhQxSyapPX0azvX9oad06GuYCMGQs GsQ2LAg4E6M7fAcjIDbJat+R07YDSXHyrznJiupP/ANr0l0XRYssxjTLiTPLKkP9vKue xomQ== 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=KqTvPqe9Ior33TBYfq0U+wCDWY6AJ5fZdCKmCA3PjQ8=; b=CKPINSYw0OnI31IH8Um448ZQ2f9YFjeppErMwi9wlBQvCoQkyTiAPOyTnZNqB52kOF DPapTmM0d+Vgk4WGDXChXdV8am3angLnGevxmf8v/aLyO+XAnPe54CHejq2YbSKS0Ng6 o9r8J8ewFoKllzZGnA8S0O5HmJWm5J4BmEmLzG02Puo108i4gd9LGR61Z2iMjFmScXE1 N5+YOv1XKY3uWBi8OtkHZlmRYvNJjqDhUS5ePD7y4ae7zLHBdjGcM1s+qb8bLfVb3ofh S99Fmx1a/Sq2GMcvJLXxKUKlt0yTfeEmSuJyuW6He3SwT9NoGXs2QgySn2T8EndZqhHY wKvA== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id g16-20020a1709029f9000b0015d04e10579si14355374plq.352.2022.05.02.18.00.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 May 2022 18:00:58 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 0FE323A7; Mon, 2 May 2022 17:45:23 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232620AbiD1Jwn (ORCPT + 99 others); Thu, 28 Apr 2022 05:52:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53752 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349306AbiD1Jph (ORCPT ); Thu, 28 Apr 2022 05:45:37 -0400 Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 60B3599180; Thu, 28 Apr 2022 02:42:23 -0700 (PDT) Received: by mail-qk1-f180.google.com with SMTP id b20so576448qkc.6; Thu, 28 Apr 2022 02:42:23 -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=KqTvPqe9Ior33TBYfq0U+wCDWY6AJ5fZdCKmCA3PjQ8=; b=WL1xPPcrzziq9BGQBl6z0pmwjgeKugguQU1vb+ygzfnb8jEGPEvCdHJN8huF/EJ41m EDH3wBjEvySIxz89Y3Qz+OjtpdyBswlf3nHvzuy9S/SXhT0kxb0oIfYjRZGUOWKVlfKO VdzI3F89g2ZHIbgvpZsJ5u/eSPetrrRMYUX5TifyNtR346OGDBwhCjjZs1JqzkhP9O97 rpgvsSZeYFFYECoGStL2J6LTkPWmRXWVqSs95MwiFTiKPkw+qigepc7hWo5zJL3YwVi3 38tnLYAbnLTr0JLGAJK1gNKSxmct7l9KnMNRa3l6SuhQbT6qOUDAnYKVkUDsEEnyrLne 1Xgg== X-Gm-Message-State: AOAM532KbCiIjFdMDX/q9xjowURphsc4iXFnoWf9Khi17XuOpxStMYzW 8nuJG6tyB2aa5kLwnm4ERYRP8scmf/jakg== X-Received: by 2002:a05:620a:1432:b0:69f:87c4:adc9 with SMTP id k18-20020a05620a143200b0069f87c4adc9mr6097536qkj.16.1651138942023; Thu, 28 Apr 2022 02:42:22 -0700 (PDT) Received: from mail-yb1-f174.google.com (mail-yb1-f174.google.com. [209.85.219.174]) by smtp.gmail.com with ESMTPSA id p14-20020a05622a13ce00b002f20a695972sm11820482qtk.14.2022.04.28.02.42.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 28 Apr 2022 02:42:21 -0700 (PDT) Received: by mail-yb1-f174.google.com with SMTP id g28so7960688ybj.10; Thu, 28 Apr 2022 02:42:21 -0700 (PDT) X-Received: by 2002:a25:d84c:0:b0:648:7d5e:e2d4 with SMTP id p73-20020a25d84c000000b006487d5ee2d4mr16788803ybg.6.1651138940792; Thu, 28 Apr 2022 02:42:20 -0700 (PDT) MIME-Version: 1.0 References: <20220421221159.31729-1-prabhakar.mahadev-lad.rj@bp.renesas.com> <20220421221159.31729-3-prabhakar.mahadev-lad.rj@bp.renesas.com> In-Reply-To: <20220421221159.31729-3-prabhakar.mahadev-lad.rj@bp.renesas.com> From: Geert Uytterhoeven Date: Thu, 28 Apr 2022 11:42:08 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 2/2] irqchip: Add RZ/G2L IA55 Interrupt Controller driver To: Lad Prabhakar Cc: Marc Zyngier , Thomas Gleixner , Rob Herring , Krzysztof Kozlowski , Philipp Zabel , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Linux Kernel Mailing List , Linux-Renesas , Prabhakar , Biju Das Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,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 Fri, Apr 22, 2022 at 12:12 AM Lad Prabhakar wrote: > Add a driver for the Renesas RZ/G2L Interrupt Controller. > > This supports external pins being used as interrupts. It supports > one line for NMI, 8 external pins and 32 GPIO pins (out of 123) > to be used as IRQ lines. > > Signed-off-by: Lad Prabhakar Thanks for your patch! > --- /dev/null > +++ b/drivers/irqchip/irq-renesas-rzg2l.c > @@ -0,0 +1,447 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Renesas RZ/G2L IRQC Driver > + * > + * Copyright (C) 2022 Renesas Electronics Corporation. > + * > + * Author: Lad Prabhakar > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#define IRQC_IRQ_START 1 > +#define IRQC_IRQ_COUNT 8 > +#define IRQC_TINT_START 9 = IRQC_IRQ_START + IRQC_IRQ_COUNT > +#define IRQC_TINT_COUNT 32 > +#define IRQC_NUM_IRQ 41 = IRQC_TINT_START + IRQC_TINT_COUNT Should these be in a DT binding header file? Combining all types into a single linear number space makes it hard to extend the range, when reusing for an SoC that supports more interrupt sources. > +static void rzg2l_irq_eoi(struct irq_data *d) > +{ > + struct rzg2l_irqc_priv *priv = irq_data_to_priv(d); > + unsigned int hw_irq = irqd_to_hwirq(d) - IRQC_IRQ_START; > + u16 bit = BIT(hw_irq); I guess you can just use u32? > + u32 reg; > + > + reg = readl_relaxed(priv->base + ISCR); > + if (reg & bit) > + writel_relaxed(GENMASK(IRQC_IRQ_COUNT - 1, 0) & ~bit, As writes to the unused upper bits are ignored, you can drop the masking with GENMASK(IRQC_IRQ_COUNT - 1, 0), and be prepared for more interrupt sources. > + priv->base + ISCR); > +} > + > +static void rzg2l_tint_eoi(struct irq_data *d) > +{ > + struct rzg2l_irqc_priv *priv = irq_data_to_priv(d); > + unsigned int hw_irq = irqd_to_hwirq(d); "irqd_to_hwirq(d) - IRQC_TINT_START", for symmetry with rzg2l_irq_eoi()? > + u32 bit = BIT(hw_irq - IRQC_TINT_START); > + u32 reg; > + > + reg = readl_relaxed(priv->base + TSCR); > + if (reg & bit) > + writel_relaxed(GENMASK(IRQC_TINT_COUNT - 1, 0) & ~bit, Drop the masking with all-ones? > + priv->base + TSCR); > +} 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