Skip to content

Commit

Permalink
gpio: pca953x: propagate the errno from the chip_init functions
Browse files Browse the repository at this point in the history
Initializing the chips may return with an error, but this error gets
dropped in probe(). Propagate this further to the driver core. Also,
simplify returning the error in one of the init functions.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Cc: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
  • Loading branch information
Wolfram Sang authored and Grant Likely committed Oct 29, 2011
1 parent f0eb824 commit 7ea2aa2
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions drivers/gpio/gpio-pca953x.c
Original file line number Diff line number Diff line change
Expand Up @@ -595,9 +595,6 @@ static int __devinit device_pca953x_init(struct pca953x_chip *chip, int invert)

/* set platform specific polarity inversion */
ret = pca953x_write_reg(chip, PCA953X_INVERT, invert);
if (ret)
goto out;
return 0;
out:
return ret;
}
Expand Down Expand Up @@ -639,7 +636,7 @@ static int __devinit pca953x_probe(struct i2c_client *client,
struct pca953x_platform_data *pdata;
struct pca953x_chip *chip;
int irq_base=0, invert=0;
int ret = 0;
int ret;

chip = kzalloc(sizeof(struct pca953x_chip), GFP_KERNEL);
if (chip == NULL)
Expand Down Expand Up @@ -672,9 +669,11 @@ static int __devinit pca953x_probe(struct i2c_client *client,
pca953x_setup_gpio(chip, id->driver_data & PCA_GPIO_MASK);

if (chip->chip_type == PCA953X_TYPE)
device_pca953x_init(chip, invert);
ret = device_pca953x_init(chip, invert);
else
device_pca957x_init(chip, invert);
ret = device_pca957x_init(chip, invert);
if (ret)
goto out_failed;

ret = pca953x_irq_setup(chip, id, irq_base);
if (ret)
Expand Down

0 comments on commit 7ea2aa2

Please sign in to comment.