Re: [PATCH] gpio: mcp23s08: Bug fix of SPI device tree registration.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 23, 2014 at 03:13:32PM +0200, Peter Korsgaard wrote:
> >>>>> "Linus" == Linus Walleij <linus.walleij@xxxxxxxxxx> writes:
> 
>  > Daniel, Lars, Peter: can either of you have a look at this patch
>  > and ACK/NACK it?
> 
> Sorry, it seems like I wasn't CC'ed on this patch (or the one adding the
> DT bindings). The patch looks good to me:
> 
> Acked-by: Peter Korsgaard <peter@xxxxxxxxxxxxx>
> 
The patched driver was tested and working on actual hardware.
> 
>  > On Thu, Apr 17, 2014 at 3:00 AM, Michael Welling <mwelling@xxxxxxxx> wrote:
>  >> The chips variable needs to be incremented for each chip that is found in the
>  >> spi_present_mask when register via device tree. Without this and the checking
> 
> s/register/registrering/
s/registrering/registering/

I should really proof read my commit logs.
> 
> 
>  >> a negative index is passed to the data->chip array in a subsequent loop.
>  >> 
>  >> Signed-off-by: Michael Welling <mwelling@xxxxxxxx>
>  >> ---
>  >> drivers/gpio/gpio-mcp23s08.c |   12 +++++++-----
>  >> 1 file changed, 7 insertions(+), 5 deletions(-)
>  >> 
>  >> diff --git a/drivers/gpio/gpio-mcp23s08.c b/drivers/gpio/gpio-mcp23s08.c
>  >> index 99a6831..3d53fd6 100644
>  >> --- a/drivers/gpio/gpio-mcp23s08.c
>  >> +++ b/drivers/gpio/gpio-mcp23s08.c
>  >> @@ -894,9 +894,11 @@ static int mcp23s08_probe(struct spi_device *spi)
>  >> dev_err(&spi->dev, "invalid spi-present-mask\n");
>  >> return -ENODEV;
>  >> }
>  >> -
>  >> -               for (addr = 0; addr < ARRAY_SIZE(pdata->chip); addr++)
>  >> +               for (addr = 0; addr < ARRAY_SIZE(pdata->chip); addr++) {
>  >> +                       if ((spi_present_mask & (1 << addr)))
>  >> +                               chips++;
>  >> pullups[addr] = 0;
>  >> +               }
>  >> } else {
>  >> type = spi_get_device_id(spi)->driver_data;
>  >> pdata = dev_get_platdata(&spi->dev);
>  >> @@ -919,12 +921,12 @@ static int mcp23s08_probe(struct spi_device *spi)
>  >> pullups[addr] = pdata->chip[addr].pullups;
>  >> }
>  >> 
>  >> -               if (!chips)
>  >> -                       return -ENODEV;
>  >> -
>  >> base = pdata->base;
>  >> }
>  >> 
>  >> +       if (!chips)
>  >> +               return -ENODEV;
>  >> +
>  >> data = kzalloc(sizeof(*data) + chips * sizeof(struct mcp23s08),
>  >> GFP_KERNEL);
>  >> if (!data)
>  >> --
>  >> 1.7.9.5
>  >> 
> 
> 
> -- 
> Bye, Peter Korsgaard
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux