Message ID | 1360170118-11937-2-git-send-email-larsi@wh2.tu-dresden.de (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
On Wed, 6 Feb 2013 18:01:57 +0100, Lars Poeschel <larsi@wh2.tu-dresden.de> wrote: > From: Lars Poeschel <poeschel@lemonage.de> > > Explicitly allow -1 as a legal value for the > mcp23s08_platform_data->base. This is the special value lets the > kernel choose a valid global gpio base number. > > Signed-off-by: Lars Poeschel <poeschel@lemonage.de> > --- > drivers/gpio/gpio-mcp23s08.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpio/gpio-mcp23s08.c b/drivers/gpio/gpio-mcp23s08.c > index 3cea0ea..2afb828 100644 > --- a/drivers/gpio/gpio-mcp23s08.c > +++ b/drivers/gpio/gpio-mcp23s08.c > @@ -483,7 +483,7 @@ static int mcp230xx_probe(struct i2c_client *client, > int status; > > pdata = client->dev.platform_data; > - if (!pdata || !gpio_is_valid(pdata->base)) { > + if ((!pdata || !gpio_is_valid(pdata->base)) && pdata->base != -1) { > dev_dbg(&client->dev, "invalid or missing platform data\n"); > return -EINVAL; When used with the device tree you shouldn't have a platform data pointer at all. Instead you should modify the driver to not require it. g. ------------------------------------------------------------------------------ Free Next-Gen Firewall Hardware Offer Buy your Sophos next-gen firewall before the end March 2013 and get the hardware for free! Learn more. http://p.sf.net/sfu/sophos-d2d-feb
diff --git a/drivers/gpio/gpio-mcp23s08.c b/drivers/gpio/gpio-mcp23s08.c index 3cea0ea..2afb828 100644 --- a/drivers/gpio/gpio-mcp23s08.c +++ b/drivers/gpio/gpio-mcp23s08.c @@ -483,7 +483,7 @@ static int mcp230xx_probe(struct i2c_client *client, int status; pdata = client->dev.platform_data; - if (!pdata || !gpio_is_valid(pdata->base)) { + if ((!pdata || !gpio_is_valid(pdata->base)) && pdata->base != -1) { dev_dbg(&client->dev, "invalid or missing platform data\n"); return -EINVAL; } @@ -570,7 +570,7 @@ static int mcp23s08_probe(struct spi_device *spi) type = spi_get_device_id(spi)->driver_data; pdata = spi->dev.platform_data; - if (!pdata || !gpio_is_valid(pdata->base)) { + if ((!pdata || !gpio_is_valid(pdata->base)) && pdata->base != -1) { dev_dbg(&spi->dev, "invalid or missing platform data\n"); return -EINVAL; }