diff options
| author | Len Brown <len.brown@intel.com> | 2010-08-15 01:06:31 -0400 |
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2010-08-15 01:06:31 -0400 |
| commit | 95ee46aa8698f2000647dfb362400fadbb5807cf (patch) | |
| tree | e5a05c7297f997e191c73091934e42e3195c0e40 /drivers/gpio/pcf857x.c | |
| parent | cfa806f059801dbe7e435745eb2e187c8bfe1e7f (diff) | |
| parent | 92fa5bd9a946b6e7aab6764e7312e4e3d9bed295 (diff) | |
Merge branch 'linus' into release
Conflicts:
drivers/acpi/debug.c
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/gpio/pcf857x.c')
| -rw-r--r-- | drivers/gpio/pcf857x.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/gpio/pcf857x.c b/drivers/gpio/pcf857x.c index 29f19ce3e80f..879b473aab5a 100644 --- a/drivers/gpio/pcf857x.c +++ b/drivers/gpio/pcf857x.c @@ -190,7 +190,6 @@ static int pcf857x_probe(struct i2c_client *client, pdata = client->dev.platform_data; if (!pdata) { dev_dbg(&client->dev, "no platform data\n"); - return -EINVAL; } /* Allocate, initialize, and register this gpio_chip. */ @@ -200,7 +199,7 @@ static int pcf857x_probe(struct i2c_client *client, mutex_init(&gpio->lock); - gpio->chip.base = pdata->gpio_base; + gpio->chip.base = pdata ? pdata->gpio_base : -1; gpio->chip.can_sleep = 1; gpio->chip.dev = &client->dev; gpio->chip.owner = THIS_MODULE; @@ -278,7 +277,7 @@ static int pcf857x_probe(struct i2c_client *client, * to zero, our software copy of the "latch" then matches the chip's * all-ones reset state. Otherwise it flags pins to be driven low. */ - gpio->out = ~pdata->n_latch; + gpio->out = pdata ? ~pdata->n_latch : ~0; status = gpiochip_add(&gpio->chip); if (status < 0) @@ -299,7 +298,7 @@ static int pcf857x_probe(struct i2c_client *client, /* Let platform code set up the GPIOs and their users. * Now is the first time anyone could use them. */ - if (pdata->setup) { + if (pdata && pdata->setup) { status = pdata->setup(client, gpio->chip.base, gpio->chip.ngpio, pdata->context); @@ -322,7 +321,7 @@ static int pcf857x_remove(struct i2c_client *client) struct pcf857x *gpio = i2c_get_clientdata(client); int status = 0; - if (pdata->teardown) { + if (pdata && pdata->teardown) { status = pdata->teardown(client, gpio->chip.base, gpio->chip.ngpio, pdata->context); |
