All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Kukjin Kim <kgene.kim@samsung.com>
Cc: 'Kyoungil Kim' <ki0351.kim@samsung.com>,
	linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org, linux-serial@vger.kernel.org,
	'Alan Cox' <alan@linux.intel.com>,
	'Russell King' <rmk+kernel@arm.linux.org.uk>
Subject: Re: [PATCH 1/2] serial: samsung: Remove NULL checking for baud clock
Date: Wed, 20 Jun 2012 16:50:17 -0700	[thread overview]
Message-ID: <20120620235017.GA8293@kroah.com> (raw)
In-Reply-To: <028e01cd4e9d$28cbcf90$7a636eb0$%kim@samsung.com>

On Wed, Jun 20, 2012 at 01:28:36PM +0900, Kukjin Kim wrote:
> Kukjin Kim wrote:
> > 
> > Kyoungil Kim wrote:
> > >
> > > Kyoungil Kim wrote:
> > >
> > > I missed following.
> > >
> > > Russell King suggested:
> > >
> > > As I said, drivers have no business interpreting anything but
> IS_ERR(clk)
> > > as being an error.  They should not make any other
> > > assumptions.
> > >
> > > Suggested-by: Russell King <rmk+kernel@arm.linux.org.uk>
> > >
> > > > Signed-off-by: Kyoungil Kim <ki0351.kim@samsung.com>
> > > > ---
> > > >  drivers/tty/serial/samsung.c |   21 ++++++++++++---------
> > > >  1 files changed, 12 insertions(+), 9 deletions(-)
> > > >
> > > > diff --git a/drivers/tty/serial/samsung.c
> > b/drivers/tty/serial/samsung.c
> > > > index d8b0aee..5668538 100644
> > > > --- a/drivers/tty/serial/samsung.c
> > > > +++ b/drivers/tty/serial/samsung.c
> > > > @@ -529,7 +529,7 @@ static void s3c24xx_serial_pm(struct uart_port
> > *port,
> > > unsigned int level,
> > > >
> > > >  	switch (level) {
> > > >  	case 3:
> > > > -		if (!IS_ERR(ourport->baudclk) && ourport->baudclk != NULL)
> > > > +		if (!IS_ERR(ourport->baudclk))
> > > >  			clk_disable(ourport->baudclk);
> > > >
> > > >  		clk_disable(ourport->clk);
> > > > @@ -538,7 +538,7 @@ static void s3c24xx_serial_pm(struct uart_port
> > *port,
> > > unsigned int level,
> > > >  	case 0:
> > > >  		clk_enable(ourport->clk);
> > > >
> > > > -		if (!IS_ERR(ourport->baudclk) && ourport->baudclk != NULL)
> > > > +		if (!IS_ERR(ourport->baudclk))
> > > >  			clk_enable(ourport->baudclk);
> > > >
> > > >  		break;
> > > > @@ -604,7 +604,6 @@ static unsigned int s3c24xx_serial_getclk(struct
> > > s3c24xx_uart_port *ourport,
> > > >  	char clkname[MAX_CLK_NAME_LENGTH];
> > > >  	int calc_deviation, deviation = (1 << 30) - 1;
> > > >
> > > > -	*best_clk = NULL;
> > > >  	clk_sel = (ourport->cfg->clk_sel) ? ourport->cfg->clk_sel :
> > > >  			ourport->info->def_clk_sel;
> > > >  	for (cnt = 0; cnt < info->num_clks; cnt++) {
> > > > @@ -613,7 +612,7 @@ static unsigned int s3c24xx_serial_getclk(struct
> > > s3c24xx_uart_port *ourport,
> > > >
> > > >  		sprintf(clkname, "clk_uart_baud%d", cnt);
> > > >  		clk = clk_get(ourport->port.dev, clkname);
> > > > -		if (IS_ERR_OR_NULL(clk))
> > > > +		if (IS_ERR(clk))
> > > >  			continue;
> > > >
> > > >  		rate = clk_get_rate(clk);
> > > > @@ -684,7 +683,7 @@ static void s3c24xx_serial_set_termios(struct
> > > uart_port *port,
> > > >  {
> > > >  	struct s3c2410_uartcfg *cfg = s3c24xx_port_to_cfg(port);
> > > >  	struct s3c24xx_uart_port *ourport = to_ourport(port);
> > > > -	struct clk *clk = NULL;
> > > > +	struct clk *clk = ERR_PTR(-EINVAL);
> > > >  	unsigned long flags;
> > > >  	unsigned int baud, quot, clk_sel = 0;
> > > >  	unsigned int ulcon;
> > > > @@ -705,7 +704,7 @@ static void s3c24xx_serial_set_termios(struct
> > > uart_port *port,
> > > >  	quot = s3c24xx_serial_getclk(ourport, baud, &clk, &clk_sel);
> > > >  	if (baud == 38400 && (port->flags & UPF_SPD_MASK) == UPF_SPD_CUST)
> > > >  		quot = port->custom_divisor;
> > > > -	if (!clk)
> > > > +	if (IS_ERR(clk))
> > > >  		return;
> > > >
> > > >  	/* check to see if we need  to change clock source */
> > > > @@ -713,9 +712,9 @@ static void s3c24xx_serial_set_termios(struct
> > > uart_port *port,
> > > >  	if (ourport->baudclk != clk) {
> > > >  		s3c24xx_serial_setsource(port, clk_sel);
> > > >
> > > > -		if (ourport->baudclk != NULL && !IS_ERR(ourport->baudclk)) {
> > > > +		if (!IS_ERR(ourport->baudclk)) {
> > > >  			clk_disable(ourport->baudclk);
> > > > -			ourport->baudclk  = NULL;
> > > > +			ourport->baudclk = ERR_PTR(-EINVAL);
> > > >  		}
> > > >
> > > >  		clk_enable(clk);
> > > > @@ -1160,6 +1159,9 @@ static ssize_t s3c24xx_serial_show_clksrc(struct
> > > device *dev,
> > > >  	struct uart_port *port = s3c24xx_dev_to_port(dev);
> > > >  	struct s3c24xx_uart_port *ourport = to_ourport(port);
> > > >
> > > > +	if (IS_ERR(ourport->baudclk))
> > > > +		return -EINVAL;
> > > > +
> > > >  	return snprintf(buf, PAGE_SIZE, "* %s\n", ourport->baudclk->name);
> > > >  }
> > > >
> > > > @@ -1200,6 +1202,7 @@ static int s3c24xx_serial_probe(struct
> > > platform_device *pdev)
> > > >  		return -ENODEV;
> > > >  	}
> > > >
> > > > +	ourport->baudclk = ERR_PTR(-EINVAL);
> > > >  	ourport->info = ourport->drv_data->info;
> > > >  	ourport->cfg = (pdev->dev.platform_data) ?
> > > >  			(struct s3c2410_uartcfg *)pdev->dev.platform_data :
> > > > @@ -1387,7 +1390,7 @@ s3c24xx_serial_get_options(struct uart_port
> > *port,
> > > int *baud,
> > > >  		sprintf(clk_name, "clk_uart_baud%d", clk_sel);
> > > >
> > > >  		clk = clk_get(port->dev, clk_name);
> > > > -		if (!IS_ERR(clk) && clk != NULL)
> > > > +		if (!IS_ERR(clk))
> > > >  			rate = clk_get_rate(clk);
> > > >  		else
> > > >  			rate = 1;
> > > > --
> > > > 1.7.1
> > 
> > Looks ok to me, will apply.
> > Thanks.
> > 
> (Cc'ed Greg)
> 
> I think, would be better if Greg could pick this up in his tree.
> 
> Acked-by: Kukjin Kim <kgene.kim@samsung.com>

It's already there :)


WARNING: multiple messages have this Message-ID (diff)
From: gregkh@linuxfoundation.org (Greg KH)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/2] serial: samsung: Remove NULL checking for baud clock
Date: Wed, 20 Jun 2012 16:50:17 -0700	[thread overview]
Message-ID: <20120620235017.GA8293@kroah.com> (raw)
In-Reply-To: <028e01cd4e9d$28cbcf90$7a636eb0$%kim@samsung.com>

On Wed, Jun 20, 2012 at 01:28:36PM +0900, Kukjin Kim wrote:
> Kukjin Kim wrote:
> > 
> > Kyoungil Kim wrote:
> > >
> > > Kyoungil Kim wrote:
> > >
> > > I missed following.
> > >
> > > Russell King suggested:
> > >
> > > As I said, drivers have no business interpreting anything but
> IS_ERR(clk)
> > > as being an error.  They should not make any other
> > > assumptions.
> > >
> > > Suggested-by: Russell King <rmk+kernel@arm.linux.org.uk>
> > >
> > > > Signed-off-by: Kyoungil Kim <ki0351.kim@samsung.com>
> > > > ---
> > > >  drivers/tty/serial/samsung.c |   21 ++++++++++++---------
> > > >  1 files changed, 12 insertions(+), 9 deletions(-)
> > > >
> > > > diff --git a/drivers/tty/serial/samsung.c
> > b/drivers/tty/serial/samsung.c
> > > > index d8b0aee..5668538 100644
> > > > --- a/drivers/tty/serial/samsung.c
> > > > +++ b/drivers/tty/serial/samsung.c
> > > > @@ -529,7 +529,7 @@ static void s3c24xx_serial_pm(struct uart_port
> > *port,
> > > unsigned int level,
> > > >
> > > >  	switch (level) {
> > > >  	case 3:
> > > > -		if (!IS_ERR(ourport->baudclk) && ourport->baudclk != NULL)
> > > > +		if (!IS_ERR(ourport->baudclk))
> > > >  			clk_disable(ourport->baudclk);
> > > >
> > > >  		clk_disable(ourport->clk);
> > > > @@ -538,7 +538,7 @@ static void s3c24xx_serial_pm(struct uart_port
> > *port,
> > > unsigned int level,
> > > >  	case 0:
> > > >  		clk_enable(ourport->clk);
> > > >
> > > > -		if (!IS_ERR(ourport->baudclk) && ourport->baudclk != NULL)
> > > > +		if (!IS_ERR(ourport->baudclk))
> > > >  			clk_enable(ourport->baudclk);
> > > >
> > > >  		break;
> > > > @@ -604,7 +604,6 @@ static unsigned int s3c24xx_serial_getclk(struct
> > > s3c24xx_uart_port *ourport,
> > > >  	char clkname[MAX_CLK_NAME_LENGTH];
> > > >  	int calc_deviation, deviation = (1 << 30) - 1;
> > > >
> > > > -	*best_clk = NULL;
> > > >  	clk_sel = (ourport->cfg->clk_sel) ? ourport->cfg->clk_sel :
> > > >  			ourport->info->def_clk_sel;
> > > >  	for (cnt = 0; cnt < info->num_clks; cnt++) {
> > > > @@ -613,7 +612,7 @@ static unsigned int s3c24xx_serial_getclk(struct
> > > s3c24xx_uart_port *ourport,
> > > >
> > > >  		sprintf(clkname, "clk_uart_baud%d", cnt);
> > > >  		clk = clk_get(ourport->port.dev, clkname);
> > > > -		if (IS_ERR_OR_NULL(clk))
> > > > +		if (IS_ERR(clk))
> > > >  			continue;
> > > >
> > > >  		rate = clk_get_rate(clk);
> > > > @@ -684,7 +683,7 @@ static void s3c24xx_serial_set_termios(struct
> > > uart_port *port,
> > > >  {
> > > >  	struct s3c2410_uartcfg *cfg = s3c24xx_port_to_cfg(port);
> > > >  	struct s3c24xx_uart_port *ourport = to_ourport(port);
> > > > -	struct clk *clk = NULL;
> > > > +	struct clk *clk = ERR_PTR(-EINVAL);
> > > >  	unsigned long flags;
> > > >  	unsigned int baud, quot, clk_sel = 0;
> > > >  	unsigned int ulcon;
> > > > @@ -705,7 +704,7 @@ static void s3c24xx_serial_set_termios(struct
> > > uart_port *port,
> > > >  	quot = s3c24xx_serial_getclk(ourport, baud, &clk, &clk_sel);
> > > >  	if (baud == 38400 && (port->flags & UPF_SPD_MASK) == UPF_SPD_CUST)
> > > >  		quot = port->custom_divisor;
> > > > -	if (!clk)
> > > > +	if (IS_ERR(clk))
> > > >  		return;
> > > >
> > > >  	/* check to see if we need  to change clock source */
> > > > @@ -713,9 +712,9 @@ static void s3c24xx_serial_set_termios(struct
> > > uart_port *port,
> > > >  	if (ourport->baudclk != clk) {
> > > >  		s3c24xx_serial_setsource(port, clk_sel);
> > > >
> > > > -		if (ourport->baudclk != NULL && !IS_ERR(ourport->baudclk)) {
> > > > +		if (!IS_ERR(ourport->baudclk)) {
> > > >  			clk_disable(ourport->baudclk);
> > > > -			ourport->baudclk  = NULL;
> > > > +			ourport->baudclk = ERR_PTR(-EINVAL);
> > > >  		}
> > > >
> > > >  		clk_enable(clk);
> > > > @@ -1160,6 +1159,9 @@ static ssize_t s3c24xx_serial_show_clksrc(struct
> > > device *dev,
> > > >  	struct uart_port *port = s3c24xx_dev_to_port(dev);
> > > >  	struct s3c24xx_uart_port *ourport = to_ourport(port);
> > > >
> > > > +	if (IS_ERR(ourport->baudclk))
> > > > +		return -EINVAL;
> > > > +
> > > >  	return snprintf(buf, PAGE_SIZE, "* %s\n", ourport->baudclk->name);
> > > >  }
> > > >
> > > > @@ -1200,6 +1202,7 @@ static int s3c24xx_serial_probe(struct
> > > platform_device *pdev)
> > > >  		return -ENODEV;
> > > >  	}
> > > >
> > > > +	ourport->baudclk = ERR_PTR(-EINVAL);
> > > >  	ourport->info = ourport->drv_data->info;
> > > >  	ourport->cfg = (pdev->dev.platform_data) ?
> > > >  			(struct s3c2410_uartcfg *)pdev->dev.platform_data :
> > > > @@ -1387,7 +1390,7 @@ s3c24xx_serial_get_options(struct uart_port
> > *port,
> > > int *baud,
> > > >  		sprintf(clk_name, "clk_uart_baud%d", clk_sel);
> > > >
> > > >  		clk = clk_get(port->dev, clk_name);
> > > > -		if (!IS_ERR(clk) && clk != NULL)
> > > > +		if (!IS_ERR(clk))
> > > >  			rate = clk_get_rate(clk);
> > > >  		else
> > > >  			rate = 1;
> > > > --
> > > > 1.7.1
> > 
> > Looks ok to me, will apply.
> > Thanks.
> > 
> (Cc'ed Greg)
> 
> I think, would be better if Greg could pick this up in his tree.
> 
> Acked-by: Kukjin Kim <kgene.kim@samsung.com>

It's already there :)

  reply	other threads:[~2012-06-20 23:50 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-24  8:39 [PATCH 1/2] serial: samsung: Remove NULL checking for baud clock Kyoungil Kim
2012-05-24  8:39 ` Kyoungil Kim
2012-06-19  8:52 ` Kukjin Kim
2012-06-19  8:52   ` Kukjin Kim
2012-06-20  4:28 ` Kukjin Kim
2012-06-20  4:28   ` Kukjin Kim
2012-06-20 23:50   ` Greg KH [this message]
2012-06-20 23:50     ` Greg KH
  -- strict thread matches above, loose matches on Subject: below --
2012-05-20  8:45 Kyoungil Kim
2012-05-20  8:45 ` Kyoungil Kim

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=20120620235017.GA8293@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=alan@linux.intel.com \
    --cc=kgene.kim@samsung.com \
    --cc=ki0351.kim@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=rmk+kernel@arm.linux.org.uk \
    /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.