All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomasz Figa <t.figa@samsung.com>
To: Naveen Krishna Chatradhi <ch.naveen@samsung.com>,
	linux-arm-kernel@lists.infradead.org,
	spi-devel-general@lists.sourceforge.net,
	linux-samsung-soc@vger.kernel.org
Cc: naveenkrishna.ch@gmail.com, broonie@kernel.org,
	grant.likely@secretlab.ca, jaswinder.singh@linaro.org,
	kgene.kim@samsung.com, cpgs@samsung.com,
	devicetree@vger.kernel.org,
	Javier Martinez Canillas <javier.martinez@collabora.co.uk>,
	Doug Anderson <dianders@chromium.org>
Subject: Re: [PATCH 1/3] spi: s3c64xx: move "cs-gpio" from subnode to SPI DT node
Date: Tue, 15 Jul 2014 19:30:08 +0200	[thread overview]
Message-ID: <53C56520.8030801@samsung.com> (raw)
In-Reply-To: <1405426860-18404-2-git-send-email-ch.naveen@samsung.com>

Hi Naveen,

Please see my comments inline.

On 15.07.2014 14:20, Naveen Krishna Chatradhi wrote:
> This patch modifies the spi-s3c64xx.c driver to fetch the 
> Chip select or Slave select gpio line property "cs-gpios"
> from SPI node instead of "controller_data" subnode.
> 
> Rename the property "cs-gpio" to "cs-gpios" in accordance
> with the SPI core. Such that s3c64xx.c can use spi->cs_gpio
> instead of parsing the property in the driver.
> 
> Update the dt-bindings ion spi/spi-samsung.txt
> 
> Signed-off-by: Naveen Krishna Chatradhi <ch.naveen@samsung.com>
> Acked-by: Rob Herring <robh@kernel.org>
> Cc: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
> Cc: Doug Anderson <dianders@chromium.org>
> Cc: Tomasz Figa <t.figa@samsung.com>
> ---
> This patch is a rework of the change @
> http://www.mail-archive.com/devicetree@vger.kernel.org/msg34500.html
> 
> I'm not sure if i can carry forward the other Signed-offs and Tested-bys

[snip]

> diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
> index 75a5696..72bfba6 100644
> --- a/drivers/spi/spi-s3c64xx.c
> +++ b/drivers/spi/spi-s3c64xx.c
> @@ -764,12 +764,6 @@ static struct s3c64xx_spi_csinfo *s3c64xx_get_slave_ctrldata(
>  		return ERR_PTR(-EINVAL);
>  	}
>  
> -	data_np = of_get_child_by_name(slave_np, "controller-data");
> -	if (!data_np) {
> -		dev_err(&spi->dev, "child node 'controller-data' not found\n");
> -		return ERR_PTR(-EINVAL);
> -	}

Do you need to move this code block?

