Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp372133pxb; Tue, 3 Nov 2020 01:38:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJydrx3TMq6gQBkIsmiwt9itDDy8HkJ7S4ZxsURzeYDFDFbdYNfZZxkPRGXei9UX9olg2S4O X-Received: by 2002:a17:906:cb03:: with SMTP id lk3mr18891597ejb.491.1604396333362; Tue, 03 Nov 2020 01:38:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604396333; cv=none; d=google.com; s=arc-20160816; b=CmbkaBH3np8REyu4b9vFnVEaVmA/wPPAh0fWtWSzQjmmgG/AkqHXSzJ+t1DYfETwYR C1pZBBfCaL+PmmrnbEj3OrCG6mmQsGHZVmbCes2IHsqiy52KvhUDg6ovlzRbiNVHJshq pJ3m0w3rMSOOZHhLP0CuvX4AvvXN21a3wnvJcepvmOY2TY3cnDbig4T0Url8eLlabvxu Tc3AwVh/9OxzNqsC7XJXSGEB/s7ic7+zOxB7bCMUf0cRs3MucBR0XIOgKtD4rwC4v2kK uhq67IrYTlK/yd5R3QZOLBjJQwV6oPDKb9gEcJoneFBWCFi0SZkZsYcZOZknv9ywdMFw 3d9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=6jkVu4EtvZdezrnQG+s49FCG8qfvHPk7YlQY7VGGjX4=; b=mhCnYBRbSucKUZGfuzLi56r/mKBf35dSIMS50nRzkBJpw9cfThgRWvjobDhocrcVx+ uRv1MeKC3ND3o3C52dciDLNlL2jWa50wvZAV+9MwGsxUqWT+mxZtVJKfM9Pb2kwNoi7y awxFslNSg2t07QkP24hTG+7nyTqwNwmV6WOe9PCqz7SIDK4+xeaFntVvxAlE+ZDCWrhQ 9nQDmqazHftL/qOJhufWY4nFl6zM8KRBNJUVfJTmGIFJZ7oW2/6yjqUe09x1SmYDRmYT BcL8/gEoxzuofEZUZfV8l65EspBiWDuQo1vrVSIFNu+TcT3wLa0C6+H9v8RJmz1++tw1 cmUA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k7si3368275edr.388.2020.11.03.01.38.31; Tue, 03 Nov 2020 01:38:53 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727988AbgKCJgi (ORCPT + 99 others); Tue, 3 Nov 2020 04:36:38 -0500 Received: from asavdk3.altibox.net ([109.247.116.14]:53294 "EHLO asavdk3.altibox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727518AbgKCJgi (ORCPT ); Tue, 3 Nov 2020 04:36:38 -0500 Received: from ravnborg.org (unknown [188.228.123.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by asavdk3.altibox.net (Postfix) with ESMTPS id BE1F62004C; Tue, 3 Nov 2020 10:36:33 +0100 (CET) Date: Tue, 3 Nov 2020 10:36:32 +0100 From: Sam Ravnborg To: Tian Tao Cc: maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@linux.ie, daniel@ffwll.ch, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] drm: Add the new api to install irq Message-ID: <20201103093632.GA1474335@ravnborg.org> References: <1604369441-65254-1-git-send-email-tiantao6@hisilicon.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1604369441-65254-1-git-send-email-tiantao6@hisilicon.com> X-CMAE-Score: 0 X-CMAE-Analysis: v=2.3 cv=VbvZwmh9 c=1 sm=1 tr=0 a=S6zTFyMACwkrwXSdXUNehg==:117 a=S6zTFyMACwkrwXSdXUNehg==:17 a=kj9zAlcOel0A:10 a=BTeA3XvPAAAA:8 a=3yVtim9A5VgNDfYo_gMA:9 a=CjuIK1q_8ugA:10 a=tafbbOV3vt1XuEhzTjGK:22 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Tian. Good to see more infrastructure support so one does not have to think about cleanup. On Tue, Nov 03, 2020 at 10:10:41AM +0800, Tian Tao wrote: > Add new api devm_drm_irq_install() to register interrupts, > no need to call drm_irq_uninstall() when the drm module is removed. > > v2: > fixed the wrong parameter. > > Signed-off-by: Tian Tao > --- > drivers/gpu/drm/drm_drv.c | 23 +++++++++++++++++++++++ > include/drm/drm_drv.h | 3 ++- > 2 files changed, 25 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c > index cd162d4..0fe5243 100644 > --- a/drivers/gpu/drm/drm_drv.c > +++ b/drivers/gpu/drm/drm_drv.c > @@ -39,6 +39,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -678,6 +679,28 @@ static int devm_drm_dev_init(struct device *parent, > return ret; > } > > +static void devm_drm_dev_irq_uninstall(void *data) devm_drm_irq_uninstall?? It matches other names if you drop the _dev part. > +{ > + drm_irq_uninstall(data); > +} > + > +int devm_drm_irq_install(struct device *parent, > + struct drm_device *dev, int irq) As this is an exported function please add appropriate kernel-doc documentation. It should for example explain that there is no need to uninstall as this is done automagically. > +{ > + int ret; > + > + ret = drm_irq_install(dev, irq); > + if (ret) > + return ret; > + > + ret = devm_add_action(parent, devm_drm_dev_irq_uninstall, dev); > + if (ret) > + devm_drm_dev_irq_uninstall(dev); > + > + return ret; > +} > +EXPORT_SYMBOL(devm_drm_irq_install); The above are in addition to Thomas' feedback. Sam