All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Niedermaier <cniedermaier@dh-electronics.com>
To: Marek Vasut <marex@denx.de>,
	"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>
Cc: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Fabio Estevam" <festevam@gmail.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Rob Herring" <robh@kernel.org>,
	"Sascha Hauer" <s.hauer@pengutronix.de>,
	"Sergey Organov" <sorganov@gmail.com>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Tom Rix" <trix@redhat.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: RE: [PATCH] serial: imx: Fix clock imbalance
Date: Wed, 6 Dec 2023 14:06:56 +0000	[thread overview]
Message-ID: <bd165a300edc44c09d078d1e778ddfe9@dh-electronics.com> (raw)
In-Reply-To: <20231205005108.79782-1-marex@denx.de>

From: linux-arm-kernel [mailto:linux-arm-kernel-bounces@lists.infradead.org] On Behalf Of Marek Vasut
Sent: Tuesday, December 5, 2023 1:51 AM
> Disable and unprepare the clock on every exit from probe function
> after the clock were prepared and enabled to avoid enable/disable
> imbalance.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---
> Cc: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
> Cc: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Jiri Slaby <jirislaby@kernel.org>
> Cc: NXP Linux Team <linux-imx@nxp.com>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Sergey Organov <sorganov@gmail.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Tom Rix <trix@redhat.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-serial@vger.kernel.org
> ---
>  drivers/tty/serial/imx.c | 18 ++++++++++--------
>  1 file changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
> index 52dd8a6b87603..1cce66e5d05d8 100644
> --- a/drivers/tty/serial/imx.c
> +++ b/drivers/tty/serial/imx.c
> @@ -2332,10 +2332,8 @@ static int imx_uart_probe(struct platform_device *pdev)
>         }
> 
>         ret = uart_get_rs485_mode(&sport->port);
> -       if (ret) {
> -               clk_disable_unprepare(sport->clk_ipg);
> -               return ret;
> -       }
> +       if (ret)
> +               goto err_clk;
> 
>         if (sport->port.rs485.flags & SER_RS485_ENABLED &&
>             (!sport->have_rtscts && !sport->have_rtsgpio))
> @@ -2436,7 +2434,7 @@ static int imx_uart_probe(struct platform_device *pdev)
>                 if (ret) {
>                         dev_err(&pdev->dev, "failed to request rx irq: %d\n",
>                                 ret);
> -                       return ret;
> +                       goto err_clk;
>                 }
> 
>                 ret = devm_request_irq(&pdev->dev, txirq, imx_uart_txint, 0,
> @@ -2444,7 +2442,7 @@ static int imx_uart_probe(struct platform_device *pdev)
>                 if (ret) {
>                         dev_err(&pdev->dev, "failed to request tx irq: %d\n",
>                                 ret);
> -                       return ret;
> +                       goto err_clk;
>                 }
> 
>                 ret = devm_request_irq(&pdev->dev, rtsirq, imx_uart_rtsint, 0,
> @@ -2452,14 +2450,14 @@ static int imx_uart_probe(struct platform_device *pdev)
>                 if (ret) {
>                         dev_err(&pdev->dev, "failed to request rts irq: %d\n",
>                                 ret);
> -                       return ret;
> +                       goto err_clk;
>                 }
>         } else {
>                 ret = devm_request_irq(&pdev->dev, rxirq, imx_uart_int, 0,
>                                        dev_name(&pdev->dev), sport);
>                 if (ret) {
>                         dev_err(&pdev->dev, "failed to request irq: %d\n", ret);
> -                       return ret;
> +                       goto err_clk;
>                 }
>         }
> 
> @@ -2468,6 +2466,10 @@ static int imx_uart_probe(struct platform_device *pdev)
>         platform_set_drvdata(pdev, sport);
> 
>         return uart_add_one_port(&imx_uart_uart_driver, &sport->port);
> +
> +err_clk:
> +       clk_disable_unprepare(sport->clk_ipg);
> +       return ret;
>  }
> 
>  static void imx_uart_remove(struct platform_device *pdev)

Reviewed-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>

Regards
Christoph

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Niedermaier <cniedermaier@dh-electronics.com>
To: Marek Vasut <marex@denx.de>,
	"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>
Cc: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Fabio Estevam" <festevam@gmail.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Rob Herring" <robh@kernel.org>,
	"Sascha Hauer" <s.hauer@pengutronix.de>,
	"Sergey Organov" <sorganov@gmail.com>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Tom Rix" <trix@redhat.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: RE: [PATCH] serial: imx: Fix clock imbalance
