From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755881AbcETJ2E (ORCPT ); Fri, 20 May 2016 05:28:04 -0400 Received: from metis.ext.4.pengutronix.de ([92.198.50.35]:59174 "EHLO metis.ext.4.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755850AbcETJ2B (ORCPT ); Fri, 20 May 2016 05:28:01 -0400 Message-ID: <1463736478.4322.31.camel@pengutronix.de> Subject: Re: [PATCH 1/3] reset: Add support for the Amlogic Meson GXBB Reset Controller From: Philipp Zabel To: Neil Armstrong Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, xing.xu@amlogic.com, victor.wan@amlogic.com, jerry.cao@amlogic.com Date: Fri, 20 May 2016 11:27:58 +0200 In-Reply-To: <1463732875-23141-2-git-send-email-narmstrong@baylibre.com> References: <1463732875-23141-1-git-send-email-narmstrong@baylibre.com> <1463732875-23141-2-git-send-email-narmstrong@baylibre.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.12.9-1+b1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-SA-Exim-Connect-IP: 2001:67c:670:100:96de:80ff:fec2:9969 X-SA-Exim-Mail-From: p.zabel@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Neil, Am Freitag, den 20.05.2016, 10:27 +0200 schrieb Neil Armstrong: > This patch adds the platform driver for the Amlogic Meson GXBB Reset > Controller. > > Signed-off-by: Neil Armstrong > --- > drivers/reset/Kconfig | 6 ++ > drivers/reset/Makefile | 1 + > drivers/reset/reset-meson-gxbb.c | 129 +++++++++++++++++++++++++++++++++++++++ > 3 files changed, 136 insertions(+) > create mode 100644 drivers/reset/reset-meson-gxbb.c > > diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig > index df37212..4ac5c4d 100644 > --- a/drivers/reset/Kconfig > +++ b/drivers/reset/Kconfig > @@ -12,5 +12,11 @@ menuconfig RESET_CONTROLLER > > If unsure, say no. > > +config MESON_GXBB_RESET > + tristate "Amlogic Meson GXBB Reset Driver" > + depends on (ARCH_MESON && RESET_CONTROLLER) With the "reset: fix Kconfig menu to include reset drivers in sub-menu" patch [1] applied this is wrapped in "if RESET_CONTROLLER ... endif", so no need to depend on RESET_CONTROLLER. Is there a reason to have this configurable at all, though? [1] https://patchwork.kernel.org/patch/9000591/ > + help > + Build the Amlogic Meson GxBB reset driver. > + > source "drivers/reset/sti/Kconfig" > source "drivers/reset/hisilicon/Kconfig" > diff --git a/drivers/reset/Makefile b/drivers/reset/Makefile > index a1fc8ed..5ff83a1 100644 > --- a/drivers/reset/Makefile > +++ b/drivers/reset/Makefile > @@ -3,6 +3,7 @@ obj-$(CONFIG_ARCH_LPC18XX) += reset-lpc18xx.o > obj-$(CONFIG_ARCH_SOCFPGA) += reset-socfpga.o > obj-$(CONFIG_ARCH_BERLIN) += reset-berlin.o > obj-$(CONFIG_MACH_PISTACHIO) += reset-pistachio.o > +obj-$(CONFIG_MESON_GXBB_RESET) += reset-meson-gxbb.o Or drop CONFIG_MESON_GXBB_RESET and use CONFIG_ARCH_MESON directly. [...] > +static int meson_gxbb_reset_probe(struct platform_device *pdev) > +{ > + struct meson_gxbb_reset *data; > + struct resource *res; > + > + data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); > + if (!data) > + return -ENOMEM; > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + data->reg_base = devm_ioremap_resource(&pdev->dev, res); > + if (IS_ERR(data->reg_base)) > + return PTR_ERR(data->reg_base); > + > + platform_set_drvdata(pdev, data); > + > + data->rcdev.owner = THIS_MODULE; > + data->rcdev.nr_resets = REG_COUNT * BITS_PER_REG; > + data->rcdev.ops = &meson_gxbb_reset_ops; > + data->rcdev.of_node = pdev->dev.of_node; > + > + return reset_controller_register(&data->rcdev); With the "reset: add devm_reset_controller_register API" patch [2] applied you can use devm_reset_controller_register() here and remove the meson_gxbb_reset_remove() function below. [2] https://patchwork.kernel.org/patch/8988471/ > +} > + > +static int meson_gxbb_reset_remove(struct platform_device *pdev) > +{ > + struct meson_gxbb_reset *data = platform_get_drvdata(pdev); > + > + reset_controller_unregister(&data->rcdev); > + > + return 0; > +} Could be removed, then. regards Philipp