static int gen_74x164_remove(struct spi_device *spi)
 {
        struct gen_74x164_chip *chip = spi_get_drvdata(spi);
-       int ret;
 
-       ret = gpiochip_remove(&chip->gpio_chip);
-       if (!ret)
-               mutex_destroy(&chip->lock);
+       gpiochip_remove(&chip->gpio_chip);
+       mutex_destroy(&chip->lock);
 
-       return ret;
+       return 0;
 }
 
 static const struct of_device_id gen_74x164_dt_ids[] = {
 
 {
        struct adnp *adnp = i2c_get_clientdata(client);
        struct device_node *np = client->dev.of_node;
-       int err;
-
-       err = gpiochip_remove(&adnp->gpio);
-       if (err < 0) {
-               dev_err(&client->dev, "%s failed: %d\n", "gpiochip_remove()",
-                       err);
-               return err;
-       }
 
+       gpiochip_remove(&adnp->gpio);
        if (of_find_property(np, "interrupt-controller", NULL))
                adnp_irq_teardown(adnp);
 
 
 static int adp5520_gpio_remove(struct platform_device *pdev)
 {
        struct adp5520_gpio *dev;
-       int ret;
 
        dev = platform_get_drvdata(pdev);
-       ret = gpiochip_remove(&dev->gpio_chip);
-       if (ret) {
-               dev_err(&pdev->dev, "%s failed, %d\n",
-                               "gpiochip_remove()", ret);
-               return ret;
-       }
+       gpiochip_remove(&dev->gpio_chip);
 
        return 0;
 }
 
        if (dev->irq_base)
                free_irq(dev->client->irq, dev);
 
-       ret = gpiochip_remove(&dev->gpio_chip);
-       if (ret) {
-               dev_err(&client->dev, "gpiochip_remove failed %d\n", ret);
-               return ret;
-       }
+       gpiochip_remove(&dev->gpio_chip);
 
        kfree(dev);
        return 0;
 
 
 static void __exit amd_gpio_exit(void)
 {
-       int err = gpiochip_remove(&gp.chip);
-       WARN_ON(err);
+       gpiochip_remove(&gp.chip);
        ioport_unmap(gp.pm);
        release_region(gp.pmbase + PMBASE_OFFSET, PMBASE_SIZE);
 }
 
 {
        struct arizona_gpio *arizona_gpio = platform_get_drvdata(pdev);
 
-       return gpiochip_remove(&arizona_gpio->gpio_chip);
+       gpiochip_remove(&arizona_gpio->gpio_chip);
+       return 0;
 }
 
 static struct platform_driver arizona_gpio_driver = {
 
 static int cs5535_gpio_remove(struct platform_device *pdev)
 {
        struct resource *r;
-       int err;
 
-       err = gpiochip_remove(&cs5535_gpio_chip.chip);
-       if (err) {
-               /* uhh? */
-               dev_err(&pdev->dev, "unable to remove gpio_chip?\n");
-               return err;
-       }
+       gpiochip_remove(&cs5535_gpio_chip.chip);
 
        r = platform_get_resource(pdev, IORESOURCE_IO, 0);
        release_region(r->start, resource_size(r));
 
 {
        struct da9052_gpio *gpio = platform_get_drvdata(pdev);
 
-       return gpiochip_remove(&gpio->gp);
+       gpiochip_remove(&gpio->gp);
+       return 0;
 }
 
 static struct platform_driver da9052_gpio_driver = {
 
 {
        struct da9055_gpio *gpio = platform_get_drvdata(pdev);
 
-       return gpiochip_remove(&gpio->gp);
+       gpiochip_remove(&gpio->gp);
+       return 0;
 }
 
 static struct platform_driver da9055_gpio_driver = {
 
 
        for (m = 0; m < gpio->nr_ports; ++m)
                if (gpio->ports[m].is_registered)
-                       WARN_ON(gpiochip_remove(&gpio->ports[m].bgc.gc));
+                       gpiochip_remove(&gpio->ports[m].bgc.gc);
 }
 
 static int dwapb_gpio_probe(struct platform_device *pdev)
 
 static int em_gio_remove(struct platform_device *pdev)
 {
        struct em_gio_priv *p = platform_get_drvdata(pdev);
-       int ret;
 
-       ret = gpiochip_remove(&p->gpio_chip);
-       if (ret)
-               return ret;
+       gpiochip_remove(&p->gpio_chip);
 
        irq_domain_remove(p->irq_domain);
        return 0;
 
 err_gpiochip:
        for (i = i - 1; i >= 0; i--) {
                struct f7188x_gpio_bank *bank = &data->bank[i];
-               int tmp;
-
-               tmp = gpiochip_remove(&bank->chip);
-               if (tmp < 0)
-                       dev_err(&pdev->dev,
-                               "Failed to remove gpiochip %d: %d\n",
-                               i, tmp);
+               gpiochip_remove(&bank->chip);
        }
 
        return err;
 
 static int f7188x_gpio_remove(struct platform_device *pdev)
 {
-       int err;
        int i;
        struct f7188x_gpio_data *data = platform_get_drvdata(pdev);
 
        for (i = 0; i < data->nr_bank; i++) {
                struct f7188x_gpio_bank *bank = &data->bank[i];
-
-               err = gpiochip_remove(&bank->chip);
-               if (err) {
-                       dev_err(&pdev->dev,
-                               "Failed to remove GPIO gpiochip %d: %d\n",
-                               i, err);
-                       return err;
-               }
+               gpiochip_remove(&bank->chip);
        }
 
        return 0;
 
 
 int bgpio_remove(struct bgpio_chip *bgc)
 {
-       return gpiochip_remove(&bgc->gc);
+       gpiochip_remove(&bgc->gc);
+       return 0;
 }
 EXPORT_SYMBOL_GPL(bgpio_remove);
 
 
                }
        }
 
-       ret = gpiochip_remove(&priv->bgc.gc);
-       if (ret)
-               goto out;
+       gpiochip_remove(&priv->bgc.gc);
 
        if (priv->domain)
                irq_domain_remove(priv->domain);
 
 
 static int ichx_gpio_remove(struct platform_device *pdev)
 {
-       int err;
-
-       err = gpiochip_remove(&ichx_priv.chip);
-       if (err) {
-               dev_err(&pdev->dev, "%s failed, %d\n",
-                               "gpiochip_remove()", err);
-               return err;
-       }
+       gpiochip_remove(&ichx_priv.chip);
 
        ichx_gpio_release_regions(ichx_priv.gpio_base, ichx_priv.use_gpio);
        if (ichx_priv.pm_base)
 
 static void __exit it8761e_gpio_exit(void)
 {
        if (gpio_ba) {
-               int ret = gpiochip_remove(&it8761e_gpio_chip);
-
-               WARN(ret, "%s(): gpiochip_remove() failed, ret=%d\n",
-                               __func__, ret);
-
+               gpiochip_remove(&it8761e_gpio_chip);
                release_region(gpio_ba, GPIO_IOSIZE);
                gpio_ba = 0;
        }
 
 static int ttl_remove(struct platform_device *pdev)
 {
        struct ttl_module *mod = platform_get_drvdata(pdev);
-       struct device *dev = &pdev->dev;
-       int ret;
 
-       ret = gpiochip_remove(&mod->gpio);
-       if (ret) {
-               dev_err(dev, "unable to remove GPIO chip\n");
-               return ret;
-       }
+       gpiochip_remove(&mod->gpio);
 
        return 0;
 }
 
 {
        struct kempld_gpio_data *gpio = platform_get_drvdata(pdev);
 
-       return gpiochip_remove(&gpio->chip);
+       gpiochip_remove(&gpio->chip);
+       return 0;
 }
 
 static struct platform_driver kempld_gpio_driver = {
 
 {
        struct lp3943_gpio *lp3943_gpio = platform_get_drvdata(pdev);
 
-       return gpiochip_remove(&lp3943_gpio->chip);
+       gpiochip_remove(&lp3943_gpio->chip);
+       return 0;
 }
 
 static const struct of_device_id lp3943_gpio_of_match[] = {
 
 static int lp_gpio_remove(struct platform_device *pdev)
 {
        struct lp_gpio *lg = platform_get_drvdata(pdev);
-       int err;
        pm_runtime_disable(&pdev->dev);
-       err = gpiochip_remove(&lg->chip);
-       if (err)
-               dev_warn(&pdev->dev, "failed to remove gpio_chip.\n");
+       gpiochip_remove(&lg->chip);
        return 0;
 }
 
 
 int __max730x_remove(struct device *dev)
 {
        struct max7301 *ts = dev_get_drvdata(dev);
-       int ret;
 
        if (ts == NULL)
                return -ENODEV;
 
        /* Power down the chip and disable IRQ output */
        ts->write(dev, 0x04, 0x00);
-
-       ret = gpiochip_remove(&ts->chip);
-       if (!ret)
-               mutex_destroy(&ts->lock);
-       else
-               dev_err(dev, "Failed to remove GPIO controller: %d\n", ret);
-
-       return ret;
+       gpiochip_remove(&ts->chip);
+       mutex_destroy(&ts->lock);
+       kfree(ts);
+       return 0;
 }
 EXPORT_SYMBOL_GPL(__max730x_remove);
 
 
                }
        }
 
-       ret = gpiochip_remove(&chip->gpio_chip);
-       if (ret) {
-               dev_err(&client->dev, "%s failed, %d\n",
-                               "gpiochip_remove()", ret);
-               return ret;
-       }
+       gpiochip_remove(&chip->gpio_chip);
 
        max732x_irq_teardown(chip);
 
 
 static int mc33880_remove(struct spi_device *spi)
 {
        struct mc33880 *mc;
-       int ret;
 
        mc = spi_get_drvdata(spi);
        if (mc == NULL)
                return -ENODEV;
 
-       ret = gpiochip_remove(&mc->chip);
-       if (!ret)
-               mutex_destroy(&mc->lock);
-       else
-               dev_err(&spi->dev, "Failed to remove the GPIO controller: %d\n",
-                       ret);
+       gpiochip_remove(&mc->chip);
+       mutex_destroy(&mc->lock);
 
-       return ret;
+       return 0;
 }
 
 static struct spi_driver mc33880_driver = {
 
 
        mc9s = i2c_get_clientdata(client);
 
-       return gpiochip_remove(&mc9s->chip);
+       gpiochip_remove(&mc9s->chip);
+       return 0;
 }
 
 static const struct i2c_device_id mc9s08dz60_id[] = {
 
 static int mcp230xx_remove(struct i2c_client *client)
 {
        struct mcp23s08 *mcp = i2c_get_clientdata(client);
-       int status;
 
        if (client->irq && mcp->irq_controller)
                mcp23s08_irq_teardown(mcp);
 
-       status = gpiochip_remove(&mcp->chip);
-       if (status == 0)
-               kfree(mcp);
+       gpiochip_remove(&mcp->chip);
+       kfree(mcp);
 
-       return status;
+       return 0;
 }
 
 static const struct i2c_device_id mcp230xx_id[] = {
 
 fail:
        for (addr = 0; addr < ARRAY_SIZE(data->mcp); addr++) {
-               int tmp;
 
                if (!data->mcp[addr])
                        continue;
-               tmp = gpiochip_remove(&data->mcp[addr]->chip);
-               if (tmp < 0)
-                       dev_err(&spi->dev, "%s --> %d\n", "remove", tmp);
+               gpiochip_remove(&data->mcp[addr]->chip);
        }
        kfree(data);
        return status;
 {
        struct mcp23s08_driver_data     *data = spi_get_drvdata(spi);
        unsigned                        addr;
-       int                             status = 0;
 
        for (addr = 0; addr < ARRAY_SIZE(data->mcp); addr++) {
-               int tmp;
 
                if (!data->mcp[addr])
                        continue;
 
-               tmp = gpiochip_remove(&data->mcp[addr]->chip);
-               if (tmp < 0) {
-                       dev_err(&spi->dev, "%s --> %d\n", "remove", tmp);
-                       status = tmp;
-               }
+               gpiochip_remove(&data->mcp[addr]->chip);
        }
-       if (status == 0)
-               kfree(data);
-       return status;
+       kfree(data);
+       return 0;
 }
 
 static const struct spi_device_id mcp23s08_ids[] = {
 
 err_gpiochip_add:
        while (--i >= 0) {
                chip--;
-               if (gpiochip_remove(&chip->gpio))
-                       dev_err(&pdev->dev, "Failed gpiochip_remove(%d)\n", i);
+               gpiochip_remove(&chip->gpio);
        }
        kfree(chip_save);
 
 
 static void ioh_gpio_remove(struct pci_dev *pdev)
 {
-       int err;
        int i;
        struct ioh_gpio *chip = pci_get_drvdata(pdev);
        void *chip_save;
 
        for (i = 0; i < 8; i++, chip++) {
                irq_free_descs(chip->irq_base, num_ports[i]);
-               err = gpiochip_remove(&chip->gpio);
-               if (err)
-                       dev_err(&pdev->dev, "Failed gpiochip_remove\n");
+               gpiochip_remove(&chip->gpio);
        }
 
        chip = chip_save;
 
 
 static int msm_gpio_remove(struct platform_device *dev)
 {
-       int ret = gpiochip_remove(&msm_gpio.gpio_chip);
-
-       if (ret < 0)
-               return ret;
+       gpiochip_remove(&msm_gpio.gpio_chip);
 
        irq_set_handler(msm_gpio.summary_irq, NULL);
 
 
 out_irqdesc_free:
        irq_free_descs(irq_base, 32);
 out_gpiochip_remove:
-       WARN_ON(gpiochip_remove(&port->bgc.gc) < 0);
+       gpiochip_remove(&port->bgc.gc);
 out_bgpio_remove:
        bgpio_remove(&port->bgc);
 out_bgio:
 
 static int octeon_gpio_remove(struct platform_device *pdev)
 {
        struct gpio_chip *chip = pdev->dev.platform_data;
-       return gpiochip_remove(chip);
+       gpiochip_remove(chip);
+       return 0;
 }
 
 static struct of_device_id octeon_gpio_match[] = {
 
 {
        struct palmas_gpio *palmas_gpio = platform_get_drvdata(pdev);
 
-       return gpiochip_remove(&palmas_gpio->gpio_chip);
+       gpiochip_remove(&palmas_gpio->gpio_chip);
+       return 0;
 }
 
 static struct platform_driver palmas_gpio_driver = {
 
                }
        }
 
-       ret = gpiochip_remove(&chip->gpio_chip);
-       if (ret) {
-               dev_err(&client->dev, "%s failed, %d\n",
-                               "gpiochip_remove()", ret);
-               return ret;
-       }
+       gpiochip_remove(&chip->gpio_chip);
 
        return 0;
 }
 
        if (client->irq)
                pcf857x_irq_domain_cleanup(gpio);
 
-       status = gpiochip_remove(&gpio->chip);
-       if (status)
-               dev_err(&client->dev, "%s --> %d\n", "remove", status);
+       gpiochip_remove(&gpio->chip);
        return status;
 }
 
 
 
 err_request_irq:
        irq_free_descs(irq_base, gpio_pins[chip->ioh]);
-
-       if (gpiochip_remove(&chip->gpio))
-               dev_err(&pdev->dev, "%s gpiochip_remove failed\n", __func__);
+       gpiochip_remove(&chip->gpio);
 
 err_gpiochip_add:
        pci_iounmap(pdev, chip->base);
 
 static void pch_gpio_remove(struct pci_dev *pdev)
 {
-       int err;
        struct pch_gpio *chip = pci_get_drvdata(pdev);
 
        if (chip->irq_base != -1) {
                irq_free_descs(chip->irq_base, gpio_pins[chip->ioh]);
        }
 
-       err = gpiochip_remove(&chip->gpio);
-       if (err)
-               dev_err(&pdev->dev, "Failed gpiochip_remove\n");
-
+       gpiochip_remove(&chip->gpio);
        pci_iounmap(pdev, chip->base);
        pci_release_regions(pdev);
        pci_disable_device(pdev);
 
 {
        struct rc5t583_gpio *rc5t583_gpio = platform_get_drvdata(pdev);
 
-       return gpiochip_remove(&rc5t583_gpio->gpio_chip);
+       gpiochip_remove(&rc5t583_gpio->gpio_chip);
+       return 0;
 }
 
 static struct platform_driver rc5t583_gpio_driver = {
 
 static int gpio_rcar_remove(struct platform_device *pdev)
 {
        struct gpio_rcar_priv *p = platform_get_drvdata(pdev);
-       int ret;
 
-       ret = gpiochip_remove(&p->gpio_chip);
-       if (ret)
-               return ret;
+       gpiochip_remove(&p->gpio_chip);
 
        irq_domain_remove(p->irq_domain);
        pm_runtime_put(&pdev->dev);
 
 
 static int rdc321x_gpio_remove(struct platform_device *pdev)
 {
-       int ret;
        struct rdc321x_gpio *rdc321x_gpio_dev = platform_get_drvdata(pdev);
 
-       ret = gpiochip_remove(&rdc321x_gpio_dev->chip);
-       if (ret)
-               dev_err(&pdev->dev, "failed to unregister chip\n");
+       gpiochip_remove(&rdc321x_gpio_dev->chip);
 
-       return ret;
+       return 0;
 }
 
 static struct platform_driver rdc321x_gpio_driver = {
 
        return 0;
 
 err_sch_gpio_resume:
-       if (gpiochip_remove(&sch_gpio_core))
-               dev_err(&pdev->dev, "%s gpiochip_remove failed\n", __func__);
+       gpiochip_remove(&sch_gpio_core);
 
 err_sch_gpio_core:
        release_region(res->start, resource_size(res));
 {
        struct resource *res;
        if (gpio_ba) {
-               int err;
 
-               err  = gpiochip_remove(&sch_gpio_core);
-               if (err)
-                       dev_err(&pdev->dev, "%s failed, %d\n",
-                               "gpiochip_remove()", err);
-               err = gpiochip_remove(&sch_gpio_resume);
-               if (err)
-                       dev_err(&pdev->dev, "%s failed, %d\n",
-                               "gpiochip_remove()", err);
+               gpiochip_remove(&sch_gpio_core);
+               gpiochip_remove(&sch_gpio_resume);
 
                res = platform_get_resource(pdev, IORESOURCE_IO, 0);
 
                release_region(res->start, resource_size(res));
                gpio_ba = 0;
-
-               return err;
        }
 
        return 0;
 
 {
        struct sch311x_pdev_data *pdata = pdev->dev.platform_data;
        struct sch311x_gpio_priv *priv = platform_get_drvdata(pdev);
-       int err, i;
+       int i;
 
        release_region(pdata->runtime_reg + GP1, 6);
 
        for (i = 0; i < ARRAY_SIZE(priv->blocks); i++) {
-               err = gpiochip_remove(&priv->blocks[i].chip);
-               if (err)
-                       return err;
+               gpiochip_remove(&priv->blocks[i].chip);
                dev_info(&pdev->dev,
                         "SMSC SCH311x GPIO block %d unregistered.\n", i);
        }
 
        free_irq(pdev->irq, sd);
        irq_free_descs(sd->irq_base, SDV_NUM_PUB_GPIOS);
 
-       if (gpiochip_remove(&sd->bgpio.gc))
-               dev_err(&pdev->dev, "gpiochip_remove() failed.\n");
-
+       gpiochip_remove(&sd->bgpio.gc);
        pci_release_region(pdev, GPIO_BAR);
        iounmap(sd->gpio_pub_base);
        pci_disable_device(pdev);
 
        struct stmpe_gpio *stmpe_gpio = platform_get_drvdata(pdev);
        struct stmpe *stmpe = stmpe_gpio->stmpe;
        struct stmpe_gpio_platform_data *pdata = stmpe->pdata->gpio;
-       int ret;
 
        if (pdata && pdata->remove)
                pdata->remove(stmpe, stmpe_gpio->chip.base);
 
-       ret = gpiochip_remove(&stmpe_gpio->chip);
-       if (ret < 0) {
-               dev_err(stmpe_gpio->dev,
-                       "unable to remove gpiochip: %d\n", ret);
-               return ret;
-       }
+       gpiochip_remove(&stmpe_gpio->chip);
 
        stmpe_disable(stmpe, STMPE_BLOCK_GPIO);
 
 
 
        return 0;
 probe_fail_post_gpiochip_add:
-       WARN_ON(gpiochip_remove(&chip->gpio_chip) < 0);
+       gpiochip_remove(&chip->gpio_chip);
        return rc;
 }
 
 static int sx150x_remove(struct i2c_client *client)
 {
        struct sx150x_chip *chip;
-       int rc;
 
        chip = i2c_get_clientdata(client);
-       rc = gpiochip_remove(&chip->gpio_chip);
-       if (rc < 0)
-               return rc;
+       gpiochip_remove(&chip->gpio_chip);
 
        if (chip->irq_summary >= 0)
                sx150x_remove_irq_chip(chip);
 
 {
        struct syscon_gpio_priv *priv = platform_get_drvdata(pdev);
 
-       return gpiochip_remove(&priv->chip);
+       gpiochip_remove(&priv->chip);
+       return 0;
 }
 
 static struct platform_driver syscon_gpio_driver = {
 
 static int __exit tb10x_gpio_remove(struct platform_device *pdev)
 {
        struct tb10x_gpio *tb10x_gpio = platform_get_drvdata(pdev);
-       int ret;
 
        if (tb10x_gpio->gc.to_irq) {
                irq_remove_generic_chip(tb10x_gpio->domain->gc->gc[0],
                irq_domain_remove(tb10x_gpio->domain);
                free_irq(tb10x_gpio->irq, tb10x_gpio);
        }
-       ret = gpiochip_remove(&tb10x_gpio->gc);
-       if (ret)
-               return ret;
+       gpiochip_remove(&tb10x_gpio->gc);
 
        return 0;
 }
 
        struct tc3589x_gpio *tc3589x_gpio = platform_get_drvdata(pdev);
        struct tc3589x *tc3589x = tc3589x_gpio->tc3589x;
        struct tc3589x_gpio_platform_data *pdata = tc3589x->pdata->gpio;
-       int ret;
 
        if (pdata && pdata->remove)
                pdata->remove(tc3589x, tc3589x_gpio->chip.base);
 
-       ret = gpiochip_remove(&tc3589x_gpio->chip);
-       if (ret < 0) {
-               dev_err(tc3589x_gpio->dev,
-                       "unable to remove gpiochip: %d\n", ret);
-               return ret;
-       }
+       gpiochip_remove(&tc3589x_gpio->chip);
 
        return 0;
 }
 
 
 static int timbgpio_remove(struct platform_device *pdev)
 {
-       int err;
        struct timbgpio_platform_data *pdata = dev_get_platdata(&pdev->dev);
        struct timbgpio *tgpio = platform_get_drvdata(pdev);
        int irq = platform_get_irq(pdev, 0);
                irq_set_handler_data(irq, NULL);
        }
 
-       err = gpiochip_remove(&tgpio->gpio);
-       if (err)
-               printk(KERN_ERR DRIVER_NAME": failed to remove gpio_chip\n");
+       gpiochip_remove(&tgpio->gpio);
 
        return 0;
 }
 
 {
        struct tps6586x_gpio *tps6586x_gpio = platform_get_drvdata(pdev);
 
-       return gpiochip_remove(&tps6586x_gpio->gpio_chip);
+       gpiochip_remove(&tps6586x_gpio->gpio_chip);
+       return 0;
 }
 
 static struct platform_driver tps6586x_gpio_driver = {
 
 {
        struct tps65910_gpio *tps65910_gpio = platform_get_drvdata(pdev);
 
-       return gpiochip_remove(&tps65910_gpio->gpio_chip);
+       gpiochip_remove(&tps65910_gpio->gpio_chip);
+       return 0;
 }
 
 static struct platform_driver tps65910_gpio_driver = {
 
 {
        struct tps65912_gpio_data  *tps65912_gpio = platform_get_drvdata(pdev);
 
-       return gpiochip_remove(&tps65912_gpio->gpio_chip);
+       gpiochip_remove(&tps65912_gpio->gpio_chip);
+       return 0;
 }
 
 static struct platform_driver tps65912_gpio_driver = {
 
 
        return 0;
 cleanup:
-       if (gpiochip_remove(&priv->gpio_chip))
-               dev_err(dev, "failed to remove gpio chip\n");
+       gpiochip_remove(&priv->gpio_chip);
        return ret;
 }
 
        struct ts5500_priv *priv = platform_get_drvdata(pdev);
 
        ts5500_disable_irq(priv);
-       return gpiochip_remove(&priv->gpio_chip);
+       gpiochip_remove(&priv->gpio_chip);
+       return 0;
 }
 
 static struct platform_device_id ts5500_dio_ids[] = {
 
                }
        }
 
-       status = gpiochip_remove(&priv->gpio_chip);
-       if (status < 0)
-               return status;
+       gpiochip_remove(&priv->gpio_chip);
 
        if (is_module())
                return 0;
 
 
 static int gpo_twl6040_remove(struct platform_device *pdev)
 {
-       return gpiochip_remove(&twl6040gpo_chip);
+       gpiochip_remove(&twl6040gpo_chip);
+       return 0;
 }
 
 /* Note:  this hardware lives inside an I2C-based multi-function device. */
 
                        return err;
        }
 
-       err = gpiochip_remove(&ucb->gc);
+       gpiochip_remove(&ucb->gc);
        return err;
 }
 
 
        return ret;
 
 err_gpiob:
-       if (gpiochip_remove(&vb_gpio->gpioa))
-               dev_err(&pdev->dev, "%s gpiochip_remove failed\n", __func__);
+       gpiochip_remove(&vb_gpio->gpioa);
 
 err_gpioa:
        return ret;
 static int vprbrd_gpio_remove(struct platform_device *pdev)
 {
        struct vprbrd_gpio *vb_gpio = platform_get_drvdata(pdev);
-       int ret;
 
-       ret = gpiochip_remove(&vb_gpio->gpiob);
-       if (ret == 0)
-               ret = gpiochip_remove(&vb_gpio->gpioa);
+       gpiochip_remove(&vb_gpio->gpiob);
 
-       return ret;
+       return 0;
 }
 
 static struct platform_driver vprbrd_gpio_driver = {
 
        struct vx855_gpio *vg = platform_get_drvdata(pdev);
        struct resource *res;
 
-       if (gpiochip_remove(&vg->gpio))
-               dev_err(&pdev->dev, "unable to remove gpio_chip?\n");
+       gpiochip_remove(&vg->gpio);
 
        if (vg->gpi_reserved) {
                res = platform_get_resource(pdev, IORESOURCE_IO, 0);
 
 {
        struct wm831x_gpio *wm831x_gpio = platform_get_drvdata(pdev);
 
-       return  gpiochip_remove(&wm831x_gpio->gpio_chip);
+       gpiochip_remove(&wm831x_gpio->gpio_chip);
+       return 0;
 }
 
 static struct platform_driver wm831x_gpio_driver = {
 
 {
        struct wm8350_gpio_data *wm8350_gpio = platform_get_drvdata(pdev);
 
-       return gpiochip_remove(&wm8350_gpio->gpio_chip);
+       gpiochip_remove(&wm8350_gpio->gpio_chip);
+       return 0;
 }
 
 static struct platform_driver wm8350_gpio_driver = {
 
 {
        struct wm8994_gpio *wm8994_gpio = platform_get_drvdata(pdev);
 
-       return gpiochip_remove(&wm8994_gpio->gpio_chip);
+       gpiochip_remove(&wm8994_gpio->gpio_chip);
+       return 0;
 }
 
 static struct platform_driver wm8994_gpio_driver = {