Beispiel #1
0
static int __devexit pm8901_remove(struct i2c_client *client)
{
	struct	pm8901_chip *chip;

	chip = i2c_get_clientdata(client);
	if (chip) {
		if (chip->pm_max_irq) {
			set_irq_wake(chip->dev->irq, 0);
			free_irq(chip->dev->irq, chip);
		}

		mfd_remove_devices(&chip->dev->dev);

		chip->dev = NULL;

		kfree(chip);
	}

	pmic8901_dbg_remove();

	return 0;
}
Beispiel #2
0
static int __devexit pm8901_remove(struct platform_device *pdev)
{
	struct	pm8901_chip *chip;

	chip = platform_get_drvdata(pdev);
	if (chip) {
		if (chip->pm_max_irq) {
			irq_set_irq_wake(chip->pdata.irq, 0);
			free_irq(chip->pdata.irq, chip);
		}

		mfd_remove_devices(chip->dev);

		chip->dev = NULL;

		kfree(chip);
	}

	pmic8901_dbg_remove();

	return 0;
}