> -
>  	cs = kzalloc(sizeof(*cs), GFP_KERNEL);
>  	if (!cs) {
>  		of_node_put(data_np);
> @@ -777,13 +771,17 @@ static struct s3c64xx_spi_csinfo *s3c64xx_get_slave_ctrldata(
>  	}
>  
>  	/* The CS line is asserted/deasserted by the gpio pin */
> -	if (sdd->cs_gpio)
> -		cs->line = of_get_named_gpio(data_np, "cs-gpio", 0);
> +	cs->line = spi->cs_gpio;
>  
>  	if (!gpio_is_valid(cs->line)) {

This check is wrong when native chip select is used. However I'm not
sure how to distinguish this from a situation when invalid GPIO was
specified, because cs->line will be -ENOENT in both cases. Mark, any ideas?

>  		dev_err(&spi->dev, "chip select gpio is not specified or invalid\n");
>  		kfree(cs);
> -		of_node_put(data_np);
> +		return ERR_PTR(-EINVAL);
> +	}
> +
> +	data_np = of_get_child_by_name(slave_np, "controller-data");
> +	if (!data_np) {
> +		dev_err(&spi->dev, "child node 'controller-data' not found\n");
>  		return ERR_PTR(-EINVAL);
>  	}
>  
> @@ -1077,7 +1075,7 @@ static int s3c64xx_spi_probe(struct platform_device *pdev)
>  	sdd->sfr_start = mem_res->start;
>  	sdd->cs_gpio = true;
>  	if (pdev->dev.of_node) {
> -		if (!of_find_property(pdev->dev.of_node, "cs-gpio", NULL))
> +		if (!of_find_property(pdev->dev.of_node, "cs-gpios", NULL))
>  			sdd->cs_gpio = false;

What is this boolean flag used for now? If cs->line now either contains
a valid GPIO or a negative error, why gpio_is_valid() couldn't be used
on it? I believe it was done correctly in previous version.

Best regards,
Tomasz

WARNING: multiple messages have this Message-ID (diff)
From: t.figa@samsung.com (Tomasz Figa)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/3] spi: s3c64xx: move "cs-gpio" from subnode to SPI DT node
Date: Tue, 15 Jul 2014 19:30:08 +0200	[thread overview]
Message-ID: <53C56520.8030801@samsung.com> (raw)
In-Reply-To: <1405426860-18404-2-git-send-email-ch.naveen@samsung.com>

Hi Naveen,

Please see my comments inline.

On 15.07.2014 14:20, Naveen Krishna Chatradhi wrote:
> This patch modifies the spi-s3c64xx.c driver to fetch the 
> Chip select or Slave select gpio line property "cs-gpios"
> from SPI node instead of "controller_data" subnode.
> 
> Rename the property "cs-gpio" to "cs-gpios" in accordance
> with the SPI core. Such that s3c64xx.c can use spi->cs_gpio
> instead of parsing the property in the driver.
> 
> Update the dt-bindings ion spi/spi-samsung.txt
> 
> Signed-off-by: Naveen Krishna Chatradhi <ch.naveen@samsung.com>
> Acked-by: Rob Herring <robh@kernel.org>
> Cc: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
> Cc: Doug Anderson <dianders@chromium.org>
> Cc: Tomasz Figa <t.figa@samsung.com>
> ---
> This patch is a rework of the change @
> http://www.mail-archive.com/devicetree at vger.kernel.org/msg34500.html
> 
> I'm not sure if i can carry forward the other Signed-offs and Tested-bys

[snip]

> diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
> index 75a5696..72bfba6 100644
> --- a/drivers/spi/spi-s3c64xx.c
> +++ b/drivers/spi/spi-s3c64xx.c
> @@ -764,12 +764,6 @@ static struct s3c64xx_spi_csinfo *s3c64xx_get_slave_ctrldata(
>  		return ERR_PTR(-EINVAL);
>  	}
>  
> -	data_np = of_get_child_by_name(slave_np, "controller-data");
> -	if (!data_np) {
> -		dev_err(&spi->dev, "child node 'controller-data' not found\n");
> -		return ERR_PTR(-EINVAL);
> -	}

Do you need to move this code block?

> -
>  	cs = kzalloc(sizeof(*cs), GFP_KERNEL);
>  	if (!cs) {
>  		of_node_put(data_np);
> @@ -777,13 +771,17 @@ static struct s3c64xx_spi_csinfo *s3c64xx_get_slave_ctrldata(
>  	}
>  
>  	/* The CS line is asserted/deasserted by the gpio pin */
> -	if (sdd->cs_gpio)
> -		cs->line = of_get_named_gpio(data_np, "cs-gpio", 0);
> +	cs->line = spi->cs_gpio;
>  
>  	if (!gpio_is_valid(cs->line)) {

This check is wrong when native chip select is used. However I'm not
sure how to distinguish this from a situation when invalid GPIO was
specified, because cs->line will be -ENOENT in both cases. Mark, any ideas?

>  		dev_err(&spi->dev, "chip select gpio is not specified or invalid\n");
>  		kfree(cs);
> -		of_node_put(data_np);
> +		return ERR_PTR(-EINVAL);
> +	}
> +
> +	data_np = of_get_child_by_name(slave_np, "controller-data");
> +	if (!data_np) {
> +		dev_err(&spi->dev, "child node 'controller-data' not found\n");
>  		return ERR_PTR(-EINVAL);
>  	}
>  
> @@ -1077,7 +1075,7 @@ static int s3c64xx_spi_probe(struct platform_device *pdev)
>  	sdd->sfr_start = mem_res->start;
>  	sdd->cs_gpio = true;
>  	if (pdev->dev.of_node) {
> -		if (!of_find_property(pdev->dev.of_node, "cs-gpio", NULL))
> +		if (!of_find_property(pdev->dev.of_node, "cs-gpios", NULL))
>  			sdd->cs_gpio = false;

What is this boolean flag used for now? If cs->line now either contains
a valid GPIO or a negative error, why gpio_is_valid() couldn't be used
on it? I believe it was done correctly in previous version.

Best regards,
Tomasz

  reply	other threads:[~2014-07-15 17:30 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-15 12:20 [PATCH 0/3] spi: s3c64xx: fix the driver to use "cs-gpios" property Naveen Krishna Chatradhi
2014-07-15 12:20 ` Naveen Krishna Chatradhi
2014-07-15 12:20 ` [PATCH 1/3] spi: s3c64xx: move "cs-gpio" from subnode to SPI DT node Naveen Krishna Chatradhi
2014-07-15 12:20   ` Naveen Krishna Chatradhi
2014-07-15 17:30   ` Tomasz Figa [this message]
2014-07-15 17:30     ` Tomasz Figa
2014-07-16 17:09     ` Mark Brown
2014-07-16 17:09       ` Mark Brown
2014-07-15 12:20 ` [PATCH 2/3] spi: s3c64xx: validate s3c64xx_spi_csinfo before using Naveen Krishna Chatradhi
2014-07-15 12:20   ` Naveen Krishna Chatradhi
2014-07-15 17:49   ` Tomasz Figa
2014-07-15 17:49     ` Tomasz Figa
2014-07-15 20:00     ` Javier Martinez Canillas
2014-07-15 20:00       ` Javier Martinez Canillas
2014-07-15 12:21 ` [PATCH 3/3] ARM: DTS: fix the chip select gpios definition in the SPI nodes Naveen Krishna Chatradhi
2014-07-15 12:21   ` Naveen Krishna Chatradhi

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=53C56520.8030801@samsung.com \
    --to=t.figa@samsung.com \
    --cc=broonie@kernel.org \
    --cc=ch.naveen@samsung.com \
    --cc=cpgs@samsung.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dianders@chromium.org \
    --cc=grant.likely@secretlab.ca \
    --cc=jaswinder.singh@linaro.org \
    --cc=javier.martinez@collabora.co.uk \
    --cc=kgene.kim@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=naveenkrishna.ch@gmail.com \
    --cc=spi-devel-general@lists.sourceforge.net \
    /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.