Date: Wed, 6 Dec 2023 14:06:56 +0000	[thread overview]
Message-ID: <bd165a300edc44c09d078d1e778ddfe9@dh-electronics.com> (raw)
In-Reply-To: <20231205005108.79782-1-marex@denx.de>

From: linux-arm-kernel [mailto:linux-arm-kernel-bounces@lists.infradead.org] On Behalf Of Marek Vasut
Sent: Tuesday, December 5, 2023 1:51 AM
> Disable and unprepare the clock on every exit from probe function
> after the clock were prepared and enabled to avoid enable/disable
> imbalance.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---
> Cc: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
> Cc: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Jiri Slaby <jirislaby@kernel.org>
> Cc: NXP Linux Team <linux-imx@nxp.com>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Sergey Organov <sorganov@gmail.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Tom Rix <trix@redhat.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-serial@vger.kernel.org
> ---
>  drivers/tty/serial/imx.c | 18 ++++++++++--------
>  1 file changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
> index 52dd8a6b87603..1cce66e5d05d8 100644
> --- a/drivers/tty/serial/imx.c
> +++ b/drivers/tty/serial/imx.c
> @@ -2332,10 +2332,8 @@ static int imx_uart_probe(struct platform_device *pdev)
>         }
> 
>         ret = uart_get_rs485_mode(&sport->port);
> -       if (ret) {
> -               clk_disable_unprepare(sport->clk_ipg);
> -               return ret;
> -       }
> +       if (ret)
> +               goto err_clk;
> 
>         if (sport->port.rs485.flags & SER_RS485_ENABLED &&
>             (!sport->have_rtscts && !sport->have_rtsgpio))
> @@ -2436,7 +2434,7 @@ static int imx_uart_probe(struct platform_device *pdev)
>                 if (ret) {
>                         dev_err(&pdev->dev, "failed to request rx irq: %d\n",
>                                 ret);
> -                       return ret;
> +                       goto err_clk;
>                 }
> 
>                 ret = devm_request_irq(&pdev->dev, txirq, imx_uart_txint, 0,
> @@ -2444,7 +2442,7 @@ static int imx_uart_probe(struct platform_device *pdev)
>                 if (ret) {
>                         dev_err(&pdev->dev, "failed to request tx irq: %d\n",
>                                 ret);
> -                       return ret;
> +                       goto err_clk;
>                 }
> 
>                 ret = devm_request_irq(&pdev->dev, rtsirq, imx_uart_rtsint, 0,
> @@ -2452,14 +2450,14 @@ static int imx_uart_probe(struct platform_device *pdev)
>                 if (ret) {
>                         dev_err(&pdev->dev, "failed to request rts irq: %d\n",
>                                 ret);
> -                       return ret;
> +                       goto err_clk;
>                 }
>         } else {
>                 ret = devm_request_irq(&pdev->dev, rxirq, imx_uart_int, 0,
>                                        dev_name(&pdev->dev), sport);
>                 if (ret) {
>                         dev_err(&pdev->dev, "failed to request irq: %d\n", ret);
> -                       return ret;
> +                       goto err_clk;
>                 }
>         }
> 
> @@ -2468,6 +2466,10 @@ static int imx_uart_probe(struct platform_device *pdev)
>         platform_set_drvdata(pdev, sport);
> 
>         return uart_add_one_port(&imx_uart_uart_driver, &sport->port);
> +
> +err_clk:
> +       clk_disable_unprepare(sport->clk_ipg);
> +       return ret;
>  }
> 
>  static void imx_uart_remove(struct platform_device *pdev)

Reviewed-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>

Regards
Christoph
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2023-12-06 14:08 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-05  0:50 [PATCH] serial: imx: Fix clock imbalance Marek Vasut
2023-12-05  0:50 ` Marek Vasut
2023-12-05 20:22 ` Fabio Estevam
2023-12-05 20:22   ` Fabio Estevam
2023-12-06 14:06 ` Christoph Niedermaier [this message]
2023-12-06 14:06   ` Christoph Niedermaier
2023-12-06 14:29 ` Ahmad Fatoum
2023-12-06 14:29   ` Ahmad Fatoum

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bd165a300edc44c09d078d1e778ddfe9@dh-electronics.com \
    --to=cniedermaier@dh-electronics.com \
    --cc=festevam@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=jirislaby@kernel.org \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-serial@vger.kernel.org \
    --cc=marex@denx.de \
    --cc=robh@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=sorganov@gmail.com \
    --cc=tglx@linutronix.de \
    --cc=trix@redhat.com \
    --cc=u.kleine-koenig@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.