lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 5 Feb 2016 17:55:42 +0200
From:	Andy Shevchenko <andy.shevchenko@...il.com>
To:	qiujiang <qiujiang@...wei.com>
Cc:	Mark Brown <broonie@...nel.org>,
	linux-spi <linux-spi@...r.kernel.org>,
	"linux-acpi@...r.kernel.org" <linux-acpi@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	linuxarm@...wei.com, haifeng.wei@...wei.com,
	charles.chenxin@...wei.com
Subject: Re: [RFC PATCH] SPI/ACPI: DesignWare: Add ACPI support for Designware
 SPI driver

On Fri, Feb 5, 2016 at 9:11 AM, qiujiang <qiujiang@...wei.com> wrote:
> This patch added ACPI support for DesignWare SPI mmio driver. It
> was based the corresponding DT driver and compatible for this two
> way. This patch has been tested on Hisilicon D02 board. It relies
> on the GPIO patchset.

My comments below.

> @@ -84,8 +87,6 @@ static int dw_spi_mmio_probe(struct platform_device *pdev)
>         dws->num_cs = num_cs;
>
>         if (pdev->dev.of_node) {
> -               int i;
> -
>                 for (i = 0; i < dws->num_cs; i++) {
>                         int cs_gpio = of_get_named_gpio(pdev->dev.of_node,
>                                         "cs-gpios", i);

It seems the driver was never validated with more than one chip select.
Perhaps someone has to switch to use of_spi_register_master() here.

> @@ -104,6 +105,18 @@ static int dw_spi_mmio_probe(struct platform_device *pdev)
>                 }
>         }
>
> +       if (ACPI_COMPANION(&pdev->dev)) {
> +               for (i = 0; i < dws->num_cs; i++) {
> +                       snprintf(propname, sizeof(propname), "cs%d", i);
> +                       gpiod = devm_gpiod_get(&pdev->dev,
> +                               propname, GPIOD_ASIS);
> +                       if (IS_ERR(gpiod)) {
> +                               dev_err(&pdev->dev, "Get gpio desc failed!\n");
> +                               return PTR_ERR(gpiod);
> +                       }
> +               }
> +       }

Like Mark noticed there is also same issue. Do you indeed check the
configuration with different chip select signals?

-- 
With Best Regards,
Andy Shevchenko

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