|
@@ -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;
|
|
|
}
|
|
@@ -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)
|
|
@@ -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)
|