Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp2858875ioo; Tue, 24 May 2022 07:32:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw1rpeI1HVue88QgcuP7IWFz+u5P+zpQ+XYjJ0UEbF7MQvq/zQ0T5CDLWMA7XU5QPMXbcmU X-Received: by 2002:a17:903:240e:b0:158:eab9:2662 with SMTP id e14-20020a170903240e00b00158eab92662mr27489846plo.87.1653402728305; Tue, 24 May 2022 07:32:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653402728; cv=none; d=google.com; s=arc-20160816; b=ALENmmdEFWPtKegisegrNEkKI8cwn8dBhaeIicysCxyCL8MKkVW/80xNmJ+5CsR9MY aP0AmYTuDlW6Enw66o4JE3U2U2v2pgungo0racIqh2UQTNoI/1T1O05ef3X02e48P5u8 tkCTm3iQq0yRarvJ12Ot/7Xu0uu3yM8wTBB+LieZxAa7SU50ZXZp05XvdHlcOhd+1R5N FRavwskZnFQP04ktAZs97vtZO5uSXf8QJSYPDV2jBr7fFT4yGSjzQAAd8dT3AXZYOITP 8YZIE8FMENJoF7ILzQxv+yZ6iJrq2OJpI5r8Uczkv3qCVqteP59DWkAwaCmnZCQ8jjbe 6D0Q== 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:dkim-signature; bh=uqZD+ogOM6DMMZNvJXo9UtOZIWjh9lX3b715CP395Rw=; b=PBiMfzKPuhsqWu2Liv5/RXKD9H/tbURHFIEDB8xmFNpUqXopZchoencY6gFobk6kE8 F6gGzwyiUhjfWyPj+trqxrQr2GVdRW+zaHb3V0kRwu/TbcJLgbv71GJFgyzLijONyQac yO34RS/sSQR8JRWVlPSf6aH5oHqa0HYeAywL1vWvEymaYkcqx+EWw8xiRbNOjrmnPRdt hRsNgm6mMioVxL4zNIDuI1G88sYfs9crIkDsgop5HtFmft8TYP76EMKpaQ2eL0u2BTbd p6v+NkkLHppJjctbNsMXCZl37aIrHQcgSJhix0s8t2zkBf1tOqsgRFP2W0fZFGJ2Zj5q lsfQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=YalnveRK; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id pm13-20020a17090b3c4d00b001df6952b65fsi2912954pjb.20.2022.05.24.07.31.52; Tue, 24 May 2022 07:32:08 -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; dkim=pass header.i=@linaro.org header.s=google header.b=YalnveRK; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233492AbiEXIy6 (ORCPT + 99 others); Tue, 24 May 2022 04:54:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57494 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233540AbiEXIy4 (ORCPT ); Tue, 24 May 2022 04:54:56 -0400 Received: from mail-yb1-xb29.google.com (mail-yb1-xb29.google.com [IPv6:2607:f8b0:4864:20::b29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D13877356E for ; Tue, 24 May 2022 01:54:51 -0700 (PDT) Received: by mail-yb1-xb29.google.com with SMTP id x137so1299462ybg.5 for ; Tue, 24 May 2022 01:54:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uqZD+ogOM6DMMZNvJXo9UtOZIWjh9lX3b715CP395Rw=; b=YalnveRKXo/MmbpOdqU9xl8clAnBE9reOoViC11TCrupa/uAC8igoDuIf3X98aDlr0 H9spduLwCrMws7VKbclVVDyvNS+SeJv/VSzmN3fB9isHzsz1ENnXF+krtD7RxE9bkxH8 rOqQ5OdY/HBgvkzG9OMNS4P8S/HhS0cHV97ThG5d8PdMP9BWI3TLDafyp+g2WvGb2GMm BLEJQQoYT0B/gLoXkpOmoQZd3rra/n4iHf8wSinAaYNfaKkLSmKZiY2h/WjA1QgUezC0 OIF5UOQRmY5VpKS441Rwybtwepuab+IatetBAcDmHu/W9nU8ORpJ6omFL1pw2NJ5gb1j gZAQ== 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=uqZD+ogOM6DMMZNvJXo9UtOZIWjh9lX3b715CP395Rw=; b=JHk/zaqYB9QLBXvXxF1oSHd3ZjOe8YN58DFngSdA2/zPEsfhNEcrlLJhOL6KY3dQFP kMp3xhCqokLooMyXzAHjEGX3faqRYYO87lCCHcK4RN+fD6Yil/pXvBV/BDbS3tLr/MM1 dNghZOHGjAh1QvZTqdYvjUk+8xDzaIoZ1MrE059qiaa6W17DbrW48rVKJ1sxASH+a1HY nuqxqNfmSX4n5KUygkfRqJWkHF0jety/mlCD7HiHF8LkUCcr6UAfqBbHPOnGdNprVy7q T7CHlVBWIcXL0PC3C2H/uSzf8ibYbLUv19bosg4LpWrx8hZ0vZkqdBge9SQ9QbrT8QDS HeiQ== X-Gm-Message-State: AOAM533ddouiZKJtA3KLPRI8SGDZxyDtpKennfobwR+wCG7ItuvLf9Nk FNa0a6d6RaS4wLQLxB8cUkKbCKB7zbY2lNurcpuUzg== X-Received: by 2002:a25:2c82:0:b0:64d:62a1:850b with SMTP id s124-20020a252c82000000b0064d62a1850bmr25986931ybs.291.1653382490845; Tue, 24 May 2022 01:54:50 -0700 (PDT) MIME-Version: 1.0 References: <20220523174238.28942-1-prabhakar.mahadev-lad.rj@bp.renesas.com> <20220523174238.28942-4-prabhakar.mahadev-lad.rj@bp.renesas.com> In-Reply-To: <20220523174238.28942-4-prabhakar.mahadev-lad.rj@bp.renesas.com> From: Linus Walleij Date: Tue, 24 May 2022 10:54:39 +0200 Message-ID: Subject: Re: [PATCH v5 3/5] gpio: gpiolib: Allow free() callback to be overridden To: Lad Prabhakar , Marc Zyngier Cc: Geert Uytterhoeven , Thomas Gleixner , Rob Herring , Krzysztof Kozlowski , Bartosz Golaszewski , Thierry Reding , Jonathan Hunter , Bjorn Andersson , Andy Gross , Philipp Zabel , Andy Shevchenko , linux-gpio@vger.kernel.org, linux-tegra@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , linux-renesas-soc@vger.kernel.org, Phil Edworthy , Biju Das Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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 On Mon, May 23, 2022 at 7:43 PM Lad Prabhakar wrote: > Allow free() callback to be overridden from irq_domain_ops for > hierarchical chips. > > This allows drivers to free up resources which are allocated during > child_to_parent_hwirq()/populate_parent_alloc_arg() callbacks. > > On Renesas RZ/G2L platform a bitmap is maintained for TINT slots, a slot > is allocated in child_to_parent_hwirq() callback which is freed up in free > callback hence this override. > > Signed-off-by: Lad Prabhakar > Reviewed-by: Geert Uytterhoeven So that function today looks like this: static void gpiochip_hierarchy_setup_domain_ops(struct irq_domain_ops *ops) { ops->activate = gpiochip_irq_domain_activate; ops->deactivate = gpiochip_irq_domain_deactivate; ops->alloc = gpiochip_hierarchy_irq_domain_alloc; ops->free = irq_domain_free_irqs_common; /* * We only allow overriding the translate() function for * hierarchical chips, and this should only be done if the user * really need something other than 1:1 translation. */ if (!ops->translate) ops->translate = gpiochip_hierarchy_irq_domain_translate; } (...) - ops->free = irq_domain_free_irqs_common; (...) > + if (!ops->free) > + ops->free = irq_domain_free_irqs_common; Marc Z is working on cleaning up the way that gpiolib is (ab)using irqchips. We definitely need his ACK if we do things like this. This doesn't look like one of the big offenders to me, but I want to make sure we don't create new problems while Marc is trying to solve the old ones. Yours, Linus Walleij